openpkg/openpkg.spec

Thu, 04 Oct 2012 20:30:05 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 04 Oct 2012 20:30:05 +0200
changeset 715
c10fb90893b9
parent 570
d7167d2b16f4
permissions
-rw-r--r--

Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.

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@652 961 -Dlibs="-lm" \
michael@13 962 -Dldflags="-L""%{l_prefix}/lib" \
michael@13 963 -Dlibpth="$libdirs" \
michael@13 964 -Dglibpth="$libdirs" \
michael@13 965 -Dscriptdir="%{l_prefix}/bin" \
michael@13 966 -Uinstallusrbinperl \
michael@13 967 -Adefine:useshrplib='false' \
michael@13 968 -Ui_malloc -Ui_iconv -Ui_db
michael@428 969 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@428 970 *-cygwin* ) miniperl="miniperl.exe" ;;
michael@428 971 * ) miniperl="miniperl" ;;
michael@428 972 esac
michael@428 973 ${l_make} $miniperl || exit $?
michael@13 974 rm -f *.o >/dev/null 2>&1 || true
michael@13 975 ) || exit $?
michael@13 976 l_perl="`pwd`/perl-%{V_perl}/miniperl"; export l_perl
michael@13 977 echo "l_perl=\"$l_perl\"; export l_perl" >>.buildenv
michael@13 978
michael@13 979 # display verbosity header
michael@13 980 set +x; VERBOSE "BUILD: Build OpenSSL (Crypography and SSL/TLS Toolkit)"; set -x
michael@13 981
michael@13 982 # build OpenSSL toolkit
michael@13 983 ( cd openssl-%{V_openssl}
michael@13 984 sh $shtool subst \
michael@472 985 -e 's;-m64 *;;g' \
michael@472 986 -e 's;-xarch=amd64 *;;g' \
michael@13 987 -e 's;-m486;-march=i486;g' \
michael@13 988 -e 's;BN_LLONG *;;' \
michael@13 989 Configure
michael@13 990 sh $shtool subst \
michael@13 991 -e 's;test "$OSTYPE" = msdosdjgpp;true;' \
michael@13 992 util/point.sh
michael@13 993 sh $shtool subst \
michael@13 994 -e "1s;^.*\$;#!$l_perl;" \
michael@13 995 Configure `find . -name "*.pl" -print`
michael@13 996 opts=""
michael@13 997 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@13 998 *-solaris* ) opts="-lnsl -lsocket" ;;
michael@13 999 esac
michael@13 1000 case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in
michael@13 1001 amd64-* ) opts="$opts -fPIC" ;;
michael@13 1002 ia64-* ) opts="$opts -fPIC" ;;
michael@13 1003 sparc64-freebsd* ) opts="$opts -fPIC" ;;
michael@13 1004 esac
michael@13 1005 CC="${l_cc}" \
michael@13 1006 PERL="${l_perl}" \
michael@13 1007 ./config \
michael@13 1008 --prefix=%{l_prefix} \
michael@13 1009 no-asm no-shared no-dso \
michael@13 1010 no-zlib no-idea no-threads no-krb5 no-hw \
michael@13 1011 $opts
michael@13 1012 ${l_make} CC="${l_cc}" build_libs build_apps || exit $?
michael@13 1013 ( mkdir lib; cd lib; ln -s ../lib*.a . ) || exit $?
michael@13 1014 ) || exit $?
michael@13 1015
michael@428 1016 # build BSD libarchive
michael@428 1017 ( cd libarchive-%{V_libarchive}
michael@438 1018 sh $shtool subst \
michael@438 1019 -e 's;\(AM_CFLAGS =\) -Wall;\1;' \
michael@438 1020 Makefile.in
michael@428 1021 CC="${l_cc}" \
michael@472 1022 CFLAGS="-O -D_POSIX_PTHREAD_SEMANTICS" \
michael@428 1023 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 1024 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 1025 GREP="grep" \
michael@428 1026 ./configure \
michael@428 1027 --prefix=%{l_prefix} \
michael@429 1028 --libdir="%{l_prefix}/lib" \
michael@428 1029 --enable-bsdtar \
michael@428 1030 --enable-bsdcpio \
michael@428 1031 --with-zlib \
michael@428 1032 --with-bz2lib \
michael@428 1033 --with-lzma \
michael@428 1034 --without-lzmadec \
michael@428 1035 --with-openssl \
michael@428 1036 --without-xml2 \
michael@428 1037 --without-expat \
michael@428 1038 --without-iconv \
michael@428 1039 --disable-shared
michael@428 1040 ${l_make} || exit $?
michael@428 1041 ( mv bsdcpio bsdtar ..; ${l_make} clean || true; mv ../bsdcpio ../bsdtar . ) || exit $?
michael@428 1042 ) || exit $?
michael@428 1043
michael@428 1044 # build GNU diffutils
michael@428 1045 ( cd diffutils-%{V_diffutils}
michael@428 1046 CC="${l_cc}" \
michael@472 1047 CFLAGS="-O" \
michael@428 1048 ./configure \
michael@428 1049 --prefix=%{l_prefix} \
michael@428 1050 --disable-nls
michael@439 1051 touch man/diff.1 man/diff3.1 && ${l_make} || exit $?
michael@428 1052 ( mv src/diff src/diff3 src/sdiff src/cmp ..
michael@428 1053 ${l_make} clean || true
michael@428 1054 mv ../diff ../diff3 ../sdiff ../cmp .
michael@428 1055 ) || exit $?
michael@428 1056 ) || exit $?
michael@428 1057
michael@13 1058 # display verbosity header
michael@13 1059 set +x; VERBOSE "BUILD: Build cURL (URL Fetching Tool)"; set -x
michael@13 1060
michael@13 1061 # build cURL tool
michael@13 1062 ( cd curl-%{V_curl}
michael@13 1063 ( echo 'ac_cv_header_openssl_engine_h=no'
michael@13 1064 echo 'lt_cv_prog_compiler_c_o_F77=no'
michael@13 1065 echo 'lt_cv_sys_max_cmd_len=100'
michael@13 1066 ) >config.cache
michael@13 1067 CC="${l_cc}" \
michael@472 1068 CFLAGS="-I`pwd`/../zlib-%{V_zlib}" \
michael@13 1069 CPPFLAGS="-I`pwd`/../zlib-%{V_zlib}" \
michael@472 1070 LDFLAGS="-L`pwd`/../zlib-%{V_zlib}" \
michael@13 1071 GREP="grep" \
michael@13 1072 ./configure \
michael@13 1073 --cache-file=./config.cache \
michael@429 1074 --libdir="%{l_prefix}/lib" \
michael@13 1075 --without-libidn \
michael@13 1076 --disable-shared \
michael@13 1077 --disable-thread \
michael@13 1078 --disable-ipv6 \
michael@13 1079 --disable-ldap \
michael@13 1080 --with-zlib=`pwd`/../zlib-%{V_zlib} \
michael@13 1081 --with-ssl=`pwd`/../openssl-%{V_openssl} \
michael@13 1082 --with-ca-bundle=%{l_prefix}/etc/openpkg/openpkg.x509
michael@13 1083 ${l_make} || exit $?
michael@428 1084 mv src/curl ..; ${l_make} clean || true; mv ../curl .
michael@428 1085 ) || exit $?
michael@428 1086
michael@428 1087 # build PCRE library
michael@428 1088 ( cd pcre-%{V_pcre}
michael@428 1089 CC="${l_cc}" \
michael@472 1090 CFLAGS="-O" \
michael@428 1091 GREP="grep" \
michael@428 1092 ./configure \
michael@428 1093 --disable-cpp \
michael@428 1094 --disable-utf8 \
michael@428 1095 --disable-shared
michael@428 1096 ${l_make} || exit $?
michael@13 1097 ) || exit $?
michael@13 1098
michael@13 1099 # display verbosity header
michael@13 1100 set +x; VERBOSE "BUILD: Build BeeCrypt (Cryptography Library)"; set -x
michael@13 1101
michael@13 1102 # build BeeCrypt library
michael@13 1103 ( cd beecrypt-%{V_beecrypt}
michael@13 1104 sh $shtool subst \
michael@13 1105 -e 's;^[ ][ ]*#;#;' \
michael@428 1106 aes.c base64.c blockmode.c blowfish.c entropy.c fips186.c md4.c md5.c \
michael@428 1107 mp.c mtprng.c ripemd128.c ripemd160.c ripemd256.c ripemd320.c rsa.c \
michael@428 1108 sha1.c sha224.c sha256.c sha2k64.c sha384.c sha512.c timestamp.c
michael@13 1109 sh $shtool subst \
michael@13 1110 -e 's;cppglue\.lo;;g' \
michael@13 1111 -e 's;cppglue\.cxx;;g' \
michael@13 1112 -e '/^CXX = /s;@CXX@;@CC@;g' \
michael@13 1113 Makefile.in
michael@13 1114 ( echo 'ac_cv_have_dev_dsp=no'
michael@13 1115 echo 'ac_cv_have_dev_audio=no'
michael@13 1116 echo 'ac_cv_func_gettimeofday=yes'
michael@13 1117 echo 'bc_cv_as_noexecstack=no'
michael@13 1118 ) >config.cache
michael@13 1119 CC="${l_cc}" \
michael@472 1120 CFLAGS="-O" \
michael@13 1121 ./configure \
michael@13 1122 --cache-file=./config.cache \
michael@13 1123 --prefix=%{l_prefix} \
michael@429 1124 --libdir="%{l_prefix}/lib" \
michael@428 1125 --with-cpu=none \
michael@428 1126 --with-arch=none \
michael@13 1127 --without-cplusplus \
michael@13 1128 --without-java \
michael@13 1129 --without-python \
michael@428 1130 --disable-expert-mode \
michael@428 1131 --disable-aio \
michael@428 1132 --disable-openmp \
michael@13 1133 --disable-threads \
michael@13 1134 --disable-shared
michael@13 1135 ${l_make} || exit $?
michael@13 1136 cp .libs/libbeecrypt.a .
michael@13 1137 ) || exit $?
michael@13 1138
michael@13 1139 # display verbosity header
michael@428 1140 set +x; VERBOSE "BUILD: Build POPT (Option Parsing Library)"; set -x
michael@428 1141
michael@428 1142 # build POPT library
michael@428 1143 ( cd popt-%{V_popt}
michael@428 1144 CC="${l_cc}" \
michael@472 1145 CFLAGS="-O" \
michael@428 1146 CPPFLAGS="-DOPENPKG -DPOPT_fprintf=fprintf" \
michael@428 1147 GREP="grep" \
michael@428 1148 ./configure \
michael@428 1149 --prefix=%{l_prefix} \
michael@429 1150 --libdir="%{l_prefix}/lib" \
michael@428 1151 --disable-shared \
michael@428 1152 --with-included-gettext \
michael@428 1153 --without-libintl-prefix \
michael@428 1154 --without-libiconv-prefix \
michael@428 1155 --disable-nls
michael@428 1156 ${l_make}
michael@428 1157 ) || exit $?
michael@428 1158
michael@428 1159 # display verbosity header
michael@428 1160 set +x; VERBOSE "BUILD: Build SQLite (RDBMS Library)"; set -x
michael@428 1161
michael@428 1162 # build SQLite library
michael@428 1163 ( cd sqlite-%{V_sqlite}
michael@428 1164 CC="${l_cc}" \
michael@472 1165 CFLAGS="-O" \
michael@428 1166 LIBS="-lm" \
michael@428 1167 GREP="grep" \
michael@428 1168 ./configure \
michael@428 1169 --prefix=%{l_prefix} \
michael@429 1170 --libdir="%{l_prefix}/lib" \
michael@428 1171 --disable-threadsafe \
michael@428 1172 --disable-readline \
michael@428 1173 --disable-debug \
michael@428 1174 --disable-amalgamation \
michael@428 1175 --disable-tcl \
michael@428 1176 --disable-shared
michael@428 1177 ${l_make}
michael@428 1178 ) || exit $?
michael@428 1179
michael@428 1180 # display verbosity header
michael@13 1181 set +x; VERBOSE "BUILD: Build RPM (RPM Package Manager)"; set -x
michael@13 1182
michael@13 1183 # build RPM
michael@13 1184 ( br=`pwd`
michael@428 1185 cd rpm-%{V_rpm_major}.%{V_rpm_minor}
michael@13 1186
michael@436 1187 # remove unused and undefined methods
michael@436 1188 sh $shtool subst \
michael@436 1189 -e 's;^\(#include *<[^>][^>]*>\);/*\1*/;g' \
michael@436 1190 rpmconstant/rpmconstant.h
michael@436 1191
michael@470 1192 # Avoid bugs causing 'fatal problems'
michael@470 1193 sh $shtool subst \
michael@470 1194 -e 's;\(rc = INTEGRITY\)_ERROR;\1_OK;g' \
michael@470 1195 -e 's;integrity_check_message("%s\\n", result);((void)0);g' \
michael@470 1196 rpmqv.c
michael@470 1197
michael@435 1198 # provide nonstandard constructs
michael@435 1199 cat > nonstandard.h <<EOF
michael@435 1200 /* MSvB: define missing nonstandard GCC builtin extensions */
michael@435 1201 #ifndef __GNUC__
michael@435 1202 #define __builtin_expect(e,n) (e)
michael@435 1203 #endif /* ifndef __GNUC__ */
michael@435 1204 EOF
michael@435 1205
michael@13 1206 # cheat GNU Autoconf
michael@13 1207 ( echo 'ac_cv_path_MSGFMT=:'
michael@13 1208 echo 'ac_cv_path_GMSGFMT=:'
michael@13 1209 echo 'ac_cv_path_XGETTEXT=:'
michael@13 1210 echo 'ac_cv_path_MSGMERGE=:'
michael@13 1211 echo "ac_cv_header_getopt_h=no"
michael@428 1212 echo "ac_cv_lib_gz_gzread=no"
michael@13 1213 ) >config.cache
michael@13 1214
michael@428 1215 # use miniperl
michael@428 1216 PERL="${l_perl}"
michael@428 1217 export PERL
michael@13 1218
michael@13 1219 # set build tool flags
michael@13 1220 CC="${l_cc}"
michael@472 1221 CFLAGS=""
michael@428 1222 CPPFLAGS="-DRPM_VENDOR_OPENPKG"
michael@472 1223 LDFLAGS=""
michael@428 1224 LIBS=""
michael@428 1225 LIBS="$LIBS -lm"
michael@428 1226 export CC
michael@428 1227 export CFLAGS
michael@428 1228 export CPPFLAGS
michael@428 1229 export LDFLAGS
michael@428 1230 export LIBS
michael@13 1231
michael@428 1232 # special platform workarounds
michael@428 1233 GREP="grep"
michael@428 1234 export GREP
michael@428 1235
michael@428 1236 # determine POPT option, RPM macros and Lua script file paths
michael@428 1237 RPMPOPT="%{l_prefix}/lib/openpkg/rpmpopt"
michael@428 1238 RPMPOPT="$RPMPOPT:%{l_prefix}/etc/openpkg/rpmpopt"
michael@428 1239 RPMPOPT="$RPMPOPT:%{l_prefix}/etc/openpkg/rpmpopt.d/*"
michael@428 1240 RPMPOPT="$RPMPOPT:~/.openpkg/rpmpopt"
michael@428 1241 RPMPOPT="$RPMPOPT:@../../.openpkg/rpmpopt"
michael@428 1242 RPMPOPT="$RPMPOPT:@../.openpkg/rpmpopt"
michael@428 1243 RPMPOPT="$RPMPOPT:@./.openpkg/rpmpopt"
michael@428 1244 RPMMACROS="%{l_prefix}/lib/openpkg/rpmmacros"
michael@428 1245 RPMMACROS="$RPMMACROS:%{l_prefix}/etc/openpkg/rpmmacros"
michael@428 1246 RPMMACROS="$RPMMACROS:%{l_prefix}/etc/openpkg/rpmmacros.d/*"
michael@428 1247 RPMMACROS="$RPMMACROS:~/.openpkg/rpmmacros"
michael@428 1248 RPMMACROS="$RPMMACROS:@../../.openpkg/rpmmacros"
michael@428 1249 RPMMACROS="$RPMMACROS:@../.openpkg/rpmmacros"
michael@428 1250 RPMMACROS="$RPMMACROS:@./.openpkg/rpmmacros"
michael@428 1251 RPMLUA="%{l_prefix}/lib/openpkg/rpmlua"
michael@428 1252 RPMLUA="$RPMLUA:%{l_prefix}/etc/openpkg/rpmlua"
michael@428 1253 RPMLUA="$RPMLUA:%{l_prefix}/etc/openpkg/rpmlua.d/*"
michael@428 1254 RPMLUA="$RPMLUA:~/.openpkg/rpmlua"
michael@428 1255 RPMLUA="$RPMLUA:@../../.openpkg/rpmlua"
michael@428 1256 RPMLUA="$RPMLUA:@../.openpkg/rpmlua"
michael@428 1257 RPMLUA="$RPMLUA:@./.openpkg/rpmlua"
michael@428 1258
michael@428 1259 # parametrize integrity checking framework
michael@13 1260 sh $shtool subst \
michael@428 1261 -e "s;0000000000000000000000000000000000000000;7D121A8FC05DC18A4329E9EF67042EC961B7AE34;" \
michael@428 1262 -e "s;0\\.0\\.0;0.9.0;" \
michael@428 1263 rpmqv.c
michael@428 1264
michael@428 1265 # disable building of any tests
michael@428 1266 # (mainly because those would fail because of integrity checking anyway)
michael@13 1267 sh $shtool subst \
michael@428 1268 -e 's;tools scripts tests doc;tools scripts doc;' \
michael@333 1269 Makefile.in
michael@13 1270
michael@428 1271 # configure program
michael@428 1272 ./configure \
michael@13 1273 --cache-file=./config.cache \
michael@13 1274 --prefix=%{l_prefix} \
michael@429 1275 --libdir="%{l_prefix}/lib" \
michael@428 1276 --mandir="%{l_prefix}/man" \
michael@428 1277 --includedir="%{l_prefix}/include/openpkg" \
michael@428 1278 --with-name="OpenPKG RPM" \
michael@428 1279 --with-path-cfg="%{l_prefix}/etc/openpkg" \
michael@428 1280 --with-path-rpmpopt="$RPMPOPT" \
michael@428 1281 --with-path-macros="$RPMMACROS" \
michael@428 1282 --with-path-rpmlua="$RPMLUA" \
michael@428 1283 --with-path-lib="%{l_prefix}/lib/openpkg" \
michael@428 1284 --with-path-locale="%{l_prefix}/share/openpkg/locale" \
michael@428 1285 --with-path-database="%{l_prefix}/RPM/DB" \
michael@428 1286 --with-path-sources="%{l_prefix}/RPM" \
michael@428 1287 --with-bugreport="openpkg-users@openpkg.org" \
michael@428 1288 --with-beecrypt="$br/beecrypt-%{V_beecrypt}" \
michael@428 1289 --with-openssl="$br/openssl-%{V_openssl}" \
michael@428 1290 --with-zlib="$br/zlib-%{V_zlib}" \
michael@428 1291 --with-bzip2="$br/bzip2-%{V_bzip2}" \
michael@428 1292 --with-popt="$br/popt-%{V_popt}" \
michael@428 1293 --with-sqlite="$br/sqlite-%{V_sqlite}" \
michael@428 1294 --with-pcre="$br/pcre-%{V_pcre}" \
michael@428 1295 --with-uuid="$br/uuid-%{V_uuid}" \
michael@428 1296 --with-lua="internal" \
michael@428 1297 --with-db="internal" \
michael@428 1298 --without-db-rpc \
michael@428 1299 --without-db-largefile \
michael@428 1300 --with-db-tools-integrated \
michael@428 1301 --with-db-mutex="UNIX/fcntl" \
michael@428 1302 --without-file \
michael@428 1303 --without-neon \
michael@428 1304 --without-pthreads \
michael@428 1305 --without-libelf \
michael@428 1306 --without-selinux \
michael@428 1307 --without-perl \
michael@13 1308 --without-python \
michael@13 1309 --without-apidocs \
michael@428 1310 --disable-build-warnings \
michael@428 1311 --disable-build-extlibdep \
michael@428 1312 --disable-build-intlibdep \
michael@428 1313 --disable-build-lafiles \
michael@13 1314 --disable-shared \
michael@13 1315 --disable-rpath \
michael@13 1316 --disable-nls
michael@13 1317
michael@428 1318 # build program
michael@13 1319 ${l_make}
michael@13 1320 ) || exit $?
michael@13 1321
michael@13 1322 # display verbosity header
michael@444 1323 set +x; VERBOSE "BUILD: Build OpenPKG Frontend (Setuid Wrapper)"; set -x
michael@13 1324
michael@13 1325 # build "openpkg" executable
michael@428 1326 ${l_make} -f `SOURCE openpkg.mk` \
michael@13 1327 CC="${l_cc}" \
michael@13 1328 OPENPKG_PREFIX="%{l_prefix}" \
michael@13 1329 OPENPKG_SUSR="%{l_susr}" \
michael@428 1330 OPENPKG_MUSR="%{l_musr}" \
michael@428 1331 OPENPKG_DOT_C="`SOURCE openpkg.c`"
michael@428 1332
michael@428 1333 # display verbosity header
michael@428 1334 set +x; VERBOSE "BUILD: Build OpenPKG Mutual Exclusion (MutEx) Utility"; set -x
michael@428 1335
michael@428 1336 # build "mutex" executable
michael@428 1337 ${l_make} -f `SOURCE mutex.mk` \
michael@428 1338 CC="${l_cc}" \
michael@428 1339 CPPFLAGS="-Ipopt-%{V_popt}" \
michael@472 1340 LDFLAGS="-Lpopt-%{V_popt} -Lpopt-%{V_popt}/.libs" \
michael@428 1341 MUTEX_DOT_C="`SOURCE mutex.c`"
michael@13 1342
michael@13 1343 %install
michael@13 1344 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 1345 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 1346
michael@13 1347 # switch into a temporary build area
michael@13 1348 cd openpkg-%{version}
michael@13 1349 . ./.buildenv
michael@13 1350
michael@13 1351 # display verbosity header
michael@13 1352 set +x; VERBOSE "INSTALL: Create Installation Filesystem Hierarchy"; set -x
michael@13 1353
michael@13 1354 # create installation hierarchy
michael@13 1355 rm -rf $RPM_BUILD_ROOT
michael@13 1356 sh $shtool mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}
michael@13 1357 for dir in bin etc include info lib libexec man sbin share var cgi pub local; do
michael@13 1358 test -d $RPM_BUILD_ROOT%{l_prefix}/$dir || \
michael@13 1359 mkdir $RPM_BUILD_ROOT%{l_prefix}/$dir
michael@13 1360 done
michael@13 1361 for i in 1 2 3 4 5 6 7 8 9; do
michael@13 1362 test -d $RPM_BUILD_ROOT%{l_prefix}/man/man$i || \
michael@13 1363 mkdir $RPM_BUILD_ROOT%{l_prefix}/man/man$i
michael@13 1364 test -d $RPM_BUILD_ROOT%{l_prefix}/man/cat$i || \
michael@13 1365 mkdir $RPM_BUILD_ROOT%{l_prefix}/man/cat$i
michael@13 1366 done
michael@13 1367 for dir in PKG bin etc include info lib man sbin; do
michael@13 1368 test -d $RPM_BUILD_ROOT%{l_prefix}/local/$dir || \
michael@13 1369 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/$dir
michael@13 1370 done
michael@13 1371 for i in 1 2 3 4 5 6 7 8 9; do
michael@13 1372 test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i || \
michael@13 1373 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i
michael@13 1374 test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i || \
michael@13 1375 mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i
michael@13 1376 done
michael@13 1377 test -d $RPM_BUILD_ROOT%{l_prefix}/RPM || \
michael@13 1378 mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM
michael@428 1379 for dir in SRC PKG DB TR TMP; do
michael@13 1380 test -d $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir || \
michael@13 1381 mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir
michael@13 1382 done
michael@13 1383 mkdir $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg
michael@13 1384
michael@13 1385 # display verbosity header
michael@13 1386 set +x; VERBOSE "INSTALL: Installation of RPM"; set -x
michael@13 1387
michael@13 1388 # install RPM into installation hierarchy
michael@428 1389 ( cd rpm-%{V_rpm_major}.%{V_rpm_minor}
michael@428 1390 ${l_make} install DESTDIR="$RPM_BUILD_ROOT"
michael@428 1391 cp lua/rpmlua $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/lua
michael@428 1392 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/lua
michael@13 1393 ) || exit $?
michael@13 1394
michael@444 1395 # postadjust RPM installation
michael@428 1396 mv $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/macros \
michael@428 1397 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmmacros
michael@428 1398
michael@13 1399 # display verbosity header
michael@13 1400 set +x; VERBOSE "INSTALL: Install Additional Files"; set -x
michael@13 1401
michael@13 1402 # add additional development files
michael@428 1403 cp rpm-%{V_rpm_major}.%{V_rpm_minor}/rpmio/glob.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1404 cp zlib-%{V_zlib}/zlib.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1405 cp zlib-%{V_zlib}/zconf.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1406 cp zlib-%{V_zlib}/libz.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmz.a
michael@428 1407 cp bzip2-%{V_bzip2}/bzlib.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1408 cp bzip2-%{V_bzip2}/libbz2.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbz2.a
michael@428 1409 cp beecrypt-%{V_beecrypt}/include/beecrypt/beecrypt.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@13 1410 cp beecrypt-%{V_beecrypt}/libbeecrypt.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbeecrypt.a
michael@428 1411 cp popt-%{V_popt}/popt.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1412 cp popt-%{V_popt}/.libs/libpopt.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmpopt.a
michael@428 1413 cp sqlite-%{V_sqlite}/sqlite3.h $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm/
michael@428 1414 cp sqlite-%{V_sqlite}/.libs/libsqlite3.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmsqlite3.a
michael@13 1415
michael@13 1416 # display verbosity header
michael@444 1417 set +x; VERBOSE "INSTALL: Postadjust Installation"; set -x
michael@13 1418
michael@13 1419 # move C API into custom locations
michael@13 1420 mv $RPM_BUILD_ROOT%{l_prefix}/lib/librpm* \
michael@13 1421 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1422 mv $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/rpm.pc \
michael@428 1423 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1424 # FIXME: does the rpm.pc really work this way?
michael@13 1425
michael@13 1426 # move rpm tool to custom location
michael@13 1427 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm \
michael@13 1428 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@13 1429 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm.8 \
michael@13 1430 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm.8
michael@428 1431 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm >/dev/null 2>&1 || true
michael@13 1432
michael@13 1433 # move rpm2cpio tool to custom location
michael@13 1434 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm2cpio \
michael@13 1435 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio
michael@13 1436 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm2cpio.8 \
michael@13 1437 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio.8
michael@428 1438 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio >/dev/null 2>&1 || true
michael@13 1439
michael@428 1440 # move rpmconstant tool to custom location
michael@428 1441 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmconstant \
michael@428 1442 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant
michael@428 1443 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmconstant.8 \
michael@428 1444 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant.8
michael@428 1445 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmconstant >/dev/null 2>&1 || true
michael@428 1446
michael@428 1447 # move rpmcache tool to custom location
michael@428 1448 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmcache \
michael@428 1449 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache
michael@428 1450 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmcache.8 \
michael@428 1451 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache.8
michael@428 1452 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmcache >/dev/null 2>&1 || true
michael@428 1453
michael@428 1454 # move rpmgrep tool to custom location
michael@428 1455 mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpmgrep \
michael@428 1456 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep
michael@428 1457 mv $RPM_BUILD_ROOT%{l_prefix}/man/man1/rpmgrep.1 \
michael@428 1458 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep.1
michael@428 1459 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgrep >/dev/null 2>&1 || true
michael@428 1460
michael@428 1461 # move manual pages to custom location
michael@428 1462 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmdeps.8 \
michael@428 1463 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmdeps.8
michael@428 1464 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmgraph.8 \
michael@428 1465 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmgraph.8
michael@13 1466 mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmbuild.8 \
michael@13 1467 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmbuild.8
michael@13 1468
michael@13 1469 # display verbosity header
michael@13 1470 set +x; VERBOSE "INSTALL: Stripping Down Installation"; set -x
michael@13 1471
michael@13 1472 # strip RPM installation
michael@13 1473 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/* \
michael@13 1474 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/* >/dev/null 2>&1 || true
michael@428 1475 for file in rpmbuild gendiff; do
michael@13 1476 rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$file >/dev/null 2>&1 || true
michael@13 1477 done
michael@428 1478 for dir in RPMS SRPMS SPEC SOURCES BUILD; do
michael@428 1479 rm -rf $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir >/dev/null 2>&1 || true
michael@428 1480 done
michael@13 1481 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/* >/dev/null 2>&1 || true
michael@13 1482 rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man3/* >/dev/null 2>&1 || true
michael@13 1483 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.la >/dev/null 2>&1 || true
michael@428 1484 rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig >/dev/null 2>&1 || true
michael@13 1485 for file in \
michael@428 1486 brp-compress brp-python-bytecompile brp-java-gcjcompile brp-strip brp-strip-comment-note \
michael@428 1487 brp-nobuildrootpath brp-strip-shared brp-strip-static-archive brp-sparc64-linux check-files \
michael@428 1488 cross-build executabledeps.sh find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
michael@428 1489 find-provides.perl find-requires.perl getpo.sh http.req javadeps.sh libtooldeps.sh mono-find-provides \
michael@428 1490 mono-find-requires osgideps.pl pkgconfigdeps.sh perldeps.pl perl.prov perl.req pythondeps.sh \
michael@428 1491 php.prov php.req rpmdb_loadcvt rpm.daily rpm.log rpm.xinetd symclash.py symclash.sh tgpg u_pkg.sh \
michael@428 1492 vpkg-provides.sh vpkg-provides2.sh install-sh mkinstalldirs; do
michael@428 1493 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$file >/dev/null 2>&1 || true
michael@428 1494 done
michael@428 1495 for file in \
michael@428 1496 db_archive db_checkpoint db_deadlock db_dump db_hotbackup db_load \
michael@428 1497 db_printlog db_recover db_stat db_upgrade db_verify; do
michael@13 1498 rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$file >/dev/null 2>&1 || true
michael@13 1499 done
michael@13 1500
michael@13 1501 # display verbosity header
michael@13 1502 set +x; VERBOSE "INSTALL: Install Additional Tools"; set -x
michael@13 1503
michael@13 1504 # install lsync tool
michael@13 1505 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1506 <`SOURCE lsync` \
michael@13 1507 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync
michael@13 1508 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync
michael@13 1509 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1510 <`SOURCE dot.lsyncrc` \
michael@13 1511 >$RPM_BUILD_ROOT%{l_prefix}/local/.lsyncrc
michael@13 1512 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1513 <`SOURCE lsync.8` \
michael@13 1514 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync.8
michael@13 1515
michael@13 1516 # install rpm-config tool
michael@13 1517 ( l_prefix="%{l_prefix}"
michael@13 1518 l_cc="%{l_cc}"
michael@13 1519 l_cflags=""
michael@13 1520 l_cppflags="-DOPENPKG -I${l_prefix}/include/openpkg/rpm -I${l_prefix}/include/openpkg"
michael@13 1521 l_ldflags="-L${l_prefix}/lib/openpkg"
michael@428 1522 l_libs="-lrpmbuild -lrpm -lrpmio -lrpmdb -lrpmmisc -lrpmsqlite3 -lrpmpopt -lrpmbeecrypt -lrpmbz2 -lrpmz"
michael@13 1523 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1524 -e "s:@l_cc@:$l_cc:g" \
michael@13 1525 -e "s:@l_cflags@:$l_cflags:g" \
michael@13 1526 -e "s:@l_cppflags@:$l_cppflags:g" \
michael@13 1527 -e "s:@l_ldflags@:$l_ldflags:g" \
michael@13 1528 -e "s:@l_libs@:$l_libs:g" \
michael@428 1529 -e "s:@l_version@:%{V_rpm_major}.%{V_rpm_minor}:g" \
michael@13 1530 <`SOURCE rpm-config.sh` \
michael@13 1531 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config
michael@13 1532 ) || exit $?
michael@13 1533 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config
michael@428 1534 sed -e "s:RPM_VERSION:%{V_rpm_major}.%{V_rpm_minor}:g" \
michael@13 1535 <`SOURCE rpm-config.8` \
michael@13 1536 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config.8
michael@13 1537
michael@13 1538 # install OpenPKG registry commands
michael@428 1539 mv $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm \
michael@428 1540 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpm
michael@428 1541 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1542 `SOURCE rpm.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@428 1543 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm
michael@428 1544 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1545 `SOURCE register.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register
michael@428 1546 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register
michael@428 1547 cp `SOURCE register.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register.8
michael@13 1548
michael@428 1549 # allow GNU shtool to be called as "openpkg shtool" from external, too.
michael@428 1550 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1551 `SOURCE shtool.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/shtool.sh
michael@428 1552 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/shtool.sh
michael@428 1553
michael@428 1554 # install OpenPKG tool chain command subset
michael@428 1555 cp `SOURCE curl.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/curl.sh
michael@428 1556 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/curl.sh
michael@428 1557 cp `SOURCE build.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl
michael@428 1558 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl
michael@428 1559 cp `SOURCE build.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.8
michael@428 1560 cp `SOURCE index.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.pl
michael@428 1561 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.pl
michael@428 1562 cp `SOURCE index.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/index.8
michael@428 1563 cp `SOURCE search.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.pl
michael@428 1564 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.pl
michael@428 1565 cp `SOURCE search.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/search.8
michael@428 1566 cp `SOURCE mirror.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.pl
michael@428 1567 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.pl
michael@428 1568 cp `SOURCE mirror.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/mirror.8
michael@428 1569 cp `SOURCE makeproxy.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.pl
michael@428 1570 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.pl
michael@428 1571 cp `SOURCE makeproxy.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/makeproxy.8
michael@428 1572 cp `SOURCE lint-fsl.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 1573 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 1574 cp `SOURCE lint-rc.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 1575 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 1576 cp `SOURCE lint-rpm.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 1577 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 1578 cp `SOURCE lint-spec.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 1579 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 1580 cp `SOURCE dev.pl` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.pl
michael@428 1581 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.pl
michael@428 1582 cp `SOURCE dev.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/dev.8
michael@428 1583 cp `SOURCE sea.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.sh
michael@428 1584 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.sh
michael@428 1585 cp `SOURCE sea.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/sea.8
michael@428 1586 cp `SOURCE stack.sh` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.sh
michael@428 1587 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.sh
michael@428 1588 cp `SOURCE stack.8` $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/stack.8
michael@13 1589
michael@13 1590 # install RPM extension
michael@13 1591 ( cd perl-%{V_perl}
michael@13 1592 cp miniperl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl
michael@13 1593 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl
michael@13 1594 ) || exit $?
michael@13 1595 ( cd openssl-%{V_openssl}
michael@13 1596 cp apps/openssl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl
michael@13 1597 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl
michael@13 1598 ) || exit $?
michael@13 1599 ( cd curl-%{V_curl}
michael@428 1600 cp curl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl
michael@13 1601 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl
michael@13 1602 ) || exit $?
michael@13 1603 ( cd bzip2-%{V_bzip2}
michael@13 1604 cp bzip2 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2
michael@13 1605 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2
michael@13 1606 ) || exit $?
michael@13 1607 ( cd gzip-%{V_gzip}
michael@13 1608 cp gzip $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip
michael@13 1609 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip
michael@13 1610 ) || exit $?
michael@428 1611 ( cd xz-%{V_xz}
michael@428 1612 cp src/xz/xz $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/xz
michael@428 1613 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/xz
michael@428 1614 ) || exit $?
michael@13 1615 ( cd patch-%{V_patch}
michael@13 1616 cp patch $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch
michael@13 1617 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch
michael@13 1618 ) || exit $?
michael@13 1619 ( cd tar-%{V_tar}
michael@13 1620 cp tar $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar
michael@13 1621 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar
michael@13 1622 ) || exit $?
michael@13 1623 ( cd bash-%{V_bash}
michael@13 1624 cp bash $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
michael@13 1625 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash
michael@13 1626 ) || exit $?
michael@13 1627 ( cd uuid-%{V_uuid}
michael@13 1628 cp uuid $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
michael@13 1629 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid
michael@13 1630 ) || exit $?
michael@428 1631 ( cd sqlite-%{V_sqlite}
michael@428 1632 cp sqlite3 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/sqlite3
michael@428 1633 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/sqlite3
michael@428 1634 ) || exit $?
michael@428 1635 ( cd libarchive-%{V_libarchive}
michael@428 1636 cp bsdcpio $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdcpio
michael@428 1637 cp bsdtar $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdtar
michael@428 1638 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdcpio
michael@428 1639 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bsdtar
michael@428 1640 ) || exit $?
michael@428 1641 ( cd diffutils-%{V_diffutils}
michael@428 1642 ${l_strip} diff diff3 sdiff cmp
michael@428 1643 cp diff diff3 sdiff cmp $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/
michael@428 1644 ) || exit $?
michael@428 1645 ( cd svs-%{V_svs}
michael@428 1646 sed -e "s;/bin/sh;%{l_prefix}/lib/openpkg/bash;" \
michael@428 1647 -e "s;^\( *\)\(diff \);\1%{l_prefix}/lib/openpkg/\2;" \
michael@428 1648 <svs.sh >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs
michael@428 1649 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs
michael@428 1650 cp svs.1 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/svs.1
michael@428 1651 ) || exit $?
michael@13 1652 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1653 -e "s;@l_musr@;%{l_musr};g" \
michael@13 1654 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@13 1655 <`SOURCE uuid.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid
michael@13 1656 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid
michael@13 1657 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1658 <`SOURCE uuid.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid.8
michael@13 1659 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1660 <`SOURCE release.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
michael@13 1661 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release
michael@13 1662 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1663 <`SOURCE release.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release.8
michael@13 1664 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1665 -e "s;@l_musr@;%{l_musr};g" \
michael@13 1666 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@13 1667 <`SOURCE rpmdb` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb
michael@13 1668 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb
michael@13 1669 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1670 <`SOURCE rpmtool` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool
michael@13 1671 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool
michael@428 1672 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1673 -e "s;@l_musr@;%{l_musr};g" \
michael@428 1674 -e "s;@l_mgrp@;%{l_mgrp};g" \
michael@428 1675 <`SOURCE license.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license
michael@428 1676 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license
michael@428 1677 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@428 1678 <`SOURCE license.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/license.8
michael@13 1679
michael@13 1680 # install OpenPKG tool chain execution frontend and execution wrapper
michael@428 1681 cp openpkg $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1682 ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1683 chmod 4775 $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg
michael@13 1684 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1685 <`SOURCE openpkg.sh` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg
michael@13 1686 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg
michael@13 1687 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1688 <`SOURCE openpkg.1` \
michael@13 1689 >$RPM_BUILD_ROOT%{l_prefix}/man/man1/openpkg.1
michael@13 1690
michael@13 1691 # install more OpenPKG tool chain commands
michael@13 1692 sed -e "s;@l_prefix@;%{l_prefix};g" \
michael@13 1693 <`SOURCE man.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man
michael@13 1694 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man
michael@13 1695
michael@428 1696 # install OpenPKG mutex utility
michael@428 1697 cp mutex $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/mutex
michael@428 1698
michael@13 1699 # install an own copy of shtool
michael@13 1700 cp $shtool $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool
michael@13 1701 chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool
michael@13 1702
michael@13 1703 # display verbosity header
michael@13 1704 set +x; VERBOSE "INSTALL: Install Configuration Files"; set -x
michael@13 1705
michael@13 1706 # install a few README files
michael@13 1707 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1708 <`SOURCE root.README` \
michael@13 1709 >$RPM_BUILD_ROOT%{l_prefix}/README
michael@13 1710 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1711 <`SOURCE local.README` \
michael@13 1712 >$RPM_BUILD_ROOT%{l_prefix}/local/README
michael@13 1713
michael@13 1714 # install Bash environment
michael@13 1715 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1716 <`SOURCE dot.bashrc` \
michael@13 1717 >$RPM_BUILD_ROOT%{l_prefix}/.bashrc
michael@13 1718 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1719 <`SOURCE dot.bash_login` \
michael@13 1720 >$RPM_BUILD_ROOT%{l_prefix}/.bash_login
michael@13 1721
michael@444 1722 # install Runcommand files
michael@13 1723 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1724 -e "s:@l_susr@:%{l_susr}:g" \
michael@13 1725 -e "s:@l_musr@:%{l_musr}:g" \
michael@13 1726 <`SOURCE rc` \
michael@13 1727 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc
michael@13 1728 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc
michael@13 1729 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1730 <`SOURCE rc.conf` \
michael@13 1731 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf
michael@13 1732 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf
michael@13 1733 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1734 <`SOURCE rc.func` \
michael@13 1735 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.func
michael@13 1736 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.func
michael@13 1737 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
michael@13 1738 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1739 -e "s:@l_musr@:%{l_musr}:g" \
michael@13 1740 <`SOURCE rc.openpkg` \
michael@13 1741 >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1742 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1743 ( echo "#!/bin/sh"
michael@13 1744 echo "exec %{l_prefix}/etc/rc \${1+\"\$@\"}"
michael@13 1745 ) >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc
michael@13 1746 chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc
michael@13 1747 ln $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc \
michael@13 1748 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rc
michael@13 1749 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1750 <`SOURCE rc.8` \
michael@13 1751 >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc.8
michael@13 1752
michael@13 1753 # create configuration directory
michael@13 1754 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg || \
michael@13 1755 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg
michael@13 1756
michael@13 1757 # install platform identification file
michael@13 1758 sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-any-%<sp>" \
michael@13 1759 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
michael@13 1760 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform
michael@13 1761
michael@13 1762 # install UUID configuration file (ghost)
michael@13 1763 touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
michael@13 1764 chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid
michael@13 1765
michael@13 1766 # install registry configuration files (ghost)
michael@13 1767 touch \
michael@13 1768 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \
michael@13 1769 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \
michael@13 1770 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \
michael@13 1771 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util
michael@13 1772 chmod 644 \
michael@13 1773 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \
michael@13 1774 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \
michael@13 1775 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \
michael@13 1776 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util
michael@13 1777
michael@13 1778 # install default managers configuration file
michael@13 1779 ( echo "##"
michael@13 1780 echo "## managers -- OpenPKG Instance Managers"
michael@13 1781 echo "##"
michael@13 1782 echo ""
michael@13 1783 echo "%{l_susr}"
michael@13 1784 echo "%{l_musr}"
michael@13 1785 echo ""
michael@13 1786 ) >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/managers
michael@13 1787
michael@428 1788 # install default release information file
michael@428 1789 release_tag=""
michael@428 1790 release_url=""
michael@428 1791 l_stack=""; [ ".%{?l_stack:set}" = .set ] && l_stack="%{l_stack}"
michael@428 1792 case "$l_stack" in
michael@428 1793 http: | https: | ftp: | file: )
michael@428 1794 release_url="$l_stack"
michael@428 1795 ;;
michael@428 1796 [a-zA-Z]* )
michael@428 1797 release_tag="$l_stack"
michael@428 1798 ;;
michael@428 1799 esac
michael@428 1800 ( echo "##"
michael@428 1801 echo "## release -- OpenPKG Release Information"
michael@428 1802 echo "##"
michael@428 1803 echo ""
michael@428 1804 echo "TAG=$release_tag"
michael@428 1805 echo "URL=$release_url"
michael@428 1806 echo ""
michael@428 1807 ) >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/release
michael@428 1808
michael@13 1809 # install overriding RPM configuration files
michael@13 1810 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1811 <`SOURCE rpmpopt` \
michael@428 1812 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt
michael@13 1813 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@13 1814 -e "s:@l_prefix_static@:%{l_prefix}:g" \
michael@13 1815 -e "s;@l_build_path@;$l_build_path;g" \
michael@13 1816 -e "s;@l_build_ldlp@;$l_build_ldlp;g" \
michael@13 1817 -e "s;@l_build_ulim@;$l_build_ulim;g" \
michael@428 1818 -e "s;@l_unprivileged@;$l_unprivileged;g" \
michael@13 1819 -e "s:@TAG@:$tag:g" \
michael@13 1820 -e "s:@SUSR@:$susr:g" \
michael@13 1821 -e "s:@SGRP@:$sgrp:g" \
michael@13 1822 -e "s:@MUSR@:$musr:g" \
michael@13 1823 -e "s:@MGRP@:$mgrp:g" \
michael@13 1824 -e "s:@RUSR@:$rusr:g" \
michael@13 1825 -e "s:@RGRP@:$rgrp:g" \
michael@13 1826 -e "s:@NUSR@:$nusr:g" \
michael@13 1827 -e "s:@NGRP@:$ngrp:g" \
michael@13 1828 <`SOURCE rpmmacros` \
michael@13 1829 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros
michael@428 1830 sed -e "s:@l_prefix@:%{l_prefix}:g" \
michael@428 1831 <`SOURCE rpmlua` \
michael@428 1832 >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua
michael@13 1833 cp `SOURCE openpkg.org.pgp` \
michael@13 1834 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.org.pgp
michael@13 1835 cp `SOURCE openpkg.com.pgp` \
michael@13 1836 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.com.pgp
michael@13 1837 cp `SOURCE openpkg.net.pgp` \
michael@13 1838 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.net.pgp
michael@13 1839
michael@428 1840 # install license data
michael@428 1841 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d || \
michael@428 1842 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d
michael@428 1843 cp `SOURCE license-BOOT.txt` \
michael@428 1844 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/BOOT
michael@428 1845 cp `SOURCE license-COMMUNITY.txt` \
michael@428 1846 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/COMMUNITY
michael@428 1847 cp `SOURCE license-EVAL.txt` \
michael@428 1848 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/EVAL
michael@428 1849 cp `SOURCE license-EXAMPLE.txt` \
michael@428 1850 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/EXAMPLE
michael@428 1851 cp `SOURCE license-PROMO.txt` \
michael@428 1852 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/PROMO
michael@428 1853 cp `SOURCE license-RECOVERY.txt` \
michael@428 1854 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license.d/RECOVERY
michael@428 1855 cp `SOURCE license.lua` \
michael@428 1856 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/license.lua
michael@428 1857 touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/license
michael@428 1858
michael@428 1859 # provide directories for easy overriding of RPM configuration files
michael@428 1860 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros.d || \
michael@428 1861 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros.d
michael@428 1862 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt.d || \
michael@428 1863 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmpopt.d
michael@428 1864 test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua.d || \
michael@428 1865 mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmlua.d
michael@428 1866
michael@13 1867 # display verbosity header
michael@13 1868 set +x; VERBOSE "INSTALL: Done. Thank you for flying OpenPKG..."; set -x
michael@13 1869
michael@13 1870 %files
michael@13 1871 %defattr(-,%{?l_musr}%{!?l_musr:%{l_fsusr}},%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}})
michael@13 1872 %{l_prefix}/README
michael@13 1873 %config(noreplace) %{l_prefix}/.bashrc
michael@13 1874 %config(noreplace) %{l_prefix}/.bash_login
michael@13 1875 %dir %{l_prefix}/RPM
michael@13 1876 %dir %{l_prefix}/RPM/SRC
michael@13 1877 %dir %{l_prefix}/RPM/PKG
michael@428 1878 %dir %{l_prefix}/RPM/TR
michael@13 1879 %dir %{l_prefix}/RPM/DB
michael@13 1880 %dir %{l_prefix}/RPM/TMP
michael@13 1881 %dir %{l_prefix}/cgi
michael@13 1882 %dir %{l_prefix}/bin
michael@13 1883 %attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/openpkg
michael@13 1884 %dir %{l_prefix}/etc
michael@13 1885 %{l_prefix}/etc/rc
michael@13 1886 %config(noreplace) %{l_prefix}/etc/rc.conf
michael@13 1887 %{l_prefix}/etc/rc.func
michael@13 1888 %dir %{l_prefix}/etc/rc.d
michael@13 1889 %{l_prefix}/etc/rc.d/rc.openpkg
michael@13 1890 %dir %{l_prefix}/etc/openpkg
michael@428 1891 %ghost %{l_prefix}/etc/openpkg/license
michael@428 1892 %dir %{l_prefix}/etc/openpkg/license.d
michael@428 1893 %{l_prefix}/etc/openpkg/license.d/BOOT
michael@428 1894 %{l_prefix}/etc/openpkg/license.d/COMMUNITY
michael@428 1895 %{l_prefix}/etc/openpkg/license.d/EVAL
michael@428 1896 %{l_prefix}/etc/openpkg/license.d/EXAMPLE
michael@428 1897 %{l_prefix}/etc/openpkg/license.d/PROMO
michael@428 1898 %{l_prefix}/etc/openpkg/license.d/RECOVERY
michael@13 1899 %ghost %{l_prefix}/etc/openpkg/uuid
michael@428 1900 %config %{l_prefix}/etc/openpkg/release
michael@13 1901 %config %{l_prefix}/etc/openpkg/platform
michael@13 1902 %config %{l_prefix}/etc/openpkg/rpmmacros
michael@428 1903 %config %{l_prefix}/etc/openpkg/rpmpopt
michael@428 1904 %config %{l_prefix}/etc/openpkg/rpmlua
michael@428 1905 %dir %{l_prefix}/etc/openpkg/rpmmacros.d
michael@428 1906 %dir %{l_prefix}/etc/openpkg/rpmpopt.d
michael@428 1907 %dir %{l_prefix}/etc/openpkg/rpmlua.d
michael@13 1908 %ghost %{l_prefix}/etc/openpkg/register.conf
michael@13 1909 %ghost %{l_prefix}/etc/openpkg/register.prep
michael@13 1910 %ghost %{l_prefix}/etc/openpkg/register.tran
michael@13 1911 %ghost %{l_prefix}/etc/openpkg/register.util
michael@13 1912 %config %attr(664,%{l_musr},%{l_mgrp}) %{l_prefix}/etc/openpkg/managers
michael@13 1913 %{l_prefix}/etc/openpkg/openpkg.org.pgp
michael@13 1914 %{l_prefix}/etc/openpkg/openpkg.com.pgp
michael@13 1915 %{l_prefix}/etc/openpkg/openpkg.net.pgp
michael@13 1916 %dir %{l_prefix}/include
michael@13 1917 %dir %{l_prefix}/include/openpkg
michael@13 1918 %dir %{l_prefix}/include/openpkg/rpm
michael@13 1919 %{l_prefix}/include/openpkg/rpm/argv.h
michael@13 1920 %{l_prefix}/include/openpkg/rpm/beecrypt.h
michael@13 1921 %{l_prefix}/include/openpkg/rpm/bzlib.h
michael@13 1922 %{l_prefix}/include/openpkg/rpm/db.h
michael@428 1923 %{l_prefix}/include/openpkg/rpm/envvar.h
michael@428 1924 %{l_prefix}/include/openpkg/rpm/fs.h
michael@13 1925 %{l_prefix}/include/openpkg/rpm/fts.h
michael@13 1926 %{l_prefix}/include/openpkg/rpm/glob.h
michael@428 1927 %{l_prefix}/include/openpkg/rpm/mire.h
michael@13 1928 %{l_prefix}/include/openpkg/rpm/misc.h
michael@428 1929 %{l_prefix}/include/openpkg/rpm/pkgio.h
michael@13 1930 %{l_prefix}/include/openpkg/rpm/popt.h
michael@428 1931 %{l_prefix}/include/openpkg/rpm/rpm4compat.h
michael@13 1932 %{l_prefix}/include/openpkg/rpm/rpmal.h
michael@428 1933 %{l_prefix}/include/openpkg/rpm/rpmbc.h
michael@13 1934 %{l_prefix}/include/openpkg/rpm/rpmbuild.h
michael@428 1935 %{l_prefix}/include/openpkg/rpm/rpmcb.h
michael@13 1936 %{l_prefix}/include/openpkg/rpm/rpmcli.h
michael@428 1937 %{l_prefix}/include/openpkg/rpm/rpmconstant.h
michael@428 1938 %{l_prefix}/include/openpkg/rpm/rpmdav.h
michael@13 1939 %{l_prefix}/include/openpkg/rpm/rpmdb.h
michael@13 1940 %{l_prefix}/include/openpkg/rpm/rpmds.h
michael@428 1941 %{l_prefix}/include/openpkg/rpm/rpmevr.h
michael@13 1942 %{l_prefix}/include/openpkg/rpm/rpmfc.h
michael@13 1943 %{l_prefix}/include/openpkg/rpm/rpmfi.h
michael@428 1944 %{l_prefix}/include/openpkg/rpm/rpmgc.h
michael@428 1945 %{l_prefix}/include/openpkg/rpm/rpmgi.h
michael@13 1946 %{l_prefix}/include/openpkg/rpm/rpmhash.h
michael@428 1947 %{l_prefix}/include/openpkg/rpm/rpmio-stub.h
michael@13 1948 %{l_prefix}/include/openpkg/rpm/rpmio.h
michael@428 1949 %{l_prefix}/include/openpkg/rpm/rpmiotypes.h
michael@428 1950 %{l_prefix}/include/openpkg/rpm/rpmku.h
michael@13 1951 %{l_prefix}/include/openpkg/rpm/rpmlib.h
michael@13 1952 %{l_prefix}/include/openpkg/rpm/rpmlog.h
michael@13 1953 %{l_prefix}/include/openpkg/rpm/rpmmacro.h
michael@428 1954 %{l_prefix}/include/openpkg/rpm/rpmmg.h
michael@428 1955 %{l_prefix}/include/openpkg/rpm/rpmns.h
michael@428 1956 %{l_prefix}/include/openpkg/rpm/rpmnss.h
michael@13 1957 %{l_prefix}/include/openpkg/rpm/rpmpgp.h
michael@13 1958 %{l_prefix}/include/openpkg/rpm/rpmps.h
michael@13 1959 %{l_prefix}/include/openpkg/rpm/rpmspec.h
michael@428 1960 %{l_prefix}/include/openpkg/rpm/rpmsq.h
michael@428 1961 %{l_prefix}/include/openpkg/rpm/rpmssl.h
michael@13 1962 %{l_prefix}/include/openpkg/rpm/rpmsw.h
michael@428 1963 %{l_prefix}/include/openpkg/rpm/rpmsx.h
michael@428 1964 %{l_prefix}/include/openpkg/rpm/rpmtag.h
michael@13 1965 %{l_prefix}/include/openpkg/rpm/rpmte.h
michael@13 1966 %{l_prefix}/include/openpkg/rpm/rpmts.h
michael@13 1967 %{l_prefix}/include/openpkg/rpm/rpmurl.h
michael@428 1968 %{l_prefix}/include/openpkg/rpm/rpmuuid.h
michael@428 1969 %{l_prefix}/include/openpkg/rpm/rpmversion.h
michael@428 1970 %{l_prefix}/include/openpkg/rpm/rpmwf.h
michael@428 1971 %{l_prefix}/include/openpkg/rpm/rpmxar.h
michael@428 1972 %{l_prefix}/include/openpkg/rpm/rpmzlog.h
michael@428 1973 %{l_prefix}/include/openpkg/rpm/signature.h
michael@428 1974 %{l_prefix}/include/openpkg/rpm/sqlite3.h
michael@13 1975 %{l_prefix}/include/openpkg/rpm/ugid.h
michael@428 1976 %{l_prefix}/include/openpkg/rpm/yarn.h
michael@13 1977 %{l_prefix}/include/openpkg/rpm/zconf.h
michael@13 1978 %{l_prefix}/include/openpkg/rpm/zlib.h
michael@13 1979 %dir %{l_prefix}/info
michael@13 1980 %dir %{l_prefix}/lib
michael@13 1981 %dir %{l_prefix}/lib/openpkg
michael@13 1982 %{l_prefix}/lib/openpkg/bash
michael@428 1983 %{l_prefix}/lib/openpkg/bsdcpio
michael@428 1984 %{l_prefix}/lib/openpkg/bsdtar
michael@13 1985 %{l_prefix}/lib/openpkg/bzip2
michael@13 1986 %{l_prefix}/lib/openpkg/curl
michael@428 1987 %{l_prefix}/lib/openpkg/db_tool
michael@428 1988 %{l_prefix}/lib/openpkg/cmp
michael@428 1989 %{l_prefix}/lib/openpkg/diff
michael@428 1990 %{l_prefix}/lib/openpkg/diff3
michael@428 1991 %{l_prefix}/lib/openpkg/sdiff
michael@13 1992 %{l_prefix}/lib/openpkg/gzip
michael@13 1993 %{l_prefix}/lib/openpkg/librpm.a
michael@13 1994 %{l_prefix}/lib/openpkg/librpmbeecrypt.a
michael@13 1995 %{l_prefix}/lib/openpkg/librpmbuild.a
michael@13 1996 %{l_prefix}/lib/openpkg/librpmbz2.a
michael@13 1997 %{l_prefix}/lib/openpkg/librpmdb.a
michael@13 1998 %{l_prefix}/lib/openpkg/librpmio.a
michael@428 1999 %{l_prefix}/lib/openpkg/librpmmisc.a
michael@13 2000 %{l_prefix}/lib/openpkg/librpmpopt.a
michael@428 2001 %{l_prefix}/lib/openpkg/librpmsqlite3.a
michael@13 2002 %{l_prefix}/lib/openpkg/librpmz.a
michael@428 2003 %{l_prefix}/lib/openpkg/license.lua
michael@13 2004 %{l_prefix}/lib/openpkg/miniperl
michael@428 2005 %{l_prefix}/lib/openpkg/mutex
michael@13 2006 %{l_prefix}/lib/openpkg/openpkg
michael@13 2007 %{l_prefix}/lib/openpkg/openssl
michael@13 2008 %{l_prefix}/lib/openpkg/patch
michael@13 2009 %{l_prefix}/lib/openpkg/rc
michael@13 2010 %{l_prefix}/lib/openpkg/rpm
michael@428 2011 %{l_prefix}/lib/openpkg/rpm.pc
michael@13 2012 %{l_prefix}/lib/openpkg/rpmdb
michael@428 2013 %{l_prefix}/lib/openpkg/rpmdeps
michael@428 2014 %{l_prefix}/lib/openpkg/lua
michael@428 2015 %{l_prefix}/lib/openpkg/rpmmacros
michael@13 2016 %{l_prefix}/lib/openpkg/rpmpopt
michael@13 2017 %{l_prefix}/lib/openpkg/rpmtool
michael@13 2018 %{l_prefix}/lib/openpkg/shtool
michael@428 2019 %{l_prefix}/lib/openpkg/sqlite3
michael@13 2020 %{l_prefix}/lib/openpkg/tar
michael@13 2021 %{l_prefix}/lib/openpkg/uuid
michael@428 2022 %{l_prefix}/lib/openpkg/xz
michael@13 2023 %dir %{l_prefix}/libexec
michael@13 2024 %dir %{l_prefix}/libexec/openpkg
michael@13 2025 %{l_prefix}/libexec/openpkg/build.8
michael@13 2026 %{l_prefix}/libexec/openpkg/build.pl
michael@13 2027 %{l_prefix}/libexec/openpkg/curl.sh
michael@428 2028 %{l_prefix}/libexec/openpkg/dev.8
michael@428 2029 %{l_prefix}/libexec/openpkg/dev.pl
michael@428 2030 %{l_prefix}/libexec/openpkg/index.8
michael@428 2031 %{l_prefix}/libexec/openpkg/index.pl
michael@428 2032 %{l_prefix}/libexec/openpkg/license
michael@428 2033 %{l_prefix}/libexec/openpkg/license.8
michael@13 2034 %{l_prefix}/libexec/openpkg/lsync
michael@13 2035 %{l_prefix}/libexec/openpkg/lsync.8
michael@428 2036 %{l_prefix}/libexec/openpkg/lint-fsl.pl
michael@428 2037 %{l_prefix}/libexec/openpkg/lint-rc.pl
michael@428 2038 %{l_prefix}/libexec/openpkg/lint-rpm.pl
michael@428 2039 %{l_prefix}/libexec/openpkg/lint-spec.pl
michael@428 2040 %{l_prefix}/libexec/openpkg/makeproxy.8
michael@428 2041 %{l_prefix}/libexec/openpkg/makeproxy.pl
michael@13 2042 %{l_prefix}/libexec/openpkg/man
michael@428 2043 %{l_prefix}/libexec/openpkg/mirror.8
michael@428 2044 %{l_prefix}/libexec/openpkg/mirror.pl
michael@13 2045 %{l_prefix}/libexec/openpkg/rc
michael@13 2046 %{l_prefix}/libexec/openpkg/rc.8
michael@13 2047 %{l_prefix}/libexec/openpkg/register
michael@13 2048 %{l_prefix}/libexec/openpkg/register.8
michael@13 2049 %{l_prefix}/libexec/openpkg/release
michael@13 2050 %{l_prefix}/libexec/openpkg/release.8
michael@13 2051 %{l_prefix}/libexec/openpkg/rpm
michael@13 2052 %{l_prefix}/libexec/openpkg/rpm-config
michael@13 2053 %{l_prefix}/libexec/openpkg/rpm-config.8
michael@13 2054 %{l_prefix}/libexec/openpkg/rpm.8
michael@428 2055 %{l_prefix}/libexec/openpkg/rpmconstant
michael@428 2056 %{l_prefix}/libexec/openpkg/rpmconstant.8
michael@13 2057 %{l_prefix}/libexec/openpkg/rpm2cpio
michael@13 2058 %{l_prefix}/libexec/openpkg/rpm2cpio.8
michael@13 2059 %{l_prefix}/libexec/openpkg/rpmbuild.8
michael@428 2060 %{l_prefix}/libexec/openpkg/rpmcache
michael@428 2061 %{l_prefix}/libexec/openpkg/rpmcache.8
michael@428 2062 %{l_prefix}/libexec/openpkg/rpmdeps.8
michael@428 2063 %{l_prefix}/libexec/openpkg/rpmgraph.8
michael@428 2064 %{l_prefix}/libexec/openpkg/rpmgrep
michael@428 2065 %{l_prefix}/libexec/openpkg/rpmgrep.1
michael@428 2066 %{l_prefix}/libexec/openpkg/sea.8
michael@428 2067 %{l_prefix}/libexec/openpkg/sea.sh
michael@428 2068 %{l_prefix}/libexec/openpkg/search.8
michael@428 2069 %{l_prefix}/libexec/openpkg/search.pl
michael@428 2070 %{l_prefix}/libexec/openpkg/stack.8
michael@428 2071 %{l_prefix}/libexec/openpkg/stack.sh
michael@428 2072 %{l_prefix}/libexec/openpkg/shtool.sh
michael@428 2073 %{l_prefix}/libexec/openpkg/svs
michael@428 2074 %{l_prefix}/libexec/openpkg/svs.1
michael@13 2075 %{l_prefix}/libexec/openpkg/uuid
michael@13 2076 %{l_prefix}/libexec/openpkg/uuid.8
michael@13 2077 %dir %{l_prefix}/man
michael@13 2078 %dir %{l_prefix}/man/man1
michael@13 2079 %dir %{l_prefix}/man/man2
michael@13 2080 %dir %{l_prefix}/man/man3
michael@13 2081 %dir %{l_prefix}/man/man4
michael@13 2082 %dir %{l_prefix}/man/man5
michael@13 2083 %dir %{l_prefix}/man/man6
michael@13 2084 %dir %{l_prefix}/man/man7
michael@13 2085 %dir %{l_prefix}/man/man8
michael@13 2086 %dir %{l_prefix}/man/man9
michael@13 2087 %dir %{l_prefix}/man/cat1
michael@13 2088 %dir %{l_prefix}/man/cat2
michael@13 2089 %dir %{l_prefix}/man/cat3
michael@13 2090 %dir %{l_prefix}/man/cat4
michael@13 2091 %dir %{l_prefix}/man/cat5
michael@13 2092 %dir %{l_prefix}/man/cat6
michael@13 2093 %dir %{l_prefix}/man/cat7
michael@13 2094 %dir %{l_prefix}/man/cat8
michael@13 2095 %dir %{l_prefix}/man/cat9
michael@13 2096 %{l_prefix}/man/man1/openpkg.1
michael@13 2097 %dir %{l_prefix}/sbin
michael@13 2098 %dir %{l_prefix}/pub
michael@13 2099 %dir %{l_prefix}/share
michael@13 2100 %dir %{l_prefix}/var
michael@13 2101 %dir %{l_prefix}/local
michael@13 2102 %{l_prefix}/local/README
michael@13 2103 %{l_prefix}/local/.lsyncrc
michael@13 2104 %dir %{l_prefix}/local/PKG
michael@13 2105 %dir %{l_prefix}/local/bin
michael@13 2106 %dir %{l_prefix}/local/etc
michael@13 2107 %dir %{l_prefix}/local/include
michael@13 2108 %dir %{l_prefix}/local/info
michael@13 2109 %dir %{l_prefix}/local/lib
michael@13 2110 %dir %{l_prefix}/local/man
michael@13 2111 %dir %{l_prefix}/local/man/man1
michael@13 2112 %dir %{l_prefix}/local/man/man2
michael@13 2113 %dir %{l_prefix}/local/man/man3
michael@13 2114 %dir %{l_prefix}/local/man/man4
michael@13 2115 %dir %{l_prefix}/local/man/man5
michael@13 2116 %dir %{l_prefix}/local/man/man6
michael@13 2117 %dir %{l_prefix}/local/man/man7
michael@13 2118 %dir %{l_prefix}/local/man/man8
michael@13 2119 %dir %{l_prefix}/local/man/man9
michael@13 2120 %dir %{l_prefix}/local/man/cat1
michael@13 2121 %dir %{l_prefix}/local/man/cat2
michael@13 2122 %dir %{l_prefix}/local/man/cat3
michael@13 2123 %dir %{l_prefix}/local/man/cat4
michael@13 2124 %dir %{l_prefix}/local/man/cat5
michael@13 2125 %dir %{l_prefix}/local/man/cat6
michael@13 2126 %dir %{l_prefix}/local/man/cat7
michael@13 2127 %dir %{l_prefix}/local/man/cat8
michael@13 2128 %dir %{l_prefix}/local/man/cat9
michael@13 2129 %dir %{l_prefix}/local/sbin
michael@13 2130
michael@13 2131 %clean
michael@13 2132 # skip in bootstrap phase 2 (see openpkg.boot)
michael@13 2133 [ ".$OPENPKG_BOOT" = .1 ] && exit 0
michael@13 2134
michael@13 2135 # cleanup build area
michael@13 2136 rm -rf openpkg-%{version} >/dev/null 2>&1 || true
michael@13 2137
michael@13 2138 # cleanup installation area
michael@13 2139 rm -rf $RPM_BUILD_ROOT >/dev/null 2>&1 || true
michael@13 2140
michael@13 2141 %pre
michael@13 2142 # always performed for upgrades and because it doesn't harm!
michael@13 2143 # [ ".$1" != .1 ] && exit 0
michael@13 2144
michael@13 2145 # this procedure is only usable with root privileges
michael@444 2146 # (for nonroot installations it is not required at all)
michael@13 2147 cusr=`(id -un) 2>/dev/null ||\
michael@13 2148 (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\
michael@13 2149 (whoami) 2>/dev/null ||\
michael@13 2150 (who am i | cut "-d " -f1) 2>/dev/null ||\
michael@13 2151 echo $LOGNAME`
michael@13 2152
michael@13 2153 # determine runtime details (for both inside and outside RPM!!)
michael@428 2154 # - bootstrapping: $xxx is set from etc.wrapbin.sh
michael@13 2155 # - upgrading new: %{l_[smrn]{usr,grp}} is set via rpmmacros
michael@13 2156 # - upgrading old: %{l_[smrn]{usr,grp}} is not set at all
michael@13 2157 [ ".$susr" = . ] && susr="%{?l_susr}%{!?l_susr:root}"
michael@13 2158 [ ".$sgrp" = . ] && sgrp="%{?l_sgrp}%{!?l_sgrp:wheel}"
michael@13 2159 [ ".$musr" = . ] && musr="%{?l_musr}%{!?l_musr:%{l_fsusr}}"
michael@13 2160 [ ".$mgrp" = . ] && mgrp="%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}}"
michael@13 2161 [ ".$rusr" = . ] && rusr="%{?l_rusr}%{!?l_rusr:%{l_fsusr}-r}"
michael@13 2162 [ ".$rgrp" = . ] && rgrp="%{?l_rgrp}%{!?l_rgrp:%{l_fsgrp}-r}"
michael@13 2163 [ ".$nusr" = . ] && nusr="%{?l_nusr}%{!?l_nusr:%{l_fsusr}-n}"
michael@13 2164 [ ".$ngrp" = . ] && ngrp="%{?l_ngrp}%{!?l_ngrp:%{l_fsgrp}-n}"
michael@13 2165 [ ".$suid" = . ] && suid="%{?l_suid}"
michael@13 2166 [ ".$sgid" = . ] && sgid="%{?l_sgid}"
michael@13 2167 [ ".$muid" = . ] && muid="%{?l_muid}"
michael@13 2168 [ ".$mgid" = . ] && mgid="%{?l_mgid}"
michael@13 2169 [ ".$ruid" = . ] && ruid="%{?l_ruid}"
michael@13 2170 [ ".$rgid" = . ] && rgid="%{?l_rgid}"
michael@13 2171 [ ".$nuid" = . ] && nuid="%{?l_nuid}"
michael@13 2172 [ ".$ngid" = . ] && ngid="%{?l_ngid}"
michael@13 2173
michael@13 2174 # if any of these optional params are not used we won't have a
michael@13 2175 # corresponding macro either, so make use of one conditionally
michael@13 2176 [ ".$suid" = . ] && [ ".%{?l_suid:set}" = .set ] && suid="%{?l_suid}"
michael@13 2177 [ ".$sgid" = . ] && [ ".%{?l_sgid:set}" = .set ] && sgid="%{?l_sgid}"
michael@13 2178 [ ".$muid" = . ] && [ ".%{?l_muid:set}" = .set ] && muid="%{?l_muid}"
michael@13 2179 [ ".$mgid" = . ] && [ ".%{?l_mgid:set}" = .set ] && mgid="%{?l_mgid}"
michael@13 2180 [ ".$ruid" = . ] && [ ".%{?l_ruid:set}" = .set ] && ruid="%{?l_ruid}"
michael@13 2181 [ ".$rgid" = . ] && [ ".%{?l_rgid:set}" = .set ] && rgid="%{?l_rgid}"
michael@13 2182 [ ".$nuid" = . ] && [ ".%{?l_nuid:set}" = .set ] && nuid="%{?l_nuid}"
michael@13 2183 [ ".$ngid" = . ] && [ ".%{?l_ngid:set}" = .set ] && ngid="%{?l_ngid}"
michael@13 2184
michael@13 2185 # determine prefix
michael@13 2186 [ ".$prefix" = . ] && prefix="%{l_prefix}"
michael@13 2187 prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'`
michael@13 2188
michael@444 2189 # Preflight check before update to make sure that the currently
michael@428 2190 # activated license is still valid. This is done just be friendly
michael@428 2191 # to people and to not too easily shoot theirself into the foot
michael@428 2192 # by blindly upgrading and then having to recognize that the new
michael@428 2193 # OpenPKG Framework is no longer covered by the old license.
michael@428 2194 if [ ".$1" = .2 ]; then
michael@428 2195 ( OPENPKG_FRAMEWORK_RELEASE="%{release}"
michael@428 2196 export OPENPKG_FRAMEWORK_RELEASE
michael@428 2197 # LATER:
michael@428 2198 # $prefix/bin/openpkg rpm -q openpkg >/dev/null 2>&1 || exit $?
michael@428 2199 # if [ $? -ne 0 ]; then
michael@428 2200 # NOW:
michael@428 2201 output="`$prefix/bin/openpkg rpm -q openpkg 2>&1 | grep 'ENVIRONMENT ANOMALY'`"
michael@428 2202 if [ ".$output" != . ]; then
michael@428 2203 id="`($prefix/bin/openpkg license active) 2>/dev/null`"
michael@428 2204 [ ".$id" = . ] && id="UNKNOWN"
michael@428 2205 ( echo "Attention, your currently active license \"$id\" does"
michael@428 2206 echo "not allow you to use this newer version of the OpenPKG Framework!"
michael@444 2207 echo "We cancel this update to prevent you from a runtime failure."
michael@428 2208 echo "Please first upgrade to a newer license with the command:"
michael@428 2209 echo " \$ $prefix/bin/openpkg license update $id <file>"
michael@428 2210 ) | $prefix/lib/openpkg/rpmtool msg -b -t error
michael@428 2211 exit 42
michael@428 2212 fi
michael@428 2213 ) || exit $?
michael@428 2214 fi
michael@428 2215
michael@13 2216 # register instance in presence file
michael@13 2217 presence="/etc/openpkg"
michael@13 2218 exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"`
michael@13 2219 if [ ".$exists" = . ]; then
michael@13 2220 ( umask 022
michael@13 2221 echo "${prefix}" >>$presence
michael@13 2222 ) 2>/dev/null || true
michael@13 2223 fi
michael@13 2224
michael@13 2225 # determine user/group ids
michael@13 2226 for class in s m r n; do
michael@13 2227 eval "xusr=\"\$${class}usr\""
michael@13 2228 eval "xgrp=\"\$${class}grp\""
michael@13 2229 eval "xuid=\"\$${class}uid\""
michael@13 2230 eval "xgid=\"\$${class}gid\""
michael@13 2231 if [ ".$xuid" = . ]; then
michael@428 2232 case "$plid" in
michael@428 2233 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2234 xuid=`dscl . -read "/users/${xusr}" UniqueID 2>/dev/null | awk '{ print $2; }'`
michael@428 2235 ;;
michael@428 2236 * )
michael@428 2237 xuid=`(getent passwd "${xusr}"; \
michael@428 2238 grep "^${xusr}:" /etc/passwd; \
michael@428 2239 ypmatch "${xusr}" passwd; \
michael@428 2240 nismatch "${xusr}" passwd; \
michael@428 2241 nidump passwd . | grep "^${xusr}:") 2>/dev/null | \
michael@428 2242 sed -e 'q' | awk -F: '{ print $3; }'`
michael@428 2243 ;;
michael@428 2244 esac
michael@13 2245 if [ ".$xuid" = . ]; then
michael@13 2246 # seek for a reasonably uid/gid pair
michael@13 2247 xuid=1000
michael@13 2248 ok=0
michael@13 2249 while [ ".$ok" = .0 ]; do
michael@13 2250 eval "u_exists=\$u_exists_$xuid"
michael@13 2251 if [ ".$u_exists" = . ]; then
michael@428 2252 case "$plid" in
michael@428 2253 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2254 u_exists=`dscl . -search /users UniqueID "$xuid" 2>/dev/null`
michael@428 2255 ;;
michael@428 2256 * )
michael@428 2257 u_exists=`(getent passwd; cat /etc/passwd; ypcat passwd; niscat passwd; nidump passwd .) 2>/dev/null |\
michael@428 2258 grep "^[^:]*:[^:]*:$xuid:"`
michael@428 2259 ;;
michael@428 2260 esac
michael@13 2261 fi
michael@13 2262 eval "g_exists=\$g_exists_$xuid"
michael@13 2263 if [ ".$g_exists" = . ]; then
michael@428 2264 case "$plid" in
michael@428 2265 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2266 g_exists=`dscl . -search /groups PrimaryGroupID "$xuid" 2>/dev/null`
michael@428 2267 ;;
michael@428 2268 * )
michael@428 2269 g_exists=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\
michael@428 2270 grep "^[^:]*:[^:]*:$xuid:"`
michael@428 2271 esac
michael@13 2272 fi
michael@13 2273 if [ ".$u_exists" = . -a ".$g_exists" = . ]; then
michael@13 2274 ok=1
michael@13 2275 break
michael@13 2276 fi
michael@13 2277 xuid=`expr $xuid + 1`
michael@13 2278 done
michael@13 2279 eval "u_exists_$xuid=yes"
michael@13 2280 eval "g_exists_$xuid=yes"
michael@13 2281 fi
michael@13 2282 fi
michael@13 2283 if [ ".$xgid" = . ]; then
michael@13 2284 xgid=`(getent group "${xgrp}"; \
michael@13 2285 grep "^${xgrp}:" /etc/group; \
michael@13 2286 ypmatch "${xgrp}" group; \
michael@13 2287 nismatch "${xgrp}" group; \
michael@428 2288 nidump group . | grep "^${xgrp}:"; \
michael@428 2289 dscl . -read "/groups/${xgrp}" | grep RecordName) 2>/dev/null | \
michael@13 2290 sed -e 'q' | awk -F: '{ print $3; }'`
michael@13 2291 if [ ".$xgid" = . ]; then
michael@13 2292 xgid="$xuid"
michael@13 2293 fi
michael@13 2294 fi
michael@13 2295 eval "${class}uid=\"$xuid\""
michael@13 2296 eval "${class}gid=\"$xgid\""
michael@13 2297 done
michael@13 2298
michael@13 2299 # determine platform id
michael@13 2300 s=`(uname -s) 2>/dev/null` || s='Unknown'
michael@13 2301 r=`(uname -r) 2>/dev/null` || r='0.0'
michael@13 2302 plid="${s}/${r}"
michael@13 2303
michael@13 2304 # add entry to /etc/shells
michael@13 2305 shell="${prefix}/lib/openpkg/bash"
michael@13 2306 if [ -f /etc/shells ]; then
michael@13 2307 exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
michael@13 2308 if [ ".$exists" = . ]; then
michael@13 2309 if [ ".$cusr" != ".root" ]; then
michael@13 2310 echo "openpkg:WARNING: skipping addition of $shell to /etc/shells" 1>&2
michael@444 2311 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2312 else
michael@13 2313 echo "${shell}" >>/etc/shells
michael@13 2314 fi
michael@13 2315 fi
michael@13 2316 fi
michael@13 2317
michael@13 2318 # clear pending deferred actions
michael@13 2319 rm -f %{l_prefix}.pre-group-process.sh %{l_prefix}.pre-post-process.sh >/dev/null 2>&1
michael@13 2320
michael@13 2321 # create the hierarchy user/group
michael@13 2322 for req in "superuser:${susr}:${suid}:${sgrp}:${sgid}" \
michael@13 2323 "management:${musr}:${muid}:${mgrp}:${mgid}" \
michael@13 2324 "restricted:${rusr}:${ruid}:${rgrp}:${rgid}" \
michael@444 2325 "nonprivileged:${nusr}:${nuid}:${ngrp}:${ngid}"; do
michael@13 2326 # split request into class/usr/uid/grp/gid
michael@13 2327 OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS"
michael@13 2328 class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5"
michael@13 2329
michael@13 2330 # check whether user already exists
michael@13 2331 exists=`(getent passwd "$usr"; \
michael@13 2332 grep "^$usr:" /etc/passwd; \
michael@13 2333 ypmatch "$usr" passwd; \
michael@13 2334 nismatch "$usr" passwd; \
michael@428 2335 nidump passwd . | grep "^$usr:"; \
michael@428 2336 dscl . -read "/users/$usr" | grep RecordName) 2>/dev/null | \
michael@13 2337 sed -e 'q'`
michael@13 2338 if [ ".$exists" = . ]; then
michael@13 2339 if [ ".$cusr" != ".root" ]; then
michael@13 2340 echo "openpkg:WARNING: skipping creation of OpenPKG $class user $usr" 1>&2
michael@444 2341 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2342 else
michael@13 2343 # add entry to passwd database
michael@13 2344 realname="${prefix} OpenPKG ($class)"
michael@13 2345 case "$plid" in
michael@13 2346 FreeBSD/* | NetBSD/* )
michael@13 2347 file=/etc/master.passwd
michael@13 2348 entry="${usr}:*:${uid}:${gid}::0:0:${realname}:${prefix}:${shell}"
michael@13 2349 update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)"
michael@13 2350 ;;
michael@13 2351 Linux/* )
michael@13 2352 file=/etc/passwd
michael@13 2353 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2354 update="(PATH=\$PATH:/usr/sbin; pwconv)"
michael@13 2355 ;;
michael@13 2356 SunOS/5.* | UnixWare/* )
michael@13 2357 file=/etc/passwd
michael@13 2358 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2359 update="(PATH=\$PATH:/usr/sbin; pwconv)"
michael@13 2360 ;;
michael@13 2361 AIX/* )
michael@13 2362 # intentionally do nothing here
michael@13 2363 :
michael@13 2364 ;;
michael@13 2365 OSF1/V5.* )
michael@13 2366 file=/etc/passwd
michael@13 2367 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2368 update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)"
michael@13 2369 ;;
michael@13 2370 HP-UX/* )
michael@13 2371 file=/etc/passwd
michael@13 2372 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2373 update=":"
michael@13 2374 ;;
michael@13 2375 Darwin/* )
michael@13 2376 # intentionally do nothing here
michael@13 2377 :
michael@13 2378 ;;
michael@13 2379 IRIX*/6.* )
michael@13 2380 file=/etc/passwd
michael@13 2381 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@13 2382 if [ -f /etc/shadow ]
michael@13 2383 then update="(PATH=\$PATH:/sbin; pwconv)"
michael@13 2384 else update=":"
michael@13 2385 fi
michael@13 2386 ;;
michael@428 2387 CYGWIN*/* )
michael@428 2388 file=/etc/passwd
michael@428 2389 entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}"
michael@428 2390 update=":"
michael@428 2391 ;;
michael@13 2392 esac
michael@13 2393 case "$plid" in
michael@428 2394 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2395 dscl . -create "/users/${usr}"
michael@428 2396 dscl . -create "/users/${usr}" Password "*"
michael@428 2397 dscl . -create "/users/${usr}" UniqueID "${uid}"
michael@428 2398 dscl . -create "/users/${usr}" PrimaryGroupID "${gid}"
michael@428 2399 dscl . -create "/users/${usr}" RealName "${realname}"
michael@428 2400 dscl . -create "/users/${usr}" NFSHomeDirectory "${prefix}"
michael@428 2401 dscl . -create "/users/${usr}" UserShell "${shell}"
michael@428 2402 ;;
michael@13 2403 Darwin/* )
michael@13 2404 niutil -create . "/users/${usr}"
michael@13 2405 niutil -createprop . "/users/${usr}" passwd "*"
michael@13 2406 niutil -createprop . "/users/${usr}" uid "${uid}"
michael@13 2407 niutil -createprop . "/users/${usr}" gid "${gid}"
michael@13 2408 niutil -createprop . "/users/${usr}" realname "${realname}"
michael@13 2409 niutil -createprop . "/users/${usr}" home "${prefix}"
michael@13 2410 niutil -createprop . "/users/${usr}" shell "${shell}"
michael@13 2411 ;;
michael@13 2412 AIX/* )
michael@13 2413 mkuser id="${uid}" gecos="${realname}" home="${prefix}" "${usr}"
michael@13 2414 cp /etc/security/login.cfg /etc/security/login.cfg.bak && \
michael@13 2415 sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\) *\$;\\1,$shell;" \
michael@13 2416 </etc/security/login.cfg.bak >/etc/security/login.cfg && \
michael@13 2417 rm -f /etc/security/login.cfg.bak >/dev/null 2>&1
michael@13 2418 # defer both the setting of the primary group and the shell,
michael@13 2419 # as they do not exist at this stage of processing.
michael@13 2420 echo "chuser pgrp=\"${grp}\" \"${usr}\"" >>%{l_prefix}.pre-group-process.sh
michael@13 2421 echo "chuser shell=\"${shell}\" \"${usr}\"" >>%{l_prefix}.pre-post-process.sh
michael@13 2422 ;;
michael@13 2423 * )
michael@13 2424 cp $file $file.bak && \
michael@13 2425 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
michael@13 2426 rm -f $file.bak >/dev/null 2>&1
michael@13 2427 eval $update
michael@13 2428 [ $? -ne 0 ] && exit $?
michael@13 2429 ;;
michael@13 2430 esac
michael@13 2431 fi
michael@13 2432 fi
michael@13 2433
michael@13 2434 # check whether group already exists
michael@13 2435 exists=`(getent group "$grp"; \
michael@13 2436 grep "^$grp:" /etc/group; \
michael@13 2437 ypmatch "$grp" group; \
michael@13 2438 nismatch "$grp" group; \
michael@428 2439 nidump group . | grep "^$grp:"; \
michael@428 2440 dscl . -read "/groups/$grp" | grep RecordName) 2>/dev/null | \
michael@13 2441 sed -e 'q'`
michael@13 2442 if [ ".$exists" = . ]; then
michael@13 2443 if [ ".$cusr" != ".root" ]; then
michael@13 2444 echo "openpkg:WARNING: skipping creation of OpenPKG $class group $grp" 1>&2
michael@444 2445 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2446 else
michael@13 2447 case "$plid" in
michael@428 2448 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 2449 dscl . -create "/groups/${grp}"
michael@428 2450 dscl . -create "/groups/${grp}" Password "*"
michael@428 2451 dscl . -create "/groups/${grp}" PrimaryGroupID "${gid}"
michael@428 2452 dscl . -create "/groups/${grp}" GroupMembership "${usr}"
michael@428 2453 ;;
michael@13 2454 Darwin/* )
michael@13 2455 niutil -create . "/groups/${grp}"
michael@13 2456 niutil -createprop . "/groups/${grp}" gid "${gid}"
michael@13 2457 niutil -createprop . "/groups/${grp}" users "${usr}"
michael@13 2458 ;;
michael@13 2459 AIX/* )
michael@13 2460 mkgroup id="${gid}" users="${usr}" "${grp}"
michael@13 2461 ;;
michael@13 2462 * )
michael@13 2463 # add entry to group database
michael@13 2464 file=/etc/group
michael@13 2465 entry="${grp}:*:${gid}:${usr}"
michael@13 2466 cp $file $file.bak && \
michael@13 2467 (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file
michael@13 2468 rm -f $file.bak >/dev/null 2>&1
michael@13 2469 ;;
michael@13 2470 esac
michael@13 2471 fi
michael@13 2472 fi
michael@13 2473 done
michael@13 2474
michael@13 2475 # optional group processing (deferred adjustment of primary group)
michael@13 2476 if [ -f %{l_prefix}.pre-group-process.sh ]; then
michael@13 2477 sh %{l_prefix}.pre-group-process.sh
michael@13 2478 rm -f %{l_prefix}.pre-group-process.sh
michael@13 2479 fi
michael@13 2480
michael@13 2481 # invalidate passwd and group tables from Name Service Cache Daemon to
michael@13 2482 # ensure chown/chgrp works immediately after pwconv on Linux and Solaris
michael@13 2483 if [ -x /usr/sbin/nscd ]; then
michael@13 2484 /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true
michael@428 2485 /usr/sbin/nscd -i group >/dev/null 2>&1 || true
michael@13 2486 fi
michael@13 2487
michael@13 2488 # create the startup/shutdown transfer script
michael@428 2489 name_old="`echo "$prefix" | sed -e 's;/;;g'`"
michael@428 2490 name="openpkg-`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@13 2491 if [ ".$cusr" != ".root" ]; then
michael@444 2492 echo "openpkg:WARNING: skipping creation of system runcommand hooks" 1>&2
michael@444 2493 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 2494 else
michael@13 2495 case "$plid" in
michael@13 2496 FreeBSD/* )
michael@428 2497 if [ -f /etc/rc.d/${name_old} ]; then
michael@428 2498 rm -f /etc/rc.d/${name_old}
michael@428 2499 fi
michael@428 2500 if [ ! -f /etc/rc.d/${name} ]; then
michael@13 2501 # install transfer script
michael@428 2502 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 2503 ( echo "#!/bin/sh"
michael@13 2504 echo "##"
michael@428 2505 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2506 echo "##"
michael@13 2507 echo ""
michael@428 2508 echo "# PROVIDE: ${name}"
michael@13 2509 echo "# REQUIRE: LOGIN"
michael@13 2510 echo "# KEYWORD: shutdown"
michael@13 2511 echo ""
michael@13 2512 echo ". /etc/rc.subr"
michael@13 2513 echo ""
michael@13 2514 echo "name=\"openpkg_${name}\""
michael@13 2515 echo "start_cmd=\"openpkg_rc_all start\""
michael@13 2516 echo "stop_cmd=\"openpkg_rc_all stop\""
michael@13 2517 echo "restart_cmd=\"openpkg_rc_all stop start\""
michael@13 2518 echo ""
michael@13 2519 echo "openpkg_rc_all () {"
michael@428 2520 echo " if [ -f ${prefix}/bin/openpkg ]; then"
michael@428 2521 echo " ${prefix}/bin/openpkg rc all \"\$@\""
michael@13 2522 echo " fi"
michael@13 2523 echo "}"
michael@13 2524 echo ""
michael@13 2525 echo "load_rc_config \$name"
michael@13 2526 echo "run_rc_command \"\$1\""
michael@13 2527 echo ""
michael@428 2528 ) >/etc/rc.d/${name}
michael@428 2529 chmod 755 /etc/rc.d/${name}
michael@13 2530 fi
michael@13 2531 ;;
michael@13 2532 NetBSD/* )
michael@428 2533 if [ -f /etc/rc.d/${name_old} ]; then
michael@428 2534 rm -f /etc/rc.d/${name_old}
michael@428 2535 fi
michael@13 2536 if [ ! -f /etc/rc.d/${name} ]; then
michael@13 2537 ( echo "#!/bin/sh"
michael@13 2538 echo "##"
michael@13 2539 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2540 echo "##"
michael@13 2541 echo "## PROVIDE: ${name}"
michael@13 2542 echo "## REQUIRE: DAEMON LOGIN NETWORK SERVERS"
michael@13 2543 echo "##"
michael@13 2544 echo ""
michael@428 2545 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2546 echo "case \$1 in"
michael@428 2547 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2548 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 2549 echo " restart ) exec ${prefix}/bin/openpkg rc all stop start ;;"
michael@13 2550 echo " status ) ;;"
michael@13 2551 echo "esac"
michael@13 2552 ) >/etc/rc.d/${name}
michael@13 2553 chmod 755 /etc/rc.d/${name}
michael@13 2554 fi
michael@13 2555 ;;
michael@13 2556 Linux/* )
michael@13 2557 if [ -f /etc/gentoo-release ]; then
michael@428 2558 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2559 rm -f /etc/init.d/${name_old}
michael@428 2560 fi
michael@428 2561 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2562 # install transfer script
michael@13 2563 ( echo "#!/sbin/runscript"
michael@13 2564 echo "##"
michael@428 2565 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2566 echo "##"
michael@13 2567 echo ""
michael@13 2568 echo "depend() {"
michael@13 2569 echo " after *"
michael@13 2570 echo "}"
michael@13 2571 echo ""
michael@13 2572 echo "checkconfig() {"
michael@428 2573 echo " [ -f ${prefix}/bin/openpkg ] || return 1"
michael@13 2574 echo " case $1 in"
michael@428 2575 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2576 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2577 echo " esac"
michael@13 2578 echo "}"
michael@13 2579 echo ""
michael@13 2580 echo "start() {"
michael@13 2581 echo " checkconfig || return 1"
michael@13 2582 echo " ebegin "Starting OpenPKG ${prefix} hierarchy""
michael@428 2583 echo " exec ${prefix}/bin/openpkg rc all start"
michael@13 2584 echo " eend 0"
michael@13 2585 echo "}"
michael@13 2586 echo ""
michael@13 2587 echo "stop() {"
michael@13 2588 echo " checkconfig || return 1"
michael@13 2589 echo " ebegin "Stopping OpenPKG ${prefix} hierarchy""
michael@428 2590 echo " exec ${prefix}/bin/openpkg rc all stop"
michael@13 2591 echo " eend 0"
michael@13 2592 echo "}"
michael@428 2593 ) >/etc/init.d/${name}
michael@428 2594 chmod 755 /etc/init.d/${name}
michael@428 2595 /sbin/rc-update add ${name} default
michael@428 2596 fi
michael@428 2597 elif [ -f /etc/redhat-release ]; then
michael@428 2598 sroot=/etc/rc.d/init.d
michael@428 2599 if [ ! -f $sroot/${name} ]; then
michael@428 2600 # install transfer script
michael@428 2601 ( echo "#!/bin/sh"
michael@428 2602 echo "##"
michael@428 2603 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@428 2604 echo "##"
michael@428 2605 echo ""
michael@428 2606 echo "# chkconfig: 2345 99 00"
michael@428 2607 echo "# description: OpenPKG ${prefix}"
michael@428 2608 echo ""
michael@428 2609 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@428 2610 echo "case \$1 in"
michael@428 2611 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2612 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 2613 echo "esac"
michael@428 2614 ) >$sroot/${name}
michael@428 2615 chmod 755 $sroot/${name}
michael@428 2616 # activate script
michael@428 2617 /sbin/chkconfig --add ${name}
michael@428 2618 /sbin/chkconfig ${name} on
michael@13 2619 fi
michael@13 2620 else
michael@13 2621 # sroot: script root directory
michael@13 2622 # lroot: link root directory
michael@13 2623 if [ -f /etc/debian_version ]; then
michael@13 2624 sroot=/etc/init.d
michael@428 2625 lroot=/etc/rc%%d.d
michael@428 2626 elif [ -f /etc/mandrake-release ]; then
michael@13 2627 sroot=/etc/rc.d/init.d
michael@428 2628 lroot=/etc/rc.d/rc%%d.d
michael@13 2629 elif [ -f /etc/SuSE-release ]; then
michael@13 2630 sroot=/etc/init.d
michael@428 2631 lroot=/etc/init.d/rc%%d.d
michael@13 2632 elif [ -f /etc/slackware-version ]; then
michael@13 2633 sroot=/etc/rc.d
michael@428 2634 lroot=/etc/rc.d/rc%%d.d
michael@13 2635 name="rc.${name}"
michael@13 2636 for i in 0 1 2 3 4 5 6; do
michael@428 2637 l=`echo $lroot | sed -e "s;%%d;$i;"`
michael@13 2638 if [ ! -d $l ]; then
michael@13 2639 mkdir $l 2>&1 || true
michael@13 2640 fi
michael@13 2641 done
michael@13 2642 else
michael@13 2643 echo "WARNING: you are not running one of the supported standard" 1>&2
michael@13 2644 echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2
michael@13 2645 echo "WARNING: Guessing the location of the system init scripts!" 1>&2
michael@13 2646 sroot=""
michael@13 2647 lroot=""
michael@13 2648 for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
michael@13 2649 if [ -d $sr ]; then
michael@13 2650 sroot="$sr"
michael@13 2651 break
michael@13 2652 fi
michael@13 2653 done
michael@13 2654 for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
michael@13 2655 if [ -d $lr ]; then
michael@428 2656 lroot="`echo $lr | sed -e 's;2;%%d;'`"
michael@13 2657 break
michael@13 2658 fi
michael@13 2659 done
michael@13 2660 if [ ".$sroot" = . -o ".$lroot" = . ]; then
michael@13 2661 echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2
michael@13 2662 exit 1
michael@13 2663 fi
michael@13 2664 fi
michael@428 2665 if [ -f $sroot/${name_old} ]; then
michael@428 2666 rm -f $sroot/${name_old}
michael@428 2667 fi
michael@13 2668 if [ ! -f $sroot/${name} ]; then
michael@13 2669 # install transfer script
michael@13 2670 ( echo "#!/bin/sh"
michael@13 2671 echo "##"
michael@13 2672 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2673 echo "##"
michael@13 2674 echo ""
michael@428 2675 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2676 echo "case \$1 in"
michael@428 2677 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2678 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2679 echo "esac"
michael@13 2680 ) >$sroot/${name}
michael@13 2681 chmod 755 $sroot/${name}
michael@13 2682 # create corresponding symbolic links
michael@13 2683 for i in 2 3 4 5; do
michael@428 2684 ln -s $sroot/${name} `echo $lroot | sed -e "s;%%d;$i;"`/S99${name}
michael@13 2685 done
michael@13 2686 for i in 0 1 6; do
michael@428 2687 ln -s $sroot/${name} `echo $lroot | sed -e "s;%%d;$i;"`/K00${name}
michael@13 2688 done
michael@13 2689 fi
michael@13 2690 fi
michael@13 2691 ;;
michael@437 2692 SunOS/5.1* )
michael@443 2693 suname="`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@449 2694 svcdir=/`[ -d /lib/svc/manifest ] && echo lib || echo var`
michael@449 2695 if [ ! -d /${svcdir}/svc/manifest/openpkg ]; then
michael@449 2696 mkdir /${svcdir}/svc/manifest/openpkg
michael@437 2697 fi
michael@449 2698 if [ ! -f /${svcdir}/svc/manifest/openpkg/${suname}.xml ]; then
michael@437 2699 # install SMF manifest
michael@437 2700 ( echo "<?xml version=\"1.0\"?>"
michael@437 2701 echo "<!DOCTYPE service_bundle SYSTEM \"/usr/share/lib/xml/dtd/service_bundle.dtd.1\">"
michael@443 2702 echo "<service_bundle type='manifest' name='OpenPKG:${suname}'>"
michael@437 2703 echo " <service"
michael@443 2704 echo " name='openpkg/${suname}'"
michael@437 2705 echo " type='service'"
michael@437 2706 echo " version='1'>"
michael@449 2707 echo " <create_default_instance enabled='false' />"
michael@437 2708 echo " <single_instance />"
michael@437 2709 echo " <dependency"
michael@437 2710 echo " name='filesystem'"
michael@437 2711 echo " type='service'"
michael@437 2712 echo " grouping='require_all'"
michael@437 2713 echo " restart_on='none'>"
michael@437 2714 echo " <service_fmri value='svc:/system/filesystem/local' />"
michael@437 2715 echo " </dependency>"
michael@437 2716 echo " <dependency"
michael@437 2717 echo " name='name-services'"
michael@437 2718 echo " type='service'"
michael@437 2719 echo " grouping='require_all'"
michael@437 2720 echo " restart_on='none'>"
michael@437 2721 echo " <service_fmri value='svc:/milestone/name-services' />"
michael@437 2722 echo " </dependency>"
michael@437 2723 echo " <dependency"
michael@437 2724 echo " name='multi-user-server'"
michael@437 2725 echo " type='service'"
michael@437 2726 echo " grouping='require_all'"
michael@437 2727 echo " restart_on='none'>"
michael@437 2728 echo " <service_fmri value='svc:/milestone/multi-user-server' />"
michael@437 2729 echo " </dependency>"
michael@437 2730 echo " <dependency"
michael@437 2731 echo " name='network'"
michael@437 2732 echo " type='service'"
michael@437 2733 echo " grouping='require_all'"
michael@437 2734 echo " restart_on='none'>"
michael@437 2735 echo " <service_fmri value='svc:/milestone/network' />"
michael@437 2736 echo " </dependency>"
michael@437 2737 echo " <exec_method"
michael@437 2738 echo " type='method'"
michael@437 2739 echo " name='start'"
michael@437 2740 echo " exec='${prefix}/etc/rc all start'"
michael@437 2741 echo " timeout_seconds='180'>"
michael@437 2742 echo " <method_context>"
michael@437 2743 echo " <method_credential user='root' group='root' />"
michael@437 2744 echo " </method_context>"
michael@437 2745 echo " </exec_method>"
michael@437 2746 echo " <exec_method"
michael@437 2747 echo " type='method'"
michael@449 2748 echo " name='refresh'"
michael@449 2749 echo " exec='${prefix}/etc/rc all restart'"
michael@449 2750 echo " timeout_seconds='270'>"
michael@449 2751 echo " <method_context>"
michael@449 2752 echo " <method_credential user='root' group='root' />"
michael@449 2753 echo " </method_context>"
michael@449 2754 echo " </exec_method>"
michael@449 2755 echo " <exec_method"
michael@449 2756 echo " type='method'"
michael@437 2757 echo " name='stop'"
michael@437 2758 echo " exec='${prefix}/etc/rc all stop'"
michael@437 2759 echo " timeout_seconds='180'>"
michael@437 2760 echo " </exec_method>"
michael@437 2761 echo " <property_group name='startd' type='framework'>"
michael@437 2762 echo " <propval"
michael@437 2763 echo " name='ignore_error'"
michael@437 2764 echo " type='astring'"
michael@437 2765 echo " value='core,signal' />"
michael@437 2766 echo " </property_group>"
michael@437 2767 echo " <property_group name='startd' type='framework'>"
michael@437 2768 echo " <propval"
michael@437 2769 echo " name='duration'"
michael@437 2770 echo " type='astring'"
michael@437 2771 echo " value='transient' />"
michael@437 2772 echo " </property_group>"
michael@437 2773 echo " <property_group name='general' type='framework'>"
michael@437 2774 echo " <propval"
michael@437 2775 echo " name='action_authorization'"
michael@437 2776 echo " type='astring'"
michael@443 2777 echo " value='solaris.smf.manage.openpkg.${suname}' />"
michael@437 2778 echo " </property_group>"
michael@437 2779 echo " <stability value='Unstable' />"
michael@437 2780 echo " <template>"
michael@437 2781 echo " <common_name>"
michael@437 2782 echo " <loctext xml:lang='C'>OpenPKG Instance ${prefix}</loctext>"
michael@437 2783 echo " </common_name>"
michael@437 2784 echo " </template>"
michael@437 2785 echo " </service>"
michael@437 2786 echo "</service_bundle>"
michael@449 2787 ) >/${svcdir}/svc/manifest/openpkg/${suname}.xml
michael@448 2788 /usr/sbin/svcadm restart svc:/system/manifest-import
michael@449 2789 ( echo "/usr/sbin/svcadm enable svc:/openpkg/${suname}:default"
michael@437 2790 ) >%{l_prefix}.pre-post-process.sh
michael@437 2791 fi
michael@437 2792 ;;
michael@428 2793 SunOS/5.* )
michael@428 2794 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2795 rm -f /etc/init.d/${name_old}
michael@329 2796 fi
michael@13 2797 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2798 # install transfer script
michael@13 2799 ( echo "#!/bin/sh"
michael@13 2800 echo "##"
michael@13 2801 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2802 echo "##"
michael@13 2803 echo ""
michael@428 2804 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2805 echo "case \$1 in"
michael@428 2806 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2807 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2808 echo "esac"
michael@13 2809 ) >/etc/init.d/${name}
michael@13 2810 chmod 755 /etc/init.d/${name}
michael@13 2811 # create corresponding symbolic links
michael@13 2812 ( cd /etc
michael@13 2813 ln init.d/${name} rc3.d/S99${name}
michael@13 2814 ln init.d/${name} rc0.d/K00${name}
michael@13 2815 ln init.d/${name} rc1.d/K00${name}
michael@13 2816 ) || exit $?
michael@13 2817 fi
michael@13 2818 ;;
michael@13 2819 UnixWare/* )
michael@428 2820 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2821 rm -f /etc/init.d/${name_old}
michael@428 2822 fi
michael@13 2823 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2824 # install transfer script
michael@13 2825 ( echo "#!/bin/sh"
michael@13 2826 echo "##"
michael@13 2827 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2828 echo "##"
michael@13 2829 echo ""
michael@428 2830 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2831 echo "case \$1 in"
michael@428 2832 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2833 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2834 echo "esac"
michael@13 2835 ) >/etc/init.d/${name}
michael@13 2836 chmod 755 /etc/init.d/${name}
michael@13 2837 # create corresponding symbolic links
michael@13 2838 ( cd /etc
michael@13 2839 ln init.d/${name} rc2.d/S99${name}
michael@13 2840 ln init.d/${name} rc0.d/K00${name}
michael@13 2841 ln init.d/${name} rc1.d/K00${name}
michael@13 2842 ) || exit $?
michael@13 2843 fi
michael@13 2844 ;;
michael@13 2845 AIX/* )
michael@428 2846 if [ -f /etc/rc.d/init.d/${name_old} ]; then
michael@428 2847 rm -f /etc/rc.d/init.d/${name_old}
michael@428 2848 fi
michael@13 2849 if [ ! -f /etc/rc.d/init.d/${name} ]; then
michael@13 2850 # install transfer script
michael@13 2851 ( echo "#!/bin/sh"
michael@13 2852 echo "##"
michael@13 2853 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2854 echo "##"
michael@13 2855 echo ""
michael@428 2856 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2857 echo "case \$1 in"
michael@428 2858 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2859 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2860 echo "esac"
michael@13 2861 ) >/etc/rc.d/init.d/${name}
michael@13 2862 chmod 755 /etc/rc.d/init.d/${name}
michael@13 2863 # create corresponding symbolic links
michael@13 2864 ( cd /etc/rc.d
michael@13 2865 ln -s ../init.d/${name} rc2.d/S99${name}
michael@13 2866 ) || exit $?
michael@13 2867 fi
michael@13 2868 ;;
michael@13 2869 OSF1/V5.* )
michael@428 2870 if [ -f /sbin/init.d/${name_old} ]; then
michael@428 2871 rm -f /sbin/init.d/${name_old}
michael@428 2872 fi
michael@13 2873 if [ ! -f /sbin/init.d/${name} ]; then
michael@13 2874 # install transfer script
michael@13 2875 ( echo "#!/bin/sh"
michael@13 2876 echo "##"
michael@13 2877 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2878 echo "##"
michael@13 2879 echo ""
michael@428 2880 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2881 echo "case \$1 in"
michael@428 2882 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2883 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2884 echo "esac"
michael@13 2885 ) >/sbin/init.d/${name}
michael@13 2886 chmod 755 /sbin/init.d/${name}
michael@13 2887 # create corresponding symbolic links
michael@13 2888 ( cd /sbin
michael@13 2889 ln -s ../init.d/${name} rc3.d/S99${name}
michael@13 2890 ln -s ../init.d/${name} rc0.d/K00${name}
michael@13 2891 ) || exit $?
michael@13 2892 fi
michael@13 2893 ;;
michael@13 2894 HP-UX/* )
michael@428 2895 if [ -f /sbin/init.d/${name_old} ]; then
michael@428 2896 rm -f /sbin/init.d/${name_old}
michael@428 2897 fi
michael@13 2898 if [ ! -f /sbin/init.d/${name} ]; then
michael@13 2899 # install transfer script
michael@13 2900 ( echo "#!/bin/sh"
michael@13 2901 echo "##"
michael@13 2902 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2903 echo "##"
michael@13 2904 echo ""
michael@428 2905 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2906 echo "case \$1 in"
michael@428 2907 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2908 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2909 echo "esac"
michael@13 2910 ) >/sbin/init.d/${name}
michael@13 2911 chmod 755 /sbin/init.d/${name}
michael@13 2912 # create corresponding symbolic links
michael@13 2913 ( cd /sbin
michael@13 2914 ln -s ../init.d/${name} rc2.d/S900${name}
michael@13 2915 ln -s ../init.d/${name} rc1.d/K100${name}
michael@13 2916 ) || exit $?
michael@13 2917 fi
michael@13 2918 ;;
michael@13 2919 Darwin/* )
michael@428 2920 if [ -d /Library/StartupItems/${name_old} ]; then
michael@428 2921 rm -rf /Library/StartupItems/${name_old}
michael@428 2922 fi
michael@428 2923 darwin_rc_dir="/Library/StartupItems/${name}"
michael@13 2924 if [ ! -d ${darwin_rc_dir} ]; then
michael@428 2925 mkdir -p ${darwin_rc_dir}
michael@13 2926 fi
michael@13 2927
michael@13 2928 # make sure hierarchy is activated in /etc/hostconfig
michael@13 2929 # FIXME: cs: simple and bad code here without any detection of existing entries
michael@428 2930 darwin_rc_var="`echo ${name} | sed -e 's;-;_;g' | tr '[a-z]' '[A-Z]'`"
michael@428 2931 echo "${darwin_rc_var}=-YES-" >>/etc/hostconfig
michael@13 2932
michael@13 2933 # install transfer script
michael@13 2934 if [ ! -f ${darwin_rc_dir}/${name} ]; then
michael@13 2935 rm -f ${darwin_rc_dir}/${name} >/dev/null 2>&1
michael@13 2936 ( echo "#!/bin/sh"
michael@13 2937 echo "##"
michael@13 2938 echo "## ${darwin_rc_dir}/${name}"
michael@428 2939 echo "## -- startup transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2940 echo "##"
michael@13 2941 echo ""
michael@428 2942 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2943 echo ""
michael@13 2944 echo ". /etc/rc.common"
michael@13 2945 echo ""
michael@428 2946 echo "if [ \"\${${darwin_rc_var}:=-NO-}\" = \"-YES-\" ]; then"
michael@13 2947 echo " ConsoleMessage \"OpenPKG ${prefix} hierarchy\""
michael@428 2948 echo " ${prefix}/bin/openpkg rc all start"
michael@13 2949 echo "fi"
michael@13 2950 ) >${darwin_rc_dir}/${name}
michael@13 2951 chmod 755 ${darwin_rc_dir}/${name}
michael@13 2952 fi
michael@428 2953
michael@13 2954 # install startup parameter list
michael@13 2955 if [ ! -f ${darwin_rc_dir}/StartupParameters.plist ]; then
michael@13 2956 rm -f ${darwin_rc_dir}/StartupParameters.plist >/dev/null 2>&1
michael@13 2957 ( echo "{"
michael@13 2958 echo " Description = \"OpenPKG ${prefix} hierarchy\";"
michael@13 2959 echo " Provides = (\"OpenPKG ${prefix}\");"
michael@13 2960 echo " Requires = (\"Disks\", \"Network Configuration\", \"Resolver\");"
michael@13 2961 echo " Uses = (\"Cron\");"
michael@13 2962 echo " OrderPreference = \"Last\";"
michael@13 2963 echo " Messages ="
michael@13 2964 echo " {"
michael@13 2965 echo " start = \"Starting OpenPKG ${prefix} hierarchy\";"
michael@13 2966 echo " stop = \"Stopping OpenPKG ${prefix} hierarchy\";"
michael@13 2967 echo " };"
michael@13 2968 echo "}"
michael@13 2969 ) >${darwin_rc_dir}/StartupParameters.plist
michael@13 2970 chmod 644 ${darwin_rc_dir}/StartupParameters.plist
michael@13 2971 fi
michael@13 2972 ;;
michael@13 2973 IRIX*/6.* )
michael@428 2974 if [ -f /etc/init.d/${name_old} ]; then
michael@428 2975 rm -f /etc/init.d/${name_old}
michael@428 2976 fi
michael@13 2977 if [ ! -f /etc/init.d/${name} ]; then
michael@13 2978 # install transfer script
michael@13 2979 ( echo "#!/bin/sh"
michael@13 2980 echo "##"
michael@13 2981 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@13 2982 echo "##"
michael@13 2983 echo ""
michael@428 2984 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@13 2985 echo "case \$1 in"
michael@428 2986 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 2987 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@13 2988 echo "esac"
michael@13 2989 ) >/etc/init.d/${name}
michael@13 2990 chmod 755 /etc/init.d/${name}
michael@13 2991 # create corresponding links
michael@13 2992 ( cd /etc
michael@13 2993 ln -f init.d/${name} rc2.d/S99${name}
michael@13 2994 ln -f init.d/${name} rc0.d/K00${name}
michael@13 2995 ) || exit $?
michael@13 2996 fi
michael@13 2997 ;;
michael@428 2998 CYGWIN*/* )
michael@428 2999 if [ -f /etc/rc.d/init.d/${name_old} ]; then
michael@428 3000 rm -f /etc/rc.d/init.d/${name_old}
michael@428 3001 fi
michael@428 3002 if [ ! -f /etc/rc.d/init.d/${name} ]; then
michael@428 3003 # install transfer script
michael@428 3004 ( echo "#!/bin/sh"
michael@428 3005 echo "##"
michael@428 3006 echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy"
michael@428 3007 echo "##"
michael@428 3008 echo ""
michael@428 3009 echo "test -f /etc/rc.d/init.d/functions && . /etc/rc.d/init.d/functions"
michael@428 3010 echo "test -f /etc/sysconfig/network && . /etc/sysconfig/network"
michael@428 3011 echo "[ ! -f ${prefix}/bin/openpkg ] && exit 0"
michael@428 3012 echo "case \$1 in"
michael@428 3013 echo " start ) exec ${prefix}/bin/openpkg rc all start ;;"
michael@428 3014 echo " stop ) exec ${prefix}/bin/openpkg rc all stop ;;"
michael@428 3015 echo "esac"
michael@428 3016 ) >/etc/rc.d/init.d/${name}
michael@428 3017 chmod 755 /etc/rc.d/init.d/${name}
michael@428 3018 # create corresponding symbolic links
michael@428 3019 ( cd /etc/rc.d
michael@428 3020 ln -s ../init.d/${name} rc2.d/S90${name}
michael@428 3021 ln -s ../init.d/${name} rc1.d/K10${name}
michael@428 3022 ) || exit $?
michael@428 3023 fi
michael@428 3024 ;;
michael@13 3025 esac
michael@13 3026 fi
michael@13 3027
michael@13 3028 # create the cron transfer entries
michael@13 3029 if [ ".$cusr" != ".root" ]; then
michael@13 3030 echo "openpkg:WARNING: skipping creation of system cron hooks" 1>&2
michael@13 3031 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3032 else
michael@13 3033 case "$plid" in
michael@428 3034 FreeBSD/* | Linux/* )
michael@13 3035 if [ -f /etc/slackware-version ]; then
michael@428 3036 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3037 if [ ".$exists" = . ]; then
michael@13 3038 EDITOR=/tmp/vipw.$$
michael@13 3039 VISUAL="$EDITOR"
michael@13 3040 export EDITOR
michael@13 3041 export VISUAL
michael@13 3042 ( echo "#!/bin/sh"
michael@13 3043 echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\""
michael@13 3044 echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\""
michael@428 3045 echo " echo \"0 0 1 * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly\""
michael@428 3046 echo " echo \"0 0 * * 0 [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly\""
michael@428 3047 echo " echo \"0 0 * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily\""
michael@428 3048 echo " echo \"0 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly\""
michael@428 3049 echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly\""
michael@13 3050 echo " echo \"# </OpenPKG>\""
michael@13 3051 echo ") >>\$1"
michael@13 3052 ) >$EDITOR
michael@13 3053 chmod a+x $EDITOR
michael@13 3054 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3055 rm -f $EDITOR
michael@13 3056 fi
michael@13 3057 else
michael@428 3058 exists=`egrep "($prefix/bin/openpkg|$prefix/etc/rc)" /etc/crontab`
michael@13 3059 if [ ".$exists" = . ]; then
michael@13 3060 ( echo "# <OpenPKG prefix=$prefix pkg=openpkg>"
michael@13 3061 echo "# chronological tasks of ${prefix} OpenPKG hierarchy"
michael@428 3062 echo "0 0 1 * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly"
michael@428 3063 echo "0 0 * * 0 root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly"
michael@428 3064 echo "0 0 * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily"
michael@428 3065 echo "0 * * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly"
michael@428 3066 echo "*/15 * * * * root [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly"
michael@13 3067 echo "# </OpenPKG>"
michael@13 3068 ) >>/etc/crontab
michael@13 3069 fi
michael@13 3070 fi
michael@13 3071 ;;
michael@428 3072 SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* | CYGWIN*/* | Darwin/* )
michael@428 3073 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3074 if [ ".$exists" = . ]; then
michael@13 3075 EDITOR=/tmp/vipw.$$
michael@13 3076 VISUAL="$EDITOR"
michael@13 3077 export EDITOR
michael@13 3078 export VISUAL
michael@13 3079 ( echo "#!/bin/sh"
michael@13 3080 echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\""
michael@13 3081 echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\""
michael@461 3082 echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron monthly\""
michael@461 3083 echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron weekly\""
michael@461 3084 echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron daily\""
michael@461 3085 echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron hourly\""
michael@461 3086 echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc cron quarterly\""
michael@13 3087 echo " echo \"# </OpenPKG>\""
michael@13 3088 echo ") >>\$1"
michael@13 3089 ) >$EDITOR
michael@13 3090 chmod a+x $EDITOR
michael@13 3091 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3092 rm -f $EDITOR
michael@13 3093 fi
michael@13 3094 ;;
michael@13 3095 IRIX*/6.* )
michael@428 3096 exists=`crontab -l | egrep "($prefix/bin/openpkg|$prefix/etc/rc)"`
michael@13 3097 if [ ".$exists" = . ]; then
michael@13 3098 ( crontab -l
michael@13 3099 echo "# <OpenPKG prefix=$prefix pkg=openpkg>"
michael@13 3100 echo "# chronological tasks of ${prefix} OpenPKG hierarchy"
michael@428 3101 echo "0 0 1 * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron monthly"
michael@428 3102 echo "0 0 * * 0 [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron weekly"
michael@428 3103 echo "0 0 * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron daily"
michael@428 3104 echo "0 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron hourly"
michael@428 3105 echo "0,15,30,45 * * * * [ -f ${prefix}/bin/openpkg ] && ${prefix}/bin/openpkg rc cron quarterly"
michael@13 3106 echo "# </OpenPKG>"
michael@13 3107 ) | /usr/bin/crontab || exit $?
michael@13 3108 fi
michael@13 3109 ;;
michael@13 3110 esac
michael@13 3111 fi
michael@13 3112
michael@13 3113 # remember what OpenPKG RPM version was installed, so we can
michael@13 3114 # correctly upgrade the RPM database in the %post section (see below).
michael@13 3115 if [ -d ${prefix}/RPM/DB ]; then
michael@13 3116 if [ -x "${prefix}/bin/openpkg" -a -x "${prefix}/libexec/openpkg/rpm" ]; then
michael@428 3117 # OpenPKG >= 2.0
michael@13 3118 rpm="${prefix}/bin/openpkg rpm"
michael@13 3119 else
michael@13 3120 # OpenPKG 1.x
michael@13 3121 rpm="${prefix}/bin/rpm"
michael@13 3122 fi
michael@13 3123 rm -f ${prefix}/RPM/DB/.version >/dev/null 2>&1 || true
michael@428 3124 $rpm --version 2>/dev/null |\
michael@13 3125 sed -e 's;^;X;' \
michael@13 3126 -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \
michael@13 3127 -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \
michael@428 3128 -e 's;^X.*$;0.0;' \
michael@13 3129 >${prefix}/RPM/DB/.version
michael@13 3130 fi
michael@13 3131
michael@13 3132 %post
michael@570 3133 # optional postprocessing from "pre" section
michael@13 3134 if [ -f %{l_prefix}.pre-post-process.sh ]; then
michael@13 3135 sh %{l_prefix}.pre-post-process.sh
michael@13 3136 rm -f %{l_prefix}.pre-post-process.sh
michael@13 3137 fi
michael@13 3138
michael@13 3139 # update or initially create OpenPKG UUID configuration
michael@13 3140 %{l_prefix}/bin/openpkg uuid update >/dev/null 2>&1 || true
michael@13 3141
michael@428 3142 # when upgrading from RPM 4 to RPM 5 there will be no
michael@428 3143 # initial license at all, so create one
michael@428 3144 if [ ! -f %{l_prefix}/etc/openpkg/license ]; then
michael@428 3145 echo "BOOT" >%{l_prefix}/etc/openpkg/license
michael@428 3146 ( chown %{l_musr}:%{l_mgrp} %{l_prefix}/etc/openpkg/license
michael@428 3147 chmod 644 %{l_prefix}/etc/openpkg/license
michael@428 3148 ) >/dev/null 2>&1 || true
michael@428 3149 fi
michael@428 3150
michael@428 3151 # finally switch from a possibly active BOOT license to EVAL license
michael@428 3152 # (notice: this is really the earliest time we can switch because the
michael@428 3153 # previous command had to create the <prefix>/etc/openpkg/uuid first!)
michael@428 3154 if [ ".`cat %{l_prefix}/etc/openpkg/license`" = ".BOOT" ]; then
michael@428 3155 echo "EVAL" >%{l_prefix}/etc/openpkg/license
michael@428 3156 fi
michael@428 3157
michael@13 3158 # determine new and old OpenPKG RPM version
michael@428 3159 V_rpm_new="%{V_rpm_major}.%{V_rpm_minor}"
michael@13 3160 if [ -f %{l_prefix}/RPM/DB/.version ]; then
michael@13 3161 V_rpm_old="`cat %{l_prefix}/RPM/DB/.version`"
michael@13 3162 rm -f %{l_prefix}/RPM/DB/.version >/dev/null 2>&1 || true
michael@13 3163 else
michael@428 3164 V_rpm_old="0.0"
michael@13 3165 fi
michael@13 3166
michael@13 3167 # make sure all RPM database files are present and that their
michael@13 3168 # attributes are correct, etc. This is not a database rebuild
michael@13 3169 # operation, so this is fully harmless and can be done always.
michael@428 3170 %{l_prefix}/lib/openpkg/rpmdb --quiet --fixate >/dev/null 2>&1 || true
michael@13 3171
michael@13 3172 # check RPM database for upgrade requirements
michael@13 3173 if [ ".$1" = .2 -a ".$V_rpm_old" != ".$V_rpm_new" ]; then
michael@13 3174 # RPM 4.0/4.1 does not allow concurrent database access, so we
michael@13 3175 # cannot upgrade the database immediately from here (because
michael@13 3176 # we are still running within the execution context of the
michael@13 3177 # old RPM which in turn has the database locked) and instead
michael@13 3178 # have to just drop a note to the administrator about database
michael@428 3179 # upgrading. RPM >= 4.2 in general allows concurrent database
michael@13 3180 # access, but the whole stuff is too risky here, too.
michael@13 3181 ( echo "You are upgrading the OpenPKG bootstrap from a previous"
michael@13 3182 echo "RPM $V_rpm_old based version to this RPM $V_rpm_new based"
michael@428 3183 echo "version. The RPM database in %{l_prefix}/RPM/DB/ can be"
michael@428 3184 echo "reused, but you first have to upgrade it as soon as"
michael@428 3185 echo "possible to the latest format files by executing:"
michael@13 3186 echo " \$ %{l_prefix}/bin/openpkg rpm --db-rebuild"
michael@13 3187 echo "In case of problems with the RPM database you can always"
michael@13 3188 echo "execute the command:"
michael@13 3189 echo " \$ %{l_prefix}/bin/openpkg rpm --db-cleanup"
michael@13 3190 ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t warn
michael@13 3191 fi
michael@13 3192
michael@13 3193 # system command overriding support
michael@13 3194 # ATTENTION: THIS BETTER SHOULD BE REPLACED WITH A MORE GENERIC
michael@13 3195 # BUILD COMMAND OVERRIDE SOLUTION!
michael@13 3196 if [ ! -d %{l_prefix}/lib/openpkg/override ]; then
michael@13 3197 mkdir %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3198 fi
michael@13 3199 chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3200 case "`cat %{l_prefix}/etc/openpkg/platform`" in
michael@13 3201 *-*-debian* | *-*-ubuntu* )
michael@13 3202 # FIXME: Evil hack to workaround build problems under Debian
michael@13 3203 # (at least 3.1) (and similar platforms) where a Debian
michael@13 3204 # install-info(8) exists which is both API and functionally
michael@13 3205 # incompatible to the de-facto standardized install-info(8)
michael@13 3206 # command from GNU Texinfo.
michael@13 3207 if [ ! -f %{l_prefix}/lib/openpkg/override/install-info ]; then
michael@13 3208 ( echo "#!/bin/sh"
michael@13 3209 echo "echo 'OpenPKG: NOTICE: install-info(8) command execution overridden'"
michael@13 3210 echo "exit 0"
michael@13 3211 ) >%{l_prefix}/lib/openpkg/override/install-info
michael@13 3212 chmod 775 %{l_prefix}/lib/openpkg/override/install-info
michael@13 3213 fi
michael@13 3214 ;;
michael@13 3215 *-*-macosx* | *-*-darwin* )
michael@13 3216 # FIXME: Evil hack to workaround the fact that Mac OS X'
michael@13 3217 # linker by default prefers the /usr/lib libraries and does
michael@13 3218 # not honor the -L options the way one would expect it.
michael@13 3219 gcc="`%{l_prefix}/lib/openpkg/shtool path gcc`"
michael@13 3220 cc="`%{l_prefix}/lib/openpkg/shtool path cc`"
michael@13 3221 ld="`%{l_prefix}/lib/openpkg/shtool path ld`"
michael@13 3222 if [ ".$gcc" != . -a ! -f %{l_prefix}/lib/openpkg/override/gcc ]; then
michael@13 3223 ( echo "#!/bin/sh"
michael@13 3224 echo "case \" \$* \" in"
michael@13 3225 echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;"
michael@13 3226 echo " * ) exec $gcc -Wl,-search_paths_first \"\$@\" ;;"
michael@13 3227 echo "esac"
michael@13 3228 ) >%{l_prefix}/lib/openpkg/override/gcc
michael@13 3229 chmod 775 %{l_prefix}/lib/openpkg/override/gcc
michael@13 3230 fi
michael@13 3231 if [ ".$cc" != . -a ! -f %{l_prefix}/lib/openpkg/override/cc ]; then
michael@13 3232 ( echo "#!/bin/sh"
michael@13 3233 echo "case \" \$* \" in"
michael@13 3234 echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;"
michael@13 3235 echo " * ) exec $cc -Wl,-search_paths_first \"\$@\" ;;"
michael@13 3236 echo "esac"
michael@13 3237 ) >%{l_prefix}/lib/openpkg/override/cc
michael@13 3238 chmod 775 %{l_prefix}/lib/openpkg/override/cc
michael@13 3239 fi
michael@13 3240 if [ ".$ld" != . -a ! -f %{l_prefix}/lib/openpkg/override/ld ]; then
michael@13 3241 ( echo "#!/bin/sh"
michael@13 3242 echo "exec $ld -search_paths_first \"\$@\""
michael@13 3243 ) >%{l_prefix}/lib/openpkg/override/ld
michael@13 3244 chmod 775 %{l_prefix}/lib/openpkg/override/ld
michael@13 3245 fi
michael@13 3246 ;;
michael@13 3247 esac
michael@13 3248
michael@428 3249 # special support for fully unprivileged environments
michael@428 3250 # where we cannot switch the user at all with su(1),
michael@428 3251 # so we provide a dummy su(1) override command.
michael@428 3252 if [ ".%{l_unprivileged}" = ".yes" ]; then
michael@428 3253 ( echo "#!/bin/sh"
michael@428 3254 echo "while [ \$# -gt 0 ]; do"
michael@428 3255 echo " case \"\$1\" in"
michael@428 3256 echo " - | -* ) shift ;;"
michael@428 3257 echo " * ) shift; break ;;"
michael@428 3258 echo " esac"
michael@428 3259 echo "done"
michael@428 3260 echo "exec /bin/sh \${1+\"\$@\"}"
michael@428 3261 ) >%{l_prefix}/lib/openpkg/override/su
michael@428 3262 chmod 775 %{l_prefix}/lib/openpkg/override/su
michael@428 3263 fi
michael@428 3264
michael@13 3265 # FIXME: hack to workaround problems in environments with too few
michael@13 3266 # development tools. ATTENTION: see one paragraph above.
michael@13 3267 if [ ! -d %{l_prefix}/lib/openpkg/fallback ]; then
michael@13 3268 mkdir %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3269 fi
michael@13 3270 chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3271
michael@428 3272 # cruel platform hack
michael@428 3273 case "`cat %{l_prefix}/etc/openpkg/platform`" in
michael@428 3274 *-*-cygwin* )
michael@428 3275 # Cygwin under Windows Vista dislikes executables with
michael@428 3276 # "patch" in the same and would require a "*.manifest"
michael@428 3277 # file applied with the "mt.exe" from the "Windows
michael@428 3278 # Software Development Kit (SDK)" in order to escape from
michael@428 3279 # UAC. An easy alternative is to just rename the file to a
michael@428 3280 # different name.
michael@428 3281 cp %{l_prefix}/lib/openpkg/patch \
michael@428 3282 %{l_prefix}/lib/openpkg/pitch
michael@428 3283 %{l_prefix}/lib/openpkg/shtool subst \
michael@428 3284 -e 's;openpkg/patch;openpkg/pitch;g' \
michael@428 3285 %{l_prefix}/etc/openpkg/rpmmacros
michael@428 3286 ;;
michael@428 3287 esac
michael@428 3288
michael@428 3289 # print license
michael@428 3290 ( echo ""
michael@428 3291 echo "NOTICE: Proprietary components of the OpenPKG Framework are covered"
michael@428 3292 echo "by the following terms and conditions and require a valid run-time"
michael@428 3293 echo "license, issued by the OpenPKG GmbH. An initial license, which allows"
michael@428 3294 echo "30 days of free use for evaluation purposes, is already pre-installed."
michael@428 3295 echo "Please go to http://openpkg.com/go/framework-license to obtain"
michael@428 3296 echo "your permanent license."
michael@428 3297 echo ""
michael@428 3298 %{l_prefix}/bin/openpkg --license
michael@428 3299 echo "______________________________________________________________________________"
michael@428 3300 echo ""
michael@428 3301 echo "NOTICE: Open Source components of the OpenPKG Framework are covered"
michael@428 3302 echo "by various standard Open Source distribution licenses, including"
michael@428 3303 echo "the MIT, BSD, LGPL, GPL, Public-Domain and Artistic licenses."
michael@428 3304 echo "They all allow you the use of those components free of charge."
michael@428 3305 echo "See http://www.opensource.org/licenses for more details."
michael@428 3306 echo ""
michael@428 3307 ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t notice
michael@428 3308
michael@428 3309 # register package with central OpenPKG registry
michael@428 3310 ( nohup %{l_prefix}/bin/openpkg register \
michael@428 3311 </dev/null >/dev/null 2>&1 &
michael@428 3312 ) </dev/null >/dev/null 2>&1 || true
michael@13 3313
michael@13 3314 %preun
michael@13 3315 [ ".$1" != .0 ] && exit 0
michael@13 3316
michael@13 3317 # remove override files
michael@13 3318 if [ -d %{l_prefix}/lib/openpkg/override ]; then
michael@13 3319 rm -rf %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true
michael@13 3320 fi
michael@13 3321
michael@13 3322 # remove fallback files
michael@13 3323 if [ -d %{l_prefix}/lib/openpkg/fallback ]; then
michael@13 3324 rm -rf %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true
michael@13 3325 fi
michael@13 3326
michael@13 3327 # remove files which are not RPM controlled
michael@13 3328 rm -rf %{l_prefix}/RPM/TMP/* %{l_prefix}/RPM/TMP/.[a-z]* >/dev/null 2>&1 || true
michael@13 3329 rm -rf %{l_prefix}/RPM/SRC/* %{l_prefix}/RPM/SRC/.[a-z]* >/dev/null 2>&1 || true
michael@13 3330 rm -rf %{l_prefix}/RPM/PKG/* %{l_prefix}/RPM/PKG/.[a-z]* >/dev/null 2>&1 || true
michael@428 3331 rm -rf %{l_prefix}/RPM/TR/* %{l_prefix}/RPM/TR/.[a-z]* >/dev/null 2>&1 || true
michael@13 3332 rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true
michael@13 3333
michael@13 3334 # The following code usually would be done in a %postun section.
michael@13 3335 # But because we already had to remove the database in this %preun
michael@13 3336 # section (see the 'rm' commands above) in order to make RPM happy
michael@13 3337 # inside its own removal procedure, RPM would no longer find the
michael@13 3338 # %postun script (because it's recorded in the database files). So
michael@13 3339 # we have to perform the procedure already in this %preun script.
michael@13 3340 # except for the removal of the top-level directory it does not
michael@13 3341 # matter. But the top-level directory can only be removed after
michael@13 3342 # the RPM removal procedure took place, so we play a little delay
michael@13 3343 # trick below.
michael@13 3344
michael@13 3345 # determine current user
michael@13 3346 cusr=`(id -un) 2>/dev/null ||\
michael@13 3347 (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\
michael@13 3348 (whoami) 2>/dev/null ||\
michael@13 3349 (who am i | cut "-d " -f1) 2>/dev/null ||\
michael@13 3350 echo $LOGNAME`
michael@13 3351
michael@13 3352 # determine runtime details (for both inside and outside RPM!!)
michael@13 3353 user="%{l_musr}"
michael@13 3354 group="%{l_mgrp}"
michael@13 3355 prefix="%{l_prefix}"
michael@13 3356 prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'`
michael@13 3357
michael@13 3358 # determine platform id
michael@13 3359 s=`(uname -s) 2>/dev/null` || s='Unknown'
michael@13 3360 r=`(uname -r) 2>/dev/null` || r='0.0'
michael@13 3361 plid="${s}/${r}"
michael@13 3362
michael@13 3363 # unregister instance in presence file
michael@13 3364 presence="/etc/openpkg"
michael@13 3365 exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"`
michael@13 3366 if [ ".$exists" != . ]; then
michael@13 3367 if [ ".$cusr" != ".root" ]; then
michael@13 3368 echo "openpkg:WARNING: skipping unregistering of $prefix in $presence" 1>&2
michael@13 3369 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3370 else
michael@13 3371 cp $presence $presence.bak && \
michael@13 3372 egrep -v "^ *${prefix} *\$" $presence.bak >$presence
michael@13 3373 rm -f $presence.bak >/dev/null 2>&1
michael@13 3374 if [ ".`cat $presence`" = . ]; then
michael@13 3375 rm -f $presence >/dev/null 2>&1
michael@13 3376 fi
michael@13 3377 fi
michael@13 3378 fi
michael@13 3379
michael@13 3380 # remove entry in /etc/shells
michael@13 3381 shell="${prefix}/lib/openpkg/bash"
michael@13 3382 exists=`cat /etc/shells 2>/dev/null | grep "^$shell"`
michael@13 3383 if [ ".$exists" != . ]; then
michael@13 3384 if [ ".$cusr" != ".root" ]; then
michael@13 3385 echo "openpkg:WARNING: skipping deletion of $shell from /etc/shells" 1>&2
michael@13 3386 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3387 else
michael@13 3388 cp /etc/shells /etc/shells.bak && \
michael@13 3389 grep -v "^${shell}" /etc/shells.bak >/etc/shells
michael@13 3390 rm -f /etc/shells.bak >/dev/null 2>&1
michael@13 3391 fi
michael@13 3392 fi
michael@13 3393
michael@13 3394 # remove the hierarchy user/group
michael@13 3395 for req in "super-user:%{l_susr}:%{l_suid}:%{l_sgrp}:%{l_sgid}" \
michael@13 3396 "management:%{l_musr}:%{l_muid}:%{l_mgrp}:%{l_mgid}" \
michael@13 3397 "restricted:%{l_rusr}:%{l_ruid}:%{l_rgrp}:%{l_rgid}" \
michael@13 3398 "non-privileged:%{l_nusr}:%{l_nuid}:%{l_ngrp}:%{l_ngid}"; do
michael@13 3399 # split request into class/usr/uid/grp/gid
michael@13 3400 OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS"
michael@13 3401 class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5"
michael@13 3402
michael@13 3403 # check whether user already exists
michael@13 3404 exists=`(getent passwd "$usr"; \
michael@13 3405 grep "^$usr:" /etc/passwd; \
michael@13 3406 ypmatch "$usr" passwd; \
michael@13 3407 nismatch "$usr" passwd; \
michael@428 3408 nidump passwd . | grep "^$usr:"; \
michael@428 3409 dscl . -read "/users/$usr" | grep RecordName) 2>/dev/null | \
michael@13 3410 sed -e 'q'`
michael@13 3411 if [ ".$exists" != . ]; then
michael@13 3412 if [ ".$cusr" != ".root" ]; then
michael@13 3413 echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2
michael@13 3414 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3415 elif [ ".$usr" = ".root" ]; then
michael@13 3416 echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2
michael@13 3417 echo "openpkg:WARNING: (would remove system standard user)" 1>&2
michael@13 3418 else
michael@13 3419 case "$plid" in
michael@13 3420 FreeBSD/* | NetBSD/* )
michael@13 3421 cp /etc/master.passwd /etc/master.passwd.bak && \
michael@13 3422 grep -v "^${usr}:" /etc/master.passwd.bak >/etc/master.passwd
michael@13 3423 ( PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd ) || exit $?
michael@13 3424 rm -f /etc/master.passwd.bak >/dev/null 2>&1
michael@13 3425 ;;
michael@13 3426 Linux/* | SunOS/5.* | UnixWare/* )
michael@13 3427 cp /etc/passwd /etc/passwd.bak && \
michael@13 3428 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3429 ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $?
michael@13 3430 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3431 ;;
michael@13 3432 AIX/* )
michael@13 3433 rmuser -p "${usr}"
michael@13 3434 cp /etc/security/login.cfg /etc/security/login.cfg.bak && \
michael@13 3435 sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\),$shell\\(.*\\)\$;\\1\\2;" \
michael@13 3436 </etc/security/login.cfg.bak >/etc/security/login.cfg && \
michael@13 3437 rm -f /etc/security/login.cfg.bak >/dev/null 2>&1
michael@13 3438 ;;
michael@13 3439 OSF1/V5.* )
michael@13 3440 cp /etc/passwd /etc/passwd.bak && \
michael@13 3441 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3442 ( PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd ) || exit $?
michael@13 3443 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3444 ;;
michael@13 3445 HP-UX/* )
michael@13 3446 cp /etc/passwd /etc/passwd.bak && \
michael@13 3447 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3448 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3449 ;;
michael@428 3450 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 3451 dscl . -delete "/users/${usr}"
michael@428 3452 ;;
michael@13 3453 Darwin/* )
michael@13 3454 niutil -destroy . "/users/${usr}"
michael@13 3455 ;;
michael@13 3456 IRIX*/6.* )
michael@13 3457 cp /etc/passwd /etc/passwd.bak && \
michael@13 3458 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@13 3459 if [ -f /etc/shadow ]
michael@13 3460 then ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $?
michael@13 3461 fi
michael@13 3462 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@13 3463 ;;
michael@428 3464 CYGWIN*/* )
michael@428 3465 cp /etc/passwd /etc/passwd.bak && \
michael@428 3466 grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd
michael@428 3467 rm -f /etc/passwd.bak >/dev/null 2>&1
michael@428 3468 ;;
michael@13 3469 esac
michael@13 3470 fi
michael@13 3471 fi
michael@13 3472
michael@13 3473 # check whether group already exists
michael@13 3474 exists=`(getent group "$grp"; \
michael@13 3475 grep "^$grp:" /etc/group; \
michael@13 3476 ypmatch "$grp" group; \
michael@13 3477 nismatch "$grp" group; \
michael@428 3478 nidump group . | grep "^$grp:"; \
michael@428 3479 dscl . -read "/groups/$grp" | grep RecordName) 2>/dev/null | \
michael@13 3480 sed -e 'q'`
michael@13 3481 if [ ".$exists" != . ]; then
michael@13 3482 if [ ".$cusr" != ".root" ]; then
michael@13 3483 echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2
michael@13 3484 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3485 elif [ ".$usr" = ".root" ] || [ ".$grp" = ".root" ] || [ ".$grp" = ".wheel" ]; then
michael@13 3486 echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2
michael@13 3487 echo "openpkg:WARNING: (would remove system standard group)" 1>&2
michael@13 3488 else
michael@13 3489 case "$plid" in
michael@428 3490 Darwin/10.[1-9]* | Darwin/1[1-9].* )
michael@428 3491 dscl . -delete "/groups/${grp}"
michael@428 3492 ;;
michael@13 3493 Darwin/* )
michael@13 3494 niutil -destroy . "/groups/${grp}"
michael@13 3495 ;;
michael@13 3496 AIX/* )
michael@13 3497 rmgroup "${grp}"
michael@13 3498 ;;
michael@13 3499 * )
michael@13 3500 cp /etc/group /etc/group.bak && \
michael@13 3501 grep -v "^${grp}:" /etc/group.bak >/etc/group
michael@13 3502 rm -f /etc/group.bak >/dev/null 2>&1
michael@13 3503 ;;
michael@13 3504 esac
michael@13 3505 fi
michael@13 3506 fi
michael@13 3507 done
michael@13 3508
michael@13 3509 # invalidate passwd and group tables from Name Service Cache Daemon to
michael@13 3510 # ensure chown/chgrp works immediately after pwconv on Linux and Solaris
michael@13 3511 if [ -x /usr/sbin/nscd ]; then
michael@13 3512 /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true
michael@13 3513 /usr/sbin/nscd -i group >/dev/null 2>&1 || true
michael@13 3514 fi
michael@13 3515
michael@13 3516 # remove the startup/shutdown transfer scripts
michael@443 3517 name="openpkg-`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@13 3518 if [ ".$cusr" != ".root" ]; then
michael@444 3519 echo "openpkg:WARNING: skipping deletion of system runcommand hooks" 1>&2
michael@444 3520 echo "openpkg:WARNING: (would require root privileges)" 1>&2
michael@13 3521 else
michael@13 3522 case "$plid" in
michael@13 3523 FreeBSD/* )
michael@428 3524 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 3525 ;;
michael@13 3526 NetBSD/* )
michael@13 3527 rm -f /etc/rc.d/${name} >/dev/null 2>&1
michael@13 3528 ;;
michael@13 3529 Linux/* )
michael@13 3530 if [ -f /etc/gentoo-release ]; then
michael@428 3531 /sbin/rc-update del ${name} >/dev/null 2>&1
michael@428 3532 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@428 3533 elif [ -f /etc/redhat-release ]; then
michael@428 3534 /sbin/chkconfig ${name} off >/dev/null 2>&1
michael@428 3535 /sbin/chkconfig --del ${name} >/dev/null 2>&1
michael@428 3536 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@13 3537 else
michael@13 3538 # sroot: script root directory
michael@13 3539 # lroot: link root directory
michael@13 3540 if [ -f /etc/debian_version ]; then
michael@13 3541 sroot=/etc/init.d
michael@428 3542 lroot=/etc/rc%%d.d
michael@428 3543 elif [ -f /etc/mandrake-release ]; then
michael@13 3544 sroot=/etc/rc.d/init.d
michael@428 3545 lroot=/etc/rc.d/rc%%d.d
michael@13 3546 elif [ -f /etc/SuSE-release ]; then
michael@13 3547 sroot=/etc/init.d
michael@428 3548 lroot=/etc/init.d/rc%%d.d
michael@13 3549 elif [ -f /etc/slackware-version ]; then
michael@13 3550 sroot=/etc/rc.d
michael@428 3551 lroot=/etc/rc.d/rc%%d.d
michael@13 3552 name="rc.${name}"
michael@13 3553 else
michael@13 3554 echo "WARNING: you are not running one of the supported standard" 1>&2
michael@13 3555 echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2
michael@13 3556 echo "WARNING: Guessing the location of the system init scripts!" 1>&2
michael@13 3557 sroot=""
michael@13 3558 lroot=""
michael@13 3559 for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do
michael@13 3560 if [ -d $sr ]; then
michael@13 3561 sroot="$sr"
michael@13 3562 break
michael@13 3563 fi
michael@13 3564 done
michael@13 3565 for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do
michael@13 3566 if [ -d $lr ]; then
michael@428 3567 lroot="`echo $lr | sed -e 's;2;%%d;'`"
michael@13 3568 break
michael@13 3569 fi
michael@13 3570 done
michael@13 3571 if [ ".$sroot" = . -o ".$lroot" = . ]; then
michael@13 3572 echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2
michael@13 3573 exit 1
michael@13 3574 fi
michael@13 3575 fi
michael@13 3576 rm -f ${sroot}/${name} >/dev/null 2>&1
michael@13 3577 for i in 2 3 4 5; do
michael@428 3578 rm -f `echo $lroot | sed -e "s;%%d;$i;"`/S99${name} >/dev/null 2>&1
michael@13 3579 done
michael@13 3580 for i in 0 1 6; do
michael@428 3581 rm -f `echo $lroot | sed -e "s;%%d;$i;"`/K00${name} >/dev/null 2>&1
michael@13 3582 done
michael@13 3583 if [ -f /etc/slackware-version ]; then
michael@13 3584 for i in 0 1 2 3 4 5 6; do
michael@428 3585 l=`echo $lroot | sed -e "s;%%d;$i;"`
michael@13 3586 if [ -d $l ]; then
michael@13 3587 rmdir $l >/dev/null 2>&1 || true
michael@13 3588 fi
michael@13 3589 done
michael@13 3590 fi
michael@13 3591 fi
michael@13 3592 ;;
michael@437 3593 SunOS/5.1* )
michael@443 3594 suname="`echo "$prefix" | sed -e 's;[^a-zA-Z0-9];;g'`"
michael@449 3595 svcdir=/`[ -d /lib/svc/manifest ] && echo lib || echo var`
michael@449 3596 /usr/sbin/svcadm disable svc:/openpkg/${suname}:default; sleep 2
michael@449 3597 rm -f /${svcdir}/svc/manifest/openpkg/${suname}.xml >/dev/null 2>&1
michael@449 3598 rmdir /${svcdir}/svc/manifest/openpkg >/dev/null 2>&1 || true
michael@449 3599 /usr/sbin/svcadm restart svc:/system/manifest-import
michael@437 3600 ;;
michael@13 3601 SunOS/5.* )
michael@13 3602 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3603 rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1
michael@13 3604 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3605 rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1
michael@13 3606 ;;
michael@13 3607 UnixWare/* )
michael@13 3608 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3609 rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3610 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3611 rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1
michael@13 3612 ;;
michael@13 3613 AIX/* )
michael@13 3614 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@13 3615 rm -f /etc/rc.d/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3616 ;;
michael@13 3617 OSF1/V5.* )
michael@13 3618 rm -f /sbin/init.d/${name} >/dev/null 2>&1
michael@13 3619 rm -f /sbin/rc3.d/S99${name} >/dev/null 2>&1
michael@13 3620 rm -f /sbin/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3621 ;;
michael@13 3622 HP-UX/* )
michael@13 3623 rm -f /sbin/init.d/${name} >/dev/null 2>&1
michael@13 3624 rm -f /etc/rc2.d/S900${name} >/dev/null 2>&1
michael@13 3625 rm -f /etc/rc1.d/K100${name} >/dev/null 2>&1
michael@13 3626 ;;
michael@13 3627 Darwin/* )
michael@428 3628 darwin_rc_var="`echo ${name} | sed -e 's;-;_;g' | tr '[a-z]' '[A-Z]'`"
michael@13 3629 cp /etc/hostconfig /etc/hostconfig.bak && \
michael@428 3630 grep -v "^${darwin_rc_var}=" /etc/hostconfig.bak >/etc/hostconfig
michael@13 3631 rm -f /etc/hostconfig.bak >/dev/null 2>&1
michael@428 3632 rm -rf /Library/StartupItems/${name} >/dev/null 2>&1
michael@13 3633 ;;
michael@13 3634 IRIX*/6.* )
michael@13 3635 rm -f /etc/init.d/${name} >/dev/null 2>&1
michael@13 3636 rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1
michael@13 3637 rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1
michael@13 3638 ;;
michael@428 3639 CYGWIN*/* )
michael@428 3640 rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1
michael@428 3641 rm -f /etc/rc.d/rc2.d/S90${name} >/dev/null 2>&1
michael@428 3642 rm -f /etc/rc.d/rc1.d/K10${name} >/dev/null 2>&1
michael@428 3643 ;;
michael@13 3644 esac
michael@13 3645 fi
michael@13 3646
michael@13 3647 # remove the cron transfer entries
michael@13 3648 if [ ".$cusr" != ".root" ]; then
michael@13 3649 echo "openpkg:WARNING: skipping deletion of system cron hooks" 1>&2
michael@13 3650 echo "openpkg:WARNING: (would require root-privileges)" 1>&2
michael@13 3651 else
michael@13 3652 case "$plid" in
michael@428 3653 FreeBSD/* | Linux/* )
michael@13 3654 if [ -f /etc/slackware-version ]; then
michael@13 3655 EDITOR=/tmp/vipw.$$
michael@13 3656 VISUAL="$EDITOR"
michael@13 3657 export EDITOR
michael@13 3658 export VISUAL
michael@13 3659 p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'`
michael@13 3660 ( echo "cp \$1 \$1.bak"
michael@13 3661 echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1"
michael@13 3662 echo "rm -f \$1.bak"
michael@13 3663 ) >$EDITOR
michael@13 3664 chmod a+x $EDITOR
michael@13 3665 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3666 rm -f $EDITOR
michael@13 3667 else
michael@13 3668 exists=`grep "<OpenPKG prefix=$prefix pkg=openpkg>" /etc/crontab`
michael@13 3669 if [ ".$exists" != . ]; then
michael@13 3670 p=`echo $prefix | sed -e 's;/;\\\\/;g'`
michael@13 3671 cp /etc/crontab /etc/crontab.bak
michael@13 3672 cat /etc/crontab.bak |\
michael@13 3673 sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \
michael@13 3674 >/etc/crontab
michael@13 3675 rm -f /etc/crontab.bak >/dev/null 2>&1
michael@13 3676 fi
michael@13 3677 fi
michael@13 3678 ;;
michael@428 3679 SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* | CYGWIN*/* | Darwin/* )
michael@13 3680 EDITOR=/tmp/vipw.$$
michael@13 3681 VISUAL="$EDITOR"
michael@13 3682 export EDITOR
michael@13 3683 export VISUAL
michael@13 3684 p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'`
michael@13 3685 ( echo "cp \$1 \$1.bak"
michael@13 3686 echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1"
michael@13 3687 echo "rm -f \$1.bak"
michael@13 3688 ) >$EDITOR
michael@13 3689 chmod a+x $EDITOR
michael@13 3690 ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $?
michael@13 3691 rm -f $EDITOR
michael@13 3692 ;;
michael@13 3693 IRIX*/6.* )
michael@13 3694 p=`echo $prefix | sed -e 's;/;\\\\\\/;g'`
michael@13 3695 ( crontab -l |
michael@13 3696 sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\/OpenPKG>/d"
michael@13 3697 ) | /usr/bin/crontab || exit $?
michael@13 3698 ;;
michael@13 3699 esac
michael@13 3700 fi
michael@13 3701
michael@13 3702 # delayed removal of top-level directory.
michael@13 3703 ( sleep 2
michael@428 3704 rm -rf %{l_prefix}/RPM/PKG/* >/dev/null 2>&1 || true
michael@428 3705 rm -rf %{l_prefix}/RPM/SRC/* >/dev/null 2>&1 || true
michael@428 3706 rm -rf %{l_prefix}/RPM/CACHE/* >/dev/null 2>&1 || true
michael@428 3707 rm -rf %{l_prefix}/RPM/TMP/* %{l_prefix}/RPM/TMP/.[a-z]* >/dev/null 2>&1 || true
michael@13 3708 rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true
michael@13 3709 rmdir %{l_prefix}/RPM/DB >/dev/null 2>&1 || true
michael@13 3710 rmdir %{l_prefix}/RPM >/dev/null 2>&1 || true
michael@13 3711 rmdir %{l_prefix} >/dev/null 2>&1 || true
michael@13 3712 ) </dev/null >/dev/null 2>/dev/null &
michael@13 3713

mercurial