diff -r b363f8ef6dcb -r 9b4bbbae3a98 openpkg/rpm.patch.feature
--- a/openpkg/rpm.patch.feature Tue Jul 31 12:27:54 2012 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2227 +0,0 @@
-##
-## rpm.patch.feature -- Annotated OpenPKG RPM Patch file
-## Copyright (c) 2000-2007 OpenPKG Foundation e.V.
-## Copyright (c) 2000-2007 Ralf S. Engelschall
-##
-## This file assembles changes to existing RPM source files between
-## the original RedHat RPM and the OpenPKG RPM variant. It can be
-## automatically applied to a vanilla RedHat RPM source tree with the
-## 'patch' tool to upgrade those files. Each patch snippet is annotated
-## with a short description.
-##
-## Created on: 13-Sep-2006
-##
-## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG
-## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE.
-##
-
-+---------------------------------------------------------------------------
-| Remove "tools" directory from sub-directory list because it contains
-| things we are not interested in and which cause some build trouble
-| anyway.
-| Use a plain "rpmpopt" file without any trailing version.
-| Adjust paths to conform to OpenPKG filesystem layout.
-| Do not run the "installplatform" script, because not needed for OpenPKG.
-+---------------------------------------------------------------------------
-Index: Makefile.am
---- Makefile.am 29 May 2003 18:20:28 -0000 1.1.1.17
-+++ Makefile.am 22 Jan 2004 21:42:02 -0000 1.2
-@@ -12,9 +12,9 @@
- xmlspec/examples/*.sh xmlspec/examples/*.lst \
- xmlspec/examples/*.xmlspec \
- po/*.in po/*.po po/rpm.pot \
-- rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c
-+ rpm.magic rpmpopt rpmqv.c rpm.c
-
--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 .
-+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 .
-
- INCLUDES = \
- -I$(top_srcdir)/build \
-@@ -47,13 +47,10 @@
-
- pkglibdir = @RPMCONFIGDIR@
- pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq
--pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros
-+pkglib_DATA = rpmrc rpmpopt macros
- pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \
- config.guess config.sub config.site
-
--rpmpopt-$(VERSION): rpmpopt
-- cp rpmpopt $@
--
- noinst_HEADERS = build.h debug.h system.h
-
- rpm_SOURCES =
-@@ -124,32 +121,32 @@
- pkgsrcdir = $(prefix)/src/$(RPMCANONVENDOR)
-
- install-data-local:
-- @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
-+ @$(mkinstalldirs) $(DESTDIR)$(libdir)/openpkg
- @rm -f $(DESTDIR)$(libdir)/rpmrc
- @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc
- @rm -f $(DESTDIR)$(libdir)/rpmpopt
- @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt
- @rm -f $(DESTDIR)$(libdir)/rpm/rpmt
-- @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpme
-- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpmu
-- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpmv
-- @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv
-+ @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpme
-+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu
-+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv
-+ @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv
- rm -f $(DESTDIR)$(bindir)/rpmbuild
-- @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild
-+ @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild
- rm -f $(DESTDIR)$(bindir)/rpmquery
-- @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery
-+ @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery
- rm -f $(DESTDIR)$(bindir)/rpmverify
-- @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify
-+ @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify
- rm -f $(DESTDIR)$(bindir)/rpmsign
-- @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign
-+ @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign
- rm -f $(DESTDIR)$(bindir)/rpmdb ; \
-- @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
-+ @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
- for bf in e i u ; do \
- rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \
-- @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
-+ @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
- done
- @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\
- $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\
-@@ -174,11 +171,6 @@
- *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\
- esac
- $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch
-- @case "@host_os@" in \
-- mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\
-- solaris*|linux*) \
-- chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \
-- esac
- @$(mkinstalldirs) $(DESTDIR)/var/tmp
-
- .PHONY: setperms
-@@ -198,10 +190,10 @@
- $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\
- done
- @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)
-- @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm
-- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]*
-- -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm
-- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.*
-+ @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg
-+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]*
-+ -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg
-+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.*
-
- .PHONY: unsetgid
- unsetgid:
-@@ -244,7 +236,7 @@
- @sudo ./rpm -ta rpm-$(VERSION).tar.gz
-
- .PHONY: doxygen
--doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@
-+doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt
- rm -rf $@
- mkdir -p $@
- - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@
-
-+---------------------------------------------------------------------------
-| Remove "tools" directory from sub-directory list because it contains
-| things we are not interested in and which cause some build trouble
-| anyway.
-| Use a plain "rpmpopt" file without any trailing version.
-| Adjust paths to conform to OpenPKG filesystem layout.
-| Do not run the "installplatform" script, because not needed for OpenPKG.
-+---------------------------------------------------------------------------
-Index: Makefile.in
---- Makefile.in 16 Jul 2003 17:05:42 -0000 1.1.1.23
-+++ Makefile.in 22 Jan 2004 21:42:03 -0000 1.2
-@@ -265,10 +265,10 @@
- xmlspec/examples/*.sh xmlspec/examples/*.lst \
- xmlspec/examples/*.xmlspec \
- po/*.in po/*.po po/rpm.pot \
-- rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c
-+ rpm.magic rpmpopt rpmqv.c rpm.c
-
-
--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 .
-+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 .
-
- INCLUDES = \
- -I$(top_srcdir)/build \
-@@ -301,7 +301,7 @@
- bin_PROGRAMS = rpm2cpio
- bin_SCRIPTS = gendiff
- pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq
--pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros
-+pkglib_DATA = rpmrc rpmpopt macros
- pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \
- config.guess config.sub config.site
-
-@@ -1058,8 +1058,6 @@
- uninstall-rpmbinPROGRAMS
-
-
--rpmpopt-$(VERSION): rpmpopt
-- cp rpmpopt $@
- rpm.o: rpmqv.c
- $(COMPILE) -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c rpmqv.c
- rpmb.o: rpmqv.c
-@@ -1097,32 +1095,32 @@
- `make -s sources -C popt`
-
- install-data-local:
-- @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm
-+ @$(mkinstalldirs) $(DESTDIR)$(libdir)/openpkg
- @rm -f $(DESTDIR)$(libdir)/rpmrc
- @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc
- @rm -f $(DESTDIR)$(libdir)/rpmpopt
- @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpmt
-- @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpme
-- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpmu
-- @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu
-- @rm -f $(DESTDIR)$(libdir)/rpm/rpmv
-- @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmt
-+ @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpme
-+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu
-+ @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu
-+ @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv
-+ @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv
- rm -f $(DESTDIR)$(bindir)/rpmbuild
-- @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild
-+ @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild
- rm -f $(DESTDIR)$(bindir)/rpmquery
-- @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery
-+ @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery
- rm -f $(DESTDIR)$(bindir)/rpmverify
-- @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify
-+ @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify
- rm -f $(DESTDIR)$(bindir)/rpmsign
-- @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign
-+ @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign
- rm -f $(DESTDIR)$(bindir)/rpmdb ; \
-- @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
-+ @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \
- for bf in e i u ; do \
- rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \
-- @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
-+ @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \
- done
- @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\
- $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\
-@@ -1147,11 +1145,6 @@
- *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\
- esac
- $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch
-- @case "@host_os@" in \
-- mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\
-- solaris*|linux*) \
-- chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \
-- esac
- @$(mkinstalldirs) $(DESTDIR)/var/tmp
-
- .PHONY: setperms
-@@ -1171,10 +1164,10 @@
- $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\
- done
- @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)
-- @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm
-- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]*
-- -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm
-- -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.*
-+ @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg
-+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]*
-+ -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg
-+ -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.*
-
- .PHONY: unsetgid
- unsetgid:
-@@ -1217,7 +1210,7 @@
- @sudo ./rpm -ta rpm-$(VERSION).tar.gz
-
- .PHONY: doxygen
--doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@
-+doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt
- rm -rf $@
- mkdir -p $@
- - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@
-
-+---------------------------------------------------------------------------
-| Add support for splitted source directories, i.e., source files
-| alternatively can be placed into the .spec directory and are picked
-| up there, too.
-+---------------------------------------------------------------------------
-Index: build/build.c
---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20
-+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4
-@@ -33,7 +33,15 @@
-
- for (p = spec->sources; p != NULL; p = p->next) {
- if (! (p->flags & RPMBUILD_ISNO)) {
-+#ifndef OPENPKG
- const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+#else
-+ const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL);
-+ if (access(fn, F_OK) == -1) {
-+ fn = _free(fn);
-+ fn = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+ }
-+#endif
- rc = Unlink(fn);
- fn = _free(fn);
- }
-@@ -42,7 +50,15 @@
- for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
- for (p = pkg->icon; p != NULL; p = p->next) {
- if (! (p->flags & RPMBUILD_ISNO)) {
-+#ifndef OPENPKG
- const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+#else
-+ const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL);
-+ if (access(fn, F_OK) == -1) {
-+ fn = _free(fn);
-+ fn = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+ }
-+#endif
- rc = Unlink(fn);
- fn = _free(fn);
- }
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/build.c
---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20
-+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4
-@@ -129,6 +129,14 @@
- mTemplate = "%{__spec_clean_template}";
- mPost = "%{__spec_clean_post}";
- break;
-+#ifdef OPENPKG
-+ case RPMBUILD_TRACK:
-+ name = "%track";
-+ sb = spec->track;
-+ mTemplate = "%{__spec_track_template}";
-+ mPost = "%{__spec_track_post}";
-+ break;
-+#endif
- case RPMBUILD_STRINGBUF:
- default:
- mTemplate = "%{___build_template}";
-@@ -185,7 +193,11 @@
-
- (void) fputs(buildTemplate, fp);
-
-+#ifdef OPENPKG
-+ if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir && what != RPMBUILD_TRACK)
-+#else
- if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir)
-+#endif
- fprintf(fp, "cd %s\n", spec->buildSubdir);
-
- if (what == RPMBUILD_RMBUILD) {
-@@ -231,6 +243,9 @@
- buildCmd = rpmExpand("%{___build_cmd}", " ", buildScript, NULL);
- (void) poptParseArgvString(buildCmd, &argc, &argv);
-
-+#ifdef OPENPKG
-+ if (what != RPMBUILD_TRACK)
-+#endif
- rpmMessage(RPMMESS_NORMAL, _("Executing(%s): %s\n"), name, buildCmd);
- if (!(child = fork())) {
-
-@@ -306,6 +323,12 @@
- /*@=boundsread@*/
- }
- } else {
-+#ifdef OPENPKG
-+ if ((what & RPMBUILD_TRACK) &&
-+ (rc = doScript(spec, RPMBUILD_TRACK, NULL, NULL, test)))
-+ goto exit;
-+#endif
-+
- if ((what & RPMBUILD_PREP) &&
- (rc = doScript(spec, RPMBUILD_PREP, NULL, NULL, test)))
- goto exit;
-
-+---------------------------------------------------------------------------
-| Unconditionally remove temporary files ("rpm-tmp.XXXXX") which
-| were generated for the executed scripts. In OpenPKG we run the
-| scripts in debug mode ("set -x") anyway, so we never need to
-| see the whole generated script -- not even if it breaks. Instead
-| we would just have temporary files staying around forever.
-+---------------------------------------------------------------------------
-Index: build/build.c
---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20
-+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4
-@@ -273,7 +273,9 @@
-
- exit:
- if (scriptName) {
-+#ifndef OPENPKG
- if (!rc)
-+#endif
- (void) Unlink(scriptName);
- scriptName = _free(scriptName);
- }
-
-+---------------------------------------------------------------------------
-| In OpenPKG we use per-package %{_sourcedir} and %{_specdir}
-| definitions (macros have trailing ".../%{name}"). On removal
-| of source(s) and .spec file, this per-package directory would
-| be kept (usually /RPM/SRC//), because RPM does
-| not know about this OpenPKG convention. So, let RPM try(!) to
-| remove the two directories (if they are empty) and just ignore
-| removal failures (if they are still not empty).
-+---------------------------------------------------------------------------
-Index: build/build.c
---- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20
-+++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4
-@@ -377,6 +377,21 @@
- if (what & RPMBUILD_RMSPEC)
- (void) Unlink(spec->specFile);
-
-+#ifdef OPENPKG
-+ if (what & RPMBUILD_RMSOURCE) {
-+ const char *pn;
-+ pn = rpmGetPath("%{_sourcedir}", NULL);
-+ Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */
-+ pn = _free(pn);
-+ }
-+ if (what & RPMBUILD_RMSPEC) {
-+ const char *pn;
-+ pn = rpmGetPath("%{_specdir}", NULL);
-+ Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */
-+ pn = _free(pn);
-+ }
-+#endif
-+
- exit:
- if (rc && rpmlogGetNrecs() > 0) {
- rpmMessage(RPMMESS_NORMAL, _("\n\nRPM build errors:\n"));
-
-+---------------------------------------------------------------------------
-| Do not declare any files as %doc files by default.
-+---------------------------------------------------------------------------
-Index: build/files.c
---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20
-+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3
-@@ -1971,6 +1971,7 @@
- fl.defSpecdFlags = 0;
-
- fl.docDirCount = 0;
-+#if 0
- fl.docDirs[fl.docDirCount++] = xstrdup("/usr/doc");
- fl.docDirs[fl.docDirCount++] = xstrdup("/usr/man");
- fl.docDirs[fl.docDirCount++] = xstrdup("/usr/info");
-@@ -1981,6 +1982,7 @@
- fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_docdir}", NULL);
- fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_mandir}", NULL);
- fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_infodir}", NULL);
-+#endif
-
- fl.fileList = NULL;
- fl.fileListRecsAlloced = 0;
-
-+---------------------------------------------------------------------------
-| Make sure the "Provides" headers are available for querying from the
-| .src.rpm files.
-+---------------------------------------------------------------------------
-Index: build/files.c
---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20
-+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3
-@@ -2185,6 +2185,12 @@
- case RPMTAG_CHANGELOGTEXT:
- case RPMTAG_URL:
- case HEADER_I18NTABLE:
-+#ifdef OPENPKG
-+ case RPMTAG_PROVIDENAME:
-+ case RPMTAG_PROVIDEVERSION:
-+ case RPMTAG_PROVIDEFLAGS:
-+ case RPMTAG_CLASS:
-+#endif
- if (ptr)
- (void)headerAddEntry(spec->sourceHeader, tag, type, ptr, count);
- /*@switchbreak@*/ break;
-
-+---------------------------------------------------------------------------
-| Add support for splitted source directories, i.e., source files
-| alternatively can be placed into the .spec directory and are picked
-| up there, too.
-+---------------------------------------------------------------------------
-Index: build/files.c
---- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20
-+++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3
-@@ -2261,8 +2261,20 @@
- }
-
- { const char * sfn;
-+#ifndef OPENPKG
- sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
- "%{_sourcedir}/", srcPtr->source, NULL);
-+#else
-+ const char *sfn2;
-+ sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL);
-+ if (access(sfn2, F_OK) == 0)
-+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
-+ "%{_specdir}/", srcPtr->source, NULL);
-+ else
-+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
-+ "%{_sourcedir}/", srcPtr->source, NULL);
-+ sfn2 = _free(sfn2);
-+#endif
- appendLineStringBuf(sourceFiles, sfn);
- sfn = _free(sfn);
- }
-@@ -2271,8 +2283,20 @@
- for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
- for (srcPtr = pkg->icon; srcPtr != NULL; srcPtr = srcPtr->next) {
- const char * sfn;
-+#ifndef OPENPKG
- sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
- "%{_sourcedir}/", srcPtr->source, NULL);
-+#else
-+ const char *sfn2;
-+ sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL);
-+ if (access(sfn2, F_OK) == 0)
-+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
-+ "%{_specdir}/", srcPtr->source, NULL);
-+ else
-+ sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""),
-+ "%{_sourcedir}/", srcPtr->source, NULL);
-+ sfn2 = _free(sfn2);
-+#endif
- appendLineStringBuf(sourceFiles, sfn);
- sfn = _free(sfn);
- }
-
-+---------------------------------------------------------------------------
-| Add support for splitted source directories, i.e., source files
-| alternatively can be placed into the .spec directory and are picked
-| up there, too.
-+---------------------------------------------------------------------------
-Index: build/parsePreamble.c
---- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13
-+++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3
-@@ -366,7 +368,15 @@
- size_t nb, iconsize;
-
- /* XXX use rpmGenPath(rootdir, "%{_sourcedir}/", file) for icon path. */
-+#ifndef OPENPKG
- fn = rpmGetPath("%{_sourcedir}/", file, NULL);
-+#else
-+ fn = rpmGetPath("%{_specdir}/", file, NULL);
-+ if (access(fn, F_OK) == -1) {
-+ fn = _free(fn);
-+ fn = rpmGetPath("%{_sourcedir}/", file, NULL);
-+ }
-+#endif
-
- fd = Fopen(fn, "r.ufdio");
- if (fd == NULL || Ferror(fd)) {
-
-+---------------------------------------------------------------------------
-| In OpenPKG, the RPM package contains own local versions of the
-| "patch" and "tar" tools, so we cannot accept hard-coded names here.
-| Instead we expand a variable to allow us to direct RPM to our tools.
-| Additionally, pass option "-b" to patch(1) so it creates original
-| files not only if a non-standard (not ".orig") suffix is used.
-| Finally, add support for the GNU patch "-d" option for convenient
-| changing into a subdirectory.
-| Remove "unzip" support, because in OpenPKG there are less than
-| a dozend packages requiring unpacking of .zip files. For these
-| it is fully sufficient to explicitly require the "infozip"
-| package (containing "unzip") and leaving the less portable
-| "unzip" out of the bootstrap package.
-+---------------------------------------------------------------------------
-Index: build/parsePrep.c
---- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10
-+++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4
-@@ -66,7 +66,7 @@
- */
- /*@-boundswrite@*/
- /*@observer@*/ static char *doPatch(Spec spec, int c, int strip, const char *db,
-- int reverse, int removeEmpties)
-+ int reverse, int removeEmpties, const char *subdir)
- /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
- /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-@@ -76,6 +76,7 @@
- struct Source *sp;
- rpmCompressedMagic compressed = COMPRESSED_NOT;
- int urltype;
-+ const char *patcher;
-
- for (sp = spec->sources; sp != NULL; sp = sp->next) {
- if ((sp->flags & RPMBUILD_ISPATCH) && (sp->num == c)) {
-@@ -97,6 +106,10 @@
- strcat(args, "--suffix ");
- strcat(args, db);
- }
-+ if (subdir) {
-+ strcat(args, "-d ");
-+ strcat(args, subdir);
-+ }
- if (reverse) {
- strcat(args, " -R");
- }
-@@ -124,6 +137,10 @@
- /*@notreached@*/ break;
- }
-
-+ patcher = rpmGetPath("%{_patchbin}", NULL);
-+ if (strcmp(patcher, "%{_patchbin}") == 0)
-+ patcher = "patch";
-+
- if (compressed) {
- const char *zipper = rpmGetPath(
- (compressed == COMPRESSED_BZIP2 ? "%{_bzip2bin}" : "%{_gzipbin}"),
-@@ -131,22 +148,23 @@
-
- sprintf(buf,
- "echo \"Patch #%d (%s):\"\n"
-- "%s -d < %s | patch -p%d %s -s\n"
-+ "%s -d <%s | %s -p%d %s -s -b\n"
- "STATUS=$?\n"
- "if [ $STATUS -ne 0 ]; then\n"
- " exit $STATUS\n"
- "fi",
-- c, /*@-unrecog@*/ (const char *) basename(fn), /*@=unrecog@*/
-+ c, /*@-unrecog@*/ basename(fn), /*@=unrecog@*/
- zipper,
-- fn, strip, args);
-+ fn, patcher, strip, args);
- zipper = _free(zipper);
- } else {
- sprintf(buf,
- "echo \"Patch #%d (%s):\"\n"
-- "patch -p%d %s -s < %s", c, (const char *) basename(fn),
-- strip, args, fn);
-+ "%s -p%d %s -s -b <%s", c, basename(fn),
-+ patcher, strip, args, fn);
- }
-
-+ patcher = _free(patcher);
- urlfn = _free(urlfn);
- return buf;
- }
-@@ -171,6 +189,7 @@
- struct Source *sp;
- rpmCompressedMagic compressed = COMPRESSED_NOT;
- int urltype;
-+ const char *tar;
-
- for (sp = spec->sources; sp != NULL; sp = sp->next) {
- if ((sp->flags & RPMBUILD_ISSOURCE) && (sp->num == c)) {
-@@ -228,6 +255,10 @@
- /*@notreached@*/ break;
- }
-
-+ tar = rpmGetPath("%{_tarbin}", NULL);
-+ if (strcmp(tar, "%{_tarbin}") == 0)
-+ tar = "tar";
-+
- if (compressed != COMPRESSED_NOT) {
- const char *zipper;
- int needtar = 1;
-@@ -240,6 +271,7 @@
- case COMPRESSED_BZIP2:
- t = "%{_bzip2bin} -dc";
- break;
-+#if 0
- case COMPRESSED_ZIP:
- if (rpmIsVerbose() && !quietly)
- t = "%{_unzipbin}";
-@@ -247,6 +279,7 @@
- t = "%{_unzipbin} -qq";
- needtar = 0;
- break;
-+#endif
- }
- zipper = rpmGetPath(t, NULL);
- buf[0] = '\0';
-@@ -254,8 +287,13 @@
- zipper = _free(zipper);
- *t++ = ' ';
- t = stpcpy(t, fn);
-- if (needtar)
-- t = stpcpy( stpcpy( stpcpy(t, " | tar "), taropts), " -");
-+ if (needtar) {
-+ t = stpcpy(t, " | ");
-+ t = stpcpy(t, tar);
-+ t = stpcpy(t, " ");
-+ t = stpcpy(t, taropts);
-+ t = stpcpy(t, " -");
-+ }
- t = stpcpy(t,
- "\n"
- "STATUS=$?\n"
-@@ -264,11 +302,14 @@
- "fi");
- } else {
- buf[0] = '\0';
-- t = stpcpy( stpcpy(buf, "tar "), taropts);
-- *t++ = ' ';
-+ t = stpcpy(buf, tar);
-+ t = stpcpy(t, " ");
-+ t = stpcpy(t, taropts);
-+ t = stpcpy(t, " ");
- t = stpcpy(t, fn);
- }
-
-+ tar = _free(tar);
- urlfn = _free(urlfn);
- return buf;
- }
-@@ -443,7 +484,7 @@
- /*@modifies spec->prep, rpmGlobalMacroContext,
- fileSystem, internalState @*/
- {
-- char *opt_b;
-+ char *opt_b, *opt_d;
- int opt_P, opt_p, opt_R, opt_E;
- char *s;
- char buf[BUFSIZ], *bp;
-@@ -453,6 +494,7 @@
- memset(patch_nums, 0, sizeof(patch_nums));
- opt_P = opt_p = opt_R = opt_E = 0;
- opt_b = NULL;
-+ opt_d = NULL;
- patch_index = 0;
-
- if (! strchr(" \t\n", line[6])) {
-@@ -492,6 +534,15 @@
- spec->lineNum, spec->line);
- return RPMERR_BADSPEC;
- }
-+ } else if (!strcmp(s, "-d")) {
-+ /* orig suffix */
-+ opt_d = strtok(NULL, " \t\n");
-+ if (! opt_d) {
-+ rpmError(RPMERR_BADSPEC,
-+ _("line %d: Need arg to %%patch -d: %s\n"),
-+ spec->lineNum, spec->line);
-+ return RPMERR_BADSPEC;
-+ }
- } else if (!strncmp(s, "-p", sizeof("-p")-1)) {
- /* unfortunately, we must support -pX */
- if (! strchr(" \t\n", s[2])) {
-@@ -530,14 +581,14 @@
- /* All args processed */
-
- if (! opt_P) {
-- s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E);
-+ s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E, opt_d);
- if (s == NULL)
- return RPMERR_BADSPEC;
- appendLineStringBuf(spec->prep, s);
- }
-
- for (x = 0; x < patch_index; x++) {
-- s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E);
-+ s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E, opt_d);
- if (s == NULL)
- return RPMERR_BADSPEC;
- appendLineStringBuf(spec->prep, s);
-
-+---------------------------------------------------------------------------
-| Add support for splitted source directories, i.e., source files
-| alternatively can be placed into the .spec directory and are picked
-| up there, too.
-+---------------------------------------------------------------------------
-Index: build/parsePrep.c
---- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10
-+++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4
-@@ -88,7 +88,15 @@
- return NULL;
- }
-
-+#ifndef OPENPKG
- urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
-+#else
-+ urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL);
-+ if (access(urlfn, F_OK) == -1) {
-+ urlfn = _free(urlfn);
-+ urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
-+ }
-+#endif
-
- args[0] = '\0';
- if (db) {
-@@ -193,7 +201,15 @@
- return NULL;
- }
-
-+#ifndef OPENPKG
- urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
-+#else
-+ urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL);
-+ if (access(urlfn, F_OK) == -1) {
-+ urlfn = _free(urlfn);
-+ urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL);
-+ }
-+#endif
-
- /*@-internalglobs@*/ /* FIX: shrug */
- taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf");
-
-+---------------------------------------------------------------------------
-| Not everything on a system is RPM based (for instance OpenPKG is
-| just an add-on to the system), so do not assume we can just require
-| a package to provide "/bin/sh".
-+---------------------------------------------------------------------------
-Index: build/parseScript.c
---- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12
-+++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3
-@@ -261,6 +269,7 @@
- stripTrailingBlanksStringBuf(sb);
- p = getStringBuf(sb);
-
-+ if (progArgv[0] != NULL && strcmp(progArgv[0], "/bin/sh") != 0)
- (void) addReqProv(spec, pkg->header, (tagflags | RPMSENSE_INTERP), progArgv[0], NULL, 0);
-
- /* Trigger script insertion is always delayed in order to */
-
-+---------------------------------------------------------------------------
-| Add support for splitted source directories, i.e., source files
-| alternatively can be placed into the spec directory and are picked
-| up there, too.
-+---------------------------------------------------------------------------
-Index: build/spec.c
---- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21
-+++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3
-@@ -334,7 +337,15 @@
-
- if (tag != RPMTAG_ICON) {
- /*@-nullpass@*/ /* LCL: varargs needs null annotate. */
-+#ifndef OPENPKG
- const char *body = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+#else
-+ const char *body = rpmGetPath("%{_specdir}/", p->source, NULL);
-+ if (access(body, F_OK) == -1) {
-+ body = _free(body);
-+ body = rpmGetPath("%{_sourcedir}/", p->source, NULL);
-+ }
-+#endif
- /*@=nullpass@*/
-
- sprintf(buf, "%s%d",
-
-+---------------------------------------------------------------------------
-| Do not build with warnings on, because we do no RPM development
-| (so warnings are useless here), they cause some confusion inside
-| Berkeley-DB and also slow down building. Instead, increase the
-| optimization level. Additionally, disable static linking of RPM
-| tools. Finally, use "shtool mkdir" as the "mkdir -p" fallback.
-+---------------------------------------------------------------------------
-Index: configure.ac
---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
-+++ configure.ac 13 Sep 2006 13:39:07 -0000
-@@ -53,7 +53,7 @@
- AS=${AS-as}
- AC_SUBST(AS)
- if test "$ac_cv_prog_gcc" = yes; then
-- CFLAGS="$CFLAGS -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts"
-+ CFLAGS="$CFLAGS -O2 -D_GNU_SOURCE -D_REENTRANT"
- fi
- export CFLAGS
-
-@@ -142,6 +142,7 @@
- # just link it dynamically
- LDFLAGS_STATIC=""
- fi
-+LDFLAGS_STATIC="" # OpenPKG wants dynamically linked RPM tools
- LDFLAGS_STATIC="${LDFLAGS} ${LDFLAGS_STATIC}" # libtool format
- AC_MSG_RESULT($LDFLAGS_STATIC)
- AC_SUBST(LDFLAGS_STATIC)
-@@ -201,7 +202,7 @@
-
- if test X"$MKDIR_P" = X0 ; then
- AC_MSG_RESULT(no)
-- MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`"
-+ MKDIR_P="@l_prefix@/lib/openpkg/shtool mkdir -f -p -m 755"
- else
- AC_MSG_RESULT(yes)
- fi
-
-+---------------------------------------------------------------------------
-| Disable the use of the internal zlib library, because
-| we build against an external one.
-+---------------------------------------------------------------------------
-Index: configure.ac
---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
-+++ configure.ac 13 Sep 2006 13:39:09 -0000
-@@ -311,7 +311,7 @@
- WITH_ZLIB_SUBDIR=
- WITH_ZLIB_INCLUDE=
- WITH_ZLIB_LIB=
--if test -d zlib ; then
-+if false; then
- WITH_ZLIB_SUBDIR=zlib
- addlib \${top_builddir}/zlib
- WITH_ZLIB_INCLUDE="-I\${top_srcdir}/${WITH_ZLIB_SUBDIR}"
-
-+---------------------------------------------------------------------------
-| Disable unnecessary INCPATH checks, because in OpenPKG the
-| externally used libraries are all explicitly given. And they just
-| would make RPM pick up things which we do not want to be picked up.
-+---------------------------------------------------------------------------
-Index: configure.ac
---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
-+++ configure.ac 13 Sep 2006 13:39:11 -0000
-@@ -325,38 +325,38 @@
-
- localdone=
-
--dirs=$prefix
--if test "$cross_compiling" != "yes"; then
-- dirs="$dirs /usr/local"
--fi
--for dir in $dirs
--do
-- case $dir in
-- NONE|/usr) continue;;
-- /usr/local)
-- if test X$localdone != X ; then continue; fi
-- localdone="$dir"
-- ;;
-- esac
--
-- AC_MSG_CHECKING(for $dir/lib in LIBS)
-- if test -d $dir/lib 2> /dev/null ; then
-- addlib $dir/lib
-- AC_MSG_RESULT(yes)
-- else
-- AC_MSG_RESULT(no)
-- fi
--
-- AC_MSG_CHECKING(for $dir/include in INCPATH)
-- if test -d $dir/include 2>/dev/null ; then
-- if [ "$dir" != "/usr/local" ] ; then
-- INCPATH="$INCPATH -I$dir/include"
-- fi
-- AC_MSG_RESULT(yes)
-- else
-- AC_MSG_RESULT(no)
-- fi
--done
-+dnl dirs=$prefix
-+dnl if test "$cross_compiling" != "yes"; then
-+dnl dirs="$dirs /usr/local"
-+dnl fi
-+dnl for dir in $dirs
-+dnl do
-+dnl case $dir in
-+dnl NONE|/usr) continue;;
-+dnl /usr/local)
-+dnl if test X$localdone != X ; then continue; fi
-+dnl localdone="$dir"
-+dnl ;;
-+dnl esac
-+dnl
-+dnl AC_MSG_CHECKING(for $dir/lib in LIBS)
-+dnl if test -d $dir/lib 2> /dev/null ; then
-+dnl addlib $dir/lib
-+dnl AC_MSG_RESULT(yes)
-+dnl else
-+dnl AC_MSG_RESULT(no)
-+dnl fi
-+dnl
-+dnl AC_MSG_CHECKING(for $dir/include in INCPATH)
-+dnl if test -d $dir/include 2>/dev/null ; then
-+dnl if test "$dir" != "/usr/local"; then
-+dnl INCPATH="$INCPATH -I$dir/include"
-+dnl fi
-+dnl AC_MSG_RESULT(yes)
-+dnl else
-+dnl AC_MSG_RESULT(no)
-+dnl fi
-+dnl done
-
- AC_MSG_CHECKING(for /usr/ucblib in LIBS)
- if test -d /usr/ucblib ; then
-
-+---------------------------------------------------------------------------
-| Adjust paths for OpenPKG filesystem layout.
-+---------------------------------------------------------------------------
-Index: configure.ac
---- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4
-+++ configure.ac 13 Sep 2006 13:39:12 -0000
-@@ -1201,12 +1201,12 @@
- AC_SUBST(LOCALEDIR)
- LIBDIR="`echo $libdir | sed 's-/lib$-/%{_lib}-'`"
- AC_SUBST(LIBDIR)
--RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`"
-+RPMCONFIGDIR="@l_prefix@/lib/openpkg"
- AC_DEFINE_UNQUOTED(RPMCONFIGDIR, "$RPMCONFIGDIR",
- [Full path to rpm global configuration directory (usually /usr/lib/rpm)])
- AC_SUBST(RPMCONFIGDIR)
-
--SYSCONFIGDIR="`echo /etc/rpm`"
-+SYSCONFIGDIR="@l_prefix@/etc/openpkg"
- AC_DEFINE_UNQUOTED(SYSCONFIGDIR, "$SYSCONFIGDIR",
- [Full path to rpm system configuration directory (usually /etc/rpm)])
- AC_SUBST(SYSCONFIGDIR)
-@@ -1216,17 +1216,17 @@
- [Colon separated paths of macro files to read.])
- AC_SUBST(MACROFILES)
-
--LIBRPMRC_FILENAME="${RPMCONFIGDIR}/rpmrc"
-+LIBRPMRC_FILENAME="${SYSCONFIGDIR}/rpmrc"
- AC_DEFINE_UNQUOTED(LIBRPMRC_FILENAME, "$LIBRPMRC_FILENAME",
- [Full path to rpmrc configuration file (usually /usr/lib/rpm/rpmrc)])
- AC_SUBST(LIBRPMRC_FILENAME)
-
--VENDORRPMRC_FILENAME="${RPMCONFIGDIR}/${RPMCANONVENDOR}/rpmrc"
-+VENDORRPMRC_FILENAME="${SYSCONFIGDIR}/${RPMCANONVENDOR}/rpmrc"
- AC_DEFINE_UNQUOTED(VENDORRPMRC_FILENAME, "$VENDORRPMRC_FILENAME",
- [Full path to vendor rpmrc configuration file (usually /usr/lib/rpm/vendor/rpmrc)])
- AC_SUBST(VENDORRPMRC_FILENAME)
-
--LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt-${VERSION}"
-+LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt"
- AC_DEFINE_UNQUOTED(LIBRPMALIAS_FILENAME, "$LIBRPMALIAS_FILENAME",
- [Full path to rpmpopt configuration file (usually /usr/lib/rpm/rpmpopt)])
- AC_SUBST(LIBRPMALIAS_FILENAME)
-
-+---------------------------------------------------------------------------
-| If running as "susr", do not unpack source RPM packages with "susr"
-| file ownerships as the OpenPKG Set-UID wrapper switches from "musr"
-| to "susr" on "openpkg rpm -Uvh *.src.rpm". As a result the installed
-| files could be never removed again by "musr". It is more consistent
-| to always unpack as "musr" if possible.
-+---------------------------------------------------------------------------
-Index: lib/psm.c
---- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6
-+++ lib/psm.c 13 Sep 2006 13:39:15 -0000
-@@ -314,6 +314,20 @@
-
- fi->uid = getuid();
- fi->gid = getgid();
-+#ifdef OPENPKG
-+ if (fi->uid == 0) {
-+ char *muid_str;
-+ char *mgid_str;
-+ uid_t *muid;
-+ gid_t *mgid;
-+ if ((muid_str = rpmExpand("%{l_muid}", NULL)) != NULL)
-+ if ((muid = (uid_t)strtol(muid_str, (char **)NULL, 10)) > 0)
-+ fi->uid = muid;
-+ if ((mgid_str = rpmExpand("%{l_mgid}", NULL)) != NULL)
-+ if ((mgid = (gid_t)strtol(mgid_str, (char **)NULL, 10)) > 0)
-+ fi->gid = mgid;
-+ }
-+#endif
- fi->astriplen = 0;
- fi->striplen = 0;
-
-@@ -352,6 +366,9 @@
- rpmrc = RPMRC_FAIL;
- goto exit;
- }
-+#ifdef OPENPKG
-+ chown(_sourcedir, fi->uid, fi->gid);
-+#endif
-
- _specdir = rpmGenPath(rpmtsRootDir(ts), "%{_specdir}", "");
- rpmrc = rpmMkdirPath(_specdir, "specdir");
-@@ -359,6 +376,9 @@
- rpmrc = RPMRC_FAIL;
- goto exit;
- }
-+#ifdef OPENPKG
-+ chown(_specdir, fi->uid, fi->gid);
-+#endif
-
- /* Build dnl/dil with {_sourcedir, _specdir} as values. */
- if (i < fi->fc) {
-
-+---------------------------------------------------------------------------
-| RPM has two platform id canonicalizations: hard-coded ones in
-| the "rpm" program and defined ones in the rpmrc files. The
-| hard-coded ones make the defined ones inconsistent. Additionally,
-| in OpenPKG we know exactly what we do. So, disable the hard-coded
-| canonicalizations and use only the defined ones. The only thing we
-| do inside RPM is to reduce the platform version to major and minor
-| version numbers in order to simplify the "rpmrc" files. Then, RPM
-| allows to read the platform from an external program. Adjust the
-| hard-coded path to this program and allow it to be overridden with
-| the macro %{__platform}. Finally, change the default definition of
-| %{_host} to not contain the vendor stuff to more conform to what
-| %{_target} usually is defined to and what we are using throughout
-| OpenPKG, too.
-+---------------------------------------------------------------------------
-Index: lib/rpmrc.c
---- lib/rpmrc.c 4 Jun 2003 18:18:45 -0000 1.1.1.25
-+++ lib/rpmrc.c 6 Jun 2005 15:53:06 -0000 1.3
-@@ -27,7 +27,7 @@
- const char * macrofiles = MACROFILES;
-
- /*@observer@*/ /*@unchecked@*/
--static const char * platform = "/etc/rpm/platform";
-+static const char * platform = "@l_prefix@/etc/openpkg/platform";
- /*@only@*/ /*@relnull@*/ /*@unchecked@*/
- static const char ** platpat = NULL;
- /*@unchecked@*/
-@@ -861,7 +861,11 @@
-
- platpat = xrealloc(platpat, (nplatpat + 2) * sizeof(*platpat));
- /*@-onlyunqglobaltrans@*/
-+#ifdef OPENPKG
-+ platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_os}", NULL);
-+#else
- platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_vendor}-%{_host_os}", (gnu && *gnu ? "-" : NULL), gnu, NULL);
-+#endif
- nplatpat++;
- platpat[nplatpat] = NULL;
- /*@=onlyunqglobaltrans@*/
-@@ -1055,14 +1059,35 @@
- /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/
- /*@modifies *arch, *os, rpmGlobalMacroContext, fileSystem, internalState @*/
- {
-+#ifdef OPENPKG
-+ static struct utsname un_real;
-+ /* utsname fields on some platforms (like HP-UX) are very small
-+ (about 8 characters). This is too small for OpenPKG, so cheat! */
-+ static struct {
-+ char sysname[32];
-+ char nodename[32];
-+ char release[32];
-+ char version[32];
-+ char machine[32];
-+ } un;
-+#else
- static struct utsname un;
-+#endif
- static int gotDefaults = 0;
- char * chptr;
- canonEntry canon;
- int rc;
-
- while (!gotDefaults) {
-+#ifdef OPENPKG
-+ const char *cp;
-+ cp = rpmExpand("%{?__platform}", NULL);
-+ if (cp == NULL || cp[0] == '\0')
-+ cp = platform;
-+ if (!rpmPlatform(cp)) {
-+#else
- if (!rpmPlatform(platform)) {
-+#endif
- const char * s;
- s = rpmExpand("%{_host_cpu}", NULL);
- if (s) {
-@@ -1079,9 +1104,44 @@
- gotDefaults = 1;
- break;
- }
-+#ifdef OPENPKG
-+ rc = uname(&un_real);
-+ strncpy(un.sysname, un_real.sysname, sizeof(un.sysname)); un.sysname [sizeof(un.sysname)-1] = '\0';
-+ strncpy(un.nodename, un_real.nodename, sizeof(un.nodename)); un.nodename[sizeof(un.nodename)-1] = '\0';
-+ strncpy(un.release, un_real.release, sizeof(un.release)); un.release [sizeof(un.release)-1] = '\0';
-+ strncpy(un.version, un_real.version, sizeof(un.version)); un.version [sizeof(un.version)-1] = '\0';
-+ strncpy(un.machine, un_real.machine, sizeof(un.machine)); un.machine [sizeof(un.machine)-1] = '\0';
-+#else
- rc = uname(&un);
-+#endif
- if (rc < 0) return;
-
-+#ifdef OPENPKG
-+ {
-+ char *cp;
-+ char *cpR;
-+ int n;
-+ cpR = un.release;
-+ if ((n = strcspn(cpR, "0123456789")) > 0)
-+ cpR += n;
-+ if ((n = strspn(cpR, "0123456789.")) > 0) {
-+ /* terminate after "N.N.N...." prefix */
-+ cpR[n] = '\0';
-+ /* shorten to "N.N" if longer */
-+ if ((cp = strchr(cpR, '.')) != NULL) {
-+ if ((cp = strchr(cp+1, '.')) != NULL)
-+ *cp = '\0';
-+ }
-+ strcat(un.sysname, cpR);
-+ }
-+ /* fix up machine hardware name containing white-space as it
-+ * happens to be on Power Macs running MacOS X
-+ */
-+ if (!strncmp(un.machine, "Power Macintosh", 15)) {
-+ sprintf(un.machine, "powerpc");
-+ }
-+ }
-+#else /* OPENPKG */
- #if !defined(__linux__)
- #ifdef SNI
- /* USUALLY un.sysname on sinix does start with the word "SINIX"
-@@ -1298,6 +1358,7 @@
- }
- }
- # endif
-+#endif /* OPENPKG */
-
- /* the uname() result goes through the arch_canon table */
- canon = lookupInCanonTable(un.machine,
-
-+---------------------------------------------------------------------------
-| In verbose file listing output, give the owner and group fields more
-| width and at the same time reduce the nlink and size fields to more
-| typical sizes within OpenPKG.
-+---------------------------------------------------------------------------
-Index: lib/query.c
---- lib/query.c 4 Jun 2003 18:24:14 -0000 1.1.1.13
-+++ lib/query.c 22 Jan 2004 21:42:24 -0000 1.2
-@@ -33,7 +33,11 @@
- /*@modifies *te @*/
- {
- char sizefield[15];
-+#ifdef OPENPKG
-+ char ownerfield[13+1], groupfield[13+1];
-+#else
- char ownerfield[8+1], groupfield[8+1];
-+#endif
- char timefield[100];
- time_t when = mtime; /* important if sizeof(int_32) ! sizeof(time_t) */
- struct tm * tm;
-@@ -58,7 +62,11 @@
- groupfield[sizeof(groupfield)-1] = '\0';
-
- /* this is normally right */
-+#ifdef OPENPKG
-+ sprintf(sizefield, "%8u", size);
-+#else
- sprintf(sizefield, "%12u", size);
-+#endif
-
- /* this knows too much about dev_t */
-
-@@ -98,7 +106,11 @@
- (void)strftime(timefield, sizeof(timefield) - 1, fmt, tm);
- }
-
-+#ifdef OPENPKG
-+ sprintf(te, "%s %d %-13s %-13s %8s %s %s", perms,
-+#else
- sprintf(te, "%s %4d %-8s%-8s %10s %s %s", perms,
-+#endif
- (int)nlink, ownerfield, groupfield, sizefield, timefield, namefield);
- perms = _free(perms);
- }
-
-+---------------------------------------------------------------------------
-| Enable the exlusion of "%doc" files by default.
-| Disable "check-files" feature, because it is useless in OpenPKG
-| (we consistently use BuildRoot and our %files lists are fully
-| autogenerated) and just makes problems on bootstrapping.
-| Provide the possibility to optionally re-enable the old
-| RPM 4.0.2 way of RPM database operation by defining the
-| macro %{_rpmdb_private}. This is important for easily fixing
-| corrupted/hanging RPM database (on upgrades, etc) or if you
-| permanently have to operate RPM on a NFS filesystem where no
-| rpc.lockd(8) support is available.
-| Additionally, do not override the "_host_xx" macros because their
-| value (derived from /etc/openpkg/platform) is already
-| correctly set internally.
-| Additionally, provide default macros for the %track and %test
-| section expansion.
-| Finally, provide default for introduced variable
-| %{_force_oldpackage}, which, if non-zero, automatically enforces
-| --oldpackage on all upgrade operations (this is useful on
-| mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE).
-+---------------------------------------------------------------------------
-Index: macros.in
---- macros.in 2 Jul 2003 19:20:52 -0000 1.1.1.14
-+++ macros.in 30 Jan 2004 17:06:27 -0000 1.3
-@@ -1,7 +1,7 @@
- #/*! \page config_macros Default configuration: @RPMCONFIGDIR@/macros
- # \verbatim
- #
--# $Id: macros.in,v 1.138.2.1 2003/07/02 19:14:06 jbj Exp $
-+# $Id: macros.in,v 1.2 2004/01/22 21:42:09 rse Exp $
- #
- # This is a global RPM configuration file. All changes made here will
- # be lost when the rpm package is upgraded. Any per-system configuration
-@@ -206,7 +206,7 @@
-
- # Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
- # marked as %doc should be installed.
--#%_excludedocs
-+%_excludedocs 1
-
- # The port and machine name of a FTP proxy host running TIS firewall.
- #
-@@ -305,7 +305,7 @@
- # Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged.
- #
- # Note: Disable (by commenting out) for legacy compatibility.
--%__check_files @RPMCONFIGDIR@/check-files %{buildroot}
-+#%__check_files @RPMCONFIGDIR@/check-files %{buildroot}
-
- #
- # Should unpackaged files in a build root terminate a build?
-@@ -449,7 +449,7 @@
-
- # Use a CDB database model for concurrent access.
- # XXX Add "private" here for legacy interoperation transiting to glibc+nptl.
--%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb
-+%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb %{?_rpmdb_private:private}
-
- %__dbi_other %{?_tmppath:tmpdir=%{_tmppath}} %{?__dbi_cdb}
-
-@@ -618,6 +618,10 @@
- # If non-zero, all erasures will be automagically repackaged.
- %_repackage_all_erasures 0
-
-+# If non-zero, automatically enforce --oldpackage for all upgrade operations
-+# (useful on mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE)
-+%_force_oldpackage 0
-+
- # Verify digest/signature flags for various rpm modes:
- # 1 --nohdrchk if set, don't check rpmdb headers
- #
-@@ -870,6 +874,26 @@
- #%{__spec_clean_post}\
- #%{nil}
-
-+%__spec_track_shell %{___build_shell}
-+%__spec_track_args %{___build_args}
-+%__spec_track_cmd %{___build_cmd}
-+%__spec_track_pre %{___build_pre}
-+%__spec_track_body %{___build_body}
-+%__spec_track_post %{___build_post}
-+%__spec_track_template #!%{__spec_track_shell}\
-+%{__spec_track_pre}\
-+%{nil}
-+
-+%__spec_test_shell %{___build_shell}
-+%__spec_test_args %{___build_args}
-+%__spec_test_cmd %{___build_cmd}
-+%__spec_test_pre %{___build_pre}
-+%__spec_test_body %{___build_body}
-+%__spec_test_post %{___build_post}
-+%__spec_test_template #!%{__spec_test_shell}\
-+%{__spec_test_pre}\
-+%{nil}
-+
- %__spec_rmbuild_shell %{___build_shell}
- %__spec_rmbuild_args %{___build_args}
- %__spec_rmbuild_cmd %{___build_cmd}
-@@ -929,11 +953,11 @@
- %_build_cpu %{_host_cpu}
- %_build_vendor %{_host_vendor}
- %_build_os %{_host_os}
--%_host @host@
--%_host_alias @host_alias@%{nil}
--%_host_cpu @host_cpu@
--%_host_vendor @host_vendor@
--%_host_os @host_os@
-+#%_host @host@
-+#%_host_alias @host_alias@%{nil}
-+#%_host_cpu @host_cpu@
-+#%_host_vendor @host_vendor@
-+#%_host_os @host_os@
- %_target %{_host}
- %_target_alias %{_host_alias}
- %_target_cpu %{_host_cpu}
-
-+---------------------------------------------------------------------------
-| Adjust path for OpenPKG filesystem layout.
-+---------------------------------------------------------------------------
-Index: scripts/Makefile.am
---- scripts/Makefile.am 20 Jun 2003 19:04:49 -0000 1.1.1.11
-+++ scripts/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2
-@@ -22,7 +22,7 @@
-
- all:
-
--configdir = ${prefix}/lib/rpm
-+configdir = ${prefix}/lib/openpkg
- config_SCRIPTS = \
- brp-compress brp-python-bytecompile brp-redhat \
- brp-strip brp-strip-comment-note \
-
-+---------------------------------------------------------------------------
-| Adjust path for OpenPKG filesystem layout.
-+---------------------------------------------------------------------------
-Index: scripts/Makefile.in
---- scripts/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.14
-+++ scripts/Makefile.in 22 Jan 2004 21:42:34 -0000 1.2
-@@ -273,7 +273,7 @@
-
- installprefix = $(DESTDIR)
-
--configdir = ${prefix}/lib/rpm
-+configdir = ${prefix}/lib/openpkg
- config_SCRIPTS = \
- brp-compress brp-python-bytecompile brp-redhat \
- brp-strip brp-strip-comment-note \
-
-+---------------------------------------------------------------------------
-| Use GNU libtool's weaker -static (link with own static libraries)
-| instead of the strong -all-static (link even with static libc, etc),
-| because OpenPKG does not need to be fully static.
-| Additionally, adjust the path to file(1)'s "magic" file.
-+---------------------------------------------------------------------------
-Index: file/Makefile.am
---- file/Makefile.am 24 Jan 2003 19:41:56 -0000 1.1.1.1
-+++ file/Makefile.am 22 Jan 2004 21:42:21 -0000 1.2
-@@ -36,7 +36,7 @@
- #MAGIC = @datadir@/magic
- #data_DATA = magic magic.mime magic.mgc magic.mime.mgc
-
--pkglibdir = @prefix@/lib/rpm
-+pkglibdir = @prefix@/lib/openpkg
- pkglib_DATA = magic magic.mime magic.mgc magic.mime.mgc
- MAGIC = $(pkglibdir)/magic
- CPPFLAGS = -DMAGIC='"$(MAGIC)"'
-
-+---------------------------------------------------------------------------
-| Use GNU libtool's weaker -static (link with own static libraries)
-| instead of the strong -all-static (link even with static libc, etc),
-| because OpenPKG does not need to be fully static.
-| Additionally, adjust the path to file(1)'s "magic" file.
-+---------------------------------------------------------------------------
-Index: file/Makefile.in
---- file/Makefile.in 16 Jul 2003 17:05:23 -0000 1.1.1.2
-+++ file/Makefile.in 22 Jan 2004 21:42:22 -0000 1.2
-@@ -39,7 +39,7 @@
-
- #MAGIC = @datadir@/magic
- #data_DATA = magic magic.mime magic.mgc magic.mime.mgc
--pkglibdir = @prefix@/lib/rpm
-+pkglibdir = @prefix@/lib/openpkg
- ACLOCAL = @ACLOCAL@
- AMDEP_FALSE = @AMDEP_FALSE@
- AMDEP_TRUE = @AMDEP_TRUE@
-@@ -159,7 +159,7 @@
- noinst_PROGRAMS = file
-
- file_SOURCES = file.c
--file_LDFLAGS = -all-static
-+file_LDFLAGS = -static
- file_LDADD = libfmagic.la
-
- man_MAGIC = magic.@fsect@
-
-+---------------------------------------------------------------------------
-| Use GNU libtool's weaker -static (link with own static libraries)
-| instead of the strong -all-static (link even with static libc, etc),
-| because OpenPKG does not need to be fully static.
-| Additionally, disable the building of gettext stuff we don't need.
-+---------------------------------------------------------------------------
-Index: popt/Makefile.am
---- popt/Makefile.am 6 Mar 2003 23:16:43 -0000 1.1.1.9
-+++ popt/Makefile.am 22 Jan 2004 21:42:28 -0000 1.2
-@@ -9,7 +9,7 @@
- po/*.in po/*.po po/popt.pot \
- popt.ps
-
--SUBDIRS = intl po
-+SUBDIRS = intl
-
- INCLUDES = -I. -I$(top_srcdir)
-
-@@ -17,13 +17,13 @@
-
- noinst_PROGRAMS = test1 test2 test3
- test1_SOURCES = test1.c
--test1_LDFLAGS = -all-static
-+test1_LDFLAGS = -static
- test1_LDADD = $(usrlib_LTLIBRARIES)
- test2_SOURCES = test2.c
--test2_LDFLAGS = -all-static
-+test2_LDFLAGS = -static
- test2_LDADD = $(usrlib_LTLIBRARIES)
- test3_SOURCES = test3.c
--test3_LDFLAGS = -all-static
-+test3_LDFLAGS = -static
- test3_LDADD = $(usrlib_LTLIBRARIES)
-
- noinst_SCRIPTS = testit.sh
-
-+---------------------------------------------------------------------------
-| Use GNU libtool's weaker -static (link with own static libraries)
-| instead of the strong -all-static (link even with static libc, etc),
-| because OpenPKG does not need to be fully static.
-| Additionally, disable the building of gettext stuff we don't need.
-+---------------------------------------------------------------------------
-Index: popt/Makefile.in
---- popt/Makefile.in 16 Jul 2003 17:04:49 -0000 1.1.1.14
-+++ popt/Makefile.in 22 Jan 2004 21:42:28 -0000 1.2
-@@ -163,7 +163,7 @@
- popt.ps
-
-
--SUBDIRS = intl po
-+SUBDIRS = intl
-
- INCLUDES = -I. -I$(top_srcdir)
-
-@@ -171,13 +171,13 @@
-
- noinst_PROGRAMS = test1 test2 test3
- test1_SOURCES = test1.c
--test1_LDFLAGS = -all-static
-+test1_LDFLAGS = -static
- test1_LDADD = $(usrlib_LTLIBRARIES)
- test2_SOURCES = test2.c
--test2_LDFLAGS = -all-static
-+test2_LDFLAGS = -static
- test2_LDADD = $(usrlib_LTLIBRARIES)
- test3_SOURCES = test3.c
--test3_LDFLAGS = -all-static
-+test3_LDFLAGS = -static
- test3_LDADD = $(usrlib_LTLIBRARIES)
-
- noinst_SCRIPTS = testit.sh
-
-+---------------------------------------------------------------------------
-| Revert back to the old behaviour of passing to "exec" programs an
-| extra "--" argument to separate options and arguments. Additionally,
-| allow the "!#:+" constructs to be used multiple times and then each
-| time eat another argument (instead of just eating an argument once
-| and expanding this multiple times).
-+---------------------------------------------------------------------------
-Index: popt/popt.c
---- popt/popt.c 22 Aug 2002 14:17:44 -0000 1.1.1.12
-+++ popt/popt.c 22 Jan 2004 21:42:28 -0000 1.2
-@@ -400,9 +400,7 @@
- }
-
- if (con->leftovers != NULL && con->numLeftovers > 0) {
--#if 0
- argv[argc++] = "--";
--#endif
- memcpy(argv + argc, con->leftovers, sizeof(*argv) * con->numLeftovers);
- argc += con->numLeftovers;
- }
-@@ -580,10 +578,8 @@
- if (!(s[0] == '#' && s[1] == ':' && s[2] == '+'))
- /*@switchbreak@*/ break;
- /* XXX Make sure that findNextArg deletes only next arg. */
-- if (a == NULL) {
- if ((a = findNextArg(con, 1, 1)) == NULL)
- /*@switchbreak@*/ break;
-- }
- s += 3;
-
- alen = strlen(a);
-
-+---------------------------------------------------------------------------
-| Dedefine the stdio variable BUFSIZ because it is usually just 1024
-| on some platforms (on Linux it is 8192) and unfortunately RPM uses
-| it here for the macro expansion buffer. For OpenPKG the size 1024 is
-| definetely too small. So increase this to a 16KB buffer.
-+---------------------------------------------------------------------------
-Index: rpmio/macro.c
---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7
-+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2
-@@ -50,6 +50,9 @@
-
- #include "debug.h"
-
-+#undef BUFSIZ
-+#define BUFSIZ 16384
-+
- #if defined(__LCLINT__)
- /*@-exportheader@*/
- extern const unsigned short int **__ctype_b_loc (void) /*@*/;
-
-+---------------------------------------------------------------------------
-| Remove "unzip" support, because in OpenPKG there are less than
-| a dozend packages requiring unpacking of .zip files. For these
-| it is fully sufficient to explicitly require the "infozip"
-| package (containing "unzip") and leaving the less portable
-| "unzip" out of the bootstrap package.
-+---------------------------------------------------------------------------
-Index: rpmio/macro.c
---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7
-+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2
-@@ -1119,9 +1119,11 @@
- case 2: /* COMPRESSED_BZIP2 */
- sprintf(be, "%%_bzip2 %s", b);
- break;
-+#if 0
- case 3: /* COMPRESSED_ZIP */
- sprintf(be, "%%_unzip %s", b);
- break;
-+#endif
- }
- b = be;
- } else if (STREQ("S", f, fn)) {
-@@ -1723,9 +1725,11 @@
-
- if ((magic[0] == 'B') && (magic[1] == 'Z')) {
- *compressed = COMPRESSED_BZIP2;
-+#if 0
- } else if ((magic[0] == 0120) && (magic[1] == 0113) &&
- (magic[2] == 0003) && (magic[3] == 0004)) { /* pkzip */
- *compressed = COMPRESSED_ZIP;
-+#endif
- } else if (((magic[0] == 0037) && (magic[1] == 0213)) || /* gzip */
- ((magic[0] == 0037) && (magic[1] == 0236)) || /* old gzip */
- ((magic[0] == 0037) && (magic[1] == 0036)) || /* pack */
-
-+---------------------------------------------------------------------------
-| Make sure that an %{error:} macro really stops further
-| processing. Else it would be nothing more than a %{warn:}.
-+---------------------------------------------------------------------------
-Index: rpmio/macro.c
---- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7
-+++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2
-@@ -1337,7 +1337,7 @@
- STREQ("error", f, fn)) {
- int waserror = 0;
- if (STREQ("error", f, fn))
-- waserror = 1;
-+ waserror = 1, rc = 1;
- if (g < ge)
- doOutput(mb, waserror, g, gn);
- else
-
-+---------------------------------------------------------------------------
-| Reactivate build mode aliases which were removed in rpm-4.1
-| (and now should be available through "rpmbuild" only).
-+---------------------------------------------------------------------------
-Index: rpmpopt.in
---- rpmpopt.in 24 Jan 2003 14:56:30 -0000 1.1.1.7
-+++ rpmpopt.in 22 Jan 2004 21:42:11 -0000 1.2
-@@ -147,28 +147,28 @@
- # Popt glue to preserve legacy CLI behavior.
- #
- # XXX popt exec parsing doesn't honor POPT_ARGFLAG_ONEDASH
--# XXX Build mode aliases, removed in rpm-4.1.
--#rpm exec --bp rpmb -bp
--#rpm exec --bc rpmb -bc
--#rpm exec --bi rpmb -bi
--#rpm exec --bl rpmb -bl
--#rpm exec --ba rpmb -ba
--#rpm exec --bb rpmb -bb
--#rpm exec --bs rpmb -bs
--#rpm exec --tp rpmb -tp
--#rpm exec --tc rpmb -tc
--#rpm exec --ti rpmb -ti
--#rpm exec --tl rpmb -tl
--#rpm exec --ta rpmb -ta
--#rpm exec --tb rpmb -tb
--#rpm exec --ts rpmb -ts
--#rpm exec --rebuild rpmb --rebuild
--#rpm exec --recompile rpmb --recompile
--#rpm exec --clean rpmb --clean
--#rpm exec --rmsource rpmb --rmsource
--#rpm exec --rmspec rpmb --rmspec
--#rpm exec --target rpmb --target
--#rpm exec --short-circuit rpmb --short-circuit
-+rpm exec --bp rpmb -bp
-+rpm exec --bc rpmb -bc
-+rpm exec --bi rpmb -bi
-+rpm exec --bl rpmb -bl
-+rpm exec --ba rpmb -ba
-+rpm exec --bb rpmb -bb
-+rpm exec --bs rpmb -bs
-+rpm exec --bt rpmb -bt
-+rpm exec --tp rpmb -tp
-+rpm exec --tc rpmb -tc
-+rpm exec --ti rpmb -ti
-+rpm exec --tl rpmb -tl
-+rpm exec --ta rpmb -ta
-+rpm exec --tb rpmb -tb
-+rpm exec --ts rpmb -ts
-+rpm exec --rebuild rpmb --rebuild
-+rpm exec --recompile rpmb --recompile
-+rpm exec --clean rpmb --clean
-+rpm exec --rmsource rpmb --rmsource
-+rpm exec --rmspec rpmb --rmspec
-+rpm exec --target rpmb --target
-+rpm exec --short-circuit rpmb --short-circuit
-
- rpm exec --initdb rpmd --initdb
- rpm exec --rebuilddb rpmd --rebuilddb
-
-+---------------------------------------------------------------------------
-| Allow "-bb --short-circuit" for continuing building a binary package
-| after the %install step (usually previously fixed and repeated with
-| "-bi --short-circuit".
-+---------------------------------------------------------------------------
-Index: rpmqv.c
---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8
-+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4
-@@ -682,6 +682,10 @@
- case 'b':
- ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
- ba->buildAmount |= RPMBUILD_CLEAN;
-+#ifdef OPENPKG
-+ if ((ba->buildChar == 'b') && ba->shortCircuit)
-+ /*@innerbreak@*/ break;
-+#endif
- /*@fallthrough@*/
- case 'i':
- ba->buildAmount |= RPMBUILD_INSTALL;
-
-+---------------------------------------------------------------------------
-| Because permissions and ownership on Berkeley-DB region files
-| __db.XXX have to be already fixed in advance and those files cannot
-| be created in advance on the command line with some reasonable
-| default (as it is the case for the other files which are created
-| with [rpm]db_load), so force Berkeley-DB to accept zero-sized files
-| and create them (instead of thinking another process is currently
-| creating them).
-+---------------------------------------------------------------------------
-Index: db/env/env_region.c
---- db/env/env_region.c 18 Jan 2003 14:05:01 -0000 1.1.1.5
-+++ db/env/env_region.c 22 Jan 2004 21:42:17 -0000 1.2
-@@ -184,6 +184,24 @@
- }
-
- /*
-+ * OpenPKG hack: because permissions and ownership on Berkeley-DB
-+ * region files __db.XXX have to be already fixed in advance and
-+ * those files cannot be created in advance on the command line
-+ * with some reasonable default (as it is the case for the other
-+ * files which are created with [rpm]db_load), so force Berkeley-DB
-+ * to accept zero-sized files and create them (instead of thinking
-+ * another process is currently creating them).
-+ */
-+ if (mbytes == 0 && bytes == 0) {
-+ if (F_ISSET(dbenv, DB_ENV_CREATE))
-+ goto creation;
-+ else {
-+ ret = ENOENT;
-+ goto err;
-+ }
-+ }
-+
-+ /*
- * !!!
- * A size_t is OK -- regions get mapped into memory, and so can't
- * be larger than a size_t.
-
-+---------------------------------------------------------------------------
-| Make sure RPM passes DB_CREATE to Berkeley-DB also if file exists,
-| but is (still) zero-sized.
-+---------------------------------------------------------------------------
-Index: rpmdb/db3.c
---- rpmdb/db3.c 3 Mar 2003 16:18:29 -0000 1.1.1.5
-+++ rpmdb/db3.c 22 Jan 2004 21:42:29 -0000 1.2
-@@ -1019,9 +1019,13 @@
- } else { /* dbhome is writable, check for persistent dbenv. */
- /*@-mods@*/
- const char * dbf = rpmGetPath(dbhome, "/__db.001", NULL);
-+ struct stat sb;
-+ long size = -1;
- /*@=mods@*/
-
-- if (access(dbf, F_OK) == -1) {
-+ if (stat(dbf, &sb) == 0)
-+ size = (long)sb.st_size;
-+ if (access(dbf, F_OK) == -1 || size == 0) {
- /* ... non-existent (or unwritable) DBENV, will create ... */
- dbi->dbi_oeflags |= DB_CREATE;
- dbi->dbi_eflags &= ~DB_JOINENV;
-
-+---------------------------------------------------------------------------
-| Add internal feature variable %{_force_oldpackage} which, if
-| non-zero, automatically enforces --oldpackage on all upgrade
-| operations (this is useful on mass-upgrades from OpenPKG-CURRENT to
-| OpenPKG-RELEASE).
-+---------------------------------------------------------------------------
-Index: rpm.c
---- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23
-+++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2
-@@ -1016,6 +1016,10 @@
-
- if (oldPackage && !upgrade)
- argerror(_("--oldpackage may only be used during upgrades"));
-+#ifdef OPENPKG
-+ if (upgrade && rpmExpandNumeric("%{?_force_oldpackage}"))
-+ probFilter |= RPMPROB_FILTER_OLDPACKAGE;
-+#endif
-
- if (noPgp && bigMode != MODE_CHECKSIG)
- argerror(_("--nopgp may only be used during signature checking"));
-
-+---------------------------------------------------------------------------
-| Add OpenPKG branding to make sure people do not intermix
-| this RPM version with the stock RPM version.
-+---------------------------------------------------------------------------
-Index: lib/poptALL.c
---- lib/poptALL.c 25 Jun 2003 19:10:01 -0000 1.1.1.3
-+++ lib/poptALL.c 22 Jan 2004 21:42:23 -0000 1.2
-@@ -102,7 +102,7 @@
- /*@globals rpmEVR, fileSystem @*/
- /*@modifies *fp, fileSystem @*/
- {
-- fprintf(fp, _("RPM version %s\n"), rpmEVR);
-+ fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR);
- }
-
- /**
-
-+---------------------------------------------------------------------------
-| Add OpenPKG branding to make sure people do not intermix
-| this RPM version with the stock RPM version.
-+---------------------------------------------------------------------------
-Index: rpm.c
---- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23
-+++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2
-@@ -235,7 +235,7 @@
- static void printHelpLine(char * prefix, char * help);
-
- static void printVersion(void) {
-- fprintf(stdout, _("RPM version %s\n"), rpmEVR);
-+ fprintf(stdout, _("OpenPKG RPM %s\n"), rpmEVR);
- }
-
- static void printBanner(void) {
-
-+---------------------------------------------------------------------------
-| Add OpenPKG branding to make sure people do not intermix
-| this RPM version with the stock RPM version.
-+---------------------------------------------------------------------------
-Index: rpmqv.c
---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8
-+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4
-@@ -126,7 +126,7 @@
- /*@globals rpmEVR, fileSystem @*/
- /*@modifies *fp, fileSystem @*/
- {
-- fprintf(fp, _("RPM version %s\n"), rpmEVR);
-+ fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR);
- }
-
- static void printBanner(FILE * fp)
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: rpmqv.c
---- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8
-+++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4
-@@ -707,7 +707,19 @@
- /*@innerbreak@*/ break;
- case 's':
- ba->buildAmount |= RPMBUILD_PACKAGESOURCE;
-+ /* enforce no dependency checking */
-+ ba->noDeps = 1;
- /*@innerbreak@*/ break;
-+#ifdef OPENPKG
-+ case 't':
-+ ba->buildAmount |= RPMBUILD_TRACK;
-+ /* enforce no dependency checking and expansion of %setup, %patch and %prep macros */
-+ ba->noDeps = 1;
-+ rpmDefineMacro(NULL, "setup #", RMIL_CMDLINE);
-+ rpmDefineMacro(NULL, "patch #", RMIL_CMDLINE);
-+ rpmDefineMacro(NULL, "prep %%prep", RMIL_CMDLINE);
-+ /*@innerbreak@*/ break;
-+#endif
- }
-
- if (!poptPeekArg(optCon)) {
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/pack.c
---- build/pack.c 4 Mar 2003 17:03:17 -0000 1.1.1.20
-+++ build/pack.c 30 Jan 2004 17:06:29 -0000 1.2
-@@ -252,6 +252,15 @@
- return RPMERR_BADFILENAME;
- }
- }
-+#ifdef OPENPKG
-+ if (pkg->testFile) {
-+ if (addFileToTag(spec, pkg->testFile, pkg->header, RPMTAG_TEST)) {
-+ rpmError(RPMERR_BADFILENAME,
-+ _("Could not open Test file: %s\n"), pkg->testFile);
-+ return RPMERR_BADFILENAME;
-+ }
-+ }
-+#endif
-
- for (p = pkg->triggerFiles; p != NULL; p = p->next) {
- (void) headerAddOrAppendEntry(pkg->header, RPMTAG_TRIGGERSCRIPTPROG,
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/parseBuildInstallClean.c
---- build/parseBuildInstallClean.c 3 Mar 2003 20:43:30 -0000 1.1.1.9
-+++ build/parseBuildInstallClean.c 30 Jan 2004 17:06:29 -0000 1.2
-@@ -29,6 +29,11 @@
- } else if (parsePart == PART_CLEAN) {
- sbp = &(spec->clean);
- name = "%clean";
-+#ifdef OPENPKG
-+ } else if (parsePart == PART_TRACK) {
-+ sbp = &(spec->track);
-+ name = "%track";
-+#endif
- }
- /*@=branchstate@*/
-
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/parseScript.c
---- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12
-+++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3
-@@ -156,6 +156,14 @@
- progtag = RPMTAG_TRIGGERSCRIPTPROG;
- partname = "%triggerpostun";
- break;
-+#ifdef OPENPKG
-+ case PART_TEST:
-+ tag = RPMTAG_TEST;
-+ tagflags = RPMSENSE_SCRIPT_TEST;
-+ progtag = RPMTAG_TESTPROG;
-+ partname = "%test";
-+ break;
-+#endif
- }
- /*@=branchstate@*/
-
-@@ -304,6 +313,11 @@
- case PART_VERIFYSCRIPT:
- pkg->verifyFile = xstrdup(file);
- break;
-+#ifdef OPENPKG
-+ case PART_TEST:
-+ pkg->testFile = xstrdup(file);
-+ break;
-+#endif
- }
- }
- }
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-|
-| MSvB: Additionally provide a default %clean section, removing buildroot.
-+---------------------------------------------------------------------------
-Index: build/parseSpec.c
---- build/parseSpec.c 15 May 2003 13:38:57 -0000 1.1.1.15
-+++ build/parseSpec.c 30 Jan 2004 17:06:30 -0000 1.2
-@@ -43,6 +43,10 @@
- { PART_TRIGGERIN, 0, "%triggerin"},
- { PART_TRIGGERIN, 0, "%trigger"},
- { PART_VERIFYSCRIPT, 0, "%verifyscript"},
-+#ifdef OPENPKG
-+ { PART_TRACK, 0, "%track"},
-+ { PART_TEST, 0, "%test"},
-+#endif
- {0, 0, 0}
- };
-
-@@ -489,6 +493,15 @@
- parsePart = parseFiles(spec);
- /*@switchbreak@*/ break;
-
-+#ifdef OPENPKG
-+ case PART_TRACK:
-+ parsePart = parseBuildInstallClean(spec, parsePart);
-+ /*@switchbreak@*/ break;
-+ case PART_TEST:
-+ parsePart = parseScript(spec, parsePart);
-+ /*@switchbreak@*/ break;
-+#endif
-+
- case PART_NONE: /* XXX avoid gcc whining */
- case PART_LAST:
- case PART_BUILDARCHITECTURES:
-@@ -576,6 +589,13 @@
- }
- /*@=infloops@*/ /* LCL: parsePart is modified @*/
-
-+ if (spec->clean == NULL) {
-+ char *body = rpmExpand("%{?buildroot: %{__rm} -rf %{buildroot}}", NULL);
-+ spec->clean = newStringBuf();
-+ appendLineStringBuf(spec->clean, body);
-+ free(body);
-+ }
-+
- /* Check for description in each package and add arch and os */
- {
- #ifdef DYING
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/poptBT.c
---- build/poptBT.c 3 Mar 2003 20:04:12 -0000 1.1.1.3
-+++ build/poptBT.c 30 Jan 2004 17:06:30 -0000 1.2
-@@ -35,6 +35,9 @@
- #define POPT_BL 0x626c
- #define POPT_BP 0x6270
- #define POPT_BS 0x6273
-+#ifdef OPENPKG
-+#define POPT_BT 0x6274
-+#endif
- #define POPT_TA 0x7461
- #define POPT_TB 0x7462
- #define POPT_TC 0x7463
-@@ -82,6 +85,9 @@
- case POPT_BL:
- case POPT_BP:
- case POPT_BS:
-+#ifdef OPENPKG
-+ case POPT_BT:
-+#endif
- case POPT_TA:
- case POPT_TB:
- case POPT_TC:
-@@ -177,6 +183,11 @@
- { "bs", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BS,
- N_("build source package only from "),
- N_("") },
-+#ifdef OPENPKG
-+ { "bt", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BT,
-+ N_("track versions of sources from "),
-+ N_("") },
-+#endif
-
- { "tp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TP,
- N_("build through %prep (unpack sources and apply patches) from "),
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/rpmbuild.h
---- build/rpmbuild.h 4 Mar 2003 17:03:07 -0000 1.1.1.13
-+++ build/rpmbuild.h 30 Jan 2004 17:06:30 -0000 1.2
-@@ -34,6 +34,9 @@
- RPMBUILD_RMSOURCE = (1 << 8), /*!< Remove source(s) and patch(s). */
- RPMBUILD_RMBUILD = (1 << 9), /*!< Remove build sub-tree. */
- RPMBUILD_STRINGBUF = (1 << 10), /*!< only for doScript() */
-+#ifdef OPENPKG
-+ RPMBUILD_TRACK = (1 << 12), /*!< Execute %%track. */
-+#endif
- RPMBUILD_RMSPEC = (1 << 11) /*!< Remove spec file. */
- } rpmBuildFlags;
- /*@=typeuse@*/
-@@ -69,7 +72,13 @@
- PART_VERIFYSCRIPT = 16, /*!< */
- PART_BUILDARCHITECTURES= 17,/*!< */
- PART_TRIGGERPOSTUN = 18, /*!< */
-+#ifdef OPENPKG
-+ PART_TRACK = 19, /*!< */
-+ PART_TEST = 20, /*!< */
-+ PART_LAST = 21 /*!< */
-+#else
- PART_LAST = 19 /*!< */
-+#endif
- } rpmParseState;
-
- #define STRIP_NOTHING 0
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/rpmspec.h
---- build/rpmspec.h 4 Mar 2003 15:30:23 -0000 1.1.1.11
-+++ build/rpmspec.h 30 Jan 2004 17:06:30 -0000 1.2
-@@ -164,6 +164,10 @@
- StringBuf check; /*!< %check scriptlet. */
- /*@only@*/
- StringBuf clean; /*!< %clean scriptlet. */
-+#ifdef OPENPKG
-+/*@only@*/
-+ StringBuf track; /*!< %track scriptlet. */
-+#endif
-
- /*@owned@*/
- Package packages; /*!< Package list. */
-@@ -196,6 +200,10 @@
- const char * postUnFile; /*!< %postun scriptlet. */
- /*@only@*/
- const char * verifyFile; /*!< %verifyscript scriptlet. */
-+#ifdef OPENPKG
-+/*@only@*/
-+ const char * testFile; /*!< %test scriptlet. */
-+#endif
-
- /*@only@*/
- StringBuf specialDoc;
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: build/spec.c
---- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21
-+++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3
-@@ -138,6 +138,9 @@
- p->preUnFile = NULL;
- p->postUnFile = NULL;
- p->verifyFile = NULL;
-+#ifdef OPENPKG
-+ p->testFile = NULL;
-+#endif
-
- p->specialDoc = NULL;
-
-@@ -452,6 +463,9 @@
- spec->install = NULL;
- spec->check = NULL;
- spec->clean = NULL;
-+#ifdef OPENPKG
-+ spec->track = NULL;
-+#endif
-
- spec->sources = NULL;
- spec->packages = NULL;
-@@ -499,6 +513,9 @@
- spec->install = freeStringBuf(spec->install);
- spec->check = freeStringBuf(spec->check);
- spec->clean = freeStringBuf(spec->clean);
-+#ifdef OPENPKG
-+ spec->track = freeStringBuf(spec->track);
-+#endif
-
- spec->buildRootURL = _free(spec->buildRootURL);
- spec->buildSubdir = _free(spec->buildSubdir);
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-+---------------------------------------------------------------------------
-Index: lib/rpmlib.h
---- lib/rpmlib.h 19 Jun 2003 17:39:35 -0000 1.1.1.26
-+++ lib/rpmlib.h 30 Jan 2004 17:06:31 -0000 1.2
-@@ -414,6 +414,12 @@
- RPMTAG_FILEDEPENDSN = 1144,
- RPMTAG_DEPENDSDICT = 1145,
- RPMTAG_SOURCEPKGID = 1146,
-+#ifdef OPENPKG
-+ RPMTAG_TRACK = 1200,
-+ RPMTAG_TEST = 1201,
-+ RPMTAG_TESTPROG = 1202,
-+ RPMTAG_CLASS = 1203,
-+#endif
- /*@-enummemuse@*/
- RPMTAG_FIRSTFREE_TAG /*!< internal */
- /*@=enummemuse@*/
-@@ -488,6 +494,9 @@
- RPMSENSE_SCRIPT_BUILD = (1 << 21), /*!< %build build dependency. */
- RPMSENSE_SCRIPT_INSTALL = (1 << 22),/*!< %install build dependency. */
- RPMSENSE_SCRIPT_CLEAN = (1 << 23), /*!< %clean build dependency. */
-+#ifdef OPENPKG
-+ RPMSENSE_SCRIPT_TEST = (1 << 29), /*!< %test build dependency. */
-+#endif
- RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ), /*!< rpmlib(feature) dependency. */
- /*@-enummemuse@*/
- RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< @todo Implement %triggerprein. */
-
-+---------------------------------------------------------------------------
-| Add support for the OpenPKG custom .spec file sections %track
-| (package build-time feature for performing vendor source tracking)
-| and %test (package install-time feature for performing package
-| run-time tests).
-| Additionally, add support for "Class" header.
-+---------------------------------------------------------------------------
-Index: rpmdb/tagtbl.c
---- rpmdb/tagtbl.c 2 Jul 2003 20:20:27 -0000 1.1.1.4
-+++ rpmdb/tagtbl.c 30 Jan 2004 17:06:32 -0000 1.2
-@@ -135,6 +135,12 @@
- { "RPMTAG_FILEDEPENDSN", 1144, },
- { "RPMTAG_DEPENDSDICT", 1145, },
- { "RPMTAG_SOURCEPKGID", 1146, },
-+#ifdef OPENPKG
-+ { "RPMTAG_TRACK", 1200, },
-+ { "RPMTAG_TEST", 1201, },
-+ { "RPMTAG_TESTPROG", 1202, },
-+ { "RPMTAG_CLASS", 1203, },
-+#endif
- { NULL, 0 }
- };
-
-
-+---------------------------------------------------------------------------
-| Add support for "Class" header.
-+---------------------------------------------------------------------------
-Index: build/parsePreamble.c
---- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13
-+++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3
-@@ -21,6 +21,7 @@
- RPMTAG_LICENSE,
- RPMTAG_PACKAGER,
- RPMTAG_DISTRIBUTION,
-+ RPMTAG_CLASS,
- RPMTAG_DISTURL,
- RPMTAG_VENDOR,
- RPMTAG_ICON,
-@@ -327,6 +328,7 @@
- { RPMTAG_VENDOR, "%{vendor}" },
- { RPMTAG_PACKAGER, "%{packager}" },
- { RPMTAG_DISTRIBUTION, "%{distribution}" },
-+ { RPMTAG_CLASS, "%{class}" },
- { RPMTAG_DISTURL, "%{disturl}" },
- { -1, NULL }
- };
-@@ -545,6 +547,7 @@
- (void) stashSt(spec, pkg->header, tag, lang);
- /*@fallthrough@*/
- case RPMTAG_DISTRIBUTION:
-+ case RPMTAG_CLASS:
- case RPMTAG_VENDOR:
- case RPMTAG_LICENSE:
- case RPMTAG_PACKAGER:
-@@ -751,6 +754,7 @@
- {RPMTAG_LICENSE, 0, 0, "copyright"},
- {RPMTAG_LICENSE, 0, 0, "license"},
- {RPMTAG_DISTRIBUTION, 0, 0, "distribution"},
-+ {RPMTAG_CLASS, 0, 0, "class"},
- {RPMTAG_DISTURL, 0, 0, "disturl"},
- {RPMTAG_VENDOR, 0, 0, "vendor"},
- {RPMTAG_GROUP, 0, 1, "group"},