diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b52b69f170d6..0992f46358bc 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -24349,6 +24349,12 @@ githubId = 52673095; name = "Syed Ahkam"; }; + sylonin = { + email = "syl@sperg.net"; + github = "Sylonin"; + githubId = 89575562; + name = "Sylonin"; + }; symphorien = { email = "symphorien_nixpkgs@xlumurb.eu"; matrix = "@symphorien:xlumurb.eu"; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 640c6810de84..25375b9bffbf 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -810,7 +810,7 @@ in mariadb-galera = handleTest ./mysql/mariadb-galera.nix { }; marytts = runTest ./marytts.nix; mastodon = pkgs.recurseIntoAttrs (handleTest ./web-apps/mastodon { inherit handleTestOn; }); - pixelfed = discoverTests (import ./web-apps/pixelfed { inherit handleTestOn; }); + pixelfed = import ./web-apps/pixelfed { inherit runTestOn; }; mate = runTest ./mate.nix; mate-wayland = runTest ./mate-wayland.nix; matter-server = runTest ./matter-server.nix; diff --git a/nixos/tests/web-apps/pixelfed/default.nix b/nixos/tests/web-apps/pixelfed/default.nix index 0422b6cf11f4..00a786d4eb73 100644 --- a/nixos/tests/web-apps/pixelfed/default.nix +++ b/nixos/tests/web-apps/pixelfed/default.nix @@ -1,14 +1,12 @@ { - system ? builtins.currentSystem, - handleTestOn, + runTestOn, }: let supportedSystems = [ "x86_64-linux" "i686-linux" ]; - in { - standard = handleTestOn supportedSystems ./standard.nix { inherit system; }; + standard = runTestOn supportedSystems ./standard.nix; } diff --git a/nixos/tests/web-apps/pixelfed/standard.nix b/nixos/tests/web-apps/pixelfed/standard.nix index 7b916649bf0d..6a3776fa8403 100644 --- a/nixos/tests/web-apps/pixelfed/standard.nix +++ b/nixos/tests/web-apps/pixelfed/standard.nix @@ -1,4 +1,4 @@ -import ../../make-test-python.nix { +{ name = "pixelfed-standard"; meta.maintainers = [ ]; diff --git a/pkgs/by-name/cb/cbonsai/package.nix b/pkgs/by-name/cb/cbonsai/package.nix index 9feb1f3ba012..8825467d762a 100644 --- a/pkgs/by-name/cb/cbonsai/package.nix +++ b/pkgs/by-name/cb/cbonsai/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { pname = "cbonsai"; - version = "1.3.1"; + version = "1.4.2"; src = fetchFromGitLab { owner = "jallbrit"; repo = "cbonsai"; rev = "v${version}"; - hash = "sha256-XFK6DiIb8CzVubTnEMkqRW8xZkX/SWjUsrfS+I7LOs8="; + hash = "sha256-TZb/5DBdWcl54GoZXxz2xYy9dXq5lmJQsOA3C26tjEU="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/gr/gradia/package.nix b/pkgs/by-name/gr/gradia/package.nix index 4b1bfb819231..1e155aed6876 100644 --- a/pkgs/by-name/gr/gradia/package.nix +++ b/pkgs/by-name/gr/gradia/package.nix @@ -9,19 +9,23 @@ gobject-introspection, wrapGAppsHook4, blueprint-compiler, + pkg-config, libadwaita, libportal-gtk4, + gnome, + librsvg, + libavif, }: python3Packages.buildPythonApplication rec { pname = "gradia"; - version = "1.4.3"; + version = "1.5.0"; pyproject = false; src = fetchFromGitHub { owner = "AlexanderVanhee"; repo = "Gradia"; tag = "v${version}"; - hash = "sha256-cH8aL1nvDNAnvN+TYAtGez5Ot5DmwpmxugBPS36rY+Q="; + hash = "sha256-IamiF3mn3rVmDJrEOl0Ji+7muo8e8kunOxAZJTBNjM8="; }; nativeBuildInputs = [ @@ -32,6 +36,7 @@ python3Packages.buildPythonApplication rec { gobject-introspection wrapGAppsHook4 blueprint-compiler + pkg-config ]; buildInputs = [ @@ -44,6 +49,17 @@ python3Packages.buildPythonApplication rec { pillow ]; + postInstall = '' + export GDK_PIXBUF_MODULE_FILE="${ + gnome._gdkPixbufCacheBuilder_DO_NOT_USE { + extraLoaders = [ + librsvg + libavif + ]; + } + }" + ''; + dontWrapGApps = true; makeWrapperArgs = [ "\${gappsWrapperArgs[@]}" ]; diff --git a/pkgs/by-name/lm/lms/package.nix b/pkgs/by-name/lm/lms/package.nix index 4f89526d536a..7c9b5623d91b 100644 --- a/pkgs/by-name/lm/lms/package.nix +++ b/pkgs/by-name/lm/lms/package.nix @@ -22,13 +22,13 @@ stdenv.mkDerivation rec { pname = "lms"; - version = "3.66.1"; + version = "3.67.0"; src = fetchFromGitHub { owner = "epoupon"; repo = "lms"; rev = "v${version}"; - hash = "sha256-MKVO/jxLCjfWi17/XeTwBksOAw4Zd1i/6yMiAlSsYfY="; + hash = "sha256-jmdAZEtMIl2oLeNzgyceguCenPK/K6NJw5Yzv3T4pJs="; }; strictDeps = true; diff --git a/pkgs/by-name/mi/mihomo/package.nix b/pkgs/by-name/mi/mihomo/package.nix index 73ffc0f6df0a..e891ba450bfe 100644 --- a/pkgs/by-name/mi/mihomo/package.nix +++ b/pkgs/by-name/mi/mihomo/package.nix @@ -7,16 +7,16 @@ buildGoModule rec { pname = "mihomo"; - version = "1.19.10"; + version = "1.19.11"; src = fetchFromGitHub { owner = "MetaCubeX"; repo = "mihomo"; rev = "v${version}"; - hash = "sha256-7zbJMwczbCHRrAbRC61Pjo58dyphTu+3WYkfi3iiwxw="; + hash = "sha256-nt2bnfKzGU+6gUaSqHfnbCnWLMDoAcISmlNYFeM4Xu8="; }; - vendorHash = "sha256-2hLI8R6hwam7/n8JRQ9Xs4ycWwdNxGRvFM+JhH7ExgM="; + vendorHash = "sha256-k/Zjnq07+Sg+dwwcAf+ziInaDvlXn3bEG+QuxZ5lcM8="; excludedPackages = [ "./test" ]; diff --git a/pkgs/by-name/mi/mission-center/package.nix b/pkgs/by-name/mi/mission-center/package.nix index 4949b4ea5e38..e6d97bde9a92 100644 --- a/pkgs/by-name/mi/mission-center/package.nix +++ b/pkgs/by-name/mi/mission-center/package.nix @@ -9,10 +9,12 @@ # nativeBuildInputs blueprint-compiler, cargo, + makeWrapper, libxml2, meson, ninja, pkg-config, + protobuf, python3, rustc, wrapGAppsHook4, @@ -28,22 +30,28 @@ glib, graphene, gtk4, - libGL, libadwaita, libdrm, libgbm, pango, sqlite, udev, - vulkan-loader, wayland, + # magpie wrapper + libGL, + vulkan-loader, + versionCheckHook, }: # UPDATE PROCESS: # 1) Get the nvtop commit hash (`source-url` in `nvtop.json`): -# https://gitlab.com/mission-center-devs/mission-center/-/blob/v/src/sys_info_v2/gatherer/3rdparty/nvtop/nvtop.json?ref_type=tags +# - Go to https://gitlab.com/mission-center-devs/mission-center/-/blob/v/subprojects +# - Click on magpie +# - Open platform-linux/3rdparty/nvtop/nvtop.json +# - The hash is in `source-url` +# # 2) Update the version of the main derivation # 3) Refresh all hashes: # - main `src` @@ -54,32 +62,67 @@ let nvtop = fetchFromGitHub { owner = "Syllo"; repo = "nvtop"; - rev = "20ea55dbd1eeb4342ff0112fae3ee2a0bfe352ea"; - hash = "sha256-8lNvxmNAqkmBPFeiYIGtpW0hYXA9N0l4HURew5loj+g="; + rev = "73291884d926445e499d6b9b71cb7a9bdbc7c393"; + hash = "sha256-8iChT55L2NSnHg8tLIry0rgi/4966MffShE0ib+2ywc="; }; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "mission-center"; - version = "0.6.2"; + version = "1.0.2"; src = fetchFromGitLab { owner = "mission-center-devs"; repo = "mission-center"; - rev = "v${version}"; - hash = "sha256-PvHIvWyhGovlLaeHk2WMp3yRz4VxvvINzX1oqkFgVuQ="; + tag = "v${finalAttrs.version}"; + fetchSubmodules = true; + hash = "sha256-TvrYwuJR03mvPc8oXBx6GClOLc+r5kblaOj0uaLwbwE="; }; + postPatch = + # Prevent platform-linux/build.rs from downloading nvtop + '' + substituteInPlace src/magpie_client/client.rs \ + --replace-fail \ + '"missioncenter-magpie"' \ + '"${placeholder "out"}/bin/missioncenter-magpie"' + + SRC_DIR=$NIX_BUILD_TOP/source + SRC_MAGPIE_DIR=$SRC_DIR/subprojects/magpie + SRC_NVTOP_DIR=$SRC_MAGPIE_DIR/platform-linux/3rdparty/nvtop + + # Patch references in nvtop.json to match the name we inject manually + substituteInPlace "$SRC_NVTOP_DIR/nvtop.json" \ + --replace-fail "nvtop-${nvtop.rev}" "nvtop-src" + + DEST_NVTOP_DIR=$SRC_DIR/build/subprojects/magpie/src/debug/build/native/nvtop-src + + mkdir -p "$DEST_NVTOP_DIR" + cp -r --no-preserve=mode,ownership "${nvtop}"/* "$DEST_NVTOP_DIR" + + pushd "$DEST_NVTOP_DIR" + mkdir -p include/libdrm + for patchfile in "$SRC_NVTOP_DIR"/patches/nvtop*.patch; do + patch -p1 < "$patchfile" + done + popd + '' + # Patch the shebang of this python script called at build time + + '' + patchShebangs $SRC_MAGPIE_DIR/platform-linux/hwdb/generate_hwdb.py + ''; + cargoDeps = symlinkJoin { name = "cargo-vendor-dir"; paths = [ (rustPlatform.fetchCargoVendor { - inherit pname version src; - hash = "sha256-Yd6PlsSo8/yHMF4YdYz1Io4uGniAMyIj2RKy3yK4byU="; + inherit (finalAttrs) pname version src; + hash = "sha256-1Bcxp0EuHbJrLQIb2STLNIL2BM2eOgL8ftx4g1o/JY4="; }) (rustPlatform.fetchCargoVendor { - inherit pname version src; - sourceRoot = "${src.name}/src/sys_info_v2/gatherer"; - hash = "sha256-oUAPJWNElj08jfmsdXz/o2bgzeBQsbm6nWHC8jGN2n0="; + pname = "${finalAttrs.pname}-magpie"; + inherit (finalAttrs) version src; + sourceRoot = "${finalAttrs.src.name}/subprojects/magpie"; + hash = "sha256-ouY9zSQ7csAqPzQrbWGtCTB9ECVBKOUX78K5SiqTTxg="; }) ]; }; @@ -88,14 +131,17 @@ stdenv.mkDerivation rec { blueprint-compiler cargo libxml2 + makeWrapper meson ninja pkg-config python3 + protobuf # for protoc rustPlatform.cargoSetupHook rustc wrapGAppsHook4 ]; + dontUseCmakeConfigure = true; buildInputs = [ appstream-glib @@ -109,64 +155,36 @@ stdenv.mkDerivation rec { glib graphene gtk4 - libGL libadwaita libdrm libgbm pango sqlite udev - vulkan-loader wayland ]; - postPatch = '' - substituteInPlace src/sys_info_v2/gatherer.rs \ - --replace-fail '"missioncenter-gatherer"' '"${placeholder "out"}/bin/missioncenter-gatherer"' - - SRC_GATHERER=$NIX_BUILD_TOP/source/src/sys_info_v2/gatherer - SRC_GATHERER_NVTOP=$SRC_GATHERER/3rdparty/nvtop - - substituteInPlace $SRC_GATHERER_NVTOP/nvtop.json \ - --replace-fail "nvtop-${nvtop.rev}" "nvtop-src" - - GATHERER_BUILD_DEST=$NIX_BUILD_TOP/source/build/src/sys_info_v2/gatherer/src/debug/build/native - mkdir -p $GATHERER_BUILD_DEST - NVTOP_SRC=$GATHERER_BUILD_DEST/nvtop-src - - cp -r --no-preserve=mode,ownership "${nvtop}" $NVTOP_SRC - pushd $NVTOP_SRC - mkdir -p include/libdrm - for patchfile in $(ls $SRC_GATHERER_NVTOP/patches/nvtop*.patch); do - patch -p1 < $patchfile - done - popd - - patchShebangs data/hwdb/generate_hwdb.py - ''; - nativeInstallCheckInputs = [ versionCheckHook ]; - versionCheckProgram = "${builtins.placeholder "out"}/bin/${meta.mainProgram}"; + versionCheckProgram = "${builtins.placeholder "out"}/bin/missioncenter"; doInstallCheck = true; - env = { - # Make sure libGL and libvulkan can be found by dlopen() - RUSTFLAGS = toString ( - map (flag: "-C link-arg=" + flag) [ - "-Wl,--push-state,--no-as-needed" - "-lGL" - "-lvulkan" - "-Wl,--pop-state" - ] - ); - }; + postFixup = '' + wrapProgram $out/bin/missioncenter-magpie \ + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + # Make sure libGL libvulkan can be found by dlopen() + libGL + vulkan-loader + ] + }" + ''; meta = { description = "Monitor your CPU, Memory, Disk, Network and GPU usage"; homepage = "https://gitlab.com/mission-center-devs/mission-center"; - changelog = "https://gitlab.com/mission-center-devs/mission-center/-/releases/v${version}"; + changelog = "https://gitlab.com/mission-center-devs/mission-center/-/releases/v${finalAttrs.version}"; license = lib.licenses.gpl3Only; maintainers = with lib.maintainers; [ GaetanLepage @@ -175,4 +193,4 @@ stdenv.mkDerivation rec { platforms = lib.platforms.linux; mainProgram = "missioncenter"; }; -} +}) diff --git a/pkgs/by-name/nu/nufmt/package.nix b/pkgs/by-name/nu/nufmt/package.nix index ffdc803ac7f5..76b91c459332 100644 --- a/pkgs/by-name/nu/nufmt/package.nix +++ b/pkgs/by-name/nu/nufmt/package.nix @@ -7,13 +7,13 @@ }: rustPlatform.buildRustPackage { pname = "nufmt"; - version = "0-unstable-2025-05-23"; + version = "0-unstable-2025-06-19"; src = fetchFromGitHub { owner = "nushell"; repo = "nufmt"; - rev = "62fd38af2f6536bb19ecc78a4dd0f0e1245c0939"; - hash = "sha256-JG8XCXEdjVERQ9f6ZsYCLXVGN85qPWCQhS2svJYW390="; + rev = "35962223fbd4c1a924b4ccfb8c7ad81fe2863b86"; + hash = "sha256-2WgqKQBZRMqUyWq0qm+d8TUT/iAQ1LZjhllBKqimp+Q="; }; nativeBuildInputs = [ @@ -23,7 +23,7 @@ rustPlatform.buildRustPackage { useFetchCargoVendor = true; cargoHash = "sha256-KDXC2/1GcJL6qH+L/FzzQCA7kJigtKOfxVDLv5qXYao="; - # NOTE: Patch follows similar intention upstream https://github.com/nushell/nufmt/commit/62fd38af2f6536bb19ecc78a4dd0f0e1245c0939 + # NOTE: Patch follows similar intention upstream https://github.com/nushell/nufmt/commit/35962223fbd4c1a924b4ccfb8c7ad81fe2863b86 postPatch = '' substituteInPlace tests/main.rs --replace-fail \ 'const TEST_BINARY: &str = "target/debug/nufmt";' \ diff --git a/pkgs/by-name/sl/slackdump/package.nix b/pkgs/by-name/sl/slackdump/package.nix index 503f1d431965..4f548dca89f5 100644 --- a/pkgs/by-name/sl/slackdump/package.nix +++ b/pkgs/by-name/sl/slackdump/package.nix @@ -9,13 +9,13 @@ buildGoModule rec { pname = "slackdump"; - version = "3.1.4"; + version = "3.1.6"; src = fetchFromGitHub { owner = "rusq"; repo = "slackdump"; tag = "v${version}"; - hash = "sha256-unJe3hTIYmQMAvyY0N1S2JiyTtOSaKaJSqE2C9LqDh0="; + hash = "sha256-MoC1uLyAyLrHLjokDfg9UPUKQZKl8MdNQpFAzaea2Gs="; }; nativeCheckInputs = lib.optional stdenv.hostPlatform.isDarwin darwin.IOKitTools; @@ -32,7 +32,7 @@ buildGoModule rec { "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ]; - vendorHash = "sha256-Uy/l3eZSWqVeFKFr6Sc+0h8UVzLGmRXVF6sbX6tnXWA="; + vendorHash = "sha256-+4/F3CKFRLHB9aPUFVnnPmwIxZ608qMhrMHXE3Gskx0="; __darwinAllowLocalNetworking = true; diff --git a/pkgs/by-name/sw/swayimg/package.nix b/pkgs/by-name/sw/swayimg/package.nix index e7db640a206f..86a885de541d 100644 --- a/pkgs/by-name/sw/swayimg/package.nix +++ b/pkgs/by-name/sw/swayimg/package.nix @@ -31,13 +31,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "swayimg"; - version = "4.2"; + version = "4.3"; src = fetchFromGitHub { owner = "artemsen"; repo = "swayimg"; tag = "v${finalAttrs.version}"; - hash = "sha256-/SKzdUjCcpwKRCFiFDFuRhLq0S1Z2kK+mpTOeG/JXc0="; + hash = "sha256-0MiIJVX1GKyvoGw1+DGVE1gJq/6sJiA79L16YF4USiQ="; }; strictDeps = true; diff --git a/pkgs/by-name/te/terragrunt/package.nix b/pkgs/by-name/te/terragrunt/package.nix index 77ef4a46fca3..cc2c34d0c3f9 100644 --- a/pkgs/by-name/te/terragrunt/package.nix +++ b/pkgs/by-name/te/terragrunt/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "terragrunt"; - version = "0.81.8"; + version = "0.82.3"; src = fetchFromGitHub { owner = "gruntwork-io"; repo = "terragrunt"; tag = "v${finalAttrs.version}"; - hash = "sha256-+f6rHS1ljj59wmR3NJwviJEBqeS6VzoMPfal4MuoyUE="; + hash = "sha256-qDzqJRjRcK0CIn1ARL+InnPtzRIqN/AIxPLE+J9pE1k="; }; nativeBuildInputs = [ @@ -26,7 +26,7 @@ buildGoModule (finalAttrs: { make generate-mocks ''; - vendorHash = "sha256-A8P0wJ/EUTnAeCIFfAECTBQmSaOcED6SDbeRnnTlcJ8="; + vendorHash = "sha256-d8h/mdcqnL7wkg+ZqWt2ywSLD37Oddb8ub59XGEmSWk="; doCheck = false; diff --git a/pkgs/by-name/tl/tldx/package.nix b/pkgs/by-name/tl/tldx/package.nix new file mode 100644 index 000000000000..4e52c3492d4e --- /dev/null +++ b/pkgs/by-name/tl/tldx/package.nix @@ -0,0 +1,43 @@ +{ + lib, + buildGoModule, + fetchFromGitHub, + nix-update-script, + versionCheckHook, +}: + +buildGoModule (finalAttrs: { + pname = "tldx"; + version = "1.2.4"; + + src = fetchFromGitHub { + owner = "brandonyoungdev"; + repo = "tldx"; + tag = "v${finalAttrs.version}"; + hash = "sha256-inX/27nzju1ns6fKF3iFmgYOd8KpI/cLX+UM8LjeOVw="; + }; + + vendorHash = "sha256-gNU1YcvRXOvPsniZKE+XEQ7YaJTc5qjTRgCrnNMjfXw="; + + ldflags = [ + "-s" + "-w" + "-X github.com/brandonyoungdev/tldx/cmd.Version=${finalAttrs.version}" + ]; + + passthru.updateScript = nix-update-script { }; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + doInstallCheck = true; + + meta = { + license = lib.licenses.asl20; + mainProgram = "tldx"; + description = "Domain availability research tool"; + homepage = "https://github.com/brandonyoungdev/tldx"; + changelog = "https://github.com/brandonyoungdev/tldx/blob/main/CHANGELOG.md"; + maintainers = with lib.maintainers; [ sylonin ]; + }; +}) diff --git a/pkgs/by-name/tr/trelby/package.nix b/pkgs/by-name/tr/trelby/package.nix index a8838200acab..597f40fb7899 100644 --- a/pkgs/by-name/tr/trelby/package.nix +++ b/pkgs/by-name/tr/trelby/package.nix @@ -40,6 +40,15 @@ python3Packages.buildPythonApplication rec { wxpython ]; + postInstall = '' + install -Dm644 trelby/resources/trelby.desktop $out/share/applications/trelby.desktop + + install -Dm644 trelby/resources/icon256.png $out/share/icons/hicolor/256x256/apps/trelby.png + + substituteInPlace $out/share/applications/trelby.desktop \ + --replace-fail "Icon=trelby256" "Icon=trelby" + ''; + meta = { description = "Free, multiplatform, feature-rich screenwriting program"; homepage = "www.trelby.org"; diff --git a/pkgs/by-name/ya/yazi/plugins/wl-clipboard/default.nix b/pkgs/by-name/ya/yazi/plugins/wl-clipboard/default.nix new file mode 100644 index 000000000000..a331f9d045ce --- /dev/null +++ b/pkgs/by-name/ya/yazi/plugins/wl-clipboard/default.nix @@ -0,0 +1,32 @@ +{ + lib, + fetchFromGitHub, + mkYaziPlugin, +}: +mkYaziPlugin { + pname = "wl-clipboard.yazi"; + version = "0-unstable-2025-05-22"; + + installPhase = '' + runHook preInstall + + cp -r . $out + mv $out/init.lua $out/main.lua + + runHook postInstall + ''; + + src = fetchFromGitHub { + owner = "grappas"; + repo = "wl-clipboard.yazi"; + rev = "c4edc4f6adf088521f11d0acf2b70610c31924f0"; + hash = "sha256-jlZgN93HjfK+7H27Ifk7fs0jJaIdnOyY1wKxHz1wX2c="; + }; + + meta = { + description = "Wayland implementation of a simple system clipboard for yazi file manager"; + homepage = "https://github.com/grappas/wl-clipboard.yazi"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.felipe-9 ]; + }; +} diff --git a/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix b/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix index 377d2a0a92c7..8da9ee23c508 100644 --- a/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix +++ b/pkgs/desktops/gnome/misc/gnome-extensions-cli/default.nix @@ -15,13 +15,13 @@ buildPythonApplication rec { pname = "gnome-extensions-cli"; - version = "0.10.5"; + version = "0.10.6"; format = "pyproject"; src = fetchPypi { pname = "gnome_extensions_cli"; inherit version; - hash = "sha256-Rli4gsxbD84SSyx6hdPz5MKHsYw4jX7XgAkAydg0lGI="; + hash = "sha256-REsdgsHPYBms+qbOF4ogV8D/xi5fC9ogl+HOvnsXi7o="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/meraki/default.nix b/pkgs/development/python-modules/meraki/default.nix index 522b854245f3..5d0149d7c7ce 100644 --- a/pkgs/development/python-modules/meraki/default.nix +++ b/pkgs/development/python-modules/meraki/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "meraki"; - version = "2.0.2"; + version = "2.0.3"; pyproject = true; disabled = pythonOlder "3.10"; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "meraki"; repo = "dashboard-api-python"; tag = version; - hash = "sha256-n2iSnxdjMZvYTG/GWU4NnaoA4+A0JIhHj49j4+T10sU="; + hash = "sha256-dAy295DB213TotVkVGvLYIzzHk1M9PycMNgyX+wD7ms="; }; pythonRelaxDeps = [ diff --git a/pkgs/development/python-modules/postgrest-py/default.nix b/pkgs/development/python-modules/postgrest-py/default.nix new file mode 100644 index 000000000000..8e3b02bdd457 --- /dev/null +++ b/pkgs/development/python-modules/postgrest-py/default.nix @@ -0,0 +1,61 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + deprecation, + h2, + httpx, + poetry-core, + pydantic, + pytestCheckHook, + pythonPackages, +}: + +buildPythonPackage rec { + pname = "postgrest-py"; + version = "1.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "supabase"; + repo = "postgrest-py"; + tag = "v${version}"; + hash = "sha256-WTS8J8XhHPSe6N1reY3j2QYHaRY1goiVoqQCUKSgbVY="; + }; + + build-system = [ poetry-core ]; + + dependencies = [ + deprecation + httpx + pydantic + ]; + + nativeCheckInputs = [ + pytestCheckHook + h2 + ]; + + # Lots of tests fail without network access + disabledTestPaths = [ + "tests/_async/test_client.py" + "tests/_async/test_filter_request_builder.py" + "tests/_async/test_filter_request_builder_integration.py" + "tests/_async/test_query_request_builder.py" + "tests/_async/test_request_builder.py" + "tests/_sync/test_filter_request_builder_integration.py" + ]; + disabledTests = [ + "test_params_purged_after_execute" + ]; + + pythonImportsCheck = [ "postgrest" ]; + + meta = { + description = "PostgREST client for Python, provides an ORM interface to PostgREST"; + homepage = "https://github.com/supabase/postgrest-py"; + changelog = "https://github.com/supabase/postgrest-py/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jherland ]; + }; +} diff --git a/pkgs/development/python-modules/property-cached/default.nix b/pkgs/development/python-modules/property-cached/default.nix new file mode 100644 index 000000000000..5852d27c3fe2 --- /dev/null +++ b/pkgs/development/python-modules/property-cached/default.nix @@ -0,0 +1,48 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + freezegun, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage rec { + pname = "property-cached"; + version = "1.6.4"; + pyproject = true; + + src = fetchFromGitHub { + owner = "althonos"; + repo = "property-cached"; + tag = "v${version}"; + hash = "sha256-8kityZ++1TS22Ff7a5x5bQi0QBaHsNaP4E/Man8A28A="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + pytestCheckHook + freezegun + ]; + + disabledTestPaths = [ + # https://github.com/althonos/property-cached/pull/118 + "tests/test_coroutine_cached_property.py" + "tests/test_async_cached_property.py" + ]; + disabledTests = [ + # https://github.com/pydanny/cached-property/issues/131 + "test_threads_ttl_expiry" + ]; + + pythonImportsCheck = [ "property_cached" ]; + + meta = { + description = "Decorator for caching properties in classes"; + homepage = "https://github.com/althonos/property-cached"; + changelog = "https://github.com/althonos/property-cached/blob/v${version}/CHANGELOG.rst"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ jherland ]; + }; +} diff --git a/pkgs/development/python-modules/pure-sasl/default.nix b/pkgs/development/python-modules/pure-sasl/default.nix new file mode 100644 index 000000000000..5b22becc77da --- /dev/null +++ b/pkgs/development/python-modules/pure-sasl/default.nix @@ -0,0 +1,41 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pykerberos, + pytestCheckHook, + six, +}: + +buildPythonPackage rec { + pname = "pure-sasl"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "thobbs"; + repo = "pure-sasl"; + tag = version; + hash = "sha256-AHoZ3QZLr0JLE8+a2zkB06v2wRknxhgm/tcEPXaJX/U="; + }; + + postPatch = '' + substituteInPlace tests/unit/test_mechanism.py \ + --replace 'from mock import patch' 'from unittest.mock import patch' + ''; + + pythonImportsCheck = [ "puresasl" ]; + + nativeCheckInputs = [ + pykerberos + pytestCheckHook + six + ]; + + meta = { + description = "Reasonably high-level SASL client written in pure Python"; + homepage = "http://github.com/thobbs/pure-sasl"; + changelog = "https://github.com/thobbs/pure-sasl/blob/0.6.2/CHANGES.rst"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ jherland ]; + }; +} diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix index 51f36bd86eec..f06b010a5467 100644 --- a/pkgs/development/python-modules/pycapnp/default.nix +++ b/pkgs/development/python-modules/pycapnp/default.nix @@ -1,42 +1,76 @@ { lib, buildPythonPackage, - capnproto, - cython_0, + replaceVars, fetchFromGitHub, - isPy27, - isPyPy, + fetchpatch2, + setuptools, + wheel, + capnproto, + cython, pkgconfig, + pytest-asyncio, + pytestCheckHook, }: buildPythonPackage rec { pname = "pycapnp"; version = "2.0.0"; - format = "setuptools"; - disabled = isPyPy || isPy27; + format = "pyproject"; src = fetchFromGitHub { owner = "capnproto"; repo = "pycapnp"; tag = "v${version}"; - sha256 = "sha256-SVeBRJMMR1Z8+S+QoiUKGRFGUPS/MlmWLi1qRcGcPoE="; + hash = "sha256-SVeBRJMMR1Z8+S+QoiUKGRFGUPS/MlmWLi1qRcGcPoE="; }; - nativeBuildInputs = [ - cython_0 + patches = [ + # pycapnp hardcodes /usr/include and /usr/local/include as the paths to search + # for capnproto's built-in schemas in; replace them with the path to our copy of + # capnproto. + # + # Theoretically, this mechanism could also be used to load capnproto schemas + # exposed by other packages (e.g. capnproto-java), which we could support using + # a setup hook; but in practice nobody seems to use this mechanism for anything + # other than the builtin schemas (based on quick GitHub code search), so I don't + # think it's worthwhile. + (replaceVars ./include-paths.patch { inherit capnproto; }) + (fetchpatch2 { + name = "cython-3.patch"; + url = "https://github.com/capnproto/pycapnp/pull/334.diff?full_index=1"; + hash = "sha256-we7v4RaL7c1tePWl+oYfzMHAfnvnpdMkQgVu9YLwC6Y="; + }) + ]; + + build-system = [ + setuptools + wheel + cython pkgconfig ]; buildInputs = [ capnproto ]; - # Tests depend on schema_capnp which fails to generate - doCheck = false; + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + __darwinAllowLocalNetworking = true; + # https://github.com/NixOS/nixpkgs/issues/255262 + preCheck = '' + enabledTestPaths=$PWD/test + pushd "$out" + ''; + postCheck = '' + popd + ''; - pythonImportsCheck = [ "capnp" ]; - - meta = with lib; { + meta = { + description = "Cython wrapping of the C++ Cap'n Proto library"; homepage = "https://capnproto.github.io/pycapnp/"; - maintainers = [ ]; - license = licenses.bsd2; + changelog = "https://github.com/capnproto/pycapnp/blob/${src.rev}/CHANGELOG.md"; + license = lib.licenses.bsd2; + maintainers = with lib.maintainers; [ Liamolucko ]; }; } diff --git a/pkgs/development/python-modules/pycapnp/include-paths.patch b/pkgs/development/python-modules/pycapnp/include-paths.patch new file mode 100644 index 000000000000..04bd7a79e5c2 --- /dev/null +++ b/pkgs/development/python-modules/pycapnp/include-paths.patch @@ -0,0 +1,14 @@ +--- a/capnp/lib/capnp.pyx ++++ b/capnp/lib/capnp.pyx +@@ -4410,10 +4410,7 @@ def load(file_name, display_name=None, imports=[]): + # Automatically include the system and built-in capnp paths + # Highest priority at position 0 + _capnp_paths = [ +- # Common macOS brew location +- '/usr/local/include', +- # Common posix location +- '/usr/include', ++ '@capnproto@/include', + ] + + class _Loader: diff --git a/pkgs/development/python-modules/requirements-parser/default.nix b/pkgs/development/python-modules/requirements-parser/default.nix index c58ff3f0f085..6586c83cbae7 100644 --- a/pkgs/development/python-modules/requirements-parser/default.nix +++ b/pkgs/development/python-modules/requirements-parser/default.nix @@ -5,29 +5,27 @@ poetry-core, pytestCheckHook, pythonOlder, - setuptools, - types-setuptools, + packaging, }: buildPythonPackage rec { pname = "requirements-parser"; - version = "0.11.0"; + version = "0.13.0"; pyproject = true; - disabled = pythonOlder "3.7"; + disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "madpah"; repo = "requirements-parser"; tag = "v${version}"; - hash = "sha256-o9IriQXa2Pd7s16IENqcWgi73XZQoXsbXU471V1CFaI="; + hash = "sha256-AwsLcHjPfP+cYpKCQVgIcyzUhnqeIBJ92QLR48E6EtI="; }; build-system = [ poetry-core ]; dependencies = [ - setuptools - types-setuptools + packaging ]; nativeCheckInputs = [ pytestCheckHook ]; @@ -37,7 +35,7 @@ buildPythonPackage rec { meta = with lib; { description = "Pip requirements file parser"; homepage = "https://github.com/davidfischer/requirements-parser"; - changelog = "https://github.com/madpah/requirements-parser/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/madpah/requirements-parser/blob/${src.tag}/CHANGELOG.md"; license = licenses.bsd2; maintainers = [ ]; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5e6721686eb1..d85092d4853b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -11703,6 +11703,8 @@ self: super: with self; { posix-ipc = callPackage ../development/python-modules/posix-ipc { }; + postgrest-py = callPackage ../development/python-modules/postgrest-py { }; + posthog = callPackage ../development/python-modules/posthog { }; pot = callPackage ../development/python-modules/pot { }; @@ -11833,6 +11835,8 @@ self: super: with self; { propcache = callPackage ../development/python-modules/propcache { }; + property-cached = callPackage ../development/python-modules/property-cached { }; + property-manager = callPackage ../development/python-modules/property-manager { }; prophet = callPackage ../development/python-modules/prophet { }; @@ -11995,6 +11999,8 @@ self: super: with self; { callPackage ../development/python-modules/pure-python-adb-homeassistant { }; + pure-sasl = callPackage ../development/python-modules/pure-sasl { }; + puremagic = callPackage ../development/python-modules/puremagic { }; purepng = callPackage ../development/python-modules/purepng { };