Thu, 08 Jan 2009 11:09:42 +0100
Import package vendor original specs for necessary manipulations.
michael@13 | 1 | ## |
michael@13 | 2 | ## rpm.patch.feature -- Annotated OpenPKG RPM Patch file |
michael@13 | 3 | ## Copyright (c) 2000-2007 OpenPKG Foundation e.V. <http://openpkg.net/> |
michael@13 | 4 | ## Copyright (c) 2000-2007 Ralf S. Engelschall <http://engelschall.com/> |
michael@13 | 5 | ## |
michael@13 | 6 | ## This file assembles changes to existing RPM source files between |
michael@13 | 7 | ## the original RedHat RPM and the OpenPKG RPM variant. It can be |
michael@13 | 8 | ## automatically applied to a vanilla RedHat RPM source tree with the |
michael@13 | 9 | ## 'patch' tool to upgrade those files. Each patch snippet is annotated |
michael@13 | 10 | ## with a short description. |
michael@13 | 11 | ## |
michael@13 | 12 | ## Created on: 13-Sep-2006 |
michael@13 | 13 | ## |
michael@13 | 14 | ## ATTENTION: THIS PATCH FILE WAS AUTO-GENERATED FROM AN OPENPKG |
michael@13 | 15 | ## RPM CVS REPOSITORY, HENCE DO NOT EDIT THIS FILE. |
michael@13 | 16 | ## |
michael@13 | 17 | |
michael@13 | 18 | +--------------------------------------------------------------------------- |
michael@13 | 19 | | Remove "tools" directory from sub-directory list because it contains |
michael@13 | 20 | | things we are not interested in and which cause some build trouble |
michael@13 | 21 | | anyway. |
michael@13 | 22 | | Use a plain "rpmpopt" file without any trailing version. |
michael@13 | 23 | | Adjust paths to conform to OpenPKG filesystem layout. |
michael@13 | 24 | | Do not run the "installplatform" script, because not needed for OpenPKG. |
michael@13 | 25 | +--------------------------------------------------------------------------- |
michael@13 | 26 | Index: Makefile.am |
michael@13 | 27 | --- Makefile.am 29 May 2003 18:20:28 -0000 1.1.1.17 |
michael@13 | 28 | +++ Makefile.am 22 Jan 2004 21:42:02 -0000 1.2 |
michael@13 | 29 | @@ -12,9 +12,9 @@ |
michael@13 | 30 | xmlspec/examples/*.sh xmlspec/examples/*.lst \ |
michael@13 | 31 | xmlspec/examples/*.xmlspec \ |
michael@13 | 32 | po/*.in po/*.po po/rpm.pot \ |
michael@13 | 33 | - rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c |
michael@13 | 34 | + rpm.magic rpmpopt rpmqv.c rpm.c |
michael@13 | 35 | |
michael@13 | 36 | -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 . |
michael@13 | 37 | +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 . |
michael@13 | 38 | |
michael@13 | 39 | INCLUDES = \ |
michael@13 | 40 | -I$(top_srcdir)/build \ |
michael@13 | 41 | @@ -47,13 +47,10 @@ |
michael@13 | 42 | |
michael@13 | 43 | pkglibdir = @RPMCONFIGDIR@ |
michael@13 | 44 | pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq |
michael@13 | 45 | -pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros |
michael@13 | 46 | +pkglib_DATA = rpmrc rpmpopt macros |
michael@13 | 47 | pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \ |
michael@13 | 48 | config.guess config.sub config.site |
michael@13 | 49 | |
michael@13 | 50 | -rpmpopt-$(VERSION): rpmpopt |
michael@13 | 51 | - cp rpmpopt $@ |
michael@13 | 52 | - |
michael@13 | 53 | noinst_HEADERS = build.h debug.h system.h |
michael@13 | 54 | |
michael@13 | 55 | rpm_SOURCES = |
michael@13 | 56 | @@ -124,32 +121,32 @@ |
michael@13 | 57 | pkgsrcdir = $(prefix)/src/$(RPMCANONVENDOR) |
michael@13 | 58 | |
michael@13 | 59 | install-data-local: |
michael@13 | 60 | - @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 61 | + @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 62 | @rm -f $(DESTDIR)$(libdir)/rpmrc |
michael@13 | 63 | @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc |
michael@13 | 64 | @rm -f $(DESTDIR)$(libdir)/rpmpopt |
michael@13 | 65 | @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt |
michael@13 | 66 | @rm -f $(DESTDIR)$(libdir)/rpm/rpmt |
michael@13 | 67 | - @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt |
michael@13 | 68 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpme |
michael@13 | 69 | - @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme |
michael@13 | 70 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpmu |
michael@13 | 71 | - @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu |
michael@13 | 72 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpmv |
michael@13 | 73 | - @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv |
michael@13 | 74 | + @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt |
michael@13 | 75 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpme |
michael@13 | 76 | + @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme |
michael@13 | 77 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu |
michael@13 | 78 | + @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu |
michael@13 | 79 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv |
michael@13 | 80 | + @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv |
michael@13 | 81 | rm -f $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 82 | - @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 83 | + @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 84 | rm -f $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 85 | - @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 86 | + @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 87 | rm -f $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 88 | - @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 89 | + @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 90 | rm -f $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 91 | - @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 92 | + @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 93 | rm -f $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 94 | - @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 95 | + @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 96 | for bf in e i u ; do \ |
michael@13 | 97 | rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 98 | - @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 99 | + @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 100 | done |
michael@13 | 101 | @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\ |
michael@13 | 102 | $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\ |
michael@13 | 103 | @@ -174,11 +171,6 @@ |
michael@13 | 104 | *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\ |
michael@13 | 105 | esac |
michael@13 | 106 | $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch |
michael@13 | 107 | - @case "@host_os@" in \ |
michael@13 | 108 | - mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\ |
michael@13 | 109 | - solaris*|linux*) \ |
michael@13 | 110 | - chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \ |
michael@13 | 111 | - esac |
michael@13 | 112 | @$(mkinstalldirs) $(DESTDIR)/var/tmp |
michael@13 | 113 | |
michael@13 | 114 | .PHONY: setperms |
michael@13 | 115 | @@ -198,10 +190,10 @@ |
michael@13 | 116 | $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\ |
michael@13 | 117 | done |
michael@13 | 118 | @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir) |
michael@13 | 119 | - @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 120 | - -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]* |
michael@13 | 121 | - -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 122 | - -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.* |
michael@13 | 123 | + @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 124 | + -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]* |
michael@13 | 125 | + -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 126 | + -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.* |
michael@13 | 127 | |
michael@13 | 128 | .PHONY: unsetgid |
michael@13 | 129 | unsetgid: |
michael@13 | 130 | @@ -244,7 +236,7 @@ |
michael@13 | 131 | @sudo ./rpm -ta rpm-$(VERSION).tar.gz |
michael@13 | 132 | |
michael@13 | 133 | .PHONY: doxygen |
michael@13 | 134 | -doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@ |
michael@13 | 135 | +doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt |
michael@13 | 136 | rm -rf $@ |
michael@13 | 137 | mkdir -p $@ |
michael@13 | 138 | - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@ |
michael@13 | 139 | |
michael@13 | 140 | +--------------------------------------------------------------------------- |
michael@13 | 141 | | Remove "tools" directory from sub-directory list because it contains |
michael@13 | 142 | | things we are not interested in and which cause some build trouble |
michael@13 | 143 | | anyway. |
michael@13 | 144 | | Use a plain "rpmpopt" file without any trailing version. |
michael@13 | 145 | | Adjust paths to conform to OpenPKG filesystem layout. |
michael@13 | 146 | | Do not run the "installplatform" script, because not needed for OpenPKG. |
michael@13 | 147 | +--------------------------------------------------------------------------- |
michael@13 | 148 | Index: Makefile.in |
michael@13 | 149 | --- Makefile.in 16 Jul 2003 17:05:42 -0000 1.1.1.23 |
michael@13 | 150 | +++ Makefile.in 22 Jan 2004 21:42:03 -0000 1.2 |
michael@13 | 151 | @@ -265,10 +265,10 @@ |
michael@13 | 152 | xmlspec/examples/*.sh xmlspec/examples/*.lst \ |
michael@13 | 153 | xmlspec/examples/*.xmlspec \ |
michael@13 | 154 | po/*.in po/*.po po/rpm.pot \ |
michael@13 | 155 | - rpm.magic rpmpopt-$(VERSION) rpmqv.c rpm.c |
michael@13 | 156 | + rpm.magic rpmpopt rpmqv.c rpm.c |
michael@13 | 157 | |
michael@13 | 158 | |
michael@13 | 159 | -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 . |
michael@13 | 160 | +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 . |
michael@13 | 161 | |
michael@13 | 162 | INCLUDES = \ |
michael@13 | 163 | -I$(top_srcdir)/build \ |
michael@13 | 164 | @@ -301,7 +301,7 @@ |
michael@13 | 165 | bin_PROGRAMS = rpm2cpio |
michael@13 | 166 | bin_SCRIPTS = gendiff |
michael@13 | 167 | pkglib_PROGRAMS = rpmb rpmd rpmi rpmk rpmq |
michael@13 | 168 | -pkglib_DATA = rpmrc rpmpopt-$(VERSION) macros |
michael@13 | 169 | +pkglib_DATA = rpmrc rpmpopt macros |
michael@13 | 170 | pkglib_SCRIPTS = find-provides find-requires mkinstalldirs \ |
michael@13 | 171 | config.guess config.sub config.site |
michael@13 | 172 | |
michael@13 | 173 | @@ -1058,8 +1058,6 @@ |
michael@13 | 174 | uninstall-rpmbinPROGRAMS |
michael@13 | 175 | |
michael@13 | 176 | |
michael@13 | 177 | -rpmpopt-$(VERSION): rpmpopt |
michael@13 | 178 | - cp rpmpopt $@ |
michael@13 | 179 | rpm.o: rpmqv.c |
michael@13 | 180 | $(COMPILE) -DIAM_RPMDB -DIAM_RPMEIU -DIAM_RPMK -DIAM_RPMQV -o $@ -c rpmqv.c |
michael@13 | 181 | rpmb.o: rpmqv.c |
michael@13 | 182 | @@ -1097,32 +1095,32 @@ |
michael@13 | 183 | `make -s sources -C popt` |
michael@13 | 184 | |
michael@13 | 185 | install-data-local: |
michael@13 | 186 | - @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 187 | + @$(mkinstalldirs) $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 188 | @rm -f $(DESTDIR)$(libdir)/rpmrc |
michael@13 | 189 | @@LN_S@ rpm/rpmrc $(DESTDIR)$(libdir)/rpmrc |
michael@13 | 190 | @rm -f $(DESTDIR)$(libdir)/rpmpopt |
michael@13 | 191 | @@LN_S@ rpm/rpmpopt $(DESTDIR)$(libdir)/rpmpopt |
michael@13 | 192 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpmt |
michael@13 | 193 | - @@LN_S@ rpmb $(DESTDIR)$(libdir)/rpm/rpmt |
michael@13 | 194 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpme |
michael@13 | 195 | - @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpme |
michael@13 | 196 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpmu |
michael@13 | 197 | - @@LN_S@ rpmi $(DESTDIR)$(libdir)/rpm/rpmu |
michael@13 | 198 | - @rm -f $(DESTDIR)$(libdir)/rpm/rpmv |
michael@13 | 199 | - @@LN_S@ rpmq $(DESTDIR)$(libdir)/rpm/rpmv |
michael@13 | 200 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpmt |
michael@13 | 201 | + @@LN_S@ rpmb $(DESTDIR)$(libdir)/openpkg/rpmt |
michael@13 | 202 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpme |
michael@13 | 203 | + @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpme |
michael@13 | 204 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpmu |
michael@13 | 205 | + @@LN_S@ rpmi $(DESTDIR)$(libdir)/openpkg/rpmu |
michael@13 | 206 | + @rm -f $(DESTDIR)$(libdir)/openpkg/rpmv |
michael@13 | 207 | + @@LN_S@ rpmq $(DESTDIR)$(libdir)/openpkg/rpmv |
michael@13 | 208 | rm -f $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 209 | - @LN_S@ ../lib/rpm/rpmb $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 210 | + @LN_S@ ../lib/openpkg/rpmb $(DESTDIR)$(bindir)/rpmbuild |
michael@13 | 211 | rm -f $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 212 | - @LN_S@ ../lib/rpm/rpmq $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 213 | + @LN_S@ ../lib/openpkg/rpmq $(DESTDIR)$(bindir)/rpmquery |
michael@13 | 214 | rm -f $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 215 | - @LN_S@ ../lib/rpm/rpmv $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 216 | + @LN_S@ ../lib/openpkg/rpmv $(DESTDIR)$(bindir)/rpmverify |
michael@13 | 217 | rm -f $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 218 | - @LN_S@ ../lib/rpm/rpmk $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 219 | + @LN_S@ ../lib/openpkg/rpmk $(DESTDIR)$(bindir)/rpmsign |
michael@13 | 220 | rm -f $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 221 | - @LN_S@ ../lib/rpm/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 222 | + @LN_S@ ../lib/openpkg/rpmd $(DESTDIR)$(bindir)/rpmdb ; \ |
michael@13 | 223 | for bf in e i u ; do \ |
michael@13 | 224 | rm -f $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 225 | - @LN_S@ ../lib/rpm/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 226 | + @LN_S@ ../lib/openpkg/rpm$$bf $(DESTDIR)$(bindir)/rpm$$bf ; \ |
michael@13 | 227 | done |
michael@13 | 228 | @for dir in BUILD RPMS SOURCES SPECS SRPMS ; do\ |
michael@13 | 229 | $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/$$dir;\ |
michael@13 | 230 | @@ -1147,11 +1145,6 @@ |
michael@13 | 231 | *) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/@host_cpu@ ;;\ |
michael@13 | 232 | esac |
michael@13 | 233 | $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/noarch |
michael@13 | 234 | - @case "@host_os@" in \ |
michael@13 | 235 | - mint) $(mkinstalldirs) $(DESTDIR)$(pkgsrcdir)/RPMS/m68kmint ;;\ |
michael@13 | 236 | - solaris*|linux*) \ |
michael@13 | 237 | - chmod u+x ./installplatform; DESTDIR="$(DESTDIR)" pkglibdir="$(pkglibdir)" ./installplatform rpmrc macros platform ;; \ |
michael@13 | 238 | - esac |
michael@13 | 239 | @$(mkinstalldirs) $(DESTDIR)/var/tmp |
michael@13 | 240 | |
michael@13 | 241 | .PHONY: setperms |
michael@13 | 242 | @@ -1171,10 +1164,10 @@ |
michael@13 | 243 | $(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir)/$$f ;\ |
michael@13 | 244 | done |
michael@13 | 245 | @$(__CHOWN) ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(pkglibdir) |
michael@13 | 246 | - @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 247 | - -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/[A-Z]* |
michael@13 | 248 | - -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/rpm |
michael@13 | 249 | - -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/rpm/__db.* |
michael@13 | 250 | + @$(__CHOWN) -R ${RPMUSER}.${RPMGROUP} $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 251 | + -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/[A-Z]* |
michael@13 | 252 | + -@$(__CHMOD) 0775 $(DESTDIR)$(varprefix)/lib/openpkg |
michael@13 | 253 | + -@$(__CHMOD) 0664 $(DESTDIR)$(varprefix)/lib/openpkg/__db.* |
michael@13 | 254 | |
michael@13 | 255 | .PHONY: unsetgid |
michael@13 | 256 | unsetgid: |
michael@13 | 257 | @@ -1217,7 +1210,7 @@ |
michael@13 | 258 | @sudo ./rpm -ta rpm-$(VERSION).tar.gz |
michael@13 | 259 | |
michael@13 | 260 | .PHONY: doxygen |
michael@13 | 261 | -doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt-@VERSION@ |
michael@13 | 262 | +doxygen @WITH_APIDOCS_TARGET@: Doxyfile rpmpopt |
michael@13 | 263 | rm -rf $@ |
michael@13 | 264 | mkdir -p $@ |
michael@13 | 265 | - [ X"@__DOXYGEN@" != Xno ] && @__DOXYGEN@ |
michael@13 | 266 | |
michael@13 | 267 | +--------------------------------------------------------------------------- |
michael@13 | 268 | | Add support for splitted source directories, i.e., source files |
michael@13 | 269 | | alternatively can be placed into the .spec directory and are picked |
michael@13 | 270 | | up there, too. |
michael@13 | 271 | +--------------------------------------------------------------------------- |
michael@13 | 272 | Index: build/build.c |
michael@13 | 273 | --- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 |
michael@13 | 274 | +++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 |
michael@13 | 275 | @@ -33,7 +33,15 @@ |
michael@13 | 276 | |
michael@13 | 277 | for (p = spec->sources; p != NULL; p = p->next) { |
michael@13 | 278 | if (! (p->flags & RPMBUILD_ISNO)) { |
michael@13 | 279 | +#ifndef OPENPKG |
michael@13 | 280 | const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 281 | +#else |
michael@13 | 282 | + const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL); |
michael@13 | 283 | + if (access(fn, F_OK) == -1) { |
michael@13 | 284 | + fn = _free(fn); |
michael@13 | 285 | + fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 286 | + } |
michael@13 | 287 | +#endif |
michael@13 | 288 | rc = Unlink(fn); |
michael@13 | 289 | fn = _free(fn); |
michael@13 | 290 | } |
michael@13 | 291 | @@ -42,7 +50,15 @@ |
michael@13 | 292 | for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { |
michael@13 | 293 | for (p = pkg->icon; p != NULL; p = p->next) { |
michael@13 | 294 | if (! (p->flags & RPMBUILD_ISNO)) { |
michael@13 | 295 | +#ifndef OPENPKG |
michael@13 | 296 | const char *fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 297 | +#else |
michael@13 | 298 | + const char *fn = rpmGetPath("%{_specdir}/", p->source, NULL); |
michael@13 | 299 | + if (access(fn, F_OK) == -1) { |
michael@13 | 300 | + fn = _free(fn); |
michael@13 | 301 | + fn = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 302 | + } |
michael@13 | 303 | +#endif |
michael@13 | 304 | rc = Unlink(fn); |
michael@13 | 305 | fn = _free(fn); |
michael@13 | 306 | } |
michael@13 | 307 | |
michael@13 | 308 | +--------------------------------------------------------------------------- |
michael@13 | 309 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 310 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 311 | | and %test (package install-time feature for performing package |
michael@13 | 312 | | run-time tests). |
michael@13 | 313 | +--------------------------------------------------------------------------- |
michael@13 | 314 | Index: build/build.c |
michael@13 | 315 | --- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 |
michael@13 | 316 | +++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 |
michael@13 | 317 | @@ -113,6 +129,14 @@ |
michael@13 | 318 | mTemplate = "%{__spec_clean_template}"; |
michael@13 | 319 | mPost = "%{__spec_clean_post}"; |
michael@13 | 320 | break; |
michael@13 | 321 | +#ifdef OPENPKG |
michael@13 | 322 | + case RPMBUILD_TRACK: |
michael@13 | 323 | + name = "%track"; |
michael@13 | 324 | + sb = spec->track; |
michael@13 | 325 | + mTemplate = "%{__spec_track_template}"; |
michael@13 | 326 | + mPost = "%{__spec_track_post}"; |
michael@13 | 327 | + break; |
michael@13 | 328 | +#endif |
michael@13 | 329 | case RPMBUILD_STRINGBUF: |
michael@13 | 330 | default: |
michael@13 | 331 | mTemplate = "%{___build_template}"; |
michael@13 | 332 | @@ -169,7 +193,11 @@ |
michael@13 | 333 | |
michael@13 | 334 | (void) fputs(buildTemplate, fp); |
michael@13 | 335 | |
michael@13 | 336 | +#ifdef OPENPKG |
michael@13 | 337 | + if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir && what != RPMBUILD_TRACK) |
michael@13 | 338 | +#else |
michael@13 | 339 | if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir) |
michael@13 | 340 | +#endif |
michael@13 | 341 | fprintf(fp, "cd %s\n", spec->buildSubdir); |
michael@13 | 342 | |
michael@13 | 343 | if (what == RPMBUILD_RMBUILD) { |
michael@13 | 344 | @@ -215,6 +243,9 @@ |
michael@13 | 345 | buildCmd = rpmExpand("%{___build_cmd}", " ", buildScript, NULL); |
michael@13 | 346 | (void) poptParseArgvString(buildCmd, &argc, &argv); |
michael@13 | 347 | |
michael@13 | 348 | +#ifdef OPENPKG |
michael@13 | 349 | + if (what != RPMBUILD_TRACK) |
michael@13 | 350 | +#endif |
michael@13 | 351 | rpmMessage(RPMMESS_NORMAL, _("Executing(%s): %s\n"), name, buildCmd); |
michael@13 | 352 | if (!(child = fork())) { |
michael@13 | 353 | |
michael@13 | 354 | @@ -290,6 +323,12 @@ |
michael@13 | 355 | /*@=boundsread@*/ |
michael@13 | 356 | } |
michael@13 | 357 | } else { |
michael@13 | 358 | +#ifdef OPENPKG |
michael@13 | 359 | + if ((what & RPMBUILD_TRACK) && |
michael@13 | 360 | + (rc = doScript(spec, RPMBUILD_TRACK, NULL, NULL, test))) |
michael@13 | 361 | + goto exit; |
michael@13 | 362 | +#endif |
michael@13 | 363 | + |
michael@13 | 364 | if ((what & RPMBUILD_PREP) && |
michael@13 | 365 | (rc = doScript(spec, RPMBUILD_PREP, NULL, NULL, test))) |
michael@13 | 366 | goto exit; |
michael@13 | 367 | |
michael@13 | 368 | +--------------------------------------------------------------------------- |
michael@13 | 369 | | Unconditionally remove temporary files ("rpm-tmp.XXXXX") which |
michael@13 | 370 | | were generated for the executed scripts. In OpenPKG we run the |
michael@13 | 371 | | scripts in debug mode ("set -x") anyway, so we never need to |
michael@13 | 372 | | see the whole generated script -- not even if it breaks. Instead |
michael@13 | 373 | | we would just have temporary files staying around forever. |
michael@13 | 374 | +--------------------------------------------------------------------------- |
michael@13 | 375 | Index: build/build.c |
michael@13 | 376 | --- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 |
michael@13 | 377 | +++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 |
michael@13 | 378 | @@ -242,7 +273,9 @@ |
michael@13 | 379 | |
michael@13 | 380 | exit: |
michael@13 | 381 | if (scriptName) { |
michael@13 | 382 | +#ifndef OPENPKG |
michael@13 | 383 | if (!rc) |
michael@13 | 384 | +#endif |
michael@13 | 385 | (void) Unlink(scriptName); |
michael@13 | 386 | scriptName = _free(scriptName); |
michael@13 | 387 | } |
michael@13 | 388 | |
michael@13 | 389 | +--------------------------------------------------------------------------- |
michael@13 | 390 | | In OpenPKG we use per-package %{_sourcedir} and %{_specdir} |
michael@13 | 391 | | definitions (macros have trailing ".../%{name}"). On removal |
michael@13 | 392 | | of source(s) and .spec file, this per-package directory would |
michael@13 | 393 | | be kept (usually <prefix>/RPM/SRC/<name>/), because RPM does |
michael@13 | 394 | | not know about this OpenPKG convention. So, let RPM try(!) to |
michael@13 | 395 | | remove the two directories (if they are empty) and just ignore |
michael@13 | 396 | | removal failures (if they are still not empty). |
michael@13 | 397 | +--------------------------------------------------------------------------- |
michael@13 | 398 | Index: build/build.c |
michael@13 | 399 | --- build/build.c 4 Mar 2003 15:27:33 -0000 1.1.1.20 |
michael@13 | 400 | +++ build/build.c 6 Feb 2004 15:37:57 -0000 1.4 |
michael@13 | 401 | @@ -338,6 +377,21 @@ |
michael@13 | 402 | if (what & RPMBUILD_RMSPEC) |
michael@13 | 403 | (void) Unlink(spec->specFile); |
michael@13 | 404 | |
michael@13 | 405 | +#ifdef OPENPKG |
michael@13 | 406 | + if (what & RPMBUILD_RMSOURCE) { |
michael@13 | 407 | + const char *pn; |
michael@13 | 408 | + pn = rpmGetPath("%{_sourcedir}", NULL); |
michael@13 | 409 | + Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */ |
michael@13 | 410 | + pn = _free(pn); |
michael@13 | 411 | + } |
michael@13 | 412 | + if (what & RPMBUILD_RMSPEC) { |
michael@13 | 413 | + const char *pn; |
michael@13 | 414 | + pn = rpmGetPath("%{_specdir}", NULL); |
michael@13 | 415 | + Rmdir(pn); /* ignore error, it is ok if it fails (usually with ENOTEMPTY) */ |
michael@13 | 416 | + pn = _free(pn); |
michael@13 | 417 | + } |
michael@13 | 418 | +#endif |
michael@13 | 419 | + |
michael@13 | 420 | exit: |
michael@13 | 421 | if (rc && rpmlogGetNrecs() > 0) { |
michael@13 | 422 | rpmMessage(RPMMESS_NORMAL, _("\n\nRPM build errors:\n")); |
michael@13 | 423 | |
michael@13 | 424 | +--------------------------------------------------------------------------- |
michael@13 | 425 | | Do not declare any files as %doc files by default. |
michael@13 | 426 | +--------------------------------------------------------------------------- |
michael@13 | 427 | Index: build/files.c |
michael@13 | 428 | --- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 |
michael@13 | 429 | +++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 |
michael@13 | 430 | @@ -1971,6 +1971,7 @@ |
michael@13 | 431 | fl.defSpecdFlags = 0; |
michael@13 | 432 | |
michael@13 | 433 | fl.docDirCount = 0; |
michael@13 | 434 | +#if 0 |
michael@13 | 435 | fl.docDirs[fl.docDirCount++] = xstrdup("/usr/doc"); |
michael@13 | 436 | fl.docDirs[fl.docDirCount++] = xstrdup("/usr/man"); |
michael@13 | 437 | fl.docDirs[fl.docDirCount++] = xstrdup("/usr/info"); |
michael@13 | 438 | @@ -1981,6 +1982,7 @@ |
michael@13 | 439 | fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_docdir}", NULL); |
michael@13 | 440 | fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_mandir}", NULL); |
michael@13 | 441 | fl.docDirs[fl.docDirCount++] = rpmGetPath("%{_infodir}", NULL); |
michael@13 | 442 | +#endif |
michael@13 | 443 | |
michael@13 | 444 | fl.fileList = NULL; |
michael@13 | 445 | fl.fileListRecsAlloced = 0; |
michael@13 | 446 | |
michael@13 | 447 | +--------------------------------------------------------------------------- |
michael@13 | 448 | | Make sure the "Provides" headers are available for querying from the |
michael@13 | 449 | | .src.rpm files. |
michael@13 | 450 | +--------------------------------------------------------------------------- |
michael@13 | 451 | Index: build/files.c |
michael@13 | 452 | --- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 |
michael@13 | 453 | +++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 |
michael@13 | 454 | @@ -2183,6 +2185,12 @@ |
michael@13 | 455 | case RPMTAG_CHANGELOGTEXT: |
michael@13 | 456 | case RPMTAG_URL: |
michael@13 | 457 | case HEADER_I18NTABLE: |
michael@13 | 458 | +#ifdef OPENPKG |
michael@13 | 459 | + case RPMTAG_PROVIDENAME: |
michael@13 | 460 | + case RPMTAG_PROVIDEVERSION: |
michael@13 | 461 | + case RPMTAG_PROVIDEFLAGS: |
michael@13 | 462 | + case RPMTAG_CLASS: |
michael@13 | 463 | +#endif |
michael@13 | 464 | if (ptr) |
michael@13 | 465 | (void)headerAddEntry(spec->sourceHeader, tag, type, ptr, count); |
michael@13 | 466 | /*@switchbreak@*/ break; |
michael@13 | 467 | |
michael@13 | 468 | +--------------------------------------------------------------------------- |
michael@13 | 469 | | Add support for splitted source directories, i.e., source files |
michael@13 | 470 | | alternatively can be placed into the .spec directory and are picked |
michael@13 | 471 | | up there, too. |
michael@13 | 472 | +--------------------------------------------------------------------------- |
michael@13 | 473 | Index: build/files.c |
michael@13 | 474 | --- build/files.c 4 Mar 2003 17:04:13 -0000 1.1.1.20 |
michael@13 | 475 | +++ build/files.c 6 Feb 2004 15:37:57 -0000 1.3 |
michael@13 | 476 | @@ -2253,8 +2261,20 @@ |
michael@13 | 477 | } |
michael@13 | 478 | |
michael@13 | 479 | { const char * sfn; |
michael@13 | 480 | +#ifndef OPENPKG |
michael@13 | 481 | sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 482 | "%{_sourcedir}/", srcPtr->source, NULL); |
michael@13 | 483 | +#else |
michael@13 | 484 | + const char *sfn2; |
michael@13 | 485 | + sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL); |
michael@13 | 486 | + if (access(sfn2, F_OK) == 0) |
michael@13 | 487 | + sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 488 | + "%{_specdir}/", srcPtr->source, NULL); |
michael@13 | 489 | + else |
michael@13 | 490 | + sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 491 | + "%{_sourcedir}/", srcPtr->source, NULL); |
michael@13 | 492 | + sfn2 = _free(sfn2); |
michael@13 | 493 | +#endif |
michael@13 | 494 | appendLineStringBuf(sourceFiles, sfn); |
michael@13 | 495 | sfn = _free(sfn); |
michael@13 | 496 | } |
michael@13 | 497 | @@ -2263,8 +2283,20 @@ |
michael@13 | 498 | for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) { |
michael@13 | 499 | for (srcPtr = pkg->icon; srcPtr != NULL; srcPtr = srcPtr->next) { |
michael@13 | 500 | const char * sfn; |
michael@13 | 501 | +#ifndef OPENPKG |
michael@13 | 502 | sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 503 | "%{_sourcedir}/", srcPtr->source, NULL); |
michael@13 | 504 | +#else |
michael@13 | 505 | + const char *sfn2; |
michael@13 | 506 | + sfn2 = rpmGetPath("%{_specdir}/", srcPtr->source, NULL); |
michael@13 | 507 | + if (access(sfn2, F_OK) == 0) |
michael@13 | 508 | + sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 509 | + "%{_specdir}/", srcPtr->source, NULL); |
michael@13 | 510 | + else |
michael@13 | 511 | + sfn = rpmGetPath( ((srcPtr->flags & RPMBUILD_ISNO) ? "!" : ""), |
michael@13 | 512 | + "%{_sourcedir}/", srcPtr->source, NULL); |
michael@13 | 513 | + sfn2 = _free(sfn2); |
michael@13 | 514 | +#endif |
michael@13 | 515 | appendLineStringBuf(sourceFiles, sfn); |
michael@13 | 516 | sfn = _free(sfn); |
michael@13 | 517 | } |
michael@13 | 518 | |
michael@13 | 519 | +--------------------------------------------------------------------------- |
michael@13 | 520 | | Add support for splitted source directories, i.e., source files |
michael@13 | 521 | | alternatively can be placed into the .spec directory and are picked |
michael@13 | 522 | | up there, too. |
michael@13 | 523 | +--------------------------------------------------------------------------- |
michael@13 | 524 | Index: build/parsePreamble.c |
michael@13 | 525 | --- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13 |
michael@13 | 526 | +++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3 |
michael@13 | 527 | @@ -366,7 +368,15 @@ |
michael@13 | 528 | size_t nb, iconsize; |
michael@13 | 529 | |
michael@13 | 530 | /* XXX use rpmGenPath(rootdir, "%{_sourcedir}/", file) for icon path. */ |
michael@13 | 531 | +#ifndef OPENPKG |
michael@13 | 532 | fn = rpmGetPath("%{_sourcedir}/", file, NULL); |
michael@13 | 533 | +#else |
michael@13 | 534 | + fn = rpmGetPath("%{_specdir}/", file, NULL); |
michael@13 | 535 | + if (access(fn, F_OK) == -1) { |
michael@13 | 536 | + fn = _free(fn); |
michael@13 | 537 | + fn = rpmGetPath("%{_sourcedir}/", file, NULL); |
michael@13 | 538 | + } |
michael@13 | 539 | +#endif |
michael@13 | 540 | |
michael@13 | 541 | fd = Fopen(fn, "r.ufdio"); |
michael@13 | 542 | if (fd == NULL || Ferror(fd)) { |
michael@13 | 543 | |
michael@13 | 544 | +--------------------------------------------------------------------------- |
michael@13 | 545 | | In OpenPKG, the RPM package contains own local versions of the |
michael@13 | 546 | | "patch" and "tar" tools, so we cannot accept hard-coded names here. |
michael@13 | 547 | | Instead we expand a variable to allow us to direct RPM to our tools. |
michael@13 | 548 | | Additionally, pass option "-b" to patch(1) so it creates original |
michael@13 | 549 | | files not only if a non-standard (not ".orig") suffix is used. |
michael@13 | 550 | | Finally, add support for the GNU patch "-d" option for convenient |
michael@13 | 551 | | changing into a subdirectory. |
michael@13 | 552 | | Remove "unzip" support, because in OpenPKG there are less than |
michael@13 | 553 | | a dozend packages requiring unpacking of .zip files. For these |
michael@13 | 554 | | it is fully sufficient to explicitly require the "infozip" |
michael@13 | 555 | | package (containing "unzip") and leaving the less portable |
michael@13 | 556 | | "unzip" out of the bootstrap package. |
michael@13 | 557 | +--------------------------------------------------------------------------- |
michael@13 | 558 | Index: build/parsePrep.c |
michael@13 | 559 | --- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10 |
michael@13 | 560 | +++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4 |
michael@13 | 561 | @@ -66,7 +66,7 @@ |
michael@13 | 562 | */ |
michael@13 | 563 | /*@-boundswrite@*/ |
michael@13 | 564 | /*@observer@*/ static char *doPatch(Spec spec, int c, int strip, const char *db, |
michael@13 | 565 | - int reverse, int removeEmpties) |
michael@13 | 566 | + int reverse, int removeEmpties, const char *subdir) |
michael@13 | 567 | /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/ |
michael@13 | 568 | /*@modifies rpmGlobalMacroContext, fileSystem, internalState @*/ |
michael@13 | 569 | { |
michael@13 | 570 | @@ -76,6 +76,7 @@ |
michael@13 | 571 | struct Source *sp; |
michael@13 | 572 | rpmCompressedMagic compressed = COMPRESSED_NOT; |
michael@13 | 573 | int urltype; |
michael@13 | 574 | + const char *patcher; |
michael@13 | 575 | |
michael@13 | 576 | for (sp = spec->sources; sp != NULL; sp = sp->next) { |
michael@13 | 577 | if ((sp->flags & RPMBUILD_ISPATCH) && (sp->num == c)) { |
michael@13 | 578 | @@ -97,6 +106,10 @@ |
michael@13 | 579 | strcat(args, "--suffix "); |
michael@13 | 580 | strcat(args, db); |
michael@13 | 581 | } |
michael@13 | 582 | + if (subdir) { |
michael@13 | 583 | + strcat(args, "-d "); |
michael@13 | 584 | + strcat(args, subdir); |
michael@13 | 585 | + } |
michael@13 | 586 | if (reverse) { |
michael@13 | 587 | strcat(args, " -R"); |
michael@13 | 588 | } |
michael@13 | 589 | @@ -124,6 +137,10 @@ |
michael@13 | 590 | /*@notreached@*/ break; |
michael@13 | 591 | } |
michael@13 | 592 | |
michael@13 | 593 | + patcher = rpmGetPath("%{_patchbin}", NULL); |
michael@13 | 594 | + if (strcmp(patcher, "%{_patchbin}") == 0) |
michael@13 | 595 | + patcher = "patch"; |
michael@13 | 596 | + |
michael@13 | 597 | if (compressed) { |
michael@13 | 598 | const char *zipper = rpmGetPath( |
michael@13 | 599 | (compressed == COMPRESSED_BZIP2 ? "%{_bzip2bin}" : "%{_gzipbin}"), |
michael@13 | 600 | @@ -131,22 +148,23 @@ |
michael@13 | 601 | |
michael@13 | 602 | sprintf(buf, |
michael@13 | 603 | "echo \"Patch #%d (%s):\"\n" |
michael@13 | 604 | - "%s -d < %s | patch -p%d %s -s\n" |
michael@13 | 605 | + "%s -d <%s | %s -p%d %s -s -b\n" |
michael@13 | 606 | "STATUS=$?\n" |
michael@13 | 607 | "if [ $STATUS -ne 0 ]; then\n" |
michael@13 | 608 | " exit $STATUS\n" |
michael@13 | 609 | "fi", |
michael@13 | 610 | - c, /*@-unrecog@*/ (const char *) basename(fn), /*@=unrecog@*/ |
michael@13 | 611 | + c, /*@-unrecog@*/ basename(fn), /*@=unrecog@*/ |
michael@13 | 612 | zipper, |
michael@13 | 613 | - fn, strip, args); |
michael@13 | 614 | + fn, patcher, strip, args); |
michael@13 | 615 | zipper = _free(zipper); |
michael@13 | 616 | } else { |
michael@13 | 617 | sprintf(buf, |
michael@13 | 618 | "echo \"Patch #%d (%s):\"\n" |
michael@13 | 619 | - "patch -p%d %s -s < %s", c, (const char *) basename(fn), |
michael@13 | 620 | - strip, args, fn); |
michael@13 | 621 | + "%s -p%d %s -s -b <%s", c, basename(fn), |
michael@13 | 622 | + patcher, strip, args, fn); |
michael@13 | 623 | } |
michael@13 | 624 | |
michael@13 | 625 | + patcher = _free(patcher); |
michael@13 | 626 | urlfn = _free(urlfn); |
michael@13 | 627 | return buf; |
michael@13 | 628 | } |
michael@13 | 629 | @@ -171,6 +189,7 @@ |
michael@13 | 630 | struct Source *sp; |
michael@13 | 631 | rpmCompressedMagic compressed = COMPRESSED_NOT; |
michael@13 | 632 | int urltype; |
michael@13 | 633 | + const char *tar; |
michael@13 | 634 | |
michael@13 | 635 | for (sp = spec->sources; sp != NULL; sp = sp->next) { |
michael@13 | 636 | if ((sp->flags & RPMBUILD_ISSOURCE) && (sp->num == c)) { |
michael@13 | 637 | @@ -228,6 +255,10 @@ |
michael@13 | 638 | /*@notreached@*/ break; |
michael@13 | 639 | } |
michael@13 | 640 | |
michael@13 | 641 | + tar = rpmGetPath("%{_tarbin}", NULL); |
michael@13 | 642 | + if (strcmp(tar, "%{_tarbin}") == 0) |
michael@13 | 643 | + tar = "tar"; |
michael@13 | 644 | + |
michael@13 | 645 | if (compressed != COMPRESSED_NOT) { |
michael@13 | 646 | const char *zipper; |
michael@13 | 647 | int needtar = 1; |
michael@13 | 648 | @@ -240,6 +271,7 @@ |
michael@13 | 649 | case COMPRESSED_BZIP2: |
michael@13 | 650 | t = "%{_bzip2bin} -dc"; |
michael@13 | 651 | break; |
michael@13 | 652 | +#if 0 |
michael@13 | 653 | case COMPRESSED_ZIP: |
michael@13 | 654 | if (rpmIsVerbose() && !quietly) |
michael@13 | 655 | t = "%{_unzipbin}"; |
michael@13 | 656 | @@ -247,6 +279,7 @@ |
michael@13 | 657 | t = "%{_unzipbin} -qq"; |
michael@13 | 658 | needtar = 0; |
michael@13 | 659 | break; |
michael@13 | 660 | +#endif |
michael@13 | 661 | } |
michael@13 | 662 | zipper = rpmGetPath(t, NULL); |
michael@13 | 663 | buf[0] = '\0'; |
michael@13 | 664 | @@ -254,8 +287,13 @@ |
michael@13 | 665 | zipper = _free(zipper); |
michael@13 | 666 | *t++ = ' '; |
michael@13 | 667 | t = stpcpy(t, fn); |
michael@13 | 668 | - if (needtar) |
michael@13 | 669 | - t = stpcpy( stpcpy( stpcpy(t, " | tar "), taropts), " -"); |
michael@13 | 670 | + if (needtar) { |
michael@13 | 671 | + t = stpcpy(t, " | "); |
michael@13 | 672 | + t = stpcpy(t, tar); |
michael@13 | 673 | + t = stpcpy(t, " "); |
michael@13 | 674 | + t = stpcpy(t, taropts); |
michael@13 | 675 | + t = stpcpy(t, " -"); |
michael@13 | 676 | + } |
michael@13 | 677 | t = stpcpy(t, |
michael@13 | 678 | "\n" |
michael@13 | 679 | "STATUS=$?\n" |
michael@13 | 680 | @@ -264,11 +302,14 @@ |
michael@13 | 681 | "fi"); |
michael@13 | 682 | } else { |
michael@13 | 683 | buf[0] = '\0'; |
michael@13 | 684 | - t = stpcpy( stpcpy(buf, "tar "), taropts); |
michael@13 | 685 | - *t++ = ' '; |
michael@13 | 686 | + t = stpcpy(buf, tar); |
michael@13 | 687 | + t = stpcpy(t, " "); |
michael@13 | 688 | + t = stpcpy(t, taropts); |
michael@13 | 689 | + t = stpcpy(t, " "); |
michael@13 | 690 | t = stpcpy(t, fn); |
michael@13 | 691 | } |
michael@13 | 692 | |
michael@13 | 693 | + tar = _free(tar); |
michael@13 | 694 | urlfn = _free(urlfn); |
michael@13 | 695 | return buf; |
michael@13 | 696 | } |
michael@13 | 697 | @@ -443,7 +484,7 @@ |
michael@13 | 698 | /*@modifies spec->prep, rpmGlobalMacroContext, |
michael@13 | 699 | fileSystem, internalState @*/ |
michael@13 | 700 | { |
michael@13 | 701 | - char *opt_b; |
michael@13 | 702 | + char *opt_b, *opt_d; |
michael@13 | 703 | int opt_P, opt_p, opt_R, opt_E; |
michael@13 | 704 | char *s; |
michael@13 | 705 | char buf[BUFSIZ], *bp; |
michael@13 | 706 | @@ -453,6 +494,7 @@ |
michael@13 | 707 | memset(patch_nums, 0, sizeof(patch_nums)); |
michael@13 | 708 | opt_P = opt_p = opt_R = opt_E = 0; |
michael@13 | 709 | opt_b = NULL; |
michael@13 | 710 | + opt_d = NULL; |
michael@13 | 711 | patch_index = 0; |
michael@13 | 712 | |
michael@13 | 713 | if (! strchr(" \t\n", line[6])) { |
michael@13 | 714 | @@ -492,6 +534,15 @@ |
michael@13 | 715 | spec->lineNum, spec->line); |
michael@13 | 716 | return RPMERR_BADSPEC; |
michael@13 | 717 | } |
michael@13 | 718 | + } else if (!strcmp(s, "-d")) { |
michael@13 | 719 | + /* orig suffix */ |
michael@13 | 720 | + opt_d = strtok(NULL, " \t\n"); |
michael@13 | 721 | + if (! opt_d) { |
michael@13 | 722 | + rpmError(RPMERR_BADSPEC, |
michael@13 | 723 | + _("line %d: Need arg to %%patch -d: %s\n"), |
michael@13 | 724 | + spec->lineNum, spec->line); |
michael@13 | 725 | + return RPMERR_BADSPEC; |
michael@13 | 726 | + } |
michael@13 | 727 | } else if (!strncmp(s, "-p", sizeof("-p")-1)) { |
michael@13 | 728 | /* unfortunately, we must support -pX */ |
michael@13 | 729 | if (! strchr(" \t\n", s[2])) { |
michael@13 | 730 | @@ -530,14 +581,14 @@ |
michael@13 | 731 | /* All args processed */ |
michael@13 | 732 | |
michael@13 | 733 | if (! opt_P) { |
michael@13 | 734 | - s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E); |
michael@13 | 735 | + s = doPatch(spec, 0, opt_p, opt_b, opt_R, opt_E, opt_d); |
michael@13 | 736 | if (s == NULL) |
michael@13 | 737 | return RPMERR_BADSPEC; |
michael@13 | 738 | appendLineStringBuf(spec->prep, s); |
michael@13 | 739 | } |
michael@13 | 740 | |
michael@13 | 741 | for (x = 0; x < patch_index; x++) { |
michael@13 | 742 | - s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E); |
michael@13 | 743 | + s = doPatch(spec, patch_nums[x], opt_p, opt_b, opt_R, opt_E, opt_d); |
michael@13 | 744 | if (s == NULL) |
michael@13 | 745 | return RPMERR_BADSPEC; |
michael@13 | 746 | appendLineStringBuf(spec->prep, s); |
michael@13 | 747 | |
michael@13 | 748 | +--------------------------------------------------------------------------- |
michael@13 | 749 | | Add support for splitted source directories, i.e., source files |
michael@13 | 750 | | alternatively can be placed into the .spec directory and are picked |
michael@13 | 751 | | up there, too. |
michael@13 | 752 | +--------------------------------------------------------------------------- |
michael@13 | 753 | Index: build/parsePrep.c |
michael@13 | 754 | --- build/parsePrep.c 7 Aug 2002 14:20:45 -0000 1.1.1.10 |
michael@13 | 755 | +++ build/parsePrep.c 6 Jun 2005 15:53:04 -0000 1.4 |
michael@13 | 756 | @@ -87,7 +88,15 @@ |
michael@13 | 757 | return NULL; |
michael@13 | 758 | } |
michael@13 | 759 | |
michael@13 | 760 | +#ifndef OPENPKG |
michael@13 | 761 | urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); |
michael@13 | 762 | +#else |
michael@13 | 763 | + urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL); |
michael@13 | 764 | + if (access(urlfn, F_OK) == -1) { |
michael@13 | 765 | + urlfn = _free(urlfn); |
michael@13 | 766 | + urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); |
michael@13 | 767 | + } |
michael@13 | 768 | +#endif |
michael@13 | 769 | |
michael@13 | 770 | args[0] = '\0'; |
michael@13 | 771 | if (db) { |
michael@13 | 772 | @@ -182,7 +201,15 @@ |
michael@13 | 773 | return NULL; |
michael@13 | 774 | } |
michael@13 | 775 | |
michael@13 | 776 | +#ifndef OPENPKG |
michael@13 | 777 | urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); |
michael@13 | 778 | +#else |
michael@13 | 779 | + urlfn = rpmGetPath("%{_specdir}/", sp->source, NULL); |
michael@13 | 780 | + if (access(urlfn, F_OK) == -1) { |
michael@13 | 781 | + urlfn = _free(urlfn); |
michael@13 | 782 | + urlfn = rpmGetPath("%{_sourcedir}/", sp->source, NULL); |
michael@13 | 783 | + } |
michael@13 | 784 | +#endif |
michael@13 | 785 | |
michael@13 | 786 | /*@-internalglobs@*/ /* FIX: shrug */ |
michael@13 | 787 | taropts = ((rpmIsVerbose() && !quietly) ? "-xvvf" : "-xf"); |
michael@13 | 788 | |
michael@13 | 789 | +--------------------------------------------------------------------------- |
michael@13 | 790 | | Not everything on a system is RPM based (for instance OpenPKG is |
michael@13 | 791 | | just an add-on to the system), so do not assume we can just require |
michael@13 | 792 | | a package to provide "/bin/sh". |
michael@13 | 793 | +--------------------------------------------------------------------------- |
michael@13 | 794 | Index: build/parseScript.c |
michael@13 | 795 | --- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12 |
michael@13 | 796 | +++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3 |
michael@13 | 797 | @@ -261,6 +269,7 @@ |
michael@13 | 798 | stripTrailingBlanksStringBuf(sb); |
michael@13 | 799 | p = getStringBuf(sb); |
michael@13 | 800 | |
michael@13 | 801 | + if (progArgv[0] != NULL && strcmp(progArgv[0], "/bin/sh") != 0) |
michael@13 | 802 | (void) addReqProv(spec, pkg->header, (tagflags | RPMSENSE_INTERP), progArgv[0], NULL, 0); |
michael@13 | 803 | |
michael@13 | 804 | /* Trigger script insertion is always delayed in order to */ |
michael@13 | 805 | |
michael@13 | 806 | +--------------------------------------------------------------------------- |
michael@13 | 807 | | Add support for splitted source directories, i.e., source files |
michael@13 | 808 | | alternatively can be placed into the spec directory and are picked |
michael@13 | 809 | | up there, too. |
michael@13 | 810 | +--------------------------------------------------------------------------- |
michael@13 | 811 | Index: build/spec.c |
michael@13 | 812 | --- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21 |
michael@13 | 813 | +++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3 |
michael@13 | 814 | @@ -334,7 +337,15 @@ |
michael@13 | 815 | |
michael@13 | 816 | if (tag != RPMTAG_ICON) { |
michael@13 | 817 | /*@-nullpass@*/ /* LCL: varargs needs null annotate. */ |
michael@13 | 818 | +#ifndef OPENPKG |
michael@13 | 819 | const char *body = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 820 | +#else |
michael@13 | 821 | + const char *body = rpmGetPath("%{_specdir}/", p->source, NULL); |
michael@13 | 822 | + if (access(body, F_OK) == -1) { |
michael@13 | 823 | + body = _free(body); |
michael@13 | 824 | + body = rpmGetPath("%{_sourcedir}/", p->source, NULL); |
michael@13 | 825 | + } |
michael@13 | 826 | +#endif |
michael@13 | 827 | /*@=nullpass@*/ |
michael@13 | 828 | |
michael@13 | 829 | sprintf(buf, "%s%d", |
michael@13 | 830 | |
michael@13 | 831 | +--------------------------------------------------------------------------- |
michael@13 | 832 | | Do not build with warnings on, because we do no RPM development |
michael@13 | 833 | | (so warnings are useless here), they cause some confusion inside |
michael@13 | 834 | | Berkeley-DB and also slow down building. Instead, increase the |
michael@13 | 835 | | optimization level. Additionally, disable static linking of RPM |
michael@13 | 836 | | tools. Finally, use "shtool mkdir" as the "mkdir -p" fallback. |
michael@13 | 837 | +--------------------------------------------------------------------------- |
michael@13 | 838 | Index: configure.ac |
michael@13 | 839 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 840 | +++ configure.ac 13 Sep 2006 13:39:07 -0000 |
michael@13 | 841 | @@ -53,7 +53,7 @@ |
michael@13 | 842 | AS=${AS-as} |
michael@13 | 843 | AC_SUBST(AS) |
michael@13 | 844 | if test "$ac_cv_prog_gcc" = yes; then |
michael@13 | 845 | - CFLAGS="$CFLAGS -D_GNU_SOURCE -D_REENTRANT -Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wno-char-subscripts" |
michael@13 | 846 | + CFLAGS="$CFLAGS -O2 -D_GNU_SOURCE -D_REENTRANT" |
michael@13 | 847 | fi |
michael@13 | 848 | export CFLAGS |
michael@13 | 849 | |
michael@13 | 850 | @@ -142,6 +142,7 @@ |
michael@13 | 851 | # just link it dynamically |
michael@13 | 852 | LDFLAGS_STATIC="" |
michael@13 | 853 | fi |
michael@13 | 854 | +LDFLAGS_STATIC="" # OpenPKG wants dynamically linked RPM tools |
michael@13 | 855 | LDFLAGS_STATIC="${LDFLAGS} ${LDFLAGS_STATIC}" # libtool format |
michael@13 | 856 | AC_MSG_RESULT($LDFLAGS_STATIC) |
michael@13 | 857 | AC_SUBST(LDFLAGS_STATIC) |
michael@13 | 858 | @@ -201,7 +202,7 @@ |
michael@13 | 859 | |
michael@13 | 860 | if test X"$MKDIR_P" = X0 ; then |
michael@13 | 861 | AC_MSG_RESULT(no) |
michael@13 | 862 | - MKDIR_P="`echo ${prefix}/lib/rpm/mkinstalldirs`" |
michael@13 | 863 | + MKDIR_P="@l_prefix@/lib/openpkg/shtool mkdir -f -p -m 755" |
michael@13 | 864 | else |
michael@13 | 865 | AC_MSG_RESULT(yes) |
michael@13 | 866 | fi |
michael@13 | 867 | |
michael@13 | 868 | +--------------------------------------------------------------------------- |
michael@13 | 869 | | Disable the use of the internal zlib library, because |
michael@13 | 870 | | we build against an external one. |
michael@13 | 871 | +--------------------------------------------------------------------------- |
michael@13 | 872 | Index: configure.ac |
michael@13 | 873 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 874 | +++ configure.ac 13 Sep 2006 13:39:09 -0000 |
michael@13 | 875 | @@ -310,7 +311,7 @@ |
michael@13 | 876 | WITH_ZLIB_SUBDIR= |
michael@13 | 877 | WITH_ZLIB_INCLUDE= |
michael@13 | 878 | WITH_ZLIB_LIB= |
michael@13 | 879 | -if test -d zlib ; then |
michael@13 | 880 | +if false; then |
michael@13 | 881 | WITH_ZLIB_SUBDIR=zlib |
michael@13 | 882 | addlib \${top_builddir}/zlib |
michael@13 | 883 | WITH_ZLIB_INCLUDE="-I\${top_srcdir}/${WITH_ZLIB_SUBDIR}" |
michael@13 | 884 | |
michael@13 | 885 | +--------------------------------------------------------------------------- |
michael@13 | 886 | | Disable unnecessary INCPATH checks, because in OpenPKG the |
michael@13 | 887 | | externally used libraries are all explicitly given. And they just |
michael@13 | 888 | | would make RPM pick up things which we do not want to be picked up. |
michael@13 | 889 | +--------------------------------------------------------------------------- |
michael@13 | 890 | Index: configure.ac |
michael@13 | 891 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 892 | +++ configure.ac 13 Sep 2006 13:39:11 -0000 |
michael@13 | 893 | @@ -324,38 +325,38 @@ |
michael@13 | 894 | |
michael@13 | 895 | localdone= |
michael@13 | 896 | |
michael@13 | 897 | -dirs=$prefix |
michael@13 | 898 | -if test "$cross_compiling" != "yes"; then |
michael@13 | 899 | - dirs="$dirs /usr/local" |
michael@13 | 900 | -fi |
michael@13 | 901 | -for dir in $dirs |
michael@13 | 902 | -do |
michael@13 | 903 | - case $dir in |
michael@13 | 904 | - NONE|/usr) continue;; |
michael@13 | 905 | - /usr/local) |
michael@13 | 906 | - if test X$localdone != X ; then continue; fi |
michael@13 | 907 | - localdone="$dir" |
michael@13 | 908 | - ;; |
michael@13 | 909 | - esac |
michael@13 | 910 | - |
michael@13 | 911 | - AC_MSG_CHECKING(for $dir/lib in LIBS) |
michael@13 | 912 | - if test -d $dir/lib 2> /dev/null ; then |
michael@13 | 913 | - addlib $dir/lib |
michael@13 | 914 | - AC_MSG_RESULT(yes) |
michael@13 | 915 | - else |
michael@13 | 916 | - AC_MSG_RESULT(no) |
michael@13 | 917 | - fi |
michael@13 | 918 | - |
michael@13 | 919 | - AC_MSG_CHECKING(for $dir/include in INCPATH) |
michael@13 | 920 | - if test -d $dir/include 2>/dev/null ; then |
michael@13 | 921 | - if [ "$dir" != "/usr/local" ] ; then |
michael@13 | 922 | - INCPATH="$INCPATH -I$dir/include" |
michael@13 | 923 | - fi |
michael@13 | 924 | - AC_MSG_RESULT(yes) |
michael@13 | 925 | - else |
michael@13 | 926 | - AC_MSG_RESULT(no) |
michael@13 | 927 | - fi |
michael@13 | 928 | -done |
michael@13 | 929 | +dnl dirs=$prefix |
michael@13 | 930 | +dnl if test "$cross_compiling" != "yes"; then |
michael@13 | 931 | +dnl dirs="$dirs /usr/local" |
michael@13 | 932 | +dnl fi |
michael@13 | 933 | +dnl for dir in $dirs |
michael@13 | 934 | +dnl do |
michael@13 | 935 | +dnl case $dir in |
michael@13 | 936 | +dnl NONE|/usr) continue;; |
michael@13 | 937 | +dnl /usr/local) |
michael@13 | 938 | +dnl if test X$localdone != X ; then continue; fi |
michael@13 | 939 | +dnl localdone="$dir" |
michael@13 | 940 | +dnl ;; |
michael@13 | 941 | +dnl esac |
michael@13 | 942 | +dnl |
michael@13 | 943 | +dnl AC_MSG_CHECKING(for $dir/lib in LIBS) |
michael@13 | 944 | +dnl if test -d $dir/lib 2> /dev/null ; then |
michael@13 | 945 | +dnl addlib $dir/lib |
michael@13 | 946 | +dnl AC_MSG_RESULT(yes) |
michael@13 | 947 | +dnl else |
michael@13 | 948 | +dnl AC_MSG_RESULT(no) |
michael@13 | 949 | +dnl fi |
michael@13 | 950 | +dnl |
michael@13 | 951 | +dnl AC_MSG_CHECKING(for $dir/include in INCPATH) |
michael@13 | 952 | +dnl if test -d $dir/include 2>/dev/null ; then |
michael@13 | 953 | +dnl if test "$dir" != "/usr/local"; then |
michael@13 | 954 | +dnl INCPATH="$INCPATH -I$dir/include" |
michael@13 | 955 | +dnl fi |
michael@13 | 956 | +dnl AC_MSG_RESULT(yes) |
michael@13 | 957 | +dnl else |
michael@13 | 958 | +dnl AC_MSG_RESULT(no) |
michael@13 | 959 | +dnl fi |
michael@13 | 960 | +dnl done |
michael@13 | 961 | |
michael@13 | 962 | AC_MSG_CHECKING(for /usr/ucblib in LIBS) |
michael@13 | 963 | if test -d /usr/ucblib ; then |
michael@13 | 964 | |
michael@13 | 965 | +--------------------------------------------------------------------------- |
michael@13 | 966 | | Adjust paths for OpenPKG filesystem layout. |
michael@13 | 967 | +--------------------------------------------------------------------------- |
michael@13 | 968 | Index: configure.ac |
michael@13 | 969 | --- configure.ac 2 Jul 2003 19:20:52 -0000 1.1.1.4 |
michael@13 | 970 | +++ configure.ac 13 Sep 2006 13:39:12 -0000 |
michael@13 | 971 | @@ -1200,12 +1202,12 @@ |
michael@13 | 972 | AC_SUBST(LOCALEDIR) |
michael@13 | 973 | LIBDIR="`echo $libdir | sed 's-/lib$-/%{_lib}-'`" |
michael@13 | 974 | AC_SUBST(LIBDIR) |
michael@13 | 975 | -RPMCONFIGDIR="`echo ${usrprefix}/lib/rpm`" |
michael@13 | 976 | +RPMCONFIGDIR="@l_prefix@/lib/openpkg" |
michael@13 | 977 | AC_DEFINE_UNQUOTED(RPMCONFIGDIR, "$RPMCONFIGDIR", |
michael@13 | 978 | [Full path to rpm global configuration directory (usually /usr/lib/rpm)]) |
michael@13 | 979 | AC_SUBST(RPMCONFIGDIR) |
michael@13 | 980 | |
michael@13 | 981 | -SYSCONFIGDIR="`echo /etc/rpm`" |
michael@13 | 982 | +SYSCONFIGDIR="@l_prefix@/etc/openpkg" |
michael@13 | 983 | AC_DEFINE_UNQUOTED(SYSCONFIGDIR, "$SYSCONFIGDIR", |
michael@13 | 984 | [Full path to rpm system configuration directory (usually /etc/rpm)]) |
michael@13 | 985 | AC_SUBST(SYSCONFIGDIR) |
michael@13 | 986 | @@ -1215,17 +1217,17 @@ |
michael@13 | 987 | [Colon separated paths of macro files to read.]) |
michael@13 | 988 | AC_SUBST(MACROFILES) |
michael@13 | 989 | |
michael@13 | 990 | -LIBRPMRC_FILENAME="${RPMCONFIGDIR}/rpmrc" |
michael@13 | 991 | +LIBRPMRC_FILENAME="${SYSCONFIGDIR}/rpmrc" |
michael@13 | 992 | AC_DEFINE_UNQUOTED(LIBRPMRC_FILENAME, "$LIBRPMRC_FILENAME", |
michael@13 | 993 | [Full path to rpmrc configuration file (usually /usr/lib/rpm/rpmrc)]) |
michael@13 | 994 | AC_SUBST(LIBRPMRC_FILENAME) |
michael@13 | 995 | |
michael@13 | 996 | -VENDORRPMRC_FILENAME="${RPMCONFIGDIR}/${RPMCANONVENDOR}/rpmrc" |
michael@13 | 997 | +VENDORRPMRC_FILENAME="${SYSCONFIGDIR}/${RPMCANONVENDOR}/rpmrc" |
michael@13 | 998 | AC_DEFINE_UNQUOTED(VENDORRPMRC_FILENAME, "$VENDORRPMRC_FILENAME", |
michael@13 | 999 | [Full path to vendor rpmrc configuration file (usually /usr/lib/rpm/vendor/rpmrc)]) |
michael@13 | 1000 | AC_SUBST(VENDORRPMRC_FILENAME) |
michael@13 | 1001 | |
michael@13 | 1002 | -LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt-${VERSION}" |
michael@13 | 1003 | +LIBRPMALIAS_FILENAME="${RPMCONFIGDIR}/rpmpopt" |
michael@13 | 1004 | AC_DEFINE_UNQUOTED(LIBRPMALIAS_FILENAME, "$LIBRPMALIAS_FILENAME", |
michael@13 | 1005 | [Full path to rpmpopt configuration file (usually /usr/lib/rpm/rpmpopt)]) |
michael@13 | 1006 | AC_SUBST(LIBRPMALIAS_FILENAME) |
michael@13 | 1007 | |
michael@13 | 1008 | +--------------------------------------------------------------------------- |
michael@13 | 1009 | | If running as "susr", do not unpack source RPM packages with "susr" |
michael@13 | 1010 | | file ownerships as the OpenPKG Set-UID wrapper switches from "musr" |
michael@13 | 1011 | | to "susr" on "openpkg rpm -Uvh *.src.rpm". As a result the installed |
michael@13 | 1012 | | files could be never removed again by "musr". It is more consistent |
michael@13 | 1013 | | to always unpack as "musr" if possible. |
michael@13 | 1014 | +--------------------------------------------------------------------------- |
michael@13 | 1015 | Index: lib/psm.c |
michael@13 | 1016 | --- lib/psm.c 5 Jun 2003 12:43:18 -0000 1.1.1.6 |
michael@13 | 1017 | +++ lib/psm.c 13 Sep 2006 13:39:15 -0000 |
michael@13 | 1018 | @@ -314,6 +314,20 @@ |
michael@13 | 1019 | |
michael@13 | 1020 | fi->uid = getuid(); |
michael@13 | 1021 | fi->gid = getgid(); |
michael@13 | 1022 | +#ifdef OPENPKG |
michael@13 | 1023 | + if (fi->uid == 0) { |
michael@13 | 1024 | + char *muid_str; |
michael@13 | 1025 | + char *mgid_str; |
michael@13 | 1026 | + uid_t *muid; |
michael@13 | 1027 | + gid_t *mgid; |
michael@13 | 1028 | + if ((muid_str = rpmExpand("%{l_muid}", NULL)) != NULL) |
michael@13 | 1029 | + if ((muid = (uid_t)strtol(muid_str, (char **)NULL, 10)) > 0) |
michael@13 | 1030 | + fi->uid = muid; |
michael@13 | 1031 | + if ((mgid_str = rpmExpand("%{l_mgid}", NULL)) != NULL) |
michael@13 | 1032 | + if ((mgid = (gid_t)strtol(mgid_str, (char **)NULL, 10)) > 0) |
michael@13 | 1033 | + fi->gid = mgid; |
michael@13 | 1034 | + } |
michael@13 | 1035 | +#endif |
michael@13 | 1036 | fi->astriplen = 0; |
michael@13 | 1037 | fi->striplen = 0; |
michael@13 | 1038 | |
michael@13 | 1039 | @@ -352,6 +366,9 @@ |
michael@13 | 1040 | rpmrc = RPMRC_FAIL; |
michael@13 | 1041 | goto exit; |
michael@13 | 1042 | } |
michael@13 | 1043 | +#ifdef OPENPKG |
michael@13 | 1044 | + chown(_sourcedir, fi->uid, fi->gid); |
michael@13 | 1045 | +#endif |
michael@13 | 1046 | |
michael@13 | 1047 | _specdir = rpmGenPath(rpmtsRootDir(ts), "%{_specdir}", ""); |
michael@13 | 1048 | rpmrc = rpmMkdirPath(_specdir, "specdir"); |
michael@13 | 1049 | @@ -359,6 +376,9 @@ |
michael@13 | 1050 | rpmrc = RPMRC_FAIL; |
michael@13 | 1051 | goto exit; |
michael@13 | 1052 | } |
michael@13 | 1053 | +#ifdef OPENPKG |
michael@13 | 1054 | + chown(_specdir, fi->uid, fi->gid); |
michael@13 | 1055 | +#endif |
michael@13 | 1056 | |
michael@13 | 1057 | /* Build dnl/dil with {_sourcedir, _specdir} as values. */ |
michael@13 | 1058 | if (i < fi->fc) { |
michael@13 | 1059 | |
michael@13 | 1060 | +--------------------------------------------------------------------------- |
michael@13 | 1061 | | RPM has two platform id canonicalizations: hard-coded ones in |
michael@13 | 1062 | | the "rpm" program and defined ones in the rpmrc files. The |
michael@13 | 1063 | | hard-coded ones make the defined ones inconsistent. Additionally, |
michael@13 | 1064 | | in OpenPKG we know exactly what we do. So, disable the hard-coded |
michael@13 | 1065 | | canonicalizations and use only the defined ones. The only thing we |
michael@13 | 1066 | | do inside RPM is to reduce the platform version to major and minor |
michael@13 | 1067 | | version numbers in order to simplify the "rpmrc" files. Then, RPM |
michael@13 | 1068 | | allows to read the platform from an external program. Adjust the |
michael@13 | 1069 | | hard-coded path to this program and allow it to be overridden with |
michael@13 | 1070 | | the macro %{__platform}. Finally, change the default definition of |
michael@13 | 1071 | | %{_host} to not contain the vendor stuff to more conform to what |
michael@13 | 1072 | | %{_target} usually is defined to and what we are using throughout |
michael@13 | 1073 | | OpenPKG, too. |
michael@13 | 1074 | +--------------------------------------------------------------------------- |
michael@13 | 1075 | Index: lib/rpmrc.c |
michael@13 | 1076 | --- lib/rpmrc.c 4 Jun 2003 18:18:45 -0000 1.1.1.25 |
michael@13 | 1077 | +++ lib/rpmrc.c 6 Jun 2005 15:53:06 -0000 1.3 |
michael@13 | 1078 | @@ -27,7 +27,7 @@ |
michael@13 | 1079 | const char * macrofiles = MACROFILES; |
michael@13 | 1080 | |
michael@13 | 1081 | /*@observer@*/ /*@unchecked@*/ |
michael@13 | 1082 | -static const char * platform = "/etc/rpm/platform"; |
michael@13 | 1083 | +static const char * platform = "@l_prefix@/etc/openpkg/platform"; |
michael@13 | 1084 | /*@only@*/ /*@relnull@*/ /*@unchecked@*/ |
michael@13 | 1085 | static const char ** platpat = NULL; |
michael@13 | 1086 | /*@unchecked@*/ |
michael@13 | 1087 | @@ -861,7 +861,11 @@ |
michael@13 | 1088 | |
michael@13 | 1089 | platpat = xrealloc(platpat, (nplatpat + 2) * sizeof(*platpat)); |
michael@13 | 1090 | /*@-onlyunqglobaltrans@*/ |
michael@13 | 1091 | +#ifdef OPENPKG |
michael@13 | 1092 | + platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_os}", NULL); |
michael@13 | 1093 | +#else |
michael@13 | 1094 | platpat[nplatpat] = rpmExpand("%{_host_cpu}-%{_host_vendor}-%{_host_os}", (gnu && *gnu ? "-" : NULL), gnu, NULL); |
michael@13 | 1095 | +#endif |
michael@13 | 1096 | nplatpat++; |
michael@13 | 1097 | platpat[nplatpat] = NULL; |
michael@13 | 1098 | /*@=onlyunqglobaltrans@*/ |
michael@13 | 1099 | @@ -1055,14 +1059,35 @@ |
michael@13 | 1100 | /*@globals rpmGlobalMacroContext, fileSystem, internalState @*/ |
michael@13 | 1101 | /*@modifies *arch, *os, rpmGlobalMacroContext, fileSystem, internalState @*/ |
michael@13 | 1102 | { |
michael@13 | 1103 | +#ifdef OPENPKG |
michael@13 | 1104 | + static struct utsname un_real; |
michael@13 | 1105 | + /* utsname fields on some platforms (like HP-UX) are very small |
michael@13 | 1106 | + (about 8 characters). This is too small for OpenPKG, so cheat! */ |
michael@13 | 1107 | + static struct { |
michael@13 | 1108 | + char sysname[32]; |
michael@13 | 1109 | + char nodename[32]; |
michael@13 | 1110 | + char release[32]; |
michael@13 | 1111 | + char version[32]; |
michael@13 | 1112 | + char machine[32]; |
michael@13 | 1113 | + } un; |
michael@13 | 1114 | +#else |
michael@13 | 1115 | static struct utsname un; |
michael@13 | 1116 | +#endif |
michael@13 | 1117 | static int gotDefaults = 0; |
michael@13 | 1118 | char * chptr; |
michael@13 | 1119 | canonEntry canon; |
michael@13 | 1120 | int rc; |
michael@13 | 1121 | |
michael@13 | 1122 | while (!gotDefaults) { |
michael@13 | 1123 | +#ifdef OPENPKG |
michael@13 | 1124 | + const char *cp; |
michael@13 | 1125 | + cp = rpmExpand("%{?__platform}", NULL); |
michael@13 | 1126 | + if (cp == NULL || cp[0] == '\0') |
michael@13 | 1127 | + cp = platform; |
michael@13 | 1128 | + if (!rpmPlatform(cp)) { |
michael@13 | 1129 | +#else |
michael@13 | 1130 | if (!rpmPlatform(platform)) { |
michael@13 | 1131 | +#endif |
michael@13 | 1132 | const char * s; |
michael@13 | 1133 | s = rpmExpand("%{_host_cpu}", NULL); |
michael@13 | 1134 | if (s) { |
michael@13 | 1135 | @@ -1079,9 +1104,44 @@ |
michael@13 | 1136 | gotDefaults = 1; |
michael@13 | 1137 | break; |
michael@13 | 1138 | } |
michael@13 | 1139 | +#ifdef OPENPKG |
michael@13 | 1140 | + rc = uname(&un_real); |
michael@13 | 1141 | + strncpy(un.sysname, un_real.sysname, sizeof(un.sysname)); un.sysname [sizeof(un.sysname)-1] = '\0'; |
michael@13 | 1142 | + strncpy(un.nodename, un_real.nodename, sizeof(un.nodename)); un.nodename[sizeof(un.nodename)-1] = '\0'; |
michael@13 | 1143 | + strncpy(un.release, un_real.release, sizeof(un.release)); un.release [sizeof(un.release)-1] = '\0'; |
michael@13 | 1144 | + strncpy(un.version, un_real.version, sizeof(un.version)); un.version [sizeof(un.version)-1] = '\0'; |
michael@13 | 1145 | + strncpy(un.machine, un_real.machine, sizeof(un.machine)); un.machine [sizeof(un.machine)-1] = '\0'; |
michael@13 | 1146 | +#else |
michael@13 | 1147 | rc = uname(&un); |
michael@13 | 1148 | +#endif |
michael@13 | 1149 | if (rc < 0) return; |
michael@13 | 1150 | |
michael@13 | 1151 | +#ifdef OPENPKG |
michael@13 | 1152 | + { |
michael@13 | 1153 | + char *cp; |
michael@13 | 1154 | + char *cpR; |
michael@13 | 1155 | + int n; |
michael@13 | 1156 | + cpR = un.release; |
michael@13 | 1157 | + if ((n = strcspn(cpR, "0123456789")) > 0) |
michael@13 | 1158 | + cpR += n; |
michael@13 | 1159 | + if ((n = strspn(cpR, "0123456789.")) > 0) { |
michael@13 | 1160 | + /* terminate after "N.N.N...." prefix */ |
michael@13 | 1161 | + cpR[n] = '\0'; |
michael@13 | 1162 | + /* shorten to "N.N" if longer */ |
michael@13 | 1163 | + if ((cp = strchr(cpR, '.')) != NULL) { |
michael@13 | 1164 | + if ((cp = strchr(cp+1, '.')) != NULL) |
michael@13 | 1165 | + *cp = '\0'; |
michael@13 | 1166 | + } |
michael@13 | 1167 | + strcat(un.sysname, cpR); |
michael@13 | 1168 | + } |
michael@13 | 1169 | + /* fix up machine hardware name containing white-space as it |
michael@13 | 1170 | + * happens to be on Power Macs running MacOS X |
michael@13 | 1171 | + */ |
michael@13 | 1172 | + if (!strncmp(un.machine, "Power Macintosh", 15)) { |
michael@13 | 1173 | + sprintf(un.machine, "powerpc"); |
michael@13 | 1174 | + } |
michael@13 | 1175 | + } |
michael@13 | 1176 | +#else /* OPENPKG */ |
michael@13 | 1177 | #if !defined(__linux__) |
michael@13 | 1178 | #ifdef SNI |
michael@13 | 1179 | /* USUALLY un.sysname on sinix does start with the word "SINIX" |
michael@13 | 1180 | @@ -1298,6 +1358,7 @@ |
michael@13 | 1181 | } |
michael@13 | 1182 | } |
michael@13 | 1183 | # endif |
michael@13 | 1184 | +#endif /* OPENPKG */ |
michael@13 | 1185 | |
michael@13 | 1186 | /* the uname() result goes through the arch_canon table */ |
michael@13 | 1187 | canon = lookupInCanonTable(un.machine, |
michael@13 | 1188 | |
michael@13 | 1189 | +--------------------------------------------------------------------------- |
michael@13 | 1190 | | In verbose file listing output, give the owner and group fields more |
michael@13 | 1191 | | width and at the same time reduce the nlink and size fields to more |
michael@13 | 1192 | | typical sizes within OpenPKG. |
michael@13 | 1193 | +--------------------------------------------------------------------------- |
michael@13 | 1194 | Index: lib/query.c |
michael@13 | 1195 | --- lib/query.c 4 Jun 2003 18:24:14 -0000 1.1.1.13 |
michael@13 | 1196 | +++ lib/query.c 22 Jan 2004 21:42:24 -0000 1.2 |
michael@13 | 1197 | @@ -33,7 +33,11 @@ |
michael@13 | 1198 | /*@modifies *te @*/ |
michael@13 | 1199 | { |
michael@13 | 1200 | char sizefield[15]; |
michael@13 | 1201 | +#ifdef OPENPKG |
michael@13 | 1202 | + char ownerfield[13+1], groupfield[13+1]; |
michael@13 | 1203 | +#else |
michael@13 | 1204 | char ownerfield[8+1], groupfield[8+1]; |
michael@13 | 1205 | +#endif |
michael@13 | 1206 | char timefield[100]; |
michael@13 | 1207 | time_t when = mtime; /* important if sizeof(int_32) ! sizeof(time_t) */ |
michael@13 | 1208 | struct tm * tm; |
michael@13 | 1209 | @@ -58,7 +62,11 @@ |
michael@13 | 1210 | groupfield[sizeof(groupfield)-1] = '\0'; |
michael@13 | 1211 | |
michael@13 | 1212 | /* this is normally right */ |
michael@13 | 1213 | +#ifdef OPENPKG |
michael@13 | 1214 | + sprintf(sizefield, "%8u", size); |
michael@13 | 1215 | +#else |
michael@13 | 1216 | sprintf(sizefield, "%12u", size); |
michael@13 | 1217 | +#endif |
michael@13 | 1218 | |
michael@13 | 1219 | /* this knows too much about dev_t */ |
michael@13 | 1220 | |
michael@13 | 1221 | @@ -98,7 +106,11 @@ |
michael@13 | 1222 | (void)strftime(timefield, sizeof(timefield) - 1, fmt, tm); |
michael@13 | 1223 | } |
michael@13 | 1224 | |
michael@13 | 1225 | +#ifdef OPENPKG |
michael@13 | 1226 | + sprintf(te, "%s %d %-13s %-13s %8s %s %s", perms, |
michael@13 | 1227 | +#else |
michael@13 | 1228 | sprintf(te, "%s %4d %-8s%-8s %10s %s %s", perms, |
michael@13 | 1229 | +#endif |
michael@13 | 1230 | (int)nlink, ownerfield, groupfield, sizefield, timefield, namefield); |
michael@13 | 1231 | perms = _free(perms); |
michael@13 | 1232 | } |
michael@13 | 1233 | |
michael@13 | 1234 | +--------------------------------------------------------------------------- |
michael@13 | 1235 | | Enable the exlusion of "%doc" files by default. |
michael@13 | 1236 | | Disable "check-files" feature, because it is useless in OpenPKG |
michael@13 | 1237 | | (we consistently use BuildRoot and our %files lists are fully |
michael@13 | 1238 | | autogenerated) and just makes problems on bootstrapping. |
michael@13 | 1239 | | Provide the possibility to optionally re-enable the old |
michael@13 | 1240 | | RPM 4.0.2 way of RPM database operation by defining the |
michael@13 | 1241 | | macro %{_rpmdb_private}. This is important for easily fixing |
michael@13 | 1242 | | corrupted/hanging RPM database (on upgrades, etc) or if you |
michael@13 | 1243 | | permanently have to operate RPM on a NFS filesystem where no |
michael@13 | 1244 | | rpc.lockd(8) support is available. |
michael@13 | 1245 | | Additionally, do not override the "_host_xx" macros because their |
michael@13 | 1246 | | value (derived from <prefix>/etc/openpkg/platform) is already |
michael@13 | 1247 | | correctly set internally. |
michael@13 | 1248 | | Additionally, provide default macros for the %track and %test |
michael@13 | 1249 | | section expansion. |
michael@13 | 1250 | | Finally, provide default for introduced variable |
michael@13 | 1251 | | %{_force_oldpackage}, which, if non-zero, automatically enforces |
michael@13 | 1252 | | --oldpackage on all upgrade operations (this is useful on |
michael@13 | 1253 | | mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE). |
michael@13 | 1254 | +--------------------------------------------------------------------------- |
michael@13 | 1255 | Index: macros.in |
michael@13 | 1256 | --- macros.in 2 Jul 2003 19:20:52 -0000 1.1.1.14 |
michael@13 | 1257 | +++ macros.in 30 Jan 2004 17:06:27 -0000 1.3 |
michael@13 | 1258 | @@ -1,7 +1,7 @@ |
michael@13 | 1259 | #/*! \page config_macros Default configuration: @RPMCONFIGDIR@/macros |
michael@13 | 1260 | # \verbatim |
michael@13 | 1261 | # |
michael@13 | 1262 | -# $Id: macros.in,v 1.138.2.1 2003/07/02 19:14:06 jbj Exp $ |
michael@13 | 1263 | +# $Id: macros.in,v 1.2 2004/01/22 21:42:09 rse Exp $ |
michael@13 | 1264 | # |
michael@13 | 1265 | # This is a global RPM configuration file. All changes made here will |
michael@13 | 1266 | # be lost when the rpm package is upgraded. Any per-system configuration |
michael@13 | 1267 | @@ -206,7 +206,7 @@ |
michael@13 | 1268 | |
michael@13 | 1269 | # Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files |
michael@13 | 1270 | # marked as %doc should be installed. |
michael@13 | 1271 | -#%_excludedocs |
michael@13 | 1272 | +%_excludedocs 1 |
michael@13 | 1273 | |
michael@13 | 1274 | # The port and machine name of a FTP proxy host running TIS firewall. |
michael@13 | 1275 | # |
michael@13 | 1276 | @@ -305,7 +305,7 @@ |
michael@13 | 1277 | # Returns list of unpackaged files, i.e. files in $RPM_BUILD_ROOT not packaged. |
michael@13 | 1278 | # |
michael@13 | 1279 | # Note: Disable (by commenting out) for legacy compatibility. |
michael@13 | 1280 | -%__check_files @RPMCONFIGDIR@/check-files %{buildroot} |
michael@13 | 1281 | +#%__check_files @RPMCONFIGDIR@/check-files %{buildroot} |
michael@13 | 1282 | |
michael@13 | 1283 | # |
michael@13 | 1284 | # Should unpackaged files in a build root terminate a build? |
michael@13 | 1285 | @@ -449,7 +449,7 @@ |
michael@13 | 1286 | |
michael@13 | 1287 | # Use a CDB database model for concurrent access. |
michael@13 | 1288 | # XXX Add "private" here for legacy interoperation transiting to glibc+nptl. |
michael@13 | 1289 | -%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb |
michael@13 | 1290 | +%__dbi_cdb create cdb mpool mp_mmapsize=16Mb mp_size=1Mb %{?_rpmdb_private:private} |
michael@13 | 1291 | |
michael@13 | 1292 | %__dbi_other %{?_tmppath:tmpdir=%{_tmppath}} %{?__dbi_cdb} |
michael@13 | 1293 | |
michael@13 | 1294 | @@ -618,6 +618,10 @@ |
michael@13 | 1295 | # If non-zero, all erasures will be automagically repackaged. |
michael@13 | 1296 | %_repackage_all_erasures 0 |
michael@13 | 1297 | |
michael@13 | 1298 | +# If non-zero, automatically enforce --oldpackage for all upgrade operations |
michael@13 | 1299 | +# (useful on mass-upgrades from OpenPKG-CURRENT to OpenPKG-RELEASE) |
michael@13 | 1300 | +%_force_oldpackage 0 |
michael@13 | 1301 | + |
michael@13 | 1302 | # Verify digest/signature flags for various rpm modes: |
michael@13 | 1303 | # 1 --nohdrchk if set, don't check rpmdb headers |
michael@13 | 1304 | # |
michael@13 | 1305 | @@ -870,6 +874,26 @@ |
michael@13 | 1306 | #%{__spec_clean_post}\ |
michael@13 | 1307 | #%{nil} |
michael@13 | 1308 | |
michael@13 | 1309 | +%__spec_track_shell %{___build_shell} |
michael@13 | 1310 | +%__spec_track_args %{___build_args} |
michael@13 | 1311 | +%__spec_track_cmd %{___build_cmd} |
michael@13 | 1312 | +%__spec_track_pre %{___build_pre} |
michael@13 | 1313 | +%__spec_track_body %{___build_body} |
michael@13 | 1314 | +%__spec_track_post %{___build_post} |
michael@13 | 1315 | +%__spec_track_template #!%{__spec_track_shell}\ |
michael@13 | 1316 | +%{__spec_track_pre}\ |
michael@13 | 1317 | +%{nil} |
michael@13 | 1318 | + |
michael@13 | 1319 | +%__spec_test_shell %{___build_shell} |
michael@13 | 1320 | +%__spec_test_args %{___build_args} |
michael@13 | 1321 | +%__spec_test_cmd %{___build_cmd} |
michael@13 | 1322 | +%__spec_test_pre %{___build_pre} |
michael@13 | 1323 | +%__spec_test_body %{___build_body} |
michael@13 | 1324 | +%__spec_test_post %{___build_post} |
michael@13 | 1325 | +%__spec_test_template #!%{__spec_test_shell}\ |
michael@13 | 1326 | +%{__spec_test_pre}\ |
michael@13 | 1327 | +%{nil} |
michael@13 | 1328 | + |
michael@13 | 1329 | %__spec_rmbuild_shell %{___build_shell} |
michael@13 | 1330 | %__spec_rmbuild_args %{___build_args} |
michael@13 | 1331 | %__spec_rmbuild_cmd %{___build_cmd} |
michael@13 | 1332 | @@ -929,11 +953,11 @@ |
michael@13 | 1333 | %_build_cpu %{_host_cpu} |
michael@13 | 1334 | %_build_vendor %{_host_vendor} |
michael@13 | 1335 | %_build_os %{_host_os} |
michael@13 | 1336 | -%_host @host@ |
michael@13 | 1337 | -%_host_alias @host_alias@%{nil} |
michael@13 | 1338 | -%_host_cpu @host_cpu@ |
michael@13 | 1339 | -%_host_vendor @host_vendor@ |
michael@13 | 1340 | -%_host_os @host_os@ |
michael@13 | 1341 | +#%_host @host@ |
michael@13 | 1342 | +#%_host_alias @host_alias@%{nil} |
michael@13 | 1343 | +#%_host_cpu @host_cpu@ |
michael@13 | 1344 | +#%_host_vendor @host_vendor@ |
michael@13 | 1345 | +#%_host_os @host_os@ |
michael@13 | 1346 | %_target %{_host} |
michael@13 | 1347 | %_target_alias %{_host_alias} |
michael@13 | 1348 | %_target_cpu %{_host_cpu} |
michael@13 | 1349 | |
michael@13 | 1350 | +--------------------------------------------------------------------------- |
michael@13 | 1351 | | Adjust path for OpenPKG filesystem layout. |
michael@13 | 1352 | +--------------------------------------------------------------------------- |
michael@13 | 1353 | Index: scripts/Makefile.am |
michael@13 | 1354 | --- scripts/Makefile.am 20 Jun 2003 19:04:49 -0000 1.1.1.11 |
michael@13 | 1355 | +++ scripts/Makefile.am 22 Jan 2004 21:42:34 -0000 1.2 |
michael@13 | 1356 | @@ -22,7 +22,7 @@ |
michael@13 | 1357 | |
michael@13 | 1358 | all: |
michael@13 | 1359 | |
michael@13 | 1360 | -configdir = ${prefix}/lib/rpm |
michael@13 | 1361 | +configdir = ${prefix}/lib/openpkg |
michael@13 | 1362 | config_SCRIPTS = \ |
michael@13 | 1363 | brp-compress brp-python-bytecompile brp-redhat \ |
michael@13 | 1364 | brp-strip brp-strip-comment-note \ |
michael@13 | 1365 | |
michael@13 | 1366 | +--------------------------------------------------------------------------- |
michael@13 | 1367 | | Adjust path for OpenPKG filesystem layout. |
michael@13 | 1368 | +--------------------------------------------------------------------------- |
michael@13 | 1369 | Index: scripts/Makefile.in |
michael@13 | 1370 | --- scripts/Makefile.in 16 Jul 2003 17:05:49 -0000 1.1.1.14 |
michael@13 | 1371 | +++ scripts/Makefile.in 22 Jan 2004 21:42:34 -0000 1.2 |
michael@13 | 1372 | @@ -273,7 +273,7 @@ |
michael@13 | 1373 | |
michael@13 | 1374 | installprefix = $(DESTDIR) |
michael@13 | 1375 | |
michael@13 | 1376 | -configdir = ${prefix}/lib/rpm |
michael@13 | 1377 | +configdir = ${prefix}/lib/openpkg |
michael@13 | 1378 | config_SCRIPTS = \ |
michael@13 | 1379 | brp-compress brp-python-bytecompile brp-redhat \ |
michael@13 | 1380 | brp-strip brp-strip-comment-note \ |
michael@13 | 1381 | |
michael@13 | 1382 | +--------------------------------------------------------------------------- |
michael@13 | 1383 | | Use GNU libtool's weaker -static (link with own static libraries) |
michael@13 | 1384 | | instead of the strong -all-static (link even with static libc, etc), |
michael@13 | 1385 | | because OpenPKG does not need to be fully static. |
michael@13 | 1386 | | Additionally, adjust the path to file(1)'s "magic" file. |
michael@13 | 1387 | +--------------------------------------------------------------------------- |
michael@13 | 1388 | Index: file/Makefile.am |
michael@13 | 1389 | --- file/Makefile.am 24 Jan 2003 19:41:56 -0000 1.1.1.1 |
michael@13 | 1390 | +++ file/Makefile.am 22 Jan 2004 21:42:21 -0000 1.2 |
michael@13 | 1391 | @@ -36,7 +36,7 @@ |
michael@13 | 1392 | #MAGIC = @datadir@/magic |
michael@13 | 1393 | #data_DATA = magic magic.mime magic.mgc magic.mime.mgc |
michael@13 | 1394 | |
michael@13 | 1395 | -pkglibdir = @prefix@/lib/rpm |
michael@13 | 1396 | +pkglibdir = @prefix@/lib/openpkg |
michael@13 | 1397 | pkglib_DATA = magic magic.mime magic.mgc magic.mime.mgc |
michael@13 | 1398 | MAGIC = $(pkglibdir)/magic |
michael@13 | 1399 | CPPFLAGS = -DMAGIC='"$(MAGIC)"' |
michael@13 | 1400 | |
michael@13 | 1401 | +--------------------------------------------------------------------------- |
michael@13 | 1402 | | Use GNU libtool's weaker -static (link with own static libraries) |
michael@13 | 1403 | | instead of the strong -all-static (link even with static libc, etc), |
michael@13 | 1404 | | because OpenPKG does not need to be fully static. |
michael@13 | 1405 | | Additionally, adjust the path to file(1)'s "magic" file. |
michael@13 | 1406 | +--------------------------------------------------------------------------- |
michael@13 | 1407 | Index: file/Makefile.in |
michael@13 | 1408 | --- file/Makefile.in 16 Jul 2003 17:05:23 -0000 1.1.1.2 |
michael@13 | 1409 | +++ file/Makefile.in 22 Jan 2004 21:42:22 -0000 1.2 |
michael@13 | 1410 | @@ -39,7 +39,7 @@ |
michael@13 | 1411 | |
michael@13 | 1412 | #MAGIC = @datadir@/magic |
michael@13 | 1413 | #data_DATA = magic magic.mime magic.mgc magic.mime.mgc |
michael@13 | 1414 | -pkglibdir = @prefix@/lib/rpm |
michael@13 | 1415 | +pkglibdir = @prefix@/lib/openpkg |
michael@13 | 1416 | ACLOCAL = @ACLOCAL@ |
michael@13 | 1417 | AMDEP_FALSE = @AMDEP_FALSE@ |
michael@13 | 1418 | AMDEP_TRUE = @AMDEP_TRUE@ |
michael@13 | 1419 | @@ -159,7 +159,7 @@ |
michael@13 | 1420 | noinst_PROGRAMS = file |
michael@13 | 1421 | |
michael@13 | 1422 | file_SOURCES = file.c |
michael@13 | 1423 | -file_LDFLAGS = -all-static |
michael@13 | 1424 | +file_LDFLAGS = -static |
michael@13 | 1425 | file_LDADD = libfmagic.la |
michael@13 | 1426 | |
michael@13 | 1427 | man_MAGIC = magic.@fsect@ |
michael@13 | 1428 | |
michael@13 | 1429 | +--------------------------------------------------------------------------- |
michael@13 | 1430 | | Use GNU libtool's weaker -static (link with own static libraries) |
michael@13 | 1431 | | instead of the strong -all-static (link even with static libc, etc), |
michael@13 | 1432 | | because OpenPKG does not need to be fully static. |
michael@13 | 1433 | | Additionally, disable the building of gettext stuff we don't need. |
michael@13 | 1434 | +--------------------------------------------------------------------------- |
michael@13 | 1435 | Index: popt/Makefile.am |
michael@13 | 1436 | --- popt/Makefile.am 6 Mar 2003 23:16:43 -0000 1.1.1.9 |
michael@13 | 1437 | +++ popt/Makefile.am 22 Jan 2004 21:42:28 -0000 1.2 |
michael@13 | 1438 | @@ -9,7 +9,7 @@ |
michael@13 | 1439 | po/*.in po/*.po po/popt.pot \ |
michael@13 | 1440 | popt.ps |
michael@13 | 1441 | |
michael@13 | 1442 | -SUBDIRS = intl po |
michael@13 | 1443 | +SUBDIRS = intl |
michael@13 | 1444 | |
michael@13 | 1445 | INCLUDES = -I. -I$(top_srcdir) |
michael@13 | 1446 | |
michael@13 | 1447 | @@ -17,13 +17,13 @@ |
michael@13 | 1448 | |
michael@13 | 1449 | noinst_PROGRAMS = test1 test2 test3 |
michael@13 | 1450 | test1_SOURCES = test1.c |
michael@13 | 1451 | -test1_LDFLAGS = -all-static |
michael@13 | 1452 | +test1_LDFLAGS = -static |
michael@13 | 1453 | test1_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1454 | test2_SOURCES = test2.c |
michael@13 | 1455 | -test2_LDFLAGS = -all-static |
michael@13 | 1456 | +test2_LDFLAGS = -static |
michael@13 | 1457 | test2_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1458 | test3_SOURCES = test3.c |
michael@13 | 1459 | -test3_LDFLAGS = -all-static |
michael@13 | 1460 | +test3_LDFLAGS = -static |
michael@13 | 1461 | test3_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1462 | |
michael@13 | 1463 | noinst_SCRIPTS = testit.sh |
michael@13 | 1464 | |
michael@13 | 1465 | +--------------------------------------------------------------------------- |
michael@13 | 1466 | | Use GNU libtool's weaker -static (link with own static libraries) |
michael@13 | 1467 | | instead of the strong -all-static (link even with static libc, etc), |
michael@13 | 1468 | | because OpenPKG does not need to be fully static. |
michael@13 | 1469 | | Additionally, disable the building of gettext stuff we don't need. |
michael@13 | 1470 | +--------------------------------------------------------------------------- |
michael@13 | 1471 | Index: popt/Makefile.in |
michael@13 | 1472 | --- popt/Makefile.in 16 Jul 2003 17:04:49 -0000 1.1.1.14 |
michael@13 | 1473 | +++ popt/Makefile.in 22 Jan 2004 21:42:28 -0000 1.2 |
michael@13 | 1474 | @@ -163,7 +163,7 @@ |
michael@13 | 1475 | popt.ps |
michael@13 | 1476 | |
michael@13 | 1477 | |
michael@13 | 1478 | -SUBDIRS = intl po |
michael@13 | 1479 | +SUBDIRS = intl |
michael@13 | 1480 | |
michael@13 | 1481 | INCLUDES = -I. -I$(top_srcdir) |
michael@13 | 1482 | |
michael@13 | 1483 | @@ -171,13 +171,13 @@ |
michael@13 | 1484 | |
michael@13 | 1485 | noinst_PROGRAMS = test1 test2 test3 |
michael@13 | 1486 | test1_SOURCES = test1.c |
michael@13 | 1487 | -test1_LDFLAGS = -all-static |
michael@13 | 1488 | +test1_LDFLAGS = -static |
michael@13 | 1489 | test1_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1490 | test2_SOURCES = test2.c |
michael@13 | 1491 | -test2_LDFLAGS = -all-static |
michael@13 | 1492 | +test2_LDFLAGS = -static |
michael@13 | 1493 | test2_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1494 | test3_SOURCES = test3.c |
michael@13 | 1495 | -test3_LDFLAGS = -all-static |
michael@13 | 1496 | +test3_LDFLAGS = -static |
michael@13 | 1497 | test3_LDADD = $(usrlib_LTLIBRARIES) |
michael@13 | 1498 | |
michael@13 | 1499 | noinst_SCRIPTS = testit.sh |
michael@13 | 1500 | |
michael@13 | 1501 | +--------------------------------------------------------------------------- |
michael@13 | 1502 | | Revert back to the old behaviour of passing to "exec" programs an |
michael@13 | 1503 | | extra "--" argument to separate options and arguments. Additionally, |
michael@13 | 1504 | | allow the "!#:+" constructs to be used multiple times and then each |
michael@13 | 1505 | | time eat another argument (instead of just eating an argument once |
michael@13 | 1506 | | and expanding this multiple times). |
michael@13 | 1507 | +--------------------------------------------------------------------------- |
michael@13 | 1508 | Index: popt/popt.c |
michael@13 | 1509 | --- popt/popt.c 22 Aug 2002 14:17:44 -0000 1.1.1.12 |
michael@13 | 1510 | +++ popt/popt.c 22 Jan 2004 21:42:28 -0000 1.2 |
michael@13 | 1511 | @@ -400,9 +400,7 @@ |
michael@13 | 1512 | } |
michael@13 | 1513 | |
michael@13 | 1514 | if (con->leftovers != NULL && con->numLeftovers > 0) { |
michael@13 | 1515 | -#if 0 |
michael@13 | 1516 | argv[argc++] = "--"; |
michael@13 | 1517 | -#endif |
michael@13 | 1518 | memcpy(argv + argc, con->leftovers, sizeof(*argv) * con->numLeftovers); |
michael@13 | 1519 | argc += con->numLeftovers; |
michael@13 | 1520 | } |
michael@13 | 1521 | @@ -580,10 +578,8 @@ |
michael@13 | 1522 | if (!(s[0] == '#' && s[1] == ':' && s[2] == '+')) |
michael@13 | 1523 | /*@switchbreak@*/ break; |
michael@13 | 1524 | /* XXX Make sure that findNextArg deletes only next arg. */ |
michael@13 | 1525 | - if (a == NULL) { |
michael@13 | 1526 | if ((a = findNextArg(con, 1, 1)) == NULL) |
michael@13 | 1527 | /*@switchbreak@*/ break; |
michael@13 | 1528 | - } |
michael@13 | 1529 | s += 3; |
michael@13 | 1530 | |
michael@13 | 1531 | alen = strlen(a); |
michael@13 | 1532 | |
michael@13 | 1533 | +--------------------------------------------------------------------------- |
michael@13 | 1534 | | Dedefine the stdio variable BUFSIZ because it is usually just 1024 |
michael@13 | 1535 | | on some platforms (on Linux it is 8192) and unfortunately RPM uses |
michael@13 | 1536 | | it here for the macro expansion buffer. For OpenPKG the size 1024 is |
michael@13 | 1537 | | definetely too small. So increase this to a 16KB buffer. |
michael@13 | 1538 | +--------------------------------------------------------------------------- |
michael@13 | 1539 | Index: rpmio/macro.c |
michael@13 | 1540 | --- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 |
michael@13 | 1541 | +++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 |
michael@13 | 1542 | @@ -50,6 +50,9 @@ |
michael@13 | 1543 | |
michael@13 | 1544 | #include "debug.h" |
michael@13 | 1545 | |
michael@13 | 1546 | +#undef BUFSIZ |
michael@13 | 1547 | +#define BUFSIZ 16384 |
michael@13 | 1548 | + |
michael@13 | 1549 | #if defined(__LCLINT__) |
michael@13 | 1550 | /*@-exportheader@*/ |
michael@13 | 1551 | extern const unsigned short int **__ctype_b_loc (void) /*@*/; |
michael@13 | 1552 | |
michael@13 | 1553 | +--------------------------------------------------------------------------- |
michael@13 | 1554 | | Remove "unzip" support, because in OpenPKG there are less than |
michael@13 | 1555 | | a dozend packages requiring unpacking of .zip files. For these |
michael@13 | 1556 | | it is fully sufficient to explicitly require the "infozip" |
michael@13 | 1557 | | package (containing "unzip") and leaving the less portable |
michael@13 | 1558 | | "unzip" out of the bootstrap package. |
michael@13 | 1559 | +--------------------------------------------------------------------------- |
michael@13 | 1560 | Index: rpmio/macro.c |
michael@13 | 1561 | --- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 |
michael@13 | 1562 | +++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 |
michael@13 | 1563 | @@ -1114,9 +1119,11 @@ |
michael@13 | 1564 | case 2: /* COMPRESSED_BZIP2 */ |
michael@13 | 1565 | sprintf(be, "%%_bzip2 %s", b); |
michael@13 | 1566 | break; |
michael@13 | 1567 | +#if 0 |
michael@13 | 1568 | case 3: /* COMPRESSED_ZIP */ |
michael@13 | 1569 | sprintf(be, "%%_unzip %s", b); |
michael@13 | 1570 | break; |
michael@13 | 1571 | +#endif |
michael@13 | 1572 | } |
michael@13 | 1573 | b = be; |
michael@13 | 1574 | } else if (STREQ("S", f, fn)) { |
michael@13 | 1575 | @@ -1717,9 +1725,11 @@ |
michael@13 | 1576 | |
michael@13 | 1577 | if ((magic[0] == 'B') && (magic[1] == 'Z')) { |
michael@13 | 1578 | *compressed = COMPRESSED_BZIP2; |
michael@13 | 1579 | +#if 0 |
michael@13 | 1580 | } else if ((magic[0] == 0120) && (magic[1] == 0113) && |
michael@13 | 1581 | (magic[2] == 0003) && (magic[3] == 0004)) { /* pkzip */ |
michael@13 | 1582 | *compressed = COMPRESSED_ZIP; |
michael@13 | 1583 | +#endif |
michael@13 | 1584 | } else if (((magic[0] == 0037) && (magic[1] == 0213)) || /* gzip */ |
michael@13 | 1585 | ((magic[0] == 0037) && (magic[1] == 0236)) || /* old gzip */ |
michael@13 | 1586 | ((magic[0] == 0037) && (magic[1] == 0036)) || /* pack */ |
michael@13 | 1587 | |
michael@13 | 1588 | +--------------------------------------------------------------------------- |
michael@13 | 1589 | | Make sure that an %{error:<msg>} macro really stops further |
michael@13 | 1590 | | processing. Else it would be nothing more than a %{warn:<msg>}. |
michael@13 | 1591 | +--------------------------------------------------------------------------- |
michael@13 | 1592 | Index: rpmio/macro.c |
michael@13 | 1593 | --- rpmio/macro.c 15 May 2003 13:42:01 -0000 1.1.1.7 |
michael@13 | 1594 | +++ rpmio/macro.c 22 Jan 2004 21:42:32 -0000 1.2 |
michael@13 | 1595 | @@ -1329,7 +1337,7 @@ |
michael@13 | 1596 | STREQ("error", f, fn)) { |
michael@13 | 1597 | int waserror = 0; |
michael@13 | 1598 | if (STREQ("error", f, fn)) |
michael@13 | 1599 | - waserror = 1; |
michael@13 | 1600 | + waserror = 1, rc = 1; |
michael@13 | 1601 | if (g < ge) |
michael@13 | 1602 | doOutput(mb, waserror, g, gn); |
michael@13 | 1603 | else |
michael@13 | 1604 | |
michael@13 | 1605 | +--------------------------------------------------------------------------- |
michael@13 | 1606 | | Reactivate build mode aliases which were removed in rpm-4.1 |
michael@13 | 1607 | | (and now should be available through "rpmbuild" only). |
michael@13 | 1608 | +--------------------------------------------------------------------------- |
michael@13 | 1609 | Index: rpmpopt.in |
michael@13 | 1610 | --- rpmpopt.in 24 Jan 2003 14:56:30 -0000 1.1.1.7 |
michael@13 | 1611 | +++ rpmpopt.in 22 Jan 2004 21:42:11 -0000 1.2 |
michael@13 | 1612 | @@ -147,28 +147,28 @@ |
michael@13 | 1613 | # Popt glue to preserve legacy CLI behavior. |
michael@13 | 1614 | # |
michael@13 | 1615 | # XXX popt exec parsing doesn't honor POPT_ARGFLAG_ONEDASH |
michael@13 | 1616 | -# XXX Build mode aliases, removed in rpm-4.1. |
michael@13 | 1617 | -#rpm exec --bp rpmb -bp |
michael@13 | 1618 | -#rpm exec --bc rpmb -bc |
michael@13 | 1619 | -#rpm exec --bi rpmb -bi |
michael@13 | 1620 | -#rpm exec --bl rpmb -bl |
michael@13 | 1621 | -#rpm exec --ba rpmb -ba |
michael@13 | 1622 | -#rpm exec --bb rpmb -bb |
michael@13 | 1623 | -#rpm exec --bs rpmb -bs |
michael@13 | 1624 | -#rpm exec --tp rpmb -tp |
michael@13 | 1625 | -#rpm exec --tc rpmb -tc |
michael@13 | 1626 | -#rpm exec --ti rpmb -ti |
michael@13 | 1627 | -#rpm exec --tl rpmb -tl |
michael@13 | 1628 | -#rpm exec --ta rpmb -ta |
michael@13 | 1629 | -#rpm exec --tb rpmb -tb |
michael@13 | 1630 | -#rpm exec --ts rpmb -ts |
michael@13 | 1631 | -#rpm exec --rebuild rpmb --rebuild |
michael@13 | 1632 | -#rpm exec --recompile rpmb --recompile |
michael@13 | 1633 | -#rpm exec --clean rpmb --clean |
michael@13 | 1634 | -#rpm exec --rmsource rpmb --rmsource |
michael@13 | 1635 | -#rpm exec --rmspec rpmb --rmspec |
michael@13 | 1636 | -#rpm exec --target rpmb --target |
michael@13 | 1637 | -#rpm exec --short-circuit rpmb --short-circuit |
michael@13 | 1638 | +rpm exec --bp rpmb -bp |
michael@13 | 1639 | +rpm exec --bc rpmb -bc |
michael@13 | 1640 | +rpm exec --bi rpmb -bi |
michael@13 | 1641 | +rpm exec --bl rpmb -bl |
michael@13 | 1642 | +rpm exec --ba rpmb -ba |
michael@13 | 1643 | +rpm exec --bb rpmb -bb |
michael@13 | 1644 | +rpm exec --bs rpmb -bs |
michael@13 | 1645 | +rpm exec --bt rpmb -bt |
michael@13 | 1646 | +rpm exec --tp rpmb -tp |
michael@13 | 1647 | +rpm exec --tc rpmb -tc |
michael@13 | 1648 | +rpm exec --ti rpmb -ti |
michael@13 | 1649 | +rpm exec --tl rpmb -tl |
michael@13 | 1650 | +rpm exec --ta rpmb -ta |
michael@13 | 1651 | +rpm exec --tb rpmb -tb |
michael@13 | 1652 | +rpm exec --ts rpmb -ts |
michael@13 | 1653 | +rpm exec --rebuild rpmb --rebuild |
michael@13 | 1654 | +rpm exec --recompile rpmb --recompile |
michael@13 | 1655 | +rpm exec --clean rpmb --clean |
michael@13 | 1656 | +rpm exec --rmsource rpmb --rmsource |
michael@13 | 1657 | +rpm exec --rmspec rpmb --rmspec |
michael@13 | 1658 | +rpm exec --target rpmb --target |
michael@13 | 1659 | +rpm exec --short-circuit rpmb --short-circuit |
michael@13 | 1660 | |
michael@13 | 1661 | rpm exec --initdb rpmd --initdb |
michael@13 | 1662 | rpm exec --rebuilddb rpmd --rebuilddb |
michael@13 | 1663 | |
michael@13 | 1664 | +--------------------------------------------------------------------------- |
michael@13 | 1665 | | Allow "-bb --short-circuit" for continuing building a binary package |
michael@13 | 1666 | | after the %install step (usually previously fixed and repeated with |
michael@13 | 1667 | | "-bi --short-circuit". |
michael@13 | 1668 | +--------------------------------------------------------------------------- |
michael@13 | 1669 | Index: rpmqv.c |
michael@13 | 1670 | --- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 |
michael@13 | 1671 | +++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 |
michael@13 | 1672 | @@ -682,6 +682,10 @@ |
michael@13 | 1673 | case 'b': |
michael@13 | 1674 | ba->buildAmount |= RPMBUILD_PACKAGEBINARY; |
michael@13 | 1675 | ba->buildAmount |= RPMBUILD_CLEAN; |
michael@13 | 1676 | +#ifdef OPENPKG |
michael@13 | 1677 | + if ((ba->buildChar == 'b') && ba->shortCircuit) |
michael@13 | 1678 | + /*@innerbreak@*/ break; |
michael@13 | 1679 | +#endif |
michael@13 | 1680 | /*@fallthrough@*/ |
michael@13 | 1681 | case 'i': |
michael@13 | 1682 | ba->buildAmount |= RPMBUILD_INSTALL; |
michael@13 | 1683 | |
michael@13 | 1684 | +--------------------------------------------------------------------------- |
michael@13 | 1685 | | Because permissions and ownership on Berkeley-DB region files |
michael@13 | 1686 | | __db.XXX have to be already fixed in advance and those files cannot |
michael@13 | 1687 | | be created in advance on the command line with some reasonable |
michael@13 | 1688 | | default (as it is the case for the other files which are created |
michael@13 | 1689 | | with [rpm]db_load), so force Berkeley-DB to accept zero-sized files |
michael@13 | 1690 | | and create them (instead of thinking another process is currently |
michael@13 | 1691 | | creating them). |
michael@13 | 1692 | +--------------------------------------------------------------------------- |
michael@13 | 1693 | Index: db/env/env_region.c |
michael@13 | 1694 | --- db/env/env_region.c 18 Jan 2003 14:05:01 -0000 1.1.1.5 |
michael@13 | 1695 | +++ db/env/env_region.c 22 Jan 2004 21:42:17 -0000 1.2 |
michael@13 | 1696 | @@ -184,6 +184,24 @@ |
michael@13 | 1697 | } |
michael@13 | 1698 | |
michael@13 | 1699 | /* |
michael@13 | 1700 | + * OpenPKG hack: because permissions and ownership on Berkeley-DB |
michael@13 | 1701 | + * region files __db.XXX have to be already fixed in advance and |
michael@13 | 1702 | + * those files cannot be created in advance on the command line |
michael@13 | 1703 | + * with some reasonable default (as it is the case for the other |
michael@13 | 1704 | + * files which are created with [rpm]db_load), so force Berkeley-DB |
michael@13 | 1705 | + * to accept zero-sized files and create them (instead of thinking |
michael@13 | 1706 | + * another process is currently creating them). |
michael@13 | 1707 | + */ |
michael@13 | 1708 | + if (mbytes == 0 && bytes == 0) { |
michael@13 | 1709 | + if (F_ISSET(dbenv, DB_ENV_CREATE)) |
michael@13 | 1710 | + goto creation; |
michael@13 | 1711 | + else { |
michael@13 | 1712 | + ret = ENOENT; |
michael@13 | 1713 | + goto err; |
michael@13 | 1714 | + } |
michael@13 | 1715 | + } |
michael@13 | 1716 | + |
michael@13 | 1717 | + /* |
michael@13 | 1718 | * !!! |
michael@13 | 1719 | * A size_t is OK -- regions get mapped into memory, and so can't |
michael@13 | 1720 | * be larger than a size_t. |
michael@13 | 1721 | |
michael@13 | 1722 | +--------------------------------------------------------------------------- |
michael@13 | 1723 | | Make sure RPM passes DB_CREATE to Berkeley-DB also if file exists, |
michael@13 | 1724 | | but is (still) zero-sized. |
michael@13 | 1725 | +--------------------------------------------------------------------------- |
michael@13 | 1726 | Index: rpmdb/db3.c |
michael@13 | 1727 | --- rpmdb/db3.c 3 Mar 2003 16:18:29 -0000 1.1.1.5 |
michael@13 | 1728 | +++ rpmdb/db3.c 22 Jan 2004 21:42:29 -0000 1.2 |
michael@13 | 1729 | @@ -1019,9 +1019,13 @@ |
michael@13 | 1730 | } else { /* dbhome is writable, check for persistent dbenv. */ |
michael@13 | 1731 | /*@-mods@*/ |
michael@13 | 1732 | const char * dbf = rpmGetPath(dbhome, "/__db.001", NULL); |
michael@13 | 1733 | + struct stat sb; |
michael@13 | 1734 | + long size = -1; |
michael@13 | 1735 | /*@=mods@*/ |
michael@13 | 1736 | |
michael@13 | 1737 | - if (access(dbf, F_OK) == -1) { |
michael@13 | 1738 | + if (stat(dbf, &sb) == 0) |
michael@13 | 1739 | + size = (long)sb.st_size; |
michael@13 | 1740 | + if (access(dbf, F_OK) == -1 || size == 0) { |
michael@13 | 1741 | /* ... non-existent (or unwritable) DBENV, will create ... */ |
michael@13 | 1742 | dbi->dbi_oeflags |= DB_CREATE; |
michael@13 | 1743 | dbi->dbi_eflags &= ~DB_JOINENV; |
michael@13 | 1744 | |
michael@13 | 1745 | +--------------------------------------------------------------------------- |
michael@13 | 1746 | | Add internal feature variable %{_force_oldpackage} which, if |
michael@13 | 1747 | | non-zero, automatically enforces --oldpackage on all upgrade |
michael@13 | 1748 | | operations (this is useful on mass-upgrades from OpenPKG-CURRENT to |
michael@13 | 1749 | | OpenPKG-RELEASE). |
michael@13 | 1750 | +--------------------------------------------------------------------------- |
michael@13 | 1751 | Index: rpm.c |
michael@13 | 1752 | --- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23 |
michael@13 | 1753 | +++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2 |
michael@13 | 1754 | @@ -1016,6 +1016,10 @@ |
michael@13 | 1755 | |
michael@13 | 1756 | if (oldPackage && !upgrade) |
michael@13 | 1757 | argerror(_("--oldpackage may only be used during upgrades")); |
michael@13 | 1758 | +#ifdef OPENPKG |
michael@13 | 1759 | + if (upgrade && rpmExpandNumeric("%{?_force_oldpackage}")) |
michael@13 | 1760 | + probFilter |= RPMPROB_FILTER_OLDPACKAGE; |
michael@13 | 1761 | +#endif |
michael@13 | 1762 | |
michael@13 | 1763 | if (noPgp && bigMode != MODE_CHECKSIG) |
michael@13 | 1764 | argerror(_("--nopgp may only be used during signature checking")); |
michael@13 | 1765 | |
michael@13 | 1766 | +--------------------------------------------------------------------------- |
michael@13 | 1767 | | Add OpenPKG branding to make sure people do not intermix |
michael@13 | 1768 | | this RPM version with the stock RPM version. |
michael@13 | 1769 | +--------------------------------------------------------------------------- |
michael@13 | 1770 | Index: lib/poptALL.c |
michael@13 | 1771 | --- lib/poptALL.c 25 Jun 2003 19:10:01 -0000 1.1.1.3 |
michael@13 | 1772 | +++ lib/poptALL.c 22 Jan 2004 21:42:23 -0000 1.2 |
michael@13 | 1773 | @@ -102,7 +102,7 @@ |
michael@13 | 1774 | /*@globals rpmEVR, fileSystem @*/ |
michael@13 | 1775 | /*@modifies *fp, fileSystem @*/ |
michael@13 | 1776 | { |
michael@13 | 1777 | - fprintf(fp, _("RPM version %s\n"), rpmEVR); |
michael@13 | 1778 | + fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR); |
michael@13 | 1779 | } |
michael@13 | 1780 | |
michael@13 | 1781 | /** |
michael@13 | 1782 | |
michael@13 | 1783 | +--------------------------------------------------------------------------- |
michael@13 | 1784 | | Add OpenPKG branding to make sure people do not intermix |
michael@13 | 1785 | | this RPM version with the stock RPM version. |
michael@13 | 1786 | +--------------------------------------------------------------------------- |
michael@13 | 1787 | Index: rpm.c |
michael@13 | 1788 | --- rpm.c 16 May 2002 16:55:25 -0000 1.1.1.23 |
michael@13 | 1789 | +++ rpm.c 22 Jan 2004 21:42:10 -0000 1.2 |
michael@13 | 1790 | @@ -235,7 +235,7 @@ |
michael@13 | 1791 | static void printHelpLine(char * prefix, char * help); |
michael@13 | 1792 | |
michael@13 | 1793 | static void printVersion(void) { |
michael@13 | 1794 | - fprintf(stdout, _("RPM version %s\n"), rpmEVR); |
michael@13 | 1795 | + fprintf(stdout, _("OpenPKG RPM %s\n"), rpmEVR); |
michael@13 | 1796 | } |
michael@13 | 1797 | |
michael@13 | 1798 | static void printBanner(void) { |
michael@13 | 1799 | |
michael@13 | 1800 | +--------------------------------------------------------------------------- |
michael@13 | 1801 | | Add OpenPKG branding to make sure people do not intermix |
michael@13 | 1802 | | this RPM version with the stock RPM version. |
michael@13 | 1803 | +--------------------------------------------------------------------------- |
michael@13 | 1804 | Index: rpmqv.c |
michael@13 | 1805 | --- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 |
michael@13 | 1806 | +++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 |
michael@13 | 1807 | @@ -126,7 +126,7 @@ |
michael@13 | 1808 | /*@globals rpmEVR, fileSystem @*/ |
michael@13 | 1809 | /*@modifies *fp, fileSystem @*/ |
michael@13 | 1810 | { |
michael@13 | 1811 | - fprintf(fp, _("RPM version %s\n"), rpmEVR); |
michael@13 | 1812 | + fprintf(fp, _("OpenPKG RPM %s\n"), rpmEVR); |
michael@13 | 1813 | } |
michael@13 | 1814 | |
michael@13 | 1815 | static void printBanner(FILE * fp) |
michael@13 | 1816 | |
michael@13 | 1817 | +--------------------------------------------------------------------------- |
michael@13 | 1818 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1819 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1820 | | and %test (package install-time feature for performing package |
michael@13 | 1821 | | run-time tests). |
michael@13 | 1822 | +--------------------------------------------------------------------------- |
michael@13 | 1823 | Index: rpmqv.c |
michael@13 | 1824 | --- rpmqv.c 4 Mar 2003 15:32:57 -0000 1.1.1.8 |
michael@13 | 1825 | +++ rpmqv.c 6 Feb 2004 15:37:56 -0000 1.4 |
michael@13 | 1826 | @@ -703,7 +707,19 @@ |
michael@13 | 1827 | /*@innerbreak@*/ break; |
michael@13 | 1828 | case 's': |
michael@13 | 1829 | ba->buildAmount |= RPMBUILD_PACKAGESOURCE; |
michael@13 | 1830 | + /* enforce no dependency checking */ |
michael@13 | 1831 | + ba->noDeps = 1; |
michael@13 | 1832 | /*@innerbreak@*/ break; |
michael@13 | 1833 | +#ifdef OPENPKG |
michael@13 | 1834 | + case 't': |
michael@13 | 1835 | + ba->buildAmount |= RPMBUILD_TRACK; |
michael@13 | 1836 | + /* enforce no dependency checking and expansion of %setup, %patch and %prep macros */ |
michael@13 | 1837 | + ba->noDeps = 1; |
michael@13 | 1838 | + rpmDefineMacro(NULL, "setup #", RMIL_CMDLINE); |
michael@13 | 1839 | + rpmDefineMacro(NULL, "patch #", RMIL_CMDLINE); |
michael@13 | 1840 | + rpmDefineMacro(NULL, "prep %%prep", RMIL_CMDLINE); |
michael@13 | 1841 | + /*@innerbreak@*/ break; |
michael@13 | 1842 | +#endif |
michael@13 | 1843 | } |
michael@13 | 1844 | |
michael@13 | 1845 | if (!poptPeekArg(optCon)) { |
michael@13 | 1846 | |
michael@13 | 1847 | +--------------------------------------------------------------------------- |
michael@13 | 1848 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1849 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1850 | | and %test (package install-time feature for performing package |
michael@13 | 1851 | | run-time tests). |
michael@13 | 1852 | +--------------------------------------------------------------------------- |
michael@13 | 1853 | Index: build/pack.c |
michael@13 | 1854 | --- build/pack.c 4 Mar 2003 17:03:17 -0000 1.1.1.20 |
michael@13 | 1855 | +++ build/pack.c 30 Jan 2004 17:06:29 -0000 1.2 |
michael@13 | 1856 | @@ -252,6 +252,15 @@ |
michael@13 | 1857 | return RPMERR_BADFILENAME; |
michael@13 | 1858 | } |
michael@13 | 1859 | } |
michael@13 | 1860 | +#ifdef OPENPKG |
michael@13 | 1861 | + if (pkg->testFile) { |
michael@13 | 1862 | + if (addFileToTag(spec, pkg->testFile, pkg->header, RPMTAG_TEST)) { |
michael@13 | 1863 | + rpmError(RPMERR_BADFILENAME, |
michael@13 | 1864 | + _("Could not open Test file: %s\n"), pkg->testFile); |
michael@13 | 1865 | + return RPMERR_BADFILENAME; |
michael@13 | 1866 | + } |
michael@13 | 1867 | + } |
michael@13 | 1868 | +#endif |
michael@13 | 1869 | |
michael@13 | 1870 | for (p = pkg->triggerFiles; p != NULL; p = p->next) { |
michael@13 | 1871 | (void) headerAddOrAppendEntry(pkg->header, RPMTAG_TRIGGERSCRIPTPROG, |
michael@13 | 1872 | |
michael@13 | 1873 | +--------------------------------------------------------------------------- |
michael@13 | 1874 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1875 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1876 | | and %test (package install-time feature for performing package |
michael@13 | 1877 | | run-time tests). |
michael@13 | 1878 | +--------------------------------------------------------------------------- |
michael@13 | 1879 | Index: build/parseBuildInstallClean.c |
michael@13 | 1880 | --- build/parseBuildInstallClean.c 3 Mar 2003 20:43:30 -0000 1.1.1.9 |
michael@13 | 1881 | +++ build/parseBuildInstallClean.c 30 Jan 2004 17:06:29 -0000 1.2 |
michael@13 | 1882 | @@ -29,6 +29,11 @@ |
michael@13 | 1883 | } else if (parsePart == PART_CLEAN) { |
michael@13 | 1884 | sbp = &(spec->clean); |
michael@13 | 1885 | name = "%clean"; |
michael@13 | 1886 | +#ifdef OPENPKG |
michael@13 | 1887 | + } else if (parsePart == PART_TRACK) { |
michael@13 | 1888 | + sbp = &(spec->track); |
michael@13 | 1889 | + name = "%track"; |
michael@13 | 1890 | +#endif |
michael@13 | 1891 | } |
michael@13 | 1892 | /*@=branchstate@*/ |
michael@13 | 1893 | |
michael@13 | 1894 | |
michael@13 | 1895 | +--------------------------------------------------------------------------- |
michael@13 | 1896 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1897 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1898 | | and %test (package install-time feature for performing package |
michael@13 | 1899 | | run-time tests). |
michael@13 | 1900 | +--------------------------------------------------------------------------- |
michael@13 | 1901 | Index: build/parseScript.c |
michael@13 | 1902 | --- build/parseScript.c 23 Jun 2002 19:47:12 -0000 1.1.1.12 |
michael@13 | 1903 | +++ build/parseScript.c 30 Jan 2004 17:06:29 -0000 1.3 |
michael@13 | 1904 | @@ -156,6 +156,14 @@ |
michael@13 | 1905 | progtag = RPMTAG_TRIGGERSCRIPTPROG; |
michael@13 | 1906 | partname = "%triggerpostun"; |
michael@13 | 1907 | break; |
michael@13 | 1908 | +#ifdef OPENPKG |
michael@13 | 1909 | + case PART_TEST: |
michael@13 | 1910 | + tag = RPMTAG_TEST; |
michael@13 | 1911 | + tagflags = RPMSENSE_SCRIPT_TEST; |
michael@13 | 1912 | + progtag = RPMTAG_TESTPROG; |
michael@13 | 1913 | + partname = "%test"; |
michael@13 | 1914 | + break; |
michael@13 | 1915 | +#endif |
michael@13 | 1916 | } |
michael@13 | 1917 | /*@=branchstate@*/ |
michael@13 | 1918 | |
michael@13 | 1919 | @@ -303,6 +312,11 @@ |
michael@13 | 1920 | case PART_VERIFYSCRIPT: |
michael@13 | 1921 | pkg->verifyFile = xstrdup(file); |
michael@13 | 1922 | break; |
michael@13 | 1923 | +#ifdef OPENPKG |
michael@13 | 1924 | + case PART_TEST: |
michael@13 | 1925 | + pkg->testFile = xstrdup(file); |
michael@13 | 1926 | + break; |
michael@13 | 1927 | +#endif |
michael@13 | 1928 | } |
michael@13 | 1929 | } |
michael@13 | 1930 | } |
michael@13 | 1931 | |
michael@13 | 1932 | +--------------------------------------------------------------------------- |
michael@13 | 1933 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1934 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1935 | | and %test (package install-time feature for performing package |
michael@13 | 1936 | | run-time tests). |
michael@13 | 1937 | +--------------------------------------------------------------------------- |
michael@13 | 1938 | Index: build/parseSpec.c |
michael@13 | 1939 | --- build/parseSpec.c 15 May 2003 13:38:57 -0000 1.1.1.15 |
michael@13 | 1940 | +++ build/parseSpec.c 30 Jan 2004 17:06:30 -0000 1.2 |
michael@13 | 1941 | @@ -43,6 +43,10 @@ |
michael@13 | 1942 | { PART_TRIGGERIN, 0, "%triggerin"}, |
michael@13 | 1943 | { PART_TRIGGERIN, 0, "%trigger"}, |
michael@13 | 1944 | { PART_VERIFYSCRIPT, 0, "%verifyscript"}, |
michael@13 | 1945 | +#ifdef OPENPKG |
michael@13 | 1946 | + { PART_TRACK, 0, "%track"}, |
michael@13 | 1947 | + { PART_TEST, 0, "%test"}, |
michael@13 | 1948 | +#endif |
michael@13 | 1949 | {0, 0, 0} |
michael@13 | 1950 | }; |
michael@13 | 1951 | |
michael@13 | 1952 | @@ -489,6 +493,15 @@ |
michael@13 | 1953 | parsePart = parseFiles(spec); |
michael@13 | 1954 | /*@switchbreak@*/ break; |
michael@13 | 1955 | |
michael@13 | 1956 | +#ifdef OPENPKG |
michael@13 | 1957 | + case PART_TRACK: |
michael@13 | 1958 | + parsePart = parseBuildInstallClean(spec, parsePart); |
michael@13 | 1959 | + /*@switchbreak@*/ break; |
michael@13 | 1960 | + case PART_TEST: |
michael@13 | 1961 | + parsePart = parseScript(spec, parsePart); |
michael@13 | 1962 | + /*@switchbreak@*/ break; |
michael@13 | 1963 | +#endif |
michael@13 | 1964 | + |
michael@13 | 1965 | case PART_NONE: /* XXX avoid gcc whining */ |
michael@13 | 1966 | case PART_LAST: |
michael@13 | 1967 | case PART_BUILDARCHITECTURES: |
michael@13 | 1968 | |
michael@13 | 1969 | +--------------------------------------------------------------------------- |
michael@13 | 1970 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 1971 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 1972 | | and %test (package install-time feature for performing package |
michael@13 | 1973 | | run-time tests). |
michael@13 | 1974 | +--------------------------------------------------------------------------- |
michael@13 | 1975 | Index: build/poptBT.c |
michael@13 | 1976 | --- build/poptBT.c 3 Mar 2003 20:04:12 -0000 1.1.1.3 |
michael@13 | 1977 | +++ build/poptBT.c 30 Jan 2004 17:06:30 -0000 1.2 |
michael@13 | 1978 | @@ -35,6 +35,9 @@ |
michael@13 | 1979 | #define POPT_BL 0x626c |
michael@13 | 1980 | #define POPT_BP 0x6270 |
michael@13 | 1981 | #define POPT_BS 0x6273 |
michael@13 | 1982 | +#ifdef OPENPKG |
michael@13 | 1983 | +#define POPT_BT 0x6274 |
michael@13 | 1984 | +#endif |
michael@13 | 1985 | #define POPT_TA 0x7461 |
michael@13 | 1986 | #define POPT_TB 0x7462 |
michael@13 | 1987 | #define POPT_TC 0x7463 |
michael@13 | 1988 | @@ -82,6 +85,9 @@ |
michael@13 | 1989 | case POPT_BL: |
michael@13 | 1990 | case POPT_BP: |
michael@13 | 1991 | case POPT_BS: |
michael@13 | 1992 | +#ifdef OPENPKG |
michael@13 | 1993 | + case POPT_BT: |
michael@13 | 1994 | +#endif |
michael@13 | 1995 | case POPT_TA: |
michael@13 | 1996 | case POPT_TB: |
michael@13 | 1997 | case POPT_TC: |
michael@13 | 1998 | @@ -177,6 +183,11 @@ |
michael@13 | 1999 | { "bs", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BS, |
michael@13 | 2000 | N_("build source package only from <specfile>"), |
michael@13 | 2001 | N_("<specfile>") }, |
michael@13 | 2002 | +#ifdef OPENPKG |
michael@13 | 2003 | + { "bt", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BT, |
michael@13 | 2004 | + N_("track versions of sources from <specfile>"), |
michael@13 | 2005 | + N_("<specfile>") }, |
michael@13 | 2006 | +#endif |
michael@13 | 2007 | |
michael@13 | 2008 | { "tp", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TP, |
michael@13 | 2009 | N_("build through %prep (unpack sources and apply patches) from <tarball>"), |
michael@13 | 2010 | |
michael@13 | 2011 | +--------------------------------------------------------------------------- |
michael@13 | 2012 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 2013 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 2014 | | and %test (package install-time feature for performing package |
michael@13 | 2015 | | run-time tests). |
michael@13 | 2016 | +--------------------------------------------------------------------------- |
michael@13 | 2017 | Index: build/rpmbuild.h |
michael@13 | 2018 | --- build/rpmbuild.h 4 Mar 2003 17:03:07 -0000 1.1.1.13 |
michael@13 | 2019 | +++ build/rpmbuild.h 30 Jan 2004 17:06:30 -0000 1.2 |
michael@13 | 2020 | @@ -34,6 +34,9 @@ |
michael@13 | 2021 | RPMBUILD_RMSOURCE = (1 << 8), /*!< Remove source(s) and patch(s). */ |
michael@13 | 2022 | RPMBUILD_RMBUILD = (1 << 9), /*!< Remove build sub-tree. */ |
michael@13 | 2023 | RPMBUILD_STRINGBUF = (1 << 10), /*!< only for doScript() */ |
michael@13 | 2024 | +#ifdef OPENPKG |
michael@13 | 2025 | + RPMBUILD_TRACK = (1 << 12), /*!< Execute %%track. */ |
michael@13 | 2026 | +#endif |
michael@13 | 2027 | RPMBUILD_RMSPEC = (1 << 11) /*!< Remove spec file. */ |
michael@13 | 2028 | } rpmBuildFlags; |
michael@13 | 2029 | /*@=typeuse@*/ |
michael@13 | 2030 | @@ -69,7 +72,13 @@ |
michael@13 | 2031 | PART_VERIFYSCRIPT = 16, /*!< */ |
michael@13 | 2032 | PART_BUILDARCHITECTURES= 17,/*!< */ |
michael@13 | 2033 | PART_TRIGGERPOSTUN = 18, /*!< */ |
michael@13 | 2034 | +#ifdef OPENPKG |
michael@13 | 2035 | + PART_TRACK = 19, /*!< */ |
michael@13 | 2036 | + PART_TEST = 20, /*!< */ |
michael@13 | 2037 | + PART_LAST = 21 /*!< */ |
michael@13 | 2038 | +#else |
michael@13 | 2039 | PART_LAST = 19 /*!< */ |
michael@13 | 2040 | +#endif |
michael@13 | 2041 | } rpmParseState; |
michael@13 | 2042 | |
michael@13 | 2043 | #define STRIP_NOTHING 0 |
michael@13 | 2044 | |
michael@13 | 2045 | +--------------------------------------------------------------------------- |
michael@13 | 2046 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 2047 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 2048 | | and %test (package install-time feature for performing package |
michael@13 | 2049 | | run-time tests). |
michael@13 | 2050 | +--------------------------------------------------------------------------- |
michael@13 | 2051 | Index: build/rpmspec.h |
michael@13 | 2052 | --- build/rpmspec.h 4 Mar 2003 15:30:23 -0000 1.1.1.11 |
michael@13 | 2053 | +++ build/rpmspec.h 30 Jan 2004 17:06:30 -0000 1.2 |
michael@13 | 2054 | @@ -164,6 +164,10 @@ |
michael@13 | 2055 | StringBuf check; /*!< %check scriptlet. */ |
michael@13 | 2056 | /*@only@*/ |
michael@13 | 2057 | StringBuf clean; /*!< %clean scriptlet. */ |
michael@13 | 2058 | +#ifdef OPENPKG |
michael@13 | 2059 | +/*@only@*/ |
michael@13 | 2060 | + StringBuf track; /*!< %track scriptlet. */ |
michael@13 | 2061 | +#endif |
michael@13 | 2062 | |
michael@13 | 2063 | /*@owned@*/ |
michael@13 | 2064 | Package packages; /*!< Package list. */ |
michael@13 | 2065 | @@ -196,6 +200,10 @@ |
michael@13 | 2066 | const char * postUnFile; /*!< %postun scriptlet. */ |
michael@13 | 2067 | /*@only@*/ |
michael@13 | 2068 | const char * verifyFile; /*!< %verifyscript scriptlet. */ |
michael@13 | 2069 | +#ifdef OPENPKG |
michael@13 | 2070 | +/*@only@*/ |
michael@13 | 2071 | + const char * testFile; /*!< %test scriptlet. */ |
michael@13 | 2072 | +#endif |
michael@13 | 2073 | |
michael@13 | 2074 | /*@only@*/ |
michael@13 | 2075 | StringBuf specialDoc; |
michael@13 | 2076 | |
michael@13 | 2077 | +--------------------------------------------------------------------------- |
michael@13 | 2078 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 2079 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 2080 | | and %test (package install-time feature for performing package |
michael@13 | 2081 | | run-time tests). |
michael@13 | 2082 | +--------------------------------------------------------------------------- |
michael@13 | 2083 | Index: build/spec.c |
michael@13 | 2084 | --- build/spec.c 4 Mar 2003 15:25:51 -0000 1.1.1.21 |
michael@13 | 2085 | +++ build/spec.c 30 Jan 2004 17:06:31 -0000 1.3 |
michael@13 | 2086 | @@ -138,6 +138,9 @@ |
michael@13 | 2087 | p->preUnFile = NULL; |
michael@13 | 2088 | p->postUnFile = NULL; |
michael@13 | 2089 | p->verifyFile = NULL; |
michael@13 | 2090 | +#ifdef OPENPKG |
michael@13 | 2091 | + p->testFile = NULL; |
michael@13 | 2092 | +#endif |
michael@13 | 2093 | |
michael@13 | 2094 | p->specialDoc = NULL; |
michael@13 | 2095 | |
michael@13 | 2096 | @@ -444,6 +455,9 @@ |
michael@13 | 2097 | spec->install = NULL; |
michael@13 | 2098 | spec->check = NULL; |
michael@13 | 2099 | spec->clean = NULL; |
michael@13 | 2100 | +#ifdef OPENPKG |
michael@13 | 2101 | + spec->track = NULL; |
michael@13 | 2102 | +#endif |
michael@13 | 2103 | |
michael@13 | 2104 | spec->sources = NULL; |
michael@13 | 2105 | spec->packages = NULL; |
michael@13 | 2106 | @@ -491,6 +505,9 @@ |
michael@13 | 2107 | spec->install = freeStringBuf(spec->install); |
michael@13 | 2108 | spec->check = freeStringBuf(spec->check); |
michael@13 | 2109 | spec->clean = freeStringBuf(spec->clean); |
michael@13 | 2110 | +#ifdef OPENPKG |
michael@13 | 2111 | + spec->track = freeStringBuf(spec->track); |
michael@13 | 2112 | +#endif |
michael@13 | 2113 | |
michael@13 | 2114 | spec->buildRootURL = _free(spec->buildRootURL); |
michael@13 | 2115 | spec->buildSubdir = _free(spec->buildSubdir); |
michael@13 | 2116 | |
michael@13 | 2117 | +--------------------------------------------------------------------------- |
michael@13 | 2118 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 2119 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 2120 | | and %test (package install-time feature for performing package |
michael@13 | 2121 | | run-time tests). |
michael@13 | 2122 | +--------------------------------------------------------------------------- |
michael@13 | 2123 | Index: lib/rpmlib.h |
michael@13 | 2124 | --- lib/rpmlib.h 19 Jun 2003 17:39:35 -0000 1.1.1.26 |
michael@13 | 2125 | +++ lib/rpmlib.h 30 Jan 2004 17:06:31 -0000 1.2 |
michael@13 | 2126 | @@ -414,6 +414,12 @@ |
michael@13 | 2127 | RPMTAG_FILEDEPENDSN = 1144, |
michael@13 | 2128 | RPMTAG_DEPENDSDICT = 1145, |
michael@13 | 2129 | RPMTAG_SOURCEPKGID = 1146, |
michael@13 | 2130 | +#ifdef OPENPKG |
michael@13 | 2131 | + RPMTAG_TRACK = 1200, |
michael@13 | 2132 | + RPMTAG_TEST = 1201, |
michael@13 | 2133 | + RPMTAG_TESTPROG = 1202, |
michael@13 | 2134 | + RPMTAG_CLASS = 1203, |
michael@13 | 2135 | +#endif |
michael@13 | 2136 | /*@-enummemuse@*/ |
michael@13 | 2137 | RPMTAG_FIRSTFREE_TAG /*!< internal */ |
michael@13 | 2138 | /*@=enummemuse@*/ |
michael@13 | 2139 | @@ -488,6 +494,9 @@ |
michael@13 | 2140 | RPMSENSE_SCRIPT_BUILD = (1 << 21), /*!< %build build dependency. */ |
michael@13 | 2141 | RPMSENSE_SCRIPT_INSTALL = (1 << 22),/*!< %install build dependency. */ |
michael@13 | 2142 | RPMSENSE_SCRIPT_CLEAN = (1 << 23), /*!< %clean build dependency. */ |
michael@13 | 2143 | +#ifdef OPENPKG |
michael@13 | 2144 | + RPMSENSE_SCRIPT_TEST = (1 << 29), /*!< %test build dependency. */ |
michael@13 | 2145 | +#endif |
michael@13 | 2146 | RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ), /*!< rpmlib(feature) dependency. */ |
michael@13 | 2147 | /*@-enummemuse@*/ |
michael@13 | 2148 | RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< @todo Implement %triggerprein. */ |
michael@13 | 2149 | |
michael@13 | 2150 | +--------------------------------------------------------------------------- |
michael@13 | 2151 | | Add support for the OpenPKG custom .spec file sections %track |
michael@13 | 2152 | | (package build-time feature for performing vendor source tracking) |
michael@13 | 2153 | | and %test (package install-time feature for performing package |
michael@13 | 2154 | | run-time tests). |
michael@13 | 2155 | | Additionally, add support for "Class" header. |
michael@13 | 2156 | +--------------------------------------------------------------------------- |
michael@13 | 2157 | Index: rpmdb/tagtbl.c |
michael@13 | 2158 | --- rpmdb/tagtbl.c 2 Jul 2003 20:20:27 -0000 1.1.1.4 |
michael@13 | 2159 | +++ rpmdb/tagtbl.c 30 Jan 2004 17:06:32 -0000 1.2 |
michael@13 | 2160 | @@ -135,6 +135,12 @@ |
michael@13 | 2161 | { "RPMTAG_FILEDEPENDSN", 1144, }, |
michael@13 | 2162 | { "RPMTAG_DEPENDSDICT", 1145, }, |
michael@13 | 2163 | { "RPMTAG_SOURCEPKGID", 1146, }, |
michael@13 | 2164 | +#ifdef OPENPKG |
michael@13 | 2165 | + { "RPMTAG_TRACK", 1200, }, |
michael@13 | 2166 | + { "RPMTAG_TEST", 1201, }, |
michael@13 | 2167 | + { "RPMTAG_TESTPROG", 1202, }, |
michael@13 | 2168 | + { "RPMTAG_CLASS", 1203, }, |
michael@13 | 2169 | +#endif |
michael@13 | 2170 | { NULL, 0 } |
michael@13 | 2171 | }; |
michael@13 | 2172 | |
michael@13 | 2173 | |
michael@13 | 2174 | +--------------------------------------------------------------------------- |
michael@13 | 2175 | | Add support for "Class" header. |
michael@13 | 2176 | +--------------------------------------------------------------------------- |
michael@13 | 2177 | Index: build/parsePreamble.c |
michael@13 | 2178 | --- build/parsePreamble.c 3 Mar 2003 20:46:34 -0000 1.1.1.13 |
michael@13 | 2179 | +++ build/parsePreamble.c 6 Feb 2004 15:37:58 -0000 1.3 |
michael@13 | 2180 | @@ -21,6 +21,7 @@ |
michael@13 | 2181 | RPMTAG_LICENSE, |
michael@13 | 2182 | RPMTAG_PACKAGER, |
michael@13 | 2183 | RPMTAG_DISTRIBUTION, |
michael@13 | 2184 | + RPMTAG_CLASS, |
michael@13 | 2185 | RPMTAG_DISTURL, |
michael@13 | 2186 | RPMTAG_VENDOR, |
michael@13 | 2187 | RPMTAG_ICON, |
michael@13 | 2188 | @@ -327,6 +328,7 @@ |
michael@13 | 2189 | { RPMTAG_VENDOR, "%{vendor}" }, |
michael@13 | 2190 | { RPMTAG_PACKAGER, "%{packager}" }, |
michael@13 | 2191 | { RPMTAG_DISTRIBUTION, "%{distribution}" }, |
michael@13 | 2192 | + { RPMTAG_CLASS, "%{class}" }, |
michael@13 | 2193 | { RPMTAG_DISTURL, "%{disturl}" }, |
michael@13 | 2194 | { -1, NULL } |
michael@13 | 2195 | }; |
michael@13 | 2196 | @@ -537,6 +547,7 @@ |
michael@13 | 2197 | (void) stashSt(spec, pkg->header, tag, lang); |
michael@13 | 2198 | /*@fallthrough@*/ |
michael@13 | 2199 | case RPMTAG_DISTRIBUTION: |
michael@13 | 2200 | + case RPMTAG_CLASS: |
michael@13 | 2201 | case RPMTAG_VENDOR: |
michael@13 | 2202 | case RPMTAG_LICENSE: |
michael@13 | 2203 | case RPMTAG_PACKAGER: |
michael@13 | 2204 | @@ -743,6 +754,7 @@ |
michael@13 | 2205 | {RPMTAG_LICENSE, 0, 0, "copyright"}, |
michael@13 | 2206 | {RPMTAG_LICENSE, 0, 0, "license"}, |
michael@13 | 2207 | {RPMTAG_DISTRIBUTION, 0, 0, "distribution"}, |
michael@13 | 2208 | + {RPMTAG_CLASS, 0, 0, "class"}, |
michael@13 | 2209 | {RPMTAG_DISTURL, 0, 0, "disturl"}, |
michael@13 | 2210 | {RPMTAG_VENDOR, 0, 0, "vendor"}, |
michael@13 | 2211 | {RPMTAG_GROUP, 0, 1, "group"}, |