Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 May 2021 07:33:35 +0900
From:      Tatsuki Makino <tatsuki_makino@hotmail.com>
To:        Mark Millard <marklmi@yahoo.com>, FreeBSD ports <freebsd-ports@freebsd.org>
Cc:        bob prohaska <fbsd@www.zefox.net>
Subject:   Re: Python 37/38 conflict, was Re: Trubles compiling lxqt on RPi4
Message-ID:  <PSAPR03MB563905B1A1DE546C271DAAABFA2E9@PSAPR03MB5639.apcprd03.prod.outlook.com>
In-Reply-To: <52D036B7-D66D-417D-8C75-7868C9FEFE6A@yahoo.com>
References:  <0B407A98-E0D4-461E-BFD8-E02019E96757.ref@yahoo.com> <0B407A98-E0D4-461E-BFD8-E02019E96757@yahoo.com> <20210515233735.GA58311@www.zefox.net> <A43A154A-FB52-45DB-B3BB-DE1740128B14@yahoo.com> <PSAPR03MB56398C972736997CEF823487FA2E9@PSAPR03MB5639.apcprd03.prod.outlook.com> <52D036B7-D66D-417D-8C75-7868C9FEFE6A@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mark Millard wrote on 2021/05/16 17:11:
> On 2021-May-16, at 00:16, Tatsuki Makino <tatsuki_makino at hotmail.com> 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
mergemaster
reboot
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 :)

Regards.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?PSAPR03MB563905B1A1DE546C271DAAABFA2E9>