Release build problem
Tom Skoglund
tos at teleplan.no
Fri Jun 17 10:21:19 GMT 2005
Here are the attachments inlined.
-Tom
Release.sh:
===========
#!/bin/sh
export HERE=$(realpath $(dirname $0))
export BUILDNAME="5.4-COMSECURE"
export CHROOTDIR="/home/release"
STAGEDIR="${CHROOTDIR}/R/stage"
BASEDIR="${STAGEDIR}/trees/base"
DISTDIR="${STAGEDIR}/dists"
CDROMDIR="${CHROOTDIR}/R/cdrom"
PACKAGEDIR="${CDROMDIR}/disc1/packages"
CLIENTDIR="${CDROMDIR}/disc1/client"
export CVSROOT="/home/cvsup/freebsd/cvs"
# For the FreeBSD 5.2 based release
#export CVSCMDARGS="-D'2004/08/01 00:00:00 GMT'"
# For the FreeBSD 5.4 based release
export RELEASETAG="RELENG_5_4_0_RELEASE"
export PORTSRELEASETAG="RELEASE_5_4_0"
export DISC1_LABEL="ComSecure_INSTALL"
export DISC1_NAME="install"
export DISC2_LABEL="ComSecure_LIVE"
export DISC2_NAME="live"
# Tweak the release
# NB: Remember to update to the correct FreeBSD release
export LOCAL_PATCHES="$(echo ${HERE}/patches-5.4/patch-*)"
export LOCAL_SCRIPT="$(echo ${HERE}/scripts/script-*)"
chmod a+rx ${LOCAL_SCRIPT}
export FIXCRYPTO=""
export KERNELS="COMSECURE"
export NODOC="YES"
export NOPORTREADMES="YES"
export NO_FLOPPIES="YES"
# Save some time
export WORLD_FLAGS=-j3
export KERNEL_FLAGS=-j3
pdate() {
date +">>> %F %T"
}
set -e
trap pdate EXIT
if [ ! -d "${BASEDIR}" ] ; then
pdate
echo ">>> make release"
cd /usr/src/release
make release
fi
pdate
echo ">>> Writing loader.conf"
:> "${BASEDIR}/boot/loader.conf"
echo 'beastie_disable="YES"' >> "${BASEDIR}/boot/loader.conf"
echo 'autoboot_delay=3' >> "${BASEDIR}/boot/loader.conf"
echo 'kernel="COMSECURE"' >> "${BASEDIR}/boot/loader.conf"
echo 'kern.ipc.nmbclusters=262144' >> "${BASEDIR}/boot/loader.conf"
echo 'hz=2048' >> "${BASEDIR}/boot/loader.conf"
pdate
echo ">>> Writing make.conf"
cat ${CHROOTDIR}/etc/make.conf > "${BASEDIR}/etc/make.conf"
echo "KERNCONF = COMSECURE" >> "${BASEDIR}/etc/make.conf"
echo 'KODIR = /boot/${KERNCONF}' >>
"${BASEDIR}/etc/make.conf"
echo >> "${BASEDIR}/etc/make.conf"
echo "# work around bug in sysinstall" >> "${BASEDIR}/etc/make.conf"
echo "NO_RESCUE = YES" >> "${BASEDIR}/etc/make.conf"
echo "WITH_POSTGRESQL = YES" >> "${BASEDIR}/etc/make.conf"
pdate
echo ">>> Writing libmap.conf"
:> "${BASEDIR}/etc/libmap.conf"
echo "# KSE is still unreliable" >> "${BASEDIR}/etc/libmap.conf"
echo "libpthread.so.1 libthr.so.1" >> "${BASEDIR}/etc/libmap.conf"
echo "libpthread.so libthr.so" >> "${BASEDIR}/etc/libmap.conf"
echo "libc_r.so.5 libthr.so.1" >> "${BASEDIR}/etc/libmap.conf"
echo "libc_r.so libthr.so" >> "${BASEDIR}/etc/libmap.conf"
pdate
rm -rf "${CDROMDIR}"
mkdir -p "${PACKAGEDIR}"
sh -e "${HERE}/packages.sh" "${PACKAGEDIR}"
if [ -f "${HERE}/ComSecureClient.jar" ]; then
mkdir -p "${CLIENTDIR}"
cp "${HERE}/ComSecureClient.jar" "${CLIENTDIR}"
fi
# force 'make rerelease' to re-roll the tarballs
rm -f "${CHROOTDIR}/usr/obj/usr/src/release/release.7"
rm -f "${CHROOTDIR}/usr/obj/usr/src/release/release.8"
rm -f "${CHROOTDIR}/usr/obj/usr/src/release/cdrom.1"
rm -f "${CHROOTDIR}/usr/obj/usr/src/release/iso.1"
pdate
echo ">>> make rerelease"
cd /usr/src/release
#make rerelease -DMAKE_ISOS CVSPREFIX="echo"
export RELEASENOUPDATE="YES"
make rerelease -DMAKE_ISOS
pdate
echo ">>> Release build complete"
Packages.sh:
============
#!/bin/sh
ports="mmsc zsh"
here="$(realpath $(dirname $0))"
mmscdir="$(realpath ${here}/..)"
portsdir="/usr/ports"
pkgdir="$(realpath ${1:-${here}/packages})"
set -e
rm -rf "${pkgdir}"
mkdir -p "${pkgdir}"
# Create package dirs if missing
if [ ! -d "${portsdir}/packages/All" ] ; then
mkdir "${portsdir}/packages/All"
fi
if [ ! -d "${portsdir}/packages/Latest" ] ; then
mkdir "${portsdir}/packages/Latest"
fi
deplist() {
pkg=$(basename $(realpath "${portsdir}/packages/Latest/${1}.tbz"))
pkg=${pkg%.tbz}
if [ -f "${portsdir}/packages/All/${pkg}.tbz" ] ; then
echo "${pkg}"
pkg_info -qr "${portsdir}/packages/All/${pkg}.tbz" | \
awk '/^@pkgdep/ { print $2 }'
fi
}
pkglist() {
for port; do
deplist "${port}"
done | \
sort -u
}
echo ">>> Locating packages"
packages=$(pkglist $ports)
echo "${packages}"
echo ">>> Copying packages"
cd ${portsdir}/packages
for pkg in ${packages}; do
find . -name "${pkg}.tbz" -print
done | \
tar cf - ${pkgfiles} -T /dev/stdin | \
tar xvf - -C ${pkgdir}
echo ">>> Generating ${pkgdir}/INDEX"
for pkg in ${packages} ; do
echo "d ${pkg}" 1>&2
origin=$(pkg_info -qo ${pkgdir}/All/${pkg}.tbz)
if [ -d "${mmscdir}/ports/$(basename ${origin})" ] ; then
cd "${mmscdir}/ports/$(basename ${origin})"
make describe
elif [ -d "${portsdir}/${origin}" ] ; then
cd "${portsdir}/${origin}"
make describe
else
echo "Can't find ${origin}" 1>&2
exit 1
fi
done | \
perl ${portsdir}/Tools/make_index | \
sort >"${pkgdir}/INDEX"
Release.log:
============
>>> 2005-06-13 16:30:27
>>> Writing loader.conf
>>> 2005-06-13 16:30:27
>>> Writing make.conf
>>> 2005-06-13 16:30:27
>>> Writing libmap.conf
>>> 2005-06-13 16:30:27
>>> Locating packages
gettext-0.14.1
libiconv-1.9.2_1
mmsc-1.2.2
p5-DBD-Pg-1.40_1
p5-DBI-1.48
p5-MMSC-1.2.2
pcre-5.0
perl-5.8.6_2
postgresql-client-7.4.7
postgresql-server-7.4.7_3
snort-2.3.2
zsh-4.2.4
>>> Copying packages
x All/gettext-0.14.1.tbz
x devel/gettext-0.14.1.tbz
x All/libiconv-1.9.2_1.tbz
x converters/libiconv-1.9.2_1.tbz
x devel/libiconv-1.9.2_1.tbz
x All/mmsc-1.2.2.tbz
x net/mmsc-1.2.2.tbz
x security/mmsc-1.2.2.tbz
x All/p5-DBD-Pg-1.40_1.tbz
x perl5/p5-DBD-Pg-1.40_1.tbz
x databases/p5-DBD-Pg-1.40_1.tbz
x All/p5-DBI-1.48.tbz
x perl5/p5-DBI-1.48.tbz
x databases/p5-DBI-1.48.tbz
x All/p5-MMSC-1.2.2.tbz
x net/p5-MMSC-1.2.2.tbz
x security/p5-MMSC-1.2.2.tbz
x perl5/p5-MMSC-1.2.2.tbz
x All/pcre-5.0.tbz
x devel/pcre-5.0.tbz
x All/perl-5.8.6_2.tbz
x perl5/perl-5.8.6_2.tbz
x devel/perl-5.8.6_2.tbz
x lang/perl-5.8.6_2.tbz
x All/postgresql-client-7.4.7.tbz
x databases/postgresql-client-7.4.7.tbz
x All/postgresql-server-7.4.7_3.tbz
x databases/postgresql-server-7.4.7_3.tbz
x All/snort-2.3.2.tbz
x security/snort-2.3.2.tbz
x All/zsh-4.2.4.tbz
x shells/zsh-4.2.4.tbz
>>> Generating /home/release/R/cdrom/disc1/packages/INDEX
d gettext-0.14.1
d libiconv-1.9.2_1
d mmsc-1.2.2
d p5-DBD-Pg-1.40_1
d p5-DBI-1.48
d p5-MMSC-1.2.2
d pcre-5.0
d perl-5.8.6_2
d postgresql-client-7.4.7
d postgresql-server-7.4.7_3
d snort-2.3.2
d zsh-4.2.4
make_index: gettext-0.14.1: no entry for /usr/ports/devel/libtool15
make_index: postgresql-server-7.4.7_3: no entry for /usr/ports/devel/gmake
make_index: postgresql-client-7.4.7: no entry for /usr/ports/devel/gmake
make_index: libiconv-1.9.2_1: no entry for /usr/ports/devel/libtool15
make_index: pcre-5.0: no entry for /usr/ports/devel/libtool15
>>> 2005-06-13 16:30:39
>>> make rerelease
# Add version information to those things that need it.
if [ ! -f /home/release/tmp/.world_done ]; then cd
/home/release/usr/src/sys/conf && mv newvers.sh foo && sed
"s/^RELEASE=.*/RELEASE=5.4-COMSECURE/" foo > newvers.sh && rm foo; fi
test -f install.cfg && cp install.cfg /home/release/usr/src/release
*** Error code 1 (ignored)
echo "#!/bin/sh" > /home/release/mk
echo "set -ex" >> /home/release/mk
echo "trap 'umount /dev || true' 0" >> /home/release/mk
echo "_RELTARGET=\${1:-doRELEASE}" >> /home/release/mk
echo "export AUTO_KEYBOARD_DETECT=\"0\"" >> /home/release/mk
echo "export BUILDNAME=\"5.4-COMSECURE\"" >> /home/release/mk
echo "export DISTRIBUTIONS=\"base catpages manpages games proflibs dict info
doc compat1x compat20 compat21 compat22 compat3x compat4x\"" >>
/home/release/mk
echo "export FTP_PASSIVE_MODE=\"YES\"" >> /home/release/mk
echo "export KERNELS=\"COMSECURE\"" >> /home/release/mk
echo "export KERNEL_FLAGS=\"-j3\"" >> /home/release/mk
echo "export MAKE_ISOS=\"1\"" >> /home/release/mk
echo "export NODOC=\"YES\"" >> /home/release/mk
echo "export NO_FLOPPIES=\"YES\"" >> /home/release/mk
echo "export RELEASETAG=\"RELENG_5_4_0_RELEASE\"" >> /home/release/mk
echo "export RELNOTES_LANG=\"en_US.ISO8859-1\"" >> /home/release/mk
echo "export TARGET=\"i386\"" >> /home/release/mk
echo "export TARGET_ARCH=\"i386\"" >> /home/release/mk
echo "export WORLD_FLAGS=\"-j3\"" >> /home/release/mk
# Don't remove this, or the build will fall over!
echo "export RELEASEDIR=/R" >> /home/release/mk
echo "export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin" >>
/home/release/mk
echo "export MANBUILDCAT=YES" >> /home/release/mk
# NB: these may fail if the host is running w/o devfs
echo "umount /dev >/dev/null 2>&1 || true" >> /home/release/mk
echo "mount -t devfs devfs /dev >/dev/null 2>&1 || true" >>
/home/release/mk
echo "if [ -x /etc/rc.d/ldconfig ]; then" >> /home/release/mk
echo " /etc/rc.d/ldconfig start" >> /home/release/mk
echo "else" >> /home/release/mk
echo " ldconfig /lib /usr/lib /usr/local/lib || true" >> /home/release/mk
echo "fi" >> /home/release/mk
echo "if [ ! -f /tmp/.world_done ]; then" >> /home/release/mk
echo " cd /usr/src" >> /home/release/mk
echo " make TARGET_ARCH=i386 TARGET=i386 -j3 -DNOCLEAN buildworld && \\" >>
/home/release/mk
echo " touch /tmp/.world_done || exit 1" >> /home/release/mk
echo "fi" >> /home/release/mk
echo "if [ ! -f /tmp/.skip_ports_index ]; then" >> /home/release/mk
echo " echo \">>> make index started on \`LC_ALL=C TZ=GMT date\`\"" >>
/home/release/mk
echo " for i in lang/perl5.8" >> /home/release/mk
echo " do" >> /home/release/mk
echo " cd /usr/ports/\${i}" >> /home/release/mk
echo " env -i FTP_PASSIVE_MODE=${FTP_PASSIVE_MODE:-no} PATH=${PATH}
\\" >> /home/release/mk
echo " make all install clean BATCH=yes FORCE_PKG_REGISTER=yes" >>
/home/release/mk
echo " done" >> /home/release/mk
echo " cd /usr/ports" >> /home/release/mk
echo " rm -f INDEX*" >> /home/release/mk
echo " make index -DINDEX_PRISTINE" >> /home/release/mk
echo " rm -f INDEX*.tmp" >> /home/release/mk
echo " touch /tmp/.skip_ports_index" >> /home/release/mk
echo " echo \">>> make index finished on \`LC_ALL=C TZ=GMT date\`\"" >>
/home/release/mk
echo "fi" >> /home/release/mk
echo "cd /usr/src/release" >> /home/release/mk
echo "make obj" >> /home/release/mk
echo "make \${_RELTARGET}" >> /home/release/mk
echo "echo \">>> make rerelease for i386 finished on \`LC_ALL=C TZ=GMT
date\`\"" >> /home/release/mk
chmod 755 /home/release/mk
# Ensure md.ko is loaded if md(4) is not statically compiled into
# the kernel
mdconfig 2>/dev/null
*** Error code 1 (ignored)
env -i /usr/sbin/chroot `dirname /home/release/mk` /`basename
/home/release/mk`
+ trap umount /dev || true 0
+ _RELTARGET=doRELEASE
+ export AUTO_KEYBOARD_DETECT=0
+ export BUILDNAME=5.4-COMSECURE
+ export DISTRIBUTIONS=base catpages manpages games proflibs dict info doc
compat1x compat20 compat21 compat22 compat3x compat4x
+ export FTP_PASSIVE_MODE=YES
+ export KERNELS=COMSECURE
+ export KERNEL_FLAGS=-j3
+ export MAKE_ISOS=1
+ export NODOC=YES
+ export NO_FLOPPIES=YES
+ export RELEASETAG=RELENG_5_4_0_RELEASE
+ export RELNOTES_LANG=en_US.ISO8859-1
+ export TARGET=i386
+ export TARGET_ARCH=i386
+ export WORLD_FLAGS=-j3
+ export RELEASEDIR=/R
+ export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
+ export MANBUILDCAT=YES
+ umount /dev
+ true
+ mount -t devfs devfs /dev
+ [ -x /etc/rc.d/ldconfig ]
+ /etc/rc.d/ldconfig start
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
+ [ ! -f /tmp/.world_done ]
+ [ ! -f /tmp/.skip_ports_index ]
+ LC_ALL=C TZ=GMT date
+ echo >>> make index started on Mon Jun 13 14:30:40 GMT 2005
>>> make index started on Mon Jun 13 14:30:40 GMT 2005
+ cd /usr/ports/lang/perl5.8
+ env -i FTP_PASSIVE_MODE=YES
PATH=/root/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr
/bin:/usr/sbin:/usr/local/linux-sun-jdk1.4.2/bin make all install clean
BATCH=yes FORCE_PKG_REGISTER=yes
===> Building for perl-5.8.6_2
[...]
===> Cleaning for perl-5.8.6_2
+ cd /usr/ports
+ rm -f INDEX-5
+ make index -DINDEX_PRISTINE
Generating INDEX-5 - please wait.. Done.
+ rm -f INDEX-5.tmp
+ touch /tmp/.skip_ports_index
+ LC_ALL=C TZ=GMT date
+ echo >>> make index finished on Mon Jun 13 14:42:54 GMT 2005
>>> make index finished on Mon Jun 13 14:42:54 GMT 2005
+ cd /usr/src/release
+ make obj
+ make doRELEASE
rolling src/sbase tarball
rolling src/sbin tarball
rolling src/scontrib tarball
rolling src/scrypto tarball
rolling src/setc tarball
rolling src/sgames tarball
rolling src/sgnu tarball
rolling src/sinclude tarball
rolling src/skrb5 tarball
rolling src/slib tarball
rolling src/slibexec tarball
rolling src/srelease tarball
rolling src/srescue tarball
rolling src/ssbin tarball
rolling src/ssecure tarball
rolling src/sshare tarball
rolling src/ssys tarball
rolling src/stools tarball
rolling src/subin tarball
rolling src/susbin tarball
(cd /R/stage/dists/src; rm -f CHECKSUM.MD5; md5 * > CHECKSUM.MD5)
src distribution is finished.
touch release.7
cp /R/stage/trees/base/etc/disktab /etc
rm -rf /R/stage/mfsfd
mkdir /R/stage/mfsfd
cd /R/stage/mfsfd && mkdir -p etc/defaults dev mnt stand/etc/defaults
stand/help
( cd /R/stage/mfsfd && for dir in bin sbin ; do ln -sf /stand $dir; done
)
cp /R/stage/trees/base/sbin/dhclient-script /R/stage/mfsfd/stand
cp /usr/src/release/../etc/usbd.conf /R/stage/mfsfd/etc/usbd.conf
( for F in defaults/rc.conf netconfig protocols ; do sed -e '/^#.*$/d' -e
's/[:space:]*#.*$//g' /R/stage/trees/base/etc/$F >
/R/stage/mfsfd/stand/etc/$F ; done )
grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]'
/R/stage/trees/base/etc/services | sed -e '/^#.*$/d' -e
's/[:space:]*#.*$//g' > /R/stage/mfsfd/stand/etc/services
grep 'operator' /R/stage/trees/base/etc/group >
/R/stage/mfsfd/stand/etc/group
ln /R/stage/mfsfd/stand/etc/services /R/stage/mfsfd/etc/services
ln /R/stage/mfsfd/stand/etc/group /R/stage/mfsfd/etc/group
ln /R/stage/mfsfd/stand/etc/netconfig /R/stage/mfsfd/etc/netconfig
cp /R/stage/trees/base/COPYRIGHT /R/stage/mfsfd/stand/help/COPYRIGHT.hlp
test -f /usr/src/release/install.cfg && cp /usr/src/release/install.cfg
/R/stage/mfsfd
*** Error code 1 (ignored)
sh -e /usr/src/release/scripts/doFS.sh bsdlabel "" /R/stage/mfsroot/mfsroot
/R/stage /mnt 4320 /R/stage/mfsfd 8000 minimum3
+ export BLOCKSIZE=512
+ DISKLABEL=bsdlabel
+ shift
+ MACHINE=
+ shift
+ FSIMG=/R/stage/mfsroot/mfsroot
+ shift
+ RD=/R/stage
+ shift
+ MNT=/mnt
+ shift
+ FSSIZE=4320
+ shift
+ FSPROTO=/R/stage/mfsfd
+ shift
+ FSINODE=8000
+ shift
+ FSLABEL=minimum3
+ shift
+ [ 4320 -eq 0 -a minimum3 = auto ]
+ rm -f /R/stage/mfsroot/mfsroot
+ dd of=/R/stage/mfsroot/mfsroot if=/dev/zero count=4320 bs=1k
+ uname -r
+ [ -f /R/stage/trees/base/boot/boot ]
+ BOOT=-B -b /R/stage/trees/base/boot/boot
+ dofs_md
+ [ x != x ]
+ mdconfig -a -t vnode -f /R/stage/mfsroot/mfsroot
+ MDDEVICE=md0
+ sleep 3
+ [ ! -c /dev/md0 ]
+ trap umount /mnt; mdconfig -d -u md0 EXIT
+ bsdlabel -w -B -b /R/stage/trees/base/boot/boot md0 minimum3
+ newfs -O1 -i 8000 -o space -m 0 /dev/md0c
fstab: /etc/fstab:0: No such file or directory
/dev/md0c: 4.2MB (8640 sectors) block size 4096, fragment size 512
using 4 cylinder groups of 1.06MB, 271 blks, 160 inodes.
super-block backups (for fsck -b #) at:
32, 2200, 4368, 6536
+ mount /dev/md0c /mnt
+ [ -d /R/stage/mfsfd ]
+ set -e
+ cd /R/stage/mfsfd
+ find . -print
+ cpio -dump /mnt
4621 blocks
+ df -ki /mnt
Filesystem 1K-blocks Used Avail Capacity iused ifree %iused Mounted on
/dev/md0c 4175 2329 1846 56% 45 593 7% /mnt
+ df -ki /mnt
+ tail -1
+ set /dev/md0c 4175 2329 1846 56% 45 593 7% /mnt
+ echo *** File system is 4320 K, 1846 left
*** File system is 4320 K, 1846 left
+ echo *** 8000 bytes/inode, 593 left
*** 8000 bytes/inode, 593 left
+ umount /mnt
+ mdconfig -d -u md0
/R/stage/mfsroot/mfsroot: 74.2% -- replaced with
/R/stage/mfsroot/mfsroot.gz
touch release.8
Building CDROM live filesystem image
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
0 blocks
Setting up CDROM boot area
# Break the link to device.hints so we can modify it
touch cdrom.1
Creating ISO images...
mkisofs: No such file or directory. Invalid node - /R/cdrom/bootonly
*** Error code 2
Stop in /usr/src/release.
+ umount /dev
*** Error code 1
Stop in /usr/src/release.
>>> 2005-06-13 16:44:40
More information about the freebsd-questions
mailing list