xref: /openbsd/regress/usr.sbin/pkg_add/Makefile (revision 3ca40aab)
1# $OpenBSD: Makefile,v 1.89 2023/10/23 08:38:58 espie Exp $
2
3REGRESS_TARGETS=pkgnames pkgpaths signatures depends-check longnames pkgcfl \
4	collision-check1 collision-check2 collision-check3 \
5	collision-check4 collision-check5 collision-check6 \
6	collision-check7 \
7	update-check1 partial-update-test conflict-update \
8	merge-update split-update big-merge family-circus missing \
9	lib-report1 lib-report2 lib-report3 loop1 \
10	lib-report4 lib-report5 lib-report6 lib-report7 \
11	qttest gstest exotest inter1 manual1 oldlib1 \
12	usertest-1 usertest-2 usertest-3 cups-bug nettle-bug \
13	tying-1 tying-2 tag-delete setsprint temp-error1 \
14	temp-error2 temp-error2-as-root temp-error3 temp-error4 \
15	cksum-error system-version XXX-warning symlink no-symlink \
16	oldlib2
17
18REGRESS_ROOT_TARGETS = temp-error2-as-root
19
20# lots of tests that really require a vstat overhaul
21REGRESS_EXPECTED_FAILURES = collision-check1 collision-check2 \
22	collision-check5 collision-check6 collision-check7 \
23	exotest tying-2
24
25PERLSCRIPT = perl -I ${.CURDIR} ${.CURDIR}
26
27WAVE_PLIST=-DREGRESSION_TESTING+=plist_checks
28STUB=-DREGRESSION_TESTING+=stub
29
30ADD_PKG = ${PERLSCRIPT}/my add -Dchecksum
31DELETE_PKG = ${PERLSCRIPT}/my delete -Dchecksum
32INFO_PKG = ${PERLSCRIPT}/my info
33CREATE_PKG = ${PERLSCRIPT}/mycreate
34MKPLIST = ${PERLSCRIPT}/mkplist
35POPULATE = ${PERLSCRIPT}/populate
36EMPTY = -f /dev/null
37
38# a lot of packages are populate/create_pkg with the same parameters.
39WITH = set -A args --
40CPKG = ; ${POPULATE} $${args[@]}; ${CREATE_PKG} $${args[@]}
41
42LONG1 = iamareallongfilenamethatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42
43LONG2 = iamanotherreallygfilenamethatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42
44LONG3 = iamanotherreallylonglinkthatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42
45LONG4 = iamanotherreallylonghardlinkthatcantberepresentedcorrectlyinatararchivebutwewantittohappenanywaysohmygodaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa42
46
47NUMBERS != jot 50
48.for i in ${NUMBERS}
49S$i ?= ${.OBJDIR}/src$i
50SRC$i ?= ${S$i}/usr/local
51D$i ?= ${.OBJDIR}/dest$i
52DEST$i ?= ${D$i}/usr/local
53.endfor
54
55# current maxes (used): D49, SRC30, plist27, rep7
56pkgnames:
57	${PERLSCRIPT}/check-name
58
59pkgcfl:
60	${PERLSCRIPT}/check-cfl
61
62setsprint:
63	${PERLSCRIPT}/check-beautify
64
65pkgpaths:
66	${PERLSCRIPT}/check-path
67
68signatures:
69	-rm -f signatures.out
70	${PERLSCRIPT}/check-sig 2>signatures.out
71	diff -u signatures.out ${.CURDIR}/signatures.ref
72
73depends-check: rep0/a-0.tgz rep0/b-0.tgz rep1/a-1.tgz rep1/b-1.tgz
74	@-rm -rf ${D1}
75	@ROOT=${D1} ${ADD_PKG} rep0/a-0.tgz rep0/b-0.tgz
76	@ROOT=${D1} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u a b
77	@ROOT=${D1} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} -D downgrade -u a b
78
79longnames: rep1/c-0.tgz
80	@-rm -rf ${D2}
81	@ROOT=${D2} ${ADD_PKG} rep1/c-0.tgz
82	@test -f ${DEST2}/${LONG1}
83	@test -f ${DEST2}/${LONG2}
84	@cd ${DEST2} && test -h ${LONG3} && test `readlink ${LONG3}` = ${LONG2}
85	@cd ${DEST2} && test `stat -f '%i' ${LONG1}` = `stat -f '%i' ${LONG4}`
86
87collision-check1: rep1/d-0.tgz rep1/e-0.tgz
88	@-rm -rf ${D3}
89	@ROOT=${D3} ${ADD_PKG} rep1/d-0.tgz
90	@ROOT=${D3} ${ADD_PKG} rep1/e-0.tgz
91
92collision-check2: rep1/d-0.tgz rep1/e-0.tgz
93	@-rm -rf ${D4}
94	@ROOT=${D4} ${ADD_PKG} rep1/d-0.tgz
95	@-rm -rf ${D4}/pkgdb/d-0
96	@ROOT=${D4} ${ADD_PKG} -I rep1/e-0.tgz
97
98collision-check3: rep1/d-0.tgz rep1/f-0.tgz
99	@-rm -rf ${D5}
100	@ROOT=${D5} ${ADD_PKG} rep1/d-0.tgz rep1/f-0.tgz
101	@-rm -rf ${D5}/pkgdb/d-0
102	@ROOT=${D5} ${ADD_PKG} -D repair rep1/d-0.tgz
103	PKG_DBDIR=${D5}/pkgdb pkg_info -qR d
104
105collision-check4: rep1/d-0.tgz rep1/e-0.tgz
106	@-rm -rf ${D6}
107	@ROOT=${D6} ${ADD_PKG} rep1/d-0.tgz
108	@-rm -rf ${D6}/pkgdb/d-0
109	@ROOT=${D6} ${ADD_PKG} -D repair rep1/e-0.tgz
110
111collision-check5: rep1/d-0.tgz rep1/e-0.tgz
112	@-rm -rf ${D21}
113	@ROOT=${D21} ${ADD_PKG} -n rep1/d-0.tgz rep1/e-0.tgz
114
115collision-check6: rep1/d-0.tgz rep1/e-0.tgz
116	@-rm -rf ${D7}
117	@ROOT=${D7} ${ADD_PKG} rep1/d-0.tgz
118	@-rm -rf ${D7}/pkgdb/d-0
119	@ROOT=${D7} ${ADD_PKG} -D removecollisions rep1/d-0.tgz
120
121collision-check7: rep0/cola-0.tgz rep1/cola-1.tgz rep1/colb-0.tgz
122	@-rm -rf ${D32}
123	@ROOT=${D32} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} cola-0
124	@ROOT=${D32} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -r cola-1
125
126update-check1: rep0/g-0.tgz rep1/g-0.tgz rep0/ga-0.tgz rep1/ga-0.tgz \
127	rep0/gb-0.tgz rep1/gb-0p0.tgz rep0/gc-0.tgz rep1/gc-0.tgz \
128	rep0/gd-0.tgz rep1/gd-1.tgz rep0/ge-0.tgz rep1/ge-1.tgz \
129	rep0/gf-1.tgz rep1/gf-0.tgz rep0/gg-0.tgz rep1/gg-0.tgz
130	@-rm -rf ${D8}
131	@ROOT=${D8} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} g ga gb gc gd ge gf gg
132	@-ROOT=${D8} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -Iu
133	@PKG_DBDIR=${D8}/pkgdb pkg_info |diff - ${.CURDIR}/list7.out
134	@ROOT=${D8} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u -Dupdate_gd
135	@PKG_DBDIR=${D8}/pkgdb pkg_info |diff - ${.CURDIR}/list8.out
136
137list-check: rep1/a-1.tgz rep1/b-1.tgz rep1/c-0.tgz rep1/d-0.tgz \
138	rep1/e-0.tgz rep1/f-0.tgz rep1/g-0.tgz
139	@-rm -rf ${D9}
140	@ROOT=${D9} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -l ${.CURDIR}/list
141	@PKG_DBDIR=${D9}/pkgdb pkg_info -q|diff - ${.CURDIR}/list.out
142
143partial-update-test: rep0/h-0.tgz rep0/i-0.tgz rep0/j-0.tgz \
144	rep1/h-1.tgz rep1/i-1.tgz rep1/j-1.tgz
145	@-rm -rf ${D10}
146	@ROOT=${D10} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} h j
147	@ROOT=${D10} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u h
148	@PKG_DBDIR=${D10}/pkgdb pkg_info -q|diff - ${.CURDIR}/list2.out
149
150conflict-update: rep0/k-0.tgz rep0/l-0.tgz rep1/k-1.tgz rep1/l-1.tgz
151	@-rm -rf ${D11}
152	@ROOT=${D11} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} k l
153	@ROOT=${D11} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u k
154	@PKG_DBDIR=${D11}/pkgdb pkg_info -q|diff - ${.CURDIR}/list3.out
155
156merge-update: rep0/m-0.tgz rep0/n-0.tgz rep1/m-1.tgz rep1/n-1.tgz
157	@-rm -rf ${D12}
158	@ROOT=${D12} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} m n
159	@ROOT=${D12} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u n
160	@PKG_DBDIR=${D12}/pkgdb pkg_info -q|diff - ${.CURDIR}/list4.out
161
162split-update: rep0/o-0.tgz rep1/o-1.tgz rep1/p-0.tgz
163	@-rm -rf ${D13}
164	@ROOT=${D13} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o
165	@ROOT=${D13} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u o
166	@PKG_DBDIR=${D13}/pkgdb pkg_info -q |diff - ${.CURDIR}/list5.out
167
168big-merge: rep0/q1-0.tgz rep0/q2-0.tgz rep0/q3-0.tgz rep0/q4-0.tgz \
169	rep0/q5-0.tgz rep0/q6-0.tgz rep1/q5-1.tgz rep1/q6-1.tgz \
170	rep1/q1-1.tgz rep1/q2-1.tgz rep1/q3-1.tgz rep1/q4-1.tgz
171	@-rm -rf ${D14}
172	@ROOT=${D14} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} q1 q2 q3 q4 q5 q6
173	@ROOT=${D14} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -x -D update -u 2>&1 |fgrep XXX|fgrep -v @|diff - ${.CURDIR}/list6.out
174
175family-circus: rep0/glib-0.tgz rep0/fam-0.tgz rep1/fam-1.tgz rep1/glib-1.tgz rep1/gamin-0.tgz
176	@-rm -rf ${D15}
177	@ROOT=${D15} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} glib
178	@ROOT=${D15} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u glib
179
180missing: rep1/missa-0.tgz rep1/missb-0.tgz rep1/missc-0.tgz rep1/missd-0.tgz rep1/missf-0.tgz
181	@-rm -rf ${D16}
182	@ROOT=${D16} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} missc
183	@-ROOT=${D15} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} missa missb missf
184
185lib-report1: rep0/o1-0.tgz rep1/o1-1.tgz rep1/p1-0.tgz
186	@-rm -rf ${D17}
187	@ROOT=${D17} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o1
188	-@ROOT=${D17} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u o1
189
190lib-report2: rep0/o2-0.tgz rep1/o2-1.tgz rep1/p2-0.tgz
191	@-rm -rf ${D18}
192	@ROOT=${D18} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o2
193	-@ROOT=${D18} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u o2
194
195lib-report3: rep0/o3-0.tgz
196	@-rm -rf ${D19}
197	-@ROOT=${D19} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o3
198
199lib-report4: rep0/o4-0.tgz rep0/p4-0.tgz
200	@-rm -rf ${D22}
201	-@ROOT=${D22} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o4
202
203lib-report5: rep0/o5-0.tgz rep0/p4-0.tgz
204	@-rm -rf ${D23}
205	-@ROOT=${D23} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o5
206
207lib-report6: rep0/o6-0.tgz rep0/p4-0.tgz rep0/oo6-0.tgz
208	@-rm -rf ${D24}
209	-@ROOT=${D24} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o6 oo6
210
211lib-report7: rep0/o7-0.tgz rep0/p4-0.tgz
212	@-rm -rf ${D25}
213	-@ROOT=${D25} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} o7
214
215oldlib1: rep0/ol-0.tgz rep1/ol-1.tgz
216	@-rm -rf ${D33}
217	-@ROOT=${D33} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} ol
218	-@ROOT=${D33} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u ol
219	@ROOT=${D33} ${INFO_PKG} -f .libs-ol-0|grep '^lib/subdir/$$'
220
221loop1: rep0/ocaml-3.11.1.tgz rep0/tcl-8.5.7.tgz rep0/tk-8.5.7.tgz
222	@-rm -rf ${D20}
223	-@ROOT=${D20} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} -z ocaml-3.11.1p0 tcl-8.5.8 tk-8.5.8
224
225qttest: rep0/qt-0.tgz rep1/qt-1.tgz
226	@-rm -rf ${D26}
227	@ROOT=${D26} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} qt
228	@ROOT=${D26} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u qt
229
230gstest: rep0/gs-0.tgz rep0/gs-0-no_x11.tgz rep0/purple-0.tgz
231	@-rm -rf ${D27}
232	-@ROOT=${D27} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} purple-0
233	@if ROOT=${D27} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} -rI gs-0-no_x11; then exit 1; fi
234
235exotest: rep0/exo-0.tgz rep1/exo-1.tgz
236	@-rm -rf ${D28}
237	@ROOT=${D28} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} exo
238	@ROOT=${D28} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -Iu exo
239
240thunarvfstest: rep0/thunar-0.tgz rep0/q-0.tgz rep1/thunar-vfs-1.tgz rep1/q-1.tgz rep1/thunar-1.tgz
241	@-rm -rf ${D29}
242	@ROOT=${D29} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} q
243	@ROOT=${D29} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u q
244
245# test for manual install
246manual1: rep0/ma-0.tgz rep0/mb-0.tgz rep0/mc-0.tgz rep0/md-0.tgz \
247	rep1/ma-1.tgz rep1/mb-1.tgz rep1/me-1.tgz rep1/md-1.tgz
248	@-rm -rf ${D30}
249	@ROOT=${D30} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} md mb
250	@ROOT=${D30} ${INFO_PKG} -mq|diff -u - ${.CURDIR}/list9.out
251	@-ROOT=${D30} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u
252	@ROOT=${D30} ${INFO_PKG} -mq|diff -u - ${.CURDIR}/list10.out
253	@ROOT=${D30} ${DELETE_PKG} -a
254	@ROOT=${D30} ${INFO_PKG} -q|diff -u - ${.CURDIR}/list11.out
255
256inter1: rep0/inta-0.tgz rep0/intb-0.tgz
257	-rm -rf ${D31}
258	@ROOT=${D31} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} inta intb
259	@ROOT=${D31} ${DELETE_PKG} inta intb
260
261system-version: rep0/syst-0.tgz rep1/syst-0.tgz
262	-rm -rf ${D45}
263	@ROOT=${D45} PKG_PATH=${.OBJDIR}/rep0 ${ADD_PKG} syst
264	@ROOT=${D45} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u
265	@ROOT=${D45} ${INFO_PKG} -qS syst |diff -u - ${.CURDIR}/system-version.ref
266
267plist1:
268	@${MKPLIST} ${LONG1} ${LONG2} ${LONG3} ${LONG4} >$@
269
270plist2:
271	@${MKPLIST} a b c f g >$@
272
273plist3:
274	@${MKPLIST} a c d f g >$@
275
276plist4:
277	@${MKPLIST} "@option always-update" >$@
278
279plist5:
280	@${MKPLIST} "@ask-update gd-<1 Make sure yadada is backed up" >$@
281
282plist6:
283	@${MKPLIST} "@conflict l-<1" >$@
284
285plist7:
286	@${MKPLIST} "@conflict m-<1" "@pkgpath t/m" >$@
287
288plist8:
289	@${MKPLIST} "@conflict o-<1" "@pkgpath t/o" '@lib lib/libcoincoin.so.$${LIBcoincoin_VERSION}' >$@
290
291plist9:
292	@${MKPLIST} "@conflict gamin-*" >$@
293
294plist10:
295	@${MKPLIST} "@conflict fam-*" "@pkgpath t/fam" >$@
296
297plist11:
298	@${MKPLIST} "@conflict missc-*" >$@
299
300plist12:
301	@${MKPLIST} '@lib lib/liba.so.$${LIBa_VERSION}' >$@
302
303plist13:
304	@${MKPLIST} phonon/ phonon/a >$@
305
306plist14:
307	@${MKPLIST} phonon >$@
308
309plist15:
310	@${MKPLIST} foo/ foo/a bar >$@
311
312plist16:
313	@${MKPLIST} foo/ foo/a bar/ bar/a >$@
314
315plist17:
316	@${MKPLIST} '@lib lib/libthunar-vfs.so.$${LIBthunar-vfs_VERSION}' >$@
317
318plist18:
319	@${MKPLIST} "@conflict thunar-<1" '@lib lib/libthunar-vfs.so.$${LIBthunar-vfs_VERSION}' >$@
320
321plist19:
322	@${MKPLIST} a >$@
323
324plist20:
325	@${MKPLIST} "@conflict cola-<1" a >$@
326
327plist21:
328	@${MKPLIST} '@lib lib/subdir/libol.so.$${LIBol_VERSION}' >$@
329
330rep0/a-0.tgz:
331	@${CREATE_PKG} -P't/b:b-*:b-0' ${EMPTY} $@
332
333rep1/a-1.tgz rep0/b-0.tgz rep0/i-0.tgz rep0/j-0.tgz rep1/j-1.tgz \
334rep1/i-1.tgz rep0/k-0.tgz rep0/l-0.tgz rep1/l-1.tgz rep0/m-0.tgz \
335rep0/n-0.tgz rep1/m-1.tgz rep0/o-0.tgz rep0/fam-0.tgz \
336rep0/o1-0.tgz rep0/o2-0.tgz rep0/ga-0.tgz \
337rep0/gb-0.tgz rep1/gb-0p0.tgz rep0/gd-0.tgz rep0/ge-0.tgz \
338rep0/gf-1.tgz rep1/gf-0.tgz \
339rep1/missc-0.tgz rep0/q5-0.tgz rep1/q5-1.tgz \
340rep0/ma-0.tgz rep1/ma-1.tgz rep0/mc-0.tgz rep1/me-1.tgz \
341rep0/tcl-8.5.7.tgz:
342	@${CREATE_PKG} ${EMPTY} $@
343
344rep0/md-0.tgz:
345	@${CREATE_PKG} -P't/ma:ma-*:ma-0' -P't/mb:mb-*:mb-0' -P't/mc:mc-*:mc-0' ${EMPTY} $@
346rep1/md-1.tgz:
347	@${CREATE_PKG} -P't/ma:ma-*:ma-1' -P't/mb:mb-*:mb-1' -P't/me:me-*:me-1' ${EMPTY} $@
348rep0/mb-0.tgz:
349	@${CREATE_PKG} -P't/ma:ma-*:ma-0' ${EMPTY} $@
350rep1/mb-1.tgz:
351	@${CREATE_PKG} -P't/ma:ma-*:ma-1' ${EMPTY} $@
352
353rep0/inta-0.tgz:
354	@${CREATE_PKG} -P't/intb:intb-*:intb-0' ${EMPTY} $@
355rep0/intb-0.tgz:
356	@${CREATE_PKG} -P't/inta:inta-*:inta-0' ${EMPTY} $@
357
358rep1/o-1.tgz:
359	@${CREATE_PKG} ${WAVE_PLIST} -P't/p:p-*:p-0' -W'coincoin.0.0' ${EMPTY} $@
360
361rep1/o1-1.tgz:
362	@${CREATE_PKG} ${WAVE_PLIST} -P't/p1:p1-*:p1-0' -W'coincoin.0' ${EMPTY} $@
363
364rep1/o2-1.tgz:
365	@${CREATE_PKG} ${WAVE_PLIST} -P't/p2:p2-*:p2-0' -W'coincoin.0' ${EMPTY} $@
366
367rep0/o3-0.tgz:
368	@${CREATE_PKG} ${WAVE_PLIST} -W'unlikelylibraryname.0.0' ${EMPTY} $@
369
370rep1/p-0.tgz rep1/p1-0.tgz: plist8
371	@${WITH} -B src13 -DLIBcoincoin_VERSION=0.0 -f plist8 $@ ${CPKG}
372
373rep1/p2-0.tgz: plist8
374	@${WITH} ${WAVE_PLIST} -B src14 -DLIBcoincoin_VERSION=0 -f plist8 $@ ${CPKG}
375
376rep0/p4-0.tgz: plist12
377	@${WITH} -B src15 -DLIBa_VERSION=0.0 -f plist12 $@ ${CPKG}
378
379rep1/p4-1.tgz: plist12
380	@${WITH} -B src31 -DLIBa_VERSION=1.0 -f plist12 $@ ${CPKG}
381
382rep0/boost-0.tgz:
383	@${CREATE_PKG} ${WAVE_PLIST} -W'a.0.0' -P't/p4:p4-*:p4-0' ${EMPTY} $@
384
385rep1/boost-0.tgz:
386	@${CREATE_PKG} ${WAVE_PLIST} -W'a.1.0' -P't/p4:p4-*:p4-1' ${EMPTY} $@
387
388rep0/Imath-0.tgz:
389	@${CREATE_PKG} ${WAVE_PLIST} -P't/boots:boost-*:boost-0' ${EMPTY} $@
390
391rep1/Imath-0.tgz:
392	@${CREATE_PKG} ${WAVE_PLIST} -P't/boots:boost-*:boost-0' ${EMPTY} $@
393
394rep0/o4-0.tgz:
395	@${CREATE_PKG} ${WAVE_PLIST} -W'a.1.0' -P't/p4:p4-*:p4-0' ${EMPTY} $@
396
397rep0/o5-0.tgz:
398	@${CREATE_PKG} ${WAVE_PLIST} -W'a.0.2' -P't/p4:p4-*:p4-0' ${EMPTY} $@
399
400rep0/o6-0.tgz:
401	@${CREATE_PKG} ${WAVE_PLIST} -W'a.0.0' -P't/p4:p4-*:p4-0' ${EMPTY} $@
402
403rep0/oo6-0.tgz:
404	@${CREATE_PKG} ${WAVE_PLIST} -W'a.0.0' ${EMPTY} $@
405
406rep0/o7-0.tgz:
407	@${CREATE_PKG} ${WAVE_PLIST} -W'dir/a.0.0' -P't/p4:p4-*:p4-0' ${EMPTY} $@
408
409rep1/b-1.tgz:
410	@${CREATE_PKG} -P't/a:a-*:a-1' ${EMPTY} $@
411
412rep0/qt-0.tgz: plist13
413	@${WITH} -B src17 -f plist13 $@ ${CPKG}
414
415rep1/qt-1.tgz: plist14
416	@${WITH} -B src16 -f plist14 $@ ${CPKG}
417
418rep0/exo-0.tgz: plist15
419	@mkdir -p ${SRC18}/foo
420	touch ${SRC18}/foo/a
421	cd ${SRC18} && ln -s foo bar
422	@${CREATE_PKG} -B src18 -f plist15 $@
423
424rep1/exo-1.tgz: plist16
425	@${WITH} -B src19 -f plist16 $@ ${CPKG}
426
427rep0/thunar-0.tgz: plist17
428	@${WITH} -B src20 -DLIBthunar-vfs_VERSION=0.0 -f plist17 $@ ${CPKG}
429
430rep1/thunar-vfs-1.tgz: plist18
431	@${WITH} -B src20 -DLIBthunar-vfs_VERSION=0.0 -f plist18 $@ ${CPKG}
432
433rep1/thunar-1.tgz:
434	@${CREATE_PKG} ${EMPTY} $@
435
436
437rep0/q-0.tgz:
438	@${CREATE_PKG} -P't/thunar:thunar-*:thunar-0' ${EMPTY} $@
439
440rep1/q-1.tgz:
441	@${CREATE_PKG} -P't/thunar-vfs:thunar-vfs-*:thunar-vfs-1' ${EMPTY} $@
442
443rep0/gs-0.tgz:
444	@${CREATE_PKG} ${EMPTY} $@
445rep0/gs-0-no_x11.tgz:
446	@${CREATE_PKG} ${EMPTY} $@
447
448rep0/purple-0.tgz:
449	@${CREATE_PKG} -P't/gs:gs-*-!no_x11:gs-0' ${EMPTY} $@
450
451rep1/c-0.tgz: plist1
452	@mkdir -p ${SRC1}
453	@touch ${SRC1}/${LONG1}
454	@touch ${SRC1}/${LONG2}
455	@cd ${SRC1} && ln -sf ${LONG2} ${LONG3}
456	@cd ${SRC1} && ln -f ${LONG1} ${LONG4}
457	@${CREATE_PKG} -B src1 -f plist1 $@
458
459rep1/k-1.tgz: plist6
460	@${CREATE_PKG} -f plist6 $@
461
462rep1/n-1.tgz: plist7
463	@${CREATE_PKG} -f plist7 $@
464
465rep1/d-0.tgz: plist2
466	@mkdir -p ${SRC2}
467	@touch ${SRC2}/a ${SRC2}/b ${SRC2}/c
468	@echo "coucou" >${SRC2}/f
469	@echo "not coucou" >${SRC2}/g
470	@${CREATE_PKG} -B src2 -f plist2 $@
471
472rep2/d-1.tgz: plist2
473	@mkdir -p ${SRC29}
474	@touch ${SRC29}/a ${SRC29}/b ${SRC29}/c
475	@echo "zoinx" >${SRC29}/f
476	@echo "not zoinx" >${SRC29}/g
477	@${CREATE_PKG} -B src29 -f plist2 $@
478
479rep1/e-0.tgz: plist3
480	@mkdir -p ${SRC3}
481	@touch ${SRC3}/a ${SRC3}/c ${SRC3}/d
482	@echo "coucou" >${SRC3}/f
483	@echo "coucou" >${SRC3}/g
484	@${CREATE_PKG} -B src3 -f plist3 $@
485
486rep1/f-0.tgz:
487	@${CREATE_PKG} -P't/d:d-*:d-0' ${EMPTY} $@
488
489rep0/g-0.tgz: plist4
490	@${CREATE_PKG} -f plist4 $@
491
492rep1/g-0.tgz: plist4
493	@PACKAGE_COMMENT=updated ${CREATE_PKG} -f plist4 $@
494
495rep0/gg-0.tgz: plist4
496	@${CREATE_PKG} -P't/g:g-*:g-1' -f plist4 $@
497
498rep1/gg-0.tgz: plist4
499	@PACKAGE_COMMENT=updated ${CREATE_PKG} -P't/g:g-*:g-0' -f plist4 $@
500
501rep1/gd-1.tgz rep1/ge-1.tgz: plist5
502	@${CREATE_PKG} -f plist5 $@
503
504rep1/ga-0.tgz:
505	@PACKAGE_COMMENT=updated ${CREATE_PKG} ${EMPTY} $@
506
507rep0/gc-0.tgz:
508	@${CREATE_PKG} -P't/ga:gb-*:gb-0' ${EMPTY} $@
509
510rep1/gc-0.tgz:
511	@PACKAGE_COMMENT=updated ${CREATE_PKG} -P't/ga:gb-*:gb-0p0' ${EMPTY} $@
512
513rep0/h-0.tgz:
514	@${CREATE_PKG} -P't/i:i-*:i-0' ${EMPTY} $@
515
516rep1/h-1.tgz:
517	@${CREATE_PKG} -P't/j:j->=1:j-1' ${EMPTY} $@
518
519rep0/cola-0.tgz: plist19
520	@${WITH} -B src22 -f plist19 $@ ${CPKG}
521
522rep1/cola-1.tgz: plist19
523	@${WITH} -B src22 -P't/colb:colb-*:colb-0' -f plist19 $@ ${CPKG}
524
525rep1/colb-0.tgz: plist20
526	@${WITH} -B src22 -f plist20 $@ ${CPKG}
527
528depend_q1=-P't/q5:q5-*:q5-0'
529depend_q2=${depend_q1} -P't/q1:q1-*:q1-0'
530depend_q3=${depend_q1} -P't/q2:q2-*:q2-0'
531depend_q4=${depend_q1} -P't/q3:q3-*:q3-0'
532
533.for n in q1 q2 q3 q4
534plist-rep0-$n:
535	@echo "@unexec echo 1>&2 'XXXrep0 $n'" >$@
536
537rep0/$n-0.tgz: plist-rep0-$n
538	@${CREATE_PKG} ${depend_$n} -f plist-rep0-$n $@
539rep1/$n-1.tgz: plist-rep1-$n
540	@${CREATE_PKG} ${depend_$n} -f plist-rep1-$n $@
541
542plist-rep1-$n:
543	@${MKPLIST} "@conflict q1-0" "@conflict q2-0" "@conflict q3-0" "@conflict q4-0" "@exec echo 1>&2 'XXXrep1 $n'" >$@
544
545.endfor
546
547rep0/q6-0.tgz:
548	@${CREATE_PKG} -P't/q3:q3-*:q3-0' ${EMPTY} $@
549
550rep1/q6-1.tgz:
551	@${CREATE_PKG} -P't/q3:q3-*:q3-0' ${EMPTY} $@
552
553rep0/glib-0.tgz:
554	@${CREATE_PKG} -P't/fam:fam-*:fam-0' ${EMPTY} $@
555
556rep1/glib-1.tgz:
557	@${CREATE_PKG} -P't/gamin:gamin-*:gamin-0' ${EMPTY} $@
558
559rep1/fam-1.tgz: plist9
560	@${CREATE_PKG} -f plist9 $@
561
562rep1/gamin-0.tgz: plist10
563	@${CREATE_PKG} -f plist10 $@
564
565rep1/missa-0.tgz:
566	@${CREATE_PKG} -P't/misse:misse-*:misse-0' ${EMPTY} $@
567
568rep1/missb-0.tgz:
569	@${CREATE_PKG} -P't/missd:missd-*:missd-0' ${EMPTY} $@
570
571rep1/missd-0.tgz: plist11
572	@${CREATE_PKG} -f plist11 $@
573
574rep1/missf-0.tgz:
575	@${CREATE_PKG} -P't/misse:misse-*:misse-0' ${EMPTY} $@
576
577rep0/ocaml-3.11.1.tgz:
578	@${CREATE_PKG} -P'test/tcl:tcl->=8.5,<8.6:tcl-8.5.7' \
579		-P'test/tk:tk->=8.5,<8.6:tk-8.5.7' ${EMPTY} $@
580
581rep0/tk-8.5.7.tgz:
582	@${CREATE_PKG} -P'test/tcl:tcl->=8.5.7,<8.5.8:tcl-8.5.7' \
583		${EMPTY} $@
584
585rep0/ol-0.tgz: plist21
586	@${WITH} -B src23 -DLIBol_VERSION=0.0 -f plist21 $@ ${CPKG}
587
588rep1/ol-1.tgz: plist21
589	@${WITH} -B src23 -DLIBol_VERSION=1.0 -f plist21 $@ ${CPKG}
590
591.for o in cups-2.2.7p1 cups-filters-1.20.3 cups-libs-2.2.7 ghostscript-9.07p7
592CUPS_FILES += rep2/$o.tgz
593rep2/$o.tgz: ${.CURDIR}/oldcups/$o/+CONTENTS
594	mkdir -p rep2
595	cd rep2 && pkg_create ${WAVE_PLIST} ${STUB} -f ${.CURDIR}/oldcups/$o/+CONTENTS
596.endfor
597
598.for n in cups-2.2.8 cups-filters-1.20.3 cups-libs-2.2.8 ghostscript-9.07p7
599CUPS_FILES += rep3/$n.tgz
600rep3/$n.tgz: ${.CURDIR}/newcups/$n/+CONTENTS
601	mkdir -p rep3
602	cd rep3 && pkg_create ${WAVE_PLIST} ${STUB} -f ${.CURDIR}/newcups/$n/+CONTENTS
603.endfor
604
605cups-bug: ${CUPS_FILES}
606	rm -rf ${D36}
607	mkdir -p ${D36}/vardbpkg ${D36}/usr/local
608	ROOT=${D36} PKG_PATH=${.OBJDIR}/rep2 INJECT=inject-order ${ADD_PKG} ${STUB} cups
609	ROOT=${D36} PKG_PATH=${.OBJDIR}/rep3 INJECT=inject-order ${ADD_PKG} ${STUB} -u
610
611usertest-1:
612	@if ${CREATE_PKG} -u ${.CURDIR}/baduser1 \
613	    ${EMPTY} truc-0.tgz; then \
614	    	exit 1; \
615	else \
616		exit 0; \
617	fi
618
619usertest-2:
620	@if ${CREATE_PKG} -u ${.CURDIR}/baduser2 \
621	    ${EMPTY} truc-0.tgz; then \
622	    	exit 1; \
623	else \
624		exit 0; \
625	fi
626
627usertest-3:
628	@if ${CREATE_PKG} -u ${.CURDIR}/baduser3 \
629	    ${EMPTY} truc-0.tgz; then \
630	    	exit 1; \
631	else \
632		exit 0; \
633	fi
634keys:
635	mkdir signify
636	signify -G -n -s signify/test-pkg.sec -p signify/test-pkg.pub
637
638plist22:
639	${MKPLIST} '@lib lib/libnettle.so.$${LIBnettle_VERSION}' >$@
640
641rep4/libnettle-0.tgz: plist22
642	@${WITH} -B src24 -DLIBnettle_VERSION=0.0 -f plist22 $@ ${CPKG}
643
644rep4/cups-libs-0.tgz:
645	@${CREATE_PKG} -P't/gnutls:gnutls-*:gnutls-0' ${EMPTY} $@
646
647rep5/cups-libs-0.tgz:
648	@${CREATE_PKG} -P't/gnutls:gnutls-*:gnutls-0' ${EMPTY} $@
649
650rep4/gnutls-0.tgz:
651	@${CREATE_PKG} -P't/libnettle:libnettle-*:libnettle-0' ${EMPTY} $@
652
653rep5/gnutls-0.tgz:
654	@${CREATE_PKG} -P't/libnettle:libnettle-*:libnettle-1' ${EMPTY} $@
655
656rep4/gtk+3-cups-0.tgz:
657	@${CREATE_PKG} ${WAVE_PLIST} -W nettle.0.0 -P't/cups-libs:cups-libs-*:cups-libs-0' ${EMPTY} $@
658
659rep5/gtk+3-cups-0.tgz:
660	@${CREATE_PKG} ${WAVE_PLIST} -W nettle.1.0 -P't/cups-libs:cups-libs-*:cups-libs-0' ${EMPTY} $@
661
662rep5/libnettle-1.tgz: plist22
663	@${WITH} -B src24 -DLIBnettle_VERSION=1.0 -f plist22 $@ ${CPKG}
664
665nettle-bug: rep4/cups-libs-0.tgz rep4/gtk+3-cups-0.tgz rep4/gnutls-0.tgz \
666	rep4/libnettle-0.tgz rep5/cups-libs-0.tgz rep5/gtk+3-cups-0.tgz \
667	rep5/gnutls-0.tgz rep5/libnettle-1.tgz
668	@-rm -rf ${D37}
669	@ROOT=${D37} ${ADD_PKG} rep4/gtk+3-cups
670	@ROOT=${D37} PKG_PATH=${.OBJDIR}/rep5 ${ADD_PKG} -u gtk+3-cups
671
672plist23:
673	@${MKPLIST} "share/" "share/bg/" "share/bg/portrait" "share/bg/pictures/" "share/bg/pictures/a/" "share/bg/pictures/a/zoinx" >$@
674
675plist24:
676	${MKPLIST} "share/" "share/bg/" "share/bg/portrait/" "share/bg/portrait/a/" "share/bg/portrait/a/zoinx" >$@
677
678rep0/bg-0.tgz: plist23
679	@${WITH} -B src25 -f plist23 $@ ${CPKG}
680
681rep0/bg-1.tgz: plist24
682	@${WITH} -B src26 -f plist24 $@ ${CPKG}
683
684# these exemplify issues with directory moving around
685tying-1: rep0/bg-0.tgz rep0/bg-1.tgz
686	@-rm -rf ${D38}
687	@ROOT=${D38} ${ADD_PKG} rep0/bg-0.tgz
688	@ROOT=${D38} ${ADD_PKG} -r rep0/bg-1.tgz
689
690tying-2: rep0/bg-0.tgz rep0/bg-1.tgz
691	@-rm -rf ${D39}
692	@ROOT=${D39} ${ADD_PKG} rep0/bg-1.tgz
693	@ROOT=${D39} ${ADD_PKG} -r rep0/bg-0.tgz
694
695# this comes from solve_tags
696# pkg_delete finds new dependencies, and so the solver needs to be made
697# "safe" when it can't find them
698tag-delete: rep1/d-0.tgz
699	@-rm -rf ${D40}
700	@ROOT=${D40} ${ADD_PKG} rep1/d-0.tgz
701	# needs a tag to trigger the bug
702	echo "@tag zoinx" >> ${D40}/pkgdb/d-0/+CONTENTS
703	# and an "unsolved" dependency for DeleteSet to look harder
704	echo "@depend graphics/zoinx:zoinx-*:zoinx-2" >> ${D40}/pkgdb/d-0/+CONTENTS
705	@ROOT=${D40} ${DELETE_PKG} d
706
707SED_PIPE = sed -n -e s/`whoami`/USER/ -e 1p -e '$$p'
708SED_PIPE2 = { u=`whoami`; case $$u in root) u=_pkgfetch;; esac; sed -n -e s/$$u/USER/ -e 1p -e '$$p'; }
709
710
711XXXD=${D40}
712XXXBASE=temp2
713
714temp-error1: rep0/a-0.tgz rep0/b-0.tgz temp1.ref
715	@-rm -rf ${D40}
716	@{ INJECT=inject-temp1 ROOT=${D40} SILENT=1 ${ADD_PKG} rep0/a-0.tgz 1>/dev/null|| echo $$? ; } 2>&1|${SED_PIPE} >temp1.out
717	@diff -u temp1.out ${.CURDIR}/temp1.ref
718
719temp-error2:
720	@-rm -rf ${XXXD}
721	@{ INJECT=inject-temp2 ROOT=${XXXD} SILENT=1 PKG_PATH=https://www.google.com/ ${ADD_PKG} rep0/a-0.tgz 1>/dev/null|| echo $$? ; } 2>&1|${SED_PIPE2} >${XXXBASE}.out
722	@diff -u ${XXXBASE}.out ${.CURDIR}/temp2.ref
723
724temp-error2-as-root:
725	@# XXX thx tedu for not allowing env thru
726	@${SUDO} make -C ${.CURDIR} temp-error2 XXXBASE=temp2bis XXXD=${D41}
727
728temp-error3: rep1/d-0.tgz rep2/d-1.tgz temp3.ref
729	@-rm -rf ${D42}
730	@ROOT=${D42} ${ADD_PKG} rep1/d-0.tgz
731	@{ INJECT=inject-temp3 ROOT=${D42} SILENT=1 ${ADD_PKG} -r rep2/d-1.tgz 1>/dev/null|| echo $$?; } 2>&1|${SED_PIPE} >temp3.out
732	@diff -u temp3.out ${.CURDIR}/temp3.ref
733
734temp-error4: rep0/qt-0.tgz rep1/qt-1.tgz
735	@-rm -rf ${D43}
736	@ROOT=${D43} SILENT=1 ${ADD_PKG} rep0/qt-0.tgz
737	@rm -f ${D43}/usr/local/phonon/a
738	@echo zoinx >${D43}/usr/local/phonon/a
739	@{ INJECT=inject-temp4 PKG_PATH=${.OBJDIR}/rep1 SILENT=1 ROOT=${D43} ${ADD_PKG} -Dchecksum -u qt || echo $$?; } 2>&1|${SED_PIPE} >temp4.out
740
741rep5/a-0.tgz: plist19
742	@mkdir -p ${SRC27}
743	@echo "zoinx" > ${SRC27}/a
744	@INJECT=inject-badsum ${CREATE_PKG} -B src27 -f plist19 $@
745
746rep0/syst-0.tgz:
747	@${CREATE_PKG} -V 1 ${EMPTY} $@
748
749rep1/syst-0.tgz:
750	@${CREATE_PKG} -V 3 ${EMPTY} $@
751
752cksum-error: rep5/a-0.tgz
753	@-rm -rf ${D44}
754	@ROOT=${D44} SILENT=1 ${ADD_PKG} rep5/a-0.tgz
755	@ROOT=${D44} SILENT=1 ${DELETE_PKG} a|fgrep 'Not deleting'
756
757# data for XXX-warning test
758
759plist25:
760	${MKPLIST} '@lib lib/libavahi.so.$${LIBavahi_VERSION}' >$@
761
762plist26:
763	${MKPLIST} '@conflict avahi-<1' '@conflict avahi-libs-<1' '@lib lib/libavahi.so.$${LIBavahi_VERSION}' >$@
764
765plist27:
766	${MKPLIST} '@conflict avahi-<1' >$@
767
768rep6/avahi-0.tgz: plist25
769	@${WITH} -B src28 -DLIBavahi_VERSION=0.0 -f plist25 $@ ${CPKG}
770
771rep6/cups-0.tgz:
772	@${CREATE_PKG} ${WAVE_PLIST} -P't/avahi:avahi-*:avahi-0' -W avahi.0.0 ${EMPTY} $@
773
774rep7/avahi-1.tgz:
775	@${CREATE_PKG} ${WAVE_PLIST} -P't/avahi-libs:avahi-libs-*:avahi-libs-1' ${EMPTY} $@
776
777rep7/avahi-libs-1.tgz: plist27
778	@${WITH} -B src28 -f plist27 $@ ${CPKG}
779
780rep7/avahi-glib-1.tgz: plist26
781	@${WITH} -B src28 -DLIBavahi_VERSION=0.0 -f plist26 $@ ${CPKG}
782
783rep7/cups-1.tgz:
784	@${CREATE_PKG} ${WAVE_PLIST} -P't/avahi-libs:avahi-libs-*:avahi-libs-0' -P't/avahi-glib:avahi-glib-*:avahi-glib-1' -W avahi.0.0 ${EMPTY} $@
785
786
787rep0/sym-0.tgz: plist19
788	@mkdir -p ${SRC30}
789	@ln -s /tmp ${SRC30}/a
790	@${CREATE_PKG} -B src30 -f plist19 $@
791
792
793XXX-warning: rep6/avahi-0.tgz rep6/cups-0.tgz rep7/avahi-1.tgz rep7/avahi-libs-1.tgz rep7/avahi-glib-1.tgz rep7/cups-1.tgz
794	@-rm -rf ${D46}
795	@ROOT=${D46} SILENT=1 ${ADD_PKG} rep6/cups-0.tgz
796	@ROOT=${D46} PKG_PATH=${.OBJDIR}/rep7 ${ADD_PKG} -u 2>warning
797	@if fgrep XXX warning; then exit 1; fi
798
799symlink: rep0/sym-0.tgz
800	@-rm -rf ${D47}
801	@ROOT=${D47} ${ADD_PKG} rep0/sym-0.tgz
802	@rm ${D47}/usr/local/a
803	@ROOT=${D47} ${ADD_PKG} -r -Dinstalled rep0/sym-0.tgz
804
805no-symlink: rep1/d-0.tgz
806	@-rm -rf ${D48}
807	@ROOT=${D48} ${ADD_PKG} rep1/d-0.tgz
808	@rm -f ${D48}/usr/local/f /usr/local/a
809	@ROOT=${D48} ${ADD_PKG} -r -Dinstalled rep1/d-0.tgz
810	@test -f ${D48}/usr/local/f
811	@test -f ${D48}/usr/local/a
812
813# this is a "temporary" test
814# oldlibs currently do a transitive closure because people might have
815# forgotten some wantlib
816# update is supposed to detect that and try to remove any dependency
817# on oldlibs.
818
819# in the following case, Imath does NOT depend on the libs in p4,
820# but pkg_add tries to be thorough. So Imath should get updated to the
821# version in rep1, which is supposed to be "fresh" and not (possibly)
822# depend on the old lib.
823# The name IS significant: the error only happens because Imath is before
824# boost (lexicographically)
825
826oldlib2: rep0/p4-0.tgz rep0/boost-0.tgz rep0/Imath-0.tgz \
827	rep1/p4-1.tgz rep1/boost-0.tgz rep1/Imath-0.tgz
828	@-rm -rf ${D49}
829	@ROOT=${D49} ${ADD_PKG} rep0/Imath-0.tgz
830	@ROOT=${D49} PKG_PATH=${.OBJDIR}/rep1 ${ADD_PKG} -u
831	@if fgrep -q .libs ${D49}/pkgdb/Imath-0/+REQUIRING; then exit 1; fi
832
833clean:
834	-rm -rf rep* dest* plist* src* signatures.out *.ref *.out
835	-${SUDO} rm -rf rep* dest* plist* src* signatures.out *.ref *.out
836
837.PHONY: ${REGRESS_TARGETS}
838
839.include <bsd.regress.mk>
840