mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-04 01:48:54 +00:00
23cad417ec
with 5.X or 4.X package sets (i.e., INDEX vs INDEX-5 and tgz vs tbz) OKed by: marcus
137 lines
4.1 KiB
Bash
Executable File
137 lines
4.1 KiB
Bash
Executable File
#!/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
|