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