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
                cd /usr/ports/${i}
                make \
                        WRKDIRPREFIX=/tmp \
                        BATCH=YES \
                        OPTIONS_UNSET="DOCS NLS" \
                        all install clean
        ' > ${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
p...@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.
freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to