Fri, 27 Aug 2010 14:56:07 +0200
Update make, tar, patch, curl, uuid, zlib, gzip, and bzip2 to current versions.
michael@13 | 1 | ## |
michael@13 | 2 | ## openpkg.spec -- OpenPKG RPM Package Specification |
michael@13 | 3 | ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> |
michael@13 | 4 | ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> |
michael@13 | 5 | ## |
michael@13 | 6 | ## Permission to use, copy, modify, and distribute this software for |
michael@13 | 7 | ## any purpose with or without fee is hereby granted, provided that |
michael@13 | 8 | ## the above copyright notice and this permission notice appear in all |
michael@13 | 9 | ## copies. |
michael@13 | 10 | ## |
michael@13 | 11 | ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
michael@13 | 12 | ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
michael@13 | 13 | ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
michael@13 | 14 | ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
michael@13 | 15 | ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
michael@13 | 16 | ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
michael@13 | 17 | ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
michael@13 | 18 | ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
michael@13 | 19 | ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
michael@13 | 20 | ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
michael@13 | 21 | ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
michael@13 | 22 | ## SUCH DAMAGE. |
michael@13 | 23 | ## |
michael@13 | 24 | |
michael@13 | 25 | # NOTICE: This OpenPKG RPM specification is _very_ special, because |
michael@13 | 26 | # it is used both for bootstrapping OpenPKG with its OpenPKG RPM and |
michael@13 | 27 | # for regular builds of OpenPKG RPM in order to upgrade an existing |
michael@13 | 28 | # installation. For this it has to interact correctly with the |
michael@13 | 29 | # "openpkg.boot" script. See the documentation in the file "README" |
michael@13 | 30 | # and the source of the companion script "openpkg.boot" for details, |
michael@13 | 31 | # but do not touch anything here until you are 100% sure about what |
michael@13 | 32 | # you are doing. In short: This script is allowed to use only a very |
michael@13 | 33 | # restricted subset of the OpenPKG RPM functionality! |
michael@13 | 34 | |
michael@13 | 35 | # BUILD REQUIREMENTS: |
michael@13 | 36 | # o any sh(1) |
michael@13 | 37 | # o any tar(1) |
michael@13 | 38 | # o any make(1) |
michael@13 | 39 | # o any cc(1) |
michael@13 | 40 | |
michael@13 | 41 | # the package version/release |
michael@250 | 42 | %define V_openpkg 20100826 |
michael@13 | 43 | |
michael@13 | 44 | # the used software versions |
michael@13 | 45 | %define V_rpm 4.2.1 |
michael@250 | 46 | %define V_zlib 1.2.5 |
michael@250 | 47 | %define V_bzip2 1.0.5 |
michael@13 | 48 | %define V_beecrypt 4.1.2 |
michael@250 | 49 | %define V_curl 7.21.1 |
michael@250 | 50 | %define V_make 3.82 |
michael@250 | 51 | %define V_gzip 1.4 |
michael@13 | 52 | %define V_gzip_r 1.13 |
michael@250 | 53 | %define V_patch 2.6.1 |
michael@250 | 54 | %define V_tar 1.23 |
michael@13 | 55 | %define V_bash 3.2 |
michael@250 | 56 | %define V_uuid 1.6.2 |
michael@13 | 57 | %define V_config 20060923 |
michael@13 | 58 | %define V_registry 1.1.3 |
michael@13 | 59 | %define V_perl 5.10.0 |
michael@13 | 60 | %define V_openssl 0.9.8g |
michael@13 | 61 | %define V_tools 1.4.5 |
michael@13 | 62 | %define V_exec 2.0.1-C |
michael@13 | 63 | |
michael@13 | 64 | # package information |
michael@13 | 65 | Name: openpkg |
michael@13 | 66 | Summary: OpenPKG Bootstrap |
michael@13 | 67 | URL: http://www.openpkg.org/ |
michael@13 | 68 | Vendor: OpenPKG |
michael@13 | 69 | Packager: OpenPKG Foundation e.V. |
michael@13 | 70 | Distribution: OpenPKG Community |
michael@13 | 71 | Class: CORE |
michael@13 | 72 | Group: Bootstrapping |
michael@13 | 73 | License: MIT/BSD/LGPL/GPL |
michael@13 | 74 | Version: %{V_openpkg} |
michael@13 | 75 | Release: %{V_openpkg} |
michael@13 | 76 | |
michael@13 | 77 | # list of sources |
michael@250 | 78 | Source0: ftp://ftp.gnu.org/gnu/patch/patch-%{V_patch}.tar.gz |
michael@13 | 79 | Source1: ftp://ftp.cwru.edu/pub/bash/bash-%{V_bash}.tar.gz |
michael@13 | 80 | Source2: ftp://ftp.gnu.org/gnu/make/make-%{V_make}.tar.gz |
michael@13 | 81 | Source3: ftp://ftp.gnu.org/gnu/tar/tar-%{V_tar}.tar.gz |
michael@13 | 82 | Source4: ftp://ftp.openpkg.org/sources/CPY/config/config-%{V_config}.tar.gz |
michael@13 | 83 | Source5: ftp://ftp.openpkg.org/sources/CPY/openpkg-registry/openpkg-registry-%{V_registry}.tar.gz |
michael@13 | 84 | Source6: ftp://ftp.openpkg.org/sources/CPY/openpkg-tools/openpkg-tools-%{V_tools}.tar.gz |
michael@13 | 85 | Source7: ftp://ftp.openpkg.org/sources/CPY/openpkg/gzip-%{V_gzip}-openpkg-r%{V_gzip_r}.tar |
michael@13 | 86 | Source8: ftp://ftp.openpkg.org/sources/CPY/openpkg/gzip-%{V_gzip}.tar |
michael@250 | 87 | Source8: ftp://ftp.gnu.org/gnu/gzip/gzip-%{V_gzip}.tar |
michael@13 | 88 | Source9: ftp://ftp.openpkg.org/sources/CPY/openpkg/openpkg-executable-%{V_exec}.tar.gz |
michael@13 | 89 | Source10: ftp://ftp.openpkg.org/sources/CPY/openpkg/rpm-%{V_rpm}.tar.gz |
michael@13 | 90 | Source11: ftp://ftp.openpkg.org/sources/CPY/perl/perl-%{V_perl}-mini.tar.gz |
michael@13 | 91 | Source12: ftp://ftp.openssl.org/source/openssl-%{V_openssl}.tar.gz |
michael@13 | 92 | Source13: ftp://ftp.ossp.org/pkg/lib/uuid/uuid-%{V_uuid}.tar.gz |
michael@13 | 93 | Source14: http://curl.haxx.se/download/curl-%{V_curl}.tar.gz |
michael@13 | 94 | Source15: http://switch.dl.sourceforge.net/beecrypt/beecrypt-%{V_beecrypt}.tar.gz |
michael@13 | 95 | Source16: http://www.bzip.org/%{V_bzip2}/bzip2-%{V_bzip2}.tar.gz |
michael@13 | 96 | Source17: http://www.zlib.net/zlib-%{V_zlib}.tar.gz |
michael@13 | 97 | Source100: bash.patch |
michael@13 | 98 | Source101: beecrypt.patch |
michael@13 | 99 | Source102: make.patch |
michael@13 | 100 | Source103: openssl.patch |
michael@13 | 101 | Source104: perl.patch |
michael@13 | 102 | Source105: tar.patch |
michael@13 | 103 | Source106: rpm.patch.bugfix |
michael@13 | 104 | Source107: rpm.patch.feature |
michael@13 | 105 | Source108: rpm.patch.porting |
michael@13 | 106 | Source109: rpm.patch.regen |
michael@13 | 107 | Source200: HISTORY |
michael@13 | 108 | Source201: README |
michael@13 | 109 | Source202: aux.prereq.sh |
michael@13 | 110 | Source203: aux.usrgrp.sh |
michael@13 | 111 | Source204: aux.wrapbin.sh |
michael@13 | 112 | Source205: aux.wrapsrc.sh |
michael@13 | 113 | Source206: dot.bash_login |
michael@13 | 114 | Source207: dot.bashrc |
michael@13 | 115 | Source208: dot.lsyncrc |
michael@13 | 116 | Source209: install.sh |
michael@13 | 117 | Source210: local.README |
michael@13 | 118 | Source211: lsync |
michael@13 | 119 | Source212: lsync.8 |
michael@13 | 120 | Source213: lsync.pod |
michael@13 | 121 | Source214: man.sh |
michael@13 | 122 | Source215: openpkg.1 |
michael@13 | 123 | Source216: openpkg.boot |
michael@13 | 124 | Source217: openpkg.com.pgp |
michael@13 | 125 | Source218: openpkg.net.pgp |
michael@13 | 126 | Source219: openpkg.org.pgp |
michael@13 | 127 | Source220: openpkg.pod |
michael@13 | 128 | Source221: openpkg.sh |
michael@13 | 129 | Source222: pod2man.sh |
michael@13 | 130 | Source223: rc |
michael@13 | 131 | Source224: rc.8 |
michael@13 | 132 | Source225: rc.conf |
michael@13 | 133 | Source226: rc.func |
michael@13 | 134 | Source227: rc.openpkg |
michael@13 | 135 | Source228: rc.pod |
michael@13 | 136 | Source229: release.8 |
michael@13 | 137 | Source230: release.pod |
michael@13 | 138 | Source231: release.sh |
michael@13 | 139 | Source232: root.README |
michael@13 | 140 | Source233: rpm-config.8 |
michael@13 | 141 | Source234: rpm-config.pod |
michael@13 | 142 | Source235: rpm-config.sh |
michael@13 | 143 | Source236: rpmdb |
michael@13 | 144 | Source237: rpmtool |
michael@13 | 145 | Source238: rpmtool.8 |
michael@13 | 146 | Source239: rpmtool.pod |
michael@13 | 147 | Source240: shtool |
michael@13 | 148 | Source241: uuid.8 |
michael@13 | 149 | Source242: uuid.pod |
michael@13 | 150 | Source243: uuid.sh |
michael@13 | 151 | Source244: rpmmacros |
michael@13 | 152 | Source245: rpmpopt |
michael@13 | 153 | Source246: rpmrc |
michael@13 | 154 | |
michael@13 | 155 | # build information |
michael@13 | 156 | Prefix: %{l_prefix} |
michael@13 | 157 | BuildRoot: %{l_buildroot} |
michael@13 | 158 | AutoReq: no |
michael@13 | 159 | AutoReqProv: no |
michael@13 | 160 | Provides: OpenPKG |
michael@13 | 161 | |
michael@13 | 162 | %description |
michael@13 | 163 | This is the bootstrap package for the RPM-based Unix Software |
michael@13 | 164 | Package Hierarchy OpenPKG. The RPM Package Manager (RPM) is a |
michael@13 | 165 | sophisticated and portable package manager for Unix platforms, |
michael@13 | 166 | which supports automated building, installation, management and |
michael@13 | 167 | deinstallation of Unix software. RPM was originally designed and |
michael@13 | 168 | implemented for the RedHat Linux operating system where it manages |
michael@13 | 169 | every file on the whole system. OpenPKG uses RPM only for managing |
michael@13 | 170 | the files in a particular filesystem hierarchy dedicated to the |
michael@13 | 171 | installation of third-party software packages provided by the |
michael@13 | 172 | OpenPKG project. |
michael@13 | 173 | |
michael@13 | 174 | The OpenPKG bootstrap package includes the following software: |
michael@13 | 175 | RPM %{V_rpm}, ZLib %{V_zlib}, GNU Bzip2 %{V_bzip2}, |
michael@13 | 176 | GNU Gzip %{V_gzip}, GNU Tar %{V_tar}, GNU Patch %{V_patch}, |
michael@13 | 177 | GNU Make %{V_make}, GNU Bash %{V_bash}, cURL %{V_curl}, |
michael@13 | 178 | OSSP uuid %{V_uuid}, BeeCrypt %{V_beecrypt}, |
michael@13 | 179 | OpenSSL %{V_openssl}, Perl %{V_perl} |
michael@13 | 180 | |
michael@13 | 181 | %track |
michael@13 | 182 | prog openpkg:bash = { |
michael@13 | 183 | version = %{V_bash} |
michael@13 | 184 | url = ftp://ftp.cwru.edu/pub/bash/ |
michael@13 | 185 | regex = bash-(__VER__)\.tar\.gz |
michael@13 | 186 | } |
michael@13 | 187 | prog openpkg:bzip2 = { |
michael@13 | 188 | version = %{V_bzip2} |
michael@13 | 189 | url = http://www.bzip.org/downloads.html |
michael@13 | 190 | regex = bzip2-(__VER__)\.tar\.gz |
michael@13 | 191 | } |
michael@13 | 192 | prog openpkg:curl = { |
michael@13 | 193 | version = %{V_curl} |
michael@13 | 194 | url = http://curl.haxx.se/download/ |
michael@13 | 195 | regex = curl-(__VER__)\.tar\.gz |
michael@13 | 196 | } |
michael@13 | 197 | prog openpkg:gzip = { |
michael@13 | 198 | comment = "rse: intentionally tracked at gnu.org, although fetched from openpkg.org because of uncompression" |
michael@13 | 199 | version = %{V_gzip} |
michael@13 | 200 | url = ftp://ftp.gnu.org/gnu/gzip/ |
michael@13 | 201 | regex = gzip-(__VER__)\.tar(\.gz)? |
michael@13 | 202 | } |
michael@13 | 203 | prog openpkg:gzip_r = { |
michael@13 | 204 | version = %{V_gzip_r} |
michael@13 | 205 | url = ftp://ftp.openpkg.org/sources/CPY/openpkg/ |
michael@13 | 206 | regex = gzip-%{V_gzip}-openpkg-r(__VER__)\.tar |
michael@13 | 207 | } |
michael@13 | 208 | prog openpkg:make = { |
michael@13 | 209 | version = %{V_make} |
michael@13 | 210 | url = ftp://ftp.gnu.org/gnu/make/ |
michael@13 | 211 | regex = make-(__VER__)\.tar\.gz |
michael@13 | 212 | } |
michael@13 | 213 | prog openpkg:patch = { |
michael@13 | 214 | disabled |
michael@13 | 215 | comment = "rse: directory missing after GNU.org security issues" |
michael@13 | 216 | version = %{V_patch} |
michael@13 | 217 | url = ftp://alpha.gnu.org/gnu/patch/ |
michael@13 | 218 | regex = patch-(__VER__)\.tar\.gz |
michael@13 | 219 | } |
michael@13 | 220 | prog openpkg:rpm = { |
michael@13 | 221 | disabled |
michael@13 | 222 | comment = "rse: we have a .src.rpm extracted .tar.gz, because there is still no tarball for 4.2.1" |
michael@13 | 223 | version = %{V_rpm} |
michael@13 | 224 | url = ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.2.x/ |
michael@13 | 225 | regex = rpm-(4\.2\.\d+)\.tar\.gz |
michael@13 | 226 | } |
michael@13 | 227 | prog openpkg:tar = { |
michael@13 | 228 | version = %{V_tar} |
michael@13 | 229 | url = ftp://ftp.gnu.org/gnu/tar/ |
michael@13 | 230 | regex = tar-(__VER__)\.tar\.gz |
michael@13 | 231 | } |
michael@13 | 232 | prog openpkg:zlib = { |
michael@13 | 233 | version = %{V_zlib} |
michael@13 | 234 | url = http://www.zlib.net/ |
michael@13 | 235 | regex = zlib-(__VER__)\.tar\.gz |
michael@13 | 236 | } |
michael@13 | 237 | prog openpkg:uuid = { |
michael@13 | 238 | version = %{V_uuid} |
michael@13 | 239 | url = ftp://ftp.ossp.org/pkg/lib/uuid/ |
michael@13 | 240 | regex = uuid-(__VER__)\.tar\.gz |
michael@13 | 241 | } |
michael@13 | 242 | prog openpkg:config = { |
michael@13 | 243 | version = %{V_config} |
michael@13 | 244 | url = ftp://ftp.openpkg.org/sources/CPY/config/ |
michael@13 | 245 | regex = config-(__VER__)\.tar\.gz |
michael@13 | 246 | } |
michael@13 | 247 | prog openpkg:beecrypt = { |
michael@13 | 248 | version = %{V_beecrypt} |
michael@13 | 249 | url = http://prdownloads.sourceforge.net/beecrypt/ |
michael@13 | 250 | regex = beecrypt-(__VER__)\.tar\.gz |
michael@13 | 251 | } |
michael@13 | 252 | prog openpkg:registry = { |
michael@13 | 253 | version = %{V_registry} |
michael@13 | 254 | url = ftp://ftp.openpkg.org/sources/CPY/openpkg-registry/ |
michael@13 | 255 | regex = openpkg-registry-(__VER__)\.tar\.gz |
michael@13 | 256 | } |
michael@13 | 257 | prog openpkg:perl = { |
michael@13 | 258 | version = %{V_perl} |
michael@13 | 259 | url = ftp://ftp.openpkg.org/sources/CPY/perl/ |
michael@13 | 260 | regex = perl-(__VER__)-mini\.tar\.gz |
michael@13 | 261 | } |
michael@13 | 262 | prog openpkg:openssl = { |
michael@13 | 263 | version = %{V_openssl} |
michael@13 | 264 | url = ftp://ftp.openssl.org/source/ |
michael@13 | 265 | regex = openssl-(\d+\.\d+\.\d+[a-z]?)\.tar\.gz |
michael@13 | 266 | } |
michael@13 | 267 | prog openpkg:openpkg-tools = { |
michael@13 | 268 | version = %{V_tools} |
michael@13 | 269 | url = ftp://ftp.openpkg.org/sources/CPY/openpkg-tools/ |
michael@13 | 270 | regex = openpkg-tools-(__VER__)\.tar\.gz |
michael@13 | 271 | } |
michael@13 | 272 | prog openpkg:openpkg-executable = { |
michael@13 | 273 | version = %{V_exec} |
michael@13 | 274 | url = ftp://ftp.openpkg.org/sources/CPY/openpkg/ |
michael@13 | 275 | regex = openpkg-executable-(__VER__-C)\.tar\.gz |
michael@13 | 276 | } |
michael@13 | 277 | |
michael@13 | 278 | %prep |
michael@13 | 279 | # skip in bootstrap phase 2 (see openpkg.boot) |
michael@13 | 280 | [ ".$OPENPKG_BOOT" = .1 ] && exit 0 |
michael@13 | 281 | |
michael@13 | 282 | # switch into a temporary build area |
michael@13 | 283 | rm -rf openpkg-%{version} |
michael@13 | 284 | mkdir openpkg-%{version} |
michael@13 | 285 | cd openpkg-%{version} |
michael@13 | 286 | rm -f .buildenv |
michael@13 | 287 | touch .buildenv |
michael@13 | 288 | |
michael@13 | 289 | # provide a bootstrap alternative to %{SOURCE xxx} because else |
michael@13 | 290 | # it is not possible to upgrade a newer OpenPKG RPM with an older |
michael@13 | 291 | # OpenPKG RPM. |
michael@13 | 292 | echo >>.buildenv 'SOURCE () {' |
michael@13 | 293 | echo >>.buildenv ' if [ -f "%{_specdir}/$1" ]; then' |
michael@13 | 294 | echo >>.buildenv ' echo "%{_specdir}/$1"' |
michael@13 | 295 | echo >>.buildenv ' else' |
michael@13 | 296 | echo >>.buildenv ' echo "%{_sourcedir}/$1"' |
michael@13 | 297 | echo >>.buildenv ' fi' |
michael@13 | 298 | echo >>.buildenv '}' |
michael@13 | 299 | echo >>.buildenv 'VERBOSE () {' |
michael@13 | 300 | echo >>.buildenv ' if [ -f "%{_specdir}/rpmtool" ]; then' |
michael@13 | 301 | echo >>.buildenv ' echo "$*" | sh %{_specdir}/rpmtool msg' |
michael@13 | 302 | echo >>.buildenv ' else' |
michael@13 | 303 | echo >>.buildenv ' echo "$*" | sh %{_sourcedir}/rpmtool msg' |
michael@13 | 304 | echo >>.buildenv ' fi' |
michael@13 | 305 | echo >>.buildenv '}' |
michael@13 | 306 | . ./.buildenv |
michael@13 | 307 | |
michael@13 | 308 | # display verbosity header |
michael@13 | 309 | set +x; VERBOSE "PREPARATION: Determine Build Tool Paths"; set -x |
michael@13 | 310 | |
michael@13 | 311 | # determine path to shtool |
michael@13 | 312 | shtool=`SOURCE shtool` |
michael@13 | 313 | echo "shtool=$shtool" >>./.buildenv |
michael@13 | 314 | |
michael@13 | 315 | # determine development tools |
michael@13 | 316 | # - bootstrapping: %{l_xxx} is set via sed(1) |
michael@13 | 317 | # - upgrading new: %{l_xxx} is set via rpmmacros |
michael@13 | 318 | # - upgrading old: %{l_xxx} is not set at all |
michael@13 | 319 | |
michael@13 | 320 | # manually make sure tar(1) is available |
michael@13 | 321 | l_tar=""; export l_tar |
michael@13 | 322 | [ ".%{?l_tar:set}" = .set ] && l_tar="%{l_tar}" |
michael@13 | 323 | [ ".%{?use_tar:set}" = .set ] && l_tar="%{use_tar}" |
michael@13 | 324 | if [ ".$l_tar" = . ]; then |
michael@13 | 325 | l_tar=`sh $shtool path gtar tar` |
michael@13 | 326 | if [ ".$l_tar" = . ]; then |
michael@13 | 327 | echo "openpkg: prerequisite tool \`gtar' or \`tar' not found" |
michael@13 | 328 | exit 1 |
michael@13 | 329 | fi |
michael@13 | 330 | fi |
michael@13 | 331 | echo "l_tar=\"$l_tar\"; export l_tar" >>.buildenv |
michael@13 | 332 | |
michael@13 | 333 | # manually make sure make(1) is available |
michael@13 | 334 | l_make=""; export l_make |
michael@13 | 335 | [ ".%{?l_make:set}" = .set ] && l_make="%{l_make}" |
michael@13 | 336 | [ ".%{?use_make:set}" = .set ] && l_make="%{use_make}" |
michael@13 | 337 | if [ ".$l_make" = . ]; then |
michael@13 | 338 | l_make=`sh $shtool path gmake make` |
michael@13 | 339 | if [ ".$l_make" = . ]; then |
michael@13 | 340 | echo "openpkg: prerequisite tool \`gmake' or \`make' not found" |
michael@13 | 341 | exit 1 |
michael@13 | 342 | fi |
michael@13 | 343 | fi |
michael@13 | 344 | echo "l_make=\"$l_make\"; export l_make" >>.buildenv |
michael@13 | 345 | |
michael@13 | 346 | # manually make sure cc(1) is available |
michael@13 | 347 | l_cc=""; export l_cc |
michael@13 | 348 | [ ".%{?l_cc:set}" = .set ] && l_cc="%{l_cc}" |
michael@13 | 349 | [ ".%{?use_cc:set}" = .set ] && l_cc="%{use_cc}" |
michael@13 | 350 | if [ ".$l_cc" = . ]; then |
michael@13 | 351 | l_cc=`sh $shtool path gcc cc` |
michael@13 | 352 | if [ ".$l_cc" = . ]; then |
michael@13 | 353 | echo "openpkg: prerequisite tool \`gcc' or \`cc' not found" |
michael@13 | 354 | exit 1 |
michael@13 | 355 | fi |
michael@13 | 356 | fi |
michael@13 | 357 | echo "l_cc=\"$l_cc\"; export l_cc" >>.buildenv |
michael@13 | 358 | |
michael@13 | 359 | # manually make sure ar(1) is available |
michael@13 | 360 | l_ar=""; export l_ar |
michael@13 | 361 | [ ".%{?l_ar:set}" = .set ] && l_ar="%{l_ar}" |
michael@13 | 362 | [ ".%{?use_ar:set}" = .set ] && l_ar="%{use_ar}" |
michael@13 | 363 | if [ ".$l_ar" = . ]; then |
michael@13 | 364 | l_ar=`sh $shtool path ar` |
michael@13 | 365 | if [ ".$l_ar" = . ]; then |
michael@13 | 366 | echo "openpkg: prerequisite tool \`ar' not found" |
michael@13 | 367 | exit 1 |
michael@13 | 368 | fi |
michael@13 | 369 | fi |
michael@13 | 370 | echo "l_ar=\"$l_ar\"; export l_ar" >>.buildenv |
michael@13 | 371 | |
michael@13 | 372 | # manually make sure ld(1) is available |
michael@13 | 373 | l_ld=""; export l_ld |
michael@13 | 374 | [ ".%{?l_ld:set}" = .set ] && l_ld="%{l_ld}" |
michael@13 | 375 | [ ".%{?use_ld:set}" = .set ] && l_ld="%{use_ld}" |
michael@13 | 376 | if [ ".$l_ld" = . ]; then |
michael@13 | 377 | l_ld=`sh $shtool path ld` |
michael@13 | 378 | if [ ".$l_ld" = . ]; then |
michael@13 | 379 | echo "openpkg: prerequisite tool \`ld' not found" |
michael@13 | 380 | exit 1 |
michael@13 | 381 | fi |
michael@13 | 382 | fi |
michael@13 | 383 | echo "l_ld=\"$l_ld\"; export l_ld" >>.buildenv |
michael@13 | 384 | |
michael@13 | 385 | # manually make sure as(1) is available |
michael@13 | 386 | l_as=""; export l_as |
michael@13 | 387 | [ ".%{?l_as:set}" = .set ] && l_as="%{l_as}" |
michael@13 | 388 | [ ".%{?use_as:set}" = .set ] && l_as="%{use_as}" |
michael@13 | 389 | if [ ".$l_as" = . ]; then |
michael@13 | 390 | l_as=`sh $shtool path as` |
michael@13 | 391 | if [ ".$l_as" = . ]; then |
michael@13 | 392 | echo "openpkg: prerequisite tool \`as' not found" |
michael@13 | 393 | exit 1 |
michael@13 | 394 | fi |
michael@13 | 395 | fi |
michael@13 | 396 | echo "l_as=\"$l_as\"; export l_as" >>.buildenv |
michael@13 | 397 | |
michael@13 | 398 | # manually make sure strip(1) is available or use a null replacement |
michael@13 | 399 | l_strip=""; export l_strip |
michael@13 | 400 | [ ".%{?l_strip:set}" = .set ] && l_strip="%{l_strip}" |
michael@13 | 401 | [ ".%{?use_strip:set}" = .set ] && l_strip="%{use_strip}" |
michael@13 | 402 | if [ ".$l_strip" = . ]; then |
michael@13 | 403 | l_strip=`sh $shtool path strip ls` |
michael@13 | 404 | if [ ".$l_strip" = . ]; then |
michael@13 | 405 | echo "openpkg: prerequisite tool \`strip' not found" |
michael@13 | 406 | exit 1 |
michael@13 | 407 | fi |
michael@13 | 408 | fi |
michael@13 | 409 | echo "l_strip=\"$l_strip\"; export l_strip" >>.buildenv |
michael@13 | 410 | |
michael@13 | 411 | # determine path to aux.usrgrp.sh script |
michael@13 | 412 | usrgrp=`SOURCE aux.usrgrp.sh` |
michael@13 | 413 | echo "usrgrp=$usrgrp; export usrgrp" >>./.buildenv |
michael@13 | 414 | |
michael@13 | 415 | # display verbosity header |
michael@13 | 416 | set +x; VERBOSE "PREPARATION: Determine OpenPKG User/Group Name/Id Pairs"; set -x |
michael@13 | 417 | |
michael@13 | 418 | # determine user/group name/id pairs |
michael@13 | 419 | # - bootstrapping: %{l_[smrn]{usr,grp}} is set via sed(1) |
michael@13 | 420 | # - upgrading new: %{l_[smrn]{usr,grp}} is set via rpmmacros |
michael@13 | 421 | # - upgrading old: %{l_[smrn]{usr,grp}} is not set at all |
michael@13 | 422 | susr=""; [ ".%{?l_susr:set}" = .set ] && susr="%{l_susr}" |
michael@13 | 423 | sgrp=""; [ ".%{?l_sgrp:set}" = .set ] && sgrp="%{l_sgrp}" |
michael@13 | 424 | musr=""; [ ".%{?l_musr:set}" = .set ] && musr="%{l_musr}" |
michael@13 | 425 | mgrp=""; [ ".%{?l_mgrp:set}" = .set ] && mgrp="%{l_mgrp}" |
michael@13 | 426 | rusr=""; [ ".%{?l_rusr:set}" = .set ] && rusr="%{l_rusr}" |
michael@13 | 427 | rgrp=""; [ ".%{?l_rgrp:set}" = .set ] && rgrp="%{l_rgrp}" |
michael@13 | 428 | nusr=""; [ ".%{?l_nusr:set}" = .set ] && nusr="%{l_nusr}" |
michael@13 | 429 | ngrp=""; [ ".%{?l_ngrp:set}" = .set ] && ngrp="%{l_ngrp}" |
michael@13 | 430 | # corresponding ids |
michael@13 | 431 | suid=""; [ ".%{?l_suid:set}" = .set ] && suid="%{l_suid}" |
michael@13 | 432 | sgid=""; [ ".%{?l_sgid:set}" = .set ] && sgid="%{l_sgid}" |
michael@13 | 433 | muid=""; [ ".%{?l_muid:set}" = .set ] && muid="%{l_muid}" |
michael@13 | 434 | mgid=""; [ ".%{?l_mgid:set}" = .set ] && mgid="%{l_mgid}" |
michael@13 | 435 | ruid=""; [ ".%{?l_ruid:set}" = .set ] && ruid="%{l_ruid}" |
michael@13 | 436 | rgid=""; [ ".%{?l_rgid:set}" = .set ] && rgid="%{l_rgid}" |
michael@13 | 437 | nuid=""; [ ".%{?l_nuid:set}" = .set ] && nuid="%{l_nuid}" |
michael@13 | 438 | ngid=""; [ ".%{?l_ngid:set}" = .set ] && ngid="%{l_ngid}" |
michael@13 | 439 | # compat: |
michael@13 | 440 | usr=""; [ ".%{?l_fsusr:set}" = .set ] && usr="%{l_fsusr}" |
michael@13 | 441 | grp=""; [ ".%{?l_fsgrp:set}" = .set ] && grp="%{l_fsgrp}" |
michael@13 | 442 | eval `sh $usrgrp \ |
michael@13 | 443 | --usr="$usr" --grp="$grp" \ |
michael@13 | 444 | --susr="$susr" --sgrp="$sgrp" \ |
michael@13 | 445 | --musr="$musr" --mgrp="$mgrp" \ |
michael@13 | 446 | --rusr="$rusr" --rgrp="$rgrp" \ |
michael@13 | 447 | --nusr="$nusr" --ngrp="$ngrp" \ |
michael@13 | 448 | --suid="$suid" --sgid="$sgid" \ |
michael@13 | 449 | --muid="$muid" --mgid="$mgid" \ |
michael@13 | 450 | --ruid="$ruid" --rgid="$rgid" \ |
michael@13 | 451 | --nuid="$nuid" --ngid="$ngid"` |
michael@13 | 452 | echo "susr=\"$susr\"; export susr" >>.buildenv |
michael@13 | 453 | echo "sgrp=\"$sgrp\"; export sgrp" >>.buildenv |
michael@13 | 454 | echo "musr=\"$musr\"; export musr" >>.buildenv |
michael@13 | 455 | echo "mgrp=\"$mgrp\"; export mgrp" >>.buildenv |
michael@13 | 456 | echo "rusr=\"$rusr\"; export rusr" >>.buildenv |
michael@13 | 457 | echo "rgrp=\"$rgrp\"; export rgrp" >>.buildenv |
michael@13 | 458 | echo "nusr=\"$nusr\"; export nusr" >>.buildenv |
michael@13 | 459 | echo "ngrp=\"$ngrp\"; export ngrp" >>.buildenv |
michael@13 | 460 | echo "suid=\"$suid\"; export suid" >>.buildenv |
michael@13 | 461 | echo "sgid=\"$sgid\"; export sgid" >>.buildenv |
michael@13 | 462 | echo "muid=\"$muid\"; export muid" >>.buildenv |
michael@13 | 463 | echo "mgid=\"$mgid\"; export mgid" >>.buildenv |
michael@13 | 464 | echo "ruid=\"$ruid\"; export ruid" >>.buildenv |
michael@13 | 465 | echo "rgid=\"$rgid\"; export rgid" >>.buildenv |
michael@13 | 466 | echo "nuid=\"$nuid\"; export nuid" >>.buildenv |
michael@13 | 467 | echo "ngid=\"$ngid\"; export ngid" >>.buildenv |
michael@13 | 468 | |
michael@13 | 469 | # display verbosity header |
michael@13 | 470 | set +x; VERBOSE "PREPARATION: Determine OpenPKG Instance Environment"; set -x |
michael@13 | 471 | |
michael@13 | 472 | # determine installation location id |
michael@13 | 473 | if [ ".%{?l_tag_fmt:set}" = .set ]; then |
michael@13 | 474 | tag="%{l_tag_fmt}" |
michael@13 | 475 | else |
michael@13 | 476 | tag="<compat>" |
michael@13 | 477 | fi |
michael@13 | 478 | echo "tag=\"$tag\"; export tag" >>.buildenv |
michael@13 | 479 | |
michael@13 | 480 | # determine platform id |
michael@13 | 481 | s=`(uname -s) 2>/dev/null` || s='Unknown' |
michael@13 | 482 | r=`(uname -r) 2>/dev/null` || r='0.0' |
michael@13 | 483 | plid="${s}/${r}" |
michael@13 | 484 | echo "plid=\"$plid\"; export plid" >>.buildenv |
michael@13 | 485 | |
michael@13 | 486 | # determine platform-specific build environment |
michael@13 | 487 | case $plid in |
michael@13 | 488 | FreeBSD/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 489 | NetBSD/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 490 | Linux/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 491 | SunOS/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;; |
michael@13 | 492 | UnixWare/*) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;; |
michael@13 | 493 | AIX/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin" ;; |
michael@13 | 494 | Darwin/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 495 | OSF1/V5.* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 496 | HP-UX/* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 497 | IRIX*/6.* ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 498 | * ) l_build_path="/bin:/sbin:/usr/bin:/usr/sbin" ;; |
michael@13 | 499 | esac |
michael@13 | 500 | case $plid in |
michael@13 | 501 | FreeBSD/* ) l_build_ldlp="/lib:/usr/lib" ;; |
michael@13 | 502 | NetBSD/* ) l_build_ldlp="/lib:/usr/lib" ;; |
michael@13 | 503 | Linux/* ) l_build_ldlp="/lib:/usr/lib" ;; |
michael@13 | 504 | SunOS/* ) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;; |
michael@13 | 505 | UnixWare/*) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;; |
michael@13 | 506 | AIX/* ) l_build_ldlp="/usr/lib:/usr/ccs/lib" ;; |
michael@13 | 507 | Darwin/* ) l_build_ldlp="/usr/lib" ;; |
michael@13 | 508 | OSF1/V5.* ) l_build_ldlp="/usr/lib" ;; |
michael@13 | 509 | HP-UX/* ) l_build_ldlp="/usr/lib" ;; |
michael@13 | 510 | IRIX*/6.* ) l_build_ldlp="/usr/lib" ;; |
michael@13 | 511 | * ) l_build_ldlp="/usr/lib" ;; |
michael@13 | 512 | esac |
michael@13 | 513 | case $plid in |
michael@13 | 514 | * ) l_build_ulim=":" ;; |
michael@13 | 515 | esac |
michael@13 | 516 | echo "l_build_path=\"$l_build_path\"; export l_build_path" >>.buildenv |
michael@13 | 517 | echo "l_build_ldlp=\"$l_build_ldlp\"; export l_build_ldlp" >>.buildenv |
michael@13 | 518 | echo "l_build_ulim=\"$l_build_ulim\"; export l_build_ulim" >>.buildenv |
michael@13 | 519 | |
michael@13 | 520 | # display verbosity header |
michael@13 | 521 | set +x; VERBOSE "PREPARATION: Build GNU gzip (Compression Tool)"; set -x |
michael@13 | 522 | |
michael@13 | 523 | # bootstrap GNU zip tool |
michael@13 | 524 | ${l_tar} xf `SOURCE gzip-%{V_gzip}.tar` 2>/dev/null || true |
michael@13 | 525 | ${l_tar} xf `SOURCE gzip-%{V_gzip}-openpkg-r%{V_gzip_r}.tar` 2>/dev/null || true |
michael@13 | 526 | ( cd gzip-%{V_gzip} |
michael@13 | 527 | echo "ac_cv_prog_cc_g=no" >config.cache |
michael@13 | 528 | case $plid in |
michael@13 | 529 | Darwin/* ) echo "gzip_cv_assembler=no" >>config.cache ;; |
michael@13 | 530 | esac |
michael@13 | 531 | CC="${l_cc}" \ |
michael@13 | 532 | GREP="grep" \ |
michael@13 | 533 | ./configure \ |
michael@13 | 534 | --cache-file=./config.cache |
michael@13 | 535 | ${l_make} || exit $? |
michael@13 | 536 | ( mv gzip ..; ${l_make} clean || true; mv ../gzip . ) || exit $? |
michael@13 | 537 | ) || exit $? |
michael@13 | 538 | l_gzip="`pwd`/gzip-%{V_gzip}/gzip"; export l_gzip |
michael@13 | 539 | echo "l_gzip=\"$l_gzip\"; export l_gzip" >>.buildenv |
michael@13 | 540 | |
michael@13 | 541 | # display verbosity header |
michael@13 | 542 | set +x; VERBOSE "PREPARATION: Unpack GNU configuration guessing utilities"; set -x |
michael@13 | 543 | |
michael@13 | 544 | # unpack GNU config.guess |
michael@13 | 545 | ${l_gzip} -dc `SOURCE config-%{V_config}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 546 | |
michael@13 | 547 | # display verbosity header |
michael@13 | 548 | set +x; VERBOSE "PREPARATION: Build GNU patch (Source Patching Tool)"; set -x |
michael@13 | 549 | |
michael@13 | 550 | # bootstrap GNU patch tool |
michael@13 | 551 | ${l_gzip} -dc `SOURCE patch-%{V_patch}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 552 | ( cd patch-%{V_patch} |
michael@13 | 553 | chmod u+w config.guess config.sub >/dev/null 2>&1 || true |
michael@13 | 554 | cp ../config/config.guess . |
michael@13 | 555 | cp ../config/config.sub . |
michael@13 | 556 | ( echo 'ac_cv_func_setmode=${ac_cv_func_setmode=no}' |
michael@13 | 557 | echo 'ac_cv_prog_cc_g=no' |
michael@13 | 558 | false=`sh $shtool path false` |
michael@13 | 559 | echo "ac_cv_path_ed_PROGRAM=\${ac_cv_path_ed_PROGRAM=$false}" |
michael@13 | 560 | ) >config.cache |
michael@13 | 561 | CC="${l_cc}" \ |
michael@13 | 562 | ./configure \ |
michael@13 | 563 | --cache-file=./config.cache \ |
michael@13 | 564 | --disable-largefile |
michael@13 | 565 | ${l_make} || exit $? |
michael@250 | 566 | ( mv src/patch ..; ${l_make} clean || true; mv ../patch . ) || exit $? |
michael@13 | 567 | ) || exit $? |
michael@13 | 568 | l_patch="`pwd`/patch-%{V_patch}/patch"; export l_patch |
michael@13 | 569 | echo "l_patch=\"$l_patch\"; export l_patch" >>.buildenv |
michael@13 | 570 | |
michael@13 | 571 | # display verbosity header |
michael@13 | 572 | set +x; VERBOSE "BUILD: Build GNU tar (Archiving Tool)"; set -x |
michael@13 | 573 | |
michael@13 | 574 | # build GNU tar tool |
michael@13 | 575 | ${l_gzip} -dc `SOURCE tar-%{V_tar}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 576 | ( cd tar-%{V_tar} |
michael@13 | 577 | ${l_patch} -p0 <`SOURCE tar.patch` |
michael@13 | 578 | ( echo 'am_cv_func_iconv=no' |
michael@13 | 579 | echo 'am_cv_lib_iconv=no' |
michael@13 | 580 | echo 'ac_cv_lib_iconv_iconv=no' |
michael@13 | 581 | echo 'ac_cv_header_iconv_h=no' |
michael@13 | 582 | echo 'ac_cv_type_iconv_t=no' |
michael@13 | 583 | ) >config.cache |
michael@13 | 584 | CC="${l_cc}" \ |
michael@13 | 585 | MAKEINFO="true" \ |
michael@13 | 586 | GREP="grep" \ |
michael@13 | 587 | ./configure \ |
michael@13 | 588 | --cache-file=./config.cache \ |
michael@13 | 589 | --prefix=%{l_prefix} \ |
michael@13 | 590 | --disable-nls |
michael@13 | 591 | ${l_make} || exit $? |
michael@13 | 592 | ( mv src/tar ..; ${l_make} clean || true; mv ../tar . ) || exit $? |
michael@13 | 593 | ) || exit $? |
michael@13 | 594 | l_tar="`pwd`/tar-%{V_tar}/tar"; export l_tar |
michael@13 | 595 | echo "l_tar=\"$l_tar\"; export l_tar" >>.buildenv |
michael@13 | 596 | |
michael@13 | 597 | # display verbosity header |
michael@13 | 598 | set +x; VERBOSE "PREPARATION: Unpack Distribution Tarballs"; set -x |
michael@13 | 599 | |
michael@13 | 600 | # unpack distribution tarballs |
michael@13 | 601 | ${l_gzip} -dc `SOURCE rpm-%{V_rpm}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 602 | ${l_gzip} -dc `SOURCE zlib-%{V_zlib}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 603 | ${l_gzip} -dc `SOURCE bzip2-%{V_bzip2}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 604 | ${l_gzip} -dc `SOURCE curl-%{V_curl}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 605 | ${l_gzip} -dc `SOURCE make-%{V_make}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 606 | ${l_gzip} -dc `SOURCE bash-%{V_bash}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 607 | ${l_gzip} -dc `SOURCE uuid-%{V_uuid}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 608 | ${l_gzip} -dc `SOURCE beecrypt-%{V_beecrypt}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 609 | ${l_gzip} -dc `SOURCE openpkg-registry-%{V_registry}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 610 | ${l_gzip} -dc `SOURCE perl-%{V_perl}-mini.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 611 | ${l_gzip} -dc `SOURCE openssl-%{V_openssl}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 612 | ${l_gzip} -dc `SOURCE openpkg-tools-%{V_tools}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 613 | ${l_gzip} -dc `SOURCE openpkg-executable-%{V_exec}.tar.gz` | ${l_tar} xf - 2>/dev/null || true |
michael@13 | 614 | |
michael@13 | 615 | # update config.guess/config.sub |
michael@13 | 616 | for dir in rpm-%{V_rpm} rpm-%{V_rpm}/popt beecrypt-%{V_beecrypt} \ |
michael@13 | 617 | curl-%{V_curl} make-%{V_make} bash-%{V_bash}/support; do |
michael@13 | 618 | chmod u+w $dir/config.guess $dir/config.sub >/dev/null 2>&1 || true |
michael@13 | 619 | cp config/config.guess $dir/ |
michael@13 | 620 | cp config/config.sub $dir/ |
michael@13 | 621 | done |
michael@13 | 622 | |
michael@13 | 623 | # display verbosity header |
michael@13 | 624 | set +x; VERBOSE "PREPARATION: Apply OpenPKG Patches to Distributions"; set -x |
michael@13 | 625 | |
michael@13 | 626 | # apply OpenPKG patches to distribution trees |
michael@13 | 627 | ( cd rpm-%{V_rpm} |
michael@13 | 628 | sed -e "s;@l_prefix@;%{l_prefix};g" <`SOURCE rpm.patch.bugfix` | ${l_patch} -p0 |
michael@13 | 629 | sed -e "s;@l_prefix@;%{l_prefix};g" <`SOURCE rpm.patch.feature` | ${l_patch} -p0 |
michael@13 | 630 | sed -e "s;@l_prefix@;%{l_prefix};g" <`SOURCE rpm.patch.porting` | ${l_patch} -p0 |
michael@13 | 631 | sed -e "s;@l_prefix@;%{l_prefix};g" <`SOURCE rpm.patch.regen` | ${l_patch} -p0 |
michael@13 | 632 | rm -rf db/docs # just reduce disk size of source tree |
michael@13 | 633 | ) || exit $? |
michael@13 | 634 | ( cd make-%{V_make} |
michael@13 | 635 | ${l_patch} -p0 <`SOURCE make.patch` |
michael@13 | 636 | ) || exit $? |
michael@13 | 637 | ( cd bash-%{V_bash} |
michael@13 | 638 | ${l_patch} -p0 <`SOURCE bash.patch` |
michael@13 | 639 | sleep 1 |
michael@13 | 640 | touch y.tab.[ch] |
michael@13 | 641 | touch configure config.h.in |
michael@13 | 642 | ) || exit $? |
michael@13 | 643 | ( cd beecrypt-%{V_beecrypt} |
michael@13 | 644 | ${l_patch} -p0 <`SOURCE beecrypt.patch` |
michael@13 | 645 | ) || exit $? |
michael@13 | 646 | ( cd perl-%{V_perl} |
michael@13 | 647 | ${l_patch} -p0 <`SOURCE perl.patch` |
michael@13 | 648 | ) || exit $? |
michael@13 | 649 | ( cd openssl-%{V_openssl} |
michael@13 | 650 | ${l_patch} -p0 <`SOURCE openssl.patch` |
michael@13 | 651 | ) || exit $? |
michael@13 | 652 | |
michael@13 | 653 | # display verbosity header |
michael@13 | 654 | set +x; VERBOSE "PREPARATION: Build GNU make (Build Tool)"; set -x |
michael@13 | 655 | |
michael@13 | 656 | # bootstrap GNU make tool |
michael@13 | 657 | ( cd make-%{V_make} |
michael@13 | 658 | CC="${l_cc}" \ |
michael@13 | 659 | ./configure \ |
michael@13 | 660 | --without-libiconv-prefix \ |
michael@13 | 661 | --without-libintl-prefix \ |
michael@13 | 662 | --disable-nls \ |
michael@13 | 663 | --disable-largefile |
michael@13 | 664 | ${l_make} |
michael@13 | 665 | ( mv make ..; ${l_make} clean || true; mv ../make . ) || exit $? |
michael@13 | 666 | ) || exit $? |
michael@13 | 667 | l_make="`pwd`/make-%{V_make}/make"; export l_make |
michael@13 | 668 | echo "l_make=\"$l_make\"; export l_make" >>.buildenv |
michael@13 | 669 | |
michael@13 | 670 | %build |
michael@13 | 671 | # skip in bootstrap phase 2 (see openpkg.boot) |
michael@13 | 672 | [ ".$OPENPKG_BOOT" = .1 ] && exit 0 |
michael@13 | 673 | |
michael@13 | 674 | # switch into a temporary build area |
michael@13 | 675 | cd openpkg-%{version} |
michael@13 | 676 | . ./.buildenv |
michael@13 | 677 | |
michael@13 | 678 | # display verbosity header |
michael@13 | 679 | set +x; VERBOSE "BUILD: Build GNU bash (Bourne-Again Shell)"; set -x |
michael@13 | 680 | |
michael@13 | 681 | # build GNU bash tool |
michael@13 | 682 | ( cd bash-%{V_bash} |
michael@13 | 683 | sh $shtool subst \ |
michael@13 | 684 | -e 's;@l_openpkg_release@;OpenPKG;' \ |
michael@13 | 685 | version.c |
michael@13 | 686 | ( # force disabled wide-character support |
michael@13 | 687 | echo "ac_cv_header_wchar_h=no" |
michael@13 | 688 | echo "ac_cv_header_wctype_h=no" |
michael@13 | 689 | echo "ac_cv_func_mbsrtowcs=no" |
michael@13 | 690 | # force disabled internationalization support |
michael@13 | 691 | echo "ac_cv_header_libintl_h=no" |
michael@13 | 692 | echo "ac_cv_func_gettext=no" |
michael@13 | 693 | echo "ac_cv_func_textdomain=no" |
michael@13 | 694 | echo "ac_cv_func_bindtextdomain=no" |
michael@13 | 695 | echo "ac_cv_lib_intl_bindtextdomain=no" |
michael@13 | 696 | # disable building with debug symbols |
michael@13 | 697 | echo "ac_cv_prog_cc_g=no" |
michael@13 | 698 | ) >config.cache |
michael@13 | 699 | AUTOCONF="true" \ |
michael@13 | 700 | CC="${l_cc}" |
michael@13 | 701 | ./configure \ |
michael@13 | 702 | --cache-file=./config.cache \ |
michael@13 | 703 | --prefix=%{l_prefix} \ |
michael@13 | 704 | --without-curses \ |
michael@13 | 705 | --without-gnu-malloc \ |
michael@13 | 706 | --disable-nls |
michael@13 | 707 | ${l_make} || exit $? |
michael@13 | 708 | ( mv bash ..; ${l_make} clean || true; mv ../bash . ) || exit $? |
michael@13 | 709 | ) || exit $? |
michael@13 | 710 | |
michael@13 | 711 | # display verbosity header |
michael@13 | 712 | set +x; VERBOSE "BUILD: Build GNU bzip2 (Compression Library)"; set -x |
michael@13 | 713 | |
michael@13 | 714 | # build BZIP2 library |
michael@13 | 715 | ( cd bzip2-%{V_bzip2} |
michael@13 | 716 | ${l_make} CC="${l_cc}" CFLAGS="-O" libbz2.a bzip2 || exit $? |
michael@13 | 717 | ( echo "# libbz2.la - a libtool library file" |
michael@13 | 718 | echo "# Generated by ltmain.sh - GNU libtool x.x.x" |
michael@13 | 719 | echo "dlname=''" |
michael@13 | 720 | echo "library_names=''" |
michael@13 | 721 | echo "old_library='libbz2.a'" |
michael@13 | 722 | echo "dependency_libs=''" |
michael@13 | 723 | echo "current=0" |
michael@13 | 724 | echo "age=0" |
michael@13 | 725 | echo "revision=0" |
michael@13 | 726 | echo "installed=no" |
michael@13 | 727 | echo "dlopen=''" |
michael@13 | 728 | echo "dlpreopen=''" |
michael@13 | 729 | echo "libdir='%{l_prefix}'" |
michael@13 | 730 | ) >libbz2.la |
michael@13 | 731 | ln -s . .libs |
michael@13 | 732 | ) || exit $? |
michael@13 | 733 | |
michael@13 | 734 | # display verbosity header |
michael@13 | 735 | set +x; VERBOSE "BUILD: Build Zlib (Compression Library)"; set -x |
michael@13 | 736 | |
michael@13 | 737 | # build ZLIB library |
michael@13 | 738 | ( cd zlib-%{V_zlib} |
michael@13 | 739 | CC="${l_cc}" CFLAGS="-O" ./configure |
michael@13 | 740 | ${l_make} CC="${l_cc}" libz.a || exit $? # intentionally do not pass CFLAGS here |
michael@13 | 741 | ) || exit $? |
michael@13 | 742 | |
michael@13 | 743 | # display verbosity header |
michael@13 | 744 | set +x; VERBOSE "BUILD: Build OSSP uuid (UUID Generation Tool)"; set -x |
michael@13 | 745 | |
michael@13 | 746 | # build OSSP uuid tool |
michael@13 | 747 | ( cd uuid-%{V_uuid} |
michael@13 | 748 | CC="${l_cc}" \ |
michael@13 | 749 | CFLAGS="-O" \ |
michael@13 | 750 | GREP="grep" \ |
michael@13 | 751 | ./configure \ |
michael@13 | 752 | --prefix=%{l_prefix} \ |
michael@13 | 753 | --disable-shared |
michael@13 | 754 | ${l_make} || exit $? |
michael@13 | 755 | ( mv uuid ..; ${l_make} clean || true; mv ../uuid . ) || exit $? |
michael@13 | 756 | ) || exit $? |
michael@13 | 757 | |
michael@13 | 758 | # display verbosity header |
michael@13 | 759 | set +x; VERBOSE "BUILD: Build Perl (Programming Language)"; set -x |
michael@13 | 760 | |
michael@13 | 761 | # build Perl tool |
michael@13 | 762 | ( cd perl-%{V_perl} |
michael@13 | 763 | chmod -R u+w . |
michael@13 | 764 | sh $shtool subst \ |
michael@13 | 765 | -e 's;\(.*for thislib in $libswanted.*\);libswanted=`echo " $libswanted " | sed -e "s/ bind / /g" -e "s/ db / /g" -e "s/ gdbm / /g" -e "s/ iconv / /g"`\; \1;' \ |
michael@13 | 766 | -e 's;package=perl5;package=perl;' \ |
michael@13 | 767 | Configure |
michael@13 | 768 | sh $shtool subst \ |
michael@13 | 769 | -e 's; */usr/local/lib;;' \ |
michael@13 | 770 | hints/freebsd.sh hints/netbsd.sh |
michael@13 | 771 | libdirs="" |
michael@13 | 772 | for dir in %{l_prefix}/lib /lib64 /usr/lib64 /lib /usr/lib /usr/ccs/lib; do |
michael@13 | 773 | [ -d $dir ] && libdirs="$libdirs $dir" |
michael@13 | 774 | done |
michael@13 | 775 | ./Configure \ |
michael@13 | 776 | -d -e -s \ |
michael@13 | 777 | -Dprefix=%{l_prefix} \ |
michael@13 | 778 | -Dvendorprefix=%{l_prefix} \ |
michael@13 | 779 | -Dinstallprefix=%{l_prefix} \ |
michael@13 | 780 | -Dinstallstyle="lib/perl5" \ |
michael@13 | 781 | -Dman1dir=%{l_prefix}/man/man1 \ |
michael@13 | 782 | -Dman3dir=%{l_prefix}/man/man3 \ |
michael@13 | 783 | -Dcc="${l_cc}" -Uoptimize \ |
michael@13 | 784 | -Dlocincpth="%{l_prefix}/include" \ |
michael@13 | 785 | -Dloclibpth="%{l_prefix}/lib" \ |
michael@13 | 786 | -Dldflags="-L""%{l_prefix}/lib" \ |
michael@13 | 787 | -Dlibpth="$libdirs" \ |
michael@13 | 788 | -Dglibpth="$libdirs" \ |
michael@13 | 789 | -Dscriptdir="%{l_prefix}/bin" \ |
michael@13 | 790 | -Uinstallusrbinperl \ |
michael@13 | 791 | -Adefine:useshrplib='false' \ |
michael@13 | 792 | -Ui_malloc -Ui_iconv -Ui_db |
michael@13 | 793 | ${l_make} miniperl || exit $? |
michael@13 | 794 | rm -f *.o >/dev/null 2>&1 || true |
michael@13 | 795 | ) || exit $? |
michael@13 | 796 | l_perl="`pwd`/perl-%{V_perl}/miniperl"; export l_perl |
michael@13 | 797 | echo "l_perl=\"$l_perl\"; export l_perl" >>.buildenv |
michael@13 | 798 | |
michael@13 | 799 | # display verbosity header |
michael@13 | 800 | set +x; VERBOSE "BUILD: Build OpenSSL (Crypography and SSL/TLS Toolkit)"; set -x |
michael@13 | 801 | |
michael@13 | 802 | # build OpenSSL toolkit |
michael@13 | 803 | ( cd openssl-%{V_openssl} |
michael@13 | 804 | sh $shtool subst \ |
michael@13 | 805 | -e 's;-m486;-march=i486;g' \ |
michael@13 | 806 | -e 's;BN_LLONG *;;' \ |
michael@13 | 807 | Configure |
michael@13 | 808 | sh $shtool subst \ |
michael@13 | 809 | -e 's;test "$OSTYPE" = msdosdjgpp;true;' \ |
michael@13 | 810 | util/point.sh |
michael@13 | 811 | sh $shtool subst \ |
michael@13 | 812 | -e "1s;^.*\$;#!$l_perl;" \ |
michael@13 | 813 | Configure `find . -name "*.pl" -print` |
michael@13 | 814 | opts="" |
michael@13 | 815 | case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in |
michael@13 | 816 | *-solaris* ) opts="-lnsl -lsocket" ;; |
michael@13 | 817 | esac |
michael@13 | 818 | case `sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-%<sp>"` in |
michael@13 | 819 | amd64-* ) opts="$opts -fPIC" ;; |
michael@13 | 820 | ia64-* ) opts="$opts -fPIC" ;; |
michael@13 | 821 | sparc64-freebsd* ) opts="$opts -fPIC" ;; |
michael@13 | 822 | esac |
michael@13 | 823 | CC="${l_cc}" \ |
michael@13 | 824 | PERL="${l_perl}" \ |
michael@13 | 825 | ./config \ |
michael@13 | 826 | --prefix=%{l_prefix} \ |
michael@13 | 827 | no-asm no-shared no-dso \ |
michael@13 | 828 | no-zlib no-idea no-threads no-krb5 no-hw \ |
michael@13 | 829 | $opts |
michael@13 | 830 | ${l_make} CC="${l_cc}" build_libs build_apps || exit $? |
michael@13 | 831 | ( mkdir lib; cd lib; ln -s ../lib*.a . ) || exit $? |
michael@13 | 832 | ) || exit $? |
michael@13 | 833 | |
michael@13 | 834 | # display verbosity header |
michael@13 | 835 | set +x; VERBOSE "BUILD: Build cURL (URL Fetching Tool)"; set -x |
michael@13 | 836 | |
michael@13 | 837 | # build cURL tool |
michael@13 | 838 | ( cd curl-%{V_curl} |
michael@13 | 839 | sh $shtool subst \ |
michael@13 | 840 | -e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \ |
michael@13 | 841 | configure |
michael@13 | 842 | ( echo 'ac_cv_header_openssl_engine_h=no' |
michael@13 | 843 | echo 'lt_cv_prog_compiler_c_o_F77=no' |
michael@13 | 844 | echo 'lt_cv_sys_max_cmd_len=100' |
michael@13 | 845 | ) >config.cache |
michael@13 | 846 | CC="${l_cc}" \ |
michael@13 | 847 | CFLAGS="-I`pwd`/../zlib-%{V_zlib}" \ |
michael@13 | 848 | CPPFLAGS="-I`pwd`/../zlib-%{V_zlib}" \ |
michael@13 | 849 | LDFLAGS="-L`pwd`/../zlib-%{V_zlib}" \ |
michael@13 | 850 | GREP="grep" \ |
michael@13 | 851 | ./configure \ |
michael@13 | 852 | --cache-file=./config.cache \ |
michael@13 | 853 | --without-libidn \ |
michael@13 | 854 | --disable-shared \ |
michael@13 | 855 | --disable-thread \ |
michael@13 | 856 | --disable-ipv6 \ |
michael@13 | 857 | --disable-ldap \ |
michael@13 | 858 | --with-zlib=`pwd`/../zlib-%{V_zlib} \ |
michael@13 | 859 | --with-ssl=`pwd`/../openssl-%{V_openssl} \ |
michael@13 | 860 | --with-ca-bundle=%{l_prefix}/etc/openpkg/openpkg.x509 |
michael@13 | 861 | ${l_make} || exit $? |
michael@13 | 862 | ( mv src/curl ..; ${l_make} clean || true; mv ../curl ./src ) || exit $? |
michael@13 | 863 | ) || exit $? |
michael@13 | 864 | |
michael@13 | 865 | # display verbosity header |
michael@13 | 866 | set +x; VERBOSE "BUILD: Build BeeCrypt (Cryptography Library)"; set -x |
michael@13 | 867 | |
michael@13 | 868 | # build BeeCrypt library |
michael@13 | 869 | ( cd beecrypt-%{V_beecrypt} |
michael@13 | 870 | sh $shtool subst \ |
michael@13 | 871 | -e 's;^[ ][ ]*#;#;' \ |
michael@13 | 872 | aes.c base64.c blowfish.c entropy.c fips186.c fips186.h md5.c \ |
michael@13 | 873 | md5.h mp.c mtprng.c mtprng.h sha1.c sha1.h sha256.c sha256.h timestamp.c |
michael@13 | 874 | sh $shtool subst \ |
michael@13 | 875 | -e 's;cppglue\.lo;;g' \ |
michael@13 | 876 | -e 's;cppglue\.cxx;;g' \ |
michael@13 | 877 | -e '/^CXX = /s;@CXX@;@CC@;g' \ |
michael@13 | 878 | Makefile.in |
michael@13 | 879 | sh $shtool subst \ |
michael@13 | 880 | -e '/LINENO: error: C[+]* preprocessor/{N;N;N;N;s/.*/:/;}' \ |
michael@13 | 881 | configure |
michael@13 | 882 | ( echo 'ac_cv_have_dev_dsp=no' |
michael@13 | 883 | echo 'ac_cv_have_dev_audio=no' |
michael@13 | 884 | echo 'ac_cv_func_gettimeofday=yes' |
michael@13 | 885 | echo 'bc_cv_as_noexecstack=no' |
michael@13 | 886 | ) >config.cache |
michael@13 | 887 | CC="${l_cc}" \ |
michael@13 | 888 | CFLAGS="-O" \ |
michael@13 | 889 | ./configure \ |
michael@13 | 890 | --cache-file=./config.cache \ |
michael@13 | 891 | --prefix=%{l_prefix} \ |
michael@13 | 892 | --without-cplusplus \ |
michael@13 | 893 | --without-java \ |
michael@13 | 894 | --without-python \ |
michael@13 | 895 | --with-cpu=none \ |
michael@13 | 896 | --with-arch=none \ |
michael@13 | 897 | --disable-threads \ |
michael@13 | 898 | --disable-shared |
michael@13 | 899 | ${l_make} || exit $? |
michael@13 | 900 | cp .libs/libbeecrypt.a . |
michael@13 | 901 | ) || exit $? |
michael@13 | 902 | |
michael@13 | 903 | # display verbosity header |
michael@13 | 904 | set +x; VERBOSE "BUILD: Build RPM (RPM Package Manager)"; set -x |
michael@13 | 905 | |
michael@13 | 906 | # build RPM |
michael@13 | 907 | ( br=`pwd` |
michael@13 | 908 | cd rpm-%{V_rpm} |
michael@13 | 909 | |
michael@13 | 910 | # remove object files accidentally distributed with the RPM tarball |
michael@13 | 911 | rm -f db/build_unix/*.o |
michael@13 | 912 | rm -f db/build_unix/*.lo |
michael@13 | 913 | |
michael@13 | 914 | # remove embedded zlib (we are linking with an external one) |
michael@13 | 915 | rm -rf zlib |
michael@13 | 916 | |
michael@13 | 917 | # kill Linux-based preconfigured DB header, to allow the Makefiles to |
michael@13 | 918 | # symlink to it the header that is configured for the current system. |
michael@13 | 919 | rm -f rpmdb/db.h |
michael@13 | 920 | |
michael@13 | 921 | # make sure we do not trigger Autoconf/Automake tools |
michael@13 | 922 | touch configure |
michael@13 | 923 | touch config.h.in |
michael@13 | 924 | |
michael@13 | 925 | # disable running of any Autoconf/Automake tools |
michael@13 | 926 | ACLOCAL=true |
michael@13 | 927 | AUTOCONF=true |
michael@13 | 928 | AUTOMAKE=true |
michael@13 | 929 | AUTOHEADER=true |
michael@13 | 930 | MAKEINFO=true |
michael@13 | 931 | AMTAR=true |
michael@13 | 932 | export ACLOCAL AUTOMAKE AUTOHEADER MAKEINFO AMTAR |
michael@13 | 933 | |
michael@13 | 934 | # cheat GNU Autoconf |
michael@13 | 935 | ( echo 'ac_cv_path_MSGFMT=:' |
michael@13 | 936 | echo 'ac_cv_path_GMSGFMT=:' |
michael@13 | 937 | echo 'ac_cv_path_XGETTEXT=:' |
michael@13 | 938 | echo 'ac_cv_path_MSGMERGE=:' |
michael@13 | 939 | echo "ac_cv_path_MKDIR='%{l_prefix}/lib/openpkg/shtool mkdir -f -p -m 755'" |
michael@13 | 940 | echo "ac_cv_path___MKDIR='%{l_prefix}/lib/openpkg/shtool mkdir -f -p -m 755'" |
michael@13 | 941 | echo "ac_cv_path___PYTHON=true" |
michael@13 | 942 | echo "ac_cv_path___DOXYGEN=true" |
michael@13 | 943 | echo "acl_cv_rpath=no" |
michael@13 | 944 | echo "ac_cv_header_getopt_h=no" |
michael@13 | 945 | ) >config.cache |
michael@13 | 946 | |
michael@13 | 947 | # provide platform identification |
michael@13 | 948 | os_name=`(uname -s) 2>/dev/null` || os_name='Unknown' |
michael@13 | 949 | os_name=`echo "${os_name}" |\ |
michael@13 | 950 | sed -e 's;[^a-zA-Z0-9];;g' |\ |
michael@13 | 951 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` |
michael@13 | 952 | |
michael@13 | 953 | # set build tool flags |
michael@13 | 954 | CC="${l_cc}" |
michael@13 | 955 | CPPFLAGS="-DOPENPKG -DOPENPKG_${os_name} -I$br/zlib-%{V_zlib} -I$br/bzip2-%{V_bzip2} -I$br/beecrypt-%{V_beecrypt}" |
michael@13 | 956 | CFLAGS="$CPPFLAGS" |
michael@13 | 957 | LDFLAGS="-L$br/zlib-%{V_zlib} -L$br/bzip2-%{V_bzip2} -L$br/beecrypt-%{V_beecrypt}" |
michael@13 | 958 | LIBS="$LDFLAGS -lz -lbz2 -lbeecrypt" |
michael@13 | 959 | case $os_name in |
michael@13 | 960 | SUNOS* ) LIBS="$LIBS -lresolv" ;; |
michael@13 | 961 | IRIX* ) LIBS="$LIBS -lgen" ;; |
michael@13 | 962 | esac |
michael@13 | 963 | export CC CPPFLAGS CFLAGS LDFLAGS LIBS |
michael@13 | 964 | |
michael@13 | 965 | # adjust for BeeCrypt 4.0 |
michael@13 | 966 | sh $shtool subst \ |
michael@13 | 967 | -e 's;beecrypt\.api\.h;beecrypt.h;g' \ |
michael@13 | 968 | rpmio/rpmio_internal.h |
michael@13 | 969 | sh $shtool subst \ |
michael@13 | 970 | -e 's;\(rsavrfy(\)\(&dig->rsa_pk\);\1\2.n, \2.e;g' \ |
michael@13 | 971 | lib/signature.c |
michael@13 | 972 | |
michael@13 | 973 | # configure the package |
michael@13 | 974 | sh ./configure \ |
michael@13 | 975 | --cache-file=./config.cache \ |
michael@13 | 976 | --prefix=%{l_prefix} \ |
michael@13 | 977 | --with-db \ |
michael@13 | 978 | --with-glob \ |
michael@13 | 979 | --without-python \ |
michael@13 | 980 | --without-apidocs \ |
michael@13 | 981 | --disable-shared \ |
michael@13 | 982 | --disable-rpath \ |
michael@13 | 983 | --disable-nls |
michael@13 | 984 | |
michael@13 | 985 | # build the package |
michael@13 | 986 | ${l_make} |
michael@13 | 987 | ) || exit $? |
michael@13 | 988 | |
michael@13 | 989 | # display verbosity header |
michael@13 | 990 | set +x; VERBOSE "BUILD: Build OpenPKG Frontend (Set-UID Wrapper)"; set -x |
michael@13 | 991 | |
michael@13 | 992 | # build "openpkg" executable |
michael@13 | 993 | ( cd openpkg-executable-%{V_exec} |
michael@13 | 994 | ${l_make} \ |
michael@13 | 995 | CC="${l_cc}" \ |
michael@13 | 996 | OPENPKG_PREFIX="%{l_prefix}" \ |
michael@13 | 997 | OPENPKG_SUSR="%{l_susr}" \ |
michael@13 | 998 | OPENPKG_MUSR="%{l_musr}" |
michael@13 | 999 | ) || exit $? |
michael@13 | 1000 | |
michael@13 | 1001 | %install |
michael@13 | 1002 | # skip in bootstrap phase 2 (see openpkg.boot) |
michael@13 | 1003 | [ ".$OPENPKG_BOOT" = .1 ] && exit 0 |
michael@13 | 1004 | |
michael@13 | 1005 | # switch into a temporary build area |
michael@13 | 1006 | cd openpkg-%{version} |
michael@13 | 1007 | . ./.buildenv |
michael@13 | 1008 | |
michael@13 | 1009 | # display verbosity header |
michael@13 | 1010 | set +x; VERBOSE "INSTALL: Create Installation Filesystem Hierarchy"; set -x |
michael@13 | 1011 | |
michael@13 | 1012 | # create installation hierarchy |
michael@13 | 1013 | rm -rf $RPM_BUILD_ROOT |
michael@13 | 1014 | sh $shtool mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix} |
michael@13 | 1015 | for dir in bin etc include info lib libexec man sbin share var cgi pub local; do |
michael@13 | 1016 | test -d $RPM_BUILD_ROOT%{l_prefix}/$dir || \ |
michael@13 | 1017 | mkdir $RPM_BUILD_ROOT%{l_prefix}/$dir |
michael@13 | 1018 | done |
michael@13 | 1019 | for i in 1 2 3 4 5 6 7 8 9; do |
michael@13 | 1020 | test -d $RPM_BUILD_ROOT%{l_prefix}/man/man$i || \ |
michael@13 | 1021 | mkdir $RPM_BUILD_ROOT%{l_prefix}/man/man$i |
michael@13 | 1022 | test -d $RPM_BUILD_ROOT%{l_prefix}/man/cat$i || \ |
michael@13 | 1023 | mkdir $RPM_BUILD_ROOT%{l_prefix}/man/cat$i |
michael@13 | 1024 | done |
michael@13 | 1025 | for dir in PKG bin etc include info lib man sbin; do |
michael@13 | 1026 | test -d $RPM_BUILD_ROOT%{l_prefix}/local/$dir || \ |
michael@13 | 1027 | mkdir $RPM_BUILD_ROOT%{l_prefix}/local/$dir |
michael@13 | 1028 | done |
michael@13 | 1029 | for i in 1 2 3 4 5 6 7 8 9; do |
michael@13 | 1030 | test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i || \ |
michael@13 | 1031 | mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/man$i |
michael@13 | 1032 | test -d $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i || \ |
michael@13 | 1033 | mkdir $RPM_BUILD_ROOT%{l_prefix}/local/man/cat$i |
michael@13 | 1034 | done |
michael@13 | 1035 | test -d $RPM_BUILD_ROOT%{l_prefix}/RPM || \ |
michael@13 | 1036 | mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM |
michael@13 | 1037 | for dir in SRC PKG DB TMP; do |
michael@13 | 1038 | test -d $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir || \ |
michael@13 | 1039 | mkdir $RPM_BUILD_ROOT%{l_prefix}/RPM/$dir |
michael@13 | 1040 | done |
michael@13 | 1041 | mkdir $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg |
michael@13 | 1042 | mkdir $RPM_BUILD_ROOT%{l_prefix}/include/openpkg |
michael@13 | 1043 | |
michael@13 | 1044 | # display verbosity header |
michael@13 | 1045 | set +x; VERBOSE "INSTALL: Installation of RPM"; set -x |
michael@13 | 1046 | |
michael@13 | 1047 | # install RPM into installation hierarchy |
michael@13 | 1048 | ( cd rpm-%{V_rpm} |
michael@13 | 1049 | DESTDIR="$RPM_BUILD_ROOT" |
michael@13 | 1050 | export DESTDIR |
michael@13 | 1051 | ${l_make} install |
michael@13 | 1052 | ) || exit $? |
michael@13 | 1053 | |
michael@13 | 1054 | # display verbosity header |
michael@13 | 1055 | set +x; VERBOSE "INSTALL: Install Additional Files"; set -x |
michael@13 | 1056 | |
michael@13 | 1057 | # add additional development files |
michael@13 | 1058 | cp rpm-%{V_rpm}/misc/glob.h $RPM_BUILD_ROOT%{l_prefix}/include/rpm/ |
michael@13 | 1059 | cp zlib-%{V_zlib}/zlib.h $RPM_BUILD_ROOT%{l_prefix}/include/rpm/ |
michael@13 | 1060 | cp zlib-%{V_zlib}/zconf.h $RPM_BUILD_ROOT%{l_prefix}/include/rpm/ |
michael@13 | 1061 | cp zlib-%{V_zlib}/libz.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmz.a |
michael@13 | 1062 | cp bzip2-%{V_bzip2}/bzlib.h $RPM_BUILD_ROOT%{l_prefix}/include/rpm/ |
michael@13 | 1063 | cp bzip2-%{V_bzip2}/libbz2.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbz2.a |
michael@13 | 1064 | cp beecrypt-%{V_beecrypt}/beecrypt.h $RPM_BUILD_ROOT%{l_prefix}/include/rpm/ |
michael@13 | 1065 | cp beecrypt-%{V_beecrypt}/libbeecrypt.a $RPM_BUILD_ROOT%{l_prefix}/lib/librpmbeecrypt.a |
michael@13 | 1066 | |
michael@13 | 1067 | # display verbosity header |
michael@13 | 1068 | set +x; VERBOSE "INSTALL: Post-Adjust Installation"; set -x |
michael@13 | 1069 | |
michael@13 | 1070 | # post-adjust RPM installation (namespace-clean POPT inclusion) |
michael@13 | 1071 | mv $RPM_BUILD_ROOT%{l_prefix}/lib/libpopt.a \ |
michael@13 | 1072 | $RPM_BUILD_ROOT%{l_prefix}/lib/librpmpopt.a |
michael@13 | 1073 | mv $RPM_BUILD_ROOT%{l_prefix}/include/popt.h \ |
michael@13 | 1074 | $RPM_BUILD_ROOT%{l_prefix}/include/rpm/popt.h |
michael@13 | 1075 | |
michael@13 | 1076 | # move C API into custom locations |
michael@13 | 1077 | mv $RPM_BUILD_ROOT%{l_prefix}/include/rpm \ |
michael@13 | 1078 | $RPM_BUILD_ROOT%{l_prefix}/include/openpkg/rpm |
michael@13 | 1079 | mv $RPM_BUILD_ROOT%{l_prefix}/lib/librpm* \ |
michael@13 | 1080 | $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/ |
michael@13 | 1081 | |
michael@13 | 1082 | # move rpm tool to custom location |
michael@13 | 1083 | mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm \ |
michael@13 | 1084 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm |
michael@13 | 1085 | mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm.8 \ |
michael@13 | 1086 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm.8 |
michael@13 | 1087 | |
michael@13 | 1088 | # move rpm2cpio tool to custom location |
michael@13 | 1089 | mv $RPM_BUILD_ROOT%{l_prefix}/bin/rpm2cpio \ |
michael@13 | 1090 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio |
michael@13 | 1091 | mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpm2cpio.8 \ |
michael@13 | 1092 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm2cpio.8 |
michael@13 | 1093 | |
michael@13 | 1094 | # replace symlinks with hardlinks |
michael@13 | 1095 | for entry in rpme:rpmi rpmt:rpmb rpmu:rpmi rpmv:rpmq; do |
michael@13 | 1096 | eval `echo $entry | sed -e 's/^\(.*\):\(.*\)$/dst=\1; src=\2/'` |
michael@13 | 1097 | rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$dst |
michael@13 | 1098 | ln $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$src \ |
michael@13 | 1099 | $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$dst |
michael@13 | 1100 | done |
michael@13 | 1101 | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/rpmbuild |
michael@13 | 1102 | ln $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmb \ |
michael@13 | 1103 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmbuild |
michael@13 | 1104 | mv $RPM_BUILD_ROOT%{l_prefix}/man/man8/rpmbuild.8 \ |
michael@13 | 1105 | $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpmbuild.8 |
michael@13 | 1106 | |
michael@13 | 1107 | # display verbosity header |
michael@13 | 1108 | set +x; VERBOSE "INSTALL: Stripping Down Installation"; set -x |
michael@13 | 1109 | |
michael@13 | 1110 | # strip RPM installation |
michael@13 | 1111 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/* \ |
michael@13 | 1112 | $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/* >/dev/null 2>&1 || true |
michael@13 | 1113 | for dir in man/ja man/pl man/ru man/sk src; do |
michael@13 | 1114 | rm -rf $RPM_BUILD_ROOT%{l_prefix}/$dir >/dev/null 2>&1 || true |
michael@13 | 1115 | done |
michael@13 | 1116 | rm -rf $RPM_BUILD_ROOT/var >/dev/null 2>&1 || true |
michael@13 | 1117 | for file in rpme rpmi rpmsign rpmu rpmverify rpmquery gendiff; do |
michael@13 | 1118 | rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/$file >/dev/null 2>&1 || true |
michael@13 | 1119 | done |
michael@13 | 1120 | rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/* >/dev/null 2>&1 || true |
michael@13 | 1121 | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man1/* >/dev/null 2>&1 || true |
michael@13 | 1122 | rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man3/* >/dev/null 2>&1 || true |
michael@13 | 1123 | rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/rpmpopt >/dev/null 2>&1 || true |
michael@13 | 1124 | rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/rpmrc >/dev/null 2>&1 || true |
michael@13 | 1125 | rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.la >/dev/null 2>&1 || true |
michael@13 | 1126 | rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/lib >/dev/null 2>&1 || true |
michael@13 | 1127 | for file in \ |
michael@13 | 1128 | u_pkg.sh vpkg-provides.sh vpkg-provides2.sh rpmdiff.cgi rpmdiff \ |
michael@13 | 1129 | perl.prov perl.req mkinstalldirs magic.prov magic.req http.req \ |
michael@13 | 1130 | getpo.sh get_magic.pl find-provides find-requires \ |
michael@13 | 1131 | find-requires.perl find-req.pl find-provides.perl \ |
michael@13 | 1132 | find-prov.pl find-lang.sh cpanflute convertrpmrc.sh check-prereqs \ |
michael@13 | 1133 | rpmputtext rpmgettext brp-compress brp-redhat brp-sparc64-linux \ |
michael@13 | 1134 | brp-strip brp-strip-shared brp-strip-comment-note rpmrc \ |
michael@13 | 1135 | config.guess config.sub check-files; do |
michael@13 | 1136 | rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/$file >/dev/null 2>&1 || true |
michael@13 | 1137 | done |
michael@13 | 1138 | |
michael@13 | 1139 | # display verbosity header |
michael@13 | 1140 | set +x; VERBOSE "INSTALL: Install Additional Tools"; set -x |
michael@13 | 1141 | |
michael@13 | 1142 | # install lsync tool |
michael@13 | 1143 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1144 | <`SOURCE lsync` \ |
michael@13 | 1145 | >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync |
michael@13 | 1146 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync |
michael@13 | 1147 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1148 | <`SOURCE dot.lsyncrc` \ |
michael@13 | 1149 | >$RPM_BUILD_ROOT%{l_prefix}/local/.lsyncrc |
michael@13 | 1150 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1151 | <`SOURCE lsync.8` \ |
michael@13 | 1152 | >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/lsync.8 |
michael@13 | 1153 | |
michael@13 | 1154 | # install rpm-config tool |
michael@13 | 1155 | ( l_prefix="%{l_prefix}" |
michael@13 | 1156 | l_cc="%{l_cc}" |
michael@13 | 1157 | l_cflags="" |
michael@13 | 1158 | l_cppflags="-DOPENPKG -I${l_prefix}/include/openpkg/rpm -I${l_prefix}/include/openpkg" |
michael@13 | 1159 | l_ldflags="-L${l_prefix}/lib/openpkg" |
michael@13 | 1160 | l_libs="-lrpmbuild -lrpm -lrpmio -lrpmdb -lrpmpopt -lrpmbeecrypt -lrpmbz2 -lrpmz" |
michael@13 | 1161 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1162 | -e "s:@l_cc@:$l_cc:g" \ |
michael@13 | 1163 | -e "s:@l_cflags@:$l_cflags:g" \ |
michael@13 | 1164 | -e "s:@l_cppflags@:$l_cppflags:g" \ |
michael@13 | 1165 | -e "s:@l_ldflags@:$l_ldflags:g" \ |
michael@13 | 1166 | -e "s:@l_libs@:$l_libs:g" \ |
michael@13 | 1167 | -e "s:@l_version@:%{V_rpm}:g" \ |
michael@13 | 1168 | <`SOURCE rpm-config.sh` \ |
michael@13 | 1169 | >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config |
michael@13 | 1170 | ) || exit $? |
michael@13 | 1171 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config |
michael@13 | 1172 | sed -e "s:RPM_VERSION:%{V_rpm}:g" \ |
michael@13 | 1173 | <`SOURCE rpm-config.8` \ |
michael@13 | 1174 | >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm-config.8 |
michael@13 | 1175 | |
michael@13 | 1176 | # install OpenPKG registry commands |
michael@13 | 1177 | ( cd openpkg-registry-%{V_registry} |
michael@13 | 1178 | mv $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm \ |
michael@13 | 1179 | $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpm |
michael@13 | 1180 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1181 | rpm.sh >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm |
michael@13 | 1182 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rpm |
michael@13 | 1183 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1184 | register.sh >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register |
michael@13 | 1185 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register |
michael@13 | 1186 | cp register.8 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/register.8 |
michael@13 | 1187 | ) || exit $? |
michael@13 | 1188 | |
michael@13 | 1189 | # install OpenPKG Tool Chain command subset |
michael@13 | 1190 | ( cd openpkg-tools-%{V_tools} |
michael@13 | 1191 | cp cmd/curl.sh $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/curl.sh |
michael@13 | 1192 | cp cmd/build.pl $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl |
michael@13 | 1193 | chmod 644 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.pl |
michael@13 | 1194 | cp cmd/build.8 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/build.8 |
michael@13 | 1195 | ) || exit $? |
michael@13 | 1196 | |
michael@13 | 1197 | # install RPM extension |
michael@13 | 1198 | ( cd rpm-%{V_rpm} |
michael@13 | 1199 | cp file/file $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/file |
michael@13 | 1200 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/file |
michael@13 | 1201 | ) || exit $? |
michael@13 | 1202 | ( cd perl-%{V_perl} |
michael@13 | 1203 | cp miniperl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl |
michael@13 | 1204 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/miniperl |
michael@13 | 1205 | ) || exit $? |
michael@13 | 1206 | ( cd openssl-%{V_openssl} |
michael@13 | 1207 | cp apps/openssl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl |
michael@13 | 1208 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openssl |
michael@13 | 1209 | ) || exit $? |
michael@13 | 1210 | ( cd curl-%{V_curl} |
michael@13 | 1211 | cp src/curl $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl |
michael@13 | 1212 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/curl |
michael@13 | 1213 | ) || exit $? |
michael@13 | 1214 | ( cd bzip2-%{V_bzip2} |
michael@13 | 1215 | cp bzip2 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2 |
michael@13 | 1216 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bzip2 |
michael@13 | 1217 | ) || exit $? |
michael@13 | 1218 | ( cd gzip-%{V_gzip} |
michael@13 | 1219 | cp gzip $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip |
michael@13 | 1220 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/gzip |
michael@13 | 1221 | ) || exit $? |
michael@13 | 1222 | ( cd patch-%{V_patch} |
michael@13 | 1223 | cp patch $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch |
michael@13 | 1224 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/patch |
michael@13 | 1225 | ) || exit $? |
michael@13 | 1226 | ( cd tar-%{V_tar} |
michael@13 | 1227 | cp tar $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar |
michael@13 | 1228 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/tar |
michael@13 | 1229 | ) || exit $? |
michael@13 | 1230 | ( cd bash-%{V_bash} |
michael@13 | 1231 | cp bash $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash |
michael@13 | 1232 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/bash |
michael@13 | 1233 | ) || exit $? |
michael@13 | 1234 | ( cd uuid-%{V_uuid} |
michael@13 | 1235 | cp uuid $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid |
michael@13 | 1236 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/uuid |
michael@13 | 1237 | ) || exit $? |
michael@13 | 1238 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1239 | -e "s;@l_musr@;%{l_musr};g" \ |
michael@13 | 1240 | -e "s;@l_mgrp@;%{l_mgrp};g" \ |
michael@13 | 1241 | <`SOURCE uuid.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid |
michael@13 | 1242 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid |
michael@13 | 1243 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1244 | <`SOURCE uuid.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/uuid.8 |
michael@13 | 1245 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1246 | <`SOURCE release.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release |
michael@13 | 1247 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release |
michael@13 | 1248 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1249 | <`SOURCE release.8` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/release.8 |
michael@13 | 1250 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1251 | -e "s;@l_musr@;%{l_musr};g" \ |
michael@13 | 1252 | -e "s;@l_mgrp@;%{l_mgrp};g" \ |
michael@13 | 1253 | <`SOURCE rpmdb` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb |
michael@13 | 1254 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmdb |
michael@13 | 1255 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1256 | <`SOURCE rpmtool` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool |
michael@13 | 1257 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmtool |
michael@13 | 1258 | |
michael@13 | 1259 | # install OpenPKG tool chain execution frontend and execution wrapper |
michael@13 | 1260 | cp openpkg-executable-%{V_exec}/openpkg $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg |
michael@13 | 1261 | ${l_strip} $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg |
michael@13 | 1262 | chmod 4775 $RPM_BUILD_ROOT%{l_prefix}/bin/openpkg |
michael@13 | 1263 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1264 | <`SOURCE openpkg.sh` >$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg |
michael@13 | 1265 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/openpkg |
michael@13 | 1266 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1267 | <`SOURCE openpkg.1` \ |
michael@13 | 1268 | >$RPM_BUILD_ROOT%{l_prefix}/man/man1/openpkg.1 |
michael@13 | 1269 | |
michael@13 | 1270 | # install more OpenPKG tool chain commands |
michael@13 | 1271 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1272 | <`SOURCE install.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/install |
michael@13 | 1273 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/install |
michael@13 | 1274 | sed -e "s;@l_prefix@;%{l_prefix};g" \ |
michael@13 | 1275 | <`SOURCE man.sh` >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man |
michael@13 | 1276 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/man |
michael@13 | 1277 | |
michael@13 | 1278 | # install an own copy of shtool |
michael@13 | 1279 | cp $shtool $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool |
michael@13 | 1280 | chmod a+x $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/shtool |
michael@13 | 1281 | |
michael@13 | 1282 | # display verbosity header |
michael@13 | 1283 | set +x; VERBOSE "INSTALL: Install Configuration Files"; set -x |
michael@13 | 1284 | |
michael@13 | 1285 | # install a few README files |
michael@13 | 1286 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1287 | <`SOURCE root.README` \ |
michael@13 | 1288 | >$RPM_BUILD_ROOT%{l_prefix}/README |
michael@13 | 1289 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1290 | <`SOURCE local.README` \ |
michael@13 | 1291 | >$RPM_BUILD_ROOT%{l_prefix}/local/README |
michael@13 | 1292 | |
michael@13 | 1293 | # install Bash environment |
michael@13 | 1294 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1295 | <`SOURCE dot.bashrc` \ |
michael@13 | 1296 | >$RPM_BUILD_ROOT%{l_prefix}/.bashrc |
michael@13 | 1297 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1298 | <`SOURCE dot.bash_login` \ |
michael@13 | 1299 | >$RPM_BUILD_ROOT%{l_prefix}/.bash_login |
michael@13 | 1300 | |
michael@13 | 1301 | # install Run-Command files |
michael@13 | 1302 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1303 | -e "s:@l_susr@:%{l_susr}:g" \ |
michael@13 | 1304 | -e "s:@l_musr@:%{l_musr}:g" \ |
michael@13 | 1305 | <`SOURCE rc` \ |
michael@13 | 1306 | >$RPM_BUILD_ROOT%{l_prefix}/etc/rc |
michael@13 | 1307 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc |
michael@13 | 1308 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1309 | <`SOURCE rc.conf` \ |
michael@13 | 1310 | >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf |
michael@13 | 1311 | chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.conf |
michael@13 | 1312 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1313 | <`SOURCE rc.func` \ |
michael@13 | 1314 | >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.func |
michael@13 | 1315 | chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.func |
michael@13 | 1316 | mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d |
michael@13 | 1317 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1318 | -e "s:@l_musr@:%{l_musr}:g" \ |
michael@13 | 1319 | <`SOURCE rc.openpkg` \ |
michael@13 | 1320 | >$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg |
michael@13 | 1321 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/rc.openpkg |
michael@13 | 1322 | ( echo "#!/bin/sh" |
michael@13 | 1323 | echo "exec %{l_prefix}/etc/rc \${1+\"\$@\"}" |
michael@13 | 1324 | ) >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc |
michael@13 | 1325 | chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc |
michael@13 | 1326 | ln $RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc \ |
michael@13 | 1327 | $RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rc |
michael@13 | 1328 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1329 | <`SOURCE rc.8` \ |
michael@13 | 1330 | >$RPM_BUILD_ROOT%{l_prefix}/libexec/openpkg/rc.8 |
michael@13 | 1331 | |
michael@13 | 1332 | # create configuration directory |
michael@13 | 1333 | test -d $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg || \ |
michael@13 | 1334 | mkdir $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg |
michael@13 | 1335 | |
michael@13 | 1336 | # install platform identification file |
michael@13 | 1337 | sh $shtool platform -n -L -S "" -C "+" -F "%<ap>-any-%<sp>" \ |
michael@13 | 1338 | >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform |
michael@13 | 1339 | chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/platform |
michael@13 | 1340 | |
michael@13 | 1341 | # install UUID configuration file (ghost) |
michael@13 | 1342 | touch $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid |
michael@13 | 1343 | chmod 644 $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/uuid |
michael@13 | 1344 | |
michael@13 | 1345 | # install registry configuration files (ghost) |
michael@13 | 1346 | touch \ |
michael@13 | 1347 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \ |
michael@13 | 1348 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \ |
michael@13 | 1349 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \ |
michael@13 | 1350 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util |
michael@13 | 1351 | chmod 644 \ |
michael@13 | 1352 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.conf \ |
michael@13 | 1353 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.prep \ |
michael@13 | 1354 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.tran \ |
michael@13 | 1355 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/register.util |
michael@13 | 1356 | |
michael@13 | 1357 | # install default managers configuration file |
michael@13 | 1358 | ( echo "##" |
michael@13 | 1359 | echo "## managers -- OpenPKG Instance Managers" |
michael@13 | 1360 | echo "##" |
michael@13 | 1361 | echo "" |
michael@13 | 1362 | echo "%{l_susr}" |
michael@13 | 1363 | echo "%{l_musr}" |
michael@13 | 1364 | echo "" |
michael@13 | 1365 | ) >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/managers |
michael@13 | 1366 | |
michael@13 | 1367 | # install overriding RPM configuration files |
michael@13 | 1368 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1369 | <`SOURCE rpmpopt` \ |
michael@13 | 1370 | >>$RPM_BUILD_ROOT%{l_prefix}/lib/openpkg/rpmpopt |
michael@13 | 1371 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1372 | <`SOURCE rpmrc` \ |
michael@13 | 1373 | >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmrc |
michael@13 | 1374 | sed -e "s:@l_prefix@:%{l_prefix}:g" \ |
michael@13 | 1375 | -e "s:@l_prefix_static@:%{l_prefix}:g" \ |
michael@13 | 1376 | -e "s;@l_build_path@;$l_build_path;g" \ |
michael@13 | 1377 | -e "s;@l_build_ldlp@;$l_build_ldlp;g" \ |
michael@13 | 1378 | -e "s;@l_build_ulim@;$l_build_ulim;g" \ |
michael@13 | 1379 | -e "s:@TAG@:$tag:g" \ |
michael@13 | 1380 | -e "s:@SUSR@:$susr:g" \ |
michael@13 | 1381 | -e "s:@SGRP@:$sgrp:g" \ |
michael@13 | 1382 | -e "s:@MUSR@:$musr:g" \ |
michael@13 | 1383 | -e "s:@MGRP@:$mgrp:g" \ |
michael@13 | 1384 | -e "s:@RUSR@:$rusr:g" \ |
michael@13 | 1385 | -e "s:@RGRP@:$rgrp:g" \ |
michael@13 | 1386 | -e "s:@NUSR@:$nusr:g" \ |
michael@13 | 1387 | -e "s:@NGRP@:$ngrp:g" \ |
michael@13 | 1388 | <`SOURCE rpmmacros` \ |
michael@13 | 1389 | >$RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/rpmmacros |
michael@13 | 1390 | cp `SOURCE openpkg.org.pgp` \ |
michael@13 | 1391 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.org.pgp |
michael@13 | 1392 | cp `SOURCE openpkg.com.pgp` \ |
michael@13 | 1393 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.com.pgp |
michael@13 | 1394 | cp `SOURCE openpkg.net.pgp` \ |
michael@13 | 1395 | $RPM_BUILD_ROOT%{l_prefix}/etc/openpkg/openpkg.net.pgp |
michael@13 | 1396 | |
michael@13 | 1397 | # display verbosity header |
michael@13 | 1398 | set +x; VERBOSE "INSTALL: Done. Thank you for flying OpenPKG..."; set -x |
michael@13 | 1399 | |
michael@13 | 1400 | %files |
michael@13 | 1401 | %defattr(-,%{?l_musr}%{!?l_musr:%{l_fsusr}},%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}}) |
michael@13 | 1402 | %{l_prefix}/README |
michael@13 | 1403 | %config(noreplace) %{l_prefix}/.bashrc |
michael@13 | 1404 | %config(noreplace) %{l_prefix}/.bash_login |
michael@13 | 1405 | %dir %{l_prefix}/RPM |
michael@13 | 1406 | %dir %{l_prefix}/RPM/SRC |
michael@13 | 1407 | %dir %{l_prefix}/RPM/PKG |
michael@13 | 1408 | %dir %{l_prefix}/RPM/DB |
michael@13 | 1409 | %dir %{l_prefix}/RPM/TMP |
michael@13 | 1410 | %dir %{l_prefix}/cgi |
michael@13 | 1411 | %dir %{l_prefix}/bin |
michael@13 | 1412 | %attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/openpkg |
michael@13 | 1413 | %dir %{l_prefix}/etc |
michael@13 | 1414 | %{l_prefix}/etc/rc |
michael@13 | 1415 | %config(noreplace) %{l_prefix}/etc/rc.conf |
michael@13 | 1416 | %{l_prefix}/etc/rc.func |
michael@13 | 1417 | %dir %{l_prefix}/etc/rc.d |
michael@13 | 1418 | %{l_prefix}/etc/rc.d/rc.openpkg |
michael@13 | 1419 | %dir %{l_prefix}/etc/openpkg |
michael@13 | 1420 | %ghost %{l_prefix}/etc/openpkg/uuid |
michael@13 | 1421 | %config %{l_prefix}/etc/openpkg/platform |
michael@13 | 1422 | %config %{l_prefix}/etc/openpkg/rpmmacros |
michael@13 | 1423 | %config %{l_prefix}/etc/openpkg/rpmrc |
michael@13 | 1424 | %ghost %{l_prefix}/etc/openpkg/register.conf |
michael@13 | 1425 | %ghost %{l_prefix}/etc/openpkg/register.prep |
michael@13 | 1426 | %ghost %{l_prefix}/etc/openpkg/register.tran |
michael@13 | 1427 | %ghost %{l_prefix}/etc/openpkg/register.util |
michael@13 | 1428 | %config %attr(664,%{l_musr},%{l_mgrp}) %{l_prefix}/etc/openpkg/managers |
michael@13 | 1429 | %{l_prefix}/etc/openpkg/openpkg.org.pgp |
michael@13 | 1430 | %{l_prefix}/etc/openpkg/openpkg.com.pgp |
michael@13 | 1431 | %{l_prefix}/etc/openpkg/openpkg.net.pgp |
michael@13 | 1432 | %dir %{l_prefix}/include |
michael@13 | 1433 | %dir %{l_prefix}/include/openpkg |
michael@13 | 1434 | %dir %{l_prefix}/include/openpkg/rpm |
michael@13 | 1435 | %{l_prefix}/include/openpkg/rpm/argv.h |
michael@13 | 1436 | %{l_prefix}/include/openpkg/rpm/beecrypt.h |
michael@13 | 1437 | %{l_prefix}/include/openpkg/rpm/bzlib.h |
michael@13 | 1438 | %{l_prefix}/include/openpkg/rpm/db.h |
michael@13 | 1439 | %{l_prefix}/include/openpkg/rpm/fts.h |
michael@13 | 1440 | %{l_prefix}/include/openpkg/rpm/glob.h |
michael@13 | 1441 | %{l_prefix}/include/openpkg/rpm/hdrinline.h |
michael@13 | 1442 | %{l_prefix}/include/openpkg/rpm/header.h |
michael@13 | 1443 | %{l_prefix}/include/openpkg/rpm/misc.h |
michael@13 | 1444 | %{l_prefix}/include/openpkg/rpm/popt.h |
michael@13 | 1445 | %{l_prefix}/include/openpkg/rpm/rpmal.h |
michael@13 | 1446 | %{l_prefix}/include/openpkg/rpm/rpmbuild.h |
michael@13 | 1447 | %{l_prefix}/include/openpkg/rpm/rpmcli.h |
michael@13 | 1448 | %{l_prefix}/include/openpkg/rpm/rpmdb.h |
michael@13 | 1449 | %{l_prefix}/include/openpkg/rpm/rpmds.h |
michael@13 | 1450 | %{l_prefix}/include/openpkg/rpm/rpmerr.h |
michael@13 | 1451 | %{l_prefix}/include/openpkg/rpm/rpmfc.h |
michael@13 | 1452 | %{l_prefix}/include/openpkg/rpm/rpmfi.h |
michael@13 | 1453 | %{l_prefix}/include/openpkg/rpm/rpmfile.h |
michael@13 | 1454 | %{l_prefix}/include/openpkg/rpm/rpmhash.h |
michael@13 | 1455 | %{l_prefix}/include/openpkg/rpm/rpmio.h |
michael@13 | 1456 | %{l_prefix}/include/openpkg/rpm/rpmlib.h |
michael@13 | 1457 | %{l_prefix}/include/openpkg/rpm/rpmlog.h |
michael@13 | 1458 | %{l_prefix}/include/openpkg/rpm/rpmmacro.h |
michael@13 | 1459 | %{l_prefix}/include/openpkg/rpm/rpmmessages.h |
michael@13 | 1460 | %{l_prefix}/include/openpkg/rpm/rpmpgp.h |
michael@13 | 1461 | %{l_prefix}/include/openpkg/rpm/rpmps.h |
michael@13 | 1462 | %{l_prefix}/include/openpkg/rpm/rpmspec.h |
michael@13 | 1463 | %{l_prefix}/include/openpkg/rpm/rpmsw.h |
michael@13 | 1464 | %{l_prefix}/include/openpkg/rpm/rpmte.h |
michael@13 | 1465 | %{l_prefix}/include/openpkg/rpm/rpmts.h |
michael@13 | 1466 | %{l_prefix}/include/openpkg/rpm/rpmurl.h |
michael@13 | 1467 | %{l_prefix}/include/openpkg/rpm/stringbuf.h |
michael@13 | 1468 | %{l_prefix}/include/openpkg/rpm/ugid.h |
michael@13 | 1469 | %{l_prefix}/include/openpkg/rpm/zconf.h |
michael@13 | 1470 | %{l_prefix}/include/openpkg/rpm/zlib.h |
michael@13 | 1471 | %dir %{l_prefix}/info |
michael@13 | 1472 | %dir %{l_prefix}/lib |
michael@13 | 1473 | %dir %{l_prefix}/lib/openpkg |
michael@13 | 1474 | %{l_prefix}/lib/openpkg/bash |
michael@13 | 1475 | %{l_prefix}/lib/openpkg/bzip2 |
michael@13 | 1476 | %{l_prefix}/lib/openpkg/curl |
michael@13 | 1477 | %{l_prefix}/lib/openpkg/file |
michael@13 | 1478 | %{l_prefix}/lib/openpkg/gzip |
michael@13 | 1479 | %{l_prefix}/lib/openpkg/librpm.a |
michael@13 | 1480 | %{l_prefix}/lib/openpkg/librpmbeecrypt.a |
michael@13 | 1481 | %{l_prefix}/lib/openpkg/librpmbuild.a |
michael@13 | 1482 | %{l_prefix}/lib/openpkg/librpmbz2.a |
michael@13 | 1483 | %{l_prefix}/lib/openpkg/librpmdb.a |
michael@13 | 1484 | %{l_prefix}/lib/openpkg/librpmio.a |
michael@13 | 1485 | %{l_prefix}/lib/openpkg/librpmpopt.a |
michael@13 | 1486 | %{l_prefix}/lib/openpkg/librpmz.a |
michael@13 | 1487 | %{l_prefix}/lib/openpkg/macros |
michael@13 | 1488 | %{l_prefix}/lib/openpkg/magic |
michael@13 | 1489 | %{l_prefix}/lib/openpkg/magic.mgc |
michael@13 | 1490 | %{l_prefix}/lib/openpkg/magic.mime |
michael@13 | 1491 | %{l_prefix}/lib/openpkg/magic.mime.mgc |
michael@13 | 1492 | %{l_prefix}/lib/openpkg/miniperl |
michael@13 | 1493 | %{l_prefix}/lib/openpkg/openpkg |
michael@13 | 1494 | %{l_prefix}/lib/openpkg/openssl |
michael@13 | 1495 | %{l_prefix}/lib/openpkg/patch |
michael@13 | 1496 | %{l_prefix}/lib/openpkg/rc |
michael@13 | 1497 | %{l_prefix}/lib/openpkg/rpm |
michael@13 | 1498 | %{l_prefix}/lib/openpkg/rpmb |
michael@13 | 1499 | %{l_prefix}/lib/openpkg/rpmd |
michael@13 | 1500 | %{l_prefix}/lib/openpkg/rpmdb |
michael@13 | 1501 | %{l_prefix}/lib/openpkg/rpmdb_dump |
michael@13 | 1502 | %{l_prefix}/lib/openpkg/rpmdb_load |
michael@13 | 1503 | %{l_prefix}/lib/openpkg/rpmdb_verify |
michael@13 | 1504 | %{l_prefix}/lib/openpkg/rpme |
michael@13 | 1505 | %{l_prefix}/lib/openpkg/rpmi |
michael@13 | 1506 | %{l_prefix}/lib/openpkg/rpmk |
michael@13 | 1507 | %{l_prefix}/lib/openpkg/rpmpopt |
michael@13 | 1508 | %{l_prefix}/lib/openpkg/rpmq |
michael@13 | 1509 | %{l_prefix}/lib/openpkg/rpmt |
michael@13 | 1510 | %{l_prefix}/lib/openpkg/rpmtool |
michael@13 | 1511 | %{l_prefix}/lib/openpkg/rpmu |
michael@13 | 1512 | %{l_prefix}/lib/openpkg/rpmv |
michael@13 | 1513 | %{l_prefix}/lib/openpkg/shtool |
michael@13 | 1514 | %{l_prefix}/lib/openpkg/tar |
michael@13 | 1515 | %{l_prefix}/lib/openpkg/uuid |
michael@13 | 1516 | %dir %{l_prefix}/libexec |
michael@13 | 1517 | %dir %{l_prefix}/libexec/openpkg |
michael@13 | 1518 | %{l_prefix}/libexec/openpkg/build.8 |
michael@13 | 1519 | %{l_prefix}/libexec/openpkg/build.pl |
michael@13 | 1520 | %{l_prefix}/libexec/openpkg/curl.sh |
michael@13 | 1521 | %{l_prefix}/libexec/openpkg/install |
michael@13 | 1522 | %{l_prefix}/libexec/openpkg/lsync |
michael@13 | 1523 | %{l_prefix}/libexec/openpkg/lsync.8 |
michael@13 | 1524 | %{l_prefix}/libexec/openpkg/man |
michael@13 | 1525 | %{l_prefix}/libexec/openpkg/rc |
michael@13 | 1526 | %{l_prefix}/libexec/openpkg/rc.8 |
michael@13 | 1527 | %{l_prefix}/libexec/openpkg/register |
michael@13 | 1528 | %{l_prefix}/libexec/openpkg/register.8 |
michael@13 | 1529 | %{l_prefix}/libexec/openpkg/release |
michael@13 | 1530 | %{l_prefix}/libexec/openpkg/release.8 |
michael@13 | 1531 | %{l_prefix}/libexec/openpkg/rpm |
michael@13 | 1532 | %{l_prefix}/libexec/openpkg/rpm-config |
michael@13 | 1533 | %{l_prefix}/libexec/openpkg/rpm-config.8 |
michael@13 | 1534 | %{l_prefix}/libexec/openpkg/rpm.8 |
michael@13 | 1535 | %{l_prefix}/libexec/openpkg/rpm2cpio |
michael@13 | 1536 | %{l_prefix}/libexec/openpkg/rpm2cpio.8 |
michael@13 | 1537 | %{l_prefix}/libexec/openpkg/rpmbuild |
michael@13 | 1538 | %{l_prefix}/libexec/openpkg/rpmbuild.8 |
michael@13 | 1539 | %{l_prefix}/libexec/openpkg/uuid |
michael@13 | 1540 | %{l_prefix}/libexec/openpkg/uuid.8 |
michael@13 | 1541 | %dir %{l_prefix}/man |
michael@13 | 1542 | %dir %{l_prefix}/man/man1 |
michael@13 | 1543 | %dir %{l_prefix}/man/man2 |
michael@13 | 1544 | %dir %{l_prefix}/man/man3 |
michael@13 | 1545 | %dir %{l_prefix}/man/man4 |
michael@13 | 1546 | %dir %{l_prefix}/man/man5 |
michael@13 | 1547 | %dir %{l_prefix}/man/man6 |
michael@13 | 1548 | %dir %{l_prefix}/man/man7 |
michael@13 | 1549 | %dir %{l_prefix}/man/man8 |
michael@13 | 1550 | %dir %{l_prefix}/man/man9 |
michael@13 | 1551 | %dir %{l_prefix}/man/cat1 |
michael@13 | 1552 | %dir %{l_prefix}/man/cat2 |
michael@13 | 1553 | %dir %{l_prefix}/man/cat3 |
michael@13 | 1554 | %dir %{l_prefix}/man/cat4 |
michael@13 | 1555 | %dir %{l_prefix}/man/cat5 |
michael@13 | 1556 | %dir %{l_prefix}/man/cat6 |
michael@13 | 1557 | %dir %{l_prefix}/man/cat7 |
michael@13 | 1558 | %dir %{l_prefix}/man/cat8 |
michael@13 | 1559 | %dir %{l_prefix}/man/cat9 |
michael@13 | 1560 | %{l_prefix}/man/man1/openpkg.1 |
michael@13 | 1561 | %dir %{l_prefix}/sbin |
michael@13 | 1562 | %dir %{l_prefix}/pub |
michael@13 | 1563 | %dir %{l_prefix}/share |
michael@13 | 1564 | %dir %{l_prefix}/var |
michael@13 | 1565 | %dir %{l_prefix}/local |
michael@13 | 1566 | %{l_prefix}/local/README |
michael@13 | 1567 | %{l_prefix}/local/.lsyncrc |
michael@13 | 1568 | %dir %{l_prefix}/local/PKG |
michael@13 | 1569 | %dir %{l_prefix}/local/bin |
michael@13 | 1570 | %dir %{l_prefix}/local/etc |
michael@13 | 1571 | %dir %{l_prefix}/local/include |
michael@13 | 1572 | %dir %{l_prefix}/local/info |
michael@13 | 1573 | %dir %{l_prefix}/local/lib |
michael@13 | 1574 | %dir %{l_prefix}/local/man |
michael@13 | 1575 | %dir %{l_prefix}/local/man/man1 |
michael@13 | 1576 | %dir %{l_prefix}/local/man/man2 |
michael@13 | 1577 | %dir %{l_prefix}/local/man/man3 |
michael@13 | 1578 | %dir %{l_prefix}/local/man/man4 |
michael@13 | 1579 | %dir %{l_prefix}/local/man/man5 |
michael@13 | 1580 | %dir %{l_prefix}/local/man/man6 |
michael@13 | 1581 | %dir %{l_prefix}/local/man/man7 |
michael@13 | 1582 | %dir %{l_prefix}/local/man/man8 |
michael@13 | 1583 | %dir %{l_prefix}/local/man/man9 |
michael@13 | 1584 | %dir %{l_prefix}/local/man/cat1 |
michael@13 | 1585 | %dir %{l_prefix}/local/man/cat2 |
michael@13 | 1586 | %dir %{l_prefix}/local/man/cat3 |
michael@13 | 1587 | %dir %{l_prefix}/local/man/cat4 |
michael@13 | 1588 | %dir %{l_prefix}/local/man/cat5 |
michael@13 | 1589 | %dir %{l_prefix}/local/man/cat6 |
michael@13 | 1590 | %dir %{l_prefix}/local/man/cat7 |
michael@13 | 1591 | %dir %{l_prefix}/local/man/cat8 |
michael@13 | 1592 | %dir %{l_prefix}/local/man/cat9 |
michael@13 | 1593 | %dir %{l_prefix}/local/sbin |
michael@13 | 1594 | |
michael@13 | 1595 | %clean |
michael@13 | 1596 | # skip in bootstrap phase 2 (see openpkg.boot) |
michael@13 | 1597 | [ ".$OPENPKG_BOOT" = .1 ] && exit 0 |
michael@13 | 1598 | |
michael@13 | 1599 | # cleanup build area |
michael@13 | 1600 | rm -rf openpkg-%{version} >/dev/null 2>&1 || true |
michael@13 | 1601 | |
michael@13 | 1602 | # cleanup installation area |
michael@13 | 1603 | rm -rf $RPM_BUILD_ROOT >/dev/null 2>&1 || true |
michael@13 | 1604 | |
michael@13 | 1605 | %pre |
michael@13 | 1606 | # always performed for upgrades and because it doesn't harm! |
michael@13 | 1607 | # [ ".$1" != .1 ] && exit 0 |
michael@13 | 1608 | |
michael@13 | 1609 | # this procedure is only usable with root privileges |
michael@13 | 1610 | # (for non-root installations it is not required at all) |
michael@13 | 1611 | cusr=`(id -un) 2>/dev/null ||\ |
michael@13 | 1612 | (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\ |
michael@13 | 1613 | (whoami) 2>/dev/null ||\ |
michael@13 | 1614 | (who am i | cut "-d " -f1) 2>/dev/null ||\ |
michael@13 | 1615 | echo $LOGNAME` |
michael@13 | 1616 | |
michael@13 | 1617 | # determine runtime details (for both inside and outside RPM!!) |
michael@13 | 1618 | # - bootstrapping: $xxx is set from aux.wrapbin.sh |
michael@13 | 1619 | # - upgrading new: %{l_[smrn]{usr,grp}} is set via rpmmacros |
michael@13 | 1620 | # - upgrading old: %{l_[smrn]{usr,grp}} is not set at all |
michael@13 | 1621 | [ ".$susr" = . ] && susr="%{?l_susr}%{!?l_susr:root}" |
michael@13 | 1622 | [ ".$sgrp" = . ] && sgrp="%{?l_sgrp}%{!?l_sgrp:wheel}" |
michael@13 | 1623 | [ ".$musr" = . ] && musr="%{?l_musr}%{!?l_musr:%{l_fsusr}}" |
michael@13 | 1624 | [ ".$mgrp" = . ] && mgrp="%{?l_mgrp}%{!?l_mgrp:%{l_fsgrp}}" |
michael@13 | 1625 | [ ".$rusr" = . ] && rusr="%{?l_rusr}%{!?l_rusr:%{l_fsusr}-r}" |
michael@13 | 1626 | [ ".$rgrp" = . ] && rgrp="%{?l_rgrp}%{!?l_rgrp:%{l_fsgrp}-r}" |
michael@13 | 1627 | [ ".$nusr" = . ] && nusr="%{?l_nusr}%{!?l_nusr:%{l_fsusr}-n}" |
michael@13 | 1628 | [ ".$ngrp" = . ] && ngrp="%{?l_ngrp}%{!?l_ngrp:%{l_fsgrp}-n}" |
michael@13 | 1629 | [ ".$suid" = . ] && suid="%{?l_suid}" |
michael@13 | 1630 | [ ".$sgid" = . ] && sgid="%{?l_sgid}" |
michael@13 | 1631 | [ ".$muid" = . ] && muid="%{?l_muid}" |
michael@13 | 1632 | [ ".$mgid" = . ] && mgid="%{?l_mgid}" |
michael@13 | 1633 | [ ".$ruid" = . ] && ruid="%{?l_ruid}" |
michael@13 | 1634 | [ ".$rgid" = . ] && rgid="%{?l_rgid}" |
michael@13 | 1635 | [ ".$nuid" = . ] && nuid="%{?l_nuid}" |
michael@13 | 1636 | [ ".$ngid" = . ] && ngid="%{?l_ngid}" |
michael@13 | 1637 | |
michael@13 | 1638 | # if any of these optional params are not used we won't have a |
michael@13 | 1639 | # corresponding macro either, so make use of one conditionally |
michael@13 | 1640 | [ ".$suid" = . ] && [ ".%{?l_suid:set}" = .set ] && suid="%{?l_suid}" |
michael@13 | 1641 | [ ".$sgid" = . ] && [ ".%{?l_sgid:set}" = .set ] && sgid="%{?l_sgid}" |
michael@13 | 1642 | [ ".$muid" = . ] && [ ".%{?l_muid:set}" = .set ] && muid="%{?l_muid}" |
michael@13 | 1643 | [ ".$mgid" = . ] && [ ".%{?l_mgid:set}" = .set ] && mgid="%{?l_mgid}" |
michael@13 | 1644 | [ ".$ruid" = . ] && [ ".%{?l_ruid:set}" = .set ] && ruid="%{?l_ruid}" |
michael@13 | 1645 | [ ".$rgid" = . ] && [ ".%{?l_rgid:set}" = .set ] && rgid="%{?l_rgid}" |
michael@13 | 1646 | [ ".$nuid" = . ] && [ ".%{?l_nuid:set}" = .set ] && nuid="%{?l_nuid}" |
michael@13 | 1647 | [ ".$ngid" = . ] && [ ".%{?l_ngid:set}" = .set ] && ngid="%{?l_ngid}" |
michael@13 | 1648 | |
michael@13 | 1649 | # determine prefix |
michael@13 | 1650 | [ ".$prefix" = . ] && prefix="%{l_prefix}" |
michael@13 | 1651 | prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'` |
michael@13 | 1652 | |
michael@13 | 1653 | # register instance in presence file |
michael@13 | 1654 | presence="/etc/openpkg" |
michael@13 | 1655 | exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"` |
michael@13 | 1656 | if [ ".$exists" = . ]; then |
michael@13 | 1657 | ( umask 022 |
michael@13 | 1658 | echo "${prefix}" >>$presence |
michael@13 | 1659 | ) 2>/dev/null || true |
michael@13 | 1660 | fi |
michael@13 | 1661 | |
michael@13 | 1662 | # determine user/group ids |
michael@13 | 1663 | for class in s m r n; do |
michael@13 | 1664 | eval "xusr=\"\$${class}usr\"" |
michael@13 | 1665 | eval "xgrp=\"\$${class}grp\"" |
michael@13 | 1666 | eval "xuid=\"\$${class}uid\"" |
michael@13 | 1667 | eval "xgid=\"\$${class}gid\"" |
michael@13 | 1668 | if [ ".$xuid" = . ]; then |
michael@13 | 1669 | xuid=`(getent passwd "${xusr}"; \ |
michael@13 | 1670 | grep "^${xusr}:" /etc/passwd; \ |
michael@13 | 1671 | ypmatch "${xusr}" passwd; \ |
michael@13 | 1672 | nismatch "${xusr}" passwd; \ |
michael@13 | 1673 | nidump passwd . | grep "^${xusr}:") 2>/dev/null | \ |
michael@13 | 1674 | sed -e 'q' | awk -F: '{ print $3; }'` |
michael@13 | 1675 | if [ ".$xuid" = . ]; then |
michael@13 | 1676 | # seek for a reasonably uid/gid pair |
michael@13 | 1677 | xuid=1000 |
michael@13 | 1678 | ok=0 |
michael@13 | 1679 | while [ ".$ok" = .0 ]; do |
michael@13 | 1680 | eval "u_exists=\$u_exists_$xuid" |
michael@13 | 1681 | if [ ".$u_exists" = . ]; then |
michael@13 | 1682 | u_exists=`(getent passwd; cat /etc/passwd; ypcat passwd; niscat passwd; nidump passwd .) 2>/dev/null |\ |
michael@13 | 1683 | grep "^[^:]*:[^:]*:$xuid:"` |
michael@13 | 1684 | fi |
michael@13 | 1685 | eval "g_exists=\$g_exists_$xuid" |
michael@13 | 1686 | if [ ".$g_exists" = . ]; then |
michael@13 | 1687 | g_exists=`(getent group; cat /etc/group; ypcat group; niscat group; nidump group .) 2>/dev/null |\ |
michael@13 | 1688 | grep "^[^:]*:[^:]*:$xuid:"` |
michael@13 | 1689 | fi |
michael@13 | 1690 | if [ ".$u_exists" = . -a ".$g_exists" = . ]; then |
michael@13 | 1691 | ok=1 |
michael@13 | 1692 | break |
michael@13 | 1693 | fi |
michael@13 | 1694 | xuid=`expr $xuid + 1` |
michael@13 | 1695 | done |
michael@13 | 1696 | eval "u_exists_$xuid=yes" |
michael@13 | 1697 | eval "g_exists_$xuid=yes" |
michael@13 | 1698 | fi |
michael@13 | 1699 | fi |
michael@13 | 1700 | if [ ".$xgid" = . ]; then |
michael@13 | 1701 | xgid=`(getent group "${xgrp}"; \ |
michael@13 | 1702 | grep "^${xgrp}:" /etc/group; \ |
michael@13 | 1703 | ypmatch "${xgrp}" group; \ |
michael@13 | 1704 | nismatch "${xgrp}" group; \ |
michael@13 | 1705 | nidump group . | grep "^${xgrp}:") 2>/dev/null | \ |
michael@13 | 1706 | sed -e 'q' | awk -F: '{ print $3; }'` |
michael@13 | 1707 | if [ ".$xgid" = . ]; then |
michael@13 | 1708 | xgid="$xuid" |
michael@13 | 1709 | fi |
michael@13 | 1710 | fi |
michael@13 | 1711 | eval "${class}uid=\"$xuid\"" |
michael@13 | 1712 | eval "${class}gid=\"$xgid\"" |
michael@13 | 1713 | done |
michael@13 | 1714 | |
michael@13 | 1715 | # determine platform id |
michael@13 | 1716 | s=`(uname -s) 2>/dev/null` || s='Unknown' |
michael@13 | 1717 | r=`(uname -r) 2>/dev/null` || r='0.0' |
michael@13 | 1718 | plid="${s}/${r}" |
michael@13 | 1719 | |
michael@13 | 1720 | # add entry to /etc/shells |
michael@13 | 1721 | shell="${prefix}/lib/openpkg/bash" |
michael@13 | 1722 | if [ -f /etc/shells ]; then |
michael@13 | 1723 | exists=`cat /etc/shells 2>/dev/null | grep "^$shell"` |
michael@13 | 1724 | if [ ".$exists" = . ]; then |
michael@13 | 1725 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 1726 | echo "openpkg:WARNING: skipping addition of $shell to /etc/shells" 1>&2 |
michael@13 | 1727 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 1728 | else |
michael@13 | 1729 | echo "${shell}" >>/etc/shells |
michael@13 | 1730 | fi |
michael@13 | 1731 | fi |
michael@13 | 1732 | fi |
michael@13 | 1733 | |
michael@13 | 1734 | # clear pending deferred actions |
michael@13 | 1735 | rm -f %{l_prefix}.pre-group-process.sh %{l_prefix}.pre-post-process.sh >/dev/null 2>&1 |
michael@13 | 1736 | |
michael@13 | 1737 | # create the hierarchy user/group |
michael@13 | 1738 | for req in "superuser:${susr}:${suid}:${sgrp}:${sgid}" \ |
michael@13 | 1739 | "management:${musr}:${muid}:${mgrp}:${mgid}" \ |
michael@13 | 1740 | "restricted:${rusr}:${ruid}:${rgrp}:${rgid}" \ |
michael@13 | 1741 | "non-privileged:${nusr}:${nuid}:${ngrp}:${ngid}"; do |
michael@13 | 1742 | # split request into class/usr/uid/grp/gid |
michael@13 | 1743 | OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS" |
michael@13 | 1744 | class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5" |
michael@13 | 1745 | |
michael@13 | 1746 | # check whether user already exists |
michael@13 | 1747 | exists=`(getent passwd "$usr"; \ |
michael@13 | 1748 | grep "^$usr:" /etc/passwd; \ |
michael@13 | 1749 | ypmatch "$usr" passwd; \ |
michael@13 | 1750 | nismatch "$usr" passwd; \ |
michael@13 | 1751 | nidump passwd . | grep "^$usr:") 2>/dev/null | \ |
michael@13 | 1752 | sed -e 'q'` |
michael@13 | 1753 | if [ ".$exists" = . ]; then |
michael@13 | 1754 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 1755 | echo "openpkg:WARNING: skipping creation of OpenPKG $class user $usr" 1>&2 |
michael@13 | 1756 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 1757 | else |
michael@13 | 1758 | # add entry to passwd database |
michael@13 | 1759 | realname="${prefix} OpenPKG ($class)" |
michael@13 | 1760 | case "$plid" in |
michael@13 | 1761 | FreeBSD/* | NetBSD/* ) |
michael@13 | 1762 | file=/etc/master.passwd |
michael@13 | 1763 | entry="${usr}:*:${uid}:${gid}::0:0:${realname}:${prefix}:${shell}" |
michael@13 | 1764 | update="(PATH=\$PATH:/usr/sbin; pwd_mkdb -p /etc/master.passwd)" |
michael@13 | 1765 | ;; |
michael@13 | 1766 | Linux/* ) |
michael@13 | 1767 | file=/etc/passwd |
michael@13 | 1768 | entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}" |
michael@13 | 1769 | update="(PATH=\$PATH:/usr/sbin; pwconv)" |
michael@13 | 1770 | ;; |
michael@13 | 1771 | SunOS/5.* | UnixWare/* ) |
michael@13 | 1772 | file=/etc/passwd |
michael@13 | 1773 | entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}" |
michael@13 | 1774 | update="(PATH=\$PATH:/usr/sbin; pwconv)" |
michael@13 | 1775 | ;; |
michael@13 | 1776 | AIX/* ) |
michael@13 | 1777 | # intentionally do nothing here |
michael@13 | 1778 | : |
michael@13 | 1779 | ;; |
michael@13 | 1780 | OSF1/V5.* ) |
michael@13 | 1781 | file=/etc/passwd |
michael@13 | 1782 | entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}" |
michael@13 | 1783 | update="(PATH=\$PATH:/usr/sbin; mkpasswd /etc/passwd)" |
michael@13 | 1784 | ;; |
michael@13 | 1785 | HP-UX/* ) |
michael@13 | 1786 | file=/etc/passwd |
michael@13 | 1787 | entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}" |
michael@13 | 1788 | update=":" |
michael@13 | 1789 | ;; |
michael@13 | 1790 | Darwin/* ) |
michael@13 | 1791 | # intentionally do nothing here |
michael@13 | 1792 | : |
michael@13 | 1793 | ;; |
michael@13 | 1794 | IRIX*/6.* ) |
michael@13 | 1795 | file=/etc/passwd |
michael@13 | 1796 | entry="${usr}:*:${uid}:${gid}:${realname}:${prefix}:${shell}" |
michael@13 | 1797 | if [ -f /etc/shadow ] |
michael@13 | 1798 | then update="(PATH=\$PATH:/sbin; pwconv)" |
michael@13 | 1799 | else update=":" |
michael@13 | 1800 | fi |
michael@13 | 1801 | ;; |
michael@13 | 1802 | esac |
michael@13 | 1803 | case "$plid" in |
michael@13 | 1804 | Darwin/* ) |
michael@13 | 1805 | niutil -create . "/users/${usr}" |
michael@13 | 1806 | niutil -createprop . "/users/${usr}" passwd "*" |
michael@13 | 1807 | niutil -createprop . "/users/${usr}" uid "${uid}" |
michael@13 | 1808 | niutil -createprop . "/users/${usr}" gid "${gid}" |
michael@13 | 1809 | niutil -createprop . "/users/${usr}" realname "${realname}" |
michael@13 | 1810 | niutil -createprop . "/users/${usr}" home "${prefix}" |
michael@13 | 1811 | niutil -createprop . "/users/${usr}" shell "${shell}" |
michael@13 | 1812 | ;; |
michael@13 | 1813 | AIX/* ) |
michael@13 | 1814 | mkuser id="${uid}" gecos="${realname}" home="${prefix}" "${usr}" |
michael@13 | 1815 | cp /etc/security/login.cfg /etc/security/login.cfg.bak && \ |
michael@13 | 1816 | sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\) *\$;\\1,$shell;" \ |
michael@13 | 1817 | </etc/security/login.cfg.bak >/etc/security/login.cfg && \ |
michael@13 | 1818 | rm -f /etc/security/login.cfg.bak >/dev/null 2>&1 |
michael@13 | 1819 | # defer both the setting of the primary group and the shell, |
michael@13 | 1820 | # as they do not exist at this stage of processing. |
michael@13 | 1821 | echo "chuser pgrp=\"${grp}\" \"${usr}\"" >>%{l_prefix}.pre-group-process.sh |
michael@13 | 1822 | echo "chuser shell=\"${shell}\" \"${usr}\"" >>%{l_prefix}.pre-post-process.sh |
michael@13 | 1823 | ;; |
michael@13 | 1824 | * ) |
michael@13 | 1825 | cp $file $file.bak && \ |
michael@13 | 1826 | (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file |
michael@13 | 1827 | rm -f $file.bak >/dev/null 2>&1 |
michael@13 | 1828 | eval $update |
michael@13 | 1829 | [ $? -ne 0 ] && exit $? |
michael@13 | 1830 | ;; |
michael@13 | 1831 | esac |
michael@13 | 1832 | fi |
michael@13 | 1833 | fi |
michael@13 | 1834 | |
michael@13 | 1835 | # check whether group already exists |
michael@13 | 1836 | exists=`(getent group "$grp"; \ |
michael@13 | 1837 | grep "^$grp:" /etc/group; \ |
michael@13 | 1838 | ypmatch "$grp" group; \ |
michael@13 | 1839 | nismatch "$grp" group; \ |
michael@13 | 1840 | nidump group . | grep "^$grp:") 2>/dev/null | \ |
michael@13 | 1841 | sed -e 'q'` |
michael@13 | 1842 | if [ ".$exists" = . ]; then |
michael@13 | 1843 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 1844 | echo "openpkg:WARNING: skipping creation of OpenPKG $class group $grp" 1>&2 |
michael@13 | 1845 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 1846 | else |
michael@13 | 1847 | case "$plid" in |
michael@13 | 1848 | Darwin/* ) |
michael@13 | 1849 | niutil -create . "/groups/${grp}" |
michael@13 | 1850 | niutil -createprop . "/groups/${grp}" gid "${gid}" |
michael@13 | 1851 | niutil -createprop . "/groups/${grp}" users "${usr}" |
michael@13 | 1852 | ;; |
michael@13 | 1853 | AIX/* ) |
michael@13 | 1854 | mkgroup id="${gid}" users="${usr}" "${grp}" |
michael@13 | 1855 | ;; |
michael@13 | 1856 | * ) |
michael@13 | 1857 | # add entry to group database |
michael@13 | 1858 | file=/etc/group |
michael@13 | 1859 | entry="${grp}:*:${gid}:${usr}" |
michael@13 | 1860 | cp $file $file.bak && \ |
michael@13 | 1861 | (grep -v '^+:' $file.bak; echo $entry; grep '^+:' $file.bak) >$file |
michael@13 | 1862 | rm -f $file.bak >/dev/null 2>&1 |
michael@13 | 1863 | ;; |
michael@13 | 1864 | esac |
michael@13 | 1865 | fi |
michael@13 | 1866 | fi |
michael@13 | 1867 | done |
michael@13 | 1868 | |
michael@13 | 1869 | # optional group processing (deferred adjustment of primary group) |
michael@13 | 1870 | if [ -f %{l_prefix}.pre-group-process.sh ]; then |
michael@13 | 1871 | sh %{l_prefix}.pre-group-process.sh |
michael@13 | 1872 | rm -f %{l_prefix}.pre-group-process.sh |
michael@13 | 1873 | fi |
michael@13 | 1874 | |
michael@13 | 1875 | # invalidate passwd and group tables from Name Service Cache Daemon to |
michael@13 | 1876 | # ensure chown/chgrp works immediately after pwconv on Linux and Solaris |
michael@13 | 1877 | if [ -x /usr/sbin/nscd ]; then |
michael@13 | 1878 | /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true |
michael@13 | 1879 | /usr/sbin/nscd -i group >/dev/null 2>&1 || true |
michael@13 | 1880 | fi |
michael@13 | 1881 | |
michael@13 | 1882 | # create the startup/shutdown transfer script |
michael@13 | 1883 | name=`echo "$prefix" | sed -e 's;/;;g'` |
michael@13 | 1884 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 1885 | echo "openpkg:WARNING: skipping creation of system run-command hooks" 1>&2 |
michael@13 | 1886 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 1887 | else |
michael@13 | 1888 | case "$plid" in |
michael@13 | 1889 | FreeBSD/* ) |
michael@13 | 1890 | if [ ! -f /etc/rc.d/openpkg-${name} ]; then |
michael@13 | 1891 | # install transfer script |
michael@13 | 1892 | rm -f /etc/rc.d/openpkg-${name} >/dev/null 2>&1 |
michael@13 | 1893 | ( echo "#!/bin/sh" |
michael@13 | 1894 | echo "##" |
michael@13 | 1895 | echo "## openpkg-${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 1896 | echo "##" |
michael@13 | 1897 | echo "" |
michael@13 | 1898 | echo "# PROVIDE: openpkg-${name}" |
michael@13 | 1899 | echo "# REQUIRE: LOGIN" |
michael@13 | 1900 | echo "# KEYWORD: shutdown" |
michael@13 | 1901 | echo "" |
michael@13 | 1902 | echo ". /etc/rc.subr" |
michael@13 | 1903 | echo "" |
michael@13 | 1904 | echo "name=\"openpkg_${name}\"" |
michael@13 | 1905 | echo "start_cmd=\"openpkg_rc_all start\"" |
michael@13 | 1906 | echo "stop_cmd=\"openpkg_rc_all stop\"" |
michael@13 | 1907 | echo "restart_cmd=\"openpkg_rc_all stop start\"" |
michael@13 | 1908 | echo "" |
michael@13 | 1909 | echo "openpkg_rc_all () {" |
michael@13 | 1910 | echo " if [ -f ${prefix}/etc/rc ]; then" |
michael@13 | 1911 | echo " ${prefix}/etc/rc all \"\$@\"" |
michael@13 | 1912 | echo " fi" |
michael@13 | 1913 | echo "}" |
michael@13 | 1914 | echo "" |
michael@13 | 1915 | echo "load_rc_config \$name" |
michael@13 | 1916 | echo "run_rc_command \"\$1\"" |
michael@13 | 1917 | echo "" |
michael@13 | 1918 | ) >/etc/rc.d/openpkg-${name} |
michael@13 | 1919 | chmod 755 /etc/rc.d/openpkg-${name} |
michael@13 | 1920 | fi |
michael@13 | 1921 | ;; |
michael@13 | 1922 | NetBSD/* ) |
michael@13 | 1923 | if [ ! -f /etc/rc.d/${name} ]; then |
michael@13 | 1924 | ( echo "#!/bin/sh" |
michael@13 | 1925 | echo "##" |
michael@13 | 1926 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 1927 | echo "##" |
michael@13 | 1928 | echo "## PROVIDE: ${name}" |
michael@13 | 1929 | echo "## REQUIRE: DAEMON LOGIN NETWORK SERVERS" |
michael@13 | 1930 | echo "##" |
michael@13 | 1931 | echo "" |
michael@13 | 1932 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 1933 | echo "case \$1 in" |
michael@13 | 1934 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 1935 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 1936 | echo " restart ) exec ${prefix}/etc/rc all stop start ;;" |
michael@13 | 1937 | echo " status ) ;;" |
michael@13 | 1938 | echo "esac" |
michael@13 | 1939 | ) >/etc/rc.d/${name} |
michael@13 | 1940 | chmod 755 /etc/rc.d/${name} |
michael@13 | 1941 | fi |
michael@13 | 1942 | ;; |
michael@13 | 1943 | Linux/* ) |
michael@13 | 1944 | if [ -f /etc/gentoo-release ]; then |
michael@13 | 1945 | if [ ! -f /etc/init.d/openpkg-${name} ]; then |
michael@13 | 1946 | # install transfer script |
michael@13 | 1947 | ( echo "#!/sbin/runscript" |
michael@13 | 1948 | echo "##" |
michael@13 | 1949 | echo "## openpkg-${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 1950 | echo "##" |
michael@13 | 1951 | echo "" |
michael@13 | 1952 | echo "depend() {" |
michael@13 | 1953 | echo " after *" |
michael@13 | 1954 | echo "}" |
michael@13 | 1955 | echo "" |
michael@13 | 1956 | echo "checkconfig() {" |
michael@13 | 1957 | echo " [ -f ${prefix}/etc/rc ] || return 1" |
michael@13 | 1958 | echo " case $1 in" |
michael@13 | 1959 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 1960 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 1961 | echo " esac" |
michael@13 | 1962 | echo "}" |
michael@13 | 1963 | echo "" |
michael@13 | 1964 | echo "start() {" |
michael@13 | 1965 | echo " checkconfig || return 1" |
michael@13 | 1966 | echo " ebegin "Starting OpenPKG ${prefix} hierarchy"" |
michael@13 | 1967 | echo " exec ${prefix}/etc/rc all start" |
michael@13 | 1968 | echo " eend 0" |
michael@13 | 1969 | echo "}" |
michael@13 | 1970 | echo "" |
michael@13 | 1971 | echo "stop() {" |
michael@13 | 1972 | echo " checkconfig || return 1" |
michael@13 | 1973 | echo " ebegin "Stopping OpenPKG ${prefix} hierarchy"" |
michael@13 | 1974 | echo " exec ${prefix}/etc/rc all stop" |
michael@13 | 1975 | echo " eend 0" |
michael@13 | 1976 | echo "}" |
michael@13 | 1977 | ) >/etc/init.d/openpkg-${name} |
michael@13 | 1978 | chmod 755 /etc/init.d/openpkg-${name} |
michael@13 | 1979 | /sbin/rc-update add openpkg-${name} default |
michael@13 | 1980 | fi |
michael@13 | 1981 | else |
michael@13 | 1982 | # sroot: script root directory |
michael@13 | 1983 | # lroot: link root directory |
michael@13 | 1984 | if [ -f /etc/debian_version ]; then |
michael@13 | 1985 | sroot=/etc/init.d |
michael@13 | 1986 | lroot=/etc/rc%d.d |
michael@13 | 1987 | elif [ -f /etc/redhat-release -o -f /etc/mandrake-release ]; then |
michael@13 | 1988 | sroot=/etc/rc.d/init.d |
michael@13 | 1989 | lroot=/etc/rc.d/rc%d.d |
michael@13 | 1990 | elif [ -f /etc/SuSE-release ]; then |
michael@13 | 1991 | sroot=/etc/init.d |
michael@13 | 1992 | lroot=/etc/init.d/rc%d.d |
michael@13 | 1993 | elif [ -f /etc/slackware-version ]; then |
michael@13 | 1994 | sroot=/etc/rc.d |
michael@13 | 1995 | lroot=/etc/rc.d/rc%d.d |
michael@13 | 1996 | name="rc.${name}" |
michael@13 | 1997 | for i in 0 1 2 3 4 5 6; do |
michael@13 | 1998 | l=`echo $lroot | sed -e "s;%d;$i;"` |
michael@13 | 1999 | if [ ! -d $l ]; then |
michael@13 | 2000 | mkdir $l 2>&1 || true |
michael@13 | 2001 | fi |
michael@13 | 2002 | done |
michael@13 | 2003 | else |
michael@13 | 2004 | echo "WARNING: you are not running one of the supported standard" 1>&2 |
michael@13 | 2005 | echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2 |
michael@13 | 2006 | echo "WARNING: Guessing the location of the system init scripts!" 1>&2 |
michael@13 | 2007 | sroot="" |
michael@13 | 2008 | lroot="" |
michael@13 | 2009 | for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do |
michael@13 | 2010 | if [ -d $sr ]; then |
michael@13 | 2011 | sroot="$sr" |
michael@13 | 2012 | break |
michael@13 | 2013 | fi |
michael@13 | 2014 | done |
michael@13 | 2015 | for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do |
michael@13 | 2016 | if [ -d $lr ]; then |
michael@13 | 2017 | lroot="`echo $lr | sed -e 's;2;%d;'`" |
michael@13 | 2018 | break |
michael@13 | 2019 | fi |
michael@13 | 2020 | done |
michael@13 | 2021 | if [ ".$sroot" = . -o ".$lroot" = . ]; then |
michael@13 | 2022 | echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2 |
michael@13 | 2023 | exit 1 |
michael@13 | 2024 | fi |
michael@13 | 2025 | fi |
michael@13 | 2026 | if [ ! -f $sroot/${name} ]; then |
michael@13 | 2027 | # install transfer script |
michael@13 | 2028 | ( echo "#!/bin/sh" |
michael@13 | 2029 | echo "##" |
michael@13 | 2030 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2031 | echo "##" |
michael@13 | 2032 | echo "" |
michael@13 | 2033 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2034 | echo "case \$1 in" |
michael@13 | 2035 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2036 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2037 | echo "esac" |
michael@13 | 2038 | ) >$sroot/${name} |
michael@13 | 2039 | chmod 755 $sroot/${name} |
michael@13 | 2040 | # create corresponding symbolic links |
michael@13 | 2041 | for i in 2 3 4 5; do |
michael@13 | 2042 | ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/S99${name} |
michael@13 | 2043 | done |
michael@13 | 2044 | for i in 0 1 6; do |
michael@13 | 2045 | ln -s $sroot/${name} `echo $lroot | sed -e "s;%d;$i;"`/K00${name} |
michael@13 | 2046 | done |
michael@13 | 2047 | fi |
michael@13 | 2048 | fi |
michael@13 | 2049 | ;; |
michael@13 | 2050 | SunOS/5.* ) |
michael@13 | 2051 | if [ ! -f /etc/init.d/${name} ]; then |
michael@13 | 2052 | # install transfer script |
michael@13 | 2053 | ( echo "#!/bin/sh" |
michael@13 | 2054 | echo "##" |
michael@13 | 2055 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2056 | echo "##" |
michael@13 | 2057 | echo "" |
michael@13 | 2058 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2059 | echo "case \$1 in" |
michael@13 | 2060 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2061 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2062 | echo "esac" |
michael@13 | 2063 | ) >/etc/init.d/${name} |
michael@13 | 2064 | chmod 755 /etc/init.d/${name} |
michael@13 | 2065 | # create corresponding symbolic links |
michael@13 | 2066 | ( cd /etc |
michael@13 | 2067 | ln init.d/${name} rc3.d/S99${name} |
michael@13 | 2068 | ln init.d/${name} rc0.d/K00${name} |
michael@13 | 2069 | ln init.d/${name} rc1.d/K00${name} |
michael@13 | 2070 | ) || exit $? |
michael@13 | 2071 | fi |
michael@13 | 2072 | ;; |
michael@13 | 2073 | UnixWare/* ) |
michael@13 | 2074 | if [ ! -f /etc/init.d/${name} ]; then |
michael@13 | 2075 | # install transfer script |
michael@13 | 2076 | ( echo "#!/bin/sh" |
michael@13 | 2077 | echo "##" |
michael@13 | 2078 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2079 | echo "##" |
michael@13 | 2080 | echo "" |
michael@13 | 2081 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2082 | echo "case \$1 in" |
michael@13 | 2083 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2084 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2085 | echo "esac" |
michael@13 | 2086 | ) >/etc/init.d/${name} |
michael@13 | 2087 | chmod 755 /etc/init.d/${name} |
michael@13 | 2088 | # create corresponding symbolic links |
michael@13 | 2089 | ( cd /etc |
michael@13 | 2090 | ln init.d/${name} rc2.d/S99${name} |
michael@13 | 2091 | ln init.d/${name} rc0.d/K00${name} |
michael@13 | 2092 | ln init.d/${name} rc1.d/K00${name} |
michael@13 | 2093 | ) || exit $? |
michael@13 | 2094 | fi |
michael@13 | 2095 | ;; |
michael@13 | 2096 | AIX/* ) |
michael@13 | 2097 | if [ ! -f /etc/rc.d/init.d/${name} ]; then |
michael@13 | 2098 | # install transfer script |
michael@13 | 2099 | ( echo "#!/bin/sh" |
michael@13 | 2100 | echo "##" |
michael@13 | 2101 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2102 | echo "##" |
michael@13 | 2103 | echo "" |
michael@13 | 2104 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2105 | echo "case \$1 in" |
michael@13 | 2106 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2107 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2108 | echo "esac" |
michael@13 | 2109 | ) >/etc/rc.d/init.d/${name} |
michael@13 | 2110 | chmod 755 /etc/rc.d/init.d/${name} |
michael@13 | 2111 | # create corresponding symbolic links |
michael@13 | 2112 | ( cd /etc/rc.d |
michael@13 | 2113 | ln -s ../init.d/${name} rc2.d/S99${name} |
michael@13 | 2114 | ) || exit $? |
michael@13 | 2115 | fi |
michael@13 | 2116 | ;; |
michael@13 | 2117 | OSF1/V5.* ) |
michael@13 | 2118 | if [ ! -f /sbin/init.d/${name} ]; then |
michael@13 | 2119 | # install transfer script |
michael@13 | 2120 | ( echo "#!/bin/sh" |
michael@13 | 2121 | echo "##" |
michael@13 | 2122 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2123 | echo "##" |
michael@13 | 2124 | echo "" |
michael@13 | 2125 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2126 | echo "case \$1 in" |
michael@13 | 2127 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2128 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2129 | echo "esac" |
michael@13 | 2130 | ) >/sbin/init.d/${name} |
michael@13 | 2131 | chmod 755 /sbin/init.d/${name} |
michael@13 | 2132 | # create corresponding symbolic links |
michael@13 | 2133 | ( cd /sbin |
michael@13 | 2134 | ln -s ../init.d/${name} rc3.d/S99${name} |
michael@13 | 2135 | ln -s ../init.d/${name} rc0.d/K00${name} |
michael@13 | 2136 | ) || exit $? |
michael@13 | 2137 | fi |
michael@13 | 2138 | ;; |
michael@13 | 2139 | HP-UX/* ) |
michael@13 | 2140 | if [ ! -f /sbin/init.d/${name} ]; then |
michael@13 | 2141 | # install transfer script |
michael@13 | 2142 | ( echo "#!/bin/sh" |
michael@13 | 2143 | echo "##" |
michael@13 | 2144 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2145 | echo "##" |
michael@13 | 2146 | echo "" |
michael@13 | 2147 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2148 | echo "case \$1 in" |
michael@13 | 2149 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2150 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2151 | echo "esac" |
michael@13 | 2152 | ) >/sbin/init.d/${name} |
michael@13 | 2153 | chmod 755 /sbin/init.d/${name} |
michael@13 | 2154 | # create corresponding symbolic links |
michael@13 | 2155 | ( cd /sbin |
michael@13 | 2156 | ln -s ../init.d/${name} rc2.d/S900${name} |
michael@13 | 2157 | ln -s ../init.d/${name} rc1.d/K100${name} |
michael@13 | 2158 | ) || exit $? |
michael@13 | 2159 | fi |
michael@13 | 2160 | ;; |
michael@13 | 2161 | Darwin/* ) |
michael@13 | 2162 | darwin_rc_dir="/System/Library/StartupItems/${name}" |
michael@13 | 2163 | if [ ! -d ${darwin_rc_dir} ]; then |
michael@13 | 2164 | mkdir ${darwin_rc_dir} |
michael@13 | 2165 | fi |
michael@13 | 2166 | |
michael@13 | 2167 | # make sure hierarchy is activated in /etc/hostconfig |
michael@13 | 2168 | # FIXME: cs: simple and bad code here without any detection of existing entries |
michael@13 | 2169 | echo "OPENPKG_${name}=-YES-" >>/etc/hostconfig |
michael@13 | 2170 | |
michael@13 | 2171 | # install transfer script |
michael@13 | 2172 | if [ ! -f ${darwin_rc_dir}/${name} ]; then |
michael@13 | 2173 | rm -f ${darwin_rc_dir}/${name} >/dev/null 2>&1 |
michael@13 | 2174 | ( echo "#!/bin/sh" |
michael@13 | 2175 | echo "##" |
michael@13 | 2176 | echo "## ${darwin_rc_dir}/${name}" |
michael@13 | 2177 | echo "## -- startup transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2178 | echo "##" |
michael@13 | 2179 | echo "" |
michael@13 | 2180 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2181 | echo "" |
michael@13 | 2182 | echo ". /etc/rc.common" |
michael@13 | 2183 | echo "" |
michael@13 | 2184 | echo "if [ \"\${OPENPKG_${name}:=-NO-}\" = \"-YES-\" ]; then" |
michael@13 | 2185 | echo " ConsoleMessage \"OpenPKG ${prefix} hierarchy\"" |
michael@13 | 2186 | echo " ${prefix}/etc/rc all start" |
michael@13 | 2187 | echo "fi" |
michael@13 | 2188 | ) >${darwin_rc_dir}/${name} |
michael@13 | 2189 | chmod 755 ${darwin_rc_dir}/${name} |
michael@13 | 2190 | fi |
michael@13 | 2191 | # install startup parameter list |
michael@13 | 2192 | if [ ! -f ${darwin_rc_dir}/StartupParameters.plist ]; then |
michael@13 | 2193 | rm -f ${darwin_rc_dir}/StartupParameters.plist >/dev/null 2>&1 |
michael@13 | 2194 | ( echo "{" |
michael@13 | 2195 | echo " Description = \"OpenPKG ${prefix} hierarchy\";" |
michael@13 | 2196 | echo " Provides = (\"OpenPKG ${prefix}\");" |
michael@13 | 2197 | echo " Requires = (\"Disks\", \"Network Configuration\", \"Resolver\");" |
michael@13 | 2198 | echo " Uses = (\"Cron\");" |
michael@13 | 2199 | echo " OrderPreference = \"Last\";" |
michael@13 | 2200 | echo " Messages =" |
michael@13 | 2201 | echo " {" |
michael@13 | 2202 | echo " start = \"Starting OpenPKG ${prefix} hierarchy\";" |
michael@13 | 2203 | echo " stop = \"Stopping OpenPKG ${prefix} hierarchy\";" |
michael@13 | 2204 | echo " };" |
michael@13 | 2205 | echo "}" |
michael@13 | 2206 | ) >${darwin_rc_dir}/StartupParameters.plist |
michael@13 | 2207 | chmod 644 ${darwin_rc_dir}/StartupParameters.plist |
michael@13 | 2208 | fi |
michael@13 | 2209 | ;; |
michael@13 | 2210 | IRIX*/6.* ) |
michael@13 | 2211 | if [ ! -f /etc/init.d/${name} ]; then |
michael@13 | 2212 | # install transfer script |
michael@13 | 2213 | ( echo "#!/bin/sh" |
michael@13 | 2214 | echo "##" |
michael@13 | 2215 | echo "## ${name} -- startup/shutdown transfer script for OpenPKG ${prefix} hierarchy" |
michael@13 | 2216 | echo "##" |
michael@13 | 2217 | echo "" |
michael@13 | 2218 | echo "[ ! -f ${prefix}/etc/rc ] && exit 0" |
michael@13 | 2219 | echo "case \$1 in" |
michael@13 | 2220 | echo " start ) exec ${prefix}/etc/rc all start ;;" |
michael@13 | 2221 | echo " stop ) exec ${prefix}/etc/rc all stop ;;" |
michael@13 | 2222 | echo "esac" |
michael@13 | 2223 | ) >/etc/init.d/${name} |
michael@13 | 2224 | chmod 755 /etc/init.d/${name} |
michael@13 | 2225 | # create corresponding links |
michael@13 | 2226 | ( cd /etc |
michael@13 | 2227 | ln -f init.d/${name} rc2.d/S99${name} |
michael@13 | 2228 | ln -f init.d/${name} rc0.d/K00${name} |
michael@13 | 2229 | ) || exit $? |
michael@13 | 2230 | fi |
michael@13 | 2231 | ;; |
michael@13 | 2232 | esac |
michael@13 | 2233 | fi |
michael@13 | 2234 | |
michael@13 | 2235 | # create the cron transfer entries |
michael@13 | 2236 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2237 | echo "openpkg:WARNING: skipping creation of system cron hooks" 1>&2 |
michael@13 | 2238 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2239 | else |
michael@13 | 2240 | case "$plid" in |
michael@13 | 2241 | FreeBSD/* | Linux/* | Darwin/* ) |
michael@13 | 2242 | if [ -f /etc/slackware-version ]; then |
michael@13 | 2243 | exists=`crontab -l | grep "$prefix/etc/rc"` |
michael@13 | 2244 | if [ ".$exists" = . ]; then |
michael@13 | 2245 | EDITOR=/tmp/vipw.$$ |
michael@13 | 2246 | VISUAL="$EDITOR" |
michael@13 | 2247 | export EDITOR |
michael@13 | 2248 | export VISUAL |
michael@13 | 2249 | ( echo "#!/bin/sh" |
michael@13 | 2250 | echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\"" |
michael@13 | 2251 | echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\"" |
michael@13 | 2252 | echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly\"" |
michael@13 | 2253 | echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly\"" |
michael@13 | 2254 | echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily\"" |
michael@13 | 2255 | echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly\"" |
michael@13 | 2256 | echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly\"" |
michael@13 | 2257 | echo " echo \"# </OpenPKG>\"" |
michael@13 | 2258 | echo ") >>\$1" |
michael@13 | 2259 | ) >$EDITOR |
michael@13 | 2260 | chmod a+x $EDITOR |
michael@13 | 2261 | ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $? |
michael@13 | 2262 | rm -f $EDITOR |
michael@13 | 2263 | fi |
michael@13 | 2264 | else |
michael@13 | 2265 | exists=`grep "$prefix/etc/rc" /etc/crontab` |
michael@13 | 2266 | if [ ".$exists" = . ]; then |
michael@13 | 2267 | ( echo "# <OpenPKG prefix=$prefix pkg=openpkg>" |
michael@13 | 2268 | echo "# chronological tasks of ${prefix} OpenPKG hierarchy" |
michael@13 | 2269 | echo "0 0 1 * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly" |
michael@13 | 2270 | echo "0 0 * * 0 root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly" |
michael@13 | 2271 | echo "0 0 * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily" |
michael@13 | 2272 | echo "0 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly" |
michael@13 | 2273 | echo "*/15 * * * * root [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly" |
michael@13 | 2274 | echo "# </OpenPKG>" |
michael@13 | 2275 | ) >>/etc/crontab |
michael@13 | 2276 | fi |
michael@13 | 2277 | fi |
michael@13 | 2278 | ;; |
michael@13 | 2279 | SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* ) |
michael@13 | 2280 | exists=`crontab -l | grep "$prefix/etc/rc"` |
michael@13 | 2281 | if [ ".$exists" = . ]; then |
michael@13 | 2282 | EDITOR=/tmp/vipw.$$ |
michael@13 | 2283 | VISUAL="$EDITOR" |
michael@13 | 2284 | export EDITOR |
michael@13 | 2285 | export VISUAL |
michael@13 | 2286 | ( echo "#!/bin/sh" |
michael@13 | 2287 | echo "( echo \"# <OpenPKG prefix=$prefix pkg=openpkg>\"" |
michael@13 | 2288 | echo " echo \"# chronological tasks of ${prefix} OpenPKG hierarchy\"" |
michael@13 | 2289 | echo " echo \"0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly\"" |
michael@13 | 2290 | echo " echo \"0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly\"" |
michael@13 | 2291 | echo " echo \"0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily\"" |
michael@13 | 2292 | echo " echo \"0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly\"" |
michael@13 | 2293 | echo " echo \"0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly\"" |
michael@13 | 2294 | echo " echo \"# </OpenPKG>\"" |
michael@13 | 2295 | echo ") >>\$1" |
michael@13 | 2296 | ) >$EDITOR |
michael@13 | 2297 | chmod a+x $EDITOR |
michael@13 | 2298 | ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $? |
michael@13 | 2299 | rm -f $EDITOR |
michael@13 | 2300 | fi |
michael@13 | 2301 | ;; |
michael@13 | 2302 | IRIX*/6.* ) |
michael@13 | 2303 | exists=`crontab -l | grep "$prefix/etc/rc"` |
michael@13 | 2304 | if [ ".$exists" = . ]; then |
michael@13 | 2305 | ( crontab -l |
michael@13 | 2306 | echo "# <OpenPKG prefix=$prefix pkg=openpkg>" |
michael@13 | 2307 | echo "# chronological tasks of ${prefix} OpenPKG hierarchy" |
michael@13 | 2308 | echo "0 0 1 * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all monthly" |
michael@13 | 2309 | echo "0 0 * * 0 [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all weekly" |
michael@13 | 2310 | echo "0 0 * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all daily" |
michael@13 | 2311 | echo "0 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all hourly" |
michael@13 | 2312 | echo "0,15,30,45 * * * * [ -f ${prefix}/etc/rc ] && ${prefix}/etc/rc all quarterly" |
michael@13 | 2313 | echo "# </OpenPKG>" |
michael@13 | 2314 | ) | /usr/bin/crontab || exit $? |
michael@13 | 2315 | fi |
michael@13 | 2316 | ;; |
michael@13 | 2317 | esac |
michael@13 | 2318 | fi |
michael@13 | 2319 | |
michael@13 | 2320 | # remember what OpenPKG RPM version was installed, so we can |
michael@13 | 2321 | # correctly upgrade the RPM database in the %post section (see below). |
michael@13 | 2322 | if [ -d ${prefix}/RPM/DB ]; then |
michael@13 | 2323 | if [ -x "${prefix}/bin/openpkg" -a -x "${prefix}/libexec/openpkg/rpm" ]; then |
michael@13 | 2324 | # OpenPKG 2.0 |
michael@13 | 2325 | rpm="${prefix}/bin/openpkg rpm" |
michael@13 | 2326 | else |
michael@13 | 2327 | # OpenPKG 1.x |
michael@13 | 2328 | rpm="${prefix}/bin/rpm" |
michael@13 | 2329 | fi |
michael@13 | 2330 | rm -f ${prefix}/RPM/DB/.version >/dev/null 2>&1 || true |
michael@13 | 2331 | $rpm --version |\ |
michael@13 | 2332 | sed -e 's;^;X;' \ |
michael@13 | 2333 | -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \ |
michael@13 | 2334 | -e 's;^X[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\).*$;\1;' \ |
michael@13 | 2335 | -e 's;^X.*$;4.0;' \ |
michael@13 | 2336 | >${prefix}/RPM/DB/.version |
michael@13 | 2337 | fi |
michael@13 | 2338 | |
michael@13 | 2339 | %post |
michael@13 | 2340 | # optional post-processing from "pre" section |
michael@13 | 2341 | if [ -f %{l_prefix}.pre-post-process.sh ]; then |
michael@13 | 2342 | sh %{l_prefix}.pre-post-process.sh |
michael@13 | 2343 | rm -f %{l_prefix}.pre-post-process.sh |
michael@13 | 2344 | fi |
michael@13 | 2345 | |
michael@13 | 2346 | # update or initially create OpenPKG UUID configuration |
michael@13 | 2347 | %{l_prefix}/bin/openpkg uuid update >/dev/null 2>&1 || true |
michael@13 | 2348 | |
michael@13 | 2349 | # determine new and old OpenPKG RPM version |
michael@13 | 2350 | V_rpm_new="%{V_rpm}" |
michael@13 | 2351 | if [ -f %{l_prefix}/RPM/DB/.version ]; then |
michael@13 | 2352 | V_rpm_old="`cat %{l_prefix}/RPM/DB/.version`" |
michael@13 | 2353 | rm -f %{l_prefix}/RPM/DB/.version >/dev/null 2>&1 || true |
michael@13 | 2354 | else |
michael@13 | 2355 | V_rpm_old="4.0" |
michael@13 | 2356 | fi |
michael@13 | 2357 | |
michael@13 | 2358 | # make sure all RPM database files are present and that their |
michael@13 | 2359 | # attributes are correct, etc. This is not a database rebuild |
michael@13 | 2360 | # operation, so this is fully harmless and can be done always. |
michael@13 | 2361 | %{l_prefix}/lib/openpkg/rpmdb --quiet --fixate |
michael@13 | 2362 | |
michael@13 | 2363 | # check RPM database for upgrade requirements |
michael@13 | 2364 | if [ ".$1" = .2 -a ".$V_rpm_old" != ".$V_rpm_new" ]; then |
michael@13 | 2365 | # RPM 4.0/4.1 does not allow concurrent database access, so we |
michael@13 | 2366 | # cannot upgrade the database immediately from here (because |
michael@13 | 2367 | # we are still running within the execution context of the |
michael@13 | 2368 | # old RPM which in turn has the database locked) and instead |
michael@13 | 2369 | # have to just drop a note to the administrator about database |
michael@13 | 2370 | # upgrading. RPM 4.2 in general allows concurrent database |
michael@13 | 2371 | # access, but the whole stuff is too risky here, too. |
michael@13 | 2372 | ( echo "You are upgrading the OpenPKG bootstrap from a previous" |
michael@13 | 2373 | echo "RPM $V_rpm_old based version to this RPM $V_rpm_new based" |
michael@13 | 2374 | echo "version. The RPM database in %{l_prefix}/RPM/DB/ can still" |
michael@13 | 2375 | echo "be used, but it is strongly recommended to upgrade it as" |
michael@13 | 2376 | echo "soon as possible to the latest Berkeley-DB format files by" |
michael@13 | 2377 | echo "executing the command:" |
michael@13 | 2378 | echo " \$ %{l_prefix}/bin/openpkg rpm --db-rebuild" |
michael@13 | 2379 | echo "In case of problems with the RPM database you can always" |
michael@13 | 2380 | echo "execute the command:" |
michael@13 | 2381 | echo " \$ %{l_prefix}/bin/openpkg rpm --db-cleanup" |
michael@13 | 2382 | ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t warn |
michael@13 | 2383 | fi |
michael@13 | 2384 | |
michael@13 | 2385 | # system command overriding support |
michael@13 | 2386 | # ATTENTION: THIS BETTER SHOULD BE REPLACED WITH A MORE GENERIC |
michael@13 | 2387 | # BUILD COMMAND OVERRIDE SOLUTION! |
michael@13 | 2388 | if [ ! -d %{l_prefix}/lib/openpkg/override ]; then |
michael@13 | 2389 | mkdir %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true |
michael@13 | 2390 | fi |
michael@13 | 2391 | chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true |
michael@13 | 2392 | case "`cat %{l_prefix}/etc/openpkg/platform`" in |
michael@13 | 2393 | *-*-debian* | *-*-ubuntu* ) |
michael@13 | 2394 | # FIXME: Evil hack to workaround build problems under Debian |
michael@13 | 2395 | # (at least 3.1) (and similar platforms) where a Debian |
michael@13 | 2396 | # install-info(8) exists which is both API and functionally |
michael@13 | 2397 | # incompatible to the de-facto standardized install-info(8) |
michael@13 | 2398 | # command from GNU Texinfo. |
michael@13 | 2399 | if [ ! -f %{l_prefix}/lib/openpkg/override/install-info ]; then |
michael@13 | 2400 | ( echo "#!/bin/sh" |
michael@13 | 2401 | echo "echo 'OpenPKG: NOTICE: install-info(8) command execution overridden'" |
michael@13 | 2402 | echo "exit 0" |
michael@13 | 2403 | ) >%{l_prefix}/lib/openpkg/override/install-info |
michael@13 | 2404 | chmod 775 %{l_prefix}/lib/openpkg/override/install-info |
michael@13 | 2405 | fi |
michael@13 | 2406 | ;; |
michael@13 | 2407 | *-*-macosx* | *-*-darwin* ) |
michael@13 | 2408 | # FIXME: Evil hack to workaround the fact that Mac OS X' |
michael@13 | 2409 | # linker by default prefers the /usr/lib libraries and does |
michael@13 | 2410 | # not honor the -L options the way one would expect it. |
michael@13 | 2411 | gcc="`%{l_prefix}/lib/openpkg/shtool path gcc`" |
michael@13 | 2412 | cc="`%{l_prefix}/lib/openpkg/shtool path cc`" |
michael@13 | 2413 | ld="`%{l_prefix}/lib/openpkg/shtool path ld`" |
michael@13 | 2414 | if [ ".$gcc" != . -a ! -f %{l_prefix}/lib/openpkg/override/gcc ]; then |
michael@13 | 2415 | ( echo "#!/bin/sh" |
michael@13 | 2416 | echo "case \" \$* \" in" |
michael@13 | 2417 | echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;" |
michael@13 | 2418 | echo " * ) exec $gcc -Wl,-search_paths_first \"\$@\" ;;" |
michael@13 | 2419 | echo "esac" |
michael@13 | 2420 | ) >%{l_prefix}/lib/openpkg/override/gcc |
michael@13 | 2421 | chmod 775 %{l_prefix}/lib/openpkg/override/gcc |
michael@13 | 2422 | fi |
michael@13 | 2423 | if [ ".$cc" != . -a ! -f %{l_prefix}/lib/openpkg/override/cc ]; then |
michael@13 | 2424 | ( echo "#!/bin/sh" |
michael@13 | 2425 | echo "case \" \$* \" in" |
michael@13 | 2426 | echo " *\" -c \"* | *\" -E \"* ) exec $gcc \"\$@\" ;;" |
michael@13 | 2427 | echo " * ) exec $cc -Wl,-search_paths_first \"\$@\" ;;" |
michael@13 | 2428 | echo "esac" |
michael@13 | 2429 | ) >%{l_prefix}/lib/openpkg/override/cc |
michael@13 | 2430 | chmod 775 %{l_prefix}/lib/openpkg/override/cc |
michael@13 | 2431 | fi |
michael@13 | 2432 | if [ ".$ld" != . -a ! -f %{l_prefix}/lib/openpkg/override/ld ]; then |
michael@13 | 2433 | ( echo "#!/bin/sh" |
michael@13 | 2434 | echo "exec $ld -search_paths_first \"\$@\"" |
michael@13 | 2435 | ) >%{l_prefix}/lib/openpkg/override/ld |
michael@13 | 2436 | chmod 775 %{l_prefix}/lib/openpkg/override/ld |
michael@13 | 2437 | fi |
michael@13 | 2438 | ;; |
michael@13 | 2439 | esac |
michael@13 | 2440 | |
michael@13 | 2441 | # FIXME: hack to workaround problems in environments with too few |
michael@13 | 2442 | # development tools. ATTENTION: see one paragraph above. |
michael@13 | 2443 | if [ ! -d %{l_prefix}/lib/openpkg/fallback ]; then |
michael@13 | 2444 | mkdir %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true |
michael@13 | 2445 | fi |
michael@13 | 2446 | chown %{l_musr}:%{l_mgrp} %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true |
michael@13 | 2447 | |
michael@13 | 2448 | # check for "openpkg" executable from the OpenPKG Community series |
michael@13 | 2449 | # print license if not OSS, otherwise register with openpkg.org |
michael@13 | 2450 | community_version=`%{l_prefix}/bin/openpkg --license 2>/dev/null | \ |
michael@13 | 2451 | sed -e 'q' | egrep '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*-C'` |
michael@13 | 2452 | if [ ".$community_version" = . ]; then |
michael@13 | 2453 | ( echo "" |
michael@13 | 2454 | echo "NOTICE: This OpenPKG bootstrap package is based on an \"openpkg\"" |
michael@13 | 2455 | echo "executable which is covered by the following terms of use:" |
michael@13 | 2456 | echo "______________________________________________________________________________" |
michael@13 | 2457 | echo "" |
michael@13 | 2458 | %{l_prefix}/bin/openpkg --license | sed -e '1d' |
michael@13 | 2459 | ) | %{l_prefix}/lib/openpkg/rpmtool msg -b -t notice |
michael@13 | 2460 | else |
michael@13 | 2461 | %{l_prefix}/bin/openpkg register </dev/null >/dev/null 2>&1 || true |
michael@13 | 2462 | fi |
michael@13 | 2463 | |
michael@13 | 2464 | %preun |
michael@13 | 2465 | [ ".$1" != .0 ] && exit 0 |
michael@13 | 2466 | |
michael@13 | 2467 | # remove override files |
michael@13 | 2468 | if [ -d %{l_prefix}/lib/openpkg/override ]; then |
michael@13 | 2469 | rm -rf %{l_prefix}/lib/openpkg/override >/dev/null 2>&1 || true |
michael@13 | 2470 | fi |
michael@13 | 2471 | |
michael@13 | 2472 | # remove fallback files |
michael@13 | 2473 | if [ -d %{l_prefix}/lib/openpkg/fallback ]; then |
michael@13 | 2474 | rm -rf %{l_prefix}/lib/openpkg/fallback >/dev/null 2>&1 || true |
michael@13 | 2475 | fi |
michael@13 | 2476 | |
michael@13 | 2477 | # remove files which are not RPM controlled |
michael@13 | 2478 | rm -rf %{l_prefix}/RPM/TMP/* %{l_prefix}/RPM/TMP/.[a-z]* >/dev/null 2>&1 || true |
michael@13 | 2479 | rm -rf %{l_prefix}/RPM/SRC/* %{l_prefix}/RPM/SRC/.[a-z]* >/dev/null 2>&1 || true |
michael@13 | 2480 | rm -rf %{l_prefix}/RPM/PKG/* %{l_prefix}/RPM/PKG/.[a-z]* >/dev/null 2>&1 || true |
michael@13 | 2481 | rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true |
michael@13 | 2482 | |
michael@13 | 2483 | # The following code usually would be done in a %postun section. |
michael@13 | 2484 | # But because we already had to remove the database in this %preun |
michael@13 | 2485 | # section (see the 'rm' commands above) in order to make RPM happy |
michael@13 | 2486 | # inside its own removal procedure, RPM would no longer find the |
michael@13 | 2487 | # %postun script (because it's recorded in the database files). So |
michael@13 | 2488 | # we have to perform the procedure already in this %preun script. |
michael@13 | 2489 | # except for the removal of the top-level directory it does not |
michael@13 | 2490 | # matter. But the top-level directory can only be removed after |
michael@13 | 2491 | # the RPM removal procedure took place, so we play a little delay |
michael@13 | 2492 | # trick below. |
michael@13 | 2493 | |
michael@13 | 2494 | # determine current user |
michael@13 | 2495 | cusr=`(id -un) 2>/dev/null ||\ |
michael@13 | 2496 | (id | sed -e 's;^[^(]*(\([^)]*\)).*;\1;') 2>/dev/null ||\ |
michael@13 | 2497 | (whoami) 2>/dev/null ||\ |
michael@13 | 2498 | (who am i | cut "-d " -f1) 2>/dev/null ||\ |
michael@13 | 2499 | echo $LOGNAME` |
michael@13 | 2500 | |
michael@13 | 2501 | # determine runtime details (for both inside and outside RPM!!) |
michael@13 | 2502 | user="%{l_musr}" |
michael@13 | 2503 | group="%{l_mgrp}" |
michael@13 | 2504 | prefix="%{l_prefix}" |
michael@13 | 2505 | prefix=`echo "$prefix" | sed -e 's;//*;/;g' -e 's;/$;;'` |
michael@13 | 2506 | |
michael@13 | 2507 | # determine platform id |
michael@13 | 2508 | s=`(uname -s) 2>/dev/null` || s='Unknown' |
michael@13 | 2509 | r=`(uname -r) 2>/dev/null` || r='0.0' |
michael@13 | 2510 | plid="${s}/${r}" |
michael@13 | 2511 | |
michael@13 | 2512 | # unregister instance in presence file |
michael@13 | 2513 | presence="/etc/openpkg" |
michael@13 | 2514 | exists=`cat $presence 2>/dev/null | egrep "^ *${prefix} *\$"` |
michael@13 | 2515 | if [ ".$exists" != . ]; then |
michael@13 | 2516 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2517 | echo "openpkg:WARNING: skipping unregistering of $prefix in $presence" 1>&2 |
michael@13 | 2518 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2519 | else |
michael@13 | 2520 | cp $presence $presence.bak && \ |
michael@13 | 2521 | egrep -v "^ *${prefix} *\$" $presence.bak >$presence |
michael@13 | 2522 | rm -f $presence.bak >/dev/null 2>&1 |
michael@13 | 2523 | if [ ".`cat $presence`" = . ]; then |
michael@13 | 2524 | rm -f $presence >/dev/null 2>&1 |
michael@13 | 2525 | fi |
michael@13 | 2526 | fi |
michael@13 | 2527 | fi |
michael@13 | 2528 | |
michael@13 | 2529 | # remove entry in /etc/shells |
michael@13 | 2530 | shell="${prefix}/lib/openpkg/bash" |
michael@13 | 2531 | exists=`cat /etc/shells 2>/dev/null | grep "^$shell"` |
michael@13 | 2532 | if [ ".$exists" != . ]; then |
michael@13 | 2533 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2534 | echo "openpkg:WARNING: skipping deletion of $shell from /etc/shells" 1>&2 |
michael@13 | 2535 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2536 | else |
michael@13 | 2537 | cp /etc/shells /etc/shells.bak && \ |
michael@13 | 2538 | grep -v "^${shell}" /etc/shells.bak >/etc/shells |
michael@13 | 2539 | rm -f /etc/shells.bak >/dev/null 2>&1 |
michael@13 | 2540 | fi |
michael@13 | 2541 | fi |
michael@13 | 2542 | |
michael@13 | 2543 | # remove the hierarchy user/group |
michael@13 | 2544 | for req in "super-user:%{l_susr}:%{l_suid}:%{l_sgrp}:%{l_sgid}" \ |
michael@13 | 2545 | "management:%{l_musr}:%{l_muid}:%{l_mgrp}:%{l_mgid}" \ |
michael@13 | 2546 | "restricted:%{l_rusr}:%{l_ruid}:%{l_rgrp}:%{l_rgid}" \ |
michael@13 | 2547 | "non-privileged:%{l_nusr}:%{l_nuid}:%{l_ngrp}:%{l_ngid}"; do |
michael@13 | 2548 | # split request into class/usr/uid/grp/gid |
michael@13 | 2549 | OIFS="$IFS"; IFS=":"; set -- $req; IFS="$OIFS" |
michael@13 | 2550 | class="$1"; usr="$2"; uid="$3"; grp="$4"; gid="$5" |
michael@13 | 2551 | |
michael@13 | 2552 | # check whether user already exists |
michael@13 | 2553 | exists=`(getent passwd "$usr"; \ |
michael@13 | 2554 | grep "^$usr:" /etc/passwd; \ |
michael@13 | 2555 | ypmatch "$usr" passwd; \ |
michael@13 | 2556 | nismatch "$usr" passwd; \ |
michael@13 | 2557 | nidump passwd . | grep "^$usr:") 2>/dev/null | \ |
michael@13 | 2558 | sed -e 'q'` |
michael@13 | 2559 | if [ ".$exists" != . ]; then |
michael@13 | 2560 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2561 | echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2 |
michael@13 | 2562 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2563 | elif [ ".$usr" = ".root" ]; then |
michael@13 | 2564 | echo "openpkg:WARNING: skipping deletion of OpenPKG $class user $usr" 1>&2 |
michael@13 | 2565 | echo "openpkg:WARNING: (would remove system standard user)" 1>&2 |
michael@13 | 2566 | else |
michael@13 | 2567 | case "$plid" in |
michael@13 | 2568 | FreeBSD/* | NetBSD/* ) |
michael@13 | 2569 | cp /etc/master.passwd /etc/master.passwd.bak && \ |
michael@13 | 2570 | grep -v "^${usr}:" /etc/master.passwd.bak >/etc/master.passwd |
michael@13 | 2571 | ( PATH="$PATH:/usr/sbin"; pwd_mkdb -p /etc/master.passwd ) || exit $? |
michael@13 | 2572 | rm -f /etc/master.passwd.bak >/dev/null 2>&1 |
michael@13 | 2573 | ;; |
michael@13 | 2574 | Linux/* | SunOS/5.* | UnixWare/* ) |
michael@13 | 2575 | cp /etc/passwd /etc/passwd.bak && \ |
michael@13 | 2576 | grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd |
michael@13 | 2577 | ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $? |
michael@13 | 2578 | rm -f /etc/passwd.bak >/dev/null 2>&1 |
michael@13 | 2579 | ;; |
michael@13 | 2580 | AIX/* ) |
michael@13 | 2581 | rmuser -p "${usr}" |
michael@13 | 2582 | cp /etc/security/login.cfg /etc/security/login.cfg.bak && \ |
michael@13 | 2583 | sed -e "/^usw:/,/^[^ ]/s;\\( *shells =.*\\),$shell\\(.*\\)\$;\\1\\2;" \ |
michael@13 | 2584 | </etc/security/login.cfg.bak >/etc/security/login.cfg && \ |
michael@13 | 2585 | rm -f /etc/security/login.cfg.bak >/dev/null 2>&1 |
michael@13 | 2586 | ;; |
michael@13 | 2587 | OSF1/V5.* ) |
michael@13 | 2588 | cp /etc/passwd /etc/passwd.bak && \ |
michael@13 | 2589 | grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd |
michael@13 | 2590 | ( PATH="$PATH:/usr/sbin"; mkpasswd /etc/passwd ) || exit $? |
michael@13 | 2591 | rm -f /etc/passwd.bak >/dev/null 2>&1 |
michael@13 | 2592 | ;; |
michael@13 | 2593 | HP-UX/* ) |
michael@13 | 2594 | cp /etc/passwd /etc/passwd.bak && \ |
michael@13 | 2595 | grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd |
michael@13 | 2596 | rm -f /etc/passwd.bak >/dev/null 2>&1 |
michael@13 | 2597 | ;; |
michael@13 | 2598 | Darwin/* ) |
michael@13 | 2599 | niutil -destroy . "/users/${usr}" |
michael@13 | 2600 | ;; |
michael@13 | 2601 | IRIX*/6.* ) |
michael@13 | 2602 | cp /etc/passwd /etc/passwd.bak && \ |
michael@13 | 2603 | grep -v "^${usr}:" /etc/passwd.bak >/etc/passwd |
michael@13 | 2604 | if [ -f /etc/shadow ] |
michael@13 | 2605 | then ( PATH="$PATH:/usr/sbin"; pwconv ) || exit $? |
michael@13 | 2606 | fi |
michael@13 | 2607 | rm -f /etc/passwd.bak >/dev/null 2>&1 |
michael@13 | 2608 | ;; |
michael@13 | 2609 | esac |
michael@13 | 2610 | fi |
michael@13 | 2611 | fi |
michael@13 | 2612 | |
michael@13 | 2613 | # check whether group already exists |
michael@13 | 2614 | exists=`(getent group "$grp"; \ |
michael@13 | 2615 | grep "^$grp:" /etc/group; \ |
michael@13 | 2616 | ypmatch "$grp" group; \ |
michael@13 | 2617 | nismatch "$grp" group; \ |
michael@13 | 2618 | nidump group . | grep "^$grp:") 2>/dev/null | \ |
michael@13 | 2619 | sed -e 'q'` |
michael@13 | 2620 | if [ ".$exists" != . ]; then |
michael@13 | 2621 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2622 | echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2 |
michael@13 | 2623 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2624 | elif [ ".$usr" = ".root" ] || [ ".$grp" = ".root" ] || [ ".$grp" = ".wheel" ]; then |
michael@13 | 2625 | echo "openpkg:WARNING: skipping deletion of OpenPKG $class group $grp" 1>&2 |
michael@13 | 2626 | echo "openpkg:WARNING: (would remove system standard group)" 1>&2 |
michael@13 | 2627 | else |
michael@13 | 2628 | case "$plid" in |
michael@13 | 2629 | Darwin/* ) |
michael@13 | 2630 | niutil -destroy . "/groups/${grp}" |
michael@13 | 2631 | ;; |
michael@13 | 2632 | AIX/* ) |
michael@13 | 2633 | rmgroup "${grp}" |
michael@13 | 2634 | ;; |
michael@13 | 2635 | * ) |
michael@13 | 2636 | cp /etc/group /etc/group.bak && \ |
michael@13 | 2637 | grep -v "^${grp}:" /etc/group.bak >/etc/group |
michael@13 | 2638 | rm -f /etc/group.bak >/dev/null 2>&1 |
michael@13 | 2639 | ;; |
michael@13 | 2640 | esac |
michael@13 | 2641 | fi |
michael@13 | 2642 | fi |
michael@13 | 2643 | done |
michael@13 | 2644 | |
michael@13 | 2645 | # invalidate passwd and group tables from Name Service Cache Daemon to |
michael@13 | 2646 | # ensure chown/chgrp works immediately after pwconv on Linux and Solaris |
michael@13 | 2647 | if [ -x /usr/sbin/nscd ]; then |
michael@13 | 2648 | /usr/sbin/nscd -i passwd >/dev/null 2>&1 || true |
michael@13 | 2649 | /usr/sbin/nscd -i group >/dev/null 2>&1 || true |
michael@13 | 2650 | fi |
michael@13 | 2651 | |
michael@13 | 2652 | # remove the startup/shutdown transfer scripts |
michael@13 | 2653 | name=`echo "$prefix" | sed -e 's;/;;g'` |
michael@13 | 2654 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2655 | echo "openpkg:WARNING: skipping deletion of system run-command hooks" 1>&2 |
michael@13 | 2656 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2657 | else |
michael@13 | 2658 | case "$plid" in |
michael@13 | 2659 | FreeBSD/* ) |
michael@13 | 2660 | rm -f /etc/rc.d/openpkg-${name} >/dev/null 2>&1 |
michael@13 | 2661 | ;; |
michael@13 | 2662 | NetBSD/* ) |
michael@13 | 2663 | rm -f /etc/rc.d/${name} >/dev/null 2>&1 |
michael@13 | 2664 | ;; |
michael@13 | 2665 | Linux/* ) |
michael@13 | 2666 | if [ -f /etc/gentoo-release ]; then |
michael@13 | 2667 | /sbin/rc-update del openpkg-${name} >/dev/null 2>&1 |
michael@13 | 2668 | rm -f /etc/init.d/openpkg-${name} >/dev/null 2>&1 |
michael@13 | 2669 | else |
michael@13 | 2670 | # sroot: script root directory |
michael@13 | 2671 | # lroot: link root directory |
michael@13 | 2672 | if [ -f /etc/debian_version ]; then |
michael@13 | 2673 | sroot=/etc/init.d |
michael@13 | 2674 | lroot=/etc/rc%d.d |
michael@13 | 2675 | elif [ -f /etc/redhat-release -o -f /etc/mandrake-release ]; then |
michael@13 | 2676 | sroot=/etc/rc.d/init.d |
michael@13 | 2677 | lroot=/etc/rc.d/rc%d.d |
michael@13 | 2678 | elif [ -f /etc/SuSE-release ]; then |
michael@13 | 2679 | sroot=/etc/init.d |
michael@13 | 2680 | lroot=/etc/init.d/rc%d.d |
michael@13 | 2681 | elif [ -f /etc/slackware-version ]; then |
michael@13 | 2682 | sroot=/etc/rc.d |
michael@13 | 2683 | lroot=/etc/rc.d/rc%d.d |
michael@13 | 2684 | name="rc.${name}" |
michael@13 | 2685 | else |
michael@13 | 2686 | echo "WARNING: you are not running one of the supported standard" 1>&2 |
michael@13 | 2687 | echo "WARNING: Linux platforms (Debian, RedHat, Mandrake, SuSE, Gentoo)." 1>&2 |
michael@13 | 2688 | echo "WARNING: Guessing the location of the system init scripts!" 1>&2 |
michael@13 | 2689 | sroot="" |
michael@13 | 2690 | lroot="" |
michael@13 | 2691 | for sr in /etc/rc.d/init.d /etc/init.d /sbin/init.d; do |
michael@13 | 2692 | if [ -d $sr ]; then |
michael@13 | 2693 | sroot="$sr" |
michael@13 | 2694 | break |
michael@13 | 2695 | fi |
michael@13 | 2696 | done |
michael@13 | 2697 | for lr in /etc/rc.d/rc2.d /etc/rc2.d /sbin/init.d/rc2.d; do |
michael@13 | 2698 | if [ -d $lr ]; then |
michael@13 | 2699 | lroot="`echo $lr | sed -e 's;2;%d;'`" |
michael@13 | 2700 | break |
michael@13 | 2701 | fi |
michael@13 | 2702 | done |
michael@13 | 2703 | if [ ".$sroot" = . -o ".$lroot" = . ]; then |
michael@13 | 2704 | echo "ERROR: Failed to guess the location of the system init scripts!" 1>&2 |
michael@13 | 2705 | exit 1 |
michael@13 | 2706 | fi |
michael@13 | 2707 | fi |
michael@13 | 2708 | rm -f ${sroot}/${name} >/dev/null 2>&1 |
michael@13 | 2709 | for i in 2 3 4 5; do |
michael@13 | 2710 | rm -f `echo $lroot | sed -e "s;%d;$i;"`/S99${name} >/dev/null 2>&1 |
michael@13 | 2711 | done |
michael@13 | 2712 | for i in 0 1 6; do |
michael@13 | 2713 | rm -f `echo $lroot | sed -e "s;%d;$i;"`/K00${name} >/dev/null 2>&1 |
michael@13 | 2714 | done |
michael@13 | 2715 | if [ -f /etc/slackware-version ]; then |
michael@13 | 2716 | for i in 0 1 2 3 4 5 6; do |
michael@13 | 2717 | l=`echo $lroot | sed -e "s;%d;$i;"` |
michael@13 | 2718 | if [ -d $l ]; then |
michael@13 | 2719 | rmdir $l >/dev/null 2>&1 || true |
michael@13 | 2720 | fi |
michael@13 | 2721 | done |
michael@13 | 2722 | fi |
michael@13 | 2723 | fi |
michael@13 | 2724 | ;; |
michael@13 | 2725 | SunOS/5.* ) |
michael@13 | 2726 | rm -f /etc/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2727 | rm -f /etc/rc3.d/S99${name} >/dev/null 2>&1 |
michael@13 | 2728 | rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2729 | rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2730 | ;; |
michael@13 | 2731 | UnixWare/* ) |
michael@13 | 2732 | rm -f /etc/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2733 | rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1 |
michael@13 | 2734 | rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2735 | rm -f /etc/rc1.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2736 | ;; |
michael@13 | 2737 | AIX/* ) |
michael@13 | 2738 | rm -f /etc/rc.d/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2739 | rm -f /etc/rc.d/rc2.d/S99${name} >/dev/null 2>&1 |
michael@13 | 2740 | ;; |
michael@13 | 2741 | OSF1/V5.* ) |
michael@13 | 2742 | rm -f /sbin/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2743 | rm -f /sbin/rc3.d/S99${name} >/dev/null 2>&1 |
michael@13 | 2744 | rm -f /sbin/rc0.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2745 | ;; |
michael@13 | 2746 | HP-UX/* ) |
michael@13 | 2747 | rm -f /sbin/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2748 | rm -f /etc/rc2.d/S900${name} >/dev/null 2>&1 |
michael@13 | 2749 | rm -f /etc/rc1.d/K100${name} >/dev/null 2>&1 |
michael@13 | 2750 | ;; |
michael@13 | 2751 | Darwin/* ) |
michael@13 | 2752 | cp /etc/hostconfig /etc/hostconfig.bak && \ |
michael@13 | 2753 | grep -v "^OPENPKG_${name}=" /etc/hostconfig.bak >/etc/hostconfig |
michael@13 | 2754 | rm -f /etc/hostconfig.bak >/dev/null 2>&1 |
michael@13 | 2755 | rm -rf /System/Library/StartupItems/${name} >/dev/null 2>&1 |
michael@13 | 2756 | ;; |
michael@13 | 2757 | IRIX*/6.* ) |
michael@13 | 2758 | rm -f /etc/init.d/${name} >/dev/null 2>&1 |
michael@13 | 2759 | rm -f /etc/rc2.d/S99${name} >/dev/null 2>&1 |
michael@13 | 2760 | rm -f /etc/rc0.d/K00${name} >/dev/null 2>&1 |
michael@13 | 2761 | ;; |
michael@13 | 2762 | esac |
michael@13 | 2763 | fi |
michael@13 | 2764 | |
michael@13 | 2765 | # remove the cron transfer entries |
michael@13 | 2766 | if [ ".$cusr" != ".root" ]; then |
michael@13 | 2767 | echo "openpkg:WARNING: skipping deletion of system cron hooks" 1>&2 |
michael@13 | 2768 | echo "openpkg:WARNING: (would require root-privileges)" 1>&2 |
michael@13 | 2769 | else |
michael@13 | 2770 | case "$plid" in |
michael@13 | 2771 | FreeBSD/* | Linux/* | Darwin/* ) |
michael@13 | 2772 | if [ -f /etc/slackware-version ]; then |
michael@13 | 2773 | EDITOR=/tmp/vipw.$$ |
michael@13 | 2774 | VISUAL="$EDITOR" |
michael@13 | 2775 | export EDITOR |
michael@13 | 2776 | export VISUAL |
michael@13 | 2777 | p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'` |
michael@13 | 2778 | ( echo "cp \$1 \$1.bak" |
michael@13 | 2779 | echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1" |
michael@13 | 2780 | echo "rm -f \$1.bak" |
michael@13 | 2781 | ) >$EDITOR |
michael@13 | 2782 | chmod a+x $EDITOR |
michael@13 | 2783 | ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $? |
michael@13 | 2784 | rm -f $EDITOR |
michael@13 | 2785 | else |
michael@13 | 2786 | exists=`grep "<OpenPKG prefix=$prefix pkg=openpkg>" /etc/crontab` |
michael@13 | 2787 | if [ ".$exists" != . ]; then |
michael@13 | 2788 | p=`echo $prefix | sed -e 's;/;\\\\/;g'` |
michael@13 | 2789 | cp /etc/crontab /etc/crontab.bak |
michael@13 | 2790 | cat /etc/crontab.bak |\ |
michael@13 | 2791 | sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\\/OpenPKG>/d" \ |
michael@13 | 2792 | >/etc/crontab |
michael@13 | 2793 | rm -f /etc/crontab.bak >/dev/null 2>&1 |
michael@13 | 2794 | fi |
michael@13 | 2795 | fi |
michael@13 | 2796 | ;; |
michael@13 | 2797 | SunOS/5.* | OSF1/V5.* | NetBSD/* | HP-UX/* | UnixWare/* | AIX/* ) |
michael@13 | 2798 | EDITOR=/tmp/vipw.$$ |
michael@13 | 2799 | VISUAL="$EDITOR" |
michael@13 | 2800 | export EDITOR |
michael@13 | 2801 | export VISUAL |
michael@13 | 2802 | p=`echo $prefix | sed -e 's;/;\\\\\\\\/;g'` |
michael@13 | 2803 | ( echo "cp \$1 \$1.bak" |
michael@13 | 2804 | echo "cat \$1.bak | sed -e \"/<OpenPKG prefix=$p pkg=openpkg>/,/<\\\\/OpenPKG>/d\" >\$1" |
michael@13 | 2805 | echo "rm -f \$1.bak" |
michael@13 | 2806 | ) >$EDITOR |
michael@13 | 2807 | chmod a+x $EDITOR |
michael@13 | 2808 | ( PATH="$PATH:/usr/bin"; crontab -e ) || exit $? |
michael@13 | 2809 | rm -f $EDITOR |
michael@13 | 2810 | ;; |
michael@13 | 2811 | IRIX*/6.* ) |
michael@13 | 2812 | p=`echo $prefix | sed -e 's;/;\\\\\\/;g'` |
michael@13 | 2813 | ( crontab -l | |
michael@13 | 2814 | sed -e "/<OpenPKG prefix=$p pkg=openpkg>/,/<\/OpenPKG>/d" |
michael@13 | 2815 | ) | /usr/bin/crontab || exit $? |
michael@13 | 2816 | ;; |
michael@13 | 2817 | esac |
michael@13 | 2818 | fi |
michael@13 | 2819 | |
michael@13 | 2820 | # delayed removal of top-level directory. |
michael@13 | 2821 | ( sleep 2 |
michael@13 | 2822 | rm -rf %{l_prefix}/RPM/DB/* %{l_prefix}/RPM/DB/.[a-z]* >/dev/null 2>&1 || true |
michael@13 | 2823 | rmdir %{l_prefix}/RPM/DB >/dev/null 2>&1 || true |
michael@13 | 2824 | rmdir %{l_prefix}/RPM >/dev/null 2>&1 || true |
michael@13 | 2825 | rmdir %{l_prefix} >/dev/null 2>&1 || true |
michael@13 | 2826 | ) </dev/null >/dev/null 2>/dev/null & |
michael@13 | 2827 |