I'm from the group of people that believes if you ask a computer to do something, no matter what that thing is (even if it's destructive and dangerous) the computer should do it. There is nothing that I hate more than someone else deciding what I can and can not do with my computer. FreeBSD is one of the few remaining operating systems that retains this freedom.In this particular case, while someone mightindeed be astonished that "forcibly delete everything" deletes everything,someone else could well be astonished if "pkg delete -f clang" doesn't infact delete clang.
The problem isn't the action of deleting all your base packages. The problem is the fact that this was designed in such a way where we are having this conversation.
This needs to be re-designed with user experience and FreeBSD philosophy in mind. In a previous reply I had suggested a isolated tool called 'freebsd-setup' which would be a merged/renamed/refactored version of 'bsdinsall' and 'freebsd-update'. The two package systems should never cross paths. 'pkg' is the software management tool for the userland and that's what the user interacts with regularly. 'freebsd-setup' is the tool you bring out when you need to manage FreeBSD.
On 8/7/2025 10:17 PM, Colin Percival wrote:
On 8/7/25 18:20, vermaden wrote:OK, Colin Percival just announced 15.0-PRERELEASE - yet the PKGBASE concept - besides 'kinda working' - does not holds to the POLA principle at all - and if anyone will chose to use PKGBASE instead of 'classic' install the 'pkg delete -af' will not only delete all the third party packages but will also WIPE almost ENTIRE BASE SYSTEM of FreeBSD ... this is not unacceptable to say the least.POLA is inherently subjective; what astonishes one person might be exactly what another person expects. In this particular case, while someone might indeed be astonished that "forcibly delete everything" deletes everything,someone else could well be astonished if "pkg delete -f clang" doesn't in fact delete clang.My 'vote' here does not changed. Lets keep pkg(8) for third party packages with: - /etc/pkg - /usr/local/etc/pkg - /var/db/pkg Lets have pkgbase(8) for FreeBSD Base System PKGBASE with: - /etc/pkgbase - /usr/local/etc/pkgbase - /var/db/pkgbaseI would like this idea, except for one wrinkle: I don't think it would work. In particular, packages installed from ports might depend on packages from the base system, so having a single tool which knows about both is necessary.
smime.p7s
Description: S/MIME Cryptographic Signature