how to install a software with specific options? via poudriere or ports (but using already pkg installed deps)

ok so i'd like to use darktable as i liked it muchly when on linux.debian... the pkg crashes due to my images being in the .dmg format and thumbnails requiring ImageMagick or some other whatnots (which are installed on my system via pkg). as far as i got from the log it needs to be compile with them as options and was not done so in the default pkg binary.
so far so good... i thought i got the hang of it.
i was not really keen on using ports to build it with said-options not to have a shitload of stuff installed twice (pkg and ports) so i tried the "poudriere" way... after reading the freebsd handbook and a couple of webpages, it failed.

so here are my questions.
1. could i still use the ports but not compile 400+ dependencies (most of them already on my system via pkg)?
2. if the poudriere way is the way, i tried to install the jail with my current version of freebsd (14.1-stable) but it was not available on dowloads.freebsd.org so i used 14.2-stable and got yelled at because it was the wrong order (host being older than jail), maybe that's why darktable compilation failed (something due to rust failing to compile..?) what am i supposed to use as version in the poudriere command then?

thanks for reading and helping if they are not too stupid questions :)
best,
yrs trly, etc.
a-

Code:
[root@punkspresso /home/hern42]# poudriere bulk -j custom_pkg -p HEAD -f /usr/local/etc/poudriere.d/ports-list
[00:00:00] Creating the reference jail... done
[00:00:00] Warning: !!! Jail is newer than host. (Jail: 1402500, Host: 1401502) !!!
[00:00:00] Warning: This is not supported.
[00:00:00] Warning: Host kernel must be same or newer than jail.
[00:00:00] Warning: Expect build failures.
[00:00:01] Mounting system devices for custom_pkg-HEAD
...
[01:17:50] [01] [01:17:41] Finished lang/rust | rust-1.82.0_1: Failed: build
...
 
what am i supposed to use as version in the poudriere command then?
If the host is on 14.1-STABLE, then you should first update the host because that -STABLE version is already old. Keep up if you want to run a -STABLE. Alternatively, use 14.1-RELEASE for the build jail, 14.1-STABLE is newer than 14.1-RELEASE.
 
i was not really keen on using ports to build it with said-options not to have a shitload of stuff installed twice (pkg and ports)
When you use ports instead of packages, you must have the source code to build it, that is "extra". Building from ports will get you packages in the end, in other words: compiled ports will be installed in binary form as packages. Once installed as a package then, from a user or administrative perspective, it is just a package.

P.S. Handbook - ports:
[...] please be aware that it is generally ill-advised to use the Ports Collection in conjunction with the binary packages provided via pkg to install software.
 
Another option is to use the host's source build to build images you can then use to create a poudriere jail. That will ensure the build jail is exactly the same as the host. Added bonus, you get nice install images for memstick and CD too.

Here's how I build those images, after doing the whole buildworld, buildkernel on the host:
Code:
cd /usr/src/release
make clean
make -DNOPORTS -DNODOC -DKERNCONF="GENERIC" release
# 'install' the images/directories to /storage/release/14-stable:
make -DNOPORTS -DNODOC -DKERNCONF="GENERIC" DESTDIR=/storage/release/14-stable install
# to create the jail
poudriere jail -c -j 14-stable -m url=file:///storage/release/14-stable/ftp -v 14-STABLE 
# to update the existing jail built with the previous step
poudriere jail -u -j 14-stable
 
When you use ports instead of packages, you must have the source code to build it, that is "extra". Building from ports will get you packages in the end, in other words: compiled ports will be installed in binary form as packages. Once installed as a package then, from a user or administrative perspective, it is just a package.

P.S. Handbook - ports:
yes indeed that is the reason i'm trying not to mix them. hence the try to use poudriere.
 
If the host is on 14.1-STABLE, then you should first update the host because that -STABLE version is already old. Keep up if you want to run a -STABLE. Alternatively, use 14.1-RELEASE for the build jail, 14.1-STABLE is newer than 14.1-RELEASE.
i'm afraid i'm a bit lost here...
do you suggest to update 14.1-stable or to switch to 14.2-stable?
i'd like to stay on stable rather than release in order to learn all of the actions to take, and indeed "keeping up".

and for the poudriere command line (to create it), 14.1-release was not in the download possibilities, and i didn't think about creating one as you suggest on your second comment:

Index of /snapshots/amd64/amd64/​

File Name File Size Date
Parent directory/--
13.4-STABLE/-2024-Nov-08 02:37
14.2-PRERELEASE/-2024-Oct-31 21:53
14.2-STABLE/-2024-Nov-08 02:37
15.0-CURRENT/-2024-Nov-08 02:37
ISO-IMAGES/-2024-Oct-24 16:36
 
