Solved poudriere - create a jail for an archived FreeBSD-10.3 release.

I have a requirement to build a package ( rsync) for a vm running RELEASE-10.3. This is required to move material off that host which has special acls. I can find that release at /pub/FreeBSD-Archive/old-releases/amd64/10.3-RELEASE/. Is there a way to use poudriere to create a jail using that release?
 
You could use sysutils/iocage for that and create the jail and then use whatever you want in it. It requires ZFS though.
Code:
iocage activate zroot
iocage fetch
# select your release

iocage create -r 10.3-RELEASE -n yourjailname
iocage start yourjailname
iocage console yourjailname

# do whatever you want in your jail here.
 
You could use sysutils/iocage for that and create the jail and then use whatever you want in it. It requires ZFS though.
Code:
iocage activate zroot
iocage fetch
# select your release

iocage create -r 10.3-RELEASE -n yourjailname

10.3 is not available. No doubt for the same reason poudriere cannot find it. It is not listed in http://ftp-archive.freebsd.org/pub/FreeBSD/releases/amd64/
Code:
iocage fetch
[0] 11.2-RELEASE (EOL)
[1] 11.3-RELEASE
[2] 12.0-RELEASE (EOL)
[3] 12.1-RELEASE
 
Or manually, "tar xz base.txz" of that version.
And,
poudriere jail -c -j ... -m null -M ... -v 10.3-RELEASE

Thank you. You put me on to this that seems to work as well:

Code:
poudriere jail -c -j freebsd_10-3x64 -m url=http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/10.3-RELEASE -v 10.3-RELEASE
[00:00:00] Creating freebsd_10-3x64 fs at /usr/local/poudriere/jails/freebsd_10-3x64... done
[00:00:01] Using pre-distributed MANIFEST for FreeBSD 10.3-RELEASE amd64
. . .
[00:01:23] Fetching lib32 for FreeBSD 10.3-RELEASE amd64
/usr/local/poudriere/jails/freebsd_10-3x64/fro          16 MB 5256 kBps    03s
[00:01:26] Extracting lib32... done
[00:01:28] Cleaning up... done
[00:01:30] Recording filesystem state for clean... done
[00:01:30] Jail freebsd_10-3x64 10.3-RELEASE amd64 is ready to be used
 
Thank you. You put me on to this that seems to work as well:

Code:
poudriere jail -c -j freebsd_10-3x64 -m url=http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/10.3-RELEASE -v 10.3-RELEASE
[00:00:00] Creating freebsd_10-3x64 fs at /usr/local/poudriere/jails/freebsd_10-3x64... done
[00:00:01] Using pre-distributed MANIFEST for FreeBSD 10.3-RELEASE amd64
. . .
[00:01:23] Fetching lib32 for FreeBSD 10.3-RELEASE amd64
/usr/local/poudriere/jails/freebsd_10-3x64/fro          16 MB 5256 kBps    03s
[00:01:26] Extracting lib32... done
[00:01:28] Cleaning up... done
[00:01:30] Recording filesystem state for clean... done
[00:01:30] Jail freebsd_10-3x64 10.3-RELEASE amd64 is ready to be used
Yeah, that's because the release is at EOL April 2018. :) Sorry, in your case poudriere is what you want, not iocage.
 
Well, I built the poudriere jail. But I cannot get it to work. If I use the existing ports tree then I get this:

Code:
[root@vhost04 ~ (master)]# poudriere bulk -C -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64 -p PORTS-12-1
[00:00:00] Creating the reference jail... done
[00:00:01] Mounting system devices for freebsd_10-3x64-PORTS-12-1
. . .
[00:00:07] [01] [00:00:00] Building ports-mgmt/pkg | pkg-1.14.4
[00:00:07] [01] [00:00:00] Finished ports-mgmt/pkg | pkg-1.14.4: Failed: check-sanity
[00:00:07] [01] [00:00:00] Skipping converters/libiconv | libiconv-1.14_11: Dependent port ports-mgmt/pkg | pkg-1.14.4 failed
[00:00:07] [01] [00:00:00] Skipping net/rsync | rsync-3.1.3_1: Dependent port ports-mgmt/pkg | pkg-1.14.4 failed
[00:00:07] Stopping 3 builders
[00:00:08] No package built, but repository needs to be created
[00:00:08] Creating pkg repository
[00:00:08] Error: Unable to extract pkg.

