diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 280d0b47d574..3a23766a17f5 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -13,13 +13,44 @@ set -o errexit -o noclobber -o nounset -o pipefail shopt -s failglob inherit_errexit # https://stackoverflow.com/a/246128/6605742 -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" cd "$DIR"/modules pass=0 fail=0 +# loc +# prints the location of the call of to the function that calls it +# loc n +# prints the location n levels up the call stack +loc() { + local caller depth + depth=1 + if [[ $# -gt 0 ]]; then + depth=$1 + fi + # ( lineno fnname file ) of the caller + caller=( $(caller $depth) ) + echo "${caller[2]}:${caller[0]}" +} + +line() { + echo "----------------------------------------" +} +logStartFailure() { + line +} +logEndFailure() { + line + echo +} + +logFailure() { + # bold red + printf '\033[1;31mTEST FAILED\033[0m at %s\n' "$(loc 2)" +} + evalConfig() { local attr=$1 shift @@ -31,7 +62,7 @@ reportFailure() { local attr=$1 shift local script="import ./default.nix { modules = [ $* ];}" - echo 2>&1 "$ nix-instantiate -E '$script' -A '$attr' --eval-only --json" + echo "$ nix-instantiate -E '$script' -A '$attr' --eval-only --json" evalConfig "$attr" "$@" || true ((++fail)) } @@ -42,8 +73,12 @@ checkConfigOutput() { if evalConfig "$@" 2>/dev/null | grep -E --silent "$outputContains" ; then ((++pass)) else - echo 2>&1 "error: Expected result matching '$outputContains', while evaluating" + logStartFailure + echo "ACTUAL:" reportFailure "$@" + echo "EXPECTED: result matching '$outputContains'" + logFailure + logEndFailure fi } @@ -52,14 +87,22 @@ checkConfigError() { local err="" shift if err="$(evalConfig "$@" 2>&1 >/dev/null)"; then - echo 2>&1 "error: Expected error code, got exit code 0, while evaluating" + logStartFailure + echo "ACTUAL: exit code 0, output:" reportFailure "$@" + echo "EXPECTED: non-zero exit code" + logFailure + logEndFailure else if echo "$err" | grep -zP --silent "$errorContains" ; then ((++pass)) else - echo 2>&1 "error: Expected error matching '$errorContains', while evaluating" + logStartFailure + echo "ACTUAL:" reportFailure "$@" + echo "EXPECTED: error matching '$errorContains'" + logFailure + logEndFailure fi fi } diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 57214a7c1232..289dc3e6f775 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -20491,6 +20491,12 @@ name = "Thiago K. Okada"; matrix = "@k0kada:matrix.org"; }; + thibaultd = { + email = "t@lichess.org"; + github = "ornicar"; + githubId = 140370; + name = "Thibault D"; + }; thibaultlemaire = { email = "thibault.lemaire@protonmail.com"; github = "ThibaultLemaire"; diff --git a/nixos/modules/services/backup/borgmatic.nix b/nixos/modules/services/backup/borgmatic.nix index 12db54cbdb37..4d744a735582 100644 --- a/nixos/modules/services/backup/borgmatic.nix +++ b/nixos/modules/services/backup/borgmatic.nix @@ -76,29 +76,42 @@ in default = { }; type = types.attrsOf cfgType; }; + + enableConfigCheck = mkEnableOption "checking all configurations during build time" // { default = true; }; }; - config = mkIf cfg.enable { + config = + let + configFiles = + (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) // + mapAttrs' + (name: value: nameValuePair + "borgmatic.d/${name}.yaml" + { source = settingsFormat.generate "${name}.yaml" value; }) + cfg.configurations; + borgmaticCheck = name: f: pkgs.runCommandCC "${name} validation" { } '' + ${pkgs.borgmatic}/bin/borgmatic -c ${f.source} config validate + touch $out + ''; + in + mkIf cfg.enable { - warnings = [] - ++ optional (cfg.settings != null && cfg.settings ? location) - "`services.borgmatic.settings.location` is deprecated, please move your options out of sections to the global scope" - ++ optional (catAttrs "location" (attrValues cfg.configurations) != []) - "`services.borgmatic.configurations..location` is deprecated, please move your options out of sections to the global scope" - ; + warnings = [] + ++ optional (cfg.settings != null && cfg.settings ? location) + "`services.borgmatic.settings.location` is deprecated, please move your options out of sections to the global scope" + ++ optional (catAttrs "location" (attrValues cfg.configurations) != []) + "`services.borgmatic.configurations..location` is deprecated, please move your options out of sections to the global scope" + ; - environment.systemPackages = [ pkgs.borgmatic ]; + environment.systemPackages = [ pkgs.borgmatic ]; - environment.etc = (optionalAttrs (cfg.settings != null) { "borgmatic/config.yaml".source = cfgfile; }) // - mapAttrs' - (name: value: nameValuePair - "borgmatic.d/${name}.yaml" - { source = settingsFormat.generate "${name}.yaml" value; }) - cfg.configurations; + environment.etc = configFiles; - systemd.packages = [ pkgs.borgmatic ]; + systemd.packages = [ pkgs.borgmatic ]; - # Workaround: https://github.com/NixOS/nixpkgs/issues/81138 - systemd.timers.borgmatic.wantedBy = [ "timers.target" ]; - }; + # Workaround: https://github.com/NixOS/nixpkgs/issues/81138 + systemd.timers.borgmatic.wantedBy = [ "timers.target" ]; + + system.checks = mkIf cfg.enableConfigCheck (mapAttrsToList borgmaticCheck configFiles); + }; } diff --git a/nixos/modules/services/mail/mailman.nix b/nixos/modules/services/mail/mailman.nix index 8ab3e7c60aa6..b55a7422702f 100644 --- a/nixos/modules/services/mail/mailman.nix +++ b/nixos/modules/services/mail/mailman.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: # mailman.nix +{ config, pkgs, lib, ... }: with lib; @@ -367,7 +367,7 @@ in { for more info. ''; } - (requirePostfixHash [ "relayDomains" ] "postfix_domains") + (requirePostfixHash [ "config" "relay_domains" ] "postfix_domains") (requirePostfixHash [ "config" "transport_maps" ] "postfix_lmtp") (requirePostfixHash [ "config" "local_recipient_maps" ] "postfix_lmtp") ]); diff --git a/nixos/modules/virtualisation/proxmox-lxc.nix b/nixos/modules/virtualisation/proxmox-lxc.nix index 9a8325f92636..b2f9d0635fd1 100644 --- a/nixos/modules/virtualisation/proxmox-lxc.nix +++ b/nixos/modules/virtualisation/proxmox-lxc.nix @@ -12,7 +12,7 @@ with lib; enable = mkOption { default = true; type = types.bool; - description = lib.mdDoc "Whether to enable the Proxmox VE LXC module."; + description = "Whether to enable the Proxmox VE LXC module."; }; privileged = mkOption { type = types.bool; diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix index 2cba04f9d395..a4f00be887be 100644 --- a/nixos/tests/acme.nix +++ b/nixos/tests/acme.nix @@ -124,7 +124,7 @@ }; # Test that server reloads when an alias is removed (and subsequently test removal works in acme) - "${server}-remove-alias".configuration = { nodes, config, ... }: baseConfig { + "${server}_remove_alias".configuration = { nodes, config, ... }: baseConfig { inherit nodes config; specialConfig = { # Remove an alias, but create a standalone vhost in its place for testing. @@ -140,7 +140,7 @@ }; # Test that the server reloads when only the acme configuration is changed. - "${server}-change-acme-conf".configuration = { nodes, config, ... }: baseConfig { + "${server}_change_acme_conf".configuration = { nodes, config, ... }: baseConfig { inherit nodes config; specialConfig = { security.acme.certs."${server}-http.example.test" = { @@ -251,7 +251,7 @@ in { ]; # Test OCSP Stapling - ocsp-stapling.configuration = { ... }: lib.mkMerge [ + ocsp_stapling.configuration = { ... }: lib.mkMerge [ webserverBasicConfig { security.acme.certs."a.example.test".ocspMustStaple = true; @@ -266,7 +266,7 @@ in { # Validate service relationships by adding a slow start service to nginx' wants. # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842 - slow-startup.configuration = { ... }: lib.mkMerge [ + slow_startup.configuration = { ... }: lib.mkMerge [ webserverBasicConfig { systemd.services.my-slow-service = { @@ -284,7 +284,7 @@ in { } ]; - concurrency-limit.configuration = {pkgs, ...}: lib.mkMerge [ + concurrency_limit.configuration = {pkgs, ...}: lib.mkMerge [ webserverBasicConfig { security.acme.maxConcurrentRenewals = 1; @@ -317,7 +317,7 @@ in { # Test lego internal server (listenHTTP option) # Also tests useRoot option - lego-server.configuration = { ... }: { + lego_server.configuration = { ... }: { security.acme.useRoot = true; security.acme.certs."lego.example.test" = { listenHTTP = ":80"; @@ -358,7 +358,7 @@ in { caddy.configuration = baseCaddyConfig; # Test that the server reloads when only the acme configuration is changed. - "caddy-change-acme-conf".configuration = { nodes, config, ... }: lib.mkMerge [ + "caddy_change_acme_conf".configuration = { nodes, config, ... }: lib.mkMerge [ (baseCaddyConfig { inherit nodes config; }) @@ -629,12 +629,12 @@ in { webserver.succeed("systemctl start nginx-config-reload.service") with subtest("Correctly implements OCSP stapling"): - switch_to(webserver, "ocsp-stapling") + switch_to(webserver, "ocsp_stapling") webserver.wait_for_unit("acme-finished-a.example.test.target") check_stapling(client, "a.example.test") with subtest("Can request certificate with HTTP-01 using lego's internal web server"): - switch_to(webserver, "lego-server") + switch_to(webserver, "lego_server") webserver.wait_for_unit("acme-finished-lego.example.test.target") webserver.wait_for_unit("nginx.service") webserver.succeed("echo HENLO && systemctl cat nginx.service") @@ -644,14 +644,14 @@ in { with subtest("Can request certificate with HTTP-01 when nginx startup is delayed"): webserver.execute("systemctl stop nginx") - switch_to(webserver, "slow-startup") + switch_to(webserver, "slow_startup") webserver.wait_for_unit("acme-finished-slow.example.test.target") check_issuer(webserver, "slow.example.test", "pebble") webserver.wait_for_unit("nginx.service") check_connection(client, "slow.example.test") with subtest("Can limit concurrency of running renewals"): - switch_to(webserver, "concurrency-limit") + switch_to(webserver, "concurrency_limit") webserver.wait_for_unit("acme-finished-f.example.test.target") webserver.wait_for_unit("acme-finished-g.example.test.target") webserver.wait_for_unit("acme-finished-h.example.test.target") @@ -669,7 +669,7 @@ in { check_connection(client, "a.example.test") with subtest("security.acme changes reflect on caddy"): - switch_to(webserver, "caddy-change-acme-conf") + switch_to(webserver, "caddy_change_acme_conf") webserver.wait_for_unit("acme-finished-example.test.target") webserver.wait_for_unit("caddy.service") # FIXME reloading caddy is not sufficient to load new certs. @@ -721,7 +721,7 @@ in { with subtest("Can remove an alias from a domain + cert is updated"): test_alias = f"{server}-{domains[0]}-alias.example.test" - switch_to(webserver, f"{server}-remove-alias") + switch_to(webserver, f"{server}_remove_alias") webserver.wait_for_unit(f"acme-finished-{test_domain}.target") wait_for_server() check_connection(client, test_domain) @@ -736,7 +736,7 @@ in { # Switch back to normal server config first, reset everything. switch_to(webserver, server) wait_for_server() - switch_to(webserver, f"{server}-change-acme-conf") + switch_to(webserver, f"{server}_change_acme_conf") webserver.wait_for_unit(f"acme-finished-{test_domain}.target") wait_for_server() check_connection_key_bits(client, test_domain, "384") diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index ffc3408d1652..34ab2afcfcd4 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -160,6 +160,7 @@ in { bootspec = handleTestOn ["x86_64-linux"] ./bootspec.nix {}; boot-stage1 = handleTest ./boot-stage1.nix {}; borgbackup = handleTest ./borgbackup.nix {}; + borgmatic = handleTest ./borgmatic.nix {}; botamusique = handleTest ./botamusique.nix {}; bpf = handleTestOn ["x86_64-linux" "aarch64-linux"] ./bpf.nix {}; bpftune = handleTest ./bpftune.nix {}; diff --git a/nixos/tests/borgmatic.nix b/nixos/tests/borgmatic.nix new file mode 100644 index 000000000000..70ad43e8bd35 --- /dev/null +++ b/nixos/tests/borgmatic.nix @@ -0,0 +1,24 @@ +import ./make-test-python.nix ({ pkgs, ... }: +{ + name = "borgmatic"; + nodes.machine = { ... }: { + services.borgmatic = { + enable = true; + settings = { + source_directories = [ "/home" ]; + repositories = [ + { + label = "local"; + path = "/var/backup"; + } + ]; + keep_daily = 7; + }; + }; + }; + + testScript = '' + machine.succeed("borgmatic rcreate -e none") + machine.succeed("borgmatic") + ''; +}) diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix index 65bbd6516328..ad89c80fc8e4 100644 --- a/pkgs/applications/editors/sublime/3/common.nix +++ b/pkgs/applications/editors/sublime/3/common.nix @@ -27,7 +27,7 @@ let libPath = lib.makeLibraryPath [ xorg.libX11 glib gtk3 cairo pango ]; redirects = [ "/usr/bin/pkexec=${pkexecPath}" ]; -in let + binaryPackage = stdenv.mkDerivation { pname = "${pname}-bin"; version = buildVersion; diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix index 952194e0260c..730f9c10b8f5 100644 --- a/pkgs/applications/editors/sublime/4/common.nix +++ b/pkgs/applications/editors/sublime/4/common.nix @@ -61,8 +61,7 @@ let ] ++ lib.optionals (lib.versionAtLeast buildVersion "4145") [ sqlite ]; -in -let + binaryPackage = stdenv.mkDerivation rec { pname = "${pnameBase}-bin"; version = buildVersion; diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix index bf2fb1fb02f7..0cca3d97538f 100644 --- a/pkgs/applications/editors/vim/macvim.nix +++ b/pkgs/applications/editors/vim/macvim.nix @@ -21,9 +21,7 @@ let perl = perl536; # Ruby 3.2 ruby = ruby_3_2; -in -let # Building requires a few system tools to be in PATH. # Some of these we could patch into the relevant source files (such as xcodebuild and # qlmanage) but some are used by Xcode itself and we have no choice but to put them in PATH. diff --git a/pkgs/applications/networking/cluster/kubeone/default.nix b/pkgs/applications/networking/cluster/kubeone/default.nix index e9f39806e939..62bcad9f2510 100644 --- a/pkgs/applications/networking/cluster/kubeone/default.nix +++ b/pkgs/applications/networking/cluster/kubeone/default.nix @@ -8,16 +8,16 @@ buildGoModule rec { pname = "kubeone"; - version = "1.8.1"; + version = "1.8.2"; src = fetchFromGitHub { owner = "kubermatic"; repo = "kubeone"; rev = "v${version}"; - hash = "sha256-P/x6HigXnAhpUnycm9B8TO33hdPzREiM8kwL+/GedZY="; + hash = "sha256-H+EzSsXCjURMBJW9+1EWXsfO4faUXcTcYckK/QJYEFk="; }; - vendorHash = "sha256-tAThtZJ5DRzveJRG58VPxJWrZjB+dnXhX/50lZEHUGc="; + vendorHash = "sha256-z1BBE+PH2s7VxWNxneu5y2ZerfzCZNPJowZJVq821Kk="; ldflags = [ "-s" diff --git a/pkgs/applications/networking/dropbox/default.nix b/pkgs/applications/networking/dropbox/default.nix index fd48bc86a9b8..e785bdccd2bc 100644 --- a/pkgs/applications/networking/dropbox/default.nix +++ b/pkgs/applications/networking/dropbox/default.nix @@ -15,9 +15,7 @@ let }.${stdenv.hostPlatform.system}; installer = "https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.${arch}-${version}.tar.gz"; -in -let desktopItem = makeDesktopItem { name = "dropbox"; exec = "dropbox"; diff --git a/pkgs/applications/science/logic/hol/default.nix b/pkgs/applications/science/logic/hol/default.nix index de47df098da1..f23dce326dd5 100644 --- a/pkgs/applications/science/logic/hol/default.nix +++ b/pkgs/applications/science/logic/hol/default.nix @@ -4,16 +4,12 @@ let pname = "hol4"; vnum = "14"; -in -let version = "k.${vnum}"; longVersion = "kananaskis-${vnum}"; holsubdir = "hol-${longVersion}"; kernelFlag = if experimentalKernel then "--expk" else "--stdknl"; -in -let polymlEnableShared = with pkgs; lib.overrideDerivation polyml (attrs: { configureFlags = [ "--enable-shared" ]; }); diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix index 43a14907633c..a978ff16357d 100644 --- a/pkgs/applications/version-management/sublime-merge/common.nix +++ b/pkgs/applications/version-management/sublime-merge/common.nix @@ -60,8 +60,7 @@ let "/usr/bin/pkexec=${pkexecPath}" "/bin/true=${coreutils}/bin/true" ]; -in -let + binaryPackage = stdenv.mkDerivation rec { pname = "${pnameBase}-bin"; version = buildVersion; diff --git a/pkgs/applications/video/handbrake/default.nix b/pkgs/applications/video/handbrake/default.nix index 4a45138aa555..610f5af8046e 100644 --- a/pkgs/applications/video/handbrake/default.nix +++ b/pkgs/applications/video/handbrake/default.nix @@ -167,8 +167,7 @@ let inherit (lib) optional optionals optionalString versions; -in -let + self = stdenv.mkDerivation rec { pname = "handbrake"; inherit version src; diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix index bd4422cb33fb..8ae17d72877f 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hy3.nix @@ -7,13 +7,13 @@ }: mkHyprlandPlugin hyprland rec { pluginName = "hy3"; - version = "0.41.2"; + version = "0.42.0"; src = fetchFromGitHub { owner = "outfoxxed"; repo = "hy3"; rev = "refs/tags/hl${version}"; - hash = "sha256-aZuNKBwTwj8EXkDBMWNdRKbHPx647wJLWm55h6jOKbo="; + hash = "sha256-gyhpW3Mv9RgWsB8jAMoA7yoMSb01ol0jyPFNsghaZ0w="; }; nativeBuildInputs = [ cmake ]; @@ -24,7 +24,7 @@ mkHyprlandPlugin hyprland rec { homepage = "https://github.com/outfoxxed/hy3"; description = "Hyprland plugin for an i3 / sway like manual tiling layout"; license = lib.licenses.gpl3; - platforms = lib.platforms.linux; + inherit (hyprland.meta) platforms; maintainers = with lib.maintainers; [ aacebedo johnrtitor diff --git a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix index b3bd59f7b525..e81537db800d 100644 --- a/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix +++ b/pkgs/applications/window-managers/hyprwm/hyprland-plugins/hyprland-plugins.nix @@ -14,13 +14,13 @@ let mkHyprlandPlugin, }: let - version = "0.41.2"; + version = "0.42.0"; hyprland-plugins-src = fetchFromGitHub { owner = "hyprwm"; repo = "hyprland-plugins"; rev = "refs/tags/v${version}"; - hash = "sha256-TnlAcO5K2gkab0mpKurP5Co6eWRycP/KbFqWNS2rsMA="; + hash = "sha256-aPzAbDgAyxJlUjyaFPDhjcL7WnyDP5uDZKOqlQRD8eM="; }; in mkHyprlandPlugin hyprland { @@ -37,7 +37,7 @@ let fufexan johnrtitor ]; - platforms = lib.platforms.linux; + inherit (hyprland.meta) platforms; }; } ) diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix index 7fe0762090c5..6e97d0cf00fa 100644 --- a/pkgs/build-support/bintools-wrapper/default.nix +++ b/pkgs/build-support/bintools-wrapper/default.nix @@ -127,6 +127,8 @@ let else if (with targetPlatform; isAarch32 && isLinux) then "${sharedLibraryLoader}/lib/ld-linux*.so.3" else if targetPlatform.system == "aarch64-linux" then "${sharedLibraryLoader}/lib/ld-linux-aarch64.so.1" else if targetPlatform.system == "powerpc-linux" then "${sharedLibraryLoader}/lib/ld.so.1" + else if targetPlatform.system == "s390-linux" then "${sharedLibraryLoader}/lib/ld.so.1" + else if targetPlatform.system == "s390x-linux" then "${sharedLibraryLoader}/lib/ld64.so.1" else if targetPlatform.isMips then "${sharedLibraryLoader}/lib/ld.so.1" # `ld-linux-riscv{32,64}-.so.1` else if targetPlatform.isRiscV then "${sharedLibraryLoader}/lib/ld-linux-riscv*.so.1" diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix index 2d226056c761..00dcd3b1a82d 100644 --- a/pkgs/build-support/writers/scripts.nix +++ b/pkgs/build-support/writers/scripts.nix @@ -22,17 +22,17 @@ let in rec { /** - A generic function that returns a derivation which, when beeing built outputs the script in an executable format. + `makeScriptWriter` returns a derivation which creates an executable script. # Inputs config (AttrSet) : `interpreter` (String) - : the interpreter to use for the script + : the [interpreter](https://en.wikipedia.org/wiki/Shebang_(Unix)) to use for the script. : `check` (String) - : A command to check the script. I.e. some linting check. + : A command to check the script. For example, this could be a linting check. : `makeWrapperArgs` (Optional, [ String ], Default: []) - : Arguments forwarded to (`makeWrapper`)[#fun-makeWrapper] + : Arguments forwarded to (`makeWrapper`)[#fun-makeWrapper]. `nameOrPath` (String) : The name of the script or the path to the script. @@ -40,8 +40,8 @@ rec { When a `string` starting with "/" is passed, the script will be created at the specified path in $out. I.e. `"/bin/hello"` will create a script at `$out/bin/hello`. - Any other `string` is interpreted as filename. - It must be a simple unix filename starting with a letter, digit, dot, or underscore. + Any other `string` is interpreted as a filename. + It must be a [POSIX filename](https://en.wikipedia.org/wiki/Filename) starting with a letter, digit, dot, or underscore. Spaces or special characters are not allowed. `content` (String) @@ -51,6 +51,7 @@ rec { This function is used as base implementation for other high-level writer functions. For example, `writeBash` can (roughly) be implemented as: + ```nix writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; } ``` @@ -103,7 +104,8 @@ rec { name = last (builtins.split "/" nameOrPath); path = if nameIsPath then nameOrPath else "/bin/${name}"; # The inner derivation which creates the executable under $out/bin (never at $out directly) - # This is required in order to support wrapping, as wrapped programs consist of at least two files: the executable and the wrapper. + # This is required in order to support wrapping, as wrapped programs consist of + # at least two files: the executable and the wrapper. inner = pkgs.runCommandLocal name ( @@ -178,11 +180,10 @@ rec { ''; /** - This is a generic function that returns a derivation which, when built, compiles the given script into an executable format. + `makeBinWriter` returns a derivation which compiles the given script into an executable format. :::{.note} - This function is the base implementation for other compile language `writers`. - i.e. `writeHaskell`, `writeRust`. + This function is the base implementation for other compile language `writers`, such as `writeHaskell` and `writeRust`. ::: # Inputs @@ -192,7 +193,7 @@ rec { : The script that compiles the given content into an executable. : `strip` (Boolean, Default: true) - : Whether to strip the executable or not. + : Whether to [strip](https://nixos.org/manual/nixpkgs/stable/#ssec-fixup-phase) the executable or not. : `makeWrapperArgs` (Optional, [ String ], Default: []) : Arguments forwarded to (`makeWrapper`)[#fun-makeWrapper] @@ -201,10 +202,10 @@ rec { : The name of the script or the path to the script. When a `string` starting with "/" is passed, the script will be created at the specified path in $out. - I.e. `"/bin/hello"` will create a script at `$out/bin/hello`. + For example, `"/bin/hello"` will create a script at `$out/bin/hello`. - Any other `string` is interpreted as filename. - It must be a simple unix filename starting with a letter, digit, dot, or underscore. + Any other `string` is interpreted as a filename. + It must be a [POSIX filename](https://en.wikipedia.org/wiki/Filename) starting with a letter, digit, dot, or underscore. Spaces or special characters are not allowed. # Examples diff --git a/pkgs/by-name/aq/aquamarine/package.nix b/pkgs/by-name/aq/aquamarine/package.nix index b67af680d0ff..da7bb52a9dd6 100644 --- a/pkgs/by-name/aq/aquamarine/package.nix +++ b/pkgs/by-name/aq/aquamarine/package.nix @@ -22,13 +22,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "aquamarine"; - version = "0.2.0"; + version = "0.3.1"; src = fetchFromGitHub { owner = "hyprwm"; repo = "aquamarine"; rev = "v${finalAttrs.version}"; - hash = "sha256-UKdFUKA/h6SeiXpQ06BSZkBJKDwFOFaGI3NtiuaDOhg="; + hash = "sha256-1RYuBS/CQhtyIeXrLDvGWJhuVG1kiQMG+aYaBkoGnEU="; }; nativeBuildInputs = [ @@ -62,9 +62,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeBuildType = "RelWithDebInfo"; - passthru = { - updateScript = nix-update-script { }; - }; + passthru.updateScript = nix-update-script { }; meta = { changelog = "https://github.com/hyprwm/aquamarine/releases/tag/${finalAttrs.version}"; @@ -75,6 +73,6 @@ stdenv.mkDerivation (finalAttrs: { fufexan johnrtitor ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.freebsd; }; }) diff --git a/pkgs/by-name/ci/cinnamon-common/package.nix b/pkgs/by-name/ci/cinnamon-common/package.nix index 377d9e8d1ff6..076e7ca3f7c1 100644 --- a/pkgs/by-name/ci/cinnamon-common/package.nix +++ b/pkgs/by-name/ci/cinnamon-common/package.nix @@ -71,13 +71,13 @@ let in stdenv.mkDerivation rec { pname = "cinnamon-common"; - version = "6.2.8"; + version = "6.2.9"; src = fetchFromGitHub { owner = "linuxmint"; repo = "cinnamon"; rev = version; - hash = "sha256-d1r+ouomcmiqTMHL/iHNL1kUJZvy35e2Qpv5j3bHDAA="; + hash = "sha256-CW87zZogjdTOCp6mx5ctV6T9YQVQGo3yw0lPTkiCNkE="; }; patches = [ diff --git a/pkgs/by-name/ff/fflogs/package.nix b/pkgs/by-name/ff/fflogs/package.nix index ebc5bdbb3c37..50526b45a1cb 100644 --- a/pkgs/by-name/ff/fflogs/package.nix +++ b/pkgs/by-name/ff/fflogs/package.nix @@ -5,10 +5,10 @@ let pname = "fflogs"; - version = "8.12.0"; + version = "8.12.19"; src = fetchurl { url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage"; - hash = "sha256-2hpCcA/RN7fpNhaqMAyVC4d1fTRhp+lwYf/Wc0FjXxI="; + hash = "sha256-/TGmUHMNowQFIw09OGw1ybiYE7ADPLbsZpAMPw3G5NE="; }; extracted = appimageTools.extractType2 { inherit pname version src; }; in diff --git a/pkgs/by-name/hy/hyprland/info.json b/pkgs/by-name/hy/hyprland/info.json index f4a78b0e8bf0..1b81e8684842 100644 --- a/pkgs/by-name/hy/hyprland/info.json +++ b/pkgs/by-name/hy/hyprland/info.json @@ -1,7 +1,7 @@ { "branch": "main", - "commit_hash": "918d8340afd652b011b937d29d5eea0be08467f5", - "commit_message": "flake.lock: update", - "date": "2024-06-25", - "tag": "v0.41.2" + "commit_hash": "9a09eac79b85c846e3a865a9078a3f8ff65a9259", + "commit_message": "props: bump version to 0.42.0", + "date": "2024-08-07", + "tag": "v0.42.0" } diff --git a/pkgs/by-name/hy/hyprland/package.nix b/pkgs/by-name/hy/hyprland/package.nix index 2f3d5f7e6327..e098f80cce7a 100644 --- a/pkgs/by-name/hy/hyprland/package.nix +++ b/pkgs/by-name/hy/hyprland/package.nix @@ -1,77 +1,78 @@ -{ lib -, stdenv -, fetchFromGitHub -, pkg-config -, makeWrapper -, meson -, cmake -, ninja -, binutils -, cairo -, epoll-shim -, expat -, fribidi -, git -, hyprcursor -, hyprland-protocols -, hyprlang -, hyprutils -, hyprwayland-scanner -, jq -, libGL -, libdrm -, libdatrie -, libexecinfo -, libinput -, libselinux -, libsepol -, libthai -, libuuid -, libxkbcommon -, mesa -, pango -, pciutils -, pcre2 -, pkgconf -, python3 -, systemd -, tomlplusplus -, wayland -, wayland-protocols -, wayland-scanner -, xwayland -, hwdata -, seatd -, libdisplay-info -, libliftoff -, xorg -, debug ? false -, enableXWayland ? true -, legacyRenderer ? false -, withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd -, wrapRuntimeDeps ? true +{ + lib, + stdenv, + fetchFromGitHub, + pkg-config, + makeWrapper, + cmake, + ninja, + aquamarine, + binutils, + cairo, + epoll-shim, + expat, + fribidi, + git, + hwdata, + hyprcursor, + hyprlang, + hyprutils, + hyprwayland-scanner, + jq, + libGL, + libdatrie, + libdisplay-info, + libdrm, + libexecinfo, + libinput, + libliftoff, + libselinux, + libsepol, + libthai, + libuuid, + libxkbcommon, + mesa, + pango, + pciutils, + pcre2, + pkgconf, + python3, + seatd, + systemd, + tomlplusplus, + wayland, + wayland-protocols, + wayland-scanner, + xorg, + xwayland, + debug ? false, + enableXWayland ? true, + legacyRenderer ? false, + withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd, + wrapRuntimeDeps ? true, # deprecated flags -, nvidiaPatches ? false -, hidpiXWayland ? false -, enableNvidiaPatches ? false + nvidiaPatches ? false, + hidpiXWayland ? false, + enableNvidiaPatches ? false, }: let info = builtins.fromJSON (builtins.readFile ./info.json); in assert lib.assertMsg (!nvidiaPatches) "The option `nvidiaPatches` has been removed."; assert lib.assertMsg (!enableNvidiaPatches) "The option `enableNvidiaPatches` has been removed."; -assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland"; +assert lib.assertMsg (!hidpiXWayland) + "The option `hidpiXWayland` has been removed. Please refer https://wiki.hyprland.org/Configuring/XWayland"; stdenv.mkDerivation (finalAttrs: { pname = "hyprland" + lib.optionalString debug "-debug"; - version = "0.41.2"; + version = "0.42.0"; src = fetchFromGitHub { owner = "hyprwm"; repo = "hyprland"; fetchSubmodules = true; rev = "refs/tags/v${finalAttrs.version}"; - hash = "sha256-JmfnYz+9a4TjNl3mAus1VpoWtTI9d1xkW9MHbkcV0Po="; + hash = "sha256-deu8zvgseDg2gQEnZiCda4TrbA6pleE9iItoZlsoMtE="; }; postPatch = '' @@ -97,16 +98,14 @@ stdenv.mkDerivation (finalAttrs: { ]; nativeBuildInputs = [ - hwdata hyprwayland-scanner jq makeWrapper cmake - meson # for wlroots ninja pkg-config - wayland-scanner python3 # for udis86 + wayland-scanner ]; outputs = [ @@ -115,54 +114,54 @@ stdenv.mkDerivation (finalAttrs: { "dev" ]; - buildInputs = [ - cairo - expat - fribidi - git - hyprcursor.dev - hyprland-protocols - hyprlang - hyprutils - libGL - libdatrie - libdrm - libinput - libselinux - libsepol - libthai - libuuid - libxkbcommon - mesa - wayland - wayland-protocols - pango - pciutils - pcre2 - tomlplusplus - # for subproject wlroots-hyprland - seatd - libliftoff - libdisplay-info - xorg.xcbutilerrors - xorg.xcbutilrenderutil - ] - ++ lib.optionals stdenv.hostPlatform.isBSD [ epoll-shim ] - ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ] - ++ lib.optionals enableXWayland [ - xorg.libxcb - xorg.libXdmcp - xorg.xcbutil - xorg.xcbutilwm - xwayland - ] - ++ lib.optionals withSystemd [ systemd ]; + buildInputs = + [ + aquamarine + cairo + expat + fribidi + git + hwdata + hyprcursor.dev + hyprlang + hyprutils + libGL + libdatrie + libdisplay-info + libdrm + libinput + libliftoff + libselinux + libsepol + libthai + libuuid + libxkbcommon + mesa + pango + pciutils + pcre2 + seatd + tomlplusplus + wayland + wayland-protocols + ] + ++ lib.optionals stdenv.hostPlatform.isBSD [ epoll-shim ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ libexecinfo ] + ++ lib.optionals enableXWayland [ + xorg.libxcb + xorg.libXcursor + xorg.libXdmcp + xorg.xcbutil + xorg.xcbutilerrors + xorg.xcbutilrenderutil + xorg.xcbutilwm + xwayland + ] + ++ lib.optionals withSystemd [ systemd ]; - cmakeBuildType = - if debug - then "Debug" - else "RelWithDebInfo"; + cmakeBuildType = if debug then "Debug" else "RelWithDebInfo"; + dontStrip = debug; cmakeFlags = [ (lib.cmakeBool "NO_XWAYLAND" (!enableXWayland)) @@ -173,7 +172,13 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' ${lib.optionalString wrapRuntimeDeps '' wrapProgram $out/bin/Hyprland \ - --suffix PATH : ${lib.makeBinPath [binutils pciutils pkgconf]} + --suffix PATH : ${ + lib.makeBinPath [ + binutils + pciutils + pkgconf + ] + } ''} ''; @@ -191,6 +196,6 @@ stdenv.mkDerivation (finalAttrs: { wozeparrot ]; mainProgram = "Hyprland"; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.freebsd; }; }) diff --git a/pkgs/by-name/hy/hyprland/update.sh b/pkgs/by-name/hy/hyprland/update.sh index c729705f6b1d..a7f18bef1951 100755 --- a/pkgs/by-name/hy/hyprland/update.sh +++ b/pkgs/by-name/hy/hyprland/update.sh @@ -22,9 +22,8 @@ date=${date%T*} # update version; otherwise fail update-source-version hyprland "$version" --ignore-same-hash -# find hyprland dir -files="$(fd --full-path /hyprland/ | head -1)" -dir="${files%/*}" +# set hyprland dir +dir="pkgs/by-name/hy/hyprland" echo -e '{ "branch": "'"$branch"'", @@ -32,4 +31,4 @@ echo -e '{ "commit_message": "'"$commit_message"'", "date": "'"$date"'", "tag": "'"$tag"'" -}' >"$dir/info.json" +}' >"$dir/info.json" || echo "Please run the script in the root of the Nixpkgs repo" diff --git a/pkgs/by-name/lr/lrcget/package.nix b/pkgs/by-name/lr/lrcget/package.nix new file mode 100644 index 000000000000..40da20efbcce --- /dev/null +++ b/pkgs/by-name/lr/lrcget/package.nix @@ -0,0 +1,118 @@ +{ + dbus, + openssl, + gtk3, + webkitgtk, + pkg-config, + wrapGAppsHook3, + fetchFromGitHub, + buildNpmPackage, + rustPlatform, + lib, + stdenv, + copyDesktopItems, + makeDesktopItem, + alsa-lib, + darwin, +}: +rustPlatform.buildRustPackage rec { + pname = "lrcget"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "tranxuanthang"; + repo = "lrcget"; + rev = "${version}"; + hash = "sha256-OrmSaRKhGCl5sTirzICx8PBsQm23pYUBBtb07+P1ZbY="; + }; + + sourceRoot = "${src.name}/src-tauri"; + + cargoHash = "sha256-V9+/sfCxeZJ39nOuMBv2YlkzewoS+N3kFyBGdIqkw/A="; + + frontend = buildNpmPackage { + inherit version src; + pname = "lrcget-ui"; + # FIXME: This is a workaround, because we have a git dependency node_modules/lrc-kit contains install scripts + # but has no lockfile, which is something that will probably break. + forceGitDeps = true; + distPhase = "true"; + dontInstall = true; + # To fix `npm ERR! Your cache folder contains root-owned files` + makeCacheWritable = true; + + npmDepsHash = "sha256-qQ5UMO3UuD6IvUveTRF35qTlGq5PMbxp1Q4UroDqVtk="; + + postBuild = '' + cp -r dist/ $out + ''; + }; + + # copy the frontend static resources to final build directory + # Also modify tauri.conf.json so that it expects the resources at the new location + postPatch = '' + cp -r $frontend ./frontend + + substituteInPlace tauri.conf.json --replace-fail '"distDir": "../dist"' '"distDir": "./frontend"' + ''; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook3 + copyDesktopItems + rustPlatform.bindgenHook + ]; + + buildInputs = + [ + dbus + openssl + gtk3 + ] + ++ lib.optionals (!stdenv.isDarwin) [ + webkitgtk + alsa-lib + ] + ++ lib.optionals stdenv.isDarwin [ + darwin.apple_sdk.frameworks.CoreAudio + darwin.apple_sdk.frameworks.WebKit + ]; + + # Disable checkPhase, since the project doesn't contain tests + doCheck = false; + + postInstall = '' + install -DT icons/128x128@2x.png $out/share/icons/hicolor/128x128@2/apps/lrcget.png + install -DT icons/128x128.png $out/share/icons/hicolor/128x128/apps/lrcget.png + install -DT icons/32x32.png $out/share/icons/hicolor/32x32/apps/lrcget.png + ''; + + # WEBKIT_DISABLE_COMPOSITING_MODE essential in NVIDIA + compositor https://github.com/NixOS/nixpkgs/issues/212064#issuecomment-1400202079 + postFixup = '' + wrapProgram "$out/bin/lrcget" \ + --set WEBKIT_DISABLE_COMPOSITING_MODE 1 + ''; + + desktopItems = [ + (makeDesktopItem { + name = "LRCGET"; + exec = "lrcget"; + icon = "lrcget"; + desktopName = "LRCGET"; + comment = meta.description; + }) + ]; + + meta = { + description = "Utility for mass-downloading LRC synced lyrics for your offline music library"; + homepage = "https://github.com/tranxuanthang/lrcget"; + changelog = "https://github.com/tranxuanthang/lrcget/releases/tag/${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ + anas + Scrumplex + ]; + mainProgram = "lrcget"; + platforms = with lib.platforms; unix ++ windows; + }; +} diff --git a/pkgs/by-name/mo/mountpoint-s3/package.nix b/pkgs/by-name/mo/mountpoint-s3/package.nix index 4d4b3cedc006..127b623d2713 100644 --- a/pkgs/by-name/mo/mountpoint-s3/package.nix +++ b/pkgs/by-name/mo/mountpoint-s3/package.nix @@ -8,17 +8,17 @@ rustPlatform.buildRustPackage rec { pname = "mountpoint-s3"; - version = "1.6.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "awslabs"; repo = "mountpoint-s3"; rev = "v${version}"; - hash = "sha256-1d2PPbTheUcHw2xS5LEcdchnfwu7szBApv+FnPaxt+I="; + hash = "sha256-0SygSRp2HXgLhW0BscRhH3H/WUstAf6VbQPJ35ffrRM="; fetchSubmodules = true; }; - cargoHash = "sha256-tBi41kdaa4mVHh0MkXJ8kaG1e3CQURIKVk9Lboy1N8Y="; + cargoHash = "sha256-nkTvVfbpi5yvWpRd1Tm6INi3PrR6mP8VkBpIVeCEkw0="; # thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9: # cargo metadata failure: error: none of the selected packages contains these features: libfuse3 @@ -31,9 +31,17 @@ rustPlatform.buildRustPackage rec { #thread 's3_crt_client::tests::test_expected_bucket_owner' panicked at mountpoint-s3-client/src/s3_crt_client.rs:1123:47: #Create test client: ProviderFailure(Error(1173, "aws-c-io: AWS_IO_TLS_ERROR_DEFAULT_TRUST_STORE_NOT_FOUND, Default TLS trust store not found on this system. Trusted CA certificates must be installed, or \"override default trust store\" must be used while creating the TLS context.")) # + "--skip=s3_crt_client::tests::client_new_fails_with_greater_part_size" + "--skip=s3_crt_client::tests::client_new_fails_with_smaller_part_size" + "--skip=s3_crt_client::tests::test_endpoint_favors_env_variable" + "--skip=s3_crt_client::tests::test_endpoint_favors_parameter_over_env_variable" + "--skip=s3_crt_client::tests::test_endpoint_with_invalid_env_variable" "--skip=s3_crt_client::tests::test_expected_bucket_owner" "--skip=s3_crt_client::tests::test_user_agent_with_prefix" "--skip=s3_crt_client::tests::test_user_agent_without_prefix" + "--skip=test_lookup_throttled_mock::head_object" + "--skip=test_lookup_throttled_mock::list_object" + "--skip=test_lookup_unhandled_error_mock" "--skip=tests::smoke" # fuse module not available on build machine ? # diff --git a/pkgs/by-name/ne/nemo/package.nix b/pkgs/by-name/ne/nemo/package.nix index ab74c829f580..e5dece818fe2 100644 --- a/pkgs/by-name/ne/nemo/package.nix +++ b/pkgs/by-name/ne/nemo/package.nix @@ -14,7 +14,6 @@ , xapp , libexif , json-glib -, gtk-layer-shell , exempi , intltool , shared-mime-info @@ -24,13 +23,13 @@ stdenv.mkDerivation rec { pname = "nemo"; - version = "6.2.7"; + version = "6.2.8"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - sha256 = "sha256-wYzBrFRCgfmvmjSP6X1cCAFU5aFydO2FNl86j5rAfgA="; + sha256 = "sha256-1GJLsUlptwXcZUWIOztskV0nHA9BnPmnVeTgUwJ+QDQ="; }; patches = [ @@ -52,7 +51,6 @@ stdenv.mkDerivation rec { gvfs libgsf json-glib - gtk-layer-shell ]; nativeBuildInputs = [ @@ -68,8 +66,6 @@ stdenv.mkDerivation rec { mesonFlags = [ # use locales from cinnamon-translations "--localedir=${cinnamon-translations}/share/locale" - # enabled by default in Mint packaging (see debian/rules) - "-Dgtk_layer_shell=true" ]; postInstall = '' diff --git a/pkgs/by-name/ph/phpactor/package.nix b/pkgs/by-name/ph/phpactor/package.nix index 56574c10ea1f..97a02d0e2cb5 100644 --- a/pkgs/by-name/ph/phpactor/package.nix +++ b/pkgs/by-name/ph/phpactor/package.nix @@ -1,7 +1,8 @@ -{ lib -, fetchFromGitHub -, installShellFiles -, php +{ + lib, + fetchFromGitHub, + installShellFiles, + php, }: php.buildComposerProject (finalAttrs: { @@ -19,13 +20,9 @@ php.buildComposerProject (finalAttrs: { nativeBuildInputs = [ installShellFiles ]; - postPatch = '' - patchShebangs bin/phpactor - ''; - postInstall = '' installShellCompletion --cmd phpactor \ - --bash <($out/bin/phpactor completion bash) + --bash <(php $out/bin/phpactor completion bash) ''; meta = { diff --git a/pkgs/by-name/ye/yeahconsole/package.nix b/pkgs/by-name/ye/yeahconsole/package.nix new file mode 100644 index 000000000000..9cf2ec38ecc3 --- /dev/null +++ b/pkgs/by-name/ye/yeahconsole/package.nix @@ -0,0 +1,36 @@ +{ + lib, + stdenv, + fetchFromGitHub, + libX11, + libXrandr, +}: + +stdenv.mkDerivation rec { + pname = "yeahconsole"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "jceb"; + repo = pname; + rev = "v${version}"; + hash = "sha256-Ea6erNF9hEhDHlWLctu1SHFVoXXXsPeWUbvCBSZwn4s="; + }; + + buildInputs = [ + libX11 + libXrandr + ]; + + preConfigure = '' + sed -i "s@PREFIX = /usr/local@PREFIX = $out@g" Makefile + ''; + + meta = { + description = "Turns an xterm into a gamelike console"; + homepage = "https://github.com/jceb/yeahconsole"; + license = lib.licenses.gpl2Only; + maintainers = with lib.maintainers; [ jceb ]; + platforms = lib.platforms.all; + }; +} diff --git a/pkgs/desktops/enlightenment/evisum/default.nix b/pkgs/desktops/enlightenment/evisum/default.nix index af38f526f5ad..93472b6d7dbb 100644 --- a/pkgs/desktops/enlightenment/evisum/default.nix +++ b/pkgs/desktops/enlightenment/evisum/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation rec { pname = "evisum"; - version = "0.6.0"; + version = "0.6.1"; src = fetchurl { url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz"; - sha256 = "1ip3rmp0hcn0pk6lv089cayx18p1b2wycgvwpnf7ghbdxg7n4q15"; + sha256 = "gy8guN4T4pCJCBAmfPQe2Ey7DITi4goU9ng2MmEtrbk="; }; nativeBuildInputs = [ diff --git a/pkgs/development/julia-modules/default.nix b/pkgs/development/julia-modules/default.nix index 10db44717864..9c5c8b8eda5d 100644 --- a/pkgs/development/julia-modules/default.nix +++ b/pkgs/development/julia-modules/default.nix @@ -35,9 +35,7 @@ packageNames: let util = callPackage ./util.nix {}; -in -let # Some Julia packages require access to Python. Provide a Nixpkgs version so it # doesn't try to install its own. pythonToUse = let diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix index 7d8a04a2f0a9..d4c1956914b9 100644 --- a/pkgs/development/libraries/acl/default.nix +++ b/pkgs/development/libraries/acl/default.nix @@ -24,9 +24,9 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + inherit (attr.meta) platforms badPlatforms; homepage = "https://savannah.nongnu.org/projects/acl"; description = "Library and tools for manipulating access control lists"; - platforms = platforms.linux; license = licenses.gpl2Plus; }; } diff --git a/pkgs/development/libraries/attr/default.nix b/pkgs/development/libraries/attr/default.nix index 4815497da14f..eb8f0d1c3b97 100644 --- a/pkgs/development/libraries/attr/default.nix +++ b/pkgs/development/libraries/attr/default.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation rec { homepage = "https://savannah.nongnu.org/projects/attr/"; description = "Library and tools for manipulating extended attributes"; platforms = platforms.linux; + badPlatforms = platforms.microblaze; license = licenses.gpl2Plus; }; } diff --git a/pkgs/games/stockfish/default.nix b/pkgs/games/stockfish/default.nix index 2e6d142b7148..ac8c765ac94c 100644 --- a/pkgs/games/stockfish/default.nix +++ b/pkgs/games/stockfish/default.nix @@ -11,29 +11,36 @@ let if stdenv.isAarch64 then "armv8" else "unknown"; - nnueFile = "nn-5af11540bbfe.nnue"; - nnue = fetchurl { - name = nnueFile; - url = "https://tests.stockfishchess.org/api/nn/${nnueFile}"; - sha256 = "sha256-WvEVQLv+/LVOOMXdAAyrS0ad+nWZodVb5dJyLCCokps="; + # These files can be found in src/evaluate.h + nnueBigFile = "nn-b1a57edbea57.nnue"; + nnueBig = fetchurl { + name = nnueBigFile; + url = "https://tests.stockfishchess.org/api/nn/${nnueBigFile}"; + sha256 = "sha256-saV+2+pXTKi4jWg3RzhFeRvrU9iF+H+G1czdVln787I="; + }; + nnueSmallFile = "nn-baff1ede1f90.nnue"; + nnueSmall = fetchurl { + name = nnueSmallFile; + url = "https://tests.stockfishchess.org/api/nn/${nnueSmallFile}"; + sha256 = "sha256-uv8e3h+Qwd0bT3cvHv8phIghgB6BhjRdp/DrQSG9b2M="; }; in stdenv.mkDerivation rec { pname = "stockfish"; - version = "16"; + version = "16.1"; src = fetchFromGitHub { owner = "official-stockfish"; repo = "Stockfish"; rev = "sf_${version}"; - sha256 = "sha256-ASy2vIP94lnSKgxixK1GoC84yAysaJpxeyuggV4MrP4="; + sha256 = "sha256-xTtjfJgEHF0SQT9Fw/9RLZA0Quh00jrIbihr7IYCm2U="; }; postUnpack = '' sourceRoot+=/src - echo ${nnue} - cp "${nnue}" "$sourceRoot/${nnueFile}" + cp "${nnueBig}" "$sourceRoot/${nnueBigFile}" + cp "${nnueSmall}" "$sourceRoot/${nnueSmallFile}" ''; makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" "CXX=${stdenv.cc.targetPrefix}c++" ]; diff --git a/pkgs/tools/archivers/gnutar/default.nix b/pkgs/tools/archivers/gnutar/default.nix index 98f0b54e73fc..723c6b75ca9f 100644 --- a/pkgs/tools/archivers/gnutar/default.nix +++ b/pkgs/tools/archivers/gnutar/default.nix @@ -1,4 +1,7 @@ -{ lib, stdenv, fetchurl, autoreconfHook, updateAutotoolsGnuConfigScriptsHook, acl, libintl }: +{ lib, stdenv, fetchurl, autoreconfHook, updateAutotoolsGnuConfigScriptsHook +, libintl +, aclSupport ? lib.meta.availableOn stdenv.hostPlatform acl, acl +}: # Note: this package is used for bootstrapping fetchurl, and thus # cannot use fetchpatch! All mutable patches (generated by GitHub or @@ -37,7 +40,7 @@ stdenv.mkDerivation rec { # "_libintl_textdomain", referenced from: # _main in tar.o # ld: symbol(s) not found for architecture x86_64 - buildInputs = lib.optional stdenv.isLinux acl ++ lib.optional stdenv.isDarwin libintl; + buildInputs = lib.optional aclSupport acl ++ lib.optional stdenv.isDarwin libintl; # May have some issues with root compilation because the bootstrap tool # cannot be used as a login shell for now. diff --git a/pkgs/tools/filesystems/irods/default.nix b/pkgs/tools/filesystems/irods/default.nix index ccae722059e9..5db0ed453eab 100644 --- a/pkgs/tools/filesystems/irods/default.nix +++ b/pkgs/tools/filesystems/irods/default.nix @@ -5,8 +5,7 @@ let avro-cpp = avro-cpp_llvm; nanodbc = nanodbc_llvm; -in -let + common = import ./common.nix { inherit lib stdenv bzip2 zlib autoconf automake cmake help2man texinfo libtool cppzmq libarchive diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index 0e11363b8210..d9fbd4459f04 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -10,8 +10,8 @@ , binlore , coreutils , gmpSupport ? true, gmp -, aclSupport ? stdenv.isLinux, acl -, attrSupport ? stdenv.isLinux, attr +, aclSupport ? lib.meta.availableOn stdenv.hostPlatform acl, acl +, attrSupport ? lib.meta.availableOn stdenv.hostPlatform attr, attr , selinuxSupport ? false, libselinux, libsepol # No openssl in default version, so openssl-induced rebuilds aren't too big. # It makes *sum functions significantly faster.