apptainer, singularity: deprecate workarounds for vendorHash overriding (#352756)

Changed files
+25 -6
doc
release-notes
pkgs
applications
virtualization
singularity
+4
doc/release-notes/rl-2505.section.md
···
- `services.rippleDataApi` has been removed, as `ripple-data-api` was broken and had not been updated since 2022.
+
- `apptainer` and `singularity` deprecate the workaround of overriding `vendorHash` and related attributes via `<pkg>.override`,
+
in favour of the unified overriding of the same group of attributes via `<pkg>.overrideAttrs`.
+
The compatibility layer will be removed in future releases.
+
- `squid` has been updated to version 7, this release includes multiple breaking changes, like ESI removal.
For more information, [check the release notes](https://github.com/squid-cache/squid/releases/tag/SQUID_7_0_1).
+21 -6
pkgs/applications/virtualization/singularity/generic.nix
···
let
# Backward compatibility layer for the obsolete workaround of
# the "vendor-related attributes not overridable" issue (#86349),
-
# whose solution is merged and released.
+
# whose solution (#225051) is merged and released.
+
# TODO(@ShamrockLee): Remove after the Nixpkgs 25.05 branch-off.
_defaultGoVendorArgs = {
inherit vendorHash deleteVendor proxyVendor;
};
···
# "path/to/source/file1" = [ "<originalDefaultPath11>" "<originalDefaultPath12>" ... ];
# }
sourceFilesWithDefaultPaths ? { },
-
# Workaround #86349
-
# should be removed when the issue is resolved
-
vendorHash ? _defaultGoVendorArgs.vendorHash,
-
deleteVendor ? _defaultGoVendorArgs.deleteVendor,
-
proxyVendor ? _defaultGoVendorArgs.proxyVendor,
+
# Placeholders for the obsolete workaround of #86349
+
# TODO(@ShamrockLee): Remove after the Nixpkgs 25.05 branch-off.
+
vendorHash ? null,
+
deleteVendor ? null,
+
proxyVendor ? null,
}@args:
let
+
# Backward compatibility layer for the obsolete workaround of #86349
+
# TODO(@ShamrockLee): Convert to simple inheritance after the Nixpkgs 25.05 branch-off.
+
moduleArgsOverridingCompat =
+
argName:
+
if args.${argName} or null == null then
+
_defaultGoVendorArgs.${argName}
+
else
+
lib.warn
+
"${projectName}: Override ${argName} with .override is deprecated. Use .overrideAttrs instead."
+
args.${argName};
+
vendorHash = moduleArgsOverridingCompat "vendorHash";
+
deleteVendor = moduleArgsOverridingCompat "deleteVendor";
+
proxyVendor = moduleArgsOverridingCompat "proxyVendor";
+
addShellDoubleQuotes = s: lib.escapeShellArg ''"'' + s + lib.escapeShellArg ''"'';
in
(buildGoModule {