mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-23 00:43:28 +00:00
- If ${ftp} = 0 in mkbindist.conf, then use the makeworld script to build
a world instead.
This commit is contained in:
parent
afda0ec7a9
commit
efc1842637
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=75494
@ -20,52 +20,61 @@ pb=/var/portbuild
|
||||
here=${pb}/${arch}/${branch}
|
||||
. ${here}/mkbindist.conf
|
||||
|
||||
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}
|
||||
|
||||
# FTP the snapshot tarball chunks if required
|
||||
if [ "${ftp}" != 0 ]; 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
|
||||
|
||||
# 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 [ "${useworld}" = 1 ]; 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})
|
||||
if [ ${ftp} = "0" ]; then
|
||||
if ! ${pb}/scripts/makeworld ${arch} ${branch}; then
|
||||
exit 1
|
||||
fi
|
||||
tmpdir=/var/chroot/
|
||||
else
|
||||
for i in ${ftpdists}; do
|
||||
cat ${here}/bindist/ftp/$(basename $i).?? | tar --unlink -xzpf -
|
||||
done
|
||||
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}
|
||||
|
||||
# FTP the snapshot tarball chunks if required
|
||||
if [ "${ftp}" != 0 ]; 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
|
||||
|
||||
# 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 [ "${useworld}" = 1 ]; 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
|
||||
fi
|
||||
|
||||
cd ${tmpdir}
|
||||
|
||||
# Customize the tmpdir
|
||||
rm -rf $(cat ${here}/bindist/delete)
|
||||
mkdir -p $(cat ${here}/bindist/dirlist)
|
||||
@ -81,38 +90,8 @@ 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
|
||||
#sed -e "s/%%KERNEL%%/${kernel}/g" ${here}/dokernel > ${tmpdir}/dokernel
|
||||
|
||||
# XXX Rebuild kernel for some reason. No idea why, and
|
||||
# note that it's using the source tree which is cvs
|
||||
# updated during the port build process, which is
|
||||
# usually newer than the host environment and the chroot.
|
||||
|
||||
mount ${master}:${here}/src ${tmpdir}/usr/src
|
||||
sleep 5 # XXX !!!
|
||||
|
||||
# Cater to different build locations of 4.x and 5.x
|
||||
#if [ -d ${here}/src/sys/i386/compile ]; then
|
||||
# chroot ${tmpdir} sh -c "cd /usr/src/sys/i386/conf && config ${kernel} && cd /sys/i386/compile/${kernel} && make depend -DNO_MODULES && make all install -DNO_MODULES"
|
||||
#else
|
||||
# chroot ${tmpdir} sh -c "cd /usr/src/sys/i386/conf && config ${kernel} && cd /sys/compile/${kernel} && make depend -DNO_MODULES && make all install -DNO_MODULES"
|
||||
#fi
|
||||
|
||||
#chroot ${tmpdir} sh -c "cd /usr/src/sys/boot && make obj && make depend && make all install"
|
||||
umount -f ${tmpdir}/usr/src
|
||||
ln -sf ${tmpdir}/kernel.GENERIC ${tmpdir}/kernel
|
||||
rm -rf ${tmpdir}/kernel.old ${tmpdir}/modules.old ${tmpdir}/boot/kernel.old
|
||||
|
||||
# Rebuild device nodes. Again, this was probably intended
|
||||
# to make sure they're correct for the host kernel, not
|
||||
# the chroot kernel, but it's using the wrong source tree.
|
||||
if [ -f ${here}/src/etc/MAKEDEV ]; then
|
||||
cp ${here}/src/etc/MAKEDEV ${tmpdir}/dev
|
||||
else
|
||||
cp ${here}/src/etc/etc.$(uname -m)/MAKEDEV ${tmpdir}/dev
|
||||
chroot ${tmpdir} /sbin/ldconfig -aout /usr/lib/aout
|
||||
rm -f /usr/lib/aout/lib*_p.a
|
||||
fi
|
||||
|
||||
# Create the tarballs
|
||||
@ -125,6 +104,6 @@ mv -f ${here}/tarballs/bindist.tar.new ${here}/tarballs/bindist.tar
|
||||
cd ${here}
|
||||
rm -rf ${tmpdir} 2>/dev/null
|
||||
if [ -d ${tmpdir} ]; then
|
||||
chflags -R noschg ${tmpdir}
|
||||
rm -rf ${tmpdir}
|
||||
chflags -R noschg ${tmpdir}
|
||||
rm -rf ${tmpdir}
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user