diff --git a/doc/redirects.json b/doc/redirects.json index bb9f1188f88a..9828b36fc2d8 100644 --- a/doc/redirects.json +++ b/doc/redirects.json @@ -237,6 +237,9 @@ "sec-meta-identifiers-cpe": [ "index.html#sec-meta-identifiers-cpe" ], + "sec-meta-identifiers-purl": [ + "index.html#sec-meta-identifiers-purl" + ], "sec-modify-via-packageOverrides": [ "index.html#sec-modify-via-packageOverrides" ], @@ -658,6 +661,15 @@ "var-meta-identifiers-possibleCPEs": [ "index.html#var-meta-identifiers-possibleCPEs" ], + "var-meta-identifiers-purl": [ + "index.html#var-meta-identifiers-purl" + ], + "var-meta-identifiers-purlParts": [ + "index.html#var-meta-identifiers-purlParts" + ], + "var-meta-identifiers-purls": [ + "index.html#var-meta-identifiers-purls" + ], "var-meta-teams": [ "index.html#var-meta-teams" ], diff --git a/doc/release-notes/rl-2511.section.md b/doc/release-notes/rl-2511.section.md index cc33de7809e8..4862081c6529 100644 --- a/doc/release-notes/rl-2511.section.md +++ b/doc/release-notes/rl-2511.section.md @@ -236,6 +236,8 @@ +- Metadata identifier purl (Package URL, https://github.com/package-url/purl-spec) has been added for fetchgit, fetchpypi and fetchFromGithub fetchers and mkDerivation has been adjusted to reuse these informations. Package URL's enables a reliable identification and locatization of software packages. Maintainers of derivations using the adopted fetchers should rely on the `drv.src.meta.identifiers.v1.purl` default identifier and can enhance their `drv.meta.identifiers.v1.purls` list once they would like to have additional identifiers. Maintainers using fetchurl for `drv.src` are urged to adopt their `drv.meta.identifiers.purlParts` for proper identification. + - Added `rewriteURL` attribute to the nixpkgs `config`, to allow for rewriting the URLs downloaded by `fetchurl`. - Added `hashedMirrors` attribute to the nixpkgs `config`, to allow for customization of the hashed mirrors used by `fetchurl`. diff --git a/doc/stdenv/meta.chapter.md b/doc/stdenv/meta.chapter.md index 947009869ff1..55727bb84b8b 100644 --- a/doc/stdenv/meta.chapter.md +++ b/doc/stdenv/meta.chapter.md @@ -319,3 +319,22 @@ A readonly attribute that concatenates all CPE parts in one string. #### `meta.identifiers.possibleCPEs` {#var-meta-identifiers-possibleCPEs} A readonly attribute containing the list of guesses for what CPE for this package can look like. It includes all variants of version handling mentioned above. Each item is an attrset with attributes `cpeParts` and `cpe` for each guess. + +### Package URL {#sec-meta-identifiers-purl} + +[Package-URL](https://github.com/package-url/purl-spec) (PURL) is a specification to reliably identify and locate software packages. Through identification of software packages, additional (non-major) use cases are e.g. software license cross-verification via third party databases or initial vulnerability response management. Package URL's default to the mkDerivation.src, as the original consumed software package is the single point of truth. + +#### `meta.identifiers.purlParts` {#var-meta-identifiers-purlParts} + +This attribute contains an attribute set of all parts of the PURL for this package. + +* `type` mandatory [type](https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/docs/standard/summary.md) which needs to be provided +* `spec` specify the PURL in accordance with the [purl-spec](https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/purl-specification.md) + +#### `meta.identifiers.purl` {#var-meta-identifiers-purl} + +An extendable attribute which is built based on purlParts. It is the main identifier, consumers should consider using the PURL's list interface to be prepared for edge cases. + +#### `meta.identifiers.purls` {#var-meta-identifiers-purls} + +An extendable attribute list which defaults to a single element equal to the main PURL. It provides an interface for additional identifiers of mkDerivation.src and / or vendored dependencies inside mkDerivation.src, which maintainers can conciously decide to use on top. Identifiers different to the default src identifier are not recommended by default as they might cause maintenance overhead or may diverge (e.g. differences between source distribution pkg:github and binary distribution like pkg:pypi). diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix index 18422951f78b..181471838a87 100644 --- a/pkgs/applications/editors/android-studio/default.nix +++ b/pkgs/applications/editors/android-studio/default.nix @@ -24,8 +24,8 @@ let sha256Hash = "sha256-KrKUsA7wFeI7IBa9VOp+MERqWIiMnNzLFO8oF0rCiIw="; }; latestVersion = { - version = "2025.2.1.5"; # "Android Studio Otter | 2025.2.1 Canary 5" - sha256Hash = "sha256-Slpp29OMpG4i/9ykYBF/KMwnBgOTSuqObZrfdcMfDbQ="; + version = "2025.2.2.1"; # "Android Studio Otter 2 Feature Drop | 2025.2.2 Canary 1" + sha256Hash = "sha256-sSp9IpGpo7pE0x7C5wSmZiGKt2uLoUlNVh7NHF4j/N4="; }; in { diff --git a/pkgs/applications/emulators/libretro/cores/ppsspp.nix b/pkgs/applications/emulators/libretro/cores/ppsspp.nix index cb789b79d809..2ac064a36510 100644 --- a/pkgs/applications/emulators/libretro/cores/ppsspp.nix +++ b/pkgs/applications/emulators/libretro/cores/ppsspp.nix @@ -13,13 +13,13 @@ }: mkLibretroCore { core = "ppsspp"; - version = "0-unstable-2025-09-30"; + version = "0-unstable-2025-10-17"; src = fetchFromGitHub { owner = "hrydgard"; repo = "ppsspp"; - rev = "2f4b1adc98d36a4d3fdd0a413d65a7a0b306ed4c"; - hash = "sha256-9azuw2uCwc1cpqnrqCBGp4uS2AHOc2gBJIaOTSullvs="; + rev = "4ccf013d3b52314b935d8fc49b70f08d546aa48b"; + hash = "sha256-e1iqnhJQKYXddp3VwpAPg6eHBnDHOFvo1b4evp8f8X4="; fetchSubmodules = true; }; diff --git a/pkgs/applications/emulators/libretro/cores/vba-m.nix b/pkgs/applications/emulators/libretro/cores/vba-m.nix index 04b25cbcedca..613861b185e5 100644 --- a/pkgs/applications/emulators/libretro/cores/vba-m.nix +++ b/pkgs/applications/emulators/libretro/cores/vba-m.nix @@ -5,13 +5,13 @@ }: mkLibretroCore { core = "vbam"; - version = "0-unstable-2024-10-21"; + version = "0-unstable-2025-10-17"; src = fetchFromGitHub { owner = "libretro"; repo = "vbam-libretro"; - rev = "379dd97301458a51fb69dd93ba21b64f81e01ef2"; - hash = "sha256-UbXSHdKfa91MpcYityo+aILbI0DfkLqZh8YfGcRx/BI="; + rev = "badf47c0e050983e44ac1217033283ca78313298"; + hash = "sha256-PwqwG+YMgdWNMoWx0mdUIBebQBMgaFd8BiI27xSUhps="; }; makefile = "Makefile"; diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix index 45c7599b1c74..8e0c31334263 100644 --- a/pkgs/build-support/fetchgit/default.nix +++ b/pkgs/build-support/fetchgit/default.nix @@ -190,7 +190,18 @@ lib.makeOverridable ( "FETCHGIT_HTTP_PROXIES" ]; - inherit preferLocalBuild meta allowedRequisites; + inherit preferLocalBuild allowedRequisites; + + meta = meta // { + identifiers = { + purlParts = { + type = "generic"; + # https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/types-doc/generic-definition.md + spec = "${name}?vcs_url=${url}@${(lib.revOrTag rev tag)}"; + }; + } + // meta.identifiers or { }; + }; passthru = { gitRepoUrl = url; diff --git a/pkgs/build-support/fetchgithub/default.nix b/pkgs/build-support/fetchgithub/default.nix index dfe210f32c41..a1235cd6e836 100644 --- a/pkgs/build-support/fetchgithub/default.nix +++ b/pkgs/build-support/fetchgithub/default.nix @@ -47,11 +47,28 @@ lib.makeOverridable ( meta // { homepage = meta.homepage or baseUrl; + identifiers = { + purlParts = + if githubBase == "github.com" then + { + type = "github"; + # https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/types-doc/github-definition.md + spec = "${owner}/${repo}@${(lib.revOrTag rev tag)}"; + } + else + { + type = "generic"; + # https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/types-doc/generic-definition.md + spec = "${repo}?vcs_url=https://${githubBase}/${owner}/${repo}@${(lib.revOrTag rev tag)}"; + }; + } + // meta.identifiers or { }; } // lib.optionalAttrs (position != null) { # to indicate where derivation originates, similar to make-derivation.nix's mkDerivation position = "${position.file}:${toString position.line}"; }; + passthruAttrs = removeAttrs args [ "owner" "repo" @@ -155,12 +172,12 @@ lib.makeOverridable ( // passthruAttrs // { inherit name; + meta = newMeta; }; in fetcher fetcherArgs // { - meta = newMeta; inherit owner repo tag; rev = revWithTag; } diff --git a/pkgs/build-support/fetchpypi/default.nix b/pkgs/build-support/fetchpypi/default.nix index d291c57429c1..2d4f7e5a6391 100644 --- a/pkgs/build-support/fetchpypi/default.nix +++ b/pkgs/build-support/fetchpypi/default.nix @@ -51,6 +51,8 @@ makeOverridable ( format ? "setuptools", sha256 ? "", hash ? "", + pname, + version, ... }@attrs: let @@ -60,8 +62,20 @@ makeOverridable ( "hash" ] ); + meta = { + identifiers.purlParts = { + type = "pypi"; + # https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/types-doc/pypi-definition.md + spec = "${pname}@${version}"; + }; + }; in fetchurl { - inherit url sha256 hash; + inherit + url + sha256 + hash + meta + ; } ) diff --git a/pkgs/by-name/an/angular-language-server/package.nix b/pkgs/by-name/an/angular-language-server/package.nix index 54219bea2d4b..9e5375612f96 100644 --- a/pkgs/by-name/an/angular-language-server/package.nix +++ b/pkgs/by-name/an/angular-language-server/package.nix @@ -16,11 +16,11 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "angular-language-server"; - version = "20.2.2"; + version = "20.3.0"; src = fetchurl { name = "angular-language-server-${finalAttrs.version}.zip"; url = "https://github.com/angular/vscode-ng-language-service/releases/download/v${finalAttrs.version}/ng-template.vsix"; - hash = "sha256-2I5Pmd05zNGjM15tFo2yw6AGUKp3zxufVcoe4oSAO5U="; + hash = "sha256-o3e2qVKw/sfnFHbHHdRlB9UjEx1KLD1KVoaAsnlYjmY="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/br/bruijn/generated.nix b/pkgs/by-name/br/bruijn/generated.nix index 6dce2ef52efd..6ca9c88dd9c0 100644 --- a/pkgs/by-name/br/bruijn/generated.nix +++ b/pkgs/by-name/br/bruijn/generated.nix @@ -24,8 +24,8 @@ mkDerivation { pname = "bruijn"; version = "0.1.0.0"; src = fetchzip { - url = "https://github.com/marvinborner/bruijn/archive/31ba54046e33618905fc99e0b079bd3aa2594284.tar.gz"; - sha256 = "11b3i32y36i29haym4agn1pgik20byldihgs2qsi5p7vy17z0a78"; + url = "https://github.com/marvinborner/bruijn/archive/3e9636b4c0c37f5c5df509e30fb37564464e5850.tar.gz"; + sha256 = "0pk6vyw03ys0jp1na0m3kz5k0x4xqr9zcna8c53dzkzlk5h5d85z"; }; isLibrary = true; isExecutable = true; diff --git a/pkgs/by-name/br/bruijn/version.txt b/pkgs/by-name/br/bruijn/version.txt index 758d57bf33ac..ab71cfe80a63 100644 --- a/pkgs/by-name/br/bruijn/version.txt +++ b/pkgs/by-name/br/bruijn/version.txt @@ -1 +1 @@ -0-unstable-2025-09-28 +0-unstable-2025-10-09 diff --git a/pkgs/by-name/co/cosmic-ext-applet-caffeine/package.nix b/pkgs/by-name/co/cosmic-ext-applet-caffeine/package.nix index 306b8fd12279..a508e77d7565 100644 --- a/pkgs/by-name/co/cosmic-ext-applet-caffeine/package.nix +++ b/pkgs/by-name/co/cosmic-ext-applet-caffeine/package.nix @@ -9,16 +9,16 @@ }: rustPlatform.buildRustPackage { pname = "cosmic-ext-applet-caffeine"; - version = "0-unstable-2025-09-29"; + version = "0-unstable-2025-10-16"; src = fetchFromGitHub { owner = "tropicbliss"; repo = "cosmic-ext-applet-caffeine"; - rev = "a43db670e03894ff402fa19eec3d60f7c7bf663c"; - hash = "sha256-0hIc62FdjIGU028z8/WCx2q317e+PCA25CSibBVi/p0="; + rev = "0b50a109495d02ab8c99a501d2dd7575c6fabc1b"; + hash = "sha256-Z84LqsPVGd7PfOUmC1iJWgTGrl6FicaxZHwTZmgmAyk="; }; - cargoHash = "sha256-nl/giMIQ5xNSOgjv67OMWkfuAVtdIcqZDbXC1mYwXBM="; + cargoHash = "sha256-TC7WNJUxGZpfDbDgnifBSZM7SvN2/Iw0HRXWPDXnDBM="; nativeBuildInputs = [ libcosmicAppHook diff --git a/pkgs/by-name/co/cosmic-reader/package.nix b/pkgs/by-name/co/cosmic-reader/package.nix index 02f84e4ea9a1..f865177284e3 100644 --- a/pkgs/by-name/co/cosmic-reader/package.nix +++ b/pkgs/by-name/co/cosmic-reader/package.nix @@ -19,13 +19,13 @@ }: rustPlatform.buildRustPackage (finalAttrs: { pname = "cosmic-reader"; - version = "0-unstable-2025-10-09"; + version = "0-unstable-2025-10-12"; src = fetchFromGitHub { owner = "pop-os"; repo = "cosmic-reader"; - rev = "8d02b136b0b558de09a2de0c99511a8bf0bb99cd"; - hash = "sha256-ldmrn2R6gZ+heXARqsMShWCDazH8MGA9Rm2M65T1aqI="; + rev = "35bf8c556bbff415e1149d7cbf267d2b6ff6f300"; + hash = "sha256-721Y1VbBPWMXcH8rt5AyO2GFV1Q70kHnG4TAPmeX414="; }; cargoHash = "sha256-4ofAtZN3FpYwNahinldALbdEJA5lDwa+CUsVIISnSTc="; diff --git a/pkgs/by-name/el/eloquent/package.nix b/pkgs/by-name/el/eloquent/package.nix index cca2f7d875ba..ec5117a6736b 100644 --- a/pkgs/by-name/el/eloquent/package.nix +++ b/pkgs/by-name/el/eloquent/package.nix @@ -28,14 +28,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "eloquent"; - version = "1.2"; + version = "1.3"; src = fetchFromGitHub { owner = "sonnyp"; repo = "Eloquent"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-I4AQZl1zoZPhOwDR1uYNJTMRq5vQHPvyimC8OUAe+vY="; + hash = "sha256-+XAiRB5dRq2A2XP9ZdmIfxLjhCXb72TXRxnLnOprNT4="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/i3/i3pystatus/package.nix b/pkgs/by-name/i3/i3pystatus/package.nix index 84b5809f9420..46c1d229cee5 100644 --- a/pkgs/by-name/i3/i3pystatus/package.nix +++ b/pkgs/by-name/i3/i3pystatus/package.nix @@ -7,13 +7,14 @@ python3Packages, unstableGitUpdater, fetchpatch2, + writableTmpDirAsHomeHook, extraLibs ? [ ], }: python3Packages.buildPythonApplication rec { # i3pystatus moved to rolling release: # https://github.com/enkore/i3pystatus/issues/584 - version = "3.35-unstable-2024-06-13"; + version = "3.35-unstable-2025-06-24"; pname = "i3pystatus"; pyproject = true; build-system = [ python3Packages.setuptools ]; @@ -21,8 +22,8 @@ python3Packages.buildPythonApplication rec { src = fetchFromGitHub { owner = "enkore"; repo = "i3pystatus"; - rev = "f3c539ad78ad1c54fc36e8439bf3905a784ccb34"; - hash = "sha256-3AGREY+elHQk8kaoFp8AHEzk2jNC/ICGYPh2hXo2G/w="; + rev = "e8e03934d95658c85fa9f594987dac0481ca26c9"; + hash = "sha256-uAt6jxNAUR9txyPtHS4BRtu8Z5QaP6uqFg0sROf356c="; }; patches = [ @@ -41,7 +42,10 @@ python3Packages.buildPythonApplication rec { libnotify ]; - nativeCheckInputs = [ python3Packages.pytestCheckHook ]; + nativeCheckInputs = [ + python3Packages.pytestCheckHook + writableTmpDirAsHomeHook + ]; checkInputs = [ python3Packages.requests ]; diff --git a/pkgs/by-name/jq/jq/package.nix b/pkgs/by-name/jq/jq/package.nix index b2a0941a79fe..5ad75de67faf 100644 --- a/pkgs/by-name/jq/jq/package.nix +++ b/pkgs/by-name/jq/jq/package.nix @@ -134,5 +134,9 @@ stdenv.mkDerivation (finalAttrs: { ]; platforms = lib.platforms.unix; mainProgram = "jq"; + identifiers.purlParts = { + type = "github"; + spec = "jqlang/jq@jq-${finalAttrs.version}"; + }; }; }) diff --git a/pkgs/by-name/ki/kissat/package.nix b/pkgs/by-name/ki/kissat/package.nix index 29d4520c31db..7940d96d0038 100644 --- a/pkgs/by-name/ki/kissat/package.nix +++ b/pkgs/by-name/ki/kissat/package.nix @@ -25,13 +25,13 @@ let in stdenv.mkDerivation rec { pname = "kissat"; - version = "4.0.3"; + version = "4.0.4"; src = fetchFromGitHub { owner = "arminbiere"; repo = "kissat"; rev = "rel-${version}"; - sha256 = "sha256-IlMHtsEYafpbCNZfbeJo1JS5S5qcZQt1aDWjv+xxoqM="; + sha256 = "sha256-hgB1U2Pmh1hEyNA3ej3fXxxf0YjCRgtOuSddRl6s0eo="; }; outputs = [ diff --git a/pkgs/by-name/ko/kokkos/package.nix b/pkgs/by-name/ko/kokkos/package.nix index 51ec26644676..541c5294e0b3 100644 --- a/pkgs/by-name/ko/kokkos/package.nix +++ b/pkgs/by-name/ko/kokkos/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "kokkos"; - version = "4.7.00"; + version = "4.7.01"; src = fetchFromGitHub { owner = "kokkos"; repo = "kokkos"; rev = finalAttrs.version; - hash = "sha256-KCGUv6SnTfKiWw0zzvKgiggANPCxSQY8bmqQT4xTMb8="; + hash = "sha256-l5vSYaUtavQLjBSbKHGK2/JtgKzO2KD5+mcPPnWKNkI="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/li/libphonenumber/package.nix b/pkgs/by-name/li/libphonenumber/package.nix index 6fed03109a4f..59f49425cb65 100644 --- a/pkgs/by-name/li/libphonenumber/package.nix +++ b/pkgs/by-name/li/libphonenumber/package.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libphonenumber"; - version = "9.0.15"; + version = "9.0.16"; src = fetchFromGitHub { owner = "google"; repo = "libphonenumber"; tag = "v${finalAttrs.version}"; - hash = "sha256-JpQ9I6Bm6HbRYDGZYkif/IWK6PXhGeTl2yY+K3ydLqI="; + hash = "sha256-+WXxeRsL++60VstR7GN7alrLG0rOQJbtrC7qaZaOPlY="; }; patches = [ diff --git a/pkgs/by-name/ok/okms-cli/package.nix b/pkgs/by-name/ok/okms-cli/package.nix index 9e06126fd3e2..9d66557ab71c 100644 --- a/pkgs/by-name/ok/okms-cli/package.nix +++ b/pkgs/by-name/ok/okms-cli/package.nix @@ -8,16 +8,16 @@ buildGoModule (finalAttrs: { pname = "okms-cli"; - version = "0.3.5"; + version = "0.4.0"; src = fetchFromGitHub { owner = "ovh"; repo = "okms-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-zYhK2ulFVw7XlhoKrN9JoZg8lUFisfKS/Iez+Ll0eME="; + hash = "sha256-XW+otYeEQAuPVOXI6unTi28vn6dvpO7aVkr2bZ039Mk="; }; - vendorHash = "sha256-LFZ4dsWnODHLFc6k7p+Rd3zR0befCSOZLanwUFIWRl0="; + vendorHash = "sha256-GxHOWJcRBBHVm/RLeXChSDg59sX6dnO+yKyNEvUNup4="; ldflags = [ "-s" diff --git a/pkgs/by-name/ov/ovhcloud-cli/package.nix b/pkgs/by-name/ov/ovhcloud-cli/package.nix index 664f04528818..5e6cd30d88ee 100644 --- a/pkgs/by-name/ov/ovhcloud-cli/package.nix +++ b/pkgs/by-name/ov/ovhcloud-cli/package.nix @@ -8,13 +8,13 @@ buildGoModule (finalAttrs: { pname = "ovhcloud-cli"; - version = "0.6.0"; + version = "0.7.1"; src = fetchFromGitHub { owner = "ovh"; repo = "ovhcloud-cli"; tag = "v${finalAttrs.version}"; - hash = "sha256-ZW/o9YpENWmiBYRy+gPQyLM00QM6f+Ym7IFSeArqZ64="; + hash = "sha256-pps6PuaIJxZ0ewrBXgq4TnICOW3wjHJQDDmcQUfYDNg="; }; vendorHash = "sha256-WNONEceR/cDVloosQ/BMYjPTk9elQ1oTX89lgzENSAI="; diff --git a/pkgs/by-name/po/popt/package.nix b/pkgs/by-name/po/popt/package.nix index eb9e4f3685ed..c40e17228f54 100644 --- a/pkgs/by-name/po/popt/package.nix +++ b/pkgs/by-name/po/popt/package.nix @@ -49,5 +49,9 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ qyliss ]; license = licenses.mit; platforms = platforms.unix; + identifiers.purlParts = { + type = "github"; + spec = "rpm-software-management/popt@popt-${version}-release"; + }; }; } diff --git a/pkgs/by-name/qu/quisk/package.nix b/pkgs/by-name/qu/quisk/package.nix index 79079cd67322..82bdbce848ca 100644 --- a/pkgs/by-name/qu/quisk/package.nix +++ b/pkgs/by-name/qu/quisk/package.nix @@ -9,12 +9,12 @@ python3.pkgs.buildPythonApplication rec { pname = "quisk"; - version = "4.2.44"; + version = "4.2.46"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-OSGrLbCS255e/btagD7RCVpLpyIX1jveeJnzIwyegH4="; + hash = "sha256-Tp6ctOZLGYyRe3q5EU1dZjAZTCXTsHywFzE5jKF2Ssc="; }; buildInputs = [ diff --git a/pkgs/by-name/sh/shader-slang/package.nix b/pkgs/by-name/sh/shader-slang/package.nix index 699824fb99cc..1331cccf20f1 100644 --- a/pkgs/by-name/sh/shader-slang/package.nix +++ b/pkgs/by-name/sh/shader-slang/package.nix @@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "shader-slang"; - version = "2025.19"; + version = "2025.19.1"; src = fetchFromGitHub { owner = "shader-slang"; repo = "slang"; tag = "v${finalAttrs.version}"; - hash = "sha256-WG+yW76iFrrYFldCp85LcbwQ8cz61NkAvdlvIfaPgac="; + hash = "sha256-mbtyvPM3dtIZRU9dWMCZ/XCf2mDAPuJMhagMLgFsdWI="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/sw/swiftlint/package.nix b/pkgs/by-name/sw/swiftlint/package.nix index 99c0f63474ae..6de5c097e849 100644 --- a/pkgs/by-name/sw/swiftlint/package.nix +++ b/pkgs/by-name/sw/swiftlint/package.nix @@ -8,11 +8,11 @@ }: stdenvNoCC.mkDerivation rec { pname = "swiftlint"; - version = "0.61.0"; + version = "0.62.1"; src = fetchurl { url = "https://github.com/realm/SwiftLint/releases/download/${version}/portable_swiftlint.zip"; - hash = "sha256-I0LzeEMHoCEX4Y90X801DGrMbKsOUhwMDgHDKlOjsnQ="; + hash = "sha256-VB20vZT4z4+6q3YvWX5/DkkBan+MpccNhrQ3CnzSNkE="; }; dontPatch = true; diff --git a/pkgs/by-name/sy/syft/package.nix b/pkgs/by-name/sy/syft/package.nix index 32cfb2219905..a91dd0b252fa 100644 --- a/pkgs/by-name/sy/syft/package.nix +++ b/pkgs/by-name/sy/syft/package.nix @@ -8,13 +8,13 @@ buildGoModule rec { pname = "syft"; - version = "1.33.0"; + version = "1.34.0"; src = fetchFromGitHub { owner = "anchore"; repo = "syft"; tag = "v${version}"; - hash = "sha256-S7PvaLjrd6W7AyCgi8yAC0kjFwVxpf/FlzyOq3yvayE="; + hash = "sha256-J9ia5VjEItwDS2YjKAGAuQTTig5IIQA70yBYM/2r4B4="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -29,7 +29,7 @@ buildGoModule rec { # hash mismatch with darwin proxyVendor = true; - vendorHash = "sha256-JppXYoge4hK5hw2O2KSRL1n/UX/bc2LmGEzwQW6xD44="; + vendorHash = "sha256-r1P3dWNiVLDFLJ5IM/VHdMTDS/Yh+pb8VODxEnmxmks="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix index 13b1120e82ae..98e8494cd0a2 100644 --- a/pkgs/development/python-modules/hcloud/default.nix +++ b/pkgs/development/python-modules/hcloud/default.nix @@ -10,12 +10,12 @@ buildPythonPackage rec { pname = "hcloud"; - version = "2.8.0"; + version = "2.9.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-5ehqw5qERzR5+RCetWgu9npjdMFDHRWMO/dEMqCIPSs="; + hash = "sha256-MkYvojUd20ehps6whNcMg1hRgiTkS04Bl/LlwPZ62O8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix index 836ee2f3f183..e773b843a894 100644 --- a/pkgs/development/python-modules/pymc/default.nix +++ b/pkgs/development/python-modules/pymc/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchpatch2, # build-system setuptools, @@ -23,26 +22,16 @@ buildPythonPackage rec { pname = "pymc"; - version = "5.25.1"; + version = "5.26.0"; pyproject = true; src = fetchFromGitHub { owner = "pymc-devs"; repo = "pymc"; tag = "v${version}"; - hash = "sha256-zh6FsCEviuyqapguTrUDsWKq70ef0IKRhnn2dkgQ/KA="; + hash = "sha256-RN/7xO8aq8mWW2/48Ve1KTq3q1GWMZpMxv8w6yco/GE="; }; - patches = [ - # TODO: remove at next release - # https://github.com/pymc-devs/pytensor/pull/1471 - (fetchpatch2 { - name = "pytensor-2-32-compat"; - url = "https://github.com/pymc-devs/pymc/commit/59176b6adda88971e546a0cf93ca04424af5197f.patch"; - hash = "sha256-jkDwlKwxbn9DwpkxEbSXk/kbGjT/Xu8bsZHFBWYpMgA="; - }) - ]; - build-system = [ setuptools versioneer diff --git a/pkgs/development/python-modules/pytransportnswv2/default.nix b/pkgs/development/python-modules/pytransportnswv2/default.nix index 4cb73305c023..c5c4f4d922fb 100644 --- a/pkgs/development/python-modules/pytransportnswv2/default.nix +++ b/pkgs/development/python-modules/pytransportnswv2/default.nix @@ -10,13 +10,13 @@ buildPythonPackage rec { pname = "pytransportnswv2"; - version = "2.0.7"; + version = "2.0.8"; pyproject = true; src = fetchPypi { pname = "PyTransportNSWv2"; inherit version; - hash = "sha256-TuLcOjP8ij9+FsaGqeukPFQDS2QRRxFMsXPfrqaq+ec="; + hash = "sha256-+hE5onXQ/Isv+U7y9+CphpYTOW7CsMxR7M8jZS1djSs="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/torch-geometric/default.nix b/pkgs/development/python-modules/torch-geometric/default.nix index 35e96a4ca46d..18800e8304b9 100644 --- a/pkgs/development/python-modules/torch-geometric/default.nix +++ b/pkgs/development/python-modules/torch-geometric/default.nix @@ -246,6 +246,10 @@ buildPythonPackage rec { # RuntimeError: Boolean value of Tensor with more than one value is ambiguous "test_feature_store" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # NotImplementedError: The operator 'aten::logspace.out' is not currently implemented for the MPS device. + "test_positional_encoding" ]; meta = { diff --git a/pkgs/development/ruby-modules/gem/default.nix b/pkgs/development/ruby-modules/gem/default.nix index 10ea06c415bd..f6a9e25bf042 100644 --- a/pkgs/development/ruby-modules/gem/default.nix +++ b/pkgs/development/ruby-modules/gem/default.nix @@ -77,6 +77,13 @@ lib.makeOverridable ( attrs.source.remotes or [ "https://rubygems.org" ] ); inherit (attrs.source) sha256; + meta = { + identifiers.purlParts = { + type = "gem"; + # https://github.com/package-url/purl-spec/blob/18fd3e395dda53c00bc8b11fe481666dc7b3807a/types-doc/gem-definition.md + spec = "${gemName}@${version}?platform=${platform}"; + }; + }; } else if type == "git" then fetchgit { diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 1a3e65ea650d..3a35b750d5f3 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -34,6 +34,8 @@ let toList isList elem + flatten + filter ; inherit (lib.meta) @@ -299,7 +301,7 @@ let let expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + missingOutputs = filter (output: !builtins.elem output actualOutputs) expectedOutputs; in '' The package ${getNameWithVersion attrs} has set meta.outputsToInstall to: ${builtins.concatStringsSep ", " expectedOutputs} @@ -475,7 +477,7 @@ let let expectedOutputs = attrs.meta.outputsToInstall or [ ]; actualOutputs = attrs.outputs or [ "out" ]; - missingOutputs = builtins.filter (output: !builtins.elem output actualOutputs) expectedOutputs; + missingOutputs = filter (output: !builtins.elem output actualOutputs) expectedOutputs; in if config.checkMeta then builtins.length missingOutputs > 0 else false; @@ -710,14 +712,54 @@ let cpe = makeCPE guessedParts; } ) possibleCPEPartsFuns; + + purlParts = attrs.meta.identifiers.purlParts or { }; + purlPartsFormatted = + if purlParts ? type && purlParts ? spec then "pkg:${purlParts.type}/${purlParts.spec}" else null; + + # search for a PURL in the following order: + purl = + # 1) locally set through API + if purlPartsFormatted != null then + purlPartsFormatted + else + # 2) locally overwritten through meta.identifiers.purl + (attrs.src.meta.identifiers.purl or null); + + # search for a PURL in the following order: + purls = + # 1) locally overwritten through meta.identifiers.purls (e.g. extension of list) + attrs.meta.identifiers.purls or ( + # 2) locally set through API + if purlPartsFormatted != null then + [ purlPartsFormatted ] + else + # 3) src.meta.PURL + (attrs.src.meta.identifiers.purls or ( + # 4) srcs.meta.PURL + if !attrs ? srcs then + [ ] + else if isList attrs.srcs then + concatMap (drv: drv.meta.identifiers.purls or [ ]) attrs.srcs + else + attrs.srcs.meta.identifiers.purls or [ ] + ) + ) + ); + v1 = { - inherit cpeParts possibleCPEs; + inherit + cpeParts + possibleCPEs + purls + ; ${if cpe != null then "cpe" else null} = cpe; + ${if purl != null then "purl" else null} = purl; }; in v1 // { - inherit v1; + inherit v1 purlParts; }; # Expose the result of the checks for everyone to see.