Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Jun 2019 15:27:45 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Karl Denninger <karl@denninger.net>
Cc:        freebsd-embedded <freebsd-embedded@freebsd.org>
Subject:   Re: NanoBSD cust_pkgng problem....
Message-ID:  <CANCZdfo4Eh74C5a==N6c2ULkr89tOuLfem3_2KZQmM9T0jfBQw@mail.gmail.com>
In-Reply-To: <fc9b21ad-3d51-a0ab-3db0-7976fb3b6aa1@denninger.net>
References:  <27515540-54ef-6e7e-1b87-9be875b54c22@denninger.net> <ac88b364f04c70bb0d644d2d0dba4bb50a5d57f8.camel@freebsd.org> <CANCZdfqnvK4x5w7t3-TLgWAChoQVLAH3hp%2Bp87VqkJdkjQhLzA@mail.gmail.com> <fc9b21ad-3d51-a0ab-3db0-7976fb3b6aa1@denninger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jun 20, 2019 at 1:28 PM Karl Denninger <karl@denninger.net> wrote:

>
> On 6/20/2019 14:46, Warner Losh wrote:
> >
> >
> > On Thu, Jun 20, 2019, 12:40 PM Ian Lepore <ian@freebsd.org
> > <mailto:ian@freebsd.org>> wrote:
> >
> >     On Thu, 2019-06-20 at 13:16 -0500, Karl Denninger wrote:
> >     > I'm trying to rebuild 12-STABLE with current code with the
> following
> >     > for
> >     > the PCEngines systems.
> >     >
> >     > NANO_NAME=pcengines
> >     > NANO_SRC=/usr/src
> >     > NANO_KERNEL=KSD-SMP
> >     > NANO_IMAGES=2
> >     > NANO_MODULES="default"
> >     >
> >     > #NANO_DRIVE=ad0
> >     > NANO_DRIVE=mmcsd0
> >     >
> >     > NANO_RAM_ETCSIZE=30720
> >     > #NANO_RAM_TMPVARSIZE=30720
> >     > NANO_RAM_TMPVARSIZE=131072
> >     >
> >     > NANO_PACKAGE_DIR=/work/PKG-AMD64-12/pkg
> >     >
> >     > # Configuration slice size set to 64Mb
> >     > #
> >     > NANO_CONFSIZE=$((64*1000*1000/512))
> >     > #
> >     > # Set "data" partition to 512MB
> >     > #
> >     > NANO_DATASIZE=$((512*1000*1000/512))
> >     >
> >     > NANO_OBJ="/work/Crochet-work-AMD/obj"
> >     >
> >     > NANO_PMAKE="make -j 8"
> >     >
> >     > # 7.5Gb SD image; will fit on a 8Gb card, but is REAL tight!
> >     > #NANO_MEDIASIZE=$((7*1000*1000*1000/512 + 1000*1000*512/512))
> >     > #
> >     > # 12Gb SD image; fits on 16Gb SD card and has more room for
> packages
> >     > NANO_MEDIASIZE=$((12*1000*1000*1000/512))
> >     >
> >     > The packages are in /work/PKG-AMD64-12 as expected.  I have a
> little
> >     > script that gets them which is:
> >     >
> >     > PKGDIR='/work/PKG-AMD64-12'
> >     > export PKGDIR
> >     > PKG_CACHEDIR=/work/PKG-AMD64-12/cache
> >     > export PKG_CACHEDIR
> >     >
> >     > ABI=FreeBSD:12:amd64
> >     > export ABI
> >     >
> >     > pkg -R . -r . -o $PKGDIR/pkgs fetch -d \
> >     >         bind914 rsync sshguard strongswan dhcp6 \
> >     >         net-snmp ntimed openvpn flashrom dmidecode
> >     > #       net-snmp ntimed openvpn flashrom dmidecode ssmtp
> >     > #       bind914 rsync sshguard strongswan dhcp6 isc-dhcp44-server \
> >     >
> >     > rm -rf $PKGDIR/pkg
> >     > mkdir -p $PKGDIR/pkg
> >     >
> >     > cd $PKG_CACHEDIR
> >     > find . -type l -print -exec cp {} ../pkg \;
> >     >
> >     > /work/PKG-AMD64-12 has a repo.conf file and such; I use the same
> >     > mechanism to fetch for Crochet for the ARM64 platforms.
> >     >
> >     > Note the two commented lines.  If I include EITHER ssmpt or
> >     > isc-dhcp44-server cust_pkgng fails, but the error simply says the
> >     > install failed without a reason for it.
> >     >
> >     > If I do NOT include those two the build succeeds.  Neither of them,
> >     > if I
> >     > add them back in, discloses a missing dependency or similar.
> >     >
> >     > pkg: Cannot open /dev/null:No such file or directory
> >     > Extracting flashrom-1.0_1: ........ done
> >     > Message from python27-2.7.16_1:
> >     >
> >     >
> >     =====================================================================
> >     > ======
> >     >
> >     > Note that some standard Python modules are provided as separate
> >     ports
> >     > as they require additional dependencies. They are available as:
> >     >
> >     > bsddb           databases/py-bsddb
> >     > gdbm            databases/py-gdbm
> >     > sqlite3         databases/py-sqlite3
> >     > tkinter         x11-toolkits/py-tkinter
> >     >
> >     >
> >     =====================================================================
> >     > ======
> >     > + CR 'env BATCH=YES ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg
> >     > SIGNATURE_TYPE=none /usr/sbin/pkg add /_.p/gettext-runtime-
> >     > 0.20.1.txz'
> >     > + chroot /work/Crochet-work-AMD/obj/_.w /bin/sh -exc 'env BATCH=YES
> >     > ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg SIGNATURE_TYPE=none
> >     > /usr/sbin/pkg add /_.p/gettext-runtime-0.20.1.txz'
> >     > + env 'BATCH=YES' 'ASSUME_ALWAYS_YES=YES' 'PKG_DBDIR=/var/db/pkg'
> >     > 'SIGNATURE_TYPE=none' /usr/sbin/pkg add /_.p/gettext-runtime-
> >     > 0.20.1.txz
> >     > Installing gettext-runtime-0.20.1...
> >     > the most recent version of gettext-runtime-0.20.1 is already
> >     > installed
> >     > + CR 'env BATCH=YES ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg
> >     > SIGNATURE_TYPE=none /usr/sbin/pkg add /_.p/icu-64.2,1.txz'
> >     > + chroot /work/Crochet-work-AMD/obj/_.w /bin/sh -exc 'env BATCH=YES
> >     > ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg SIGNATURE_TYPE=none
> >     > /usr/sbin/pkg add /_.p/icu-64.2,1.txz'
> >     > + env 'BATCH=YES' 'ASSUME_ALWAYS_YES=YES' 'PKG_DBDIR=/var/db/pkg'
> >     > 'SIGNATURE_TYPE=none' /usr/sbin/pkg add /_.p/icu-64.2,1.txz
> >     > Installing icu-64.2,1...
> >     > the most recent version of icu-64.2,1 is already installed
> >     > + CR 'env BATCH=YES ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg
> >     > SIGNATURE_TYPE=none /usr/sbin/pkg add /_.p/indexinfo-0.3.1.txz'
> >     > + chroot /work/Crochet-work-AMD/obj/_.w /bin/sh -exc 'env BATCH=YES
> >     > ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg SIGNATURE_TYPE=none
> >     > /usr/sbin/pkg add /_.p/indexinfo-0.3.1.txz'
> >     > + env 'BATCH=YES' 'ASSUME_ALWAYS_YES=YES' 'PKG_DBDIR=/var/db/pkg'
> >     > 'SIGNATURE_TYPE=none' /usr/sbin/pkg add /_.p/indexinfo-0.3.1.txz
> >     > Installing indexinfo-0.3.1...
> >     > the most recent version of indexinfo-0.3.1 is already installed
> >     > + CR 'env BATCH=YES ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg
> >     > SIGNATURE_TYPE=none /usr/sbin/pkg add /_.p/isc-dhcp44-server-
> >     > 4.4.1_4.txz'
> >     > + chroot /work/Crochet-work-AMD/obj/_.w /bin/sh -exc 'env BATCH=YES
> >     > ASSUME_ALWAYS_YES=YES PKG_DBDIR=/var/db/pkg SIGNATURE_TYPE=none
> >     > /usr/sbin/pkg add /_.p/isc-dhcp44-server-4.4.1_4.txz'
> >     > + env 'BATCH=YES' 'ASSUME_ALWAYS_YES=YES' 'PKG_DBDIR=/var/db/pkg'
> >     > 'SIGNATURE_TYPE=none' /usr/sbin/pkg add /_.p/isc-dhcp44-server-
> >     > 4.4.1_4.txz
> >     > Installing isc-dhcp44-server-4.4.1_4...
> >     > pkg: Cannot open /dev/null:No such file or directory
> >     >
> >     > Failed to install the following 1 package(s):
> >     > /_.p/isc-dhcp44-server-4.4.1_4.txz
> >     > + umount /work/Crochet-work-AMD/obj/_.w/_.p
> >     > + rm -rf /work/Crochet-work-AMD/obj/_.w/_.p
> >     > + echo 'NANO RM -rf /work/Crochet-work-AMD/obj/_.w/_.p'
> >     > NANO RM -rf /work/Crochet-work-AMD/obj/_.w/_.p
> >     > + uname -r
> >     > + command rm -x -rf /work/Crochet-work-AMD/obj/_.w/_.p
> >     >
> >     > Note that's not the "can't open /dev/null" complaint since that
> >     > appears
> >     > up above (and in fact a bunch of other times previously as well)
> and
> >     > doesn't blow the install up.  But *something* is causing the
> install
> >     > for
> >     > those two packages -- and only these two, as the other ~40 odd with
> >     > dependencies are fine -- to exit non-zero and blow up the build.
> >     >
> >     > It's tough to run this down without an error message that tells me
> >     > exactly what it's upset about.
> >     >
> >     > Any ideas?
> >     >
> >
> >     I think it's a mistake to ignore the /dev/null errors.  It's quite
> >     possible that the error is non-fatal when installing some packages
> and
> >     fatal when installing others.  The message indicates you need to
> mount
> >     devfs within the chroot or jail being used to run pkg.
> >
> >
> > I agree, but for different reasons. Pkg is now using it, which is why
> > we see a new error. None of the packages installed threw error
> > messages before, so I think his setup is ok.
> >
> > Warner
> >
> I can confirm that with defaults.sh patched it now runs to completion on
> the "latest" without problems.
>

I'll get it committed a bit later today. Can someone test the following:

diff --git a/tools/tools/nanobsd/defaults.sh
b/tools/tools/nanobsd/defaults.sh
index 0002373be658..86acab65f67d 100755
--- a/tools/tools/nanobsd/defaults.sh
+++ b/tools/tools/nanobsd/defaults.sh
@@ -778,8 +778,9 @@ cust_pkgng ( ) (
        # Mount packages into chroot
        mkdir -p ${NANO_WORLDDIR}/_.p
        mount -t nullfs -o noatime -o ro ${NANO_PACKAGE_DIR}
${NANO_WORLDDIR}/_.p
+       mount -t devfs devfs ${NANO_WORLDDIR}/dev

-       trap "umount ${NANO_WORLDDIR}/_.p ; rm -rf ${NANO_WORLDDIR}/_.p" 1
2 15 EXIT
+       trap "umount ${NANO_WORLDDIR}/dev; umount ${NANO_WORLDDIR}/_.p ; rm
-rf ${NANO_WORLDDIR}/_.p" 1 2 15 EXIT

        # Install pkg-* package
        CR "${PKGCMD} add /_.p/${_NANO_PKG_PACKAGE}"
@@ -804,6 +805,7 @@ cust_pkgng ( ) (
        CR0 "${PKGCMD} info"

        trap - 1 2 15 EXIT
+       umount ${NANO_WORLDDIR}/dev
        umount ${NANO_WORLDDIR}/_.p
        rm -rf ${NANO_WORLDDIR}/_.p
 )

since we need to umount it if we hit the trap exit.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfo4Eh74C5a==N6c2ULkr89tOuLfem3_2KZQmM9T0jfBQw>