diff --git a/.github/workflows/update-terraform-providers.yml b/.github/workflows/update-terraform-providers.yml index 108c0590d6bb..77486c722287 100644 --- a/.github/workflows/update-terraform-providers.yml +++ b/.github/workflows/update-terraform-providers.yml @@ -46,7 +46,7 @@ jobs: run: | git clean -f - name: create PR - uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2 + uses: peter-evans/create-pull-request@a4f52f8033a6168103c2538976c07b467e8163bc # v6.0.1 with: body: | Automatic update by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action. diff --git a/doc/languages-frameworks/qt.section.md b/doc/languages-frameworks/qt.section.md index 1edceb53cfe4..dcec4b6fff42 100644 --- a/doc/languages-frameworks/qt.section.md +++ b/doc/languages-frameworks/qt.section.md @@ -12,7 +12,7 @@ an extra indirection. ## Nix expression for a Qt package (default.nix) {#qt-default-nix} ```nix -{ stdenv, lib, qt6, wrapQtAppsHook }: +{ stdenv, qt6 }: stdenv.mkDerivation { pname = "myapp"; @@ -23,10 +23,12 @@ stdenv.mkDerivation { } ``` +The same goes for Qt 5 where libraries and tools are under `libsForQt5`. + Any Qt package should include `wrapQtAppsHook` in `nativeBuildInputs`, or explicitly set `dontWrapQtApps` to bypass generating the wrappers. ::: {.note} -Graphical Linux applications should also include `qtwayland` in `buildInputs`, to ensure the Wayland platform plugin is available. +Qt 6 graphical applications should also include `qtwayland` in `buildInputs` on Linux (but not on platforms e.g. Darwin, where `qtwayland` is not available), to ensure the Wayland platform plugin is available. This may become default in the future, see [NixOS/nixpkgs#269674](https://github.com/NixOS/nixpkgs/pull/269674). ::: diff --git a/nixos/modules/programs/steam.nix b/nixos/modules/programs/steam.nix index c7f1e622f7ba..d6e2a82af100 100644 --- a/nixos/modules/programs/steam.nix +++ b/nixos/modules/programs/steam.nix @@ -56,6 +56,8 @@ in { # use the setuid wrapped bubblewrap bubblewrap = "${config.security.wrapperDir}/.."; }; + } // optionalAttrs cfg.extest.enable { + extraEnv.LD_PRELOAD = "${pkgs.pkgsi686Linux.extest}/lib/libextest.so"; }); description = lib.mdDoc '' The Steam package to use. Additional libraries are added from the system @@ -114,6 +116,11 @@ in { }; }; }; + + extest.enable = mkEnableOption (lib.mdDoc '' + Load the extest library into Steam, to translate X11 input events to + uinput events (e.g. for using Steam Input on Wayland) + ''); }; config = mkIf cfg.enable { diff --git a/pkgs/applications/audio/lv2lint/default.nix b/pkgs/applications/audio/lv2lint/default.nix index cc840722cdb9..85d373390562 100644 --- a/pkgs/applications/audio/lv2lint/default.nix +++ b/pkgs/applications/audio/lv2lint/default.nix @@ -1,23 +1,33 @@ -{ stdenv, lib, fetchurl, pkg-config, meson, ninja, lv2, lilv, curl, libelf }: +{ stdenv, lib, fetchFromSourcehut, pkg-config, meson, ninja, lv2, lilv, curl, elfutils, xorg }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "lv2lint"; version = "0.16.2"; - src = fetchurl { - url = "https://git.open-music-kontrollers.ch/lv2/${pname}/snapshot/${pname}-${version}.tar.xz"; - sha256 = "sha256-sjgQVx8uGNPWcUwKzGUhChpfzXj/8D8cggVTpcHEXPQ="; + src = fetchFromSourcehut { + domain = "open-music-kontrollers.ch"; + owner = "~hp"; + repo = "lv2lint"; + rev = finalAttrs.version; + hash = "sha256-NkzbKteLZ+P+Py+CMOYYipvu6psDslWnM1MAV1XB0TM="; }; nativeBuildInputs = [ pkg-config meson ninja ]; - buildInputs = [ lv2 lilv curl libelf ]; + + buildInputs = [ lv2 lilv curl elfutils xorg.libX11 ]; + + mesonFlags = [ + (lib.mesonEnable "online-tests" true) + (lib.mesonEnable "elf-tests" true) + (lib.mesonEnable "x11-tests" true) + ]; meta = with lib; { description = "Check whether a given LV2 plugin is up to the specification"; - homepage = "https://open-music-kontrollers.ch/lv2/${pname}:"; + homepage = "https://git.open-music-kontrollers.ch/~hp/lv2lint"; license = licenses.artistic2; maintainers = [ maintainers.magnetophon ]; - platforms = platforms.all; + platforms = platforms.linux; mainProgram = "lv2lint"; }; -} +}) diff --git a/pkgs/build-support/writers/scripts.nix b/pkgs/build-support/writers/scripts.nix index edc7ede4d5bd..8a23e5dd4a66 100644 --- a/pkgs/build-support/writers/scripts.nix +++ b/pkgs/build-support/writers/scripts.nix @@ -1,14 +1,4 @@ -{ - buildPackages, - gixy, - lib, - libiconv, - makeBinaryWrapper, - mkNugetDeps, - mkNugetSource, - pkgs, - stdenv, -}: +{ pkgs, buildPackages, lib, stdenv, libiconv, mkNugetDeps, mkNugetSource, gixy }: let inherit (lib) concatMapStringsSep @@ -16,6 +6,7 @@ let escapeShellArg last optionalString + stringLength strings types ; @@ -27,285 +18,137 @@ rec { # Examples: # writeBash = makeScriptWriter { interpreter = "${pkgs.bash}/bin/bash"; } # makeScriptWriter { interpreter = "${pkgs.dash}/bin/dash"; } "hello" "echo hello world" - makeScriptWriter = { interpreter, check ? "", makeWrapperArgs ? [], }: nameOrPath: content: + makeScriptWriter = { interpreter, check ? "" }: nameOrPath: content: assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); assert lib.or (types.path.check content) (types.str.check content); let - nameIsPath = types.path.check nameOrPath; 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. - inner = - pkgs.runCommandLocal name ( - { - inherit makeWrapperArgs; - nativeBuildInputs = [ - makeBinaryWrapper - ]; - meta.mainProgram = name; - } - // ( - if (types.str.check content) then { - inherit content interpreter; - passAsFile = [ "content" ]; - } else { - inherit interpreter; - contentPath = content; - } - ) - ) - '' - # On darwin a script cannot be used as an interpreter in a shebang but - # there doesn't seem to be a limit to the size of shebang and multiple - # arguments to the interpreter are allowed. - if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter - then - wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3) - # Get first word from the line (note: xargs echo remove leading spaces) - wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1) + in - if isScript $wrapperInterpreter - then - echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported." - exit 1 - fi + pkgs.runCommandLocal name ( + lib.optionalAttrs (nameOrPath == "/bin/${name}") { + meta.mainProgram = name; + } + // ( + if (types.str.check content) then { + inherit content interpreter; + passAsFile = [ "content" ]; + } else { + inherit interpreter; + contentPath = content; + } + ) + ) + '' + # On darwin a script cannot be used as an interpreter in a shebang but + # there doesn't seem to be a limit to the size of shebang and multiple + # arguments to the interpreter are allowed. + if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter + then + wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3) + # Get first word from the line (note: xargs echo remove leading spaces) + wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1) - # This should work as long as wrapperInterpreter is a shell, which is - # the case for programs wrapped with makeWrapper, like - # python3.withPackages etc. - interpreterLine="$wrapperInterpreterLine $interpreter" - else - interpreterLine=$interpreter - fi + if isScript $wrapperInterpreter + then + echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported." + exit 1 + fi - echo "#! $interpreterLine" > $out - cat "$contentPath" >> $out - ${optionalString (check != "") '' - ${check} $out - ''} - chmod +x $out - - # Relocate executable - # Wrap it if makeWrapperArgs are specified - mv $out tmp - mkdir -p $out/$(dirname "${path}") - mv tmp $out/${path} - if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then - wrapProgram $out/${path} ''${makeWrapperArgs[@]} - fi - ''; - in - if nameIsPath - then inner - # In case nameOrPath is a name, the user intends the executable to be located at $out. - # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. - # This breaks the override pattern. - # In case this turns out to be a problem, we can still add more magic - else pkgs.runCommandLocal name {} '' - ln -s ${inner}/bin/${name} $out - ''; + # This should work as long as wrapperInterpreter is a shell, which is + # the case for programs wrapped with makeWrapper, like + # python3.withPackages etc. + interpreterLine="$wrapperInterpreterLine $interpreter" + else + interpreterLine=$interpreter + fi + echo "#! $interpreterLine" > $out + cat "$contentPath" >> $out + ${optionalString (check != "") '' + ${check} $out + ''} + chmod +x $out + ${optionalString (types.path.check nameOrPath) '' + mv $out tmp + mkdir -p $out/$(dirname "${nameOrPath}") + mv tmp $out/${nameOrPath} + ''} + ''; # Base implementation for compiled executables. # Takes a compile script, which in turn takes the name as an argument. # # Examples: # writeSimpleC = makeBinWriter { compileScript = name: "gcc -o $out $contentPath"; } - makeBinWriter = { compileScript, strip ? true, makeWrapperArgs ? [] }: nameOrPath: content: + makeBinWriter = { compileScript, strip ? true }: nameOrPath: content: assert lib.or (types.path.check nameOrPath) (builtins.match "([0-9A-Za-z._])[0-9A-Za-z._-]*" nameOrPath != null); assert lib.or (types.path.check content) (types.str.check content); let - nameIsPath = types.path.check nameOrPath; 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. - inner = - pkgs.runCommandLocal name ( - { - inherit makeWrapperArgs; - nativeBuildInputs = [ - makeBinaryWrapper - ]; - meta.mainProgram = name; - } - // ( - if (types.str.check content) then { - inherit content; - passAsFile = [ "content" ]; - } else { - contentPath = content; - } - ) - ) - '' - ${compileScript} - ${lib.optionalString strip - "${lib.getBin buildPackages.bintools-unwrapped}/bin/${buildPackages.bintools-unwrapped.targetPrefix}strip -S $out"} - # Sometimes binaries produced for darwin (e. g. by GHC) won't be valid - # mach-o executables from the get-go, but need to be corrected somehow - # which is done by fixupPhase. - ${lib.optionalString pkgs.stdenvNoCC.hostPlatform.isDarwin "fixupPhase"} - mv $out tmp - mkdir -p $out/$(dirname "${path}") - mv tmp $out/${path} - if [ -n "''${makeWrapperArgs+''${makeWrapperArgs[@]}}" ]; then - wrapProgram $out/${path} ''${makeWrapperArgs[@]} - fi - ''; in - if nameIsPath - then inner - # In case nameOrPath is a name, the user intends the executable to be located at $out. - # This is achieved by creating a separate derivation containing a symlink at $out linking to ${inner}/bin/${name}. - # This breaks the override pattern. - # In case this turns out to be a problem, we can still add more magic - else pkgs.runCommandLocal name {} '' - ln -s ${inner}/bin/${name} $out - ''; + pkgs.runCommand name ((if (types.str.check content) then { + inherit content; + passAsFile = [ "content" ]; + } else { + contentPath = content; + }) // lib.optionalAttrs (nameOrPath == "/bin/${name}") { + meta.mainProgram = name; + }) '' + ${compileScript} + ${lib.optionalString strip + "${lib.getBin buildPackages.bintools-unwrapped}/bin/${buildPackages.bintools-unwrapped.targetPrefix}strip -S $out"} + # Sometimes binaries produced for darwin (e. g. by GHC) won't be valid + # mach-o executables from the get-go, but need to be corrected somehow + # which is done by fixupPhase. + ${lib.optionalString pkgs.stdenvNoCC.hostPlatform.isDarwin "fixupPhase"} + ${optionalString (types.path.check nameOrPath) '' + mv $out tmp + mkdir -p $out/$(dirname "${nameOrPath}") + mv tmp $out/${nameOrPath} + ''} + ''; # Like writeScript but the first line is a shebang to bash # - # Can be called with or without extra arguments. - # - # Example without arguments: + # Example: # writeBash "example" '' # echo hello world # '' - # - # Example with arguments: - # writeBash "example" - # { - # makeWrapperArgs = [ - # "--prefix" "PATH" ":" "${pkgs.hello}/bin" - # ]; - # } - # '' - # hello - # '' - writeBash = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.bash}"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.bash}"; } name argsOrScript; + writeBash = makeScriptWriter { + interpreter = "${lib.getExe pkgs.bash}"; + }; # Like writeScriptBin but the first line is a shebang to bash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeBashBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeBashBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' writeBashBin = name: writeBash "/bin/${name}"; # Like writeScript but the first line is a shebang to dash # - # Can be called with or without extra arguments. - # - # Example without arguments: + # Example: # writeDash "example" '' # echo hello world # '' - # - # Example with arguments: - # writeDash "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - writeDash = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.dash}"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.dash}"; } name argsOrScript; + writeDash = makeScriptWriter { + interpreter = "${lib.getExe pkgs.dash}"; + }; # Like writeScriptBin but the first line is a shebang to dash - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeDashBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeDashBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' writeDashBin = name: writeDash "/bin/${name}"; # Like writeScript but the first line is a shebang to fish # - # Can be called with or without extra arguments. - # - # Example without arguments: + # Example: # writeFish "example" '' # echo hello world # '' - # - # Example with arguments: - # writeFish "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - writeFish = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { - interpreter = "${lib.getExe pkgs.fish} --no-config"; - check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only - }) name - else makeScriptWriter { - interpreter = "${lib.getExe pkgs.fish} --no-config"; - check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only - } name argsOrScript; + writeFish = makeScriptWriter { + interpreter = "${lib.getExe pkgs.fish} --no-config"; + check = "${lib.getExe pkgs.fish} --no-config --no-execute"; # syntax check only + }; # Like writeScriptBin but the first line is a shebang to fish - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeFishBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeFishBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' writeFishBin = name: writeFish "/bin/${name}"; @@ -319,12 +162,11 @@ rec { # main = launchMissiles # ''; writeHaskell = name: { + libraries ? [], ghc ? pkgs.ghc, ghcArgs ? [], - libraries ? [], - makeWrapperArgs ? [], - strip ? true, threadedRuntime ? true, + strip ? true }: let appendIfNotSet = el: list: if elem el list then list else list ++ [ el ]; @@ -336,7 +178,7 @@ rec { ${(ghc.withPackages (_: libraries ))}/bin/ghc ${lib.escapeShellArgs ghcArgs'} tmp.hs mv tmp $out ''; - inherit makeWrapperArgs strip; + inherit strip; } name; # writeHaskellBin takes the same arguments as writeHaskell but outputs a directory (like writeScriptBin) @@ -345,72 +187,36 @@ rec { # Like writeScript but the first line is a shebang to nu # - # Can be called with or without extra arguments. - # - # Example without arguments: + # Example: # writeNu "example" '' # echo hello world # '' - # - # Example with arguments: - # writeNu "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' - writeNu = name: argsOrScript: - if lib.isAttrs argsOrScript && ! lib.isDerivation argsOrScript - then makeScriptWriter (argsOrScript // { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; }) name - else makeScriptWriter { interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; } name argsOrScript; - + writeNu = makeScriptWriter { + interpreter = "${lib.getExe pkgs.nushell} --no-config-file"; + }; # Like writeScriptBin but the first line is a shebang to nu - # - # Can be called with or without extra arguments. - # - # Example without arguments: - # writeNuBin "example" '' - # echo hello world - # '' - # - # Example with arguments: - # writeNuBin "example" - # { - # makeWrapperArgs = [ - # "--prefix", "PATH", ":", "${pkgs.hello}/bin", - # ]; - # } - # '' - # hello - # '' writeNuBin = name: writeNu "/bin/${name}"; # makeRubyWriter takes ruby and compatible rubyPackages and produces ruby script writer, # If any libraries are specified, ruby.withPackages is used as interpreter, otherwise the "bare" ruby is used. - makeRubyWriter = ruby: rubyPackages: buildRubyPackages: name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) - // { - interpreter = - if libraries == [] - then "${ruby}/bin/ruby" - else "${(ruby.withPackages (ps: libraries))}/bin/ruby"; - # Rubocop doesn't seem to like running in this fashion. - #check = (writeDash "rubocop.sh" '' - # exec ${lib.getExe buildRubyPackages.rubocop} "$1" - #''); - } - ) name; + makeRubyWriter = ruby: rubyPackages: buildRubyPackages: name: { libraries ? [], }: + makeScriptWriter { + interpreter = + if libraries == [] + then "${ruby}/bin/ruby" + else "${(ruby.withPackages (ps: libraries))}/bin/ruby"; + # Rubocop doesnt seem to like running in this fashion. + #check = (writeDash "rubocop.sh" '' + # exec ${lib.getExe buildRubyPackages.rubocop} "$1" + #''); + } name; # Like writeScript but the first line is a shebang to ruby # # Example: - # writeRuby "example" { libraries = [ pkgs.rubyPackages.git ]; } '' + # writeRuby "example" '' # puts "hello world" # '' writeRuby = makeRubyWriter pkgs.ruby pkgs.rubyPackages buildPackages.rubyPackages; @@ -421,20 +227,17 @@ rec { # makeLuaWriter takes lua and compatible luaPackages and produces lua script writer, # which validates the script with luacheck at build time. If any libraries are specified, # lua.withPackages is used as interpreter, otherwise the "bare" lua is used. - makeLuaWriter = lua: luaPackages: buildLuaPackages: name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) - // { - interpreter = lua.interpreter; - # if libraries == [] - # then lua.interpreter - # else (lua.withPackages (ps: libraries)).interpreter - # This should support packages! I just cant figure out why some dependency collision happens whenever I try to run this. - check = (writeDash "luacheck.sh" '' - exec ${buildLuaPackages.luacheck}/bin/luacheck "$1" - ''); - } - ) name; + makeLuaWriter = lua: luaPackages: buildLuaPackages: name: { libraries ? [], }: + makeScriptWriter { + interpreter = lua.interpreter; + # if libraries == [] + # then lua.interpreter + # else (lua.withPackages (ps: libraries)).interpreter + # This should support packages! I just cant figure out why some dependency collision happens whenever I try to run this. + check = (writeDash "luacheck.sh" '' + exec ${buildLuaPackages.luacheck}/bin/luacheck "$1" + ''); + } name; # writeLua takes a name an attributeset with libraries and some lua source code and # returns an executable (should also work with luajit) @@ -462,10 +265,9 @@ rec { writeLua "/bin/${name}"; writeRust = name: { - makeWrapperArgs ? [], - rustc ? pkgs.rustc, - rustcArgs ? [], - strip ? true, + rustc ? pkgs.rustc, + rustcArgs ? [], + strip ? true }: let darwinArgs = lib.optionals stdenv.isDarwin [ "-L${lib.getLib libiconv}/lib" ]; @@ -475,7 +277,7 @@ rec { cp "$contentPath" tmp.rs PATH=${lib.makeBinPath [pkgs.gcc]} ${rustc}/bin/rustc ${lib.escapeShellArgs rustcArgs} ${lib.escapeShellArgs darwinArgs} -o "$out" tmp.rs ''; - inherit makeWrapperArgs strip; + inherit strip; } name; writeRustBin = name: @@ -535,13 +337,10 @@ rec { # use boolean; # print "Howdy!\n" if true; # '' - writePerl = name: { libraries ? [], ... } @ args: - makeScriptWriter ( - (builtins.removeAttrs args ["libraries"]) - // { - interpreter = "${lib.getExe (pkgs.perl.withPackages (p: libraries))}"; - } - ) name; + writePerl = name: { libraries ? [] }: + makeScriptWriter { + interpreter = "${lib.getExe (pkgs.perl.withPackages (p: libraries))}"; + } name; # writePerlBin takes the same arguments as writePerl but outputs a directory (like writeScriptBin) writePerlBin = name: @@ -550,27 +349,22 @@ rec { # makePythonWriter takes python and compatible pythonPackages and produces python script writer, # which validates the script with flake8 at build time. If any libraries are specified, # python.withPackages is used as interpreter, otherwise the "bare" python is used. - makePythonWriter = python: pythonPackages: buildPythonPackages: name: { libraries ? [], flakeIgnore ? [], ... } @ args: + makePythonWriter = python: pythonPackages: buildPythonPackages: name: { libraries ? [], flakeIgnore ? [] }: let ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}"; in - makeScriptWriter - ( - (builtins.removeAttrs args ["libraries" "flakeIgnore"]) - // { - interpreter = - if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then - if libraries == [] - then python.interpreter - else (python.withPackages (ps: libraries)).interpreter - else python.interpreter - ; - check = optionalString python.isPy3k (writeDash "pythoncheck.sh" '' - exec ${buildPythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1" - ''); - } - ) - name; + makeScriptWriter { + interpreter = + if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then + if libraries == [] + then python.interpreter + else (python.withPackages (ps: libraries)).interpreter + else python.interpreter + ; + check = optionalString python.isPy3k (writeDash "pythoncheck.sh" '' + exec ${buildPythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1" + ''); + } name; # writePyPy2 takes a name an attributeset with libraries and some pypy2 sourcecode and # returns an executable @@ -627,7 +421,7 @@ rec { writePyPy3 "/bin/${name}"; - makeFSharpWriter = { dotnet-sdk ? pkgs.dotnet-sdk, fsi-flags ? "", libraries ? _: [], ... } @ args: nameOrPath: + makeFSharpWriter = { dotnet-sdk ? pkgs.dotnet-sdk, fsi-flags ? "", libraries ? _: [] }: nameOrPath: let fname = last (builtins.split "/" nameOrPath); path = if strings.hasSuffix ".fsx" nameOrPath then nameOrPath else "${nameOrPath}.fsx"; @@ -648,12 +442,9 @@ rec { ${lib.getExe dotnet-sdk} fsi --quiet --nologo --readline- ${fsi-flags} "$@" < "$script" ''; - in content: makeScriptWriter ( - (builtins.removeAttrs args ["dotnet-sdk" "fsi-flags" "libraries"]) - // { - interpreter = fsi; - } - ) path + in content: makeScriptWriter { + interpreter = fsi; + } path '' #i "nuget: ${nuget-source}/lib" ${ content } @@ -665,4 +456,5 @@ rec { writeFSharpBin = name: writeFSharp "/bin/${name}"; + } diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix index df0eb340d9ae..982c550d28e0 100644 --- a/pkgs/build-support/writers/test.nix +++ b/pkgs/build-support/writers/test.nix @@ -1,8 +1,13 @@ -{ haskellPackages +{ glib +, haskellPackages , lib , nodePackages , perlPackages +, pypy2Packages , python3Packages +, pypy3Packages +, luaPackages +, rubyPackages , runCommand , testers , writers @@ -305,85 +310,4 @@ lib.recurseIntoAttrs { expected = "hello: world\n"; }; }; - - wrapping = lib.recurseIntoAttrs { - bash-bin = expectSuccessBin ( - writeBashBin "test-writers-wrapping-bash-bin" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - if [[ "$ThaigerSprint" == "Thailand" ]]; then - echo "success" - fi - '' - ); - - bash = expectSuccess ( - writeBash "test-writers-wrapping-bash" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - if [[ "$ThaigerSprint" == "Thailand" ]]; then - echo "success" - fi - '' - ); - - python = expectSuccess ( - writePython3 "test-writers-wrapping-python" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - import os - - if os.environ.get("ThaigerSprint") == "Thailand": - print("success") - '' - ); - - rust = expectSuccess ( - writeRust "test-writers-wrapping-rust" - { - makeWrapperArgs = [ - "--set" - "ThaigerSprint" - "Thailand" - ]; - } - '' - fn main(){ - if std::env::var("ThaigerSprint").unwrap() == "Thailand" { - println!("success") - } - } - '' - ); - - no-empty-wrapper = let - bin = writeBashBin "bin" { makeWrapperArgs = []; } ''true''; - in runCommand "run-test-writers-wrapping-no-empty-wrapper" {} '' - ls -A ${bin}/bin - if [ $(ls -A ${bin}/bin | wc -l) -eq 1 ]; then - touch $out - else - echo "Error: Empty wrapper was created" >&2 - exit 1 - fi - ''; - }; } diff --git a/pkgs/by-name/ad/adalanche/package.nix b/pkgs/by-name/ad/adalanche/package.nix new file mode 100644 index 000000000000..109b327333ac --- /dev/null +++ b/pkgs/by-name/ad/adalanche/package.nix @@ -0,0 +1,42 @@ +{ lib +, buildGoModule +, fetchFromGitHub +, libpcap +}: + +buildGoModule rec { + pname = "adalanche"; + version = "2024.1.11"; + + src = fetchFromGitHub { + owner = "lkarlslund"; + repo = "adalanche"; + rev = "refs/tags/v${version}"; + hash = "sha256-SJa2PQCXTYdv5jMucpJOD2gC7Qk2dNdINHW4ZvLXSLw="; + }; + + vendorHash = "sha256-3HulDSR6rWyxvImWBH1m5nfUwnUDQO9ALfyT2D8xmJc="; + + buildInputs = [ + libpcap + ]; + + ldflags = [ + "-s" + "-w" + "-X=github.com/lkarlslund/adalanche/modules/version.Version=${version}" + ]; + + env = { + CGO_CFLAGS = "-Wno-undef-prefix"; + }; + + meta = with lib; { + description = "Active Directory ACL Visualizer and Explorer"; + homepage = "https://github.com/lkarlslund/adalanche"; + changelog = "https://github.com/lkarlslund/Adalanche/releases/tag/v${version}"; + license = licenses.agpl3Only; + maintainers = with maintainers; [ fab ]; + mainProgram = "adalanche"; + }; +} diff --git a/pkgs/by-name/di/dirbuster/package.nix b/pkgs/by-name/di/dirbuster/package.nix new file mode 100644 index 000000000000..59b41efab6ea --- /dev/null +++ b/pkgs/by-name/di/dirbuster/package.nix @@ -0,0 +1,72 @@ +{ lib +, stdenv +, fetchurl +, makeBinaryWrapper +, copyDesktopItems +, makeDesktopItem +, unzip +, jdk8 +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "dirbuster"; + version = "1.0-RC1"; + + src = fetchurl { + url = "mirror://sourceforge/dirbuster/DirBuster%20(jar%20%2B%20lists)/${finalAttrs.version}/DirBuster-${finalAttrs.version}.tar.bz2"; + hash = "sha256-UoEt1NkaLsKux3lr+AB+TZCCshQs2hIo63igT39V68E="; + }; + + desktopItems = [ + (makeDesktopItem { + name = "dirbuster"; + desktopName = "OWASP DirBuster"; + exec = "dirbuster"; + icon = "dirbuster"; + comment = "Web Application Brute Forcing"; + categories = [ "Network" ]; + }) + ]; + + nativeBuildInputs = [ + makeBinaryWrapper + copyDesktopItems + unzip + ]; + + installPhase = '' + runHook preInstall + + export JAR=$out/share/java/dirbuster.jar + install -Dm444 DirBuster-${finalAttrs.version}.jar $JAR + makeWrapper ${jdk8}/bin/java $out/bin/dirbuster \ + --add-flags "-Duser.dir=$out/share/dirbuster/" \ + --add-flags "-Xmx256M" \ + --add-flags "-jar $JAR" + + cp -r lib/ $out/share/java/lib/ + + # Copy wordlists + mkdir -p $out/share/dirbuster + for f in *.txt; do + cp $f $out/share/dirbuster/ + done + + # Extract embedded desktop icon + mkdir -p $out/share/pixmaps + unzip $JAR + strings com/sittinglittleduck/DirBuster/ImageCreator.class | grep iVBORw0KG | base64 -d > $out/share/pixmaps/dirbuster.png + + runHook postInstall + ''; + + meta = { + description = "Brute force directories and files names on web/application servers"; + homepage = "https://wiki.owasp.org/index.php/Category:OWASP_DirBuster_Project"; + license = lib.licenses.lgpl21Only; + mainProgram = "dirbuster"; + maintainers = with lib.maintainers; [ emilytrau ]; + platforms = lib.platforms.all; + sourceProvenance = with lib.sourceTypes; [ binaryBytecode ]; + }; +}) diff --git a/pkgs/by-name/ex/extest/package.nix b/pkgs/by-name/ex/extest/package.nix new file mode 100644 index 000000000000..a0df42265da5 --- /dev/null +++ b/pkgs/by-name/ex/extest/package.nix @@ -0,0 +1,26 @@ +{ lib +, fetchFromGitHub +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "extest"; + version = "1.0.2"; + + src = fetchFromGitHub { + owner = "Supreeeme"; + repo = "extest"; + rev = version; + hash = "sha256-qdTF4n3uhkl3WFT+7bAlwCjxBx3ggTN6i3WzFg+8Jrw="; + }; + + cargoHash = "sha256-JZPiTzr9KaaqiXKhsGOYmYMtjNzPQzKhqyfSlbeqME8="; + + meta = with lib; { + description = "X11 XTEST reimplementation primarily for Steam Controller on Wayland"; + homepage = "https://github.com/Supreeeme/extest"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = [ maintainers.puffnfresh ]; + }; +} diff --git a/pkgs/by-name/pq/pql/package.nix b/pkgs/by-name/pq/pql/package.nix new file mode 100644 index 000000000000..9697d80ad25f --- /dev/null +++ b/pkgs/by-name/pq/pql/package.nix @@ -0,0 +1,28 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "pql"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "runreveal"; + repo = "pql"; + rev = "v${version}"; + hash = "sha256-xNWwjDdnF4+IvS814iJlqCFYNOGNF2nHEnnbRqxJsjM="; + }; + + vendorHash = "sha256-j/R+1PWfX+lmm99cHWSuo+v8RxKg089Bvb4rFHpmpfE="; + + ldflags = [ "-s" "-w" ]; + + meta = with lib; { + description = "Pipelined Query Language"; + homepage = "https://github.com/runreveal/pql"; + license = licenses.asl20; + maintainers = with maintainers; [ dit7ya ]; + mainProgram = "pql"; + }; +} diff --git a/pkgs/by-name/re/ready-check/package.nix b/pkgs/by-name/re/ready-check/package.nix index 410c4c188a40..84dcc83454a7 100644 --- a/pkgs/by-name/re/ready-check/package.nix +++ b/pkgs/by-name/re/ready-check/package.nix @@ -5,14 +5,14 @@ python3.pkgs.buildPythonApplication rec { pname = "ready-check"; - version = "1.2.5"; + version = "1.2.6"; pyproject = true; src = fetchFromGitHub { owner = "sesh"; repo = "ready"; rev = "refs/tags/v${version}"; - hash = "sha256-eerYxpn1f+d1PQJCDlH9kD1KKlkL/dQFUpbSRcNoXlI="; + hash = "sha256-j0UY2Q1jYGRtjvaWMwgMJrNaQZQnEJ5ST4o4PAVYWVc="; }; nativeBuildInputs = with python3.pkgs; [ diff --git a/pkgs/development/python-modules/aioapcaccess/default.nix b/pkgs/development/python-modules/aioapcaccess/default.nix index 373324848222..6d6c70955251 100644 --- a/pkgs/development/python-modules/aioapcaccess/default.nix +++ b/pkgs/development/python-modules/aioapcaccess/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "aioapcaccess"; - version = "0.4.2"; + version = "0.5.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "yuxincs"; repo = "aioapcaccess"; rev = "refs/tags/v${version}"; - hash = "sha256-Ig9aQduM9wby3DzPjvbubihopwhdMXHovMo3Id47mRk="; + hash = "sha256-nI8hfHfSLMOKPcG5idYqqa/msJuR/Xt+JmgzdftlN28="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/connect_box/default.nix b/pkgs/development/python-modules/connect-box/default.nix similarity index 100% rename from pkgs/development/python-modules/connect_box/default.nix rename to pkgs/development/python-modules/connect-box/default.nix diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix index 6fb8974642ee..d95aa2b2323a 100644 --- a/pkgs/development/python-modules/influxdb-client/default.nix +++ b/pkgs/development/python-modules/influxdb-client/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "influxdb-client"; - version = "1.40.0"; + version = "1.41.0"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "influxdata"; repo = "influxdb-client-python"; rev = "refs/tags/v${version}"; - hash = "sha256-+I5DxcxNxIRDwtfYXLvXPl8Z3FKcSWyaYtv1KHT9QO4="; + hash = "sha256-wrgbc8sMISJvXxefGl2PBsJ3d308BXVH7wYIeaFmdZ8="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix index 1790e26f585d..12122b8fb387 100644 --- a/pkgs/development/python-modules/langchain-community/default.nix +++ b/pkgs/development/python-modules/langchain-community/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "langchain-community"; - version = "0.0.24"; + version = "0.0.25"; pyproject = true; disabled = pythonOlder "3.8"; @@ -25,7 +25,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "langchain_community"; inherit version; - hash = "sha256-/WCfbJYsykt7dfIVnx+/dLFP3UUBHuK+U+ldtOZ4g38="; + hash = "sha256-tsjBTNbsJjXlHjl0v3io3juVm77bSvVarRZPjPOS8MU="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/langchain-text-splitters/default.nix b/pkgs/development/python-modules/langchain-text-splitters/default.nix new file mode 100644 index 000000000000..81cb942e5155 --- /dev/null +++ b/pkgs/development/python-modules/langchain-text-splitters/default.nix @@ -0,0 +1,45 @@ +{ lib +, buildPythonPackage +, fetchPypi +, poetry-core +, langchain-core +, lxml +, pythonOlder +}: + +buildPythonPackage rec { + pname = "langchain-text-splitters"; + version = "0.0.1"; + pyproject = true; + + disabled = pythonOlder "3.9"; + + src = fetchPypi { + pname = "langchain_text_splitters"; + inherit version; + hash = "sha256-rEWfqYeZ9RF61UJakzCyGWEyHjC8GaKi+fdh3a3WKqE="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + propagatedBuildInputs = [ + langchain-core + lxml + ]; + + # PyPI source does not have tests + doCheck = false; + + pythonImportsCheck = [ + "langchain_text_splitters" + ]; + + meta = with lib; { + description = "Build context-aware reasoning applications"; + homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/text-splitters"; + license = licenses.mit; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix index a8da3cce93cd..2d32125020ed 100644 --- a/pkgs/development/python-modules/langchain/default.nix +++ b/pkgs/development/python-modules/langchain/default.nix @@ -11,6 +11,7 @@ , langsmith , langchain-core , langchain-community +, langchain-text-splitters , numpy , pydantic , pyyaml @@ -51,7 +52,7 @@ buildPythonPackage rec { pname = "langchain"; - version = "0.1.9"; + version = "0.1.10"; pyproject = true; disabled = pythonOlder "3.8"; @@ -60,7 +61,7 @@ buildPythonPackage rec { owner = "langchain-ai"; repo = "langchain"; rev = "refs/tags/v${version}"; - hash = "sha256-AgEze4JUo3i6HCg541tz/gV6g+zrueyOljy/TXUYBV4="; + hash = "sha256-wSm+n66CWvvR1ljrmmmE1wOX/CaCNgf8AKBZl5+I07A="; }; sourceRoot = "${src.name}/libs/langchain"; @@ -79,6 +80,7 @@ buildPythonPackage rec { jsonpatch langchain-community langchain-core + langchain-text-splitters langsmith numpy pydantic diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix index 98f31581f78c..ef3cfaf45d99 100644 --- a/pkgs/development/python-modules/langsmith/default.nix +++ b/pkgs/development/python-modules/langsmith/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "langsmith"; - version = "0.1.13"; + version = "0.1.14"; pyproject = true; disabled = pythonOlder "3.8"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "langchain-ai"; repo = "langsmith-sdk"; rev = "refs/tags/v${version}"; - hash = "sha256-An9E0vT8WJaEcq0QOasnIgHkK1cdV7H5OLqa0EVWd5Q="; + hash = "sha256-fq2PqV6RqJatm7z17YbTMxf3tKDUPpmcd1IVh7rMWZg="; }; sourceRoot = "${src.name}/python"; diff --git a/pkgs/development/python-modules/mkdocstrings/default.nix b/pkgs/development/python-modules/mkdocstrings/default.nix index 219f0e63c7b1..39f18a39b005 100644 --- a/pkgs/development/python-modules/mkdocstrings/default.nix +++ b/pkgs/development/python-modules/mkdocstrings/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "mkdocstrings"; - version = "0.24.0"; + version = "0.24.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "mkdocstrings"; repo = "mkdocstrings"; rev = "refs/tags/${version}"; - hash = "sha256-UqX2jNNYwDNhb71qGdjHNoo2MmSxjf/bZiUoSxlE2XQ="; + hash = "sha256-6Th/HckxcCIupQWQglK+4ReXB6sdIDE8/nWgP42iqIQ="; }; postPatch = '' diff --git a/pkgs/development/python-modules/moderngl_window/default.nix b/pkgs/development/python-modules/moderngl-window/default.nix similarity index 100% rename from pkgs/development/python-modules/moderngl_window/default.nix rename to pkgs/development/python-modules/moderngl-window/default.nix diff --git a/pkgs/development/python-modules/openllm-client/default.nix b/pkgs/development/python-modules/openllm-client/default.nix index 7c0c1d80fc5b..08ac4e9ae02e 100644 --- a/pkgs/development/python-modules/openllm-client/default.nix +++ b/pkgs/development/python-modules/openllm-client/default.nix @@ -29,20 +29,20 @@ buildPythonPackage rec { --replace-fail "hatch-vcs==0.3.0" "hatch-vcs" ''; - nativeBuildInputs = [ + build-system = [ hatch-fancy-pypi-readme hatch-vcs hatchling ]; - propagatedBuildInputs = [ + dependencies = [ anyio distro httpx openllm-core ]; - passthru.optional-dependencies = { + optional-dependencies = { grpc = [ bentoml ] ++ bentoml.optional-dependencies.grpc; @@ -54,7 +54,7 @@ buildPythonPackage rec { # diffusers soundfile ] ++ transformers.optional-dependencies.agents; - full = passthru.optional-dependencies.grpc ++ passthru.optional-dependencies.agents; + full = optional-dependencies.grpc ++ optional-dependencies.agents; }; # there is no tests diff --git a/pkgs/development/python-modules/openllm-core/default.nix b/pkgs/development/python-modules/openllm-core/default.nix index c807f668b271..c87e75fbc4d1 100644 --- a/pkgs/development/python-modules/openllm-core/default.nix +++ b/pkgs/development/python-modules/openllm-core/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { pname = "openllm-core"; - version = "0.4.41"; + version = "0.4.44"; pyproject = true; disabled = pythonOlder "3.8"; @@ -33,15 +33,12 @@ buildPythonPackage rec { owner = "bentoml"; repo = "OpenLLM"; rev = "refs/tags/v${version}"; - hash = "sha256-9mr6sw4/h5cYSmo1CDT2SKq4NVz1ZcoyqnYOwhlfaiQ="; + hash = "sha256-kRR715Vnt9ZAmxuWvtH0z093crH0JFrEKPtbjO3QMRc="; }; sourceRoot = "source/openllm-core"; nativeBuildInputs = [ - hatch-fancy-pypi-readme - hatch-vcs - hatchling pythonRelaxDepsHook ]; @@ -55,7 +52,13 @@ buildPythonPackage rec { "cattrs" ]; - propagatedBuildInputs = [ + build-system = [ + hatch-fancy-pypi-readme + hatch-vcs + hatchling + ]; + + dependencies = [ attrs cattrs # not listed in pyproject.toml, but required at runtime @@ -67,7 +70,7 @@ buildPythonPackage rec { typing-extensions ]; - passthru.optional-dependencies = { + optional-dependencies = { vllm = [ # vllm ]; @@ -83,7 +86,7 @@ buildPythonPackage rec { # trl ] ++ transformers.optional-dependencies.torch ++ transformers.optional-dependencies.tokenizers; - full = with passthru.optional-dependencies; ( + full = with optional-dependencies; ( vllm # use absolute path to disambiguate with derivbation argument ++ passthru.optional-dependencies.bentoml diff --git a/pkgs/development/python-modules/openllm/default.nix b/pkgs/development/python-modules/openllm/default.nix index d889860e4e67..ae2cedd9ce1a 100644 --- a/pkgs/development/python-modules/openllm/default.nix +++ b/pkgs/development/python-modules/openllm/default.nix @@ -54,9 +54,6 @@ buildPythonPackage rec { sourceRoot = "source/openllm-python"; nativeBuildInputs = [ - hatch-fancy-pypi-readme - hatch-vcs - hatchling pythonRelaxDepsHook ]; @@ -65,7 +62,13 @@ buildPythonPackage rec { "cuda-python" ]; - propagatedBuildInputs = [ + build-system = [ + hatch-fancy-pypi-readme + hatch-vcs + hatchling + ]; + + dependencies = [ accelerate bentoml bitsandbytes @@ -79,14 +82,13 @@ buildPythonPackage rec { safetensors scipy sentencepiece - tabulate transformers ] ++ bentoml.optional-dependencies.io ++ tabulate.optional-dependencies.widechars ++ transformers.optional-dependencies.tokenizers ++ transformers.optional-dependencies.torch; - passthru.optional-dependencies = { + optional-dependencies = { agents = [ # diffusers soundfile @@ -142,13 +144,13 @@ buildPythonPackage rec { vllm = [ # vllm ]; - full = with passthru.optional-dependencies; ( + full = with optional-dependencies; ( agents ++ awq ++ baichuan ++ chatglm ++ ctranslate ++ falcon ++ fine-tune ++ ggml ++ gptq ++ mpt # disambiguate between derivation input and passthru field - ++ passthru.optional-dependencies.openai + ++ optional-dependencies.openai ++ playground ++ starcoder ++ vllm ); - all = passthru.optional-dependencies.full; + all = optional-dependencies.full; }; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/pymodbus/default.nix b/pkgs/development/python-modules/pymodbus/default.nix index a9c425dfabef..ee5c25d177da 100644 --- a/pkgs/development/python-modules/pymodbus/default.nix +++ b/pkgs/development/python-modules/pymodbus/default.nix @@ -19,18 +19,23 @@ buildPythonPackage rec { pname = "pymodbus"; - version = "3.6.4"; + version = "3.6.5"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "pymodbus-dev"; - repo = pname; + repo = "pymodbus"; rev = "refs/tags/v${version}"; - hash = "sha256-SYdjM3wFZD+bAOd0vRFe6N5UwF+1Wv97ooihJjKV8K0="; + hash = "sha256-BWoonOmKTvl5pKvdysmrCTHL6Bf3NGULXI6dpP5t/C0="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "--cov-report html " "" + ''; + nativeBuildInputs = [ setuptools ]; diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix index 300aec741473..0fa0e03b030b 100644 --- a/pkgs/development/python-modules/snapcast/default.nix +++ b/pkgs/development/python-modules/snapcast/default.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "snapcast"; - version = "2.3.4"; + version = "2.3.5"; pyproject = true; disabled = pythonOlder "3.7"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "happyleavesaoc"; repo = "python-snapcast"; rev = "refs/tags/${version}"; - hash = "sha256-qADcLrE5QwoYBDEmh7hrDJZIND2k3F0OTCEHdHDu3Y0="; + hash = "sha256-5TbwenEe3vMJovwKYfkvkXMRex0KgaXpsd4iCEk7uWE="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/solax/default.nix b/pkgs/development/python-modules/solax/default.nix index b66bac955ab1..ca835923901c 100644 --- a/pkgs/development/python-modules/solax/default.nix +++ b/pkgs/development/python-modules/solax/default.nix @@ -1,9 +1,9 @@ { lib , aiohttp +, async-timeout , buildPythonPackage , fetchPypi , pytest-asyncio -, pytest-cov , pytest-httpserver , pytestCheckHook , pythonOlder @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "solax"; - version = "0.3.2"; - format = "setuptools"; + version = "0.3.3"; + pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-7UDTG8rw9XJd5LPqcAe2XyE7DQa96dBj9YOcgW+/aFc="; + hash = "sha256-+e0z65qMjj1vQ3BR6kmLs+S5CF5chSaQ3mHQPIo++bQ="; }; nativeBuildInputs = [ @@ -29,12 +29,12 @@ buildPythonPackage rec { propagatedBuildInputs = [ aiohttp + async-timeout voluptuous ]; nativeCheckInputs = [ pytest-asyncio - pytest-cov pytest-httpserver pytestCheckHook ]; @@ -43,9 +43,16 @@ buildPythonPackage rec { "solax" ]; + disabledTests = [ + # Tests require network access + "test_discovery" + "test_smoke" + ]; + meta = with lib; { description = "Python wrapper for the Solax Inverter API"; homepage = "https://github.com/squishykid/solax"; + changelog = "https://github.com/squishykid/solax/releases/tag/v${version}"; license = with licenses; [ mit ]; maintainers = with maintainers; [ fab ]; }; diff --git a/pkgs/development/python-modules/std-uritemplate/default.nix b/pkgs/development/python-modules/std-uritemplate/default.nix new file mode 100644 index 000000000000..1bd03434f8c5 --- /dev/null +++ b/pkgs/development/python-modules/std-uritemplate/default.nix @@ -0,0 +1,39 @@ +{ lib +, buildPythonPackage +, fetchPypi +, poetry-core +, pythonOlder +}: + +buildPythonPackage rec { + pname = "std-uritemplate"; + version = "0.0.53"; + pyproject = true; + + disabled = pythonOlder "3.8"; + + src = fetchPypi { + pname = "std_uritemplate"; + inherit version; + hash = "sha256-AQjfDMU7XVsu2rInwmDOwy6qeVtbXNIq+wiKff4j4BY="; + }; + + nativeBuildInputs = [ + poetry-core + ]; + + # Module doesn't have unittest, only functional tests + doCheck = false; + + pythonImportsCheck = [ + "stduritemplate" + ]; + + meta = with lib; { + description = "Std-uritemplate implementation for Python"; + homepage = "https://github.com/std-uritemplate/std-uritemplate"; + changelog = "https://github.com/std-uritemplate/std-uritemplate/releases/tag/${version}"; + license = licenses.asl20; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix index 9eeb7e99aaa0..293d39cee3e2 100644 --- a/pkgs/development/python-modules/subarulink/default.nix +++ b/pkgs/development/python-modules/subarulink/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "subarulink"; - version = "0.7.10"; + version = "0.7.11"; format = "setuptools"; disabled = pythonOlder "3.7"; @@ -20,7 +20,7 @@ buildPythonPackage rec { owner = "G-Two"; repo = pname; rev = "refs/tags/v${version}"; - hash = "sha256-OKZ55J294I3wPo2vL+wuMMCA4N1ejgtquA8Bf7wPiIs="; + hash = "sha256-HKtToMh4dAUpA654tFkUEM9DLPGr9XRQK0ezYzNPzqk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/tools/osslsigncode/default.nix b/pkgs/development/tools/osslsigncode/default.nix index 1df3c26e3774..a581dd04ec48 100644 --- a/pkgs/development/tools/osslsigncode/default.nix +++ b/pkgs/development/tools/osslsigncode/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "osslsigncode"; - version = "2.7"; + version = "2.8"; src = fetchFromGitHub { owner = "mtrojnar"; repo = pname; rev = version; - sha256 = "sha256-TW4/alnAW3vifAKf02RlnpOq1uW7nc+Sjs0g1BfplLk="; + sha256 = "sha256-FcrymV0n/Bv0cS9Dx6sG+ifilBiPfaG+xpQvH9mvylQ="; }; nativeBuildInputs = [ cmake pkg-config python3 ]; diff --git a/pkgs/games/osu-lazer/bin.nix b/pkgs/games/osu-lazer/bin.nix index 30affcd8f8ef..be46a964de88 100644 --- a/pkgs/games/osu-lazer/bin.nix +++ b/pkgs/games/osu-lazer/bin.nix @@ -7,22 +7,22 @@ let pname = "osu-lazer-bin"; - version = "2024.221.0"; + version = "2024.302.1"; src = { aarch64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Apple.Silicon.zip"; - hash = "sha256-R//GKMpOelPBqRQoEHrjG56xvlZvEYqG8nJSS0iwUkM="; + hash = "sha256-fhjmYAgszAF0uNk94fDj1g4oi8PiHY5lgPc5SdF9L8I="; stripRoot = false; }; x86_64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}/osu.app.Intel.zip"; - hash = "sha256-nz8zUbhv/rWy+MXLMBAoG3B0f4QVrhu6p/AAkrFvhVc="; + hash = "sha256-divrIWeBWjKvWxb+BANnsrUcSP2QlicFgPFpH+H2dpA="; stripRoot = false; }; x86_64-linux = fetchurl { url = "https://github.com/ppy/osu/releases/download/${version}/osu.AppImage"; - hash = "sha256-UY1HSOpcir9ybcxDuicklArynOFWkDtKqJe/LGeQOEM="; + hash = "sha256-vYG3viY9GBtgaY8ThCSWss+zzjAyVa4fmrWrQdYcUow="; }; }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index eb9b4a670a3d..60e372a768ec 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -17,13 +17,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2024.221.0"; + version = "2024.302.1"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - hash = "sha256-isRGruIMU05/4WDI0jkgycmA0sxkBL4pu9fclTr8VtY="; + hash = "sha256-4+ACEWYgXvr8eoRJZHmTq74Bh159V+p2K+Pn1IPi2l4="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix index 6045847e2777..56cd9d37db82 100644 --- a/pkgs/games/osu-lazer/deps.nix +++ b/pkgs/games/osu-lazer/deps.nix @@ -137,7 +137,7 @@ (fetchNuGet { pname = "ppy.ManagedBass.Fx"; version = "2022.1216.0"; sha256 = "1vw573mkligpx9qiqasw1683cqaa1kgnxhlnbdcj9c4320b1pwjm"; }) (fetchNuGet { pname = "ppy.ManagedBass.Mix"; version = "2022.1216.0"; sha256 = "185bpvgbnd8y20r7vxb1an4pd1aal9b7b5wvmv3knz0qg8j0chd9"; }) (fetchNuGet { pname = "ppy.ManagedBass.Wasapi"; version = "2022.1216.0"; sha256 = "0h2ncf59sza8whvrwwqi8b6fcrkqrnfgfhd0vnhyw0s98nj74f0z"; }) - (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.221.0"; sha256 = "0lwvmxssd88vir3a3199i4rasn2c1v850vzcqchkc1z7h9xl3b82"; }) + (fetchNuGet { pname = "ppy.osu.Framework"; version = "2024.223.0"; sha256 = "0k97jd4kac3vzsyvgn7imx17lad8ibbrhfx1q8vglqy6w5mriqlw"; }) (fetchNuGet { pname = "ppy.osu.Framework.NativeLibs"; version = "2023.1225.0-nativelibs"; sha256 = "008kj91i9486ff2q7fcgb8mmpinskvnmfsqza2m5vafh295y3h7m"; }) (fetchNuGet { pname = "ppy.osu.Framework.SourceGeneration"; version = "2023.720.0"; sha256 = "001vvxyv483ibid25fdknvij77x0y983mp4psx2lbg3x2al7yxax"; }) (fetchNuGet { pname = "ppy.osu.Game.Resources"; version = "2024.207.0"; sha256 = "0960jg0a860f545phscimv5qw6bzijpc4pyplx126zcm1w1cpmfi"; }) diff --git a/pkgs/servers/monitoring/prometheus/exportarr/default.nix b/pkgs/servers/monitoring/prometheus/exportarr/default.nix index 821baf91417c..00b4690c5619 100644 --- a/pkgs/servers/monitoring/prometheus/exportarr/default.nix +++ b/pkgs/servers/monitoring/prometheus/exportarr/default.nix @@ -6,16 +6,16 @@ buildGoModule rec { pname = "exportarr"; - version = "1.6.2"; + version = "2.0.0"; src = fetchFromGitHub { owner = "onedr0p"; repo = "exportarr"; rev = "v${version}"; - hash = "sha256-Eacu8NeAAQqztzVpBhW1UeKQU+FBEJcx5+mcaByQid8="; + hash = "sha256-hUgi50BFmtJfp/rNUA8QGYSflfSMANbelPndL7zV7v8="; }; - vendorHash = "sha256-lizPm/3hxKt7ZxKkhbwsj1nL8bWmE90QqRGxTqMSMAw="; + vendorHash = "sha256-Hy8OXFmGTxNlwbRjH05npD2p3avQfWk9k29R5sFKlNI="; subPackages = [ "cmd/exportarr" ]; diff --git a/pkgs/tools/security/dnsx/default.nix b/pkgs/tools/security/dnsx/default.nix index 648f7883788e..a1556ed7d687 100644 --- a/pkgs/tools/security/dnsx/default.nix +++ b/pkgs/tools/security/dnsx/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "dnsx"; - version = "1.1.6"; + version = "1.2.0"; src = fetchFromGitHub { owner = "projectdiscovery"; repo = "dnsx"; rev = "refs/tags/v${version}"; - hash = "sha256-dyqZXc5k76BwF2Kh2vm9d+dpvgpXK/8VQeGjx1UzA6k="; + hash = "sha256-gfznhNW9EmUuKrgxhQD4jKO4raQedTsg/ZcpscymQTs="; }; - vendorHash = "sha256-S1mJMVfQSy49Lm4q3v05kjbXBlBgBt/AAzLOoQkk75A="; + vendorHash = "sha256-/fZaUJHP5HwwLBdeNq6iMhfdJ1DYt6YVeHP4ZGmYffg="; # Tests require network access doCheck = false; diff --git a/pkgs/tools/security/metabigor/default.nix b/pkgs/tools/security/metabigor/default.nix index bfacb60177ce..2949fb6db541 100644 --- a/pkgs/tools/security/metabigor/default.nix +++ b/pkgs/tools/security/metabigor/default.nix @@ -9,20 +9,27 @@ buildGoModule rec { src = fetchFromGitHub { owner = "j3ssie"; - repo = pname; - rev = "v${version}"; - sha256 = "sha256-JFt9PC6VHWTYuaIWh2t2BiGFm1tGwZDdhhdp2xtmXSI="; + repo = "metabigor"; + rev = "refs/tags/v${version}"; + hash = "sha256-JFt9PC6VHWTYuaIWh2t2BiGFm1tGwZDdhhdp2xtmXSI="; }; vendorHash = "sha256-PGUOTEFcOL1pG+itTp9ce1qW+1V6hts8jKpA0E8orDk="; + ldflags = [ + "-w" + "-s" + ]; + # Disabled for now as there are some failures ("undefined:") doCheck = false; meta = with lib; { description = "Tool to perform OSINT tasks"; homepage = "https://github.com/j3ssie/metabigor"; + changelog = "https://github.com/j3ssie/metabigor/releases/tag/v${version}"; license = licenses.mit; maintainers = with maintainers; [ fab ]; + mainProgram = "metabigor"; }; } diff --git a/pkgs/tools/security/yaralyzer/default.nix b/pkgs/tools/security/yaralyzer/default.nix index 4379bbc5c63c..ddfc828741e5 100644 --- a/pkgs/tools/security/yaralyzer/default.nix +++ b/pkgs/tools/security/yaralyzer/default.nix @@ -3,16 +3,31 @@ , fetchFromGitHub }: -python3.pkgs.buildPythonApplication rec { +let + python = python3.override { + packageOverrides = self: super: { + yara-python = super.yara-python.overridePythonAttrs (oldAttrs: rec { + version = "4.2.3"; + src = fetchFromGitHub { + owner = "VirusTotal"; + repo = "yara-python"; + rev = "v${version}"; + hash = "sha256-spUQuezQMqaG1hboM0/Gs7siCM6x0b40O+sV7qGGBng="; + }; + }); + }; + }; +in +python.pkgs.buildPythonApplication rec { pname = "yaralyzer"; - version = "0.9.0"; - format = "pyproject"; + version = "0.9.3"; + pyproject = true; src = fetchFromGitHub { owner = "michelcrypt4d4mus"; repo = "yaralyzer"; rev = "refs/tags/v${version}"; - hash = "sha256-QsMO/fnHy4puuToUHSS05fWnXHdAVnWFFBVq3cb0Zj4="; + hash = "sha256-KGQNonzAZp8c0a3Rjb1WfsEkx5srgRzZfGR3gfNEdzY="; }; pythonRelaxDeps = [ @@ -20,12 +35,12 @@ python3.pkgs.buildPythonApplication rec { "rich" ]; - nativeBuildInputs = with python3.pkgs; [ + nativeBuildInputs = with python.pkgs; [ poetry-core pythonRelaxDepsHook ]; - propagatedBuildInputs = with python3.pkgs; [ + propagatedBuildInputs = with python.pkgs; [ chardet python-dotenv rich @@ -43,5 +58,6 @@ python3.pkgs.buildPythonApplication rec { changelog = "https://github.com/michelcrypt4d4mus/yaralyzer/blob/${version}/CHANGELOG.md"; license = licenses.gpl3Only; maintainers = with maintainers; [ fab ]; + mainProgram = "yaralyze"; }; } diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e9c17c56c129..b340aa474648 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1937,7 +1937,7 @@ self: super: with self; { command_runner = callPackage ../development/python-modules/command_runner { }; - connect-box = callPackage ../development/python-modules/connect_box { }; + connect-box = callPackage ../development/python-modules/connect-box { }; connection-pool = callPackage ../development/python-modules/connection-pool { }; @@ -6298,6 +6298,8 @@ self: super: with self; { langchain-core = callPackage ../development/python-modules/langchain-core { }; + langchain-text-splitters = callPackage ../development/python-modules/langchain-text-splitters { }; + langcodes = callPackage ../development/python-modules/langcodes { }; langdetect = callPackage ../development/python-modules/langdetect { }; @@ -7352,7 +7354,7 @@ self: super: with self; { moderngl = callPackage ../development/python-modules/moderngl { }; - moderngl-window = callPackage ../development/python-modules/moderngl_window { }; + moderngl-window = callPackage ../development/python-modules/moderngl-window { }; modestmaps = callPackage ../development/python-modules/modestmaps { }; @@ -14096,6 +14098,8 @@ self: super: with self; { statsmodels = callPackage ../development/python-modules/statsmodels { }; + std-uritemplate = callPackage ../development/python-modules/std-uritemplate { }; + std2 = callPackage ../development/python-modules/std2 { }; stdiomask = callPackage ../development/python-modules/stdiomask { };