Hi, I have been experimenting with using unionfs to build ports in a "tinderbox" environment. This avoids having to remove and extract files for the build of each port and it allows the discovery of installed/modified files by the port. Please see attached for a (updated) shell script that handles all the "heavy lifting" of building ports. Of importance is LOCALBASE and BUILDDIR. If you want to override LOCALBASE please use `env` as the script needs to know about it. BUILDDIR (/usr/build by default) is where the script stores everything (including PKG_DBDIR). # env LOCALBASE=/tmp/local BUILDDIR=/tmp/build ./ports-union-builder.sh Will install x11/xorg without affecting already installed systems. CURRENT STATUS: - *** Currently kernel stack size is too small and the above will trigger a stack overflow. Recompiling a kernel with ``options KSTACK_PAGES=32'' will alleviate that problem. - Currently there is a build problem that affects eggdbus/polkit (possibly others) thus preventing x11/xorg from being built. I will investigate the cause (help welcome). - I highly recommend running this in a chroot - NO WARRANTY, SLIPPERY WHEN WET, EATS CHILDREN. Since the script doesn't complete a full build I am unable to compare the build speeds (thus the overhead of unionfs) but here are some partial results (with FORCE_MAKE_JOBS and quad core): # time make -C /usr/ports/x11/xorg install clean 2185.180u 1066.927s 38:12.27 141.8% 4123+1745k 5185+1890io 51638pf+0w # time ./ports-union-builder.sh Port /usr/ports/devel/eggdbus failed to build Port /usr/ports/x11/xorg failed due to dependency /usr/ports/devel/eggdbus 1065.356u 862.073s 25:03.88 128.1% 4602+1840k 4582+57338io 18327pf+0w Regards, David
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC