c5c0032536
build world and populate the chroot. Otherwise, if ${ftp}=1 then fetch it from the ftp site as before.
105 lines
2.3 KiB
Bash
Executable file
105 lines
2.3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
usage () {
|
|
echo "usage: mkbindist <arch> <branch>"
|
|
exit 1
|
|
}
|
|
if [ $# != 2 ]; then
|
|
usage
|
|
fi
|
|
|
|
arch=$1
|
|
branch=$2
|
|
if [ "x$branch" != x4 -a "x$branch" != x4-exp -a "x$branch" != x5 ]; then
|
|
usage
|
|
fi
|
|
|
|
pb=/var/portbuild
|
|
. ${pb}/${arch}/portbuild.conf
|
|
|
|
here=${pb}/${arch}/${branch}
|
|
. ${here}/mkbindist.conf
|
|
|
|
if [ ${buildworld} = "1" ]; then
|
|
if ! ${pb}/scripts/makeworld ${arch} ${branch}; then
|
|
exit 1
|
|
fi
|
|
elif [ ${ftp} = "1" ]; then
|
|
cd ${here}
|
|
rm -rf bindist/ftp
|
|
mkdir -p bindist/ftp
|
|
cd bindist/ftp
|
|
for i in ${ftpdists}; do
|
|
/usr/bin/ftp -a "ftp://${ftpserver}${ftpurl}/${rel}/$i.??"
|
|
done
|
|
cd ${here}
|
|
fi
|
|
|
|
tmpdir=${here}/tmp
|
|
|
|
# just in case
|
|
umount -f ${tmpdir}/usr/src 2>/dev/null
|
|
|
|
# Clean up ${tmpdir}
|
|
rm -rf ${tmpdir} 2>/dev/null
|
|
if [ -d ${tmpdir} ]; then
|
|
chflags -R noschg ${tmpdir}
|
|
rm -rf ${tmpdir}
|
|
fi
|
|
mkdir -p ${tmpdir}
|
|
|
|
# Set up the tmpdir directory hierarchy
|
|
cd ${tmpdir}
|
|
mtree -deU -f ${here}/src/etc/mtree/BSD.root.dist -p ${tmpdir}/
|
|
mtree -deU -f ${here}/src/etc/mtree/BSD.var.dist -p ${tmpdir}/var
|
|
mtree -deU -f ${here}/src/etc/mtree/BSD.usr.dist -p ${tmpdir}/usr
|
|
mtree -deU -f ${here}/src/etc/mtree/BSD.local.dist -p ${tmpdir}/usr/local
|
|
|
|
# Copy the files into the tmpdir. Use an existing built world, or the ftp
|
|
# files.
|
|
if [ "${ftp}" = 0 ]; then
|
|
(cd ${worlddir}; find -dx . | \
|
|
grep -v -E '^./usr/(X11R6|local|obj|opt|ports|src)' | \
|
|
grep -v '^./home' | \
|
|
grep -v '^./var/db/pkg' | \
|
|
cpio -dump ${tmpdir})
|
|
else
|
|
for i in ${ftpdists}; do
|
|
cat ${here}/bindist/ftp/$(basename $i).?? | tar --unlink -xzpf -
|
|
done
|
|
fi
|
|
|
|
cd ${tmpdir}
|
|
|
|
# Customize the tmpdir
|
|
rm -rf $(cat ${here}/bindist/delete)
|
|
mkdir -p $(cat ${here}/bindist/dirlist)
|
|
(cd ${here}/bindist/files; find -dx . | cpio -dump ${tmpdir})
|
|
|
|
# Post-processing of installed world
|
|
|
|
date '+%Y%m%d' > var/db/port.mkversion
|
|
|
|
rm -f kernel.GENERIC
|
|
|
|
mkdir ${tmpdir}/var/run
|
|
|
|
chroot ${tmpdir} /sbin/ldconfig /usr/lib
|
|
if [ "${arch}" = "i386" ]; then
|
|
chroot ${tmpdir} /sbin/ldconfig -aout /usr/lib/aout
|
|
rm -f /usr/lib/aout/lib*_p.a
|
|
fi
|
|
|
|
# Create the tarballs
|
|
mkdir -p ${here}/tarballs
|
|
cd ${tmpdir}
|
|
tar cf ${here}/tarballs/bindist.tar.new .
|
|
mv -f ${here}/tarballs/bindist.tar.new ${here}/tarballs/bindist.tar
|
|
|
|
# Clean up
|
|
cd ${here}
|
|
rm -rf ${tmpdir} 2>/dev/null
|
|
if [ -d ${tmpdir} ]; then
|
|
chflags -R noschg ${tmpdir}
|
|
rm -rf ${tmpdir}
|
|
fi
|