openpkg/openpkg.spec

Tue, 28 Aug 2012 18:36:35 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 28 Aug 2012 18:36:35 +0200
changeset 579
6b18bb69901e
parent 472
0746a003fc03
child 652
f6c0237e8f1c
permissions
-rw-r--r--

Correct the paths of patched scripts, refine password generation,
mitigate fdatasync(2) detection problems, correct dependencies, remove
outdated autoconf components, correct conf file paths and attributes,
complete and correct log file rotation handing, and note warnings
useful for diagnosing builds.

michael@13 1 ##
michael@13 2 ## openpkg.spec -- OpenPKG RPM Package Specification
michael@428 3 ## Copyright (c) 2000-2012 OpenPKG GmbH <http://openpkg.com/>
michael@13 4 ##
michael@428 5 ## This software is property of the OpenPKG GmbH, DE MUC HRB 160208.
michael@428 6 ## All rights reserved. Licenses which grant limited permission to use,
michael@428 7 ## copy, modify and distribute this software are available from the
michael@428 8 ## OpenPKG GmbH.
michael@13 9 ##
michael@428 10 ## THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
michael@13 11 ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
michael@13 12 ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
michael@13 13 ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
michael@13 14 ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
michael@13 15 ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
michael@13 16 ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
michael@13 17 ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
michael@13 18 ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
michael@13 19 ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
michael@13 20 ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
michael@13 21 ## SUCH DAMAGE.
michael@13 22 ##
michael@13 23
michael@13 24 # NOTICE: This OpenPKG RPM specification is _very_ special, because
michael@13 25 # it is used both for bootstrapping OpenPKG with its OpenPKG RPM and
michael@13 26 # for regular builds of OpenPKG RPM in order to upgrade an existing
michael@13 27 # installation. For this it has to interact correctly with the
michael@13 28 # "openpkg.boot" script. See the documentation in the file "README"
michael@13 29 # and the source of the companion script "openpkg.boot" for details,
michael@13 30 # but do not touch anything here until you are 100% sure about what
michael@13 31 # you are doing. In short: This script is allowed to use only a very
michael@13 32 # restricted subset of the OpenPKG RPM functionality!
michael@13 33
michael@13 34 # BUILD REQUIREMENTS:
michael@13 35 # o any sh(1)
michael@13 36 # o any tar(1)
michael@13 37 # o any make(1)
michael@13 38 # o any cc(1)
michael@13 39
michael@13 40 # the used software versions
michael@428 41 %define V_rpm_major 5.1
michael@428 42 %define V_rpm_minor 9
michael@428 43 %define V_popt 1.16
michael@428 44 %define V_lua 5.1.4
michael@428 45 %define V_sqlite 3.6.17
michael@428 46 %define V_zlib 1.2.7
michael@428 47 %define V_bzip2 1.0.6
michael@428 48 %define V_beecrypt 4.2.1
michael@428 49 %define V_curl 7.26.0
michael@428 50 %define V_pcre 8.31
michael@428 51 %define V_make 3.82
michael@428 52 %define V_gzip 1.5
michael@428 53 %define V_patch 2.6.1
michael@428 54 %define V_tar 1.26
michael@428 55 %define V_bash 4.2
michael@428 56 %define V_bash_pl 29
michael@428 57 %define V_uuid 1.6.2
michael@428 58 %define V_config 20120627
michael@428 59 %define V_perl 5.16.0
michael@428 60 %define V_openssl 1.0.1c
michael@428 61 %define V_xz 5.0.4
michael@428 62 %define V_shtool 2.0.8
michael@428 63 %define V_libarchive 3.0.3
michael@428 64 %define V_diffutils 3.2
michael@428 65 %define V_svs 1.1.0
michael@13 66
michael@13 67 # package information
michael@13 68 Name: openpkg
michael@428 69 Summary: OpenPKG Framework
michael@428 70 URL: http://openpkg.org/
michael@428 71 Vendor: OpenPKG GmbH
michael@428 72 Packager: OpenPKG GmbH
michael@428 73 Distribution: OpenPKG
michael@428 74 Class: BOOT
michael@13 75 Group: Bootstrapping
michael@428 76 License: Proprietary, Open Source
michael@428 77 Version: 4.6.7
michael@429 78 Release: 20120800
michael@13 79
michael@428 80 # list of pristine upstream sources
michael@250 81 Source0: ftp://ftp.gnu.org/gnu/patch/patch-%{V_patch}.tar.gz
michael@13 82 Source1: ftp://ftp.cwru.edu/pub/bash/bash-%{V_bash}.tar.gz
michael@13 83 Source2: ftp://ftp.gnu.org/gnu/make/make-%{V_make}.tar.gz
michael@13 84 Source3: ftp://ftp.gnu.org/gnu/tar/tar-%{V_tar}.tar.gz
michael@428 85 Source4: http://download.openpkg.org/components/versioned/config/config-%{V_config}.tar.gz
michael@428 86 Source5: http://download.openpkg.org/components/derived/gzip/gzip-%{V_gzip}.tar
michael@428 87 Source6: http://download.openpkg.org/components/derived/perl/perl-%{V_perl}-mini.tar.gz
michael@428 88 Source7: http://rpm5.org/files/rpm/rpm-%{V_rpm_major}/rpm-%{V_rpm_major}.%{V_rpm_minor}.tar.gz
michael@428 89 Source8: ftp://ftp.openssl.org/source/openssl-%{V_openssl}.tar.gz
michael@428 90 Source9: ftp://ftp.ossp.org/pkg/lib/uuid/uuid-%{V_uuid}.tar.gz
michael@428 91 Source10: http://curl.haxx.se/download/curl-%{V_curl}.tar.gz
michael@428 92 Source11: http://switch.dl.sourceforge.net/beecrypt/beecrypt-%{V_beecrypt}.tar.gz
michael@428 93 Source12: http://www.bzip.org/%{V_bzip2}/bzip2-%{V_bzip2}.tar.gz
michael@428 94 Source13: http://www.zlib.net/zlib-%{V_zlib}.tar.gz
michael@428 95 Source14: http://rpm5.org/files/popt/popt-%{V_popt}.tar.gz
michael@428 96 Source15: http://www.sqlite.org/sqlite-%{V_sqlite}.tar.gz
michael@428 97 Source16: ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-%{V_pcre}.tar.gz
michael@428 98 Source17: http://libarchive.googlecode.com/files/libarchive-%{V_libarchive}.tar.gz
michael@428 99 Source18: ftp://ftp.gnu.org/gnu/diffutils/diffutils-%{V_diffutils}.tar.gz
michael@428 100 Source19: ftp://ftp.ossp.org/pkg/tool/svs/svs-%{V_svs}.tar.gz
michael@428 101 Source20: http://tukaani.org/xz/xz-%{V_xz}.tar.gz
michael@428 102
michael@428 103 # list of local patches against pristine upstream sources
michael@13 104 Source100: bash.patch
michael@428 105 Source101: bash.patch.vendor
michael@428 106 Source102: beecrypt.patch
michael@428 107 Source103: make.patch
michael@428 108 Source104: openssl.patch
michael@428 109 Source105: perl.patch
michael@428 110 Source106: tar.patch
michael@428 111 Source107: rpm.patch
michael@428 112 Source108: popt.patch
michael@428 113 Source109: sqlite.patch
michael@428 114 Source110: curl.patch
michael@428 115 Source111: pcre.patch
michael@428 116 Source112: diffutils.patch
michael@428 117 Source113: libarchive.patch
michael@428 118 Source114: patch.strnlen.c
michael@428 119 Source115: patch.Makefile.in
michael@428 120 Source116: xz.patch
michael@428 121 Source117: zlib.patch
michael@428 122
michael@428 123 # list of local sources
michael@428 124 Source200: README
michael@428 125 Source201: etc.prereq.sh
michael@428 126 Source202: etc.usrgrp.sh
michael@428 127 Source203: etc.wrapbin.sh
michael@428 128 Source204: etc.wrapsrc.sh
michael@428 129 Source205: dot.bash_login
michael@428 130 Source206: dot.bashrc
michael@428 131 Source207: dot.lsyncrc
michael@428 132 Source208: local.README
michael@428 133 Source209: lsync
michael@428 134 Source210: lsync.8
michael@428 135 Source211: lsync.pod
michael@428 136 Source212: man.sh
michael@428 137 Source213: openpkg.1
michael@428 138 Source214: openpkg.boot
michael@428 139 Source215: openpkg.com.pgp
michael@428 140 Source216: openpkg.net.pgp
michael@428 141 Source217: openpkg.org.pgp
michael@428 142 Source218: openpkg.pod
michael@428 143 Source219: openpkg.sh
michael@428 144 Source220: rc
michael@428 145 Source221: rc.8
michael@428 146 Source222: rc.conf
michael@428 147 Source223: rc.func
michael@428 148 Source224: rc.openpkg
michael@428 149 Source225: rc.pod
michael@428 150 Source226: release.8
michael@428 151 Source227: release.pod
michael@428 152 Source228: release.sh
michael@428 153 Source229: root.README
michael@428 154 Source230: rpm-config.8
michael@428 155 Source231: rpm-config.pod
michael@428 156 Source232: rpm-config.sh
michael@428 157 Source233: rpmdb
michael@428 158 Source234: rpmtool
michael@428 159 Source235: rpmtool.8
michael@428 160 Source236: rpmtool.pod
michael@428 161 Source237: shtool
michael@428 162 Source238: shtool.sh
michael@428 163 Source239: uuid.8
michael@428 164 Source240: uuid.pod
michael@428 165 Source241: uuid.sh
michael@428 166 Source242: rpmmacros
michael@428 167 Source243: rpmpopt
michael@428 168 Source244: curl.sh
michael@428 169 Source245: index.pl
michael@428 170 Source246: index.8
michael@428 171 Source247: index.pod
michael@428 172 Source248: build.pl
michael@428 173 Source249: build.8
michael@428 174 Source250: build.pod
michael@428 175 Source251: makeproxy.pl
michael@428 176 Source252: makeproxy.8
michael@428 177 Source253: lint-fsl.pl
michael@428 178 Source254: lint-rc.pl
michael@428 179 Source255: lint-rpm.pl
michael@428 180 Source256: lint-spec.pl
michael@428 181 Source257: dev.pl
michael@428 182 Source258: dev.8
michael@428 183 Source259: dev.pod
michael@428 184 Source260: openpkg.mk
michael@428 185 Source261: openpkg.c
michael@428 186 Source262: Makefile
michael@428 187 Source263: mutex.c
michael@428 188 Source264: mutex.mk
michael@428 189 Source265: register.sh
michael@428 190 Source266: register.pod
michael@428 191 Source267: register.8
michael@428 192 Source268: rpm.sh
michael@428 193 Source269: license.lua
michael@428 194 Source270: license-BOOT.txt
michael@428 195 Source271: license-COMMUNITY.txt
michael@428 196 Source272: license-EVAL.txt
michael@428 197 Source273: license-EXAMPLE.txt
michael@428 198 Source274: license-PROMO.txt
michael@428 199 Source275: license-RECOVERY.txt
michael@428 200 Source276: license.sh
michael@428 201 Source277: license.pod
michael@428 202 Source278: license.8
michael@428 203 Source279: rpmlua
michael@428 204 Source280: sea.sh
michael@428 205 Source281: sea.pod
michael@428 206 Source282: sea.8
michael@428 207 Source283: stack.sh
michael@428 208 Source284: stack.pod
michael@428 209 Source285: stack.8
michael@428 210 Source286: search.pl
michael@428 211 Source287: search.pod
michael@428 212 Source288: search.8
michael@428 213 Source289: mirror.pl
michael@428 214 Source290: mirror.pod
michael@428 215 Source291: mirror.8
michael@13 216
michael@13 217 # build information
michael@13 218 BuildRoot: %{l_buildroot}
michael@13 219 AutoReq: no
michael@13 220 AutoReqProv: no
michael@428 221 Provides: %{l_prefix}
michael@13 222 Provides: OpenPKG
michael@428 223 Provides: openpkg = %{release}-%{release}
michael@13 224
michael@13 225 %description
michael@444 226 This is the OpenPKG Framework, the so called "bootstrap" package
michael@444 227 of OpenPKG. OpenPKG is a cross platform, self contained, RPM based
michael@428 228 software packaging solution, targeting the flexible building of
michael@428 229 software stacks on Unix platforms. The RPM Package Manager (RPM)
michael@428 230 is the underlying, sophisticated and portable package management
michael@428 231 tool which drives the automated building, installation, management
michael@428 232 and deinstallation of all Unix software components in an OpenPKG
michael@428 233 software stack.
michael@13 234
michael@428 235 This OpenPKG package contains the following individual
michael@428 236 software components (individual licenses listed in brackets):
michael@428 237 OpenPKG Framework %(echo "%{version}" | awk '{ printf("%%-7s", $1); }') [Proprietary]
michael@428 238 rpm5.org RPM %(echo "%{V_rpm_major}.%{V_rpm_minor}" | awk '{ printf("%%-7s", $1); }') [LGPL]
michael@428 239 rpm5.org POPT %(echo "%{V_popt}" | awk '{ printf("%%-7s", $1); }') [LGPL]
michael@428 240 BeeCrypt %(echo "%{V_beecrypt}" | awk '{ printf("%%-7s", $1); }') [LGPL]
michael@428 241 Lua %(echo "%{V_lua}" | awk '{ printf("%%-7s", $1); }') [MIT]
michael@444 242 SQLite %(echo "%{V_sqlite}" | awk '{ printf("%%-7s", $1); }') [Public Domain]
michael@428 243 PCRE %(echo "%{V_pcre}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 244 ZLib %(echo "%{V_zlib}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 245 XZ %(echo "%{V_xz}" | awk '{ printf("%%-7s", $1); }') [PD/LGPL/GPL]
michael@428 246 GNU Bzip2 %(echo "%{V_bzip2}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 247 GNU Gzip %(echo "%{V_gzip}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 248 GNU Tar %(echo "%{V_tar}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 249 GNU Patch %(echo "%{V_patch}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 250 GNU Shtool %(echo "%{V_shtool}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 251 GNU Make %(echo "%{V_make}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 252 GNU Bash %(echo "%{V_bash}.%{V_bash_pl}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 253 GNU DiffUtils %(echo "%{V_diffutils}" | awk '{ printf("%%-7s", $1); }') [GPL]
michael@428 254 BSD libarchive %(echo "%{V_libarchive}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 255 OSSP uuid %(echo "%{V_uuid}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 256 OSSP svs %(echo "%{V_svs}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 257 cURL %(echo "%{V_curl}" | awk '{ printf("%%-7s", $1); }') [BSD/MIT]
michael@428 258 OpenSSL %(echo "%{V_openssl}" | awk '{ printf("%%-7s", $1); }') [BSD]
michael@428 259 Perl %(echo "%{V_perl}" | awk '{ printf("%%-7s", $1); }') [Artistic]
michael@13 260
michael@13 261 %track
michael@13 262 prog openpkg:bash = {
michael@13 263 version = %{V_bash}
michael@13 264 url = ftp://ftp.cwru.edu/pub/bash/
michael@13 265 regex = bash-(__VER__)\.tar\.gz
michael@13 266 }
michael@13 267 prog openpkg:bzip2 = {
michael@13 268 version = %{V_bzip2}
michael@13 269 url = http://www.bzip.org/downloads.html
michael@13 270 regex = bzip2-(__VER__)\.tar\.gz
michael@13 271 }
michael@13 272 prog openpkg:curl = {
michael@13 273 version = %{V_curl}
michael@13 274 url = http://curl.haxx.se/download/
michael@13 275 regex = curl-(__VER__)\.tar\.gz
michael@13 276 }
michael@428 277 prog openpkg:pcre = {
michael@428 278 version = %{V_pcre}
michael@428 279 url = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
michael@428 280 regex = pcre-(__VER__)\.tar\.gz
michael@428 281 }
michael@13 282 prog openpkg:gzip = {
michael@13 283 version = %{V_gzip}
michael@13 284 url = ftp://ftp.gnu.org/gnu/gzip/
michael@13 285 regex = gzip-(__VER__)\.tar(\.gz)?
michael@13 286 }
michael@13 287 prog openpkg:make = {
michael@13 288 version = %{V_make}
michael@13 289 url = ftp://ftp.gnu.org/gnu/make/
michael@13 290 regex = make-(__VER__)\.tar\.gz
michael@13 291 }
michael@13 292 prog openpkg:patch = {
michael@13 293 version = %{V_patch}
michael@428 294 url = ftp://ftp.gnu.org/gnu/patch/
michael@13 295 regex = patch-(__VER__)\.tar\.gz
michael@13 296 }
michael@428 297 prog openpkg:popt = {
michael@428 298 version = %{V_popt}
michael@428 299 url = http://rpm5.org/files/popt/
michael@428 300 regex = popt-(\d+\.\d+)\.tar\.gz
michael@428 301 }
michael@13 302 prog openpkg:rpm = {
michael@428 303 version = %{V_rpm_major}.%{V_rpm_minor}
michael@428 304 url = http://rpm5.org/files/rpm/rpm-%{V_rpm_major}/
michael@428 305 regex = rpm-(\d+\.\d+[.ab]\d+)\.tar\.gz
michael@13 306 }
michael@13 307 prog openpkg:tar = {
michael@13 308 version = %{V_tar}
michael@13 309 url = ftp://ftp.gnu.org/gnu/tar/
michael@13 310 regex = tar-(__VER__)\.tar\.gz
michael@13 311 }
michael@13 312 prog openpkg:zlib = {
michael@13 313 version = %{V_zlib}
michael@13 314 url = http://www.zlib.net/
michael@13 315 regex = zlib-(__VER__)\.tar\.gz
michael@13 316 }
michael@428 317 prog openpkg:diffutils = {
michael@428 318 version = %{V_diffutils}
michael@428 319 url = ftp://alpha.gnu.org/gnu/diffutils/
michael@428 320 regex = diffutils-(__VER__)\.tar\.gz
michael@428 321 }
michael@428 322 prog openpkg:libarchive = {
michael@428 323 version = %{V_libarchive}
michael@428 324 url = http://code.google.com/p/libarchive/downloads/list
michael@428 325 regex = libarchive-(__VER__)\.tar\.gz
michael@428 326 }
michael@13 327 prog openpkg:uuid = {
michael@13 328 version = %{V_uuid}
michael@13 329 url = ftp://ftp.ossp.org/pkg/lib/uuid/
michael@13 330 regex = uuid-(__VER__)\.tar\.gz
michael@13 331 }
michael@428 332 prog openpkg:svs = {
michael@428 333 version = %{V_svs}
michael@428 334 url = ftp://ftp.ossp.org/pkg/tool/svs/
michael@428 335 regex = svs-(__VER__)\.tar\.gz
michael@428 336 }
michael@13 337 prog openpkg:config = {
michael@13 338 version = %{V_config}
michael@428 339 url = http://download.openpkg.org/components/versioned/config/
michael@13 340 regex = config-(__VER__)\.tar\.gz
michael@13 341 }
michael@13 342 prog openpkg:beecrypt = {
michael@13 343 version = %{V_beecrypt}
michael@428 344 url = http://sourceforge.net/project/showfiles.php?group_id=8924&package_id=9007
michael@13 345 regex = beecrypt-(__VER__)\.tar\.gz
michael@13 346 }
michael@13 347 prog openpkg:perl = {
michael@13 348 version = %{V_perl}
michael@428 349 url = http://download.openpkg.org/components/derived/perl/
michael@13 350 regex = perl-(__VER__)-mini\.tar\.gz
michael@13 351 }
michael@13 352 prog openpkg:openssl = {
michael@13 353 version = %{V_openssl}
michael@13 354 url = ftp://ftp.openssl.org/source/
michael@13 355 regex = openssl-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz
michael@13 356 }
michael@428 357 prog openpkg:lua = {
michael@428 358 version = %{V_lua}
michael@428 359 url = http://www.lua.org/download.html
michael@428 360 regex = lua-(\d+\.\d+\.\d+)\.tar\.gz
michael@13 361 }
michael@428 362 prog openpkg:sqlite = {
michael@428 363 version = %{V_sqlite}
michael@428 364 url = http://www.sqlite.org/download.html
michael@428 365 regex = sqlite-(\d+\.\d+\.\d+(?:\.\d+)?)\.tar\.gz
michael@428 366 }
michael@428 367 prog openpkg:xz = {
michael@428 368 version = %{V_xz}
michael@428 369 url = http://tukaani.org/xz/
michael@428 370 regex = xz-(\d+\.\d+\.\d+)\.tar\.gz
michael@13 371 }
michael@13 372
michael@13 373 %prep
michael@13 374 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 375 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 376
michael@13 377 # switch into a temporary build area
michael@13 378 rm -rf openpkg-%{version}
michael@13 379 mkdir openpkg-%{version}
michael@13 380 cd openpkg-%{version}
michael@13 381 rm -f .buildenv
michael@13 382 touch .buildenv
michael@13 383
michael@13 384 # provide a bootstrap alternative to %{SOURCE xxx} because else
michael@13 385 # it is not possible to upgrade a newer OpenPKG RPM with an older
michael@13 386 # OpenPKG RPM.
michael@13 387 echo >>.buildenv 'SOURCE () {'
michael@13 388 echo >>.buildenv ' if [ -f "%{_specdir}/$1" ]; then'
michael@13 389 echo >>.buildenv ' echo "%{_specdir}/$1"'
michael@13 390 echo >>.buildenv ' else'
michael@13 391 echo >>.buildenv ' echo "%{_sourcedir}/$1"'
michael@13 392 echo >>.buildenv ' fi'
michael@13 393 echo >>.buildenv '}'
michael@13 394 echo >>.buildenv 'VERBOSE () {'
michael@13 395 echo >>.buildenv ' if [ -f "%{_specdir}/rpmtool" ]; then'
michael@13 396 echo >>.buildenv ' echo "$*" | sh %{_specdir}/rpmtool msg'
michael@13 397 echo >>.buildenv ' else'
michael@13 398 echo >>.buildenv ' echo "$*" | sh %{_sourcedir}/rpmtool msg'
michael@13 399 echo >>.buildenv ' fi'
michael@13 400 echo >>.buildenv '}'
michael@13 401 . ./.buildenv
michael@13 402
michael@13 403 # display verbosity header
michael@13 404 set +x; VERBOSE "PREPARATION: Determine Build Tool Paths"; set -x
michael@13 405
michael@13 406 # determine path to shtool
michael@13 407 shtool=`SOURCE shtool`
michael@13 408 echo "shtool=$shtool" >>./.buildenv
michael@13 409
michael@13 410 # determine development tools
michael@13 411 # - bootstrapping: %{l_xxx} is set via sed(1)
michael@13 412 # - upgrading new: %{l_xxx} is set via rpmmacros
michael@13 413 # - upgrading old: %{l_xxx} is not set at all
michael@13 414
michael@13 415 # manually make sure tar(1) is available
michael@13 416 l_tar=""; export l_tar
michael@13 417 [ ".%{?l_tar:set}" = .set ] && l_tar="%{l_tar}"
michael@13 418 [ ".%{?use_tar:set}" = .set ] && l_tar="%{use_tar}"
michael@13 419 if [ ".$l_tar" = . ]; then
michael@13 420 l_tar=`sh $shtool path gtar tar`
michael@13 421 if [ ".$l_tar" = . ]; then
michael@13 422 echo "openpkg: prerequisite tool \`gtar' or \`tar' not found"
michael@13 423 exit 1
michael@13 424 fi
michael@13 425 fi
michael@13 426 echo "l_tar=\"$l_tar\"; export l_tar" >>.buildenv
michael@13 427
michael@13 428 # manually make sure make(1) is available
michael@13 429 l_make=""; export l_make
michael@13 430 [ ".%{?l_make:set}" = .set ] && l_make="%{l_make}"
michael@13 431 [ ".%{?use_make:set}" = .set ] && l_make="%{use_make}"
michael@13 432 if [ ".$l_make" = . ]; then
michael@13 433 l_make=`sh $shtool path gmake make`
michael@13 434 if [ ".$l_make" = . ]; then
michael@13 435 echo "openpkg: prerequisite tool \`gmake' or \`make' not found"
michael@13 436 exit 1
michael@13 437 fi
michael@13 438 fi
michael@13 439 echo "l_make=\"$l_make\"; export l_make" >>.buildenv
michael@13 440
michael@13 441 # manually make sure cc(1) is available
michael@13 442 l_cc=""; export l_cc
michael@13 443 [ ".%{?l_cc:set}" = .set ] && l_cc="%{l_cc}"
michael@13 444 [ ".%{?use_cc:set}" = .set ] && l_cc="%{use_cc}"
michael@13 445 if [ ".$l_cc" = . ]; then
michael@13 446 l_cc=`sh $shtool path gcc cc`
michael@13 447 if [ ".$l_cc" = . ]; then
michael@13 448 echo "openpkg: prerequisite tool \`gcc' or \`cc' not found"
michael@13 449 exit 1
michael@13 450 fi
michael@13 451 fi
michael@13 452 echo "l_cc=\"$l_cc\"; export l_cc" >>.buildenv
michael@13 453
michael@13 454 # manually make sure ar(1) is available
michael@13 455 l_ar=""; export l_ar
michael@13 456 [ ".%{?l_ar:set}" = .set ] && l_ar="%{l_ar}"
michael@13 457 [ ".%{?use_ar:set}" = .set ] && l_ar="%{use_ar}"
michael@13 458 if [ ".$l_ar" = . ]; then
michael@13 459 l_ar=`sh $shtool path ar`
michael@13 460 if [ ".$l_ar" = . ]; then
michael@13 461 echo "openpkg: prerequisite tool \`ar' not found"
michael@13 462 exit 1
michael@13 463 fi
michael@13 464 fi
michael@13 465 echo "l_ar=\"$l_ar\"; export l_ar" >>.buildenv
michael@13 466
michael@13 467 # manually make sure ld(1) is available
michael@13 468 l_ld=""; export l_ld
michael@13 469 [ ".%{?l_ld:set}" = .set ] && l_ld="%{l_ld}"
michael@13 470 [ ".%{?use_ld:set}" = .set ] && l_ld="%{use_ld}"
michael@13 471 if [ ".$l_ld" = . ]; then
michael@13 472 l_ld=`sh $shtool path ld`
michael@13 473 if [ ".$l_ld" = . ]; then
michael@13 474 echo "openpkg: prerequisite tool \`ld' not found"
michael@13 475 exit 1
michael@13 476 fi
michael@13 477 fi
michael@13 478 echo "l_ld=\"$l_ld\"; export l_ld" >>.buildenv
michael@13 479
michael@13 480 # manually make sure as(1) is available
michael@13 481 l_as=""; export l_as
michael@13 482 [ ".%{?l_as:set}" = .set ] && l_as="%{l_as}"
michael@13 483 [ ".%{?use_as:set}" = .set ] && l_as="%{use_as}"
michael@13 484 if [ ".$l_as" = . ]; then
michael@13 485 l_as=`sh $shtool path as`
michael@13 486 if [ ".$l_as" = . ]; then
michael@13 487 echo "openpkg: prerequisite tool \`as' not found"
michael@13 488 exit 1
michael@13 489 fi
michael@13 490 fi
michael@13 491 echo "l_as=\"$l_as\"; export l_as" >>.buildenv
michael@13 492
michael@13 493 # manually make sure strip(1) is available or use a null replacement
michael@13 494 l_strip=""; export l_strip
michael@13 495 [ ".%{?l_strip:set}" = .set ] && l_strip="%{l_strip}"
michael@13 496 [ ".%{?use_strip:set}" = .set ] && l_strip="%{use_strip}"
michael@13 497 if [ ".$l_strip" = . ]; then
michael@13 498 l_strip=`sh $shtool path strip ls`
michael@13 499 if [ ".$l_strip" = . ]; then
michael@13 500 echo "openpkg: prerequisite tool \`strip' not found"
michael@13 501 exit 1
michael@13 502 fi
michael@13 503 fi
michael@13 504 echo "l_strip=\"$l_strip\"; export l_strip" >>.buildenv
michael@13 505
michael@428 506 # determine path to etc.usrgrp.sh script
michael@428 507 usrgrp=`SOURCE etc.usrgrp.sh`
michael@13 508 echo "usrgrp=$usrgrp; export usrgrp" >>./.buildenv
michael@13 509
michael@13 510 # display verbosity header
michael@13 511 set +x; VERBOSE "PREPARATION: Determine OpenPKG User/Group Name/Id Pairs"; set -x
michael@13 512
michael@13 513 # determine user/group name/id pairs
michael@13 514 # - bootstrapping: %{l_[smrn]{usr,grp}} is set via sed(1)
michael@13 515 # - upgrading new: %{l_[smrn]{usr,grp}} is set via rpmmacros
michael@13 516 # - upgrading old: %{l_[smrn]{usr,grp}} is not set at all
michael@13 517 susr=""; [ ".%{?l_susr:set}" = .set ] && susr="%{l_susr}"
michael@13 518 sgrp=""; [ ".%{?l_sgrp:set}" = .set ] && sgrp="%{l_sgrp}"
michael@13 519 musr=""; [ ".%{?l_musr:set}" = .set ] && musr="%{l_musr}"
michael@13 520 mgrp=""; [ ".%{?l_mgrp:set}" = .set ] && mgrp="%{l_mgrp}"
michael@13 521 rusr=""; [ ".%{?l_rusr:set}" = .set ] && rusr="%{l_rusr}"
michael@13 522 rgrp=""; [ ".%{?l_rgrp:set}" = .set ] && rgrp="%{l_rgrp}"
michael@13 523 nusr=""; [ ".%{?l_nusr:set}" = .set ] && nusr="%{l_nusr}"
michael@13 524 ngrp=""; [ ".%{?l_ngrp:set}" = .set ] && ngrp="%{l_ngrp}"
michael@13 525 # corresponding ids
michael@13 526 suid=""; [ ".%{?l_suid:set}" = .set ] && suid="%{l_suid}"
michael@13 527 sgid=""; [ ".%{?l_sgid:set}" = .set ] && sgid="%{l_sgid}"
michael@13 528 muid=""; [ ".%{?l_muid:set}" = .set ] && muid="%{l_muid}"
michael@13 529 mgid=""; [ ".%{?l_mgid:set}" = .set ] && mgid="%{l_mgid}"
michael@13 530 ruid=""; [ ".%{?l_ruid:set}" = .set ] && ruid="%{l_ruid}"
michael@13 531 rgid=""; [ ".%{?l_rgid:set}" = .set ] && rgid="%{l_rgid}"
michael@13 532 nuid=""; [ ".%{?l_nuid:set}" = .set ] && nuid="%{l_nuid}"
michael@13 533 ngid=""; [ ".%{?l_ngid:set}" = .set ] && ngid="%{l_ngid}"
michael@13 534 # compat:
michael@13 535 usr=""; [ ".%{?l_fsusr:set}" = .set ] && usr="%{l_fsusr}"
michael@13 536 grp=""; [ ".%{?l_fsgrp:set}" = .set ] && grp="%{l_fsgrp}"
michael@13 537 eval `sh $usrgrp \
michael@13 538 --usr="$usr" --grp="$grp" \
michael@13 539 --susr="$susr" --sgrp="$sgrp" \
michael@13 540 --musr="$musr" --mgrp="$mgrp" \
michael@13 541 --rusr="$rusr" --rgrp="$rgrp" \
michael@13 542 --nusr="$nusr" --ngrp="$ngrp" \
michael@13 543 --suid="$suid" --sgid="$sgid" \
michael@13 544 --muid="$muid" --mgid="$mgid" \
michael@13 545 --ruid="$ruid" --rgid="$rgid" \
michael@13 546 --nuid="$nuid" --ngid="$ngid"`
michael@13 547 echo "susr=\"$susr\"; export susr" >>.buildenv
michael@13 548 echo "sgrp=\"$sgrp\"; export sgrp" >>.buildenv
michael@13 549 echo "musr=\"$musr\"; export musr" >>.buildenv
michael@13 550 echo "mgrp=\"$mgrp\"; export mgrp" >>.buildenv
michael@13 551 echo "rusr=\"$rusr\"; export rusr" >>.buildenv
michael@13 552 echo "rgrp=\"$rgrp\"; export rgrp" >>.buildenv
michael@13 553 echo "nusr=\"$nusr\"; export nusr" >>.buildenv
michael@13 554 echo "ngrp=\"$ngrp\"; export ngrp" >>.buildenv
michael@13 555 echo "suid=\"$suid\"; export suid" >>.buildenv
michael@13 556 echo "sgid=\"$sgid\"; export sgid" >>.buildenv
michael@13 557 echo "muid=\"$muid\"; export muid" >>.buildenv
michael@13 558 echo "mgid=\"$mgid\"; export mgid" >>.buildenv
michael@13 559 echo "ruid=\"$ruid\"; export ruid" >>.buildenv
michael@13 560 echo "rgid=\"$rgid\"; export rgid" >>.buildenv
michael@13 561 echo "nuid=\"$nuid\"; export nuid" >>.buildenv
michael@13 562 echo "ngid=\"$ngid\"; export ngid" >>.buildenv
michael@13 563
michael@13 564 # display verbosity header
michael@13 565 set +x; VERBOSE "PREPARATION: Determine OpenPKG Instance Environment"; set -x
michael@13 566
michael@13 567 # determine installation location id
michael@13 568 if [ ".%{?l_tag_fmt:set}" = .set ]; then
michael@13 569 tag="%{l_tag_fmt}"
michael@13 570 else
michael@13 571 tag="<compat>"
michael@13 572 fi
michael@13 573 echo "tag=\"$tag\"; export tag" >>.buildenv
michael@13 574
michael@13 575 # determine platform id
michael@13 576 s=`(uname -s) 2>/dev/null` || s='Unknown'
michael@13 577 r=`(uname -r) 2>/dev/null` || r='0.0'
michael@13 578 plid="${s}/${r}"
michael@13 579 echo "plid=\"$plid\"; export plid" >>.buildenv
michael@13 580
michael@444 581 # determine platform specific build environment
michael@13 582 case $plid in
michael@13 583 FreeBSD/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 584 NetBSD/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 585 Linux/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 586 SunOS/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;;
michael@13 587 UnixWare/*) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;;
michael@13 588 AIX/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;;
michael@13 589 Darwin/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 590 OSF1/V5.* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 591 HP-UX/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 592 IRIX*/6.* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@428 593 CYGWIN*/* ) l_build_path="/bin:/usr/bin:/usr/sbin" ;;
michael@13 594 * ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;;
michael@13 595 esac
michael@13 596 case $plid in
michael@13 597 FreeBSD/* ) l_build_ldlp="/lib:/usr/lib" ;;
michael@13 598 NetBSD/* ) l_build_ldlp="/lib:/usr/lib" ;;
michael@13 599 Linux/* ) l_build_ldlp="/lib:/usr/lib" ;;
michael@13 600 SunOS/* ) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;;
michael@13 601 UnixWare/*) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;;
michael@13 602 AIX/* ) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;;
michael@13 603 Darwin/* ) l_build_ldlp="/usr/lib" ;;
michael@13 604 OSF1/V5.* ) l_build_ldlp="/usr/lib" ;;
michael@13 605 HP-UX/* ) l_build_ldlp="/usr/lib" ;;
michael@13 606 IRIX*/6.* ) l_build_ldlp="/usr/lib" ;;
michael@428 607 CYGWIN*/* ) l_build_ldlp="/lib:/usr/lib" ;;
michael@13 608 * ) l_build_ldlp="/usr/lib" ;;
michael@13 609 esac
michael@13 610 case $plid in
michael@13 611 * ) l_build_ulim=":" ;;
michael@13 612 esac
michael@13 613 echo "l_build_path=\"$l_build_path\"; export l_build_path" >>.buildenv
michael@13 614 echo "l_build_ldlp=\"$l_build_ldlp\"; export l_build_ldlp" >>.buildenv
michael@13 615 echo "l_build_ulim=\"$l_build_ulim\"; export l_build_ulim" >>.buildenv
michael@13 616
michael@428 617 # ACTIVATE AGAIN AFTER ALL 4.2.5 VERSIONS WERE UPGRADED TO AT LEAST 4.2.7
michael@428 618 # determine status of unprivileged operation
michael@428 619 if [ ".%{?l_unprivileged:set}" = .set ]; then
michael@428 620 l_unprivileged="%{l_unprivileged}"
michael@428 621 else
michael@428 622 l_unprivileged="no"
michael@428 623 fi
michael@428 624 echo "l_unprivileged=\"$l_unprivileged\"; export l_unprivileged" >>.buildenv
michael@428 625
michael@13 626 # display verbosity header
michael@13 627 set +x; VERBOSE "PREPARATION: Build GNU gzip (Compression Tool)"; set -x
michael@13 628
michael@13 629 # bootstrap GNU zip tool
michael@13 630 ${l_tar} xf `SOURCE gzip-%{V_gzip}.tar` 2>/dev/null || true
michael@13 631 ( cd gzip-%{V_gzip}
michael@428 632 ( echo "ac_cv_prog_cc_g=no"
michael@428 633 echo "ac_cv_header_getopt_h=no"
michael@428 634 ) >config.cache
michael@13 635 case $plid in
michael@13 636 Darwin/* ) echo "gzip_cv_assembler=no" >>config.cache ;;
michael@13 637 esac
michael@13 638 CC="${l_cc}" \
michael@13 639 GREP="grep" \
michael@13 640 ./configure \
michael@13 641 --cache-file=./config.cache
michael@13 642 ${l_make} || exit $?
michael@13 643 ( mv gzip ..; ${l_make} clean || true; mv ../gzip . ) || exit $?
michael@13 644 ) || exit $?
michael@13 645 l_gzip="`pwd`/gzip-%{V_gzip}/gzip"; export l_gzip
michael@13 646 echo "l_gzip=\"$l_gzip\"; export l_gzip" >>.buildenv
michael@13 647
michael@13 648 # display verbosity header
michael@13 649 set +x; VERBOSE "PREPARATION: Unpack GNU configuration guessing utilities"; set -x
michael@13 650
michael@13 651 # unpack GNU config.guess
michael@13 652 ${l_gzip} -dc `SOURCE config-%{V_config}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 653
michael@13 654 # display verbosity header
michael@13 655 set +x; VERBOSE "PREPARATION: Build GNU patch (Source Patching Tool)"; set -x
michael@13 656
michael@13 657 # bootstrap GNU patch tool
michael@13 658 ${l_gzip} -dc `SOURCE patch-%{V_patch}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 659 ( cd patch-%{V_patch}
michael@428 660 chmod a+x install-sh
michael@428 661 echo '#!' >update-version.sh
michael@428 662 cp `SOURCE patch.Makefile.in` Makefile.in
michael@428 663 cp `SOURCE patch.strnlen.c` gl/lib/strnlen.c
michael@13 664 ( echo 'ac_cv_func_setmode=${ac_cv_func_setmode=no}'
michael@13 665 echo 'ac_cv_prog_cc_g=no'
michael@13 666 false=`sh $shtool path false`
michael@13 667 echo "ac_cv_path_ed_PROGRAM=\${ac_cv_path_ed_PROGRAM=$false}"
michael@13 668 ) >config.cache
michael@13 669 CC="${l_cc}" \
michael@13 670 ./configure \
michael@13 671 --cache-file=./config.cache \
michael@428 672 --enable-merge \
michael@13 673 --disable-largefile
michael@13 674 ${l_make} || exit $?
michael@250 675 ( mv src/patch ..; ${l_make} clean || true; mv ../patch . ) || exit $?
michael@13 676 ) || exit $?
michael@13 677 l_patch="`pwd`/patch-%{V_patch}/patch"; export l_patch
michael@428 678 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@428 679 *-cygwin* )
michael@428 680 # Cygwin under Windows Vista dislikes executables with
michael@428 681 # "patch" in the same and would require a "*.manifest"
michael@428 682 # file applied with the "mt.exe" from the "Windows
michael@428 683 # Software Development Kit (SDK)" in order to escape from
michael@428 684 # UAC. An easy alternative is to just rename the file to a
michael@428 685 # different name.
michael@428 686 mv patch-%{V_patch}/patch patch-%{V_patch}/pitch
michael@428 687 l_patch="`pwd`/patch-%{V_patch}/pitch"
michael@428 688 ;;
michael@428 689 esac
michael@13 690 echo "l_patch=\"$l_patch\"; export l_patch" >>.buildenv
michael@13 691
michael@13 692 # display verbosity header
michael@13 693 set +x; VERBOSE "BUILD: Build GNU tar (Archiving Tool)"; set -x
michael@13 694
michael@13 695 # build GNU tar tool
michael@13 696 ${l_gzip} -dc `SOURCE tar-%{V_tar}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 697 ( cd tar-%{V_tar}
michael@13 698 ${l_patch} -p0 <`SOURCE tar.patch`
michael@13 699 ( echo 'am_cv_func_iconv=no'
michael@13 700 echo 'am_cv_lib_iconv=no'
michael@13 701 echo 'ac_cv_lib_iconv_iconv=no'
michael@13 702 echo 'ac_cv_header_iconv_h=no'
michael@13 703 echo 'ac_cv_type_iconv_t=no'
michael@13 704 ) >config.cache
michael@13 705 CC="${l_cc}" \
michael@13 706 MAKEINFO="true" \
michael@13 707 GREP="grep" \
michael@428 708 FORCE_UNSAFE_CONFIGURE=1 \
michael@13 709 ./configure \
michael@13 710 --cache-file=./config.cache \
michael@13 711 --prefix=%{l_prefix} \
michael@428 712 --with-gzip=%{l_prefix}/lib/openpkg/gzip \
michael@428 713 --with-bzip2=%{l_prefix}/lib/openpkg/bzip2 \
michael@13 714 --disable-nls
michael@13 715 ${l_make} || exit $?
michael@13 716 ( mv src/tar ..; ${l_make} clean || true; mv ../tar . ) || exit $?
michael@13 717 ) || exit $?
michael@13 718 l_tar="`pwd`/tar-%{V_tar}/tar"; export l_tar
michael@13 719 echo "l_tar=\"$l_tar\"; export l_tar" >>.buildenv
michael@13 720
michael@13 721 # display verbosity header
michael@13 722 set +x; VERBOSE "PREPARATION: Unpack Distribution Tarballs"; set -x
michael@13 723
michael@13 724 # unpack distribution tarballs
michael@428 725 ${l_gzip} -dc `SOURCE rpm-%{V_rpm_major}.%{V_rpm_minor}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 726 ${l_gzip} -dc `SOURCE popt-%{V_popt}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 727 ${l_gzip} -dc `SOURCE sqlite-%{V_sqlite}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 728 ${l_gzip} -dc `SOURCE zlib-%{V_zlib}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 729 ${l_gzip} -dc `SOURCE bzip2-%{V_bzip2}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 730 ${l_gzip} -dc `SOURCE xz-%{V_xz}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 731 ${l_gzip} -dc `SOURCE curl-%{V_curl}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 732 ${l_gzip} -dc `SOURCE pcre-%{V_pcre}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 733 ${l_gzip} -dc `SOURCE make-%{V_make}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 734 ${l_gzip} -dc `SOURCE bash-%{V_bash}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 735 ${l_gzip} -dc `SOURCE uuid-%{V_uuid}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 736 ${l_gzip} -dc `SOURCE beecrypt-%{V_beecrypt}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 737 ${l_gzip} -dc `SOURCE perl-%{V_perl}-mini.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 738 ${l_gzip} -dc `SOURCE openssl-%{V_openssl}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 739 ${l_gzip} -dc `SOURCE libarchive-%{V_libarchive}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 740 ${l_gzip} -dc `SOURCE diffutils-%{V_diffutils}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@428 741 ${l_gzip} -dc `SOURCE svs-%{V_svs}.tar.gz` | ${l_tar} xf - 2>/dev/null || true
michael@13 742
michael@13 743 # update config.guess/config.sub
michael@428 744 for dir in curl-%{V_curl} make-%{V_make} bash-%{V_bash}/support; do
michael@13 745 chmod u+w $dir/config.guess $dir/config.sub >/dev/null 2>&1 || true
michael@13 746 cp config/config.guess $dir/
michael@13 747 cp config/config.sub $dir/
michael@13 748 done
michael@13 749
michael@13 750 # display verbosity header
michael@13 751 set +x; VERBOSE "PREPARATION: Apply OpenPKG Patches to Distributions"; set -x
michael@13 752
michael@13 753 # apply OpenPKG patches to distribution trees
michael@428 754 ( cd rpm-%{V_rpm_major}.%{V_rpm_minor}
michael@428 755 sed -e "s;@l_prefix@;%{l_prefix};g" <`SOURCE rpm.patch` | ${l_patch} -p0
michael@13 756 ) || exit $?
michael@13 757 ( cd make-%{V_make}
michael@13 758 ${l_patch} -p0 <`SOURCE make.patch`
michael@13 759 ) || exit $?
michael@13 760 ( cd bash-%{V_bash}
michael@13 761 ${l_patch} -p0 <`SOURCE bash.patch`
michael@428 762 ${l_patch} -p0 <`SOURCE bash.patch.vendor`
michael@13 763 sleep 1
michael@13 764 touch y.tab.[ch]
michael@13 765 touch configure config.h.in
michael@13 766 ) || exit $?
michael@13 767 ( cd beecrypt-%{V_beecrypt}
michael@13 768 ${l_patch} -p0 <`SOURCE beecrypt.patch`
michael@13 769 ) || exit $?
michael@13 770 ( cd perl-%{V_perl}
michael@13 771 ${l_patch} -p0 <`SOURCE perl.patch`
michael@13 772 ) || exit $?
michael@13 773 ( cd openssl-%{V_openssl}
michael@13 774 ${l_patch} -p0 <`SOURCE openssl.patch`
michael@13 775 ) || exit $?
michael@428 776 ( cd popt-%{V_popt}
michael@428 777 ${l_patch} -p0 <`SOURCE popt.patch`
michael@428 778 ) || exit $?
michael@428 779 ( cd sqlite-%{V_sqlite}
michael@428 780 ${l_patch} -p0 <`SOURCE sqlite.patch`
michael@428 781 ) || exit $?
michael@428 782 ( cd curl-%{V_curl}
michael@428 783 ${l_patch} -p0 <`SOURCE curl.patch`
michael@428 784 ) || exit $?
michael@428 785 ( cd pcre-%{V_pcre}
michael@428 786 ${l_patch} -p0 <`SOURCE pcre.patch`
michael@428 787 ) || exit $?
michael@428 788 ( cd diffutils-%{V_diffutils}
michael@428 789 ${l_patch} -p0 <`SOURCE diffutils.patch`
michael@428 790 ) || exit $?
michael@428 791 ( cd libarchive-%{V_libarchive}
michael@428 792 ${l_patch} -p0 <`SOURCE libarchive.patch`
michael@428 793 ) || exit $?
michael@428 794 ( cd zlib-%{V_zlib}
michael@428 795 ${l_patch} -p0 <`SOURCE zlib.patch`
michael@428 796 ) || exit $?
michael@428 797 ( cd xz-%{V_xz}
michael@428 798 ${l_patch} -p0 <`SOURCE xz.patch`
michael@428 799 ) || exit $?
michael@13 800
michael@13 801 # display verbosity header
michael@13 802 set +x; VERBOSE "PREPARATION: Build GNU make (Build Tool)"; set -x
michael@13 803
michael@13 804 # bootstrap GNU make tool
michael@13 805 ( cd make-%{V_make}
michael@13 806 CC="${l_cc}" \
michael@13 807 ./configure \
michael@13 808 --without-libiconv-prefix \
michael@13 809 --without-libintl-prefix \
michael@13 810 --disable-nls \
michael@13 811 --disable-largefile
michael@13 812 ${l_make}
michael@13 813 ( mv make ..; ${l_make} clean || true; mv ../make . ) || exit $?
michael@13 814 ) || exit $?
michael@13 815 l_make="`pwd`/make-%{V_make}/make"; export l_make
michael@13 816 echo "l_make=\"$l_make\"; export l_make" >>.buildenv
michael@13 817
michael@13 818 %build
michael@13 819 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 820 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 821
michael@13 822 # switch into a temporary build area
michael@13 823 cd openpkg-%{version}
michael@13 824 . ./.buildenv
michael@13 825
michael@13 826 # display verbosity header
michael@444 827 set +x; VERBOSE "BUILD: Build GNU bash (Bourne-again Shell)"; set -x
michael@13 828
michael@13 829 # build GNU bash tool
michael@13 830 ( cd bash-%{V_bash}
michael@13 831 sh $shtool subst \
michael@13 832 -e 's;@l_openpkg_release@;OpenPKG;' \
michael@13 833 version.c
michael@444 834 ( # force disabled wide character support
michael@13 835 echo "ac_cv_header_wchar_h=no"
michael@13 836 echo "ac_cv_header_wctype_h=no"
michael@13 837 echo "ac_cv_func_mbsrtowcs=no"
michael@13 838 # force disabled internationalization support
michael@13 839 echo "ac_cv_header_libintl_h=no"
michael@13 840 echo "ac_cv_func_gettext=no"
michael@13 841 echo "ac_cv_func_textdomain=no"
michael@13 842 echo "ac_cv_func_bindtextdomain=no"
michael@13 843 echo "ac_cv_lib_intl_bindtextdomain=no"
michael@13 844 # disable building with debug symbols
michael@13 845 echo "ac_cv_prog_cc_g=no"
michael@13 846 ) >config.cache
michael@428 847 AUTOCONF="true"
michael@428 848 export AUTOCONF
michael@428 849 CC="${l_cc}"
michael@428 850 export CC
michael@428 851 case "$plid" in
michael@472 852 Darwin/* ) LDFLAGS="-Wl,-search_paths_first" ;;
michael@428 853 esac
michael@13 854 ./configure \
michael@13 855 --cache-file=./config.cache \
michael@13 856 --prefix=%{l_prefix} \
michael@13 857 --without-curses \
michael@13 858 --without-gnu-malloc \
michael@13 859 --disable-nls
michael@13 860 ${l_make} || exit $?
michael@13 861 ( mv bash ..; ${l_make} clean || true; mv ../bash . ) || exit $?
michael@13 862 ) || exit $?
michael@13 863
michael@13 864 # display verbosity header
michael@13 865 set +x; VERBOSE "BUILD: Build GNU bzip2 (Compression Library)"; set -x
michael@13 866
michael@13 867 # build BZIP2 library
michael@13 868 ( cd bzip2-%{V_bzip2}
michael@472 869 ${l_make} CC="${l_cc}" CFLAGS="-O" libbz2.a bzip2 || exit $?
michael@13 870 ( echo "# libbz2.la - a libtool library file"
michael@13 871 echo "# Generated by ltmain.sh - GNU libtool x.x.x"
michael@13 872 echo "dlname=''"
michael@13 873 echo "library_names=''"
michael@13 874 echo "old_library='libbz2.a'"
michael@13 875 echo "dependency_libs=''"
michael@13 876 echo "current=0"
michael@13 877 echo "age=0"
michael@13 878 echo "revision=0"
michael@13 879 echo "installed=no"
michael@13 880 echo "dlopen=''"
michael@13 881 echo "dlpreopen=''"
michael@13 882 echo "libdir='%{l_prefix}'"
michael@13 883 ) >libbz2.la
michael@13 884 ln -s . .libs
michael@13 885 ) || exit $?
michael@13 886
michael@13 887 # display verbosity header
michael@13 888 set +x; VERBOSE "BUILD: Build Zlib (Compression Library)"; set -x
michael@13 889
michael@13 890 # build ZLIB library
michael@13 891 ( cd zlib-%{V_zlib}
michael@472 892 CC="${l_cc}" CFLAGS="-O" ./configure
michael@13 893 ${l_make} CC="${l_cc}" libz.a || exit $? # intentionally do not pass CFLAGS here
michael@13 894 ) || exit $?
michael@13 895
michael@13 896 # display verbosity header
michael@428 897 set +x; VERBOSE "BUILD: Build XZ (Compression Library)"; set -x
michael@428 898
michael@428 899 # build XZ library
michael@428 900 ( cd xz-%{V_xz}
michael@428 901 opts=""
michael@428 902 case "$plid" in
michael@428 903 Darwin/* ) opts="--disable-assembler" ;;
michael@428 904 esac
michael@428 905 CC="${l_cc}" \
michael@472 906 CFLAGS="-O" \
michael@428 907 ./configure \
michael@428 908 --prefix=%{l_prefix} \
michael@429 909 --libdir="%{l_prefix}/lib" \
michael@428 910 --mandir=%{l_prefix}/man \
michael@428 911 --without-libiconv-prefix \
michael@428 912 --without-libintl-prefix \
michael@428 913 --disable-nls \
michael@428 914 --disable-shared \
michael@428 915 $opts
michael@428 916 ${l_make} || exit $?
michael@428 917 ) || exit $?
michael@428 918
michael@428 919 # display verbosity header
michael@13 920 set +x; VERBOSE "BUILD: Build OSSP uuid (UUID Generation Tool)"; set -x
michael@13 921
michael@13 922 # build OSSP uuid tool
michael@13 923 ( cd uuid-%{V_uuid}
michael@13 924 CC="${l_cc}" \
michael@472 925 CFLAGS="-O" \
michael@13 926 GREP="grep" \
michael@13 927 ./configure \
michael@13 928 --prefix=%{l_prefix} \
michael@13 929 --disable-shared
michael@13 930 ${l_make} || exit $?
michael@13 931 ) || exit $?
michael@13 932
michael@13 933 # display verbosity header
michael@13 934 set +x; VERBOSE "BUILD: Build Perl (Programming Language)"; set -x
michael@13 935
michael@13 936 # build Perl tool
michael@13 937 ( cd perl-%{V_perl}
michael@13 938 chmod -R u+w .
michael@13 939 sh $shtool subst \
michael@13 940 -e 's;\(.*for thislib in $libswanted.*\);libswanted=`echo " $libswanted " | sed -e "s/ bind / /g" -e "s/ db / /g" -e "s/ gdbm / /g" -e "s/ iconv / /g"`\; \1;' \
michael@13 941 -e 's;package=perl5;package=perl;' \
michael@13 942 Configure
michael@13 943 sh $shtool subst \
michael@13 944 -e 's; */usr/local/lib;;' \
michael@13 945 hints/freebsd.sh hints/netbsd.sh
michael@13 946 libdirs=""
michael@13 947 for dir in %{l_prefix}/lib /lib64 /usr/lib64 /lib /usr/lib /usr/ccs/lib; do
michael@13 948 [ -d $dir ] && libdirs="$libdirs $dir"
michael@13 949 done
michael@13 950 ./Configure \
michael@13 951 -d -e -s \
michael@13 952 -Dprefix=%{l_prefix} \
michael@13 953 -Dvendorprefix=%{l_prefix} \
michael@13 954 -Dinstallprefix=%{l_prefix} \
michael@13 955 -Dinstallstyle="lib/perl5" \
michael@13 956 -Dman1dir=%{l_prefix}/man/man1 \
michael@13 957 -Dman3dir=%{l_prefix}/man/man3 \
michael@13 958 -Dcc="${l_cc}" -Uoptimize \
michael@13 959 -Dlocincpth="%{l_prefix}/include" \
michael@13 960 -Dloclibpth="%{l_prefix}/lib" \
michael@13 961 -Dldflags="-L""%{l_prefix}/lib" \
michael@13 962 -Dlibpth="$libdirs" \
michael@13 963 -Dglibpth="$libdirs" \
michael@13 964 -Dscriptdir="%{l_prefix}/bin" \
michael@13 965 -Uinstallusrbinperl \
michael@13 966 -Adefine:useshrplib='false' \
michael@13 967 -Ui_malloc -Ui_iconv -Ui_db
michael@428 968 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@428 969 *-cygwin* ) miniperl="miniperl.exe" ;;
michael@428 970 * ) miniperl="miniperl" ;;
michael@428 971 esac
michael@428 972 ${l_make} $miniperl || exit $?
michael@13 973 rm -f *.o >/dev/null 2>&1 || true
michael@13 974 ) || exit $?
michael@13 975 l_perl="`pwd`/perl-%{V_perl}/miniperl"; export l_perl
michael@13 976 echo "l_perl=\"$l_perl\"; export l_perl" >>.buildenv
michael@13 977
michael@13 978 # display verbosity header
michael@13 979 set +x; VERBOSE "BUILD: Build OpenSSL (Crypography and SSL/TLS Toolkit)"; set -x
michael@13 980
michael@13 981 # build OpenSSL toolkit
michael@13 982 ( cd openssl-%{V_openssl}
michael@13 983 sh $shtool subst \
michael@472 984 -e 's;-m64 *;;g' \
michael@472 985 -e 's;-xarch=amd64 *;;g' \
michael@13 986 -e 's;-m486;-march=i486;g' \
michael@13 987 -e 's;BN_LLONG *;;' \
michael@13 988 Configure
michael@13 989 sh $shtool subst \
michael@13 990 -e 's;test "$OSTYPE" = msdosdjgpp;true;' \
michael@13 991 util/point.sh
michael@13 992 sh $shtool subst \
michael@13 993 -e "1s;^.*\$;#!$l_perl;" \
michael@13 994 Configure `find . -name "*.pl" -print`
michael@13 995 opts=""
michael@13 996 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@13 997 *-solaris* ) opts="-lnsl -lsocket" ;;
michael@13 998 esac
michael@13 999 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@13 1000 amd64-* ) opts="$opts -fPIC" ;;
michael@13 1001 ia64-* ) opts="$opts -fPIC" ;;
michael@13 1002 sparc64-freebsd* ) opts="$opts -fPIC" ;;
michael@13 1003 esac
michael@13 1004 CC="${l_cc}" \
michael@13 1005 PERL="${l_perl}" \
michael@13 1006 ./config \
michael@13 1007 --prefix=%{l_prefix} \
michael@13 1008 no-asm no-shared no-dso \
michael@13 1009 no-zlib no-idea no-threads no-krb5 no-hw \
michael@13 1010 $opts
michael@13 1011 ${l_make} CC="${l_cc}" build_libs build_apps || exit $?
michael@13 1012 ( mkdir lib; cd lib; ln -s ../lib*.a . ) || exit $?
michael@13 1013 ) || exit $?
michael@13 1014
michael@428 1015 # build BSD libarchive
michael@428 1016 ( cd libarchive-%{V_libarchive}
michael@438 1017 sh $shtool subst \
michael@438 1018 -e 's;\(AM_CFLAGS =\) -Wall;\1;' \
michael@438 1019 Makefile.in
michael@428 1020 CC="${l_cc}" \
michael@472 1021 CFLAGS="-O -D_POSIX_PTHREAD_SEMANTICS" \
michael@428 1022 CPPFLAGS="-I`pwd`/../zlib-%{V_zlib} -I`pwd`/../bzip2-%{V_bzip2} -I`pwd`/../xz-%{V_xz}/src/liblzma/api -I`pwd`/../openssl-%{V_openssl}/include" \
michael@472 1023 LDFLAGS="-L`pwd`/../zlib-%{V_zlib} -L`pwd`/../bzip2-%{V_bzip2} -L`pwd`/../xz-%{V_xz}/src/liblzma/.libs -L`pwd`/../openssl-%{V_openssl}" \
michael@428 1024 GREP="grep" \
michael@428 1025 ./configure \
michael@428 1026 --prefix=%{l_prefix} \
michael@429 1027 --libdir="%{l_prefix}/lib" \
michael@428 1028 --enable-bsdtar \
michael@428 1029 --enable-bsdcpio \
michael@428 1030 --with-zlib \
michael@428 1031 --with-bz2lib \
michael@428 1032 --with-lzma \
michael@428 1033 --without-lzmadec \
michael@428 1034 --with-openssl \
michael@428 1035 --without-xml2 \
michael@428 1036 --without-expat \
michael@428 1037 --without-iconv \
michael@428 1038 --disable-shared
michael@428 1039 ${l_make} || exit $?
michael@428 1040 ( mv bsdcpio bsdtar ..; ${l_make} clean || true; mv ../bsdcpio ../bsdtar . ) || exit $?
michael@428 1041 ) || exit $?
michael@428 1042
michael@428 1043 # build GNU diffutils
michael@428 1044 ( cd diffutils-%{V_diffutils}
michael@428 1045 CC="${l_cc}" \
michael@472 1046 CFLAGS="-O" \
michael@428 1047 ./configure \
michael@428 1048 --prefix=%{l_prefix} \
michael@428 1049 --disable-nls
michael@439 1050 touch man/diff.1 man/diff3.1 && ${l_make} || exit $?
michael@428 1051 ( mv src/diff src/diff3 src/sdiff src/cmp ..
michael@428 1052 ${l_make} clean || true
michael@428 1053 mv ../diff ../diff3 ../sdiff ../cmp .
michael@428 1054 ) || exit $?
michael@428 1055 ) || exit $?
michael@428 1056
michael@13 1057 # display verbosity header
michael@13 1058 set +x; VERBOSE "BUILD: Build cURL (URL Fetching Tool)"; set -x
michael@13 1059
michael@13 1060 # build cURL tool
michael@13 1061 ( cd curl-%{V_curl}
michael@13 1062 ( echo 'ac_cv_header_openssl_engine_h=no'
michael@13 1063 echo 'lt_cv_prog_compiler_c_o_F77=no'
michael@13 1064 echo 'lt_cv_sys_max_cmd_len=100'
michael@13 1065 ) >config.cache
michael@13 1066 CC="${l_cc}" \
michael@472 1067 CFLAGS="-I`pwd`/../zlib-%{V_zlib}" \
michael@13 1068 CPPFLAGS="-I`pwd`/../zlib-%{V_zlib}" \
michael@472 1069 LDFLAGS="-L`pwd`/../zlib-%{V_zlib}" \
michael@13 1070 GREP="grep" \
michael@13 1071 ./configure \
michael@13 1072 --cache-file=./config.cache \
michael@429 1073 --libdir="%{l_prefix}/lib" \
michael@13 1074 --without-libidn \
michael@13 1075 --disable-shared \
michael@13 1076 --disable-thread \
michael@13 1077 --disable-ipv6 \
michael@13 1078 --disable-ldap \
michael@13 1079 --with-zlib=`pwd`/../zlib-%{V_zlib} \
michael@13 1080 --with-ssl=`pwd`/../openssl-%{V_openssl} \
michael@13 1081 --with-ca-bundle=%{l_prefix}/etc/openpkg/openpkg.x509
michael@13 1082 ${l_make} || exit $?
michael@428 1083 mv src/curl ..; ${l_make} clean || true; mv ../curl .
michael@428 1084 ) || exit $?
michael@428 1085
michael@428 1086 # build PCRE library
michael@428 1087 ( cd pcre-%{V_pcre}
michael@428 1088 CC="${l_cc}" \
michael@472 1089 CFLAGS="-O" \
michael@428 1090 GREP="grep" \
michael@428 1091 ./configure \
michael@428 1092 --disable-cpp \
michael@428 1093 --disable-utf8 \
michael@428 1094 --disable-shared
michael@428 1095 ${l_make} || exit $?
michael@13 1096 ) || exit $?
michael@13 1097
michael@13 1098 # display verbosity header
michael@13 1099 set +x; VERBOSE "BUILD: Build BeeCrypt (Cryptography Library)"; set -x
michael@13 1100
michael@13 1101 # build BeeCrypt library
michael@13 1102 ( cd beecrypt-%{V_beecrypt}
michael@13 1103 sh $shtool subst \
michael@13 1104 -e 's;^[ ][ ]*#;#;' \
michael@428 1105 aes.c base64.c blockmode.c blowfish.c entropy.c fips186.c md4.c md5.c \
michael@428 1106 mp.c mtprng.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c \
michael@428 1107 sha1.c sha224.c sha256.c sha2k64.c sha384.c sha512.c timestamp.c
michael@13 1108 sh $shtool subst \
michael@13 1109 -e 's;cppglue\.lo;;g' \
michael@13 1110 -e 's;cppglue\.cxx;;g' \
michael@13 1111 -e '/^CXX = /s;@CXX@;@CC@;g' \
michael@13 1112 Makefile.in
michael@13 1113 ( echo 'ac_cv_have_dev_dsp=no'
michael@13 1114 echo 'ac_cv_have_dev_audio=no'
michael@13 1115 echo 'ac_cv_func_gettimeofday=yes'
michael@13 1116 echo 'bc_cv_as_noexecstack=no'
michael@13 1117 ) >config.cache
michael@13 1118 CC="${l_cc}" \
michael@472 1119 CFLAGS="-O" \
michael@13 1120 ./configure \
michael@13 1121 --cache-file=./config.cache \
michael@13 1122 --prefix=%{l_prefix} \
michael@429 1123 --libdir="%{l_prefix}/lib" \
michael@428 1124 --with-cpu=none \
michael@428 1125 --with-arch=none \
michael@13 1126 --without-cplusplus \
michael@13 1127 --without-java \
michael@13 1128 --without-python \
michael@428 1129 --disable-expert-mode \
michael@428 1130 --disable-aio \
michael@428 1131 --disable-openmp \
michael@13 1132 --disable-threads \
michael@13 1133 --disable-shared
michael@13 1134 ${l_make} || exit $?
michael@13 1135 cp .libs/libbeecrypt.a .
michael@13 1136 ) || exit $?
michael@13 1137
michael@13 1138 # display verbosity header
michael@428 1139 set +x; VERBOSE "BUILD: Build POPT (Option Parsing Library)"; set -x
michael@428 1140
michael@428 1141 # build POPT library
michael@428 1142 ( cd popt-%{V_popt}
michael@428 1143 CC="${l_cc}" \
michael@472 1144 CFLAGS="-O" \
michael@428 1145 CPPFLAGS="-DOPENPKG -DPOPT_fprintf=fprintf" \
michael@428 1146 GREP="grep" \
michael@428 1147 ./configure \
michael@428 1148 --prefix=%{l_prefix} \
michael@429 1149 --libdir="%{l_prefix}/lib" \
michael@428 1150 --disable-shared \
michael@428 1151 --with-included-gettext \
michael@428 1152 --without-libintl-prefix \
michael@428 1153 --without-libiconv-prefix \
michael@428 1154 --disable-nls
michael@428 1155 ${l_make}
michael@428 1156 ) || exit $?
michael@428 1157
michael@428 1158 # display verbosity header
michael@428 1159 set +x; VERBOSE "BUILD: Build SQLite (RDBMS Library)"; set -x
michael@428 1160
michael@428 1161 # build SQLite library
michael@428 1162 ( cd sqlite-%{V_sqlite}
michael@428 1163 CC="${l_cc}" \
michael@472 1164 CFLAGS="-O" \
michael@428 1165 LIBS="-lm" \
michael@428 1166 GREP="grep" \
michael@428 1167 ./configure \
michael@428 1168 --prefix=%{l_prefix} \
michael@429 1169 --libdir="%{l_prefix}/lib" \
michael@428 1170 --disable-threadsafe \
michael@428 1171 --disable-readline \
michael@428 1172 --disable-debug \
michael@428 1173 --disable-amalgamation \
michael@428 1174 --disable-tcl \
michael@428 1175 --disable-shared
michael@428 1176 ${l_make}
michael@428 1177 ) || exit $?
michael@428 1178
michael@428 1179 # display verbosity header
michael@13 1180 set +x; VERBOSE "BUILD: Build RPM (RPM Package Manager)"; set -x
michael@13 1181
michael@13 1182 # build RPM
michael@13 1183 ( br=`pwd`
michael@428 1184 cd rpm-%{V_rpm_major}.%{V_rpm_minor}
michael@13 1185
michael@436 1186 # remove unused and undefined methods
michael@436 1187 sh $shtool subst \
michael@436 1188 -e 's;^\(#include *<[^>][^>]*>\);/*\1*/;g' \
michael@436 1189 rpmconstant/rpmconstant.h
michael@436 1190
michael@470 1191 # Avoid bugs causing 'fatal problems'
michael@470 1192 sh $shtool subst \
michael@470 1193 -e 's;\(rc = INTEGRITY\)_ERROR;\1_OK;g' \
michael@470 1194 -e 's;integrity_check_message("%s\\n", result);((void)0);g' \
michael@470 1195 rpmqv.c
michael@470 1196
michael@435 1197 # provide nonstandard constructs
michael@435 1198 cat > nonstandard.h <<EOF
michael@435 1199 /* MSvB: define missing nonstandard GCC builtin extensions */
michael@435 1200 #ifndef __GNUC__
michael@435 1201 #define __builtin_expect(e,n) (e)
michael@435 1202 #endif /* ifndef __GNUC__ */
michael@435 1203 EOF
michael@435 1204
michael@13 1205 # cheat GNU Autoconf
michael@13 1206 ( echo 'ac_cv_path_MSGFMT=:'
michael@13 1207 echo 'ac_cv_path_GMSGFMT=:'
michael@13 1208 echo 'ac_cv_path_XGETTEXT=:'
michael@13 1209 echo 'ac_cv_path_MSGMERGE=:'
michael@13 1210 echo "ac_cv_header_getopt_h=no"
michael@428 1211 echo "ac_cv_lib_gz_gzread=no"
michael@13 1212 ) >config.cache
michael@13 1213
michael@428 1214 # use miniperl
michael@428 1215 PERL="${l_perl}"
michael@428 1216 export PERL
michael@13 1217
michael@13 1218 # set build tool flags
michael@13 1219 CC="${l_cc}"
michael@472 1220 CFLAGS=""
michael@428 1221 CPPFLAGS="-DRPM_VENDOR_OPENPKG"
michael@472 1222 LDFLAGS=""
michael@428 1223 LIBS=""
michael@428 1224 LIBS="$LIBS -lm"
michael@428 1225 export CC
michael@428 1226 export CFLAGS
michael@428 1227 export CPPFLAGS
michael@428 1228 export LDFLAGS
michael@428 1229 export LIBS
michael@13 1230
michael@428 1231 # special platform workarounds
michael@428 1232 GREP="grep"
michael@428 1233 export GREP
michael@428 1234
michael@428 1235 # determine POPT option, RPM macros and Lua script file paths
michael@428 1236 RPMPOPT="%{l_prefix}/lib/openpkg/rpmpopt"
michael@428 1237 RPMPOPT="$RPMPOPT:%{l_prefix}/etc/openpkg/rpmpopt"
michael@428 1238 RPMPOPT="$RPMPOPT:%{l_prefix}/etc/openpkg/rpmpopt.d/*"
michael@428 1239 RPMPOPT="$RPMPOPT:~/.openpkg/rpmpopt"
michael@428 1240 RPMPOPT="$RPMPOPT:@../../.openpkg/rpmpopt"
michael@428 1241 RPMPOPT="$RPMPOPT:@../.openpkg/rpmpopt"
michael@428 1242 RPMPOPT="$RPMPOPT:@./.openpkg/rpmpopt"
michael@428 1243 RPMMACROS="%{l_prefix}/lib/openpkg/rpmmacros"
michael@428 1244 RPMMACROS="$RPMMACROS:%{l_prefix}/etc/openpkg/rpmmacros"
michael@428 1245 RPMMACROS="$RPMMACROS:%{l_prefix}/etc/openpkg/rpmmacros.d/*"
michael@428 1246 RPMMACROS="$RPMMACROS:~/.openpkg/rpmmacros"
michael@428 1247 RPMMACROS="$RPMMACROS:@../../.openpkg/rpmmacros"
michael@428 1248 RPMMACROS="$RPMMACROS:@../.openpkg/rpmmacros"
michael@428 1249 RPMMACROS="$RPMMACROS:@./.openpkg/rpmmacros"
michael@428 1250 RPMLUA="%{l_prefix}/lib/openpkg/rpmlua"
michael@428 1251 RPMLUA="$RPMLUA:%{l_prefix}/etc/openpkg/rpmlua"
michael@428 1252 RPMLUA="$RPMLUA:%{l_prefix}/etc/openpkg/rpmlua.d/*"
michael@428 1253 RPMLUA="$RPMLUA:~/.openpkg/rpmlua"
michael@428 1254 RPMLUA="$RPMLUA:@../../.openpkg/rpmlua"
michael@428 1255 RPMLUA="$RPMLUA:@../.openpkg/rpmlua"
michael@428 1256 RPMLUA="$RPMLUA:@./.openpkg/rpmlua"
michael@428 1257
michael@428 1258 # parametrize integrity checking framework
michael@13 1259 sh $shtool subst \
michael@428 1260 -e "s;0000000000000000000000000000000000000000;7D121A8FC05DC18A4329E9EF67042EC961B7AE34;" \
michael@428 1261 -e "s;0\\.0\\.0;0.9.0;" \
michael@428 1262 rpmqv.c
michael@428 1263
michael@428 1264 # disable building of any tests
michael@428 1265 # (mainly because those would fail because of integrity checking anyway)
michael@13 1266 sh $shtool subst \
michael@428 1267 -e 's;tools scripts tests doc;tools scripts doc;' \
michael@333 1268 Makefile.in
michael@13 1269
michael@428 1270 # configure program
michael@428 1271 ./configure \
michael@13 1272 --cache-file=./config.cache \
michael@13 1273 --prefix=%{l_prefix} \
michael@429 1274 --libdir="%{l_prefix}/lib" \
michael@428 1275 --mandir="%{l_prefix}/man" \
michael@428 1276 --includedir="%{l_prefix}/include/openpkg" \
michael@428 1277 --with-name="OpenPKG RPM" \
michael@428 1278 --with-path-cfg="%{l_prefix}/etc/openpkg" \
michael@428 1279 --with-path-rpmpopt="$RPMPOPT" \
michael@428 1280 --with-path-macros="$RPMMACROS" \
michael@428 1281 --with-path-rpmlua="$RPMLUA" \
michael@428 1282 --with-path-lib="%{l_prefix}/lib/openpkg" \
michael@428 1283 --with-path-locale="%{l_prefix}/share/openpkg/locale" \
michael@428 1284 --with-path-database="%{l_prefix}/RPM/DB" \
michael@428 1285 --with-path-sources="%{l_prefix}/RPM" \
michael@428 1286 --with-bugreport="openpkg-users@openpkg.org" \
michael@428 1287 --with-beecrypt="$br/beecrypt-%{V_beecrypt}" \
michael@428 1288 --with-openssl="$br/openssl-%{V_openssl}" \
michael@428 1289 --with-zlib="$br/zlib-%{V_zlib}" \
michael@428 1290 --with-bzip2="$br/bzip2-%{V_bzip2}" \
michael@428 1291 --with-popt="$br/popt-%{V_popt}" \
michael@428 1292 --with-sqlite="$br/sqlite-%{V_sqlite}" \
michael@428 1293 --with-pcre="$br/pcre-%{V_pcre}" \
michael@428 1294 --with-uuid="$br/uuid-%{V_uuid}" \
michael@428 1295 --with-lua="internal" \
michael@428 1296 --with-db="internal" \
michael@428 1297 --without-db-rpc \
michael@428 1298 --without-db-largefile \
michael@428 1299 --with-db-tools-integrated \
michael@428 1300 --with-db-mutex="UNIX/fcntl" \
michael@428 1301 --without-file \
michael@428 1302 --without-neon \
michael@428 1303 --without-pthreads \
michael@428 1304 --without-libelf \
michael@428 1305 --without-selinux \
michael@428 1306 --without-perl \
michael@13 1307 --without-python \
michael@13 1308 --without-apidocs \
michael@428 1309 --disable-build-warnings \
michael@428 1310 --disable-build-extlibdep \
michael@428 1311 --disable-build-intlibdep \
michael@428 1312 --disable-build-lafiles \
michael@13 1313 --disable-shared \
michael@13 1314 --disable-rpath \
michael@13 1315 --disable-nls
michael@13 1316
michael@428 1317 # build program
michael@13 1318 ${l_make}
michael@13 1319 ) || exit $?
michael@13 1320
michael@13 1321 # display verbosity header
michael@444 1322 set +x; VERBOSE "BUILD: Build OpenPKG Frontend (Setuid Wrapper)"; set -x
michael@13 1323
michael@13 1324 # build "openpkg" executable
michael@428 1325 ${l_make} -f `SOURCE openpkg.mk` \
michael@13 1326 CC="${l_cc}" \
michael@13 1327 OPENPKG_PREFIX="%{l_prefix}" \
michael@13 1328 OPENPKG_SUSR="%{l_susr}" \
michael@428 1329 OPENPKG_MUSR="%{l_musr}" \
michael@428 1330 OPENPKG_DOT_C="`SOURCE openpkg.c`"
michael@428 1331
michael@428 1332 # display verbosity header
michael@428 1333 set +x; VERBOSE "BUILD: Build OpenPKG Mutual Exclusion (MutEx) Utility"; set -x
michael@428 1334
michael@428 1335 # build "mutex" executable
michael@428 1336 ${l_make} -f `SOURCE mutex.mk` \
michael@428 1337 CC="${l_cc}" \
michael@428 1338 CPPFLAGS="-Ipopt-%{V_popt}" \
michael@472 1339 LDFLAGS="-Lpopt-%{V_popt} -Lpopt-%{V_popt}/.libs" \
michael@428 1340 MUTEX_DOT_C="`SOURCE mutex.c`"
michael@13 1341
michael@13 1342 %install
michael@13 1343 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 1344 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 1345
michael@13 1346 # switch into a temporary build area
michael@13 1347 cd openpkg-%{version}
michael@13 1348 . ./.buildenv
michael@13 1349
michael@13 1350 # display verbosity header
michael@13 1351 set +x; VERBOSE "INSTALL: Create Installation Filesystem Hierarchy"; set -x
michael@13 1352
michael@13 1353 # create installation hierarchy
michael@13 1354 rm -rf $RPM_BUILD_ROOT
michael@13 1355 sh $shtool mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}
michael@13 1356 for dir in bin etc include info lib libexec man sbin share var cgi pub local; do
michael@13 1357 test -d $RPM_BUILD_ROOT%{l_prefix}/$dir || \
michael@13 1358 mkdir $RPM_BUILD_ROOT%{l_prefix}/$dir
michael@13 1359 done
michael@13 1360 for i in 1 2 3 4 5 6 7 8 9; do
michael@13 1361 test -d $RPM_BUILD_ROOT%{l_prefix}/man/man$i || \
michael@13 1362 mkdir $RPM_BUILD_ROOT%{l_prefix}/man/man$i
michael@13 1363 test -d $RPM_BUILD_ROOT%{l_prefix}/man/cat$i || \
michael@13 1364 mkdir $RPM_BUILD_ROOT%{l_prefix}/man/cat$i
michael@13 1365 done
michael@13 1366 for dir in PKG bin etc include info lib man sbin; do
michael@13 1367 test -d $RPM_BUILD_ROOT%{l_prefix}/local/$dir || \
michael@13 1368 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/$dir
michael@13 1369 done
michael@13 1370 for i in 1 2 3 4 5 6 7 8 9; do
michael@13 1371 test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i || \
michael@13 1372 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i
michael@13 1373 test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i || \
michael@13 1374 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i
michael@13 1375 done
michael@13 1376 test -d $RPM_BUILD_ROOT%{l_prefix}/RPM || \
michael@13 1377 mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM
michael@428 1378 for dir in SRC PKG DB TR TMP; do
michael@13 1379 test -d $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir || \
michael@13 1380 mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir
michael@13 1381 done
michael@13 1382 mkdir $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg
michael@13 1383
michael@13 1384 # display verbosity header
michael@13 1385 set +x; VERBOSE "INSTALL: Installation of RPM"; set -x
michael@13 1386
michael@13 1387 # install RPM into installation hierarchy
michael@428 1388 ( cd rpm-%{V_rpm_major}.%{V_rpm_minor}
michael@428 1389 ${l_make} install DESTDIR="$RPM_BUILD_ROOT"
michael@428 1390 cp lua/rpmlua $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/lua
michael@428 1391 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/lua
michael@13 1392 ) || exit $?
michael@13 1393
michael@444 1394 # postadjust RPM installation
michael@428 1395 mv $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/macros \
michael@428 1396 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmmacros
michael@428 1397
michael@13 1398 # display verbosity header
michael@13 1399 set +x; VERBOSE "INSTALL: Install Additional Files"; set -x
michael@13 1400
michael@13 1401 # add additional development files
michael@428 1402 cp rpm-%{V_rpm_major}.%{V_rpm_minor}/rpmio/glob.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1403 cp zlib-%{V_zlib}/zlib.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1404 cp zlib-%{V_zlib}/zconf.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1405 cp zlib-%{V_zlib}/libz.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmz.a
michael@428 1406 cp bzip2-%{V_bzip2}/bzlib.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1407 cp bzip2-%{V_bzip2}/libbz2.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbz2.a
michael@428 1408 cp beecrypt-%{V_beecrypt}/include/beecrypt/beecrypt.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1409 cp beecrypt-%{V_beecrypt}/libbeecrypt.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbeecrypt.a
michael@428 1410 cp popt-%{V_popt}/popt.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1411 cp popt-%{V_popt}/.libs/libpopt.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmpopt.a
michael@428 1412 cp sqlite-%{V_sqlite}/sqlite3.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1413 cp sqlite-%{V_sqlite}/.libs/libsqlite3.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmsqlite3.a
michael@13 1414
michael@13 1415 # display verbosity header
michael@444 1416 set +x; VERBOSE "INSTALL: Postadjust Installation"; set -x
michael@13 1417
michael@13 1418 # move C API into custom locations
michael@13 1419 mv $RPM_BUILD_ROOT%{l_prefix}/lib/librpm* \
michael@13 1420 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1421 mv $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/rpm.pc \
michael@428 1422 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1423 # FIXME: does the rpm.pc really work this way?
michael@13 1424
michael@13 1425 # move rpm tool to custom location
michael@13 1426 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm \
michael@13 1427 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@13 1428 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm.8 \
michael@13 1429 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm.8
michael@428 1430 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm >/dev/null 2>&1 || true
michael@13 1431
michael@13 1432 # move rpm2cpio tool to custom location
michael@13 1433 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm2cpio \
michael@13 1434 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio
michael@13 1435 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm2cpio.8 \
michael@13 1436 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio.8
michael@428 1437 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio >/dev/null 2>&1 || true
michael@13 1438
michael@428 1439 # move rpmconstant tool to custom location
michael@428 1440 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmconstant \
michael@428 1441 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant
michael@428 1442 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmconstant.8 \
michael@428 1443 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant.8
michael@428 1444 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant >/dev/null 2>&1 || true
michael@428 1445
michael@428 1446 # move rpmcache tool to custom location
michael@428 1447 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmcache \
michael@428 1448 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache
michael@428 1449 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmcache.8 \
michael@428 1450 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache.8
michael@428 1451 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache >/dev/null 2>&1 || true
michael@428 1452
michael@428 1453 # move rpmgrep tool to custom location
michael@428 1454 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmgrep \
michael@428 1455 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep
michael@428 1456 mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/rpmgrep.1 \
michael@428 1457 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep.1
michael@428 1458 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep >/dev/null 2>&1 || true
michael@428 1459
michael@428 1460 # move manual pages to custom location
michael@428 1461 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmdeps.8 \
michael@428 1462 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmdeps.8
michael@428 1463 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmgraph.8 \
michael@428 1464 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgraph.8
michael@13 1465 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmbuild.8 \
michael@13 1466 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmbuild.8
michael@13 1467
michael@13 1468 # display verbosity header
michael@13 1469 set +x; VERBOSE "INSTALL: Stripping Down Installation"; set -x
michael@13 1470
michael@13 1471 # strip RPM installation
michael@13 1472 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/* \
michael@13 1473 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/* >/dev/null 2>&1 || true
michael@428 1474 for file in rpmbuild gendiff; do
michael@13 1475 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$file >/dev/null 2>&1 || true
michael@13 1476 done
michael@428 1477 for dir in RPMS SRPMS SPEC SOURCES BUILD; do
michael@428 1478 rm -rf $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir >/dev/null 2>&1 || true
michael@428 1479 done
michael@13 1480 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/* >/dev/null 2>&1 || true
michael@13 1481 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man3/* >/dev/null 2>&1 || true
michael@13 1482 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.la >/dev/null 2>&1 || true
michael@428 1483 rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig >/dev/null 2>&1 || true
michael@13 1484 for file in \
michael@428 1485 brp-compress brp-python-bytecompile brp-java-gcjcompile brp-strip brp-strip-comment-note \
michael@428 1486 brp-nobuildrootpath brp-strip-shared brp-strip-static-archive brp-sparc64-linux check-files \
michael@428 1487 cross-build executabledeps.sh find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
michael@428 1488 find-provides.perl find-requires.perl getpo.sh http.req javadeps.sh libtooldeps.sh mono-find-provides \
michael@428 1489 mono-find-requires osgideps.pl pkgconfigdeps.sh perldeps.pl perl.prov perl.req pythondeps.sh \
michael@428 1490 php.prov php.req rpmdb_loadcvt rpm.daily rpm.log rpm.xinetd symclash.py symclash.sh tgpg u_pkg.sh \
michael@428 1491 vpkg-provides.sh vpkg-provides2.sh install-sh mkinstalldirs; do
michael@428 1492 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$file >/dev/null 2>&1 || true
michael@428 1493 done
michael@428 1494 for file in \
michael@428 1495 db_archive db_checkpoint db_deadlock db_dump db_hotbackup db_load \
michael@428 1496 db_printlog db_recover db_stat db_upgrade db_verify; do
michael@13 1497 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$file >/dev/null 2>&1 || true
michael@13 1498 done
michael@13 1499
michael@13 1500 # display verbosity header
michael@13 1501 set +x; VERBOSE "INSTALL: Install Additional Tools"; set -x
michael@13 1502
michael@13 1503 # install lsync tool
michael@13 1504 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1505 <`SOURCE lsync` \
michael@13 1506 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync
michael@13 1507 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync
michael@13 1508 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1509 <`SOURCE dot.lsyncrc` \
michael@13 1510 >$RPM_BUILD_ROOT%{l_prefix}/local/.lsyncrc
michael@13 1511 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1512 <`SOURCE lsync.8` \
michael@13 1513 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync.8
michael@13 1514
michael@13 1515 # install rpm-config tool
michael@13 1516 ( l_prefix="%{l_prefix}"
michael@13 1517 l_cc="%{l_cc}"
michael@13 1518 l_cflags=""
michael@13 1519 l_cppflags="-DOPENPKG -I${l_prefix}/include/openpkg/rpm -I${l_prefix}/include/openpkg"
michael@13 1520 l_ldflags="-L${l_prefix}/lib/openpkg"
michael@428 1521 l_libs="-lrpmbuild -lrpm -lrpmio -lrpmdb -lrpmmisc -lrpmsqlite3 -lrpmpopt -lrpmbeecrypt -lrpmbz2 -lrpmz"
michael@13 1522 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1523 -e "s:@l_cc@:$l_cc:g" \
michael@13 1524 -e "s:@l_cflags@:$l_cflags:g" \
michael@13 1525 -e "s:@l_cppflags@:$l_cppflags:g" \
michael@13 1526 -e "s:@l_ldflags@:$l_ldflags:g" \
michael@13 1527 -e "s:@l_libs@:$l_libs:g" \
michael@428 1528 -e "s:@l_version@:%{V_rpm_major}.%{V_rpm_minor}:g" \
michael@13 1529 <`SOURCE rpm-config.sh` \
michael@13 1530 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config
michael@13 1531 ) || exit $?
michael@13 1532 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config
michael@428 1533 sed -e "s:RPM_VERSION:%{V_rpm_major}.%{V_rpm_minor}:g" \
michael@13 1534 <`SOURCE rpm-config.8` \
michael@13 1535 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config.8
michael@13 1536
michael@13 1537 # install OpenPKG registry commands
michael@428 1538 mv $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm \
michael@428 1539 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpm
michael@428 1540 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1541 `SOURCE rpm.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@428 1542 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@428 1543 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1544 `SOURCE register.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register
michael@428 1545 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register
michael@428 1546 cp `SOURCE register.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register.8
michael@13 1547
michael@428 1548 # allow GNU shtool to be called as "openpkg shtool" from external, too.
michael@428 1549 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1550 `SOURCE shtool.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/shtool.sh
michael@428 1551 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/shtool.sh
michael@428 1552
michael@428 1553 # install OpenPKG tool chain command subset
michael@428 1554 cp `SOURCE curl.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/curl.sh
michael@428 1555 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/curl.sh
michael@428 1556 cp `SOURCE build.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl
michael@428 1557 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl
michael@428 1558 cp `SOURCE build.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.8
michael@428 1559 cp `SOURCE index.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.pl
michael@428 1560 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.pl
michael@428 1561 cp `SOURCE index.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.8
michael@428 1562 cp `SOURCE search.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.pl
michael@428 1563 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.pl
michael@428 1564 cp `SOURCE search.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.8
michael@428 1565 cp `SOURCE mirror.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.pl
michael@428 1566 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.pl
michael@428 1567 cp `SOURCE mirror.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.8
michael@428 1568 cp `SOURCE makeproxy.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.pl
michael@428 1569 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.pl
michael@428 1570 cp `SOURCE makeproxy.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.8
michael@428 1571 cp `SOURCE lint-fsl.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 1572 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 1573 cp `SOURCE lint-rc.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 1574 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 1575 cp `SOURCE lint-rpm.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 1576 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 1577 cp `SOURCE lint-spec.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 1578 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 1579 cp `SOURCE dev.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.pl
michael@428 1580 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.pl
michael@428 1581 cp `SOURCE dev.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.8
michael@428 1582 cp `SOURCE sea.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.sh
michael@428 1583 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.sh
michael@428 1584 cp `SOURCE sea.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.8
michael@428 1585 cp `SOURCE stack.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.sh
michael@428 1586 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.sh
michael@428 1587 cp `SOURCE stack.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.8
michael@13 1588
michael@13 1589 # install RPM extension
michael@13 1590 ( cd perl-%{V_perl}
michael@13 1591 cp miniperl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl
michael@13 1592 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl
michael@13 1593 ) || exit $?
michael@13 1594 ( cd openssl-%{V_openssl}
michael@13 1595 cp apps/openssl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl
michael@13 1596 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl
michael@13 1597 ) || exit $?
michael@13 1598 ( cd curl-%{V_curl}
michael@428 1599 cp curl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl
michael@13 1600 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl
michael@13 1601 ) || exit $?
michael@13 1602 ( cd bzip2-%{V_bzip2}
michael@13 1603 cp bzip2 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2
michael@13 1604 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2
michael@13 1605 ) || exit $?
michael@13 1606 ( cd gzip-%{V_gzip}
michael@13 1607 cp gzip $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip
michael@13 1608 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip
michael@13 1609 ) || exit $?
michael@428 1610 ( cd xz-%{V_xz}
michael@428 1611 cp src/xz/xz $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/xz
michael@428 1612 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/xz
michael@428 1613 ) || exit $?
michael@13 1614 ( cd patch-%{V_patch}
michael@13 1615 cp patch $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch
michael@13 1616 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch
michael@13 1617 ) || exit $?
michael@13 1618 ( cd tar-%{V_tar}
michael@13 1619 cp tar $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar
michael@13 1620 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar
michael@13 1621 ) || exit $?
michael@13 1622 ( cd bash-%{V_bash}
michael@13 1623 cp bash $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
michael@13 1624 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
michael@13 1625 ) || exit $?
michael@13 1626 ( cd uuid-%{V_uuid}
michael@13 1627 cp uuid $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
michael@13 1628 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
michael@13 1629 ) || exit $?
michael@428 1630 ( cd sqlite-%{V_sqlite}
michael@428 1631 cp sqlite3 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/sqlite3
michael@428 1632 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/sqlite3
michael@428 1633 ) || exit $?
michael@428 1634 ( cd libarchive-%{V_libarchive}
michael@428 1635 cp bsdcpio $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdcpio
michael@428 1636 cp bsdtar $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdtar
michael@428 1637 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdcpio
michael@428 1638 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdtar
michael@428 1639 ) || exit $?
michael@428 1640 ( cd diffutils-%{V_diffutils}
michael@428 1641 ${l_strip} diff diff3 sdiff cmp
michael@428 1642 cp diff diff3 sdiff cmp $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1643 ) || exit $?
michael@428 1644 ( cd svs-%{V_svs}
michael@428 1645 sed -e "s;/bin/sh;%{l_prefix}/lib/openpkg/bash;" \
michael@428 1646 -e "s;^\( *\)\(diff \);\1%{l_prefix}/lib/openpkg/\2;" \
michael@428 1647 <svs.sh >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs
michael@428 1648 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs
michael@428 1649 cp svs.1 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs.1
michael@428 1650 ) || exit $?
michael@13 1651 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1652 -e "s;@l_musr@;%{l_musr};g" \
michael@13 1653 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@13 1654 <`SOURCE uuid.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid
michael@13 1655 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid
michael@13 1656 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1657 <`SOURCE uuid.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid.8
michael@13 1658 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1659 <`SOURCE release.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
michael@13 1660 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
michael@13 1661 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1662 <`SOURCE release.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release.8
michael@13 1663 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1664 -e "s;@l_musr@;%{l_musr};g" \
michael@13 1665 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@13 1666 <`SOURCE rpmdb` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb
michael@13 1667 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb
michael@13 1668 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1669 <`SOURCE rpmtool` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool
michael@13 1670 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool
michael@428 1671 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1672 -e "s;@l_musr@;%{l_musr};g" \
michael@428 1673 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@428 1674 <`SOURCE license.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license
michael@428 1675 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license
michael@428 1676 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1677 <`SOURCE license.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license.8
michael@13 1678
michael@13 1679 # install OpenPKG tool chain execution frontend and execution wrapper
michael@428 1680 cp openpkg $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1681 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1682 chmod 4775 $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1683 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1684 <`SOURCE openpkg.sh` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg
michael@13 1685 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg
michael@13 1686 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1687 <`SOURCE openpkg.1` \
michael@13 1688 >$RPM_BUILD_ROOT%{l_prefix}/man/man1/openpkg.1
michael@13 1689
michael@13 1690 # install more OpenPKG tool chain commands
michael@13 1691 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1692 <`SOURCE man.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man
michael@13 1693 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man
michael@13 1694
michael@428 1695 # install OpenPKG mutex utility
michael@428 1696 cp mutex $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/mutex
michael@428 1697
michael@13 1698 # install an own copy of shtool
michael@13 1699 cp $shtool $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool
michael@13 1700 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool
michael@13 1701
michael@13 1702 # display verbosity header
michael@13 1703 set +x; VERBOSE "INSTALL: Install Configuration Files"; set -x
michael@13 1704
michael@13 1705 # install a few README files
michael@13 1706 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1707 <`SOURCE root.README` \
michael@13 1708 >$RPM_BUILD_ROOT%{l_prefix}/README
michael@13 1709 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1710 <`SOURCE local.README` \
michael@13 1711 >$RPM_BUILD_ROOT%{l_prefix}/local/README
michael@13 1712
michael@13 1713 # install Bash environment
michael@13 1714 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1715 <`SOURCE dot.bashrc` \
michael@13 1716 >$RPM_BUILD_ROOT%{l_prefix}/.bashrc
michael@13 1717 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1718 <`SOURCE dot.bash_login` \
michael@13 1719 >$RPM_BUILD_ROOT%{l_prefix}/.bash_login
michael@13 1720
michael@444 1721 # install Runcommand files
michael@13 1722 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1723 -e "s:@l_susr@:%{l_susr}:g" \
michael@13 1724 -e "s:@l_musr@:%{l_musr}:g" \
michael@13 1725 <`SOURCE rc` \
michael@13 1726 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc
michael@13 1727 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc
michael@13 1728 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1729 <`SOURCE rc.conf` \
michael@13 1730 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf
michael@13 1731 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf
michael@13 1732 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1733 <`SOURCE rc.func` \
michael@13 1734 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.func
michael@13 1735 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.func
michael@13 1736 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@13 1737 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1738 -e "s:@l_musr@:%{l_musr}:g" \
michael@13 1739 <`SOURCE rc.openpkg` \
michael@13 1740 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1741 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1742 ( echo "#!/bin/sh"
michael@13 1743 echo "exec %{l_prefix}/etc/rc \${1+\"\$@\"}"
michael@13 1744 ) >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc
michael@13 1745 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc
michael@13 1746 ln $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc \
michael@13 1747 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rc
michael@13 1748 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1749 <`SOURCE rc.8` \
michael@13 1750 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc.8
michael@13 1751
michael@13 1752 # create configuration directory
michael@13 1753 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg || \
michael@13 1754 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg
michael@13 1755
michael@13 1756 # install platform identification file
michael@13 1757 sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-any-%<sp>" \
michael@13 1758 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
michael@13 1759 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
michael@13 1760
michael@13 1761 # install UUID configuration file (ghost)
michael@13 1762 touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
michael@13 1763 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
michael@13 1764
michael@13 1765 # install registry configuration files (ghost)
michael@13 1766 touch \
michael@13 1767 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \
michael@13 1768 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \
michael@13 1769 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \
michael@13 1770 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util
michael@13 1771 chmod 644 \
michael@13 1772 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \
michael@13 1773 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \
michael@13 1774 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \
michael@13 1775 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util
michael@13 1776
michael@13 1777 # install default managers configuration file
michael@13 1778 ( echo "##"
michael@13 1779 echo "## managers -- OpenPKG Instance Managers"
michael@13 1780 echo "##"
michael@13 1781 echo ""
michael@13 1782 echo "%{l_susr}"
michael@13 1783 echo "%{l_musr}"
michael@13 1784 echo ""
michael@13 1785 ) >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/managers
michael@13 1786
michael@428 1787 # install default release information file
michael@428 1788 release_tag=""
michael@428 1789 release_url=""
michael@428 1790 l_stack=""; [ ".%{?l_stack:set}" = .set ] && l_stack="%{l_stack}"
michael@428 1791 case "$l_stack" in
michael@428 1792 http: | https: | ftp: | file: )
michael@428 1793 release_url="$l_stack"
michael@428 1794 ;;
michael@428 1795 [a-zA-Z]* )
michael@428 1796 release_tag="$l_stack"
michael@428 1797 ;;
michael@428 1798 esac
michael@428 1799 ( echo "##"
michael@428 1800 echo "## release -- OpenPKG Release Information"
michael@428 1801 echo "##"
michael@428 1802 echo ""
michael@428 1803 echo "TAG=$release_tag"
michael@428 1804 echo "URL=$release_url"
michael@428 1805 echo ""
michael@428 1806 ) >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/release
michael@428 1807
michael@13 1808 # install overriding RPM configuration files
michael@13 1809 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1810 <`SOURCE rpmpopt` \
michael@428 1811 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt
michael@13 1812 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1813 -e "s:@l_prefix_static@:%{l_prefix}:g" \
michael@13 1814 -e "s;@l_build_path@;$l_build_path;g" \
michael@13 1815 -e "s;@l_build_ldlp@;$l_build_ldlp;g" \
michael@13 1816 -e "s;@l_build_ulim@;$l_build_ulim;g" \
michael@428 1817 -e "s;@l_unprivileged@;$l_unprivileged;g" \
michael@13 1818 -e "s:@TAG@:$tag:g" \
michael@13 1819 -e "s:@SUSR@:$susr:g" \
michael@13 1820 -e "s:@SGRP@:$sgrp:g" \
michael@13 1821 -e "s:@MUSR@:$musr:g" \
michael@13 1822 -e "s:@MGRP@:$mgrp:g" \
michael@13 1823 -e "s:@RUSR@:$rusr:g" \
michael@13 1824 -e "s:@RGRP@:$rgrp:g" \
michael@13 1825 -e "s:@NUSR@:$nusr:g" \
michael@13 1826 -e "s:@NGRP@:$ngrp:g" \
michael@13 1827 <`SOURCE rpmmacros` \
michael@13 1828 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros
michael@428 1829 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@428 1830 <`SOURCE rpmlua` \
michael@428 1831 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua
michael@13 1832 cp `SOURCE openpkg.org.pgp` \
michael@13 1833 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.org.pgp
michael@13 1834 cp `SOURCE openpkg.com.pgp` \
michael@13 1835 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.com.pgp
michael@13 1836 cp `SOURCE openpkg.net.pgp` \
michael@13 1837 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.net.pgp
michael@13 1838
michael@428 1839 # install license data
michael@428 1840 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d || \
michael@428 1841 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d
michael@428 1842 cp `SOURCE license-BOOT.txt` \
michael@428 1843 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/BOOT
michael@428 1844 cp `SOURCE license-COMMUNITY.txt` \
michael@428 1845 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/COMMUNITY
michael@428 1846 cp `SOURCE license-EVAL.txt` \
michael@428 1847 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/EVAL
michael@428 1848 cp `SOURCE license-EXAMPLE.txt` \
michael@428 1849 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/EXAMPLE
michael@428 1850 cp `SOURCE license-PROMO.txt` \
michael@428 1851 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/PROMO
michael@428 1852 cp `SOURCE license-RECOVERY.txt` \
michael@428 1853 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/RECOVERY
michael@428 1854 cp `SOURCE license.lua` \
michael@428 1855 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/license.lua
michael@428 1856 touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license
michael@428 1857
michael@428 1858 # provide directories for easy overriding of RPM configuration files
michael@428 1859 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros.d || \
michael@428 1860 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros.d
michael@428 1861 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt.d || \
michael@428 1862 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt.d
michael@428 1863 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua.d || \
michael@428 1864 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua.d
michael@428 1865
michael@13 1866 # display verbosity header
michael@13 1867 set +x; VERBOSE "INSTALL: Done. Thank you for flying OpenPKG..."; set -x
michael@13 1868
michael@13 1869 %files
michael@13 1870 %defattr(-,%{?l_musr}%{!?l_musr:%{l_fsusr}},%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}})
michael@13 1871 %{l_prefix}/README
michael@13 1872 %config(noreplace) %{l_prefix}/.bashrc
michael@13 1873 %config(noreplace) %{l_prefix}/.bash_login
michael@13 1874 %dir %{l_prefix}/RPM
michael@13 1875 %dir %{l_prefix}/RPM/SRC
michael@13 1876 %dir %{l_prefix}/RPM/PKG
michael@428 1877 %dir %{l_prefix}/RPM/TR
michael@13 1878 %dir %{l_prefix}/RPM/DB
michael@13 1879 %dir %{l_prefix}/RPM/TMP
michael@13 1880 %dir %{l_prefix}/cgi
michael@13 1881 %dir %{l_prefix}/bin
michael@13 1882 %attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/openpkg
michael@13 1883 %dir %{l_prefix}/etc
michael@13 1884 %{l_prefix}/etc/rc
michael@13 1885 %config(noreplace) %{l_prefix}/etc/rc.conf
michael@13 1886 %{l_prefix}/etc/rc.func
michael@13 1887 %dir %{l_prefix}/etc/rc.d
michael@13 1888 %{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1889 %dir %{l_prefix}/etc/openpkg
michael@428 1890 %ghost %{l_prefix}/etc/openpkg/license
michael@428 1891 %dir %{l_prefix}/etc/openpkg/license.d
michael@428 1892 %{l_prefix}/etc/openpkg/license.d/BOOT
michael@428 1893 %{l_prefix}/etc/openpkg/license.d/COMMUNITY
michael@428 1894 %{l_prefix}/etc/openpkg/license.d/EVAL
michael@428 1895 %{l_prefix}/etc/openpkg/license.d/EXAMPLE
michael@428 1896 %{l_prefix}/etc/openpkg/license.d/PROMO
michael@428 1897 %{l_prefix}/etc/openpkg/license.d/RECOVERY
michael@13 1898 %ghost %{l_prefix}/etc/openpkg/uuid
michael@428 1899 %config %{l_prefix}/etc/openpkg/release
michael@13 1900 %config %{l_prefix}/etc/openpkg/platform
michael@13 1901 %config %{l_prefix}/etc/openpkg/rpmmacros
michael@428 1902 %config %{l_prefix}/etc/openpkg/rpmpopt
michael@428 1903 %config %{l_prefix}/etc/openpkg/rpmlua
michael@428 1904 %dir %{l_prefix}/etc/openpkg/rpmmacros.d
michael@428 1905 %dir %{l_prefix}/etc/openpkg/rpmpopt.d
michael@428 1906 %dir %{l_prefix}/etc/openpkg/rpmlua.d
michael@13 1907 %ghost %{l_prefix}/etc/openpkg/register.conf
michael@13 1908 %ghost %{l_prefix}/etc/openpkg/register.prep
michael@13 1909 %ghost %{l_prefix}/etc/openpkg/register.tran
michael@13 1910 %ghost %{l_prefix}/etc/openpkg/register.util
michael@13 1911 %config %attr(664,%{l_musr},%{l_mgrp}) %{l_prefix}/etc/openpkg/managers
michael@13 1912 %{l_prefix}/etc/openpkg/openpkg.org.pgp
michael@13 1913 %{l_prefix}/etc/openpkg/openpkg.com.pgp
michael@13 1914 %{l_prefix}/etc/openpkg/openpkg.net.pgp
michael@13 1915 %dir %{l_prefix}/include
michael@13 1916 %dir %{l_prefix}/include/openpkg
michael@13 1917 %dir %{l_prefix}/include/openpkg/rpm
michael@13 1918 %{l_prefix}/include/openpkg/rpm/argv.h
michael@13 1919 %{l_prefix}/include/openpkg/rpm/beecrypt.h
michael@13 1920 %{l_prefix}/include/openpkg/rpm/bzlib.h
michael@13 1921 %{l_prefix}/include/openpkg/rpm/db.h
michael@428 1922 %{l_prefix}/include/openpkg/rpm/envvar.h
michael@428 1923 %{l_prefix}/include/openpkg/rpm/fs.h
michael@13 1924 %{l_prefix}/include/openpkg/rpm/fts.h
michael@13 1925 %{l_prefix}/include/openpkg/rpm/glob.h
michael@428 1926 %{l_prefix}/include/openpkg/rpm/mire.h
michael@13 1927 %{l_prefix}/include/openpkg/rpm/misc.h
michael@428 1928 %{l_prefix}/include/openpkg/rpm/pkgio.h
michael@13 1929 %{l_prefix}/include/openpkg/rpm/popt.h
michael@428 1930 %{l_prefix}/include/openpkg/rpm/rpm4compat.h
michael@13 1931 %{l_prefix}/include/openpkg/rpm/rpmal.h
michael@428 1932 %{l_prefix}/include/openpkg/rpm/rpmbc.h
michael@13 1933 %{l_prefix}/include/openpkg/rpm/rpmbuild.h
michael@428 1934 %{l_prefix}/include/openpkg/rpm/rpmcb.h
michael@13 1935 %{l_prefix}/include/openpkg/rpm/rpmcli.h
michael@428 1936 %{l_prefix}/include/openpkg/rpm/rpmconstant.h
michael@428 1937 %{l_prefix}/include/openpkg/rpm/rpmdav.h
michael@13 1938 %{l_prefix}/include/openpkg/rpm/rpmdb.h
michael@13 1939 %{l_prefix}/include/openpkg/rpm/rpmds.h
michael@428 1940 %{l_prefix}/include/openpkg/rpm/rpmevr.h
michael@13 1941 %{l_prefix}/include/openpkg/rpm/rpmfc.h
michael@13 1942 %{l_prefix}/include/openpkg/rpm/rpmfi.h
michael@428 1943 %{l_prefix}/include/openpkg/rpm/rpmgc.h
michael@428 1944 %{l_prefix}/include/openpkg/rpm/rpmgi.h
michael@13 1945 %{l_prefix}/include/openpkg/rpm/rpmhash.h
michael@428 1946 %{l_prefix}/include/openpkg/rpm/rpmio-stub.h
michael@13 1947 %{l_prefix}/include/openpkg/rpm/rpmio.h
michael@428 1948 %{l_prefix}/include/openpkg/rpm/rpmiotypes.h
michael@428 1949 %{l_prefix}/include/openpkg/rpm/rpmku.h
michael@13 1950 %{l_prefix}/include/openpkg/rpm/rpmlib.h
michael@13 1951 %{l_prefix}/include/openpkg/rpm/rpmlog.h
michael@13 1952 %{l_prefix}/include/openpkg/rpm/rpmmacro.h
michael@428 1953 %{l_prefix}/include/openpkg/rpm/rpmmg.h
michael@428 1954 %{l_prefix}/include/openpkg/rpm/rpmns.h
michael@428 1955 %{l_prefix}/include/openpkg/rpm/rpmnss.h
michael@13 1956 %{l_prefix}/include/openpkg/rpm/rpmpgp.h
michael@13 1957 %{l_prefix}/include/openpkg/rpm/rpmps.h
michael@13 1958 %{l_prefix}/include/openpkg/rpm/rpmspec.h
michael@428 1959 %{l_prefix}/include/openpkg/rpm/rpmsq.h
michael@428 1960 %{l_prefix}/include/openpkg/rpm/rpmssl.h
michael@13 1961 %{l_prefix}/include/openpkg/rpm/rpmsw.h
michael@428 1962 %{l_prefix}/include/openpkg/rpm/rpmsx.h
michael@428 1963 %{l_prefix}/include/openpkg/rpm/rpmtag.h
michael@13 1964 %{l_prefix}/include/openpkg/rpm/rpmte.h
michael@13 1965 %{l_prefix}/include/openpkg/rpm/rpmts.h
michael@13 1966 %{l_prefix}/include/openpkg/rpm/rpmurl.h
michael@428 1967 %{l_prefix}/include/openpkg/rpm/rpmuuid.h
michael@428 1968 %{l_prefix}/include/openpkg/rpm/rpmversion.h
michael@428 1969 %{l_prefix}/include/openpkg/rpm/rpmwf.h
michael@428 1970 %{l_prefix}/include/openpkg/rpm/rpmxar.h
michael@428 1971 %{l_prefix}/include/openpkg/rpm/rpmzlog.h
michael@428 1972 %{l_prefix}/include/openpkg/rpm/signature.h
michael@428 1973 %{l_prefix}/include/openpkg/rpm/sqlite3.h
michael@13 1974 %{l_prefix}/include/openpkg/rpm/ugid.h
michael@428 1975 %{l_prefix}/include/openpkg/rpm/yarn.h
michael@13 1976 %{l_prefix}/include/openpkg/rpm/zconf.h
michael@13 1977 %{l_prefix}/include/openpkg/rpm/zlib.h
michael@13 1978 %dir %{l_prefix}/info
michael@13 1979 %dir %{l_prefix}/lib
michael@13 1980 %dir %{l_prefix}/lib/openpkg
michael@13 1981 %{l_prefix}/lib/openpkg/bash
michael@428 1982 %{l_prefix}/lib/openpkg/bsdcpio
michael@428 1983 %{l_prefix}/lib/openpkg/bsdtar
michael@13 1984 %{l_prefix}/lib/openpkg/bzip2
michael@13 1985 %{l_prefix}/lib/openpkg/curl
michael@428 1986 %{l_prefix}/lib/openpkg/db_tool
michael@428 1987 %{l_prefix}/lib/openpkg/cmp
michael@428 1988 %{l_prefix}/lib/openpkg/diff
michael@428 1989 %{l_prefix}/lib/openpkg/diff3
michael@428 1990 %{l_prefix}/lib/openpkg/sdiff
michael@13 1991 %{l_prefix}/lib/openpkg/gzip
michael@13 1992 %{l_prefix}/lib/openpkg/librpm.a
michael@13 1993 %{l_prefix}/lib/openpkg/librpmbeecrypt.a
michael@13 1994 %{l_prefix}/lib/openpkg/librpmbuild.a
michael@13 1995 %{l_prefix}/lib/openpkg/librpmbz2.a
michael@13 1996 %{l_prefix}/lib/openpkg/librpmdb.a
michael@13 1997 %{l_prefix}/lib/openpkg/librpmio.a
michael@428 1998 %{l_prefix}/lib/openpkg/librpmmisc.a
michael@13 1999 %{l_prefix}/lib/openpkg/librpmpopt.a
michael@428 2000 %{l_prefix}/lib/openpkg/librpmsqlite3.a
michael@13 2001 %{l_prefix}/lib/openpkg/librpmz.a
michael@428 2002 %{l_prefix}/lib/openpkg/license.lua
michael@13 2003 %{l_prefix}/lib/openpkg/miniperl
michael@428 2004 %{l_prefix}/lib/openpkg/mutex
michael@13 2005 %{l_prefix}/lib/openpkg/openpkg
michael@13 2006 %{l_prefix}/lib/openpkg/openssl
michael@13 2007 %{l_prefix}/lib/openpkg/patch
michael@13 2008 %{l_prefix}/lib/openpkg/rc
michael@13 2009 %{l_prefix}/lib/openpkg/rpm
michael@428 2010 %{l_prefix}/lib/openpkg/rpm.pc
michael@13 2011 %{l_prefix}/lib/openpkg/rpmdb
michael@428 2012 %{l_prefix}/lib/openpkg/rpmdeps
michael@428 2013 %{l_prefix}/lib/openpkg/lua
michael@428 2014 %{l_prefix}/lib/openpkg/rpmmacros
michael@13 2015 %{l_prefix}/lib/openpkg/rpmpopt
michael@13 2016 %{l_prefix}/lib/openpkg/rpmtool
michael@13 2017 %{l_prefix}/lib/openpkg/shtool
michael@428 2018 %{l_prefix}/lib/openpkg/sqlite3
michael@13 2019 %{l_prefix}/lib/openpkg/tar
michael@13 2020 %{l_prefix}/lib/openpkg/uuid
michael@428 2021 %{l_prefix}/lib/openpkg/xz
michael@13 2022 %dir %{l_prefix}/libexec
michael@13 2023 %dir %{l_prefix}/libexec/openpkg
michael@13 2024 %{l_prefix}/libexec/openpkg/build.8
michael@13 2025 %{l_prefix}/libexec/openpkg/build.pl
michael@13 2026 %{l_prefix}/libexec/openpkg/curl.sh
michael@428 2027 %{l_prefix}/libexec/openpkg/dev.8
michael@428 2028 %{l_prefix}/libexec/openpkg/dev.pl
michael@428 2029 %{l_prefix}/libexec/openpkg/index.8
michael@428 2030 %{l_prefix}/libexec/openpkg/index.pl
michael@428 2031 %{l_prefix}/libexec/openpkg/license
michael@428 2032 %{l_prefix}/libexec/openpkg/license.8
michael@13 2033 %{l_prefix}/libexec/openpkg/lsync
michael@13 2034 %{l_prefix}/libexec/openpkg/lsync.8
michael@428 2035 %{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 2036 %{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 2037 %{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 2038 %{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 2039 %{l_prefix}/libexec/openpkg/makeproxy.8
michael@428 2040 %{l_prefix}/libexec/openpkg/makeproxy.pl
michael@13 2041 %{l_prefix}/libexec/openpkg/man
michael@428 2042 %{l_prefix}/libexec/openpkg/mirror.8
michael@428 2043 %{l_prefix}/libexec/openpkg/mirror.pl
michael@13 2044 %{l_prefix}/libexec/openpkg/rc
michael@13 2045 %{l_prefix}/libexec/openpkg/rc.8
michael@13 2046 %{l_prefix}/libexec/openpkg/register
michael@13 2047 %{l_prefix}/libexec/openpkg/register.8
michael@13 2048 %{l_prefix}/libexec/openpkg/release
michael@13 2049 %{l_prefix}/libexec/openpkg/release.8
michael@13 2050 %{l_prefix}/libexec/openpkg/rpm
michael@13 2051 %{l_prefix}/libexec/openpkg/rpm-config
michael@13 2052 %{l_prefix}/libexec/openpkg/rpm-config.8
michael@13 2053 %{l_prefix}/libexec/openpkg/rpm.8
michael@428 2054 %{l_prefix}/libexec/openpkg/rpmconstant
michael@428 2055 %{l_prefix}/libexec/openpkg/rpmconstant.8
michael@13 2056 %{l_prefix}/libexec/openpkg/rpm2cpio
michael@13 2057 %{l_prefix}/libexec/openpkg/rpm2cpio.8
michael@13 2058 %{l_prefix}/libexec/openpkg/rpmbuild.8
michael@428 2059 %{l_prefix}/libexec/openpkg/rpmcache
michael@428 2060 %{l_prefix}/libexec/openpkg/rpmcache.8
michael@428 2061 %{l_prefix}/libexec/openpkg/rpmdeps.8
michael@428 2062 %{l_prefix}/libexec/openpkg/rpmgraph.8
michael@428 2063 %{l_prefix}/libexec/openpkg/rpmgrep
michael@428 2064 %{l_prefix}/libexec/openpkg/rpmgrep.1
michael@428 2065 %{l_prefix}/libexec/openpkg/sea.8
michael@428 2066 %{l_prefix}/libexec/openpkg/sea.sh
michael@428 2067 %{l_prefix}/libexec/openpkg/search.8
michael@428 2068 %{l_prefix}/libexec/openpkg/search.pl
michael@428 2069 %{l_prefix}/libexec/openpkg/stack.8
michael@428 2070 %{l_prefix}/libexec/openpkg/stack.sh
michael@428 2071 %{l_prefix}/libexec/openpkg/shtool.sh
michael@428 2072 %{l_prefix}/libexec/openpkg/svs
michael@428 2073 %{l_prefix}/libexec/openpkg/svs.1
michael@13 2074 %{l_prefix}/libexec/openpkg/uuid
michael@13 2075 %{l_prefix}/libexec/openpkg/uuid.8
michael@13 2076 %dir %{l_prefix}/man
michael@13 2077 %dir %{l_prefix}/man/man1
michael@13 2078 %dir %{l_prefix}/man/man2
michael@13 2079 %dir %{l_prefix}/man/man3
michael@13 2080 %dir %{l_prefix}/man/man4
michael@13 2081 %dir %{l_prefix}/man/man5
michael@13 2082 %dir %{l_prefix}/man/man6
michael@13 2083 %dir %{l_prefix}/man/man7
michael@13 2084 %dir %{l_prefix}/man/man8
michael@13 2085 %dir %{l_prefix}/man/man9
michael@13 2086 %dir %{l_prefix}/man/cat1
michael@13 2087 %dir %{l_prefix}/man/cat2
michael@13 2088 %dir %{l_prefix}/man/cat3
michael@13 2089 %dir %{l_prefix}/man/cat4
michael@13 2090 %dir %{l_prefix}/man/cat5
michael@13 2091 %dir %{l_prefix}/man/cat6
michael@13 2092 %dir %{l_prefix}/man/cat7
michael@13 2093 %dir %{l_prefix}/man/cat8
michael@13 2094 %dir %{l_prefix}/man/cat9
michael@13 2095 %{l_prefix}/man/man1/openpkg.1
michael@13 2096 %dir %{l_prefix}/sbin
michael@13 2097 %dir %{l_prefix}/pub
michael@13 2098 %dir %{l_prefix}/share
michael@13 2099 %dir %{l_prefix}/var
michael@13 2100 %dir %{l_prefix}/local
michael@13 2101 %{l_prefix}/local/README
michael@13 2102 %{l_prefix}/local/.lsyncrc
michael@13 2103 %dir %{l_prefix}/local/PKG
michael@13 2104 %dir %{l_prefix}/local/bin
michael@13 2105 %dir %{l_prefix}/local/etc
michael@13 2106 %dir %{l_prefix}/local/include
michael@13 2107 %dir %{l_prefix}/local/info
michael@13 2108 %dir %{l_prefix}/local/lib
michael@13 2109 %dir %{l_prefix}/local/man
michael@13 2110 %dir %{l_prefix}/local/man/man1
michael@13 2111 %dir %{l_prefix}/local/man/man2
michael@13 2112 %dir %{l_prefix}/local/man/man3
michael@13 2113 %dir %{l_prefix}/local/man/man4
michael@13 2114 %dir %{l_prefix}/local/man/man5
michael@13 2115 %dir %{l_prefix}/local/man/man6
michael@13 2116 %dir %{l_prefix}/local/man/man7
michael@13 2117 %dir %{l_prefix}/local/man/man8
michael@13 2118 %dir %{l_prefix}/local/man/man9
michael@13 2119 %dir %{l_prefix}/local/man/cat1
michael@13 2120 %dir %{l_prefix}/local/man/cat2
michael@13 2121 %dir %{l_prefix}/local/man/cat3
michael@13 2122 %dir %{l_prefix}/local/man/cat4
michael@13 2123 %dir %{l_prefix}/local/man/cat5
michael@13 2124 %dir %{l_prefix}/local/man/cat6
michael@13 2125 %dir %{l_prefix}/local/man/cat7
michael@13 2126 %dir %{l_prefix}/local/man/cat8
michael@13 2127 %dir %{l_prefix}/local/man/cat9
michael@13 2128 %dir %{l_prefix}/local/sbin
michael@13 2129
michael@13 2130 %clean
michael@13 2131 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 2132 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 2133
michael@13 2134 # cleanup build area
michael@13 2135 rm -rf openpkg-%{version} >/dev/null 2>&1 || true
michael@13 2136
michael@13 2137 # cleanup installation area
michael@13 2138 rm -rf $RPM_BUILD_ROOT >/dev/null 2>&1 || true
michael@13 2139
michael@13 2140 %pre
michael@13 2141 # always performed for upgrades and because it doesn't harm!
michael@13 2142 # [ ".$1" != .1 ] && exit 0
michael@13 2143
michael@13 2144 # this procedure is only usable with root privileges
michael@444 2145 # (for nonroot installations it is not required at all)
michael@13 2146 cusr=`(id -un) 2>/dev/null ||\
michael@13 2147 (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\
michael@13 2148 (whoami) 2>/dev/null ||\
michael@13 2149 (who am i | cut "-d " -f1) 2>/dev/null ||\
michael@13 2150 echo $LOGNAME`
michael@13 2151
michael@13 2152 # determine runtime details (for both inside and outside RPM!!)
michael@428 2153 # - bootstrapping: $xxx is set from etc.wrapbin.sh
michael@13 2154 # - upgrading new: %{l_[smrn]{usr,grp}} is set via rpmmacros
michael@13 2155 # - upgrading old: %{l_[smrn]{usr,grp}} is not set at all
michael@13 2156 [ ".$susr" = . ] && susr="%{?l_susr}%{!?l_susr:root}"
michael@13 2157 [ ".$sgrp" = . ] && sgrp="%{?l_sgrp}%{!?l_sgrp:wheel}"
michael@13 2158 [ ".$musr" = . ] && musr="%{?l_musr}%{!?l_musr:%{l_fsusr}}"
michael@13 2159 [ ".$mgrp" = . ] && mgrp="%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}}"
michael@13 2160 [ ".$rusr" = . ] && rusr="%{?l_rusr}%{!?l_rusr:%{l_fsusr}-r}"
michael@13 2161 [ ".$rgrp" = . ] && rgrp="%{?l_rgrp}%{!?l_rgrp:%{l_fsgrp}-r}"
michael@13 2162 [ ".$nusr" = . ] && nusr="%{?l_nusr}%{!?l_nusr:%{l_fsusr}-n}"
michael@13 2163 [ ".$ngrp" = . ] && ngrp="%{?l_ngrp}%{!?l_ngrp:%{l_fsgrp}-n}"
michael@13 2164 [ ".$suid" = . ] && suid="%{?l_suid}"
michael@13 2165 [ ".$sgid" = . ] && sgid="%{?l_sgid}"
michael@13 2166 [ ".$muid" = . ] && muid="%{?l_muid}"
michael@13 2167 [ ".$mgid" = . ] && mgid="%{?l_mgid}"
michael@13 2168 [ ".$ruid" = . ] && ruid="%{?l_ruid}"
michael@13 2169 [ ".$rgid" = . ] && rgid="%{?l_rgid}"
michael@13 2170 [ ".$nuid" = . ] && nuid="%{?l_nuid}"
michael@13 2171 [ ".$ngid" = . ] && ngid="%{?l_ngid}"
michael@13 2172
michael@13 2173 # if any of these optional params are not used we won't have a
michael@13 2174 # corresponding macro either, so make use of one conditionally
michael@13 2175 [ ".$suid" = . ] && [ ".%{?l_suid:set}" = .set ] && suid="%{?l_suid}"
michael@13 2176 [ ".$sgid" = . ] && [ ".%{?l_sgid:set}" = .set ] && sgid="%{?l_sgid}"
michael@13 2177 [ ".$muid" = . ] && [ ".%{?l_muid:set}" = .set ] && muid="%{?l_muid}"
michael@13 2178 [ ".$mgid" = . ] && [ ".%{?l_mgid:set}" = .set ] && mgid="%{?l_mgid}"
michael@13 2179 [ ".$ruid" = . ] && [ ".%{?l_ruid:set}" = .set ] && ruid="%{?l_ruid}"
michael@13 2180 [ ".$rgid" = . ] && [ ".%{?l_rgid:set}" = .set ] && rgid="%{?l_rgid}"
michael@13 2181 [ ".$nuid" = . ] && [ ".%{?l_nuid:set}" = .set ] && nuid="%{?l_nuid}"
michael@13 2182 [ ".$ngid" = . ] && [ ".%{?l_ngid:set}" = .set ] && ngid="%{?l_ngid}"
michael@13 2183
michael@13 2184 # determine prefix
michael@13 2185 [ ".$prefix" = . ] && prefix="%{l_prefix}"
michael@13 2186 prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'`
michael@13 2187
michael@444 2188 # Preflight check before update to make sure that the currently
michael@428 2189 # activated license is still valid. This is done just be friendly
michael@428 2190 # to people and to not too easily shoot theirself into the foot
michael@428 2191 # by blindly upgrading and then having to recognize that the new
michael@428 2192 # OpenPKG Framework is no longer covered by the old license.
michael@428 2193 if [ ".$1" = .2 ]; then
michael@428 2194 ( OPENPKG_FRAMEWORK_RELEASE="%{release}"
michael@428 2195 export OPENPKG_FRAMEWORK_RELEASE
michael@428 2196 # LATER:
michael@428 2197 # $prefix/bin/openpkg rpm -q openpkg >/dev/null 2>&1 || exit $?
michael@428 2198 # if [ $? -ne 0 ]; then
michael@428 2199 # NOW:
michael@428 2200 output="`$prefix/bin/openpkg rpm -q openpkg 2>&1 | grep 'ENVIRONMENT ANOMALY'`"
michael@428 2201 if [ ".$output" != . ]; then
michael@428 2202 id="`($prefix/bin/openpkg license active) 2>/dev/null`"
michael@428 2203 [ ".$id" = . ] && id="UNKNOWN"
michael@428 2204 ( echo "Attention, your currently active license \"$id\" does"
michael@428 2205 echo "not allow you to use this newer version of the OpenPKG Framework!"
michael@444 2206 echo "We cancel this update to prevent you from a runtime failure."
michael@428 2207 echo "Please first upgrade to a newer license with the command:"
michael@428 2208 echo " \$ $prefix/bin/openpkg license update $id <file>"
michael@428 2209 ) | $prefix/lib/openpkg/rpmtool msg -b -t error
michael@428 2210 exit 42
michael@428 2211 fi
michael@428 2212 ) || exit $?
michael@428 2213 fi
michael@428 2214
michael@13 2215 # register instance in presence file
michael@13 2216 presence="/etc/openpkg"
michael@13 2217 exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"`
michael@13 2218 if [ ".$exists" = . ]; then
michael@13 2219 ( umask 022
michael@13 2220 echo "${prefix}" >>$presence
michael@13 2221 ) 2>/dev/null || true
michael@13 2222 fi
michael@13 2223
michael@13 2224 # determine user/group ids
michael@13 2225 for class in s m r n; do
michael@13 2226 eval "xusr=\"\$${class}usr\""
michael@13 2227 eval "xgrp=\"\$${class}grp\""
michael@13 2228 eval "xuid=\"\$${class}uid\""
michael@13 2229 eval "xgid=\"\$${class}gid\""
michael@13 2230 if [ ".$xuid" = . ]; then
michael@428 2231 case "$plid" in
michael@428 2232 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2233 xuid=`dscl . -read "/users/${xusr}" UniqueID 2>/dev/null | awk '{ print $2; }'`
michael@428 2234 ;;
michael@428 2235 * )
michael@428 2236 xuid=`(getent passwd "${xusr}"; \
michael@428 2237 grep "^${xusr}:" /etc/passwd; \
michael@428 2238 ypmatch "${xusr}" passwd; \
michael@428 2239 nismatch "${xusr}" passwd; \
michael@428 2240 nidump passwd . | grep "^${xusr}:") 2>/dev/null | \
michael@428 2241 sed -e 'q' | awk -F: '{ print $3; }'`
michael@428 2242 ;;
michael@428 2243 esac
michael@13 2244 if [ ".$xuid" = . ]; then
michael@13 2245 # seek for a reasonably uid/gid pair
michael@13 2246 xuid=1000
michael@13 2247 ok=0
michael@13 2248 while [ ".$ok" = .0 ]; do
michael@13 2249 eval "u_exists=\$u_exists_$xuid"
michael@13 2250 if [ ".$u_exists" = . ]; then
michael@428 2251 case "$plid" in
michael@428 2252 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2253 u_exists=`dscl . -search /users UniqueID "$xuid" 2>/dev/null`
michael@428 2254 ;;
michael@428 2255 * )
michael@428 2256 u_exists=`(getent passwd; cat /etc/passwd; ypcat passwd; niscat passwd; nidump passwd .) 2>/dev/null |\
michael@428 2257 grep "^[^:]*:[^:]*:$xuid:"`
michael@428 2258 ;;
michael@428 2259 esac
michael@13 2260 fi
michael@13 2261 eval "g_exists=\$g_exists_$xuid"
michael@13 2262 if [ ".$g_exists" = . ]; then
michael@428 2263 case "$plid" in
michael@428 2264 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2265 g_exists=`dscl . -search /groups PrimaryGroupID "$xuid" 2>/dev/null`
michael@428 2266 ;;
michael@428 2267 * )
michael@428 2268 g_exists=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\
michael@428 2269 grep "^[^:]*:[^:]*:$xuid:"`
michael@428 2270 esac
michael@13 2271 fi
michael@13 2272 if [ ".$u_exists" = . -a ".$g_exists" = . ]; then
michael@13 2273 ok=1
michael@13 2274 break
michael@13 2275 fi
michael@13 2276 xuid=`expr $xuid + 1`
michael@13 2277 done
michael@13 2278 eval "u_exists_$xuid=yes"
michael@13 2279 eval "g_exists_$xuid=yes"
michael@13 2280 fi
michael@13 2281 fi
michael@13 2282 if [ ".$xgid" = . ]; then
michael@13 2283 xgid=`(getent group "${xgrp}"; \
michael@13 2284 grep "^${xgrp}:" /etc/group; \
michael@13 2285 ypmatch "${xgrp}" group; \
michael@13 2286 nismatch "${xgrp}" group; \
michael@428 2287 nidump group . | grep "^${xgrp}:"; \
michael@428 2288 dscl . -read "/groups/${xgrp}" | grep RecordName) 2>/dev/null | \
michael@13 2289 sed -e 'q' | awk -F: '{ print $3; }'`
michael@13 2290 if [ ".$xgid" = . ]; then
michael@13 2291 xgid="$xuid"
michael@13 2292 fi
michael@13 2293 fi
michael@13 2294 eval "${class}uid=\"$xuid\""
michael@13 2295 eval "${class}gid=\"$xgid\""
michael@13 2296 done
michael@13 2297
michael@13 2298 # determine platform id
michael@13 2299 s=`(uname -s) 2>/dev/null` || s='Unknown'
michael@13 2300 r=`(uname -r) 2>/dev/null` || r='0.0'
michael@13 2301 plid="${s}/${r}"
michael@13 2302
michael@13 2303 # add entry to /etc/shells
michael@13 2304 shell="${prefix}/lib/openpkg/bash"
michael@13 2305 if [ -f /etc/shells ]; then
michael@13 2306 exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
michael@13 2307 if [ ".$exists" = . ]; then
michael@13 2308 if [ ".$cusr" != ".root" ]; then
michael@13 2309 echo "openpkg:WARNING: skipping addition of $shell to /etc/shells" 1>&2
michael@444 2310 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2311 else
michael@13 2312 echo "${shell}" >>/etc/shells
michael@13 2313 fi
michael@13 2314 fi
michael@13 2315 fi
michael@13 2316
michael@13 2317 # clear pending deferred actions
michael@13 2318 rm -f %{l_prefix}.pre-group-process.sh %{l_prefix}.pre-post-process.sh >/dev/null 2>&1
michael@13 2319
michael@13 2320 # create the hierarchy user/group
michael@13 2321 for req in "superuser:${susr}:${suid}:${sgrp}:${sgid}" \
michael@13 2322 "management:${musr}:${muid}:${mgrp}:${mgid}" \
michael@13 2323 "restricted:${rusr}:${ruid}:${rgrp}:${rgid}" \
michael@444 2324 "nonprivileged:${nusr}:${nuid}:${ngrp}:${ngid}"; do
michael@13 2325 # split request into class/usr/uid/grp/gid
michael@13 2326 OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS"
michael@13 2327 class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5"
michael@13 2328
michael@13 2329 # check whether user already exists
michael@13 2330 exists=`(getent passwd "$usr"; \
michael@13 2331 grep "^$usr:" /etc/passwd; \
michael@13 2332 ypmatch "$usr" passwd; \
michael@13 2333 nismatch "$usr" passwd; \
michael@428 2334 nidump passwd . | grep "^$usr:"; \
michael@428 2335 dscl . -read "/users/$usr" | grep RecordName) 2>/dev/null | \
michael@13 2336 sed -e 'q'`
michael@13 2337 if [ ".$exists" = . ]; then
michael@13 2338 if [ ".$cusr" != ".root" ]; then
michael@13 2339 echo "openpkg:WARNING: skipping creation of OpenPKG $class user $usr" 1>&2
michael@444 2340 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2341 else
michael@13 2342 # add entry to passwd database
michael@13 2343 realname="${prefix} OpenPKG ($class)"
michael@13 2344 case "$plid" in
michael@13 2345 FreeBSD/* | NetBSD/* )
michael@13 2346 file=/etc/master.passwd
michael@13 2347 entry="${usr}:*:${uid}:${gid}::0:0:${realname}:${prefix}:${shell}"
michael@13 2348 update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)"
michael@13 2349 ;;
michael@13 2350 Linux/* )
michael@13 2351 file=/etc/passwd
michael@13 2352 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2353 update="(PATH=\$PATH:/usr/sbin; pwconv)"
michael@13 2354 ;;
michael@13 2355 SunOS/5.* | UnixWare/* )
michael@13 2356 file=/etc/passwd
michael@13 2357 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2358 update="(PATH=\$PATH:/usr/sbin; pwconv)"
michael@13 2359 ;;
michael@13 2360 AIX/* )
michael@13 2361 # intentionally do nothing here
michael@13 2362 :
michael@13 2363 ;;
michael@13 2364 OSF1/V5.* )
michael@13 2365 file=/etc/passwd
michael@13 2366 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2367 update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)"
michael@13 2368 ;;
michael@13 2369 HP-UX/* )
michael@13 2370 file=/etc/passwd
michael@13 2371 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2372 update=":"
michael@13 2373 ;;
michael@13 2374 Darwin/* )
michael@13 2375 # intentionally do nothing here
michael@13 2376 :
michael@13 2377 ;;
michael@13 2378 IRIX*/6.* )
michael@13 2379 file=/etc/passwd
michael@13 2380 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2381 if [ -f /etc/shadow ]
michael@13 2382 then update="(PATH=\$PATH:/sbin; pwconv)"
michael@13 2383 else update=":"
michael@13 2384 fi
michael@13 2385 ;;
michael@428 2386 CYGWIN*/* )
michael@428 2387 file=/etc/passwd
michael@428 2388 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@428 2389 update=":"
michael@428 2390 ;;
michael@13 2391 esac
michael@13 2392 case "$plid" in
michael@428 2393 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2394 dscl . -create "/users/${usr}"
michael@428 2395 dscl . -create "/users/${usr}" Password "*"
michael@428 2396 dscl . -create "/users/${usr}" UniqueID "${uid}"
michael@428 2397 dscl . -create "/users/${usr}" PrimaryGroupID "${gid}"
michael@428 2398 dscl . -create "/users/${usr}" RealName "${realname}"
michael@428 2399 dscl . -create "/users/${usr}" NFSHomeDirectory "${prefix}"
michael@428 2400 dscl . -create "/users/${usr}" UserShell "${shell}"
michael@428 2401 ;;
michael@13 2402 Darwin/* )
michael@13 2403 niutil -create . "/users/${usr}"
michael@13 2404 niutil -createprop . "/users/${usr}" passwd "*"
michael@13 2405 niutil -createprop . "/users/${usr}" uid "${uid}"
michael@13 2406 niutil -createprop . "/users/${usr}" gid "${gid}"
michael@13 2407 niutil -createprop . "/users/${usr}" realname "${realname}"
michael@13 2408 niutil -createprop . "/users/${usr}" home "${prefix}"
michael@13 2409 niutil -createprop . "/users/${usr}" shell "${shell}"
michael@13 2410 ;;
michael@13 2411 AIX/* )
michael@13 2412 mkuser id="${uid}" gecos="${realname}" home="${prefix}" "${usr}"
michael@13 2413 cp /etc/security/login.cfg /etc/security/login.cfg.bak && \
michael@13 2414 sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\) *\$;\\1,$shell;" \
michael@13 2415 </etc/security/login.cfg.bak >/etc/security/login.cfg && \
michael@13 2416 rm -f /etc/security/login.cfg.bak >/dev/null 2>&1
michael@13 2417 # defer both the setting of the primary group and the shell,
michael@13 2418 # as they do not exist at this stage of processing.
michael@13 2419 echo "chuser pgrp=\"${grp}\" \"${usr}\"" >>%{l_prefix}.pre-group-process.sh
michael@13 2420 echo "chuser shell=\"${shell}\" \"${usr}\"" >>%{l_prefix}.pre-post-process.sh
michael@13 2421 ;;
michael@13 2422 * )
michael@13 2423 cp $file $file.bak && \
michael@13 2424 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
michael@13 2425 rm -f $file.bak >/dev/null 2>&1
michael@13 2426 eval $update
michael@13 2427 [ $? -ne 0 ] && exit $?
michael@13 2428 ;;
michael@13 2429 esac
michael@13 2430 fi
michael@13 2431 fi
michael@13 2432
michael@13 2433 # check whether group already exists
michael@13 2434 exists=`(getent group "$grp"; \
michael@13 2435 grep "^$grp:" /etc/group; \
michael@13 2436 ypmatch "$grp" group; \
michael@13 2437 nismatch "$grp" group; \
michael@428 2438 nidump group . | grep "^$grp:"; \
michael@428 2439 dscl . -read "/groups/$grp" | grep RecordName) 2>/dev/null | \
michael@13 2440 sed -e 'q'`
michael@13 2441 if [ ".$exists" = . ]; then
michael@13 2442 if [ ".$cusr" != ".root" ]; then
michael@13 2443 echo "openpkg:WARNING: skipping creation of OpenPKG $class group $grp" 1>&2
michael@444 2444 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2445 else
michael@13 2446 case "$plid" in
michael@428 2447 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2448 dscl . -create "/groups/${grp}"
michael@428 2449 dscl . -create "/groups/${grp}" Password "*"
michael@428 2450 dscl . -create "/groups/${grp}" PrimaryGroupID "${gid}"
michael@428 2451 dscl . -create "/groups/${grp}" GroupMembership "${usr}"
michael@428 2452 ;;
michael@13 2453 Darwin/* )
michael@13 2454 niutil -create . "/groups/${grp}"
michael@13 2455 niutil -createprop . "/groups/${grp}" gid "${gid}"
michael@13 2456 niutil -createprop . "/groups/${grp}" users "${usr}"
michael@13 2457 ;;
michael@13 2458 AIX/* )
michael@13 2459 mkgroup id="${gid}" users="${usr}" "${grp}"
michael@13 2460 ;;
michael@13 2461 * )
michael@13 2462 # add entry to group database
michael@13 2463 file=/etc/group
michael@13 2464 entry="${grp}:*:${gid}:${usr}"
michael@13 2465 cp $file $file.bak && \
michael@13 2466 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
michael@13 2467 rm -f $file.bak >/dev/null 2>&1
michael@13 2468 ;;
michael@13 2469 esac
michael@13 2470 fi
michael@13 2471 fi
michael@13 2472 done
michael@13 2473
michael@13 2474 # optional group processing (deferred adjustment of primary group)
michael@13 2475 if [ -f %{l_prefix}.pre-group-process.sh ]; then
michael@13 2476 sh %{l_prefix}.pre-group-process.sh
michael@13 2477 rm -f %{l_prefix}.pre-group-process.sh
michael@13 2478 fi
michael@13 2479
michael@13 2480 # invalidate passwd and group tables from Name Service Cache Daemon to
michael@13 2481 # ensure chown/chgrp works immediately after pwconv on Linux and Solaris
michael@13 2482 if [ -x /usr/sbin/nscd ]; then
michael@13 2483 /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true
michael@428 2484 /usr/sbin/nscd -i group >/dev/null 2>&1 || true
michael@13 2485 fi
michael@13 2486
michael@13 2487 # create the startup/shutdown transfer script
michael@428 2488 name_old="`echo "$prefix" | sed -e 's;/;;g'`"
michael@428 2489 name="openpkg-`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@13 2490 if [ ".$cusr" != ".root" ]; then
michael@444 2491 echo "openpkg:WARNING: skipping creation of system runcommand hooks" 1>&2
michael@444 2492 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2493 else
michael@13 2494 case "$plid" in
michael@13 2495 FreeBSD/* )
michael@428 2496 if [ -f /etc/rc.d/${name_old} ]; then
michael@428 2497 rm -f /etc/rc.d/${name_old}
michael@428 2498 fi
michael@428 2499 if [ ! -f /etc/rc.d/${name} ]; then
michael@13 2500 # install transfer script
michael@428 2501 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 2502 ( echo "#!/bin/sh"
michael@13 2503 echo "##"
michael@428 2504 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2505 echo "##"
michael@13 2506 echo ""
michael@428 2507 echo "# PROVIDE: ${name}"
michael@13 2508 echo "# REQUIRE: LOGIN"
michael@13 2509 echo "# KEYWORD: shutdown"
michael@13 2510 echo ""
michael@13 2511 echo ". /etc/rc.subr"
michael@13 2512 echo ""
michael@13 2513 echo "name=\"openpkg_${name}\""
michael@13 2514 echo "start_cmd=\"openpkg_rc_all start\""
michael@13 2515 echo "stop_cmd=\"openpkg_rc_all stop\""
michael@13 2516 echo "restart_cmd=\"openpkg_rc_all stop start\""
michael@13 2517 echo ""
michael@13 2518 echo "openpkg_rc_all () {"
michael@428 2519 echo " if [ -f ${prefix}/bin/openpkg ]; then"
michael@428 2520 echo " ${prefix}/bin/openpkg rc all \"\$@\""
michael@13 2521 echo " fi"
michael@13 2522 echo "}"
michael@13 2523 echo ""
michael@13 2524 echo "load_rc_config \$name"
michael@13 2525 echo "run_rc_command \"\$1\""
michael@13 2526 echo ""
michael@428 2527 ) >/etc/rc.d/${name}
michael@428 2528 chmod 755 /etc/rc.d/${name}
michael@13 2529 fi
michael@13 2530 ;;
michael@13 2531 NetBSD/* )
michael@428 2532 if [ -f /etc/rc.d/${name_old} ]; then
michael@428 2533 rm -f /etc/rc.d/${name_old}
michael@428 2534 fi
michael@13 2535 if [ ! -f /etc/rc.d/${name} ]; then
michael@13 2536 ( echo "#!/bin/sh"
michael@13 2537 echo "##"
michael@13 2538 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2539 echo "##"
michael@13 2540 echo "## PROVIDE: ${name}"
michael@13 2541 echo "## REQUIRE: DAEMON LOGIN NETWORK SERVERS"
michael@13 2542 echo "##"
michael@13 2543 echo ""
michael@428 2544 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2545 echo "case \$1 in"
michael@428 2546 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2547 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 2548 echo " restart ) exec ${prefix}/bin/openpkg rc all stop start ;;"
michael@13 2549 echo " status ) ;;"
michael@13 2550 echo "esac"
michael@13 2551 ) >/etc/rc.d/${name}
michael@13 2552 chmod 755 /etc/rc.d/${name}
michael@13 2553 fi
michael@13 2554 ;;
michael@13 2555 Linux/* )
michael@13 2556 if [ -f /etc/gentoo-release ]; then
michael@428 2557 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2558 rm -f /etc/init.d/${name_old}
michael@428 2559 fi
michael@428 2560 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2561 # install transfer script
michael@13 2562 ( echo "#!/sbin/runscript"
michael@13 2563 echo "##"
michael@428 2564 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2565 echo "##"
michael@13 2566 echo ""
michael@13 2567 echo "depend() {"
michael@13 2568 echo " after *"
michael@13 2569 echo "}"
michael@13 2570 echo ""
michael@13 2571 echo "checkconfig() {"
michael@428 2572 echo " [ -f ${prefix}/bin/openpkg ] || return 1"
michael@13 2573 echo " case $1 in"
michael@428 2574 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2575 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2576 echo " esac"
michael@13 2577 echo "}"
michael@13 2578 echo ""
michael@13 2579 echo "start() {"
michael@13 2580 echo " checkconfig || return 1"
michael@13 2581 echo " ebegin "Starting OpenPKG ${prefix} hierarchy""
michael@428 2582 echo " exec ${prefix}/bin/openpkg rc all start"
michael@13 2583 echo " eend 0"
michael@13 2584 echo "}"
michael@13 2585 echo ""
michael@13 2586 echo "stop() {"
michael@13 2587 echo " checkconfig || return 1"
michael@13 2588 echo " ebegin "Stopping OpenPKG ${prefix} hierarchy""
michael@428 2589 echo " exec ${prefix}/bin/openpkg rc all stop"
michael@13 2590 echo " eend 0"
michael@13 2591 echo "}"
michael@428 2592 ) >/etc/init.d/${name}
michael@428 2593 chmod 755 /etc/init.d/${name}
michael@428 2594 /sbin/rc-update add ${name} default
michael@428 2595 fi
michael@428 2596 elif [ -f /etc/redhat-release ]; then
michael@428 2597 sroot=/etc/rc.d/init.d
michael@428 2598 if [ ! -f $sroot/${name} ]; then
michael@428 2599 # install transfer script
michael@428 2600 ( echo "#!/bin/sh"
michael@428 2601 echo "##"
michael@428 2602 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@428 2603 echo "##"
michael@428 2604 echo ""
michael@428 2605 echo "# chkconfig: 2345 99 00"
michael@428 2606 echo "# description: OpenPKG ${prefix}"
michael@428 2607 echo ""
michael@428 2608 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@428 2609 echo "case \$1 in"
michael@428 2610 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2611 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 2612 echo "esac"
michael@428 2613 ) >$sroot/${name}
michael@428 2614 chmod 755 $sroot/${name}
michael@428 2615 # activate script
michael@428 2616 /sbin/chkconfig --add ${name}
michael@428 2617 /sbin/chkconfig ${name} on
michael@13 2618 fi
michael@13 2619 else
michael@13 2620 # sroot: script root directory
michael@13 2621 # lroot: link root directory
michael@13 2622 if [ -f /etc/debian_version ]; then
michael@13 2623 sroot=/etc/init.d
michael@428 2624 lroot=/etc/rc%%d.d
michael@428 2625 elif [ -f /etc/mandrake-release ]; then
michael@13 2626 sroot=/etc/rc.d/init.d
michael@428 2627 lroot=/etc/rc.d/rc%%d.d
michael@13 2628 elif [ -f /etc/SuSE-release ]; then
michael@13 2629 sroot=/etc/init.d
michael@428 2630 lroot=/etc/init.d/rc%%d.d
michael@13 2631 elif [ -f /etc/slackware-version ]; then
michael@13 2632 sroot=/etc/rc.d
michael@428 2633 lroot=/etc/rc.d/rc%%d.d
michael@13 2634 name="rc.${name}"
michael@13 2635 for i in 0 1 2 3 4 5 6; do
michael@428 2636 l=`echo $lroot | sed -e "s;%%d;$i;"`
michael@13 2637 if [ ! -d $l ]; then
michael@13 2638 mkdir $l 2>&1 || true
michael@13 2639 fi
michael@13 2640 done
michael@13 2641 else
michael@13 2642 echo "WARNING: you are not running one of the supported standard" 1>&2
michael@13 2643 echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2
michael@13 2644 echo "WARNING: Guessing the location of the system init scripts!" 1>&2
michael@13 2645 sroot=""
michael@13 2646 lroot=""
michael@13 2647 for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
michael@13 2648 if [ -d $sr ]; then
michael@13 2649 sroot="$sr"
michael@13 2650 break
michael@13 2651 fi
michael@13 2652 done
michael@13 2653 for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
michael@13 2654 if [ -d $lr ]; then
michael@428 2655 lroot="`echo $lr | sed -e 's;2;%%d;'`"
michael@13 2656 break
michael@13 2657 fi
michael@13 2658 done
michael@13 2659 if [ ".$sroot" = . -o ".$lroot" = . ]; then
michael@13 2660 echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2
michael@13 2661 exit 1
michael@13 2662 fi
michael@13 2663 fi
michael@428 2664 if [ -f $sroot/${name_old} ]; then
michael@428 2665 rm -f $sroot/${name_old}
michael@428 2666 fi
michael@13 2667 if [ ! -f $sroot/${name} ]; then
michael@13 2668 # install transfer script
michael@13 2669 ( echo "#!/bin/sh"
michael@13 2670 echo "##"
michael@13 2671 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2672 echo "##"
michael@13 2673 echo ""
michael@428 2674 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2675 echo "case \$1 in"
michael@428 2676 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2677 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2678 echo "esac"
michael@13 2679 ) >$sroot/${name}
michael@13 2680 chmod 755 $sroot/${name}
michael@13 2681 # create corresponding symbolic links
michael@13 2682 for i in 2 3 4 5; do
michael@428 2683 ln -s $sroot/${name} `echo $lroot | sed -e "s;%%d;$i;"`/S99${name}
michael@13 2684 done
michael@13 2685 for i in 0 1 6; do
michael@428 2686 ln -s $sroot/${name} `echo $lroot | sed -e "s;%%d;$i;"`/K00${name}
michael@13 2687 done
michael@13 2688 fi
michael@13 2689 fi
michael@13 2690 ;;
michael@437 2691 SunOS/5.1* )
michael@443 2692 suname="`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@449 2693 svcdir=/`[ -d /lib/svc/manifest ] && echo lib || echo var`
michael@449 2694 if [ ! -d /${svcdir}/svc/manifest/openpkg ]; then
michael@449 2695 mkdir /${svcdir}/svc/manifest/openpkg
michael@437 2696 fi
michael@449 2697 if [ ! -f /${svcdir}/svc/manifest/openpkg/${suname}.xml ]; then
michael@437 2698 # install SMF manifest
michael@437 2699 ( echo "<?xml version=\"1.0\"?>"
michael@437 2700 echo "<!DOCTYPE service_bundle SYSTEM \"/usr/share/lib/xml/dtd/service_bundle.dtd.1\">"
michael@443 2701 echo "<service_bundle type='manifest' name='OpenPKG:${suname}'>"
michael@437 2702 echo " <service"
michael@443 2703 echo " name='openpkg/${suname}'"
michael@437 2704 echo " type='service'"
michael@437 2705 echo " version='1'>"
michael@449 2706 echo " <create_default_instance enabled='false' />"
michael@437 2707 echo " <single_instance />"
michael@437 2708 echo " <dependency"
michael@437 2709 echo " name='filesystem'"
michael@437 2710 echo " type='service'"
michael@437 2711 echo " grouping='require_all'"
michael@437 2712 echo " restart_on='none'>"
michael@437 2713 echo " <service_fmri value='svc:/system/filesystem/local' />"
michael@437 2714 echo " </dependency>"
michael@437 2715 echo " <dependency"
michael@437 2716 echo " name='name-services'"
michael@437 2717 echo " type='service'"
michael@437 2718 echo " grouping='require_all'"
michael@437 2719 echo " restart_on='none'>"
michael@437 2720 echo " <service_fmri value='svc:/milestone/name-services' />"
michael@437 2721 echo " </dependency>"
michael@437 2722 echo " <dependency"
michael@437 2723 echo " name='multi-user-server'"
michael@437 2724 echo " type='service'"
michael@437 2725 echo " grouping='require_all'"
michael@437 2726 echo " restart_on='none'>"
michael@437 2727 echo " <service_fmri value='svc:/milestone/multi-user-server' />"
michael@437 2728 echo " </dependency>"
michael@437 2729 echo " <dependency"
michael@437 2730 echo " name='network'"
michael@437 2731 echo " type='service'"
michael@437 2732 echo " grouping='require_all'"
michael@437 2733 echo " restart_on='none'>"
michael@437 2734 echo " <service_fmri value='svc:/milestone/network' />"
michael@437 2735 echo " </dependency>"
michael@437 2736 echo " <exec_method"
michael@437 2737 echo " type='method'"
michael@437 2738 echo " name='start'"
michael@437 2739 echo " exec='${prefix}/etc/rc all start'"
michael@437 2740 echo " timeout_seconds='180'>"
michael@437 2741 echo " <method_context>"
michael@437 2742 echo " <method_credential user='root' group='root' />"
michael@437 2743 echo " </method_context>"
michael@437 2744 echo " </exec_method>"
michael@437 2745 echo " <exec_method"
michael@437 2746 echo " type='method'"
michael@449 2747 echo " name='refresh'"
michael@449 2748 echo " exec='${prefix}/etc/rc all restart'"
michael@449 2749 echo " timeout_seconds='270'>"
michael@449 2750 echo " <method_context>"
michael@449 2751 echo " <method_credential user='root' group='root' />"
michael@449 2752 echo " </method_context>"
michael@449 2753 echo " </exec_method>"
michael@449 2754 echo " <exec_method"
michael@449 2755 echo " type='method'"
michael@437 2756 echo " name='stop'"
michael@437 2757 echo " exec='${prefix}/etc/rc all stop'"
michael@437 2758 echo " timeout_seconds='180'>"
michael@437 2759 echo " </exec_method>"
michael@437 2760 echo " <property_group name='startd' type='framework'>"
michael@437 2761 echo " <propval"
michael@437 2762 echo " name='ignore_error'"
michael@437 2763 echo " type='astring'"
michael@437 2764 echo " value='core,signal' />"
michael@437 2765 echo " </property_group>"
michael@437 2766 echo " <property_group name='startd' type='framework'>"
michael@437 2767 echo " <propval"
michael@437 2768 echo " name='duration'"
michael@437 2769 echo " type='astring'"
michael@437 2770 echo " value='transient' />"
michael@437 2771 echo " </property_group>"
michael@437 2772 echo " <property_group name='general' type='framework'>"
michael@437 2773 echo " <propval"
michael@437 2774 echo " name='action_authorization'"
michael@437 2775 echo " type='astring'"
michael@443 2776 echo " value='solaris.smf.manage.openpkg.${suname}' />"
michael@437 2777 echo " </property_group>"
michael@437 2778 echo " <stability value='Unstable' />"
michael@437 2779 echo " <template>"
michael@437 2780 echo " <common_name>"
michael@437 2781 echo " <loctext xml:lang='C'>OpenPKG Instance ${prefix}</loctext>"
michael@437 2782 echo " </common_name>"
michael@437 2783 echo " </template>"
michael@437 2784 echo " </service>"
michael@437 2785 echo "</service_bundle>"
michael@449 2786 ) >/${svcdir}/svc/manifest/openpkg/${suname}.xml
michael@448 2787 /usr/sbin/svcadm restart svc:/system/manifest-import
michael@449 2788 ( echo "/usr/sbin/svcadm enable svc:/openpkg/${suname}:default"
michael@437 2789 ) >%{l_prefix}.pre-post-process.sh
michael@437 2790 fi
michael@437 2791 ;;
michael@428 2792 SunOS/5.* )
michael@428 2793 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2794 rm -f /etc/init.d/${name_old}
michael@329 2795 fi
michael@13 2796 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2797 # install transfer script
michael@13 2798 ( echo "#!/bin/sh"
michael@13 2799 echo "##"
michael@13 2800 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2801 echo "##"
michael@13 2802 echo ""
michael@428 2803 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2804 echo "case \$1 in"
michael@428 2805 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2806 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2807 echo "esac"
michael@13 2808 ) >/etc/init.d/${name}
michael@13 2809 chmod 755 /etc/init.d/${name}
michael@13 2810 # create corresponding symbolic links
michael@13 2811 ( cd /etc
michael@13 2812 ln init.d/${name} rc3.d/S99${name}
michael@13 2813 ln init.d/${name} rc0.d/K00${name}
michael@13 2814 ln init.d/${name} rc1.d/K00${name}
michael@13 2815 ) || exit $?
michael@13 2816 fi
michael@13 2817 ;;
michael@13 2818 UnixWare/* )
michael@428 2819 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2820 rm -f /etc/init.d/${name_old}
michael@428 2821 fi
michael@13 2822 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2823 # install transfer script
michael@13 2824 ( echo "#!/bin/sh"
michael@13 2825 echo "##"
michael@13 2826 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2827 echo "##"
michael@13 2828 echo ""
michael@428 2829 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2830 echo "case \$1 in"
michael@428 2831 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2832 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2833 echo "esac"
michael@13 2834 ) >/etc/init.d/${name}
michael@13 2835 chmod 755 /etc/init.d/${name}
michael@13 2836 # create corresponding symbolic links
michael@13 2837 ( cd /etc
michael@13 2838 ln init.d/${name} rc2.d/S99${name}
michael@13 2839 ln init.d/${name} rc0.d/K00${name}
michael@13 2840 ln init.d/${name} rc1.d/K00${name}
michael@13 2841 ) || exit $?
michael@13 2842 fi
michael@13 2843 ;;
michael@13 2844 AIX/* )
michael@428 2845 if [ -f /etc/rc.d/init.d/${name_old} ]; then
michael@428 2846 rm -f /etc/rc.d/init.d/${name_old}
michael@428 2847 fi
michael@13 2848 if [ ! -f /etc/rc.d/init.d/${name} ]; then
michael@13 2849 # install transfer script
michael@13 2850 ( echo "#!/bin/sh"
michael@13 2851 echo "##"
michael@13 2852 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2853 echo "##"
michael@13 2854 echo ""
michael@428 2855 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2856 echo "case \$1 in"
michael@428 2857 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2858 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2859 echo "esac"
michael@13 2860 ) >/etc/rc.d/init.d/${name}
michael@13 2861 chmod 755 /etc/rc.d/init.d/${name}
michael@13 2862 # create corresponding symbolic links
michael@13 2863 ( cd /etc/rc.d
michael@13 2864 ln -s ../init.d/${name} rc2.d/S99${name}
michael@13 2865 ) || exit $?
michael@13 2866 fi
michael@13 2867 ;;
michael@13 2868 OSF1/V5.* )
michael@428 2869 if [ -f /sbin/init.d/${name_old} ]; then
michael@428 2870 rm -f /sbin/init.d/${name_old}
michael@428 2871 fi
michael@13 2872 if [ ! -f /sbin/init.d/${name} ]; then
michael@13 2873 # install transfer script
michael@13 2874 ( echo "#!/bin/sh"
michael@13 2875 echo "##"
michael@13 2876 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2877 echo "##"
michael@13 2878 echo ""
michael@428 2879 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2880 echo "case \$1 in"
michael@428 2881 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2882 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2883 echo "esac"
michael@13 2884 ) >/sbin/init.d/${name}
michael@13 2885 chmod 755 /sbin/init.d/${name}
michael@13 2886 # create corresponding symbolic links
michael@13 2887 ( cd /sbin
michael@13 2888 ln -s ../init.d/${name} rc3.d/S99${name}
michael@13 2889 ln -s ../init.d/${name} rc0.d/K00${name}
michael@13 2890 ) || exit $?
michael@13 2891 fi
michael@13 2892 ;;
michael@13 2893 HP-UX/* )
michael@428 2894 if [ -f /sbin/init.d/${name_old} ]; then
michael@428 2895 rm -f /sbin/init.d/${name_old}
michael@428 2896 fi
michael@13 2897 if [ ! -f /sbin/init.d/${name} ]; then
michael@13 2898 # install transfer script
michael@13 2899 ( echo "#!/bin/sh"
michael@13 2900 echo "##"
michael@13 2901 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2902 echo "##"
michael@13 2903 echo ""
michael@428 2904 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2905 echo "case \$1 in"
michael@428 2906 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2907 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2908 echo "esac"
michael@13 2909 ) >/sbin/init.d/${name}
michael@13 2910 chmod 755 /sbin/init.d/${name}
michael@13 2911 # create corresponding symbolic links
michael@13 2912 ( cd /sbin
michael@13 2913 ln -s ../init.d/${name} rc2.d/S900${name}
michael@13 2914 ln -s ../init.d/${name} rc1.d/K100${name}
michael@13 2915 ) || exit $?
michael@13 2916 fi
michael@13 2917 ;;
michael@13 2918 Darwin/* )
michael@428 2919 if [ -d /Library/StartupItems/${name_old} ]; then
michael@428 2920 rm -rf /Library/StartupItems/${name_old}
michael@428 2921 fi
michael@428 2922 darwin_rc_dir="/Library/StartupItems/${name}"
michael@13 2923 if [ ! -d ${darwin_rc_dir} ]; then
michael@428 2924 mkdir -p ${darwin_rc_dir}
michael@13 2925 fi
michael@13 2926
michael@13 2927 # make sure hierarchy is activated in /etc/hostconfig
michael@13 2928 # FIXME: cs: simple and bad code here without any detection of existing entries
michael@428 2929 darwin_rc_var="`echo ${name} | sed -e 's;-;_;g' | tr '[a-z]' '[A-Z]'`"
michael@428 2930 echo "${darwin_rc_var}=-YES-" >>/etc/hostconfig
michael@13 2931
michael@13 2932 # install transfer script
michael@13 2933 if [ ! -f ${darwin_rc_dir}/${name} ]; then
michael@13 2934 rm -f ${darwin_rc_dir}/${name} >/dev/null 2>&1
michael@13 2935 ( echo "#!/bin/sh"
michael@13 2936 echo "##"
michael@13 2937 echo "## ${darwin_rc_dir}/${name}"
michael@428 2938 echo "## -- startup transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2939 echo "##"
michael@13 2940 echo ""
michael@428 2941 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2942 echo ""
michael@13 2943 echo ". /etc/rc.common"
michael@13 2944 echo ""
michael@428 2945 echo "if [ \"\${${darwin_rc_var}:=-NO-}\" = \"-YES-\" ]; then"
michael@13 2946 echo " ConsoleMessage \"OpenPKG ${prefix} hierarchy\""
michael@428 2947 echo " ${prefix}/bin/openpkg rc all start"
michael@13 2948 echo "fi"
michael@13 2949 ) >${darwin_rc_dir}/${name}
michael@13 2950 chmod 755 ${darwin_rc_dir}/${name}
michael@13 2951 fi
michael@428 2952
michael@13 2953 # install startup parameter list
michael@13 2954 if [ ! -f ${darwin_rc_dir}/StartupParameters.plist ]; then
michael@13 2955 rm -f ${darwin_rc_dir}/StartupParameters.plist >/dev/null 2>&1
michael@13 2956 ( echo "{"
michael@13 2957 echo " Description = \"OpenPKG ${prefix} hierarchy\";"
michael@13 2958 echo " Provides = (\"OpenPKG ${prefix}\");"
michael@13 2959 echo " Requires = (\"Disks\", \"Network Configuration\", \"Resolver\");"
michael@13 2960 echo " Uses = (\"Cron\");"
michael@13 2961 echo " OrderPreference = \"Last\";"
michael@13 2962 echo " Messages ="
michael@13 2963 echo " {"
michael@13 2964 echo " start = \"Starting OpenPKG ${prefix} hierarchy\";"
michael@13 2965 echo " stop = \"Stopping OpenPKG ${prefix} hierarchy\";"
michael@13 2966 echo " };"
michael@13 2967 echo "}"
michael@13 2968 ) >${darwin_rc_dir}/StartupParameters.plist
michael@13 2969 chmod 644 ${darwin_rc_dir}/StartupParameters.plist
michael@13 2970 fi
michael@13 2971 ;;
michael@13 2972 IRIX*/6.* )
michael@428 2973 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2974 rm -f /etc/init.d/${name_old}
michael@428 2975 fi
michael@13 2976 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2977 # install transfer script
michael@13 2978 ( echo "#!/bin/sh"
michael@13 2979 echo "##"
michael@13 2980 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2981 echo "##"
michael@13 2982 echo ""
michael@428 2983 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2984 echo "case \$1 in"
michael@428 2985 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2986 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2987 echo "esac"
michael@13 2988 ) >/etc/init.d/${name}
michael@13 2989 chmod 755 /etc/init.d/${name}
michael@13 2990 # create corresponding links
michael@13 2991 ( cd /etc
michael@13 2992 ln -f init.d/${name} rc2.d/S99${name}
michael@13 2993 ln -f init.d/${name} rc0.d/K00${name}
michael@13 2994 ) || exit $?
michael@13 2995 fi
michael@13 2996 ;;
michael@428 2997 CYGWIN*/* )
michael@428 2998 if [ -f /etc/rc.d/init.d/${name_old} ]; then
michael@428 2999 rm -f /etc/rc.d/init.d/${name_old}
michael@428 3000 fi
michael@428 3001 if [ ! -f /etc/rc.d/init.d/${name} ]; then
michael@428 3002 # install transfer script
michael@428 3003 ( echo "#!/bin/sh"
michael@428 3004 echo "##"
michael@428 3005 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@428 3006 echo "##"
michael@428 3007 echo ""
michael@428 3008 echo "test -f /etc/rc.d/init.d/functions && . /etc/rc.d/init.d/functions"
michael@428 3009 echo "test -f /etc/sysconfig/network && . /etc/sysconfig/network"
michael@428 3010 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@428 3011 echo "case \$1 in"
michael@428 3012 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 3013 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 3014 echo "esac"
michael@428 3015 ) >/etc/rc.d/init.d/${name}
michael@428 3016 chmod 755 /etc/rc.d/init.d/${name}
michael@428 3017 # create corresponding symbolic links
michael@428 3018 ( cd /etc/rc.d
michael@428 3019 ln -s ../init.d/${name} rc2.d/S90${name}
michael@428 3020 ln -s ../init.d/${name} rc1.d/K10${name}
michael@428 3021 ) || exit $?
michael@428 3022 fi
michael@428 3023 ;;
michael@13 3024 esac
michael@13 3025 fi
michael@13 3026
michael@13 3027 # create the cron transfer entries
michael@13 3028 if [ ".$cusr" != ".root" ]; then
michael@13 3029 echo "openpkg:WARNING: skipping creation of system cron hooks" 1>&2
michael@13 3030 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3031 else
michael@13 3032 case "$plid" in
michael@428 3033 FreeBSD/* | Linux/* )
michael@13 3034 if [ -f /etc/slackware-version ]; then
michael@428 3035 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3036 if [ ".$exists" = . ]; then
michael@13 3037 EDITOR=/tmp/vipw.$$
michael@13 3038 VISUAL="$EDITOR"
michael@13 3039 export EDITOR
michael@13 3040 export VISUAL
michael@13 3041 ( echo "#!/bin/sh"
michael@13 3042 echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\""
michael@13 3043 echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\""
michael@428 3044 echo " echo \"0 0 1 * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly\""
michael@428 3045 echo " echo \"0 0 * * 0 [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly\""
michael@428 3046 echo " echo \"0 0 * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily\""
michael@428 3047 echo " echo \"0 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly\""
michael@428 3048 echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly\""
michael@13 3049 echo " echo \"# </OpenPKG>\""
michael@13 3050 echo ") >>\$1"
michael@13 3051 ) >$EDITOR
michael@13 3052 chmod a+x $EDITOR
michael@13 3053 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3054 rm -f $EDITOR
michael@13 3055 fi
michael@13 3056 else
michael@428 3057 exists=`egrep "($prefix/bin/openpkg|$prefix/etc/rc)" /etc/crontab`
michael@13 3058 if [ ".$exists" = . ]; then
michael@13 3059 ( echo "# <OpenPKG prefix=$prefix pkg=openpkg>"
michael@13 3060 echo "# chronological tasks of ${prefix} OpenPKG hierarchy"
michael@428 3061 echo "0 0 1 * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly"
michael@428 3062 echo "0 0 * * 0 root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly"
michael@428 3063 echo "0 0 * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily"
michael@428 3064 echo "0 * * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly"
michael@428 3065 echo "*/15 * * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly"
michael@13 3066 echo "# </OpenPKG>"
michael@13 3067 ) >>/etc/crontab
michael@13 3068 fi
michael@13 3069 fi
michael@13 3070 ;;
michael@428 3071 SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* | CYGWIN*/* | Darwin/* )
michael@428 3072 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3073 if [ ".$exists" = . ]; then
michael@13 3074 EDITOR=/tmp/vipw.$$
michael@13 3075 VISUAL="$EDITOR"
michael@13 3076 export EDITOR
michael@13 3077 export VISUAL
michael@13 3078 ( echo "#!/bin/sh"
michael@13 3079 echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\""
michael@13 3080 echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\""
michael@461 3081 echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron monthly\""
michael@461 3082 echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron weekly\""
michael@461 3083 echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron daily\""
michael@461 3084 echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron hourly\""
michael@461 3085 echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron quarterly\""
michael@13 3086 echo " echo \"# </OpenPKG>\""
michael@13 3087 echo ") >>\$1"
michael@13 3088 ) >$EDITOR
michael@13 3089 chmod a+x $EDITOR
michael@13 3090 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3091 rm -f $EDITOR
michael@13 3092 fi
michael@13 3093 ;;
michael@13 3094 IRIX*/6.* )
michael@428 3095 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3096 if [ ".$exists" = . ]; then
michael@13 3097 ( crontab -l
michael@13 3098 echo "# <OpenPKG prefix=$prefix pkg=openpkg>"
michael@13 3099 echo "# chronological tasks of ${prefix} OpenPKG hierarchy"
michael@428 3100 echo "0 0 1 * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly"
michael@428 3101 echo "0 0 * * 0 [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly"
michael@428 3102 echo "0 0 * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily"
michael@428 3103 echo "0 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly"
michael@428 3104 echo "0,15,30,45 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly"
michael@13 3105 echo "# </OpenPKG>"
michael@13 3106 ) | /usr/bin/crontab || exit $?
michael@13 3107 fi
michael@13 3108 ;;
michael@13 3109 esac
michael@13 3110 fi
michael@13 3111
michael@13 3112 # remember what OpenPKG RPM version was installed, so we can
michael@13 3113 # correctly upgrade the RPM database in the %post section (see below).
michael@13 3114 if [ -d ${prefix}/RPM/DB ]; then
michael@13 3115 if [ -x "${prefix}/bin/openpkg" -a -x "${prefix}/libexec/openpkg/rpm" ]; then
michael@428 3116 # OpenPKG >= 2.0
michael@13 3117 rpm="${prefix}/bin/openpkg rpm"
michael@13 3118 else
michael@13 3119 # OpenPKG 1.x
michael@13 3120 rpm="${prefix}/bin/rpm"
michael@13 3121 fi
michael@13 3122 rm -f ${prefix}/RPM/DB/.version >/dev/null 2>&1 || true
michael@428 3123 $rpm --version 2>/dev/null |\
michael@13 3124 sed -e 's;^;X;' \
michael@13 3125 -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \
michael@13 3126 -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \
michael@428 3127 -e 's;^X.*$;0.0;' \
michael@13 3128 >${prefix}/RPM/DB/.version
michael@13 3129 fi
michael@13 3130
michael@13 3131 %post
michael@570 3132 # optional postprocessing from "pre" section
michael@13 3133 if [ -f %{l_prefix}.pre-post-process.sh ]; then
michael@13 3134 sh %{l_prefix}.pre-post-process.sh
michael@13 3135 rm -f %{l_prefix}.pre-post-process.sh
michael@13 3136 fi
michael@13 3137
michael@13 3138 # update or initially create OpenPKG UUID configuration
michael@13 3139 %{l_prefix}/bin/openpkg uuid update >/dev/null 2>&1 || true
michael@13 3140
michael@428 3141 # when upgrading from RPM 4 to RPM 5 there will be no
michael@428 3142 # initial license at all, so create one
michael@428 3143 if [ ! -f %{l_prefix}/etc/openpkg/license ]; then
michael@428 3144 echo "BOOT" >%{l_prefix}/etc/openpkg/license
michael@428 3145 ( chown %{l_musr}:%{l_mgrp} %{l_prefix}/etc/openpkg/license
michael@428 3146 chmod 644 %{l_prefix}/etc/openpkg/license
michael@428 3147 ) >/dev/null 2>&1 || true
michael@428 3148 fi
michael@428 3149
michael@428 3150 # finally switch from a possibly active BOOT license to EVAL license
michael@428 3151 # (notice: this is really the earliest time we can switch because the
michael@428 3152 # previous command had to create the <prefix>/etc/openpkg/uuid first!)
michael@428 3153 if [ ".`cat %{l_prefix}/etc/openpkg/license`" = ".BOOT" ]; then
michael@428 3154 echo "EVAL" >%{l_prefix}/etc/openpkg/license
michael@428 3155 fi
michael@428 3156
michael@13 3157 # determine new and old OpenPKG RPM version
michael@428 3158 V_rpm_new="%{V_rpm_major}.%{V_rpm_minor}"
michael@13 3159 if [ -f %{l_prefix}/RPM/DB/.version ]; then
michael@13 3160 V_rpm_old="`cat %{l_prefix}/RPM/DB/.version`"
michael@13 3161 rm -f %{l_prefix}/RPM/DB/.version >/dev/null 2>&1 || true
michael@13 3162 else
michael@428 3163 V_rpm_old="0.0"
michael@13 3164 fi
michael@13 3165
michael@13 3166 # make sure all RPM database files are present and that their
michael@13 3167 # attributes are correct, etc. This is not a database rebuild
michael@13 3168 # operation, so this is fully harmless and can be done always.
michael@428 3169 %{l_prefix}/lib/openpkg/rpmdb --quiet --fixate >/dev/null 2>&1 || true
michael@13 3170
michael@13 3171 # check RPM database for upgrade requirements
michael@13 3172 if [ ".$1" = .2 -a ".$V_rpm_old" != ".$V_rpm_new" ]; then
michael@13 3173 # RPM 4.0/4.1 does not allow concurrent database access, so we
michael@13 3174 # cannot upgrade the database immediately from here (because
michael@13 3175 # we are still running within the execution context of the
michael@13 3176 # old RPM which in turn has the database locked) and instead
michael@13 3177 # have to just drop a note to the administrator about database
michael@428 3178 # upgrading. RPM >= 4.2 in general allows concurrent database
michael@13 3179 # access, but the whole stuff is too risky here, too.
michael@13 3180 ( echo "You are upgrading the OpenPKG bootstrap from a previous"
michael@13 3181 echo "RPM $V_rpm_old based version to this RPM $V_rpm_new based"
michael@428 3182 echo "version. The RPM database in %{l_prefix}/RPM/DB/ can be"
michael@428 3183 echo "reused, but you first have to upgrade it as soon as"
michael@428 3184 echo "possible to the latest format files by executing:"
michael@13 3185 echo " \$ %{l_prefix}/bin/openpkg rpm --db-rebuild"
michael@13 3186 echo "In case of problems with the RPM database you can always"
michael@13 3187 echo "execute the command:"
michael@13 3188 echo " \$ %{l_prefix}/bin/openpkg rpm --db-cleanup"
michael@13 3189 ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t warn
michael@13 3190 fi
michael@13 3191
michael@13 3192 # system command overriding support
michael@13 3193 # ATTENTION: THIS BETTER SHOULD BE REPLACED WITH A MORE GENERIC
michael@13 3194 # BUILD COMMAND OVERRIDE SOLUTION!
michael@13 3195 if [ ! -d %{l_prefix}/lib/openpkg/override ]; then
michael@13 3196 mkdir %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3197 fi
michael@13 3198 chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3199 case "`cat %{l_prefix}/etc/openpkg/platform`" in
michael@13 3200 *-*-debian* | *-*-ubuntu* )
michael@13 3201 # FIXME: Evil hack to workaround build problems under Debian
michael@13 3202 # (at least 3.1) (and similar platforms) where a Debian
michael@13 3203 # install-info(8) exists which is both API and functionally
michael@13 3204 # incompatible to the de-facto standardized install-info(8)
michael@13 3205 # command from GNU Texinfo.
michael@13 3206 if [ ! -f %{l_prefix}/lib/openpkg/override/install-info ]; then
michael@13 3207 ( echo "#!/bin/sh"
michael@13 3208 echo "echo 'OpenPKG: NOTICE: install-info(8) command execution overridden'"
michael@13 3209 echo "exit 0"
michael@13 3210 ) >%{l_prefix}/lib/openpkg/override/install-info
michael@13 3211 chmod 775 %{l_prefix}/lib/openpkg/override/install-info
michael@13 3212 fi
michael@13 3213 ;;
michael@13 3214 *-*-macosx* | *-*-darwin* )
michael@13 3215 # FIXME: Evil hack to workaround the fact that Mac OS X'
michael@13 3216 # linker by default prefers the /usr/lib libraries and does
michael@13 3217 # not honor the -L options the way one would expect it.
michael@13 3218 gcc="`%{l_prefix}/lib/openpkg/shtool path gcc`"
michael@13 3219 cc="`%{l_prefix}/lib/openpkg/shtool path cc`"
michael@13 3220 ld="`%{l_prefix}/lib/openpkg/shtool path ld`"
michael@13 3221 if [ ".$gcc" != . -a ! -f %{l_prefix}/lib/openpkg/override/gcc ]; then
michael@13 3222 ( echo "#!/bin/sh"
michael@13 3223 echo "case \" \$* \" in"
michael@13 3224 echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;"
michael@13 3225 echo " * ) exec $gcc -Wl,-search_paths_first \"\$@\" ;;"
michael@13 3226 echo "esac"
michael@13 3227 ) >%{l_prefix}/lib/openpkg/override/gcc
michael@13 3228 chmod 775 %{l_prefix}/lib/openpkg/override/gcc
michael@13 3229 fi
michael@13 3230 if [ ".$cc" != . -a ! -f %{l_prefix}/lib/openpkg/override/cc ]; then
michael@13 3231 ( echo "#!/bin/sh"
michael@13 3232 echo "case \" \$* \" in"
michael@13 3233 echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;"
michael@13 3234 echo " * ) exec $cc -Wl,-search_paths_first \"\$@\" ;;"
michael@13 3235 echo "esac"
michael@13 3236 ) >%{l_prefix}/lib/openpkg/override/cc
michael@13 3237 chmod 775 %{l_prefix}/lib/openpkg/override/cc
michael@13 3238 fi
michael@13 3239 if [ ".$ld" != . -a ! -f %{l_prefix}/lib/openpkg/override/ld ]; then
michael@13 3240 ( echo "#!/bin/sh"
michael@13 3241 echo "exec $ld -search_paths_first \"\$@\""
michael@13 3242 ) >%{l_prefix}/lib/openpkg/override/ld
michael@13 3243 chmod 775 %{l_prefix}/lib/openpkg/override/ld
michael@13 3244 fi
michael@13 3245 ;;
michael@13 3246 esac
michael@13 3247
michael@428 3248 # special support for fully unprivileged environments
michael@428 3249 # where we cannot switch the user at all with su(1),
michael@428 3250 # so we provide a dummy su(1) override command.
michael@428 3251 if [ ".%{l_unprivileged}" = ".yes" ]; then
michael@428 3252 ( echo "#!/bin/sh"
michael@428 3253 echo "while [ \$# -gt 0 ]; do"
michael@428 3254 echo " case \"\$1\" in"
michael@428 3255 echo " - | -* ) shift ;;"
michael@428 3256 echo " * ) shift; break ;;"
michael@428 3257 echo " esac"
michael@428 3258 echo "done"
michael@428 3259 echo "exec /bin/sh \${1+\"\$@\"}"
michael@428 3260 ) >%{l_prefix}/lib/openpkg/override/su
michael@428 3261 chmod 775 %{l_prefix}/lib/openpkg/override/su
michael@428 3262 fi
michael@428 3263
michael@13 3264 # FIXME: hack to workaround problems in environments with too few
michael@13 3265 # development tools. ATTENTION: see one paragraph above.
michael@13 3266 if [ ! -d %{l_prefix}/lib/openpkg/fallback ]; then
michael@13 3267 mkdir %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3268 fi
michael@13 3269 chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3270
michael@428 3271 # cruel platform hack
michael@428 3272 case "`cat %{l_prefix}/etc/openpkg/platform`" in
michael@428 3273 *-*-cygwin* )
michael@428 3274 # Cygwin under Windows Vista dislikes executables with
michael@428 3275 # "patch" in the same and would require a "*.manifest"
michael@428 3276 # file applied with the "mt.exe" from the "Windows
michael@428 3277 # Software Development Kit (SDK)" in order to escape from
michael@428 3278 # UAC. An easy alternative is to just rename the file to a
michael@428 3279 # different name.
michael@428 3280 cp %{l_prefix}/lib/openpkg/patch \
michael@428 3281 %{l_prefix}/lib/openpkg/pitch
michael@428 3282 %{l_prefix}/lib/openpkg/shtool subst \
michael@428 3283 -e 's;openpkg/patch;openpkg/pitch;g' \
michael@428 3284 %{l_prefix}/etc/openpkg/rpmmacros
michael@428 3285 ;;
michael@428 3286 esac
michael@428 3287
michael@428 3288 # print license
michael@428 3289 ( echo ""
michael@428 3290 echo "NOTICE: Proprietary components of the OpenPKG Framework are covered"
michael@428 3291 echo "by the following terms and conditions and require a valid run-time"
michael@428 3292 echo "license, issued by the OpenPKG GmbH. An initial license, which allows"
michael@428 3293 echo "30 days of free use for evaluation purposes, is already pre-installed."
michael@428 3294 echo "Please go to http://openpkg.com/go/framework-license to obtain"
michael@428 3295 echo "your permanent license."
michael@428 3296 echo ""
michael@428 3297 %{l_prefix}/bin/openpkg --license
michael@428 3298 echo "______________________________________________________________________________"
michael@428 3299 echo ""
michael@428 3300 echo "NOTICE: Open Source components of the OpenPKG Framework are covered"
michael@428 3301 echo "by various standard Open Source distribution licenses, including"
michael@428 3302 echo "the MIT, BSD, LGPL, GPL, Public-Domain and Artistic licenses."
michael@428 3303 echo "They all allow you the use of those components free of charge."
michael@428 3304 echo "See http://www.opensource.org/licenses for more details."
michael@428 3305 echo ""
michael@428 3306 ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t notice
michael@428 3307
michael@428 3308 # register package with central OpenPKG registry
michael@428 3309 ( nohup %{l_prefix}/bin/openpkg register \
michael@428 3310 </dev/null >/dev/null 2>&1 &
michael@428 3311 ) </dev/null >/dev/null 2>&1 || true
michael@13 3312
michael@13 3313 %preun
michael@13 3314 [ ".$1" != .0 ] && exit 0
michael@13 3315
michael@13 3316 # remove override files
michael@13 3317 if [ -d %{l_prefix}/lib/openpkg/override ]; then
michael@13 3318 rm -rf %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3319 fi
michael@13 3320
michael@13 3321 # remove fallback files
michael@13 3322 if [ -d %{l_prefix}/lib/openpkg/fallback ]; then
michael@13 3323 rm -rf %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3324 fi
michael@13 3325
michael@13 3326 # remove files which are not RPM controlled
michael@13 3327 rm -rf %{l_prefix}/RPM/TMP/* %{l_prefix}/RPM/TMP/.[a-z]* >/dev/null 2>&1 || true
michael@13 3328 rm -rf %{l_prefix}/RPM/SRC/* %{l_prefix}/RPM/SRC/.[a-z]* >/dev/null 2>&1 || true
michael@13 3329 rm -rf %{l_prefix}/RPM/PKG/* %{l_prefix}/RPM/PKG/.[a-z]* >/dev/null 2>&1 || true
michael@428 3330 rm -rf %{l_prefix}/RPM/TR/* %{l_prefix}/RPM/TR/.[a-z]* >/dev/null 2>&1 || true
michael@13 3331 rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true
michael@13 3332
michael@13 3333 # The following code usually would be done in a %postun section.
michael@13 3334 # But because we already had to remove the database in this %preun
michael@13 3335 # section (see the 'rm' commands above) in order to make RPM happy
michael@13 3336 # inside its own removal procedure, RPM would no longer find the
michael@13 3337 # %postun script (because it's recorded in the database files). So
michael@13 3338 # we have to perform the procedure already in this %preun script.
michael@13 3339 # except for the removal of the top-level directory it does not
michael@13 3340 # matter. But the top-level directory can only be removed after
michael@13 3341 # the RPM removal procedure took place, so we play a little delay
michael@13 3342 # trick below.
michael@13 3343
michael@13 3344 # determine current user
michael@13 3345 cusr=`(id -un) 2>/dev/null ||\
michael@13 3346 (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\
michael@13 3347 (whoami) 2>/dev/null ||\
michael@13 3348 (who am i | cut "-d " -f1) 2>/dev/null ||\
michael@13 3349 echo $LOGNAME`
michael@13 3350
michael@13 3351 # determine runtime details (for both inside and outside RPM!!)
michael@13 3352 user="%{l_musr}"
michael@13 3353 group="%{l_mgrp}"
michael@13 3354 prefix="%{l_prefix}"
michael@13 3355 prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'`
michael@13 3356
michael@13 3357 # determine platform id
michael@13 3358 s=`(uname -s) 2>/dev/null` || s='Unknown'
michael@13 3359 r=`(uname -r) 2>/dev/null` || r='0.0'
michael@13 3360 plid="${s}/${r}"
michael@13 3361
michael@13 3362 # unregister instance in presence file
michael@13 3363 presence="/etc/openpkg"
michael@13 3364 exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"`
michael@13 3365 if [ ".$exists" != . ]; then
michael@13 3366 if [ ".$cusr" != ".root" ]; then
michael@13 3367 echo "openpkg:WARNING: skipping unregistering of $prefix in $presence" 1>&2
michael@13 3368 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3369 else
michael@13 3370 cp $presence $presence.bak && \
michael@13 3371 egrep -v "^ *${prefix} *\$" $presence.bak >$presence
michael@13 3372 rm -f $presence.bak >/dev/null 2>&1
michael@13 3373 if [ ".`cat $presence`" = . ]; then
michael@13 3374 rm -f $presence >/dev/null 2>&1
michael@13 3375 fi
michael@13 3376 fi
michael@13 3377 fi
michael@13 3378
michael@13 3379 # remove entry in /etc/shells
michael@13 3380 shell="${prefix}/lib/openpkg/bash"
michael@13 3381 exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
michael@13 3382 if [ ".$exists" != . ]; then
michael@13 3383 if [ ".$cusr" != ".root" ]; then
michael@13 3384 echo "openpkg:WARNING: skipping deletion of $shell from /etc/shells" 1>&2
michael@13 3385 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3386 else
michael@13 3387 cp /etc/shells /etc/shells.bak && \
michael@13 3388 grep -v "^${shell}" /etc/shells.bak >/etc/shells
michael@13 3389 rm -f /etc/shells.bak >/dev/null 2>&1
michael@13 3390 fi
michael@13 3391 fi
michael@13 3392
michael@13 3393 # remove the hierarchy user/group
michael@13 3394 for req in "super-user:%{l_susr}:%{l_suid}:%{l_sgrp}:%{l_sgid}" \
michael@13 3395 "management:%{l_musr}:%{l_muid}:%{l_mgrp}:%{l_mgid}" \
michael@13 3396 "restricted:%{l_rusr}:%{l_ruid}:%{l_rgrp}:%{l_rgid}" \
michael@13 3397 "non-privileged:%{l_nusr}:%{l_nuid}:%{l_ngrp}:%{l_ngid}"; do
michael@13 3398 # split request into class/usr/uid/grp/gid
michael@13 3399 OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS"
michael@13 3400 class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5"
michael@13 3401
michael@13 3402 # check whether user already exists
michael@13 3403 exists=`(getent passwd "$usr"; \
michael@13 3404 grep "^$usr:" /etc/passwd; \
michael@13 3405 ypmatch "$usr" passwd; \
michael@13 3406 nismatch "$usr" passwd; \
michael@428 3407 nidump passwd . | grep "^$usr:"; \
michael@428 3408 dscl . -read "/users/$usr" | grep RecordName) 2>/dev/null | \
michael@13 3409 sed -e 'q'`
michael@13 3410 if [ ".$exists" != . ]; then
michael@13 3411 if [ ".$cusr" != ".root" ]; then
michael@13 3412 echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2
michael@13 3413 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3414 elif [ ".$usr" = ".root" ]; then
michael@13 3415 echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2
michael@13 3416 echo "openpkg:WARNING: (would remove system standard user)" 1>&2
michael@13 3417 else
michael@13 3418 case "$plid" in
michael@13 3419 FreeBSD/* | NetBSD/* )
michael@13 3420 cp /etc/master.passwd /etc/master.passwd.bak && \
michael@13 3421 grep -v "^${usr}:" /etc/master.passwd.bak >/etc/master.passwd
michael@13 3422 ( PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd ) || exit $?
michael@13 3423 rm -f /etc/master.passwd.bak >/dev/null 2>&1
michael@13 3424 ;;
michael@13 3425 Linux/* | SunOS/5.* | UnixWare/* )
michael@13 3426 cp /etc/passwd /etc/passwd.bak && \
michael@13 3427 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3428 ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $?
michael@13 3429 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3430 ;;
michael@13 3431 AIX/* )
michael@13 3432 rmuser -p "${usr}"
michael@13 3433 cp /etc/security/login.cfg /etc/security/login.cfg.bak && \
michael@13 3434 sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\),$shell\\(.*\\)\$;\\1\\2;" \
michael@13 3435 </etc/security/login.cfg.bak >/etc/security/login.cfg && \
michael@13 3436 rm -f /etc/security/login.cfg.bak >/dev/null 2>&1
michael@13 3437 ;;
michael@13 3438 OSF1/V5.* )
michael@13 3439 cp /etc/passwd /etc/passwd.bak && \
michael@13 3440 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3441 ( PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd ) || exit $?
michael@13 3442 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3443 ;;
michael@13 3444 HP-UX/* )
michael@13 3445 cp /etc/passwd /etc/passwd.bak && \
michael@13 3446 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3447 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3448 ;;
michael@428 3449 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 3450 dscl . -delete "/users/${usr}"
michael@428 3451 ;;
michael@13 3452 Darwin/* )
michael@13 3453 niutil -destroy . "/users/${usr}"
michael@13 3454 ;;
michael@13 3455 IRIX*/6.* )
michael@13 3456 cp /etc/passwd /etc/passwd.bak && \
michael@13 3457 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3458 if [ -f /etc/shadow ]
michael@13 3459 then ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $?
michael@13 3460 fi
michael@13 3461 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3462 ;;
michael@428 3463 CYGWIN*/* )
michael@428 3464 cp /etc/passwd /etc/passwd.bak && \
michael@428 3465 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@428 3466 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@428 3467 ;;
michael@13 3468 esac
michael@13 3469 fi
michael@13 3470 fi
michael@13 3471
michael@13 3472 # check whether group already exists
michael@13 3473 exists=`(getent group "$grp"; \
michael@13 3474 grep "^$grp:" /etc/group; \
michael@13 3475 ypmatch "$grp" group; \
michael@13 3476 nismatch "$grp" group; \
michael@428 3477 nidump group . | grep "^$grp:"; \
michael@428 3478 dscl . -read "/groups/$grp" | grep RecordName) 2>/dev/null | \
michael@13 3479 sed -e 'q'`
michael@13 3480 if [ ".$exists" != . ]; then
michael@13 3481 if [ ".$cusr" != ".root" ]; then
michael@13 3482 echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2
michael@13 3483 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3484 elif [ ".$usr" = ".root" ] || [ ".$grp" = ".root" ] || [ ".$grp" = ".wheel" ]; then
michael@13 3485 echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2
michael@13 3486 echo "openpkg:WARNING: (would remove system standard group)" 1>&2
michael@13 3487 else
michael@13 3488 case "$plid" in
michael@428 3489 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 3490 dscl . -delete "/groups/${grp}"
michael@428 3491 ;;
michael@13 3492 Darwin/* )
michael@13 3493 niutil -destroy . "/groups/${grp}"
michael@13 3494 ;;
michael@13 3495 AIX/* )
michael@13 3496 rmgroup "${grp}"
michael@13 3497 ;;
michael@13 3498 * )
michael@13 3499 cp /etc/group /etc/group.bak && \
michael@13 3500 grep -v "^${grp}:" /etc/group.bak >/etc/group
michael@13 3501 rm -f /etc/group.bak >/dev/null 2>&1
michael@13 3502 ;;
michael@13 3503 esac
michael@13 3504 fi
michael@13 3505 fi
michael@13 3506 done
michael@13 3507
michael@13 3508 # invalidate passwd and group tables from Name Service Cache Daemon to
michael@13 3509 # ensure chown/chgrp works immediately after pwconv on Linux and Solaris
michael@13 3510 if [ -x /usr/sbin/nscd ]; then
michael@13 3511 /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true
michael@13 3512 /usr/sbin/nscd -i group >/dev/null 2>&1 || true
michael@13 3513 fi
michael@13 3514
michael@13 3515 # remove the startup/shutdown transfer scripts
michael@443 3516 name="openpkg-`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@13 3517 if [ ".$cusr" != ".root" ]; then
michael@444 3518 echo "openpkg:WARNING: skipping deletion of system runcommand hooks" 1>&2
michael@444 3519 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 3520 else
michael@13 3521 case "$plid" in
michael@13 3522 FreeBSD/* )
michael@428 3523 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 3524 ;;
michael@13 3525 NetBSD/* )
michael@13 3526 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 3527 ;;
michael@13 3528 Linux/* )
michael@13 3529 if [ -f /etc/gentoo-release ]; then
michael@428 3530 /sbin/rc-update del ${name} >/dev/null 2>&1
michael@428 3531 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@428 3532 elif [ -f /etc/redhat-release ]; then
michael@428 3533 /sbin/chkconfig ${name} off >/dev/null 2>&1
michael@428 3534 /sbin/chkconfig --del ${name} >/dev/null 2>&1
michael@428 3535 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@13 3536 else
michael@13 3537 # sroot: script root directory
michael@13 3538 # lroot: link root directory
michael@13 3539 if [ -f /etc/debian_version ]; then
michael@13 3540 sroot=/etc/init.d
michael@428 3541 lroot=/etc/rc%%d.d
michael@428 3542 elif [ -f /etc/mandrake-release ]; then
michael@13 3543 sroot=/etc/rc.d/init.d
michael@428 3544 lroot=/etc/rc.d/rc%%d.d
michael@13 3545 elif [ -f /etc/SuSE-release ]; then
michael@13 3546 sroot=/etc/init.d
michael@428 3547 lroot=/etc/init.d/rc%%d.d
michael@13 3548 elif [ -f /etc/slackware-version ]; then
michael@13 3549 sroot=/etc/rc.d
michael@428 3550 lroot=/etc/rc.d/rc%%d.d
michael@13 3551 name="rc.${name}"
michael@13 3552 else
michael@13 3553 echo "WARNING: you are not running one of the supported standard" 1>&2
michael@13 3554 echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2
michael@13 3555 echo "WARNING: Guessing the location of the system init scripts!" 1>&2
michael@13 3556 sroot=""
michael@13 3557 lroot=""
michael@13 3558 for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
michael@13 3559 if [ -d $sr ]; then
michael@13 3560 sroot="$sr"
michael@13 3561 break
michael@13 3562 fi
michael@13 3563 done
michael@13 3564 for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
michael@13 3565 if [ -d $lr ]; then
michael@428 3566 lroot="`echo $lr | sed -e 's;2;%%d;'`"
michael@13 3567 break
michael@13 3568 fi
michael@13 3569 done
michael@13 3570 if [ ".$sroot" = . -o ".$lroot" = . ]; then
michael@13 3571 echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2
michael@13 3572 exit 1
michael@13 3573 fi
michael@13 3574 fi
michael@13 3575 rm -f ${sroot}/${name} >/dev/null 2>&1
michael@13 3576 for i in 2 3 4 5; do
michael@428 3577 rm -f `echo $lroot | sed -e "s;%%d;$i;"`/S99${name} >/dev/null 2>&1
michael@13 3578 done
michael@13 3579 for i in 0 1 6; do
michael@428 3580 rm -f `echo $lroot | sed -e "s;%%d;$i;"`/K00${name} >/dev/null 2>&1
michael@13 3581 done
michael@13 3582 if [ -f /etc/slackware-version ]; then
michael@13 3583 for i in 0 1 2 3 4 5 6; do
michael@428 3584 l=`echo $lroot | sed -e "s;%%d;$i;"`
michael@13 3585 if [ -d $l ]; then
michael@13 3586 rmdir $l >/dev/null 2>&1 || true
michael@13 3587 fi
michael@13 3588 done
michael@13 3589 fi
michael@13 3590 fi
michael@13 3591 ;;
michael@437 3592 SunOS/5.1* )
michael@443 3593 suname="`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@449 3594 svcdir=/`[ -d /lib/svc/manifest ] && echo lib || echo var`
michael@449 3595 /usr/sbin/svcadm disable svc:/openpkg/${suname}:default; sleep 2
michael@449 3596 rm -f /${svcdir}/svc/manifest/openpkg/${suname}.xml >/dev/null 2>&1
michael@449 3597 rmdir /${svcdir}/svc/manifest/openpkg >/dev/null 2>&1 || true
michael@449 3598 /usr/sbin/svcadm restart svc:/system/manifest-import
michael@437 3599 ;;
michael@13 3600 SunOS/5.* )
michael@13 3601 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3602 rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1
michael@13 3603 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3604 rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1
michael@13 3605 ;;
michael@13 3606 UnixWare/* )
michael@13 3607 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3608 rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3609 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3610 rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1
michael@13 3611 ;;
michael@13 3612 AIX/* )
michael@13 3613 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@13 3614 rm -f /etc/rc.d/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3615 ;;
michael@13 3616 OSF1/V5.* )
michael@13 3617 rm -f /sbin/init.d/${name} >/dev/null 2>&1
michael@13 3618 rm -f /sbin/rc3.d/S99${name} >/dev/null 2>&1
michael@13 3619 rm -f /sbin/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3620 ;;
michael@13 3621 HP-UX/* )
michael@13 3622 rm -f /sbin/init.d/${name} >/dev/null 2>&1
michael@13 3623 rm -f /etc/rc2.d/S900${name} >/dev/null 2>&1
michael@13 3624 rm -f /etc/rc1.d/K100${name} >/dev/null 2>&1
michael@13 3625 ;;
michael@13 3626 Darwin/* )
michael@428 3627 darwin_rc_var="`echo ${name} | sed -e 's;-;_;g' | tr '[a-z]' '[A-Z]'`"
michael@13 3628 cp /etc/hostconfig /etc/hostconfig.bak && \
michael@428 3629 grep -v "^${darwin_rc_var}=" /etc/hostconfig.bak >/etc/hostconfig
michael@13 3630 rm -f /etc/hostconfig.bak >/dev/null 2>&1
michael@428 3631 rm -rf /Library/StartupItems/${name} >/dev/null 2>&1
michael@13 3632 ;;
michael@13 3633 IRIX*/6.* )
michael@13 3634 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3635 rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3636 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3637 ;;
michael@428 3638 CYGWIN*/* )
michael@428 3639 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@428 3640 rm -f /etc/rc.d/rc2.d/S90${name} >/dev/null 2>&1
michael@428 3641 rm -f /etc/rc.d/rc1.d/K10${name} >/dev/null 2>&1
michael@428 3642 ;;
michael@13 3643 esac
michael@13 3644 fi
michael@13 3645
michael@13 3646 # remove the cron transfer entries
michael@13 3647 if [ ".$cusr" != ".root" ]; then
michael@13 3648 echo "openpkg:WARNING: skipping deletion of system cron hooks" 1>&2
michael@13 3649 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3650 else
michael@13 3651 case "$plid" in
michael@428 3652 FreeBSD/* | Linux/* )
michael@13 3653 if [ -f /etc/slackware-version ]; then
michael@13 3654 EDITOR=/tmp/vipw.$$
michael@13 3655 VISUAL="$EDITOR"
michael@13 3656 export EDITOR
michael@13 3657 export VISUAL
michael@13 3658 p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'`
michael@13 3659 ( echo "cp \$1 \$1.bak"
michael@13 3660 echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1"
michael@13 3661 echo "rm -f \$1.bak"
michael@13 3662 ) >$EDITOR
michael@13 3663 chmod a+x $EDITOR
michael@13 3664 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3665 rm -f $EDITOR
michael@13 3666 else
michael@13 3667 exists=`grep "<OpenPKG prefix=$prefix pkg=openpkg>" /etc/crontab`
michael@13 3668 if [ ".$exists" != . ]; then
michael@13 3669 p=`echo $prefix | sed -e 's;/;\\\\/;g'`
michael@13 3670 cp /etc/crontab /etc/crontab.bak
michael@13 3671 cat /etc/crontab.bak |\
michael@13 3672 sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \
michael@13 3673 >/etc/crontab
michael@13 3674 rm -f /etc/crontab.bak >/dev/null 2>&1
michael@13 3675 fi
michael@13 3676 fi
michael@13 3677 ;;
michael@428 3678 SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* | CYGWIN*/* | Darwin/* )
michael@13 3679 EDITOR=/tmp/vipw.$$
michael@13 3680 VISUAL="$EDITOR"
michael@13 3681 export EDITOR
michael@13 3682 export VISUAL
michael@13 3683 p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'`
michael@13 3684 ( echo "cp \$1 \$1.bak"
michael@13 3685 echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1"
michael@13 3686 echo "rm -f \$1.bak"
michael@13 3687 ) >$EDITOR
michael@13 3688 chmod a+x $EDITOR
michael@13 3689 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3690 rm -f $EDITOR
michael@13 3691 ;;
michael@13 3692 IRIX*/6.* )
michael@13 3693 p=`echo $prefix | sed -e 's;/;\\\\\\/;g'`
michael@13 3694 ( crontab -l |
michael@13 3695 sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\/OpenPKG>/d"
michael@13 3696 ) | /usr/bin/crontab || exit $?
michael@13 3697 ;;
michael@13 3698 esac
michael@13 3699 fi
michael@13 3700
michael@13 3701 # delayed removal of top-level directory.
michael@13 3702 ( sleep 2
michael@428 3703 rm -rf %{l_prefix}/RPM/PKG/* >/dev/null 2>&1 || true
michael@428 3704 rm -rf %{l_prefix}/RPM/SRC/* >/dev/null 2>&1 || true
michael@428 3705 rm -rf %{l_prefix}/RPM/CACHE/* >/dev/null 2>&1 || true
michael@428 3706 rm -rf %{l_prefix}/RPM/TMP/* %{l_prefix}/RPM/TMP/.[a-z]* >/dev/null 2>&1 || true
michael@13 3707 rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true
michael@13 3708 rmdir %{l_prefix}/RPM/DB >/dev/null 2>&1 || true
michael@13 3709 rmdir %{l_prefix}/RPM >/dev/null 2>&1 || true
michael@13 3710 rmdir %{l_prefix} >/dev/null 2>&1 || true
michael@13 3711 ) </dev/null >/dev/null 2>/dev/null &
michael@13 3712

mercurial