On Aug 30, 2023, at 21:16, bob prohaska <[email protected]> wrote:
> On Wed, Aug 30, 2023 at 06:08:06PM -0700, Mark Millard wrote:
>>
>> http://www.zefox.net/~fbsd/poudriere_on_rpi4 looks unchanged
>> just now, not just for this but for any changes. May be some
>> other copy was changed or the old content is cached someplace?
>>
> The file was updated
> -rw-r--r-- 1 fbsd fbsd 4076 Aug 30 17:34 poudriere_on_rpi4
> Possibly I hit send before saving the changes. If you don't see
> the changes after reloading the page please tell me.
I had to force a reload but that got the updated text.
I probably forgot to try that before.
I've not yet looked at the new text. The below is only
about the text of the specific message.
>>
>> But that buildworld buildkernel activity and rebooting to
>> the new installed system and updating
>> /usr/local/poudriere/poudriere-system should be done before
>> even the "poudriere jail -c". The quoted material may be
>> just out of order?
>
> My question was where does the output of
> poudriere jail -c ... get written? I thought
> it might be a dot file in /usr/ports or
> /usr/local/poudriere, but nothing is visible.
Look under your:
/usr/local/etc/poudriere.d/jails/main/
There should be the files suggested by:
# ls -Tlod *
-rw-r--r-- 1 root wheel uarch 14 Jun 27 17:48:11 2021 arch
-rw-r--r-- 1 root wheel uarch 5 Jun 27 17:48:11 2021 method
-rw-r--r-- 1 root wheel uarch 33 Jun 27 17:48:11 2021 mnt
-rw-r--r-- 1 root wheel uarch 2 Jun 27 17:48:11 2021 pkgbase
-rw-r--r-- 1 root wheel uarch 14 Jun 27 17:48:11 2021 srcpath
-rw-r--r-- 1 root wheel uarch 11 Jun 27 17:48:11 2021 timestamp
-rw-r--r-- 1 root wheel uarch 13 Aug 25 00:21:30 2023 version
version contains the likes of: 15-CURRENT
that is based on your jail creation. The other files
are mostly similar records of the creation information,
other than timestamp. This is all a simple delete or
create deals with at deletion/creation time. (I'll not
here get into if other contexts also update the version
file.)
The data in these files is used during various poudriere
commands.
/usr/local/poudriere/data/packages/main-default/.latest/
should have the files suggested by the likes of:
drwxr-xr-x 4 root wheel uarch 12 Aug 27 14:26:57 2023 .
drwxr-xr-x 3 root wheel uarch 14 Aug 27 14:26:57 2023 ..
-rw-r--r-- 1 root wheel uarch 21 Aug 27 14:25:04 2023 .buildname
-rw-r--r-- 1 root wheel uarch 13 Aug 27 14:25:04 2023 .jailversion
drwxr-xr-x 2 root wheel uarch 533 Aug 27 14:26:31 2023 All
drwxr-xr-x 2 root wheel uarch 3 Aug 26 11:00:00 2023 Latest
lrwxr-xr-x 1 root wheel uarch 57 Aug 27 14:25:02 2023 logs ->
../../../logs/bulk/main-default/2023-08-27_14h24m55s
-rw-r--r-- 1 root wheel uarch 163 Aug 27 14:26:57 2023 meta.conf
-rw-r--r-- 1 root wheel uarch 236 Aug 27 14:26:57 2023 meta.pkg
-rw-r--r-- 1 root wheel uarch 236 Aug 27 14:26:57 2023 meta.txz
-rw-r--r-- 1 root wheel uarch 142016 Aug 27 14:26:57 2023 packagesite.pkg
-rw-r--r-- 1 root wheel uarch 142016 Aug 27 14:26:57 2023 packagesite.txz
.jailversion is another place listing the likes of: 15-CURRENT
But here it is about what it found in the jail as of the most
recent bulk run.
The /usr/local/etc/poudriere.d/jails/main/version and
/usr/local/poudriere/data/packages/main-default/.latest/.jailversion
are used to detect and handle changes, which can automatically
force full rebuilds, for example for 14.0-CURRENT -> 14.0-ALPHA1
is a change, as would 13.2-RELEASE-p2 -> 13.2-_RELELASE-p3 be a
change.
During a poudriere bulk run there is a temporary directly in the
list as well: .building/ . If the build fails to complete normally
poudriere can leave what was fully built under .building/ for use
in the next bulk run for the jail but --without having committed
those materials. This can avoid some rebuilding activity.
As for the /usr/ports/ binding, there is:
/usr/local/etc/poudriere.d/ports/default/
There should be the files suggested by:
# ls -Tloa
total 3
drwxr-xr-x 2 root wheel uarch 6 Apr 18 02:05:47 2021 .
drwxr-xr-x 3 root wheel uarch 3 Apr 18 02:05:47 2021 ..
-rw-r--r-- 1 root wheel uarch 2 Apr 18 02:05:47 2021 created_fs
-rw-r--r-- 1 root wheel uarch 5 Apr 18 02:05:47 2021 method
-rw-r--r-- 1 root wheel uarch 11 Apr 18 02:05:47 2021 mnt
-rw-r--r-- 1 root wheel uarch 11 Apr 18 02:05:47 2021 timestamp
The data in these files is used during various poudriere
commands.
> The sequence was
I presume the sequence is only covering when there is a
system version-text change involved, not the simpler case
when ports are updated for the same system version-text
as for the prior build.
So, for example, now that you are at 15.0-CURRENT you will
be rebuilding many times over likely 2 or more years before
this procedure will be needed again for main, say, for
15.0-ALPHA1 .
( ??.?-RELEASE-p? change more often. When the .? part
changes, it also changes for ??.?-STABLE . So these
would get this style of handling port -> package updates
more often than main if one was building such for
RELEASE and/or STABLE instead [or as well as]. )
> 1. update, build and install world and kernel
This involves /usr/src and doing a cd /usr/src .
Reboot(s) here as well?
> 2. create /usr/local/poudriere
Was this . . .
A) installation of ports-mgmt/poudriere-devel ?
B) a poudriere command of some kind? (if yes, what kind?)
C) A mkdir -p ?
Once:
/usr/local/poudriere/
/usr/local/poudriere/data/
/usr/local/poudriere/jails/
/usr/local/poudriere/ports/
exist in the normal way, they should not have to be
recreated, presuming they are not explicitly deleted
some way.
Some poudriere commands do adjust some of the content
under:
/usr/local/etc/poudriere.d/
and:
/usr/local/poudriere/
I'll note that use of /usr/local/poudriere/poudriere-system/
is instead of poudriere dealing with maintaining
materials somewhere under /usr/local/poudriere/jails/ .
Similarly, use of /usr/ports/ is instead of poudriere
dealing with maintaining materials somewhere under
/usr/local/poudriere/ports/ .
(I would not manually put anything under /usr/local/poudriere/jails/
or /usr/local/poudriere/ports/ .)
> 3. run in /usr/src the make commands to populate
> /usr/local/poudriere/poudriere-system
> 4. run poudriere ports command (this is where I expected some write activity
See under: /usr/local/etc/poudriere.d/ports/default/
("default/" presumes use of some defaults.)
> 5. run poudriere jail command
See under: /usr/local/etc/poudriere.d/jails/main/
("main/" presumes use of some defaults.)
This command should list the new system's version
text as an argument, not the old one.
This points out something I missed on reporting before . . .
Before (showing ??. instead of a specific number, for example):
# poudriere jail -c -j main -m null -M /usr/local/poudriere/poudriere-system -S
/usr/src -v ??.0-????
the old jail should probably be deleted. So the sequencing would
be the pair of commands:
# poudriere jail -d -j main
# poudriere jail -c -j main -m null -M /usr/local/poudriere/poudriere-system -S
/usr/src -v ??.0-????
This is true any time the ??.0-???? text changes --but only when
it changes is the sequence needed.
> 6. use poudriere
>
> In the event of step 1 re-run step 3
So (2) may be one-time-only and my questions/notes above
for (2) may be partially/wholly covered by that?
> In the event of major version change delete the jail
> and re-run step 5 with the new version number
I expect this is just about indicating what the the one
command line argument is like during step 5 for the new
system version, not a 2nd run of step 5 for the new
system version. Only one instance of step 5 is needed
when the ??.?-???? text changes.
> Does that make more sense?
Yes.
===
Mark Millard
marklmi at yahoo.com