1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
#!/usr/bin/env bash
# vim: set ft=sh sw=4 sts=4 et :
mkdir -p vdb_repository_TEST_dir || exit 1
cd vdb_repository_TEST_dir || exit 1
mkdir -p distdir
mkdir -p build
mkdir -p root/etc
mkdir -p repo1/cat-{one/{pkg-one-1,pkg-both-1},two/{pkg-two-2,pkg-both-2}} || exit 1
for i in SLOT EAPI; do
echo "0" >repo1/cat-one/pkg-one-1/${i}
done
for i in DEPEND RDEPEND LICENSE INHERITED IUSE PDEPEND PROVIDE; do
touch repo1/cat-one/pkg-one-1/${i}
done
echo "test flag1 flag2 kernel_linux" >>repo1/cat-one/pkg-one-1/USE
echo "flag1 flag2 flag3" >>repo1/cat-one/pkg-one-1/IUSE
echo "KERNEL" >repo1/cat-one/pkg-one-1/USE_EXPAND
cat <<END >repo1/cat-one/pkg-one-1/CONTENTS
dir /directory
obj /directory/file 4 2
sym /directory/symlink -> target 2
dir /directory with spaces
dir /directory with trailing space
dir /directory with consecutive spaces
obj /file with spaces 4 2
obj /file with consecutive spaces 4 2
obj /file with trailing space 4 2
sym /symlink -> target with consecutive spaces 2
sym /symlink with spaces -> target with spaces 2
sym /symlink with consecutive spaces -> target with consecutive spaces 2
sym /symlink -> target -> with -> multiple -> arrows 2
sym /symlink -> target with trailing space 2
sym /symlink -> target with leading space 2
sym /symlink with trailing space -> target 2
fif /fifo
fif /fifo with spaces
fif /fifo with consecutive spaces
dev /device
dev /device with spaces
dev /device with consecutive spaces
misc /miscellaneous
misc /miscellaneous with spaces
misc /miscellaneous with consecutive spaces
obj
obj
obj /file
obj /file
obj /file 2
sym foobar 2
sym foo -> bar
sym -> bar 2
sym foo -> 2
END
touch "world-empty"
cat <<END > world-no-match
cat-one/foo
cat-one/bar
cat-one/oink
END
cat <<END > world-match
cat-one/foo
cat-one/foofoo
cat-one/bar
END
cat <<END > world-no-match-no-eol
cat-one/foo
cat-one/bar
END
echo -n "cat-one/oink" >> world-no-match-no-eol
mkdir -p repo2/category/package-1 || exit 1
echo "exheres-0" >repo2/category/package-1/EAPI
echo "0" >repo2/category/package-1/SLOT
echo "cat/pkg1 build: cat/pkg2 build+run: cat/pkg3 suggestion: cat/pkg4 post: cat/pkg5" >repo2/category/package-1/DEPENDENCIES
mkdir -p reinstalltest reinstalltest_src{1,2}/{eclass,profiles/profile,cat/pkg} || exit 1
cat <<END > reinstalltest_src1/profiles/profile/make.defaults
ARCH=test
USERLAND="GNU"
KERNEL="linux"
CHOST="i286-badger-linux-gnu"
END
echo reinstalltest_src1 >reinstalltest_src1/profiles/repo_name
echo reinstalltest_src2 >reinstalltest_src2/profiles/repo_name
echo cat >reinstalltest_src1/profiles/categories
echo cat >reinstalltest_src2/profiles/categories
cat <<END >reinstalltest_src1/cat/pkg/pkg-1.ebuild
KEYWORDS="test"
SLOT="0"
END
cp reinstalltest_src1/cat/pkg/pkg-1.ebuild reinstalltest_src2/cat/pkg/pkg-1-r0.ebuild
mkdir -p postinsttest postinsttest_src1/{eclass,profiles/profile,cat/pkg} || exit 1
cat <<END > postinsttest_src1/profiles/profile/make.defaults
ARCH=test
USERLAND="GNU"
KERNEL="linux"
CHOST="i286-badger-linux-gnu"
END
echo postinsttest >postinsttest_src1/profiles/repo_name
echo cat >postinsttest_src1/profiles/categories
cat <<END >postinsttest_src1/cat/pkg/pkg-0.ebuild
if [[ \${PV} == 0* ]]; then
EAPI=1
else
EAPI=paludis-1
fi
KEYWORDS="test"
if [[ \${PV} == 2* ]]; then
SLOT="2"
else
SLOT="1"
fi
pkg_preinst() {
OTHER=\$(best_version "\${CATEGORY}/\${PN}:\${SLOT}")
if [[ -n \${OTHER} ]]; then
if [[ \${EAPI} == paludis-1 ]] || has_version "=\${CATEGORY}/\${PF}:\${SLOT}"; then
COMMAND=rmdir
else
COMMAND=mkdir
fi
else
COMMAND=:
fi
}
pkg_postinst() {
\${COMMAND} "\${ROOT}"/\${OTHER##*/} || die
}
pkg_postrm() {
if [[ \$VDB_REPOSITORY_TEST_RMDIR == \${PV} ]] ; then
rmdir "\${ROOT}"/\${PF} || die "rmdir failed, pv is \${PV}, comparing to \$VDB_REPOSITORY_TEST_RMDIR"
else
mkdir "\${ROOT}"/\${PF} || die "mkdir failed, pv is \${PV}, comparing to \$VDB_REPOSITORY_TEST_RMDIR"
fi
}
END
cp postinsttest_src1/cat/pkg/pkg-{0,0.1}.ebuild
cp postinsttest_src1/cat/pkg/pkg-{0,1}.ebuild
cp postinsttest_src1/cat/pkg/pkg-{0,1.1}.ebuild
cp postinsttest_src1/cat/pkg/pkg-{0,2}.ebuild
|