blob: 4537d29afcfce48dde865dc57051390278cfa6c2 (
plain) (
blame)
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
|
#!/bin/sh
# $FreeBSD$
dir=`dirname $0`
if [ "X$dir" = "X." ]; then
dir=`pwd`
fi
##############################################################################
#
# Tweak these parameters to match your configuration and make sure to check
# that the disc information in config is correct.
#
# You'll also want to place a recent copy of print-cdrom-packages.sh in the
# $scripts directory.
#
ports="$dir/ports"
dists="$ports/distfiles"
logs="$dir/gen"
pkgs="$ports/packages/All"
scripts="$dir"
xdep="XFree86-3.3.6_10"
#
##############################################################################
test -d $logs || mkdir -p $logs
if [ ! -d "$ports" ]; then
$scripts/setup.sh
echo ""
echo "Make sure you tweak $dir/config to suit your needs."
echo ""
fi
if [ ! -f "$logs/restricted.sh" ]; then
echo "===> restricted list generation started at $(date)"
(cd $ports; PORTSDIR=$ports make ECHO_MSG=/usr/bin/true \
clean-restricted-list > $logs/restricted.sh)
echo "===> restricted list generation ended at $(date)"
echo $(grep -c '^#' $logs/restricted.sh) "ports in $logs/restricted.sh"
fi
if [ ! -f "$logs/.restricted.done" ]; then
echo "===> cleaning restricted files"
sh $logs/restricted.sh
touch $logs/.restricted.done
fi
if [ ! -f "$logs/cdrom.sh" ]; then
echo "===> cdrom list generation started at $(date)"
(cd $ports; PORTSDIR=$ports make ECHO_MSG=/usr/bin/true \
clean-for-cdrom-list > $logs/cdrom.sh)
echo "===> cdrom list generation ended at $(date)"
echo $(grep -c '^#' $logs/cdrom.sh) "ports in $logs/cdrom.sh"
fi
if [ ! -f "$logs/.cdrom.done" ]; then
echo "===> cleaning non-CDROM-able files"
sh $logs/cdrom.sh
touch $logs/.cdrom.done
fi
if [ ! -f "$logs/INDEX" ]; then
echo "===> copying INDEX file"
$scripts/scrubindex.pl $pkgs $ports/INDEX > $logs/INDEX
$scripts/checkdeps.pl $pkgs $logs/INDEX | sort -u | \
sed -e 's/^/missing dependency: /'
fi
echo -n "Create a list of needed files for each disc? [y] "
read ans
if [ X$ans != Xn -a X$ans != XN ]; then
>$logs/need.ALL
for disc in `cat config | grep -v '#' | sed -e 's/[ ].*//'`; do
echo "disc $disc" >> $logs/need.ALL
$scripts/print-cdrom-packages.sh `echo $disc | sed -e 's/^disc//'` \
$ports | grep -v $xdep | tee $logs/need.$disc >> $logs/need.ALL
done
fi
echo -n "Populate the discs now? [y] "
read ans
if [ X$ans != Xn -a X$ans != XN ]; then
for disc in `ls -d disc? 2>/dev/null`; do
echo "===> deleting $disc"
rm -rf $disc
done
if [ -d "scratch" ]; then
echo "===> deleting scratch"
rm -rf scratch
fi
$scripts/oneshot.pl config $logs/need.ALL $logs/INDEX $ports $pkgs/../ $dists
for disc in `ls -d disc? 2>/dev/null`; do
echo "===> cleaning $disc"
if [ -d "$disc/packages/All" ]; then
$scripts/checkdeps.pl $disc/packages/All $disc/packages/INDEX | \
sort -u | sed -e 's/^/missing package: /'
(
cd $disc/packages/All; \
$scripts/scrubindex.pl . ../INDEX > ../INDEX.new; \
mv ../INDEX.new ../INDEX; \
find . -name '*.tgz' | xargs /sbin/md5 > CHECKSUM.MD5; \
)
fi
du -ck $disc | grep total
done
fi
echo -n "Make sure the 'needed' packages made it on the right disc(s)? [y] "
read ans
if [ X$ans != Xn -a X$ans != XN ]; then
for disc in `ls -d disc? 2>/dev/null`; do
echo "===> checking $disc"
> $logs/have.$disc
if [ -d "$disc/packages/All" ]; then
( cd $disc/packages/All && find . -name '*.tgz' | \
sed -e 's/\.tgz//' -e 's/^\.\///' | sort) > \
$logs/have.$disc
fi
diff -u $logs/have.$disc $logs/need.$disc | grep -e '^\+' | \
grep -v -e '^\+* ' | sed -e 's/\+//' > $logs/missing.$disc
if [ -s $logs/missing.$disc ]; then
echo "===> missing required packages on $disc"
cat $logs/missing.$disc
fi
done
fi
|