Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Aug 2023 22:58:22 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        bob prohaska <fbsd@www.zefox.net>
Cc:        FreeBSD Mailing List <freebsd-ports@freebsd.org>
Subject:   Re: Bmake bad variable name
Message-ID:  <BABF15FE-9150-4E3F-97D7-A32B3235DC5C@yahoo.com>
In-Reply-To: <ZPAUAlS9dDGdjtnl@www.zefox.net>
References:  <9B530FC9-ED6B-4B75-A731-D8F7D7586A51.ref@yahoo.com> <9B530FC9-ED6B-4B75-A731-D8F7D7586A51@yahoo.com> <ZO5EKKF9HVxhnCB3@www.zefox.net> <040CECBC-8A04-4049-91A7-0C1522000F5A@yahoo.com> <ZO/chSZgkn1SUXbp@www.zefox.net> <94FBA6B3-EA84-4B96-A87A-0A04C3E6EFE0@yahoo.com> <ZPAUAlS9dDGdjtnl@www.zefox.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 30, 2023, at 21:16, bob prohaska <fbsd@www.zefox.net> wrote:

> On Wed, Aug 30, 2023 at 06:08:06PM -0700, Mark Millard wrote:
>>=20
>> 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?
>>=20
> The file was updated =20
> -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.

>>=20
>> 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?
>=20
> My question was where does the output of=20
> poudriere jail -c ... get written? I thought
> it might be a dot file in /usr/ports or=20
> /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=20

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=20
> /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
>=20
> 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=20
> 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.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BABF15FE-9150-4E3F-97D7-A32B3235DC5C>