do you suggest to update 14.1-stable or to switch to 14.2-stable?
There is no 'switch' involved here, the stable/14 branch is at 14.2-STABLE now. The stable/* branches are more or less a rolling release. It went from 14.1-STABLE to 14.2-PRERELEASE to 14.2-STABLE (after releng/14.2 was branch off). Which simply means you have an 'old' stable/14 install. Update the source and build(7).
 
There is no 'switch' involved here, the stable/14 branch is at 14.2-STABLE now. The stable/* branches are more or less a rolling release. It went from 14.1-STABLE to 14.2-PRERELEASE to 14.2-STABLE (after releng/14.2 was branch off). Which simply means you have an 'old' stable/14 install. Update the source and build(7).
another adventure in perspective! thanks... i get the name thingy now.
 
another adventure in perspective! thanks... i get the name thingy now.
It can be a bit confusing for newcomers if you don't know how the different branches and versions relate to each other.

A picture says more than a thousand words, this post has a good graph: https://forums.freebsd.org/threads/lts-support-and-version-clarifications.79890/post-590503

The releng/* branches correspond with the various -RELEASE versions. A releng/X.Y is always branched off from a stable/X branch. In a way the stable/* branches (and thus -STABLE versions) are an alpha version of the next minor release.
 
It can be a bit confusing for newcomers if you don't know how the different branches and versions relate to each other.

A picture says more than a thousand words, this post has a good graph: https://forums.freebsd.org/threads/lts-support-and-version-clarifications.79890/post-590503

The releng/* branches correspond with the various -RELEASE versions. A releng/X.Y is always branched off from a stable/X branch. In a way the stable/* branches (and thus -STABLE versions) are an alpha version of the next minor release.
so i'm now on freebsd 14.2-stable after following the handbook's instruction... to be noted is that the git pull -C /usr/src/ is an unrecognized option. what was it supposed to do, it doesn't appear in man git?
anyway, i got back to poudriere and tried again, the current status is 15 ports left, it starts on:
Code:
[root@punkspresso /home/hern42]# poudriere bulk -j custom_pkg -p HEAD -f /usr/local/etc/poudriere.d/ports-list
[00:00:00] Creating the reference jail... done
[00:00:00] Mounting system devices for custom_pkg-HEAD
[00:00:00] Warning: Using packages from previously failed, or uncommitted, build: /usr/local/poudriere/data/packages/custom_pkg-HEAD/.building
[00:00:00] Mounting ports from: /usr/local/poudriere/ports/HEAD
[00:00:00] Mounting packages from: /usr/local/poudriere/data/packages/custom_pkg-HEAD
[00:00:00] Mounting distfiles from: /usr/ports/distfiles
[00:00:00] Copying /var/db/ports from: /usr/local/etc/poudriere.d/custom_pkg-HEAD-options
/etc/resolv.conf -> /usr/local/poudriere/data/.m/custom_pkg-HEAD/ref/etc/resolv.conf
[00:00:00] Starting jail custom_pkg-HEAD
Updating /var/run/os-release done.
[00:00:00] Will build as nobody:nobody (65534:65534)
[00:00:01] Logs: /usr/local/poudriere/data/logs/bulk/custom_pkg-HEAD/2024-11-16_21h29m56s
[00:00:01] WWW: http://localhost//build.html?mastername=custom_pkg-HEAD&build=2024-11-16_21h29m56s
[00:00:01] Loading MOVED for /usr/local/poudriere/data/.m/custom_pkg-HEAD/ref/usr/ports
[00:00:01] Ports supports: FLAVORS SUBPACKAGES SELECTED_OPTIONS
[00:00:01] Inspecting ports tree for modifications to git checkout... no
[00:00:04] Ports top-level git hash: 67d48dd25
[00:00:04] Gathering ports metadata
[00:00:06] Calculating ports order and dependencies
[00:00:06] Trimming IGNORED and blacklisted ports
[00:00:06] Sanity checking the repository
[00:00:06] Checking packages for incremental rebuild needs
[00:00:07] Deleting stale symlinks... done
[00:00:07] Deleting empty directories... done
[00:00:07] Unqueueing existing packages
[00:00:07] Unqueueing orphaned build dependencies
[00:00:07] Sanity checking build queue
[00:00:07] Processing PRIORITY_BOOST
[00:00:07] Balancing pool
[custom_pkg-HEAD] [2024-11-16_21h29m56s] [balancing_pool] Queued: 15 Built: 0  Failed: 0  Skipped: 0  Ignored: 0  Fetched: 0  Tobuild: 15  Time: 00:00:07
[00:00:07] Recording filesystem state for prepkg... done
[00:00:08] Building 15 packages using up to 4 builders
[00:00:08] Hit CTRL+t at any time to see build progress and stats
[00:00:08] [01] [00:00:00] Builder starting
[00:00:08] [02] [00:00:00] Builder starting
[00:00:08] [03] [00:00:00] Builder starting
[00:00:08] [01] [00:00:00] Builder started
[00:00:08] [01] [00:00:00] Building lang/rust | rust-1.82.0_1
[00:00:08] [03] [00:00:00] Builder started
[00:00:08] [03] [00:00:00] Building lang/gcc12 | gcc12-12.4.0
[00:00:08] [02] [00:00:00] Builder started
[00:00:08] [02] [00:00:00] Building devel/llvm15@default | llvm15-15.0.7_10
and it crashed the machine after 4h of compilation time...
is there something i can do to look into it?
should i restart the whole process as it uses the old ones already processed?

at the very least i learned how to follow and upgrade my branch :) that's one of the point of this journey...
cheers,
a-
 
What kind of "crash"?
well that's the problem... when i got back to the computer after lunch it was not responsive (black screen but backlit), capslock light working... i had to use the power button to shut it down.
is there a log somewhere i can paste here?
 
Back
Top