openpkg/openpkg.spec

Tue, 31 Jul 2012 12:23:42 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 31 Jul 2012 12:23:42 +0200
changeset 428
f880f219c566
parent 427
71503088f51b
child 429
b363f8ef6dcb
permissions
-rw-r--r--

Resynchronize with upstream package maintainer version.

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

mercurial