They have virtually no moderators (they all quit because they were burnt out and manipulated), filled with racist lmayo, and are associated deeply with anti-migrant violence and warmongering (Anduril) who hire people straight out of NixOS to build weapons to fund imperialism everywhere.

Go use Guix instead (they don’t rely on free GitHub credits or limitless AWS S3 buckets) and are objectively superior on a technical standpoint (no “experimental features” that everyone considers stable) and don’t give any shit about nonfree software unless you provide it, or only contribute to nixpkgs (collective infra) and outside projects like Lix/Snix.

Avoid the NixOS community at all costs if you value your emotional labor. Even the chuds have done this with things like Determinate Systems Nix (“Nix without the drama”) and making their own corpo shill platform called “flakehub”

Source: A former NixOS community member (me)


There is no liberalism anymore, only fascist cultural hegemony that will take over every space it can.

  • hello_hello [comrade/them]@hexbear.netOPM
    link
    fedilink
    English
    arrow-up
    14
    ·
    edit-2
    8 days ago

    Both Guix and Nix evaluate derivations which are a standardized format. Guix just doesn’t evaluate Nix derivations because it doesn’t implement a Nix DSL interpreter and it doesn’t use the same package repository (nixpkgs).

    There are a lot of benefits to using scheme and you don’t have to be an expert in Scheme to create packages (I wasn’t when I started out and anyone who claims to be an expert in either Nix or Scheme gets laughed out the room).

    comparison

    This is the hello world package in Guix

    (use-modules (guix packages)
                 (guix download)
                 (guix build-system gnu)
                 (guix licenses))
    
    (define-public hello
      (package
        (name "hello")
        (version "2.12.2")
        (source (origin
                  (method url-fetch)
                  (uri (string-append "mirror://gnu/hello/hello-" version
                                      ".tar.gz"))
                  (sha256
                   (base32
                    "1aqq1379syjckf0wdn9vs6wfbapnj9zfikhiykf29k4jq9nrk6js"))))
        (build-system gnu-build-system)
        (synopsis "Example GNU package")
        (description
         "GNU Hello prints the message \"Hello, world!\" and then exits.  It
    serves as an example of standard GNU coding practices.  As such, it supports
    command-line arguments, multiple languages, and so on.")
        (home-page "https://www.gnu.org/software/hello/")
        (license gpl3+)))
    
    

    This is the hello world package in Nix

    {
      callPackage,
      lib,
      stdenv,
      fetchurl,
      nixos,
      testers,
      versionCheckHook,
      hello,
    }:
    
    stdenv.mkDerivation (finalAttrs: {
      pname = "hello";
      version = "2.12.2";
    
      src = fetchurl {
        url = "mirror://gnu/hello/hello-$%7BfinalAttrs.version%7D.tar.gz";
        hash = "sha256-WpqZbcKSzCTc9BHO6H6S9qrluNE72caBm0x6nc4IGKs=";
      };
    
      # The GNU Hello `configure` script detects how to link libiconv but fails to actually make use of that.
      # Unfortunately, this cannot be a patch to `Makefile.am` because `autoreconfHook` causes a gettext
      # infrastructure mismatch error when trying to build `hello`.
      env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
        NIX_LDFLAGS = "-liconv";
      };
    
      doCheck = true;
    
      doInstallCheck = true;
      nativeInstallCheckInputs = [
        versionCheckHook
      ];
    
      # Give hello some install checks for testing purpose.
      postInstallCheck = ''
        stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
      '';
    
      passthru.tests = {
        version = testers.testVersion { package = hello; };
      };
    
      passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
    
      meta = {
        description = "Program that produces a familiar, friendly greeting";
        longDescription = ''
          GNU Hello is a program that prints "Hello, world!" when you run it.
          It is fully customizable.
        '';
        homepage = "https://www.gnu.org/software/hello/manual/";
        changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v%24%7BfinalAttrs.version%7D";
        license = lib.licenses.gpl3Plus;
        maintainers = with lib.maintainers; [ stv0g ];
        mainProgram = "hello";
        platforms = lib.platforms.all;
        identifiers.cpeParts.vendor = "gnu";
      };
    })
    

    A lot of the same skills and concepts transfer over, so if you’re comfortable with Nix you don’t have to lose all your skills and start over. I personally find the Guix package definition a lot more understandable than the Nix one.