1. 46
  1. 19

    Hi! I contribute a bit to Guix, and we’re discussing turning some of the things you mentioned into bug reports to help future users :-) Join us at #guix on Freenode if you have IRC!

    Also, what I do for contributing back to Guix is the following, it’s really quite simple!

    git clone https://git.savannah.gnu.org/git/guix.git
    cd guix
    guix environment guix # enter an environment suitable for building guix
    ./bootstrap && ./configure --localstatedir=/var
    make -j$(nproc)
    # make changes (add packages, etc)
    make -j$(nproc)
    ./pre-inst-env guix build mynewpackage # invoking guix as "./pre-inst-env guix" means you're using the guix you just built
    1. 5

      I was planning on joining the IRC, but the fact that I have to register with NickServ is a major incontinence inconvenience. I usually don’t join these kinds of channels, so I don’t remember what my username of password is, ergo I have to create a new one, that requires Email as far as I recall – which isn’t working.

      I will see what I can report back, since I would like to see these bugs fixed.

      1. 3

        I was planning on joining the IRC, but the fact that I have to register with NickServ is a major incontinence.

        I think you mean “inconvenience”. :-)

        1. 3

          Nah, both words work in this context…

          1. 3

            That’s what happens when you rely too much on your spell checker.

      2. 19

        Chaining [sic] the display brightness required me to enter the root password, for every brightness step.

        I can’t believe this isn’t parody.

        1. 9

          I decided to stick with NixOS even though I programmed in Lisp based languages rather than ML ones… I configured the system (really simple i3 /w compton, firefox, emacs and xterm) and it just worked. Backed up /etc/nixos/configuration.nix and I’ve stopped caring about my Linux dev system. Everything works like a charm on my Thinkpad T440p.

          1. 5

            Have you ever tried DEs? I know some people don’t consider it cool, in times like these I see that I need a boring environment, to do interesting stuff. And a functioning DE kind of like functioning water, electricity service and waste management. I’d like to not have to think about it too much.

            1. 5

              Tried KDE like a month ago, while it was pretty pleasant aesthetically it felt like “too much”, kitchen sink kinda thing, despite feeling snappy. It would require a lot of inital tweaking. On the other hand XFCE always felt half-assed even though I liked the lightness and overall design. I think decluttering KDE and making it behave like XFCE would be biggest win for me.

              But now the main reason why I like using tiling WM is space efficiency. On if I were to make jump to 1440p and 4k screens I would go for DE, as of right now on my 14” and 24” 1080p screens I feel like i3 does the job better.

              1. 4

                But now the main reason why I like using tiling WM is space efficiency.

                I’ve got a full-screened Emacs for a reason ;^)

              2. 3

                I haven’t tried it in Nix or Guix, but my current favourite environment is i3 for window management, with gnome-flashback handling all the desktop-environment things (volume keys, mounting USB drives, brightness, etc.)

                1. 1

                  And a functioning DE kind of like functioning water,

                  I use GNOME on NixOS and I don’t have any problems. Everything works just like it would on e.g. Fedora.

              3. 5

                It looks like all the complaints have to do with GUI and sound configuration?

                If so, does anyone have experience to share on using Guix or Nix for “server” / CLI stuff?

                One thing I’ve been meaning to try is to try out Oil’s dev dependencies in Guix or Nix – a bunch of shells and re2c, all of which have few dependencies themselves.

                If anyone’s interested in chatting about this, let me know :) I don’t have a totally pressing need right now, but I feel like it would make the lives of contributors easier if there was a single command that worked across distros to pull these dependencies.

                For example, I’m on Ubuntu but other contributors use Arch Linux. From what I understand Guix and Nix are both supposed to be able to work like that.

                As I mentioned on another thread, I think most distros should be split in half. The GUI and sound stuff seems to cause a lot of problems that aren’t present on the server. I guess Alpine Linux started on the server so it’s a little like this. I think they’ve had kernel-less container support for a long time.

                1. 6

                  It looks like all the complaints have to do with GUI and sound configuration?

                  Also, but that’s not quite my point. What I am experiencing is a lack of packaging quality, unexpected behavior and that kind of stuff.

                  1. 6

                    If you want to go the Nix route you can very easily use the upstream Nixpkgs derivations with a small override:

                    In your shell.nix put:

                    { pkgs ? import <nixpkgs> { } }:
                    pkgs.oil.overrideAttrs(old: {
                      patches = [];
                      src = pkgs.lib.cleanSource ./.;

                    Then from that directory simply invoke nix-shell.

                    This won’t help you all the way though since <nixpkgs> is impurely referencing a local nixpkgs copy. With just a few more lines we can pin nixpkgs project local:

                      pkgs = import (builtins.fetchTarball {
                        name = "nixos-unstable-2019-10-20";  # Descriptive name
                        url = https://github.com/nixos/nixpkgs-channels/archive/1c40ee6fc44f7eb474c69ea070a43247a1a2c83c.tar.gz;
                        sha256 = "0xvgx4zsz8jk125xriq7jfp59px8aa0c5idbk25ydh2ly7zmb2df";
                      }) {};
                    in pkgs.oil.overrideAttrs(old: {
                      patches = [];
                      src = pkgs.lib.cleanSource ./.;

                    This will ensure all contributors are working with the same set of dependencies.

                    Beware that I have not tested any of the above specifically for Oil, though it should be enough to get you started. Feel free to ask any questions here or drop me a line on IRC (adisbladis @ freenode).

                    1. 7

                      I decided to actually attempt a build in nix-shell and it seems to work with some more minor changes: https://github.com/oilshell/oil/pull/509

                      1. 3

                        Thanks for getting this started! Let’s chat over on Github.

                    2. 5

                      I’ve set up a server with Guix recently. It’s clearly not ready for that, standout issues being

                      • mcron (guile cron replacement) is not reliable (stops running jobs maybe once a week)
                      • system reconfiguration can’t be rolled back without a reboot

                      But there’s also a general impression that the system isn’t robust. There’s a lack of attention for operations things; most of the community seem more interested in desktop issues.