• [gentoo-dev] Re: last rites: sys-fs/eudev

    From Madhu@21:1/5 to All on Thu Sep 14 02:30:01 2023
    KiBSaWNoIEZyZWVtYW4gPENBR2ZjU19uZWg9Z3UrMTZtbzdnTFJXVnRIb1NzMmhCaXJ2RlZSX0c1 MHlKV1Jja0hHUUBtYWlsLmdtYWlsLmNvbT4gOg0KV3JvdGUgb24gVHVlLCAxMiBTZXAgMjAyMyAw NToxODo1MSAtMDQwMDoNCj4gT24gTW9uLCBTZXAgMTEsIDIwMjMgYXQgMTA6MzTigK9QTSBvcmJl YSA8b3JiZWFAcmlzZXVwLm5ldD4gd3JvdGU6DQo+PiBSZWdhcmRsZXNzIHRoZSBkaXNhcHBvaW50 bWVudCBpcyBhIHZhbGlkIGNvbmNlcm4gd2hlbiBHZW50b28gaXMgd2lsbGluZw0KPj4gdG8gcHVs bCB0aGUgcnVnIHVwIGZyb20gdW5kZXIgdXNlcnMgZmVldCB1bmRlciBlcnJvbmVvdXMgY2xhaW1z IG9mIHRoZQ0KPj4gcHJvamVjdCBiZWluZyBkZWFkLg0KPiBBcyBhIGNvbXBsZXRlIG91dHNpZGVy LCBJIHRoaW5rIHRoaXMgY29udmVyc2F0aW9uIGlzIGZvY3VzaW5nIG9uIHRoZQ0KPiB3cm9uZyBp c3N1ZS4NCj4NCj4gSU1PIHRoZSBtYWluIHJlYXNvbiBpdCBpcyBnZXR0aW5nIHRyZWVjbGVhbmVk IGlzIHRoZSBsYWNrIG9mIGENCj4gbWFpbnRhaW5lci4gIEV2ZXJ5dGhpbmcgYWJvdXQgdGhpcyBl bnRpcmUgYmFjay1hbmQtZm9ydGggc2NyZWFtcw0KPiBsYWNrLW9mLW1haW50YWluZXIuDQoNCk9u ZSBvZiB0aGUgcGxhbm5lZCBjb25zZXF1ZW5jZXMgb2YgdGhpcyB0cmVlLWNsZWFuaW5nIGlzIHRo ZSByZW1vdmFsDQpvZiBnZW5rZXJuZWwsIGFuZCB0aGUgdXNlIG9mIGdlbmtlcm5lbCB0byBidWls ZCBnZW50b28ncyBpbml0cmFtZnMuDQoNCkdlbmtlcm5lbCB1c2VzIGV1ZGV2IGZvciB1ZGV2LCBh bmQgaXQgd29ya3MgYmVjYXVzZSBldWRldiBjYW4gYmUgYnVpbHQNCnN0YXRpY2FsbHkuDQoNCnN5 c3RlbWQtdWRldiBjYW5ub3QgYmUgYnVpbHQgYXMgYSBzdGF0aWMgYmluYXJ5IGFnYWluIHByZXN1 bWFibHkgYQ0KY2FyZWZ1bGx5IHRob3VnaHQgb3V0IGRlc2lnbiBkZWNpc2lvbiBiZWhpbmQgaXRz IGRlc2lnbiBhbmQNCnBoaWxvc29waHkuDQoNCmV1ZGV2IHdvcmtzIHBlcmZlY3RseSB3ZWxsIGZv ciB0aGUgam9iIGdlbmtlcm5lbCBkb2VzLCB1ZGV2IGlzIG5vdCBhDQpkcm9wLWluIHJlcGxhY2Vt ZW50IGZvciB1ZGV2IGluIGdlbmtlcm5lbCBpbml0cmFtZnMgYmVjYXVzZSBpdCBkb2Vzbid0DQpz dXBwb3J0IHN0YXRpYyBjb21waWxhdGlvbi4gIFJlbW92aW5nIGV1ZGV2IGxlYWRzIHRvIGEgcm9h ZG1hcCB0bw0KZGVwcmVjYXRlIGdlbmtlcm5lbCBsYXN0LXJpdGUgYW5kIHJlbW92ZSBpdC4NCg0K SSBrbm93IHlvdSBhcmUgYSBkcmFjdXQgdXNlciwgYnV0IEkndmUgYmVlbiB1bmFibGUgdG8gdXNl IGRyYWN1dCB3aXRoDQoxLiBjcnlwdHNldHVwIHN3YXAgKyBzd3N1c3BlbmQgKyB6ZnMgb24gcm9v dC4gIEdlbnRvbyBhY3RpdmVseSByZW1vdmVzDQpzdXBwb3J0IGZvciBpbmRpdmlkdWFsIGNvbmZp Z3VyYXRpb25zLCBhbmQgb25seSBzdXBwb3J0cyBpcyBmb3INCmNvbmZpZ3VyYXRpb25zIHRoYXQg ZmVkb3JhIGhhcyBhbHJlYWR5IGVuZ2luZWVyZWQgYW5kIGNvbnRyb2xzIGJlY2F1c2UNCnRoYXQg aXMgd2hlcmUgdGhlIGRldnMgc2VlbSB0byBiZSBjb21pbmcgZnJvbS4NCg0K

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Alex Boag-Munroe@21:1/5 to Madhu on Thu Sep 14 02:50:01 2023
    On Thu, 14 Sept 2023 at 01:20, Madhu <enometh@meer.net> wrote:

    * Rich Freeman <CAGfcS_neh=gu+16mo7gLRWVtHoSs2hBirvFVR_G50yJWRckHGQ@mail.gmail.com> :
    Wrote on Tue, 12 Sep 2023 05:18:51 -0400:
    On Mon, Sep 11, 2023 at 10:34 PM orbea <orbea@riseup.net> wrote:
    Regardless the disappointment is a valid concern when Gentoo is willing
    to pull the rug up from under users feet under erroneous claims of the
    project being dead.
    As a complete outsider, I think this conversation is focusing on the
    wrong issue.

    IMO the main reason it is getting treecleaned is the lack of a
    maintainer. Everything about this entire back-and-forth screams lack-of-maintainer.

    One of the planned consequences of this tree-cleaning is the removal
    of genkernel, and the use of genkernel to build gentoo's initramfs.

    Genkernel uses eudev for udev, and it works because eudev can be built statically.

    systemd-udev cannot be built as a static binary again presumably a
    carefully thought out design decision behind its design and
    philosophy.

    eudev works perfectly well for the job genkernel does, udev is not a
    drop-in replacement for udev in genkernel initramfs because it doesn't support static compilation. Removing eudev leads to a roadmap to
    deprecate genkernel last-rite and remove it.

    genkernel doesn't use eudev from ::gentoo it uses its own private copy.


    Gentoo actively removes support for individual configurations, and only supports is for configurations that fedora has already engineered and controls because that is where the devs seem to be coming from.

    What the actual hell are you on about

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arsen =?utf-8?Q?Arsenovi=C4=87?=@21:1/5 to Madhu on Thu Sep 14 16:30:01 2023
    Madhu <enometh@meer.net> writes:

    [...snip...]
    One of the planned consequences of this tree-cleaning is the removal
    of genkernel, and the use of genkernel to build gentoo's initramfs.

    Genkernel uses eudev for udev, and it works because eudev can be built statically.

    systemd-udev cannot be built as a static binary again presumably a
    carefully thought out design decision behind its design and
    philosophy.

    Since static linking is seldom a good idea, it is more likely that
    simply nobody bothered. I don't recall any udev components in systemd
    v249 (which is the version I attempted to rebase eudev on top of) which
    can't be static linked. NSS and friends are rather disconnected from udev-related components, and that's the closest thing I can think of to requiring shared objects (note, *not* the same as being unusable in a static-linked scenario).

    In addition, there's precisely zero reasons why an initrd must be
    composed of static linked components.

    eudev works perfectly well for the job genkernel does, udev is not a
    drop-in replacement for udev in genkernel initramfs because it doesn't support static compilation. Removing eudev leads to a roadmap to
    deprecate genkernel last-rite and remove it.

    I know you are a dracut user, but I've been unable to use dracut with
    1. cryptsetup swap + swsuspend + zfs on root.

    I've had an LUKS2 + LVM setup which also had a swap file for suspend
    with Dracut a few years back. You should be able to declare what files
    need to be brought up on the cmdline or in the config and have it do the
    rest. I've lost the notes on how exactly I did that since this was
    years ago, but I recall that all the information came from
    dracut.cmdline(7) (yeah, I know, manpages, unfortunate..), and I recall
    needing rd.luks.uuid=, resume=, and presumably root=zfs:... in your
    case. I had my suspend a volume in LVM, though, so my resume= pointed
    to /dev/foo/swap. Please give that a shot (but keep a copy of your
    current initrd so that you can retry easily). There are plenty of
    people on IRC who can help with your transition.

    Dracut is more flexible than it gets credit for.

    Gentoo actively removes support for individual configurations, and
    only supports is for configurations that fedora has already engineered
    and controls because that is where the devs seem to be coming from.

    Developers tend to support tools they use, and developers tend to be
    more enthusiastic about tools that everyone uses and contributes to
    rather than a few specific ones, produced in-house ages ago, by people
    who are either no longer interested in those tools or in Gentoo. It has
    less to do with who made it and more to do with who uses it.

    Have a lovely day :)
    --
    Arsen Arsenović

    --=-=-Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iOcEARYKAI8WIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCZQMYXF8UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0RkVF MkIzRDExM0ZDMDBBMzE2MkQ2MDYxNTJDMjk0MzAxRUEyQzQ5MxEcYXJzZW5AZ2Vu dG9vLm9yZwAKCRBSwpQwHqLEk9OoAP9LGoMudTGbZdTj/8rhE3mVqk5jcoavrsnd PLWEf0eSywD/frJn/VzVqqTZnODzVZf1KdoJfbTgSNMD4uTnD3PbeQc=GEY8
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mike Gilbert@21:1/5 to arsen@gentoo.org on Thu Sep 14 17:00:02 2023
    On Thu, Sep 14, 2023 at 10:25 AM Arsen Arsenović <arsen@gentoo.org> wrote:
    Madhu <enometh@meer.net> writes:
    systemd-udev cannot be built as a static binary again presumably a carefully thought out design decision behind its design and
    philosophy.

    Since static linking is seldom a good idea, it is more likely that
    simply nobody bothered. I don't recall any udev components in systemd
    v249 (which is the version I attempted to rebase eudev on top of) which
    can't be static linked.

    The main issue is symbol conflicts with several major projects.

    systemd makes careful use of ELF symbol visibility (hidden symbols) to
    prevent conflicts when libudev or libsystemd are linked with other
    projects.

    As I understand it, it is up to the linker to apply any visibility
    rules. This doesn't work for static libs since the linker isn't
    actually involved in their creation. A static library is really just
    an archive with a bunch of unlinked ELF objects.

    Since the symbol visibility rules are not applied, attempting to link
    against libudev.a or libsystemd.a leads to symbol conflicts in
    packages like LVM2 and cryptsetup. There are some Gentoo bug reports
    about this, but I can't find them immediately.

    The systemd project (upstream) has chosen not to work around these
    conflicts by renaming symbols, and instead chooses not to support
    static linking at all. They see static libs as being defective by
    design. If the symbol visibility issue could be resolved at the
    toolchain level, they would probably be more willing to support it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arsen =?utf-8?Q?Arsenovi=C4=87?=@21:1/5 to Mike Gilbert on Thu Sep 14 20:20:02 2023
    Mike Gilbert <floppym@gentoo.org> writes:

    On Thu, Sep 14, 2023 at 10:25 AM Arsen Arsenović <arsen@gentoo.org> wrote:
    Madhu <enometh@meer.net> writes:
    systemd-udev cannot be built as a static binary again presumably a
    carefully thought out design decision behind its design and
    philosophy.

    Since static linking is seldom a good idea, it is more likely that
    simply nobody bothered. I don't recall any udev components in systemd
    v249 (which is the version I attempted to rebase eudev on top of) which
    can't be static linked.

    The main issue is symbol conflicts with several major projects.

    systemd makes careful use of ELF symbol visibility (hidden symbols) to prevent conflicts when libudev or libsystemd are linked with other
    projects.

    As I understand it, it is up to the linker to apply any visibility
    rules. This doesn't work for static libs since the linker isn't
    actually involved in their creation. A static library is really just
    an archive with a bunch of unlinked ELF objects.

    Since the symbol visibility rules are not applied, attempting to link
    against libudev.a or libsystemd.a leads to symbol conflicts in
    packages like LVM2 and cryptsetup. There are some Gentoo bug reports
    about this, but I can't find them immediately.

    The systemd project (upstream) has chosen not to work around these
    conflicts by renaming symbols, and instead chooses not to support
    static linking at all. They see static libs as being defective by
    design. If the symbol visibility issue could be resolved at the
    toolchain level, they would probably be more willing to support it.

    We can entertain the useless idea of static linking by trying partial
    linking. I can give that a shot later. Thanks for the background.

    Have a lovely day.
    --
    Arsen Arsenović

    --=-=-Content-Type: application/pgp-signature; name="signature.asc"

    -----BEGIN PGP SIGNATURE-----

    iOcEARYKAI8WIQT+4rPRE/wAoxYtYGFSwpQwHqLEkwUCZQNNz18UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0RkVF MkIzRDExM0ZDMDBBMzE2MkQ2MDYxNTJDMjk0MzAxRUEyQzQ5MxEcYXJzZW5AZ2Vu dG9vLm9yZwAKCRBSwpQwHqLEkxy4AQCR/W45VTk1VpTuc7RAxiOVOZyjlEhYKdQS K8k5iPw2dwD+PoZ3+YHPmX5l8sGHDK+R0yFO7gab5djmb4H9rs3uKgc=v0U1
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)