diff --git a/doc/hooks/pnpm.section.md b/doc/hooks/pnpm.section.md index b00e7bfe81ff..58c966a4dbdf 100644 --- a/doc/hooks/pnpm.section.md +++ b/doc/hooks/pnpm.section.md @@ -7,7 +7,7 @@ The `pnpmBuildHook` in Nixpkgs overrides the default build phase for building pa :::{.example #ex-pnpm-build-hook} ## pnpmBuildHook example code snippet {#pnpm-build-hook-code-snippet} -``` +```nix { lib, stdenv, @@ -94,7 +94,7 @@ Controls the flags pass only to the pnpm build script invocation. Disables automatically running `pnpmBuildHook`. The build can still be run manually if needed, for example: -``` +```nix { lib, rustPlatform, @@ -123,9 +123,9 @@ rustPlatform.buildRustPackage (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; - fetcherversion = 3; + fetcherversion = 4; hash = lib.fakeHash; - } + }; dontPnpmBuild = true; postBuild = '' diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index 2b0ef6f04f07..750693bb6c98 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -10,6 +10,7 @@ +- Paths under `/etc/xdg/` from packages in `environment.systemPackages` are no longer linked into the global `/etc/` by default. Modules depending on such directories must declare them explicitly using `environment.pathsToLink`. - `databricks-cli` has been updated from `0.290.2` to `1.x.x`, the first major release. OAuth tokens for interactive logins (`auth_type = databricks-cli`) are now stored in the OS-native secure store by default (Secret Service on Linux) instead of `~/.databricks/token-cache.json`; cached tokens from older versions are not migrated, so run `databricks auth login` once per profile after upgrading. To keep the previous file-backed storage, set `DATABRICKS_AUTH_STORAGE=plaintext` or add `auth_storage = plaintext` under `[__settings__]` in `~/.databrickscfg`. Additionally, the `vector_search_endpoints` DABs resource renamed `min_qps` to `target_qps` (and the `vector-search-endpoints` command renamed `--min-qps` to `--target-qps`). See the [upstream changelog](https://github.com/databricks/cli/blob/main/CHANGELOG.md) for details. - `hurl` has been updated to `8.x.x` which has some breaking changes. See [upstream changelog](https://github.com/Orange-OpenSource/hurl/releases/tag/8.0.0) for details. diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 0a703a29b7b5..fa4309e9bf69 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -14237,6 +14237,12 @@ githubId = 8211181; name = "Kevin Kandlbinder"; }; + kevinpita = { + email = "gitkevin@pm.me"; + github = "kevinpita"; + githubId = 69063372; + name = "Kevin Pita"; + }; keyruu = { name = "Lucas"; email = "me@keyruu.de"; diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index 6b26ff697d49..17d2c60ae85e 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -52,4 +52,6 @@ - `boot.loader.systemd-boot` gained support for [Automatic Boot Assessment](https://systemd.io/AUTOMATIC_BOOT_ASSESSMENT/) via the new [`boot.loader.systemd-boot.bootCounting`](#opt-boot.loader.systemd-boot.bootCounting.enable) options, allowing automatic detection of and recovery from bad NixOS generations. As part of this change, boot loader entries on the ESP/XBOOTLDR partition are now named `nixos-.conf` instead of `nixos-generation-.conf`; existing entries are migrated automatically on the next `nixos-rebuild boot`/`switch`. +- `security.polkit.settings` added for RFC42 style configuration of the polkitd daemon. + - The `newuidmap` and `newgidmap` security wrappers are now installed with `cap_setuid`/`cap_setgid` file capabilities instead of the setuid-root bit, matching shadow's `--with-fcaps` install mode and other major distributions. Rootless containers (podman, docker-rootless, unprivileged user namespaces) are unaffected. The only behavioural change is that mapping host uid 0 via `/etc/subuid` (which NixOS never configures by default) additionally requires `cap_setfcap`; users who explicitly grant uid 0 in a subuid range can restore the previous behaviour with `security.wrappers.newuidmap.capabilities = lib.mkForce "cap_setuid,cap_setfcap+ep";`. diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index c014f00da605..5776c8ede413 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -187,7 +187,6 @@ in environment.pathsToLink = [ "/bin" - "/etc/xdg" "/etc/gtk-2.0" "/etc/gtk-3.0" "/lib" # FIXME: remove and update debug-info.nix diff --git a/nixos/modules/config/xdg/autostart.nix b/nixos/modules/config/xdg/autostart.nix index 46c90ae1793a..a266b046de1a 100644 --- a/nixos/modules/config/xdg/autostart.nix +++ b/nixos/modules/config/xdg/autostart.nix @@ -22,8 +22,6 @@ }; config = { - # FIXME this does not actually work because "/etc/xdg" is linked - # unconditionally in `nixos/modules/config/system-path.nix` environment.pathsToLink = lib.mkIf config.xdg.autostart.install [ "/etc/xdg/autostart" ]; diff --git a/nixos/modules/security/polkit.nix b/nixos/modules/security/polkit.nix index 6ea840d4ccf3..94237502160e 100644 --- a/nixos/modules/security/polkit.nix +++ b/nixos/modules/security/polkit.nix @@ -16,6 +16,8 @@ let ; cfg = config.security.polkit; + + iniFmt = pkgs.formats.ini { }; in { @@ -30,6 +32,21 @@ in package = mkPackageOption pkgs "polkit" { }; + settings = mkOption { + description = '' + Options for polkitd. + See {manpage}`polkitd.conf(5)` for available options. + ''; + type = types.submodule { + freeformType = iniFmt.type; + options.Polkitd.ExpirationSeconds = lib.mkOption { + description = "Expiration timeout of authenticated sesssions."; + type = types.ints.positive; + default = 300; # current polkit upstream default + }; + }; + }; + extraArgs = mkOption { type = types.listOf types.str; default = [ @@ -154,6 +171,7 @@ in ${cfg.extraConfig} ''; # TODO: validation on compilation (at least against typos) + environment.etc."polkit-1/polkitd.conf".source = iniFmt.generate "polkitd.conf" cfg.settings; security.pam.services.polkit-1 = { }; security.wrappers.pkexec = { @@ -173,4 +191,7 @@ in users.groups.polkituser = { }; }; + meta = { + maintainers = with lib.maintainers; [ zimward ]; + }; } diff --git a/nixos/modules/system/boot/systemd/initrd.nix b/nixos/modules/system/boot/systemd/initrd.nix index f242cb8c6a5b..b53365ff26cf 100644 --- a/nixos/modules/system/boot/systemd/initrd.nix +++ b/nixos/modules/system/boot/systemd/initrd.nix @@ -763,6 +763,7 @@ in ]; }; serviceConfig.Type = "oneshot"; + serviceConfig.EnvironmentFile = "-/etc/switch-root.conf"; description = "NixOS Activation"; script = # bash @@ -770,6 +771,14 @@ in set -uo pipefail export PATH="/bin:${cfg.package.util-linux}/bin" + # A non-NixOS closure (e.g. init=/bin/sh) has no prepare-root; + # initrd-find-nixos-closure records this as a non-empty NEW_INIT. + # Skip activation and let initrd-switch-root hand over to it directly. + if [ -n "''${NEW_INIT:-}" ]; then + echo "$NEW_INIT is not a NixOS system - not activating" + exit 0 + fi + closure="$(realpath /nixos-closure)" # Initialize the system diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix index b00c25e37802..31842fc9c0c6 100644 --- a/nixos/modules/system/etc/etc-activation.nix +++ b/nixos/modules/system/etc/etc-activation.nix @@ -71,6 +71,10 @@ RequiresMountsFor = [ "/sysroot/nix/store" ]; + # find-etc only creates this symlink for a NixOS init. For a + # non-NixOS init= (e.g. init=/bin/sh) it is absent, so skip the + # mount instead of failing the whole initrd. + ConditionPathExists = "/etc-metadata-image"; }; requires = [ config.boot.initrd.systemd.services.initrd-find-etc.name @@ -123,6 +127,8 @@ "/run/nixos-etc-metadata" ]; DefaultDependencies = false; + # Skip for a non-NixOS init=, see the metadata mount above. + ConditionPathExists = "/etc-basedir"; }; } ]; @@ -140,6 +146,8 @@ # before the overlay is mounted. "/run/nixos-etc-metadata" ]; + # Skip for a non-NixOS init=, see the metadata mount above. + ConditionPathExists = "/etc-metadata-image"; }; serviceConfig = { Type = "oneshot"; diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 6c5b97f795de..d22d9820f115 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1645,6 +1645,7 @@ in "i686-linux" ] ./initrd-network-openvpn { systemdStage1 = true; }; systemd-initrd-networkd-ssh = runTest ./systemd-initrd-networkd-ssh.nix; + systemd-initrd-non-nixos = runTest ./systemd-initrd-non-nixos.nix; systemd-initrd-shutdown = runTest { imports = [ ./systemd-shutdown.nix ]; _module.args.systemdStage1 = true; diff --git a/nixos/tests/systemd-initrd-non-nixos.nix b/nixos/tests/systemd-initrd-non-nixos.nix new file mode 100644 index 000000000000..0f564af6504a --- /dev/null +++ b/nixos/tests/systemd-initrd-non-nixos.nix @@ -0,0 +1,68 @@ +{ lib, pkgs, ... }: +let + marker = "REACHED NON-NIXOS INIT AS PID 1"; + + # A non-NixOS init (no prepare-root). We use a store path, not literal + # /bin/sh: a fresh disk has no /bin/sh yet (it is created by the activation a + # non-NixOS init skips), while the store is always mounted; init=/bin/sh works + # the same on a real system. Writes a marker, then stays alive so PID 1 lives. + nonNixosInit = pkgs.writeShellScriptBin "non-nixos" '' + echo "${marker}" > /dev/console + exec ${pkgs.coreutils}/bin/sleep infinity + ''; + + common = { + boot.initrd.systemd.enable = true; + + virtualisation = { + # tmpfs root, like real non-NixOS closure init= microvm consumers. + diskImage = null; + + graphics = false; + }; + + # Speed up wait_for_console. + boot.consoleLogLevel = lib.mkForce 3; + boot.initrd.systemd.managerEnvironment.SYSTEMD_LOG_LEVEL = "warning"; + + # switch-root needs an os-release on the target root. A real system has one + # on disk; our fresh tmpfs does not, so create it. + boot.initrd.systemd.tmpfiles.settings."10-os-release"."/sysroot/etc/os-release".f = { + mode = "0644"; + argument = "ID=test-non-nixos"; + }; + }; +in +{ + name = "systemd-initrd-non-nixos"; + + nodes = { + bashActivation = common; + + nixosInit = { + imports = [ common ]; + system.nixos-init.enable = true; + system.etc.overlay.enable = true; + services.userborn.enable = true; + }; + }; + + testScript = '' + import os + + # The last init= on the cmdline wins; QEMU_KERNEL_PARAMS is appended after + # the default one, so this boots our non-NixOS init. + os.environ["QEMU_KERNEL_PARAMS"] = "init=${lib.getExe nonNixosInit}" + + start_all() + + # If a code path does not skip the non-NixOS init, switch-root is blocked and + # the machine drops to emergency mode: the marker never appears and the wait + # times out. + with subtest("bash initrd-nixos-activation skips a non-NixOS init"): + bashActivation.wait_for_console_text("${marker}", timeout=300) + + with subtest("nixos-init switches to a non-NixOS init directly"): + nixosInit.wait_for_console_text("${marker}", timeout=300) + ''; +} diff --git a/pkgs/by-name/cr/crosswords/package.nix b/pkgs/by-name/cr/crosswords/package.nix index 2944e468c472..03caee7c28d5 100644 --- a/pkgs/by-name/cr/crosswords/package.nix +++ b/pkgs/by-name/cr/crosswords/package.nix @@ -1,6 +1,7 @@ { lib, stdenv, + blueprint-compiler, desktop-file-utils, fetchFromGitLab, isocodes, @@ -17,17 +18,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "crosswords"; - version = "0.3.15"; + version = "0.3.17"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "jrb"; repo = "crosswords"; rev = finalAttrs.version; - hash = "sha256-KcHcTjPoQNA5TBXnKgudjBTV/0JbeVMJ09XVAL7SizI="; + hash = "sha256-VeiVuMEfMCVjSk52BGtlypapeW6CBW1VQsrtDS8aCoY="; }; nativeBuildInputs = [ + blueprint-compiler desktop-file-utils meson ninja diff --git a/pkgs/by-name/da/datalab/package.nix b/pkgs/by-name/da/datalab/package.nix new file mode 100644 index 000000000000..8964dce5bab7 --- /dev/null +++ b/pkgs/by-name/da/datalab/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.datalab-platform diff --git a/pkgs/by-name/di/diffoscope/package.nix b/pkgs/by-name/di/diffoscope/package.nix index 26f003998f58..3c0a801b14bd 100644 --- a/pkgs/by-name/di/diffoscope/package.nix +++ b/pkgs/by-name/di/diffoscope/package.nix @@ -273,6 +273,20 @@ python.pkgs.buildPythonApplication rec { "-vv" ]; + preCheck = lib.optionalString (enableBloat && stdenv.hostPlatform.isDarwin) '' + # h5dump is in hdf5's bin output, but its dylibs are in the out output. + export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [ hdf5 ]}''${DYLD_LIBRARY_PATH:+:''${DYLD_LIBRARY_PATH}}" + ''; + + makeWrapperArgs = lib.optionals enableBloat ( + [ + "--prefix PATH : ${lib.makeBinPath [ hdf5 ]}" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + "--prefix DYLD_LIBRARY_PATH : ${lib.makeLibraryPath [ hdf5 ]}" + ] + ); + postInstall = '' make -C doc installManPage doc/diffoscope.1 diff --git a/pkgs/by-name/fo/folly/memset-benchmark-darwin.patch b/pkgs/by-name/fo/folly/memset-benchmark-darwin.patch new file mode 100644 index 000000000000..218789a22acb --- /dev/null +++ b/pkgs/by-name/fo/folly/memset-benchmark-darwin.patch @@ -0,0 +1,11 @@ +--- a/folly/test/MemsetBenchmark.cpp ++++ b/folly/test/MemsetBenchmark.cpp +@@ -40,7 +40,7 @@ + + template + void bmMemset(void* buf, size_t length, size_t iters) { +-#if !defined(__aarch64__) ++#if !defined(__aarch64__) && !defined(__APPLE__) + __asm__ volatile(".align 64\n"); + #endif + #pragma unroll(1) diff --git a/pkgs/by-name/fo/folly/package.nix b/pkgs/by-name/fo/folly/package.nix index 7bbbab5da16a..0ae344bb364b 100644 --- a/pkgs/by-name/fo/folly/package.nix +++ b/pkgs/by-name/fo/folly/package.nix @@ -144,6 +144,11 @@ stdenv.mkDerivation (finalAttrs: { # https://github.com/facebook/folly/pull/2561 ./memset-memcpy-aarch64.patch + # `.align 64` is invalid on x86_64 Mach-O, where `.align` takes a + # power-of-two exponent (64 means 2^64). The guard only excluded + # aarch64, so add !__APPLE__ to also skip x86_64-darwin. + ./memset-benchmark-darwin.patch + # Use feature detection directly instead of private standard library # macros to detect the presence of ASAN and otherwise fallback to # _not_ having ASAN. diff --git a/pkgs/by-name/fo/foss-flame/package.nix b/pkgs/by-name/fo/foss-flame/package.nix new file mode 100644 index 000000000000..9948ec41f3e6 --- /dev/null +++ b/pkgs/by-name/fo/foss-flame/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.foss-flame diff --git a/pkgs/by-name/gh/gh/package.nix b/pkgs/by-name/gh/gh/package.nix index d03d00f150f0..d1acb9b209b7 100644 --- a/pkgs/by-name/gh/gh/package.nix +++ b/pkgs/by-name/gh/gh/package.nix @@ -10,7 +10,7 @@ buildGoModule (finalAttrs: { pname = "gh"; - version = "2.94.0"; + version = "2.95.0"; __structuredAttrs = true; @@ -18,10 +18,10 @@ buildGoModule (finalAttrs: { owner = "cli"; repo = "cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-wv9hMep8dDKKpqzNI5We6KThOFX82ppzvkoGyhY21pk="; + hash = "sha256-Hzdod8dJuwFv3mNa4Nflqf8uy45RpoeO93sFSMq3D5E="; }; - vendorHash = "sha256-sRpHQTJNDPVe1jaLO9zMqtIMDE6JQB3vUL7AMxlcnJA="; + vendorHash = "sha256-tqbo791t7phe6ip5UzBiLer0rGcKqpKGF0bqwxr3j78="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/by-name/gi/gitkraken/package.nix b/pkgs/by-name/gi/gitkraken/package.nix index 02b52fd9e2e6..2d42936b67ca 100644 --- a/pkgs/by-name/gi/gitkraken/package.nix +++ b/pkgs/by-name/gi/gitkraken/package.nix @@ -56,24 +56,24 @@ let pname = "gitkraken"; - version = "12.2.0"; + version = "12.2.1"; throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}"; srcs = { x86_64-linux = fetchzip { url = "https://api.gitkraken.dev/releases/production/linux/x64/${version}/gitkraken-amd64.tar.gz"; - hash = "sha256-ep4ZLSYxIEqzI7eubMk1H8iTOuOuLJnW1ZjdlOe54eU="; + hash = "sha256-CX/NxvLrxia92vSIjWXzIiBdTfhZ8TW7a5g1hEt+Y/k="; }; x86_64-darwin = fetchzip { url = "https://api.gitkraken.dev/releases/production/darwin/x64/${version}/GitKraken-v${version}.zip"; - hash = "sha256-qGnoBTG7i7SjLgZ1MzGNTNkvxg6uOzSX4tUwjrk2Yvw="; + hash = "sha256-B4vFDrDy3s/d5MyGOP3pv/pGpUfpJFhvI8EWSqJhiyg="; }; aarch64-darwin = fetchzip { url = "https://api.gitkraken.dev/releases/production/darwin/arm64/${version}/GitKraken-v${version}.zip"; - hash = "sha256-5t2PV2CY6izw+6k0rS0GwZMxDmfmSWGi7A/YBTVa4cc="; + hash = "sha256-JEgqJ6smqDG/2KFApRSYTuL1Ch1sIkhGDMjqVsgQUmc="; }; }; diff --git a/pkgs/by-name/gp/gpclient/package.nix b/pkgs/by-name/gp/gpclient/package.nix index 1aa7b97cda5a..d950e936f37c 100644 --- a/pkgs/by-name/gp/gpclient/package.nix +++ b/pkgs/by-name/gp/gpclient/package.nix @@ -131,6 +131,11 @@ rustPlatform.buildRustPackage { cp -r packaging/files/usr/lib $out/lib substituteInPlace $out/lib/NetworkManager/dispatcher.d/pre-down.d/gpclient.down \ --replace-fail /usr/bin/gpclient $out/bin/gpclient + + install -Dm644 packaging/files/usr/share/applications/gpgui.desktop \ + $out/share/applications/gpgui.desktop + substituteInPlace $out/share/applications/gpgui.desktop \ + --replace-fail /usr/bin/gpclient $out/bin/gpclient ''; postFixup = '' diff --git a/pkgs/by-name/gr/gridtracker2/package.nix b/pkgs/by-name/gr/gridtracker2/package.nix index 263b1b6cd7f9..0973996d9a4c 100644 --- a/pkgs/by-name/gr/gridtracker2/package.nix +++ b/pkgs/by-name/gr/gridtracker2/package.nix @@ -11,13 +11,13 @@ }: buildNpmPackage (finalAttrs: { pname = "gridtracker2"; - version = "2.260609.0"; + version = "2.260613.0"; src = fetchFromGitLab { owner = "gridtracker.org"; repo = "gridtracker2"; tag = "v${finalAttrs.version}"; - hash = "sha256-QlL8q5TaUizACr4uRbFZtl8hy/Eyq7d4v56ca3ckj4o="; + hash = "sha256-cwsZZXIMIX19u3qlAk5b0Gi339dtuoHKSC7/rBvccJs="; }; npmDepsHash = "sha256-5h3bswjVf/8JHhwHRFTUfydN7XXtWbxNHTZ0mLL7RT8="; diff --git a/pkgs/by-name/he/herdr/package.nix b/pkgs/by-name/he/herdr/package.nix new file mode 100644 index 000000000000..8b6971264498 --- /dev/null +++ b/pkgs/by-name/he/herdr/package.nix @@ -0,0 +1,58 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + zig_0_15, + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "herdr"; + version = "0.7.0"; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "ogulcancelik"; + repo = "herdr"; + tag = "v${finalAttrs.version}"; + hash = "sha256-DjCSwhRMBRE9lSvjpX6m8IpoEgUbOP1jcmeXMlQlSQY="; + }; + + cargoHash = "sha256-NHVSdXlGsqhI/Mij28TvdW0f6IKOglNgpBNb2sFXocI="; + + zigDeps = zig_0_15.fetchDeps { + inherit (finalAttrs) pname version; + src = "${finalAttrs.src}/vendor/libghostty-vt"; + fetchAll = true; + hash = "sha256-pgGu8+NwvFcj6SrN4VaTHLeHdA7QY731ctyrHZwgFAc="; + }; + + nativeBuildInputs = [ zig_0_15.hook ]; + + # Upstream binary tests are renamed, added, or changed between releases and + # depend on host process details, so Nix-only patches for them are brittle. + doCheck = false; + + dontUseZigBuild = true; + dontUseZigCheck = true; + dontUseZigInstall = true; + + postConfigure = '' + export ZIG_GLOBAL_CACHE_DIR=$(mktemp -d) + cp -rL ${finalAttrs.zigDeps} "$ZIG_GLOBAL_CACHE_DIR/p" + chmod -R u+w "$ZIG_GLOBAL_CACHE_DIR/p" + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Agent multiplexer that lives in your terminal"; + homepage = "https://github.com/ogulcancelik/herdr"; + changelog = "https://github.com/ogulcancelik/herdr/releases/tag/v${finalAttrs.version}"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [ kevinpita ]; + mainProgram = "herdr"; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/in/intersphinx-registry/package.nix b/pkgs/by-name/in/intersphinx-registry/package.nix new file mode 100644 index 000000000000..df03d3e74c17 --- /dev/null +++ b/pkgs/by-name/in/intersphinx-registry/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.intersphinx-registry diff --git a/pkgs/by-name/ju/jupyterlite/package.nix b/pkgs/by-name/ju/jupyterlite/package.nix new file mode 100644 index 000000000000..90b7d2982089 --- /dev/null +++ b/pkgs/by-name/ju/jupyterlite/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.jupyterlite-core diff --git a/pkgs/by-name/li/libipuz/package.nix b/pkgs/by-name/li/libipuz/package.nix index 4648496425a4..baf41200cd3a 100644 --- a/pkgs/by-name/li/libipuz/package.nix +++ b/pkgs/by-name/li/libipuz/package.nix @@ -4,7 +4,6 @@ cargo, fetchFromGitLab, gi-docgen, - glib, gobject-introspection, json-glib, meson, @@ -15,14 +14,14 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "libipuz"; - version = "0.5.2"; + version = "0.5.4"; src = fetchFromGitLab { domain = "gitlab.gnome.org"; owner = "jrb"; repo = "libipuz"; rev = finalAttrs.version; - hash = "sha256-8bFMtqRD90SF9uT39Wkjf0eUef+0HgyrqY+DFA/xutI="; + hash = "sha256-rUFYPtedcNqba2OLPo9nSjyGxuc3Q3RNoOmZx+RUOcU="; }; cargoRoot = "libipuz/rust"; @@ -33,13 +32,12 @@ stdenv.mkDerivation (finalAttrs: { version cargoRoot ; - hash = "sha256-Aw/caE5Z5JxoKLEr2Dr2wq6cyFleNNwtKM1yXM8ZWmU="; + hash = "sha256-NbK++me/tOrl0MyxvyTIK9UWyR0jU3pkJ6c5sNjuY2M="; }; nativeBuildInputs = [ cargo gi-docgen - glib gobject-introspection meson ninja @@ -48,7 +46,6 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ - glib json-glib ]; diff --git a/pkgs/by-name/li/libkrun/package.nix b/pkgs/by-name/li/libkrun/package.nix index fb413d835be4..ba4641449d8f 100644 --- a/pkgs/by-name/li/libkrun/package.nix +++ b/pkgs/by-name/li/libkrun/package.nix @@ -13,6 +13,7 @@ pipewire, virglrenderer, libkrunfw, + nix-update-script, rustc, withBlk ? false, withNet ? false, @@ -34,13 +35,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "libkrun" + lib.optionalString (variant != null) "-${variant}"; - version = "1.18.1"; + version = "1.19.0"; src = fetchFromGitHub { owner = "libkrun"; repo = "libkrun"; tag = "v${finalAttrs.version}"; - hash = "sha256-JXbCDByrWhmcEqwREX/kgVAtS4K8blfpjknTdJwQCLo="; + hash = "sha256-g4u34sGdgv6mRRry9b5TAXSx+pmVwCNSD3YNtr6qRxo="; }; outputs = [ @@ -50,7 +51,7 @@ stdenv.mkDerivation (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; - hash = "sha256-dfIe2pl957MRcY1hIv6wPPX/4He+ou+eCZLbylVeGAE="; + hash = "sha256-rxdaqEKDDMxFwRuX6kLhqGyFXJTz+Bx4mJJhYL5nPgU="; }; # Make sure libkrunfw can be found by dlopen() @@ -104,6 +105,10 @@ stdenv.mkDerivation (finalAttrs: { env.OPENSSL_NO_VENDOR = true; + passthru.updateScript = nix-update-script { + attrPath = "libkrun"; + }; + meta = { description = "Dynamic library providing Virtualization-based process isolation capabilities"; homepage = "https://github.com/libkrun/libkrun"; diff --git a/pkgs/by-name/li/librewolf-unwrapped/package.nix b/pkgs/by-name/li/librewolf-unwrapped/package.nix index 22f0a83077c9..2dcab94afe52 100644 --- a/pkgs/by-name/li/librewolf-unwrapped/package.nix +++ b/pkgs/by-name/li/librewolf-unwrapped/package.nix @@ -35,6 +35,7 @@ in hythera mBornand thbemme + wolfgangwalther ]; platforms = lib.platforms.unix; broken = stdenv.buildPlatform.is32bit; diff --git a/pkgs/by-name/li/libsignal-ffi/package.nix b/pkgs/by-name/li/libsignal-ffi/package.nix index 0cb074ba6fc0..c221dd578486 100644 --- a/pkgs/by-name/li/libsignal-ffi/package.nix +++ b/pkgs/by-name/li/libsignal-ffi/package.nix @@ -13,14 +13,14 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "libsignal-ffi"; # must match the version used in mautrix-signal # see https://github.com/mautrix/signal/issues/401 - version = "0.93.2"; + version = "0.94.4"; src = fetchFromGitHub { fetchSubmodules = true; owner = "signalapp"; repo = "libsignal"; tag = "v${finalAttrs.version}"; - hash = "sha256-U32vd5TzgA1LwlFgLUJU30gUeQoYnKI7kYnhy+d8eQk="; + hash = "sha256-Uh/j8cXUWgWgSo9UBfYOFuC8i+2YdMwGHcXf55PkGgU="; }; postPatch = @@ -46,7 +46,7 @@ rustPlatform.buildRustPackage (finalAttrs: { NIX_LDFLAGS = if stdenv.hostPlatform.isDarwin then "-lc++" else "-lstdc++"; }; - cargoHash = "sha256-5thq1MXL792u87fv6M5E1oi8gq6S8dnTsy3k26T7pgM="; + cargoHash = "sha256-st6zTKvxSsyMce22E8nFsJMGjQkk9sEAzSCmyZP8x20="; cargoBuildFlags = [ "-p" diff --git a/pkgs/by-name/li/licomp-toolkit/package.nix b/pkgs/by-name/li/licomp-toolkit/package.nix new file mode 100644 index 000000000000..e1205fa3a563 --- /dev/null +++ b/pkgs/by-name/li/licomp-toolkit/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.licomp-toolkit diff --git a/pkgs/by-name/ls/lsof/package.nix b/pkgs/by-name/ls/lsof/package.nix index e471fa9ae830..b753264c7669 100644 --- a/pkgs/by-name/ls/lsof/package.nix +++ b/pkgs/by-name/ls/lsof/package.nix @@ -17,13 +17,13 @@ in stdenv.mkDerivation rec { pname = "lsof"; - version = "4.99.6"; + version = "4.99.7"; src = fetchFromGitHub { owner = "lsof-org"; repo = "lsof"; - rev = version; - hash = "sha256-M/2xcii8ibGAI/6f34AE7aEb9fmn+iSWqWqnyDhg4CI="; + tag = version; + hash = "sha256-o95osjMQvpOVx2b0lCXVp61x2GHQV+HW1iaamVhevng="; }; postPatch = '' @@ -80,6 +80,7 @@ stdenv.mkDerivation rec { meta = { homepage = "https://github.com/lsof-org/lsof"; + changelog = "https://github.com/lsof-org/lsof/releases/tag/${src.tag}"; description = "Tool to list open files"; mainProgram = "lsof"; longDescription = '' diff --git a/pkgs/by-name/ly/lynx/package.nix b/pkgs/by-name/ly/lynx/package.nix index f5eb99b2e0a2..86350e08e700 100644 --- a/pkgs/by-name/ly/lynx/package.nix +++ b/pkgs/by-name/ly/lynx/package.nix @@ -13,14 +13,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "lynx"; - version = "2.9.2"; + version = "2.9.3"; src = fetchurl { urls = [ "https://invisible-island.net/archives/lynx/tarballs/lynx${finalAttrs.version}.tar.bz2" "https://invisible-mirror.net/archives/lynx/tarballs/lynx${finalAttrs.version}.tar.bz2" ]; - hash = "sha256-c3S4mTbZkWaeEB9Ol/LJWSA24ejNqnuvwlmnerb7B84="; + hash = "sha256-F0t/KGamDzJHunX1x9uxCxJK7eShNZMS3hXzv+vSBQ8="; }; enableParallelBuilding = true; @@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: { }; meta = { + changelog = "https://lynx.invisible-island.net/lynx${finalAttrs.version}/CHANGES.html"; description = "Text-mode web browser"; homepage = "https://lynx.invisible-island.net/"; mainProgram = "lynx"; diff --git a/pkgs/by-name/ma/markdown-oxide/package.nix b/pkgs/by-name/ma/markdown-oxide/package.nix index bb5791819406..bf7095357e1f 100644 --- a/pkgs/by-name/ma/markdown-oxide/package.nix +++ b/pkgs/by-name/ma/markdown-oxide/package.nix @@ -5,16 +5,16 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "markdown-oxide"; - version = "0.25.10"; + version = "0.25.11"; src = fetchFromGitHub { owner = "Feel-ix-343"; repo = "markdown-oxide"; tag = "v${finalAttrs.version}"; - hash = "sha256-nzUje11rp6ByfajrxeEszi1mYs2Pu9Fq+blRdUECqT4="; + hash = "sha256-7hiZqdA9KfSv/IPwykRJB1qmyQThvie4QlCoQw7nFGo="; }; - cargoHash = "sha256-Zzo7lEGfzPpxODeVHm89q22aAmuN5h2nIdh2eF2jSpY="; + cargoHash = "sha256-Q0hY5YxV/se7vXf00nKTVkVcLCPzLSitEWtQENRskjc="; meta = { description = "Markdown LSP server inspired by Obsidian"; diff --git a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix index 27bc8b43be4b..b85e77bcebda 100644 --- a/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix +++ b/pkgs/by-name/ma/matrix-synapse-unwrapped/package.nix @@ -14,19 +14,19 @@ python3Packages.buildPythonApplication rec { pname = "matrix-synapse"; - version = "1.154.0"; + version = "1.155.0"; pyproject = true; src = fetchFromGitHub { owner = "element-hq"; repo = "synapse"; rev = "v${version}"; - hash = "sha256-4US6PPJAI0UUOmy12thjXKX3IRUCH9w/zkRD3ivQ9BE="; + hash = "sha256-ka92mJvm/7PaENPkQRWuw8c8BdzMvIuTsc3xSEmEms8="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-Cu5bXS6BprXr/dwkNXDjcP9hOfqQddoC5BxOus4rteM="; + hash = "sha256-+Z2GyHlVothtcTKHjbr+iKQG8wi5tgtoZr8+FHYJEFk="; }; build-system = diff --git a/pkgs/by-name/ma/mautrix-signal/package.nix b/pkgs/by-name/ma/mautrix-signal/package.nix index c0c7e9978038..a5aa11b57755 100644 --- a/pkgs/by-name/ma/mautrix-signal/package.nix +++ b/pkgs/by-name/ma/mautrix-signal/package.nix @@ -20,14 +20,14 @@ let in buildGoModule rec { pname = "mautrix-signal"; - version = "26.05"; - tag = "v0.2605.0"; + version = "26.06"; + tag = "v0.2606.0"; src = fetchFromGitHub { owner = "mautrix"; repo = "signal"; inherit tag; - hash = "sha256-IGDVfauU+zRbwEN6FdI9t5TjnKAm22NsuxiUiDPhK2Q="; + hash = "sha256-DSOf6kyNcsknwKM77vUQs6pWX8hMo4mU9dOGai62QR0="; }; buildInputs = @@ -46,7 +46,7 @@ buildGoModule rec { CGO_LDFLAGS = toString [ cppStdLib ]; }; - vendorHash = "sha256-Njl4kwhx+vlqQI8CeA8gfanEKClvMefoM3Sy3UUYllc="; + vendorHash = "sha256-e9Et97QEn12kkiqrQTaDtwECLhwvxwDUF6IcWoL/+Mg="; ldflags = [ "-X" diff --git a/pkgs/by-name/ne/nelm/package.nix b/pkgs/by-name/ne/nelm/package.nix index 868f5e3e08b4..5f3c81a0a0e7 100644 --- a/pkgs/by-name/ne/nelm/package.nix +++ b/pkgs/by-name/ne/nelm/package.nix @@ -9,16 +9,16 @@ }: buildGoModule (finalAttrs: { pname = "nelm"; - version = "1.23.2"; + version = "1.24.0"; src = fetchFromGitHub { owner = "werf"; repo = "nelm"; tag = "v${finalAttrs.version}"; - hash = "sha256-tP5NkuKmne+XthBnN36uorwMuM7yuJLvo4zzc1K1JBQ="; + hash = "sha256-2+jkNOCmxgFJ1hXk2/Q96JgbrFrIxu9USbWtM49znJ8="; }; - vendorHash = "sha256-Ux9fyezBXWVjmpa8WsEHvOUo/pokzFXvdpDAtNh0T/8="; + vendorHash = "sha256-jPc96Sehy1xv+G9GA6bUA3qfrgTaUt7ybK76ELyx4to="; subPackages = [ "cmd/nelm" ]; diff --git a/pkgs/by-name/ni/nixos-init/src/find_etc.rs b/pkgs/by-name/ni/nixos-init/src/find_etc.rs index 8b994e1d7534..d06f7bbb0114 100644 --- a/pkgs/by-name/ni/nixos-init/src/find_etc.rs +++ b/pkgs/by-name/ni/nixos-init/src/find_etc.rs @@ -3,7 +3,7 @@ use std::{os::unix, path::Path}; use anyhow::{Context, Result}; use crate::config::Config; -use crate::{SYSROOT_PATH, find_toplevel_in_prefix, resolve_in_prefix}; +use crate::{SYSROOT_PATH, find_init_in_prefix, resolve_in_prefix, verify_init_is_nixos}; /// Entrypoint for the `find-etc` binary. /// @@ -12,7 +12,20 @@ use crate::{SYSROOT_PATH, find_toplevel_in_prefix, resolve_in_prefix}; /// This avoids needing a reference to the toplevel embedded in the initrd and thus reduces the /// need to re-build it. pub fn find_etc() -> Result<()> { - let toplevel = find_toplevel_in_prefix(SYSROOT_PATH)?; + let init_in_sysroot = + find_init_in_prefix(SYSROOT_PATH).context("Failed to find init in sysroot")?; + + // A non-NixOS init= (e.g. init=/bin/sh) has no etc metadata image. Skip + // without creating the symlinks: the etc-overlay mounts are gated on them + // and so skip too, and initrd-init switches root to the init directly. + let Ok(toplevel) = verify_init_is_nixos(SYSROOT_PATH, &init_in_sysroot) else { + log::info!( + "{} is not a NixOS system - not setting up the etc overlay.", + init_in_sysroot.display() + ); + return Ok(()); + }; + let config = Config::from_toplevel(&toplevel, SYSROOT_PATH)?; let basedir = config diff --git a/pkgs/by-name/ni/nixos-init/src/lib.rs b/pkgs/by-name/ni/nixos-init/src/lib.rs index c781757c9b82..bbb4abdb829b 100644 --- a/pkgs/by-name/ni/nixos-init/src/lib.rs +++ b/pkgs/by-name/ni/nixos-init/src/lib.rs @@ -27,16 +27,6 @@ pub use crate::{ pub const SYSROOT_PATH: &str = "/sysroot"; -/// Find the path to the toplevel closure of the system in a prefix. -/// -/// Uses the `init=` parameter on the kernel command-line. -/// -/// Returns the relative path of the init to the prefix, e.g. without the `/sysroot` prefix. -pub fn find_toplevel_in_prefix(prefix: &str) -> Result { - let init_in_sysroot = find_init_in_prefix(prefix)?; - verify_init_is_nixos(prefix, init_in_sysroot) -} - /// Verify that an init path is inside a `NixOS` toplevel directory. /// /// If the path is verified, returns the path to the toplevel. @@ -87,20 +77,16 @@ pub fn find_init_in_prefix(prefix: &str) -> Result { } /// Extract the value of the `init` parameter from the given kernel `cmdline`. +/// +/// If `init=` appears multiple times the last one wins, matching the kernel. +/// This is what makes appending `init=/bin/sh` at the boot prompt work even +/// though the boot entry already has an `init=`. fn extract_init(cmdline: &str) -> Result { - let init_params: Vec<&str> = cmdline + let init = cmdline .split_ascii_whitespace() - .filter(|p| p.starts_with("init=")) - .collect(); - - if init_params.len() != 1 { - bail!("Expected exactly one init param on kernel cmdline: {cmdline}") - } - - let init = init_params - .first() - .and_then(|s| s.split('=').next_back()) - .context("Failed to extract init path from kernel cmdline: {cmdline}")?; + .filter_map(|p| p.strip_prefix("init=")) + .next_back() + .with_context(|| format!("No init= parameter on kernel cmdline: {cmdline}"))?; Ok(PathBuf::from(init)) } @@ -129,4 +115,25 @@ mod tests { Ok(()) } + + #[test] + fn test_extract_init_single() { + assert_eq!( + extract_init("root=fstab init=/nix/store/xxx-nixos/init quiet").unwrap(), + PathBuf::from("/nix/store/xxx-nixos/init") + ); + } + + #[test] + fn test_extract_init_last_wins() { + assert_eq!( + extract_init("init=/nix/store/xxx-nixos/init init=/bin/sh").unwrap(), + PathBuf::from("/bin/sh") + ); + } + + #[test] + fn test_extract_init_missing() { + assert!(extract_init("root=fstab quiet").is_err()); + } } diff --git a/pkgs/by-name/sc/sccache/package.nix b/pkgs/by-name/sc/sccache/package.nix index 23c47655f8d2..eacc6426d966 100644 --- a/pkgs/by-name/sc/sccache/package.nix +++ b/pkgs/by-name/sc/sccache/package.nix @@ -8,17 +8,17 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - version = "0.15.0"; + version = "0.16.0"; pname = "sccache"; src = fetchFromGitHub { owner = "mozilla"; repo = "sccache"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-cisDCEevpF8tzdEQzgIN+OifdTDk2YXvuSLKyBQu+IE="; + sha256 = "sha256-OShSodMh3RWB/XWsUwW5jaJ5KLRCrcrPG1DsehDiKc4="; }; - cargoHash = "sha256-p08KXAnGyAbn4JzacphucV+OjZt0iKjnZEFtONkkDRs="; + cargoHash = "sha256-65wx8fQHqcRLWYQvbsPCEDxlOmaCs3azQCPYacHXYL8="; buildFeatures = lib.optionals distributed [ "dist-client" diff --git a/pkgs/by-name/sp/sphinx-gallery/package.nix b/pkgs/by-name/sp/sphinx-gallery/package.nix new file mode 100644 index 000000000000..1558af239da3 --- /dev/null +++ b/pkgs/by-name/sp/sphinx-gallery/package.nix @@ -0,0 +1,3 @@ +{ python3Packages }: + +python3Packages.toPythonApplication python3Packages.sphinx-gallery diff --git a/pkgs/by-name/st/strace/package.nix b/pkgs/by-name/st/strace/package.nix index 86f8b0fa4c42..77345bd6a3ae 100644 --- a/pkgs/by-name/st/strace/package.nix +++ b/pkgs/by-name/st/strace/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "strace"; - version = "7.0"; + version = "7.1"; src = fetchurl { url = "https://strace.io/files/${finalAttrs.version}/strace-${finalAttrs.version}.tar.xz"; - hash = "sha256-bJJBm+Py7FYLMXKKRlIhfFmGTIZCunsbN3GxsBOtB0s="; + hash = "sha256-gXQ+zypbRBhrL1A4r9yL7aflxwrtFbT7+8xuns4kSQ8="; }; separateDebugInfo = true; diff --git a/pkgs/by-name/ta/tau-radio/package.nix b/pkgs/by-name/ta/tau-radio/package.nix new file mode 100644 index 000000000000..fe1b1b485368 --- /dev/null +++ b/pkgs/by-name/ta/tau-radio/package.nix @@ -0,0 +1,71 @@ +{ + lib, + stdenv, + rustPlatform, + fetchFromGitHub, + + pkg-config, + + alsa-lib, + jack2, + libogg, + libopus, + libopusenc, + libshout, + + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "tau-radio"; + version = "0.2.3"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "tau-org"; + repo = "tau-radio"; + tag = "v${finalAttrs.version}"; + hash = "sha256-1SKlZ+htlCsO7ClZDbFbKyw8v9zgV5pKDEtL57D49f8="; + }; + + cargoHash = "sha256-X1uHKYgt9ddvr/cBDW9HaHawG5uv2sU416jyL/XTPF4="; + + nativeBuildInputs = [ + pkg-config + rustPlatform.bindgenHook + ]; + + buildInputs = [ + libogg + libopus + libopusenc + libshout + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + alsa-lib + jack2 + ]; + + # fatal error: 'opus.h' file not found + env.NIX_CFLAGS_COMPILE = "-I${libopus.dev}/include/opus"; + + postPatch = '' + # The opusenc crate hardcodes `*const i8`, but bindgen generates `*const c_char`, + # which is `u8` on `aarch64-linux`, causing a type mismatch on that platform + substituteInPlace $cargoDepsCopy/*/opusenc-*/src/comments.rs \ + --replace-fail \ + "picture.as_ptr() as *const i8," \ + "picture.as_ptr() as *const std::ffi::c_char," + ''; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Web radio - Hijacks audio device using CLAP and Ogg/Opus"; + homepage = "https://github.com/tau-org/tau-radio"; + mainProgram = "tau-radio"; + license = lib.licenses.eupl12; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/by-name/ta/tau-tower/package.nix b/pkgs/by-name/ta/tau-tower/package.nix new file mode 100644 index 000000000000..8aae671f4cec --- /dev/null +++ b/pkgs/by-name/ta/tau-tower/package.nix @@ -0,0 +1,41 @@ +{ + lib, + rustPlatform, + fetchFromGitHub, + + perl, + pkg-config, + + nix-update-script, +}: + +rustPlatform.buildRustPackage (finalAttrs: { + pname = "tau-tower"; + version = "0.2.3"; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "tau-org"; + repo = "tau-tower"; + tag = "v${finalAttrs.version}"; + hash = "sha256-vbUR2ZfnomUkWdz2xdFReR6B0lzz4dKM88RonAWu994="; + }; + + cargoHash = "sha256-Qv97FTiccfQSBI2OBfl31p3oF/JCL/+UXkK+owuByDY="; + + nativeBuildInputs = [ + perl + pkg-config + ]; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Webradio server - broadcasts audio source to clients"; + homepage = "https://github.com/tau-org/tau-tower"; + mainProgram = "tau-tower"; + license = lib.licenses.eupl12; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/by-name/th/thunderkittens/package.nix b/pkgs/by-name/th/thunderkittens/package.nix index 54915bbd0fc6..794b9778cc6f 100644 --- a/pkgs/by-name/th/thunderkittens/package.nix +++ b/pkgs/by-name/th/thunderkittens/package.nix @@ -7,7 +7,7 @@ stdenvNoCC.mkDerivation { pname = "thunderkittens"; - version = "0-unstable-2026-05-27"; + version = "0-unstable-2026-06-15"; __structuredAttrs = true; strictDeps = true; @@ -15,8 +15,8 @@ stdenvNoCC.mkDerivation { src = fetchFromGitHub { owner = "HazyResearch"; repo = "ThunderKittens"; - rev = "34b15f7e7012de25ae162c8d9dc85296dd342676"; - hash = "sha256-VN6AACu6LqOuCCvpNOeGGdYkQblxyWolBnCNeSxgiL4="; + rev = "02e9acbd8c330564357a9e2df929e938ac67d6d0"; + hash = "sha256-GXrKCMKMDnQO7hNj4WZmmANSVJqEioIArwQWoE+/jVM="; }; dontBuild = true; diff --git a/pkgs/development/python-modules/datalab-platform/default.nix b/pkgs/development/python-modules/datalab-platform/default.nix new file mode 100644 index 000000000000..0c71b8aecb1f --- /dev/null +++ b/pkgs/development/python-modules/datalab-platform/default.nix @@ -0,0 +1,174 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-time + qt5, + + # build-system + setuptools, + + # dependencies + fastapi, + guidata, + numpy, + packaging, + pandas, + plotpy, + psutil, + pydantic, + pywavelets, + scikit-image, + scipy, + sigima, + uvicorn, + + # optional-dependencies + babel, + build, + coverage, + pre-commit, + pylint, + ruff, + myst-parser, + pydata-sphinx-theme, + sphinx, + sphinx-copybutton, + sphinx-design, + sphinx-intl, + sphinx-sitemap, + sphinxcontrib-svg2pdfconverter, + opencv-python-headless, + pyinstaller, + pyqt5, + httpx, + pytest, + pytest-xvfb, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "datalab-platform"; + version = "1.2.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "DataLab-Platform"; + repo = "DataLab"; + tag = "v${finalAttrs.version}"; + hash = "sha256-rJDA5qYv2LYMyrckxNy63Gqn8HYU62qG0OAioztKGtA="; + }; + + # NOTE: DataLab is compatible with qt6, but it's apparently not perfect as + # the executable segfaults on startup. For now, let's use qt5 which works and + # migrate in the future. + nativeBuildInputs = [ + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + qt5.qtbase + ]; + + build-system = [ + setuptools + ]; + + dependencies = [ + fastapi + guidata + numpy + packaging + pandas + plotpy + psutil + pydantic + pywavelets + scikit-image + scipy + sigima + uvicorn + ] + ++ finalAttrs.passthru.optional-dependencies.qt + # required for `bin/datalab-{demo,tests}` + ++ finalAttrs.passthru.optional-dependencies.test; + + optional-dependencies = { + dev = [ + babel + build + coverage + pre-commit + pylint + ruff + ]; + doc = [ + myst-parser + pydata-sphinx-theme + sphinx + sphinx-copybutton + sphinx-design + sphinx-intl + sphinx-sitemap + sphinxcontrib-svg2pdfconverter + ]; + exe = [ + opencv-python-headless + pyinstaller + pyqt5 + ]; + opencv = [ + opencv-python-headless + ]; + qt = [ + pyqt5 + ]; + test = [ + httpx + pytest + pytest-xvfb + ]; + }; + + pythonRelaxDeps = [ + "guidata" + "plotpy" + "scipy" + ]; + + pythonImportsCheck = [ + "datalab" + ]; + + nativeCheckInputs = [ + pytestCheckHook + ] + ++ finalAttrs.passthru.optional-dependencies.test; + + pytestFlags = [ + "--collect-only" + ]; + + dontWrapQtApps = true; + + preFixup = '' + # Python scripts need to be manually wrapped + for exe in "$out/bin"/datalab*; do + wrapQtApp "$exe" + done + ''; + + meta = { + description = "Open-source Platform for Scientific and Technical Data Processing and Visualization"; + homepage = "https://github.com/DataLab-Platform/DataLab"; + changelog = "https://github.com/DataLab-Platform/DataLab/releases/tag/${finalAttrs.src.tag}"; + mainProgram = "datalab"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/foss-flame/default.nix b/pkgs/development/python-modules/foss-flame/default.nix new file mode 100644 index 000000000000..e5d125716872 --- /dev/null +++ b/pkgs/development/python-modules/foss-flame/default.nix @@ -0,0 +1,86 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + jsonschema, + license-expression, + osadl-matrix, + pyyaml, + spdx-license-list, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "foss-flame"; + version = "0.21.8"; + __structuredAttrs = true; + pyproject = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "foss-licenses"; + tag = finalAttrs.version; + hash = "sha256-vtiwY5l9zlNKQdoO3NSOG+9U1chqD5tvzBE20xSnGPA="; + postFetch = '' + # We have `CONSIDERATIONS.md` and `considerations.md` with almost the + # same contents, but because Darwin is case-insensitive, having both + # files results in a conflict, and therefore different source hashes than + # other platforms. + find $out -iname "considerations.md" -delete + ''; + }; + + sourceRoot = "${finalAttrs.src.name}/python"; + + build-system = [ + setuptools + ]; + + dependencies = [ + jsonschema + license-expression + osadl-matrix + pyyaml + spdx-license-list + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + # Upstream setup.cfg has addopts, requiring pytest-{cov,forked,random-order}. + # Clearing it is simpler than replicating those plugins, especially since + # they only affect how tests run. + pytestFlags = [ + "--override-ini=addopts=" + ]; + + preCheck = '' + ln -s ../tests . + ''; + + pythonImportsCheck = [ + "flame" + ]; + + meta = { + description = "License meta data: data and python module/cli"; + homepage = "https://github.com/hesa/foss-licenses"; + changelog = "https://github.com/hesa/foss-licenses/releases/tag/${finalAttrs.src.tag}"; + mainProgram = "flame"; + license = with lib.licenses; [ + bsd2 + cc-by-40 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/hepunits/default.nix b/pkgs/development/python-modules/hepunits/default.nix index d27fccf13926..329e32ae9ff0 100644 --- a/pkgs/development/python-modules/hepunits/default.nix +++ b/pkgs/development/python-modules/hepunits/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "hepunits"; - version = "2.4.5"; + version = "2.4.6"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-iPpXyfNUWdam7iYYunPCFUxImjLiHVJbZ9qAYqIkLls="; + hash = "sha256-vKatqTcUcWbWbp+hUlZvI3iGjXmCEcrWmQCAOZVg+jQ="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/intersphinx-registry/default.nix b/pkgs/development/python-modules/intersphinx-registry/default.nix new file mode 100644 index 000000000000..e503a12c5d7d --- /dev/null +++ b/pkgs/development/python-modules/intersphinx-registry/default.nix @@ -0,0 +1,77 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + flit-core, + + # optional-dependencies + platformdirs, + requests, + requests-cache, + sphinx, + mypy, + pytest, + pytest-xdist, + types-requests, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "intersphinx-registry"; + version = "0.2705.27"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "Quansight-labs"; + repo = "intersphinx_registry"; + tag = finalAttrs.version; + hash = "sha256-yFpk3NZO2iCjuJ43WvssbDYxNJ6G6KfY5pcTCilsGQs="; + }; + + build-system = [ + flit-core + ]; + + dependencies = finalAttrs.passthru.optional-dependencies.lookup; + + optional-dependencies = { + lookup = [ + platformdirs + requests + requests-cache + sphinx + ]; + tests = [ + mypy + pytest + pytest-xdist + types-requests + ]; + }; + + nativeCheckInputs = [ + mypy + pytestCheckHook + ] + ++ finalAttrs.passthru.optional-dependencies.tests; + + # TODO: lots of failing tests + doCheck = false; + + pythonImportsCheck = [ + "intersphinx_registry" + ]; + + meta = { + description = "Utility package that provides a default intersphinx mapping"; + homepage = "https://github.com/Quansight-labs/intersphinx_registry"; + mainProgram = "intersphinx-registry"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ eljamm ]; + }; +}) diff --git a/pkgs/development/python-modules/jupyterlite-core/default.nix b/pkgs/development/python-modules/jupyterlite-core/default.nix new file mode 100644 index 000000000000..496717592b40 --- /dev/null +++ b/pkgs/development/python-modules/jupyterlite-core/default.nix @@ -0,0 +1,55 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatchling, + + # dependencies + doit, + jupyter-core, + pycparser, +}: + +buildPythonPackage (finalAttrs: { + pname = "jupyterlite-core"; + version = "0.7.6"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jupyterlite"; + repo = "jupyterlite"; + tag = "v${finalAttrs.version}"; + hash = "sha256-TSy0GUI/7NLsLOayBwZ/raTtOtFgs/t4v1ByytVG960="; + }; + + sourceRoot = "${finalAttrs.src.name}/py/jupyterlite-core"; + + build-system = [ + hatchling + ]; + + dependencies = [ + doit + jupyter-core + pycparser + ]; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ + "jupyterlite_core" + ]; + + meta = { + description = "Wasm powered Jupyter running in the browser"; + homepage = "https://github.com/jupyterlite/jupyterlite"; + changelog = "https://github.com/jupyterlite/jupyterlite/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + mainProgram = "jupyter-lite"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ eljamm ]; + }; +}) diff --git a/pkgs/development/python-modules/jupyterlite-sphinx/default.nix b/pkgs/development/python-modules/jupyterlite-sphinx/default.nix new file mode 100644 index 000000000000..a4a1c68fbe41 --- /dev/null +++ b/pkgs/development/python-modules/jupyterlite-sphinx/default.nix @@ -0,0 +1,81 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + hatchling, + + # dependencies + docutils, + jupyter-server, + jupyterlab-server, + jupyterlite-core, + jupytext, + nbformat, + sphinx, + + # optional-dependencies + hatch, + myst-parser, + pydata-sphinx-theme, +}: + +buildPythonPackage (finalAttrs: { + pname = "jupyterlite-sphinx"; + version = "0.22.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jupyterlite"; + repo = "jupyterlite-sphinx"; + tag = "v${finalAttrs.version}"; + hash = "sha256-eww/VyHbAp78Bz2jg43XHmetEDrXEqXK45cnXHElG80="; + }; + + build-system = [ + hatchling + ]; + + dependencies = [ + docutils + jupyter-server + jupyterlab-server + jupyterlite-core + finalAttrs.passthru.deps.jupytext + nbformat + sphinx + ]; + + optional-dependencies = { + dev = [ + hatch + ]; + docs = [ + #jupyterlite-xeus # missing, but not important + myst-parser + pydata-sphinx-theme + ]; + }; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ + "jupyterlite_sphinx" + ]; + + passthru.deps.jupytext = jupytext.overridePythonAttrs (oldAttrs: { + # FIX: lots of flaky tests + doCheck = false; + }); + + meta = { + description = "Sphinx extension that integrates JupyterLite within your Sphinx documentation"; + homepage = "https://github.com/jupyterlite/jupyterlite-sphinx"; + changelog = "https://github.com/jupyterlite/jupyterlite-sphinx/blob/${finalAttrs.src.rev}/CHANGELOG.md"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ eljamm ]; + }; +}) diff --git a/pkgs/development/python-modules/langchain-anthropic/default.nix b/pkgs/development/python-modules/langchain-anthropic/default.nix index 65fbcedeccff..b541bd8ec9d6 100644 --- a/pkgs/development/python-modules/langchain-anthropic/default.nix +++ b/pkgs/development/python-modules/langchain-anthropic/default.nix @@ -24,14 +24,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-anthropic"; - version = "1.4.3"; + version = "1.4.6"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-anthropic==${finalAttrs.version}"; - hash = "sha256-u0Ur2SZFI8NkiVMBFieZIkc3cJL2IvrFvB4ueCvGMEU="; + hash = "sha256-X+YS+T9mG+H4I2vHDYBi3Eev6OaCMgi56nKHEewgEXg="; }; sourceRoot = "${finalAttrs.src.name}/libs/partners/anthropic"; @@ -62,6 +63,8 @@ buildPythonPackage (finalAttrs: { disabledTests = [ # Fails when langchain-core gets ahead of this "test_serdes" + # KeyError: 'versions' in 1.4.6 + "test_anthropic_model_params" ]; pythonImportsCheck = [ "langchain_anthropic" ]; diff --git a/pkgs/development/python-modules/langchain-aws/default.nix b/pkgs/development/python-modules/langchain-aws/default.nix index 1487685ad2c4..bbbc3ae4decc 100644 --- a/pkgs/development/python-modules/langchain-aws/default.nix +++ b/pkgs/development/python-modules/langchain-aws/default.nix @@ -29,14 +29,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-aws"; - version = "1.4.6"; + version = "1.6.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-aws"; tag = "langchain-aws==${finalAttrs.version}"; - hash = "sha256-WSUwPEBZQRyHYDWs0j+RgeP3Mqer5dIRT7eKoRESpsU="; + hash = "sha256-EZNzP4myJTwkdyAHcUS2RCGPtaUlzt3bgZ4Qsw2RgBs="; }; postPatch = '' diff --git a/pkgs/development/python-modules/langchain-classic/default.nix b/pkgs/development/python-modules/langchain-classic/default.nix index 86c1fdf06a0f..b9949fd389ee 100644 --- a/pkgs/development/python-modules/langchain-classic/default.nix +++ b/pkgs/development/python-modules/langchain-classic/default.nix @@ -42,14 +42,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-classic"; - version = "1.0.4"; + version = "1.0.8"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-classic==${finalAttrs.version}"; - hash = "sha256-yIu0P1GJBTEJ/Sq2ZTn7btoLiBgDCaNXJT9/W4maYtg="; + hash = "sha256-Xskg6bPmRv7iLjppUF11rqmHg2YJWETVT1EMhzK7Svo="; }; sourceRoot = "${finalAttrs.src.name}/libs/langchain"; diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix index 440a2d193162..1189a2063143 100644 --- a/pkgs/development/python-modules/langchain-core/default.nix +++ b/pkgs/development/python-modules/langchain-core/default.nix @@ -37,14 +37,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-core"; - version = "1.3.2"; + version = "1.4.8"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-core==${finalAttrs.version}"; - hash = "sha256-7ugQnVnq/yW/7NVtqkAB1C3+XjLN3m+GQFKtv5uXw9E="; + hash = "sha256-fJKr1NlpCujGoVxxqjaEXGOVZO5NH9+71dWHyMuQ2jw="; }; sourceRoot = "${finalAttrs.src.name}/libs/core"; diff --git a/pkgs/development/python-modules/langchain-google-genai/default.nix b/pkgs/development/python-modules/langchain-google-genai/default.nix index 400856c41f9e..8aed6e4e76cd 100644 --- a/pkgs/development/python-modules/langchain-google-genai/default.nix +++ b/pkgs/development/python-modules/langchain-google-genai/default.nix @@ -29,14 +29,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-google-genai"; - version = "4.2.3"; + version = "4.2.5"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-google"; tag = "libs/genai/v${finalAttrs.version}"; - hash = "sha256-OJQRYCzMa6y1F3gHFBAY+G3v3ZWzhw1ZqvbePTJyzr8="; + hash = "sha256-NgP3KyhFprlUoZUg69ZVqTwG9IW6nvX3k6VYz69LdrU="; }; sourceRoot = "${finalAttrs.src.name}/libs/genai"; @@ -68,6 +69,9 @@ buildPythonPackage (finalAttrs: { # Fails when langchain-core gets ahead of this package "test_serdes" "test_serialize" + # pydantic_core._pydantic_core.ValidationError: 1 validation error for GenerateContentResponse + # extra inputs are not permitted + "test_grounding_metadata_to_citations_conversion" ]; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/langchain-groq/default.nix b/pkgs/development/python-modules/langchain-groq/default.nix index d333d139dae2..fc37e5488931 100644 --- a/pkgs/development/python-modules/langchain-groq/default.nix +++ b/pkgs/development/python-modules/langchain-groq/default.nix @@ -18,19 +18,20 @@ gitUpdater, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langchain-groq"; - version = "1.1.2"; + version = "1.1.3"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; - tag = "langchain-groq==${version}"; - hash = "sha256-OS9i4o8UhEmRFgZEKB5owWx2hJuVBRV5XvQLCQnBi9g="; + tag = "langchain-groq==${finalAttrs.version}"; + hash = "sha256-RwwlEL3P/6+Yf1bM5ALGxhUXG0C1XPlf0OQMcft4o4U="; }; - sourceRoot = "${src.name}/libs/partners/groq"; + sourceRoot = "${finalAttrs.src.name}/libs/partners/groq"; build-system = [ hatchling ]; @@ -71,7 +72,7 @@ buildPythonPackage rec { }; meta = { - changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langchain/releases/tag/${finalAttrs.src.tag}"; description = "Integration package connecting Groq and LangChain"; homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/groq"; license = lib.licenses.mit; @@ -79,4 +80,4 @@ buildPythonPackage rec { sarahec ]; }; -} +}) diff --git a/pkgs/development/python-modules/langchain-huggingface/default.nix b/pkgs/development/python-modules/langchain-huggingface/default.nix index be599bd0e104..9b0c2fe820f1 100644 --- a/pkgs/development/python-modules/langchain-huggingface/default.nix +++ b/pkgs/development/python-modules/langchain-huggingface/default.nix @@ -35,6 +35,7 @@ buildPythonPackage (finalAttrs: { pname = "langchain-huggingface"; version = "1.2.2"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; @@ -75,6 +76,8 @@ buildPythonPackage (finalAttrs: { disabledTests = [ # Requires a circular dependency on langchain "test_init_chat_model_huggingface" + # AssertionError: Expected 'bind' to have been called once. Called 0 times. + "test_bind_tools" ]; pythonImportsCheck = [ "langchain_huggingface" ]; diff --git a/pkgs/development/python-modules/langchain-mistralai/default.nix b/pkgs/development/python-modules/langchain-mistralai/default.nix index 33a6e24975b0..4251d4ef13e6 100644 --- a/pkgs/development/python-modules/langchain-mistralai/default.nix +++ b/pkgs/development/python-modules/langchain-mistralai/default.nix @@ -22,19 +22,20 @@ gitUpdater, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langchain-mistralai"; - version = "1.1.4"; + version = "1.1.5"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; - tag = "langchain-mistralai==${version}"; - hash = "sha256-52qgkr9oem4jFGNWvoC3wb0WR2z9yhglqA8sJHIhtbs="; + tag = "langchain-mistralai==${finalAttrs.version}"; + hash = "sha256-lWhFFPEGNKUVmYC48MtyNZjgujfQRwUKR4bzZEvr5DQ="; }; - sourceRoot = "${src.name}/libs/partners/mistralai"; + sourceRoot = "${finalAttrs.src.name}/libs/partners/mistralai"; build-system = [ hatchling ]; @@ -75,7 +76,7 @@ buildPythonPackage rec { }; meta = { - changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langchain/releases/tag/${finalAttrs.src.tag}"; description = "Build LangChain applications with mistralai"; homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/mistralai"; license = lib.licenses.mit; @@ -83,4 +84,4 @@ buildPythonPackage rec { lib.maintainers.sarahec ]; }; -} +}) diff --git a/pkgs/development/python-modules/langchain-mongodb/default.nix b/pkgs/development/python-modules/langchain-mongodb/default.nix index d139b2cc9298..95285e50dc5f 100644 --- a/pkgs/development/python-modules/langchain-mongodb/default.nix +++ b/pkgs/development/python-modules/langchain-mongodb/default.nix @@ -38,6 +38,7 @@ buildPythonPackage (finalAttrs: { pname = "langchain-mongodb"; version = "0.11.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; @@ -85,6 +86,7 @@ buildPythonPackage (finalAttrs: { pytestFlags = [ # DeprecationWarning: 'asyncio.get_event_loop_policy' is deprecated "-Wignore::DeprecationWarning" + "-Wignore::PendingDeprecationWarning" ] ++ lib.optionals (pythonAtLeast "3.14") [ # UserWarning: Core Pydantic V1 functionality isn't compatible with Python 3.14 diff --git a/pkgs/development/python-modules/langchain-ollama/default.nix b/pkgs/development/python-modules/langchain-ollama/default.nix index 104796cce3ea..11ec12bb1f9c 100644 --- a/pkgs/development/python-modules/langchain-ollama/default.nix +++ b/pkgs/development/python-modules/langchain-ollama/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - stdenv, # build-system hatchling, @@ -57,8 +56,9 @@ buildPythonPackage (finalAttrs: { enabledTestPaths = [ "tests/unit_tests" ]; - disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [ - # Darwin prevents the expected shell from spawning to run this + disabledTests = [ + # The expected shell can't spawn + # test_standard_params_model_override - AssertionError: ls_model_name did not reflect the per-call `model` override...ZZ "test_standard_params_model_override" ]; diff --git a/pkgs/development/python-modules/langchain-openai/default.nix b/pkgs/development/python-modules/langchain-openai/default.nix index 26605b6b4ec3..80514602546c 100644 --- a/pkgs/development/python-modules/langchain-openai/default.nix +++ b/pkgs/development/python-modules/langchain-openai/default.nix @@ -33,14 +33,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-openai"; - version = "1.2.1"; + version = "1.3.2"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-openai==${finalAttrs.version}"; - hash = "sha256-0EmL+Ptuvu8CWaqeV9DJnRwstCkxo+XJxzgmPdU/VmA="; + hash = "sha256-VmGbfciQlKBYgyUhFLUVzZaYSpEcK2pRokvsWrFpxaM="; }; sourceRoot = "${finalAttrs.src.name}/libs/partners/openai"; diff --git a/pkgs/development/python-modules/langchain-perplexity/default.nix b/pkgs/development/python-modules/langchain-perplexity/default.nix index c5d9ca276e18..f796254e8d9d 100644 --- a/pkgs/development/python-modules/langchain-perplexity/default.nix +++ b/pkgs/development/python-modules/langchain-perplexity/default.nix @@ -24,14 +24,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-perplexity"; - version = "1.3.2"; + version = "1.4.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-perplexity==${finalAttrs.version}"; - hash = "sha256-XSfnoJaj2VRXSxHHVnRNBvr4Ko7GAqnFEDM90ohaufo="; + hash = "sha256-YWVTghbLE6jXrkwS9shTdDr0pp4ILEVq+dgjg9njRhA="; }; sourceRoot = "${finalAttrs.src.name}/libs/partners/perplexity"; diff --git a/pkgs/development/python-modules/langchain-protocol/default.nix b/pkgs/development/python-modules/langchain-protocol/default.nix index 5fa39b168f07..9a028ecdd2bc 100644 --- a/pkgs/development/python-modules/langchain-protocol/default.nix +++ b/pkgs/development/python-modules/langchain-protocol/default.nix @@ -8,14 +8,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-protocol"; - version = "0.0.16"; + version = "0.0.18"; pyproject = true; + __structuredAttrs = true; # Not available vis Github yet; required by langchain-core src = fetchPypi { pname = "langchain_protocol"; inherit (finalAttrs) version; - hash = "sha256-gGx83ZUbHE9pL6QPzmCCH/DyIdQ2DidnPd8sK5nCt/8="; + hash = "sha256-7D4ReC8e0MnbOOWp7QGw56DT+6QG+qiu9llLc8VqY+Y="; }; build-system = [ diff --git a/pkgs/development/python-modules/langchain-tests/default.nix b/pkgs/development/python-modules/langchain-tests/default.nix index bf5ccf199958..9bf1ba4f8073 100644 --- a/pkgs/development/python-modules/langchain-tests/default.nix +++ b/pkgs/development/python-modules/langchain-tests/default.nix @@ -28,14 +28,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain-tests"; - version = "1.1.7"; + version = "1.1.9"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-tests==${finalAttrs.version}"; - hash = "sha256-zesNbesiLMayvlVrU6NagmE2+o0l6ozwZlOGqvyGpnQ="; + hash = "sha256-GbOasYdPGqk1WJeoqL8DYd1Qizvhjeq8Dc+RgE4iBaA="; }; sourceRoot = "${finalAttrs.src.name}/libs/standard-tests"; diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix index ce61ce40aa5d..7dbe11e56270 100644 --- a/pkgs/development/python-modules/langchain/default.nix +++ b/pkgs/development/python-modules/langchain/default.nix @@ -46,14 +46,15 @@ buildPythonPackage (finalAttrs: { pname = "langchain"; - version = "1.2.15"; + version = "1.3.10"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain==${finalAttrs.version}"; - hash = "sha256-aRiU8UwzotSybfgjexV9hYXsm5Ub3PFTz0k0hz1p2lk="; + hash = "sha256-hB1TpaQjSleS+ysGIB1HxCgeQgUhMDoiDtO3Hjk6SLU="; }; sourceRoot = "${finalAttrs.src.name}/libs/langchain_v1"; diff --git a/pkgs/development/python-modules/langgraph-checkpoint-postgres/default.nix b/pkgs/development/python-modules/langgraph-checkpoint-postgres/default.nix index 889ae3d104f1..3187783f9d4a 100644 --- a/pkgs/development/python-modules/langgraph-checkpoint-postgres/default.nix +++ b/pkgs/development/python-modules/langgraph-checkpoint-postgres/default.nix @@ -24,16 +24,17 @@ gitUpdater, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langgraph-checkpoint-postgres"; - version = "3.0.5"; + version = "3.1.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; - tag = "checkpointpostgres==${version}"; - hash = "sha256-EonOCCC6aCM2PQdd3UlazEMf4zjglHx8AxHB0i2W4IY="; + tag = "checkpointpostgres==${finalAttrs.version}"; + hash = "sha256-xSYJ9D86GuaJEgQYk+pkJ4O7HK6HXfAOGBv4f1CBY5g="; }; postgresqlTestSetupPost = '' @@ -42,7 +43,7 @@ buildPythonPackage rec { --replace-fail "DEFAULT_POSTGRES_URI = \"postgres://postgres:postgres@localhost:5441/\"" "DEFAULT_POSTGRES_URI = \"postgres:///\"" ''; - sourceRoot = "${src.name}/libs/checkpoint-postgres"; + sourceRoot = "${finalAttrs.src.name}/libs/checkpoint-postgres"; build-system = [ hatchling ]; @@ -102,10 +103,10 @@ buildPythonPackage rec { meta = { description = "Library with a Postgres implementation of LangGraph checkpoint saver"; homepage = "https://github.com/langchain-ai/langgraph/tree/main/libs/checkpoint-postgres"; - changelog = "https://github.com/langchain-ai/langgraph/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langgraph/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sarahec ]; }; -} +}) diff --git a/pkgs/development/python-modules/langgraph-checkpoint-sqlite/default.nix b/pkgs/development/python-modules/langgraph-checkpoint-sqlite/default.nix index fbfe5a9a0f2c..c80953130757 100644 --- a/pkgs/development/python-modules/langgraph-checkpoint-sqlite/default.nix +++ b/pkgs/development/python-modules/langgraph-checkpoint-sqlite/default.nix @@ -20,19 +20,20 @@ gitUpdater, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "langgraph-checkpoint-sqlite"; - version = "3.0.3"; + version = "3.1.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; - tag = "checkpointsqlite==${version}"; - hash = "sha256-th9LJxaq2Xj6QwPXGL204QTDsnFNBuyjQpLilhcCKUY="; + tag = "checkpointsqlite==${finalAttrs.version}"; + hash = "sha256-xSYJ9D86GuaJEgQYk+pkJ4O7HK6HXfAOGBv4f1CBY5g="; }; - sourceRoot = "${src.name}/libs/checkpoint-sqlite"; + sourceRoot = "${finalAttrs.src.name}/libs/checkpoint-sqlite"; build-system = [ hatchling ]; @@ -83,7 +84,7 @@ buildPythonPackage rec { }; meta = { - changelog = "https://github.com/langchain-ai/langgraph/releases/tag/${src.tag}"; + changelog = "https://github.com/langchain-ai/langgraph/releases/tag/${finalAttrs.src.tag}"; description = "Library with a SQLite implementation of LangGraph checkpoint saver"; homepage = "https://github.com/langchain-ai/langgraph/tree/main/libs/checkpoint-sqlite"; license = lib.licenses.mit; @@ -91,4 +92,4 @@ buildPythonPackage rec { sarahec ]; }; -} +}) diff --git a/pkgs/development/python-modules/langgraph-cli/default.nix b/pkgs/development/python-modules/langgraph-cli/default.nix index 7799a308141d..b79fd25259e0 100644 --- a/pkgs/development/python-modules/langgraph-cli/default.nix +++ b/pkgs/development/python-modules/langgraph-cli/default.nix @@ -17,6 +17,7 @@ # testing pytest-asyncio, + pytest-mock, pytestCheckHook, docker-compose, @@ -26,14 +27,15 @@ buildPythonPackage (finalAttrs: { pname = "langgraph-cli"; - version = "0.4.26"; + version = "0.4.30"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = "cli==${finalAttrs.version}"; - hash = "sha256-LBdDi3gT1N+r6yTb0BDF7qkoHAvo3UTSJnJ49vchjKU="; + hash = "sha256-wemTtMT8UbpEsGzf0fMnXdhJv0oTrG/TqEu6HhFN6nc="; }; sourceRoot = "${finalAttrs.src.name}/libs/cli"; @@ -58,6 +60,7 @@ buildPythonPackage (finalAttrs: { nativeCheckInputs = [ pytest-asyncio + pytest-mock pytestCheckHook docker-compose ] diff --git a/pkgs/development/python-modules/langgraph-prebuilt/default.nix b/pkgs/development/python-modules/langgraph-prebuilt/default.nix index e5740cc5d0b1..e729568ba4c9 100644 --- a/pkgs/development/python-modules/langgraph-prebuilt/default.nix +++ b/pkgs/development/python-modules/langgraph-prebuilt/default.nix @@ -32,14 +32,15 @@ # It exists so the langgraph team can iterate on it without having to rebuild langgraph. buildPythonPackage (finalAttrs: { pname = "langgraph-prebuilt"; - version = "1.0.12"; + version = "1.1.0"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = "prebuilt==${finalAttrs.version}"; - hash = "sha256-J899GIBdXHjZVMwZlnn5GH52/TNjzLukc4Xp/qc8NOM="; + hash = "sha256-xSYJ9D86GuaJEgQYk+pkJ4O7HK6HXfAOGBv4f1CBY5g="; }; sourceRoot = "${finalAttrs.src.name}/libs/prebuilt"; diff --git a/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix b/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix index 5f42311bd481..0e3c585f8804 100644 --- a/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix +++ b/pkgs/development/python-modules/langgraph-runtime-inmem/default.nix @@ -14,14 +14,15 @@ buildPythonPackage (finalAttrs: { pname = "langgraph-runtime-inmem"; - version = "0.29.0"; + version = "0.30.0"; pyproject = true; + __structuredAttrs = true; # Not available in any repository src = fetchPypi { pname = "langgraph_runtime_inmem"; inherit (finalAttrs) version; - hash = "sha256-i8XSQDQq8+QFTZvTtzay8O322vhCHm6qkZop7NWCJzo="; + hash = "sha256-MZVOHebNQ8KEtCUkPU+uroGPaLPayk2+QxPmUbb14R0="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/langgraph-sdk/default.nix b/pkgs/development/python-modules/langgraph-sdk/default.nix index 12e1af0a6098..c5687317824c 100644 --- a/pkgs/development/python-modules/langgraph-sdk/default.nix +++ b/pkgs/development/python-modules/langgraph-sdk/default.nix @@ -9,8 +9,11 @@ # dependencies httpx, httpx-sse, + langchain-core, + langchain-protocol, orjson, typing-extensions, + websockets, # passthru gitUpdater, @@ -18,25 +21,31 @@ buildPythonPackage (finalAttrs: { pname = "langgraph-sdk"; - version = "0.3.15"; + version = "0.4.2"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = "sdk==${finalAttrs.version}"; - hash = "sha256-P4SbQK6lFG572WKxisnNn/ZiHcMYBBM/vcBB9N6xpfo="; + hash = "sha256-30BY7f8m3YiqEBhb3+TQYTW0N40xI9kTQbMTh4BwcyU="; }; sourceRoot = "${finalAttrs.src.name}/libs/sdk-py"; build-system = [ hatchling ]; + pythonRelaxDeps = [ "websockets" ]; + dependencies = [ httpx httpx-sse + langchain-core + langchain-protocol orjson typing-extensions + websockets ]; disabledTests = [ "test_aevaluate_results" ]; # Compares execution time to magic number diff --git a/pkgs/development/python-modules/langgraph/default.nix b/pkgs/development/python-modules/langgraph/default.nix index 3512b1f6d896..f9a107bb4a82 100644 --- a/pkgs/development/python-modules/langgraph/default.nix +++ b/pkgs/development/python-modules/langgraph/default.nix @@ -41,14 +41,15 @@ }: buildPythonPackage (finalAttrs: { pname = "langgraph"; - version = "1.1.10"; + version = "1.2.5"; pyproject = true; + __structuredAttrs = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langgraph"; tag = finalAttrs.version; - hash = "sha256-J899GIBdXHjZVMwZlnn5GH52/TNjzLukc4Xp/qc8NOM="; + hash = "sha256-u4rRRvDg99uJpNd/Tqms4EUTmAaROelqQtyyoMsy9Qg="; }; postgresqlTestSetupPost = '' diff --git a/pkgs/development/python-modules/licomp-doubleopen/default.nix b/pkgs/development/python-modules/licomp-doubleopen/default.nix new file mode 100644 index 000000000000..2243caa52b1f --- /dev/null +++ b/pkgs/development/python-modules/licomp-doubleopen/default.nix @@ -0,0 +1,60 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-doubleopen"; + version = "0.1.5"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-doubleopen"; + tag = finalAttrs.version; + hash = "sha256-ju+Ewp5q3bzanLeldtE7NSSlfLpMe6muM4ZlpFgBDh0="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_doubleopen" + ]; + + meta = { + description = "Licomp implementation of Double Open Project's license classifications"; + homepage = "https://github.com/hesa/licomp-doubleopen"; + changelog = "https://github.com/hesa/licomp-doubleopen/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-30 + cc-by-40 + cc0 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-dwheeler/default.nix b/pkgs/development/python-modules/licomp-dwheeler/default.nix new file mode 100644 index 000000000000..39fb76e1905d --- /dev/null +++ b/pkgs/development/python-modules/licomp-dwheeler/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-dwheeler"; + version = "0.5.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-dwheeler"; + tag = finalAttrs.version; + hash = "sha256-p6BSedKqauJCVpkr18UN6oNLwI2NknfJx8FHBIbi3I4="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_dwheeler" + ]; + + meta = { + description = "Implementation of Licomp using David Wheeler's graph"; + homepage = "https://github.com/hesa/licomp-dwheeler"; + changelog = "https://github.com/hesa/licomp-dwheeler/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-sa-30 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-gnuguide/default.nix b/pkgs/development/python-modules/licomp-gnuguide/default.nix new file mode 100644 index 000000000000..8d90a79f53a2 --- /dev/null +++ b/pkgs/development/python-modules/licomp-gnuguide/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-gnuguide"; + version = "0.5.2"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-gnuguide"; + tag = finalAttrs.version; + hash = "sha256-DfjrmEktlTFvKqHIlmM/XeWZ4s24cRtWqs65OLDYZNQ="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_gnuguide" + ]; + + meta = { + description = "Implementation of Licomp using GNU resources"; + homepage = "https://github.com/hesa/licomp-gnuguide"; + changelog = "https://github.com/hesa/licomp-gnuguide/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-nd-40 # licomp-gnuguide.png & licomp_gnuguide/data/gnu-quick-guide-licenses.json + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-hermione/default.nix b/pkgs/development/python-modules/licomp-hermione/default.nix new file mode 100644 index 000000000000..9bf2a5f827cf --- /dev/null +++ b/pkgs/development/python-modules/licomp-hermione/default.nix @@ -0,0 +1,53 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + licomp, + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-hermione"; + version = "0.5.2"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-hermione"; + tag = finalAttrs.version; + hash = "sha256-TIfi7E+BBChOz/EXRJxjFRYavVRPfnSkBHTaiY87k/Y="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_hermione" + ]; + + meta = { + description = "Implementation of Licomp using the Hermine license resource"; + homepage = "https://github.com/hesa/licomp-hermione"; + changelog = "https://github.com/hesa/licomp-hermione/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + bsd0 + gpl3Plus + odbl + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-osadl/default.nix b/pkgs/development/python-modules/licomp-osadl/default.nix new file mode 100644 index 000000000000..7796128e0463 --- /dev/null +++ b/pkgs/development/python-modules/licomp-osadl/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-osadl"; + version = "0.5.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-osadl"; + tag = finalAttrs.version; + hash = "sha256-aWJG7HxYs/8/Km3EpY8/XewCILlgePoKsdJyL8CM6LI="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_osadl" + ]; + + meta = { + description = "Implementation of Licomp using OSADL's matrix"; + homepage = "https://github.com/hesa/licomp-osadl"; + changelog = "https://github.com/hesa/licomp-osadl/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-40 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-oslc-handbook/default.nix b/pkgs/development/python-modules/licomp-oslc-handbook/default.nix new file mode 100644 index 000000000000..ddc265f9bf1a --- /dev/null +++ b/pkgs/development/python-modules/licomp-oslc-handbook/default.nix @@ -0,0 +1,67 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-oslc-handbook"; + version = "0.1.2"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-oslc-handbook"; + tag = finalAttrs.version; + hash = "sha256-cE3X7oT5Xg1W9lAMLJCYE6qRqrrXpVGLfBp18ynUYLE="; + postFetch = '' + # conflicts with `licenses` on Darwin, thus producing a different source + # hash. + mv $out/LICENSES $out/LICENSES_ + ''; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_oslc_handbook" + ]; + + meta = { + description = "Licomp implementaiton of OSLC-handbook"; + homepage = "https://github.com/hesa/licomp-oslc-handbook"; + changelog = "https://github.com/hesa/licomp-oslc-handbook/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-40 + cc-by-sa-40 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + # TODO: remove when this is resolved: + # https://github.com/hesa/licomp-oslc-handbook/issues/4 + badPlatforms = lib.platforms.darwin; + }; +}) diff --git a/pkgs/development/python-modules/licomp-proprietary/default.nix b/pkgs/development/python-modules/licomp-proprietary/default.nix new file mode 100644 index 000000000000..4132f0e709ed --- /dev/null +++ b/pkgs/development/python-modules/licomp-proprietary/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-proprietary"; + version = "0.5.3"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-proprietary"; + tag = finalAttrs.version; + hash = "sha256-elEy/BOcuvo29ciRRSNQABWoBrOhRPDCNoaypuvWsx0="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_proprietary" + ]; + + meta = { + description = "Implementation of Licomp for linking a Propriettary licensed module"; + homepage = "https://github.com/hesa/licomp-proprietary"; + changelog = "https://github.com/hesa/licomp-proprietary/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + cc-by-40 + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-reclicense/default.nix b/pkgs/development/python-modules/licomp-reclicense/default.nix new file mode 100644 index 000000000000..89b3822e3dc6 --- /dev/null +++ b/pkgs/development/python-modules/licomp-reclicense/default.nix @@ -0,0 +1,58 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + licomp, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-reclicense"; + version = "0.5.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "hesa"; + repo = "licomp-reclicense"; + tag = finalAttrs.version; + hash = "sha256-dCUsSZ70iKNCk8QcTtQ6Kn8BdyqK2E3Arkfx4aHmhmM="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + licomp + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp_reclicense" + ]; + + meta = { + description = "Implementation of Licomp using the Recliense matrix"; + homepage = "https://github.com/hesa/licomp-reclicense"; + changelog = "https://github.com/hesa/licomp-reclicense/releases/tag/${finalAttrs.src.tag}"; + license = with lib.licenses; [ + gpl3Plus + mulan-psl2 + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/licomp-toolkit/default.nix b/pkgs/development/python-modules/licomp-toolkit/default.nix new file mode 100644 index 000000000000..f34d8ea1d8c5 --- /dev/null +++ b/pkgs/development/python-modules/licomp-toolkit/default.nix @@ -0,0 +1,79 @@ +{ + lib, + buildPythonPackage, + fetchFromGitea, + + # build-system + setuptools, + + # dependencies + foss-flame, + licomp, + licomp-doubleopen, + licomp-dwheeler, + licomp-gnuguide, + licomp-hermione, + licomp-osadl, + licomp-oslc-handbook, + licomp-proprietary, + licomp-reclicense, + pyyaml, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp-toolkit"; + version = "0.5.20"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "software-compliance-org"; + repo = "licomp-toolkit"; + tag = finalAttrs.version; + hash = "sha256-E6ehhQj1EcpW+8Cf2b+dtYSCH7fQ/AgS8uWIN4ipeCQ="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + foss-flame + licomp + licomp-doubleopen + licomp-dwheeler + licomp-gnuguide + licomp-hermione + licomp-osadl + licomp-oslc-handbook + licomp-proprietary + licomp-reclicense + pyyaml + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "licomp_toolkit" + ]; + + meta = { + description = "Python module and program to check compatibility between two licenses with context"; + homepage = "https://codeberg.org/software-compliance-org/licomp-toolkit"; + mainProgram = "licomp-toolkit"; + license = with lib.licenses; [ + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + # TODO: remove when this is resolved: + # https://github.com/hesa/licomp-oslc-handbook/issues/4 + badPlatforms = lib.platforms.darwin; + }; +}) diff --git a/pkgs/development/python-modules/licomp/default.nix b/pkgs/development/python-modules/licomp/default.nix new file mode 100644 index 000000000000..961ed68edb69 --- /dev/null +++ b/pkgs/development/python-modules/licomp/default.nix @@ -0,0 +1,57 @@ +{ + lib, + buildPythonPackage, + fetchFromGitea, + + # build-system + setuptools, + + # dependencies + pyyaml, + + # tests + pytestCheckHook, + jsonschema, +}: + +buildPythonPackage (finalAttrs: { + pname = "licomp"; + version = "0.5.22"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "software-compliance-org"; + repo = "licomp"; + tag = finalAttrs.version; + hash = "sha256-yZZfWinXdMmF/FQQ3+MwHRypK5Xz2EEMruJLCAtl/6Q="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + pyyaml + ]; + + nativeCheckInputs = [ + pytestCheckHook + jsonschema + ]; + + pythonImportsCheck = [ + "licomp" + ]; + + meta = { + description = "License Compatibility - Generalised API for use in license compatibility"; + homepage = "https://codeberg.org/software-compliance-org/licomp"; + license = with lib.licenses; [ + gpl3Plus + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/osadl-matrix/default.nix b/pkgs/development/python-modules/osadl-matrix/default.nix new file mode 100644 index 000000000000..405fcc7e1e7d --- /dev/null +++ b/pkgs/development/python-modules/osadl-matrix/default.nix @@ -0,0 +1,68 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # tests + pytestCheckHook, + requests, +}: + +buildPythonPackage (finalAttrs: { + pname = "osadl-matrix"; + version = "2024.05.23.010555"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "priv-kweihmann"; + repo = "osadl-matrix"; + tag = finalAttrs.version; + hash = "sha256-vcSaWDX8P07Bj035vGq5dZYO+WkZOod7tTubWygl27k="; + }; + + build-system = [ + setuptools + ]; + + nativeCheckInputs = [ + pytestCheckHook + requests + ]; + + # Upstream setup.cfg has addopts, requiring pytest-{cov,forked,random-order}. + # Clearing it is simpler than replicating those plugins, especially since + # they only affect how tests run. + pytestFlags = [ + "--override-ini=addopts=" + ]; + + disabledTests = [ + # earlier in the tests, a full license db is cached and used, but these + # require a different db afterward, but it's not loaded + "test_compats" + "test_supported_licenes_size" + "test_supported_licenses" + + # requires internet access + "test_license" + ]; + + pythonImportsCheck = [ + "osadl_matrix" + ]; + + meta = { + description = "OSADL license compatibility matrix as a CSV"; + homepage = "https://github.com/priv-kweihmann/osadl-matrix"; + license = with lib.licenses; [ + cc-by-40 + unlicense + ]; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/pynintendoparental/default.nix b/pkgs/development/python-modules/pynintendoparental/default.nix index 568ed5363723..fc477b5f3ecf 100644 --- a/pkgs/development/python-modules/pynintendoparental/default.nix +++ b/pkgs/development/python-modules/pynintendoparental/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "pynintendoparental"; - version = "2.4.0"; + version = "2.4.0.1"; pyproject = true; src = fetchFromGitHub { owner = "pantherale0"; repo = "pynintendoparental"; tag = finalAttrs.version; - hash = "sha256-rkDWhWIBqTwb9M8msYFw8x6Tt9ymhDRJFrRyjRFh3G8="; + hash = "sha256-1ZL6vDFCLzduj4fcgg9kEhogoD44eURd2nvOc0A5ghM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pytensor/default.nix b/pkgs/development/python-modules/pytensor/default.nix index 6292eef22fc0..5a8eb8e2159d 100644 --- a/pkgs/development/python-modules/pytensor/default.nix +++ b/pkgs/development/python-modules/pytensor/default.nix @@ -33,7 +33,7 @@ buildPythonPackage (finalAttrs: { pname = "pytensor"; - version = "3.0.5"; + version = "3.0.7"; pyproject = true; __structuredAttrs = true; @@ -44,7 +44,7 @@ buildPythonPackage (finalAttrs: { postFetch = '' sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${finalAttrs.src.tag})"/' $out/pytensor/_version.py ''; - hash = "sha256-99AjktuPPn55ZLPKCv4qdE1lgy9p+NBuaq0vZMVhC50="; + hash = "sha256-/ECRFuRSTXZtBD8EUY3dg0Z4SxLG1+7DzHSWFSAnsoU="; }; build-system = [ @@ -165,6 +165,13 @@ buildPythonPackage (finalAttrs: { # Don't run the most compute-intense tests "tests/scan/" "tests/tensor/" + + # The IndexedElemwise fusion is intentionally disabled on the 3.0.x line + # (it can trigger a RecursionError, see the comment in + # pytensor/tensor/rewriting/indexed_elemwise.py), but these tests still + # assert that the fusion produces an IndexedElemwise node. Upstream test bug. + "tests/link/numba/test_indexed_elemwise.py" + "tests/benchmarks/test_gather_fusion.py" ]; passthru.updateScript = nix-update-script { diff --git a/pkgs/development/python-modules/pythonqwt/default.nix b/pkgs/development/python-modules/pythonqwt/default.nix index a60d7cf45643..906185e01228 100644 --- a/pkgs/development/python-modules/pythonqwt/default.nix +++ b/pkgs/development/python-modules/pythonqwt/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "pythonqwt"; - version = "0.16.0"; + version = "0.16.1"; pyproject = true; src = fetchFromGitHub { owner = "PlotPyStack"; repo = "PythonQwt"; tag = "v${version}"; - hash = "sha256-LBn88lEOruLLdXcJ7dHfgMS1EahHQErIlZjFVNosvAU="; + hash = "sha256-MRvbKxAcZNZn6v4gXjDtZfdxG7tbUlbkcw9nSR7Qgn4="; }; build-system = [ diff --git a/pkgs/development/python-modules/sigima/default.nix b/pkgs/development/python-modules/sigima/default.nix new file mode 100644 index 000000000000..234d3967c616 --- /dev/null +++ b/pkgs/development/python-modules/sigima/default.nix @@ -0,0 +1,137 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + + # dependencies + guidata, + makefun, + numpy, + packaging, + pandas, + pywavelets, + scikit-image, + scipy, + typing-extensions, + + # optional-dependencies + babel, + build, + coverage, + pre-commit, + pylint, + ruff, + wheel, + matplotlib, + myst-nb, + myst-parser, + opencv-python-headless, + plotpy, + pydata-sphinx-theme, + pyqt5, + qtpy, + sphinx, + sphinx-copybutton, + sphinx-design, + sphinx-gallery, + sphinx-intl, + pytest, + pytest-xvfb, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "sigima"; + version = "1.1.4"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "DataLab-Platform"; + repo = "Sigima"; + tag = "v${finalAttrs.version}"; + hash = "sha256-AQrUn/WgWZ5W9Lrg4TJjerEZvGDH1wKL2WbeP3sGjrE="; + }; + + build-system = [ + setuptools + ]; + + dependencies = [ + guidata + makefun + numpy + packaging + pandas + pywavelets + scikit-image + scipy + typing-extensions + ]; + + optional-dependencies = { + dev = [ + babel + build + coverage + pre-commit + pylint + ruff + setuptools + wheel + ]; + doc = [ + matplotlib + myst-nb + myst-parser + opencv-python-headless + plotpy + pydata-sphinx-theme + pyqt5 + qtpy + sphinx + sphinx-copybutton + sphinx-design + sphinx-gallery + sphinx-intl + ]; + opencv = [ + opencv-python-headless + ]; + qt = [ + plotpy + pyqt5 + qtpy + ]; + test = [ + pytest + pytest-xvfb + ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonRelaxDeps = [ + "scipy" + ]; + + pythonImportsCheck = [ + "sigima" + ]; + + meta = { + description = "Scientific computing engine for 1D signals and 2D images"; + homepage = "https://github.com/DataLab-Platform/Sigima"; + changelog = "https://github.com/DataLab-Platform/Sigima/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/spdx-license-list/default.nix b/pkgs/development/python-modules/spdx-license-list/default.nix new file mode 100644 index 000000000000..6a7b914c3a70 --- /dev/null +++ b/pkgs/development/python-modules/spdx-license-list/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + poetry-core, +}: + +buildPythonPackage (finalAttrs: { + pname = "spdx-license-list"; + version = "3.28.0"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "JJMC89"; + repo = "spdx-license-list"; + tag = "v${finalAttrs.version}"; + hash = "sha256-qzEWa2SY4XfW+DgAl6UNUItYWGJ/dJM6jZ/ZekoVgNc="; + }; + + build-system = [ + poetry-core + ]; + + # upstream has no tests + doCheck = false; + + pythonImportsCheck = [ + "spdx_license_list" + ]; + + meta = { + description = "SPDX License List as a Python dictionary"; + homepage = "https://github.com/JJMC89/spdx-license-list"; + changelog = "https://github.com/JJMC89/spdx-license-list/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ eljamm ]; + teams = with lib.teams; [ ngi ]; + }; +}) diff --git a/pkgs/development/python-modules/sphinx-gallery/default.nix b/pkgs/development/python-modules/sphinx-gallery/default.nix new file mode 100644 index 000000000000..67dcad4afd97 --- /dev/null +++ b/pkgs/development/python-modules/sphinx-gallery/default.nix @@ -0,0 +1,134 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + + # build-system + setuptools, + setuptools-scm, + + # dependencies + pillow, + sphinx, + + # optional-dependencies + absl-py, + graphviz, + intersphinx-registry, + ipython, + joblib, + jupyterlite-sphinx, + lxml, + matplotlib, + mypy, + numpy, + packaging, + plotly, + pydata-sphinx-theme, + pytest, + pytest-cov, + seaborn, + sphinx-design, + statsmodels, + types-docutils, + types-pillow, + memory-profiler, + + # tests + pytestCheckHook, +}: + +buildPythonPackage (finalAttrs: { + pname = "sphinx-gallery"; + version = "0.21.0"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "sphinx-gallery"; + repo = "sphinx-gallery"; + tag = "v${finalAttrs.version}"; + hash = "sha256-eWU2xNnguyXi2AZ/PpBp0Pv3IsgL9wQMyPuQpNbn9cY="; + }; + + build-system = [ + setuptools + setuptools-scm + ]; + + dependencies = [ + pillow + sphinx + ]; + + optional-dependencies = { + animations = [ + #sphinxcontrib-video + ]; + dev = [ + absl-py + graphviz + intersphinx-registry + ipython + joblib + jupyterlite-sphinx + lxml + matplotlib + mypy + numpy + packaging + plotly + pydata-sphinx-theme + pytest + pytest-cov + seaborn + sphinx-design + #sphinxcontrib-video + statsmodels + types-docutils + types-pillow + #types-pygments + ]; + jupyterlite = [ + jupyterlite-sphinx + ]; + parallel = [ + joblib + ]; + recommender = [ + numpy + ]; + show-api-usage = [ + graphviz + ]; + show-memory = [ + memory-profiler + ]; + }; + + nativeCheckInputs = [ + pytestCheckHook + ] + ++ finalAttrs.passthru.optional-dependencies.dev; + + # TODO: + disabledTests = [ + # requires the sphinxcontrib.video package + "test_dummy_image" + # urllib.error.URLError: + "test_embed_code_links_get_data" + ]; + + pythonImportsCheck = [ + "sphinx_gallery" + ]; + + meta = { + description = "Sphinx extension for automatic generation of an example gallery"; + homepage = "https://github.com/sphinx-gallery/sphinx-gallery"; + changelog = "https://github.com/sphinx-gallery/sphinx-gallery/blob/${finalAttrs.src.rev}/CHANGES.rst"; + mainProgram = "sphinx_gallery_py2jupyter"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ eljamm ]; + }; +}) diff --git a/pkgs/development/python-modules/telnetlib3/default.nix b/pkgs/development/python-modules/telnetlib3/default.nix index ab8ea1b60a98..cedc14128157 100644 --- a/pkgs/development/python-modules/telnetlib3/default.nix +++ b/pkgs/development/python-modules/telnetlib3/default.nix @@ -18,14 +18,14 @@ buildPythonPackage (finalAttrs: { pname = "telnetlib3"; - version = "4.0.4"; + version = "4.0.5"; pyproject = true; src = fetchFromGitHub { owner = "jquast"; repo = "telnetlib3"; tag = finalAttrs.version; - hash = "sha256-sOQcVCSPCuz0SEDnTQc30fXAfUyWvkt+j9Fe700Q0Qo="; + hash = "sha256-qJ9fbly8nNCOppLxEnzmKTE0CbbORnkANvbioSZUgmk="; }; build-system = [ hatchling ]; diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 43db58a4181e..54ff5434cfe3 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -5,43 +5,43 @@ "lts": false }, "6.1": { - "version": "6.1.175", - "hash": "sha256:11fapr04y96p9ja6mfzm7bcd3zb4dzyw6qrh7c11bss9wjlq9s9p", + "version": "6.1.176", + "hash": "sha256:1xj4ms4gd8ghd0l0dzsyi762dgpdrmqhc3f0arrp7sa0p8npf6da", "lts": true }, "5.15": { - "version": "5.15.209", - "hash": "sha256:1d0yhbpqlkr1znahky15dfavr6dzb3wb8c15k9qqvkf2xb3pfv9l", + "version": "5.15.210", + "hash": "sha256:008a55av0x9fa3fspcz43sycik143gqxg2agcalrax2yw5ma82wi", "lts": true }, "5.10": { - "version": "5.10.258", - "hash": "sha256:1rdldzb3g33v6zvcmxafqpkjgqpp4n5qlxwb77wfd5jpzhgcnz4y", + "version": "5.10.259", + "hash": "sha256:02dn8rf9p0afkl8kbdv28ijq974zfnv8zdsqcqbmapjm19c8wpma", "lts": true }, "6.6": { - "version": "6.6.142", - "hash": "sha256:0w1bdzp9x1sqcr9xlk7dvylhs7kycghjabfgd3iv49ydfmx61xmj", + "version": "6.6.143", + "hash": "sha256:0ci9b6kjp7r2xwqifs2963l9ihk2rllk4zpl2kgzbny0r66izkns", "lts": true }, "6.12": { - "version": "6.12.93", - "hash": "sha256:18sg154hqw8l98pfim2hjm1y604h5dwn9gj3gyncas8bgjl4h9j9", + "version": "6.12.94", + "hash": "sha256:1ln83ljmc7wr1nrjjq1hp1m1vx54j7i6i15m3hqb73a1p4ra5679", "lts": true }, "6.18": { - "version": "6.18.35", - "hash": "sha256:0dpjprjzc4w44kw49jcgx1ffrm6gxn2gsnsz3hhmw4hr4a9h51pp", + "version": "6.18.36", + "hash": "sha256:0kn4r43lnd5nb5c298b30030qyaxv05s7k40n9si1j3iyk4qdazv", "lts": true }, "7.0": { - "version": "7.0.12", - "hash": "sha256:1nk5lans9qg1avmmcwyadfps43d3hyjz9a5gjyvsc77w3sjckvap", + "version": "7.0.13", + "hash": "sha256:04wrz38ldls7pv1yxa1m7p2hqn1731l93xnz93fs7b0nyz8fv09w", "lts": false }, "7.1": { - "version": "7.1", - "hash": "sha256:18344l5fv3hgsqjrjr3dgg96lll7f294qq11lg40sydygxwl87v9", + "version": "7.1.1", + "hash": "sha256:0z8x6wafxzc5vkim9jh8wpycdkk9y5bpxgsirmdpyznw84szl5aj", "lts": false } } diff --git a/pkgs/servers/nextcloud/packages/32.json b/pkgs/servers/nextcloud/packages/32.json index 4fba74c63f26..359ec5d6ec96 100644 --- a/pkgs/servers/nextcloud/packages/32.json +++ b/pkgs/servers/nextcloud/packages/32.json @@ -1,8 +1,8 @@ { "bookmarks": { - "hash": "sha256-Q4NwDrCuex5e2sGEG4Gu00Ne3UeojrSRlGPKQ8R2+/0=", - "url": "https://github.com/nextcloud/bookmarks/releases/download/v16.1.4/bookmarks-16.1.4.tar.gz", - "version": "16.1.4", + "hash": "sha256-wf3t7qwxFAJBnPP3PYfa3Q/LrUaoONY47/So2w2fDww=", + "url": "https://github.com/nextcloud/bookmarks/releases/download/v16.2.1/bookmarks-16.2.1.tar.gz", + "version": "16.2.1", "description": "- πŸ“‚ Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- ☠ Find broken links and duplicates\n- πŸ“² Synchronize with all your browsers and devices\n- πŸ“” Store archived versions of your links in case they are depublished\n- πŸ” Full-text search on site contents\n- πŸ‘ͺ Share bookmarks with other users, groups and teams or via public links\n- βš› Generate RSS feeds of your collections\n- πŸ“ˆ Stats on how often you access which links\n- πŸ”’ Automatic backups of your bookmarks collection\n- πŸ’Ό Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0", "homepage": "https://github.com/nextcloud/bookmarks", "licenses": [ @@ -10,9 +10,9 @@ ] }, "calendar": { - "hash": "sha256-PAf/8YBhE87bfW0IZgDw6OsneafFvJADzqwjNp+M6wE=", - "url": "https://github.com/nextcloud-releases/calendar/releases/download/v6.4.2/calendar-v6.4.2.tar.gz", - "version": "6.4.2", + "hash": "sha256-k7A38geyX6PS2j2t5iIXMMZMJsPKIiySVRKxcPAj+pM=", + "url": "https://github.com/nextcloud-releases/calendar/releases/download/v6.5.0/calendar-v6.5.0.tar.gz", + "version": "6.5.0", "description": "A Calendar app for Nextcloud. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Like Contacts, Talk, Tasks, Deck and Circles\n* 🌐 **WebCal Support!** Want to see your favorite team's matchdays in your calendar? No problem!\n* πŸ™‹ **Attendees!** Invite people to your events\n* ⌚ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* πŸ” **Search!** Find your events at ease\n* β˜‘οΈ **Tasks!** See tasks or Deck cards with a due date directly in the calendar\n* πŸ”ˆ **Talk rooms!** Create an associated Talk room when booking a meeting with just one click\n* πŸ“† **Appointment booking** Send people a link so they can book an appointment with you [using this app](https://apps.nextcloud.com/apps/appointments)\n* πŸ“Ž **Attachments!** Add, upload and view event attachments\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.", "homepage": "https://github.com/nextcloud/calendar/", "licenses": [ @@ -40,9 +40,9 @@ ] }, "contacts": { - "hash": "sha256-sfArxNncF+zIqCYHMZk+EpRjiMy7/O6yYSeUtNMX5/I=", - "url": "https://github.com/nextcloud-releases/contacts/releases/download/v8.3.12/contacts-v8.3.12.tar.gz", - "version": "8.3.12", + "hash": "sha256-F2FomaYzrpOBvD2sxKjV7prGN+INKP8eJO2t/Z0J9YE=", + "url": "https://github.com/nextcloud-releases/contacts/releases/download/v8.3.13/contacts-v8.3.13.tar.gz", + "version": "8.3.13", "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* πŸŽ‰ **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* πŸ‘₯ **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.", "homepage": "https://github.com/nextcloud/contacts#readme", "licenses": [ @@ -80,9 +80,9 @@ ] }, "deck": { - "hash": "sha256-OtB8QJ+x4QfLA1EXqXVm3SmvkzQZUsg+8DR+++C8blU=", - "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.16.5/deck-v1.16.5.tar.gz", - "version": "1.16.5", + "hash": "sha256-t/9nWA3e2WBkMjevWMpzmhjBY8OaQS4nwryto4WJwtw=", + "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.16.6/deck-v1.16.6.tar.gz", + "version": "1.16.6", "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- πŸ“₯ Add your tasks to cards and put them in order\n- πŸ“„ Write down additional notes in Markdown\n- πŸ”– Assign labels for even better organization\n- πŸ‘₯ Share with your team, friends or family\n- πŸ“Ž Attach files and embed them in your Markdown description\n- πŸ’¬ Discuss with your team using comments\n- ⚑ Keep track of changes in the activity stream\n- πŸš€ Get your project organized", "homepage": "https://github.com/nextcloud/deck", "licenses": [ @@ -110,9 +110,9 @@ ] }, "files_linkeditor": { - "hash": "sha256-yT3b0K31PfK8ApI23yQAZRfTiWyFZnBVlTi+/sZCv+Y=", - "url": "https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.24/files_linkeditor.tar.gz", - "version": "1.1.24", + "hash": "sha256-WIOLA1J2aqMr5v3bZB3pRnF9bH1V0asGsMNTcetRsx8=", + "url": "https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.25/files_linkeditor.tar.gz", + "version": "1.1.25", "description": "### External web links in Nextcloud!\n* ✍️ **create and edit** .URL and .webloc links in the file view\n* 🌍 **open links** by clicking them and confirming you want to go to the external site\n* πŸ“€ **works in public shares** so you can share links easily with others\n* πŸ”„ **sync your links** as .URL and .webloc are web links as created on most operating systems.\n\n_[View changelog](https://github.com/te-online/files_linkeditor/blob/main/CHANGELOG.md)_", "homepage": "https://github.com/te-online/files_linkeditor", "licenses": [ @@ -130,13 +130,13 @@ ] }, "forms": { - "hash": "sha256-Lj4jNqIAAXGoaztpb1iXNak3mqKQzpm30VTQf5S4cOw=", - "url": "https://github.com/nextcloud-releases/forms/releases/download/v5.2.9/forms-v5.2.9.tar.gz", - "version": "5.2.9", + "hash": "sha256-r570gxd4j/AEMzT3vul6qxJsJ/bTEW459LONUOYA8ZM=", + "url": "https://github.com/nextcloud-releases/forms/releases/download/v5.3.2/forms-v5.3.2.tar.gz", + "version": "5.3.2", "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ§‘β€πŸ’» Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API_v3.md).\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", "homepage": "https://github.com/nextcloud/forms", "licenses": [ - "agpl" + "AGPL-3.0-or-later" ] }, "gpoddersync": { @@ -150,9 +150,9 @@ ] }, "groupfolders": { - "hash": "sha256-EVOIWjsgd/6j34GfrJ8YHxQP6JO84AdxvlPkqleeDyw=", - "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v20.1.14/groupfolders-v20.1.14.tar.gz", - "version": "20.1.14", + "hash": "sha256-/29wB6jwECzMsRvp5dXNuKodoMmYjD2gO9xiQX3Bg18=", + "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v20.1.15/groupfolders-v20.1.15.tar.gz", + "version": "20.1.15", "description": "Team Folders (formerly \"Group Folders\") allows administrators to create and manage shared\nfolders for selected teams within Nextcloud.\n\nAdmins can grant one or more teams access to a folder, configure permissions (such as read,\nwrite, and sharing rights), and assign storage quotas from the Team Folders section (under\nadmin settings). The app also supports advanced permissions and integration with Nextcloud’s\ntrash and versioning systems.\n\nAs of Hub 10 / Nextcloud 31, admins must be members of a team to assign that team to a Team\nFolder.", "homepage": "https://github.com/nextcloud/groupfolders", "licenses": [ @@ -210,15 +210,25 @@ ] }, "mail": { - "hash": "sha256-SYe8BEC4v9ivl2iGVCkORHy5yn9wN4o2mrqJYGqzVRw=", - "url": "https://github.com/nextcloud-releases/mail/releases/download/v5.9.0/mail-v5.9.0.tar.gz", - "version": "5.9.0", + "hash": "sha256-K6sJ3XJOq9MoO0lGgqn3iBYuDqqhOMeHWD1DLVY5HaU=", + "url": "https://github.com/nextcloud-releases/mail/releases/download/v5.10.1/mail-v5.10.1.tar.gz", + "version": "5.10.1", "description": "**πŸ’Œ A mail app for Nextcloud**\n\n- **πŸš€ Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **πŸ“₯ Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **πŸ”’ Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **πŸ™ˆ We’re not reinventing the wheel!** Based on the great [Horde](https://www.horde.org) libraries.\n- **πŸ“¬ Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟒/🟑/🟠/πŸ”΄\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).", "homepage": "https://github.com/nextcloud/mail#readme", "licenses": [ "agpl" ] }, + "maps": { + "hash": "sha256-Rwtzouz4NEFZVO6V8YvIc9Cyn/KBZ+gAYy5CcFDvRvc=", + "url": "https://github.com/nextcloud-releases/maps/releases/download/v1.7.1/maps-v1.7.1.tar.gz", + "version": "1.7.1", + "description": "**The whole world fits inside your cloud!**\n\n- **πŸ—Ί Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **πŸ–Ό Photos on the map:** No more boring slideshows, just show directly where you were!\n- **πŸ™‹ Contacts on the map:** See where your friends live and plan your next visit.\n- **πŸ“± Devices:** Lost your phone? Check the map!\n- **γ€° Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.", + "homepage": "https://github.com/nextcloud/maps", + "licenses": [ + "agpl" + ] + }, "music": { "hash": "sha256-bQ9NBo5R/en3f68ag+mAsVWuhREjr/ajlKrfLn4Tvtg=", "url": "https://github.com/nc-music/music/releases/download/v3.1.0/nc-music-3.1.0.tar.gz", @@ -230,9 +240,9 @@ ] }, "news": { - "hash": "sha256-T3UBQcNxte18J/yyIucGb/X105t3lh97KWn0joTTuDw=", - "url": "https://github.com/nextcloud/news/releases/download/28.5.1/news.tar.gz", - "version": "28.5.1", + "hash": "sha256-25VyIvV7d5/hvWuT0IXzpgygLYHRrmqHg2pa+QQpK90=", + "url": "https://github.com/nextcloud/news/releases/download/28.6.0/news.tar.gz", + "version": "28.6.0", "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", "homepage": "https://github.com/nextcloud/news", "licenses": [ @@ -280,9 +290,9 @@ ] }, "onlyoffice": { - "hash": "sha256-est6QHoBQRX1ounlwifjgELJ4f0wHz+FCMc8pMQ///s=", - "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.13.0/onlyoffice.tar.gz", - "version": "9.13.0", + "hash": "sha256-+phzZA410n9QQsba26OUf7XR+x24XMnmHamhqsqlcVo=", + "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v9.14.0/onlyoffice.tar.gz", + "version": "9.14.0", "description": "The ONLYOFFICE app for Nextcloud brings powerful document editing and collaboration tools directly to your Nextcloud environment. With this integration, you can seamlessly create, edit, and co-author text documents, spreadsheets, presentations, and PDFs, as well as build and fill out PDF forms.\n\nCollaborate with your team in real time, make use of Track Changes, version history, comments, integrated chat, and more. Work together on files with federated cloud sharing. Flexible access permissions allow you to control who can view, edit, or comment, ensuring secure role-based collaboration tailored to your needs. Documents can also be protected with watermarks, password settings, and encryption for added security.\n\nThe app offers support for over 50 file formats, including DOCX, XLSX, PPTX, PDF, RTF, TXT, CSV, ODT, ODS, ODP, EPUB, FB2, HTML, HWP, HWPX, Pages, Numbers, Keynote, etc. Seamless desktop and mobile app integration means you'll have access to your Nextcloud files wherever you go.\n\nFurthermore, you can seamlessly connect any AI assistant, including local ones, directly to the editors to work faster and more efficient. This allows you to leverage various AI models for tasks like chatbot interactions, translations, OCR, and more.\n\nWhether you’re working with internal teams or external collaborators, the ONLYOFFICE app for Nextcloud enhances productivity, simplifies workflows, and ensures your files remain secure.", "homepage": "https://www.onlyoffice.com", "licenses": [ @@ -330,9 +340,9 @@ ] }, "quota_warning": { - "hash": "sha256-OgFXI7FD7skHcot0Fb636ScCimL1ArzD/3FDjRB7iCA=", - "url": "https://github.com/nextcloud-releases/quota_warning/releases/download/v1.23.0/quota_warning-v1.23.0.tar.gz", - "version": "1.23.0", + "hash": "sha256-bX9f6Zu53lZfG8zpfEwRxvIFVxARs4y6NLNNAK3DhUI=", + "url": "https://github.com/nextcloud-releases/quota_warning/releases/download/v1.24.0/quota_warning-v1.24.0.tar.gz", + "version": "1.24.0", "description": "This app sends notifications to users when they reached 85, 90 and 95% of their quota (checked once a day).\nIn addition an email can be sent to the users. The three percentages can be changed in the admin settings.\nIt is also possible to have a link in the email and the notification for upsell options.", "homepage": "https://github.com/nextcloud/quota_warning", "licenses": [ @@ -340,9 +350,9 @@ ] }, "registration": { - "hash": "sha256-EzKIk9o4+i9+6oa3B4ZP1tAnXnL6zO6LjSXmPEzvbGE=", - "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.9.0/registration-v2.9.0.tar.gz", - "version": "2.9.0", + "hash": "sha256-mXsG5SfMrOp/G/4w9dbcwk41bLRUyrzWGTkoNeE0E88=", + "url": "https://github.com/nextcloud-releases/registration/releases/download/v3.0.0/registration-v3.0.0.tar.gz", + "version": "3.0.0", "description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically", "homepage": "https://github.com/nextcloud/registration", "licenses": [ @@ -350,9 +360,9 @@ ] }, "repod": { - "hash": "sha256-9JqXxPbuaOGgYvocqXdP+Cy1qs43LC4FTXPxcZIZ6Zk=", - "url": "https://git.crystalyx.net/Xefir/repod/releases/download/4.2.0/repod.tar.gz", - "version": "4.2.0", + "hash": "sha256-wLglJfhATgmHjagwClZHtXm8HQ8vSE0DUG4KXTHRapI=", + "url": "https://git.crystalyx.net/Xefir/repod/releases/download/4.2.1/repod.tar.gz", + "version": "4.2.1", "description": "## Features\n- πŸ” Browse and subscribe huge collection of podcasts\n- πŸ”Š Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- πŸ“± Mobile friendly interface\n- πŸ“‘ Import and export your subscriptions\n- ➑️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!", "homepage": "https://git.crystalyx.net/Xefir/repod", "licenses": [ @@ -360,9 +370,9 @@ ] }, "richdocuments": { - "hash": "sha256-n/cJi5eFsyIISwy8k6fLAzN8tgRIKCCaaoTPD6B3mKU=", - "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v9.0.6/richdocuments-v9.0.6.tar.gz", - "version": "9.0.6", + "hash": "sha256-oLV1AFCGt/ukZ06TkOpEBGxOPQ3Z66dY2rpDj0tXiP4=", + "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v9.1.0/richdocuments-v9.1.0.tar.gz", + "version": "9.1.0", "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.", "homepage": "https://collaboraoffice.com/", "licenses": [ @@ -430,9 +440,9 @@ ] }, "twofactor_webauthn": { - "hash": "sha256-21lUwF1uC7vJKqpC144jbtKaX25UhVDzgU/E7XoMSos=", - "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.6.0/twofactor_webauthn-v2.6.0.tar.gz", - "version": "2.6.0", + "hash": "sha256-cpjn8Md2MaVv063A2HwklgtGtPIkzyF/KgE/OzzP0bA=", + "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.7.0/twofactor_webauthn-v2.7.0.tar.gz", + "version": "2.7.0", "description": "A two-factor provider for WebAuthn devices", "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme", "licenses": [ @@ -450,9 +460,9 @@ ] }, "uppush": { - "hash": "sha256-MFOZqCQRyzICFPMyJGJIr366QpF47GZM/SpzqiY0HWQ=", - "url": "https://codeberg.org/NextPush/uppush/archive/2.4.1.tar.gz", - "version": "2.4.0", + "hash": "sha256-5+Knec2Ix8291UcQFipmqh3C9wheYH4+Smmmt3q3wFE=", + "url": "https://codeberg.org/NextPush/uppush/archive/2.5.0.tar.gz", + "version": "2.5.0", "description": "Once the mobile phone is connected with NextPush, push notifications can be forwarded to applications implementing UnifiedPush.\n\nMore information about UnifiedPush at https://unifiedpush.org", "homepage": "", "licenses": [ @@ -476,7 +486,7 @@ "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\t* Authentik\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.", "homepage": "https://github.com/nextcloud/user_saml", "licenses": [ - "agpl" + "AGPL-3.0-or-later" ] }, "whiteboard": { diff --git a/pkgs/servers/nextcloud/packages/33.json b/pkgs/servers/nextcloud/packages/33.json index 41ed0fc98d09..9e0de83486d2 100644 --- a/pkgs/servers/nextcloud/packages/33.json +++ b/pkgs/servers/nextcloud/packages/33.json @@ -1,8 +1,8 @@ { "bookmarks": { - "hash": "sha256-Q4NwDrCuex5e2sGEG4Gu00Ne3UeojrSRlGPKQ8R2+/0=", - "url": "https://github.com/nextcloud/bookmarks/releases/download/v16.1.4/bookmarks-16.1.4.tar.gz", - "version": "16.1.4", + "hash": "sha256-wf3t7qwxFAJBnPP3PYfa3Q/LrUaoONY47/So2w2fDww=", + "url": "https://github.com/nextcloud/bookmarks/releases/download/v16.2.1/bookmarks-16.2.1.tar.gz", + "version": "16.2.1", "description": "- πŸ“‚ Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- ☠ Find broken links and duplicates\n- πŸ“² Synchronize with all your browsers and devices\n- πŸ“” Store archived versions of your links in case they are depublished\n- πŸ” Full-text search on site contents\n- πŸ‘ͺ Share bookmarks with other users, groups and teams or via public links\n- βš› Generate RSS feeds of your collections\n- πŸ“ˆ Stats on how often you access which links\n- πŸ”’ Automatic backups of your bookmarks collection\n- πŸ’Ό Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0", "homepage": "https://github.com/nextcloud/bookmarks", "licenses": [ @@ -10,9 +10,9 @@ ] }, "calendar": { - "hash": "sha256-PAf/8YBhE87bfW0IZgDw6OsneafFvJADzqwjNp+M6wE=", - "url": "https://github.com/nextcloud-releases/calendar/releases/download/v6.4.2/calendar-v6.4.2.tar.gz", - "version": "6.4.2", + "hash": "sha256-k7A38geyX6PS2j2t5iIXMMZMJsPKIiySVRKxcPAj+pM=", + "url": "https://github.com/nextcloud-releases/calendar/releases/download/v6.5.0/calendar-v6.5.0.tar.gz", + "version": "6.5.0", "description": "A Calendar app for Nextcloud. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Like Contacts, Talk, Tasks, Deck and Circles\n* 🌐 **WebCal Support!** Want to see your favorite team's matchdays in your calendar? No problem!\n* πŸ™‹ **Attendees!** Invite people to your events\n* ⌚ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* πŸ” **Search!** Find your events at ease\n* β˜‘οΈ **Tasks!** See tasks or Deck cards with a due date directly in the calendar\n* πŸ”ˆ **Talk rooms!** Create an associated Talk room when booking a meeting with just one click\n* πŸ“† **Appointment booking** Send people a link so they can book an appointment with you [using this app](https://apps.nextcloud.com/apps/appointments)\n* πŸ“Ž **Attachments!** Add, upload and view event attachments\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.", "homepage": "https://github.com/nextcloud/calendar/", "licenses": [ @@ -40,9 +40,9 @@ ] }, "contacts": { - "hash": "sha256-SyBJBSxNe1JM8l9AHgYy8AQ3v3hlZhEgUiiTb6xCk70=", - "url": "https://github.com/nextcloud-releases/contacts/releases/download/v8.5.1/contacts-v8.5.1.tar.gz", - "version": "8.5.1", + "hash": "sha256-XrXzGAJe+Zu3pon7sDbBbV73u2fKKD4fdfN24X6QdIM=", + "url": "https://github.com/nextcloud-releases/contacts/releases/download/v8.7.1/contacts-v8.7.1.tar.gz", + "version": "8.7.1", "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* πŸš€ **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* πŸŽ‰ **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* πŸ‘₯ **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* πŸ™ˆ **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.", "homepage": "https://github.com/nextcloud/contacts#readme", "licenses": [ @@ -60,9 +60,9 @@ ] }, "cospend": { - "hash": "sha256-fxIC0gEYCek1LZ0rxmRAbWyYSfuHt6Bs/JCLYPR7ZFM=", - "url": "https://github.com/julien-nc/cospend-nc/releases/download/v4.0.0/cospend-4.0.0.tar.gz", - "version": "4.0.0", + "hash": "sha256-3uphQHtKlW8kXeLA5hMDpT14lEf+tnJyy4hfKioBDSw=", + "url": "https://github.com/julien-nc/cospend-nc/releases/download/v4.0.2/cospend-4.0.2.tar.gz", + "version": "4.0.2", "description": "# Nextcloud Cospend πŸ’°\n\nNextcloud Cospend is a group/shared budget manager. It was inspired by the great [IHateMoney](https://github.com/spiral-project/ihatemoney/).\n\nYou can use it when you share a house, when you go on vacation with friends, whenever you share expenses with a group of people.\n\nIt lets you create projects with members and bills. Each member has a balance computed from the project bills. Balances are not an absolute amount of money at members disposal but rather a relative information showing if a member has spent more for the group than the group has spent for her/him, independently of exactly who spent money for whom. This way you can see who owes the group and who the group owes. Ultimately you can ask for a settlement plan telling you which payments to make to reset members balances.\n\nProject members are independent from Nextcloud users. Projects can be shared with other Nextcloud users or via public links.\n\n[MoneyBuster](https://gitlab.com/eneiluj/moneybuster) Android client is [available in F-Droid](https://f-droid.org/packages/net.eneiluj.moneybuster/) and on the [Play store](https://play.google.com/store/apps/details?id=net.eneiluj.moneybuster).\n\n[PayForMe](https://github.com/mayflower/PayForMe) iOS client is currently under developpement!\n\nThe private and public APIs are documented using [the Nextcloud OpenAPI extractor](https://github.com/nextcloud/openapi-extractor/). This documentation can be accessed directly in Nextcloud. All you need is to install Cospend (>= v1.6.0) and use the [the OCS API Viewer app](https://apps.nextcloud.com/apps/ocs_api_viewer) to browse the OpenAPI documentation.\n\n## Features\n\n* ✎ Create/edit/delete projects, members, bills, bill categories, currencies\n* βš– Check member balances\n* πŸ—  Display project statistics\n* β™» Display settlement plan\n* Move bills from one project to another\n* Move bills to trash before actually deleting them\n* Archive old projects before deleting them\n* πŸŽ‡ Automatically create reimbursement bills from settlement plan\n* πŸ—“ Create recurring bills (day/week/month/year)\n* πŸ“Š Optionally provide custom amount for each member in new bills\n* πŸ”— Link personal files to bills (picture of physical receipt for example)\n* πŸ‘© Public links for people outside Nextcloud (can be password protected)\n* πŸ‘« Share projects with Nextcloud users/groups/circles\n* πŸ–« Import/export projects as csv (compatible with csv files from IHateMoney and SplitWise)\n* πŸ”— Generate link/QRCode to easily add projects in MoneyBuster\n* πŸ—² Implement Nextcloud notifications and activity stream\n\nThis app usually support the 2 or 3 last major versions of Nextcloud.\n\nThis app is under development.\n\n🌍 Help us to translate this app on [Nextcloud-Cospend/MoneyBuster Crowdin project](https://crowdin.com/project/moneybuster).\n\nβš’ Check out other ways to help in the [contribution guidelines](https://github.com/julien-nc/cospend-nc/blob/master/CONTRIBUTING.md).\n\n## Documentation\n\n* [User documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/user.md)\n* [Admin documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/admin.md)\n* [Developer documentation](https://github.com/julien-nc/cospend-nc/blob/master/docs/dev.md)\n* [CHANGELOG](https://github.com/julien-nc/cospend-nc/blob/master/CHANGELOG.md#change-log)\n* [AUTHORS](https://github.com/julien-nc/cospend-nc/blob/master/AUTHORS.md#authors)\n\n## Known issues\n\n* It does not make you rich\n\nAny feedback will be appreciated.\n\n\n\n## Donation\n\nI develop this app during my free time.\n\n* [Donate with Paypal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66PALMY8SF5JE) (you don't need a paypal account)\n* [Donate with Liberapay : ![Donate using Liberapay](https://liberapay.com/assets/widgets/donate.svg)](https://liberapay.com/eneiluj/donate)", "homepage": "https://github.com/julien-nc/cospend-nc", "licenses": [ @@ -80,9 +80,9 @@ ] }, "deck": { - "hash": "sha256-e3IGes5CUIlSn1W47V4f4X0XOAbeA1y3RPpw9w++hMU=", - "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.17.2/deck-v1.17.2.tar.gz", - "version": "1.17.2", + "hash": "sha256-n0q700fSmqZ9tvsfSquXwh4ujtiBsW3wUaLnohu1MFg=", + "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.17.3/deck-v1.17.3.tar.gz", + "version": "1.17.3", "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- πŸ“₯ Add your tasks to cards and put them in order\n- πŸ“„ Write down additional notes in Markdown\n- πŸ”– Assign labels for even better organization\n- πŸ‘₯ Share with your team, friends or family\n- πŸ“Ž Attach files and embed them in your Markdown description\n- πŸ’¬ Discuss with your team using comments\n- ⚑ Keep track of changes in the activity stream\n- πŸš€ Get your project organized", "homepage": "https://github.com/nextcloud/deck", "licenses": [ @@ -110,9 +110,9 @@ ] }, "files_linkeditor": { - "hash": "sha256-yT3b0K31PfK8ApI23yQAZRfTiWyFZnBVlTi+/sZCv+Y=", - "url": "https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.24/files_linkeditor.tar.gz", - "version": "1.1.24", + "hash": "sha256-WIOLA1J2aqMr5v3bZB3pRnF9bH1V0asGsMNTcetRsx8=", + "url": "https://github.com/te-online/nextcloud-app-releases/raw/main/files_linkeditor/v1.1.25/files_linkeditor.tar.gz", + "version": "1.1.25", "description": "### External web links in Nextcloud!\n* ✍️ **create and edit** .URL and .webloc links in the file view\n* 🌍 **open links** by clicking them and confirming you want to go to the external site\n* πŸ“€ **works in public shares** so you can share links easily with others\n* πŸ”„ **sync your links** as .URL and .webloc are web links as created on most operating systems.\n\n_[View changelog](https://github.com/te-online/files_linkeditor/blob/main/CHANGELOG.md)_", "homepage": "https://github.com/te-online/files_linkeditor", "licenses": [ @@ -130,13 +130,13 @@ ] }, "forms": { - "hash": "sha256-Lj4jNqIAAXGoaztpb1iXNak3mqKQzpm30VTQf5S4cOw=", - "url": "https://github.com/nextcloud-releases/forms/releases/download/v5.2.9/forms-v5.2.9.tar.gz", - "version": "5.2.9", + "hash": "sha256-r570gxd4j/AEMzT3vul6qxJsJ/bTEW459LONUOYA8ZM=", + "url": "https://github.com/nextcloud-releases/forms/releases/download/v5.3.2/forms-v5.3.2.tar.gz", + "version": "5.3.2", "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **πŸ“ Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **πŸ“Š View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **πŸ”’ Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **πŸ§‘β€πŸ’» Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API_v3.md).\n- **πŸ™‹ Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!", "homepage": "https://github.com/nextcloud/forms", "licenses": [ - "agpl" + "AGPL-3.0-or-later" ] }, "gpoddersync": { @@ -150,9 +150,9 @@ ] }, "groupfolders": { - "hash": "sha256-yLcyZCI3IHEiZJDAH/vb7uqi5UmNMHFsRedK2pN88mc=", - "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v21.0.7/groupfolders-v21.0.7.tar.gz", - "version": "21.0.7", + "hash": "sha256-2jy9p4pu2OXdi8JENFCBcPSDHnGIQkpzuyKkjxALAE4=", + "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v21.0.8/groupfolders-v21.0.8.tar.gz", + "version": "21.0.8", "description": "Team Folders (formerly \"Group Folders\") allows administrators to create and manage shared\nfolders for selected teams within Nextcloud.\n\nAdmins can grant one or more teams access to a folder, configure permissions (such as read,\nwrite, and sharing rights), and assign storage quotas from the Team Folders section (under\nadmin settings). The app also supports advanced permissions and integration with Nextcloud’s\ntrash and versioning systems.\n\nAs of Hub 10 / Nextcloud 31, admins must be members of a team to assign that team to a Team\nFolder.", "homepage": "https://github.com/nextcloud/groupfolders", "licenses": [ @@ -210,15 +210,25 @@ ] }, "mail": { - "hash": "sha256-SYe8BEC4v9ivl2iGVCkORHy5yn9wN4o2mrqJYGqzVRw=", - "url": "https://github.com/nextcloud-releases/mail/releases/download/v5.9.0/mail-v5.9.0.tar.gz", - "version": "5.9.0", + "hash": "sha256-K6sJ3XJOq9MoO0lGgqn3iBYuDqqhOMeHWD1DLVY5HaU=", + "url": "https://github.com/nextcloud-releases/mail/releases/download/v5.10.1/mail-v5.10.1.tar.gz", + "version": "5.10.1", "description": "**πŸ’Œ A mail app for Nextcloud**\n\n- **πŸš€ Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **πŸ“₯ Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **πŸ”’ Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **πŸ™ˆ We’re not reinventing the wheel!** Based on the great [Horde](https://www.horde.org) libraries.\n- **πŸ“¬ Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!\n\n## Ethical AI Rating\n\n### Priority Inbox\n\nPositive:\n* The software for training and inferencing of this model is open source.\n* The model is created and trained on-premises based on the user's own data.\n* The training data is accessible to the user, making it possible to check or correct for bias or optimise the performance and CO2 usage.\n\n### Thread Summaries (opt-in)\n\n**Rating:** 🟒/🟑/🟠/πŸ”΄\n\nThe rating depends on the installed text processing backend. See [the rating overview](https://docs.nextcloud.com/server/latest/admin_manual/ai/index.html) for details.\n\nLearn more about the Nextcloud Ethical AI Rating [in our blog](https://nextcloud.com/blog/nextcloud-ethical-ai-rating/).", "homepage": "https://github.com/nextcloud/mail#readme", "licenses": [ "agpl" ] }, + "maps": { + "hash": "sha256-Rwtzouz4NEFZVO6V8YvIc9Cyn/KBZ+gAYy5CcFDvRvc=", + "url": "https://github.com/nextcloud-releases/maps/releases/download/v1.7.1/maps-v1.7.1.tar.gz", + "version": "1.7.1", + "description": "**The whole world fits inside your cloud!**\n\n- **πŸ—Ί Beautiful map:** Using [OpenStreetMap](https://www.openstreetmap.org) and [Leaflet](https://leafletjs.com), you can choose between standard map, satellite, topographical, dark mode or even watercolor! 🎨\n- **⭐ Favorites:** Save your favorite places, privately! Sync with [GNOME Maps](https://github.com/nextcloud/maps/issues/30) and mobile apps is planned.\n- **🧭 Routing:** Possible using either [OSRM](http://project-osrm.org), [GraphHopper](https://www.graphhopper.com) or [Mapbox](https://www.mapbox.com).\n- **πŸ–Ό Photos on the map:** No more boring slideshows, just show directly where you were!\n- **πŸ™‹ Contacts on the map:** See where your friends live and plan your next visit.\n- **πŸ“± Devices:** Lost your phone? Check the map!\n- **γ€° Tracks:** Load GPS tracks or past trips. Recording with [PhoneTrack](https://f-droid.org/en/packages/net.eneiluj.nextcloud.phonetrack/) or [OwnTracks](https://owntracks.org) is planned.", + "homepage": "https://github.com/nextcloud/maps", + "licenses": [ + "agpl" + ] + }, "music": { "hash": "sha256-bQ9NBo5R/en3f68ag+mAsVWuhREjr/ajlKrfLn4Tvtg=", "url": "https://github.com/nc-music/music/releases/download/v3.1.0/nc-music-3.1.0.tar.gz", @@ -230,9 +240,9 @@ ] }, "news": { - "hash": "sha256-T3UBQcNxte18J/yyIucGb/X105t3lh97KWn0joTTuDw=", - "url": "https://github.com/nextcloud/news/releases/download/28.5.1/news.tar.gz", - "version": "28.5.1", + "hash": "sha256-25VyIvV7d5/hvWuT0IXzpgygLYHRrmqHg2pa+QQpK90=", + "url": "https://github.com/nextcloud/news/releases/download/28.6.0/news.tar.gz", + "version": "28.6.0", "description": "πŸ“° A RSS/Atom Feed reader App for Nextcloud\n\n- πŸ“² Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- πŸ”„ Automatic updates of your news feeds\n- πŸ†“ Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)", "homepage": "https://github.com/nextcloud/news", "licenses": [ @@ -280,9 +290,9 @@ ] }, "onlyoffice": { - "hash": "sha256-YBg/rrXPZyd0pqaOez/GjfraCqS7kwNTAXjIwBvExLM=", - "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v10.0.0/onlyoffice.tar.gz", - "version": "10.0.0", + "hash": "sha256-ktKopFpHmtRulOQN3XO5BW5QyhURhOv+G77dSn6Nv08=", + "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v10.1.0/onlyoffice.tar.gz", + "version": "10.1.0", "description": "The ONLYOFFICE app for Nextcloud brings powerful document editing and collaboration tools directly to your Nextcloud environment. With this integration, you can seamlessly create, edit, and co-author text documents, spreadsheets, presentations, and PDFs, as well as build and fill out PDF forms.\n\nCollaborate with your team in real time, make use of Track Changes, version history, comments, integrated chat, and more. Work together on files with federated cloud sharing. Flexible access permissions allow you to control who can view, edit, or comment, ensuring secure role-based collaboration tailored to your needs. Documents can also be protected with watermarks, password settings, and encryption for added security.\n\nThe app offers support for over 50 file formats, including DOCX, XLSX, PPTX, PDF, RTF, TXT, CSV, ODT, ODS, ODP, EPUB, FB2, HTML, HWP, HWPX, Pages, Numbers, Keynote, etc. Seamless desktop and mobile app integration means you'll have access to your Nextcloud files wherever you go.\n\nFurthermore, you can seamlessly connect any AI assistant, including local ones, directly to the editors to work faster and more efficient. This allows you to leverage various AI models for tasks like chatbot interactions, translations, OCR, and more.\n\nWhether you’re working with internal teams or external collaborators, the ONLYOFFICE app for Nextcloud enhances productivity, simplifies workflows, and ensures your files remain secure.", "homepage": "https://www.onlyoffice.com", "licenses": [ @@ -330,9 +340,9 @@ ] }, "quota_warning": { - "hash": "sha256-OgFXI7FD7skHcot0Fb636ScCimL1ArzD/3FDjRB7iCA=", - "url": "https://github.com/nextcloud-releases/quota_warning/releases/download/v1.23.0/quota_warning-v1.23.0.tar.gz", - "version": "1.23.0", + "hash": "sha256-bX9f6Zu53lZfG8zpfEwRxvIFVxARs4y6NLNNAK3DhUI=", + "url": "https://github.com/nextcloud-releases/quota_warning/releases/download/v1.24.0/quota_warning-v1.24.0.tar.gz", + "version": "1.24.0", "description": "This app sends notifications to users when they reached 85, 90 and 95% of their quota (checked once a day).\nIn addition an email can be sent to the users. The three percentages can be changed in the admin settings.\nIt is also possible to have a link in the email and the notification for upsell options.", "homepage": "https://github.com/nextcloud/quota_warning", "licenses": [ @@ -340,9 +350,9 @@ ] }, "registration": { - "hash": "sha256-EzKIk9o4+i9+6oa3B4ZP1tAnXnL6zO6LjSXmPEzvbGE=", - "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.9.0/registration-v2.9.0.tar.gz", - "version": "2.9.0", + "hash": "sha256-mXsG5SfMrOp/G/4w9dbcwk41bLRUyrzWGTkoNeE0E88=", + "url": "https://github.com/nextcloud-releases/registration/releases/download/v3.0.0/registration-v3.0.0.tar.gz", + "version": "3.0.0", "description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically", "homepage": "https://github.com/nextcloud/registration", "licenses": [ @@ -350,9 +360,9 @@ ] }, "repod": { - "hash": "sha256-9JqXxPbuaOGgYvocqXdP+Cy1qs43LC4FTXPxcZIZ6Zk=", - "url": "https://git.crystalyx.net/Xefir/repod/releases/download/4.2.0/repod.tar.gz", - "version": "4.2.0", + "hash": "sha256-wLglJfhATgmHjagwClZHtXm8HQ8vSE0DUG4KXTHRapI=", + "url": "https://git.crystalyx.net/Xefir/repod/releases/download/4.2.1/repod.tar.gz", + "version": "4.2.1", "description": "## Features\n- πŸ” Browse and subscribe huge collection of podcasts\n- πŸ”Š Listen to episodes directly in Nextcloud\n- 🌐 Sync your activity with [AntennaPod](https://antennapod.org/) and [other apps](https://git.crystalyx.net/Xefir/repod#clients-supporting-sync-of-gpoddersync)\n- πŸ“± Mobile friendly interface\n- πŸ“‘ Import and export your subscriptions\n- ➑️ Full features comparison [here](https://git.crystalyx.net/Xefir/repod#comparaison-with-similar-apps-for-nextcloud)\n\n## Requirements\nYou need to have [GPodderSync](https://apps.nextcloud.com/apps/gpoddersync) installed to use this app!", "homepage": "https://git.crystalyx.net/Xefir/repod", "licenses": [ @@ -360,9 +370,9 @@ ] }, "richdocuments": { - "hash": "sha256-opa/fyrCtnaK6eiHqQ49cNfs3Nl0pi7L1IizLyfy+Co=", - "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v10.1.3/richdocuments-v10.1.3.tar.gz", - "version": "10.1.3", + "hash": "sha256-HGNCueLlZuauHi/0dltApMDj8FBZ4Ruj2T2F+/4qWY4=", + "url": "https://github.com/nextcloud-releases/richdocuments/releases/download/v10.2.0/richdocuments-v10.2.0.tar.gz", + "version": "10.2.0", "description": "This application can connect to a Collabora Online (or other) server (WOPI-like Client). Nextcloud is the WOPI Host. Please read the documentation to learn more about that.\n\nYou can also edit your documents off-line with the Collabora Office app from the **[Android](https://play.google.com/store/apps/details?id=com.collabora.libreoffice)** and **[iOS](https://apps.apple.com/us/app/collabora-office/id1440482071)** store.", "homepage": "https://collaboraoffice.com/", "licenses": [ @@ -430,9 +440,9 @@ ] }, "twofactor_webauthn": { - "hash": "sha256-21lUwF1uC7vJKqpC144jbtKaX25UhVDzgU/E7XoMSos=", - "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.6.0/twofactor_webauthn-v2.6.0.tar.gz", - "version": "2.6.0", + "hash": "sha256-cpjn8Md2MaVv063A2HwklgtGtPIkzyF/KgE/OzzP0bA=", + "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v2.7.0/twofactor_webauthn-v2.7.0.tar.gz", + "version": "2.7.0", "description": "A two-factor provider for WebAuthn devices", "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme", "licenses": [ @@ -450,9 +460,9 @@ ] }, "uppush": { - "hash": "sha256-MFOZqCQRyzICFPMyJGJIr366QpF47GZM/SpzqiY0HWQ=", - "url": "https://codeberg.org/NextPush/uppush/archive/2.4.1.tar.gz", - "version": "2.4.0", + "hash": "sha256-5+Knec2Ix8291UcQFipmqh3C9wheYH4+Smmmt3q3wFE=", + "url": "https://codeberg.org/NextPush/uppush/archive/2.5.0.tar.gz", + "version": "2.5.0", "description": "Once the mobile phone is connected with NextPush, push notifications can be forwarded to applications implementing UnifiedPush.\n\nMore information about UnifiedPush at https://unifiedpush.org", "homepage": "", "licenses": [ @@ -476,7 +486,7 @@ "description": "Using the SSO & SAML app of your Nextcloud you can make it easily possible to integrate your existing Single-Sign-On solution with Nextcloud. In addition, you can use the Nextcloud LDAP user provider to keep the convenience for users. (e.g. when sharing)\nThe following providers are supported and tested at the moment:\n\n* **SAML 2.0**\n\t* OneLogin\n\t* Shibboleth\n\t* Active Directory Federation Services (ADFS)\n\t* Authentik\n\n* **Authentication via Environment Variable**\n\t* Kerberos (mod_auth_kerb)\n\t* Any other provider that authenticates using the environment variable\n\nWhile theoretically any other authentication provider implementing either one of those standards is compatible, we like to note that they are not part of any internal test matrix.", "homepage": "https://github.com/nextcloud/user_saml", "licenses": [ - "agpl" + "AGPL-3.0-or-later" ] }, "whiteboard": { diff --git a/pkgs/servers/sql/postgresql/19.nix b/pkgs/servers/sql/postgresql/19.nix new file mode 100644 index 000000000000..50862f58f4ab --- /dev/null +++ b/pkgs/servers/sql/postgresql/19.nix @@ -0,0 +1,11 @@ +import ./generic.nix { + version = "19beta1"; + rev = "refs/tags/REL_19_BETA1"; + hash = "sha256-thvbttX8wwGLf5tMJRHl86Xv8OgINzahoqB/AzAdtMI="; + muslPatches = { + dont-use-locale-a = { + url = "https://git.alpinelinux.org/aports/plain/main/postgresql17/dont-use-locale-a-on-musl.patch?id=d69ead2c87230118ae7f72cef7d761e761e1f37e"; + hash = "sha256-6zjz3OpMx4qTETdezwZxSJPPdOvhCNu9nXvAaU9SwH8="; + }; + }; +} diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 495f8b2625c0..355ae9bf7149 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -14,6 +14,7 @@ let postgresql_16 = ./16.nix; postgresql_17 = ./17.nix; postgresql_18 = ./18.nix; + postgresql_19 = ./19.nix; }; mkAttributes = diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix index f9f2da13af04..db843937e661 100644 --- a/pkgs/servers/sql/postgresql/generic.nix +++ b/pkgs/servers/sql/postgresql/generic.nix @@ -347,7 +347,9 @@ let ++ lib.optionals tclSupport [ "--with-tcl" ] ++ lib.optionals selinuxSupport [ "--with-selinux" ] ++ lib.optionals nlsSupport [ "--enable-nls" ] - ++ lib.optionals bonjourSupport [ "--with-bonjour" ]; + ++ lib.optionals bonjourSupport [ "--with-bonjour" ] + # Configure needs a little help to find `nm` when cross-compiling. + ++ lib.optionals (atLeast "19") [ "NM=${stdenv'.cc}/bin/${stdenv'.cc.targetPrefix}nm" ]; patches = [ ( diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b025d851457d..b66425033cdf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7666,6 +7666,7 @@ with pkgs; postgresql_16 postgresql_17 postgresql_18 + postgresql_19 ; inherit (postgresqlJitVersions) @@ -7674,6 +7675,7 @@ with pkgs; postgresql_16_jit postgresql_17_jit postgresql_18_jit + postgresql_19_jit ; postgresql = postgresql_18; postgresql_jit = postgresql_18_jit; @@ -7683,6 +7685,7 @@ with pkgs; postgresql16Packages = recurseIntoAttrs postgresql_16.pkgs; postgresql17Packages = recurseIntoAttrs postgresql_17.pkgs; postgresql18Packages = recurseIntoAttrs postgresql_18.pkgs; + postgresql19Packages = recurseIntoAttrs postgresql_19.pkgs; postgres-websockets = haskellPackages.postgres-websockets.bin; postgrest = haskellPackages.postgrest.bin; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 577b8eec1ad8..512edec82249 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3664,6 +3664,8 @@ self: super: with self; { protoc = pkgs.protobuf; }; + datalab-platform = callPackage ../development/python-modules/datalab-platform { }; + datalad = callPackage ../development/python-modules/datalad { }; datalad-gooey = callPackage ../development/python-modules/datalad-gooey { }; @@ -5996,6 +5998,8 @@ self: super: with self; { fortune = callPackage ../development/python-modules/fortune { }; + foss-flame = callPackage ../development/python-modules/foss-flame { }; + foundationdb = callPackage ../development/python-modules/foundationdb { inherit (pkgs) foundationdb; }; @@ -7752,6 +7756,8 @@ self: super: with self; { interruptingcow = callPackage ../development/python-modules/interruptingcow { }; + intersphinx-registry = callPackage ../development/python-modules/intersphinx-registry { }; + intervals = callPackage ../development/python-modules/intervals { }; intervaltree = callPackage ../development/python-modules/intervaltree { }; @@ -8320,6 +8326,10 @@ self: super: with self; { jupyterlab-widgets = callPackage ../development/python-modules/jupyterlab-widgets { }; + jupyterlite-core = callPackage ../development/python-modules/jupyterlite-core { }; + + jupyterlite-sphinx = callPackage ../development/python-modules/jupyterlite-sphinx { }; + jupytext = callPackage ../development/python-modules/jupytext { }; justbackoff = callPackage ../development/python-modules/justbackoff { }; @@ -9103,6 +9113,26 @@ self: super: with self; { license-expression = callPackage ../development/python-modules/license-expression { }; + licomp = callPackage ../development/python-modules/licomp { }; + + licomp-doubleopen = callPackage ../development/python-modules/licomp-doubleopen { }; + + licomp-dwheeler = callPackage ../development/python-modules/licomp-dwheeler { }; + + licomp-gnuguide = callPackage ../development/python-modules/licomp-gnuguide { }; + + licomp-hermione = callPackage ../development/python-modules/licomp-hermione { }; + + licomp-osadl = callPackage ../development/python-modules/licomp-osadl { }; + + licomp-oslc-handbook = callPackage ../development/python-modules/licomp-oslc-handbook { }; + + licomp-proprietary = callPackage ../development/python-modules/licomp-proprietary { }; + + licomp-reclicense = callPackage ../development/python-modules/licomp-reclicense { }; + + licomp-toolkit = callPackage ../development/python-modules/licomp-toolkit { }; + lida = callPackage ../development/python-modules/lida { }; lief = (toPythonModule (pkgs.lief.override { python3 = python; })).py; @@ -12139,6 +12169,8 @@ self: super: with self; { os-service-types = callPackage ../development/python-modules/os-service-types { }; + osadl-matrix = callPackage ../development/python-modules/osadl-matrix/default.nix { }; + osc = callPackage ../development/python-modules/osc { }; osc-diagram = callPackage ../development/python-modules/osc-diagram { }; @@ -18042,6 +18074,8 @@ self: super: with self; { sievelib = callPackage ../development/python-modules/sievelib { }; + sigima = callPackage ../development/python-modules/sigima { }; + signalrcore = callPackage ../development/python-modules/signalrcore { }; signalslot = callPackage ../development/python-modules/signalslot { }; @@ -18536,6 +18570,8 @@ self: super: with self; { spdx = callPackage ../development/python-modules/spdx { }; + spdx-license-list = callPackage ../development/python-modules/spdx-license-list { }; + spdx-tools = callPackage ../development/python-modules/spdx-tools { }; speak2mary = callPackage ../development/python-modules/speak2mary { }; @@ -18602,6 +18638,8 @@ self: super: with self; { sphinx-fortran = callPackage ../development/python-modules/sphinx-fortran { }; + sphinx-gallery = callPackage ../development/python-modules/sphinx-gallery { }; + sphinx-inline-tabs = callPackage ../development/python-modules/sphinx-inline-tabs { }; sphinx-intl = callPackage ../development/python-modules/sphinx-intl { };