NanoBSD cust_pkgng problem....
Warner Losh
imp at bsdimp.com
Fri Jun 21 04:02:06 UTC 2019
Committed as r349261
Warner
On Thu, Jun 20, 2019 at 7:19 PM Karl Denninger <karl at denninger.net> wrote:
> Hand-applied the patch (with vi, not patch, since I already had some of
> the changes in there) and it ran to completion without incident.
> On 6/20/2019 17:27, Warner Losh wrote:
>
>
>
> 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
>
> --
> Karl Denninger
> karl at denninger.net
> *The Market Ticker*
> *[S/MIME encrypted email preferred]*
>
More information about the freebsd-embedded
mailing list