• ferric_carcinization@lemmy.ml
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    5 hours ago

    I though Void also supported systemd. Though, it would take away some advantages of Void, as it doesn’t support musl IIRC.

    I’ve heard Void fans singing praises for its package manager. It’s one of the few distros where its users are really passionate about that, along with Arch, Gentoo & Alpine (IIRC). How good is the support for compiling certain repo packages yourself?

    Does musl or a lack of systemd cause many problems?

    Does Void have good support for ZFS? I run a small server at home & like to experiment. It’s currently running Debian, but I’m crazy enough to consider dual (or triple when I finally decide to put BSD on it) booting on a server.

    All in all, sounds like it’s a lot more interesting than I thought. I’ll definitely give it a try, if not on a server, at least a desktop. Though, I still think I’ll switch to Gentoo for my daily driver.

    Hope I didn’t bore ya.

    Not at all! I’m a huge nerd, so I love learning about things like this. Thank you for the detailed propaganda comment!

    P.S.
    Do you happen to know if support for Rust (the best language at the time of writing) C standard libraries like relibc or c-gull is planned?

    Edit: Fixed striketrough, I think.
    Second edit: It works now. Why does each Markdown flavor have slightly different, incompatible syntax?

    • Octavusss@lemm.ee
      link
      fedilink
      English
      arrow-up
      3
      ·
      4 hours ago

      With Void most of the packages I use and want are either in the main repo, non-free repo or multilib repo. I compiled only few packages which I wanted or needed like Brave Browser or drivers for my graphical tablet and few more. Once you get a proper grasp of it the process is nothing that hard.

      As for SystemD I was able to always substitute one way or another so It’s pretty painless for me personally. Thought It might be a nightmare for someone who spent years on distro like Debian.

      Can’t comment on ZFS as I have not used it on Void but some guys on unofficial Telegram group for Void said it’s smooth.

      Speak of the devil. I was also thinking of trying Gentoo although I will probably do 1 or 2 test installs in VM and after that install it only onto my old Lenovo ThinkPad. Maybe I’ll try using Artix next for my daily driver. It’s been some time since I used anything based on Arch.

      Yeah. Definitely give it a spin atleast in a VM. Although I’m more of C++ guy myself I wish you luck Rust bro ;)

      • ferric_carcinization@lemmy.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 hours ago

        Do you have a reason not to use systemd? Yes, it might be slower to boot than other inits, but the units are so nice. (Not trying to convert you, just curious about why you seem to avoid it)

        Installing Gentoo is fun! It can be done without install media. Just extract the stage3 archive to a partition, mount system directories correctly & just chroot in! Now you can have the handbook open in a browser next to the chroot. Though, I haven’t finished the install yet. I’ve had it in a half-done state for a while.

        I can program in C++ & don’t have much against it, I just love Rust. Also, for security, Rust is just better. Everyone makes misrakes, so why not make the compiler check your work? Especially when it comes to concurrency. With Rust, never I have to about worry race conditions & data races again. (Kind-of trying to convert you, but Rust isn’t perfect, or ready for everything yet, sadly)

        With the compilation, I was wondering how good the support for partially compiling dependencies was. For example:
        packages: foo, bar, baz
        bar depends on foo
        baz depends on bar

        What happens if I compile bar myself?
        If foo updates, I may need to rebuild bar, I need to do that manually on Arch.
        What about baz? It depends. It might work with my locally compiled bar, or it might not. Either way, pacman doesn’t care.

        I’ve been toying around with a new Rust-written™®© package manager that would support that. It’s still very early in development & I have a few other personal projects in the way, too.
        A few thoughts I have about it:

        • The “database” format used by pacman is simply insufficient. (I mean the local db, the sync db is fine, IIRC)
        • It should be possible to cascade testing repo installs. (mark the extra repo compatible with extra-testing and the same with core & core-testing, with the non-testing repos having higher priority. Install extra-testing/bar, the dependencies, like foo are pulled from the testing repos, if available. This should cascade. Now, you can selectively use packages from testing without breaking anything.)
        • Add new repo formats, like repo-src (official PKGBUILDs) & AUR (stored in a different way from official build scripts & different trust levels, require reviewing build script) that build when installing & cascade similiarly to the previous point.
        • Allow using the legacy (current) DB format, but without support for the fancy new features
        • Allow tagging paclages with extra metadata, for example to prevent packages from being rebuild (or built at all) unnecessarily.
        • It should be compatible with pacman’s options & behaviour. Some tools also need to be redone, but I have already started on this.
        • The Arch formats (.pkg.tar*, PKGBUILD, db) are not designed for this, at all. I think that packages can be optionally manually tagged, but this should err on the side of rebuilds, and I’d also like to redesignd both the package format & build scripts/tooling. Like I said, the db is just insufficient & needs to go.

        This is still very early in development, but I’d like to get it done at sone point.

        It would combine the worst parts of both Arch & Gentoo (compilation, no use flags, complex dependency solving) in a gradual way (build the fish shell [yes, I use fish. I used to use zsh with plugins, but fish just did everything, but better & faster] today, next week build ffmpeg & dependents, next month, build libc & watch most of the system get built).
        It would be nice to support parallel building of unrelated packages, as not everything scales well.

        Dependency cycles/conflicts/versions are going to be nightmarish to solve for repo packages, then it also needs to work for AUR.

        I’m not sure if I’ll ever get the package manager to a usable state, though.

        • Octavusss@lemm.ee
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 hours ago

          That’s quite the project you took upon yourself. As I’ve said before I wish you luck with your endeavors and hope you won’t fall into production dark pit.

          • ferric_carcinization@lemmy.ml
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 hour ago

            Thanks. I’m still not completely serious about it, but I’ve given some thought to how the project would be laid out. I have some code, but not that much, under a few thousand loc. I wonder if it would be accepted into the extra repository. In Arch, the AUR is completely unofficial. The wiki documents many things related to it, but otherwise, the tooling kind of pretends that it doesn’t exist & it’s completely “unsupported” officially. The rules of the extra repository specify that pacman wrappers aren’t allowed, but doesn’t mention the AUR, IIRC. This wouldn’t be a wrapper, but would support the AUR. I wonder how it would be handled, or would AUR support be patched out?

            • Octavusss@lemm.ee
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 hour ago

              I can’t tell. I don’t exactly remember the policy but if you decide to take it more seriously and even if they wouldn’t support you 100% I belive that you could find compromise through discussion.