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