blob: 0c6c2a206e0f9337425ded2cabc7b2b360863682 (
plain)
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
|
#! /bin/bash
# common modules for pbuilder.
function showhelp () {
cat <<EOF
pbuilder - a personal builder
Copyright 2001 Junichi Uekawa
Distributed under GNU Public License version 2 or later
pbuilder [operation] [operation options]
pdebuild [operation options]
command lines:
pbuilder create [--basetgz base.tgz-path] [--distribution woody|sid]
Creates a base.tgz
pbuilder update [--basetgz base.tgz-path] [--distribution woody|sid]
Updates a base.tgz
pbuilder build [--basetgz base.tgz-path] pbuilder_2.2.0-1.dsc
Builds using the base.tgz. Requires a .dsc filename
pbuilder clean
Cleans the temporal build directory.
pbuilder login
Logs in to the build environment
Operation Options:
pbuilder options
--basetgz [base.tgz location]
--buildplace [location of build]
--mirror [mirror location]
--nonusmirror [non-US mirror location]
--othermirror [other mirror location in apt deb-line format, delimited with | signs]
--http-proxy [proxy]
--distribution [distribution(potato/woody/sid)]
--buildresult [location-to-copy-build-result]
--removepackages [packages-to-remove on pbuilder create]
--extrapackages [packages-to-add on pbuilder create]
--configfile [configuration file to load]
--hookdir [hook directory]
--debemail [mail address]
--debbuildopts [dpkg-buildpackage options]
--logfile [filename to output log]
pdebuild options
--pbuilderroot [command to obtain root privilate for pbuilder]
--buildsourceroot [command to obtain root privilate for dpkg-buildpackage]
EOF
exit 1
}
function umountproc () {
if [ "$USEPROC" = "yes" ]; then
echo " -> unmounting /proc filesystem"
if ! umount "$BUILDPLACE/proc"; then
echo "W: Retrying to unmount proc"
sleep 5s
while ! umount "$BUILDPLACE/proc"; do
sleep 5s
cat <<EOF
Could not unmount /proc, there might be some program
still using files in /proc (klogd?).
Please check and kill it so that I can unmount /proc
EOF
chroot "$BUILDPLACE" bin/sh
done
fi
fi
}
function mountproc () {
if [ "$USEPROC" = "yes" ]; then
echo " -> mounting /proc filesystem"
mkdir -p $BUILDPLACE/proc
mount -t proc /proc "$BUILDPLACE/proc"
fi
}
function cleanbuildplace () {
if [ -d "$BUILDPLACE" ]; then
echo " -> cleaning the build env "
rm -rf "$BUILDPLACE"
fi;
}
function abortingfunction () {
# rolling back to abort.
umountproc
cleanbuildplace
}
function installaptlines (){
echo Installing apt-lines
rm -f "$BUILDPLACE"/etc/apt/sources.list
if [ -z "$DISTRIBUTION" ]; then
echo "Distribution not specified, please specify" >&2
exit 1
fi
if [ -n "$OTHERMIRROR" ]; then
echo "$OTHERMIRROR" | tr "|" "\n" >> "$BUILDPLACE"/etc/apt/sources.list
fi
if [ -n "$MIRRORSITE" ] ; then
cat >> "$BUILDPLACE"/etc/apt/sources.list << EOF
deb $MIRRORSITE $DISTRIBUTION main contrib non-free
#deb-src $MIRRORSITE $DISTRIBUTION main contrib non-free
EOF
fi
if [ -n "$NONUSMIRRORSITE" ]; then
cat >> "$BUILDPLACE"/etc/apt/sources.list << EOF
deb $NONUSMIRRORSITE $DISTRIBUTION/non-US main contrib non-free
#deb-src $NONUSMIRRORSITE $DISTRIBUTION/non-US main contrib non-free
EOF
fi
}
function extractbuildplace () {
# after calling this function, umountproc, and cleanbuildplace
# needs to be called.
cleanbuildplace
echo "building the build env"
echo " -> extracting base.tgz"
if ! mkdir -p "$BUILDPLACE"; then
echo "E: failed to build the directory to chroot"
exit 1
fi
if [ ! -f "$BASETGZ" ]; then
echo "E: failed to find $BASETGZ, have you done <pbuilder create> to create your base tarball yet?"
exit 1
fi
if ! (cd "$BUILDPLACE" && tar xfzp "$BASETGZ"); then
echo "E: failed to extract $BASETGZ to $BUILDPLACE"
exit 1
fi
mountproc
mkdir -p "$BUILDPLACE/tmp/buildd"
echo " -> copying local configuration"
for a in hosts hostname resolv.conf; do
cp /etc/$a "$BUILDPLACE/etc/$a";
done
if [ -n "$DISTRIBUTION" ]; then
installaptlines
fi
}
#required for some packages to install...
export LANG=C
export LC_ALL=C
|