a dirty trick: i386 nanobsd ports on amd64
Poul-Henning Kamp
phk at phk.freebsd.dk
Sun Nov 20 18:14:41 UTC 2016
I ran into a interesting problem, and want to share the solution, in
case anybody else can use it.
I'm upgrading a system which used to be i386 to amd64, but part of
its job is to compile i386 nanobsd images.
That's a solved problem, but I also needed a couple of ports installed,
which for reasons of paperwork, must be compiled from source.
Cross-compiling ports is not something I wanted to get into, but
happily amd64 cpus can run in i386 mode these days:
phk_ports () (
set -e
cd ${NANO_WORLDDIR}
mkdir -p usr/ports
trap "umount ${NANO_WORLDDIR}/usr/ports ; umount ${NANO_WORLDDIR}/dev" 1 2 15 EXIT
mount -t nullfs -o readonly /usr/ports ${NANO_WORLDDIR}/usr/ports
mount -t devfs devfs ${NANO_WORLDDIR}/dev
echo '
ldconfig -elf
for i in ports-mgmt/pkg sysutils/smartmontools net/trafshow
do
cd /usr/ports/${i}
make \
WRKDIRPREFIX=/tmp \
BATCH=YES \
OPTIONS_UNSET="DOCS NLS" \
all install clean
done
' > ${NANO_WORLDDIR}/tmp/_job.sh
chroot ${NANO_WORLDDIR} /bin/sh /tmp/_job.sh
umount ${NANO_WORLDDIR}/usr/ports
umount ${NANO_WORLDDIR}/dev
trap - 1 2 15 EXIT
)
customize_cmd phk_ports
The same basic trick can of course be be used for any i386 software
which must be compiled from source.
--
Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG | TCP/IP since RFC 956
FreeBSD committer | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.
More information about the freebsd-current
mailing list