Re: disallowing 'make installworld' with pkgbase
- Reply: Lexi Winter : "Re: disallowing 'make installworld' with pkgbase"
- In reply to: Lexi Winter : "disallowing 'make installworld' with pkgbase"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 06 Oct 2025 11:45:54 UTC
On Mon, 6 Oct 2025 03:03:17 +0100
Lexi Winter <ivy@freebsd.org> wrote:
> hello,
>
> in 15.0 we will ship pkgbase as an alternative to the dist sets for base
> system installation. pkgbase is entirely optional and for at least 15.0,
> we will continue to support dist set installation with freebsd-update.
>
> the traditional source update method, using make buildworld installworld,
> will be supported indefinitely and there are no plans to remove this even
> after dist sets and freebsd-update are dropped.
>
> however, while both update methods will be supported individually, they
> cannot be used together, i.e., if you installed the system with pkgbase,
> you should not attempt to update it using "make installworld" because
> this will cause the installed system to become out of sync with the
> pkg(8) database.
>
> instead, you have two options: update with "make buildworld packages"
> and pkg-upgrade(8), or depkgbasify the system and then update using
> make installworld as usual. either of those options is fully supported,
> but you have to choose one of them to avoid breaking your system later.
>
> (the procedure to "depkgbasify the system" is not entirely clear yet,
> but we will need something like this at least for 16.0, so there will
> be some way to do that.)
>
> all of this preamble is to be as clear as possible that the review i'm
> about to link is *not* about removing support for 'make installworld'
> (we aren't going to do that) and does not prevent you from doing anything
> you currently do. with that in mind, i would like to land this for 15.0:
>
> "Makefile: Don't allow install{world,kernel} with pkgbase"
> https://reviews.freebsd.org/D52879
>
> the point of this change is to avoid the situation where a user installs
> 15.0 with pkgbase, then tries to upgrade using 'make installworld' out
> of habit, not realising that this will break their system. users who
> are really sure they want to do this still can using DESTDIR=/, and
> users who don't use pkgbase are completely unaffected by this change.
>
> so, if anyone has an objection to this change, please say so.
Isn't there at least one edge case with D52879?
What I can think of is
*pkgbase installation,
*/usr/local/ and /var/db/pkg/ (/var/cache/pkg/, too, possibly?) are
NOT in root partition,
*running `make installworld` in single user mode,
*any of the partitions / datasets that above-mentioned directories
exists are NOT mounted.
For these cases (I think typically seen in old installations that are
kept on upgraded), IMHO, a marker file (something
like /etc/wall_cmos_clock for indicating CMOS clock is NOT set to UTC)
in /etc/ (or somewhere promised to be in root partition) would be safer.
Regards.
--
Tomoaki AOKI <junchoon@dec.sakura.ne.jp>