git: 54b26298c822 - main - sysutils/e2fsprogs: port rework

Baptiste Daroussin bapt at FreeBSD.org
Sat Aug 7 12:15:20 UTC 2021


7 août 2021 10:28:05 Matthias Andree <mandree at FreeBSD.org>:

> Am 07.08.21 um 08:41 schrieb Baptiste Daroussin:
>
>>> * pkg seems to lack, or I am unaware, of a way to modify the install
>>> before recording files and checksums.
>>
>> Because this is not how packaging is supposed to work in the first place!
>
> We're doing it all the time => @sample, @postexec, whatnot.
>
>>> * The current commit to e2fsprogs forgoes the need to do just that, the
>>> price we pay is "absolute symlinks" from $PREFIX/sbin to /sbin.  I've
>>> removed the replace-by-hardlinks stuff from pkg-install.
>>>
>>
>> I am questionning the need to do it since the beginning this is this need which is the problem
>
>>> * installing into /sbin and $PREFIX/... at the same time is something
>>> that the port has been doing for ages, but feel free to send me a patch
>>> for review that splits it into one e2fsprogs port that installs only
>>> into / [/sbin] and RUN_DEPENDS on a separate e2fsprogs-bin port, or we
>>> can revisit this once we have subpackages and pkg grows a
>>> hardlink-or-copy or a hardlink-or-symlink feature that does not cause
>>> apparent checksum mismatches in the database.
>>>
>>> * as long as the kernel supports ext2fs we need to be able to fsck so we
>>> don't create circular dependencies that wedge the boot process.
>>
>> There is no such circular dependency, the boot will never get blocked on fsck on ext2fs, it can only be blocked if the root fs is on ext2 which make no sense on freebsd. None of the other filesystem tools are doing that!
>
> There is no enforced file system layout and it's perfectly legit to let
> $PREFIX or /usr (not /) reside on ext2, ext3 or ext4.  It may seem less
> prevalent today with fallen prices for storage over the decades, but
> it's a use case we need to care for.
>
> Trust the maintainer who also sees non-public mail for his package.
>

Authority argument which is unverifiable... Please provide an real actual use case which requires those to be in /sbin. The only one that was provided does not actually works on freebsd

>>> * you can't run pkg check from within a post-install shell script.
>>> Haven't tried Lua. For shell scripts, I explored stuffing a script into
>>> at(1) which worked with an up-to-5 minute delay to recalculate
>>
>> At works but it is ugly
>
> Function comes before beauty.
>
>>> checksums, daemon(8) would probably have been another option I did not try.
>>
>> No, pkg would have killed it because it becomes the reaper when executing scripts and kills all its child exactly to prevent such things.
>
> I'll try that at some point. If daemon(8) (without options to
> synchronize to the invoking shell) were to not reparent itself or its
> children ultimately to init(8), then its detaching would be incomplete.
>
> A simple "daemon sleep 100" shows sleep with its own PID and PPID 1, as
> I expect.

It does not if launched from pkg which is the reaper for the scripts it does launch

Bapt


More information about the dev-commits-ports-all mailing list