Re: Poudriere staging failure for rubygem-racc 1.8.0
- In reply to: Juan Manuel Palacios : "Poudriere staging failure for rubygem-racc 1.8.0"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 03 Aug 2024 22:17:14 UTC
Responding to my own message with the solution to the problem: * I’m calling poudriere’s bulk with -t & -r, for recursive staging testing. * I’m using ccache. * Apparently, all staging violations that were reported for my initial bulk run (rubygem-racc was far from the only one) complained about the ccache directory. * Adding WITH_CCACHE_BUILD=“yes” to my build options (in /usr/local/etc/poudriere.d/make.conf in my case) got the failing ports to build successfully in a new bulk run. I can’t quite explain this behavior, I can hardly say that all ports that failed to stage initially were the only ones leveraging ccache, because llvvm & gcc were built as dependencies and they succeeded, but the fact of the matter is that adding that make option (which should probably be included automatically by poudriere when ccache is enabled) did the trick for me. I’d guess that part of what’s at fault here is that the jail-mounted ccache directory is included in an mtree: https://github.com/freebsd/poudriere/blob/master/src/share/poudriere/common.sh#L2111 poudriere/src/share/poudriere/common.sh at master · freebsd/poudriere github.com And when WITH_CCACHE_BUILD is set to yes, any leftovers there after a port build are ignored by the staging test, thus helping their builds to succeed. Now, confirmation for this hypothesis, or why this might not affect all ports that utilize the cache, or why WITH_CCACHE_BUILD is not included automatically by poudriere when ccache is used, those are things I can’t yet make out yet from my cursory read of the poudriere code. Regards, > On Aug 2, 2024, at 3:00 PM, Juan Manuel Palacios <jmpalacios@gmail.com> wrote: > > Hi everyone, > > I’m trying to get a local Poudriere builder going, using a 13.2 jail, which I do know is out of support at this point, to build packages for a collection of local jails that, at least for the time being, need to remain on 13.2 themselves (hosted on TrueNAS CORE —yeah, don’t get me started!-- which hasn’t yet made the jump to FreeBSD 13.3). > > Everything is working fine so far, other than rubygem-racc 1.8.0 failing at the staging step with a staging violation: > > =>> Checking for staging violations... done > =>> Error: Filesystem touched during stage (files must install to ${STAGEDIR}): > extra: var/cache/ccache > > This is with a latest ports tree last updated just last night. If anyone could offer any help, either to solve the problem directly or hinting where I should even start looking, I’d most appreciate it! > > Thanks,