Python 37/38 conflict, was Re: Trubles compiling lxqt on RPi4

Tatsuki Makino tatsuki_makino at
Sun May 16 22:33:43 UTC 2021

Mark Millard wrote on 2021/05/16 17:11:
> On 2021-May-16, at 00:16, Tatsuki Makino <tatsuki_makino at> wrote:
>> poudriere jail -c -j main -m 'src=/usr/src' -v `make -C /usr/src/release/ -V VERSION VERSION=\$\{REVISION:Q\}-\$\{BRANCH:Q\}`
> Bob already does a buildworld based on /usr/src for other
> reasons/uses than poudriere. My suggestions are targeted
> to resusing that buildworld result instead of involving
> doing another buildworld for poudriere. It is also biased
> to not changing how he does that buildworld (out of scope
> to what he was asking about). So far as I know he does
> not use /usr/src/release to do builds. Bob's system is
> not fast, each buildworld is time consuming.
> Would your command suggestion reuse his already-existing
> buildworld?

The /usr/src/release that appeared here is just to create a version string.
`make -C /usr/src/release/ -V VERSION VERSION=\$\{REVISION:Q\}-\$\{BRANCH:Q\}` will create a string exactly like 12.2-STABLE, no matter when /usr/src is.

> In my own use the same is true: I buildworld separately
> before any poudriere activity (for other reasons/uses)
> and then I reuse the buildworld that resulted for
> also setting up poudriere later.

This one of mine is also a reuse of built world.
The main idea of my buildworld, buildkernel, installkernel, and installworld is as follows. (There are some commands mixed in that cannot be executed directly.)

rm -rf -- /usr/obj/{*,.[^.]*,..?*}
git -C /usr/src/ pull && git -C /usr/src/ reset --hard && git -C /usr/src/ clean -dfx
cat somepatches*.diff | patch -Nt -d /usr/src/
cd /usr/src/
make buildworld && make buildkernel
mergemaster -p
make installkernel
make installworld
make delete-old delete-old-libs
poudriere jail -u -j main    # -j name is matched to above command.

poudriere's jail -u will take care of everything from installworld to the /etc installation.
For poudriere-jail, buildworld will not run without -b option.
A copy of /usr/src for jail will be made, but it is required to retain the original source files for jail.

And just to make things a little more interesting...
The jail can be started with the following command.
poudriere jail -s -j main -p default
This jail will be logged in with the following command.
jexec main-default-n env -i "TERM=$TERM" /usr/bin/login -f -p root
This is where you can debug, etc. in a mostly clean environment.
If you break that environment too much, you can use the following command to get it back to normal.
poudriere jail -k -j main -p default

# Regardless of which person's method is more efficient, I am releasing my method in a similar topic area to let people know that there are different types of methods.

Any jails other than -m null will be cleanly removed by poudriere jail -d, so try different ones :)


More information about the freebsd-ports mailing list