1 diff -ur rpm-4.0.2/build/build.c rpm-4.0.2-test/build/build.c
2 --- rpm-4.0.2/build/build.c Tue Jan 16 00:10:04 2001
3 +++ rpm-4.0.2-test/build/build.c Fri May 24 20:46:26 2002
5 mTemplate = "%{__spec_build_template}";
6 mPost = "%{__spec_build_post}";
11 + mTemplate = "%{__spec_build_template}";
12 + mPost = "%{__spec_build_post}";
14 case RPMBUILD_INSTALL:
18 (rc = doScript(spec, RPMBUILD_BUILD, NULL, NULL, test)))
21 + if ((what & RPMBUILD_TEST) &&
22 + (rc = doScript(spec, RPMBUILD_TEST, NULL, NULL, test)))
25 if ((what & RPMBUILD_INSTALL) &&
26 (rc = doScript(spec, RPMBUILD_INSTALL, NULL, NULL, test)))
28 diff -ur rpm-4.0.2/build/parseBuildInstallClean.c rpm-4.0.2-test/build/parseBuildInstallClean.c
29 --- rpm-4.0.2/build/parseBuildInstallClean.c Tue Jan 16 00:10:04 2001
30 +++ rpm-4.0.2-test/build/parseBuildInstallClean.c Fri May 24 20:46:26 2002
32 } else if (parsePart == PART_CLEAN) {
35 + } else if (parsePart == PART_TEST) {
36 + sbp = &(spec->test);
41 diff -ur rpm-4.0.2/build/parsePreamble.c rpm-4.0.2-test/build/parsePreamble.c
42 --- rpm-4.0.2/build/parsePreamble.c Tue Jan 16 00:10:04 2001
43 +++ rpm-4.0.2-test/build/parsePreamble.c Fri May 24 20:46:26 2002
45 { "prep", RPMSENSE_SCRIPT_PREP },
46 { "build", RPMSENSE_SCRIPT_BUILD },
47 { "install", RPMSENSE_SCRIPT_INSTALL },
48 + { "test", RPMSENSE_SCRIPT_TEST },
49 { "clean", RPMSENSE_SCRIPT_CLEAN },
52 diff -ur rpm-4.0.2/build/parseSpec.c rpm-4.0.2-test/build/parseSpec.c
53 --- rpm-4.0.2/build/parseSpec.c Fri May 24 20:47:45 2002
54 +++ rpm-4.0.2-test/build/parseSpec.c Fri May 24 20:46:26 2002
56 { PART_PREP, 0, "%prep"},
57 { PART_BUILD, 0, "%build"},
58 { PART_INSTALL, 0, "%install"},
59 + { PART_TEST, 0, "%test"},
60 { PART_CLEAN, 0, "%clean"},
61 { PART_PREUN, 0, "%preun"},
62 { PART_POSTUN, 0, "%postun"},
69 parsePart = parseBuildInstallClean(spec, parsePart);
71 diff -ur rpm-4.0.2/build/rpmbuild.h rpm-4.0.2-test/build/rpmbuild.h
72 --- rpm-4.0.2/build/rpmbuild.h Fri May 24 20:47:45 2002
73 +++ rpm-4.0.2-test/build/rpmbuild.h Fri May 24 20:46:26 2002
75 typedef enum rpmBuildFlags_e {
76 RPMBUILD_PREP = (1 << 0), /*!< Execute %%prep. */
77 RPMBUILD_BUILD = (1 << 1), /*!< Execute %%build. */
78 - RPMBUILD_INSTALL = (1 << 2), /*!< Execute %%install. */
79 - RPMBUILD_CLEAN = (1 << 3), /*!< Execute %%clean. */
80 - RPMBUILD_FILECHECK = (1 << 4), /*!< Check %%files manifest. */
81 - RPMBUILD_PACKAGESOURCE = (1 << 5), /*!< Create source package. */
82 - RPMBUILD_PACKAGEBINARY = (1 << 6), /*!< Create binary package(s). */
83 - RPMBUILD_RMSOURCE = (1 << 7), /*!< Remove source(s) and patch(s). */
84 - RPMBUILD_RMBUILD = (1 << 8), /*!< Remove build sub-tree. */
85 - RPMBUILD_STRINGBUF = (1 << 9), /*!< only for doScript() */
86 - RPMBUILD_RMSPEC = (1 << 10) /*!< Remove spec file. */
87 + RPMBUILD_TEST = (1 << 2), /*!< Execute %%test. */
88 + RPMBUILD_INSTALL = (1 << 3), /*!< Execute %%install. */
89 + RPMBUILD_CLEAN = (1 << 4), /*!< Execute %%clean. */
90 + RPMBUILD_FILECHECK = (1 << 5), /*!< Check %%files manifest. */
91 + RPMBUILD_PACKAGESOURCE = (1 << 6), /*!< Create source package. */
92 + RPMBUILD_PACKAGEBINARY = (1 << 7), /*!< Create binary package(s). */
93 + RPMBUILD_RMSOURCE = (1 << 8), /*!< Remove source(s) and patch(s). */
94 + RPMBUILD_RMBUILD = (1 << 9), /*!< Remove build sub-tree. */
95 + RPMBUILD_STRINGBUF = (1 << 10), /*!< only for doScript() */
96 + RPMBUILD_RMSPEC = (1 << 11) /*!< Remove spec file. */
101 PART_PREAMBLE = 1, /*!< */
102 PART_PREP = 2, /*!< */
103 PART_BUILD = 3, /*!< */
104 - PART_INSTALL = 4, /*!< */
105 - PART_CLEAN = 5, /*!< */
106 - PART_FILES = 6, /*!< */
107 - PART_PRE = 7, /*!< */
108 - PART_POST = 8, /*!< */
109 - PART_PREUN = 9, /*!< */
110 - PART_POSTUN = 10, /*!< */
111 - PART_DESCRIPTION = 11, /*!< */
112 - PART_CHANGELOG = 12, /*!< */
113 - PART_TRIGGERIN = 13, /*!< */
114 - PART_TRIGGERUN = 14, /*!< */
115 - PART_VERIFYSCRIPT = 15, /*!< */
116 - PART_BUILDARCHITECTURES= 16,/*!< */
117 - PART_TRIGGERPOSTUN = 17, /*!< */
118 - PART_LAST = 18 /*!< */
119 + PART_TEST = 4, /*!< */
120 + PART_INSTALL = 5, /*!< */
121 + PART_CLEAN = 6, /*!< */
122 + PART_FILES = 7, /*!< */
123 + PART_PRE = 8, /*!< */
124 + PART_POST = 9, /*!< */
125 + PART_PREUN = 10, /*!< */
126 + PART_POSTUN = 11, /*!< */
127 + PART_DESCRIPTION = 12, /*!< */
128 + PART_CHANGELOG = 13, /*!< */
129 + PART_TRIGGERIN = 14, /*!< */
130 + PART_TRIGGERUN = 15, /*!< */
131 + PART_VERIFYSCRIPT = 16, /*!< */
132 + PART_BUILDARCHITECTURES= 17,/*!< */
133 + PART_TRIGGERPOSTUN = 18, /*!< */
134 + PART_LAST = 19 /*!< */
137 #define STRIP_NOTHING 0
138 diff -ur rpm-4.0.2/build/rpmspec.h rpm-4.0.2-test/build/rpmspec.h
139 --- rpm-4.0.2/build/rpmspec.h Thu Jan 11 15:15:15 2001
140 +++ rpm-4.0.2-test/build/rpmspec.h Fri May 24 20:46:26 2002
142 /*@dependent@*/ struct MacroContext *macros;
144 /*@only@*/ StringBuf prep; /*!< %prep scriptlet. */
145 +/*@only@*/ StringBuf test; /*!< %test scriptlet. */
146 /*@only@*/ StringBuf build; /*!< %build scriptlet. */
147 /*@only@*/ StringBuf install; /*!< %install scriptlet. */
148 /*@only@*/ StringBuf clean; /*!< %clean scriptlet. */
149 diff -ur rpm-4.0.2/lib/poptBT.c rpm-4.0.2-test/lib/poptBT.c
150 --- rpm-4.0.2/lib/poptBT.c Wed Jan 3 20:29:11 2001
151 +++ rpm-4.0.2-test/lib/poptBT.c Fri May 24 20:46:26 2002
153 #define POPT_BL 0x626c
154 #define POPT_BP 0x6270
155 #define POPT_BS 0x6273
156 +#define POPT_BT 0x6274
157 #define POPT_TA 0x7461
158 #define POPT_TB 0x7462
159 #define POPT_TC 0x7463
161 #define POPT_TL 0x746c
162 #define POPT_TP 0x7470
163 #define POPT_TS 0x7473
164 +#define POPT_TT 0x7474
166 extern int _noDirTokens;
167 static int force = 0;
181 if (rba->buildMode == ' ') {
182 rba->buildMode = (opt->val >> 8) & 0xff;
184 { "bc", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BC,
185 N_("build through %build (%prep, then compile) from <specfile>"),
187 + { "bt", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BT,
188 + N_("build through %test (%prep, %build then test) from <specfile>"),
189 + N_("<specfile>") },
190 { "bi", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BI,
191 N_("build through %install (%prep, %build, then install) from <specfile>"),
194 { "tc", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TC,
195 N_("build through %build (%prep, then compile) from <tarball>"),
197 + { "tt", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_BT,
198 + N_("build through %test (%prep, %build then test) from <tarball>"),
200 { "ti", 0, POPT_ARGFLAG_ONEDASH, 0, POPT_TI,
201 N_("build through %install (%prep, %build, then install) from <tarball>"),
203 diff -ur rpm-4.0.2/lib/rpmlib.h rpm-4.0.2-test/lib/rpmlib.h
204 --- rpm-4.0.2/lib/rpmlib.h Fri May 24 20:47:45 2002
205 +++ rpm-4.0.2-test/lib/rpmlib.h Fri May 24 20:46:26 2002
206 @@ -356,10 +356,11 @@
207 RPMSENSE_MULTILIB = (1 << 19),
208 RPMSENSE_SCRIPT_PREP = (1 << 20), /*!< %prep build dependency. */
209 RPMSENSE_SCRIPT_BUILD = (1 << 21), /*!< %build build dependency. */
210 - RPMSENSE_SCRIPT_INSTALL = (1 << 22),/*!< %install build dependency. */
211 - RPMSENSE_SCRIPT_CLEAN = (1 << 23), /*!< %clean build dependency. */
212 - RPMSENSE_RPMLIB = ((1 << 24) | RPMSENSE_PREREQ), /*!< rpmlib(feature) dependency. */
213 - RPMSENSE_TRIGGERPREIN = (1 << 25) /*!< @todo Implement %triggerprein. */
214 + RPMSENSE_SCRIPT_TEST = (1 << 22), /*!< %test build dependency. */
215 + RPMSENSE_SCRIPT_INSTALL = (1 << 23),/*!< %install build dependency. */
216 + RPMSENSE_SCRIPT_CLEAN = (1 << 24), /*!< %clean build dependency. */
217 + RPMSENSE_RPMLIB = ((1 << 25) | RPMSENSE_PREREQ), /*!< rpmlib(feature) dependency. */
218 + RPMSENSE_TRIGGERPREIN = (1 << 26) /*!< @todo Implement %triggerprein. */
223 RPMSENSE_FIND_REQUIRES | \
224 RPMSENSE_SCRIPT_PREP | \
225 RPMSENSE_SCRIPT_BUILD | \
226 + RPMSENSE_SCRIPT_TEST | \
227 RPMSENSE_SCRIPT_INSTALL | \
228 RPMSENSE_SCRIPT_CLEAN | \
230 diff -ur rpm-4.0.2/rpmqv.c rpm-4.0.2-test/rpmqv.c
231 --- rpm-4.0.2/rpmqv.c Mon Mar 12 19:20:29 2001
232 +++ rpm-4.0.2-test/rpmqv.c Fri May 24 20:46:26 2002
233 @@ -1316,7 +1316,7 @@
234 if (!poptPeekArg(optCon))
235 argerror(_("no packages files given for rebuild"));
237 - ba->buildAmount = RPMBUILD_PREP | RPMBUILD_BUILD | RPMBUILD_INSTALL;
238 + ba->buildAmount = RPMBUILD_PREP | RPMBUILD_BUILD | RPMBUILD_TEST | RPMBUILD_INSTALL;
239 if (bigMode == MODE_REBUILD) {
240 ba->buildAmount |= RPMBUILD_PACKAGEBINARY;
241 ba->buildAmount |= RPMBUILD_RMSOURCE;
242 @@ -1358,6 +1358,11 @@
243 if ((ba->buildChar == 'i') && ba->shortCircuit)
247 + ba->buildAmount |= RPMBUILD_TEST;
248 + if ((ba->buildChar == 't') && ba->shortCircuit)
252 ba->buildAmount |= RPMBUILD_BUILD;
253 if ((ba->buildChar == 'c') && ba->shortCircuit)
254 --- rpm-4.0.2.new/build/spec.c~ Tue Jan 16 00:10:04 2001
255 +++ rpm-4.0.2.new/build/spec.c Fri May 24 22:07:42 2002
257 spec->rootURL = NULL;
261 spec->install = NULL;
266 freeStringBuf(spec->prep); spec->prep = NULL;
267 freeStringBuf(spec->build); spec->build = NULL;
268 + freeStringBuf(spec->test); spec->test = NULL;
269 freeStringBuf(spec->install); spec->install = NULL;
270 freeStringBuf(spec->clean); spec->clean = NULL;
272 --- rpm-4.0.2.new/macros.in~ Fri May 24 21:10:35 2002
273 +++ rpm-4.0.2.new/macros.in Fri May 24 22:11:11 2002
275 #%{__spec_autodep_post}\
278 +%__spec_test_shell %{___build_shell}
279 +%__spec_test_args %{___build_args}
280 +%__spec_test_cmd %{___build_cmd}
281 +%__spec_test_pre %{___build_pre}
282 +%__spec_test_body %{___build_body}
283 +%__spec_test_post %{___build_post}
284 +%__spec_test_template #!%{__spec_test_shell}\
288 %__spec_clean_shell %{___build_shell}
289 %__spec_clean_args %{___build_args}
290 %__spec_clean_cmd %{___build_cmd}
291 --- rpm-4.0.2.new/build.c~ Tue Jan 16 00:10:04 2001
292 +++ rpm-4.0.2.new/build.c Fri May 24 22:02:03 2002
295 /* Parse the spec file */
296 #define _anyarch(_f) \
297 -(((_f)&(RPMBUILD_PREP|RPMBUILD_BUILD|RPMBUILD_INSTALL|RPMBUILD_PACKAGEBINARY)) == 0)
298 +(((_f)&(RPMBUILD_PREP|RPMBUILD_BUILD|RPMBUILD_TEST|RPMBUILD_INSTALL|RPMBUILD_PACKAGEBINARY)) == 0)
299 if (parseSpec(&spec, specURL, ba->rootdir, buildRootURL, 0, passPhrase,
300 cookie, _anyarch(buildAmount), ba->force)) {
302 --- rpm-4.0.2/rpmpopt.in~ Fri May 24 21:16:31 2002
303 +++ rpm-4.0.2/rpmpopt.in Fri May 24 22:19:33 2002
305 rpm exec --bl rpmb -bl
306 rpm exec --ba rpmb -ba
307 rpm exec --bb rpmb -bb
308 +rpm exec --bt rpmb -bt
309 rpm exec --bs rpmb -bs
310 rpm exec --tp rpmb -tp
311 rpm exec --tc rpmb -tc
313 rpm exec --tl rpmb -tl
314 rpm exec --ta rpmb -ta
315 rpm exec --tb rpmb -tb
316 +rpm exec --tt rpmb -tt
317 rpm exec --ts rpmb -ts
318 rpm exec --rebuild rpmb --rebuild
319 rpm exec --recompile rpmb --recompile