blob: 96f42885d51f777ec130b2d06952ffb2b02216b0 (
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
130
131
132
133
134
135
136
|
#!/bin/sh
# $FreeBSD$
pathtoports=$1
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_re="^XFree86-3.3.6_1[0-9]$"
#indexfile="INDEX-5"
indexfile="INDEX"
#
##############################################################################
test -d $logs || mkdir -p $logs
if [ ! -d "$ports" ]; then
if [ -z "$pathtoports" ]; then
echo "Missing path to ports/packages toree to process for setup.sh."
exit 1
fi
$scripts/setup.sh $pathtoports
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/$indexfile" ]; then
echo "===> copying INDEX file from $ports/$indexfile"
$scripts/scrubindex.pl $pkgs $ports/$indexfile > $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 -Ev $xdep_re | 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
echo "Calling oneshot.pl config $logs/need.ALL $logs/INDEX $ports $pkgs/../ $dists"
$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
|