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