diff --git a/ci/github-script/bot.js b/ci/github-script/bot.js index efb5f4935aa8..aa607d0dfc1b 100644 --- a/ci/github-script/bot.js +++ b/ci/github-script/bot.js @@ -491,7 +491,7 @@ export default async ({ github, context, core, dry }) => { ), ).map((id) => parseInt(id)) - prLabels['7.unmaintained'] = + prLabels['7.no default reviewers'] = user_maintainers.length === 0 && team_maintainers.length === 0 && owners.length === 0 diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index 7bfb43ae3aa1..d8f5a489908f 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -98,6 +98,8 @@ - [gocron](https://github.com/flohoss/gocron), a task scheduler with web interface. Available as [services.gocron](#opt-services.gocron.enable). +- [gophernicus](https://github.com/gophernicus/gophernicus), a modern gopher daemon. Available at [services.gophernicus](#opt-services.gophernicus.enable). + - [Unpackerr](https://unpackerr.zip), extracts downloads for Radarr, Sonarr, Lidarr, Readarr, and/or a Watch folder. Available as [services.unpackerr](#opt-services.unpackerr.enable). - [ioquake3](https://ioquake3.org), a open-source port of the 3D action shooter Quake 3 Arena. Available as [programs.ioquake3](#opt-programs.ioquake3.enable). diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index aa64e6e20686..548c1da4234e 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -912,6 +912,7 @@ ./services/misc/gitolite.nix ./services/misc/gitweb.nix ./services/misc/gollum.nix + ./services/misc/gophernicus.nix ./services/misc/gotenberg.nix ./services/misc/gpsd.nix ./services/misc/graphical-desktop.nix diff --git a/nixos/modules/services/misc/gophernicus.nix b/nixos/modules/services/misc/gophernicus.nix new file mode 100644 index 000000000000..c3f83228d641 --- /dev/null +++ b/nixos/modules/services/misc/gophernicus.nix @@ -0,0 +1,229 @@ +{ + config, + options, + pkgs, + lib, + ... +}: +let + cfg = config.services.gophernicus; + opt = options.services.gophernicus; +in +{ + options.services.gophernicus = { + enable = lib.mkEnableOption "gophernicus, a modern gopher daemon"; + package = lib.mkPackageOption pkgs "gophernicus" { }; + + domain = lib.mkOption { + type = lib.types.str; + description = "A DNS-resolvable domain pointing to this machine or a reverse proxy redirecting here."; + example = "gopher.example.com"; + }; + + path = lib.mkOption { + type = lib.types.listOf lib.types.package; + description = '' + Packages with content in {file}`/bin` that should be available to gophernicus. + + This will be provided as {env}`PATH` to both gophermaps, cgi scripts and filters. + ''; + default = with pkgs; [ + coreutils + gnused + whoami + bash + php + perl + ]; + defaultText = lib.literalExpression '' + with pkgs; [ + coreutils + gnused + whoami + bash + php + perl + ] + ''; + }; + + filters = lib.mkOption { + type = lib.types.attrsOf lib.types.pathInStore; + description = "Executables that should be registered as preprocessing filters."; + default = { }; + example = lib.literalExpression '' + { + # Files with the `.txt` extension should be preprocessed with `my-filter` + txt = pkgs.writeShellScript "my-filter" ''' + echo "To whom it may concern..." + # First argument is the path of the file being filtered + cat "$1" + echo "Best regards, server owner" + '''; + # Files with the `.php` extension should automatically be rendered by php + php = "''${pkgs.php}/bin/php"; + } + ''; + }; + + rootDir = lib.mkOption { + type = lib.types.path; + description = '' + The directory which contains the root of your gopher content. + + Note that you might want to disable {option}`services.gophernicus.enableDefaultRootIndex` if you are + modifying the contents of your root directory. + ''; + default = "/var/lib/gophernicus/gopher"; + example = lib.literalExpression '' + pkgs.symlinkJoin { + name = "gophernicus-root-dir"; + paths = [ + (pkgs.writeTextDir "gophermap" ''' + iHello! + + 1Misc\tmisc + ''') + (pkgs.writeTextDir "misc/info.txt" ''' + World + ''') + ]; + } + ''; + }; + + enableDefaultRootIndex = lib.mkOption { + type = lib.types.bool; + description = "Whether to enable the example gophermap shipped with gophernicus as the default root index."; + default = true; + example = false; + }; + + enableUserDirs = lib.mkOption { + type = lib.types.bool; + description = "Whether to host content from {file}`~/public_gopher` in user home directories."; + default = true; + example = false; + }; + + listenStreams = lib.mkOption { + description = '' + Which sockets to bind to. + + See {option}`systemd.sockets.«name».listenStreams`. + ''; + type = lib.types.listOf lib.types.str; + default = [ "127.0.0.1:70" ]; + example = [ "/run/gophernicus/gophernicus.sock" ]; + }; + + extraArgs = lib.mkOption { + description = '' + Extra commandline arguments to pass to {command}`gophernicus`. + + See {manpage}`gophernicus(8)` for available arguments. + ''; + type = lib.types.attrsOf lib.types.anything; + default = { }; + example = { + u = "gopher_stuff"; + w = 80; + np = true; + nx = true; + }; + }; + }; + + config = lib.mkIf cfg.enable { + services.gophernicus.path = opt.path.default; + + systemd.packages = [ cfg.package ]; + + systemd.sockets."gophernicus" = { + wantedBy = [ "sockets.target" ]; + listenStreams = [ "" ] ++ cfg.listenStreams; + }; + + systemd.services."gophernicus@" = { + documentation = [ "man:gophernicus(8)" ]; + serviceConfig = { + DynamicUser = true; + User = "gophernicus"; + Group = "gophernicus"; + + StateDirectory = [ "gophernicus/gopher" ]; + + RuntimeDirectory = [ "gophernicus/bin" ]; + BindReadOnlyPaths = + let + binDir = pkgs.symlinkJoin { + name = "gophernicus-bin"; + paths = cfg.path; + stripPrefix = "/bin"; + }; + in + [ + "${binDir}:/run/gophernicus/bin" + ] + ++ lib.optionals (cfg.rootDir != opt.rootDir.default) [ + "${cfg.rootDir}:/var/lib/gophernicus/gopher" + ] + ++ lib.optionals cfg.enableDefaultRootIndex [ + "${cfg.package}/share/gophernicus/gopher/gophermap:/var/lib/gophernicus/gopher/gophermap" + ]; + + ExecStart = + let + args = lib.cli.toCommandLineShellGNU { } ( + { + r = "/var/lib/gophernicus/gopher"; + h = cfg.domain; + f = if cfg.filters != { } then pkgs.linkFarm "gophernicus-filters" cfg.filters else null; + nu = !cfg.enableUserDirs; + } + // cfg.extraArgs + ); + in + [ + "" + "${lib.getExe cfg.package} ${args}" + ]; + + PrivateUsers = !cfg.enableUserDirs; + ProtectHome = if cfg.enableUserDirs then "read-only" else true; + + ProcSubset = "pid"; + ProtectProc = "invisible"; + UMask = "0077"; + CapabilityBoundingSet = ""; + NoNewPrivileges = true; + ProtectSystem = "strict"; + PrivateTmp = true; + PrivateDevices = true; + ProtectHostname = true; + ProtectClock = true; + ProtectKernelTunables = true; + ProtectKernelModules = true; + ProtectKernelLogs = true; + ProtectControlGroups = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + "AF_UNIX" + ]; + RestrictNamespaces = true; + LockPersonality = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + RemoveIPC = true; + PrivateMounts = true; + SystemCallArchitectures = "native"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ + felixalbrigtsen + h7x4 + ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 538af4363980..fea34f717234 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -793,6 +793,7 @@ in gollum = runTest ./gollum.nix; gonic = runTest ./gonic.nix; google-oslogin = runTest ./google-oslogin; + gophernicus = runTest ./gophernicus.nix; gopro-tool = runTest ./gopro-tool.nix; goss = runTest ./goss.nix; gotenberg = runTest ./gotenberg.nix; diff --git a/nixos/tests/gophernicus.nix b/nixos/tests/gophernicus.nix new file mode 100644 index 000000000000..2b2599c44ec6 --- /dev/null +++ b/nixos/tests/gophernicus.nix @@ -0,0 +1,117 @@ +{ pkgs, lib, ... }: +{ + name = "gophernicus"; + meta.maintainers = with lib.maintainers; [ + felixalbrigtsen + h7x4 + ]; + + containers.machine = + { options, ... }: + { + imports = [ ./common/user-account.nix ]; + + environment.systemPackages = with pkgs; [ + phetch + ]; + + users.users = { + alice.homeMode = "755"; + bob.homeMode = "755"; + }; + + services.gophernicus = { + enable = true; + domain = "localhost"; + + path = options.services.gophernicus.path.default ++ [ + (pkgs.writeScriptBin "hello" ''printf "aaaaaaa\n"'') + ]; + + filters = { + txt = pkgs.writeShellScript "gophernicus-test-filter-script" '' + cat "$1" + echo "world" + ''; + php = "${pkgs.php}/bin/php"; + }; + }; + }; + + testScript = + let + alice-hello = pkgs.writeText "gophernicus-test-alice-hello" '' + Hi! + ''; + bob-hello = pkgs.writeText "gophernicus-test-bob-hello" '' + Hello! + ''; + bob-custom-command = pkgs.writeText "gophernicus-test-bob-custom-command" '' + =hello + ''; + bob-php-cgi = pkgs.writeText "gophernicus-test-bob-php-cgi" '' + #!${lib.getExe pkgs.php} + + ''; + bob-filtered = pkgs.writeText "gophernicus-test-bob-filtered" '' + hello + ''; + bob-php-non-cgi = pkgs.writeText "gophernicus-test-bob-php-non-cgi" '' + + ''; + in + '' + machine.wait_for_unit("sockets.target") + + def phetch_or_fail(path: str) -> str: + result = machine.succeed(f"phetch -r gopher://localhost/{path}") + + print("--- RESPONSE ---") + print(result) + print("----------------") + + assert "Error:" not in result, "Found error in fetched content" + assert "command not found" not in result, "Found missing command error in fetched content" + + return result + + with subtest("Fetch root pages"): + content = phetch_or_fail("") + assert "Welcome to Gophernicus!" in content, "Content not rendered properly" + + content = phetch_or_fail("/server-status") + assert "Total Accesses" in content, "Content not rendered properly" + + content = phetch_or_fail("/caps.txt") + assert "This is an automatically generated caps file." in content, "Content not rendered properly" + + machine.succeed("runuser -u alice -- install -Dm755 -d /home/alice/public_gopher") + machine.succeed("runuser -u bob -- install -Dm755 -d /home/bob/public_gopher") + + with subtest("Fetch user pages"): + machine.succeed("runuser -u alice -- install -Dm644 '${alice-hello}' /home/alice/public_gopher/hello") + machine.succeed("runuser -u bob -- install -Dm644 '${bob-hello}' /home/bob/public_gopher/world") + phetch_or_fail("1~alice/hello") + phetch_or_fail("1~bob/world") + + with subtest("Render gophermap with custom command"): + machine.succeed("runuser -u bob -- install -Dm644 '${bob-custom-command}' /home/bob/public_gopher/custom/gophermap") + content = phetch_or_fail("1~bob/custom") + assert "aaaaaaa" in content, "Content not rendered properly" + + with subtest("Render php as cgi"): + machine.succeed("runuser -u bob -- install -Dm755 '${bob-php-cgi}' /home/bob/public_gopher/cgi-bin/php-cgi.php") + content = phetch_or_fail("1~bob/cgi-bin/php-cgi.php") + assert "Result: 2" in content, "Content not rendered properly" + + with subtest("Render filters"): + machine.succeed("runuser -u bob -- install -Dm644 '${bob-filtered}' /home/bob/public_gopher/filtered.txt") + content = phetch_or_fail("1~bob/filtered.txt") + assert "hello" in content, "Content not rendered properly" + assert "world" in content, "Content not rendered properly" + + machine.succeed("runuser -u bob -- install -Dm644 '${bob-php-non-cgi}' /home/bob/public_gopher/filtered.php") + content = phetch_or_fail("1~bob/filtered.php") + assert "Result: 2" in content, "Content not rendered properly" + ''; +} diff --git a/pkgs/by-name/ba/bacon/package.nix b/pkgs/by-name/ba/bacon/package.nix index 93919889813b..208d89f456f3 100644 --- a/pkgs/by-name/ba/bacon/package.nix +++ b/pkgs/by-name/ba/bacon/package.nix @@ -27,17 +27,17 @@ in rustPlatform.buildRustPackage (finalAttrs: { pname = "bacon"; - version = "3.25.0"; + version = "3.26.0"; __structuredAttrs = true; src = fetchFromGitHub { owner = "Canop"; repo = "bacon"; tag = "v${finalAttrs.version}"; - hash = "sha256-+7K8hy6zzLUshLc2I24md5FOYq3lB0ivx1VbCRHIXII="; + hash = "sha256-PFPHGY8akIZntz/LHUyQph6c+YD4OlppAPd3ols8Htg="; }; - cargoHash = "sha256-fAdS77fBUFlSbXu1aw3X3z0ema2FC5fDo8At2GQpGn0="; + cargoHash = "sha256-Sl7122Z8irYPVTGUlkwTyrt/f3ZCPlLJG6GP+C7ENGM="; buildFeatures = lib.optionals withSound [ "sound" @@ -52,6 +52,12 @@ rustPlatform.buildRustPackage (finalAttrs: { buildInputs = lib.optionals withSound soundDependencies; + checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [ + # no notification on first save + "--skip=watch::tests::test_watch_file_saved_by_replacement" + "--skip=watch::tests::test_watch_symlinked_file" + ]; + nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; @@ -81,6 +87,7 @@ rustPlatform.buildRustPackage (finalAttrs: { license = lib.licenses.agpl3Only; maintainers = with lib.maintainers; [ FlorianFranzen + GaetanLepage matthiasbeyer ]; }; diff --git a/pkgs/by-name/co/cockpit-files/package.nix b/pkgs/by-name/co/cockpit-files/package.nix index 5a19c924b0ca..de98dde676f6 100644 --- a/pkgs/by-name/co/cockpit-files/package.nix +++ b/pkgs/by-name/co/cockpit-files/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cockpit-files"; - version = "43"; + version = "45"; src = fetchFromGitHub { owner = "cockpit-project"; repo = "cockpit-files"; tag = finalAttrs.version; - hash = "sha256-ex15Bs8hFlNnksTEQC3rxhpiKDpK6bY3r3o5wX9ad44="; + hash = "sha256-+ubt2tROkxpuWMIwUD81EhBJyGfG1+a5QLf3G5P8G9Y="; fetchSubmodules = true; postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json"; diff --git a/pkgs/by-name/co/cockpit-machines/package.nix b/pkgs/by-name/co/cockpit-machines/package.nix index 31d67375d394..4d0f4df5d400 100644 --- a/pkgs/by-name/co/cockpit-machines/package.nix +++ b/pkgs/by-name/co/cockpit-machines/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cockpit-machines"; - version = "355"; + version = "357"; src = fetchFromGitHub { owner = "cockpit-project"; repo = "cockpit-machines"; tag = finalAttrs.version; - hash = "sha256-9NRpo9j0EDTWvJAPuAhr3H6Gigt7MdwYbdXZeGqHVGo="; + hash = "sha256-RuMmBqx+Fm+qHLxFct5Kc2zW98EBHQpK77zvCkAQ+24="; fetchSubmodules = true; postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json"; diff --git a/pkgs/by-name/co/cockpit-podman/package.nix b/pkgs/by-name/co/cockpit-podman/package.nix index 423f4abf3f77..1fb6227676ac 100644 --- a/pkgs/by-name/co/cockpit-podman/package.nix +++ b/pkgs/by-name/co/cockpit-podman/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "cockpit-podman"; - version = "129"; + version = "131"; src = fetchFromGitHub { owner = "cockpit-project"; repo = "cockpit-podman"; tag = finalAttrs.version; - hash = "sha256-NFEVwDrDgFQphSh7k56wjGsWJslkerJEQ6FFm5xJsfA="; + hash = "sha256-+djsTOaE8tY2pn5O7KWNHdtqEogDEPUETNeWt3bzdhU="; fetchSubmodules = true; postFetch = "cp $out/node_modules/.package-lock.json $out/package-lock.json"; diff --git a/pkgs/by-name/co/cockpit/package.nix b/pkgs/by-name/co/cockpit/package.nix index 12c86202d606..ec5ac8a3a0fd 100644 --- a/pkgs/by-name/co/cockpit/package.nix +++ b/pkgs/by-name/co/cockpit/package.nix @@ -47,13 +47,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "cockpit"; - version = "366"; + version = "367"; src = fetchFromGitHub { owner = "cockpit-project"; repo = "cockpit"; tag = finalAttrs.version; - hash = "sha256-WyV6I8u83ETVLmjJ7Mjh0D1cLY+RQkxGAIMTkRfy3T0="; + hash = "sha256-TWB39cnhU9zgr/FP4FfXEzdMEnjXOs/HamYjSXLVadY="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/co/comfyui/package.nix b/pkgs/by-name/co/comfyui/package.nix index 90de37186be1..c032490e4f40 100644 --- a/pkgs/by-name/co/comfyui/package.nix +++ b/pkgs/by-name/co/comfyui/package.nix @@ -2,11 +2,17 @@ lib, callPackage, cudaPackages_13, + common-updater-scripts, fetchFromGitHub, + gnutar, + gzip, + nix-update, makeBinaryWrapper, python3, stdenvNoCC, withManager ? false, + writeShellApplication, + yq-go, }: let @@ -74,7 +80,7 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "comfyui"; - version = "0.35.0"; + version = "0.37.0"; strictDeps = true; __structuredAttrs = true; @@ -83,7 +89,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { owner = "Comfy-Org"; repo = "ComfyUI"; tag = "v${finalAttrs.version}"; - hash = "sha256-ffT9euBDsxpmq4wzd9R2QUcCgI/YnfQOsvC5HuAekUM="; + hash = "sha256-hfpoQsu8xzKHCy2Qqw2BMGsorwizJEuhKXWjUUJzTHs="; }; nativeBuildInputs = [ makeBinaryWrapper ]; @@ -118,6 +124,47 @@ stdenvNoCC.mkDerivation (finalAttrs: { passthru = { inherit python pythonEnv; + + updateScript = lib.getExe (writeShellApplication { + name = "update-comfyui"; + runtimeInputs = [ + common-updater-scripts + gnutar + gzip + nix-update + yq-go + ]; + text = '' + nix-update comfyui + + src=$(nix-build --no-out-link -A comfyui.src) + + while IFS= read -r requirement; do + if [[ $requirement =~ ^comfy.+==.+ ]]; then + pkg=''${requirement%%==*} + version=''${requirement##*==} + + nix-update "python3Packages.$pkg" --version "$version" + + if [[ $pkg == comfyui-workflow-templates ]]; then + wtSrc=$(nix-build --no-out-link -A python3Packages.comfyui-workflow-templates.src) + + while IFS= read -r subRequirement; do + if [[ $subRequirement =~ ^comfyui-workflow-templates-.+==.+ ]]; then + subPkg=''${subRequirement%%==*} + subVersion=''${subRequirement##*==} + + nix-update "python3Packages.$subPkg" --version "$subVersion" + fi + done < <( + tar --extract --gzip --to-stdout --file="$wtSrc" --strip-components=1 --wildcards '*/pyproject.toml' \ + | yq --input-format toml --output-format yaml '.project.dependencies[]' + ) + fi + fi + done < "$src/requirements.txt" + ''; + }); } // lib.optionalAttrs (!withManager) { tests.withManager = callPackage ./package.nix { @@ -135,6 +182,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { caniko SuperSandro2000 ]; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.darwin; }; }) diff --git a/pkgs/by-name/fa/farmhash/package.nix b/pkgs/by-name/fa/farmhash/package.nix new file mode 100644 index 000000000000..233ecdc36440 --- /dev/null +++ b/pkgs/by-name/fa/farmhash/package.nix @@ -0,0 +1,34 @@ +{ + lib, + stdenv, + fetchFromGitHub, + autoreconfHook, +}: + +stdenv.mkDerivation { + pname = "farmhash"; + version = "1.1.0-unstable-2019-05-13"; + + src = fetchFromGitHub { + owner = "google"; + repo = "farmhash"; + rev = "0d859a811870d10f53a594927d0d0b97573ad06d"; + hash = "sha256-J0AhHVOvPFT2SqvQ+evFiBoVfdHthZSBXzAhUepARfA="; + }; + + strictDeps = true; + __structuredAttrs = true; + + nativeBuildInputs = [ autoreconfHook ]; + configureFlags = [ "--enable-shared" ]; + env.CXXFLAGS = "-std=c++14"; + + doCheck = true; + + meta = { + description = "Family of hash functions from Google"; + homepage = "https://github.com/google/farmhash"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/by-name/go/gophernicus/package.nix b/pkgs/by-name/go/gophernicus/package.nix new file mode 100644 index 000000000000..f5fc7a53f9ef --- /dev/null +++ b/pkgs/by-name/go/gophernicus/package.nix @@ -0,0 +1,124 @@ +{ + lib, + stdenv, + buildPackages, + fetchFromGitHub, + gnused, + systemdMinimal, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdMinimal, + xinetd, + xinetdSupport ? lib.meta.availableOn stdenv.hostPlatform xinetd, + versionCheckHook, + nix-update-script, + nixosTests, +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "gophernicus"; + version = "3.1.1"; + + src = fetchFromGitHub { + owner = "gophernicus"; + repo = "gophernicus"; + tag = finalAttrs.version; + hash = "sha256-pweiUiMmLXiyF9NMxvcWfJPH6JiGRlpT4chJiRGh9vg="; + }; + + postPatch = '' + substituteInPlace README.md \ + --replace-warn 'DEVEL' '${finalAttrs.version}' + + substituteInPlace src/gophernicus.h \ + --replace-fail 'SAFE_PATH "/usr/bin:/bin"' 'SAFE_PATH "/usr/bin:/bin:/run/gophernicus/bin"' + + substituteInPlace init/gophernicus.xinetd.in \ + --replace-fail ' -h@HOSTNAME@' ''' + + substituteInPlace init/gophernicus.env.in \ + --replace-fail '-h @HOSTNAME@ ' ''' + + substituteInPlace init/org.gophernicus.server.plist.in \ + --replace-fail '${"\t\t"}-h@HOSTNAME@${"\n"}' ''' \ + --replace-fail '/usr/local/sbin' '${placeholder "out"}/sbin' + + substituteInPlace init/gophernicus@.service.in \ + --replace-fail 'User=nobody' ''' + + substituteInPlace Makefile.in \ + --replace-fail \ + '$(INSTALL) -s' \ + '$(INSTALL) -s --strip-program=${stdenv.cc.targetPrefix}strip' \ + --replace-fail \ + '$(INSTALL) -m 644 init/$(PLIST) $(DESTDIR)$(LAUNCHD)' \ + '$(INSTALL) -Dm 644 -t $(DESTDIR)$(LAUNCHD) init/$(PLIST)' + + sed -E -i '/^\s+(chown|chmod)/d' Makefile.in + ''; + + configurePlatforms = [ ]; + dontAddStaticConfigureFlags = true; + configureFlags = [ + "--prefix=/" + "--gopherroot=/share/gophernicus/gopher" + "--os=${ + if stdenv.hostPlatform.isDarwin then + "mac" + else if stdenv.hostPlatform.isLinux then + "linux" + else if stdenv.hostPlatform.isBSD then + "freebsd" + else + "autodetected" + }" + ] + ++ lib.optionals systemdSupport [ + "--listener=systemd" + ] + ++ lib.optionals xinetdSupport [ + "--listener=xinetd" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + "--listener=mac" + ]; + + env = lib.optionalAttrs (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) { + HOSTCC = "${buildPackages.stdenv.cc}/bin/cc"; + CC = "${stdenv.cc.targetPrefix}cc"; + }; + + makeFlags = [ + "DESTDIR=${placeholder "out"}" + ]; + + strictDeps = true; + __structuredAttrs = true; + + installTargets = [ + "install" + ] + ++ lib.optionals systemdSupport [ + "install-systemd" + ]; + + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + versionCheckProgramArg = "-v"; + + passthru = { + updateScript = nix-update-script { }; + tests.nixos = nixosTests.gophernicus; + }; + + meta = { + description = "Modern full-featured (and hopefully) secure gopher daemon"; + homepage = "https://gophernicus.org/"; + changelog = "https://github.com/gophernicus/gophernicus/blob/${finalAttrs.src.tag}/changelog"; + license = lib.licenses.bsd2; + platforms = lib.platforms.unix; + maintainers = with lib.maintainers; [ + felixalbrigtsen + h7x4 + ]; + mainProgram = "gophernicus"; + }; +}) diff --git a/pkgs/by-name/gp/gpu-screen-recorder-ui/package.nix b/pkgs/by-name/gp/gpu-screen-recorder-ui/package.nix index 10db980b5c71..733bfacae11e 100644 --- a/pkgs/by-name/gp/gpu-screen-recorder-ui/package.nix +++ b/pkgs/by-name/gp/gpu-screen-recorder-ui/package.nix @@ -34,12 +34,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "gpu-screen-recorder-ui"; - version = "1.13.9"; + version = "1.13.10"; src = fetchgit { url = "https://repo.dec05eba.com/gpu-screen-recorder-ui"; tag = finalAttrs.version; - hash = "sha256-f4jTv3IS73NWStg1af20pGKlqwIN9K9ZyLjKUX9Tp3s="; + hash = "sha256-mH/xSdsDHwokemGq2h/qaf/ImN3xlrZupcK+5ptXOns="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/gv/gvfs/package.nix b/pkgs/by-name/gv/gvfs/package.nix index 041007059cee..b681e59170e0 100644 --- a/pkgs/by-name/gv/gvfs/package.nix +++ b/pkgs/by-name/gv/gvfs/package.nix @@ -153,7 +153,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Virtual Filesystem support library" + lib.optionalString gnomeSupport " (full GNOME support)"; license = lib.licenses.lgpl2Plus; - platforms = lib.platforms.unix; + platforms = lib.platforms.linux; teams = [ lib.teams.gnome ]; }; }) diff --git a/pkgs/by-name/me/meilisearch/package.nix b/pkgs/by-name/me/meilisearch/package.nix index 274dad368412..19f3be11b40b 100644 --- a/pkgs/by-name/me/meilisearch/package.nix +++ b/pkgs/by-name/me/meilisearch/package.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "meilisearch"; - version = "1.53.2"; + version = "1.54.0"; src = fetchFromGitHub { owner = "meilisearch"; repo = "meilisearch"; tag = "v${finalAttrs.version}"; - hash = "sha256-bbVuB8brplUAqKrmTBah4HKbmshv0n5Hn2v9hUnY62c="; + hash = "sha256-GFVMplrViua0dQyMC6qq4/uk0HJaQZ2HLP5zooYdhyI="; }; cargoBuildFlags = [ "--package=meilisearch" ]; - cargoHash = "sha256-ojRJPL3EHyGmWHcX5SLv11fkP1pUNKrYkd82GEC4zKE="; + cargoHash = "sha256-OddLDA+jyIFUnP8XNnh3oFTVmop3IKGn9UpfYD48jWE="; # Default features include mini dashboard which downloads something from the internet. buildNoDefaultFeatures = true; diff --git a/pkgs/by-name/mi/microsoft-edge/package.nix b/pkgs/by-name/mi/microsoft-edge/package.nix index fe79b99032cd..13cdd8b602e7 100644 --- a/pkgs/by-name/mi/microsoft-edge/package.nix +++ b/pkgs/by-name/mi/microsoft-edge/package.nix @@ -164,11 +164,11 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "microsoft-edge"; - version = "153.0.4234.48"; + version = "154.0.4258.37"; src = fetchurl { url = "https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_${finalAttrs.version}-1_amd64.deb"; - hash = "sha256-JVNZQo8F9xzWNpKmJlwOKnRf/wiuDkJh+c/tUdgIEC8="; + hash = "sha256-xvopdHM5kTIbRsQGS3hc3sWhTYzd0YK8X9oFfjfnYD0="; }; # With strictDeps on, some shebangs were not being patched correctly diff --git a/pkgs/by-name/ms/msedgedriver/package.nix b/pkgs/by-name/ms/msedgedriver/package.nix index c258d19d2f3e..43de4807a9a0 100644 --- a/pkgs/by-name/ms/msedgedriver/package.nix +++ b/pkgs/by-name/ms/msedgedriver/package.nix @@ -12,11 +12,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "msedgedriver"; - version = "153.0.4234.48"; + version = "154.0.4258.37"; src = fetchzip { url = "https://msedgedriver.microsoft.com/${finalAttrs.version}/edgedriver_linux64.zip"; - hash = "sha256-5gCrPPjYC/AmsO5vSNTX/r3hm6wATvNeIxRt4TYyZhY="; + hash = "sha256-XbOQl9FyckF3Qybb+40474ImJDKahBkekPoydf/TxV0="; stripRoot = false; }; diff --git a/pkgs/by-name/od/odamex/package.nix b/pkgs/by-name/od/odamex/package.nix index b98c575dda8f..972b7a209065 100644 --- a/pkgs/by-name/od/odamex/package.nix +++ b/pkgs/by-name/od/odamex/package.nix @@ -43,13 +43,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "odamex"; - version = "12.2.0"; + version = "12.3.0"; src = fetchFromGitHub { owner = "odamex"; repo = "odamex"; tag = finalAttrs.version; - hash = "sha256-cRQtY4C0gjzheE4cG8aPjzAoPf/Hm05a6tidsbce7uM="; + hash = "sha256-JT8flyIEHfCejJnRd+bpUGKNAM746i51EuTItLho5WE="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/re/renode-dts2repl/package.nix b/pkgs/by-name/re/renode-dts2repl/package.nix index 8ac305ff98ad..80cacd7ec3e8 100644 --- a/pkgs/by-name/re/renode-dts2repl/package.nix +++ b/pkgs/by-name/re/renode-dts2repl/package.nix @@ -7,14 +7,14 @@ python3.pkgs.buildPythonApplication { pname = "renode-dts2repl"; - version = "0-unstable-2026-09-11"; + version = "0-unstable-2026-09-25"; pyproject = true; src = fetchFromGitHub { owner = "antmicro"; repo = "dts2repl"; - rev = "a27a69b89dbf3a99fd233f2c5671e8c76f648557"; - hash = "sha256-J0IwXJr88mx2R7m9VsvvOAJPDO4b+HEe7SRS5Oi2TCU="; + rev = "75f2fce6c6d5829feaf14b11c1f39a0c95c4a62a"; + hash = "sha256-fHDB9ZcHPAj6AMZqEMY3H84GChzGkpnM3h8H7g3/lUY="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/re/revive/package.nix b/pkgs/by-name/re/revive/package.nix index 8f3acb2dae83..5b9c7e48b8a4 100644 --- a/pkgs/by-name/re/revive/package.nix +++ b/pkgs/by-name/re/revive/package.nix @@ -9,13 +9,13 @@ buildGoModule (finalAttrs: { pname = "revive"; - version = "1.16.0"; + version = "1.17.0"; src = fetchFromGitHub { owner = "mgechev"; repo = "revive"; tag = "v${finalAttrs.version}"; - hash = "sha256-7uYNDIhl7iyI2cko+KqGBgL24b8mjNnjt2tZP77nNmg="; + hash = "sha256-RbWpGQ5rGkp2yBZ42if3hYyelWEZg+hlelw3WQ1VFRg="; postFetch = '' # The repository currently has a 'v1' and 'V1' directory. @@ -24,7 +24,7 @@ buildGoModule (finalAttrs: { ''; }; - vendorHash = "sha256-2JYqTgJy97qUgwLxhtluapWArH28wd+XnJsl9iFtddk="; + vendorHash = "sha256-467AG0QMO565IBaUyZnqpUbLW6/J87x2b7zfbWqHecM="; # Only build the revive package at the root. subPackages = [ "." ]; diff --git a/pkgs/by-name/se/searxng/package.nix b/pkgs/by-name/se/searxng/package.nix index 18998210b4ef..923399ad71fe 100644 --- a/pkgs/by-name/se/searxng/package.nix +++ b/pkgs/by-name/se/searxng/package.nix @@ -13,14 +13,14 @@ in python.pkgs.toPythonModule ( python.pkgs.buildPythonApplication rec { pname = "searxng"; - version = "0-unstable-2026-09-12"; + version = "0-unstable-2026-09-22"; pyproject = true; src = fetchFromGitHub { owner = "searxng"; repo = "searxng"; - rev = "d4f00d15d4c2b8260124a9039b80bc9c1c26499b"; - hash = "sha256-N5sCetc2JEnKl9eZn2HtJ4QP3TAH9h75/lmqqSWpPSg="; + rev = "2ed96e6fcfc96ca1045155fc52a12f5f7b070417"; + hash = "sha256-CdOV77x0SHrdUZYS/c7RXDI4cQ1sh+eqlKNbgl2Ci6Q="; }; nativeBuildInputs = with python.pkgs; [ pythonRelaxDepsHook ]; diff --git a/pkgs/by-name/sl/slint-viewer/package.nix b/pkgs/by-name/sl/slint-viewer/package.nix index 6269b3b3d9a0..b2526f0d3a98 100644 --- a/pkgs/by-name/sl/slint-viewer/package.nix +++ b/pkgs/by-name/sl/slint-viewer/package.nix @@ -20,14 +20,14 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "slint-viewer"; - version = "1.18.0"; + version = "1.18.1"; src = fetchCrate { inherit (finalAttrs) pname version; - hash = "sha256-lCDhKt1lKZnzKuOuusbWYqwLBH8NJ8sF/UaDk7gjfLc="; + hash = "sha256-MlYBkJl8MupzpTfyjmlLlfpYqFWHg3lll7x87leB5iY="; }; - cargoHash = "sha256-vp8hJuskBxeyZ2vxoKe73kEI8TR13ooNwqP7gw19yo4="; + cargoHash = "sha256-qEXy0uaQFY5fu5Gtpsk+7oW6jtFTK4N/y4aK8ruplI8="; buildInputs = [ qt6.qtbase diff --git a/pkgs/by-name/sp/speech-to-phrase/stt-onlyprobs.nix b/pkgs/by-name/sp/speech-to-phrase/stt-onlyprobs.nix index 5ba23843cb28..524d13440df5 100644 --- a/pkgs/by-name/sp/speech-to-phrase/stt-onlyprobs.nix +++ b/pkgs/by-name/sp/speech-to-phrase/stt-onlyprobs.nix @@ -6,6 +6,7 @@ cmake, cpuinfo, eigen, + farmhash, fetchFromGitHub, fp16, lib, @@ -13,15 +14,6 @@ }: let - # https://github.com/coqui-ai/tensorflow/blob/f8242ebc005f6195b67d58349724e608d4fe45da/tensorflow/lite/tools/cmake/modules/farmhash.cmake#L22 - farmhash = fetchFromGitHub { - name = "farmhash-source"; - owner = "google"; - repo = "farmhash"; - rev = "0d859a811870d10f53a594927d0d0b97573ad06d"; - hash = "sha256-J0AhHVOvPFT2SqvQ+evFiBoVfdHthZSBXzAhUepARfA="; - }; - # https://github.com/coqui-ai/tensorflow/blob/f8242ebc005f6195b67d58349724e608d4fe45da/tensorflow/lite/tools/cmake/modules/fft2d.cmake#L22 fft2d = fetchFromGitHub { name = "fft2d-source"; @@ -118,7 +110,7 @@ stdenv.mkDerivation { (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CLOG" "${cpuinfo.src}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_CPUINFO" "${cpuinfo.src}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_EIGEN" "/build/eigen") - (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_FARMHASH" "${farmhash}") + (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_FARMHASH" "${farmhash.src}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_FFT2D" "${fft2d}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_FLATBUFFERS" "${flatbuffers}") (lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_GEMMLOWP" "${gemmlowp}") diff --git a/pkgs/by-name/te/technitium-dns-server-library/nuget-deps.json b/pkgs/by-name/te/technitium-dns-server-library/nuget-deps.json index ca48dcf1154e..ea7b9f769971 100644 --- a/pkgs/by-name/te/technitium-dns-server-library/nuget-deps.json +++ b/pkgs/by-name/te/technitium-dns-server-library/nuget-deps.json @@ -1,8 +1,8 @@ [ { "pname": "BouncyCastle.Cryptography", - "version": "2.6.2", - "hash": "sha256-Yjk2+x/RcVeccGOQOQcRKCiYzyx1mlFnhS5auCII+Ms=" + "version": "2.7.0", + "hash": "sha256-8JH/zKtNA5k+Zgus4ndlmnne4JcvVNfx9L1G1oCWYkE=" }, { "pname": "Microsoft.Win32.SystemEvents", diff --git a/pkgs/by-name/te/technitium-dns-server-library/package.nix b/pkgs/by-name/te/technitium-dns-server-library/package.nix index 68c5826b831e..4cd50a5c19f3 100644 --- a/pkgs/by-name/te/technitium-dns-server-library/package.nix +++ b/pkgs/by-name/te/technitium-dns-server-library/package.nix @@ -6,7 +6,7 @@ }: buildDotnetModule (finalAttrs: { pname = "technitium-dns-server-library"; - version = "15.4.0"; + version = "15.5.1"; __structuredAttrs = true; @@ -14,7 +14,7 @@ buildDotnetModule (finalAttrs: { owner = "TechnitiumSoftware"; repo = "TechnitiumLibrary"; tag = "dns-server-v${finalAttrs.version}"; - hash = "sha256-h6EXPJTlYatT5IiFrIsZC/LJ5exzAAU8H4DZCimkn7Q="; + hash = "sha256-GkHHAXfmT1MUSIG8zsPHBxtpKVSV7KMONLHy00lk10Y="; }; dotnet-sdk = dotnetCorePackages.sdk_10_0; diff --git a/pkgs/by-name/te/technitium-dns-server/nuget-deps.json b/pkgs/by-name/te/technitium-dns-server/nuget-deps.json index dfb73aa03e2b..bb53096e7d47 100644 --- a/pkgs/by-name/te/technitium-dns-server/nuget-deps.json +++ b/pkgs/by-name/te/technitium-dns-server/nuget-deps.json @@ -1,43 +1,58 @@ [ { "pname": "BouncyCastle.Cryptography", - "version": "2.6.2", - "hash": "sha256-Yjk2+x/RcVeccGOQOQcRKCiYzyx1mlFnhS5auCII+Ms=" + "version": "2.7.0", + "hash": "sha256-8JH/zKtNA5k+Zgus4ndlmnne4JcvVNfx9L1G1oCWYkE=" }, { "pname": "Microsoft.AspNetCore.Authentication.OpenIdConnect", - "version": "10.0.9", - "hash": "sha256-+fRq6oetJlK32C2R/nRBThcO+S6HTX6AIcfg12keAxU=" + "version": "10.0.12", + "hash": "sha256-W3pYq6kIZR6brxV8cWBsgD+lyzVstN0vQ1579WC6Xd4=" + }, + { + "pname": "Microsoft.Bcl.Cryptography", + "version": "10.0.2", + "hash": "sha256-+OYtcWsd1qZcEXadYeA4t6+pyADg1APQCxpKUtP002M=" + }, + { + "pname": "Microsoft.Extensions.DependencyInjection.Abstractions", + "version": "8.0.0", + "hash": "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8=" + }, + { + "pname": "Microsoft.Extensions.Logging.Abstractions", + "version": "8.0.0", + "hash": "sha256-Jmddjeg8U5S+iBTwRlVAVLeIHxc4yrrNgqVMOB7EjM4=" }, { "pname": "Microsoft.IdentityModel.Abstractions", - "version": "8.0.1", - "hash": "sha256-zPWUKTCfGm4MWcYPU037NzezsFE1g8tEijjQkw5iooI=" + "version": "8.19.2", + "hash": "sha256-vNGK6u6V+S0MIaYTg+sSkRF4XUjM1K+cKuR1a9aRCLs=" }, { "pname": "Microsoft.IdentityModel.JsonWebTokens", - "version": "8.0.1", - "hash": "sha256-Xv9MUnjb66U3xeR9drOcSX5n2DjOCIJZPMNSKjWHo9Y=" + "version": "8.19.2", + "hash": "sha256-j9ai0NrgytDsfQiIijp1Ib4jRGX9lgREQBoE6XW9SOc=" }, { "pname": "Microsoft.IdentityModel.Logging", - "version": "8.0.1", - "hash": "sha256-FfwrH/2eLT521Kqw+RBIoVfzlTNyYMqlWP3z+T6Wy2Y=" + "version": "8.19.2", + "hash": "sha256-ja8PAYUNwlfIrkL6EOuZ7SgZfRJwIORGG/ETDD1BtRE=" }, { "pname": "Microsoft.IdentityModel.Protocols", - "version": "8.0.1", - "hash": "sha256-v3DIpG6yfIToZBpHOjtQHRo2BhXGDoE70EVs6kBtrRg=" + "version": "8.19.2", + "hash": "sha256-soADEUQsOp1Hytt1qLo+jOOeq7uy7I7tUOWogXeQXFY=" }, { "pname": "Microsoft.IdentityModel.Protocols.OpenIdConnect", - "version": "8.0.1", - "hash": "sha256-ZHKaZxqESk+OU1SFTFGxvZ71zbdgWqv1L6ET9+fdXX0=" + "version": "8.19.2", + "hash": "sha256-uSrN5xlG+SXlxg4NACFU2FSlC3V3hYojdhU8lUc687o=" }, { "pname": "Microsoft.IdentityModel.Tokens", - "version": "8.0.1", - "hash": "sha256-beVbbVQy874HlXkTKarPTT5/r7XR1NGHA/50ywWp7YA=" + "version": "8.19.2", + "hash": "sha256-POi3SzcK3+iB3104wXYh3ooVD1GbltwTUf+KMj//UYU=" }, { "pname": "Microsoft.Win32.SystemEvents", @@ -49,6 +64,11 @@ "version": "1.8.0", "hash": "sha256-UvOeFFxUZ/bddmDs6IamiYGDIfgxybE/CSpPyy5DMxI=" }, + { + "pname": "System.DirectoryServices.Protocols", + "version": "10.0.12", + "hash": "sha256-tpYNScocWAml3NqO4hHvpJr3ULd2rdHxijTcVDIxiEo=" + }, { "pname": "System.Drawing.Common", "version": "6.0.0", @@ -56,7 +76,7 @@ }, { "pname": "System.IdentityModel.Tokens.Jwt", - "version": "8.0.1", - "hash": "sha256-hW4f9zWs0afxPbcMqCA/FAGvBZbBFSkugIOurswomHg=" + "version": "8.19.2", + "hash": "sha256-kEqfEiWkotfDUDphn0MsMqhOc82qQLXlbo5XYg58/io=" } ] diff --git a/pkgs/by-name/te/technitium-dns-server/package.nix b/pkgs/by-name/te/technitium-dns-server/package.nix index 45752d60153b..3cea1cc3140b 100644 --- a/pkgs/by-name/te/technitium-dns-server/package.nix +++ b/pkgs/by-name/te/technitium-dns-server/package.nix @@ -9,7 +9,7 @@ }: buildDotnetModule (finalAttrs: { pname = "technitium-dns-server"; - version = "15.4.0"; + version = "15.5.1"; __structuredAttrs = true; @@ -17,7 +17,7 @@ buildDotnetModule (finalAttrs: { owner = "TechnitiumSoftware"; repo = "DnsServer"; tag = "v${finalAttrs.version}"; - hash = "sha256-EPqaVulPO5giURtlmj4vMDXYFKICrhJa9TQbQ9AaYJ8="; + hash = "sha256-h6GhWVqv+SRpJberH/xJ2bny1j+RFM7FI1E+LxuhLOw="; }; dotnet-sdk = dotnetCorePackages.sdk_10_0; diff --git a/pkgs/by-name/ze/zellij-unwrapped/package.nix b/pkgs/by-name/ze/zellij-unwrapped/package.nix index ba2ccf797c50..9e00367bd95f 100644 --- a/pkgs/by-name/ze/zellij-unwrapped/package.nix +++ b/pkgs/by-name/ze/zellij-unwrapped/package.nix @@ -6,6 +6,7 @@ installShellFiles, pkg-config, curl, + libssh2, openssl, writableTmpDirAsHomeHook, versionCheckHook, @@ -38,6 +39,7 @@ rustPlatform.buildRustPackage (finalAttrs: { cargoHash = "sha256-rCK7FyAUIjUq6dxEw9YBaGm29xYvlYjX0b1xHU03XVU="; + env.LIBSSH2_SYS_USE_PKG_CONFIG = 1; env.OPENSSL_NO_VENDOR = 1; nativeBuildInputs = [ @@ -48,6 +50,7 @@ rustPlatform.buildRustPackage (finalAttrs: { buildInputs = [ curl + libssh2 openssl ]; diff --git a/pkgs/development/python-modules/comfy-aimdo/default.nix b/pkgs/development/python-modules/comfy-aimdo/default.nix index 61d590e4af10..711daa7ef04e 100644 --- a/pkgs/development/python-modules/comfy-aimdo/default.nix +++ b/pkgs/development/python-modules/comfy-aimdo/default.nix @@ -6,6 +6,7 @@ fetchFromGitHub, setuptools, setuptools-scm, + stdenv, comfyui, }: @@ -21,14 +22,16 @@ let in buildPythonPackage (finalAttrs: { pname = "comfy-aimdo"; - version = "0.5.3"; + version = "0.5.5"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchFromGitHub { owner = "Comfy-Org"; repo = "comfy-aimdo"; tag = "v${finalAttrs.version}"; - hash = "sha256-oHK1+kwPbfhCS5WBo2qCvCWH+t6B6MKvevpcsD9JflE="; + hash = "sha256-f5r2UgkWU49Y/sc9MBwlrmzaY3w4wcHJ0HgcFoVe3QY="; }; postPatch = '' @@ -58,7 +61,9 @@ buildPythonPackage (finalAttrs: { setuptools-scm ]; - preBuild = '' + # The native library is Linux/Windows only; on other platforms the Python + # module is still importable and ComfyUI falls back to its legacy offloader. + preBuild = lib.optionalString stdenv.hostPlatform.isLinux '' ./scripts/build-linux-aimdo.sh ''; @@ -71,7 +76,7 @@ buildPythonPackage (finalAttrs: { description = "AI model dynamic offloader for ComfyUI"; homepage = "https://github.com/Comfy-Org/comfy-aimdo"; license = lib.licenses.gpl3Only; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.darwin; inherit (comfyui.meta) maintainers; }; }) diff --git a/pkgs/development/python-modules/comfy-angle/default.nix b/pkgs/development/python-modules/comfy-angle/default.nix index f3b8183637b3..5ded931efd39 100644 --- a/pkgs/development/python-modules/comfy-angle/default.nix +++ b/pkgs/development/python-modules/comfy-angle/default.nix @@ -1,5 +1,6 @@ { lib, + angle, buildPythonPackage, fetchFromGitHub, libGL, @@ -20,10 +21,15 @@ buildPythonPackage (finalAttrs: { hash = "sha256-FnS2aQmPb5a3dO9m5McpO5Kfyy1aOaboc+oAtYqauQo="; }; - postPatch = '' - mkdir -p comfy_angle/libs - ln -s ${lib.getLib libGL}/lib/{libEGL,libGLESv2}${stdenv.hostPlatform.extensions.sharedLibrary} comfy_angle/libs/ - ''; + # Upstream wheels bundle ANGLE on macOS; on Linux the system libGL provides EGL + postPatch = + let + egl = if stdenv.hostPlatform.isDarwin then angle else lib.getLib libGL; + in + '' + mkdir -p comfy_angle/libs + ln -s ${egl}/lib/{libEGL,libGLESv2}${stdenv.hostPlatform.extensions.sharedLibrary} comfy_angle/libs/ + ''; build-system = [ setuptools @@ -38,7 +44,7 @@ buildPythonPackage (finalAttrs: { description = "Redistributable ANGLE libraries"; homepage = "https://github.com/Comfy-Org/comfy-angle"; license = lib.licenses.bsd3; - platforms = lib.platforms.linux; + platforms = lib.platforms.linux ++ lib.platforms.darwin; inherit (comfyui.meta) maintainers; }; }) diff --git a/pkgs/development/python-modules/comfy-kitchen/default.nix b/pkgs/development/python-modules/comfy-kitchen/default.nix index 322db3afb236..cf73b780d018 100644 --- a/pkgs/development/python-modules/comfy-kitchen/default.nix +++ b/pkgs/development/python-modules/comfy-kitchen/default.nix @@ -17,15 +17,17 @@ let in buildPythonPackage (finalAttrs: { pname = "comfy-kitchen"; - version = "0.2.33"; + version = "0.2.35"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchFromGitHub { owner = "Comfy-Org"; repo = "comfy-kitchen"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-2wiUIF6zWSn8y/FK0czuKcuH5wD1HWNhyiQ2yC7AFT4="; + hash = "sha256-ymNZ4uuM59cOf+neC6tfr+NXH9f7LpF9ml7gsYfB4Fk="; }; buildInputs = lib.optionals cudaSupport ( diff --git a/pkgs/development/python-modules/comfyui-embedded-docs/default.nix b/pkgs/development/python-modules/comfyui-embedded-docs/default.nix index 0a1268164363..6e237ac94df7 100644 --- a/pkgs/development/python-modules/comfyui-embedded-docs/default.nix +++ b/pkgs/development/python-modules/comfyui-embedded-docs/default.nix @@ -8,13 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-embedded-docs"; - version = "0.5.11"; + version = "0.5.12"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_embedded_docs"; inherit (finalAttrs) version; - hash = "sha256-HetjmoWqXFY7ULa+ImvTPbG7OpeReI0sP7TYiMwv2n0="; + hash = "sha256-QKb7AIvnzFqcAUIlK9e93r1LBAczXennedlrFjoau0I="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/comfyui-frontend-package/default.nix b/pkgs/development/python-modules/comfyui-frontend-package/default.nix index cbedaaf27df9..a4b4062288a5 100644 --- a/pkgs/development/python-modules/comfyui-frontend-package/default.nix +++ b/pkgs/development/python-modules/comfyui-frontend-package/default.nix @@ -8,13 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-frontend-package"; - version = "1.51.10"; + version = "1.52.7"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_frontend_package"; inherit (finalAttrs) version; - hash = "sha256-li4bsdMGeQawCcYLyys1vL2ux0YCFyuXJ0Ww+ymNjcc="; + hash = "sha256-XLKH2CthihdZjMrmQd1Wreh8paRN3IVKdyVtveKa2kM="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-core/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-core/default.nix index 3c410e7837c5..af0fe1413440 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-core/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-core/default.nix @@ -8,13 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-workflow-templates-core"; - version = "0.3.337"; + version = "0.3.357"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_core"; inherit (finalAttrs) version; - hash = "sha256-JqN1DwmBwar8gT5U4FP7/W5e6YQTLqlgcM1fOl9l2fM="; + hash = "sha256-DCWykCQlJhIDvB+RCaLvvomn1OeKUO6nUbo15/O+uf4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-json/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-json/default.nix index 7f737e56296e..583f7d17d88b 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-json/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-json/default.nix @@ -8,13 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-workflow-templates-json"; - version = "0.1.72"; + version = "0.1.92"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_json"; inherit (finalAttrs) version; - hash = "sha256-m35dJtD1KYDmGkhLG5I9/dXKd2Pq9U6pJLn655SmpiA="; + hash = "sha256-PHq+d5L7DdQFpFCL8hxp3O1qOiy6MELE3mqslDh5T+I="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-api/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-api/default.nix index 25cdbfc7a5c6..bb8d056ab6f4 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-media-api/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-api/default.nix @@ -11,6 +11,8 @@ buildPythonPackage (finalAttrs: { version = "0.3.84"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_media_api"; inherit (finalAttrs) version; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-01/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-01/default.nix index c0be45bf95c5..972cc4e9639b 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-01/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-01/default.nix @@ -8,13 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-workflow-templates-media-assets-01"; - version = "0.1.43"; + version = "0.1.47"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_media_assets_01"; inherit (finalAttrs) version; - hash = "sha256-QJYhpsaQmLfgaE+9bLDOmeKXhp6nw7VOKdbQquRX+Hk="; + hash = "sha256-R8AUUFfROKiw1jr2b+kxwwkYJdVS6Cs48UCW59CVUFI="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-02/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-02/default.nix new file mode 100644 index 000000000000..03d5dda3424b --- /dev/null +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-assets-02/default.nix @@ -0,0 +1,34 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + setuptools, + comfyui, +}: + +buildPythonPackage (finalAttrs: { + pname = "comfyui-workflow-templates-media-assets-02"; + version = "0.1.3"; + pyproject = true; + + # nixpkgs-update: no auto update + # updated via comfyui + src = fetchPypi { + pname = "comfyui_workflow_templates_media_assets_02"; + inherit (finalAttrs) version; + hash = "sha256-VqEUtsbYFoySosWw7RySa09aFVkAr3+Bzcf9Bf1flCQ="; + }; + + build-system = [ setuptools ]; + + doCheck = false; + + pythonImportsCheck = [ "comfyui_workflow_templates_media_assets_02" ]; + + meta = { + description = "Media assets bundle 02 for ComfyUI workflow templates"; + homepage = "https://github.com/Comfy-Org/workflow_templates"; + license = lib.licenses.mit; + inherit (comfyui.meta) maintainers; + }; +}) diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-image/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-image/default.nix index 631a707567e6..6a79133e8057 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-media-image/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-image/default.nix @@ -11,6 +11,8 @@ buildPythonPackage (finalAttrs: { version = "0.3.160"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_media_image"; inherit (finalAttrs) version; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-other/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-other/default.nix index 7afc8b4dd2d3..638a055040ef 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-media-other/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-other/default.nix @@ -11,6 +11,8 @@ buildPythonPackage (finalAttrs: { version = "0.3.229"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_media_other"; inherit (finalAttrs) version; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates-media-video/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates-media-video/default.nix index 856eae8b86f5..f3944f2d97b0 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates-media-video/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates-media-video/default.nix @@ -11,6 +11,8 @@ buildPythonPackage (finalAttrs: { version = "0.3.101"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates_media_video"; inherit (finalAttrs) version; diff --git a/pkgs/development/python-modules/comfyui-workflow-templates/default.nix b/pkgs/development/python-modules/comfyui-workflow-templates/default.nix index fb3d2cdc2213..968b07f988d8 100644 --- a/pkgs/development/python-modules/comfyui-workflow-templates/default.nix +++ b/pkgs/development/python-modules/comfyui-workflow-templates/default.nix @@ -8,6 +8,7 @@ comfyui-workflow-templates-json, comfyui-workflow-templates-media-api, comfyui-workflow-templates-media-assets-01, + comfyui-workflow-templates-media-assets-02, comfyui-workflow-templates-media-video, comfyui-workflow-templates-media-image, comfyui-workflow-templates-media-other, @@ -15,13 +16,15 @@ buildPythonPackage (finalAttrs: { pname = "comfyui-workflow-templates"; - version = "0.11.57"; + version = "0.11.66"; pyproject = true; + # nixpkgs-update: no auto update + # updated via comfyui src = fetchPypi { pname = "comfyui_workflow_templates"; inherit (finalAttrs) version; - hash = "sha256-oGnYJKPnU8YDJI30/w3c7GjogQOsaik10mIZ+u8ndiI="; + hash = "sha256-PYTvWQ0u7MavD9lPHaEytxkdXOy35eze55qjd+D8tGI="; }; build-system = [ setuptools ]; @@ -31,6 +34,7 @@ buildPythonPackage (finalAttrs: { comfyui-workflow-templates-json comfyui-workflow-templates-media-api comfyui-workflow-templates-media-assets-01 + comfyui-workflow-templates-media-assets-02 comfyui-workflow-templates-media-image comfyui-workflow-templates-media-other comfyui-workflow-templates-media-video diff --git a/pkgs/development/python-modules/tesla-protocol/default.nix b/pkgs/development/python-modules/tesla-protocol/default.nix index f9d5a4e88afb..44f51586d400 100644 --- a/pkgs/development/python-modules/tesla-protocol/default.nix +++ b/pkgs/development/python-modules/tesla-protocol/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "tesla-protocol"; - version = "2.0.0"; + version = "3.0.0"; pyproject = true; src = fetchFromGitHub { owner = "Teslemetry"; repo = "tesla-protocol"; tag = "@teslemetry/tesla-protocol@${finalAttrs.version}"; - hash = "sha256-Zii0Hq4ow7tyMD2Vsjj8wMF4xAHIAYUHeum3htWcRx4="; + hash = "sha256-q5GDWaxgxVH9ZUiu0dKVcKJUo7A/pK+YtVvMrM6Ys88="; }; sourceRoot = "${finalAttrs.src.name}/packages/python"; diff --git a/pkgs/tools/text/mdcat/default.nix b/pkgs/tools/text/mdcat/default.nix index 941f65a84f76..9292d634c8d3 100644 --- a/pkgs/tools/text/mdcat/default.nix +++ b/pkgs/tools/text/mdcat/default.nix @@ -8,24 +8,21 @@ asciidoctor, openssl, ansi2html, + less, installShellFiles, }: rustPlatform.buildRustPackage rec { pname = "mdcat"; - version = "2.7.1"; + version = "2.17.0"; src = fetchFromGitHub { - owner = "swsnr"; + owner = "BIRSAx2"; repo = "mdcat"; rev = "mdcat-${version}"; - hash = "sha256-j6BFXx5cyjE3+fo1gGKlqpsxrm3i9HfQ9tJGNNjjLwo="; + hash = "sha256-pBKGxMUZ9U93HmotoItxIitijZ2yMBPduBv5Ul1yQyI="; }; - patches = [ - ./fix-clippy.diff - ]; - nativeBuildInputs = [ pkg-config asciidoctor @@ -36,19 +33,11 @@ rustPlatform.buildRustPackage rec { openssl ]; - cargoHash = "sha256-8A0RLbFkh3fruZAbjJzipQvuFLchqIRovPcc6MSKdOc="; + cargoHash = "sha256-9/v33gdd9dGCdEDf53u1bKhsQGQXCBrtSe5ZvCGN1LU="; - nativeCheckInputs = [ ansi2html ]; - # Skip tests that use the network and that include files. - checkFlags = [ - "--skip=magic::tests::detect_mimetype_of_larger_than_magic_param_bytes_max_length" - "--skip=magic::tests::detect_mimetype_of_magic_param_bytes_max_length" - "--skip=magic::tests::detect_mimetype_of_png_image" - "--skip=magic::tests::detect_mimetype_of_svg_image" - "--skip=resources::tests::read_url_with_http_url_fails_when_size_limit_is_exceeded" - "--skip=resources::tests::read_url_with_http_url_fails_when_status_404" - "--skip=resources::tests::read_url_with_http_url_returns_content_when_status_200" - "--skip=iterm2_tests_render_md_samples_images_md" + nativeCheckInputs = [ + ansi2html + less ]; postInstall = '' @@ -66,9 +55,12 @@ rustPlatform.buildRustPackage rec { meta = { description = "cat for markdown"; - homepage = "https://github.com/swsnr/mdcat"; - changelog = "https://github.com/swsnr/mdcat/releases/tag/mdcat-${version}"; + homepage = "https://github.com/BIRSAx2/mdcat"; + changelog = "https://github.com/BIRSAx2/mdcat/releases/tag/mdcat-${version}"; license = lib.licenses.mpl20; - maintainers = with lib.maintainers; [ SuperSandro2000 ]; + maintainers = with lib.maintainers; [ + SuperSandro2000 + giomf + ]; }; } diff --git a/pkgs/tools/text/mdcat/fix-clippy.diff b/pkgs/tools/text/mdcat/fix-clippy.diff deleted file mode 100644 index d54b75ffd581..000000000000 --- a/pkgs/tools/text/mdcat/fix-clippy.diff +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/pulldown-cmark-mdcat/src/terminal/osc.rs b/pulldown-cmark-mdcat/src/terminal/osc.rs -index 8fa2db6..dc2a2da 100644 ---- a/pulldown-cmark-mdcat/src/terminal/osc.rs -+++ b/pulldown-cmark-mdcat/src/terminal/osc.rs -@@ -20,9 +20,6 @@ pub fn write_osc(writer: &mut W, command: &str) -> Result<()> - Ok(()) - } - --#[derive(Debug, PartialEq, Eq, Copy, Clone)] --pub struct Osc8Links; -- - /// Whether the given `url` needs to get an explicit host. - /// - /// [OSC 8] links require that `file://` URLs give an explicit hostname, as diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fa2008778f5f..0a6adcfc4ac2 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3533,6 +3533,10 @@ self: super: with self; { callPackage ../development/python-modules/comfyui-workflow-templates-media-assets-01 { }; + comfyui-workflow-templates-media-assets-02 = + callPackage ../development/python-modules/comfyui-workflow-templates-media-assets-02 + { }; + comfyui-workflow-templates-media-image = callPackage ../development/python-modules/comfyui-workflow-templates-media-image { };