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