If I use the 10.3 ports tree then I get this:

Code:
[root@vhost04 ~ (master)]# poudriere bulk -C -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64 -p PORTS-10-3
[00:00:00] Creating the reference jail... done
[00:00:00] Mounting system devices for freebsd_10-3x64-PORTS-10-3
. . .
[00:00:04] [01] [00:00:00] Building ports-mgmt/pkg | pkg-1.8.7
[00:00:05] [01] [00:00:01] Finished ports-mgmt/pkg | pkg-1.8.7: Failed: patch
[00:00:05] [01] [00:00:01] Skipping net/rsync | rsync-3.1.2_5: Dependent port ports-mgmt/pkg | pkg-1.8.7 failed
[00:00:06] Stopping 2 builders
[00:00:07] No package built, but repository needs to be created
[00:00:07] Creating pkg repository
[00:00:07] Error: Unable to extract pkg

Any suggestions on how to proceed? All I need is an rsync package for 10.3.
 
Maybe try
Code:
poudriere testport -v -i -j freebsd_10-3x64 -p PORTS-10-3 net/rsync
And then try make patch in the jail?

I'm very new at running poudriere(8), so take this with a pinch of salt.
 
Code:
[00:00:07] [01] [00:00:00] Finished ports-mgmt/pkg | pkg-1.14.4: Failed: check-sanity

Check the build logs in /usr/local/poudriere/data/logs/bulk/. Every port that gets built has a log file.
 
Have you tried using svn to download the ports tree from a specific date? I've had good luck with that to build ports for EOL FreeBSD versions. Something like this:
Code:
mkdir /usr/local/poudriere/PORTS/CUSTOM
cd /usr/local/poudriere/PORTS/CUSTOM
svn co -r'{2018-01-30}' https://svn.freebsd.org/ports/head ./
Then specify that ports tree with poudriere.
 
Check the build logs in /usr/local/poudriere/data/logs/bulk/. Every port that gets built has a log file.
I have checked the logs of last few build attempts and they all are substantially same, other than the date and time. They do not tell me much:
Code:
tail /usr/local/poudriere/data/logs/bulk/freebsd_10-3x64-PORTS-10-3/2020-05-06_20h46m58s/logs/pkg-1.8.7.log
make[1]: stopped in /usr/ports/ports-mgmt/pkg
*** Error code 1

Stop.
make: stopped in /usr/ports/ports-mgmt/pkg
=>> Cleaning up wrkdir
===>  Cleaning for pkg-1.8.7
build of ports-mgmt/pkg | pkg-1.8.7 ended at Wed May  6 20:47:03 EDT 2020
build time: 00:00:01
!!! build failure encountered !!!
 
Have you tried using svn to download the ports tree from a specific date? I've had good luck with that to build ports for EOL FreeBSD versions. Something like this:
Code:
mkdir /usr/local/poudriere/PORTS/CUSTOM
cd /usr/local/poudriere/PORTS/CUSTOM
svn co -r'{2018-01-30}' https://svn.freebsd.org/ports/head /usr/ports
Then specify that ports tree with poudriere.

I will give this a try. Thanks.
 
Post the whole thing (use Pastebin or something similar). They actually provide a lot of information before the build starts.
What I posted IS the entire pkg-1.8.7.log and there are no other files in the logs subdirectory.
 
What I posted IS the entire pkg-1.8.7.log
No, you posted the last 10 lines (tail(1)), not the entire file.

In any case, get rid of both PORTS-12-1 and PORTS-10-3, as I explained in another thread, all versions of FreeBSD use the same ports tree. Ports are separately managed and have nothing to do with the version of the OS. Create a default ports tree, using subversion: poudriere ports -c -m svn+https

Then try building your list again, poudriere bulk -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64
See what this gets you. If you have any problems use misc/pastebinit to easily post the log: cat /some/log/file | pastebinit

I'm not entirely sure if there are checks that might prevent building on an EoL version. Some versions are definitely excluded but I'm not sure about 10.3.
 
This is what I have done

