1.1 --- a/openpkg/rpm.patch.feature Tue Jul 31 12:27:54 2012 +0200 1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 1.3 @@ -1,2227 +0,0 @@ 1.4 -## 1.5 -## rpm.patch.feature -- Annotated OpenPKG RPM Patch file 1.6 -## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> 1.7 -## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> 1.8 -## 1.9 -## This file assembles changes to existing RPM source files between 1.10 -## the original RedHat RPM and the OpenPKG RPM variant. It can be 1.11 -## automatically applied to a vanilla RedHat RPM source tree with the 1.12 -## 'patch' tool to upgrade those files. Each patch snippet is annotated 1.13 -## with a short description. 1.14 -## 1.15 -## Created on: 13-Sep-2006 1.16 -## 1.17 -## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG 1.18 -## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE. 1.19 -## 1.20 - 1.21 -+--------------------------------------------------------------------------- 1.22 -| Remove "tools" directory from sub-directory list because it contains 1.23 -| things we are not interested in and which cause some build trouble 1.24 -| anyway. 1.25 -| Use a plain "rpmpopt" file without any trailing version. 1.26 -| Adjust paths to conform to OpenPKG filesystem layout. 1.27 -| Do not run the "installplatform" script, because not needed for OpenPKG. 1.28 -+--------------------------------------------------------------------------- 1.29 -Index: Makefile.am 1.30 ---- Makefile.am 29 May 2003 18:20:28 -0000 1.1.1.17 1.31 -+++ Makefile.am 22 Jan 2004 21:42:02 -0000 1.2 1.32 -@@ -12,9 +12,9 @@ 1.33 - xmlspec/examples/*.sh xmlspec/examples/*.lst \ 1.34 - xmlspec/examples/*.xmlspec \ 1.35 - po/*.in po/*.po po/rpm.pot \ 1.36 -- rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c 1.37 -+ rpm.magic rpmpopt rpmqv.c rpm.c 1.38 - 1.39 --SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt @WITH_BEECRYPT_SUBDIR@ rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc . 1.40 -+SUBDIRS = intl @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt @WITH_BEECRYPT_SUBDIR@ rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ scripts tests doc . 1.41 - 1.42 - INCLUDES = \ 1.43 - -I$(top_srcdir)/build \ 1.44 -@@ -47,13 +47,10 @@ 1.45 - 1.46 - pkglibdir = @RPMCONFIGDIR@ 1.47 - pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq 1.48 --pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros 1.49 -+pkglib_DATA = rpmrc rpmpopt macros 1.50 - pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \ 1.51 - config.guess config.sub config.site 1.52 - 1.53 --rpmpopt-$(VERSION): rpmpopt 1.54 -- cp rpmpopt $@ 1.55 -- 1.56 - noinst_HEADERS = build.h debug.h system.h 1.57 - 1.58 - rpm_SOURCES = 1.59 -@@ -124,32 +121,32 @@ 1.60 - pkgsrcdir = $(prefix)/src/$(RPMCANONVENDOR) 1.61 - 1.62 - install-data-local: 1.63 -- @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm 1.64 -+ @$(mkinstalldirs) $(DESTDIR)$(libdir)/openpkg 1.65 - @rm -f $(DESTDIR)$(libdir)/rpmrc 1.66 - @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc 1.67 - @rm -f $(DESTDIR)$(libdir)/rpmpopt 1.68 - @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt 1.69 - @rm -f $(DESTDIR)$(libdir)/rpm/rpmt 1.70 -- @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt 1.71 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpme 1.72 -- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme 1.73 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpmu 1.74 -- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu 1.75 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpmv 1.76 -- @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv 1.77 -+ @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt 1.78 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpme 1.79 -+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme 1.80 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu 1.81 -+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu 1.82 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv 1.83 -+ @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv 1.84 - rm -f $(DESTDIR)$(bindir)/rpmbuild 1.85 -- @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild 1.86 -+ @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild 1.87 - rm -f $(DESTDIR)$(bindir)/rpmquery 1.88 -- @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery 1.89 -+ @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery 1.90 - rm -f $(DESTDIR)$(bindir)/rpmverify 1.91 -- @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify 1.92 -+ @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify 1.93 - rm -f $(DESTDIR)$(bindir)/rpmsign 1.94 -- @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign 1.95 -+ @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign 1.96 - rm -f $(DESTDIR)$(bindir)/rpmdb ; \ 1.97 -- @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ 1.98 -+ @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ 1.99 - for bf in e i u ; do \ 1.100 - rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.101 -- @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.102 -+ @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.103 - done 1.104 - @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\ 1.105 - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\ 1.106 -@@ -174,11 +171,6 @@ 1.107 - *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\ 1.108 - esac 1.109 - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch 1.110 -- @case "@host_os@" in \ 1.111 -- mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\ 1.112 -- solaris*|linux*) \ 1.113 -- chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \ 1.114 -- esac 1.115 - @$(mkinstalldirs) $(DESTDIR)/var/tmp 1.116 - 1.117 - .PHONY: setperms 1.118 -@@ -198,10 +190,10 @@ 1.119 - $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\ 1.120 - done 1.121 - @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir) 1.122 -- @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm 1.123 -- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]* 1.124 -- -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm 1.125 -- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.* 1.126 -+ @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg 1.127 -+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]* 1.128 -+ -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg 1.129 -+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.* 1.130 - 1.131 - .PHONY: unsetgid 1.132 - unsetgid: 1.133 -@@ -244,7 +236,7 @@ 1.134 - @sudo ./rpm -ta rpm-$(VERSION).tar.gz 1.135 - 1.136 - .PHONY: doxygen 1.137 --doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@ 1.138 -+doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt 1.139 - rm -rf $@ 1.140 - mkdir -p $@ 1.141 - - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@ 1.142 - 1.143 -+--------------------------------------------------------------------------- 1.144 -| Remove "tools" directory from sub-directory list because it contains 1.145 -| things we are not interested in and which cause some build trouble 1.146 -| anyway. 1.147 -| Use a plain "rpmpopt" file without any trailing version. 1.148 -| Adjust paths to conform to OpenPKG filesystem layout. 1.149 -| Do not run the "installplatform" script, because not needed for OpenPKG. 1.150 -+--------------------------------------------------------------------------- 1.151 -Index: Makefile.in 1.152 ---- Makefile.in 16 Jul 2003 17:05:42 -0000 1.1.1.23 1.153 -+++ Makefile.in 22 Jan 2004 21:42:03 -0000 1.2 1.154 -@@ -265,10 +265,10 @@ 1.155 - xmlspec/examples/*.sh xmlspec/examples/*.lst \ 1.156 - xmlspec/examples/*.xmlspec \ 1.157 - po/*.in po/*.po po/rpm.pot \ 1.158 -- rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c 1.159 -+ rpm.magic rpmpopt rpmqv.c rpm.c 1.160 - 1.161 - 1.162 --SUBDIRS = intl po @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt @WITH_BEECRYPT_SUBDIR@ rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ tools scripts tests doc . 1.163 -+SUBDIRS = intl @WITH_ZLIB_SUBDIR@ @WITH_ELFUTILS_SUBDIR@ file @WITH_DB_SUBDIR@ popt @WITH_BEECRYPT_SUBDIR@ rpmio rpmdb lib build misc @WITH_PYTHON_SUBDIR@ scripts tests doc . 1.164 - 1.165 - INCLUDES = \ 1.166 - -I$(top_srcdir)/build \ 1.167 -@@ -301,7 +301,7 @@ 1.168 - bin_PROGRAMS = rpm2cpio 1.169 - bin_SCRIPTS = gendiff 1.170 - pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq 1.171 --pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros 1.172 -+pkglib_DATA = rpmrc rpmpopt macros 1.173 - pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \ 1.174 - config.guess config.sub config.site 1.175 - 1.176 -@@ -1058,8 +1058,6 @@ 1.177 - uninstall-rpmbinPROGRAMS 1.178 - 1.179 - 1.180 --rpmpopt-$(VERSION): rpmpopt 1.181 -- cp rpmpopt $@ 1.182 - rpm.o: rpmqv.c 1.183 - $(COMPILE) -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c rpmqv.c 1.184 - rpmb.o: rpmqv.c 1.185 -@@ -1097,32 +1095,32 @@ 1.186 - `make -s sources -C popt` 1.187 - 1.188 - install-data-local: 1.189 -- @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm 1.190 -+ @$(mkinstalldirs) $(DESTDIR)$(libdir)/openpkg 1.191 - @rm -f $(DESTDIR)$(libdir)/rpmrc 1.192 - @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc 1.193 - @rm -f $(DESTDIR)$(libdir)/rpmpopt 1.194 - @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt 1.195 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpmt 1.196 -- @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt 1.197 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpme 1.198 -- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme 1.199 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpmu 1.200 -- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu 1.201 -- @rm -f $(DESTDIR)$(libdir)/rpm/rpmv 1.202 -- @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv 1.203 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmt 1.204 -+ @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt 1.205 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpme 1.206 -+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme 1.207 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu 1.208 -+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu 1.209 -+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv 1.210 -+ @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv 1.211 - rm -f $(DESTDIR)$(bindir)/rpmbuild 1.212 -- @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild 1.213 -+ @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild 1.214 - rm -f $(DESTDIR)$(bindir)/rpmquery 1.215 -- @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery 1.216 -+ @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery 1.217 - rm -f $(DESTDIR)$(bindir)/rpmverify 1.218 -- @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify 1.219 -+ @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify 1.220 - rm -f $(DESTDIR)$(bindir)/rpmsign 1.221 -- @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign 1.222 -+ @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign 1.223 - rm -f $(DESTDIR)$(bindir)/rpmdb ; \ 1.224 -- @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ 1.225 -+ @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ 1.226 - for bf in e i u ; do \ 1.227 - rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.228 -- @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.229 -+ @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ 1.230 - done 1.231 - @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\ 1.232 - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\ 1.233 -@@ -1147,11 +1145,6 @@ 1.234 - *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\ 1.235 - esac 1.236 - $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch 1.237 -- @case "@host_os@" in \ 1.238 -- mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\ 1.239 -- solaris*|linux*) \ 1.240 -- chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \ 1.241 -- esac 1.242 - @$(mkinstalldirs) $(DESTDIR)/var/tmp 1.243 - 1.244 - .PHONY: setperms 1.245 -@@ -1171,10 +1164,10 @@ 1.246 - $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\ 1.247 - done 1.248 - @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir) 1.249 -- @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm 1.250 -- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]* 1.251 -- -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm 1.252 -- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.* 1.253 -+ @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg 1.254 -+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]* 1.255 -+ -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg 1.256 -+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.* 1.257 - 1.258 - .PHONY: unsetgid 1.259 - unsetgid: 1.260 -@@ -1217,7 +1210,7 @@ 1.261 - @sudo ./rpm -ta rpm-$(VERSION).tar.gz 1.262 - 1.263 - .PHONY: doxygen 1.264 --doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@ 1.265 -+doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt 1.266 - rm -rf $@ 1.267 - mkdir -p $@ 1.268 - - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@ 1.269 - 1.270 -+--------------------------------------------------------------------------- 1.271 -| Add support for splitted source directories, i.e., source files 1.272 -| alternatively can be placed into the .spec directory and are picked 1.273 -| up there, too. 1.274 -+--------------------------------------------------------------------------- 1.275 -Index: build/build.c 1.276 ---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 1.277 -+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 1.278 -@@ -33,7 +33,15 @@ 1.279 - 1.280 - for (p = spec->sources; p != NULL; p = p->next) { 1.281 - if (! (p->flags & RPMBUILD_ISNO)) { 1.282 -+#ifndef OPENPKG 1.283 - const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.284 -+#else 1.285 -+ const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL); 1.286 -+ if (access(fn, F_OK) == -1) { 1.287 -+ fn = _free(fn); 1.288 -+ fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.289 -+ } 1.290 -+#endif 1.291 - rc = Unlink(fn); 1.292 - fn = _free(fn); 1.293 - } 1.294 -@@ -42,7 +50,15 @@ 1.295 - for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { 1.296 - for (p = pkg->icon; p != NULL; p = p->next) { 1.297 - if (! (p->flags & RPMBUILD_ISNO)) { 1.298 -+#ifndef OPENPKG 1.299 - const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.300 -+#else 1.301 -+ const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL); 1.302 -+ if (access(fn, F_OK) == -1) { 1.303 -+ fn = _free(fn); 1.304 -+ fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.305 -+ } 1.306 -+#endif 1.307 - rc = Unlink(fn); 1.308 - fn = _free(fn); 1.309 - } 1.310 - 1.311 -+--------------------------------------------------------------------------- 1.312 -| Add support for the OpenPKG custom .spec file sections %track 1.313 -| (package build-time feature for performing vendor source tracking) 1.314 -| and %test (package install-time feature for performing package 1.315 -| run-time tests). 1.316 -+--------------------------------------------------------------------------- 1.317 -Index: build/build.c 1.318 ---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 1.319 -+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 1.320 -@@ -129,6 +129,14 @@ 1.321 - mTemplate = "%{__spec_clean_template}"; 1.322 - mPost = "%{__spec_clean_post}"; 1.323 - break; 1.324 -+#ifdef OPENPKG 1.325 -+ case RPMBUILD_TRACK: 1.326 -+ name = "%track"; 1.327 -+ sb = spec->track; 1.328 -+ mTemplate = "%{__spec_track_template}"; 1.329 -+ mPost = "%{__spec_track_post}"; 1.330 -+ break; 1.331 -+#endif 1.332 - case RPMBUILD_STRINGBUF: 1.333 - default: 1.334 - mTemplate = "%{___build_template}"; 1.335 -@@ -185,7 +193,11 @@ 1.336 - 1.337 - (void) fputs(buildTemplate, fp); 1.338 - 1.339 -+#ifdef OPENPKG 1.340 -+ if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir && what != RPMBUILD_TRACK) 1.341 -+#else 1.342 - if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir) 1.343 -+#endif 1.344 - fprintf(fp, "cd %s\n", spec->buildSubdir); 1.345 - 1.346 - if (what == RPMBUILD_RMBUILD) { 1.347 -@@ -231,6 +243,9 @@ 1.348 - buildCmd = rpmExpand("%{___build_cmd}", " ", buildScript, NULL); 1.349 - (void) poptParseArgvString(buildCmd, &argc, &argv); 1.350 - 1.351 -+#ifdef OPENPKG 1.352 -+ if (what != RPMBUILD_TRACK) 1.353 -+#endif 1.354 - rpmMessage(RPMMESS_NORMAL, _("Executing(%s): %s\n"), name, buildCmd); 1.355 - if (!(child = fork())) { 1.356 - 1.357 -@@ -306,6 +323,12 @@ 1.358 - /*@=boundsread@*/ 1.359 - } 1.360 - } else { 1.361 -+#ifdef OPENPKG 1.362 -+ if ((what & RPMBUILD_TRACK) && 1.363 -+ (rc = doScript(spec, RPMBUILD_TRACK, NULL, NULL, test))) 1.364 -+ goto exit; 1.365 -+#endif 1.366 -+ 1.367 - if ((what & RPMBUILD_PREP) && 1.368 - (rc = doScript(spec, RPMBUILD_PREP, NULL, NULL, test))) 1.369 - goto exit; 1.370 - 1.371 -+--------------------------------------------------------------------------- 1.372 -| Unconditionally remove temporary files ("rpm-tmp.XXXXX") which 1.373 -| were generated for the executed scripts. In OpenPKG we run the 1.374 -| scripts in debug mode ("set -x") anyway, so we never need to 1.375 -| see the whole generated script -- not even if it breaks. Instead 1.376 -| we would just have temporary files staying around forever. 1.377 -+--------------------------------------------------------------------------- 1.378 -Index: build/build.c 1.379 ---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 1.380 -+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 1.381 -@@ -273,7 +273,9 @@ 1.382 - 1.383 - exit: 1.384 - if (scriptName) { 1.385 -+#ifndef OPENPKG 1.386 - if (!rc) 1.387 -+#endif 1.388 - (void) Unlink(scriptName); 1.389 - scriptName = _free(scriptName); 1.390 - } 1.391 - 1.392 -+--------------------------------------------------------------------------- 1.393 -| In OpenPKG we use per-package %{_sourcedir} and %{_specdir} 1.394 -| definitions (macros have trailing ".../%{name}"). On removal 1.395 -| of source(s) and .spec file, this per-package directory would 1.396 -| be kept (usually <prefix>/RPM/SRC/<name>/), because RPM does 1.397 -| not know about this OpenPKG convention. So, let RPM try(!) to 1.398 -| remove the two directories (if they are empty) and just ignore 1.399 -| removal failures (if they are still not empty). 1.400 -+--------------------------------------------------------------------------- 1.401 -Index: build/build.c 1.402 ---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 1.403 -+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 1.404 -@@ -377,6 +377,21 @@ 1.405 - if (what & RPMBUILD_RMSPEC) 1.406 - (void) Unlink(spec->specFile); 1.407 - 1.408 -+#ifdef OPENPKG 1.409 -+ if (what & RPMBUILD_RMSOURCE) { 1.410 -+ const char *pn; 1.411 -+ pn = rpmGetPath("%{_sourcedir}", NULL); 1.412 -+ Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */ 1.413 -+ pn = _free(pn); 1.414 -+ } 1.415 -+ if (what & RPMBUILD_RMSPEC) { 1.416 -+ const char *pn; 1.417 -+ pn = rpmGetPath("%{_specdir}", NULL); 1.418 -+ Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */ 1.419 -+ pn = _free(pn); 1.420 -+ } 1.421 -+#endif 1.422 -+ 1.423 - exit: 1.424 - if (rc && rpmlogGetNrecs() > 0) { 1.425 - rpmMessage(RPMMESS_NORMAL, _("\n\nRPM build errors:\n")); 1.426 - 1.427 -+--------------------------------------------------------------------------- 1.428 -| Do not declare any files as %doc files by default. 1.429 -+--------------------------------------------------------------------------- 1.430 -Index: build/files.c 1.431 ---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 1.432 -+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 1.433 -@@ -1971,6 +1971,7 @@ 1.434 - fl.defSpecdFlags = 0; 1.435 - 1.436 - fl.docDirCount = 0; 1.437 -+#if 0 1.438 - fl.docDirs[fl.docDirCount++] = xstrdup("/usr/doc"); 1.439 - fl.docDirs[fl.docDirCount++] = xstrdup("/usr/man"); 1.440 - fl.docDirs[fl.docDirCount++] = xstrdup("/usr/info"); 1.441 -@@ -1981,6 +1982,7 @@ 1.442 - fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_docdir}", NULL); 1.443 - fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_mandir}", NULL); 1.444 - fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_infodir}", NULL); 1.445 -+#endif 1.446 - 1.447 - fl.fileList = NULL; 1.448 - fl.fileListRecsAlloced = 0; 1.449 - 1.450 -+--------------------------------------------------------------------------- 1.451 -| Make sure the "Provides" headers are available for querying from the 1.452 -| .src.rpm files. 1.453 -+--------------------------------------------------------------------------- 1.454 -Index: build/files.c 1.455 ---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 1.456 -+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 1.457 -@@ -2185,6 +2185,12 @@ 1.458 - case RPMTAG_CHANGELOGTEXT: 1.459 - case RPMTAG_URL: 1.460 - case HEADER_I18NTABLE: 1.461 -+#ifdef OPENPKG 1.462 -+ case RPMTAG_PROVIDENAME: 1.463 -+ case RPMTAG_PROVIDEVERSION: 1.464 -+ case RPMTAG_PROVIDEFLAGS: 1.465 -+ case RPMTAG_CLASS: 1.466 -+#endif 1.467 - if (ptr) 1.468 - (void)headerAddEntry(spec->sourceHeader, tag, type, ptr, count); 1.469 - /*@switchbreak@*/ break; 1.470 - 1.471 -+--------------------------------------------------------------------------- 1.472 -| Add support for splitted source directories, i.e., source files 1.473 -| alternatively can be placed into the .spec directory and are picked 1.474 -| up there, too. 1.475 -+--------------------------------------------------------------------------- 1.476 -Index: build/files.c 1.477 ---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 1.478 -+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 1.479 -@@ -2261,8 +2261,20 @@ 1.480 - } 1.481 - 1.482 - { const char * sfn; 1.483 -+#ifndef OPENPKG 1.484 - sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.485 - "%{_sourcedir}/", srcPtr->source, NULL); 1.486 -+#else 1.487 -+ const char *sfn2; 1.488 -+ sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL); 1.489 -+ if (access(sfn2, F_OK) == 0) 1.490 -+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.491 -+ "%{_specdir}/", srcPtr->source, NULL); 1.492 -+ else 1.493 -+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.494 -+ "%{_sourcedir}/", srcPtr->source, NULL); 1.495 -+ sfn2 = _free(sfn2); 1.496 -+#endif 1.497 - appendLineStringBuf(sourceFiles, sfn); 1.498 - sfn = _free(sfn); 1.499 - } 1.500 -@@ -2271,8 +2283,20 @@ 1.501 - for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { 1.502 - for (srcPtr = pkg->icon; srcPtr != NULL; srcPtr = srcPtr->next) { 1.503 - const char * sfn; 1.504 -+#ifndef OPENPKG 1.505 - sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.506 - "%{_sourcedir}/", srcPtr->source, NULL); 1.507 -+#else 1.508 -+ const char *sfn2; 1.509 -+ sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL); 1.510 -+ if (access(sfn2, F_OK) == 0) 1.511 -+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.512 -+ "%{_specdir}/", srcPtr->source, NULL); 1.513 -+ else 1.514 -+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), 1.515 -+ "%{_sourcedir}/", srcPtr->source, NULL); 1.516 -+ sfn2 = _free(sfn2); 1.517 -+#endif 1.518 - appendLineStringBuf(sourceFiles, sfn); 1.519 - sfn = _free(sfn); 1.520 - } 1.521 - 1.522 -+--------------------------------------------------------------------------- 1.523 -| Add support for splitted source directories, i.e., source files 1.524 -| alternatively can be placed into the .spec directory and are picked 1.525 -| up there, too. 1.526 -+--------------------------------------------------------------------------- 1.527 -Index: build/parsePreamble.c 1.528 ---- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13 1.529 -+++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3 1.530 -@@ -366,7 +368,15 @@ 1.531 - size_t nb, iconsize; 1.532 - 1.533 - /* XXX use rpmGenPath(rootdir, "%{_sourcedir}/", file) for icon path. */ 1.534 -+#ifndef OPENPKG 1.535 - fn = rpmGetPath("%{_sourcedir}/", file, NULL); 1.536 -+#else 1.537 -+ fn = rpmGetPath("%{_specdir}/", file, NULL); 1.538 -+ if (access(fn, F_OK) == -1) { 1.539 -+ fn = _free(fn); 1.540 -+ fn = rpmGetPath("%{_sourcedir}/", file, NULL); 1.541 -+ } 1.542 -+#endif 1.543 - 1.544 - fd = Fopen(fn, "r.ufdio"); 1.545 - if (fd == NULL || Ferror(fd)) { 1.546 - 1.547 -+--------------------------------------------------------------------------- 1.548 -| In OpenPKG, the RPM package contains own local versions of the 1.549 -| "patch" and "tar" tools, so we cannot accept hard-coded names here. 1.550 -| Instead we expand a variable to allow us to direct RPM to our tools. 1.551 -| Additionally, pass option "-b" to patch(1) so it creates original 1.552 -| files not only if a non-standard (not ".orig") suffix is used. 1.553 -| Finally, add support for the GNU patch "-d" option for convenient 1.554 -| changing into a subdirectory. 1.555 -| Remove "unzip" support, because in OpenPKG there are less than 1.556 -| a dozend packages requiring unpacking of .zip files. For these 1.557 -| it is fully sufficient to explicitly require the "infozip" 1.558 -| package (containing "unzip") and leaving the less portable 1.559 -| "unzip" out of the bootstrap package. 1.560 -+--------------------------------------------------------------------------- 1.561 -Index: build/parsePrep.c 1.562 ---- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10 1.563 -+++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4 1.564 -@@ -66,7 +66,7 @@ 1.565 - */ 1.566 - /*@-boundswrite@*/ 1.567 - /*@observer@*/ static char *doPatch(Spec spec, int c, int strip, const char *db, 1.568 -- int reverse, int removeEmpties) 1.569 -+ int reverse, int removeEmpties, const char *subdir) 1.570 - /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/ 1.571 - /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/ 1.572 - { 1.573 -@@ -76,6 +76,7 @@ 1.574 - struct Source *sp; 1.575 - rpmCompressedMagic compressed = COMPRESSED_NOT; 1.576 - int urltype; 1.577 -+ const char *patcher; 1.578 - 1.579 - for (sp = spec->sources; sp != NULL; sp = sp->next) { 1.580 - if ((sp->flags & RPMBUILD_ISPATCH) && (sp->num == c)) { 1.581 -@@ -97,6 +106,10 @@ 1.582 - strcat(args, "--suffix "); 1.583 - strcat(args, db); 1.584 - } 1.585 -+ if (subdir) { 1.586 -+ strcat(args, "-d "); 1.587 -+ strcat(args, subdir); 1.588 -+ } 1.589 - if (reverse) { 1.590 - strcat(args, " -R"); 1.591 - } 1.592 -@@ -124,6 +137,10 @@ 1.593 - /*@notreached@*/ break; 1.594 - } 1.595 - 1.596 -+ patcher = rpmGetPath("%{_patchbin}", NULL); 1.597 -+ if (strcmp(patcher, "%{_patchbin}") == 0) 1.598 -+ patcher = "patch"; 1.599 -+ 1.600 - if (compressed) { 1.601 - const char *zipper = rpmGetPath( 1.602 - (compressed == COMPRESSED_BZIP2 ? "%{_bzip2bin}" : "%{_gzipbin}"), 1.603 -@@ -131,22 +148,23 @@ 1.604 - 1.605 - sprintf(buf, 1.606 - "echo \"Patch #%d (%s):\"\n" 1.607 -- "%s -d < %s | patch -p%d %s -s\n" 1.608 -+ "%s -d <%s | %s -p%d %s -s -b\n" 1.609 - "STATUS=$?\n" 1.610 - "if [ $STATUS -ne 0 ]; then\n" 1.611 - " exit $STATUS\n" 1.612 - "fi", 1.613 -- c, /*@-unrecog@*/ (const char *) basename(fn), /*@=unrecog@*/ 1.614 -+ c, /*@-unrecog@*/ basename(fn), /*@=unrecog@*/ 1.615 - zipper, 1.616 -- fn, strip, args); 1.617 -+ fn, patcher, strip, args); 1.618 - zipper = _free(zipper); 1.619 - } else { 1.620 - sprintf(buf, 1.621 - "echo \"Patch #%d (%s):\"\n" 1.622 -- "patch -p%d %s -s < %s", c, (const char *) basename(fn), 1.623 -- strip, args, fn); 1.624 -+ "%s -p%d %s -s -b <%s", c, basename(fn), 1.625 -+ patcher, strip, args, fn); 1.626 - } 1.627 - 1.628 -+ patcher = _free(patcher); 1.629 - urlfn = _free(urlfn); 1.630 - return buf; 1.631 - } 1.632 -@@ -171,6 +189,7 @@ 1.633 - struct Source *sp; 1.634 - rpmCompressedMagic compressed = COMPRESSED_NOT; 1.635 - int urltype; 1.636 -+ const char *tar; 1.637 - 1.638 - for (sp = spec->sources; sp != NULL; sp = sp->next) { 1.639 - if ((sp->flags & RPMBUILD_ISSOURCE) && (sp->num == c)) { 1.640 -@@ -228,6 +255,10 @@ 1.641 - /*@notreached@*/ break; 1.642 - } 1.643 - 1.644 -+ tar = rpmGetPath("%{_tarbin}", NULL); 1.645 -+ if (strcmp(tar, "%{_tarbin}") == 0) 1.646 -+ tar = "tar"; 1.647 -+ 1.648 - if (compressed != COMPRESSED_NOT) { 1.649 - const char *zipper; 1.650 - int needtar = 1; 1.651 -@@ -240,6 +271,7 @@ 1.652 - case COMPRESSED_BZIP2: 1.653 - t = "%{_bzip2bin} -dc"; 1.654 - break; 1.655 -+#if 0 1.656 - case COMPRESSED_ZIP: 1.657 - if (rpmIsVerbose() && !quietly) 1.658 - t = "%{_unzipbin}"; 1.659 -@@ -247,6 +279,7 @@ 1.660 - t = "%{_unzipbin} -qq"; 1.661 - needtar = 0; 1.662 - break; 1.663 -+#endif 1.664 - } 1.665 - zipper = rpmGetPath(t, NULL); 1.666 - buf[0] = '\0'; 1.667 -@@ -254,8 +287,13 @@ 1.668 - zipper = _free(zipper); 1.669 - *t++ = ' '; 1.670 - t = stpcpy(t, fn); 1.671 -- if (needtar) 1.672 -- t = stpcpy( stpcpy( stpcpy(t, " | tar "), taropts), " -"); 1.673 -+ if (needtar) { 1.674 -+ t = stpcpy(t, " | "); 1.675 -+ t = stpcpy(t, tar); 1.676 -+ t = stpcpy(t, " "); 1.677 -+ t = stpcpy(t, taropts); 1.678 -+ t = stpcpy(t, " -"); 1.679 -+ } 1.680 - t = stpcpy(t, 1.681 - "\n" 1.682 - "STATUS=$?\n" 1.683 -@@ -264,11 +302,14 @@ 1.684 - "fi"); 1.685 - } else { 1.686 - buf[0] = '\0'; 1.687 -- t = stpcpy( stpcpy(buf, "tar "), taropts); 1.688 -- *t++ = ' '; 1.689 -+ t = stpcpy(buf, tar); 1.690 -+ t = stpcpy(t, " "); 1.691 -+ t = stpcpy(t, taropts); 1.692 -+ t = stpcpy(t, " "); 1.693 - t = stpcpy(t, fn); 1.694 - } 1.695 - 1.696 -+ tar = _free(tar); 1.697 - urlfn = _free(urlfn); 1.698 - return buf; 1.699 - } 1.700 -@@ -443,7 +484,7 @@ 1.701 - /*@modifies spec->prep, rpmGlobalMacroContext, 1.702 - fileSystem, internalState @*/ 1.703 - { 1.704 -- char *opt_b; 1.705 -+ char *opt_b, *opt_d; 1.706 - int opt_P, opt_p, opt_R, opt_E; 1.707 - char *s; 1.708 - char buf[BUFSIZ], *bp; 1.709 -@@ -453,6 +494,7 @@ 1.710 - memset(patch_nums, 0, sizeof(patch_nums)); 1.711 - opt_P = opt_p = opt_R = opt_E = 0; 1.712 - opt_b = NULL; 1.713 -+ opt_d = NULL; 1.714 - patch_index = 0; 1.715 - 1.716 - if (! strchr(" \t\n", line[6])) { 1.717 -@@ -492,6 +534,15 @@ 1.718 - spec->lineNum, spec->line); 1.719 - return RPMERR_BADSPEC; 1.720 - } 1.721 -+ } else if (!strcmp(s, "-d")) { 1.722 -+ /* orig suffix */ 1.723 -+ opt_d = strtok(NULL, " \t\n"); 1.724 -+ if (! opt_d) { 1.725 -+ rpmError(RPMERR_BADSPEC, 1.726 -+ _("line %d: Need arg to %%patch -d: %s\n"), 1.727 -+ spec->lineNum, spec->line); 1.728 -+ return RPMERR_BADSPEC; 1.729 -+ } 1.730 - } else if (!strncmp(s, "-p", sizeof("-p")-1)) { 1.731 - /* unfortunately, we must support -pX */ 1.732 - if (! strchr(" \t\n", s[2])) { 1.733 -@@ -530,14 +581,14 @@ 1.734 - /* All args processed */ 1.735 - 1.736 - if (! opt_P) { 1.737 -- s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E); 1.738 -+ s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E, opt_d); 1.739 - if (s == NULL) 1.740 - return RPMERR_BADSPEC; 1.741 - appendLineStringBuf(spec->prep, s); 1.742 - } 1.743 - 1.744 - for (x = 0; x < patch_index; x++) { 1.745 -- s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E); 1.746 -+ s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E, opt_d); 1.747 - if (s == NULL) 1.748 - return RPMERR_BADSPEC; 1.749 - appendLineStringBuf(spec->prep, s); 1.750 - 1.751 -+--------------------------------------------------------------------------- 1.752 -| Add support for splitted source directories, i.e., source files 1.753 -| alternatively can be placed into the .spec directory and are picked 1.754 -| up there, too. 1.755 -+--------------------------------------------------------------------------- 1.756 -Index: build/parsePrep.c 1.757 ---- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10 1.758 -+++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4 1.759 -@@ -88,7 +88,15 @@ 1.760 - return NULL; 1.761 - } 1.762 - 1.763 -+#ifndef OPENPKG 1.764 - urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); 1.765 -+#else 1.766 -+ urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL); 1.767 -+ if (access(urlfn, F_OK) == -1) { 1.768 -+ urlfn = _free(urlfn); 1.769 -+ urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); 1.770 -+ } 1.771 -+#endif 1.772 - 1.773 - args[0] = '\0'; 1.774 - if (db) { 1.775 -@@ -193,7 +201,15 @@ 1.776 - return NULL; 1.777 - } 1.778 - 1.779 -+#ifndef OPENPKG 1.780 - urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); 1.781 -+#else 1.782 -+ urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL); 1.783 -+ if (access(urlfn, F_OK) == -1) { 1.784 -+ urlfn = _free(urlfn); 1.785 -+ urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); 1.786 -+ } 1.787 -+#endif 1.788 - 1.789 - /*@-internalglobs@*/ /* FIX: shrug */ 1.790 - taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf"); 1.791 - 1.792 -+--------------------------------------------------------------------------- 1.793 -| Not everything on a system is RPM based (for instance OpenPKG is 1.794 -| just an add-on to the system), so do not assume we can just require 1.795 -| a package to provide "/bin/sh". 1.796 -+--------------------------------------------------------------------------- 1.797 -Index: build/parseScript.c 1.798 ---- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12 1.799 -+++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3 1.800 -@@ -261,6 +269,7 @@ 1.801 - stripTrailingBlanksStringBuf(sb); 1.802 - p = getStringBuf(sb); 1.803 - 1.804 -+ if (progArgv[0] != NULL && strcmp(progArgv[0], "/bin/sh") != 0) 1.805 - (void) addReqProv(spec, pkg->header, (tagflags | RPMSENSE_INTERP), progArgv[0], NULL, 0); 1.806 - 1.807 - /* Trigger script insertion is always delayed in order to */ 1.808 - 1.809 -+--------------------------------------------------------------------------- 1.810 -| Add support for splitted source directories, i.e., source files 1.811 -| alternatively can be placed into the spec directory and are picked 1.812 -| up there, too. 1.813 -+--------------------------------------------------------------------------- 1.814 -Index: build/spec.c 1.815 ---- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21 1.816 -+++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3 1.817 -@@ -334,7 +337,15 @@ 1.818 - 1.819 - if (tag != RPMTAG_ICON) { 1.820 - /*@-nullpass@*/ /* LCL: varargs needs null annotate. */ 1.821 -+#ifndef OPENPKG 1.822 - const char *body = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.823 -+#else 1.824 -+ const char *body = rpmGetPath("%{_specdir}/", p->source, NULL); 1.825 -+ if (access(body, F_OK) == -1) { 1.826 -+ body = _free(body); 1.827 -+ body = rpmGetPath("%{_sourcedir}/", p->source, NULL); 1.828 -+ } 1.829 -+#endif 1.830 - /*@=nullpass@*/ 1.831 - 1.832 - sprintf(buf, "%s%d", 1.833 - 1.834 -+--------------------------------------------------------------------------- 1.835 -| Do not build with warnings on, because we do no RPM development 1.836 -| (so warnings are useless here), they cause some confusion inside 1.837 -| Berkeley-DB and also slow down building. Instead, increase the 1.838 -| optimization level. Additionally, disable static linking of RPM 1.839 -| tools. Finally, use "shtool mkdir" as the "mkdir -p" fallback. 1.840 -+--------------------------------------------------------------------------- 1.841 -Index: configure.ac 1.842 ---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 1.843 -+++ configure.ac 13 Sep 2006 13:39:07 -0000 1.844 -@@ -53,7 +53,7 @@ 1.845 - AS=${AS-as} 1.846 - AC_SUBST(AS) 1.847 - if test "$ac_cv_prog_gcc" = yes; then 1.848 -- CFLAGS="$CFLAGS -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts" 1.849 -+ CFLAGS="$CFLAGS -O2 -D_GNU_SOURCE -D_REENTRANT" 1.850 - fi 1.851 - export CFLAGS 1.852 - 1.853 -@@ -142,6 +142,7 @@ 1.854 - # just link it dynamically 1.855 - LDFLAGS_STATIC="" 1.856 - fi 1.857 -+LDFLAGS_STATIC="" # OpenPKG wants dynamically linked RPM tools 1.858 - LDFLAGS_STATIC="${LDFLAGS} ${LDFLAGS_STATIC}" # libtool format 1.859 - AC_MSG_RESULT($LDFLAGS_STATIC) 1.860 - AC_SUBST(LDFLAGS_STATIC) 1.861 -@@ -201,7 +202,7 @@ 1.862 - 1.863 - if test X"$MKDIR_P" = X0 ; then 1.864 - AC_MSG_RESULT(no) 1.865 -- MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`" 1.866 -+ MKDIR_P="@l_prefix@/lib/openpkg/shtool mkdir -f -p -m 755" 1.867 - else 1.868 - AC_MSG_RESULT(yes) 1.869 - fi 1.870 - 1.871 -+--------------------------------------------------------------------------- 1.872 -| Disable the use of the internal zlib library, because 1.873 -| we build against an external one. 1.874 -+--------------------------------------------------------------------------- 1.875 -Index: configure.ac 1.876 ---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 1.877 -+++ configure.ac 13 Sep 2006 13:39:09 -0000 1.878 -@@ -311,7 +311,7 @@ 1.879 - WITH_ZLIB_SUBDIR= 1.880 - WITH_ZLIB_INCLUDE= 1.881 - WITH_ZLIB_LIB= 1.882 --if test -d zlib ; then 1.883 -+if false; then 1.884 - WITH_ZLIB_SUBDIR=zlib 1.885 - addlib \${top_builddir}/zlib 1.886 - WITH_ZLIB_INCLUDE="-I\${top_srcdir}/${WITH_ZLIB_SUBDIR}" 1.887 - 1.888 -+--------------------------------------------------------------------------- 1.889 -| Disable unnecessary INCPATH checks, because in OpenPKG the 1.890 -| externally used libraries are all explicitly given. And they just 1.891 -| would make RPM pick up things which we do not want to be picked up. 1.892 -+--------------------------------------------------------------------------- 1.893 -Index: configure.ac 1.894 ---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 1.895 -+++ configure.ac 13 Sep 2006 13:39:11 -0000 1.896 -@@ -325,38 +325,38 @@ 1.897 - 1.898 - localdone= 1.899 - 1.900 --dirs=$prefix 1.901 --if test "$cross_compiling" != "yes"; then 1.902 -- dirs="$dirs /usr/local" 1.903 --fi 1.904 --for dir in $dirs 1.905 --do 1.906 -- case $dir in 1.907 -- NONE|/usr) continue;; 1.908 -- /usr/local) 1.909 -- if test X$localdone != X ; then continue; fi 1.910 -- localdone="$dir" 1.911 -- ;; 1.912 -- esac 1.913 -- 1.914 -- AC_MSG_CHECKING(for $dir/lib in LIBS) 1.915 -- if test -d $dir/lib 2> /dev/null ; then 1.916 -- addlib $dir/lib 1.917 -- AC_MSG_RESULT(yes) 1.918 -- else 1.919 -- AC_MSG_RESULT(no) 1.920 -- fi 1.921 -- 1.922 -- AC_MSG_CHECKING(for $dir/include in INCPATH) 1.923 -- if test -d $dir/include 2>/dev/null ; then 1.924 -- if [ "$dir" != "/usr/local" ] ; then 1.925 -- INCPATH="$INCPATH -I$dir/include" 1.926 -- fi 1.927 -- AC_MSG_RESULT(yes) 1.928 -- else 1.929 -- AC_MSG_RESULT(no) 1.930 -- fi 1.931 --done 1.932 -+dnl dirs=$prefix 1.933 -+dnl if test "$cross_compiling" != "yes"; then 1.934 -+dnl dirs="$dirs /usr/local" 1.935 -+dnl fi 1.936 -+dnl for dir in $dirs 1.937 -+dnl do 1.938 -+dnl case $dir in 1.939 -+dnl NONE|/usr) continue;; 1.940 -+dnl /usr/local) 1.941 -+dnl if test X$localdone != X ; then continue; fi 1.942 -+dnl localdone="$dir" 1.943 -+dnl ;; 1.944 -+dnl esac 1.945 -+dnl 1.946 -+dnl AC_MSG_CHECKING(for $dir/lib in LIBS) 1.947 -+dnl if test -d $dir/lib 2> /dev/null ; then 1.948 -+dnl addlib $dir/lib 1.949 -+dnl AC_MSG_RESULT(yes) 1.950 -+dnl else 1.951 -+dnl AC_MSG_RESULT(no) 1.952 -+dnl fi 1.953 -+dnl 1.954 -+dnl AC_MSG_CHECKING(for $dir/include in INCPATH) 1.955 -+dnl if test -d $dir/include 2>/dev/null ; then 1.956 -+dnl if test "$dir" != "/usr/local"; then 1.957 -+dnl INCPATH="$INCPATH -I$dir/include" 1.958 -+dnl fi 1.959 -+dnl AC_MSG_RESULT(yes) 1.960 -+dnl else 1.961 -+dnl AC_MSG_RESULT(no) 1.962 -+dnl fi 1.963 -+dnl done 1.964 - 1.965 - AC_MSG_CHECKING(for /usr/ucblib in LIBS) 1.966 - if test -d /usr/ucblib ; then 1.967 - 1.968 -+--------------------------------------------------------------------------- 1.969 -| Adjust paths for OpenPKG filesystem layout. 1.970 -+--------------------------------------------------------------------------- 1.971 -Index: configure.ac 1.972 ---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 1.973 -+++ configure.ac 13 Sep 2006 13:39:12 -0000 1.974 -@@ -1201,12 +1201,12 @@ 1.975 - AC_SUBST(LOCALEDIR) 1.976 - LIBDIR="`echo $libdir | sed 's-/lib$-/%{_lib}-'`" 1.977 - AC_SUBST(LIBDIR) 1.978 --RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`" 1.979 -+RPMCONFIGDIR="@l_prefix@/lib/openpkg" 1.980 - AC_DEFINE_UNQUOTED(RPMCONFIGDIR, "$RPMCONFIGDIR", 1.981 - [Full path to rpm global configuration directory (usually /usr/lib/rpm)]) 1.982 - AC_SUBST(RPMCONFIGDIR) 1.983 - 1.984 --SYSCONFIGDIR="`echo /etc/rpm`" 1.985 -+SYSCONFIGDIR="@l_prefix@/etc/openpkg" 1.986 - AC_DEFINE_UNQUOTED(SYSCONFIGDIR, "$SYSCONFIGDIR", 1.987 - [Full path to rpm system configuration directory (usually /etc/rpm)]) 1.988 - AC_SUBST(SYSCONFIGDIR) 1.989 -@@ -1216,17 +1216,17 @@ 1.990 - [Colon separated paths of macro files to read.]) 1.991 - AC_SUBST(MACROFILES) 1.992 - 1.993 --LIBRPMRC_FILENAME="${RPMCONFIGDIR}/rpmrc" 1.994 -+LIBRPMRC_FILENAME="${SYSCONFIGDIR}/rpmrc" 1.995 - AC_DEFINE_UNQUOTED(LIBRPMRC_FILENAME, "$LIBRPMRC_FILENAME", 1.996 - [Full path to rpmrc configuration file (usually /usr/lib/rpm/rpmrc)]) 1.997 - AC_SUBST(LIBRPMRC_FILENAME) 1.998 - 1.999 --VENDORRPMRC_FILENAME="${RPMCONFIGDIR}/${RPMCANONVENDOR}/rpmrc" 1.1000 -+VENDORRPMRC_FILENAME="${SYSCONFIGDIR}/${RPMCANONVENDOR}/rpmrc" 1.1001 - AC_DEFINE_UNQUOTED(VENDORRPMRC_FILENAME, "$VENDORRPMRC_FILENAME", 1.1002 - [Full path to vendor rpmrc configuration file (usually /usr/lib/rpm/vendor/rpmrc)]) 1.1003 - AC_SUBST(VENDORRPMRC_FILENAME) 1.1004 - 1.1005 --LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt-${VERSION}" 1.1006 -+LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt" 1.1007 - AC_DEFINE_UNQUOTED(LIBRPMALIAS_FILENAME, "$LIBRPMALIAS_FILENAME", 1.1008 - [Full path to rpmpopt configuration file (usually /usr/lib/rpm/rpmpopt)]) 1.1009 - AC_SUBST(LIBRPMALIAS_FILENAME) 1.1010 - 1.1011 -+--------------------------------------------------------------------------- 1.1012 -| If running as "susr", do not unpack source RPM packages with "susr" 1.1013 -| file ownerships as the OpenPKG Set-UID wrapper switches from "musr" 1.1014 -| to "susr" on "openpkg rpm -Uvh *.src.rpm". As a result the installed 1.1015 -| files could be never removed again by "musr". It is more consistent 1.1016 -| to always unpack as "musr" if possible. 1.1017 -+--------------------------------------------------------------------------- 1.1018 -Index: lib/psm.c 1.1019 ---- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 1.1020 -+++ lib/psm.c 13 Sep 2006 13:39:15 -0000 1.1021 -@@ -314,6 +314,20 @@ 1.1022 - 1.1023 - fi->uid = getuid(); 1.1024 - fi->gid = getgid(); 1.1025 -+#ifdef OPENPKG 1.1026 -+ if (fi->uid == 0) { 1.1027 -+ char *muid_str; 1.1028 -+ char *mgid_str; 1.1029 -+ uid_t *muid; 1.1030 -+ gid_t *mgid; 1.1031 -+ if ((muid_str = rpmExpand("%{l_muid}", NULL)) != NULL) 1.1032 -+ if ((muid = (uid_t)strtol(muid_str, (char **)NULL, 10)) > 0) 1.1033 -+ fi->uid = muid; 1.1034 -+ if ((mgid_str = rpmExpand("%{l_mgid}", NULL)) != NULL) 1.1035 -+ if ((mgid = (gid_t)strtol(mgid_str, (char **)NULL, 10)) > 0) 1.1036 -+ fi->gid = mgid; 1.1037 -+ } 1.1038 -+#endif 1.1039 - fi->astriplen = 0; 1.1040 - fi->striplen = 0; 1.1041 - 1.1042 -@@ -352,6 +366,9 @@ 1.1043 - rpmrc = RPMRC_FAIL; 1.1044 - goto exit; 1.1045 - } 1.1046 -+#ifdef OPENPKG 1.1047 -+ chown(_sourcedir, fi->uid, fi->gid); 1.1048 -+#endif 1.1049 - 1.1050 - _specdir = rpmGenPath(rpmtsRootDir(ts), "%{_specdir}", ""); 1.1051 - rpmrc = rpmMkdirPath(_specdir, "specdir"); 1.1052 -@@ -359,6 +376,9 @@ 1.1053 - rpmrc = RPMRC_FAIL; 1.1054 - goto exit; 1.1055 - } 1.1056 -+#ifdef OPENPKG 1.1057 -+ chown(_specdir, fi->uid, fi->gid); 1.1058 -+#endif 1.1059 - 1.1060 - /* Build dnl/dil with {_sourcedir, _specdir} as values. */ 1.1061 - if (i < fi->fc) { 1.1062 - 1.1063 -+--------------------------------------------------------------------------- 1.1064 -| RPM has two platform id canonicalizations: hard-coded ones in 1.1065 -| the "rpm" program and defined ones in the rpmrc files. The 1.1066 -| hard-coded ones make the defined ones inconsistent. Additionally, 1.1067 -| in OpenPKG we know exactly what we do. So, disable the hard-coded 1.1068 -| canonicalizations and use only the defined ones. The only thing we 1.1069 -| do inside RPM is to reduce the platform version to major and minor 1.1070 -| version numbers in order to simplify the "rpmrc" files. Then, RPM 1.1071 -| allows to read the platform from an external program. Adjust the 1.1072 -| hard-coded path to this program and allow it to be overridden with 1.1073 -| the macro %{__platform}. Finally, change the default definition of 1.1074 -| %{_host} to not contain the vendor stuff to more conform to what 1.1075 -| %{_target} usually is defined to and what we are using throughout 1.1076 -| OpenPKG, too. 1.1077 -+--------------------------------------------------------------------------- 1.1078 -Index: lib/rpmrc.c 1.1079 ---- lib/rpmrc.c 4 Jun 2003 18:18:45 -0000 1.1.1.25 1.1080 -+++ lib/rpmrc.c 6 Jun 2005 15:53:06 -0000 1.3 1.1081 -@@ -27,7 +27,7 @@ 1.1082 - const char * macrofiles = MACROFILES; 1.1083 - 1.1084 - /*@observer@*/ /*@unchecked@*/ 1.1085 --static const char * platform = "/etc/rpm/platform"; 1.1086 -+static const char * platform = "@l_prefix@/etc/openpkg/platform"; 1.1087 - /*@only@*/ /*@relnull@*/ /*@unchecked@*/ 1.1088 - static const char ** platpat = NULL; 1.1089 - /*@unchecked@*/ 1.1090 -@@ -861,7 +861,11 @@ 1.1091 - 1.1092 - platpat = xrealloc(platpat, (nplatpat + 2) * sizeof(*platpat)); 1.1093 - /*@-onlyunqglobaltrans@*/ 1.1094 -+#ifdef OPENPKG 1.1095 -+ platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_os}", NULL); 1.1096 -+#else 1.1097 - platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_vendor}-%{_host_os}", (gnu && *gnu ? "-" : NULL), gnu, NULL); 1.1098 -+#endif 1.1099 - nplatpat++; 1.1100 - platpat[nplatpat] = NULL; 1.1101 - /*@=onlyunqglobaltrans@*/ 1.1102 -@@ -1055,14 +1059,35 @@ 1.1103 - /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/ 1.1104 - /*@modifies *arch, *os, rpmGlobalMacroContext, fileSystem, internalState @*/ 1.1105 - { 1.1106 -+#ifdef OPENPKG 1.1107 -+ static struct utsname un_real; 1.1108 -+ /* utsname fields on some platforms (like HP-UX) are very small 1.1109 -+ (about 8 characters). This is too small for OpenPKG, so cheat! */ 1.1110 -+ static struct { 1.1111 -+ char sysname[32]; 1.1112 -+ char nodename[32]; 1.1113 -+ char release[32]; 1.1114 -+ char version[32]; 1.1115 -+ char machine[32]; 1.1116 -+ } un; 1.1117 -+#else 1.1118 - static struct utsname un; 1.1119 -+#endif 1.1120 - static int gotDefaults = 0; 1.1121 - char * chptr; 1.1122 - canonEntry canon; 1.1123 - int rc; 1.1124 - 1.1125 - while (!gotDefaults) { 1.1126 -+#ifdef OPENPKG 1.1127 -+ const char *cp; 1.1128 -+ cp = rpmExpand("%{?__platform}", NULL); 1.1129 -+ if (cp == NULL || cp[0] == '\0') 1.1130 -+ cp = platform; 1.1131 -+ if (!rpmPlatform(cp)) { 1.1132 -+#else 1.1133 - if (!rpmPlatform(platform)) { 1.1134 -+#endif 1.1135 - const char * s; 1.1136 - s = rpmExpand("%{_host_cpu}", NULL); 1.1137 - if (s) { 1.1138 -@@ -1079,9 +1104,44 @@ 1.1139 - gotDefaults = 1; 1.1140 - break; 1.1141 - } 1.1142 -+#ifdef OPENPKG 1.1143 -+ rc = uname(&un_real); 1.1144 -+ strncpy(un.sysname, un_real.sysname, sizeof(un.sysname)); un.sysname [sizeof(un.sysname)-1] = '\0'; 1.1145 -+ strncpy(un.nodename, un_real.nodename, sizeof(un.nodename)); un.nodename[sizeof(un.nodename)-1] = '\0'; 1.1146 -+ strncpy(un.release, un_real.release, sizeof(un.release)); un.release [sizeof(un.release)-1] = '\0'; 1.1147 -+ strncpy(un.version, un_real.version, sizeof(un.version)); un.version [sizeof(un.version)-1] = '\0'; 1.1148 -+ strncpy(un.machine, un_real.machine, sizeof(un.machine)); un.machine [sizeof(un.machine)-1] = '\0'; 1.1149 -+#else 1.1150 - rc = uname(&un); 1.1151 -+#endif 1.1152 - if (rc < 0) return; 1.1153 - 1.1154 -+#ifdef OPENPKG 1.1155 -+ { 1.1156 -+ char *cp; 1.1157 -+ char *cpR; 1.1158 -+ int n; 1.1159 -+ cpR = un.release; 1.1160 -+ if ((n = strcspn(cpR, "0123456789")) > 0) 1.1161 -+ cpR += n; 1.1162 -+ if ((n = strspn(cpR, "0123456789.")) > 0) { 1.1163 -+ /* terminate after "N.N.N...." prefix */ 1.1164 -+ cpR[n] = '\0'; 1.1165 -+ /* shorten to "N.N" if longer */ 1.1166 -+ if ((cp = strchr(cpR, '.')) != NULL) { 1.1167 -+ if ((cp = strchr(cp+1, '.')) != NULL) 1.1168 -+ *cp = '\0'; 1.1169 -+ } 1.1170 -+ strcat(un.sysname, cpR); 1.1171 -+ } 1.1172 -+ /* fix up machine hardware name containing white-space as it 1.1173 -+ * happens to be on Power Macs running MacOS X 1.1174 -+ */ 1.1175 -+ if (!strncmp(un.machine, "Power Macintosh", 15)) { 1.1176 -+ sprintf(un.machine, "powerpc"); 1.1177 -+ } 1.1178 -+ } 1.1179 -+#else /* OPENPKG */ 1.1180 - #if !defined(__linux__) 1.1181 - #ifdef SNI 1.1182 - /* USUALLY un.sysname on sinix does start with the word "SINIX" 1.1183 -@@ -1298,6 +1358,7 @@ 1.1184 - } 1.1185 - } 1.1186 - # endif 1.1187 -+#endif /* OPENPKG */ 1.1188 - 1.1189 - /* the uname() result goes through the arch_canon table */ 1.1190 - canon = lookupInCanonTable(un.machine, 1.1191 - 1.1192 -+--------------------------------------------------------------------------- 1.1193 -| In verbose file listing output, give the owner and group fields more 1.1194 -| width and at the same time reduce the nlink and size fields to more 1.1195 -| typical sizes within OpenPKG. 1.1196 -+--------------------------------------------------------------------------- 1.1197 -Index: lib/query.c 1.1198 ---- lib/query.c 4 Jun 2003 18:24:14 -0000 1.1.1.13 1.1199 -+++ lib/query.c 22 Jan 2004 21:42:24 -0000 1.2 1.1200 -@@ -33,7 +33,11 @@ 1.1201 - /*@modifies *te @*/ 1.1202 - { 1.1203 - char sizefield[15]; 1.1204 -+#ifdef OPENPKG 1.1205 -+ char ownerfield[13+1], groupfield[13+1]; 1.1206 -+#else 1.1207 - char ownerfield[8+1], groupfield[8+1]; 1.1208 -+#endif 1.1209 - char timefield[100]; 1.1210 - time_t when = mtime; /* important if sizeof(int_32) ! sizeof(time_t) */ 1.1211 - struct tm * tm; 1.1212 -@@ -58,7 +62,11 @@ 1.1213 - groupfield[sizeof(groupfield)-1] = '\0'; 1.1214 - 1.1215 - /* this is normally right */ 1.1216 -+#ifdef OPENPKG 1.1217 -+ sprintf(sizefield, "%8u", size); 1.1218 -+#else 1.1219 - sprintf(sizefield, "%12u", size); 1.1220 -+#endif 1.1221 - 1.1222 - /* this knows too much about dev_t */ 1.1223 - 1.1224 -@@ -98,7 +106,11 @@ 1.1225 - (void)strftime(timefield, sizeof(timefield) - 1, fmt, tm); 1.1226 - } 1.1227 - 1.1228 -+#ifdef OPENPKG 1.1229 -+ sprintf(te, "%s %d %-13s %-13s %8s %s %s", perms, 1.1230 -+#else 1.1231 - sprintf(te, "%s %4d %-8s%-8s %10s %s %s", perms, 1.1232 -+#endif 1.1233 - (int)nlink, ownerfield, groupfield, sizefield, timefield, namefield); 1.1234 - perms = _free(perms); 1.1235 - } 1.1236 - 1.1237 -+--------------------------------------------------------------------------- 1.1238 -| Enable the exlusion of "%doc" files by default. 1.1239 -| Disable "check-files" feature, because it is useless in OpenPKG 1.1240 -| (we consistently use BuildRoot and our %files lists are fully 1.1241 -| autogenerated) and just makes problems on bootstrapping. 1.1242 -| Provide the possibility to optionally re-enable the old 1.1243 -| RPM 4.0.2 way of RPM database operation by defining the 1.1244 -| macro %{_rpmdb_private}. This is important for easily fixing 1.1245 -| corrupted/hanging RPM database (on upgrades, etc) or if you 1.1246 -| permanently have to operate RPM on a NFS filesystem where no 1.1247 -| rpc.lockd(8) support is available. 1.1248 -| Additionally, do not override the "_host_xx" macros because their 1.1249 -| value (derived from <prefix>/etc/openpkg/platform) is already 1.1250 -| correctly set internally. 1.1251 -| Additionally, provide default macros for the %track and %test 1.1252 -| section expansion. 1.1253 -| Finally, provide default for introduced variable 1.1254 -| %{_force_oldpackage}, which, if non-zero, automatically enforces 1.1255 -| --oldpackage on all upgrade operations (this is useful on 1.1256 -| mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE). 1.1257 -+--------------------------------------------------------------------------- 1.1258 -Index: macros.in 1.1259 ---- macros.in 2 Jul 2003 19:20:52 -0000 1.1.1.14 1.1260 -+++ macros.in 30 Jan 2004 17:06:27 -0000 1.3 1.1261 -@@ -1,7 +1,7 @@ 1.1262 - #/*! \page config_macros Default configuration: @RPMCONFIGDIR@/macros 1.1263 - # \verbatim 1.1264 - # 1.1265 --# $Id: macros.in,v 1.138.2.1 2003/07/02 19:14:06 jbj Exp $ 1.1266 -+# $Id: macros.in,v 1.2 2004/01/22 21:42:09 rse Exp $ 1.1267 - # 1.1268 - # This is a global RPM configuration file. All changes made here will 1.1269 - # be lost when the rpm package is upgraded. Any per-system configuration 1.1270 -@@ -206,7 +206,7 @@ 1.1271 - 1.1272 - # Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files 1.1273 - # marked as %doc should be installed. 1.1274 --#%_excludedocs 1.1275 -+%_excludedocs 1 1.1276 - 1.1277 - # The port and machine name of a FTP proxy host running TIS firewall. 1.1278 - # 1.1279 -@@ -305,7 +305,7 @@ 1.1280 - # Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged. 1.1281 - # 1.1282 - # Note: Disable (by commenting out) for legacy compatibility. 1.1283 --%__check_files @RPMCONFIGDIR@/check-files %{buildroot} 1.1284 -+#%__check_files @RPMCONFIGDIR@/check-files %{buildroot} 1.1285 - 1.1286 - # 1.1287 - # Should unpackaged files in a build root terminate a build? 1.1288 -@@ -449,7 +449,7 @@ 1.1289 - 1.1290 - # Use a CDB database model for concurrent access. 1.1291 - # XXX Add "private" here for legacy interoperation transiting to glibc+nptl. 1.1292 --%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb 1.1293 -+%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb %{?_rpmdb_private:private} 1.1294 - 1.1295 - %__dbi_other %{?_tmppath:tmpdir=%{_tmppath}} %{?__dbi_cdb} 1.1296 - 1.1297 -@@ -618,6 +618,10 @@ 1.1298 - # If non-zero, all erasures will be automagically repackaged. 1.1299 - %_repackage_all_erasures 0 1.1300 - 1.1301 -+# If non-zero, automatically enforce --oldpackage for all upgrade operations 1.1302 -+# (useful on mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE) 1.1303 -+%_force_oldpackage 0 1.1304 -+ 1.1305 - # Verify digest/signature flags for various rpm modes: 1.1306 - # 1 --nohdrchk if set, don't check rpmdb headers 1.1307 - # 1.1308 -@@ -870,6 +874,26 @@ 1.1309 - #%{__spec_clean_post}\ 1.1310 - #%{nil} 1.1311 - 1.1312 -+%__spec_track_shell %{___build_shell} 1.1313 -+%__spec_track_args %{___build_args} 1.1314 -+%__spec_track_cmd %{___build_cmd} 1.1315 -+%__spec_track_pre %{___build_pre} 1.1316 -+%__spec_track_body %{___build_body} 1.1317 -+%__spec_track_post %{___build_post} 1.1318 -+%__spec_track_template #!%{__spec_track_shell}\ 1.1319 -+%{__spec_track_pre}\ 1.1320 -+%{nil} 1.1321 -+ 1.1322 -+%__spec_test_shell %{___build_shell} 1.1323 -+%__spec_test_args %{___build_args} 1.1324 -+%__spec_test_cmd %{___build_cmd} 1.1325 -+%__spec_test_pre %{___build_pre} 1.1326 -+%__spec_test_body %{___build_body} 1.1327 -+%__spec_test_post %{___build_post} 1.1328 -+%__spec_test_template #!%{__spec_test_shell}\ 1.1329 -+%{__spec_test_pre}\ 1.1330 -+%{nil} 1.1331 -+ 1.1332 - %__spec_rmbuild_shell %{___build_shell} 1.1333 - %__spec_rmbuild_args %{___build_args} 1.1334 - %__spec_rmbuild_cmd %{___build_cmd} 1.1335 -@@ -929,11 +953,11 @@ 1.1336 - %_build_cpu %{_host_cpu} 1.1337 - %_build_vendor %{_host_vendor} 1.1338 - %_build_os %{_host_os} 1.1339 --%_host @host@ 1.1340 --%_host_alias @host_alias@%{nil} 1.1341 --%_host_cpu @host_cpu@ 1.1342 --%_host_vendor @host_vendor@ 1.1343 --%_host_os @host_os@ 1.1344 -+#%_host @host@ 1.1345 -+#%_host_alias @host_alias@%{nil} 1.1346 -+#%_host_cpu @host_cpu@ 1.1347 -+#%_host_vendor @host_vendor@ 1.1348 -+#%_host_os @host_os@ 1.1349 - %_target %{_host} 1.1350 - %_target_alias %{_host_alias} 1.1351 - %_target_cpu %{_host_cpu} 1.1352 - 1.1353 -+--------------------------------------------------------------------------- 1.1354 -| Adjust path for OpenPKG filesystem layout. 1.1355 -+--------------------------------------------------------------------------- 1.1356 -Index: scripts/Makefile.am 1.1357 ---- scripts/Makefile.am 20 Jun 2003 19:04:49 -0000 1.1.1.11 1.1358 -+++ scripts/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2 1.1359 -@@ -22,7 +22,7 @@ 1.1360 - 1.1361 - all: 1.1362 - 1.1363 --configdir = ${prefix}/lib/rpm 1.1364 -+configdir = ${prefix}/lib/openpkg 1.1365 - config_SCRIPTS = \ 1.1366 - brp-compress brp-python-bytecompile brp-redhat \ 1.1367 - brp-strip brp-strip-comment-note \ 1.1368 - 1.1369 -+--------------------------------------------------------------------------- 1.1370 -| Adjust path for OpenPKG filesystem layout. 1.1371 -+--------------------------------------------------------------------------- 1.1372 -Index: scripts/Makefile.in 1.1373 ---- scripts/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.14 1.1374 -+++ scripts/Makefile.in 22 Jan 2004 21:42:34 -0000 1.2 1.1375 -@@ -273,7 +273,7 @@ 1.1376 - 1.1377 - installprefix = $(DESTDIR) 1.1378 - 1.1379 --configdir = ${prefix}/lib/rpm 1.1380 -+configdir = ${prefix}/lib/openpkg 1.1381 - config_SCRIPTS = \ 1.1382 - brp-compress brp-python-bytecompile brp-redhat \ 1.1383 - brp-strip brp-strip-comment-note \ 1.1384 - 1.1385 -+--------------------------------------------------------------------------- 1.1386 -| Use GNU libtool's weaker -static (link with own static libraries) 1.1387 -| instead of the strong -all-static (link even with static libc, etc), 1.1388 -| because OpenPKG does not need to be fully static. 1.1389 -| Additionally, adjust the path to file(1)'s "magic" file. 1.1390 -+--------------------------------------------------------------------------- 1.1391 -Index: file/Makefile.am 1.1392 ---- file/Makefile.am 24 Jan 2003 19:41:56 -0000 1.1.1.1 1.1393 -+++ file/Makefile.am 22 Jan 2004 21:42:21 -0000 1.2 1.1394 -@@ -36,7 +36,7 @@ 1.1395 - #MAGIC = @datadir@/magic 1.1396 - #data_DATA = magic magic.mime magic.mgc magic.mime.mgc 1.1397 - 1.1398 --pkglibdir = @prefix@/lib/rpm 1.1399 -+pkglibdir = @prefix@/lib/openpkg 1.1400 - pkglib_DATA = magic magic.mime magic.mgc magic.mime.mgc 1.1401 - MAGIC = $(pkglibdir)/magic 1.1402 - CPPFLAGS = -DMAGIC='"$(MAGIC)"' 1.1403 - 1.1404 -+--------------------------------------------------------------------------- 1.1405 -| Use GNU libtool's weaker -static (link with own static libraries) 1.1406 -| instead of the strong -all-static (link even with static libc, etc), 1.1407 -| because OpenPKG does not need to be fully static. 1.1408 -| Additionally, adjust the path to file(1)'s "magic" file. 1.1409 -+--------------------------------------------------------------------------- 1.1410 -Index: file/Makefile.in 1.1411 ---- file/Makefile.in 16 Jul 2003 17:05:23 -0000 1.1.1.2 1.1412 -+++ file/Makefile.in 22 Jan 2004 21:42:22 -0000 1.2 1.1413 -@@ -39,7 +39,7 @@ 1.1414 - 1.1415 - #MAGIC = @datadir@/magic 1.1416 - #data_DATA = magic magic.mime magic.mgc magic.mime.mgc 1.1417 --pkglibdir = @prefix@/lib/rpm 1.1418 -+pkglibdir = @prefix@/lib/openpkg 1.1419 - ACLOCAL = @ACLOCAL@ 1.1420 - AMDEP_FALSE = @AMDEP_FALSE@ 1.1421 - AMDEP_TRUE = @AMDEP_TRUE@ 1.1422 -@@ -159,7 +159,7 @@ 1.1423 - noinst_PROGRAMS = file 1.1424 - 1.1425 - file_SOURCES = file.c 1.1426 --file_LDFLAGS = -all-static 1.1427 -+file_LDFLAGS = -static 1.1428 - file_LDADD = libfmagic.la 1.1429 - 1.1430 - man_MAGIC = magic.@fsect@ 1.1431 - 1.1432 -+--------------------------------------------------------------------------- 1.1433 -| Use GNU libtool's weaker -static (link with own static libraries) 1.1434 -| instead of the strong -all-static (link even with static libc, etc), 1.1435 -| because OpenPKG does not need to be fully static. 1.1436 -| Additionally, disable the building of gettext stuff we don't need. 1.1437 -+--------------------------------------------------------------------------- 1.1438 -Index: popt/Makefile.am 1.1439 ---- popt/Makefile.am 6 Mar 2003 23:16:43 -0000 1.1.1.9 1.1440 -+++ popt/Makefile.am 22 Jan 2004 21:42:28 -0000 1.2 1.1441 -@@ -9,7 +9,7 @@ 1.1442 - po/*.in po/*.po po/popt.pot \ 1.1443 - popt.ps 1.1444 - 1.1445 --SUBDIRS = intl po 1.1446 -+SUBDIRS = intl 1.1447 - 1.1448 - INCLUDES = -I. -I$(top_srcdir) 1.1449 - 1.1450 -@@ -17,13 +17,13 @@ 1.1451 - 1.1452 - noinst_PROGRAMS = test1 test2 test3 1.1453 - test1_SOURCES = test1.c 1.1454 --test1_LDFLAGS = -all-static 1.1455 -+test1_LDFLAGS = -static 1.1456 - test1_LDADD = $(usrlib_LTLIBRARIES) 1.1457 - test2_SOURCES = test2.c 1.1458 --test2_LDFLAGS = -all-static 1.1459 -+test2_LDFLAGS = -static 1.1460 - test2_LDADD = $(usrlib_LTLIBRARIES) 1.1461 - test3_SOURCES = test3.c 1.1462 --test3_LDFLAGS = -all-static 1.1463 -+test3_LDFLAGS = -static 1.1464 - test3_LDADD = $(usrlib_LTLIBRARIES) 1.1465 - 1.1466 - noinst_SCRIPTS = testit.sh 1.1467 - 1.1468 -+--------------------------------------------------------------------------- 1.1469 -| Use GNU libtool's weaker -static (link with own static libraries) 1.1470 -| instead of the strong -all-static (link even with static libc, etc), 1.1471 -| because OpenPKG does not need to be fully static. 1.1472 -| Additionally, disable the building of gettext stuff we don't need. 1.1473 -+--------------------------------------------------------------------------- 1.1474 -Index: popt/Makefile.in 1.1475 ---- popt/Makefile.in 16 Jul 2003 17:04:49 -0000 1.1.1.14 1.1476 -+++ popt/Makefile.in 22 Jan 2004 21:42:28 -0000 1.2 1.1477 -@@ -163,7 +163,7 @@ 1.1478 - popt.ps 1.1479 - 1.1480 - 1.1481 --SUBDIRS = intl po 1.1482 -+SUBDIRS = intl 1.1483 - 1.1484 - INCLUDES = -I. -I$(top_srcdir) 1.1485 - 1.1486 -@@ -171,13 +171,13 @@ 1.1487 - 1.1488 - noinst_PROGRAMS = test1 test2 test3 1.1489 - test1_SOURCES = test1.c 1.1490 --test1_LDFLAGS = -all-static 1.1491 -+test1_LDFLAGS = -static 1.1492 - test1_LDADD = $(usrlib_LTLIBRARIES) 1.1493 - test2_SOURCES = test2.c 1.1494 --test2_LDFLAGS = -all-static 1.1495 -+test2_LDFLAGS = -static 1.1496 - test2_LDADD = $(usrlib_LTLIBRARIES) 1.1497 - test3_SOURCES = test3.c 1.1498 --test3_LDFLAGS = -all-static 1.1499 -+test3_LDFLAGS = -static 1.1500 - test3_LDADD = $(usrlib_LTLIBRARIES) 1.1501 - 1.1502 - noinst_SCRIPTS = testit.sh 1.1503 - 1.1504 -+--------------------------------------------------------------------------- 1.1505 -| Revert back to the old behaviour of passing to "exec" programs an 1.1506 -| extra "--" argument to separate options and arguments. Additionally, 1.1507 -| allow the "!#:+" constructs to be used multiple times and then each 1.1508 -| time eat another argument (instead of just eating an argument once 1.1509 -| and expanding this multiple times). 1.1510 -+--------------------------------------------------------------------------- 1.1511 -Index: popt/popt.c 1.1512 ---- popt/popt.c 22 Aug 2002 14:17:44 -0000 1.1.1.12 1.1513 -+++ popt/popt.c 22 Jan 2004 21:42:28 -0000 1.2 1.1514 -@@ -400,9 +400,7 @@ 1.1515 - } 1.1516 - 1.1517 - if (con->leftovers != NULL && con->numLeftovers > 0) { 1.1518 --#if 0 1.1519 - argv[argc++] = "--"; 1.1520 --#endif 1.1521 - memcpy(argv + argc, con->leftovers, sizeof(*argv) * con->numLeftovers); 1.1522 - argc += con->numLeftovers; 1.1523 - } 1.1524 -@@ -580,10 +578,8 @@ 1.1525 - if (!(s[0] == '#' && s[1] == ':' && s[2] == '+')) 1.1526 - /*@switchbreak@*/ break; 1.1527 - /* XXX Make sure that findNextArg deletes only next arg. */ 1.1528 -- if (a == NULL) { 1.1529 - if ((a = findNextArg(con, 1, 1)) == NULL) 1.1530 - /*@switchbreak@*/ break; 1.1531 -- } 1.1532 - s += 3; 1.1533 - 1.1534 - alen = strlen(a); 1.1535 - 1.1536 -+--------------------------------------------------------------------------- 1.1537 -| Dedefine the stdio variable BUFSIZ because it is usually just 1024 1.1538 -| on some platforms (on Linux it is 8192) and unfortunately RPM uses 1.1539 -| it here for the macro expansion buffer. For OpenPKG the size 1024 is 1.1540 -| definetely too small. So increase this to a 16KB buffer. 1.1541 -+--------------------------------------------------------------------------- 1.1542 -Index: rpmio/macro.c 1.1543 ---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 1.1544 -+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 1.1545 -@@ -50,6 +50,9 @@ 1.1546 - 1.1547 - #include "debug.h" 1.1548 - 1.1549 -+#undef BUFSIZ 1.1550 -+#define BUFSIZ 16384 1.1551 -+ 1.1552 - #if defined(__LCLINT__) 1.1553 - /*@-exportheader@*/ 1.1554 - extern const unsigned short int **__ctype_b_loc (void) /*@*/; 1.1555 - 1.1556 -+--------------------------------------------------------------------------- 1.1557 -| Remove "unzip" support, because in OpenPKG there are less than 1.1558 -| a dozend packages requiring unpacking of .zip files. For these 1.1559 -| it is fully sufficient to explicitly require the "infozip" 1.1560 -| package (containing "unzip") and leaving the less portable 1.1561 -| "unzip" out of the bootstrap package. 1.1562 -+--------------------------------------------------------------------------- 1.1563 -Index: rpmio/macro.c 1.1564 ---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 1.1565 -+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 1.1566 -@@ -1119,9 +1119,11 @@ 1.1567 - case 2: /* COMPRESSED_BZIP2 */ 1.1568 - sprintf(be, "%%_bzip2 %s", b); 1.1569 - break; 1.1570 -+#if 0 1.1571 - case 3: /* COMPRESSED_ZIP */ 1.1572 - sprintf(be, "%%_unzip %s", b); 1.1573 - break; 1.1574 -+#endif 1.1575 - } 1.1576 - b = be; 1.1577 - } else if (STREQ("S", f, fn)) { 1.1578 -@@ -1723,9 +1725,11 @@ 1.1579 - 1.1580 - if ((magic[0] == 'B') && (magic[1] == 'Z')) { 1.1581 - *compressed = COMPRESSED_BZIP2; 1.1582 -+#if 0 1.1583 - } else if ((magic[0] == 0120) && (magic[1] == 0113) && 1.1584 - (magic[2] == 0003) && (magic[3] == 0004)) { /* pkzip */ 1.1585 - *compressed = COMPRESSED_ZIP; 1.1586 -+#endif 1.1587 - } else if (((magic[0] == 0037) && (magic[1] == 0213)) || /* gzip */ 1.1588 - ((magic[0] == 0037) && (magic[1] == 0236)) || /* old gzip */ 1.1589 - ((magic[0] == 0037) && (magic[1] == 0036)) || /* pack */ 1.1590 - 1.1591 -+--------------------------------------------------------------------------- 1.1592 -| Make sure that an %{error:<msg>} macro really stops further 1.1593 -| processing. Else it would be nothing more than a %{warn:<msg>}. 1.1594 -+--------------------------------------------------------------------------- 1.1595 -Index: rpmio/macro.c 1.1596 ---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 1.1597 -+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 1.1598 -@@ -1337,7 +1337,7 @@ 1.1599 - STREQ("error", f, fn)) { 1.1600 - int waserror = 0; 1.1601 - if (STREQ("error", f, fn)) 1.1602 -- waserror = 1; 1.1603 -+ waserror = 1, rc = 1; 1.1604 - if (g < ge) 1.1605 - doOutput(mb, waserror, g, gn); 1.1606 - else 1.1607 - 1.1608 -+--------------------------------------------------------------------------- 1.1609 -| Reactivate build mode aliases which were removed in rpm-4.1 1.1610 -| (and now should be available through "rpmbuild" only). 1.1611 -+--------------------------------------------------------------------------- 1.1612 -Index: rpmpopt.in 1.1613 ---- rpmpopt.in 24 Jan 2003 14:56:30 -0000 1.1.1.7 1.1614 -+++ rpmpopt.in 22 Jan 2004 21:42:11 -0000 1.2 1.1615 -@@ -147,28 +147,28 @@ 1.1616 - # Popt glue to preserve legacy CLI behavior. 1.1617 - # 1.1618 - # XXX popt exec parsing doesn't honor POPT_ARGFLAG_ONEDASH 1.1619 --# XXX Build mode aliases, removed in rpm-4.1. 1.1620 --#rpm exec --bp rpmb -bp 1.1621 --#rpm exec --bc rpmb -bc 1.1622 --#rpm exec --bi rpmb -bi 1.1623 --#rpm exec --bl rpmb -bl 1.1624 --#rpm exec --ba rpmb -ba 1.1625 --#rpm exec --bb rpmb -bb 1.1626 --#rpm exec --bs rpmb -bs 1.1627 --#rpm exec --tp rpmb -tp 1.1628 --#rpm exec --tc rpmb -tc 1.1629 --#rpm exec --ti rpmb -ti 1.1630 --#rpm exec --tl rpmb -tl 1.1631 --#rpm exec --ta rpmb -ta 1.1632 --#rpm exec --tb rpmb -tb 1.1633 --#rpm exec --ts rpmb -ts 1.1634 --#rpm exec --rebuild rpmb --rebuild 1.1635 --#rpm exec --recompile rpmb --recompile 1.1636 --#rpm exec --clean rpmb --clean 1.1637 --#rpm exec --rmsource rpmb --rmsource 1.1638 --#rpm exec --rmspec rpmb --rmspec 1.1639 --#rpm exec --target rpmb --target 1.1640 --#rpm exec --short-circuit rpmb --short-circuit 1.1641 -+rpm exec --bp rpmb -bp 1.1642 -+rpm exec --bc rpmb -bc 1.1643 -+rpm exec --bi rpmb -bi 1.1644 -+rpm exec --bl rpmb -bl 1.1645 -+rpm exec --ba rpmb -ba 1.1646 -+rpm exec --bb rpmb -bb 1.1647 -+rpm exec --bs rpmb -bs 1.1648 -+rpm exec --bt rpmb -bt 1.1649 -+rpm exec --tp rpmb -tp 1.1650 -+rpm exec --tc rpmb -tc 1.1651 -+rpm exec --ti rpmb -ti 1.1652 -+rpm exec --tl rpmb -tl 1.1653 -+rpm exec --ta rpmb -ta 1.1654 -+rpm exec --tb rpmb -tb 1.1655 -+rpm exec --ts rpmb -ts 1.1656 -+rpm exec --rebuild rpmb --rebuild 1.1657 -+rpm exec --recompile rpmb --recompile 1.1658 -+rpm exec --clean rpmb --clean 1.1659 -+rpm exec --rmsource rpmb --rmsource 1.1660 -+rpm exec --rmspec rpmb --rmspec 1.1661 -+rpm exec --target rpmb --target 1.1662 -+rpm exec --short-circuit rpmb --short-circuit 1.1663 - 1.1664 - rpm exec --initdb rpmd --initdb 1.1665 - rpm exec --rebuilddb rpmd --rebuilddb 1.1666 - 1.1667 -+--------------------------------------------------------------------------- 1.1668 -| Allow "-bb --short-circuit" for continuing building a binary package 1.1669 -| after the %install step (usually previously fixed and repeated with 1.1670 -| "-bi --short-circuit". 1.1671 -+--------------------------------------------------------------------------- 1.1672 -Index: rpmqv.c 1.1673 ---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 1.1674 -+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 1.1675 -@@ -682,6 +682,10 @@ 1.1676 - case 'b': 1.1677 - ba->buildAmount |= RPMBUILD_PACKAGEBINARY; 1.1678 - ba->buildAmount |= RPMBUILD_CLEAN; 1.1679 -+#ifdef OPENPKG 1.1680 -+ if ((ba->buildChar == 'b') && ba->shortCircuit) 1.1681 -+ /*@innerbreak@*/ break; 1.1682 -+#endif 1.1683 - /*@fallthrough@*/ 1.1684 - case 'i': 1.1685 - ba->buildAmount |= RPMBUILD_INSTALL; 1.1686 - 1.1687 -+--------------------------------------------------------------------------- 1.1688 -| Because permissions and ownership on Berkeley-DB region files 1.1689 -| __db.XXX have to be already fixed in advance and those files cannot 1.1690 -| be created in advance on the command line with some reasonable 1.1691 -| default (as it is the case for the other files which are created 1.1692 -| with [rpm]db_load), so force Berkeley-DB to accept zero-sized files 1.1693 -| and create them (instead of thinking another process is currently 1.1694 -| creating them). 1.1695 -+--------------------------------------------------------------------------- 1.1696 -Index: db/env/env_region.c 1.1697 ---- db/env/env_region.c 18 Jan 2003 14:05:01 -0000 1.1.1.5 1.1698 -+++ db/env/env_region.c 22 Jan 2004 21:42:17 -0000 1.2 1.1699 -@@ -184,6 +184,24 @@ 1.1700 - } 1.1701 - 1.1702 - /* 1.1703 -+ * OpenPKG hack: because permissions and ownership on Berkeley-DB 1.1704 -+ * region files __db.XXX have to be already fixed in advance and 1.1705 -+ * those files cannot be created in advance on the command line 1.1706 -+ * with some reasonable default (as it is the case for the other 1.1707 -+ * files which are created with [rpm]db_load), so force Berkeley-DB 1.1708 -+ * to accept zero-sized files and create them (instead of thinking 1.1709 -+ * another process is currently creating them). 1.1710 -+ */ 1.1711 -+ if (mbytes == 0 && bytes == 0) { 1.1712 -+ if (F_ISSET(dbenv, DB_ENV_CREATE)) 1.1713 -+ goto creation; 1.1714 -+ else { 1.1715 -+ ret = ENOENT; 1.1716 -+ goto err; 1.1717 -+ } 1.1718 -+ } 1.1719 -+ 1.1720 -+ /* 1.1721 - * !!! 1.1722 - * A size_t is OK -- regions get mapped into memory, and so can't 1.1723 - * be larger than a size_t. 1.1724 - 1.1725 -+--------------------------------------------------------------------------- 1.1726 -| Make sure RPM passes DB_CREATE to Berkeley-DB also if file exists, 1.1727 -| but is (still) zero-sized. 1.1728 -+--------------------------------------------------------------------------- 1.1729 -Index: rpmdb/db3.c 1.1730 ---- rpmdb/db3.c 3 Mar 2003 16:18:29 -0000 1.1.1.5 1.1731 -+++ rpmdb/db3.c 22 Jan 2004 21:42:29 -0000 1.2 1.1732 -@@ -1019,9 +1019,13 @@ 1.1733 - } else { /* dbhome is writable, check for persistent dbenv. */ 1.1734 - /*@-mods@*/ 1.1735 - const char * dbf = rpmGetPath(dbhome, "/__db.001", NULL); 1.1736 -+ struct stat sb; 1.1737 -+ long size = -1; 1.1738 - /*@=mods@*/ 1.1739 - 1.1740 -- if (access(dbf, F_OK) == -1) { 1.1741 -+ if (stat(dbf, &sb) == 0) 1.1742 -+ size = (long)sb.st_size; 1.1743 -+ if (access(dbf, F_OK) == -1 || size == 0) { 1.1744 - /* ... non-existent (or unwritable) DBENV, will create ... */ 1.1745 - dbi->dbi_oeflags |= DB_CREATE; 1.1746 - dbi->dbi_eflags &= ~DB_JOINENV; 1.1747 - 1.1748 -+--------------------------------------------------------------------------- 1.1749 -| Add internal feature variable %{_force_oldpackage} which, if 1.1750 -| non-zero, automatically enforces --oldpackage on all upgrade 1.1751 -| operations (this is useful on mass-upgrades from OpenPKG-CURRENT to 1.1752 -| OpenPKG-RELEASE). 1.1753 -+--------------------------------------------------------------------------- 1.1754 -Index: rpm.c 1.1755 ---- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23 1.1756 -+++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2 1.1757 -@@ -1016,6 +1016,10 @@ 1.1758 - 1.1759 - if (oldPackage && !upgrade) 1.1760 - argerror(_("--oldpackage may only be used during upgrades")); 1.1761 -+#ifdef OPENPKG 1.1762 -+ if (upgrade && rpmExpandNumeric("%{?_force_oldpackage}")) 1.1763 -+ probFilter |= RPMPROB_FILTER_OLDPACKAGE; 1.1764 -+#endif 1.1765 - 1.1766 - if (noPgp && bigMode != MODE_CHECKSIG) 1.1767 - argerror(_("--nopgp may only be used during signature checking")); 1.1768 - 1.1769 -+--------------------------------------------------------------------------- 1.1770 -| Add OpenPKG branding to make sure people do not intermix 1.1771 -| this RPM version with the stock RPM version. 1.1772 -+--------------------------------------------------------------------------- 1.1773 -Index: lib/poptALL.c 1.1774 ---- lib/poptALL.c 25 Jun 2003 19:10:01 -0000 1.1.1.3 1.1775 -+++ lib/poptALL.c 22 Jan 2004 21:42:23 -0000 1.2 1.1776 -@@ -102,7 +102,7 @@ 1.1777 - /*@globals rpmEVR, fileSystem @*/ 1.1778 - /*@modifies *fp, fileSystem @*/ 1.1779 - { 1.1780 -- fprintf(fp, _("RPM version %s\n"), rpmEVR); 1.1781 -+ fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR); 1.1782 - } 1.1783 - 1.1784 - /** 1.1785 - 1.1786 -+--------------------------------------------------------------------------- 1.1787 -| Add OpenPKG branding to make sure people do not intermix 1.1788 -| this RPM version with the stock RPM version. 1.1789 -+--------------------------------------------------------------------------- 1.1790 -Index: rpm.c 1.1791 ---- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23 1.1792 -+++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2 1.1793 -@@ -235,7 +235,7 @@ 1.1794 - static void printHelpLine(char * prefix, char * help); 1.1795 - 1.1796 - static void printVersion(void) { 1.1797 -- fprintf(stdout, _("RPM version %s\n"), rpmEVR); 1.1798 -+ fprintf(stdout, _("OpenPKG RPM %s\n"), rpmEVR); 1.1799 - } 1.1800 - 1.1801 - static void printBanner(void) { 1.1802 - 1.1803 -+--------------------------------------------------------------------------- 1.1804 -| Add OpenPKG branding to make sure people do not intermix 1.1805 -| this RPM version with the stock RPM version. 1.1806 -+--------------------------------------------------------------------------- 1.1807 -Index: rpmqv.c 1.1808 ---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 1.1809 -+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 1.1810 -@@ -126,7 +126,7 @@ 1.1811 - /*@globals rpmEVR, fileSystem @*/ 1.1812 - /*@modifies *fp, fileSystem @*/ 1.1813 - { 1.1814 -- fprintf(fp, _("RPM version %s\n"), rpmEVR); 1.1815 -+ fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR); 1.1816 - } 1.1817 - 1.1818 - static void printBanner(FILE * fp) 1.1819 - 1.1820 -+--------------------------------------------------------------------------- 1.1821 -| Add support for the OpenPKG custom .spec file sections %track 1.1822 -| (package build-time feature for performing vendor source tracking) 1.1823 -| and %test (package install-time feature for performing package 1.1824 -| run-time tests). 1.1825 -+--------------------------------------------------------------------------- 1.1826 -Index: rpmqv.c 1.1827 ---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 1.1828 -+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 1.1829 -@@ -707,7 +707,19 @@ 1.1830 - /*@innerbreak@*/ break; 1.1831 - case 's': 1.1832 - ba->buildAmount |= RPMBUILD_PACKAGESOURCE; 1.1833 -+ /* enforce no dependency checking */ 1.1834 -+ ba->noDeps = 1; 1.1835 - /*@innerbreak@*/ break; 1.1836 -+#ifdef OPENPKG 1.1837 -+ case 't': 1.1838 -+ ba->buildAmount |= RPMBUILD_TRACK; 1.1839 -+ /* enforce no dependency checking and expansion of %setup, %patch and %prep macros */ 1.1840 -+ ba->noDeps = 1; 1.1841 -+ rpmDefineMacro(NULL, "setup #", RMIL_CMDLINE); 1.1842 -+ rpmDefineMacro(NULL, "patch #", RMIL_CMDLINE); 1.1843 -+ rpmDefineMacro(NULL, "prep %%prep", RMIL_CMDLINE); 1.1844 -+ /*@innerbreak@*/ break; 1.1845 -+#endif 1.1846 - } 1.1847 - 1.1848 - if (!poptPeekArg(optCon)) { 1.1849 - 1.1850 -+--------------------------------------------------------------------------- 1.1851 -| Add support for the OpenPKG custom .spec file sections %track 1.1852 -| (package build-time feature for performing vendor source tracking) 1.1853 -| and %test (package install-time feature for performing package 1.1854 -| run-time tests). 1.1855 -+--------------------------------------------------------------------------- 1.1856 -Index: build/pack.c 1.1857 ---- build/pack.c 4 Mar 2003 17:03:17 -0000 1.1.1.20 1.1858 -+++ build/pack.c 30 Jan 2004 17:06:29 -0000 1.2 1.1859 -@@ -252,6 +252,15 @@ 1.1860 - return RPMERR_BADFILENAME; 1.1861 - } 1.1862 - } 1.1863 -+#ifdef OPENPKG 1.1864 -+ if (pkg->testFile) { 1.1865 -+ if (addFileToTag(spec, pkg->testFile, pkg->header, RPMTAG_TEST)) { 1.1866 -+ rpmError(RPMERR_BADFILENAME, 1.1867 -+ _("Could not open Test file: %s\n"), pkg->testFile); 1.1868 -+ return RPMERR_BADFILENAME; 1.1869 -+ } 1.1870 -+ } 1.1871 -+#endif 1.1872 - 1.1873 - for (p = pkg->triggerFiles; p != NULL; p = p->next) { 1.1874 - (void) headerAddOrAppendEntry(pkg->header, RPMTAG_TRIGGERSCRIPTPROG, 1.1875 - 1.1876 -+--------------------------------------------------------------------------- 1.1877 -| Add support for the OpenPKG custom .spec file sections %track 1.1878 -| (package build-time feature for performing vendor source tracking) 1.1879 -| and %test (package install-time feature for performing package 1.1880 -| run-time tests). 1.1881 -+--------------------------------------------------------------------------- 1.1882 -Index: build/parseBuildInstallClean.c 1.1883 ---- build/parseBuildInstallClean.c 3 Mar 2003 20:43:30 -0000 1.1.1.9 1.1884 -+++ build/parseBuildInstallClean.c 30 Jan 2004 17:06:29 -0000 1.2 1.1885 -@@ -29,6 +29,11 @@ 1.1886 - } else if (parsePart == PART_CLEAN) { 1.1887 - sbp = &(spec->clean); 1.1888 - name = "%clean"; 1.1889 -+#ifdef OPENPKG 1.1890 -+ } else if (parsePart == PART_TRACK) { 1.1891 -+ sbp = &(spec->track); 1.1892 -+ name = "%track"; 1.1893 -+#endif 1.1894 - } 1.1895 - /*@=branchstate@*/ 1.1896 - 1.1897 - 1.1898 -+--------------------------------------------------------------------------- 1.1899 -| Add support for the OpenPKG custom .spec file sections %track 1.1900 -| (package build-time feature for performing vendor source tracking) 1.1901 -| and %test (package install-time feature for performing package 1.1902 -| run-time tests). 1.1903 -+--------------------------------------------------------------------------- 1.1904 -Index: build/parseScript.c 1.1905 ---- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12 1.1906 -+++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3 1.1907 -@@ -156,6 +156,14 @@ 1.1908 - progtag = RPMTAG_TRIGGERSCRIPTPROG; 1.1909 - partname = "%triggerpostun"; 1.1910 - break; 1.1911 -+#ifdef OPENPKG 1.1912 -+ case PART_TEST: 1.1913 -+ tag = RPMTAG_TEST; 1.1914 -+ tagflags = RPMSENSE_SCRIPT_TEST; 1.1915 -+ progtag = RPMTAG_TESTPROG; 1.1916 -+ partname = "%test"; 1.1917 -+ break; 1.1918 -+#endif 1.1919 - } 1.1920 - /*@=branchstate@*/ 1.1921 - 1.1922 -@@ -304,6 +313,11 @@ 1.1923 - case PART_VERIFYSCRIPT: 1.1924 - pkg->verifyFile = xstrdup(file); 1.1925 - break; 1.1926 -+#ifdef OPENPKG 1.1927 -+ case PART_TEST: 1.1928 -+ pkg->testFile = xstrdup(file); 1.1929 -+ break; 1.1930 -+#endif 1.1931 - } 1.1932 - } 1.1933 - } 1.1934 - 1.1935 -+--------------------------------------------------------------------------- 1.1936 -| Add support for the OpenPKG custom .spec file sections %track 1.1937 -| (package build-time feature for performing vendor source tracking) 1.1938 -| and %test (package install-time feature for performing package 1.1939 -| run-time tests). 1.1940 -| 1.1941 -| MSvB: Additionally provide a default %clean section, removing buildroot. 1.1942 -+--------------------------------------------------------------------------- 1.1943 -Index: build/parseSpec.c 1.1944 ---- build/parseSpec.c 15 May 2003 13:38:57 -0000 1.1.1.15 1.1945 -+++ build/parseSpec.c 30 Jan 2004 17:06:30 -0000 1.2 1.1946 -@@ -43,6 +43,10 @@ 1.1947 - { PART_TRIGGERIN, 0, "%triggerin"}, 1.1948 - { PART_TRIGGERIN, 0, "%trigger"}, 1.1949 - { PART_VERIFYSCRIPT, 0, "%verifyscript"}, 1.1950 -+#ifdef OPENPKG 1.1951 -+ { PART_TRACK, 0, "%track"}, 1.1952 -+ { PART_TEST, 0, "%test"}, 1.1953 -+#endif 1.1954 - {0, 0, 0} 1.1955 - }; 1.1956 - 1.1957 -@@ -489,6 +493,15 @@ 1.1958 - parsePart = parseFiles(spec); 1.1959 - /*@switchbreak@*/ break; 1.1960 - 1.1961 -+#ifdef OPENPKG 1.1962 -+ case PART_TRACK: 1.1963 -+ parsePart = parseBuildInstallClean(spec, parsePart); 1.1964 -+ /*@switchbreak@*/ break; 1.1965 -+ case PART_TEST: 1.1966 -+ parsePart = parseScript(spec, parsePart); 1.1967 -+ /*@switchbreak@*/ break; 1.1968 -+#endif 1.1969 -+ 1.1970 - case PART_NONE: /* XXX avoid gcc whining */ 1.1971 - case PART_LAST: 1.1972 - case PART_BUILDARCHITECTURES: 1.1973 -@@ -576,6 +589,13 @@ 1.1974 - } 1.1975 - /*@=infloops@*/ /* LCL: parsePart is modified @*/ 1.1976 - 1.1977 -+ if (spec->clean == NULL) { 1.1978 -+ char *body = rpmExpand("%{?buildroot: %{__rm} -rf %{buildroot}}", NULL); 1.1979 -+ spec->clean = newStringBuf(); 1.1980 -+ appendLineStringBuf(spec->clean, body); 1.1981 -+ free(body); 1.1982 -+ } 1.1983 -+ 1.1984 - /* Check for description in each package and add arch and os */ 1.1985 - { 1.1986 - #ifdef DYING 1.1987 - 1.1988 -+--------------------------------------------------------------------------- 1.1989 -| Add support for the OpenPKG custom .spec file sections %track 1.1990 -| (package build-time feature for performing vendor source tracking) 1.1991 -| and %test (package install-time feature for performing package 1.1992 -| run-time tests). 1.1993 -+--------------------------------------------------------------------------- 1.1994 -Index: build/poptBT.c 1.1995 ---- build/poptBT.c 3 Mar 2003 20:04:12 -0000 1.1.1.3 1.1996 -+++ build/poptBT.c 30 Jan 2004 17:06:30 -0000 1.2 1.1997 -@@ -35,6 +35,9 @@ 1.1998 - #define POPT_BL 0x626c 1.1999 - #define POPT_BP 0x6270 1.2000 - #define POPT_BS 0x6273 1.2001 -+#ifdef OPENPKG 1.2002 -+#define POPT_BT 0x6274 1.2003 -+#endif 1.2004 - #define POPT_TA 0x7461 1.2005 - #define POPT_TB 0x7462 1.2006 - #define POPT_TC 0x7463 1.2007 -@@ -82,6 +85,9 @@ 1.2008 - case POPT_BL: 1.2009 - case POPT_BP: 1.2010 - case POPT_BS: 1.2011 -+#ifdef OPENPKG 1.2012 -+ case POPT_BT: 1.2013 -+#endif 1.2014 - case POPT_TA: 1.2015 - case POPT_TB: 1.2016 - case POPT_TC: 1.2017 -@@ -177,6 +183,11 @@ 1.2018 - { "bs", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BS, 1.2019 - N_("build source package only from <specfile>"), 1.2020 - N_("<specfile>") }, 1.2021 -+#ifdef OPENPKG 1.2022 -+ { "bt", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BT, 1.2023 -+ N_("track versions of sources from <specfile>"), 1.2024 -+ N_("<specfile>") }, 1.2025 -+#endif 1.2026 - 1.2027 - { "tp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TP, 1.2028 - N_("build through %prep (unpack sources and apply patches) from <tarball>"), 1.2029 - 1.2030 -+--------------------------------------------------------------------------- 1.2031 -| Add support for the OpenPKG custom .spec file sections %track 1.2032 -| (package build-time feature for performing vendor source tracking) 1.2033 -| and %test (package install-time feature for performing package 1.2034 -| run-time tests). 1.2035 -+--------------------------------------------------------------------------- 1.2036 -Index: build/rpmbuild.h 1.2037 ---- build/rpmbuild.h 4 Mar 2003 17:03:07 -0000 1.1.1.13 1.2038 -+++ build/rpmbuild.h 30 Jan 2004 17:06:30 -0000 1.2 1.2039 -@@ -34,6 +34,9 @@ 1.2040 - RPMBUILD_RMSOURCE = (1 << 8), /*!< Remove source(s) and patch(s). */ 1.2041 - RPMBUILD_RMBUILD = (1 << 9), /*!< Remove build sub-tree. */ 1.2042 - RPMBUILD_STRINGBUF = (1 << 10), /*!< only for doScript() */ 1.2043 -+#ifdef OPENPKG 1.2044 -+ RPMBUILD_TRACK = (1 << 12), /*!< Execute %%track. */ 1.2045 -+#endif 1.2046 - RPMBUILD_RMSPEC = (1 << 11) /*!< Remove spec file. */ 1.2047 - } rpmBuildFlags; 1.2048 - /*@=typeuse@*/ 1.2049 -@@ -69,7 +72,13 @@ 1.2050 - PART_VERIFYSCRIPT = 16, /*!< */ 1.2051 - PART_BUILDARCHITECTURES= 17,/*!< */ 1.2052 - PART_TRIGGERPOSTUN = 18, /*!< */ 1.2053 -+#ifdef OPENPKG 1.2054 -+ PART_TRACK = 19, /*!< */ 1.2055 -+ PART_TEST = 20, /*!< */ 1.2056 -+ PART_LAST = 21 /*!< */ 1.2057 -+#else 1.2058 - PART_LAST = 19 /*!< */ 1.2059 -+#endif 1.2060 - } rpmParseState; 1.2061 - 1.2062 - #define STRIP_NOTHING 0 1.2063 - 1.2064 -+--------------------------------------------------------------------------- 1.2065 -| Add support for the OpenPKG custom .spec file sections %track 1.2066 -| (package build-time feature for performing vendor source tracking) 1.2067 -| and %test (package install-time feature for performing package 1.2068 -| run-time tests). 1.2069 -+--------------------------------------------------------------------------- 1.2070 -Index: build/rpmspec.h 1.2071 ---- build/rpmspec.h 4 Mar 2003 15:30:23 -0000 1.1.1.11 1.2072 -+++ build/rpmspec.h 30 Jan 2004 17:06:30 -0000 1.2 1.2073 -@@ -164,6 +164,10 @@ 1.2074 - StringBuf check; /*!< %check scriptlet. */ 1.2075 - /*@only@*/ 1.2076 - StringBuf clean; /*!< %clean scriptlet. */ 1.2077 -+#ifdef OPENPKG 1.2078 -+/*@only@*/ 1.2079 -+ StringBuf track; /*!< %track scriptlet. */ 1.2080 -+#endif 1.2081 - 1.2082 - /*@owned@*/ 1.2083 - Package packages; /*!< Package list. */ 1.2084 -@@ -196,6 +200,10 @@ 1.2085 - const char * postUnFile; /*!< %postun scriptlet. */ 1.2086 - /*@only@*/ 1.2087 - const char * verifyFile; /*!< %verifyscript scriptlet. */ 1.2088 -+#ifdef OPENPKG 1.2089 -+/*@only@*/ 1.2090 -+ const char * testFile; /*!< %test scriptlet. */ 1.2091 -+#endif 1.2092 - 1.2093 - /*@only@*/ 1.2094 - StringBuf specialDoc; 1.2095 - 1.2096 -+--------------------------------------------------------------------------- 1.2097 -| Add support for the OpenPKG custom .spec file sections %track 1.2098 -| (package build-time feature for performing vendor source tracking) 1.2099 -| and %test (package install-time feature for performing package 1.2100 -| run-time tests). 1.2101 -+--------------------------------------------------------------------------- 1.2102 -Index: build/spec.c 1.2103 ---- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21 1.2104 -+++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3 1.2105 -@@ -138,6 +138,9 @@ 1.2106 - p->preUnFile = NULL; 1.2107 - p->postUnFile = NULL; 1.2108 - p->verifyFile = NULL; 1.2109 -+#ifdef OPENPKG 1.2110 -+ p->testFile = NULL; 1.2111 -+#endif 1.2112 - 1.2113 - p->specialDoc = NULL; 1.2114 - 1.2115 -@@ -452,6 +463,9 @@ 1.2116 - spec->install = NULL; 1.2117 - spec->check = NULL; 1.2118 - spec->clean = NULL; 1.2119 -+#ifdef OPENPKG 1.2120 -+ spec->track = NULL; 1.2121 -+#endif 1.2122 - 1.2123 - spec->sources = NULL; 1.2124 - spec->packages = NULL; 1.2125 -@@ -499,6 +513,9 @@ 1.2126 - spec->install = freeStringBuf(spec->install); 1.2127 - spec->check = freeStringBuf(spec->check); 1.2128 - spec->clean = freeStringBuf(spec->clean); 1.2129 -+#ifdef OPENPKG 1.2130 -+ spec->track = freeStringBuf(spec->track); 1.2131 -+#endif 1.2132 - 1.2133 - spec->buildRootURL = _free(spec->buildRootURL); 1.2134 - spec->buildSubdir = _free(spec->buildSubdir); 1.2135 - 1.2136 -+--------------------------------------------------------------------------- 1.2137 -| Add support for the OpenPKG custom .spec file sections %track 1.2138 -| (package build-time feature for performing vendor source tracking) 1.2139 -| and %test (package install-time feature for performing package 1.2140 -| run-time tests). 1.2141 -+--------------------------------------------------------------------------- 1.2142 -Index: lib/rpmlib.h 1.2143 ---- lib/rpmlib.h 19 Jun 2003 17:39:35 -0000 1.1.1.26 1.2144 -+++ lib/rpmlib.h 30 Jan 2004 17:06:31 -0000 1.2 1.2145 -@@ -414,6 +414,12 @@ 1.2146 - RPMTAG_FILEDEPENDSN = 1144, 1.2147 - RPMTAG_DEPENDSDICT = 1145, 1.2148 - RPMTAG_SOURCEPKGID = 1146, 1.2149 -+#ifdef OPENPKG 1.2150 -+ RPMTAG_TRACK = 1200, 1.2151 -+ RPMTAG_TEST = 1201, 1.2152 -+ RPMTAG_TESTPROG = 1202, 1.2153 -+ RPMTAG_CLASS = 1203, 1.2154 -+#endif 1.2155 - /*@-enummemuse@*/ 1.2156 - RPMTAG_FIRSTFREE_TAG /*!< internal */ 1.2157 - /*@=enummemuse@*/ 1.2158 -@@ -488,6 +494,9 @@ 1.2159 - RPMSENSE_SCRIPT_BUILD = (1 << 21), /*!< %build build dependency. */ 1.2160 - RPMSENSE_SCRIPT_INSTALL = (1 << 22),/*!< %install build dependency. */ 1.2161 - RPMSENSE_SCRIPT_CLEAN = (1 << 23), /*!< %clean build dependency. */ 1.2162 -+#ifdef OPENPKG 1.2163 -+ RPMSENSE_SCRIPT_TEST = (1 << 29), /*!< %test build dependency. */ 1.2164 -+#endif 1.2165 - RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ), /*!< rpmlib(feature) dependency. */ 1.2166 - /*@-enummemuse@*/ 1.2167 - RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< @todo Implement %triggerprein. */ 1.2168 - 1.2169 -+--------------------------------------------------------------------------- 1.2170 -| Add support for the OpenPKG custom .spec file sections %track 1.2171 -| (package build-time feature for performing vendor source tracking) 1.2172 -| and %test (package install-time feature for performing package 1.2173 -| run-time tests). 1.2174 -| Additionally, add support for "Class" header. 1.2175 -+--------------------------------------------------------------------------- 1.2176 -Index: rpmdb/tagtbl.c 1.2177 ---- rpmdb/tagtbl.c 2 Jul 2003 20:20:27 -0000 1.1.1.4 1.2178 -+++ rpmdb/tagtbl.c 30 Jan 2004 17:06:32 -0000 1.2 1.2179 -@@ -135,6 +135,12 @@ 1.2180 - { "RPMTAG_FILEDEPENDSN", 1144, }, 1.2181 - { "RPMTAG_DEPENDSDICT", 1145, }, 1.2182 - { "RPMTAG_SOURCEPKGID", 1146, }, 1.2183 -+#ifdef OPENPKG 1.2184 -+ { "RPMTAG_TRACK", 1200, }, 1.2185 -+ { "RPMTAG_TEST", 1201, }, 1.2186 -+ { "RPMTAG_TESTPROG", 1202, }, 1.2187 -+ { "RPMTAG_CLASS", 1203, }, 1.2188 -+#endif 1.2189 - { NULL, 0 } 1.2190 - }; 1.2191 - 1.2192 - 1.2193 -+--------------------------------------------------------------------------- 1.2194 -| Add support for "Class" header. 1.2195 -+--------------------------------------------------------------------------- 1.2196 -Index: build/parsePreamble.c 1.2197 ---- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13 1.2198 -+++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3 1.2199 -@@ -21,6 +21,7 @@ 1.2200 - RPMTAG_LICENSE, 1.2201 - RPMTAG_PACKAGER, 1.2202 - RPMTAG_DISTRIBUTION, 1.2203 -+ RPMTAG_CLASS, 1.2204 - RPMTAG_DISTURL, 1.2205 - RPMTAG_VENDOR, 1.2206 - RPMTAG_ICON, 1.2207 -@@ -327,6 +328,7 @@ 1.2208 - { RPMTAG_VENDOR, "%{vendor}" }, 1.2209 - { RPMTAG_PACKAGER, "%{packager}" }, 1.2210 - { RPMTAG_DISTRIBUTION, "%{distribution}" }, 1.2211 -+ { RPMTAG_CLASS, "%{class}" }, 1.2212 - { RPMTAG_DISTURL, "%{disturl}" }, 1.2213 - { -1, NULL } 1.2214 - }; 1.2215 -@@ -545,6 +547,7 @@ 1.2216 - (void) stashSt(spec, pkg->header, tag, lang); 1.2217 - /*@fallthrough@*/ 1.2218 - case RPMTAG_DISTRIBUTION: 1.2219 -+ case RPMTAG_CLASS: 1.2220 - case RPMTAG_VENDOR: 1.2221 - case RPMTAG_LICENSE: 1.2222 - case RPMTAG_PACKAGER: 1.2223 -@@ -751,6 +754,7 @@ 1.2224 - {RPMTAG_LICENSE, 0, 0, "copyright"}, 1.2225 - {RPMTAG_LICENSE, 0, 0, "license"}, 1.2226 - {RPMTAG_DISTRIBUTION, 0, 0, "distribution"}, 1.2227 -+ {RPMTAG_CLASS, 0, 0, "class"}, 1.2228 - {RPMTAG_DISTURL, 0, 0, "disturl"}, 1.2229 - {RPMTAG_VENDOR, 0, 0, "vendor"}, 1.2230 - {RPMTAG_GROUP, 0, 1, "group"},