initial import
This commit is contained in:
commit
b13b8ad888
5 changed files with 183 additions and 0 deletions
61
configuration/minixos.nix
Normal file
61
configuration/minixos.nix
Normal file
|
@ -0,0 +1,61 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
boot.loader.grub.enable = false; # fails to build
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
networking.useNetworkd = true; # dhcpcd crashes
|
||||
|
||||
environment.variables.LD_PRELOAD = "${pkgs.mimalloc}/lib/libmimalloc.so";
|
||||
|
||||
# normal setup stuff
|
||||
boot.initrd.systemd.enable = true;
|
||||
boot.initrd.systemd.emergencyAccess = true;
|
||||
|
||||
networking.nftables.enable = true;
|
||||
|
||||
services.getty.autologinUser = "musl";
|
||||
security.sudo.wheelNeedsPassword = false;
|
||||
users.users.musl = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ];
|
||||
};
|
||||
|
||||
documentation = {
|
||||
enable = lib.mkForce false;
|
||||
} // builtins.listToAttrs (map (x: {
|
||||
name = x;
|
||||
value = { enable = lib.mkForce false; };
|
||||
}) [ "man" "info" "nixos" "doc" "dev" ]);
|
||||
|
||||
environment.noXlibs = true;
|
||||
environment.systemPackages = lib.mkForce (with pkgs;
|
||||
[
|
||||
# strictly required
|
||||
coreutils
|
||||
nix
|
||||
systemd
|
||||
|
||||
# shell's required and not automatically pulled in
|
||||
bashInteractive
|
||||
|
||||
# avoid warnings
|
||||
gnugrep
|
||||
|
||||
# nice-to-haves
|
||||
procps
|
||||
openssh
|
||||
findutils
|
||||
iproute2
|
||||
util-linux
|
||||
usbutils
|
||||
neovim
|
||||
tmux
|
||||
]);
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
label = "NIXOS_ROOT";
|
||||
fsType = "xfs";
|
||||
};
|
||||
};
|
||||
}
|
27
flake.lock
Normal file
27
flake.lock
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1719918800,
|
||||
"narHash": "sha256-9UoMK9d1PiJZJrInbMONscA7QN8C6kZIX9FUyHp6UqQ=",
|
||||
"owner": "arachnist",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "02e10f7e99522cef9909f78312ffbbd2d96e59c3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "arachnist",
|
||||
"ref": "ar-patchset-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
38
flake.nix
Normal file
38
flake.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{
|
||||
description = "nixos musl experiments";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:arachnist/nixpkgs?ref=ar-patchset-unstable";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
lib = nixpkgs.lib;
|
||||
forAllSystems = f:
|
||||
lib.genAttrs lib.systems.flakeExposed (system: f system);
|
||||
in {
|
||||
overlay = import ./overlay.nix;
|
||||
|
||||
legacyPackages = forAllSystems (system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [ self.overlay ];
|
||||
};
|
||||
in pkgs.pkgsMusl);
|
||||
|
||||
nixosConfigurations.minixos = lib.nixosSystem {
|
||||
modules = [
|
||||
./nixos-fixes.nix
|
||||
./configuration/minixos.nix
|
||||
{
|
||||
nixpkgs.hostPlatform = {
|
||||
system = "x86_64-linux";
|
||||
config = "x86_64-unknown-linux-musl";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
42
nixos-fixes.nix
Normal file
42
nixos-fixes.nix
Normal file
|
@ -0,0 +1,42 @@
|
|||
{ config, pkgs, lib, modulesPath, ... }:
|
||||
|
||||
{
|
||||
disabledModules = [
|
||||
# tries to instantiate 32-bit pkgs
|
||||
(modulesPath + "/config/ldso.nix")
|
||||
(modulesPath + "/programs/nix-ld.nix")
|
||||
(modulesPath + "/config/stub-ld.nix")
|
||||
];
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf config.nixpkgs.buildPlatform.isMusl {
|
||||
nixpkgs.overlays = [ (import ./overlay.nix) ];
|
||||
})
|
||||
(lib.mkIf config.nixpkgs.hostPlatform.isMusl {
|
||||
|
||||
programs.steam.enable = lib.mkForce false;
|
||||
services.pipewire.alsa.support32Bit = lib.mkForce false;
|
||||
programs.mosh.withUtempter = lib.mkForce false;
|
||||
programs.tmux.withUtempter = lib.mkForce false;
|
||||
|
||||
networking.nftables.checkRuleset = false; # lkl is broken :/
|
||||
|
||||
services.nscd.enable = false;
|
||||
system.nssModules = lib.mkForce [ ];
|
||||
|
||||
i18n.glibcLocales = pkgs.callPackage
|
||||
(pkgs.path + "/pkgs/development/libraries/glibc/locales.nix") {
|
||||
allLocales = false;
|
||||
};
|
||||
|
||||
security.pam.services.login.updateWtmp =
|
||||
lib.mkForce false; # fixes pam errors
|
||||
|
||||
# service fails to start otherwise "Function not implemented"
|
||||
systemd.services.nix-daemon.serviceConfig = {
|
||||
CPUSchedulingPolicy = lib.mkForce null;
|
||||
IOSchedulingClass = lib.mkForce null;
|
||||
IOSchedulingPriority = lib.mkForce null;
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
15
overlay.nix
Normal file
15
overlay.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
final: prev: {
|
||||
python3 = prev.python3.override {
|
||||
packageOverrides = python-final: python-prev: {
|
||||
twisted = python-prev.twisted.overrideAttrs
|
||||
(oldAttrs: { doInstallCheck = false; });
|
||||
pandas = python-prev.pandas.overrideAttrs (oldAttrs: {
|
||||
disabledTests = [
|
||||
"test_can_set_locale_invalid_set"
|
||||
"test_parsing_tzlocal_deprecated"
|
||||
];
|
||||
});
|
||||
};
|
||||
};
|
||||
python3Packages = final.python3.pkgs;
|
||||
}
|
Loading…
Reference in a new issue