Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • TSC TSC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Graph
    • Compare revisions
  • Issues 23
    • Issues 23
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Packages and registries
    • Packages and registries
    • Model experiments
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • alpinealpine
  • TSCTSC
  • Issues
  • #52
Closed
Open
Issue created Jul 20, 2022 by Laurent Bercot@skarnet😴

[3.17] Rework device manager handling, split busybox-initscripts

It all started in the 3.16 merge window with a merge request that sparked a lot more pushback than I was expecting.

Granted, the timing was bad, and the proposed changes had more impact than I realized. So @ncopa cherry-picked a few non-controversial changes that could be made before 3.16, and the remainder of the MR was shelved.

Today I'm coming back to discuss changes in the rest of this MR (which I just reworked), that I think would be beneficial for Alpine.

  • Split mdev-conf and mdev-openrc from busybox-initscripts.
  • Make mdev-openrc, mdevd-openrc and udev-init-scripts-openrc all provide the dev-initscripts virtual package.
  • Make alpine-base depend on dev-initscripts.

The goal is to have mdev, mdevd and udev all symmetrical, instead of having mdev be privileged because it's provided by busybox and the other device managers be hacks around it. (Eventually, in the future, I would like mdevd to become the default because it can be paired with libudev-zero to provide full udev emulation - whereas mdev cannot - but this is not the point here.)

As @ncopa pointed out, the changes require additional modifications to mkinitfs, which I am willing and able to provide manpower for: implementing the fixes, testing that things don't break, and communicating clearly and efficiently with other testers. I think the reduction in ad-hocness, which means a reduction in technical debt, is worth the effort in the long run - although @ncopa was 100% right to refuse during the 3.16 merge window.

More generally, and this is more a matter of opinion and totally debatable, I would like functionality to be progressively stripped from busybox-initscripts, which is a package that gathers a bunch of miscellaneous policy scripts that are only related by the fact that their mechanism is provided by busybox. I don't think this package makes sense from a semantics point of view; it is more logical to provide the policy scripts classified by service, no matter whether or not the implementation of the service is done by busybox. To me, ideally, busybox-initscripts would be empty, and we'd have virtual packages for every service that is currently defined in it, so support for alternative implementations can be added over time. This would also ease the path to getting out of busybox, or at least providing alternative coreutils/low-level utilities implementations, is there is ever a will from Alpine to do so.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking