With poudriere how does one create a jail of a slightly older RELEASE ?
Date: Sat, 24 May 2025 21:37:06 UTC
This may seem trivial but trying to create a jail for a release from just a few years ago is not working well : t# poudriere jails -c -a amd64 -j 132amd64 -v 13.2-RELEASE [00:00:00] Creating 132amd64 fs at /export/poudriere/jails/132amd64... done [00:00:00] Fetching MANIFEST for FreeBSD 13.2-RELEASE amd64 fetch: https://download.freebsd.org/releases/amd64/amd64/13.2-RELEASE/MANIFEST: Not Found fetch: https://download.freebsd.org/releases/amd64/amd64/13.2-RELEASE/MANIFEST: Not Found [00:00:01] Error: Failed to fetch from https://download.freebsd.org/releases/amd64/amd64/13.2-RELEASE/MANIFEST [00:00:01] Error while creating jail, cleaning up. [00:00:01] Removing 132amd64 jail... done [00:00:01] Cleaning 132amd64 data... done t# That makes perfect sense. So then build from source? That does not work either : t# t# uname -apKU FreeBSD titan 15.0-CURRENT FreeBSD 15.0-CURRENT #1 main-n277353-19419d36cf2a: Mon May 19 20:40:28 UTC 2025 root@titan:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 1500043 1500043 t# t# cc --version FreeBSD clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2) Target: x86_64-unknown-freebsd15.0 Thread model: posix InstalledDir: /usr/bin Build config: +assertions t# t# env | sort BLOCKSIZE=K ENV=/root/.shrc HOME=/root LANG=C.UTF-8 MAIL=/var/mail/root MM_CHARSET=UTF-8 OLDPWD=/root PAGER=less PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin PWD=/root SHELL=/bin/sh TERM=xterm USER=root t# t# /usr/bin/time -p idprio 0 poudriere jail -c -j 132amd64 -a amd64 \ -v releng/13.2 \ -J 1 -b -D -m git+https -U https://git.freebsd.org/src.git [00:00:00] Creating 132amd64 fs at /export/poudriere/jails/132amd64... done [00:00:00] Checking out the sources with git+https... done [00:04:25] Starting make buildworld with 1 jobs make[1]: /export/poudriere/jails/132amd64/usr/src/Makefile.inc1:340: SYSTEM_COMPILER: libclang will be built for bootstrapping a cross-compiler. make[1]: /export/poudriere/jails/132amd64/usr/src/Makefile.inc1:345: SYSTEM_LINKER: libclang will be built for bootstrapping a cross-linker. -------------------------------------------------------------- >>> World build started on Sat May 24 21:12:02 UTC 2025 -------------------------------------------------------------- -------------------------------------------------------------- >>> Rebuilding the temporary build tree -------------------------------------------------------------- rm -rf /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp cd /export/poudriere/jails/132amd64/usr/src/tools/build; make DIRPRFX=tools/build/ DESTDIR=/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy installdirs mkdir -p /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/bin /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/lib/casper /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/lib/geom /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/include/casper /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/include/private/ucl /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/include/private/zstd /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/lib /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/libdata/pkgconfig /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/libexec ln -sfn bin /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/sbin ln -sfn ../bin /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/bin ln -sfn ../bin /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/sbin mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/sys" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/casper" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/ufs/ufs" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/ufs/ffs" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/fs/msdosfs" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/sys/disk" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/machine" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/rpc" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/crypto/chacha20" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/x86" cd /export/poudriere/jails/132amd64/usr/src/tools/build; make DIRPRFX=tools/build/ DESTDIR=/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy host-symlinks Linking host tools into /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/bin rm -f /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/libexec/flua cp -pf /usr/libexec/flua /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/libexec/flua -------------------------------------------------------------- >>> stage 1.1: legacy release compatibility shims -------------------------------------------------------------- . . . ********************************************************* * Here I just wait and let things happen. I have tried * * this with -J 32 and it fails everytime. So I figure * * using -J 1 may keeps things in chronological order. * ********************************************************* . . . mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/machine" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/rpc" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/crypto/chacha20" mkdir -p "/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy//usr/include/x86" -------------------------------------------------------------- >>> stage 1.2: bootstrap tools -------------------------------------------------------------- cd /export/poudriere/jails/132amd64/usr/src; INSTALL="sh /export/poudriere/jails/132amd64/usr/src/tools/install.sh" TOOLS_PREFIX=/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp PATH=/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin WORLDTMP=/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp MAKEFLAGS="-m /export/poudriere/jails/132amd64/usr/src/tools/build/mk -j 1 -J 15,16 -m /export/poudriere/jails/132amd64/usr/src/share/mk" make -f Makefile.inc1 DESTDIR= OBJTOP='/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/obj-tools' OBJROOT='${OBJTOP}/' MAKEOBJDIRPREFIX= BOOTSTRAPPING=1500043 BWPHASE=bootstrap-tools -DNO_CPU_CFLAGS -DNO_LINT -DNO_PIC -DNO_SHARED MK_CTF=no MK_CLANG_EXTRAS=no MK_CLANG_FORMAT=no MK_CLANG_FULL=no MK_HTML=no MK_MAN=no MK_PROFILE=no MK_RETPOLINE=no MK_SSP=no MK_TESTS=no MK_WERROR=no MK_INCLUDES=yes MK_MAN_UTILS=yes MK_LLVM_TARGET_ALL=no bootstrap-tools ===> lib/clang/libllvmminimal (obj,all,install) . . . objcopy --only-keep-debug vtfontcvt.full vtfontcvt.debug objcopy --strip-debug --add-gnu-debuglink=vtfontcvt.debug vtfontcvt.full vtfontcvt sh /export/poudriere/jails/132amd64/usr/src/tools/install.sh -s -o root -g wheel -m 555 vtfontcvt /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/bin/vtfontcvt sh /export/poudriere/jails/132amd64/usr/src/tools/install.sh -o root -g wheel -m 444 vtfontcvt.debug /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/lib/debug/usr/bin/vtfontcvt.debug ===> usr.sbin/zic (obj,all,install) [Creating objdir /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/obj-tools/usr.sbin/zic...] echo zic.full: /usr/lib/libc.a /usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/lib/libegacy.a >> .depend /usr/local/bin/ccache cc -O2 -pipe -fno-common -I/export/poudriere/jails/132amd64/usr/src/contrib/tzcode -include tzconfig.h -g -MD -MF.depend.zic.o -MTzic.o -std=gnu99 -Wno-format-zero-length -Wsystem-headers -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wredundant-decls -Wold-style-definition -Wno-pointer-sign -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-variable -Qunused-arguments -I/usr/obj/export/poudriere/jails/132amd64/usr/src/amd64.amd64/tmp/legacy/usr/include -c /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/zic.c -o zic.o /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/zic.c:464:8: error: an attribute list cannot appear here 464 | static ATTRIBUTE_NORETURN void | ^~~~~~~~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/private.h:471:30: note: expanded from macro 'ATTRIBUTE_NORETURN' 471 | # define ATTRIBUTE_NORETURN [[noreturn]] | ^~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/zic.c:471:8: error: an attribute list cannot appear here 471 | static ATTRIBUTE_NORETURN void | ^~~~~~~~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/private.h:471:30: note: expanded from macro 'ATTRIBUTE_NORETURN' 471 | # define ATTRIBUTE_NORETURN [[noreturn]] | ^~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/zic.c:669:8: error: an attribute list cannot appear here 669 | static ATTRIBUTE_NORETURN void | ^~~~~~~~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/private.h:471:30: note: expanded from macro 'ATTRIBUTE_NORETURN' 471 | # define ATTRIBUTE_NORETURN [[noreturn]] | ^~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/zic.c:3778:8: error: an attribute list cannot appear here 3778 | static ATTRIBUTE_NORETURN void | ^~~~~~~~~~~~~~~~~~ /export/poudriere/jails/132amd64/usr/src/contrib/tzcode/private.h:471:30: note: expanded from macro 'ATTRIBUTE_NORETURN' 471 | # define ATTRIBUTE_NORETURN [[noreturn]] | ^~~~~~~~~~~~ 4 errors generated. *** [zic.o] Error code 1 make[3]: stopped making "all" in /export/poudriere/jails/132amd64/usr/src/usr.sbin/zic make[3]: 1 error make[3]: stopped making "all" in /export/poudriere/jails/132amd64/usr/src/usr.sbin/zic make[2]: stopped making "bootstrap-tools" in /export/poudriere/jails/132amd64/usr/src make[1]: stopped making "buildworld" in /export/poudriere/jails/132amd64/usr/src make: stopped making "buildworld" in /export/poudriere/jails/132amd64/usr/src [00:08:18] Error: Failed to 'make buildworld' [00:08:18] Error while creating jail, cleaning up. [00:08:18] Removing 132amd64 jail... done [00:08:21] Cleaning 132amd64 data... done real 501.40 user 619.18 sys 158.12 t# So perhaps there is a way to create a jail for an older release using just some tarballs extracted and then I can hack up something that looks correct in /usr/local/etc/poudriere.d/jails/132amd64 directory. Something similar to : t# t# ls -lap /usr/local/etc/poudriere.d/jails/142amd64/ total 13 drwxr-xr-x 2 root wheel 9 May 19 22:25 ./ drwxr-xr-x 4 root wheel 4 May 24 21:31 ../ -rw-r--r-- 1 root wheel 6 Apr 16 23:00 arch -rw-r--r-- 1 root wheel 31 Apr 16 23:00 fs -rw-r--r-- 1 root wheel 5 Apr 16 23:00 method -rw-r--r-- 1 root wheel 33 Apr 16 23:00 mnt -rw-r--r-- 1 root wheel 2 Apr 16 23:01 pkgbase -rw-r--r-- 1 root wheel 11 May 19 22:25 timestamp -rw-r--r-- 1 root wheel 16 Apr 16 23:02 version t# t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/method http t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/mnt /export/poudriere/jails/142amd64 t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/pkgbase 0 t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/timestamp 1747693542 t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/version 14.2-RELEASE-p3 t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/fs zroot/poudriere/jails/142amd64 t# t# cat /usr/local/etc/poudriere.d/jails/142amd64/arch amd64 t# Well the "method" will not be http as that does not work. Is there any other way to build a jail for an older release? -- -- Dennis Clarke RISC-V/SPARC/PPC/ARM/CISC UNIX and Linux spoken