NanoBSD cust_pkgng problem....
Warner Losh
imp at bsdimp.com
Thu Jun 20 22:27:58 UTC 2019
On Thu, Jun 20, 2019 at 1:28 PM Karl Denninger <karl at denninger.net> wrote:
>
> On 6/20/2019 14:46, Warner Losh wrote:
> >
> >
> > On Thu, Jun 20, 2019, 12:40 PM Ian Lepore <ian at freebsd.org
> > <mailto:ian at 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
More information about the freebsd-embedded
mailing list