Ronald Klop <ronald-lists_at_klop.ws> wrteo on
Date: Tue, 28 Oct 2025 14:26:05 UTC :

> I have the following setup of jails with poudriere running in Jenkins:
> 
> pkg jail: running lighttpd exporting the poudriere UI. This jail NFS exports 
> /usr/local/poudriere/data/logs/bulk and /usr/local/poudriere/data/packages.
> 
> poudriere jail 1: running poudriere+ZFS and it NFS mounts 
> /usr/local/poudriere/data/logs/bulk and /usr/local/poudriere/data/packages 
> from the pkg jail.
> poudriere jail 1: running poudriere (no ZFS) and it NFS mounts 
> /usr/local/poudriere/data/logs/bulk and /usr/local/poudriere/data/packages 
> from the pkg jail.
> 
> The mounts work, I can access the files on the command line.
> 
> But on the pourdriere with ZFS at the end of the first build I get this error:
> [00:01:32] ====> Compressing man pages (compress-man)
> [00:01:32] ===> Installing ldconfig configuration file
> [00:01:32] 
> ===========================================================================
> [00:01:32] chown: 
> /usr/local/poudriere/data/.m/rpi5-freebsd143-custom/01/.npkg: Operation not 
> permitted
> [00:01:32] =======================<phase: package 
> >============================
> [00:01:32] ===== env: 'PKG_NOTES=build_timestamp ports_top_git_hash 
> ports_top_checkout_unclean port_checkout_unclean built_by' 
> 'PKG_NOTE_build_timestamp=2025-10-28T13:33:27+00:00' 
> 'PKG_NOTE_ports_top_git_hash=d72ccf55aa06' 
> 'PKG_NOTE_ports_top_checkout_unclean=no' 'PKG_NOTE_port_checkout_unclean=no' 
> 'PKG_NOTE_built_by=poudriere-git-3.4.99.20251006' NO_DEPENDS=yes USER=nobody 
> UID=65534 GID=65534
> [00:01:32] ===> Building packages for pkg-2.3.1
> [00:01:32] mkdir: /.npkg/All: Permission denied
> [00:01:32] *** Error code 1
> Any idea why this happens?
> This directory is not NFS mounted, so why would it give an error here?


Turns out that

/usr/local/poudriere/data/.m/rpi5-freebsd143-custom/01/.npkg

in its context was a nullfs mount of

/usr/local/poudriere/data/packages/.npkgs/${pkgname:?}

as seen in that context, if I understand the above and
the below correctly.

I looked in /usr/local/share/poudriere/common.sh and in its
build_port() there is:

. . .
                case "${phase}" in
                "package")
                        echo "PACKAGES=/.npkg" >> "${mnt:?}/etc/make.conf"
                        # Create sandboxed staging dir for new package for this 
build
                        rm -rf "${PACKAGES:?}/.npkg/${pkgname:?}"
                        mkdir -p "${PACKAGES:?}/.npkg/${pkgname:?}"
                        ${NULLMOUNT} \
                                "${PACKAGES:?}/.npkg/${pkgname:?}" \
                                "${mnt:?}/.npkg"
                        chown -R ${JUSER} "${mnt:?}/.npkg"
                        :> "${mnt:?}/.npkg_mounted"
. . .

That looks to me to likely explain the:

chown: /usr/local/poudriere/data/.m/rpi5-freebsd143-custom/01/.npkg: Operation 
not permitted

That, in turn, probably explains the:

mkdir: /.npkg/All: Permission denied


===
Mark Millard
marklmi at yahoo.com


Reply via email to