openpkg/openpkg.spec

Wed, 01 Aug 2012 23:24:50 +0200

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 01 Aug 2012 23:24:50 +0200
changeset 431
127559aa0c5e
parent 428
f880f219c566
child 434
66c3db5d26f6
permissions
-rw-r--r--

Renumber patch hunks to avoid almost all patch(1) warnings.

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

mercurial