Code:
svn co -r'{2018-10-31}' https://svn.freebsd.org/ports/head /usr/local/poudriere/ports/PORTS-10-3-SVN
poudriere ports -c -m null -M /usr/local/poudriere/ports/PORTS-10-3-SVN/ -p PORTS-10-3-SVN
poudriere bulk -C -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64 -p PORTS-10-3-SVN
. . .
[00:00:05] Building 3 packages using 3 builders
[00:00:05] Starting/Cloning builders
[00:00:07] Hit CTRL+t at any time to see build progress and stats
[00:00:07] [01] [00:00:00] Building ports-mgmt/pkg | pkg-1.10.5_5
[00:00:07] [01] [00:00:00] Finished ports-mgmt/pkg | pkg-1.10.5_5: Failed: check-sanity
[00:00:07] [01] [00:00:00] Skipping converters/libiconv | libiconv-1.14_11: Dependent port ports-mgmt/pkg | pkg-1.10.5_5 failed
[00:00:07] [01] [00:00:00] Skipping net/rsync | rsync-3.1.3: Dependent port ports-mgmt/pkg | pkg-1.10.5_5 failed
[00:00:07] Stopping 3 builders
[00:00:08] No package built, but repository needs to be created
[00:00:08] Creating pkg repository
[00:00:08] Error: Unable to extract pkg.
. . .
No, you posted the last 10 lines (tail(1)), not the entire file.

Sorry about that. I am a little distracted ATM.

In any case, get rid of both PORTS-12-1 and PORTS-10-3, as I explained in another thread, all versions of FreeBSD use the same ports tree. Ports are separately managed and have nothing to do with the version of the OS. Create a default ports tree, using subversion: poudriere ports -c -m svn+https

Then try building your list again, poudriere bulk -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64

I had tried this and only managed to get the patch error for pkg.

Using SVN I have managed to (finally) build rsync for 10.3.

The steps that worked were:
Code:
svn co -r'{2018-01-30}' https://svn.freebsd.org/ports/head /usr/local/poudriere/ports/PORTS-10-3-SVN-2

poudriere ports -c -m null -M /usr/local/poudriere/ports/PORTS-10-3-SVN-2/ -p PORTS-10-3-SVN-2

poudriere bulk -C -f /root/Poudriere/poudr_10-3_rsync.txt -j freebsd_10-3x64 -p PORTS-10-3-SVN-2
. . .
[00:00:04] Starting/Cloning builders
[00:00:07] Hit CTRL+t at any time to see build progress and stats
[00:00:07] [01] [00:00:00] Building ports-mgmt/pkg | pkg-1.10.4
[00:01:40] [01] [00:01:33] Finished ports-mgmt/pkg | pkg-1.10.4: Success
[00:01:41] [01] [00:00:00] Building converters/libiconv | libiconv-1.14_11
[00:02:07] [01] [00:00:26] Finished converters/libiconv | libiconv-1.14_11: Success
[00:02:07] [01] [00:00:00] Building net/rsync | rsync-3.1.2_8
[00:02:42] [01] [00:00:35] Finished net/rsync | rsync-3.1.2_8: Success
[00:02:43] Stopping 3 builders
[00:02:44] Creating pkg repository
Creating repository in /tmp/packages: 100%
Packing files for repository: 100%
. . .
sftp samba-01
put /usr/local/poudriere/data/packages/freebsd_10-3x64-PORTS-10-3-SVN-2/All/rsync-3.1.2_8.txz
. . .

and on the 10.3 system:

Code:
[root@SAMBA-01 ~]# pkg add rsync-3.1.2_8.txz
Installing rsync-3.1.2_8...
Extracting rsync-3.1.2_8: 100%

DONE! Thank you all for your assistance. It is gratefully appreciated.
 
See, the fates love to watch one struggle, and twist in the wind. Then, and only then, they let us see the futility of our actions:

https://pkg.freebsd.org/FreeBSD:10:amd64/release_3/All/rsync-3.1.2_1.txz

The damn thing was available all along and I could not find it for love nor money.

For completeness, and in the event that someone else is condemned to support an EOL release, the following allows one to continue to use the pkg repository for a specific release, replacing /FreeBSD:10:amd64/release_3 as required:

Code:
mkdir -p /usr/local/etc/pkg/repos

vi /usr/local/etc/pkg/repos/freeeBSD.conf
FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/FreeBSD:10:amd64/release_3",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}
:wq
 
Back
Top