diff --git a/ci/OWNERS b/ci/OWNERS index e6e3bb388348d..e2153236ced0f 100644 --- a/ci/OWNERS +++ b/ci/OWNERS @@ -182,10 +182,10 @@ nixos/modules/installer/tools/nix-fallback-paths.nix @Artturin @Ericson2314 @lo /pkgs/by-name/an/android* @NixOS/android # Python-related code and docs -/doc/languages-frameworks/python.section.md @mweinelt @natsukium -/maintainers/scripts/update-python-libraries @mweinelt @natsukium -/pkgs/by-name/up/update-python-libraries @mweinelt @natsukium -/pkgs/development/interpreters/python @mweinelt @natsukium +/doc/languages-frameworks/python.section.md @mweinelt +/maintainers/scripts/update-python-libraries @mweinelt +/pkgs/by-name/up/update-python-libraries @mweinelt +/pkgs/development/interpreters/python @mweinelt # CUDA /pkgs/top-level/cuda-packages.nix @NixOS/cuda-maintainers diff --git a/doc/hooks/index.md b/doc/hooks/index.md index 7fb76b72953ed..63cc9b2ded649 100644 --- a/doc/hooks/index.md +++ b/doc/hooks/index.md @@ -34,6 +34,7 @@ nodejs-install-manuals.section.md npm-build-hook.section.md npm-config-hook.section.md npm-install-hook.section.md +openmp-check-hook.section.md patch-rc-path-hooks.section.md perl.section.md pkg-config.section.md diff --git a/doc/hooks/openmp-check-hook.section.md b/doc/hooks/openmp-check-hook.section.md new file mode 100644 index 0000000000000..5a5842eb5e294 --- /dev/null +++ b/doc/hooks/openmp-check-hook.section.md @@ -0,0 +1,10 @@ +# openmpCheckPhaseHook {#setup-hook-omp-check} + + +This hook can be used to setup a check phase that +requires running a OpenMP application. It mostly +serves to limit `OMP_NUM_THREADS` to avoid overloading +build machines. + +This hook will not attempt to override an already existing +definition of `OMP_NUM_THREADS` in the environment. diff --git a/doc/languages-frameworks/gnome.section.md b/doc/languages-frameworks/gnome.section.md index ecfda62b57007..7e9130218ca69 100644 --- a/doc/languages-frameworks/gnome.section.md +++ b/doc/languages-frameworks/gnome.section.md @@ -105,7 +105,7 @@ Given the requirements above, the package expression would become messy quickly: } ``` -Fortunately, we have a [family of hooks]{#ssec-gnome-hooks-wrapgappshook} that automate this. They work in conjunction with other setup hooks that populate environment variables, and will then wrap all executables in `bin` and `libexec` directories using said variables. +Fortunately, we have a [family of hooks]{#ssec-gnome-hooks-wrapgappshook} that automate this. They work in conjunction with other setup hooks that populate environment variables, and will then wrap all executables in `bin` and `libexec` directories using said variables. If a package has multiple outputs, these hooks will work on `outputBin` by default, or on the outputs listed in `wrapGAppsInOutputs` if set. - [`wrapGAppsHook3`]{#ssec-gnome-hooks-wrapgappshook3} for GTK 3 apps. For convenience, it also adds `dconf.lib` for a GIO module implementing a GSettings backend using `dconf`, `gtk3` for GSettings schemas, and `librsvg` for GdkPixbuf loader to the closure. - [`wrapGAppsHook4`]{#ssec-gnome-hooks-wrapgappshook4} for GTK 4 apps. Same as `wrapGAppsHook3` but replaces `gtk3` with `gtk4`. diff --git a/doc/preface.chapter.md b/doc/preface.chapter.md index a4ff07bf5a631..30722e9fcdaad 100644 --- a/doc/preface.chapter.md +++ b/doc/preface.chapter.md @@ -42,7 +42,7 @@ shows the status of tests for the `nixpkgs-unstable` channel. The tests are conducted by a cluster called [Hydra](https://nixos.org/hydra/), which also builds binary packages from the Nix expressions in Nixpkgs for -`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`. +`x86_64-linux`, `aarch64-linux`, and `aarch64-darwin`. The binaries are made available via a [binary cache](https://cache.nixos.org). The current Nix expressions of the channels are available in the diff --git a/doc/redirects.json b/doc/redirects.json index 75f5c3869764f..183986feb1d90 100644 --- a/doc/redirects.json +++ b/doc/redirects.json @@ -1130,6 +1130,9 @@ "x86_64-darwin-26.05": [ "release-notes.html#x86_64-darwin-26.05" ], + "x86_64-darwin-26.11": [ + "release-notes.html#x86_64-darwin-26.11" + ], "zip-files": [ "index.html#zip-files" ], @@ -2917,6 +2920,9 @@ "setup-hook-mpi-check": [ "index.html#setup-hook-mpi-check" ], + "setup-hook-omp-check": [ + "index.html#setup-hook-omp-check" + ], "ninja": [ "index.html#ninja" ], diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index dd9dc818c2973..923e3c4394eca 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -20,6 +20,17 @@ +- []{#x86_64-darwin-26.11} + + Support for `x86_64-darwin` has been dropped, due to Apple’s deprecation of the platform and limited build infrastructure and developer time. + We will no longer build packages for the platform or support building them from source. + + The Nixpkgs 26.05 stable branch will still maintain platform support and binaries will be built until it goes out of support at the end of 2026. + Users of `x86_64-darwin` will receive an error message explaining how to switch to 26.05. + + By the time of this release, Homebrew will offer only limited [Tier 3](https://docs.brew.sh/Support-Tiers#tier-3) support for the platform, but MacPorts will likely continue to support it for a long time. + We also recommend users consider installing NixOS, which should continue to run on essentially all Intel Macs, especially after Apple stops security support for macOS 26 in 2028. + - `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/doc/stdenv/cross-compilation.chapter.md b/doc/stdenv/cross-compilation.chapter.md index 18f3b2344607b..ea707ceba6778 100644 --- a/doc/stdenv/cross-compilation.chapter.md +++ b/doc/stdenv/cross-compilation.chapter.md @@ -50,7 +50,7 @@ The exact schema these fields follow is a bit ill-defined due to a long and conv `system` -: This is a two-component shorthand for the platform. Examples of this would be "x86_64-darwin" and "i686-linux"; see `lib.systems.doubles` for more. The first component corresponds to the CPU architecture of the platform and the second to the operating system of the platform (`[cpu]-[os]`). This format has built-in support in Nix, such as the `builtins.currentSystem` impure string. +: This is a two-component shorthand for the platform. Examples of this would be "aarch64-darwin" and "i686-linux"; see `lib.systems.doubles` for more. The first component corresponds to the CPU architecture of the platform and the second to the operating system of the platform (`[cpu]-[os]`). This format has built-in support in Nix, such as the `builtins.currentSystem` impure string. `config` diff --git a/doc/using/platform-support.chapter.md b/doc/using/platform-support.chapter.md index d5a985c90d352..061c1b128d426 100644 --- a/doc/using/platform-support.chapter.md +++ b/doc/using/platform-support.chapter.md @@ -29,8 +29,7 @@ Platform Tiers [4 through 7](https://github.com/NixOS/rfcs/blob/master/rfcs/0046 | `x86_64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ | | `aarch64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ | | `x86_64-unknown-unknown-freebsd` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ | -| `arm64-apple-darwin` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ❌\* | -| `x86_64-apple-darwin` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ❌\* | +| `arm64-apple-darwin` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ❌ | | `i686-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ | | `riscv32-unknown-linux-gnu` | [Tier 4](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-4) | None | ❌ | ❌ | ❌ | ✔️ | | `riscv64-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ | @@ -45,5 +44,3 @@ Platform Tiers [4 through 7](https://github.com/NixOS/rfcs/blob/master/rfcs/0046 | `powerpc64-unknown-linux-gnuabielfv2` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ | | `powerpc64le-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ | | `s390x-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ | - -\* - Cross compiling is only supported on Darwin hosts. diff --git a/flake.nix b/flake.nix index b8e348845bc8d..6c3321e8c7fee 100644 --- a/flake.nix +++ b/flake.nix @@ -220,17 +220,25 @@ evaluation. Evaluating the attribute value tends to require a significant amount of computation, even considering lazy evaluation. */ - legacyPackages = forAllSystems ( - system: - (import ./. { - inherit system; - overlays = import ./pkgs/top-level/impure-overlays.nix ++ [ - (final: prev: { - lib = prev.lib.extend libVersionInfoOverlay; - }) - ]; - }) - ); + legacyPackages = + let + # We include `x86_64-darwin` here to ensure that users get a + # good error message for the 26.11 deprecation of the platform, + # while excluding it from `lib.systems.flakeExposed` so that we + # don’t break `nix flake check` for downstream users. + forAllSystems' = lib.genAttrs (lib.systems.flakeExposed ++ [ "x86_64-darwin" ]); + in + forAllSystems' ( + system: + (import ./. { + inherit system; + overlays = import ./pkgs/top-level/impure-overlays.nix ++ [ + (final: prev: { + lib = prev.lib.extend libVersionInfoOverlay; + }) + ]; + }) + ); /** Optional modules that can be imported into a NixOS configuration. diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index d3e184320fbd1..3970b69735a99 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -14,14 +14,16 @@ let inherit (lib.attrsets) matchAttrs; all = [ + # our primary systems. at the top of the list for fastest matching + # inside check-meta + "x86_64-linux" + "aarch64-darwin" + "aarch64-linux" + # Cygwin "i686-cygwin" "x86_64-cygwin" - # Darwin - "x86_64-darwin" - "aarch64-darwin" - # FreeBSD "i686-freebsd" "x86_64-freebsd" @@ -38,8 +40,7 @@ let # JS "javascript-ghcjs" - # Linux - "aarch64-linux" + # Linux (excluding the primary two at the top) "arc-linux" "armv5tel-linux" "armv6l-linux" @@ -62,7 +63,6 @@ let "riscv64-linux" "s390-linux" "s390x-linux" - "x86_64-linux" # MMIXware "mmix-mmixware" diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix index 055f727d53c94..ab062f82bce32 100644 --- a/lib/systems/examples.nix +++ b/lib/systems/examples.nix @@ -332,12 +332,6 @@ rec { platform = { }; }; - x86_64-darwin = { - config = "x86_64-apple-darwin"; - xcodePlatform = "MacOSX"; - platform = { }; - }; - # # UEFI # diff --git a/lib/systems/flake-systems.nix b/lib/systems/flake-systems.nix index 851dc1af71818..1589ff23baa4d 100644 --- a/lib/systems/flake-systems.nix +++ b/lib/systems/flake-systems.nix @@ -11,7 +11,6 @@ "x86_64-linux" # Tier 2 "aarch64-linux" - "x86_64-darwin" # Tier 3 "armv6l-linux" "armv7l-linux" diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index e2b9093511c6e..a27861b09253d 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -127,7 +127,6 @@ lib.runTests ( ]; testx86_64 = mseteq x86_64 [ "x86_64-linux" - "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" @@ -145,7 +144,6 @@ lib.runTests ( "x86_64-cygwin" ]; testdarwin = mseteq darwin [ - "x86_64-darwin" "aarch64-darwin" ]; testfreebsd = mseteq freebsd [ diff --git a/maintainers/scripts/haskell/hydra-report.hs b/maintainers/scripts/haskell/hydra-report.hs index 263d0aa50e6ea..5ef28baa41e00 100755 --- a/maintainers/scripts/haskell/hydra-report.hs +++ b/maintainers/scripts/haskell/hydra-report.hs @@ -272,7 +272,7 @@ instance FromJSON JobMaintainers where -- @@ -- fromList -- [ ("arion.aarch64-linux", ["rob22"]) --- , ("conduit.x86_64-darwin", ["snoyb", "webber"]) +-- , ("conduit.aarch64-darwin", ["snoyb", "webber"]) -- ] -- @@ type MaintainerMap = Map JobName (NonEmpty Text) @@ -404,15 +404,13 @@ platformIcon :: Platform -> Text platformIcon (Platform x) = case x of "x86_64-linux" -> "🐧" "aarch64-linux" -> "📱" - "x86_64-darwin" -> "🍎" - "aarch64-darwin" -> "🍏" + "aarch64-darwin" -> "🍎" _ -> x platformIsOS :: OS -> Platform -> Bool platformIsOS os (Platform x) = case (os, x) of (Linux, "x86_64-linux") -> True (Linux, "aarch64-linux") -> True - (Darwin, "x86_64-darwin") -> True (Darwin, "aarch64-darwin") -> True _ -> False diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md index a8e410de61a00..e09af6becee41 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -4,6 +4,8 @@ +- The default PostgreSQL version for new NixOS installations (i.e. with `system.stateVersion >= 26.11`) is v18. + - The {file}`nixexprs.tar.xz` tarball will be discontinued together with Nixpkgs 27.05 after 2027-12-31. Migrate to the {file}`nixexprs.tar.zst` tarball instead. diff --git a/nixos/lib/qemu-common.nix b/nixos/lib/qemu-common.nix index 9ff482b83f3a3..346d3ffcef5af 100644 --- a/nixos/lib/qemu-common.nix +++ b/nixos/lib/qemu-common.nix @@ -46,15 +46,10 @@ rec { powerpc64-linux = "${qemuPkg}/bin/qemu-system-ppc64 -machine powernv"; riscv32-linux = "${qemuPkg}/bin/qemu-system-riscv32 -machine virt"; riscv64-linux = "${qemuPkg}/bin/qemu-system-riscv64 -machine virt"; - x86_64-darwin = "${qemuPkg}/bin/qemu-system-x86_64 -machine accel=${accel "kvm"} -cpu max"; }; otherHostGuestMatrix = { aarch64-darwin = { aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -machine virt,gic-version=2,accel=${accel "hvf"} -cpu max"; - inherit (otherHostGuestMatrix.x86_64-darwin) x86_64-linux; - }; - x86_64-darwin = { - x86_64-linux = "${qemuPkg}/bin/qemu-system-x86_64 -machine type=q35,accel=${accel "hvf"} -cpu max"; }; }; diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index 5c974f41dda5a..99cc42c48a1d8 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -78,16 +78,13 @@ rec { { preferLocalBuild = true; allowSubstitutes = false; - # unit.text can be null. But variables that are null listed in - # passAsFile are ignored by nix, resulting in no file being created, - # making the mv operation fail. - text = optionalString (unit.text != null) unit.text; - passAsFile = [ "text" ]; + text = unit.text or ""; + __structuredAttrs = true; } '' name=${shellEscape name} mkdir -p "$out/$(dirname -- "$name")" - mv "$textPath" "$out/$name" + printf "%s" "$text" > "$out/$name" '' else pkgs.runCommand "unit-${mkPathSafeName name}-disabled" diff --git a/nixos/lib/test-driver/default.nix b/nixos/lib/test-driver/default.nix index 03cfcb6915b31..efc7d8fa9a85e 100644 --- a/nixos/lib/test-driver/default.nix +++ b/nixos/lib/test-driver/default.nix @@ -11,6 +11,7 @@ ptpython, pydantic, python, + ovmfvartool, remote-pdb, ruff, ty, @@ -47,6 +48,7 @@ buildPythonApplication { junit-xml ptpython pydantic + ovmfvartool remote-pdb ] ++ extraPythonPackages python.pkgs; diff --git a/nixos/lib/test-driver/src/test_driver/efi.py b/nixos/lib/test-driver/src/test_driver/efi.py new file mode 100644 index 0000000000000..fb547ded5dd92 --- /dev/null +++ b/nixos/lib/test-driver/src/test_driver/efi.py @@ -0,0 +1,233 @@ +import binascii +import io +import os.path +import uuid +from collections.abc import Generator +from contextlib import contextmanager +from pathlib import Path +from typing import IO, Any, TypeVar + +from ovmfvartool import ( + AuthenticatedVariable, + FirmwareVolumeHeader, + UEFITime, + VariableStoreHeader, + resolveUUID, +) + +import test_driver.machine +from test_driver.errors import RequestedAssertionFailed + +EfiVariableT = TypeVar("EfiVariableT", bound="EfiVariable") + +# See edk2.git/OvmfPkg/Bhyve/VarStore.fdf.inc +_NV_FTW_WORKING_OFFSET = 0x41000 +_NV_FTW_WORKING_VALUE = binascii.unhexlify( + b"2b29589e687c7d49a0ce6500fd9f1b952caf2c64feffffffe00f000000000000" +) +_NV_FTW_SIZE = 0x42000 +_NV_FTW_MAIN_PLUS_SPARE_SIZE = _NV_FTW_SIZE * 2 + + +class EfiVariable(AuthenticatedVariable): + class Flags: + NON_VOLATILE = 0x1 + BOOTSERVICE_ACCESS = 0x2 + RUNTIME_ACCESS = 0x4 + TIME_BASED_AUTHENTICATED_WRITE_ACCESS = 0x20 + + class State: + VAR_HEADER_VALID_ONLY = 0x7F + VAR_ADDED = 0x3F + + volatile = False + boot_access = False + runtime_access = False + hardware_error_record = False + authenticated_write_access = False + time_based_authenticated_write_access = False + append_write = False + + def __init__( + self, + vendor_uuid: uuid.UUID | None = None, + name: str | None = None, + data: bytes | None = None, + state: int | None = None, + flags: int | None = None, + ) -> None: + self.magic = 0x55AA + self.reserved1 = 0 + self.monotonicCount = 0 + self.timestamp = UEFITime() + self.pubKeyIdx = 0 + self.state = 0 + self.flags = 0 + + if vendor_uuid is not None: + self.vendorUUID = uuid.UUID(bytes=vendor_uuid.bytes_le) + + if state is not None: + self.state = state ^ 0xFF + else: + self.state = (0x40 | 0x80) ^ 0xFF + + if flags is not None: + self.flags = flags + + if name is not None: + self.name = name + self.nameLen = len(name) * 2 + 2 + + if data is not None: + self.data = data + self.dataLen = len(data) + + def _read_flags(self) -> None: + if not (self.flags & 0x1): + self.volatile = True + if self.flags & 0x2: + self.boot_access = True + if self.flags & 0x4: + self.runtime_access = True + if self.flags & 0x8: + self.hardware_error_record = True + if self.flags & 0x10: + self.authenticated_write_access = True + if self.flags & 0x20: + self.time_based_authenticated_write_access = True + if self.flags & 0x40: + self.append_write = True + + self.flags &= ~(0x1 | 0x2 | 0x4 | 0x8 | 0x10 | 0x20 | 0x40) + + @classmethod + def deserialize(cls: type[EfiVariableT], f: Any) -> EfiVariableT | None: + # pylint: disable=no-member + # false positive https://github.com/PyCQA/pylint/issues/981 + ret = super().deserialize(f) + if ret: + ret._read_flags() + return ret + + @classmethod + def deserializeFromDocument( # noqa: N802 + cls: type[EfiVariableT], + vendorID: str, # noqa: N803 + name: str, + doc: dict[str, Any], + ) -> EfiVariableT: + # pylint: disable=no-member + # false positive https://github.com/PyCQA/pylint/issues/981 + ret = super(cls, cls).deserializeFromDocument(vendorID, name, doc) + if ret: + ret._read_flags() + return ret + + +class EfiVars: + """A container around the ovmf variables""" + + state_path: Path + machine: "test_driver.machine.QemuMachine" + + def __init__(self, state_path: Path, machine: Any): + self.state_path = state_path + self.machine = machine + + def _assert_stopped(self) -> None: + if self.machine.booted: + raise RequestedAssertionFailed( + "System is currently running and concurrent reads / writes to the OVMF variables is unsupported" + ) + + def read_content(self) -> dict[str, dict[str, EfiVariable]] | None: + self._assert_stopped() + try: + with open(self.state_path, "rb") as f: + fvh = FirmwareVolumeHeader.deserialize(f) + vsh = VariableStoreHeader.deserialize(f) + _ = fvh + _ = vsh + variables: dict[str, dict[str, EfiVariable]] = {} + + while True: + v = EfiVariable.deserialize(f) + if not v: + break + if v.isDeleted: + continue + + k = resolveUUID(v.vendorUUID) + variables.setdefault(k, {}) + variables[k][v.name] = v + + return variables + + except FileNotFoundError: + return None + + @contextmanager + def _write_store(self, *args, **kwargs) -> Generator[IO[bytes]]: + with open(self.state_path, "wb") as fo: + fm = io.BytesIO(b"\xff" * _NV_FTW_MAIN_PLUS_SPARE_SIZE) + fm.write(FirmwareVolumeHeader.create().serialize()) + fm.write(VariableStoreHeader.create().serialize()) + + try: + yield fm + finally: + fm.seek(_NV_FTW_WORKING_OFFSET) + fm.write(_NV_FTW_WORKING_VALUE) + fm.seek(0) + fo.write(fm.read()) + + def create_empty(self) -> None: + self._assert_stopped() + + if os.path.exists(self.state_path): + raise RequestedAssertionFailed("OVMF variables store exists") + + with self._write_store(): + pass + + def write(self, add: list[EfiVariable]) -> None: + self._assert_stopped() + + variables = self.read_content() + if not variables: + variables = {} + + for var in add: + k = resolveUUID(var.vendorUUID) + variables.setdefault(k, {}) + variables[k][var.name] = var + + with self._write_store() as fm: + for _, vendor in variables.items(): + for _, v in vendor.items(): + fm.write(v.serialize()) + if fm.tell() % 4: + fm.write(b"\xff" * (4 - (fm.tell() % 4))) + assert (fm.tell() % 4) == 0 + + +class EfiGuid: + from ovmfvartool import ( + gEdkiiVarErrorFlagGuid, + gEfiAuthenticatedVariableGuid, + gEfiCertDbGuid, + gEfiCustomModeEnableGuid, + gEfiGlobalVariableGuid, + gEfiImageSecurityDatabaseGuid, + gEfiIp4Config2ProtocolGuid, + gEfiIScsiInitiatorNameProtocolGuid, + gEfiMemoryTypeInformationGuid, + gEfiSecureBootEnableDisableGuid, + gEfiSystemNvDataFvGuid, + gEfiVendorKeysNvGuid, + gIScsiConfigGuid, + gMicrosoftVendorGuid, + gMtcVendorGuid, + mBmHardDriveBootVariableGuid, + ) diff --git a/nixos/lib/test-driver/src/test_driver/machine/__init__.py b/nixos/lib/test-driver/src/test_driver/machine/__init__.py index 9ddf7fa2d947d..d1f519c803b9b 100644 --- a/nixos/lib/test-driver/src/test_driver/machine/__init__.py +++ b/nixos/lib/test-driver/src/test_driver/machine/__init__.py @@ -22,6 +22,7 @@ from queue import Queue from typing import Any +from test_driver.efi import EfiVariable, EfiVars from test_driver.errors import MachineError, RequestedAssertionFailed from test_driver.logger import AbstractLogger from test_driver.machine.ocr import ( @@ -192,6 +193,7 @@ def cmd( def build_environment( state_dir: Path, shared_dir: Path, + efi_vars_path: Path | None = None, ) -> dict: # We make a copy to not update the current environment env = dict(os.environ) @@ -202,6 +204,13 @@ def build_environment( "USE_TMPDIR": "1", } ) + if efi_vars_path is not None: + env.update( + { + "NIX_EFI_VARS": str(efi_vars_path), + } + ) + return env def run( @@ -212,6 +221,7 @@ def run( qmp_socket_path: Path, shell_socket_path: Path, allow_reboot: bool, + efi_vars_path: Path | None = None, vsock_guest: Path | None = None, ) -> subprocess.Popen: return subprocess.Popen( @@ -227,7 +237,9 @@ def run( stderr=subprocess.STDOUT, shell=True, cwd=state_dir, - env=self.build_environment(state_dir, shared_dir), + env=self.build_environment( + state_dir, shared_dir, efi_vars_path=efi_vars_path + ), ) @@ -750,6 +762,9 @@ class QemuMachine(BaseMachine): # Store all console output for full log retrieval full_console_log: list[str] + efi_vars_path: Path + efi_vars: EfiVars + def __init__( self, out_dir: Path, @@ -791,6 +806,9 @@ def __init__( self.booted = False self.connected = False + self.efi_vars_path = self.state_dir / f"{self.name}-efi-vars.fd" + self.efi_vars = EfiVars(self.efi_vars_path, self) + def ssh_backdoor_command(self) -> str: assert self.vsock_host is not None return f"ssh -o User=root vsock-mux/{self.vsock_host}" @@ -1169,24 +1187,25 @@ def wait_for_console_text(self, regex: str, timeout: int | None = None) -> None: # to match multiline regexes. console = io.StringIO() - def console_matches(_last_try: bool) -> bool: + def console_matches(_last_try: bool, block: bool = False) -> bool: nonlocal console try: - # This will return as soon as possible and - # sleep 1 second. - console.write(self.last_lines.get(block=False)) + while True: + # This will return as soon as possible and + # sleep 1 second. + console.write(self.last_lines.get(block=block)) + console.seek(0) + matches = re.search(regex, console.read()) + if matches is not None: + return True except queue.Empty: - pass - console.seek(0) - matches = re.search(regex, console.read()) - return matches is not None + return False with self.nested(f"waiting for {regex} to appear on console"): if timeout is not None: retry(console_matches, timeout) else: - while not console_matches(False): - pass + console_matches(False, block=True) def get_console_log(self) -> str: """ @@ -1253,6 +1272,7 @@ def create_socket(path: Path) -> socket.socket: self.qmp_path, self.shell_path, allow_reboot, + self.efi_vars_path, self.vsock_guest, ) @@ -1437,6 +1457,28 @@ def switch_root(self) -> None: self.connected = False self.connect() + def dump_efi_vars(self) -> None: + for var in self.read_efi_vars(): + var.print() + + def read_efi_vars(self) -> list[EfiVariable]: + config = self.efi_vars.read_content() + if not config: + return [] + + out = [] + for vendor, variables in config.items(): + for name, v in variables.items(): + out.append(v) + + return out + + def create_efi_vars(self) -> None: + self.efi_vars.create_empty() + + def write_efi_vars(self, add: list[EfiVariable]) -> None: + self.efi_vars.write(add) + class NspawnMachine(BaseMachine): """ diff --git a/nixos/lib/testing/nodes.nix b/nixos/lib/testing/nodes.nix index f83f268c88b3e..6a90990b18290 100644 --- a/nixos/lib/testing/nodes.nix +++ b/nixos/lib/testing/nodes.nix @@ -27,7 +27,6 @@ let else let hostToGuest = { - "x86_64-darwin" = "x86_64-linux"; "aarch64-darwin" = "aarch64-linux"; }; diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix index d64afef1e1f89..b9b8307c3ed15 100644 --- a/nixos/modules/installer/tools/nix-fallback-paths.nix +++ b/nixos/modules/installer/tools/nix-fallback-paths.nix @@ -1,8 +1,8 @@ { - x86_64-linux = "/nix/store/6qpfa1c19q4idpjij6s6yywkfvhp820s-nix-2.34.7"; - i686-linux = "/nix/store/npdbf892fhicd1pw8flpywzbvhcdx469-nix-2.34.7"; - aarch64-linux = "/nix/store/5i60qiqjx9bjkcy31fwvnx28ijljlbs3-nix-2.34.7"; - riscv64-linux = "/nix/store/xvl2f539v978jwflp2d9r7znk35br00i-nix-riscv64-unknown-linux-gnu-2.34.7"; - x86_64-darwin = "/nix/store/j9rh0z3zy9rq00lz9ckcsa1g1hn35cyw-nix-2.34.7"; - aarch64-darwin = "/nix/store/yxgyagiaffxkbrff4d7mrg718wdj3llj-nix-2.34.7"; + x86_64-linux = "/nix/store/09hmdfh1i61532nvhi1p1f37l9hjl6z7-nix-2.34.8"; + i686-linux = "/nix/store/5f24f8nk8wnm6fimnx36cl1yhv0i3pli-nix-2.34.8"; + aarch64-linux = "/nix/store/61m1ki4yy2b9gybx42p6czw8irmj7p5i-nix-2.34.8"; + riscv64-linux = "/nix/store/gf1ja21cvli7zl978a8bm0ixl5k69kgg-nix-riscv64-unknown-linux-gnu-2.34.8"; + x86_64-darwin = "/nix/store/kcnnz1r3sgp0bdpf3vjwqgqmk2m02rn8-nix-2.34.8"; + aarch64-darwin = "/nix/store/bfh32jcac5an863033jknr92qg729wl0-nix-2.34.8"; } diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 3d0f4a9f7d86a..96d0d68e5c931 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -505,7 +505,7 @@ sub in { # This should work for single and multi-device systems. # still needs subvolume support if ($fsType eq "bcachefs") { - my ($status, @info) = runCommand("bcachefs fs usage $rootDir$mountPoint"); + my ($status, @info) = runCommand("@bcachefs@ fs usage $rootDir$mountPoint"); my $UUID = $info[0]; if ($status == 0 && $UUID =~ /^Filesystem:[ \t\n]*([0-9a-z-]+)/) { diff --git a/nixos/modules/installer/tools/tools.nix b/nixos/modules/installer/tools/tools.nix index 23a0bebe388cb..da2e3288936d3 100644 --- a/nixos/modules/installer/tools/tools.nix +++ b/nixos/modules/installer/tools/tools.nix @@ -30,15 +30,20 @@ let name = "nixos-generate-config"; src = ./nixos-generate-config.pl; replacements = { - perl = "${ + perl = lib.getExe ( pkgs.perl.withPackages (p: [ p.FileSlurp p.ConfigIniFiles ]) - }/bin/perl"; + ); hostPlatformSystem = pkgs.stdenv.hostPlatform.system; - detectvirt = "${config.systemd.package}/bin/systemd-detect-virt"; - btrfs = "${pkgs.btrfs-progs}/bin/btrfs"; + detectvirt = lib.getExe' config.systemd.package "systemd-detect-virt"; + bcachefs = + if pkgs.bcachefs-tools.meta.broken then + lib.getExe' pkgs.coreutils "false" + else + lib.getExe pkgs.bcachefs-tools; + btrfs = lib.getExe pkgs.btrfs-progs; inherit (config.system.nixos-generate-config) configuration desktopConfiguration flake; xserverEnabled = config.services.xserver.enable; }; diff --git a/nixos/modules/misc/nixpkgs/test.nix b/nixos/modules/misc/nixpkgs/test.nix index 1d4eff6a72cdb..96c461cf795b4 100644 --- a/nixos/modules/misc/nixpkgs/test.nix +++ b/nixos/modules/misc/nixpkgs/test.nix @@ -36,7 +36,7 @@ let nixpkgs.hostPlatform = "aarch64-linux"; nixpkgs.buildPlatform = "aarch64-darwin"; nixpkgs.system = "x86_64-linux"; - nixpkgs.localSystem.system = "x86_64-darwin"; + nixpkgs.localSystem.system = "x86_64-freebsd"; nixpkgs.crossSystem.system = "i686-linux"; imports = [ { diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index 2f3e0b20de8b6..f5350ad727ad0 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -204,7 +204,9 @@ in type = types.package; example = literalExpression "pkgs.postgresql_15"; defaultText = literalExpression '' - if versionAtLeast config.system.stateVersion "25.11" then + if versionAtLeast config.system.stateVersion "26.11" then + pkgs.postgresql_18 + else if versionAtLeast config.system.stateVersion "25.11" then pkgs.postgresql_17 else if versionAtLeast config.system.stateVersion "24.11" then pkgs.postgresql_16 @@ -657,7 +659,9 @@ in ''; base = # XXX Don't forget to keep `defaultText` of `services.postgresql.package` up to date! - if versionAtLeast config.system.stateVersion "25.11" then + if versionAtLeast config.system.stateVersion "26.11" then + pkgs.postgresql_18 + else if versionAtLeast config.system.stateVersion "25.11" then pkgs.postgresql_17 else if versionAtLeast config.system.stateVersion "24.11" then pkgs.postgresql_16 diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix index f7e23df84f015..0b9aae8e2bbde 100644 --- a/nixos/modules/services/hardware/pcscd.nix +++ b/nixos/modules/services/hardware/pcscd.nix @@ -10,8 +10,6 @@ let builtins.concatStringsSep "\n\n" config.services.pcscd.readerConfigs ); - package = if config.security.polkit.enable then pkgs.pcscliteWithPolkit else pkgs.pcsclite; - pluginEnv = pkgs.buildEnv { name = "pcscd-plugins"; paths = map (p: "${p}/pcsc/drivers") config.services.pcscd.plugins; @@ -36,6 +34,11 @@ in options.services.pcscd = { enable = lib.mkEnableOption "PCSC-Lite daemon, to access smart cards using SCard API (PC/SC)"; + package = (lib.mkPackageOption pkgs "pcsclite" { }) // { + default = if config.security.polkit.enable then pkgs.pcscliteWithPolkit else pkgs.pcsclite; + defaultText = lib.literalExpression "if config.security.polkit.enable then pkgs.pcscliteWithPolkit else pkgs.pcsclite"; + }; + plugins = lib.mkOption { type = lib.types.listOf lib.types.package; defaultText = lib.literalExpression "[ pkgs.ccid ]"; @@ -101,8 +104,8 @@ in config = lib.mkIf config.services.pcscd.enable { environment.etc."reader.conf".source = cfgFile; - environment.systemPackages = [ package ]; - systemd.packages = [ package ]; + environment.systemPackages = [ cfg.package ]; + systemd.packages = [ cfg.package ]; services.pcscd.plugins = [ pkgs.ccid ]; @@ -133,7 +136,7 @@ in # https://github.com/NixOS/nixpkgs/issues/121088 serviceConfig.ExecStart = [ "" - "${lib.getExe package} -f -x -c ${cfgFile} ${lib.escapeShellArgs cfg.extraArgs}" + "${lib.getExe cfg.package} -f -x -c ${cfgFile} ${lib.escapeShellArgs cfg.extraArgs}" ]; }; diff --git a/nixos/modules/services/web-apps/pretalx.nix b/nixos/modules/services/web-apps/pretalx.nix index 16fc6f0909835..53990f88bea58 100644 --- a/nixos/modules/services/web-apps/pretalx.nix +++ b/nixos/modules/services/web-apps/pretalx.nix @@ -21,8 +21,6 @@ let (toPythonModule finalPackage) gunicorn ] - ++ finalPackage.optional-dependencies.redis - ++ lib.optionals cfg.celery.enable [ celery ] ++ lib.optionals ( cfg.settings.database.backend == "postgresql" ) finalPackage.optional-dependencies.postgres; @@ -58,6 +56,12 @@ in { meta.maintainers = pkgs.pretalx.meta.maintainers; + imports = [ + (lib.mkRemovedOptionModule [ "services" "pretalx" "celery" "enable" ] '' + Celery is now always required. + '') + ]; + options.services.pretalx = { enable = lib.mkEnableOption "pretalx"; @@ -136,15 +140,6 @@ in }; celery = { - enable = lib.mkOption { - type = lib.types.bool; - default = true; - example = false; - description = '' - Whether to set up celery as an asynchronous task runner. - ''; - }; - extraArgs = lib.mkOption { type = with lib.types; listOf str; default = [ ]; @@ -281,10 +276,8 @@ in celery = { backend = lib.mkOption { type = with lib.types; nullOr str; - default = lib.optionalString cfg.celery.enable "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1"; - defaultText = lib.literalExpression '' - optionalString config.services.pretalx.celery.enable "redis+socket://''${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1" - ''; + default = "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1"; + defaultText = lib.literalExpression "redis+socket://\${config.services.redis.servers.pretalx.unixSocket}?virtual_host=1"; description = '' URI to the celery backend used for the asynchronous job queue. ''; @@ -292,10 +285,8 @@ in broker = lib.mkOption { type = with lib.types; nullOr str; - default = lib.optionalString cfg.celery.enable "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2"; - defaultText = lib.literalExpression '' - optionalString config.services.pretalx.celery.enable "redis+socket://''${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2" - ''; + default = "redis+socket://${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2"; + defaultText = lib.literalExpression "redis+socket://\${config.services.redis.servers.pretalx.unixSocket}?virtual_host=2"; description = '' URI to the celery broker used for the asynchronous job queue. ''; @@ -385,6 +376,15 @@ in access_log off; more_set_headers 'Content-Disposition: attachment; filename="$1"'; expires 7d; + types { + # prevent xss through file uploads + text/plain html; + text/plain htm; + text/plain svg; + text/plain svgz; + text/plain js; + text/plain mjs; + } ''; }; "/static/" = { @@ -523,23 +523,21 @@ in }; }; - pretalx-worker = lib.mkIf cfg.celery.enable ( - lib.recursiveUpdate commonUnitConfig { - description = "pretalx asynchronous job runner"; - after = [ - "network.target" - "redis-pretalx.service" - ] - ++ lib.optionals (cfg.settings.database.backend == "postgresql") [ - "postgresql.target" - ] - ++ lib.optionals (cfg.settings.database.backend == "mysql") [ - "mysql.service" - ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig.ExecStart = "${lib.getExe' pythonEnv "celery"} -A pretalx.celery_app worker ${cfg.celery.extraArgs}"; - } - ); + pretalx-worker = lib.recursiveUpdate commonUnitConfig { + description = "pretalx asynchronous job runner"; + after = [ + "network.target" + "redis-pretalx.service" + ] + ++ lib.optionals (cfg.settings.database.backend == "postgresql") [ + "postgresql.target" + ] + ++ lib.optionals (cfg.settings.database.backend == "mysql") [ + "mysql.service" + ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig.ExecStart = "${lib.getExe' pythonEnv "celery"} -A pretalx.celery_app worker ${cfg.celery.extraArgs}"; + }; nginx.serviceConfig.SupplementaryGroups = lib.mkIf cfg.nginx.enable [ "pretalx" ]; }; diff --git a/nixos/modules/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix index 4d20b20090b4d..de2cb3d2afc87 100644 --- a/nixos/modules/testing/test-instrumentation.nix +++ b/nixos/modules/testing/test-instrumentation.nix @@ -78,6 +78,8 @@ let # Allow very slow start DefaultTimeoutStartSec = 300; DefaultDeviceTimeoutSec = 300; + # Don't enforce a minimum uptime before shutting down. + MinimumUptimeSec = 0; }; in diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix index 8230da280b50e..59645757575f2 100644 --- a/nixos/modules/virtualisation/qemu-vm.nix +++ b/nixos/modules/virtualisation/qemu-vm.nix @@ -741,7 +741,7 @@ in default = pkgs; defaultText = literalExpression "pkgs"; example = literalExpression '' - import pkgs.path { system = "x86_64-darwin"; } + import pkgs.path { system = "aarch64-darwin"; } ''; description = '' Package set to use for the host-specific packages of the VM runner. diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2a92d910a25aa..5e7a1a12a29c6 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -154,6 +154,7 @@ in containers = runTest ./nixos-test-driver/containers.nix; nspawn-daemon-reexec-dbus = runTest ./nspawn-daemon-reexec-dbus.nix; skip-typecheck = runTest ./nixos-test-driver/skip-typecheck.nix; + console-timeout = runTest ./nixos-test-driver/console-timeout.nix; options-doc-regression = import ./nixos-test-driver/options-doc-regression.nix { inherit pkgs; }; driver-timeout = pkgs.runCommand "ensure-timeout-induced-failure" @@ -168,6 +169,7 @@ in [[ 143 = $(cat $failed/testBuildFailure.exit) ]] touch $out ''; + efivars = runTestOn [ "x86_64-linux" ] ./nixos-test-driver/efivars.nix; }; # NixOS vm tests and non-vm unit tests diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 76b3b62c03899..930d3afc203d8 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -41,7 +41,7 @@ let documentation.enable = false; # To ensure that we can rebuild the grub configuration on the nixos-rebuild - system.extraDependencies = with pkgs; [ stdenvNoCC ]; + system.extraDependencies = with pkgs; [ stdenvNoCC hello ]; boot.initrd.systemd.enable = ${boolToString systemdStage1}; @@ -278,14 +278,14 @@ let target.succeed("nix-store --verify --check-contents >&2") with subtest("Check whether the channel works"): - target.succeed("nix-env -iA nixos.procps >&2") - assert ".nix-profile" in target.succeed("type -tP ps | tee /dev/stderr") + target.succeed("nix-env -iA nixos.hello >&2") + assert ".nix-profile" in target.succeed("type -tP hello | tee /dev/stderr") with subtest( "Check that the daemon works, and that non-root users can run builds " "(this will build a new profile generation through the daemon)" ): - target.succeed("su alice -l -c 'nix-env -iA nixos.procps' >&2") + target.succeed("su alice -l -c 'nix-env -iA nixos.hello' >&2") with subtest("Configure system with writable Nix store on next boot"): # we're not using copy_from_host here because the installer image @@ -677,7 +677,6 @@ let # non-EFI tests can only run on x86 platforms = mkIf (!isEfi) [ "x86_64-linux" - "x86_64-darwin" "i686-linux" ]; inherit broken; @@ -745,6 +744,7 @@ let desktop-file-utils docbook5 docbook_xsl_ns + hello kbd.dev kmod.dev libarchive.dev diff --git a/nixos/tests/nixos-test-driver/console-timeout.nix b/nixos/tests/nixos-test-driver/console-timeout.nix new file mode 100644 index 0000000000000..504f4504bf9da --- /dev/null +++ b/nixos/tests/nixos-test-driver/console-timeout.nix @@ -0,0 +1,26 @@ +{ pkgs, lib, ... }: +{ + name = "console-timeout"; + + nodes.machine = { + systemd.services.generate-output.script = '' + echo "match that" + sleep 1 + + for i in $(seq 15); do + echo "line $i" + done + + echo "match this" + ''; + }; + + testScript = '' + machine.start() + machine.wait_for_unit("multi-user.target") + + machine.systemctl("start generate-output") + machine.wait_for_console_text("match that") + machine.wait_for_console_text("match this", timeout=10) + ''; +} diff --git a/nixos/tests/nixos-test-driver/efivars.nix b/nixos/tests/nixos-test-driver/efivars.nix new file mode 100644 index 0000000000000..953c69a0257ef --- /dev/null +++ b/nixos/tests/nixos-test-driver/efivars.nix @@ -0,0 +1,110 @@ +{ pkgs, lib, ... }: +let + vendorUuid = "a19f72f8-b554-4bd7-a0c2-2762bd854691"; + varName = "Demo"; + readWriteVar = pkgs.writers.writePython3 "read-increment-efi-var" { } '' + import os + import sys + import fcntl + import array + + if len(sys.argv) != 3: + print(f"Usage: {sys.argv[0]} NAME UUID", file=sys.stderr) + sys.exit(1) + + name = sys.argv[1] + uuid = sys.argv[2] + path = f"/sys/firmware/efi/efivars/{name}-{uuid}" + + FS_IMMUTABLE_FL = 0x00000010 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_SETFLAGS = 0x40086602 + + if not os.path.exists(path): + print(f"{path}: does not exist", file=sys.stderr) + sys.exit(1) + + with open(path, "rb") as f: + data = f.read() + + # The first 4 bytes are attributes, the rest is the data + if data[4:] != b"\x2a": + print(f"0x2a value expected, got {data[4:]!r}", file=sys.stderr) + sys.exit(1) + + fd = os.open(path, os.O_RDONLY) + arg = array.array("L", [0]) + fcntl.ioctl(fd, FS_IOC_GETFLAGS, arg) + if arg[0] & FS_IMMUTABLE_FL: + arg[0] &= ~FS_IMMUTABLE_FL + fcntl.ioctl(fd, FS_IOC_SETFLAGS, arg) + os.close(fd) + + with open(path, "wb") as f: + # Write 0x2b + data = bytes(list(data[:4]) + [0x2b]) + f.write(data) + ''; +in +{ + name = "efivars"; + + nodes.machine = { + boot.loader.efi.canTouchEfiVariables = true; + virtualisation.useEFIBoot = true; + }; + + testScript = '' + import uuid + import unittest + + from test_driver.efi import EfiVariable + from test_driver.errors import RequestedAssertionFailed + + + class TestConcurrentRead(unittest.TestCase): + def __init__(self, machine): + super().__init__() + self.machine = machine + + def test_concurrent_read(self): + with self.assertRaises(RequestedAssertionFailed): + self.machine.read_efi_vars() + + + vendor_uuid = uuid.UUID('${vendorUuid}') + machine.create_efi_vars() + machine.write_efi_vars([ + EfiVariable( + vendor_uuid=vendor_uuid, + name="${varName}", + data=bytes([0x2a]), + flags=EfiVariable.Flags.NON_VOLATILE | EfiVariable.Flags.BOOTSERVICE_ACCESS | EfiVariable.Flags.RUNTIME_ACCESS, + ) + ]) + + machine.start() + machine.wait_for_unit("multi-user.target") + + print(machine.succeed('${readWriteVar} "${varName}" "${vendorUuid}"')) + + TestConcurrentRead(machine).test_concurrent_read() + machine.crash() + + machine.dump_efi_vars() + vars = machine.read_efi_vars() + + guid = uuid.UUID(bytes=vendor_uuid.bytes_le) + predicate = lambda v: v.name == "${varName}" and v.vendorUUID == guid + var = next((v for v in vars if predicate(v)), None) + + if var: + var.print() + if var.data == bytes([0x2b]): + print("Congrats!") + else: + raise ValueError("Value 0x2b expected") + else: + raise ValueError("Could not find ${varName} variable") + ''; +} diff --git a/nixos/tests/web-apps/immich-vectorchord-reindex.nix b/nixos/tests/web-apps/immich-vectorchord-reindex.nix index 65308d11838f1..da808cf64a8e4 100644 --- a/nixos/tests/web-apps/immich-vectorchord-reindex.nix +++ b/nixos/tests/web-apps/immich-vectorchord-reindex.nix @@ -37,6 +37,10 @@ hash = "sha256-+BOuiinbKPZZaDl9aYsIoZPgvLZ4FA6Rb4/W+lAz4so="; }; + # Remove the patches currently used for vectorchord 1.1.1, + # as vectorchord 1.0.0 does not need them. + patches = [ ]; + cargoDeps = pkgs.rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; hash = "sha256-kwe2x7OTjpdPonZsvnR1C/89D5W/R5JswYF79YcSFEA="; diff --git a/pkgs/applications/audio/mpg123/default.nix b/pkgs/applications/audio/mpg123/default.nix index df13df07a978e..e46a141277102 100644 --- a/pkgs/applications/audio/mpg123/default.nix +++ b/pkgs/applications/audio/mpg123/default.nix @@ -21,11 +21,11 @@ assert withConplay -> !libOnly; stdenv.mkDerivation (finalAttrs: { pname = "${lib.optionalString libOnly "lib"}mpg123"; - version = "1.33.4"; + version = "1.33.5"; src = fetchurl { url = "mirror://sourceforge/mpg123/mpg123-${finalAttrs.version}.tar.bz2"; - hash = "sha256-OujJ/4Cpe/wOIuifvNdGh+yk/B2zFbEmB/J/ActaR9k="; + hash = "sha256-DX68jaCv88o4PIxrWmrb5ALuW7JWaFuMVJnzpzn51t0="; }; outputs = [ diff --git a/pkgs/applications/editors/emacs/make-emacs.nix b/pkgs/applications/editors/emacs/make-emacs.nix index 1a650a3b2af6a..ce8cd1d2b9ba6 100644 --- a/pkgs/applications/editors/emacs/make-emacs.nix +++ b/pkgs/applications/editors/emacs/make-emacs.nix @@ -116,6 +116,8 @@ # test callPackage, + # TODO: Clean up on `staging` + llvmPackages, }: assert (withGTK3 && !withNS && variant != "macport") -> withX || withPgtk; @@ -252,7 +254,11 @@ stdenv.mkDerivation (finalAttrs: { autoreconfHook ] ++ lib.optionals (withPgtk || withX && (withGTK3 || withXwidgets)) [ wrapGAppsHook3 ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ sigtool ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + sigtool + # TODO: Clean up on `staging` + llvmPackages.lld + ]; buildInputs = [ gnutls @@ -418,10 +424,15 @@ stdenv.mkDerivation (finalAttrs: { NATIVE_FULL_AOT = "1"; LIBRARY_PATH = lib.concatStringsSep ":" libGccJitLibraryPaths; } - // lib.optionalAttrs (variant == "macport") { - # Fixes intermittent segfaults when compiled with LLVM >= 7.0. - # See https://github.com/NixOS/nixpkgs/issues/127902 - NIX_CFLAGS_COMPILE = "-isystem ${./macport-noescape-noop}"; + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + NIX_CFLAGS_COMPILE = + "-fuse-ld=lld" + # Fixes intermittent segfaults when compiled with LLVM >= 7.0. + # See https://github.com/NixOS/nixpkgs/issues/127902 + + lib.optionalString (variant == "macport") " -isystem ${./macport-noescape-noop}"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/vim/common.nix b/pkgs/applications/editors/vim/common.nix index 05ac73b9f13ea..71848004202f8 100644 --- a/pkgs/applications/editors/vim/common.nix +++ b/pkgs/applications/editors/vim/common.nix @@ -4,7 +4,7 @@ stdenv, }: rec { - version = "9.2.0389"; + version = "9.2.0541"; outputs = [ "out" @@ -15,7 +15,7 @@ rec { owner = "vim"; repo = "vim"; rev = "v${version}"; - hash = "sha256-shhdJn1bPJ/68a54UZMn1fla7P4tjVUN4DGLbx3ohOg="; + hash = "sha256-M2vdIAM3P2MZdcMvFX/3/fixliTosR06nvPIX7NXFNo="; }; enableParallelBuilding = true; diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix index ec3e7c9a62532..d9abd14e2e51e 100644 --- a/pkgs/applications/editors/vim/default.nix +++ b/pkgs/applications/editors/vim/default.nix @@ -14,6 +14,8 @@ url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/68f6d131750aa778807119e03eed70286a17b1cb/trunk/archlinux.vim"; sha256 = "18ifhv5q9prd175q3vxbqf6qyvkk6bc7d2lhqdk0q78i68kv9y0c"; }, + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -37,6 +39,10 @@ stdenv.mkDerivation { nativeBuildInputs = [ gettext pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ ncurses @@ -44,6 +50,13 @@ stdenv.mkDerivation { gawk ]; + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_COMPILE = "-fuse-ld=lld"; + }; + strictDeps = true; configureFlags = [ diff --git a/pkgs/applications/editors/vim/full.nix b/pkgs/applications/editors/vim/full.nix index a2a105e3182c7..f07960cf950c3 100644 --- a/pkgs/applications/editors/vim/full.nix +++ b/pkgs/applications/editors/vim/full.nix @@ -48,6 +48,9 @@ darwinSupport ? config.vim.darwin or false, # Enable Darwin support ftNixSupport ? config.vim.ftNix or true, # Add nix indentation support from vim-nix (not needed for basic syntax highlighting) sodiumSupport ? config.vim.sodium or true, # Enable sodium based encryption + + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -169,7 +172,9 @@ stdenv.mkDerivation { ++ lib.optional nlsSupport gettext ++ lib.optional perlSupport perl ++ lib.optional (guiSupport == "gtk3") wrapGAppsHook3 - ++ lib.optional waylandSupport wayland-scanner; + ++ lib.optional waylandSupport wayland-scanner + # TODO: Clean up on `staging` + ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.lld; buildInputs = [ ncurses @@ -196,7 +201,10 @@ stdenv.mkDerivation { ++ lib.optional sodiumSupport libsodium; # error: '__declspec' attributes are not enabled; use '-fdeclspec' or '-fms-extensions' to enable support for __declspec attributes - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-fdeclspec"; + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-fdeclspec -fuse-ld=lld"; preConfigure = lib.optionalString ftNixSupport '' cp ${vimPlugins.vim-nix.src}/ftplugin/nix.vim runtime/ftplugin/nix.vim diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix index 36e22ddc2b0a7..9e48750c0b0a1 100644 --- a/pkgs/applications/editors/vim/macvim.nix +++ b/pkgs/applications/editors/vim/macvim.nix @@ -17,6 +17,8 @@ # This can be set to one of the `darwin.xcode_*` packages as well. # If set, this should be a path to Xcode.app, e.g. `"/Applications/Xcode.app"`. withXcodePath ? null, + # TODO: Clean up on `staging` + llvmPackages, }: # Try to match MacVim's documented script interface compatibility @@ -48,6 +50,8 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ pkg-config + # TODO: Clean up on `staging` + llvmPackages.lld ]; buildInputs = [ # MacVim references up to MAC_OS_VERSION_14_0 in its source @@ -188,7 +192,8 @@ stdenv.mkDerivation (finalAttrs: { # macvim obj-c log macro triggers -Wformat-security (seems like a bug? it's a string literal!) hardeningDisable = common.hardeningDisable ++ [ "format" ]; # os_log also enables -Werror,-Wformat by default - env.NIX_CFLAGS_COMPILE = "-DOS_LOG_FORMAT_WARNINGS"; + # TODO: Clean up on `staging` + env.NIX_CFLAGS_COMPILE = "-DOS_LOG_FORMAT_WARNINGS -fuse-ld=lld"; # We rely on the user's Xcode install to build. It may be located in an arbitrary place, and # it's not clear what system-level components it may require, so for now we'll just allow full diff --git a/pkgs/applications/graphics/inkscape/default.nix b/pkgs/applications/graphics/inkscape/default.nix index 7a5b12418a126..ccea323f700bf 100644 --- a/pkgs/applications/graphics/inkscape/default.nix +++ b/pkgs/applications/graphics/inkscape/default.nix @@ -103,6 +103,14 @@ stdenv.mkDerivation (finalAttrs: { # Fix path to ps2pdf binary inherit ghostscript; }) + # https://gitlab.com/inkscape/inkscape/-/merge_requests/7919 + (fetchpatch { + name = "fix-build-poppler-26.05.0"; + url = "https://gitlab.com/inkscape/inkscape/-/commit/98828255aa0c1212329236b3ff4ac7f41efb4a67.patch"; + hash = "sha256-ujUl0SxZyb/TyJRmq1ETNn5W8lDDNn3JqHQQQPU5klA="; + }) + # https://gitlab.com/inkscape/inkscape/-/merge_requests/7968 + ./fix-build-poppler-26.06.0.patch ]; postPatch = '' diff --git a/pkgs/applications/graphics/inkscape/fix-build-poppler-26.06.0.patch b/pkgs/applications/graphics/inkscape/fix-build-poppler-26.06.0.patch new file mode 100644 index 0000000000000..e9af942188db8 --- /dev/null +++ b/pkgs/applications/graphics/inkscape/fix-build-poppler-26.06.0.patch @@ -0,0 +1,487 @@ +From 35a470d9cbff50467cc700bc17ab2c4e8f5cf0bc Mon Sep 17 00:00:00 2001 +From: KrIr17 +Date: Mon, 8 Jun 2026 20:16:32 +0200 +Subject: [PATCH] Fix Building with Poppler 26.06.0 + +- pdfparser: Some `const PDFRectangle *` to `const PDFRectangle &` [1] +- pdfparser: Some `const GfxColor *` to `const GfxColor &` [2] +- pdf-utils: Add a `getRect(const PDFRectangle &)` alongside `getRect(const + PDFRectangle *)` +- poppler-cairo-font-engine: `getKey()` now returns std::string and not + char[], so change `strcmp` to `std::string(...).compare(...)` [3] +- poppler-utils: `obj->dictGetKey()` etc. were removed; use + `obj->dict()->getKey()` instead (these have also existed in poppler + since the beginning, so shouldn't break any old poppler) [4,5] +- svg-builder: `convertGfxColor` now takes `const GfxColor &` as input. + A convenience function taking `const GfxColor *` (for older poppler) + now calls the new one after confirming `color` is a valid pointer +- svg-builder: `_addStopToGradient` now takes `const GfxColor &` as + input. This was used only in `convertGfxColor` and therefore doesn't + need a helper function for compatibility +- testfiles pdf-utils-test: `` to `<*.h>` (see e3eb1210) +- testfiles pdf-utils-test: Some `const PDFRectangle *` + to `const PDFRectangle &` [1] + +Fixes https://gitlab.com/inkscape/inkscape/-/work_items/6210 + +Upstream Commits: + +[1] https://gitlab.freedesktop.org/poppler/poppler/-/commit/d50a4510 +[2] https://gitlab.freedesktop.org/poppler/poppler/-/commit/0f94f530 +[3] https://gitlab.freedesktop.org/poppler/poppler/-/commit/a3de7f8a +[4] https://gitlab.freedesktop.org/poppler/poppler/-/commit/bb13b0f5 +[5] https://gitlab.freedesktop.org/poppler/poppler/-/commit/8ae0f8e7 +--- + src/extension/internal/pdfinput/pdf-input.cpp | 14 +++++- + .../internal/pdfinput/pdf-parser.cpp | 45 ++++++++++--------- + src/extension/internal/pdfinput/pdf-parser.h | 4 +- + src/extension/internal/pdfinput/pdf-utils.cpp | 5 +++ + src/extension/internal/pdfinput/pdf-utils.h | 1 + + .../pdfinput/poppler-cairo-font-engine.cpp | 2 +- + .../pdfinput/poppler-transition-api.h | 16 +++++++ + .../internal/pdfinput/poppler-utils.cpp | 20 +++++---- + .../internal/pdfinput/svg-builder.cpp | 36 +++++++++------ + src/extension/internal/pdfinput/svg-builder.h | 3 +- + testfiles/src/pdf-utils-test.cpp | 7 +-- + 11 files changed, 100 insertions(+), 53 deletions(-) + +diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp +index aa4285b01d..dc5394c3d8 100644 +--- a/src/extension/internal/pdfinput/pdf-input.cpp ++++ b/src/extension/internal/pdfinput/pdf-input.cpp +@@ -820,7 +820,11 @@ PdfInput::add_builder_page(std::shared_ptrpdf_doc, SvgBuilder *builder, + } + + // Apply crop settings ++#if POPPLER_CHECK_VERSION(26, 2, 0) ++ std::optional clipToBox; ++#else + _POPPLER_CONST PDFRectangle *clipToBox = nullptr; ++#endif + + if (crop_to == "media-box") { + clipToBox = page->getMediaBox(); +@@ -834,8 +838,16 @@ PdfInput::add_builder_page(std::shared_ptrpdf_doc, SvgBuilder *builder, + clipToBox = page->getArtBox(); + } + ++ std::optional cropBox; ++#if POPPLER_CHECK_VERSION(26, 2, 0) ++ cropBox = clipToBox; ++#else ++ if (clipToBox) { ++ cropBox = *clipToBox; ++ } ++#endif + // Create parser (extension/internal/pdfinput/pdf-parser.h) +- auto pdf_parser = PdfParser(pdf_doc, builder, page, clipToBox); ++ auto pdf_parser = PdfParser(pdf_doc, builder, page, cropBox); + + // Set up approximation precision for parser. Used for converting Mesh Gradients into tiles. + if ( color_delta <= 0.0 ) { +diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp +index b336c48ce3..86fc51b1f2 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.cpp ++++ b/src/extension/internal/pdfinput/pdf-parser.cpp +@@ -43,6 +43,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -264,7 +265,7 @@ GfxPatch blankPatch() + //------------------------------------------------------------------------ + + PdfParser::PdfParser(std::shared_ptr pdf_doc, Inkscape::Extension::Internal::SvgBuilder *builderA, Page *page, +- _POPPLER_CONST PDFRectangle *cropBox) ++ const std::optional &cropBox) + : _pdf_doc(pdf_doc) + , xref(pdf_doc->getXRef()) + , builder(builderA) +@@ -307,8 +308,8 @@ PdfParser::PdfParser(std::shared_ptr pdf_doc, Inkscape::Extension::Inter + builder->setMargins(getRect(page->getTrimBox()) * scale, + getRect(page->getArtBox()) * scale, + getRect(page->getBleedBox()) * scale); +- if (cropBox && getRect(cropBox) != page_box) { +- builder->cropPage(getRect(cropBox) * scale); ++ if (cropBox && getRect(*cropBox) != page_box) { ++ builder->cropPage(getRect(*cropBox) * scale); + } + + saveState(); +@@ -331,7 +332,7 @@ PdfParser::PdfParser(XRef *xrefA, Inkscape::Extension::Internal::SvgBuilder *bui + , printCommands(false) + , res(new GfxResources(xref, resDict, nullptr)) + , // start the resource stack +- state(new GfxState(72, 72, box, 0, false)) ++ state(new _POPPLER_GFX_STATE(72, 72, *box, 0, false)) + , fontChanged(gFalse) + , clip(clipNone) + , ignoreUndef(0) +@@ -964,7 +965,7 @@ void PdfParser::opSetFillGray(Object args[], int /*numArgs*/) + state->setFillPattern(nullptr); + state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique())); + color.c[0] = dblToCol(args[0].getNum()); +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + +@@ -976,7 +977,7 @@ void PdfParser::opSetStrokeGray(Object args[], int /*numArgs*/) + state->setStrokePattern(nullptr); + state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(std::make_unique())); + color.c[0] = dblToCol(args[0].getNum()); +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + +@@ -991,7 +992,7 @@ void PdfParser::opSetFillCMYKColor(Object args[], int /*numArgs*/) + for (i = 0; i < 4; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + +@@ -1005,7 +1006,7 @@ void PdfParser::opSetStrokeCMYKColor(Object args[], int /*numArgs*/) + for (int i = 0; i < 4; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + +@@ -1019,7 +1020,7 @@ void PdfParser::opSetFillRGBColor(Object args[], int /*numArgs*/) + for (int i = 0; i < 3; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + +@@ -1032,7 +1033,7 @@ void PdfParser::opSetStrokeRGBColor(Object args[], int /*numArgs*/) { + for (int i = 0; i < 3; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + +@@ -1048,7 +1049,7 @@ void PdfParser::opSetFillColorSpace(Object args[], int numArgs) + GfxColor color; + colorSpace->getDefaultColor(&color); + state->setFillColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(colorSpace)); +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } else { + error(errSyntaxError, getPos(), "Bad color space (fill)"); +@@ -1069,7 +1070,7 @@ void PdfParser::opSetStrokeColorSpace(Object args[], int numArgs) + GfxColor color; + colorSpace->getDefaultColor(&color); + state->setStrokeColorSpace(_POPPLER_CONSUME_UNIQPTR_ARG(colorSpace)); +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } else { + error(errSyntaxError, getPos(), "Bad color space (stroke)"); +@@ -1089,7 +1090,7 @@ void PdfParser::opSetFillColor(Object args[], int numArgs) { + for (i = 0; i < numArgs; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + +@@ -1106,7 +1107,7 @@ void PdfParser::opSetStrokeColor(Object args[], int numArgs) { + for (i = 0; i < numArgs; ++i) { + color.c[i] = dblToCol(args[i].getNum()); + } +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + +@@ -1127,7 +1128,7 @@ void PdfParser::opSetFillColorN(Object args[], int numArgs) { + color.c[i] = dblToCol(args[i].getNum()); + } + } +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + if (auto pattern = lookupPattern(&(args[numArgs - 1]), state)) { +@@ -1146,7 +1147,7 @@ void PdfParser::opSetFillColorN(Object args[], int numArgs) { + color.c[i] = dblToCol(args[i].getNum()); + } + } +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + builder->updateStyle(state); + } + } +@@ -1170,7 +1171,7 @@ void PdfParser::opSetStrokeColorN(Object args[], int numArgs) { + color.c[i] = dblToCol(args[i].getNum()); + } + } +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + if (auto pattern = lookupPattern(&(args[numArgs - 1]), state)) { +@@ -1189,7 +1190,7 @@ void PdfParser::opSetStrokeColorN(Object args[], int numArgs) { + color.c[i] = dblToCol(args[i].getNum()); + } + } +- state->setStrokeColor(&color); ++ state->_POPPLER_SET_STROKE_COLOR(color); + builder->updateStyle(state); + } + } +@@ -1673,7 +1674,7 @@ void PdfParser::doFunctionShFill1(GfxFunctionShading *shading, + + // use the center color + shading->getColor(xM, yM, &fillColor); +- state->setFillColor(&fillColor); ++ state->_POPPLER_SET_FILL_COLOR(fillColor); + + // fill the rectangle + state->moveTo(x0 * matrix[0] + y0 * matrix[2] + matrix[4], +@@ -1799,7 +1800,7 @@ void PdfParser::gouraudFillTriangle(double x0, double y0, GfxColor *color0, + } + } + if (i == nComps || depth == maxDepths[pdfGouraudTriangleShading-1]) { +- state->setFillColor(color0); ++ state->_POPPLER_SET_FILL_COLOR(*color0); + state->moveTo(x0, y0); + state->lineTo(x1, y1); + state->lineTo(x2, y2); +@@ -1877,7 +1878,7 @@ void PdfParser::fillPatch(_POPPLER_CONST GfxPatch *patch, int nComps, int depth) + color.c[i] = GfxColorComp(patch->color[0][0].c[i]); + } + if (i == nComps || depth == maxDepths[pdfPatchMeshShading-1]) { +- state->setFillColor(&color); ++ state->_POPPLER_SET_FILL_COLOR(color); + state->moveTo(patch->x[0][0], patch->y[0][0]); + state->curveTo(patch->x[0][1], patch->y[0][1], + patch->x[0][2], patch->y[0][2], +diff --git a/src/extension/internal/pdfinput/pdf-parser.h b/src/extension/internal/pdfinput/pdf-parser.h +index 098ff26e26..29dd259167 100644 +--- a/src/extension/internal/pdfinput/pdf-parser.h ++++ b/src/extension/internal/pdfinput/pdf-parser.h +@@ -113,8 +113,8 @@ struct OpHistoryEntry { + class PdfParser { + public: + +- // Constructor for regular output. +- PdfParser(std::shared_ptr pdf_doc, SvgBuilder *builderA, Page *page, _POPPLER_CONST PDFRectangle *cropBox); ++ // Constructor for regular output. ++ PdfParser(std::shared_ptr pdf_doc, SvgBuilder *builderA, Page *page, const std::optional &cropBox); + // Constructor for a sub-page object. + PdfParser(XRef *xrefA, SvgBuilder *builderA, Dict *resDict, _POPPLER_CONST PDFRectangle *box); + +diff --git a/src/extension/internal/pdfinput/pdf-utils.cpp b/src/extension/internal/pdfinput/pdf-utils.cpp +index 22e5df62c8..3aa6c02d3c 100644 +--- a/src/extension/internal/pdfinput/pdf-utils.cpp ++++ b/src/extension/internal/pdfinput/pdf-utils.cpp +@@ -133,6 +133,11 @@ Geom::Rect getRect(_POPPLER_CONST PDFRectangle *box) + return Geom::Rect(box->x1, box->y1, box->x2, box->y2); + } + ++Geom::Rect getRect(const PDFRectangle &box) ++{ ++ return Geom::Rect(box.x1, box.y1, box.x2, box.y2); ++} ++ + Geom::PathVector getPathV(GfxPath *path) + { + if (!path) { +diff --git a/src/extension/internal/pdfinput/pdf-utils.h b/src/extension/internal/pdfinput/pdf-utils.h +index d259a8c2f7..30e9b5bf86 100644 +--- a/src/extension/internal/pdfinput/pdf-utils.h ++++ b/src/extension/internal/pdfinput/pdf-utils.h +@@ -59,6 +59,7 @@ private: + }; + + Geom::Rect getRect(_POPPLER_CONST PDFRectangle *box); ++Geom::Rect getRect(_POPPLER_CONST PDFRectangle &box); + Geom::PathVector getPathV(GfxPath *gPath); + + #endif /* PDF_UTILS_H */ +diff --git a/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp b/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp +index 19ebd26693..39ce22af38 100644 +--- a/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp ++++ b/src/extension/internal/pdfinput/poppler-cairo-font-engine.cpp +@@ -713,7 +713,7 @@ CairoType3Font *CairoType3Font::create(GfxFont *gfxFont, PDFDoc *doc, CairoFontE + codeToGID[i] = 0; + if (charProcs && (name = enc[i])) { + for (int j = 0; j < charProcs->getLength(); j++) { +- if (strcmp(name, charProcs->getKey(j)) == 0) { ++ if (std::string(charProcs->getKey(j)).compare(name) == 0) { + codeToGID[i] = j; + } + } +diff --git a/src/extension/internal/pdfinput/poppler-transition-api.h b/src/extension/internal/pdfinput/poppler-transition-api.h +index d69829d512..23550a3068 100644 +--- a/src/extension/internal/pdfinput/poppler-transition-api.h ++++ b/src/extension/internal/pdfinput/poppler-transition-api.h +@@ -15,6 +15,22 @@ + #include + #include + ++#if POPPLER_CHECK_VERSION(26, 6, 0) ++#define _POPPLER_GET_GRAY(color, gray) getGray(color, gray) ++#define _POPPLER_GET_RGB(color, rgb) getRGB(color, rgb) ++#define _POPPLER_GET_CMYK(color, cmyk) getCMYK(color, cmyk) ++#define _POPPLER_SET_FILL_COLOR(color) setFillColor(color) ++#define _POPPLER_SET_STROKE_COLOR(color) setStrokeColor(color) ++#define _POPPLER_GFX_STATE(h, v, Rect, rotateA, upsideDown) GfxState(h, v, Rect, rotateA, upsideDown) ++#else ++#define _POPPLER_GET_GRAY(color, gray) getGray(&color, gray) ++#define _POPPLER_GET_RGB(color, rgb) getRGB(&color, rgb) ++#define _POPPLER_GET_CMYK(color, cmyk) getCMYK(&color, cmyk) ++#define _POPPLER_SET_FILL_COLOR(color) setFillColor(&color) ++#define _POPPLER_SET_STROKE_COLOR(color) setStrokeColor(&color) ++#define _POPPLER_GFX_STATE(h, v, Rect, rotateA, upsideDown) GfxState(h, v, &Rect, rotateA, upsideDown) ++#endif ++ + #if POPPLER_CHECK_VERSION(26, 2, 0) + #define _POPPLER_WMODE GfxFont::WritingMode + #define _POPPLER_WMODE_HORIZONTAL GfxFont::WritingMode::Horizontal +diff --git a/src/extension/internal/pdfinput/poppler-utils.cpp b/src/extension/internal/pdfinput/poppler-utils.cpp +index 2338dbe2d9..66dcf85e1d 100644 +--- a/src/extension/internal/pdfinput/poppler-utils.cpp ++++ b/src/extension/internal/pdfinput/poppler-utils.cpp +@@ -196,15 +196,17 @@ void InkFontDict::hashFontObject1(const Object *obj, FNVHash *h) + hashFontObject1(&obj2, h); + } + break; +- case objDict: +- h->hash('d'); +- n = obj->dictGetLength(); +- h->hash((char *)&n, sizeof(int)); +- for (i = 0; i < n; ++i) { +- p = obj->dictGetKey(i); +- h->hash(p, (int)strlen(p)); +- const Object &obj2 = obj->dictGetValNF(i); +- hashFontObject1(&obj2, h); ++ case objDict: { ++ h->hash('d'); ++ auto objdict = obj->getDict(); ++ n = objdict->getLength(); ++ h->hash((char *)&n, sizeof(int)); ++ for (i = 0; i < n; ++i) { ++ auto p = std::string(objdict->getKey(i)); ++ h->hash(p.c_str(), p.length()); ++ const Object &obj2 = objdict->getValNF(i); ++ hashFontObject1(&obj2, h); ++ } + } + break; + case objStream: +diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp +index 3dfdfbbed4..bf7ccf1a8b 100644 +--- a/src/extension/internal/pdfinput/svg-builder.cpp ++++ b/src/extension/internal/pdfinput/svg-builder.cpp +@@ -392,7 +392,15 @@ static std::string svgConvertGfxRGB(GfxRGB *color) + return svgConvertRGBToText(r, g, b); + } + +-std::string SvgBuilder::convertGfxColor(const GfxColor *color, GfxColorSpace *space) ++// for poppler < 26.06.0 ++std::string SvgBuilder::convertGfxColor(const GfxColor *color, GfxColorSpace *space) { ++ if (!color) { ++ return ""; ++ } ++ return convertGfxColor(*color, space); ++} ++ ++std::string SvgBuilder::convertGfxColor(const GfxColor &color, GfxColorSpace *space) + { + std::string icc = ""; + switch (space->getMode()) { +@@ -419,7 +427,7 @@ std::string SvgBuilder::convertGfxColor(const GfxColor *color, GfxColorSpace *sp + Inkscape::CSSOStringStream icc_color; + icc_color << rgb_color << " icc-color(" << icc; + for (int i = 0; i < space->getNComps(); ++i) { +- icc_color << ", " << colToDbl((*color).c[i]); ++ icc_color << ", " << colToDbl((color).c[i]); + } + icc_color << ");"; + return icc_color.str(); +@@ -1204,7 +1212,7 @@ gchar *SvgBuilder::_createGradient(GfxShading *shading, const Geom::Affine pat_m + /** + * \brief Adds a stop with the given properties to the gradient's representation + */ +-void SvgBuilder::_addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor *color, GfxColorSpace *space, ++void SvgBuilder::_addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor &color, GfxColorSpace *space, + double opacity) + { + Inkscape::XML::Node *stop = _xml_doc->createElement("svg:stop"); +@@ -1255,8 +1263,8 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + if (!svgGetShadingColor(shading, 0.0, &stop1) || !svgGetShadingColor(shading, 1.0, &stop2)) { + return false; + } else { +- _addStopToGradient(gradient, 0.0, &stop1, space, 1.0); +- _addStopToGradient(gradient, 1.0, &stop2, space, 1.0); ++ _addStopToGradient(gradient, 0.0, stop1, space, 1.0); ++ _addStopToGradient(gradient, 1.0, stop2, space, 1.0); + } + } else if (type == _POPPLER_FUNCTION_TYPE_STITCHING) { + auto stitchingFunc = static_cast<_POPPLER_CONST StitchingFunction*>(func); +@@ -1269,7 +1277,7 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + // Add stops from all the stitched functions + GfxColor prev_color, color; + svgGetShadingColor(shading, bounds[0], &prev_color); +- _addStopToGradient(gradient, bounds[0], &prev_color, space, 1.0); ++ _addStopToGradient(gradient, bounds[0], prev_color, space, 1.0); + for ( int i = 0 ; i < num_funcs ; i++ ) { + svgGetShadingColor(shading, bounds[i + 1], &color); + // Add stops +@@ -1279,14 +1287,14 @@ bool SvgBuilder::_addGradientStops(Inkscape::XML::Node *gradient, GfxShading *sh + expE = (bounds[i + 1] - bounds[i])/expE; // approximate exponential as a single straight line at x=1 + if (encode[2*i] == 0) { // normal sequence + auto offset = (bounds[i + 1] - expE) / max_bound; +- _addStopToGradient(gradient, offset, &prev_color, space, 1.0); ++ _addStopToGradient(gradient, offset, prev_color, space, 1.0); + } else { // reflected sequence + auto offset = (bounds[i] + expE) / max_bound; +- _addStopToGradient(gradient, offset, &color, space, 1.0); ++ _addStopToGradient(gradient, offset, color, space, 1.0); + } + } + } +- _addStopToGradient(gradient, bounds[i + 1] / max_bound, &color, space, 1.0); ++ _addStopToGradient(gradient, bounds[i + 1] / max_bound, color, space, 1.0); + prev_color = color; + } + } else { // Unsupported function type +diff --git a/src/extension/internal/pdfinput/svg-builder.h b/src/extension/internal/pdfinput/svg-builder.h +index c4b217f58e..348f3a2ce3 100644 +--- a/src/extension/internal/pdfinput/svg-builder.h ++++ b/src/extension/internal/pdfinput/svg-builder.h +@@ -186,7 +186,7 @@ private: + // Pattern creation + gchar *_createPattern(GfxPattern *pattern, GfxState *state, bool is_stroke=false); + gchar *_createGradient(GfxShading *shading, const Geom::Affine pat_matrix, bool for_shading = false); +- void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor *color, GfxColorSpace *space, ++ void _addStopToGradient(Inkscape::XML::Node *gradient, double offset, GfxColor &color, GfxColorSpace *space, + double opacity); + bool _addGradientStops(Inkscape::XML::Node *gradient, GfxShading *shading, + _POPPLER_CONST Function *func); +@@ -239,6 +239,7 @@ private: + static bool _attrEqual(Inkscape::XML::Node *a, Inkscape::XML::Node *b, char const *attr); + + // Colors ++ std::string convertGfxColor(const GfxColor &color, GfxColorSpace *space); + std::string convertGfxColor(const GfxColor *color, GfxColorSpace *space); + std::string _getColorProfile(cmsHPROFILE hp); + diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index 183c2c52ef412..839ec6db93d29 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -398,6 +398,34 @@ stdenv.mkDerivation (finalAttrs: { # Don't detect Qt paths from qmake, so our patched-in onese are used ./dont-detect-qt-paths-from-qmake.patch + + # Fix build with Poppler 26.02 + (fetchpatch2 { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-still/-/raw/25.8.7-2/fix_build_with_poppler_26.02.0.patch"; + hash = "sha256-IInhSoqTemDITB+AtkvVa9eGbodTbUGSpMMpC9N/mmg="; + }) + # Fix build with Poppler 26.04 + (fetchpatch2 { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-still/-/raw/25.8.7-2/fix_build_with_poppler_26.04.0.patch"; + hash = "sha256-I9owj/NTCTi6ISszuasH410NLlhunPn/Ig22tenu8tw="; + }) + # Fix build with Poppler 26.05 + (fetchpatch2 { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-still/-/raw/25.8.7-2/fix_build_with_poppler_26.05.0.patch"; + hash = "sha256-7wdiciTf/LrTk0MibBBYGliWRCvK1rtTGESgH7db1I4="; + }) + # Fix build with Poppler 26.06 + (fetchpatch2 { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-still/-/raw/25.8.7-3/fix_build_with_poppler_26.06.0.patch"; + hash = "sha256-j66IsrzaqQ55MRVzhlw25guuoDtxx1D4XeJsBhgWP2c="; + }) + ] + ++ lib.optionals (variant != "fresh") [ + # Fix build with Poppler 26.01 + (fetchpatch2 { + url = "https://gitlab.archlinux.org/archlinux/packaging/packages/libreoffice-still/-/raw/25.8.7-2/fix_build_with_poppler_26.01.0.patch"; + hash = "sha256-5JTTvJFIV5MG0Gz7y46wAr3q9tWdSVoZ9TJQlMJVqBc="; + }) ] ++ lib.optionals (variant != "collabora" && variant != "collabora-coda") [ # Revert part of https://github.com/LibreOffice/core/commit/6f60670877208612b5ea320b3677480ef6508abb that broke zlib linking diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index a5f7e9e861aad..cee47f70a0621 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -105,11 +105,25 @@ let substituteInPlace plugins/micromega/sos.ml --replace "; csdp" "; ${csdp}/bin/csdp" substituteInPlace plugins/micromega/coq_micromega.ml --replace "System.is_in_system_path \"csdp\"" "true" ''; + dune = + if lib.versions.isEq coq-version "8.20" then + args.dune.override { version = "3.21.1"; } + else + args.dune; ocamlPackages = if customOCamlPackages != null then customOCamlPackages else lib.switch coq-version [ + { + case = lib.versions.isEq "8.20"; + out = ocamlPackages_4_14.overrideScope ( + self: super: { + inherit dune; + dune_3 = dune; + } + ); + } { case = lib.versions.range "8.16" "9.1"; out = ocamlPackages_4_14; diff --git a/pkgs/applications/video/obs-studio/plugins/obs-vaapi/default.nix b/pkgs/applications/video/obs-studio/plugins/obs-vaapi/default.nix index fd7837eb5cc30..840c5a50ac76e 100644 --- a/pkgs/applications/video/obs-studio/plugins/obs-vaapi/default.nix +++ b/pkgs/applications/video/obs-studio/plugins/obs-vaapi/default.nix @@ -36,7 +36,6 @@ stdenv.mkDerivation rec { # - We need "getLib" instead of default derivation, otherwise it brings gstreamer-bin; # - without gst-plugins-base it won't even show proper errors in logs; # - Without gst-plugins-bad it won't find element "vapostproc"; - # - gst-vaapi adds "VA-API" to "Encoder type"; # Tip: "could not link appsrc to videoconvert1" can mean a lot of things, enable GST_DEBUG=2 for help. passthru.obsWrapperArguments = let @@ -48,7 +47,6 @@ stdenv.mkDerivation rec { gstreamer gst-plugins-base gst-plugins-bad - gst-vaapi ]; # Fix output directory diff --git a/pkgs/build-support/bintools-wrapper/setup-hook.sh b/pkgs/build-support/bintools-wrapper/setup-hook.sh index 93aa7825f9a91..1d67e65baf203 100644 --- a/pkgs/build-support/bintools-wrapper/setup-hook.sh +++ b/pkgs/build-support/bintools-wrapper/setup-hook.sh @@ -60,7 +60,8 @@ do if PATH=$_PATH type -p "@targetPrefix@${cmd}" > /dev/null then - export "${cmd^^}${role_post}=@targetPrefix@${cmd}"; + upper_case="$(echo "$cmd" | tr "a-z" "A-Z")" + export "${upper_case}${role_post}=@targetPrefix@${cmd}"; fi done diff --git a/pkgs/build-support/build-mozilla-mach/153-cbindgen-0.29.4-compat.patch b/pkgs/build-support/build-mozilla-mach/153-cbindgen-0.29.4-compat.patch new file mode 100644 index 0000000000000..84238f025fc6c --- /dev/null +++ b/pkgs/build-support/build-mozilla-mach/153-cbindgen-0.29.4-compat.patch @@ -0,0 +1,36 @@ +commit c4aab1ba6aadd6985fcd271679d2118f094ec876 +Author: Emilio Cobos Álvarez +Date: Tue Jun 9 22:04:44 2026 +0000 + + Bug 2046162 - Remove some redundant pub qualifiers. r=gfx-reviewers,aosmond + + The enum is not public so this doesn't change behavior but a patch I'm + working on in cbindgen gets a bit confused with this. + + Differential Revision: https://phabricator.services.mozilla.com/D305678 + +diff --git a/gfx/wr/webrender/src/texture_cache.rs b/gfx/wr/webrender/src/texture_cache.rs +index e14c26bd3190..77e1f3a312ac 100644 +--- a/gfx/wr/webrender/src/texture_cache.rs ++++ b/gfx/wr/webrender/src/texture_cache.rs +@@ -273,9 +273,9 @@ enum BudgetType { + } + + impl BudgetType { +- pub const COUNT: usize = 7; ++ const COUNT: usize = 7; + +- pub const VALUES: [BudgetType; BudgetType::COUNT] = [ ++ const VALUES: [BudgetType; BudgetType::COUNT] = [ + BudgetType::SharedColor8Linear, + BudgetType::SharedColor8Nearest, + BudgetType::SharedColor8Glyphs, +@@ -285,7 +285,7 @@ impl BudgetType { + BudgetType::Standalone, + ]; + +- pub const PRESSURE_COUNTERS: [usize; BudgetType::COUNT] = [ ++ const PRESSURE_COUNTERS: [usize; BudgetType::COUNT] = [ + profiler::ATLAS_COLOR8_LINEAR_PRESSURE, + profiler::ATLAS_COLOR8_NEAREST_PRESSURE, + profiler::ATLAS_COLOR8_GLYPHS_PRESSURE, diff --git a/pkgs/build-support/build-mozilla-mach/default.nix b/pkgs/build-support/build-mozilla-mach/default.nix index 67312aa0e1866..cee18f7439ef0 100644 --- a/pkgs/build-support/build-mozilla-mach/default.nix +++ b/pkgs/build-support/build-mozilla-mach/default.nix @@ -58,6 +58,7 @@ in pkg-config, pkgsCross, # wasm32 rlbox python3, + python313, runCommand, rustc, rust-cbindgen, @@ -340,6 +341,11 @@ buildStdenv.mkDerivation { # https://bugzilla.mozilla.org/show_bug.cgi?id=1985509 ./140-bindgen-string-view.patch ] + ++ lib.optionals (lib.versionAtLeast version "140" && lib.versionOlder version "140.13") [ + # https://github.com/mozilla/cbindgen/issues/1165 + # https://bugzilla.mozilla.org/show_bug.cgi?id=2046162 + ./153-cbindgen-0.29.4-compat.patch + ] ++ extraPatches; postPatch = '' @@ -364,7 +370,7 @@ buildStdenv.mkDerivation { makeBinaryWrapper nodejs perl - python3 + (if lib.versionAtLeast version "143.0" then python3 else python313) rust-cbindgen rustPlatform.bindgenHook rustc diff --git a/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh b/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh index 865e0d0548203..d5515604c0bcd 100644 --- a/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh +++ b/pkgs/build-support/cc-wrapper/add-clang-cc-cflags-before.sh @@ -36,6 +36,6 @@ elif [[ $0 != *cpp ]]; then fi fi -if [[ "@darwinMinVersion@" ]]; then +if [[ "@darwinMinVersion@" ]] && [ "@isFlang@" != 1 ]; then extraBefore+=(-Werror=unguarded-availability) fi diff --git a/pkgs/build-support/cc-wrapper/add-flags.sh b/pkgs/build-support/cc-wrapper/add-flags.sh index a86f65d03f972..4b9f71af4eab0 100644 --- a/pkgs/build-support/cc-wrapper/add-flags.sh +++ b/pkgs/build-support/cc-wrapper/add-flags.sh @@ -11,6 +11,8 @@ var_templates_list=( NIX_CXXSTDLIB_COMPILE NIX_CXXSTDLIB_LINK NIX_GNATFLAGS_COMPILE + NIX_FFLAGS_COMPILE + NIX_FFLAGS_COMPILE_BEFORE ) var_templates_bool=( NIX_ENFORCE_NO_NATIVE diff --git a/pkgs/build-support/cc-wrapper/cc-wrapper.sh b/pkgs/build-support/cc-wrapper/cc-wrapper.sh index 246c1b1f65f6e..2d36278b59fab 100644 --- a/pkgs/build-support/cc-wrapper/cc-wrapper.sh +++ b/pkgs/build-support/cc-wrapper/cc-wrapper.sh @@ -44,7 +44,7 @@ while (( "$n" < "$nParams" )); do case "$p" in -[cSEM] | -MM) dontLink=1 ;; - -cc1) cc1=1 ;; + -cc1 | -fc1 ) cc1=1 ;; -nostdinc) cInclude=0 cxxInclude=0 ;; -nostdinc++) cxxInclude=0 ;; -nostdlib) cxxLibrary=0 ;; @@ -185,9 +185,19 @@ fi source @out@/nix-support/add-hardening.sh -# Add the flags for the C compiler proper. -extraAfter=(${hardeningCFlagsAfter[@]+"${hardeningCFlagsAfter[@]}"} $NIX_CFLAGS_COMPILE_@suffixSalt@) -extraBefore=(${hardeningCFlagsBefore[@]+"${hardeningCFlagsBefore[@]}"} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@) +# Add the flags for the compiler proper. Flang reads its user-supplied +# flags from the Fortran-specific NIX_FFLAGS_COMPILE channel so that +# C-only flags injected by setup hooks (e.g. -frandom-seed= from +# reproducible-builds.sh, which Flang does not accept) never reach the +# Fortran driver. This mirrors the NIX_GNATFLAGS_COMPILE channel that +# the Ada/GNAT wrapper uses for the same reason. +if [ "@isFlang@" = 1 ]; then + extraAfter=(${hardeningCFlagsAfter[@]+"${hardeningCFlagsAfter[@]}"} $NIX_FFLAGS_COMPILE_@suffixSalt@) + extraBefore=(${hardeningCFlagsBefore[@]+"${hardeningCFlagsBefore[@]}"} $NIX_FFLAGS_COMPILE_BEFORE_@suffixSalt@) +else + extraAfter=(${hardeningCFlagsAfter[@]+"${hardeningCFlagsAfter[@]}"} $NIX_CFLAGS_COMPILE_@suffixSalt@) + extraBefore=(${hardeningCFlagsBefore[@]+"${hardeningCFlagsBefore[@]}"} $NIX_CFLAGS_COMPILE_BEFORE_@suffixSalt@) +fi if [ "$dontLink" != 1 ]; then linkType=$(checkLinkType $NIX_LDFLAGS_BEFORE_@suffixSalt@ "${params[@]}" ${NIX_CFLAGS_LINK_@suffixSalt@:-} $NIX_LDFLAGS_@suffixSalt@) diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix index fd857d0c152d3..617bd299a41d6 100644 --- a/pkgs/build-support/cc-wrapper/default.nix +++ b/pkgs/build-support/cc-wrapper/default.nix @@ -26,6 +26,8 @@ nixSupport ? { }, isGNU ? false, isClang ? cc.isClang or false, + isFlang ? cc.isFlang or false, + isAlireGNAT ? false, isZig ? cc.isZig or false, isArocc ? cc.isArocc or false, isCcache ? cc.isCcache or false, @@ -314,6 +316,17 @@ let tune = if targetPlatform ? gcc.tune then findBestTuneApproximation targetPlatform.gcc.tune else null; + tlsDialect = + if + # Support status on non-Linux systems is a bit unclear. + targetPlatform.isLinux + # Support added in https://github.com/llvm/llvm-project/commit/36b4a9ccd9f7e04010476e6b2a311f2052a4ac20 (19.1.0) + && (isClang -> versionAtLeast ccVersion "19.1") + then + (if targetPlatform.isx86 then "gnu2" else null) + else + null; + # Machine flags. These are necessary to support # TODO: We should make a way to support miscellaneous machine @@ -351,7 +364,13 @@ let # TODO: clang on powerpcspe also needs a condition: https://github.com/llvm/llvm-project/issues/71356 # https://releases.llvm.org/18.1.6/tools/clang/docs/ReleaseNotes.html#loongarch-support ((targetPlatform.isLoongArch64 && isClang) -> versionAtLeast ccVersion "18.1") - ) "-mcmodel=${targetPlatform.gcc.cmodel}"; + ) "-mcmodel=${targetPlatform.gcc.cmodel}" + # Enable TLSDESC. This needs to be supported by the libc and bintools. + # See: https://maskray.me/blog/2021-02-14-all-about-thread-local-storage + # Aarch64 uses TLSDESC by default and the option is completely ignored (at least on LLVM). + # TODO: Enable by default in GCC via --with-tls since https://gcc.gnu.org/cgit/gcc/commit/?id=96a291c4bb0b8a00b0a125e6a60f60072ffe53a7 (GCC 16). + # No equivalent build-time option for LLVM yet. + ++ optional (tlsDialect != null) "-mtls-dialect=${tlsDialect}"; defaultHardeningFlags = bintools.defaultHardeningFlags or [ ]; @@ -387,7 +406,9 @@ let # # TODO: Drop `mangle-NIX_STORE-in-__FILE__.patch` from GCC and make # this unconditional once the upstream bug is fixed. - useMacroPrefixMap = !isGNU; + useMacroPrefixMap = !isGNU && !isFlang; + systemIncludeFlag = if isFlang || isArocc then "-I" else "-idirafter"; + fortifyIncludeFlag = if isFlang then "-I" else "-isystem"; in assert includeFortifyHeaders' -> fortify-headers != null; @@ -574,10 +595,18 @@ stdenvNoCC.mkDerivation { '' + optionalString cc.langFortran or false '' - wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran - ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77 - ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}f77 - export named_fc=${targetPrefix}gfortran + if [ -e $ccPath/${targetPrefix}gfortran ]; then + wrap ${targetPrefix}gfortran $wrapper $ccPath/${targetPrefix}gfortran + ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}g77 + ln -sv ${targetPrefix}gfortran $out/bin/${targetPrefix}f77 + export named_fc=${targetPrefix}gfortran + elif [ -e $ccPath/${targetPrefix}flang ]; then + wrap ${targetPrefix}flang $wrapper $ccPath/${targetPrefix}flang + export named_fc=${targetPrefix}flang + elif [ -e $ccPath/flang ]; then + wrap ${targetPrefix}flang $wrapper $ccPath/flang + export named_fc=${targetPrefix}flang + fi '' + optionalString cc.langGo or false '' @@ -709,13 +738,11 @@ stdenvNoCC.mkDerivation { touch "$out/nix-support/libc-cflags" touch "$out/nix-support/libc-ldflags" '' - + optionalString (!isArocc) '' + + optionalString (!isArocc && !(isAlireGNAT && targetPlatform.isDarwin)) '' echo "-B${libc_lib}${libc.libdir or "/lib/"}" >> $out/nix-support/libc-crt1-cflags '' + '' - include "-${ - if isArocc then "I" else "idirafter" - }" "${libc_dev}${libc.incdir or "/include"}" >> $out/nix-support/libc-cflags + include "${systemIncludeFlag}" "${libc_dev}${libc.incdir or "/include"}" >> $out/nix-support/libc-cflags '' + optionalString isGNU '' for dir in "${cc}"/lib/gcc/*/*/include-fixed; do @@ -723,9 +750,9 @@ stdenvNoCC.mkDerivation { done '' + optionalString (libc.w32api or null != null) '' - echo '-idirafter ${lib.getDev libc.w32api}${ + include "${systemIncludeFlag}" "${lib.getDev libc.w32api}${ libc.incdir or "/include/w32api" - }' >> $out/nix-support/libc-cflags + }" >> $out/nix-support/libc-cflags '' + '' @@ -740,7 +767,7 @@ stdenvNoCC.mkDerivation { # like option that forces the libc headers before all -idirafter, # hence -isystem here. + optionalString includeFortifyHeaders' '' - include -isystem "${fortify-headers}/include" >> $out/nix-support/libc-cflags + include "${fortifyIncludeFlag}" "${fortify-headers}/include" >> $out/nix-support/libc-cflags '' ) @@ -761,7 +788,7 @@ stdenvNoCC.mkDerivation { # already knows how to find its own libstdc++, and adding # additional -isystem flags will confuse gfortran (see # https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903) - + optionalString (libcxx == null && isClang && (useGccForLibs && gccForLibs.langCC or false)) '' + + optionalString (libcxx == null && isClang && useGccForLibs && (cc.langCC or false)) '' for dir in ${gccForLibs}/include/c++/*; do include -cxx-isystem "$dir" >> $out/nix-support/libcxx-cxxflags done @@ -786,7 +813,9 @@ stdenvNoCC.mkDerivation { # ${cc_solib}/lib64 (even though it does actually search there...).. # This confuses libtool. So add it to the compiler tool search # path explicitly. - + optionalString (!nativeTools && !isArocc) '' + # Injecting CFlags and LDFlags causes duplicate rpath at linking + # stage for Alire GNAT. Skip adding flags here. + + optionalString (!nativeTools && !isArocc && !isAlireGNAT) '' ccLDFlags=() ccCFlags=() if [ -e "${cc_solib}/lib64" -a ! -L "${cc_solib}/lib64" ]; then @@ -801,7 +830,6 @@ stdenvNoCC.mkDerivation { touch "$out/nix-support/gnat-cflags" touch "$out/nix-support/gnat-ldflags" basePath=$(echo $cc/lib/*/*/*) - ccCFlags+=("-B$basePath" "-I$basePath/adainclude") gnatCFlags="-I$basePath/adainclude -I$basePath/adalib" echo "$gnatCFlags" >> $out/nix-support/gnat-cflags @@ -828,6 +856,7 @@ stdenvNoCC.mkDerivation { optionalString ( (cc.isClang or false) + && !isFlang && !(cc.isROCm or false) && !targetPlatform.isDarwin && !targetPlatform.isAndroid @@ -862,7 +891,8 @@ stdenvNoCC.mkDerivation { let enable_fp = !targetPlatform.isx86_32 && !targetPlatform.isS390; enable_leaf_fp = - enable_fp + !isFlang + && enable_fp && ( targetPlatform.isx86_64 || targetPlatform.isAarch64 @@ -928,7 +958,7 @@ stdenvNoCC.mkDerivation { # well with multi line flags, so make the flags single line again + '' for flags in "$out/nix-support"/*flags*; do - substituteInPlace "$flags" --replace $'\n' ' ' + substituteInPlace "$flags" --replace-quiet $'\n' ' ' done substituteAll ${./add-flags.sh} $out/nix-support/add-flags.sh @@ -974,6 +1004,7 @@ stdenvNoCC.mkDerivation { env = { inherit isClang; + inherit isFlang; # for substitution in utils.bash # TODO(@sternenseemann): invent something cleaner than passing in "" in case of absence diff --git a/pkgs/build-support/node/fetch-pnpm-deps/default.nix b/pkgs/build-support/node/fetch-pnpm-deps/default.nix index 6fccc4a68e792..fc1bafcb1b0c0 100644 --- a/pkgs/build-support/node/fetch-pnpm-deps/default.nix +++ b/pkgs/build-support/node/fetch-pnpm-deps/default.nix @@ -65,6 +65,10 @@ in builtins.elem fetcherVersion supportedFetcherVersions || throw "fetchPnpmDeps `fetcherVersion` is not set to a supported value (${lib.concatStringsSep ", " (map toString supportedFetcherVersions)}), see https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion."; + assert + !(fetcherVersion == 3 && lib.versionAtLeast pnpm.version "11.0.0") + || throw "fetchPnpmDeps `fetcherVersion = 3` is no longer supported for `pnpm_11`. Please upgrade to the latest, see https://nixos.org/manual/nixpkgs/stable/#javascript-pnpm-fetcherVersion."; + stdenvNoCC.mkDerivation ( finalAttrs: ( @@ -167,6 +171,13 @@ in if [[ ${toString fetcherVersion} -ge 4 ]]; then sqlite3 "$storePath/v11/index.db" .dump > "$storePath/v11/index.db.sql" rm "$storePath/v11/index.db" + ${lib.optionalString (lib.versionAtLeast sqlite.version "3.53.0") '' + # SQLite 3.53.0 refactored code around the dump generation, that changed + # BLOB data type representations from `X'...'` to `x'...'`, breaking existing hashes. + # This change was made in http://github.com/sqlite/sqlite/commit/d2424338b05f2766034f91c03009c8f0d78bc937 + # and the following command reverts the dump to the old format: + sed -i "s/,x'/,X'/g" "$storePath/v11/index.db.sql" + ''} fi fi diff --git a/pkgs/build-support/node/prefetch-npm-deps/default.nix b/pkgs/build-support/node/prefetch-npm-deps/default.nix index 12c56a58b6ec3..eb73907343de6 100644 --- a/pkgs/build-support/node/prefetch-npm-deps/default.nix +++ b/pkgs/build-support/node/prefetch-npm-deps/default.nix @@ -195,6 +195,28 @@ hash = "sha256-QGObVDd9qVtf/U78+ayP6RHVWsU+HXhg70BFblQ1PZs="; }; + + # Test lockfiles with file: dependencies + fileDependenciesV1 = makeTest { + name = "file-dependencies-lockfile-v1"; + + src = fetchurl { + url = "https://raw.githubusercontent.com/elbywan/wretch/970b19e0fcc3dd219b9f3fc247d8f34cc01979c6/package-lock.json"; + hash = "sha256-3vTMxc9M2TeiclUFYbG5eTzavSAXjAzz6N5v/1VM4Bc="; + }; + + hash = "sha256-4wTohTVWF49iQvdaUxNhwplfTVb53yFnAaUVA2xIXrc="; + }; + fileDependenciesV3 = makeTest { + name = "file-dependencies-lockfile-v3"; + + src = fetchurl { + url = "https://raw.githubusercontent.com/alam00000/bentopdf/146e3f07d4111e309d0b29bb949e78e44454be3b/package-lock.json"; + hash = "sha256-9Ea5ctJYbClxStYNhSfSpsO/P99/4CQK58PLK5e6PoQ="; + }; + + hash = "sha256-1xWkzAzZXd9f4sY9xFHLfj482ZCs2oKFJ79C+Iy7RFY="; + }; }; meta = { diff --git a/pkgs/build-support/node/prefetch-npm-deps/src/main.rs b/pkgs/build-support/node/prefetch-npm-deps/src/main.rs index 2882aee9ec206..b65db0492c3ea 100644 --- a/pkgs/build-support/node/prefetch-npm-deps/src/main.rs +++ b/pkgs/build-support/node/prefetch-npm-deps/src/main.rs @@ -238,6 +238,7 @@ fn fixup_lockfile( .values_mut() { if let Some(Value::String(resolved)) = package.get("resolved") + && !resolved.starts_with("file:") && let Some(Value::String(integrity)) = package.get("integrity") { if resolved.starts_with("git+") { @@ -286,6 +287,7 @@ fn fixup_v1_deps( .as_object() .expect("v1 dep must be object") .get("resolved") + && !resolved.starts_with("file:") && let Some(Value::String(integrity)) = dep .as_object() .expect("v1 dep must be object") @@ -509,6 +511,10 @@ mod tests { "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", "integrity": "sha512-aaa" }, + "baz": { + "resolved": "file:baz.tar.gz", + "integrity": "sha512-bbb" + }, "foo-bad": { "resolved": "foo", "integrity": "sha1-foo" @@ -534,6 +540,10 @@ mod tests { "bar": { "resolved": "git+ssh://git@github.com/NixOS/nixpkgs.git", }, + "baz": { + "resolved": "file:baz.tar.gz", + "integrity": "sha512-bbb" + }, "foo-bad": { "resolved": "foo", "integrity": "sha512-foo" diff --git a/pkgs/build-support/node/prefetch-npm-deps/src/parse/mod.rs b/pkgs/build-support/node/prefetch-npm-deps/src/parse/mod.rs index 3e6f5019ea335..6f76dd7f59df9 100644 --- a/pkgs/build-support/node/prefetch-npm-deps/src/parse/mod.rs +++ b/pkgs/build-support/node/prefetch-npm-deps/src/parse/mod.rs @@ -25,10 +25,10 @@ pub fn lockfile( let mut packages = lock::packages(content) .context("failed to extract packages from lockfile")? .into_par_iter() - .map(|p| { + .filter_map(|p| { let n = p.name.clone().unwrap(); - Package::from_lock(p).with_context(|| format!("failed to parse data for {n}")) + Package::from_lock(p).with_context(|| format!("failed to parse data for {n}")).transpose() }) .collect::>>()?; @@ -124,7 +124,7 @@ enum Specifics { } impl Package { - fn from_lock(pkg: lock::Package) -> anyhow::Result { + fn from_lock(pkg: lock::Package) -> anyhow::Result> { let mut resolved = match pkg .resolved .expect("at this point, packages should have URLs") @@ -133,6 +133,10 @@ impl Package { UrlOrString::String(_) => panic!("at this point, all packages should have URLs"), }; + if resolved.scheme() == "file" { + return Ok(None); + } + let specifics = match get_hosted_git_url(&resolved)? { Some(hosted) => { let body = util::get_url_body_with_retry(&hosted)?; @@ -174,12 +178,12 @@ impl Package { }, }; - Ok(Package { + Ok(Some(Package { name: pkg.name.unwrap(), version: pkg.version, url: resolved, specifics, - }) + })) } pub fn tarball(&self) -> anyhow::Result> { diff --git a/pkgs/build-support/rust/fetch-cargo-vendor.nix b/pkgs/build-support/rust/fetch-cargo-vendor.nix index 8d554a8dc3e22..37a37f7b7bd2e 100644 --- a/pkgs/build-support/rust/fetch-cargo-vendor.nix +++ b/pkgs/build-support/rust/fetch-cargo-vendor.nix @@ -3,7 +3,7 @@ stdenvNoCC, runCommand, writers, - python3Packages, + python3, cargo, gitMinimal, nix-prefetch-git, @@ -11,6 +11,16 @@ }: let + python = python3.override { + self = python; + packageOverrides = final: prev: { + # The ast-serialize package, a dependency for mypy, depends on + # fetchCargoVendor and is part of the bootstrap chain for requests. + charset-normalizer = prev.charset-normalizer.override { withMypyc = false; }; + }; + }; + python3Packages = python.pkgs; + replaceWorkspaceValues = writers.writePython3Bin "replace-workspace-values" { libraries = with python3Packages; [ tomli diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix index 73c2782cfe07c..7212578e74050 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix @@ -76,7 +76,136 @@ makeSetupHook { ]; }; - # The wrapper for executable files should add path to dconf GIO module. + # Simple derivation containing a program and a daemon, but split over multiple outputs. + basic-multiple-outputs = stdenv.mkDerivation { + name = "basic-multiple-outputs"; + + src = sample-project; + + outputs = [ + "out" + "lib" + ]; + + strictDeps = true; + nativeBuildInputs = [ wrapGAppsHook3 ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + + postInstall = '' + mkdir -p $lib + mv $out/libexec $lib + # Wrapper will want to append this to XDG_DATA_DIRS, but should not cause a cyclic dependency; + # i.e. only "out" will be wrapped. + mkdir -p $out/share + ''; + }; + + # Simple derivation containing a program and a daemon, but using a non-default output + # Executables in "bin" should be handled correctly automatically + basic-bin-output = stdenv.mkDerivation { + name = "basic-bin-output"; + + src = sample-project; + + outputs = [ + "bin" + "dev" + "lib" + "out" + ]; + + strictDeps = true; + nativeBuildInputs = [ wrapGAppsHook3 ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + + postInstall = '' + mkdir -p $lib + mv $out/libexec $lib + mkdir -p $bin + mv $out/bin $bin + ''; + }; + + # Simple derivation containing a program and a daemon, but using a non-default output + basic-other-outputs = stdenv.mkDerivation { + name = "basic-other-outputs"; + + src = sample-project; + + outputs = [ + "dev" + "lib" + "out" + ]; + + strictDeps = true; + nativeBuildInputs = [ wrapGAppsHook3 ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + + wrapGAppsInOutputs = [ + "dev" + "lib" + ]; + + postInstall = '' + mkdir -p $lib + mv $out/libexec $lib + mkdir -p $dev + mv $out/bin $dev + ''; + }; + + # Simple derivation containing a program and a daemon, but using non-default outputs + # that are explicitly referenced via wrapGAppsInOutputs + basic-other-outputs-structuredattrs = stdenv.mkDerivation { + name = "basic-other-outputs-structuredAttrs"; + + __structuredAttrs = true; + + src = sample-project; + + outputs = [ + "dev" + "lib" + "out" + ]; + + strictDeps = true; + nativeBuildInputs = [ wrapGAppsHook3 ]; + + installFlags = [ + "bin-foo" + "libexec-bar" + ]; + + wrapGAppsInOutputs = [ + "dev" + "lib" + ]; + + postInstall = '' + mkdir -p $lib + mv $out/libexec $lib + mkdir -p $dev + mv $out/bin $dev + ''; + }; + + # Simple derivation containing a program and a daemon, but using non-default outputs + # that are explicitly referenced via wrapGAppsInOutputs, while structuredAttrs are enabled + # so that it is a proper array. basic-contains-dconf = let tested = basic; @@ -92,6 +221,64 @@ makeSetupHook { '' ); + # The wrapper for executable files should add path to dconf GIO module. + basic-multiple-outputs-contains-dconf = + let + tested = basic-multiple-outputs; + in + testLib.runTest "basic-multiple-outputs-contains-dconf" ( + testLib.skip stdenv.hostPlatform.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + '' + ); + + # The wrapper for executable files should add path to dconf GIO module. + basic-bin-output-contains-dconf = + let + tested = basic-bin-output; + in + testLib.runTest "basic-bin-output-contains-dconf" ( + testLib.skip stdenv.hostPlatform.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + '' + ); + + # The wrapper for executable files should add path to dconf GIO module. + basic-other-outputs-contains-dconf = + let + tested = basic-other-outputs; + in + testLib.runTest "basic-other-outputs-contains-dconf" ( + testLib.skip stdenv.hostPlatform.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested.dev}/bin/foo" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested.lib}/libexec/bar" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + '' + ); + + # The wrapper for executable files should add path to dconf GIO module. + basic-other-outputs-contains-dconf-structuredattrs = + let + tested = basic-other-outputs-structuredattrs; + in + testLib.runTest "basic-other-outputs-structuredattrs-contains-dconf" ( + testLib.skip stdenv.hostPlatform.isDarwin '' + ${expectSomeLineContainingYInFileXToMentionZ "${tested.dev}/bin/foo" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + ${expectSomeLineContainingYInFileXToMentionZ "${tested.lib}/libexec/bar" "GIO_EXTRA_MODULES" + "${dconf.lib}/lib/gio/modules" + } + '' + ); + basic-contains-gdk-pixbuf = let tested = basic; diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh index 7487dabd5aadf..ef2c02dff02e9 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh @@ -42,13 +42,36 @@ wrapGApp() { wrapProgram "$program" "${gappsWrapperArgs[@]}" "$@" } +_wrapGAppsHookMayRunForOutput() { + local -r output="$1" + if [[ -v wrapGAppsInOutputs ]]; then + local allowedOutput + # Support both structuredAttrs on and off + local -a allowedOutputs + concatTo allowedOutputs wrapGAppsInOutputs + for allowedOutput in "${allowedOutputs[@]}"; do + [ "$allowedOutput" = "$output" ] && return 0 + done + else + [ "$outputBin" = "$output" ] && return 0 + fi + return 1 + } + +declare -gA wrapGAppsHookHasRunForOutput + # Note: $gappsWrapperArgs still gets defined even if ${dontWrapGApps-} is set. +# $output is brought into scope via fixupPhase() in pkgs/stdenv/generic/setup.sh wrapGAppsHook() { - # guard against running multiple times (e.g. due to propagation) - [ -z "$wrapGAppsHookHasRun" ] || return 0 - wrapGAppsHookHasRun=1 + # guard against running multiple times for the same output (e.g. due to propagation) + [ "${wrapGAppsHookHasRunForOutput["$output"]:-}" = 1 ] && return 0 + wrapGAppsHookHasRunForOutput["$output"]=1 + # guard against running for outputs we don't want to run it for + _wrapGAppsHookMayRunForOutput "$output" || return 0 if [[ -z "${dontWrapGApps:-}" ]]; then + local targetDirsThatExist targetDirsRealPath targetDirs targetDir + targetDirsThatExist=() targetDirsRealPath=() @@ -69,6 +92,7 @@ wrapGAppsHook() { # wrap links to binaries that point outside targetDirs # Note: links to binaries within targetDirs do not need # to be wrapped as the binaries have already been wrapped + local linkPathReal targetPath if [[ ${#targetDirsThatExist[@]} -ne 0 ]]; then find "${targetDirsThatExist[@]}" -type l -xtype f -executable -print0 | while IFS= read -r -d '' linkPath; do diff --git a/pkgs/by-name/ab/abseil-cpp_202505/package.nix b/pkgs/by-name/ab/abseil-cpp_202505/package.nix index cb354cd50a3d3..9dd41332758ee 100644 --- a/pkgs/by-name/ab/abseil-cpp_202505/package.nix +++ b/pkgs/by-name/ab/abseil-cpp_202505/package.nix @@ -6,6 +6,8 @@ gtest, static ? stdenv.hostPlatform.isStatic, cxxStandard ? null, + testers, + validatePkgConfig, }: stdenv.mkDerivation (finalAttrs: { @@ -30,10 +32,19 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + validatePkgConfig + ]; buildInputs = [ gtest ]; + passthru.tests = { + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + }; + }; + meta = { description = "Open-source collection of C++ code designed to augment the C++ standard library"; homepage = "https://abseil.io/"; @@ -41,5 +52,208 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.asl20; platforms = lib.platforms.all; maintainers = [ lib.maintainers.GaetanLepage ]; + pkgConfigModules = [ + "absl_log_internal_check_op" + "absl_absl_check" + "absl_strerror" + "absl_common_policy_traits" + "absl_graphcycles_internal" + "absl_raw_hash_set" + "absl_random_internal_entropy_pool" + "absl_time_zone" + "absl_prefetch" + "absl_compressed_tuple" + "absl_nullability" + "absl_vlog_is_on" + "absl_utf8_for_code_point" + "absl_base_internal" + "absl_bad_variant_access" + "absl_flags_parse" + "absl_exponential_biased" + "absl_log_internal_nullstream" + "absl_log_internal_structured_proto" + "absl_log_internal_check_impl" + "absl_tracing_internal" + "absl_random_bit_gen_ref" + "absl_meta" + "absl_random_distributions" + "absl_numeric" + "absl_flat_hash_set" + "absl_random_internal_randen_hwaes_impl" + "absl_malloc_internal" + "absl_layout" + "absl_type_traits" + "absl_random_internal_mock_helpers" + "absl_log_streamer" + "absl_function_ref" + "absl_log" + "absl_dynamic_annotations" + "absl_non_temporal_memcpy" + "absl_random_internal_randen" + "absl_stacktrace" + "absl_log_internal_globals" + "absl_log_internal_strip" + "absl_atomic_hook" + "absl_flags_usage_internal" + "absl_log_internal_voidify" + "absl_synchronization" + "absl_debugging_internal" + "absl_bind_front" + "absl_crc_internal" + "absl_random_internal_platform" + "absl_flags_path_util" + "absl_hash_testing" + "absl_flags_commandlineflag_internal" + "absl_hashtable_debug" + "absl_hashtablez_sampler" + "absl_random_internal_randen_engine" + "absl_log_globals" + "absl_optional" + "absl_crc_cpu_detect" + "absl_demangle_internal" + "absl_node_hash_map" + "absl_core_headers" + "absl_statusor" + "absl_str_format_internal" + "absl_crc32c" + "absl_cordz_update_scope" + "absl_cordz_handle" + "absl_log_internal_nullguard" + "absl_numeric_representation" + "absl_log_internal_log_impl" + "absl_raw_hash_set_resize_impl" + "absl_random_internal_distribution_test_util" + "absl_kernel_timeout_internal" + "absl_random_internal_uniform_helper" + "absl_random_seed_sequences" + "absl_cordz_info" + "absl_spy_hash_state" + "absl_vlog_config_internal" + "absl_flags_program_name" + "absl_hashtable_debug_hooks" + "absl_crc_cord_state" + "absl_decode_rust_punycode" + "absl_debugging" + "absl_overload" + "absl_config" + "absl_random_internal_fast_uniform_bits" + "absl_raw_hash_map" + "absl_random_internal_randen_hwaes" + "absl_bad_any_cast" + "absl_variant" + "absl_has_ostream_operator" + "absl_span" + "absl_btree" + "absl_random_internal_distribution_caller" + "absl_failure_signal_handler" + "absl_any" + "absl_poison" + "absl_str_format" + "absl_cord" + "absl_random_internal_wide_multiply" + "absl_random_internal_pcg_engine" + "absl_flags_internal" + "absl_check" + "absl_random_internal_seed_material" + "absl_log_flags" + "absl_no_destructor" + "absl_low_level_hash" + "absl_hashtable_control_bytes" + "absl_periodic_sampler" + "absl_log_internal_format" + "absl_log_initialize" + "absl_random_internal_generate_real" + "absl_raw_logging_internal" + "absl_inlined_vector" + "absl_log_internal_log_sink_set" + "absl_log_internal_flags" + "absl_flat_hash_map" + "absl_scoped_mock_log" + "absl_cordz_functions" + "absl_random_mocking_bit_gen" + "absl_fast_type_id" + "absl_sample_recorder" + "absl_log_internal_message" + "absl_bits" + "absl_random_seed_gen_exception" + "absl_log_sink_registry" + "absl_flags_marshalling" + "absl_leak_check" + "absl_examine_stack" + "absl_status_matchers" + "absl_flags_commandlineflag" + "absl_absl_vlog_is_on" + "absl_any_invocable" + "absl_cleanup_internal" + "absl_log_severity" + "absl_random_internal_salted_seed_seq" + "absl_flags_config" + "absl_log_structured" + "absl_die_if_null" + "absl_fixed_array" + "absl_cord_internal" + "absl_endian" + "absl_strings_internal" + "absl_symbolize" + "absl_log_internal_config" + "absl_absl_log" + "absl_memory" + "absl_container_common" + "absl_compare" + "absl_civil_time" + "absl_int128" + "absl_log_internal_append_truncated" + "absl_cordz_statistics" + "absl_log_internal_fnmatch" + "absl_flags" + "absl_non_temporal_arm_intrinsics" + "absl_random_internal_traits" + "absl_base" + "absl_algorithm_container" + "absl_hash" + "absl_log_internal_conditions" + "absl_time" + "absl_node_slot_policy" + "absl_errno_saver" + "absl_random_internal_randen_slow" + "absl_charset" + "absl_bounded_utf8_length_sequence" + "absl_city" + "absl_bad_optional_access" + "absl_random_internal_nonsecure_base" + "absl_flags_usage" + "absl_utility" + "absl_iterator_traits_internal" + "absl_spinlock_wait" + "absl_pretty_function" + "absl_algorithm" + "absl_log_sink" + "absl_status" + "absl_demangle_rust" + "absl_node_hash_set" + "absl_hash_policy_traits" + "absl_flags_private_handle_accessor" + "absl_cord_test_helpers" + "absl_strings" + "absl_log_internal_proto" + "absl_inlined_vector_internal" + "absl_iterator_traits_test_helper_internal" + "absl_random_random" + "absl_flags_reflection" + "absl_scoped_set_env" + "absl_throw_delegate" + "absl_hash_function_defaults" + "absl_weakly_mixed_integer" + "absl_cleanup" + "absl_random_internal_iostream_state_saver" + "absl_cordz_sample_token" + "absl_cordz_update_tracker" + "absl_string_view" + "absl_hash_container_defaults" + "absl_random_internal_fastmath" + "absl_log_internal_structured" + "absl_container_memory" + "absl_log_entry" + ]; }; }) diff --git a/pkgs/by-name/ab/abseil-cpp_202508/package.nix b/pkgs/by-name/ab/abseil-cpp_202508/package.nix index 47079240bfac3..4c5a7b415cfe3 100644 --- a/pkgs/by-name/ab/abseil-cpp_202508/package.nix +++ b/pkgs/by-name/ab/abseil-cpp_202508/package.nix @@ -6,6 +6,8 @@ gtest, static ? stdenv.hostPlatform.isStatic, cxxStandard ? null, + testers, + validatePkgConfig, }: stdenv.mkDerivation (finalAttrs: { @@ -35,10 +37,19 @@ stdenv.mkDerivation (finalAttrs: { strictDeps = true; - nativeBuildInputs = [ cmake ]; + nativeBuildInputs = [ + cmake + validatePkgConfig + ]; buildInputs = [ gtest ]; + passthru.tests = { + pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage.dev; + }; + }; + meta = { description = "Open-source collection of C++ code designed to augment the C++ standard library"; homepage = "https://abseil.io/"; @@ -46,5 +57,99 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.asl20; platforms = lib.platforms.all; maintainers = [ lib.maintainers.GaetanLepage ]; + pkgConfigModules = [ + "absl_base" + "absl_city" + "absl_civil_time" + "absl_cord_internal" + "absl_cord" + "absl_cordz_functions" + "absl_cordz_handle" + "absl_cordz_info" + "absl_cordz_sample_token" + "absl_crc_cord_state" + "absl_crc_cpu_detect" + "absl_crc_internal" + "absl_crc32c" + "absl_debugging_internal" + "absl_decode_rust_punycode" + "absl_demangle_internal" + "absl_demangle_rust" + "absl_die_if_null" + "absl_examine_stack" + "absl_exponential_biased" + "absl_failure_signal_handler" + "absl_flags_commandlineflag_internal" + "absl_flags_commandlineflag" + "absl_flags_config" + "absl_flags_internal" + "absl_flags_marshalling" + "absl_flags_parse" + "absl_flags_private_handle_accessor" + "absl_flags_program_name" + "absl_flags_reflection" + "absl_flags_usage_internal" + "absl_flags_usage" + "absl_graphcycles_internal" + "absl_hash" + "absl_hashtable_profiler" + "absl_hashtablez_sampler" + "absl_int128" + "absl_kernel_timeout_internal" + "absl_leak_check" + "absl_log_entry" + "absl_log_flags" + "absl_log_globals" + "absl_log_initialize" + "absl_log_internal_check_op" + "absl_log_internal_conditions" + "absl_log_internal_fnmatch" + "absl_log_internal_format" + "absl_log_internal_globals" + "absl_log_internal_log_sink_set" + "absl_log_internal_message" + "absl_log_internal_nullguard" + "absl_log_internal_proto" + "absl_log_internal_structured_proto" + "absl_log_severity" + "absl_log_sink" + "absl_malloc_internal" + "absl_periodic_sampler" + "absl_poison" + "absl_profile_builder" + "absl_random_distributions" + "absl_random_internal_distribution_test_util" + "absl_random_internal_entropy_pool" + "absl_random_internal_platform" + "absl_random_internal_randen_hwaes_impl" + "absl_random_internal_randen_hwaes" + "absl_random_internal_randen_slow" + "absl_random_internal_randen" + "absl_random_internal_seed_material" + "absl_random_seed_gen_exception" + "absl_random_seed_sequences" + "absl_raw_hash_set" + "absl_raw_logging_internal" + "absl_scoped_mock_log" + "absl_scoped_set_env" + "absl_spinlock_wait" + "absl_stacktrace" + "absl_status_matchers" + "absl_status" + "absl_statusor" + "absl_str_format_internal" + "absl_strerror" + "absl_string_view" + "absl_strings_internal" + "absl_strings" + "absl_symbolize" + "absl_synchronization" + "absl_throw_delegate" + "absl_time_zone" + "absl_time" + "absl_tracing_internal" + "absl_utf8_for_code_point" + "absl_vlog_config_internal" + ]; }; }) diff --git a/pkgs/by-name/af/afew/package.nix b/pkgs/by-name/af/afew/package.nix index 00349a77af677..d5aa042494114 100644 --- a/pkgs/by-name/af/afew/package.nix +++ b/pkgs/by-name/af/afew/package.nix @@ -19,7 +19,7 @@ python3Packages.buildPythonApplication (finalAttrs: { nativeBuildInputs = with python3Packages; [ sphinxHook - setuptools + setuptools_80 setuptools-scm ]; diff --git a/pkgs/by-name/al/alerta-server/package.nix b/pkgs/by-name/al/alerta-server/package.nix index a8109b35fd336..0c83ccd4fbc60 100644 --- a/pkgs/by-name/al/alerta-server/package.nix +++ b/pkgs/by-name/al/alerta-server/package.nix @@ -7,14 +7,16 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pname = "alerta-server"; version = "9.0.1"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; hash = "sha256-v4+0l5Sx9RTxmNFnKCoKrWFl1xu1JIRZ/kiI6zi/y0I="; }; - propagatedBuildInputs = with python3.pkgs; [ + build-system = [ python3.pkgs.setuptools_80 ]; + + dependencies = with python3.pkgs; [ bcrypt blinker cryptography diff --git a/pkgs/by-name/al/alsa-lib/package.nix b/pkgs/by-name/al/alsa-lib/package.nix index 8d0bffd2b12f8..4c02e2a8d7ebf 100644 --- a/pkgs/by-name/al/alsa-lib/package.nix +++ b/pkgs/by-name/al/alsa-lib/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchurl, - fetchpatch, alsa-topology-conf, alsa-ucm-conf, testers, @@ -11,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "alsa-lib"; - version = "1.2.15.3"; + version = "1.2.16"; src = fetchurl { url = "mirror://alsa/lib/alsa-lib-${finalAttrs.version}.tar.bz2"; - hash = "sha256-ewedYU1YLK3nq42yNk5lJx0Id6N9+HV6xKwMiXC+hh4="; + hash = "sha256-EiseMWbVX+GbzeZWU116NvKrEOZscsatL0PyD/3tCpY="; }; patches = [ @@ -24,11 +23,6 @@ stdenv.mkDerivation (finalAttrs: { # "libs" field to declare locations for both native and 32bit plugins, in # order to support apps with 32bit sound running on x86_64 architecture. ./alsa-plugin-conf-multilib.patch - (fetchpatch { - name = "CVE-2026-25068.patch"; - url = "https://github.com/alsa-project/alsa-lib/commit/5f7fe33002d2d98d84f72e381ec2cccc0d5d3d40.patch"; - hash = "sha256-4memtcg+FDOctX6wgiCdmnlG+IUS+5rL1f3LcsWS5lw="; - }) ]; enableParallelBuilding = true; @@ -66,6 +60,8 @@ stdenv.mkDerivation (finalAttrs: { "alsa-topology" ]; platforms = with lib.platforms; linux ++ freebsd; - maintainers = [ ]; + maintainers = with lib.maintainers; [ + nick-linux + ]; }; }) diff --git a/pkgs/by-name/al/alsa-ucm-conf/package.nix b/pkgs/by-name/al/alsa-ucm-conf/package.nix index 5f0e2130bb841..eace84e7b18f3 100644 --- a/pkgs/by-name/al/alsa-ucm-conf/package.nix +++ b/pkgs/by-name/al/alsa-ucm-conf/package.nix @@ -1,7 +1,6 @@ { directoryListingUpdater, fetchurl, - fetchpatch, lib, stdenvNoCC, coreutils, @@ -10,19 +9,15 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "alsa-ucm-conf"; - version = "1.2.15.3"; + version = "1.2.16"; src = fetchurl { url = "mirror://alsa/lib/alsa-ucm-conf-${finalAttrs.version}.tar.bz2"; - hash = "sha256-n3noE8CPyGz6Rt11xPzaGkpRtILbJgfh/PqvuS9YijE="; + hash = "sha256-rLyXLW5x7fo0Xnav3xDDmf0PHzz5DYSv20z1G/xKZUg="; }; patches = [ - # fix for typo in 1.2.15.3 – remove with subsequent release - (fetchpatch { - url = "https://github.com/alsa-project/alsa-ucm-conf/commit/95377000e849259764f37295e0ddd58fd8a55a76.patch"; - hash = "sha256-o2qR69jiGXFWM0mxeIhXd+tCvGikYqnoalce1UOVppw="; - }) + ]; dontBuild = true; @@ -63,6 +58,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ roastiek mvs + nick-linux ]; platforms = lib.platforms.linux ++ lib.platforms.freebsd; diff --git a/pkgs/by-name/al/alsa-utils/package.nix b/pkgs/by-name/al/alsa-utils/package.nix index ff627a73cc834..4476b715cdcf0 100644 --- a/pkgs/by-name/al/alsa-utils/package.nix +++ b/pkgs/by-name/al/alsa-utils/package.nix @@ -32,11 +32,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "alsa-utils"; - version = "1.2.15.2"; + version = "1.2.16"; src = fetchurl { url = "mirror://alsa/utils/alsa-utils-${finalAttrs.version}.tar.bz2"; - hash = "sha256-eqqvv7AZQhE+wMMeUfcFkQ6BB5IFCIyi+PE3o4aeGjo="; + hash = "sha256-CSOZ1eh0mh1eGI45MVdSHOxLdWk7YOu3m7znKM/yIyw="; }; nativeBuildInputs = [ @@ -98,6 +98,8 @@ stdenv.mkDerivation (finalAttrs: { ]; platforms = lib.platforms.linux; - maintainers = [ ]; + maintainers = with lib.maintainers; [ + nick-linux + ]; }; }) diff --git a/pkgs/by-name/am/amf-headers/package.nix b/pkgs/by-name/am/amf-headers/package.nix index b1f1dcc0e174d..a03ba327914d1 100644 --- a/pkgs/by-name/am/amf-headers/package.nix +++ b/pkgs/by-name/am/amf-headers/package.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "amf-headers"; - version = "1.5.0"; + version = "1.5.2"; src = fetchFromGitHub { owner = "GPUOpen-LibrariesAndSDKs"; repo = "AMF"; tag = "v${finalAttrs.version}"; - sha256 = "sha256-ZVC1e4S5CNpfl3ewHR9aVfYwxDBE7/BJ6OyH2kF00fQ="; + sha256 = "sha256-+jVYm/Zmt+1bzKnKTiClgoMRsyhqpuKZj79DvGHpPTM="; }; installPhase = '' diff --git a/pkgs/by-name/ap/apparmor-parser/package.nix b/pkgs/by-name/ap/apparmor-parser/package.nix index 47927ab6477ba..de39713f0c103 100644 --- a/pkgs/by-name/ap/apparmor-parser/package.nix +++ b/pkgs/by-name/ap/apparmor-parser/package.nix @@ -6,6 +6,8 @@ bison, linuxHeaders ? stdenv.cc.libc.linuxHeaders, buildPackages, + zstd, + fetchpatch, # apparmor deps libapparmor, @@ -23,17 +25,27 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' patchShebangs . + + substituteInPlace init/rc.apparmor.functions \ + --replace-fail "/sbin/apparmor_parser" "$out/bin/apparmor_parser" \ + --replace-fail "/usr/sbin/aa-status" "${lib.getExe' apparmor-bin-utils "aa-status"}" + sed -i init/rc.apparmor.functions -e '2i . ${./fix-rc.apparmor.functions.sh}' + cd parser substituteInPlace Makefile \ --replace-fail "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h" - substituteInPlace rc.apparmor.functions \ - --replace-fail "/sbin/apparmor_parser" "$out/bin/apparmor_parser" # FIXME - substituteInPlace rc.apparmor.functions \ - --replace-fail "/usr/sbin/aa-status" "${lib.getExe' apparmor-bin-utils "aa-status"}" - sed -i rc.apparmor.functions -e '2i . ${./fix-rc.apparmor.functions.sh}' ''; + patches = [ + (fetchpatch { + # https://gitlab.com/apparmor/apparmor/-/merge_requests/2133 + # Patches generated yacc parser code to compile with format-security + url = "https://gitlab.com/apparmor/apparmor/-/commit/6bdec74d5e74660b97e00b4b8fafc014b05907b7.diff"; + hash = "sha256-7c5EFByrGIDj2lc31bRttyeybwndDm4iS4qdPMVaG/I="; + }) + ]; + nativeBuildInputs = [ bison flex @@ -42,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ libapparmor + zstd runtimeShellPackage ]; diff --git a/pkgs/by-name/ap/apparmor-profiles/package.nix b/pkgs/by-name/ap/apparmor-profiles/package.nix index db3c21009b4c6..7ecb3ba5cb3c0 100644 --- a/pkgs/by-name/ap/apparmor-profiles/package.nix +++ b/pkgs/by-name/ap/apparmor-profiles/package.nix @@ -1,7 +1,9 @@ { + lib, stdenv, which, callPackage, + python3, # apparmor deps libapparmor, @@ -28,9 +30,16 @@ stdenv.mkDerivation { apparmor-utils ]; + checkInputs = [ + python3 + ]; + preCheck = '' export USE_SYSTEM=1 export LOGPROF="aa-logprof --configdir ${callPackage ./test_config.nix { }} --no-check-mountpoint" + patchShebangs ../parser/tst + substituteInPlace ../parser/tst/test_profile.py \ + --replace-fail '../parser/apparmor_parser' '${lib.getExe apparmor-parser}' ''; doCheck = true; diff --git a/pkgs/by-name/ap/apple-sdk/common/plists.nix b/pkgs/by-name/ap/apple-sdk/common/plists.nix index a79581e7767d9..304f02c6ee4d7 100644 --- a/pkgs/by-name/ap/apple-sdk/common/plists.nix +++ b/pkgs/by-name/ap/apple-sdk/common/plists.nix @@ -28,26 +28,24 @@ let # These files are all based off of Xcode spec files found in # /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/PrivatePlugIns/IDEOSXSupportCore.ideplugin/Contents/Resources. - # Based off of the "MacOSX Architectures.xcspec" file. All i386 stuff - # is removed because NixPkgs only supports darwin-x86_64 and darwin-arm64. + # Based off of the "MacOSX Architectures.xcspec" file. All x86 stuff + # is removed because Nixpkgs only supports aarch64-darwin. Architectures = [ { Identifier = "Standard"; Type = "Architecture"; - Name = "Standard Architectures (Apple Silicon, 64-bit Intel)"; + Name = "Standard Architectures (Apple Silicon)"; RealArchitectures = [ "arm64" - "x86_64" ]; ArchitectureSetting = "ARCHS_STANDARD"; } { Identifier = "Universal"; Type = "Architecture"; - Name = "Universal (Apple Silicon, 64-bit Intel)"; + Name = "Universal (Apple Silicon)"; RealArchitectures = [ "arm64" - "x86_64" ]; ArchitectureSetting = "ARCHS_STANDARD_32_64_BIT"; } @@ -60,17 +58,16 @@ let { Identifier = "Standard64bit"; Type = "Architecture"; - Name = "Apple Silicon, 64-bit Intel"; + Name = "Apple Silicon"; RealArchitectures = [ "arm64" - "x86_64" ]; ArchitectureSetting = "ARCHS_STANDARD_64_BIT"; } { Identifier = stdenvNoCC.hostPlatform.darwinArch; Type = "Architecture"; - Name = "Apple Silicon or Intel 64-bit"; + Name = "Apple Silicon"; } { Identifier = "Standard_Including_64_bit"; @@ -78,7 +75,6 @@ let Name = "Standard Architectures (including 64-bit)"; RealArchitectures = [ "arm64" - "x86_64" ]; ArchitectureSetting = "ARCHS_STANDARD_INCLUDING_64_BIT"; } diff --git a/pkgs/by-name/ap/apple-sdk/common/propagate-inputs.nix b/pkgs/by-name/ap/apple-sdk/common/propagate-inputs.nix index f9551b5b9bad1..f6e9cf4e2ef23 100644 --- a/pkgs/by-name/ap/apple-sdk/common/propagate-inputs.nix +++ b/pkgs/by-name/ap/apple-sdk/common/propagate-inputs.nix @@ -48,17 +48,13 @@ in self: super: { # These packages are propagated only because other platforms include them in their libc (or otherwise by default). # Reducing the number of special cases required to support Darwin makes supporting it easier for package authors. - propagatedBuildInputs = - super.propagatedBuildInputs or [ ] - ++ [ - libiconv - darwin.libresolv - darwin.libsbuf - # Shipped with the SDK only as a library with no headers - (lib.getLib darwin.libutil) - ] - # x86_64-darwin links the object files from Csu when targeting very old releases - ++ lib.optionals stdenvNoCC.hostPlatform.isx86_64 [ darwin.Csu ]; + propagatedBuildInputs = super.propagatedBuildInputs or [ ] ++ [ + libiconv + darwin.libresolv + darwin.libsbuf + # Shipped with the SDK only as a library with no headers + (lib.getLib darwin.libutil) + ]; # The Darwin module for Swift requires certain headers to be included in the SDK (and not just be propagated). buildPhase = super.buildPhase or "" + '' diff --git a/pkgs/by-name/ap/apple-sdk/metadata/versions.json b/pkgs/by-name/ap/apple-sdk/metadata/versions.json index 3002a9226cc56..d655c7ebada93 100644 --- a/pkgs/by-name/ap/apple-sdk/metadata/versions.json +++ b/pkgs/by-name/ap/apple-sdk/metadata/versions.json @@ -17,10 +17,10 @@ }, "26": { "urls": [ - "https://swcdn.apple.com/content/downloads/32/53/047-96692-A_OAHIHT53YB/ybtshxmrcju8m2qvw3w5elr4rajtg1x3y3/CLTools_macOSNMOS_SDK.pkg", - "https://web.archive.org/web/20260406133131/https://swcdn.apple.com/content/downloads/32/53/047-96692-A_OAHIHT53YB/ybtshxmrcju8m2qvw3w5elr4rajtg1x3y3/CLTools_macOSNMOS_SDK.pkg" + "https://swcdn.apple.com/content/downloads/09/08/047-91568-A_Y1CFZWQCD4/4xekpyz43i26dbp4enxfro8eb1q7wiujh5/CLTools_macOSNMOS_SDK.pkg", + "https://web.archive.org/web/20260512015547/https://swcdn.apple.com/content/downloads/09/08/047-91568-A_Y1CFZWQCD4/4xekpyz43i26dbp4enxfro8eb1q7wiujh5/CLTools_macOSNMOS_SDK.pkg" ], - "version": "26.4", - "hash": "sha256-7nrbCv1pNlpzEqwZWVfUPCvDfXEJJNOl7ApkeFpIOC0=" + "version": "26.5", + "hash": "sha256-IkDNtiO7PP4GI6OszCNWE1Xb4iepCUKwQHYUyc9NgNA=" } } diff --git a/pkgs/by-name/ar/arrow-cpp/package.nix b/pkgs/by-name/ar/arrow-cpp/package.nix index e675f1a55df8c..3becc5f51f39f 100644 --- a/pkgs/by-name/ar/arrow-cpp/package.nix +++ b/pkgs/by-name/ar/arrow-cpp/package.nix @@ -80,7 +80,7 @@ let hash = "sha256-Xd6o3RT6Q0tPutV77J0P1x3F6U3RHdCBOKGUKtkQCKk="; }; - version = "23.0.0"; + version = "24.0.0"; in stdenv.mkDerivation (finalAttrs: { pname = "arrow-cpp"; @@ -90,7 +90,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "apache"; repo = "arrow"; rev = "apache-arrow-${version}"; - hash = "sha256-BluUlbtGJwvlrpN/c/KziOfFh5dvzZyuCy4JZkkFea4="; + hash = "sha256-qTdkzZegANNvtO7nbqXVC8hc7BexvmeFF/0l5VzRb8g="; }; sourceRoot = "${finalAttrs.src.name}/cpp"; @@ -305,6 +305,8 @@ stdenv.mkDerivation (finalAttrs: { "arrow-flight-integration-test" # File already exists in database: orc_proto.proto "arrow-orc-adapter-test" + # missing test fixture + "parquet-encryption-test" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # https://github.com/NixOS/nixpkgs/issues/460687 diff --git a/pkgs/by-name/au/authelia/sources.nix b/pkgs/by-name/au/authelia/sources.nix index d234fad15cfac..f5aa7aacb94c1 100644 --- a/pkgs/by-name/au/authelia/sources.nix +++ b/pkgs/by-name/au/authelia/sources.nix @@ -10,5 +10,5 @@ rec { hash = "sha256-JjpfNQsqtmSKXj14fQUJsiTgfkAlSHDfqUC/x+bE+fc="; }; vendorHash = "sha256-dZjsYqw/ABEn1y6tZgSjbmqamO4U20Ljj/dQMFruVjU="; - pnpmDepsHash = "sha256-syfPg62JrTh496xi39xW/CnIwpJYo+iU5sCPP3bD2Ys="; + pnpmDepsHash = "sha256-JeRolDKVf2EInZVAt/HpkurzgDcE592jF5stJ+qZY9U="; } diff --git a/pkgs/by-name/au/authelia/web.nix b/pkgs/by-name/au/authelia/web.nix index 9aa80ab2b8da8..0cb4a5747a5d5 100644 --- a/pkgs/by-name/au/authelia/web.nix +++ b/pkgs/by-name/au/authelia/web.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: { sourceRoot ; inherit pnpm; # This may be different than pkgs.pnpm - fetcherVersion = 3; + fetcherVersion = 4; hash = pnpmDepsHash; }; diff --git a/pkgs/by-name/av/avahi/package.nix b/pkgs/by-name/av/avahi/package.nix index 4a8a1f29cea2f..dc9b7fee4dc65 100644 --- a/pkgs/by-name/av/avahi/package.nix +++ b/pkgs/by-name/av/avahi/package.nix @@ -11,6 +11,7 @@ expat, gettext, glib, + autoconf-archive, autoreconfHook, libiconv, libevent, @@ -180,6 +181,12 @@ stdenv.mkDerivation rec { ]; + postPatch = '' + # Remove the vendored ACX_PTHREAD macro in favor of the more up-to-date + # implementation from autoconf-archive, especially to support static builds. + rm common/acx_pthread.m4 + ''; + depsBuildBuild = [ pkg-config ]; @@ -188,6 +195,7 @@ stdenv.mkDerivation rec { pkg-config gettext glib + autoconf-archive autoreconfHook ]; diff --git a/pkgs/by-name/aw/aws-c-http/package.nix b/pkgs/by-name/aw/aws-c-http/package.nix index 01b333b01b35d..9f0fd8c16f048 100644 --- a/pkgs/by-name/aw/aws-c-http/package.nix +++ b/pkgs/by-name/aw/aws-c-http/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "aws-c-http"; # nixpkgs-update: no auto update - version = "0.10.4"; + version = "0.11.0"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-c-http"; rev = "v${finalAttrs.version}"; - hash = "sha256-t9PoxOjgV9qLris+C18SaEwXodBGcgK591LZl0dajxU="; + hash = "sha256-SCdZfGIIHU6f0OArygZm0yY0wE6Hdx/JWvHZcK1DQOw="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/aw/aws-c-io/package.nix b/pkgs/by-name/aw/aws-c-io/package.nix index 5901957616647..960d79c9a43d2 100644 --- a/pkgs/by-name/aw/aws-c-io/package.nix +++ b/pkgs/by-name/aw/aws-c-io/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "aws-c-io"; # nixpkgs-update: no auto update - version = "0.22.0"; + version = "0.27.2"; src = fetchFromGitHub { owner = "awslabs"; repo = "aws-c-io"; rev = "v${finalAttrs.version}"; - hash = "sha256-NOEjXk4s/FV4CdmyXOr4Oh2y+pFNrUMP/Sy+X+fVQc4="; + hash = "sha256-0vzuSvJ/4you0YYnizjctKP5AcLm5sJieDOSCHwm1HM="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/aw/awscli2/package.nix b/pkgs/by-name/aw/awscli2/package.nix index 68c4209fb5019..c30ddabf05f29 100644 --- a/pkgs/by-name/aw/awscli2/package.nix +++ b/pkgs/by-name/aw/awscli2/package.nix @@ -12,6 +12,7 @@ awscli2, addBinToPathHook, writableTmpDirAsHomeHook, + cacert, }: let @@ -74,6 +75,7 @@ py.pkgs.buildPythonApplication rec { --replace-fail 'prompt-toolkit>=3.0.24,<3.0.52' 'prompt-toolkit>=3.0.24' \ --replace-fail 'ruamel_yaml>=0.15.0,<=0.19.1' 'ruamel_yaml>=0.15.0' \ --replace-fail 'ruamel_yaml_clib>=0.2.0,<=0.2.15' 'ruamel_yaml_clib>=0.2.0' \ + --replace-fail 'urllib3>=1.25.4,<=2.6.3' 'urllib3>=1.25.4' \ --replace-fail 'wcwidth<0.3.0' 'wcwidth>=0.3.0' substituteInPlace requirements-base.txt \ @@ -83,6 +85,8 @@ py.pkgs.buildPythonApplication rec { # with a configure script, but we don't as we provide all of the packages # through PYTHONPATH sed -i '/pip>=/d' requirements/bootstrap.txt + + ln -sf ${cacert}/etc/ssl/certs/ca-no-trust-rules-bundle.crt awscli/botocore/cacert.pem ''; nativeBuildInputs = [ diff --git a/pkgs/by-name/bl/blas/package.nix b/pkgs/by-name/bl/blas/package.nix index 01ad1839c339b..51deec6c5c645 100644 --- a/pkgs/by-name/bl/blas/package.nix +++ b/pkgs/by-name/bl/blas/package.nix @@ -3,6 +3,7 @@ stdenv, lapack-reference, openblas, + openmpCheckPhaseHook, isILP64 ? false, blasProvider ? openblas, }: @@ -186,6 +187,10 @@ stdenv.mkDerivation { "dev" ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + meta = (blasProvider'.meta or { }) // { description = "${lib.getName blasProvider} with just the BLAS C and FORTRAN ABI"; }; diff --git a/pkgs/by-name/bl/bluez/package.nix b/pkgs/by-name/bl/bluez/package.nix index 20a9bcce09dac..81ec00b045ca3 100644 --- a/pkgs/by-name/bl/bluez/package.nix +++ b/pkgs/by-name/bl/bluez/package.nix @@ -44,6 +44,11 @@ stdenv.mkDerivation (finalAttrs: { url = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/patch/?id=21e13976f2e375d701b8b7032ba5c1b2e56c305f"; hash = "sha256-JrdmYiC+U0KeMP8oVg12Z8CvkMEKWBVgiiUACx0E7dY="; }) + (fetchpatch2 { + name = "support-libical-4.0.patch"; + url = "https://git.kernel.org/pub/scm/bluetooth/bluez.git/patch/?id=e60d07255327db3fc4e3a28d7fcc792cd42c34d0"; + hash = "sha256-1uw+5nTjh+t1/L++fRNIlQWblwDwTJifH0EvAn3dym8="; + }) ./lreadline.patch ]; diff --git a/pkgs/by-name/bm/bmake/package.nix b/pkgs/by-name/bm/bmake/package.nix index c6bede9709448..5d86756285274 100644 --- a/pkgs/by-name/bm/bmake/package.nix +++ b/pkgs/by-name/bm/bmake/package.nix @@ -67,6 +67,8 @@ stdenv.mkDerivation (finalAttrs: { ) "export" ); + __structuredAttrs = true; + strictDeps = true; doCheck = true; @@ -93,7 +95,11 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - ./boot-strap --prefix=$out -o . op=install + # `boot-strap op=install` runs the built bmake, which breaks cross builds. + install -Dm755 bmake $out/bin/bmake + install -Dm644 bmake.1 $man/share/man/man1/bmake.1 + install -Dm755 -d $out/share/mk + sh mk/install-mk -v -m 444 $out/share/mk runHook postInstall ''; diff --git a/pkgs/by-name/bo/boost-build/package.nix b/pkgs/by-name/bo/boost-build/package.nix index aec23ef6a32ef..de41ba27871ad 100644 --- a/pkgs/by-name/bo/boost-build/package.nix +++ b/pkgs/by-name/bo/boost-build/package.nix @@ -35,7 +35,9 @@ stdenv.mkDerivation { patches = useBoost.boostBuildPatches or [ ] ++ lib.optional ( - useBoost ? version && lib.versionAtLeast useBoost.version "1.81" + useBoost ? version + && lib.versionAtLeast useBoost.version "1.81" + && lib.versionOlder useBoost.version "1.88" ) ./fix-clang-target.patch; postPatch = diff --git a/pkgs/by-name/by/byacc/package.nix b/pkgs/by-name/by/byacc/package.nix index 8da6559f602b0..12b19dd74a146 100644 --- a/pkgs/by-name/by/byacc/package.nix +++ b/pkgs/by-name/by/byacc/package.nix @@ -6,14 +6,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "byacc"; - version = "20241231"; + version = "20260126"; src = fetchurl { urls = [ "https://invisible-mirror.net/archives/byacc/byacc-${finalAttrs.version}.tgz" "https://invisible-island.net/archives/byacc/byacc-${finalAttrs.version}.tgz" ]; - hash = "sha256-GSwvrgSNTn9RS6RRYn+cTmEnZQmfgZwZGR+f3j5glnM="; + hash = "sha256-thjF+0TC9fBIhD25D30bJPePR7B5E8jHuoyULT6ySwA="; }; configureFlags = [ diff --git a/pkgs/by-name/c-/c-ares/package.nix b/pkgs/by-name/c-/c-ares/package.nix index 4e7a3b2e97ba0..35d956d9d5b10 100644 --- a/pkgs/by-name/c-/c-ares/package.nix +++ b/pkgs/by-name/c-/c-ares/package.nix @@ -20,6 +20,9 @@ stdenv.mkDerivation rec { pname = "c-ares"; version = "1.34.6"; + strictDeps = true; + __structuredAttrs = true; + src = fetchurl { # Note: tag name varies in some versions, e.g. v1.30.0, c-ares-1_17_0. url = "https://github.com/c-ares/c-ares/releases/download/v${version}/c-ares-${version}.tar.gz"; diff --git a/pkgs/by-name/ca/cacert/package.nix b/pkgs/by-name/ca/cacert/package.nix index 8dd727f6ded39..df6b082a92bca 100644 --- a/pkgs/by-name/ca/cacert/package.nix +++ b/pkgs/by-name/ca/cacert/package.nix @@ -20,7 +20,7 @@ let lib.concatStringsSep "\n\n" extraCertificateStrings ); - version = "3.123"; + version = "3.125"; meta = { homepage = "https://firefox-source-docs.mozilla.org/security/nss/runbooks/rootstore.html#root-store-consumers"; description = "Bundle of X.509 certificates of public Certificate Authorities (CA)"; @@ -52,7 +52,7 @@ stdenv.mkDerivation { "https://hg-edge.mozilla.org/projects/nss/raw-file/${tag}/${file}" "https://raw.githubusercontent.com/nss-dev/nss/refs/tags/${tag}/${file}" ]; - hash = "sha256-dxMO+RITdyhEVh+9OqMdQTslwqx/V2/qO8O7/375NIk="; + hash = "sha256-5XkSgI2u97Kw+k3yzPF+R66vJsg5o4+Fx2AD66/YZr0="; }; unpackPhase = '' diff --git a/pkgs/by-name/ca/cargo-auditable/builder.nix b/pkgs/by-name/ca/cargo-auditable/builder.nix index 348ff29ef61ad..a865d352943b5 100644 --- a/pkgs/by-name/ca/cargo-auditable/builder.nix +++ b/pkgs/by-name/ca/cargo-auditable/builder.nix @@ -16,11 +16,14 @@ lib.extendMkDerivation { auditable ? true, hash ? "", cargoHash ? "", + passthru ? { }, ... }: { inherit auditable pname; + __structuredAttrs = true; + src = fetchFromGitHub { owner = "rust-secure-code"; repo = "cargo-auditable"; @@ -39,13 +42,28 @@ lib.extendMkDerivation { # https://github.com/rust-secure-code/cargo-auditable/issues/235 "--skip=test_proc_macro" "--skip=test_self_hosting" - ]; + ] + # TODO: Clean up on `staging`. + ++ + lib.optionals + ( + stdenv.hostPlatform.isMusl + || stdenv.hostPlatform.isAarch32 + || stdenv.hostPlatform.isDarwin + || stdenv.hostPlatform.isMsvc + ) + [ + # Expects `linker = "rust-lld"` to work. + "--skip=test_bare_linker" + ]; postInstall = '' installManPage cargo-auditable/cargo-auditable.1 ''; - passthru.bootstrap = auditable-bootstrap; + passthru = passthru // { + bootstrap = auditable-bootstrap; + }; meta = { description = "Tool to make production Rust binaries auditable"; diff --git a/pkgs/by-name/ca/cargo-auditable/package.nix b/pkgs/by-name/ca/cargo-auditable/package.nix index b74e0abbd5158..064df430d3740 100644 --- a/pkgs/by-name/ca/cargo-auditable/package.nix +++ b/pkgs/by-name/ca/cargo-auditable/package.nix @@ -2,6 +2,7 @@ buildPackages, callPackage, makeRustPlatform, + nix-update-script, }: let # Need to use the build platform rustc and Cargo so that @@ -18,9 +19,9 @@ let auditable-bootstrap = bootstrap; }; - version = "0.7.2"; - hash = "sha256-hR6PjTOps8JSM7UbfGlCoZmmwtWExVqYwh4lxDiFWdc="; - cargoHash = "sha256-JEfnUJ9J6Xak3AOCwQCnu+v+3Wl3QbXX20qVFWB6040="; + version = "0.7.5"; + hash = "sha256-0VONJCv/msLcGenItWMLJ7DH79RTD6vsU9gX/nphh1g="; + cargoHash = "sha256-/iAYib+xDQSJ8B559/V7b994ErSUGsPSDx64jFF5B6I="; # cargo-auditable cannot be built with cargo-auditable until cargo-auditable is built bootstrap = auditableBuilder { @@ -32,4 +33,5 @@ in auditableBuilder { inherit version hash cargoHash; auditable = true; + passthru.updateScript = nix-update-script { }; } diff --git a/pkgs/by-name/ca/cargo-c/package.nix b/pkgs/by-name/ca/cargo-c/package.nix index effa2325438f3..1593340807525 100644 --- a/pkgs/by-name/ca/cargo-c/package.nix +++ b/pkgs/by-name/ca/cargo-c/package.nix @@ -12,19 +12,19 @@ let # this version may need to be updated along with package version - cargoVersion = "0.93.0"; + cargoVersion = "0.96.0"; in rustPlatform.buildRustPackage (finalAttrs: { pname = "cargo-c"; - version = "0.10.19"; + version = "0.10.22"; src = fetchCrate { inherit (finalAttrs) pname; version = "${finalAttrs.version}+cargo-${cargoVersion}"; - hash = "sha256-PrBmB+0tmU2MAUnRr+wx4g9hu0Y9i6WfR8U89bwiLVY="; + hash = "sha256-yqSrpBZUa0NmsPawYKKgywmbbG4zgguwfDF667s7zdo="; }; - cargoHash = "sha256-EM/vAfW/ucOfK/XmAQn9Zk75eFb7pp8uZoByKbALCyo="; + cargoHash = "sha256-yeJWZtkgCRB0ipyTslsGcJi9Fi/XoWziuv74exRhAIk="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/by-name/ca/catch2_3/package.nix b/pkgs/by-name/ca/catch2_3/package.nix index 525a410dbcba9..4c931652b6668 100644 --- a/pkgs/by-name/ca/catch2_3/package.nix +++ b/pkgs/by-name/ca/catch2_3/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation rec { pname = "catch2"; - version = "3.14.0"; + version = "3.15.0"; src = fetchFromGitHub { owner = "catchorg"; repo = "Catch2"; tag = "v${version}"; - hash = "sha256-tegAa+cNF7pJcW33B+VZ86ZlDG7dwS3o6QnN/XvTI2A="; + hash = "sha256-1GBzS8jgJXb82BMMRuHWqszB1Xwg6wohmCuINWE7QoU="; }; patches = lib.optionals stdenv.cc.isClang [ diff --git a/pkgs/by-name/cd/cdparanoia-iii/freebsd.patch b/pkgs/by-name/cd/cdparanoia-iii/freebsd.patch new file mode 100644 index 0000000000000..a66482a91e5aa --- /dev/null +++ b/pkgs/by-name/cd/cdparanoia-iii/freebsd.patch @@ -0,0 +1,45 @@ +From 368ea1fcdf4e8f9a5de4e7ade590242292ccb8fa Mon Sep 17 00:00:00 2001 +From: Alyssa Ross +Date: Mon, 15 Jun 2026 18:40:07 +0200 +Subject: [PATCH] Fix designated initializers in memcpy arguments + +On FreeBSD, memcpy is a macro, and the lack of parentheses causes a +compilation failure. +--- + interface/scsi_interface.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/interface/scsi_interface.c b/interface/scsi_interface.c +index adbb9bf..7805559 100644 +--- a/interface/scsi_interface.c ++++ b/interface/scsi_interface.c +@@ -674,7 +674,7 @@ static int scsi_read_toc (cdrom_drive *d){ + } + + for (i = first; i <= last; i++){ +- memcpy(cmd, (char []){ 0x43, 0, 0, 0, 0, 0, 0, 0, 12, 0}, 10); ++ memcpy(cmd, ((char []){ 0x43, 0, 0, 0, 0, 0, 0, 0, 12, 0}), 10); + cmd[1]=d->lun<<5; + cmd[6]=i; + +@@ -695,7 +695,7 @@ static int scsi_read_toc (cdrom_drive *d){ + } + } + +- memcpy(cmd, (char []){ 0x43, 0, 0, 0, 0, 0, 0, 0, 12, 0}, 10); ++ memcpy(cmd, ((char []){ 0x43, 0, 0, 0, 0, 0, 0, 0, 12, 0}), 10); + cmd[1]=d->lun<<5; + cmd[6]=0xAA; + +@@ -745,7 +745,7 @@ static int scsi_read_toc2 (cdrom_drive *d){ + } + + for (i = 0; i < tracks; i++){ +- memcpy(cmd, (char[]){ 0xe5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 10); ++ memcpy(cmd, ((char[]){ 0xe5, 0, 0, 0, 0, 0, 0, 0, 0, 0}), 10); + cmd[5]=i+1; + cmd[8]=255; + +-- +2.54.0 + diff --git a/pkgs/by-name/cd/cdparanoia-iii/package.nix b/pkgs/by-name/cd/cdparanoia-iii/package.nix index 39d5bfb97b32a..de38e46763c37 100644 --- a/pkgs/by-name/cd/cdparanoia-iii/package.nix +++ b/pkgs/by-name/cd/cdparanoia-iii/package.nix @@ -62,9 +62,10 @@ stdenv.mkDerivation (finalAttrs: { url = "https://salsa.debian.org/optical-media-team/cdparanoia/-/raw/f7bab3024c5576da1fdb7497abbd6abc8959a98c/debian/patches/04-endian.patch"; hash = "sha256-krfprwls0L3hsNfoj2j69J5k1RTKEQtzE0fLYG9EJKo="; }) + ./freebsd.patch ] ++ lib.optional stdenv.hostPlatform.isMusl ./utils.patch - ++ [ + ++ lib.optional (!stdenv.hostPlatform.isDarwin) [ (fetchpatch { url = "https://raw.githubusercontent.com/freebsd/freebsd-ports/42da4cdf2d9161fea8f7cdfc19aefda7707fadf4/audio/cdparanoia/files/patch-interface_low__interface.h"; hash = "sha256-bXrcRFCbU7/7/N+J8VGKGSxIB1m8XwoAlc/KTnt9wN0="; @@ -171,6 +172,9 @@ stdenv.mkDerivation (finalAttrs: { gpl2Plus lgpl21Plus ]; + maintainers = with lib.maintainers; [ + olduser101 + ]; platforms = lib.platforms.unix; mainProgram = "cdparanoia"; }; diff --git a/pkgs/by-name/ch/chiri/package.nix b/pkgs/by-name/ch/chiri/package.nix index 86cc50a708bb1..ffa912d6876da 100644 --- a/pkgs/by-name/ch/chiri/package.nix +++ b/pkgs/by-name/ch/chiri/package.nix @@ -55,8 +55,8 @@ rustPlatform.buildRustPackage ( pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; pnpm = pnpm-patched; - hash = "sha256-dxfoo5Ajjt7zUsdQojXhePHp0K2itpdjequvGqqnZ7k="; - fetcherVersion = 3; + hash = "sha256-1S1XR/E611LGivXpIK0kvkvXWPNqDzvFKPT7a1Qu1zg="; + fetcherVersion = 4; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/ci/citrix-workspace/package.nix b/pkgs/by-name/ci/citrix-workspace/package.nix index 79155f5fe2066..b9fb58c0cc6db 100644 --- a/pkgs/by-name/ci/citrix-workspace/package.nix +++ b/pkgs/by-name/ci/citrix-workspace/package.nix @@ -91,7 +91,6 @@ let gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly - gst_all_1.gst-vaapi ]; gstPluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" gstPackages; diff --git a/pkgs/by-name/cm/cmocka/package.nix b/pkgs/by-name/cm/cmocka/package.nix index 34cb30c206b1f..cae6effbbfbd0 100644 --- a/pkgs/by-name/cm/cmocka/package.nix +++ b/pkgs/by-name/cm/cmocka/package.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "cmocka"; - version = "2.0.1"; + version = "2.0.2"; src = fetchurl { url = "https://cmocka.org/files/${lib.versions.majorMinor finalAttrs.version}/cmocka-${finalAttrs.version}.tar.xz"; - hash = "sha256-PzUzOCuimrOr9cT0snt50WXw31HqWH3nSbEbaLQBkYA="; + hash = "sha256-OfkvNmvfPxoCr02nW0pcUt9sn35zbH1l3hMoP58O9BY="; }; patches = [ diff --git a/pkgs/by-name/cp/cpcm-x/package.nix b/pkgs/by-name/cp/cpcm-x/package.nix index 99484edfc1d25..7a50493654231 100644 --- a/pkgs/by-name/cp/cpcm-x/package.nix +++ b/pkgs/by-name/cp/cpcm-x/package.nix @@ -89,10 +89,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/by-name/cu/curlMinimal/fix-wakeup-consumption.patch b/pkgs/by-name/cu/curlMinimal/fix-wakeup-consumption.patch deleted file mode 100644 index 0bc04b60bb87a..0000000000000 --- a/pkgs/by-name/cu/curlMinimal/fix-wakeup-consumption.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 2a2104f3cff44bb28bb570a093be52bbeeed8f23 Mon Sep 17 00:00:00 2001 -From: Stefan Eissing -Date: Mon, 11 May 2026 14:56:04 +0200 -Subject: [PATCH] event: fix wakeup consumption - -The events on a multi wakeup socketpair were only consumed via -curl_multi_poll()/curl_multi_wait() but not in event based processing on -a curl_multi_socket() call. That led to busy loops as reported in - -Fixes #21547 -Reported-by: Earnestly on github -Closes #21549 ---- - lib/multi.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/lib/multi.c b/lib/multi.c -index be32740a7097..5e84133f13fd 100644 ---- a/lib/multi.c -+++ b/lib/multi.c -@@ -2703,6 +2703,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, - Curl_uint32_bset_remove(&multi->dirty, data->mid); - - if(data == multi->admin) { -+#ifdef ENABLE_WAKEUP -+ /* Consume any pending wakeup signals before processing. -+ * This is necessary for event based processing. See #21547 */ -+ (void)Curl_wakeup_consume(multi->wakeup_pair, TRUE); -+#endif - #ifdef USE_RESOLV_THREADED - Curl_async_thrdd_multi_process(multi); - #endif diff --git a/pkgs/by-name/cu/curlMinimal/package.nix b/pkgs/by-name/cu/curlMinimal/package.nix index a25ea809c62b0..832ffbbd04b63 100644 --- a/pkgs/by-name/cu/curlMinimal/package.nix +++ b/pkgs/by-name/cu/curlMinimal/package.nix @@ -84,7 +84,7 @@ assert stdenv.mkDerivation (finalAttrs: { pname = "curl"; - version = "8.20.0"; + version = "8.21.0"; src = fetchurl { urls = [ @@ -93,16 +93,9 @@ stdenv.mkDerivation (finalAttrs: { builtins.replaceStrings [ "." ] [ "_" ] finalAttrs.version }/curl-${finalAttrs.version}.tar.xz" ]; - hash = "sha256-Y/4twUi6DOromSLvg49+XJRicsLni3xZ+rS3nTziuJY="; + hash = "sha256-qhtmpw6s6D3GJFCHRWRsCK5WHeUSq0A63/uTrIf8cuY="; }; - patches = [ - # https://github.com/curl/curl/commit/2a2104f3cff44bb28bb570a093be52bbeeed8f23 - # According to , this fixes - # a performance regression, causing high CPU usage - ./fix-wakeup-consumption.patch - ]; - # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion # necessary for FreeBSD code path in configure postPatch = '' diff --git a/pkgs/by-name/da/dash/package.nix b/pkgs/by-name/da/dash/package.nix index eb5da071f472a..ada4d8812cb90 100644 --- a/pkgs/by-name/da/dash/package.nix +++ b/pkgs/by-name/da/dash/package.nix @@ -15,11 +15,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "dash"; - version = "0.5.13.3"; + version = "0.5.13.4"; src = fetchurl { url = "http://gondor.apana.org.au/~herbert/dash/files/dash-${finalAttrs.version}.tar.gz"; - hash = "sha256-qDcnwSmaxMPZ1Dl5OTs6TrACddVjauAlJueXnVHW+9E="; + hash = "sha256-0Q39Qc2lkWVWDbOcqRXCxKdjb/8EKB2NLfd62Sx1Pis="; }; strictDeps = true; diff --git a/pkgs/by-name/db/dbus/package.nix b/pkgs/by-name/db/dbus/package.nix index b754f292c7c35..264f6d944497c 100644 --- a/pkgs/by-name/db/dbus/package.nix +++ b/pkgs/by-name/db/dbus/package.nix @@ -129,6 +129,9 @@ stdenv.mkDerivation (finalAttrs: { "-Dselinux=disabled" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # D-Bus defaults to launchd-activation on Darwin, but that requires the launch agent be installed. It also breaks + # anything that uses `dbus-run-session` in tests. Changing the default aligns Darwin with other UNIX platforms. + "-Ddbus_session_bus_listen_address=unix:tmpdir=/tmp" # `launchctl` is only needed at runtime. Lie to `find_program` because it will always be present on a Darwin host. "--cross-file=${writeText "darwin.ini" '' [binaries] @@ -156,6 +159,14 @@ stdenv.mkDerivation (finalAttrs: { --replace-fail 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"' ''; + postInstall = lib.optionalString stdenv.hostPlatform.isDarwin '' + # For some reason, only these binaries reference the dylib by rpath instead of by an absolute install name. + for exe in bin/dbus-daemon bin/dbus-run-session libexec/dbus-daemon-launch-helper; do + install_name_tool "$out/$exe" \ + -change "@rpath/libdbus-1.3.dylib" "$lib/lib/libdbus-1.3.dylib" + done + ''; + postFixup = '' # It's executed from $lib by absolute path moveToOutput bin/dbus-launch "$lib" diff --git a/pkgs/by-name/de/deltachat-tauri/package.nix b/pkgs/by-name/de/deltachat-tauri/package.nix index 26cb46756bca9..1387196ffbae8 100644 --- a/pkgs/by-name/de/deltachat-tauri/package.nix +++ b/pkgs/by-name/de/deltachat-tauri/package.nix @@ -64,7 +64,6 @@ rustPlatform.buildRustPackage (finalAttrs: { gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad - gst_all_1.gst-vaapi gst_all_1.gstreamer libayatana-appindicator openssl diff --git a/pkgs/by-name/de/deterministic-uname/package.nix b/pkgs/by-name/de/deterministic-uname/package.nix index 771803f6b9b5e..f83c4ef9c0d51 100644 --- a/pkgs/by-name/de/deterministic-uname/package.nix +++ b/pkgs/by-name/de/deterministic-uname/package.nix @@ -46,6 +46,9 @@ replaceVarsWith { modDirVersion = if modDirVersion != "" then modDirVersion else "unknown"; }; + # coreutils uname is in initialPath, so ordinarily appears in PATH before packages in nativeBuildInputs. + setupHook = ./setup-hook.sh; + meta = { description = "Print certain system information (hardcoded with lib/system values)"; mainProgram = "uname"; diff --git a/pkgs/by-name/de/deterministic-uname/setup-hook.sh b/pkgs/by-name/de/deterministic-uname/setup-hook.sh new file mode 100644 index 0000000000000..c66623749a73a --- /dev/null +++ b/pkgs/by-name/de/deterministic-uname/setup-hook.sh @@ -0,0 +1,8 @@ +# PATH is overwritten after package setup hooks are run, +# so the variable change needs to be delayed until a phase. +# An entry in prePhases is the earliest possible, useful +# in case an unpack or patch hook attempts to run uname. +unamePreHook() { + export PATH="@out@/bin:$PATH" +} +appendToVar prePhases unamePreHook diff --git a/pkgs/by-name/df/dftd4/package.nix b/pkgs/by-name/df/dftd4/package.nix index c58a7400c4048..b4bc8271cf337 100644 --- a/pkgs/by-name/df/dftd4/package.nix +++ b/pkgs/by-name/df/dftd4/package.nix @@ -81,10 +81,6 @@ stdenv.mkDerivation (finalAttrs: { app/tester.py ''; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Generally Applicable Atomic-Charge Dependent London Dispersion Correction"; changelog = "https://github.com/dftd4/dftd4/releases/tag/${finalAttrs.src.tag}"; diff --git a/pkgs/tools/text/diffutils/gnulib-float-h-tests-port-to-C23-PowerPC-GCC.patch b/pkgs/by-name/di/diffutils/gnulib-float-h-tests-port-to-C23-PowerPC-GCC.patch similarity index 100% rename from pkgs/tools/text/diffutils/gnulib-float-h-tests-port-to-C23-PowerPC-GCC.patch rename to pkgs/by-name/di/diffutils/gnulib-float-h-tests-port-to-C23-PowerPC-GCC.patch diff --git a/pkgs/tools/text/diffutils/musl-llvm.patch b/pkgs/by-name/di/diffutils/musl-llvm.patch similarity index 100% rename from pkgs/tools/text/diffutils/musl-llvm.patch rename to pkgs/by-name/di/diffutils/musl-llvm.patch diff --git a/pkgs/tools/text/diffutils/default.nix b/pkgs/by-name/di/diffutils/package.nix similarity index 100% rename from pkgs/tools/text/diffutils/default.nix rename to pkgs/by-name/di/diffutils/package.nix diff --git a/pkgs/by-name/dj/djvulibre/package.nix b/pkgs/by-name/dj/djvulibre/package.nix index f6eb3ccbb140b..13563f3242b87 100644 --- a/pkgs/by-name/dj/djvulibre/package.nix +++ b/pkgs/by-name/dj/djvulibre/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "djvulibre"; - version = "3.5.29"; + version = "3.5.30"; src = fetchurl { url = "mirror://sourceforge/djvu/djvulibre-${finalAttrs.version}.tar.gz"; - hash = "sha256-07SwOuK9yoUWo2726ye3d/BSjJ7aJnRdmWKCSj/f7M8="; + hash = "sha256-7l5FfUz+vlZvlLmeXj08x/XHndt0HCrCui5FbwAylkQ="; }; outputs = [ diff --git a/pkgs/by-name/do/double-conversion/package.nix b/pkgs/by-name/do/double-conversion/package.nix index 7b31908b1d376..25df8ddcb8fa5 100644 --- a/pkgs/by-name/do/double-conversion/package.nix +++ b/pkgs/by-name/do/double-conversion/package.nix @@ -2,7 +2,6 @@ stdenv, lib, fetchFromGitHub, - fetchpatch, cmake, ninja, ctestCheckHook, @@ -11,34 +10,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "double-conversion"; - version = "3.3.1"; + version = "3.4.0"; src = fetchFromGitHub { owner = "google"; repo = "double-conversion"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-M80H+azCzQYa4/gBLWv5GNNhEuHsH7LbJ/ajwmACnrM="; + tag = "v${finalAttrs.version}"; + hash = "sha256-gxaPqQ51RyXZaTHkvh4RBpedPopcRiuWDoT+PPbI1uw="; }; - patches = [ - # Fix the build with CMake 4. - (fetchpatch { - name = "double-conversion-fix-cmake-4-1.patch"; - url = "https://github.com/google/double-conversion/commit/101e1ba89dc41ceb75090831da97c43a76cd2906.patch"; - hash = "sha256-VRmuNXdzt/I+gWbz5mwWkx5IGn8Vsl9WkdwRsuwZdkU="; - }) - (fetchpatch { - name = "double-conversion-fix-cmake-4-2.patch"; - url = "https://github.com/google/double-conversion/commit/0604b4c18815aadcf7f4b78dfa6bfcb91a634ed7.patch"; - hash = "sha256-cJBp1ou1O/bMQ/7kvcX52dWbUdhmPfQ9aWmEhQdyhis="; - }) - (fetchpatch { - name = "double-conversion-add-pkg-config.patch"; - url = "https://github.com/google/double-conversion/commit/ddfd18c58ecc32fc74afc1083bb8774240b54efb.patch"; - hash = "sha256-/pKCL19vS8fNwCm27yTNP+32ApHTH5dEGpnsMI11Lf4="; - }) - ]; - outputs = [ "out" "dev" @@ -68,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { pkgConfigModules = [ "double-conversion" ]; + changelog = "https://github.com/google/double-conversion/blob/${finalAttrs.src.tag}/Changelog"; description = "Binary-decimal and decimal-binary routines for IEEE doubles"; homepage = "https://github.com/google/double-conversion"; license = lib.licenses.bsd3; diff --git a/pkgs/by-name/do/doxygen/package.nix b/pkgs/by-name/do/doxygen/package.nix index eb701a89dc893..9ab45d795aa9d 100644 --- a/pkgs/by-name/do/doxygen/package.nix +++ b/pkgs/by-name/do/doxygen/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "doxygen"; - version = "1.16.1"; + version = "1.17.0"; src = fetchFromGitHub { owner = "doxygen"; repo = "doxygen"; tag = "Release_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; - hash = "sha256-MszJpYdXaC8BYK1lSV1LpJncKN1LrFoyJXZajpz0HIA="; + hash = "sha256-SSq/sFB9y2CFMeL58vgcHa2ulo+tPPUGT347ABoHoD4="; }; # https://github.com/doxygen/doxygen/issues/10928#issuecomment-2179320509 diff --git a/pkgs/by-name/du/duckdb/versions.json b/pkgs/by-name/du/duckdb/versions.json index 6b16dcfd94a2e..aa83cd89b6038 100644 --- a/pkgs/by-name/du/duckdb/versions.json +++ b/pkgs/by-name/du/duckdb/versions.json @@ -1,6 +1,6 @@ { - "version": "1.5.2", - "rev": "8a5851971fae891f292c2714d86046ee018e9737", - "hash": "sha256-FWoVF7s/n28NN1HtnO0Cr3YyoIDgJcWBtBiO7vWiSOU=", - "python_hash": "sha256-B14dXW5pPnToiKbSD9ACzNksIhBG+ui1P9l67Qyke8o=" + "version": "1.5.3", + "rev": "14eca11bd9d4a0de2ea0f078be588a9c1c5b279c", + "hash": "sha256-k7mtYXHS8IcBAuOCJ/09lPYLxF3RMODIeDaz3tKmQAA=", + "python_hash": "sha256-r0jfYIyBHN5z4QKKxS/yjnkGjUy/yg9Kt/O6adBbH7Q=" } diff --git a/pkgs/by-name/du/dune/package.nix b/pkgs/by-name/du/dune/package.nix index 2a5b9122740af..0f50adc7b00f7 100644 --- a/pkgs/by-name/du/dune/package.nix +++ b/pkgs/by-name/du/dune/package.nix @@ -3,7 +3,7 @@ stdenv, fetchurl, buildPackages, - version ? "3.21.1", + version ? "3.23.1", }: let # needed for pkgsStatic @@ -21,6 +21,8 @@ stdenv.mkDerivation { "https://github.com/ocaml/dune/releases/download/${version}/dune-${sfx}${version}.tbz"; hash = { + "3.23.1" = "sha256-k7TnFX9rqP62HPxfhgCO/SxZA3unigF9krSr8wYyNI8="; + "3.22.2" = "sha256-wsz4vGsXr6R8RQKXNXSWMDqnyGgOMpt52Yxo41AToRg="; "3.21.1" = "sha256-hPeoLG2ApxJPOEfppInoDPvq+3vtNXOsAShu9W/QjZQ="; "2.9.3" = "sha256:1ml8bxym8sdfz25bx947al7cvsi2zg5lcv7x9w6xb01cmdryqr9y"; } diff --git a/pkgs/by-name/ed/edgetx/package.nix b/pkgs/by-name/ed/edgetx/package.nix index 5205b6d8a56c9..4d38926996d1c 100644 --- a/pkgs/by-name/ed/edgetx/package.nix +++ b/pkgs/by-name/ed/edgetx/package.nix @@ -34,7 +34,7 @@ let pillow lz4 jinja2 - libclang + clang ] ); diff --git a/pkgs/by-name/el/element-desktop/package.nix b/pkgs/by-name/el/element-desktop/package.nix index 1ca0250cacc64..327c5e1029f39 100644 --- a/pkgs/by-name/el/element-desktop/package.nix +++ b/pkgs/by-name/el/element-desktop/package.nix @@ -46,8 +46,8 @@ stdenv.mkDerivation (finalAttrs: { src ; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-Cxc2/NpOpkXavDvBgaU6Douud7AO06jt1KjuaLnZh8M="; + fetcherVersion = 4; + hash = "sha256-wTOdipfWUH0gjTTHJTP8np2D77bNoFCThCg5eRMJXS8="; }; env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; diff --git a/pkgs/by-name/el/element-web-unwrapped/package.nix b/pkgs/by-name/el/element-web-unwrapped/package.nix index 3cb26541f8c4c..fda412a8495cd 100644 --- a/pkgs/by-name/el/element-web-unwrapped/package.nix +++ b/pkgs/by-name/el/element-web-unwrapped/package.nix @@ -38,8 +38,8 @@ stdenv.mkDerivation (finalAttrs: { pname = "element"; inherit (finalAttrs) version src; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-Cxc2/NpOpkXavDvBgaU6Douud7AO06jt1KjuaLnZh8M="; + fetcherVersion = 4; + hash = "sha256-wTOdipfWUH0gjTTHJTP8np2D77bNoFCThCg5eRMJXS8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/el/elfutils/package.nix b/pkgs/by-name/el/elfutils/package.nix index 65b1371f1c985..a66af1cb091b0 100644 --- a/pkgs/by-name/el/elfutils/package.nix +++ b/pkgs/by-name/el/elfutils/package.nix @@ -28,11 +28,11 @@ # TODO: Look at the hardcoded paths to kernel, modules etc. stdenv.mkDerivation (finalAttrs: { pname = "elfutils"; - version = "0.194"; + version = "0.195"; src = fetchurl { url = "https://sourceware.org/elfutils/ftp/${finalAttrs.version}/elfutils-${finalAttrs.version}.tar.bz2"; - hash = "sha256-CeL/Az05uqiziKLX+8U5C/3pmuO3xnx9qvdDP7zw8B4="; + hash = "sha256-N2Kf338fPcKBjhOPyiuAlBd9bC0PcB07tlClYSGNwCY="; }; patches = [ @@ -58,12 +58,10 @@ stdenv.mkDerivation (finalAttrs: { sha256 = "sha256-7daehJj1t0wPtQzTv+/Rpuqqs5Ng/EYnZzrcf2o/Lb0="; }) (fetchpatch { - name = "fix-aarch64_attributes.patch"; - url = "https://sourceware.org/git/?p=elfutils.git;a=patch;h=b27adc5262e807f341ca0a4910ce04294144f79a"; - hash = "sha256-hksO5HXL9Jv5E4o2rI4NAgQp+4z+Lg7Wn/AdW7fpr0c="; + name = "fix-i386_tlsdesc_relocation.patch"; + url = "https://sourceware.org/git/?p=elfutils.git;a=patch;h=bfd519cc58e190544a6785d3f0a27fcfaf7d8da3"; + hash = "sha256-N7DL2FG1AWLc+hcnxGMbUl5TuieoAc9OD6gc0sbsiGI="; }) - # https://patchwork.sourceware.org/project/elfutils/patch/20251205145241.1165646-1-arnout@bzzt.net/ - ./test-run-sysroot-reliability.patch ] ++ lib.optionals stdenv.hostPlatform.isMusl [ ./musl-error_h.patch ]; diff --git a/pkgs/by-name/el/elfutils/test-run-sysroot-reliability.patch b/pkgs/by-name/el/elfutils/test-run-sysroot-reliability.patch deleted file mode 100644 index 6e5b5890a7583..0000000000000 --- a/pkgs/by-name/el/elfutils/test-run-sysroot-reliability.patch +++ /dev/null @@ -1,44 +0,0 @@ -commit 898804bed022d1ef26e5c0b12550f87fc86f29ed -Author: Arnout Engelen -Date: Thu Dec 4 21:42:40 2025 +0100 - - tests: improve reliability of run-sysroot.sh - - Previously, the 'second' test would test the `RESOLVE_IN_ROOT` feature - when the current libc supports it, even when the currently running - kernel did not yet support it. - - Signed-off-by: Arnout Engelen - -diff --git a/tests/run-sysroot.sh b/tests/run-sysroot.sh -index fe302446..d2041e8a 100755 ---- a/tests/run-sysroot.sh -+++ b/tests/run-sysroot.sh -@@ -46,10 +46,14 @@ TID 431185: - #8 0x0000aaaae56127f0 _start - EOF - --HAVE_OPENAT2=$(grep '^#define HAVE_OPENAT2_RESOLVE_IN_ROOT' \ -- ${abs_builddir}/../config.h | awk '{print $3}') -+libc_has_openat2_resolve_in_root() { -+ grep '^#define HAVE_OPENAT2_RESOLVE_IN_ROOT' ${abs_builddir}/../config.h | awk '{print $3}' -+} -+kernel_has_openat2_resolve_in_root() { -+ printf "%s\n%s" "5.6.0" "$(uname -r)" | sort -V -C -+} - --if [[ "$HAVE_OPENAT2" = 1 ]]; then -+if libc_has_openat2_resolve_in_root && kernel_has_openat2_resolve_in_root; then - # Change the layout of files in sysroot to test symlink escape scenario - rm -f "${tmpdir}/sysroot/bin" - mkdir "${tmpdir}/sysroot/bin" -@@ -57,7 +61,8 @@ if [[ "$HAVE_OPENAT2" = 1 ]]; then - ln -s /bin/bash "${tmpdir}/sysroot/usr/bin/bash" - - # Check that stack with --sysroot generates correct backtrace even if target -- # binary is actually absolute symlink pointing outside of sysroot directory -+ # binary is actually absolute symlink to be interpreted relative to the sysroot -+ # directory - testrun "${abs_top_builddir}"/src/stack --core "${tmpdir}/core.bash" \ - --sysroot "${tmpdir}/sysroot" >"${tmpdir}/stack.out" - diff --git a/pkgs/by-name/el/elpa/package.nix b/pkgs/by-name/el/elpa/package.nix index 170f03f697e8c..650d59f93de4c 100644 --- a/pkgs/by-name/el/elpa/package.nix +++ b/pkgs/by-name/el/elpa/package.nix @@ -116,9 +116,6 @@ stdenv.mkDerivation (finalAttrs: { preCheck = '' #patchShebangs ./ - # Run dual threaded - export OMP_NUM_THREADS=2 - # Reduce test problem sizes export TEST_FLAGS="1500 50 16" ''; diff --git a/pkgs/by-name/er/ergoscf/package.nix b/pkgs/by-name/er/ergoscf/package.nix index 9514bb89f1e4c..59ccb179b2bd0 100644 --- a/pkgs/by-name/er/ergoscf/package.nix +++ b/pkgs/by-name/er/ergoscf/package.nix @@ -39,7 +39,6 @@ stdenv.mkDerivation (finalAttrs: { "-lblas" "-llapack" ]; - OMP_NUM_THREADS = 2; # required for check phase }; enableParallelBuilding = true; diff --git a/pkgs/by-name/ex/expat/package.nix b/pkgs/by-name/ex/expat/package.nix index 78ff9e9253b06..72459e1c2ac64 100644 --- a/pkgs/by-name/ex/expat/package.nix +++ b/pkgs/by-name/ex/expat/package.nix @@ -18,7 +18,7 @@ # files. let - version = "2.8.1"; + version = "2.8.2"; tag = "R_${lib.replaceStrings [ "." ] [ "_" ] version}"; in stdenv.mkDerivation (finalAttrs: { @@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: { url = with finalAttrs; "https://github.com/libexpat/libexpat/releases/download/${tag}/${pname}-${version}.tar.xz"; - hash = "sha256-ELGV7ngWCpCDiBgKj+NgPU6aEvR1X79fOBayOp11DaA="; + hash = "sha256-OtibhYjmZEvU5JmBSA1IshKJ7rvNTwoaSvscKfmbarQ="; }; strictDeps = true; diff --git a/pkgs/by-name/fl/flet-client-flutter/package.nix b/pkgs/by-name/fl/flet-client-flutter/package.nix index 867b9d0f2e9c3..7733ee43da04c 100644 --- a/pkgs/by-name/fl/flet-client-flutter/package.nix +++ b/pkgs/by-name/fl/flet-client-flutter/package.nix @@ -51,7 +51,7 @@ flutter338.buildFlutterApplication rec { mpv-unwrapped gst_all_1.gst-libav gst_all_1.gst-plugins-base - gst_all_1.gst-vaapi + gst_all_1.gst-plugins-bad gst_all_1.gstreamer libunwind orc diff --git a/pkgs/by-name/fl/fltk_1_3/package.nix b/pkgs/by-name/fl/fltk_1_3/package.nix index 41762add1ce70..af71afe150d84 100644 --- a/pkgs/by-name/fl/fltk_1_3/package.nix +++ b/pkgs/by-name/fl/fltk_1_3/package.nix @@ -35,6 +35,8 @@ withShared ? true, nix-update-script, + # TODO: Clean up on `staging` + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -68,6 +70,10 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals withDocs [ doxygen graphviz + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = @@ -139,6 +145,12 @@ stdenv.mkDerivation (finalAttrs: { # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/ (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + ] + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ]; preBuild = lib.optionalString (withCairo && withShared && stdenv.hostPlatform.isDarwin) '' diff --git a/pkgs/by-name/fl/fltk_1_4/package.nix b/pkgs/by-name/fl/fltk_1_4/package.nix index 57d9b9d878052..f6fe650fafd75 100644 --- a/pkgs/by-name/fl/fltk_1_4/package.nix +++ b/pkgs/by-name/fl/fltk_1_4/package.nix @@ -46,6 +46,8 @@ withExamples ? (stdenv.buildPlatform == stdenv.hostPlatform), nix-update-script, + # TODO: Clean up on `staging` + llvmPackages, }: # pango support depends on Xft @@ -84,6 +86,10 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals withDocs [ doxygen graphviz + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = @@ -169,6 +175,12 @@ stdenv.mkDerivation (finalAttrs: { # RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/ (lib.cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) + ] + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ]; postBuild = lib.optionalString withDocs '' diff --git a/pkgs/by-name/fl/fluidsynth/package.nix b/pkgs/by-name/fl/fluidsynth/package.nix index 78b37719df78c..d292b8ac7a603 100644 --- a/pkgs/by-name/fl/fluidsynth/package.nix +++ b/pkgs/by-name/fl/fluidsynth/package.nix @@ -13,13 +13,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "fluidsynth"; - version = "2.5.3"; + version = "2.5.5"; src = fetchFromGitHub { owner = "FluidSynth"; repo = "fluidsynth"; tag = "v${finalAttrs.version}"; - hash = "sha256-k8IHS6Mh1b1iMSuBg3svlf7A2dsg6VHEKqlDhvyJnbo="; + hash = "sha256-WEzOYHtPIUkPZu3v4dWcCh3dOJUyG1xRxDuoSXqiGbk="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/fo/folo/package.nix b/pkgs/by-name/fo/folo/package.nix index d5c96e11b5ac9..1cf412c8b6a7a 100644 --- a/pkgs/by-name/fo/folo/package.nix +++ b/pkgs/by-name/fo/folo/package.nix @@ -40,8 +40,8 @@ stdenv.mkDerivation (finalAttrs: { pnpmInstallFlags ; pnpm = pnpm_11; - fetcherVersion = 3; - hash = "sha256-dF0nnBBpJaFq6MYCZVMMt4D85EWDv8zsGEbVnyhP0kE="; + fetcherVersion = 4; + hash = "sha256-KzF13ghND1NlJ3e2HsTuMbWZQCwqEXtBO31tyf1iIGI="; }; __structuredAttrs = true; diff --git a/pkgs/by-name/fr/frama-c/package.nix b/pkgs/by-name/fr/frama-c/package.nix index bb9229a8803a1..e5e751dbe0057 100644 --- a/pkgs/by-name/fr/frama-c/package.nix +++ b/pkgs/by-name/fr/frama-c/package.nix @@ -134,6 +134,8 @@ stdenv.mkDerivation (finalAttrs: { ]; platforms = lib.platforms.unix; mainProgram = "frama-c"; - broken = !lib.versionAtLeast ocamlPackages.ocaml.version "4.14"; + broken = + !lib.versionAtLeast ocamlPackages.ocaml.version "4.14" + || lib.versionAtLeast ocamlPackages.ocaml.version "5.5"; }; }) diff --git a/pkgs/by-name/fr/freetype/package.nix b/pkgs/by-name/fr/freetype/package.nix index 2f5f6ccef0a84..460e787f59a62 100644 --- a/pkgs/by-name/fr/freetype/package.nix +++ b/pkgs/by-name/fr/freetype/package.nix @@ -42,14 +42,10 @@ stdenv.mkDerivation (finalAttrs: { pname = "freetype"; version = "2.14.3"; - src = - let - inherit (finalAttrs) pname version; - in - fetchurl { - url = "mirror://savannah/freetype/freetype-${version}.tar.xz"; - sha256 = "sha256-NrxPHMQTM1No7mVsQq/KZcWjmH6HaMwozxG6d154Wl8="; - }; + src = fetchurl { + url = "mirror://savannah/freetype/freetype-${finalAttrs.version}.tar.xz"; + hash = "sha256-NrxPHMQTM1No7mVsQq/KZcWjmH6HaMwozxG6d154Wl8="; + }; propagatedBuildInputs = [ zlib diff --git a/pkgs/by-name/fr/fretboard/package.nix b/pkgs/by-name/fr/fretboard/package.nix index 115e311419e83..a1c0e3a6707a1 100644 --- a/pkgs/by-name/fr/fretboard/package.nix +++ b/pkgs/by-name/fr/fretboard/package.nix @@ -69,6 +69,5 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = "fretboard"; teams = [ lib.teams.gnome-circle ]; platforms = lib.platforms.unix; - broken = stdenv.hostPlatform.isDarwin; }; }) diff --git a/pkgs/by-name/ga/game-music-emu/package.nix b/pkgs/by-name/ga/game-music-emu/package.nix index 54eee2b237f93..f660fde43654e 100644 --- a/pkgs/by-name/ga/game-music-emu/package.nix +++ b/pkgs/by-name/ga/game-music-emu/package.nix @@ -8,14 +8,14 @@ }: stdenv.mkDerivation (finalAttrs: { - version = "0.6.4"; + version = "0.6.5"; pname = "game-music-emu"; src = fetchFromGitHub { owner = "libgme"; repo = "game-music-emu"; tag = finalAttrs.version; - hash = "sha256-qGNWFFUUjv2R5e/nQrriAyDJCARISqNB8e5/1zEJ3fk="; + hash = "sha256-zn1t0oDj8hz/sfbG7lrstkv2Kf6cL7zAEMpIu9X4dyQ="; }; nativeBuildInputs = [ cmake diff --git a/pkgs/by-name/gb/gbenchmark/package.nix b/pkgs/by-name/gb/gbenchmark/package.nix index 6cc1617193ee8..a35f4781dba18 100644 --- a/pkgs/by-name/gb/gbenchmark/package.nix +++ b/pkgs/by-name/gb/gbenchmark/package.nix @@ -2,23 +2,33 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, ninja, gtest, + glibcLocales, prometheus-cpp, }: stdenv.mkDerivation (finalAttrs: { pname = "gbenchmark"; - version = "1.9.4"; + version = "1.9.5"; src = fetchFromGitHub { owner = "google"; repo = "benchmark"; - rev = "v${finalAttrs.version}"; - hash = "sha256-P7wJcKkIBoWtN9FCRticpBzYbEZPq71a0iW/2oDTZRU="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Mm4pG7zMB00iof32CxreoNBFnduPZTMp3reHMCIAFPQ="; }; + patches = [ + (fetchpatch { + name = "portability.patch"; + url = "https://github.com/google/benchmark/commit/b5ba9bab85d80f29a161dd634b7d234cf3722f90.patch"; + hash = "sha256-/X01AWXK0eJ59F8oSREZ7V5Cpw1y35n9uFB1mCvMOus="; + }) + ]; + nativeBuildInputs = [ cmake ninja @@ -26,20 +36,32 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ gtest ]; + nativeCheckInputs = lib.optionals (glibcLocales != null) [ glibcLocales ]; + cmakeFlags = [ (lib.cmakeBool "BENCHMARK_USE_BUNDLED_GTEST" false) (lib.cmakeBool "BENCHMARK_ENABLE_WERROR" false) ]; - # We ran into issues with gtest 1.8.5 conditioning on - # `#if __has_cpp_attribute(maybe_unused)`, which was, for some - # reason, going through even when C++14 was being used and - # breaking the build on Darwin by triggering errors about using - # C++17 features. - # - # This might be a problem with our Clang, as it does not reproduce - # with Xcode, but we just work around it by silencing the warning. - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-c++17-attribute-extensions"; + env = { + # We ran into issues with gtest 1.8.5 conditioning on + # `#if __has_cpp_attribute(maybe_unused)`, which was, for some + # reason, going through even when C++14 was being used and + # breaking the build on Darwin by triggering errors about using + # C++17 features. + # + # This might be a problem with our Clang, as it does not reproduce + # with Xcode, but we just work around it by silencing the warning. + NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-c++17-attribute-extensions"; + } + // lib.optionalAttrs stdenv.hostPlatform.isGnu { + # For test:locale_impermeability_test + LANG = "en_US.UTF-8"; + LC_ALL = "en_US.UTF-8"; + } + // lib.optionalAttrs (glibcLocales != null) { + LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; + }; # Tests fail on 32-bit due to not enough precision doCheck = stdenv.hostPlatform.is64bit; @@ -53,6 +75,6 @@ stdenv.mkDerivation (finalAttrs: { homepage = "https://github.com/google/benchmark"; license = lib.licenses.asl20; platforms = lib.platforms.linux ++ lib.platforms.darwin ++ lib.platforms.freebsd; - maintainers = [ ]; + maintainers = with lib.maintainers; [ miniharinn ]; }; }) diff --git a/pkgs/by-name/gd/gdal/package.nix b/pkgs/by-name/gd/gdal/package.nix index b8800268e3b7a..7f9c9f1684d1f 100644 --- a/pkgs/by-name/gd/gdal/package.nix +++ b/pkgs/by-name/gd/gdal/package.nix @@ -83,13 +83,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "gdal" + lib.optionalString useMinimalFeatures "-minimal"; - version = "3.12.4"; + version = "3.13.1"; src = fetchFromGitHub { owner = "OSGeo"; repo = "gdal"; tag = "v${finalAttrs.version}"; - hash = "sha256-sD/ZAOvMWK2+AGw6wgziDsheH+hwUwhd7i2f65cjFKg="; + hash = "sha256-IsSENjOJpCMnGR1O8/gV6X7GTNIK/c+JIYBrkxDgj/A="; }; nativeBuildInputs = [ @@ -257,8 +257,10 @@ stdenv.mkDerivation (finalAttrs: { ]; disabledTestPaths = [ # tests that attempt to make network requests + "gcore/basic_test.py::test_hint_http" "gcore/vsis3.py" "gdrivers/gdalhttp.py" + "gdrivers/hdf5multidim.py::test_hdf5_multimdim_eos_grid_dimension_list" "gdrivers/wms.py" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ diff --git a/pkgs/by-name/gd/gdb/package.nix b/pkgs/by-name/gd/gdb/package.nix index 95769211d8c2c..b7aef9c387723 100644 --- a/pkgs/by-name/gd/gdb/package.nix +++ b/pkgs/by-name/gd/gdb/package.nix @@ -5,7 +5,6 @@ # Build time fetchurl, - fetchpatch, pkg-config, perl, texinfo, @@ -68,11 +67,11 @@ in stdenv.mkDerivation (finalAttrs: { inherit pname; - version = "17.1"; + version = "17.2"; src = fetchurl { url = "mirror://gnu/gdb/gdb-${finalAttrs.version}.tar.xz"; - hash = "sha256-FJlvX3TJ9o9aVD/cRbyngAIH+R+SrupsLnkYIsfG2HY="; + hash = "sha256-HANsDXLks9H7XJTIhjKt1vnXb018TS6nk8EqnxmjIow="; }; postPatch = @@ -90,17 +89,6 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./debug-info-from-env.patch - - (fetchurl { - name = "musl.patch"; - url = "https://inbox.sourceware.org/gdb-patches/20260324164527.1446549-2-sunilkumar.dora@windriver.com/raw"; - hash = "sha256-FC4DDVS4wtE/HXtbUqvkxu9+e7nE3DYi1zIuQP9yQO8="; - }) - (fetchpatch { - name = "musl-aarch64.patch"; - url = "https://sourceware.org/git/?p=binutils-gdb.git;a=patch;h=1ccc3f6a2e28fa1f3357826374cba165b3ba3ff7"; - hash = "sha256-Q2oTo2b+9yNN3PSsxqgxV4/9/05uFE/JMLe1CPs9Y7I="; - }) ] ++ optionals stdenv.hostPlatform.isDarwin [ ./darwin-target-match.patch diff --git a/pkgs/by-name/gf/gflags/package.nix b/pkgs/by-name/gf/gflags/package.nix index 665ed686a51cd..6fa9a27b5ccb4 100644 --- a/pkgs/by-name/gf/gflags/package.nix +++ b/pkgs/by-name/gf/gflags/package.nix @@ -2,31 +2,21 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, enableShared ? !stdenv.hostPlatform.isStatic, }: stdenv.mkDerivation (finalAttrs: { pname = "gflags"; - version = "2.2.2"; + version = "2.3.0"; src = fetchFromGitHub { owner = "gflags"; repo = "gflags"; - rev = "v${finalAttrs.version}"; - sha256 = "147i3md3nxkjlrccqg4mq1kyzc7yrhvqv5902iibc7znkvzdvlp0"; + tag = "v${finalAttrs.version}"; + hash = "sha256-sud3c6XH24YA6vzGQ7LhSoiKycan5JYehC5l2gH6DEo="; }; - patches = [ - # Fix the build with CMake 4. - (fetchpatch { - name = "gflags-fix-cmake-4.patch"; - url = "https://github.com/gflags/gflags/commit/70c01a642f08734b7bddc9687884844ca117e080.patch"; - hash = "sha256-TYdroBbF27Wvvm/rOahBEvhezuKCcxbtgh/ZhpA5ESo="; - }) - ]; - nativeBuildInputs = [ cmake ]; # This isn't used by the build and breaks the CMake build on case-insensitive filesystems (e.g., on Darwin) @@ -48,6 +38,7 @@ stdenv.mkDerivation (finalAttrs: { It was owned by Google. google-gflags project has been renamed to gflags and maintained by new community. ''; homepage = "https://gflags.github.io/gflags/"; + changelog = "https://github.com/gflags/gflags/blob/${finalAttrs.src.tag}/ChangeLog.txt"; license = lib.licenses.bsd3; maintainers = [ ]; platforms = lib.platforms.all; diff --git a/pkgs/by-name/gf/gfxstream/package.nix b/pkgs/by-name/gf/gfxstream/package.nix index 5ec3527983192..42f9ba41d58f9 100644 --- a/pkgs/by-name/gf/gfxstream/package.nix +++ b/pkgs/by-name/gf/gfxstream/package.nix @@ -13,6 +13,8 @@ vulkan-headers, vulkan-loader, libx11, + # TODO: Clean up on `staging`. + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -41,6 +43,10 @@ stdenv.mkDerivation (finalAttrs: { ninja pkg-config python3 + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ aemu @@ -60,6 +66,8 @@ stdenv.mkDerivation (finalAttrs: { "-framework QuartzCore" "-needed-lvulkan" ]; + # TODO: Clean up on `staging`. + NIX_CFLAGS_LINK = "-fuse-ld=lld"; }; # dlopens libvulkan. diff --git a/pkgs/by-name/gi/giflib/0001-Suppress-undefined-symbol-error-on-Darwin.patch b/pkgs/by-name/gi/giflib/0001-Suppress-undefined-symbol-error-on-Darwin.patch new file mode 100644 index 0000000000000..461f4d06512a5 --- /dev/null +++ b/pkgs/by-name/gi/giflib/0001-Suppress-undefined-symbol-error-on-Darwin.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Sun, 14 Jun 2026 10:49:22 -0400 +Subject: [PATCH] Suppress undefined symbol error on Darwin + +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index f347162..720bffa 100644 +--- a/Makefile ++++ b/Makefile +@@ -133,7 +133,7 @@ libgif.a: $(OBJECTS) $(HEADERS) + + $(LIBUTILSO): $(UOBJECTS) $(UHEADERS) + ifeq ($(UNAME), Darwin) +- $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(UOBJECTS) -o $(LIBUTILSO) ++ $(CC) $(CFLAGS) -dynamiclib -current_version $(LIBVER) $(UOBJECTS) -Wl,-U,_GifErrorString -o $(LIBUTILSO) + else + $(CC) $(CFLAGS) $(CPPLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,$(LIBUTILSOMAJOR) -o $(LIBUTILSO) $(UOBJECTS) + endif +-- +2.54.0 + diff --git a/pkgs/by-name/gi/giflib/CVE-2021-40633.patch b/pkgs/by-name/gi/giflib/CVE-2021-40633.patch deleted file mode 100644 index 8a665bb1638bc..0000000000000 --- a/pkgs/by-name/gi/giflib/CVE-2021-40633.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ccbc956432650734c91acb3fc88837f7b81267ff Mon Sep 17 00:00:00 2001 -From: "Eric S. Raymond" -Date: Wed, 21 Feb 2024 18:55:00 -0500 -Subject: [PATCH] Clean up memory better at end of run (CVE-2021-40633) - ---- - gif2rgb.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/gif2rgb.c b/gif2rgb.c -index d51226d..fc2e683 100644 ---- a/gif2rgb.c -+++ b/gif2rgb.c -@@ -517,6 +517,9 @@ static void GIF2RGB(int NumFiles, char *FileName, bool OneFileFlag, - DumpScreen2RGB(OutFileName, OneFileFlag, ColorMap, ScreenBuffer, - GifFile->SWidth, GifFile->SHeight); - -+ for (i = 0; i < GifFile->SHeight; i++) { -+ (void)free(ScreenBuffer[i]); -+ } - (void)free(ScreenBuffer); - - { --- -2.44.0 - diff --git a/pkgs/by-name/gi/giflib/CVE-2025-31344.patch b/pkgs/by-name/gi/giflib/CVE-2025-31344.patch deleted file mode 100644 index 04ef6c3ba7553..0000000000000 --- a/pkgs/by-name/gi/giflib/CVE-2025-31344.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -up giflib-5.2.2/gif2rgb.c.omv~ giflib-5.2.2/gif2rgb.c ---- giflib-5.2.2/gif2rgb.c.omv~ 2025-04-07 21:44:54.956355983 +0200 -+++ giflib-5.2.2/gif2rgb.c 2025-04-07 21:45:29.630769589 +0200 -@@ -329,6 +329,11 @@ static void DumpScreen2RGB(char *FileNam - GifRow = ScreenBuffer[i]; - GifQprintf("\b\b\b\b%-4d", ScreenHeight - i); - for (j = 0; j < ScreenWidth; j++) { -+ /* Check if color is within color palete */ -+ if (GifRow[j] >= ColorMap->ColorCount) { -+ GIF_EXIT(GifErrorString( -+ D_GIF_ERR_IMAGE_DEFECT)); -+ } - ColorMapEntry = &ColorMap->Colors[GifRow[j]]; - Buffers[0][j] = ColorMapEntry->Red; - Buffers[1][j] = ColorMapEntry->Green; diff --git a/pkgs/by-name/gi/giflib/package.nix b/pkgs/by-name/gi/giflib/package.nix index 579cbd5a3e3c1..1fa7deb61a004 100644 --- a/pkgs/by-name/gi/giflib/package.nix +++ b/pkgs/by-name/gi/giflib/package.nix @@ -3,21 +3,33 @@ lib, fetchurl, fixDarwinDylibNames, + + # for passthru.tests + SDL2_image, + SDL_image, + gdal, + imlib2, + leptonica, + libjxl, + libwebp, + openimageio, + openjdk, pkgsStatic, }: stdenv.mkDerivation (finalAttrs: { pname = "giflib"; - version = "5.2.2"; + version = "6.1.3"; src = fetchurl { url = "mirror://sourceforge/giflib/giflib-${finalAttrs.version}.tar.gz"; - hash = "sha256-vn/70FfK3r4qoURUL9kMaDjGoIO16KkEi47jtmsp1fs="; + hash = "sha256-tltmuZ8EJLk1JfmHOG8i/F77naK/ySrUpTIkmq/7qw4="; }; patches = [ - ./CVE-2021-40633.patch - ./CVE-2025-31344.patch + # Fix missing symbol error on Darwin when linking libutil.dylib. + # Based on discussion in https://sourceforge.net/p/giflib/bugs/189/. + ./0001-Suppress-undefined-symbol-error-on-Darwin.patch ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ # Build dll libraries. @@ -54,6 +66,16 @@ stdenv.mkDerivation (finalAttrs: { passthru.tests = { static = pkgsStatic.giflib; + inherit + SDL2_image + SDL_image + gdal + imlib2 + leptonica + libjxl + openimageio + openjdk + ; }; meta = { diff --git a/pkgs/by-name/gi/gitbutler/package.nix b/pkgs/by-name/gi/gitbutler/package.nix index e0881da95a9b3..d7a8c89510544 100644 --- a/pkgs/by-name/gi/gitbutler/package.nix +++ b/pkgs/by-name/gi/gitbutler/package.nix @@ -61,8 +61,8 @@ rustPlatform.buildRustPackage (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-hC4e0xgbGrOpO2pQGPIULlNyP/Kh5+A8+61taxM2DQ0="; + fetcherVersion = 4; + hash = "sha256-SqIf61KryWEvrw9rqA4UXTS+DCe08o+LqT4s1o9cPVE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/gl/glfw3/package.nix b/pkgs/by-name/gl/glfw3/package.nix index 711406030b70b..6ecf627adce11 100644 --- a/pkgs/by-name/gl/glfw3/package.nix +++ b/pkgs/by-name/gl/glfw3/package.nix @@ -20,6 +20,9 @@ libxkbcommon, libdecor, withMinecraftPatch ? false, + + # TODO: Clean up on `staging`. + llvmPackages, }: let version = "3.4"; @@ -58,7 +61,11 @@ stdenv.mkDerivation { cmake pkg-config ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + fixDarwinDylibNames + # TODO: Clean up on `staging`. + llvmPackages.lld + ] ++ lib.optionals stdenv.hostPlatform.isLinux [ wayland-scanner ]; buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ @@ -86,6 +93,9 @@ stdenv.mkDerivation { cmakeFlags = [ # Static linking isn't supported (lib.cmakeBool "BUILD_SHARED_LIBS" true) + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ]; env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isWindows) { diff --git a/pkgs/by-name/gl/glib/darwin-compilation.patch b/pkgs/by-name/gl/glib/darwin-compilation.patch deleted file mode 100644 index f215eef798af9..0000000000000 --- a/pkgs/by-name/gl/glib/darwin-compilation.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fix compilation on Mac OS X with gcc 4.8. - -diff -ru glib-2.40.0-orig/gio/gdummyfile.c glib-2.40.0/gio/gdummyfile.c ---- glib-2.40.0-orig/gio/gdummyfile.c 2014-02-03 18:40:41.000000000 +0100 -+++ glib-2.40.0/gio/gdummyfile.c 2014-07-15 10:58:31.000000000 +0200 -@@ -454,7 +454,8 @@ - result = g_malloc (escaped_string_end - escaped_string + 1); - - out = result; -- for (in = escaped_string; in < escaped_string_end; in++) -+ in = escaped_string; -+ for (; in < escaped_string_end; in++) - { - character = *in; - if (*in == '%') -@@ -551,6 +552,7 @@ - - decoded->scheme = g_malloc (p - uri); - out = decoded->scheme; -- for (in = uri; in < p - 1; in++) -+ in = uri; -+ for (; in < p - 1; in++) - *out++ = g_ascii_tolower (*in); - *out = 0; diff --git a/pkgs/by-name/gl/glib/package.nix b/pkgs/by-name/gl/glib/package.nix index cf554d53e403f..bda3d4a4a09ca 100644 --- a/pkgs/by-name/gl/glib/package.nix +++ b/pkgs/by-name/gl/glib/package.nix @@ -24,6 +24,8 @@ gi-docgen, # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib) util-linuxMinimal ? null, + # TODO: Clean up on `staging`. + llvmPackages, buildPackages, # this is just for tests (not in the closure of any regular package) @@ -99,10 +101,7 @@ stdenv.mkDerivation (finalAttrs: { }; patches = - lib.optionals stdenv.hostPlatform.isDarwin [ - ./darwin-compilation.patch - ] - ++ lib.optionals stdenv.hostPlatform.isMusl [ + lib.optionals stdenv.hostPlatform.isMusl [ ./quark_init_on_demand.patch ./gobject_init_on_demand.patch ] @@ -210,6 +209,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals withDtrace [ systemtap' # for dtrace + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; propagatedBuildInputs = [ @@ -253,6 +256,13 @@ stdenv.mkDerivation (finalAttrs: { "-DG_DISABLE_CAST_CHECKS" ]; DETERMINISTIC_BUILD = 1; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # Work around ld64 hardening issue. + # + # TODO: Clean up on `staging`. + CC_LD = "lld"; + OBJC_LD = "lld"; }; postPatch = '' diff --git a/pkgs/by-name/gl/glslang/external-gtest.patch b/pkgs/by-name/gl/glslang/external-gtest.patch deleted file mode 100644 index 3477b7584bfc8..0000000000000 --- a/pkgs/by-name/gl/glslang/external-gtest.patch +++ /dev/null @@ -1,69 +0,0 @@ -From ab20ba112e6fa5117bfeadde199fdc6c18cbdfb5 Mon Sep 17 00:00:00 2001 -From: OPNA2608 -Date: Mon, 12 Jan 2026 16:41:53 +0100 -Subject: [PATCH] Look for external gtest build, if not building in-tree - ---- - CMakeLists.txt | 12 ++++++++++++ - gtests/CMakeLists.txt | 8 +++----- - 2 files changed, 15 insertions(+), 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1e7d3ec9..ecda9c53 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -321,6 +321,18 @@ if(ENABLE_GLSLANG_BINARIES) - add_subdirectory(StandAlone) - endif() - -+option(ALLOW_EXTERNAL_GTEST "Allows to build against installed googletest. This is unsupported if the commit isn't the one in known_good.json") -+set(GMOCK_TARGET gmock) -+if(NOT TARGET ${GMOCK_TARGET}) -+ if(ALLOW_EXTERNAL_GTEST) -+ message(STATUS "Trying to find local googletest") -+ find_package(GTest) -+ if(TARGET GTest::gmock) -+ set(GMOCK_TARGET GTest::gmock) -+ endif() -+ endif() -+endif() -+ - if(GLSLANG_TESTS) - enable_testing() - add_subdirectory(gtests) -diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt -index 27a5500c..21125775 100644 ---- a/gtests/CMakeLists.txt -+++ b/gtests/CMakeLists.txt -@@ -32,7 +32,7 @@ - # POSSIBILITY OF SUCH DAMAGE. - - if(GLSLANG_TESTS) -- if(TARGET gmock) -+ if(TARGET ${GMOCK_TARGET}) - message(STATUS "Google Mock found - building tests") - - set(TEST_SOURCES -@@ -76,9 +76,7 @@ if(GLSLANG_TESTS) - PRIVATE GLSLANG_TEST_BUILD=1) - target_include_directories(glslangtests PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} -- ${PROJECT_SOURCE_DIR} -- ${gmock_SOURCE_DIR}/include -- ${gtest_SOURCE_DIR}/include) -+ ${PROJECT_SOURCE_DIR}) - - if(ENABLE_OPT) - target_link_libraries(glslangtests -@@ -90,7 +88,7 @@ if(GLSLANG_TESTS) - glslang glslang-default-resource-limits - $<$,$,9.0>>:stdc++fs>) - -- target_link_libraries(glslangtests PRIVATE ${LIBRARIES} gmock) -+ target_link_libraries(glslangtests PRIVATE ${LIBRARIES} ${GMOCK_TARGET}) - - # The TARGET_RUNTIME_DLL_DIRS feature requires CMake 3.27 or greater. - if(WIN32 AND BUILD_SHARED_LIBS AND CMAKE_VERSION VERSION_LESS "3.27") --- -2.51.2 - diff --git a/pkgs/by-name/gl/glslang/package.nix b/pkgs/by-name/gl/glslang/package.nix index fc06faf61314f..c8b19772c622d 100644 --- a/pkgs/by-name/gl/glslang/package.nix +++ b/pkgs/by-name/gl/glslang/package.nix @@ -12,21 +12,15 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "glslang"; - version = "16.2.0"; + version = "16.3.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; tag = finalAttrs.version; - hash = "sha256-2uWnZZNGdZorHaiLzMb/rpM6bL9oBClKqiFkUH3krJQ="; + hash = "sha256-wclcJ0NfqFXSUHGVsxjn2I8XxWbrkzOB4WXqsN1XtmE="; }; - patches = [ - # Allow building against our already-built gtest, without eating a rebuild - # https://github.com/KhronosGroup/glslang/pull/4140 - ./external-gtest.patch - ]; - outputs = [ "bin" "out" diff --git a/pkgs/by-name/gn/gn/package.nix b/pkgs/by-name/gn/gn/package.nix index 66f02fcc542a7..f640662eedf4b 100644 --- a/pkgs/by-name/gn/gn/package.nix +++ b/pkgs/by-name/gn/gn/package.nix @@ -11,11 +11,11 @@ version ? # This is a workaround for update-source-version to be able to update this let - _version = "0-unstable-2026-03-05"; + _version = "0-unstable-2026-04-01"; in _version, - rev ? "d8c2f07d653520568da7cace755a87dad241b72d", - hash ? "sha256-3AfExm7NL5GJXyC5JCPbGC70D59doRfIZIgpt6MLy9Y=", + rev ? "6e8dcdebbadf4f8aa75e6a4b6e0bdf89dce1513a", + hash ? "sha256-BTPD8WM1pVAMkFDlHekMdWFGyf63KdhKkKwsqikqoBQ=", }: stdenv.mkDerivation { diff --git a/pkgs/by-name/gn/gnome-network-displays/package.nix b/pkgs/by-name/gn/gnome-network-displays/package.nix index 6819546773679..57e2576d2b7da 100644 --- a/pkgs/by-name/gn/gnome-network-displays/package.nix +++ b/pkgs/by-name/gn/gnome-network-displays/package.nix @@ -59,7 +59,6 @@ stdenv.mkDerivation (finalAttrs: { gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gst-rtsp-server - gst_all_1.gst-vaapi pipewire networkmanager json-glib diff --git a/pkgs/by-name/gn/gnutar/package.nix b/pkgs/by-name/gn/gnutar/package.nix index 51344245c45f7..acf5f3233aeb3 100644 --- a/pkgs/by-name/gn/gnutar/package.nix +++ b/pkgs/by-name/gn/gnutar/package.nix @@ -40,7 +40,9 @@ stdenv.mkDerivation (finalAttrs: { "info" ]; + __structuredAttrs = true; strictDeps = true; + enableParallelBuilding = true; nativeBuildInputs = [ autoreconfHook ] ++ lib.optional stdenv.hostPlatform.isCygwin gettext; diff --git a/pkgs/by-name/gn/gnutls/package.nix b/pkgs/by-name/gn/gnutls/package.nix index 448bd4b1b1101..c132697abbd7d 100644 --- a/pkgs/by-name/gn/gnutls/package.nix +++ b/pkgs/by-name/gn/gnutls/package.nix @@ -1,7 +1,6 @@ { lib, stdenv, - buildPackages, fetchurl, zlib, libtasn1, @@ -9,7 +8,6 @@ pkg-config, perl, gmp, - automake, libidn2, libiconv, texinfo, @@ -167,10 +165,6 @@ stdenv.mkDerivation rec { pkg-config texinfo ] - ++ [ - buildPackages.autoconf269 - automake - ] ++ lib.optionals doCheck [ which net-tools diff --git a/pkgs/by-name/gp/gperftools/package.nix b/pkgs/by-name/gp/gperftools/package.nix index a5888096c827d..693d874cbf7b4 100644 --- a/pkgs/by-name/gp/gperftools/package.nix +++ b/pkgs/by-name/gp/gperftools/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "gperftools"; - version = "2.17.2"; + version = "2.18.1"; src = fetchFromGitHub { owner = "gperftools"; repo = "gperftools"; tag = "gperftools-${finalAttrs.version}"; - hash = "sha256-WCEuiSjNIX/KhEBWndyVhrKlWs7H60mcHoPlWd7YWC4="; + hash = "sha256-LvLsq0UuMu51vcgxDrBkdnoUJ3qFH+tbXbTjreBxBqs="; }; patches = [ diff --git a/pkgs/by-name/gp/gpgme/package.nix b/pkgs/by-name/gp/gpgme/package.nix index cd68dd81ec3b3..33edca30f448e 100644 --- a/pkgs/by-name/gp/gpgme/package.nix +++ b/pkgs/by-name/gp/gpgme/package.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gpgme"; - version = "2.0.1"; + version = "2.1.0"; outputs = [ "out" @@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnupg/gpgme/gpgme-${finalAttrs.version}.tar.bz2"; - hash = "sha256-ghqwaVyELqtRdSqBmAySsEEMfq3QQQP3kdXSpSZ4SWY="; + hash = "sha256-hBxepT/CYln0+/DovemC3qG4ocoMt35oHIKwUFZr+Ss="; }; postPatch = '' @@ -110,7 +110,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://gnupg.org/software/gpgme/index.html"; - changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;f=NEWS;hb=gpgme-${finalAttrs.version}"; + changelog = "https://dev.gnupg.org/source/gpgme/browse/master/NEWS;gpgme-${finalAttrs.version}?as=remarkup"; description = "Library for making GnuPG easier to use"; longDescription = '' GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG diff --git a/pkgs/by-name/gp/gpgmepp/package.nix b/pkgs/by-name/gp/gpgmepp/package.nix index d0f6ce2ae37dd..d82e0d1617bad 100644 --- a/pkgs/by-name/gp/gpgmepp/package.nix +++ b/pkgs/by-name/gp/gpgmepp/package.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "gpgmepp"; - version = "2.0.0"; + version = "2.1.0"; src = fetchurl { url = "mirror://gnupg/gpgmepp/gpgmepp-${finalAttrs.version}.tar.xz"; - hash = "sha256-1HlgScBnCKJvMJb3SO8JU0fho8HlcFYXAf6VLD9WU4I="; + hash = "sha256-V/gERo8CBFBLFyxrE5ywUSS0JjvnrVFJMsfExQYqFuI="; }; postPatch = '' diff --git a/pkgs/by-name/gr/graphviz/package.nix b/pkgs/by-name/gr/graphviz/package.nix index 1172173dd326c..f5686e0274d3f 100644 --- a/pkgs/by-name/gr/graphviz/package.nix +++ b/pkgs/by-name/gr/graphviz/package.nix @@ -39,13 +39,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "graphviz"; - version = "12.2.1"; + version = "14.1.2"; src = fetchFromGitLab { owner = "graphviz"; repo = "graphviz"; - rev = finalAttrs.version; - hash = "sha256-Uxqg/7+LpSGX4lGH12uRBxukVw0IswFPfpb2EkLsaiI="; + tag = finalAttrs.version; + hash = "sha256-LkyiKl0ulS9ujEdVLfyeoc4CtjITd6CAc35IUtlHSfw="; }; nativeBuildInputs = [ @@ -136,6 +136,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://graphviz.org"; + changelog = "https://gitlab.com/graphviz/graphviz/-/blob/${finalAttrs.src.tag}/CHANGELOG.md"; description = "Graph visualization tools"; license = lib.licenses.epl10; platforms = lib.platforms.unix; diff --git a/pkgs/by-name/gr/greenx/package.nix b/pkgs/by-name/gr/greenx/package.nix index c08356a170584..fb360c6728b8e 100644 --- a/pkgs/by-name/gr/greenx/package.nix +++ b/pkgs/by-name/gr/greenx/package.nix @@ -34,10 +34,6 @@ stdenv.mkDerivation (finalAttrs: { # Uses a hacky python setup run by cmake, which is hard to get running doCheck = false; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Library for Green’s function based electronic structure theory calculations"; license = [ lib.licenses.asl20 ]; diff --git a/pkgs/by-name/gr/groff/package.nix b/pkgs/by-name/gr/groff/package.nix index 083b1493dcf6b..0b4ebba4d63f1 100644 --- a/pkgs/by-name/gr/groff/package.nix +++ b/pkgs/by-name/gr/groff/package.nix @@ -192,6 +192,7 @@ stdenv.mkDerivation (finalAttrs: { license = lib.licenses.gpl3Plus; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ pSub ]; + mainProgram = "groff"; longDescription = '' groff is the GNU implementation of troff, a document formatting diff --git a/pkgs/by-name/gr/grpc/package.nix b/pkgs/by-name/gr/grpc/package.nix index fd682d3b05169..84e80bfc5b7db 100644 --- a/pkgs/by-name/gr/grpc/package.nix +++ b/pkgs/by-name/gr/grpc/package.nix @@ -25,7 +25,7 @@ # nixpkgs-update: no auto update stdenv.mkDerivation (finalAttrs: { pname = "grpc"; - version = "1.80.0"; # N.B: if you change this, please update: + version = "1.81.0"; # N.B: if you change this, please update: # pythonPackages.grpcio # pythonPackages.grpcio-channelz # pythonPackages.grpcio-health-checking @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "grpc"; repo = "grpc"; tag = "v${finalAttrs.version}"; - hash = "sha256-/dpTRG5JcZY2VAsqOYNIpFW7ouSy/eC2STulP7qdSYg="; + hash = "sha256-o1wfHrgD2VE6HcPPEWQPQZXrMh+8+GNoUjbCQoRlIWg="; fetchSubmodules = true; }; diff --git a/pkgs/by-name/gs/gssdp_1_6/package.nix b/pkgs/by-name/gs/gssdp_1_6/package.nix index b4d8daba12c14..a25d7c8f15477 100644 --- a/pkgs/by-name/gs/gssdp_1_6/package.nix +++ b/pkgs/by-name/gs/gssdp_1_6/package.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gssdp"; - version = "1.6.4"; + version = "1.6.5"; outputs = [ "out" @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/gssdp/${lib.versions.majorMinor finalAttrs.version}/gssdp-${finalAttrs.version}.tar.xz"; - hash = "sha256-/5f9+39WHT5oE7T2ohRSWefC7/Q8wOY/P9Ax0LYmYDI="; + hash = "sha256-NP2CTDbvn1dVlNVXJyhBLduMUi9ga2yRPvi1qACq/E4="; }; depsBuildBuild = [ diff --git a/pkgs/by-name/gt/gtk-doc/package.nix b/pkgs/by-name/gt/gtk-doc/package.nix index a2db2fee47881..9f58e9fb8f75b 100644 --- a/pkgs/by-name/gt/gtk-doc/package.nix +++ b/pkgs/by-name/gt/gtk-doc/package.nix @@ -16,7 +16,7 @@ python3.pkgs.buildPythonApplication rec { pname = "gtk-doc"; - version = "1.35.1"; + version = "1.36.1"; outputDevdoc = "out"; @@ -26,14 +26,10 @@ python3.pkgs.buildPythonApplication rec { domain = "gitlab.gnome.org"; owner = "GNOME"; repo = "gtk-doc"; - rev = version; - hash = "sha256-EqU7lnBnOn3gR3hT95yjdTUb3cqX2XJK5UAKsFw2Q10="; + tag = version; + hash = "sha256-8hB43BCAtT1B7/ak2i0FAlYD3Kb4rNCWfsJ+wqGu3FA="; }; - patches = [ - passthru.respect_xml_catalog_files_var_patch - ]; - postPatch = '' substituteInPlace meson.build \ --replace "pkg-config" "$PKG_CONFIG" @@ -83,8 +79,6 @@ python3.pkgs.buildPythonApplication rec { ''; passthru = { - # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch - respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch; updateScript = gnome.updateScript { packageName = "gtk-doc"; versionPolicy = "none"; @@ -92,6 +86,7 @@ python3.pkgs.buildPythonApplication rec { }; meta = { + changelog = "https://gitlab.gnome.org/GNOME/gtk-doc/-/blob/${src.tag}/NEWS"; description = "Tools to extract documentation embedded in GTK and GNOME source code"; homepage = "https://gitlab.gnome.org/GNOME/gtk-doc"; license = lib.licenses.gpl2Plus; diff --git a/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch b/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch deleted file mode 100644 index 95f6879a00691..0000000000000 --- a/pkgs/by-name/gt/gtk-doc/respect-xml-catalog-files-var.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/m4/gtkdoc_jh_check_xml_catalog.m4 -+++ b/m4/gtkdoc_jh_check_xml_catalog.m4 -@@ -5,8 +5,8 @@ - [ - AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl - AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog]) -- if $jh_found_xmlcatalog && \ -- AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then -+ # empty argument forces libxml to use XML_CATALOG_FILES variable -+ if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then - AC_MSG_RESULT([found]) - ifelse([$3],,,[$3]) - else diff --git a/pkgs/by-name/gt/gtk-mac-integration/package.nix b/pkgs/by-name/gt/gtk-mac-integration/package.nix index 19976e462e153..26b30559c991e 100644 --- a/pkgs/by-name/gt/gtk-mac-integration/package.nix +++ b/pkgs/by-name/gt/gtk-mac-integration/package.nix @@ -9,6 +9,8 @@ gtk ? gtk3, gtk3, gobject-introspection, + # TODO: Clean up on `staging` + llvmPackages, }: stdenv.mkDerivation rec { @@ -28,6 +30,8 @@ stdenv.mkDerivation rec { pkg-config gtk-doc gobject-introspection + # TODO: Clean up on `staging` + llvmPackages.lld ]; buildInputs = [ glib ]; propagatedBuildInputs = [ gtk ]; @@ -36,6 +40,13 @@ stdenv.mkDerivation rec { gtkdocize ''; + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; + meta = { description = "Provides integration for GTK applications into the Mac desktop"; license = lib.licenses.lgpl21; diff --git a/pkgs/by-name/gt/gtk2/package.nix b/pkgs/by-name/gt/gtk2/package.nix index 3f05469c1afcb..369cfbee36958 100644 --- a/pkgs/by-name/gt/gtk2/package.nix +++ b/pkgs/by-name/gt/gtk2/package.nix @@ -27,6 +27,8 @@ gdktarget ? if stdenv.hostPlatform.isDarwin then "quartz" else "x11", cupsSupport ? config.gtk2.cups or stdenv.hostPlatform.isLinux, xineramaSupport ? stdenv.hostPlatform.isLinux, + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -56,13 +58,19 @@ stdenv.mkDerivation (finalAttrs: { gtkCleanImmodulesCache ]; - nativeBuildInputs = finalAttrs.setupHooks ++ [ - gdk-pixbuf - gettext - gobject-introspection - perl - pkg-config - ]; + nativeBuildInputs = + finalAttrs.setupHooks + ++ [ + gdk-pixbuf + gettext + gobject-introspection + perl + pkg-config + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld + ]; patches = [ ./patches/2.0-immodules.cache.patch @@ -120,12 +128,19 @@ stdenv.mkDerivation (finalAttrs: { "ac_cv_path_GDK_PIXBUF_CSOURCE=${buildPackages.gdk-pixbuf.dev}/bin/gdk-pixbuf-csource" ]; - env = lib.optionalAttrs stdenv.cc.isGNU { - NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=implicit-int" - "-Wno-error=incompatible-pointer-types" - ]; - }; + env = + lib.optionalAttrs stdenv.cc.isGNU { + NIX_CFLAGS_COMPILE = toString [ + "-Wno-error=implicit-int" + "-Wno-error=incompatible-pointer-types" + ]; + } + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; enableParallelBuilding = true; diff --git a/pkgs/by-name/gt/gtk3/package.nix b/pkgs/by-name/gt/gtk3/package.nix index 3c3ffc066dbb9..bd66967f1014c 100644 --- a/pkgs/by-name/gt/gtk3/package.nix +++ b/pkgs/by-name/gt/gtk3/package.nix @@ -58,6 +58,8 @@ broadwaySupport ? true, wayland-scanner, testers, + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -142,6 +144,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals waylandSupport [ wayland-scanner + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = @@ -213,7 +219,17 @@ stdenv.mkDerivation (finalAttrs: { # These are the defines that'd you'd get with --enable-debug=minimum (default). # See: https://developer.gnome.org/gtk3/stable/gtk-building.html#extra-configuration-options - env.NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"; + env = { + NIX_CFLAGS_COMPILE = "-DG_ENABLE_DEBUG -DG_DISABLE_CAST_CHECKS"; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + + CC_LD = "lld"; + OBJC_LD = "lld"; + }; postPatch = '' # See https://github.com/NixOS/nixpkgs/issues/132259 diff --git a/pkgs/by-name/gu/gupnp_1_6/package.nix b/pkgs/by-name/gu/gupnp_1_6/package.nix index f9c9c50a629cd..357eff8828189 100644 --- a/pkgs/by-name/gu/gupnp_1_6/package.nix +++ b/pkgs/by-name/gu/gupnp_1_6/package.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gupnp"; - version = "1.6.9"; + version = "1.6.10"; outputs = [ "out" @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/gupnp/${lib.versions.majorMinor finalAttrs.version}/gupnp-${finalAttrs.version}.tar.xz"; - hash = "sha256-Lttu42E1WOYvU4c1NoruJxUbfgnU4uLFFgaDPagBhps="; + hash = "sha256-oe4Ht7Emc8Mtf8c8oVilDBpNxpqzW2XpTSTTish1NF4="; }; depsBuildBuild = [ diff --git a/pkgs/by-name/ha/handbrake/package.nix b/pkgs/by-name/ha/handbrake/package.nix index ce91685cf0b23..edc886281aca0 100644 --- a/pkgs/by-name/ha/handbrake/package.nix +++ b/pkgs/by-name/ha/handbrake/package.nix @@ -10,7 +10,10 @@ { stdenv, lib, + applyPatches, fetchFromGitHub, + fetchFromGitLab, + fetchpatch2, # For tests testers, runCommand, @@ -26,7 +29,7 @@ numactl, writeText, # Processing, video codecs, containers - ffmpeg_7-full, + ffmpeg_8-full, nv-codec-headers, libogg, x264, @@ -85,14 +88,35 @@ }: let - version = "1.10.2"; + version = "1.11.1"; - src = fetchFromGitHub { - owner = "HandBrake"; - repo = "HandBrake"; - # uses version commit for logic in version.txt - rev = "dddf75f756e56d2b8dbb0609175bc12047a4841d"; - hash = "sha256-CIMpJDJ0IIz95f3/zxeQqpCFpHWEmdgA+VaaUDY516A="; + src = applyPatches { + src = fetchFromGitHub { + owner = "HandBrake"; + repo = "HandBrake"; + # uses version commit for logic in version.txt + rev = "4ce99a885cde39b3511016efdb5124726819defb"; + hash = "sha256-oWXNiRK0wbmINnjM3GrOIawcSULTuy3yANfgW8li9F0="; + }; + + patches = [ + # Only needed so the subsequent patch applies + (fetchpatch2 { + url = "https://github.com/HandBrake/HandBrake/commit/c8e16778a330881af36fa32004f887bd73874d15.patch"; + hash = "sha256-i3/X9opDzsZIO7bjLHHZltuQH93uENRF0t7FP7DDdBM="; + }) + # Update x265 submodule to v4.2, drop in next release + (fetchpatch2 { + url = "https://github.com/HandBrake/HandBrake/commit/432514bf839e7280511e4a7afc35fb4868ef4d0b.patch"; + excludes = [ + "contrib/x265/module.defs" + "contrib/x265_8bit/module.defs" + "contrib/x265_10bit/module.defs" + "contrib/x265_12bit/module.defs" + ]; + hash = "sha256-xwIY1pO9mKbrQFjQCENuvntIoiZTHeUVg8axrl3zxxo="; + }) + ]; }; # Handbrake maintains a set of ffmpeg patches. In particular, these @@ -100,70 +124,67 @@ let # https://github.com/HandBrake/HandBrake/issues/4029 # base ffmpeg version is specified in: # https://github.com/HandBrake/HandBrake/blob/master/contrib/ffmpeg/module.defs - ffmpeg-version = "7.1.1"; - ffmpeg-hb = - (ffmpeg_7-full.override { - version = ffmpeg-version; - hash = "sha256-GyS8imOqfOUPxXrzCiQtzCQIIH6bvWmQAB0fKUcRsW4="; - }).overrideAttrs - (old: { - patches = (old.patches or [ ]) ++ [ - "${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch" - "${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch" - "${src}/contrib/ffmpeg/A03-mov-read-3gpp-udta-tags.patch" - "${src}/contrib/ffmpeg/A04-movenc-write-3gpp-track-names-tags-for-all-available.patch" - "${src}/contrib/ffmpeg/A05-avformat-mov-add-support-audio-fallback-track-ref.patch" - "${src}/contrib/ffmpeg/A06-dvdsubdec-fix-processing-of-partial-packets.patch" - "${src}/contrib/ffmpeg/A07-dvdsubdec-return-number-of-bytes-used.patch" - "${src}/contrib/ffmpeg/A08-dvdsubdec-use-pts-of-initial-packet.patch" - "${src}/contrib/ffmpeg/A09-dvdsubdec-add-an-option-to-output-subtitles-with-emp.patch" - "${src}/contrib/ffmpeg/A10-ccaption_dec-fix-pts-in-real_time-mode.patch" - "${src}/contrib/ffmpeg/A11-avformat-matroskaenc-return-error-if-aac-extradata-c.patch" - "${src}/contrib/ffmpeg/A12-videotoolbox-disable-H.264-10-bit-on-Intel-macOS-it-.patch" - - # patch to fix - # commented out because it causes ffmpeg's filter-pixdesc-p010le test to fail. - # "${src}/contrib/ffmpeg/A13-libswscale-fix-yuv420p-to-p01xle-color-conversion-bu.patch" - - "${src}/contrib/ffmpeg/A14-hevc_mp4toannexb.c-fix-qsv-decode-of-10bit-hdr.patch" - "${src}/contrib/ffmpeg/A15-Expose-the-unmodified-Dolby-Vision-RPU-T35-buffers.patch" - "${src}/contrib/ffmpeg/A16-avcodec-amfenc-Add-support-for-on-demand-key-frames.patch" - "${src}/contrib/ffmpeg/A17-avcodec-amfenc-properly-set-primaries-transfer-and-m.patch" - "${src}/contrib/ffmpeg/A18-libavcodec-qsvenc-update-has_b_frames-value.patch" - "${src}/contrib/ffmpeg/A19-libavcodec-qsv-enable-av1-scc.patch" - "${src}/contrib/ffmpeg/A20-Revert-avcodec-amfenc-GPU-driver-version-check.patch" - "${src}/contrib/ffmpeg/A21-lavc-pgssubdec-Add-graphic-plane-and-cropping.patch" - "${src}/contrib/ffmpeg/A22-avformat-mov-read-and-write-additional-iTunes-style-.patch" - "${src}/contrib/ffmpeg/A23-avformat-movenc-write-iTunEXTC-and-iTunMOVI-metadata.patch" - "${src}/contrib/ffmpeg/A24-AV1-videotoolbox.patch" - "${src}/contrib/ffmpeg/A25-videotoolbox-speedup-decoding.patch" - "${src}/contrib/ffmpeg/A28-enable-av1_mf-encoder.patch" - "${src}/contrib/ffmpeg/A30-qsv-fixed-BT2020-BT709-conversion.patch" - "${src}/contrib/ffmpeg/A31-Parse-EAC3-Atmos-ComplexityIndex-for-MP4-remuxing.patch" - ]; - }); + ffmpeg-hb = ffmpeg_8-full.overrideAttrs (old: { + patches = (old.patches or [ ]) ++ [ + "${src}/contrib/ffmpeg/A01-mov-read-name-track-tag-written-by-movenc.patch" + "${src}/contrib/ffmpeg/A02-movenc-write-3gpp-track-titl-tag.patch" + "${src}/contrib/ffmpeg/A03-mov-read-3gpp-udta-tags.patch" + "${src}/contrib/ffmpeg/A04-movenc-write-3gpp-track-names-tags-for-all-available.patch" + "${src}/contrib/ffmpeg/A05-avformat-mov-add-support-audio-fallback-track-ref.patch" + "${src}/contrib/ffmpeg/A06-avformat-mov-read-and-write-additional-iTunes-style-.patch" + "${src}/contrib/ffmpeg/A07-avformat-movenc-write-iTunEXTC-and-iTunMOVI-metadata.patch" + "${src}/contrib/ffmpeg/A08-dvdsubdec-fix-processing-of-partial-packets.patch" + "${src}/contrib/ffmpeg/A09-dvdsubdec-return-number-of-bytes-used.patch" + "${src}/contrib/ffmpeg/A10-dvdsubdec-use-pts-of-initial-packet.patch" + "${src}/contrib/ffmpeg/A11-dvdsubdec-add-an-option-to-output-subtitles-with-emp.patch" + "${src}/contrib/ffmpeg/A12-ccaption_dec-fix-pts-in-real_time-mode.patch" + "${src}/contrib/ffmpeg/A13-avformat-matroskaenc-return-error-if-aac-extradata-c.patch" + "${src}/contrib/ffmpeg/A14-Expose-the-unmodified-Dolby-Vision-RPU-T35-buffers.patch" + "${src}/contrib/ffmpeg/A15-lavc-pgssubdec-Add-graphic-plane-and-cropping.patch" + "${src}/contrib/ffmpeg/A16-libavcodec-qsvenc.c-update-has_b_frames-value-after-.patch" + "${src}/contrib/ffmpeg/A17-qsv-enable-av1-scc.patch" + "${src}/contrib/ffmpeg/A18-fixed-BT2020-BT709-conversion-via-VPP.patch" + "${src}/contrib/ffmpeg/A19-videotoolbox-disable-H.264-10-bit-on-Intel-macOS-it-.patch" + "${src}/contrib/ffmpeg/A20-videotoolbox-speedup-decoding.patch" + "${src}/contrib/ffmpeg/A21-Revert-avcodec-amfenc-GPU-driver-version-check.patch" + "${src}/contrib/ffmpeg/A22-fix-d3d11-static-pool-size-error.patch" + "${src}/contrib/ffmpeg/A23-movenc-set-the-chapters-track-language-to-the-same-a.patch" + "${src}/contrib/ffmpeg/A24-movenc-use-version-2-audio-descriptor-for-2-channels.patch" + ]; + }); x265-hb = x265.overrideAttrs (old: { - version = "4.1"; - sourceRoot = "x265_4.1/source"; + version = "4.2"; + sourceRoot = "x265_4.2/source"; src = fetchurl { - url = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.1.tar.gz"; - hash = "sha256-oxaZxqiYBrdLAVHl5qffZd5LSQUEgv5ev4pDedevjyk="; + url = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_4.2.tar.gz"; + hash = "sha256-QLHqBFPgMJ8OupNODd9TP49ilZZmeeiJTo8cHI1eEhA="; }; # nixpkgs' x265 sourceRoot is x265-.../source whereas handbrake's x265 patches # are written with respect to the parent directory instead of that source directory. # patches which don't cleanly apply are commented out. postPatch = (old.postPatch or "") + '' pushd .. - patch -p1 < ${src}/contrib/x265/A01-Do-not-set-thread-priority-on-Windows.patch - patch -p1 < ${src}/contrib/x265/A02-Apple-Silicon-tuning.patch - patch -p1 < ${src}/contrib/x265/A03-Implement-ambient-viewing-environment-sei.patch - patch -p1 < ${src}/contrib/x265/A04-add-new-matrix-coefficients-from-H.273-v3.patch - patch -p1 < ${src}/contrib/x265/A05-Fix-Dolby-Vision-RPU-memory-management.patch - # patch -p1 < ${src}/contrib/x265/A06-Update-version-strings.patch - patch -p1 < ${src}/contrib/x265/A07-Fix-macOS-cross-compilation.patch - # patch -p1 < ${src}/contrib/x265/A08-Fix-inconsistent-bitrate-in-second-pass.patch - patch -p1 < ${src}/contrib/x265/A09-Ensuring-the-mvdLX-is-compliant.patch + for p in ${src}/contrib/x265/*.patch; do + patch -p1 < "$p" + done + popd + ''; + }); + + svt-av1-hb = svt-av1.overrideAttrs (old: rec { + version = "4.0.1"; + src = fetchFromGitLab { + owner = "AOMediaCodec"; + repo = "SVT-AV1"; + rev = "v${version}"; + hash = "sha256-7krVkLZxgolqPTkuyKAx07BekAPacftcGZ44lQTQFZQ="; + }; + postPatch = (old.postPatch or "") + '' + pushd .. + for p in ${src}/contrib/svt-av1/*.patch; do + patch -p1 < "$p" + done popd ''; }); @@ -268,7 +289,7 @@ let libvpx libxml2 speex - svt-av1 + svt-av1-hb x264 x265-hb xz diff --git a/pkgs/by-name/ho/hotdoc/clang.patch b/pkgs/by-name/ho/hotdoc/clang.patch new file mode 100644 index 0000000000000..cf5c10fca3d41 --- /dev/null +++ b/pkgs/by-name/ho/hotdoc/clang.patch @@ -0,0 +1,78 @@ +diff --git a/hotdoc/extensions/c/c_extension.py b/hotdoc/extensions/c/c_extension.py +index 1cfd5b3..1e1926f 100644 +--- a/hotdoc/extensions/c/c_extension.py ++++ b/hotdoc/extensions/c/c_extension.py +@@ -44,14 +44,6 @@ from hotdoc.utils.loggable import (info as core_info, warn, Logger, + debug as core_debug) + + +-LLVM_CONFIG = os.environ.get("LLVM_CONFIG") +-if LLVM_CONFIG is None: +- LLVM_CONFIG = shutil.which('llvm-config') +- +-if LLVM_CONFIG is None: +- raise ImportError() +- +- + def ast_node_is_function_pointer(ast_node): + if ast_node.kind == cindex.TypeKind.POINTER and \ + ast_node.get_pointee().get_result().kind != \ +@@ -80,42 +72,26 @@ Logger.register_warning_code('clang-headers-not-found', HotdocException, + 'c-extension') + + +-CLANG_HEADERS_WARNING = ( +- 'Did not find clang headers. Please report a bug with the output of the' +- '\'llvm-config --version\' and \'llvm-config --prefix\' commands') +- +- + def get_clang_headers(): + try: + # Clang 5.0+ can tell us directly + resource_dir = subprocess.check_output( +- ['clang', '--print-resource-dir']).strip().decode() ++ ['@clang@', '--print-resource-dir']).strip().decode() + if len(resource_dir) > 0: + include_dir = os.path.join(resource_dir, 'include') + if os.path.exists(include_dir): + return include_dir + except subprocess.CalledProcessError: + pass +- version = subprocess.check_output( +- [LLVM_CONFIG, '--version']).strip().decode() +- prefix = subprocess.check_output( +- [LLVM_CONFIG, '--prefix']).strip().decode() +- versions = (version, version.split('.').pop(0)) +- for (ver, lib) in itertools.product( +- versions, +- ['lib', 'lib64']): +- p = os.path.join(prefix, lib, 'clang', ver, 'include') +- if os.path.exists(p): +- return p + +- warn('clang-headers-not-found', CLANG_HEADERS_WARNING) ++ warn('clang-headers-not-found', 'Did not find clang headers. Make sure you\'re using Clang 5.0+') + + + CLANG_HEADERS = get_clang_headers() + + + def get_clang_libdir(): +- return subprocess.check_output([LLVM_CONFIG, '--libdir']).strip().decode() ++ return '@libclang_lib_dir@' + + + class ClangScanner(object): +diff --git a/hotdoc/extensions/c/clang/cindex.py b/hotdoc/extensions/c/clang/cindex.py +index fc93fda..0a16651 100644 +--- a/hotdoc/extensions/c/clang/cindex.py ++++ b/hotdoc/extensions/c/clang/cindex.py +@@ -3949,6 +3949,8 @@ class Config: + + if Config.library_path: + file = Config.library_path + '/' + file ++ else: ++ file = "@libclang_lib_dir@" + '/' + file + + return file + diff --git a/pkgs/development/tools/hotdoc/fix-cmake-4.patch b/pkgs/by-name/ho/hotdoc/fix-cmake-4.patch similarity index 100% rename from pkgs/development/tools/hotdoc/fix-cmake-4.patch rename to pkgs/by-name/ho/hotdoc/fix-cmake-4.patch diff --git a/pkgs/development/tools/hotdoc/default.nix b/pkgs/by-name/ho/hotdoc/package.nix similarity index 58% rename from pkgs/development/tools/hotdoc/default.nix rename to pkgs/by-name/ho/hotdoc/package.nix index 64f7538ca37b6..47862db4d9786 100644 --- a/pkgs/development/tools/hotdoc/default.nix +++ b/pkgs/by-name/ho/hotdoc/package.nix @@ -1,37 +1,21 @@ { lib, stdenv, - buildPythonApplication, + python3Packages, fetchpatch, fetchPypi, replaceVars, - clang, - libclang, - pytestCheckHook, pkg-config, cmake, flex, glib, json-glib, libxml2, - appdirs, - backports-entry-points-selectable, - dbus-deviation, - faust-cchardet, - feedgen, - lxml, - networkx, - pkgconfig, - pyyaml, - schema, - setuptools, - toposort, - wheezy-template, llvmPackages, gst_all_1, }: -buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "hotdoc"; version = "0.17.4"; pyproject = true; @@ -43,8 +27,8 @@ buildPythonApplication rec { patches = [ (replaceVars ./clang.patch { - clang = lib.getExe clang; - libclang = "${lib.getLib libclang}/lib/libclang${stdenv.hostPlatform.extensions.sharedLibrary}"; + clang = lib.getExe llvmPackages.clang; + libclang_lib_dir = "${lib.getLib llvmPackages.libclang}/lib"; }) # Fix build with gcc15 @@ -55,7 +39,9 @@ buildPythonApplication rec { }) ]; - build-system = [ setuptools ]; + postPatch = '' + patch -p1 -d cmark -i ${./fix-cmake-4.patch} + ''; nativeBuildInputs = [ pkg-config @@ -66,10 +52,12 @@ buildPythonApplication rec { buildInputs = [ glib json-glib - libxml2.dev + libxml2 ]; - dependencies = [ + build-system = with python3Packages; [ setuptools ]; + + dependencies = with python3Packages; [ appdirs backports-entry-points-selectable dbus-deviation @@ -85,7 +73,7 @@ buildPythonApplication rec { wheezy-template ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = with python3Packages; [ pytestCheckHook ]; # CMake is used to build CMARK, but the build system is still python dontUseCmakeConfigure = true; @@ -103,14 +91,6 @@ buildPythonApplication rec { "hotdoc" ]; - disabledTestPaths = [ - # Executing hotdoc exits with code 1 - "tests/test_hotdoc.py::TestHotdoc::test_basic" - "tests/test_hotdoc.py::TestHotdoc::test_explicit_conf_file" - "tests/test_hotdoc.py::TestHotdoc::test_implicit_conf_file" - "tests/test_hotdoc.py::TestHotdoc::test_private_folder" - ]; - disabledTests = [ # Test does not correctly handle path normalization for test comparison "test_cli_overrides" @@ -120,20 +100,6 @@ buildPythonApplication rec { "test_index" ]; - postPatch = - # Hardcode libclang paths - '' - substituteInPlace hotdoc/extensions/c/c_extension.py \ - --replace "shutil.which('llvm-config')" 'True' \ - --replace "subprocess.check_output(['llvm-config', '--version']).strip().decode()" '"${lib.versions.major llvmPackages.libclang.version}"' \ - --replace "subprocess.check_output(['llvm-config', '--prefix']).strip().decode()" '"${lib.getLib llvmPackages.libclang}"' \ - --replace "subprocess.check_output(['llvm-config', '--libdir']).strip().decode()" '"${lib.getLib llvmPackages.libclang}/lib"' - '' - # - + '' - patch -p1 -d cmark -i ${./fix-cmake-4.patch} - ''; - # Make pytest run from a temp dir to have it pick up installed package for cmark preCheck = '' pushd $TMPDIR diff --git a/pkgs/by-name/hu/hunspell/package.nix b/pkgs/by-name/hu/hunspell/package.nix index ce0e7db16a7b3..398c9e9e453be 100644 --- a/pkgs/by-name/hu/hunspell/package.nix +++ b/pkgs/by-name/hu/hunspell/package.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "hunspell"; - version = "1.7.2"; + version = "1.7.3"; outputs = [ "bin" @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "hunspell"; repo = "hunspell"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-x2FXxnVIqsf5/UEQcvchAndXBv/3mW8Z55djQAFgNA8="; + hash = "sha256-NoLlH+4Hb6w+HYl2fSBzroav1Pb3GojFSTJGBxlteBM="; }; patches = [ ./0001-Make-hunspell-look-in-XDG_DATA_DIRS-for-dictionaries.patch ]; diff --git a/pkgs/by-name/hw/hwdata/package.nix b/pkgs/by-name/hw/hwdata/package.nix index 0678443277a98..0fc7c9022a628 100644 --- a/pkgs/by-name/hw/hwdata/package.nix +++ b/pkgs/by-name/hw/hwdata/package.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "hwdata"; - version = "0.406"; + version = "0.408"; src = fetchFromGitHub { owner = "vcrhonek"; repo = "hwdata"; rev = "v${finalAttrs.version}"; - hash = "sha256-6GXXkDzunbtea+MmmWV2gpHgCgdGi75U+TV9H/6Emtk="; + hash = "sha256-fgKOvVGAdB3uBFuKfGPFfF9wQEdLtnlMdQrLNIr3teo="; }; doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus) diff --git a/pkgs/by-name/hw/hwloc/package.nix b/pkgs/by-name/hw/hwloc/package.nix index c49a9c9b78adc..5ad26d3e89a32 100644 --- a/pkgs/by-name/hw/hwloc/package.nix +++ b/pkgs/by-name/hw/hwloc/package.nix @@ -18,13 +18,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "hwloc"; - version = "2.13.0"; + version = "2.14.0"; src = fetchFromGitHub { owner = "open-mpi"; repo = "hwloc"; tag = "hwloc-${finalAttrs.version}"; - hash = "sha256-W/WiLj4lqJZMGRhH+PXuSJS6mtW+fir4xmDTH9mcOtE="; + hash = "sha256-lbh8tkKeUcHta7/q9TuHQhccyWjkBgrC5fVifFJqQyY="; }; configureFlags = [ diff --git a/pkgs/by-name/ib/ibus/package.nix b/pkgs/by-name/ib/ibus/package.nix index 8e8502ff557ab..b164f6ead3a7e 100644 --- a/pkgs/by-name/ib/ibus/package.nix +++ b/pkgs/by-name/ib/ibus/package.nix @@ -67,13 +67,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "ibus"; - version = "1.5.33"; + version = "1.5.34"; src = fetchFromGitHub { owner = "ibus"; repo = "ibus"; tag = finalAttrs.version; - hash = "sha256-cpNZI6KbL9zUJHw1szpWl4lOEAvlBdd+FA6xGh1sYYY="; + hash = "sha256-MCxzMnG+g2FC4pZtDOP2c7vSRG5Zk6EfrkGnEyFvBfQ="; }; patches = [ @@ -88,8 +88,6 @@ stdenv.mkDerivation (finalAttrs: { PYTHON = null; }) ./build-without-dbus-launch.patch - # https://github.com/NixOS/nixpkgs/issues/230290 - ./vala-parallelism.patch ]; outputs = [ diff --git a/pkgs/by-name/ib/ibus/vala-parallelism.patch b/pkgs/by-name/ib/ibus/vala-parallelism.patch deleted file mode 100644 index f4c47a76c39cc..0000000000000 --- a/pkgs/by-name/ib/ibus/vala-parallelism.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am -index 3ada6501..2066a8f5 100644 ---- a/ui/gtk3/Makefile.am -+++ b/ui/gtk3/Makefile.am -@@ -304,6 +304,8 @@ panelbinding.o: $(srcdir)/panelbinding.c - $(AM_V_CC_no)$(COMPILE) -c -o $@ $< - $(NULL) - -+.NOTPARALLEL: -+ - MAINTAINERCLEANFILES += extension.c panelbinding.c - - man_seven_DATA = ibus-emoji.7 diff --git a/pkgs/by-name/im/imagemagick/package.nix b/pkgs/by-name/im/imagemagick/package.nix index ffce265c53e04..918d97c640fa2 100644 --- a/pkgs/by-name/im/imagemagick/package.nix +++ b/pkgs/by-name/im/imagemagick/package.nix @@ -89,13 +89,13 @@ in stdenv.mkDerivation (finalAttrs: { pname = "imagemagick"; - version = "7.1.2-24"; + version = "7.1.2-27"; src = fetchFromGitHub { owner = "ImageMagick"; repo = "ImageMagick"; tag = finalAttrs.version; - hash = "sha256-oSH0dsQ3cuFNYJIIr6LHbv82FbFxxcmkjQ5csTNsYCA="; + hash = "sha256-QCC2CO2zkhwlEWymwF739uSNuS7QCqqGIJnF/LtYzVc="; }; outputs = [ @@ -209,7 +209,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "http://www.imagemagick.org/"; - changelog = "https://github.com/ImageMagick/Website/blob/main/ChangeLog.md"; + changelog = "https://github.com/ImageMagick/Website/blob/main/docs/changelog/index.md"; description = "Software suite to create, edit, compose, or convert bitmap images"; pkgConfigModules = [ "ImageMagick" diff --git a/pkgs/by-name/ip/iproute2/package.nix b/pkgs/by-name/ip/iproute2/package.nix index 9417763e3177a..2ad8fa7c8a26c 100644 --- a/pkgs/by-name/ip/iproute2/package.nix +++ b/pkgs/by-name/ip/iproute2/package.nix @@ -18,11 +18,11 @@ stdenv.mkDerivation rec { pname = "iproute2"; - version = "7.0.0"; + version = "7.1.0"; src = fetchurl { - url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz"; - hash = "sha256-5iiQ97XeY8BaO/Mx3I3rTAFcM2AT80Gk7fRpaXl/L04="; + url = "mirror://kernel/linux/utils/net/iproute2/iproute2-${version}.tar.xz"; + hash = "sha256-/Z+huVgJQXFXyoPdcpV+MmG9vOiWNTy5NvgK8LM6S1w="; }; postPatch = '' diff --git a/pkgs/by-name/ir/ironcalc/nodejs.nix b/pkgs/by-name/ir/ironcalc/nodejs.nix index 50cb077de5dbd..6082a1a13f9f2 100644 --- a/pkgs/by-name/ir/ironcalc/nodejs.nix +++ b/pkgs/by-name/ir/ironcalc/nodejs.nix @@ -29,8 +29,8 @@ stdenv.mkDerivation { pnpmDeps = fetchPnpmDeps { inherit (ironcalc) src; pname = "ironcalc-nodejs"; - hash = "sha256-q0PTXKAX0mhrMKMnFzV65YU948lh+/rGn9ttWzBfdNc="; - fetcherVersion = 3; + hash = "sha256-WBISZTISqnti5MiI+/rECZw31YumSm7VPN+MYZNoS28="; + fetcherVersion = 4; preInstall = '' cd bindings/nodejs ''; diff --git a/pkgs/by-name/je/jetbrains-mono/package.nix b/pkgs/by-name/je/jetbrains-mono/package.nix index 4461ab2bafeff..5584347e5a2b6 100644 --- a/pkgs/by-name/je/jetbrains-mono/package.nix +++ b/pkgs/by-name/je/jetbrains-mono/package.nix @@ -2,7 +2,7 @@ lib, stdenvNoCC, fetchFromGitHub, - python3Packages, + python313Packages, }: stdenvNoCC.mkDerivation rec { @@ -19,7 +19,8 @@ stdenvNoCC.mkDerivation rec { env."PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION" = "python"; nativeBuildInputs = [ - python3Packages.gftools + # Currently broken on 3.14 + python313Packages.gftools ]; buildPhase = '' diff --git a/pkgs/by-name/jp/jpegli/package.nix b/pkgs/by-name/jp/jpegli/package.nix index 68ed1766c073e..86bf75f0c4265 100644 --- a/pkgs/by-name/jp/jpegli/package.nix +++ b/pkgs/by-name/jp/jpegli/package.nix @@ -31,7 +31,10 @@ stdenv.mkDerivation { outputs = [ "out" + "bin" + "dev" "man" + "benchmark" ]; strictDeps = true; @@ -70,6 +73,12 @@ stdenv.mkDerivation { (lib.cmakeFeature "CMAKE_POLICY_VERSION_MINIMUM" "3.5") ]; + # Move `benchmark_xl` into a separate output to avoid a file collision + # with the `benchmark_xl` binary provided by `libjxl`. + postInstall = '' + moveToOutput "bin/benchmark_xl" "$benchmark" + ''; + doCheck = true; passthru = { diff --git a/pkgs/by-name/jq/jq/CVE-2026-32316.patch b/pkgs/by-name/jq/jq/CVE-2026-32316.patch deleted file mode 100644 index 29d08c9adcd79..0000000000000 --- a/pkgs/by-name/jq/jq/CVE-2026-32316.patch +++ /dev/null @@ -1,49 +0,0 @@ -From e47e56d226519635768e6aab2f38f0ab037c09e5 Mon Sep 17 00:00:00 2001 -From: itchyny -Date: Thu, 12 Mar 2026 20:28:43 +0900 -Subject: [PATCH] Fix heap buffer overflow in `jvp_string_append` and - `jvp_string_copy_replace_bad` - -In `jvp_string_append`, the allocation size `(currlen + len) * 2` could -overflow `uint32_t` when `currlen + len` exceeds `INT_MAX`, causing a small -allocation followed by a large `memcpy`. - -In `jvp_string_copy_replace_bad`, the output buffer size calculation -`length * 3 + 1` could overflow `uint32_t`, again resulting in a small -allocation followed by a large write. - -Add overflow checks to both functions to return an error for strings -that would exceed `INT_MAX` in length. Fixes CVE-2026-32316. ---- - src/jv.c | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/src/jv.c b/src/jv.c -index 722a539391..2a62b48419 100644 ---- a/src/jv.c -+++ b/src/jv.c -@@ -1114,7 +1114,12 @@ static jv jvp_string_copy_replace_bad(const char* data, uint32_t length) { - const char* end = data + length; - const char* i = data; - -- uint32_t maxlength = length * 3 + 1; // worst case: all bad bytes, each becomes a 3-byte U+FFFD -+ // worst case: all bad bytes, each becomes a 3-byte U+FFFD -+ uint64_t maxlength = (uint64_t)length * 3 + 1; -+ if (maxlength >= INT_MAX) { -+ return jv_invalid_with_msg(jv_string("String too long")); -+ } -+ - jvp_string* s = jvp_string_alloc(maxlength); - char* out = s->data; - int c = 0; -@@ -1174,6 +1179,10 @@ static uint32_t jvp_string_remaining_space(jvp_string* s) { - static jv jvp_string_append(jv string, const char* data, uint32_t len) { - jvp_string* s = jvp_string_ptr(string); - uint32_t currlen = jvp_string_length(s); -+ if ((uint64_t)currlen + len >= INT_MAX) { -+ jv_free(string); -+ return jv_invalid_with_msg(jv_string("String too long")); -+ } - - if (jvp_refcnt_unshared(string.u.ptr) && - jvp_string_remaining_space(s) >= len) { diff --git a/pkgs/by-name/jq/jq/CVE-2026-33947.patch b/pkgs/by-name/jq/jq/CVE-2026-33947.patch deleted file mode 100644 index 9f31fd82b0574..0000000000000 --- a/pkgs/by-name/jq/jq/CVE-2026-33947.patch +++ /dev/null @@ -1,66 +0,0 @@ -From fb59f1491058d58bdc3e8dd28f1773d1ac690a1f Mon Sep 17 00:00:00 2001 -From: itchyny -Date: Mon, 13 Apr 2026 11:23:40 +0900 -Subject: [PATCH] Limit path depth to prevent stack overflow - -Deeply nested path arrays can cause unbounded recursion in -`jv_setpath`, `jv_getpath`, and `jv_delpaths`, leading to -stack overflow. Add a depth limit of 10000 to match the -existing `tojson` depth limit. This fixes CVE-2026-33947. ---- - src/jv_aux.c | 21 +++++++++++++++++++++ - 2 files changed, 46 insertions(+) - -diff --git a/src/jv_aux.c b/src/jv_aux.c -index 018f380b10..fd5ff96684 100644 ---- a/src/jv_aux.c -+++ b/src/jv_aux.c -@@ -365,6 +365,10 @@ static jv jv_dels(jv t, jv keys) { - return t; - } - -+#ifndef MAX_PATH_DEPTH -+#define MAX_PATH_DEPTH (10000) -+#endif -+ - jv jv_setpath(jv root, jv path, jv value) { - if (jv_get_kind(path) != JV_KIND_ARRAY) { - jv_free(value); -@@ -372,6 +376,12 @@ jv jv_setpath(jv root, jv path, jv value) { - jv_free(path); - return jv_invalid_with_msg(jv_string("Path must be specified as an array")); - } -+ if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) { -+ jv_free(value); -+ jv_free(root); -+ jv_free(path); -+ return jv_invalid_with_msg(jv_string("Path too deep")); -+ } - if (!jv_is_valid(root)){ - jv_free(value); - jv_free(path); -@@ -424,6 +434,11 @@ jv jv_getpath(jv root, jv path) { - jv_free(path); - return jv_invalid_with_msg(jv_string("Path must be specified as an array")); - } -+ if (jv_array_length(jv_copy(path)) > MAX_PATH_DEPTH) { -+ jv_free(root); -+ jv_free(path); -+ return jv_invalid_with_msg(jv_string("Path too deep")); -+ } - if (!jv_is_valid(root)) { - jv_free(path); - return root; -@@ -502,6 +517,12 @@ jv jv_delpaths(jv object, jv paths) { - jv_free(elem); - return err; - } -+ if (jv_array_length(jv_copy(elem)) > MAX_PATH_DEPTH) { -+ jv_free(object); -+ jv_free(paths); -+ jv_free(elem); -+ return jv_invalid_with_msg(jv_string("Path too deep")); -+ } - jv_free(elem); - } - if (jv_array_length(jv_copy(paths)) == 0) { diff --git a/pkgs/by-name/jq/jq/CVE-2026-33948.patch b/pkgs/by-name/jq/jq/CVE-2026-33948.patch deleted file mode 100644 index 5b6497e1469df..0000000000000 --- a/pkgs/by-name/jq/jq/CVE-2026-33948.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 6374ae0bcdfe33a18eb0ae6db28493b1f34a0a5b Mon Sep 17 00:00:00 2001 -From: itchyny -Date: Mon, 13 Apr 2026 08:46:11 +0900 -Subject: [PATCH] Fix NUL truncation in the JSON parser - -This fixes CVE-2026-33948. ---- - src/util.c | 8 +------- - tests/shtest | 6 ++++++ - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/util.c b/src/util.c -index fdfdb96d88..80d65fc808 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -312,13 +312,7 @@ static int jq_util_input_read_more(jq_util_input_state *state) { - if (p != NULL) - state->current_line++; - -- if (p == NULL && state->parser != NULL) { -- /* -- * There should be no NULs in JSON texts (but JSON text -- * sequences are another story). -- */ -- state->buf_valid_len = strlen(state->buf); -- } else if (p == NULL && feof(state->current_input)) { -+ if (p == NULL && feof(state->current_input)) { - size_t i; - - /* -diff --git a/tests/shtest b/tests/shtest -index cb88745277..370f7b7c69 100755 ---- a/tests/shtest -+++ b/tests/shtest -@@ -880,4 +880,10 @@ $JQ -nf $d/prog.jq 2> $d/out && { - } - diff $d/out $d/expected - -+# CVE-2026-33948: No NUL truncation in the JSON parser -+if printf '{}\x00{}' | $JQ >/dev/null 2> /dev/null; then -+ printf 'Error expected but jq exited successfully\n' 1>&2 -+ exit 1 -+fi -+ - exit 0 diff --git a/pkgs/by-name/jq/jq/CVE-2026-39979.patch b/pkgs/by-name/jq/jq/CVE-2026-39979.patch deleted file mode 100644 index cc0c3d17f77f6..0000000000000 --- a/pkgs/by-name/jq/jq/CVE-2026-39979.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 2f09060afab23fe9390cce7cb860b10416e1bf5f Mon Sep 17 00:00:00 2001 -From: itchyny -Date: Mon, 13 Apr 2026 11:04:52 +0900 -Subject: [PATCH] Fix out-of-bounds read in jv_parse_sized() - -This fixes CVE-2026-39979. - -Co-authored-by: Mattias Wadman ---- - src/jv_parse.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/jv_parse.c b/src/jv_parse.c -index aa2054cc09..56847b5eaa 100644 ---- a/src/jv_parse.c -+++ b/src/jv_parse.c -@@ -893,8 +893,9 @@ jv jv_parse_sized_custom_flags(const char* string, int length, int flags) { - - if (!jv_is_valid(value) && jv_invalid_has_msg(jv_copy(value))) { - jv msg = jv_invalid_get_msg(value); -- value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%s')", -+ value = jv_invalid_with_msg(jv_string_fmt("%s (while parsing '%.*s')", - jv_string_value(msg), -+ length, - string)); - jv_free(msg); - } diff --git a/pkgs/by-name/jq/jq/CVE-2026-40164.patch b/pkgs/by-name/jq/jq/CVE-2026-40164.patch deleted file mode 100644 index 483316f64b4bb..0000000000000 --- a/pkgs/by-name/jq/jq/CVE-2026-40164.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 0c7d133c3c7e37c00b6d46b658a02244fdd3c784 Mon Sep 17 00:00:00 2001 -From: itchyny -Date: Mon, 13 Apr 2026 08:53:26 +0900 -Subject: [PATCH] Randomize hash seed to mitigate hash collision DoS attacks - -The hash function used a fixed seed, allowing attackers to craft colliding keys -and cause O(n^2) object parsing performance. Initialize the seed from a random -source at process startup to prevent the attack. This fixes CVE-2026-40164. - -Co-authored-by: Asaf Meizner ---- - configure.ac | 2 ++ - src/jv.c | 34 ++++++++++++++++++++++++++++++++-- - 2 files changed, 34 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 5dac42655a..f7067a4341 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -149,6 +149,8 @@ AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define - AC_CHECK_MEMBER([struct tm.__tm_gmtoff], [AC_DEFINE([HAVE_TM___TM_GMT_OFF],1,[Define to 1 if the system has the __tm_gmt_off field in struct tm])], - [], [[#include ]]) - AC_FIND_FUNC([setlocale], [c], [#include ], [0,0]) -+AC_FIND_FUNC([arc4random], [c], [#include ], []) -+AC_FIND_FUNC([getentropy], [c], [#include ], [0, 0]) - - dnl Figure out if we have the pthread functions we actually need - AC_FIND_FUNC_NO_LIBS([pthread_key_create], [], [#include ], [NULL, NULL]) -diff --git a/src/jv.c b/src/jv.c -index 2a62b48419..607ac174f7 100644 ---- a/src/jv.c -+++ b/src/jv.c -@@ -40,6 +40,10 @@ - #include - #include - #include -+#include -+#include -+#include -+#include - - #include "jv_alloc.h" - #include "jv.h" -@@ -1206,7 +1210,33 @@ static jv jvp_string_append(jv string, const char* data, uint32_t len) { - } - } - --static const uint32_t HASH_SEED = 0x432A9843; -+static uint32_t hash_seed; -+static pthread_once_t hash_seed_once = PTHREAD_ONCE_INIT; -+ -+static void jvp_hash_seed_init(void) { -+ uint32_t seed; -+#if defined(HAVE_ARC4RANDOM) -+ seed = arc4random(); -+#elif defined(HAVE_GETENTROPY) -+ if (getentropy(&seed, sizeof(seed)) != 0) -+ seed = (uint32_t)getpid() ^ (uint32_t)time(NULL); -+#else -+ int fd = open("/dev/urandom", O_RDONLY); -+ if (fd >= 0) { -+ if (read(fd, &seed, sizeof(seed)) != 4) -+ seed = (uint32_t)getpid() ^ (uint32_t)time(NULL); -+ close(fd); -+ } else { -+ seed = (uint32_t)getpid() ^ (uint32_t)time(NULL); -+ } -+#endif -+ hash_seed = seed; -+} -+ -+static uint32_t jvp_hash_seed(void) { -+ pthread_once(&hash_seed_once, jvp_hash_seed_init); -+ return hash_seed; -+} - - static uint32_t rotl32 (uint32_t x, int8_t r){ - return (x << r) | (x >> (32 - r)); -@@ -1225,7 +1255,7 @@ static uint32_t jvp_string_hash(jv jstr) { - int len = (int)jvp_string_length(str); - const int nblocks = len / 4; - -- uint32_t h1 = HASH_SEED; -+ uint32_t h1 = jvp_hash_seed(); - - const uint32_t c1 = 0xcc9e2d51; - const uint32_t c2 = 0x1b873593; diff --git a/pkgs/by-name/jq/jq/musl.patch b/pkgs/by-name/jq/jq/musl.patch deleted file mode 100644 index 3632899882e71..0000000000000 --- a/pkgs/by-name/jq/jq/musl.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 63e9449a8142ce30c83fcd7e9396e5de9843774e Mon Sep 17 00:00:00 2001 -From: Alyssa Ross -Date: Thu, 3 Jul 2025 11:00:13 +0200 -Subject: [PATCH] jq.test: drop non-portable %F test - -%F is a non-portable GNU extension, not supported by all strptime -implementations (for example musl's). - -Link: https://github.com/jqlang/jq/pull/3365 ---- - tests/jq.test | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/tests/jq.test b/tests/jq.test -index 4ecf72f..6bfb6f8 100644 ---- a/tests/jq.test -+++ b/tests/jq.test -@@ -1848,10 +1848,6 @@ try ["OK", strflocaltime({})] catch ["KO", .] - "2015-03-05T23:51:47Z" - [[2015,2,5,23,51,47,4,63],1425599507] - --[strptime("%FT%T")|(.,mktime)] --"2025-06-07T08:09:10" --[[2025,5,7,8,9,10,6,157],1749283750] -- - # Check day-of-week and day of year computations - # (should trip an assert if this fails) - last(range(365 * 67)|("1970-03-01T01:02:03Z"|strptime("%Y-%m-%dT%H:%M:%SZ")|mktime) + (86400 * .)|strftime("%Y-%m-%dT%H:%M:%SZ")|strptime("%Y-%m-%dT%H:%M:%SZ")) --- -2.49.0 - diff --git a/pkgs/by-name/jq/jq/package.nix b/pkgs/by-name/jq/jq/package.nix index 70b6bb169fcea..edf9b16ec356d 100644 --- a/pkgs/by-name/jq/jq/package.nix +++ b/pkgs/by-name/jq/jq/package.nix @@ -14,12 +14,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "jq"; - version = "1.8.1"; + version = "1.8.2"; # Note: do not use fetchpatch or fetchFromGitHub to keep this package available in __bootPackages src = fetchurl { url = "https://github.com/jqlang/jq/releases/download/jq-${finalAttrs.version}/jq-${finalAttrs.version}.tar.gz"; - hash = "sha256-K+ZOcSnOyxHVkGKQ66EK9pT7nj5/n8IIoxHcM8qDfrA="; + hash = "sha256-cbjW6PX+gfbG0NEQ44kiUfbOdu0JWr0xXibm4Rk6868="; }; outputs = [ @@ -30,15 +30,7 @@ stdenv.mkDerivation (finalAttrs: { "out" ]; - patches = [ - ./musl.patch - ./CVE-2026-32316.patch - ./CVE-2026-33947.patch - ./CVE-2026-33948.patch - ./CVE-2026-39979.patch - ./CVE-2026-40164.patch - ] - ++ lib.optionals stdenv.hostPlatform.is32bit [ + patches = lib.optionals stdenv.hostPlatform.is32bit [ # needed because epoch conversion test here is right at the end of 32 bit integer space # See also: https://github.com/jqlang/jq/blob/859a8073ee8a21f2133154eea7c2bd5e0d60837f/tests/optional.test#L15-L18 # "-D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64" would be preferrable, but breaks with dynamic linking, diff --git a/pkgs/by-name/js/jsoncpp/package.nix b/pkgs/by-name/js/jsoncpp/package.nix index dc3d94b78260b..25d1bcdf8fe01 100644 --- a/pkgs/by-name/js/jsoncpp/package.nix +++ b/pkgs/by-name/js/jsoncpp/package.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "jsoncpp"; - version = "1.9.7"; + version = "1.9.8"; strictDeps = true; __structuredAttrs = true; @@ -24,8 +24,8 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "open-source-parsers"; repo = "jsoncpp"; - rev = finalAttrs.version; - sha256 = "sha256-rf8d2UNTVEZhuiyChK2XnUbfGDvsfXnKADhaSp8qBwQ="; + tag = finalAttrs.version; + hash = "sha256-5cH9G4/TVCM5HX6QSk3P4m5+cwuK4x8hP9FohBcmjik="; }; /* @@ -60,9 +60,10 @@ stdenv.mkDerivation (finalAttrs: { ) "-DJSONCPP_WITH_TESTS=OFF"; meta = { + changelog = "https://github.com/open-source-parsers/jsoncpp/releases/tag/${finalAttrs.src.tag}"; homepage = "https://github.com/open-source-parsers/jsoncpp"; description = "C++ library for interacting with JSON"; - maintainers = [ ]; + maintainers = with lib.maintainers; [ hythera ]; license = lib.licenses.mit; platforms = lib.platforms.all; }; diff --git a/pkgs/by-name/ka/kazumi/package.nix b/pkgs/by-name/ka/kazumi/package.nix index c820958ab0f2b..382a297f18650 100644 --- a/pkgs/by-name/ka/kazumi/package.nix +++ b/pkgs/by-name/ka/kazumi/package.nix @@ -91,7 +91,6 @@ flutter.buildFlutterApplication { gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good - gst_all_1.gst-vaapi gst_all_1.gstreamer libayatana-appindicator mpv-unwrapped diff --git a/pkgs/by-name/kh/khronos-ocl-icd-loader/package.nix b/pkgs/by-name/kh/khronos-ocl-icd-loader/package.nix index ebd9e4b077f39..f36cfa1fa9104 100644 --- a/pkgs/by-name/kh/khronos-ocl-icd-loader/package.nix +++ b/pkgs/by-name/kh/khronos-ocl-icd-loader/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "opencl-icd-loader"; - version = "2025.07.22"; + version = "2026.05.29"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-ICD-Loader"; rev = "v${finalAttrs.version}"; - hash = "sha256-jwviNwX7C7b9lqIS4oZ4YLEFBfBdmQfXHxW3FPPYxYs="; + hash = "sha256-PUfYCf2+0i+SatQerehPv97LOTDlBsQAmtHFX97UGzo="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/kr/krb5/CVE-2026-11850.patch b/pkgs/by-name/kr/krb5/CVE-2026-11850.patch new file mode 100644 index 0000000000000..3c7dde29df3fc --- /dev/null +++ b/pkgs/by-name/kr/krb5/CVE-2026-11850.patch @@ -0,0 +1,33 @@ +From 2a5fd83d4436583f2ddc0e193269a4d800ee45c4 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Sebasti=C3=A1n=20Alba?= +Date: Wed, 8 Apr 2026 18:32:25 -0400 +Subject: [PATCH] Prevent read overrun in libkdb_ldap + +In berval2tl_data(), reject inputs of length less than 2 to prevent an +integer underflow and subsequent read overrun. (The security impact +is negligible as the attacker would have to control the KDB LDAP +server.) + +[ghudson@mit.edu: wrote commit message] + +ticket: 9206 (new) +tags: pullup +target_version: 1.22-next +--- + plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c b/src/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c +index 418d253d17..9aa68bacd7 100644 +--- a/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c ++++ b/plugins/kdb/ldap/libkdb_ldap/ldap_principal2.c +@@ -80,6 +80,9 @@ getstringtime(krb5_timestamp); + krb5_error_code + berval2tl_data(struct berval *in, krb5_tl_data **out) + { ++ if (in->bv_len < 2) ++ return EINVAL; ++ + *out = (krb5_tl_data *) malloc (sizeof (krb5_tl_data)); + if (*out == NULL) + return ENOMEM; diff --git a/pkgs/by-name/kr/krb5/package.nix b/pkgs/by-name/kr/krb5/package.nix index c4e35061d41af..4e97e98671907 100644 --- a/pkgs/by-name/kr/krb5/package.nix +++ b/pkgs/by-name/kr/krb5/package.nix @@ -44,6 +44,8 @@ stdenv.mkDerivation (finalAttrs: { }; patches = [ + # https://github.com/krb5/krb5/pull/1505 + ./CVE-2026-11850.patch # https://github.com/krb5/krb5/pull/1506 ./CVE-2026-40355-and-CVE-2026-40356.patch ] diff --git a/pkgs/by-name/lc/lcms2/package.nix b/pkgs/by-name/lc/lcms2/package.nix index ecb0c3280adbc..d07d8ca7ffa46 100644 --- a/pkgs/by-name/lc/lcms2/package.nix +++ b/pkgs/by-name/lc/lcms2/package.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation rec { pname = "lcms2"; - version = "2.18"; + version = "2.19.1"; src = fetchurl { url = "mirror://sourceforge/lcms/lcms2-${version}.tar.gz"; - hash = "sha256-7me+NWb0WTYsHuCU/eLBWdM/oDkKpO1fWvZ2+eUAQ0c="; + hash = "sha256-v8VPe6tZ+8khASAUqAMuTLpKvUbbR9RrdkFqjAsoFcg="; }; outputs = [ diff --git a/pkgs/by-name/ld/ld64/package.nix b/pkgs/by-name/ld/ld64/package.nix index 8699a4132d4a6..184f635cffe3f 100644 --- a/pkgs/by-name/ld/ld64/package.nix +++ b/pkgs/by-name/ld/ld64/package.nix @@ -47,7 +47,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "ld64"; - version = "956.6"; + version = "957.1"; outputs = [ "out" @@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "apple-oss-distributions"; repo = "ld64"; tag = "ld64-${finalAttrs.version}"; - hash = "sha256-2VlBjlCZ+ZPKGZ0f5UuG3jJTLZIBXf8IZOiD6snheh4="; + hash = "sha256-KUkEKz2jQq815ls25u0JMYmad4cN9PS/nC3E5eV19co="; }; patches = [ @@ -138,9 +138,6 @@ stdenv.mkDerivation (finalAttrs: { xar ]; - # ld built with this fails to link glib's gio on x86_64 darwin - hardeningDisable = [ "libcxxhardeningfast" ]; - dontUseCmakeConfigure = true; # CMake is only needed because it’s used by Meson to find LLVM. # Note for overrides: ld64 cannot be built as a debug build because of UB in its iteration implementations, diff --git a/pkgs/by-name/ld/ldacbt/0001-abr-drop-support-for-dynamic-loading-libldac.patch b/pkgs/by-name/ld/ldacbt/0001-abr-drop-support-for-dynamic-loading-libldac.patch new file mode 100644 index 0000000000000..e054d75fd395e --- /dev/null +++ b/pkgs/by-name/ld/ldacbt/0001-abr-drop-support-for-dynamic-loading-libldac.patch @@ -0,0 +1,164 @@ +From 040210591a5e90fc3e0ca0ec438426273e86c497 Mon Sep 17 00:00:00 2001 +From: "yshuiv7@gmail.com" +Date: Mon, 27 Apr 2026 15:30:10 +0100 +Subject: [PATCH] abr: drop support for dynamic loading libldac + +--- + abr/inc/ldacBT_abr.h | 2 +- + abr/src/ldacBT_abr.c | 76 +------------------------------------------- + 2 files changed, 2 insertions(+), 76 deletions(-) + +diff --git a/abr/inc/ldacBT_abr.h b/abr/inc/ldacBT_abr.h +index 294e230..735ea67 100644 +--- a/abr/inc/ldacBT_abr.h ++++ b/abr/inc/ldacBT_abr.h +@@ -89,7 +89,7 @@ typedef struct _ldacbt_abr_param * HANDLE_LDAC_ABR; + * Return value + * HANDLE_LDAC_ABR for success, NULL for failure. + */ +-LDAC_ABR_API HANDLE_LDAC_ABR ldac_ABR_get_handle(const char *libpath); ++LDAC_ABR_API HANDLE_LDAC_ABR ldac_ABR_get_handle(void); + + /* Release of LDAC ABR handle. + * Format +diff --git a/abr/src/ldacBT_abr.c b/abr/src/ldacBT_abr.c +index 0af6278..fad2dd0 100644 +--- a/abr/src/ldacBT_abr.c ++++ b/abr/src/ldacBT_abr.c +@@ -8,10 +8,6 @@ + + #include + #include +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +-#include +-#include +-#endif + + #define LDAC_ABR_OBSERVING_TIME_MS 500 /* [ms] the time length for storing Tx Queue Depth */ + #define LDAC_ABR_PENALTY_MAX 4 +@@ -56,18 +52,11 @@ typedef int (*tLDACBT_GET_ERR)(HANDLE_LDAC_BT hLdacBt); + + typedef struct _ldacbt_api_param + { +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- const char *lib_name; +- void *lib_handle; +-#endif + tLDACBT_ALTER_EQMID_PRIORITY alter_eqmid_priority; + tLDACBT_GET_EQMID get_eqmid; + tLDACBT_GET_ERR get_error_code; + } LDACBT_API_PARAMS, * HANDLE_LDACBT_API; + +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +-static int open_lib(HANDLE_LDACBT_API hLdacBtApi, const char *lib_name ); +-#endif + + static int load_ldacbt_api_functions(HANDLE_LDACBT_API hLdacBtApi); + +@@ -122,7 +111,7 @@ static const int sizeOfEqmidToBitrateSortedIdTable = (int)(sizeof(aEqmidToAbrQua + / sizeof(aEqmidToAbrQualityModeID[0])); + + /* Get LDAC ABR handle */ +-HANDLE_LDAC_ABR ldac_ABR_get_handle(const char *libpath) ++HANDLE_LDAC_ABR ldac_ABR_get_handle(void) + { + HANDLE_LDAC_ABR hLdacAbr; + ABRDBG( "" ); +@@ -131,15 +120,6 @@ HANDLE_LDAC_ABR ldac_ABR_get_handle(const char *libpath) + return NULL; + } + clear_data( hLdacAbr, sizeof(LDAC_ABR_PARAMS) ); +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- if (libpath != NULL) { +- if (open_lib( &hLdacAbr->ldacBtApi, libpath ) < 0) { +- ABRDBG( "[ERR] Failed to open shared library \"%s\".", libpath ); +- ldac_ABR_free_handle(hLdacAbr); +- return NULL; +- } +- } +-#endif + if( load_ldacbt_api_functions(&hLdacAbr->ldacBtApi) != 0 ){ + ldac_ABR_free_handle(hLdacAbr); + return NULL; +@@ -156,12 +136,6 @@ void ldac_ABR_free_handle(HANDLE_LDAC_ABR hLdacAbr) + if (hLdacAbr->TxQD_Info.pHist){ + free(hLdacAbr->TxQD_Info.pHist); + } +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- if (hLdacAbr->ldacBtApi.lib_handle != NULL) { +- dlclose(hLdacAbr->ldacBtApi.lib_handle); +- hLdacAbr->ldacBtApi.lib_handle = NULL; +- } +-#endif + free(hLdacAbr); + } + } +@@ -408,65 +382,17 @@ int ldac_ABR_Proc( HANDLE_LDAC_BT hLDAC, HANDLE_LDAC_ABR hLdacAbr, + } + + +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +-static void *load_func(void *lib_handle, const char* func_name) +-{ +- void *func_ptr = dlsym(lib_handle, func_name); +- if(func_ptr == NULL){ +- ABRDBG("[ERR] cannot find function '%s' in the library.\n", func_name); +- return NULL; +- } +- return func_ptr; +-} +- +-static int open_lib(HANDLE_LDACBT_API hLdacBtApi, const char *lib_name ) +-{ +- if( hLdacBtApi == NULL ){ +- ABRDBG("[ERR] handle is NULL"); +- return -1; +- } +- if( lib_name == NULL ){ +- ABRDBG("[ERR] lib_name is NULL"); +- return -1; +- } +- // open library +- hLdacBtApi->lib_handle = dlopen(lib_name, RTLD_NOW); +- if(hLdacBtApi->lib_handle == NULL){ +-#ifdef LOCAL_DEBUG +- char buffer_str[1024]; +- strerror_r(errno, buffer_str, sizeof(buffer_str)); +- ABRDBG("[ERR] cannot open library '%s': errno = %d (%s)\n", +- lib_name, errno, buffer_str); +-#endif +- return -1; +- } +- return 0; +-} +-#endif /* LDAC_ABR_DYNAMIC_LINK_LDAC_API */ +- + // Load functions + static int load_ldacbt_api_functions(HANDLE_LDACBT_API hLdacBtApi) + { + hLdacBtApi->alter_eqmid_priority = +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- load_func(hLdacBtApi->lib_handle, "ldacBT_alter_eqmid_priority"); +-#else + ldacBT_alter_eqmid_priority; +-#endif + + hLdacBtApi->get_eqmid = +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- load_func(hLdacBtApi->lib_handle, "ldacBT_get_eqmid"); +-#else + ldacBT_get_eqmid; +-#endif + + hLdacBtApi->get_error_code = +-#ifdef LDAC_ABR_DYNAMIC_LINK_LDAC_API +- load_func(hLdacBtApi->lib_handle, "ldacBT_get_error_code"); +-#else + ldacBT_get_error_code; +-#endif + + if( (hLdacBtApi->alter_eqmid_priority == NULL) || + (hLdacBtApi->get_eqmid == NULL) || +-- +2.53.0 + diff --git a/pkgs/by-name/ld/ldacbt/make-byte-order-checks-portable.patch b/pkgs/by-name/ld/ldacbt/make-byte-order-checks-portable.patch new file mode 100644 index 0000000000000..c357bed9881cc --- /dev/null +++ b/pkgs/by-name/ld/ldacbt/make-byte-order-checks-portable.patch @@ -0,0 +1,55 @@ +diff --git a/src/ldacBT_internal.c b/src/ldacBT_internal.c +index 94458854fe..ca9df42c72 100644 +--- a/src/ldacBT_internal.c ++++ b/src/ldacBT_internal.c +@@ -241,7 +241,7 @@ + char *p_pcm_8 = (char *)pbuff; + char *p_lch_8 = (char *)ap_pcm[0]; + char *p_rch_8 = (char *)ap_pcm[1]; +-#if __BYTE_ORDER == __LITTLE_ENDIAN ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + for (i = 0; i < nsmpl; i++) { + *p_lch_8++ = p_pcm_8[0]; + *p_lch_8++ = p_pcm_8[1]; +@@ -252,24 +252,24 @@ + *p_rch_8++ = p_pcm_8[2]; + p_pcm_8+=3; + } +-#else /* __BYTE_ORDER */ ++#else /* __BYTE_ORDER__ */ + #error unsupported byte order +-#endif /* #if __BYTE_ORDER == __LITTLE_ENDIAN */ ++#endif /* #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ + } + else if ( fmt == LDACBT_SMPL_FMT_S32 ){ + char *p_pcm_8 = (char *)pbuff; + char *p_lch_8 = (char *)ap_pcm[0]; + char *p_rch_8 = (char *)ap_pcm[1]; +-#if __BYTE_ORDER == __LITTLE_ENDIAN ++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ + for (i = 0; i < nsmpl; i++) { + *p_lch_8++ = p_pcm_8[0]; *p_lch_8++ = p_pcm_8[1]; *p_lch_8++ = p_pcm_8[2]; *p_lch_8++ = p_pcm_8[3]; + p_pcm_8+=4; + *p_rch_8++ = p_pcm_8[0]; *p_rch_8++ = p_pcm_8[1]; *p_rch_8++ = p_pcm_8[2]; *p_rch_8++ = p_pcm_8[3]; + p_pcm_8+=4; + } +-#else /* __BYTE_ORDER */ ++#else /* __BYTE_ORDER__ */ + #error unsupported byte order +-#endif /* #if __BYTE_ORDER == __LITTLE_ENDIAN */ ++#endif /* #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ */ + } + else if ( fmt == LDACBT_SMPL_FMT_F32 ){ + float *p_pcm = (float *)pbuff; +diff --git a/src/ldacBT_internal.h b/src/ldacBT_internal.h +index 70dac607e7..170d14be7d 100644 +--- a/src/ldacBT_internal.h ++++ b/src/ldacBT_internal.h +@@ -9,7 +9,6 @@ + + #include + #include +-#include + #ifdef ANDROID + #include + #include diff --git a/pkgs/by-name/ld/ldacbt/meson.build b/pkgs/by-name/ld/ldacbt/meson.build new file mode 100644 index 0000000000000..1bd0a8ca2e969 --- /dev/null +++ b/pkgs/by-name/ld/ldacbt/meson.build @@ -0,0 +1,52 @@ +project( + 'ldacbt', + 'c', + meson_version: '>=1.10.0', + version: files('VERSION'), +) + +pkg = import('pkgconfig') + +cc = meson.get_compiler('c') +dep_m = cc.find_library('m') + +lib = library( + 'ldacBT', + 'abr/src/ldacBT_abr.c', + 'src/ldacBT.c', + 'src/ldaclib.c', + include_directories: [ + 'abr/inc', + 'inc', + ], + dependencies: [dep_m], + version: meson.project_version(), + install: true, +) + +install_headers( + 'abr/inc/ldacBT_abr.h', + 'inc/ldacBT.h', + subdir: 'ldac', +) + +pkg.generate( + lib, + name: 'ldacBT-enc', + description: 'LDAC Bluetooth encoder', + subdirs: 'ldac', +) + +pkg.generate( + lib, + name: 'ldacBT-abr', + description: 'LDAC Bluetooth ABR library', + subdirs: 'ldac', +) + +pkg.generate( + lib, + name: 'ldacBT-dec', + description: 'LDAC Bluetooth decoder', + subdirs: 'ldac', +) diff --git a/pkgs/by-name/ld/ldacbt/package.nix b/pkgs/by-name/ld/ldacbt/package.nix index 72320637739dc..62ade6e1b5777 100644 --- a/pkgs/by-name/ld/ldacbt/package.nix +++ b/pkgs/by-name/ld/ldacbt/package.nix @@ -2,19 +2,19 @@ lib, stdenv, fetchFromGitHub, - cmake, + meson, + ninja, }: stdenv.mkDerivation (finalAttrs: { - pname = "ldacBT"; - version = "2.0.2.3"; + pname = "ldacbt"; + version = "2.0.72"; src = fetchFromGitHub { - repo = "ldacBT"; - owner = "ehfive"; - tag = "v${finalAttrs.version}"; - sha256 = "09dalysx4fgrgpfdm9a51x6slnf4iik1sqba4xjgabpvq91bnb63"; - fetchSubmodules = true; + owner = "open-vela"; + repo = "external_libldac"; + rev = "5b4bf66096ba0d69615efb2422ba3d023c34c2fd"; + hash = "sha256-5jeqTyhSBtYky15Xw1lIbUxeGZMQQQdM/EQUFicyi3Y="; }; outputs = [ @@ -22,31 +22,41 @@ stdenv.mkDerivation (finalAttrs: { "dev" ]; - nativeBuildInputs = [ - cmake + patches = [ + ./0001-abr-drop-support-for-dynamic-loading-libldac.patch + + # Darwin doesn’t have ``; use the predefined GCC/Clang + # macros instead. + ./make-byte-order-checks-portable.patch ]; - cmakeFlags = [ - # CMakeLists.txt by default points to $out - "-DINSTALL_INCLUDEDIR=${placeholder "dev"}/include" + nativeBuildInputs = [ + meson + ninja ]; - # Fix the build with CMake 4. - # - # See: + mesonBuildType = "release"; + + # The upstream build system is tied to AOSP, so we use our own Meson + # definitions to replace it. postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace-fail \ - 'cmake_minimum_required(VERSION 3.0)' \ - 'cmake_minimum_required(VERSION 3.0...3.10)' + ln -s ${./meson.build} meson.build + + awk -v want=${finalAttrs.version} ' + /^#define LDACBT_LIB_VER_/ { v = v sep ($3+0); sep = "." } + END { + if (v != want) { print "version mismatch: package says " want ", source reports " v > "/dev/stderr"; exit 1 } + print v + } + ' src/ldacBT_api.c > VERSION ''; meta = { - description = "AOSP libldac dispatcher"; - homepage = "https://github.com/EHfive/ldacBT"; + description = "Sony LDAC Bluetooth decoder library (from AOSP via open-vela)"; + homepage = "https://github.com/open-vela/external_libldac"; license = lib.licenses.asl20; # libldac code detects & #error's out on non-LE byte order platforms = lib.platforms.littleEndian; - maintainers = [ ]; + maintainers = with lib.maintainers; [ qweered ]; }; }) diff --git a/pkgs/by-name/ld/ldns/package.nix b/pkgs/by-name/ld/ldns/package.nix index 4078cdfd5372c..f40ea684be965 100644 --- a/pkgs/by-name/ld/ldns/package.nix +++ b/pkgs/by-name/ld/ldns/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "ldns"; - version = "1.9.0"; + version = "1.9.2"; src = fetchurl { url = "https://www.nlnetlabs.nl/downloads/ldns/ldns-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-q67tKFj76oSk65gz4Z59IzgMwPPZtlSLlivkInb/3LM="; + sha256 = "sha256-tST6IZlLboNCAM64wn8bhL2lmC/jVwbwWBlsB525TV0="; }; postPatch = '' diff --git a/pkgs/by-name/le/less/package.nix b/pkgs/by-name/le/less/package.nix index fa2f854f4d80f..00823f701cde7 100644 --- a/pkgs/by-name/le/less/package.nix +++ b/pkgs/by-name/le/less/package.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "less"; - version = "692"; + version = "704"; # `less` is provided by the following sources: # - meta.homepage @@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { # homepage, and only those not marked as beta. src = fetchurl { url = "https://www.greenwoodsoftware.com/less/less-${finalAttrs.version}.tar.gz"; - hash = "sha256-YTAPYDeY7PHXeGVweJ8P8/WhrPB1pvufdWg30WbjfRQ="; + hash = "sha256-IKCworslJfpTx+7pvrhUtMnPFy6rsgmvcCB0NUe/6fs="; }; buildInputs = [ diff --git a/pkgs/by-name/li/libaio/package.nix b/pkgs/by-name/li/libaio/package.nix index 35de54c0d9da1..d803c65219e93 100644 --- a/pkgs/by-name/li/libaio/package.nix +++ b/pkgs/by-name/li/libaio/package.nix @@ -1,16 +1,18 @@ { lib, stdenv, - fetchurl, + fetchFromCodeberg, }: stdenv.mkDerivation (finalAttrs: { version = "0.3.113"; pname = "libaio"; - src = fetchurl { - url = "https://pagure.io/libaio/archive/libaio-${finalAttrs.version}/libaio-libaio-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-cWxwWXAyRzROsGa1TsvDyiE08BAzBxkubCt9q1+VKKs="; + src = fetchFromCodeberg { + owner = "jmoyer"; + repo = "libaio"; + tag = "libaio-${finalAttrs.version}"; + hash = "sha256-8TofYbwsnenv5GuC6FjkUt9rBTULEb5nhknuxr2ckQg="; }; postPatch = '' @@ -33,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { description = "Library for asynchronous I/O in Linux"; homepage = "https://lse.sourceforge.net/io/aio.html"; + downloadPage = "https://codeberg.org/jmoyer/libaio"; platforms = lib.platforms.linux; license = lib.licenses.lgpl21; maintainers = [ ]; diff --git a/pkgs/by-name/li/libapparmor/package.nix b/pkgs/by-name/li/libapparmor/package.nix index 9290ebfa7044f..7cfb71447ceb4 100644 --- a/pkgs/by-name/li/libapparmor/package.nix +++ b/pkgs/by-name/li/libapparmor/package.nix @@ -32,13 +32,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "libapparmor"; - version = "4.1.7"; + version = "5.0.0"; src = fetchFromGitLab { owner = "apparmor"; repo = "apparmor"; tag = "v${finalAttrs.version}"; - hash = "sha256-yjqdUwHkQ1uiPKPZQVf/o8tGixQeIKNMOIYo4aVK7N0="; + hash = "sha256-seEREIc83alEPyZGD/GY48hjpqiw3QENnqYsdjHOGgs="; }; sourceRoot = "${finalAttrs.src.name}/libraries/libapparmor"; diff --git a/pkgs/by-name/li/libarchive/package.nix b/pkgs/by-name/li/libarchive/package.nix index 8f9f756a2ee9f..fe81d018859c6 100644 --- a/pkgs/by-name/li/libarchive/package.nix +++ b/pkgs/by-name/li/libarchive/package.nix @@ -32,13 +32,13 @@ assert xarSupport -> libxml2 != null; stdenv.mkDerivation (finalAttrs: { pname = "libarchive"; - version = "3.8.7"; + version = "3.8.8"; src = fetchFromGitHub { owner = "libarchive"; repo = "libarchive"; rev = "v${finalAttrs.version}"; - hash = "sha256-LpD+lE+0PZi/3nYDVPXhBQL9A7mvqelOzRLskVtg9Y0="; + hash = "sha256-l8xh+z6lP7VnxMIf9tfoSByerjwN6Z4dE3JNA9zS3LM="; }; outputs = [ diff --git a/pkgs/by-name/li/libavif/package.nix b/pkgs/by-name/li/libavif/package.nix index c778d78d66a77..8ec16503feeec 100644 --- a/pkgs/by-name/li/libavif/package.nix +++ b/pkgs/by-name/li/libavif/package.nix @@ -31,7 +31,7 @@ in stdenv.mkDerivation (finalAttrs: { pname = "libavif"; - version = "1.4.1"; + version = "1.4.2"; outputs = [ "out" @@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "AOMediaCodec"; repo = "libavif"; rev = "v${finalAttrs.version}"; - hash = "sha256-035SoxHfN121mp3LGwGykReCi1WJbl2/nZH8c/VwABU="; + hash = "sha256-AMQ1TRPGpuBBW7tJ8xuLEVTAeOsLWTHuE0dFJjI7+W4="; }; postPatch = '' diff --git a/pkgs/by-name/li/libbacktrace/0001-libbacktrace-avoid-libtool-wrapping-tests.patch b/pkgs/by-name/li/libbacktrace/0001-libbacktrace-avoid-libtool-wrapping-tests.patch deleted file mode 100644 index 61fd56ee08809..0000000000000 --- a/pkgs/by-name/li/libbacktrace/0001-libbacktrace-avoid-libtool-wrapping-tests.patch +++ /dev/null @@ -1,201 +0,0 @@ -From eadfee17e7d3a1c1bb2a0ff8585772b40331ebd7 Mon Sep 17 00:00:00 2001 -From: Jan Tojnar -Date: Sat, 24 Dec 2022 15:31:51 +0100 -Subject: [PATCH 1/4] libbacktrace: avoid libtool wrapping tests -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -When `--enable-shared` is used, libtool will produce shell scripts -instead of programs, preventing separate debug info from being generated: - - objcopy --only-keep-debug btest btest_gnudebuglink.debug - objcopy: btest: file format not recognized - make[2]: *** [Makefile:2615: btest_gnudebuglink] Error 1 - -Let’s make it properly set rpath with `-no-install` flag, -so that wrappers are not needed, as mentioned on -https://autotools.info/libtool/wrappers.html ---- - Makefile.am | 28 +++++++++++++++++++++++----- - 1 file changed, 23 insertions(+), 5 deletions(-) - -diff --git a/Makefile.am b/Makefile.am -index 3d67909..06ccf3f 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -107,6 +107,8 @@ check_DATA = - # Flags to use when compiling test programs. - libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g - -+libbacktrace_TEST_LDFLAGS = -no-install -+ - if USE_DSYMUTIL - - %.dSYM: % -@@ -171,48 +173,56 @@ xcoff_%.c: xcoff.c - - test_elf_32_SOURCES = test_format.c testlib.c - test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_elf_32_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo - - BUILDTESTS += test_elf_32 - - test_elf_64_SOURCES = test_format.c testlib.c - test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_elf_64_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo - - BUILDTESTS += test_elf_64 - - test_macho_SOURCES = test_format.c testlib.c - test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_macho_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_macho_LDADD = libbacktrace_noformat.la macho.lo - - BUILDTESTS += test_macho - - test_xcoff_32_SOURCES = test_format.c testlib.c - test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_xcoff_32_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo - - BUILDTESTS += test_xcoff_32 - - test_xcoff_64_SOURCES = test_format.c testlib.c - test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_xcoff_64_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo - - BUILDTESTS += test_xcoff_64 - - test_pecoff_SOURCES = test_format.c testlib.c - test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_pecoff_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo - - BUILDTESTS += test_pecoff - - test_unknown_SOURCES = test_format.c testlib.c - test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+test_unknown_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - test_unknown_LDADD = libbacktrace_noformat.la unknown.lo - - BUILDTESTS += test_unknown - - unittest_SOURCES = unittest.c testlib.c - unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+unittest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - unittest_LDADD = libbacktrace.la - - BUILDTESTS += unittest -@@ -254,7 +264,7 @@ if HAVE_OBJCOPY_DEBUGLINK - - b2test_SOURCES = $(btest_SOURCES) - b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS) --b2test_LDFLAGS = -Wl,--build-id -+b2test_LDFLAGS = -Wl,--build-id $(libbacktrace_TEST_LDFLAGS) - b2test_LDADD = libbacktrace_elf_for_test.la - - check_PROGRAMS += b2test -@@ -264,7 +274,7 @@ if HAVE_DWZ - - b3test_SOURCES = $(btest_SOURCES) - b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS) --b3test_LDFLAGS = -Wl,--build-id -+b3test_LDFLAGS = -Wl,--build-id $(libbacktrace_TEST_LDFLAGS) - b3test_LDADD = libbacktrace_elf_for_test.la - - check_PROGRAMS += b3test -@@ -278,6 +288,7 @@ endif HAVE_ELF - - btest_SOURCES = btest.c testlib.c - btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -+btest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - btest_LDADD = libbacktrace.la - - BUILDTESTS += btest -@@ -332,6 +343,7 @@ endif HAVE_DWZ - - stest_SOURCES = stest.c - stest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+stest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - stest_LDADD = libbacktrace.la - - BUILDTESTS += stest -@@ -354,6 +366,7 @@ if HAVE_ELF - - ztest_SOURCES = ztest.c testlib.c - ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -+ztest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - ztest_LDADD = libbacktrace.la - ztest_alloc_LDADD = libbacktrace_alloc.la - -@@ -373,6 +386,7 @@ BUILDTESTS += ztest_alloc - - zstdtest_SOURCES = zstdtest.c testlib.c - zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -+zstdtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - zstdtest_LDADD = libbacktrace.la - zstdtest_alloc_LDADD = libbacktrace_alloc.la - -@@ -394,6 +408,7 @@ endif HAVE_ELF - - edtest_SOURCES = edtest.c edtest2_build.c testlib.c - edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -+edtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - edtest_LDADD = libbacktrace.la - - BUILDTESTS += edtest -@@ -424,6 +439,7 @@ BUILDTESTS += ttest - - ttest_SOURCES = ttest.c testlib.c - ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread -+ttest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - ttest_LDADD = libbacktrace.la - - if USE_DSYMUTIL -@@ -472,12 +488,12 @@ if HAVE_COMPRESSED_DEBUG - - ctestg_SOURCES = btest.c testlib.c - ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS) --ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu -+ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu $(libbacktrace_TEST_LDFLAGS) - ctestg_LDADD = libbacktrace.la - - ctesta_SOURCES = btest.c testlib.c - ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS) --ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi -+ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi $(libbacktrace_TEST_LDFLAGS) - ctesta_LDADD = libbacktrace.la - - BUILDTESTS += ctestg ctesta -@@ -486,7 +502,7 @@ if HAVE_COMPRESSED_DEBUG_ZSTD - - ctestzstd_SOURCES = btest.c testlib.c - ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS) --ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd -+ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd $(libbacktrace_TEST_LDFLAGS) - ctestzstd_LDADD = libbacktrace.la - - BUILDTESTS += ctestzstd -@@ -533,6 +549,7 @@ endif - - mtest_SOURCES = mtest.c testlib.c - mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O -+mtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - mtest_LDADD = libbacktrace.la - - BUILDTESTS += mtest -@@ -565,6 +582,7 @@ if HAVE_ELF - - xztest_SOURCES = xztest.c testlib.c - xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\" -+xztest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS) - xztest_LDADD = libbacktrace.la - - xztest_alloc_SOURCES = $(xztest_SOURCES) --- -2.43.1 - diff --git a/pkgs/by-name/li/libbacktrace/0002-libbacktrace-Allow-configuring-debug-dir.patch b/pkgs/by-name/li/libbacktrace/0002-libbacktrace-Allow-configuring-debug-dir.patch index ee6063875091c..da1efae663653 100644 --- a/pkgs/by-name/li/libbacktrace/0002-libbacktrace-Allow-configuring-debug-dir.patch +++ b/pkgs/by-name/li/libbacktrace/0002-libbacktrace-Allow-configuring-debug-dir.patch @@ -1,7 +1,7 @@ -From 2ceaa9bc8a9a0c8a02806a92e19bd21b3fccf3a0 Mon Sep 17 00:00:00 2001 +From f69f2a995d0c5c6bc44fd485a7f5d3b390f26fc4 Mon Sep 17 00:00:00 2001 From: Jan Tojnar -Date: Sat, 24 Dec 2022 16:46:18 +0100 -Subject: [PATCH 2/4] libbacktrace: Allow configuring debug dir +Date: Sat, 25 Apr 2026 23:01:23 +0200 +Subject: [PATCH] libbacktrace: Allow configuring debug dir MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -14,13 +14,13 @@ the path can be changed. The same flag is supported by gdb: https://github.com/bminor/binutils-gdb/blob/095f84c7e3cf85cd68c657c46b80be078f336bc9/gdb/configure.ac#L113-L115 --- - Makefile.am | 13 +++++++------ + Makefile.am | 15 ++++++++------- configure.ac | 8 ++++++++ elf.c | 4 ++-- - 3 files changed, 17 insertions(+), 8 deletions(-) + 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Makefile.am b/Makefile.am -index 06ccf3f..6304faa 100644 +index 7b32e23..51431b9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -33,7 +33,8 @@ ACLOCAL_AMFLAGS = -I config @@ -33,7 +33,7 @@ index 06ccf3f..6304faa 100644 include_HEADERS = backtrace.h backtrace-supported.h -@@ -134,7 +135,7 @@ libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD) +@@ -136,7 +137,7 @@ libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD) if HAVE_ELF if HAVE_OBJCOPY_DEBUGLINK @@ -42,7 +42,7 @@ index 06ccf3f..6304faa 100644 check_LTLIBRARIES += libbacktrace_elf_for_test.la -@@ -143,8 +144,8 @@ libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \ +@@ -145,8 +146,8 @@ libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \ $(VIEW_FILE) $(ALLOC_FILE) elf_for_test.c: elf.c @@ -53,7 +53,7 @@ index 06ccf3f..6304faa 100644 $(SED) "s%$$SEARCH%$$REPLACE%" \ $< \ > $@.tmp -@@ -474,13 +475,13 @@ endif HAVE_OBJCOPY_DEBUGLINK +@@ -484,13 +485,13 @@ endif HAVE_OBJCOPY_DEBUGLINK %_buildid: % ./install-debuginfo-for-buildid.sh \ @@ -69,8 +69,17 @@ index 06ccf3f..6304faa 100644 $< $(OBJCOPY) --strip-all $< $@ +@@ -621,7 +622,7 @@ MAKETESTS += m2test_minidebug2 + $(XZ) $<.mdbg2 + $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg2.xz $<.dbg2 + $(OBJCOPY) --add-section .gnu_debugdata=$<.mdbg2.xz $<.strip2 +- $(SHELL) ./install-debuginfo-for-buildid.sh $(TEST_BUILD_ID_DIR) $<.dbg2 ++ $(SHELL) ./install-debuginfo-for-buildid.sh "$(TEST_DEBUG_DIR)/.build-id" $<.dbg2 + mv $<.strip2 $@ + + endif HAVE_OBJCOPY_DEBUGLINK diff --git a/configure.ac b/configure.ac -index 69304ea..aeb2ee9 100644 +index 2267cc5..15cdc6e 100644 --- a/configure.ac +++ b/configure.ac @@ -67,6 +67,14 @@ AM_MAINTAINER_MODE @@ -89,10 +98,10 @@ index 69304ea..aeb2ee9 100644 # the wrong, non-multilib-adjusted value will be used in multilibs. # As a side effect, we have to subst CFLAGS ourselves. diff --git a/elf.c b/elf.c -index 3ef07bb..21fbe4f 100644 +index e93729d..4765fae 100644 --- a/elf.c +++ b/elf.c -@@ -856,7 +856,7 @@ elf_readlink (struct backtrace_state *state, const char *filename, +@@ -857,7 +857,7 @@ elf_readlink (struct backtrace_state *state, const char *filename, } } @@ -101,7 +110,7 @@ index 3ef07bb..21fbe4f 100644 /* Open a separate debug info file, using the build ID to find it. Returns an open file descriptor, or -1. -@@ -870,7 +870,7 @@ elf_open_debugfile_by_buildid (struct backtrace_state *state, +@@ -871,7 +871,7 @@ elf_open_debugfile_by_buildid (struct backtrace_state *state, backtrace_error_callback error_callback, void *data) { @@ -111,5 +120,5 @@ index 3ef07bb..21fbe4f 100644 const char * const suffix = ".debug"; const size_t suffix_len = strlen (suffix); -- -2.43.1 +2.51.2 diff --git a/pkgs/by-name/li/libbacktrace/package.nix b/pkgs/by-name/li/libbacktrace/package.nix index 0f3abdba1ab9d..8ae11fe8a7866 100644 --- a/pkgs/by-name/li/libbacktrace/package.nix +++ b/pkgs/by-name/li/libbacktrace/package.nix @@ -10,20 +10,16 @@ stdenv.mkDerivation { pname = "libbacktrace"; - version = "0-unstable-2024-03-02"; + version = "0-unstable-2026-05-03"; src = fetchFromGitHub { owner = "ianlancetaylor"; repo = "libbacktrace"; - rev = "28824f2cc9069e3fdc39d3702acdf753e35c41b4"; - sha256 = "1k1O1GT22hZAWPF8NYP0y4qe+e3pGfzT9Mz2TH+H/v4="; + rev = "96664e69b1ecdb76e824be1d9e8f475b76dd08cf"; + hash = "sha256-+tV6W8SnFWKweAASvFfb+i6bz73ssVGikNhVpq3YbT4="; }; patches = [ - # Fix tests with shared library. - # https://github.com/ianlancetaylor/libbacktrace/pull/99 - ./0001-libbacktrace-avoid-libtool-wrapping-tests.patch - # Support multiple debug dirs. # https://github.com/ianlancetaylor/libbacktrace/pull/100 ./0002-libbacktrace-Allow-configuring-debug-dir.patch @@ -33,6 +29,15 @@ stdenv.mkDerivation { ./0004-libbacktrace-Support-NIX_DEBUG_INFO_DIRS-environment.patch ]; + # https://github.com/ianlancetaylor/libbacktrace/issues/163 + postPatch = + lib.optionalString + (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian && stdenv.hostPlatform.isAbiElfv1) + '' + substituteInPlace Makefile.am \ + --replace-fail 'MAKETESTS += mtest_minidebug' '# MAKETESTS += mtest_minidebug' + ''; + nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/by-name/li/libcap/package.nix b/pkgs/by-name/li/libcap/package.nix index c9c5813a16c1a..19dc580485306 100644 --- a/pkgs/by-name/li/libcap/package.nix +++ b/pkgs/by-name/li/libcap/package.nix @@ -3,7 +3,6 @@ lib, buildPackages, fetchurl, - fetchpatch, runtimeShell, pkgsBuildHost, usePam ? !isStatic, @@ -31,11 +30,11 @@ assert usePam -> pam != null; stdenv.mkDerivation rec { pname = "libcap"; - version = "2.77"; + version = "2.78"; src = fetchurl { url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz"; - hash = "sha256-iXvBi0Svwmxw54zq09uzHhVKzCS+4IWloJB5qI2/b1I="; + hash = "sha256-DWIeVi/ZMsz2e5Zg+wGORopoPXuCdUHfJ4EyKMmWuxE="; }; outputs = [ @@ -76,13 +75,6 @@ stdenv.mkDerivation rec { "LIBCSTATIC=yes" ]; - patches = [ - (fetchpatch { - url = "https://git.kernel.org/pub/scm/libs/libcap/libcap.git/patch/?id=d628b3bfe40338d4efff6b0ae50f250a0eb884c7"; - hash = "sha256-Eiv/BOJZkduL+hOEJd8K1LQd9wvOeCKchE2GaLcerVc="; - }) - ]; - postPatch = '' patchShebangs ./progs/mkcapshdoc.sh diff --git a/pkgs/by-name/li/libcbor/package.nix b/pkgs/by-name/li/libcbor/package.nix index 31ad8ed2fbd1a..d195af9386e9e 100644 --- a/pkgs/by-name/li/libcbor/package.nix +++ b/pkgs/by-name/li/libcbor/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libcbor"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitHub { owner = "PJK"; repo = "libcbor"; - rev = "v${finalAttrs.version}"; - hash = "sha256-ePgVR7VHXWKqOShuAEQG3BJ08W2aZS/vfcPUCqTw7X4="; + tag = "v${finalAttrs.version}"; + hash = "sha256-zjajNtj4jKbt3pLjfLrgtYljyMDYJtnzAC5JPdt+Wys="; }; outputs = [ @@ -61,6 +61,7 @@ stdenv.mkDerivation (finalAttrs: { }; meta = { + changelog = "https://github.com/PJK/libcbor/blob/${finalAttrs.src.tag}/CHANGELOG.md"; description = "CBOR protocol implementation for C and others"; homepage = "https://github.com/PJK/libcbor"; license = lib.licenses.mit; diff --git a/pkgs/by-name/li/libconfig/package.nix b/pkgs/by-name/li/libconfig/package.nix index 0da2905d77254..d0c737104160d 100644 --- a/pkgs/by-name/li/libconfig/package.nix +++ b/pkgs/by-name/li/libconfig/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchurl, - fetchpatch, # This also disables building tests. # on static windows cross-compile they fail to build doCheck ? with stdenv.hostPlatform; !(isWindows && isStatic), @@ -10,24 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libconfig"; - version = "1.8"; + version = "1.8.2"; src = fetchurl { url = "https://hyperrealm.github.io/libconfig/dist/libconfig-${finalAttrs.version}.tar.gz"; - hash = "sha256-BR4V3Q6QfESQXzF5M/VIcxTypW6MZybIMEzpkIhIUKo="; + hash = "sha256-5Z/7kC3Vcx1dTk+4HTuYlpdhX+q3Lf18MGGBZ7kaQu4="; }; - patches = [ - # Fix tests on i686-linux: - # https://github.com/hyperrealm/libconfig/pull/260 - # TODO: remove with a next release - (fetchpatch { - name = "32-bit-tests.patch"; - url = "https://github.com/hyperrealm/libconfig/commit/b90c45a18110fcca415d00a98ff79c908c42544b.patch"; - hash = "sha256-8CihXbpKx0Rn0CFxyP6+f6m8vUYehCl/1EtTo98VpfM="; - }) - ]; - inherit doCheck; configureFlags = @@ -38,6 +26,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "https://hyperrealm.github.io/libconfig/"; + changelog = "https://github.com/hyperrealm/libconfig/blob/v${finalAttrs.version}/ChangeLog"; description = "C/C++ library for processing configuration files"; license = lib.licenses.lgpl3; maintainers = with lib.maintainers; [ stv0g ]; diff --git a/pkgs/by-name/li/libdrm/package.nix b/pkgs/by-name/li/libdrm/package.nix index caa0e573221a9..7e0b8d177df90 100644 --- a/pkgs/by-name/li/libdrm/package.nix +++ b/pkgs/by-name/li/libdrm/package.nix @@ -16,11 +16,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "libdrm"; - version = "2.4.133"; + version = "2.4.134"; src = fetchurl { url = "https://dri.freedesktop.org/libdrm/libdrm-${finalAttrs.version}.tar.xz"; - hash = "sha256-/Gj50LoupjyUMqKZ4U/qCfrXqKZugDn814AspZ93tPU="; + hash = "sha256-rF500VeDDri+5Exqa/OtSXdO8N0qcr2tdKjyAwi1KpU="; }; outputs = [ diff --git a/pkgs/by-name/li/libdvdcss/package.nix b/pkgs/by-name/li/libdvdcss/package.nix index 2f57d64b61450..dac50c6c439da 100644 --- a/pkgs/by-name/li/libdvdcss/package.nix +++ b/pkgs/by-name/li/libdvdcss/package.nix @@ -1,20 +1,31 @@ { lib, stdenv, - fetchurl, + fetchFromGitLab, + meson, + ninja, }: stdenv.mkDerivation (finalAttrs: { pname = "libdvdcss"; - version = "1.4.3"; + version = "1.5.0"; - src = fetchurl { - url = "https://get.videolan.org/libdvdcss/${finalAttrs.version}/libdvdcss-${finalAttrs.version}.tar.bz2"; - sha256 = "sha256-IzzJL13AHF06lvWzWCvn1c7lo1pS06CBWHRdPYYHAHk="; + src = fetchFromGitLab { + domain = "code.videolan.org"; + owner = "videolan"; + repo = "libdvdcss"; + tag = finalAttrs.version; + hash = "sha256-xQWfAfxqsaLZN0HMozsqY5mSIO9KvZ5RAb4bj/f6WWo="; }; + nativeBuildInputs = [ + meson + ninja + ]; + meta = { homepage = "http://www.videolan.org/developers/libdvdcss.html"; + changelog = "https://code.videolan.org/videolan/libdvdcss/blob/${finalAttrs.src.tag}/NEWS"; description = "Library for decrypting DVDs"; license = lib.licenses.gpl2; platforms = lib.platforms.unix; diff --git a/pkgs/by-name/li/libedit/package.nix b/pkgs/by-name/li/libedit/package.nix index 30a316d0074d4..11712e641d994 100644 --- a/pkgs/by-name/li/libedit/package.nix +++ b/pkgs/by-name/li/libedit/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "libedit"; - version = "20251016-3.1"; + version = "20260508-3.1"; src = fetchurl { url = "https://thrysoee.dk/editline/libedit-${finalAttrs.version}.tar.gz"; - hash = "sha256-ITYrAGU7v8HHH3GnV42ma1tSA1WdQxNNLddxnjE84EE="; + hash = "sha256-kfQtZXHdjZL67dE0ETTOWrygxdC0s1KBQYbTPysRJy4="; }; outputs = [ diff --git a/pkgs/by-name/li/libei/package.nix b/pkgs/by-name/li/libei/package.nix index 93e90b41467cf..4724fb81451f9 100644 --- a/pkgs/by-name/li/libei/package.nix +++ b/pkgs/by-name/li/libei/package.nix @@ -27,14 +27,14 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "libei"; - version = "1.5.0"; + version = "1.6.0"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "libinput"; repo = "libei"; rev = finalAttrs.version; - hash = "sha256-PqQpJz88tDzjwsBuwxpWcGAWz6Gp6A/oAOS87uxGOGs="; + hash = "sha256-fUeMdRK7uoRvgvY3INMorwnTleLrLA5xOeYBFp1qXeI="; }; patches = lib.optionals stdenv.hostPlatform.isBSD [ diff --git a/pkgs/by-name/li/libfabric/package.nix b/pkgs/by-name/li/libfabric/package.nix index 2bd139469e2c4..c826fff3ad34d 100644 --- a/pkgs/by-name/li/libfabric/package.nix +++ b/pkgs/by-name/li/libfabric/package.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libfabric"; - version = "2.5.1"; + version = "2.6.0"; enableParallelBuilding = true; @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "ofiwg"; repo = "libfabric"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-d8ZdHMo3ErwBtLtUiLetjR+wu6H9bj3jnGZDYX544Jc="; + sha256 = "sha256-/zQnXfEveIGCpPZ3lgrOLnXSS7m8U2spVjkqsXuaL0o="; }; outputs = [ diff --git a/pkgs/by-name/li/libfaketime/package.nix b/pkgs/by-name/li/libfaketime/package.nix index d66ac6704ecb8..9500cdb600970 100644 --- a/pkgs/by-name/li/libfaketime/package.nix +++ b/pkgs/by-name/li/libfaketime/package.nix @@ -26,6 +26,12 @@ stdenv.mkDerivation (finalAttrs: { hash = hashes.${finalAttrs.version}; }; + outputs = [ + "out" + "doc" + "man" + ]; + patches = [ ./nix-store-date.patch ] @@ -55,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: { env = { PREFIX = placeholder "out"; LIBDIRNAME = "/lib"; - NIX_CFLAGS_COMPILE = toString ( + CFLAGS = toString ( lib.optionals stdenv.cc.isClang [ "-Wno-error=cast-function-type" "-Wno-error=format-truncation" @@ -72,6 +78,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; __structuredAttrs = true; + strictDeps = true; + enableParallelBuilding = true; meta = { description = "Report faked system time to programs without having to change the system-wide time"; diff --git a/pkgs/by-name/li/libfyaml/package.nix b/pkgs/by-name/li/libfyaml/package.nix index ebbaae3748d82..4804f7bb96453 100644 --- a/pkgs/by-name/li/libfyaml/package.nix +++ b/pkgs/by-name/li/libfyaml/package.nix @@ -25,10 +25,29 @@ stdenv.mkDerivation (finalAttrs: { url = "https://github.com/pantoniou/libfyaml/commit/0982fcefc6a16d4c8cb5b06747d3fc8e630de3ae.diff"; hash = "sha256-aDubIn+et+1fWE7XU7a5AGZVacVFbAbC1PoSDrA6hXw="; }) + # backport "Fix C11 atomics detection and buggy macros for C++ compatibility" + (fetchpatch { + url = "https://github.com/pantoniou/libfyaml/commit/1026d76850909dc9b1c5f95b8cd94e865a313fd5.diff"; + hash = "sha256-0YfOqdqHdELFMqr52TDAC3BNFLkcuxvuJY5b9yZ7NFk="; + }) (fetchpatch { url = "https://github.com/pantoniou/libfyaml/commit/9192deaac095f9881cc1e5756dede683f36b09d6.diff"; hash = "sha256-cNL9wQtxIRg/ShZLJP4qHYNFRrYo9kRG+/U+3FiUeaI="; }) + # On Darwin, AX_PTHREAD returns empty PTHREAD_LIBS with -pthread in PTHREAD_CFLAGS; + # don't force -lpthread when PTHREAD_CFLAGS already provides pthread support. + # Pending PR: https://github.com/pantoniou/libfyaml/pull/294 + ./pthread-darwin.patch + + # backport "build: don't output 'none required' to LIBM if no linker flags needed for it" + (fetchpatch { + url = "https://github.com/pantoniou/libfyaml/commit/24b18e7363b336962fe160c1dc05ca57ba95783c.diff"; + hash = "sha256-g5QKI4HuS8MEQ9ddIQNC0j+28Dh9zLAp5RaZX5SWBHk="; + }) + (fetchpatch { + url = "https://github.com/pantoniou/libfyaml/commit/9f2492ca27bb1fda64f2b12edc2da17406208b93.diff"; + hash = "sha256-E4wS+P7R3VGrBpD7swWMMi/QPTF+9rzAeEyxhbmdiwk="; + }) ]; nativeBuildInputs = [ diff --git a/pkgs/by-name/li/libfyaml/pthread-darwin.patch b/pkgs/by-name/li/libfyaml/pthread-darwin.patch new file mode 100644 index 0000000000000..bada0d80d142b --- /dev/null +++ b/pkgs/by-name/li/libfyaml/pthread-darwin.patch @@ -0,0 +1,12 @@ +--- a/configure.ac ++++ b/configure.ac +@@ -99,6 +99,7 @@ + AX_PTHREAD([], [AC_MSG_ERROR("Missing required pthread support")]) + +-# in some cases PTHREAD_LIBS is empty - force -lpthread */ +-if test "x$PTHREAD_LIBS" = "x"; then ++# In some cases PTHREAD_LIBS is empty; force -lpthread only when PTHREAD_CFLAGS ++# also provides no pthread support (e.g. on Darwin, -pthread in CFLAGS suffices). ++if test "x$PTHREAD_LIBS" = "x" && test "x$PTHREAD_CFLAGS" = "x"; then + PTHREAD_LIBS="-lpthread" + fi diff --git a/pkgs/by-name/li/libgpg-error/package.nix b/pkgs/by-name/li/libgpg-error/package.nix index 0b933048fc0e4..c086abb3c8061 100644 --- a/pkgs/by-name/li/libgpg-error/package.nix +++ b/pkgs/by-name/li/libgpg-error/package.nix @@ -25,11 +25,11 @@ in stdenv.mkDerivation ( rec { pname = "libgpg-error"; - version = "1.59"; + version = "1.61"; src = fetchurl { url = "mirror://gnupg/libgpg-error/libgpg-error-${version}.tar.bz2"; - hash = "sha256-oZvFCH/ZcCbZPLS0XVFjjRolICpeH7w5BXmfQkz6YTQ="; + hash = "sha256-eoVBPyvDVPT4qoMrcYrxIuSJZeng65AS7mWcE8Y4XJM="; }; postPatch = '' diff --git a/pkgs/by-name/li/libheif/package.nix b/pkgs/by-name/li/libheif/package.nix index 42171d469f5a9..940c3015dfb56 100644 --- a/pkgs/by-name/li/libheif/package.nix +++ b/pkgs/by-name/li/libheif/package.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libheif"; - version = "1.23.0"; + version = "1.23.1"; outputs = [ "bin" @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "strukturag"; repo = "libheif"; rev = "v${finalAttrs.version}"; - hash = "sha256-+LbYwDSxixy4TaraUCN2LiCnn32dkMppCA8EOFXbvtg="; + hash = "sha256-o+gQCv/lpRx+IaqpjHACh8ysgl/N4Mo/9zbAI/cnWas="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/li/libhwy/package.nix b/pkgs/by-name/li/libhwy/package.nix index d78d12faf6980..fc60dbff5d0a4 100644 --- a/pkgs/by-name/li/libhwy/package.nix +++ b/pkgs/by-name/li/libhwy/package.nix @@ -5,36 +5,19 @@ ninja, gtest, fetchFromGitHub, - fetchpatch, }: stdenv.mkDerivation rec { pname = "libhwy"; - version = "1.3.0"; + version = "1.4.0"; src = fetchFromGitHub { owner = "google"; repo = "highway"; rev = version; - hash = "sha256-8QOk96Y3GIIvBUGIDikMgTylx8y5aCyr68/TP5w5ha4="; + hash = "sha256-YUYZO9KLffczjwIz3mBBceD6oM1giLCFLDHgDCevdRA="; }; - patches = [ - # Apply upstream workaround for gcc-15 bug: - # https://github.com/google/highway/issues/2813 - # https://github.com/google/highway/pull/2824 - (fetchpatch { - name = "gcc-15-clone-hack-prerequisite.patch"; - url = "https://github.com/google/highway/commit/3b680cde3a556bead9cc23c8f595d07a44d5a0d5.patch"; - hash = "sha256-8xBPuhsifalhzKgeEOQq6yZw2NWas+SFQrNIaMicRnY="; - }) - (fetchpatch { - name = "gcc-15-clone-hack.patch"; - url = "https://github.com/google/highway/commit/5af21b8a9078330a3d7456d855e69245bb87bc7a.patch"; - hash = "sha256-hC/oEdxHsdZKlLFIw929ZHjffPURGzk9jiKz6iGSLkY="; - }) - ]; - hardeningDisable = lib.optionals stdenv.hostPlatform.isAarch64 [ # aarch64-specific code gets: # __builtin_clear_padding not supported for variable length aggregates diff --git a/pkgs/by-name/li/libidn/package.nix b/pkgs/by-name/li/libidn/package.nix index d36eedac8fe9e..071b7f08f15d0 100644 --- a/pkgs/by-name/li/libidn/package.nix +++ b/pkgs/by-name/li/libidn/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "libidn"; - version = "1.43"; + version = "1.44"; src = fetchurl { url = "mirror://gnu/libidn/libidn-${finalAttrs.version}.tar.gz"; - sha256 = "sha256-vcZiwS0EGyU50OY486bnQRMM2zOmRO80lpY6RDSC0WQ="; + sha256 = "sha256-SZYIurOmVlCg6lKIjBOo3uvj9xQI4xms2exS4C6xOVk="; }; outputs = [ @@ -30,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: { passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; meta = { + changelog = "https://codeberg.org/libidn/libidn/src/tag/v${finalAttrs.version}/NEWS"; homepage = "https://www.gnu.org/software/libidn/"; description = "Library for internationalized domain names"; diff --git a/pkgs/by-name/li/libjpeg_turbo/package.nix b/pkgs/by-name/li/libjpeg_turbo/package.nix index 5156d1f87d5c6..0181dabd9757d 100644 --- a/pkgs/by-name/li/libjpeg_turbo/package.nix +++ b/pkgs/by-name/li/libjpeg_turbo/package.nix @@ -32,13 +32,13 @@ assert !(enableJpeg7 && enableJpeg8); # pick only one or none, not both stdenv.mkDerivation (finalAttrs: { pname = "libjpeg-turbo"; - version = "3.1.4"; + version = "3.1.4.1"; src = fetchFromGitHub { owner = "libjpeg-turbo"; repo = "libjpeg-turbo"; tag = finalAttrs.version; - hash = "sha256-mxmJejgUqS6OC0U0gHsHHe74X0MTVBY5OCbqxIyWa3Q="; + hash = "sha256-jBajigX4/j4jG11prTPeGkTVRrRzheFL/LxgnPufzb4="; }; patches = diff --git a/pkgs/by-name/li/libjxl/package.nix b/pkgs/by-name/li/libjxl/package.nix index ce50b109a961f..93fceb3f30957 100644 --- a/pkgs/by-name/li/libjxl/package.nix +++ b/pkgs/by-name/li/libjxl/package.nix @@ -35,7 +35,9 @@ stdenv.mkDerivation rec { outputs = [ "out" + "bin" "dev" + "benchmark" ]; src = fetchFromGitHub { @@ -150,18 +152,22 @@ stdenv.mkDerivation rec { --replace 'sh$' 'sh( -e$|$)' ''; - postInstall = - lib.optionalString enablePlugins '' - GDK_PIXBUF_MODULEDIR="$out/${gdk-pixbuf.moduleDir}" \ - GDK_PIXBUF_MODULE_FILE="$out/${loadersPath}" \ - gdk-pixbuf-query-loaders --update-cache - '' - # Cross-compiled gdk-pixbuf doesn't support thumbnailers - + lib.optionalString (enablePlugins && stdenv.hostPlatform == stdenv.buildPlatform) '' - mkdir -p "$out/bin" - makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-jxl" \ - --set GDK_PIXBUF_MODULE_FILE "$out/${loadersPath}" - ''; + # Move `benchmark_xl` into a separate output to avoid a file collision + # with the `benchmark_xl` binary provided by `jpegli`. + postInstall = '' + moveToOutput "bin/benchmark_xl" "$benchmark" + '' + + lib.optionalString enablePlugins '' + GDK_PIXBUF_MODULEDIR="$out/${gdk-pixbuf.moduleDir}" \ + GDK_PIXBUF_MODULE_FILE="$out/${loadersPath}" \ + gdk-pixbuf-query-loaders --update-cache + '' + # Cross-compiled gdk-pixbuf doesn't support thumbnailers + + lib.optionalString (enablePlugins && stdenv.hostPlatform == stdenv.buildPlatform) '' + mkdir -p "$out/bin" + makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-jxl" \ + --set GDK_PIXBUF_MODULE_FILE "$out/${loadersPath}" + ''; env = lib.optionalAttrs stdenv.hostPlatform.isAarch32 { CXXFLAGS = "-mfp16-format=ieee"; diff --git a/pkgs/by-name/li/libksba/package.nix b/pkgs/by-name/li/libksba/package.nix index 97736060a1ac2..8ea24155784dd 100644 --- a/pkgs/by-name/li/libksba/package.nix +++ b/pkgs/by-name/li/libksba/package.nix @@ -9,11 +9,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "libksba"; - version = "1.6.7"; + version = "1.8.0"; src = fetchurl { url = "mirror://gnupg/libksba/libksba-${finalAttrs.version}.tar.bz2"; - hash = "sha256-z3JRC467TrZpPu92V0nYNnegPHkpGjEQQKW/15uqt2M="; + hash = "sha256-KWuduQlXSfKqEEIC16t/0JrRBxDgB4CnCcl1SxodkpI="; }; outputs = [ diff --git a/pkgs/by-name/li/libldac-dec/package.nix b/pkgs/by-name/li/libldac-dec/package.nix deleted file mode 100644 index 89fa401ea258f..0000000000000 --- a/pkgs/by-name/li/libldac-dec/package.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - lib, - stdenv, - fetchFromGitHub, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "libldac-dec"; - version = "2.0.72"; - - src = fetchFromGitHub { - owner = "open-vela"; - repo = "external_libldac"; - rev = "5b4bf66096ba0d69615efb2422ba3d023c34c2fd"; - hash = "sha256-5jeqTyhSBtYky15Xw1lIbUxeGZMQQQdM/EQUFicyi3Y="; - }; - - outputs = [ - "out" - "dev" - ]; - - env.NIX_CFLAGS_COMPILE = "-O2 -fPIC -Wall -D_DECODE_ONLY -Iinc -Isrc"; - - # Verify finalAttrs.version matches LDACBT_LIB_VER_* in upstream source. - # Guards against silent version drift when the pinned commit changes. - preBuild = '' - awk -v want=${finalAttrs.version} ' - /^#define LDACBT_LIB_VER_/ { v = v sep ($3+0); sep = "." } - END { - if (v != want) { print "version mismatch: package says " want ", source reports " v > "/dev/stderr"; exit 1 } - } - ' src/ldacBT_api.c - ''; - - # Upstream ships AOSP build files and a gcc/ makefile that only knows - # about the in-tree layout. Compile and link directly; the entire - # library is two umbrella translation units. - buildPhase = '' - runHook preBuild - - soname=libldacBT_dec.so.${lib.versions.major finalAttrs.version} - sofile=libldacBT_dec.so.${finalAttrs.version} - - $CC -shared -Wl,-soname,$soname src/ldaclib.c src/ldacBT.c -lm -o $sofile - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -Dm644 -t $out/lib $sofile - ln -s $sofile $out/lib/$soname - ln -s $sofile $out/lib/libldacBT_dec.so - - install -Dm644 inc/ldacBT.h $dev/include/ldac/ldacBT.h - - mkdir -p $dev/lib/pkgconfig - cat > $dev/lib/pkgconfig/ldacBT-dec.pc < -+#include - --#if __WORDSIZE == 64 && defined(HAVE_FNV64_HASH) -+#if (LONG_BITS == 64) && defined(HAVE_FNV64_HASH) - - /* FNV hash'es lifted from Dustin Sallings work */ - static uint64_t FNV_64_INIT= 0xcbf29ce484222325; -diff --git a/libhashkit/has.cc b/libhashkit/has.cc -index 843e32e..4153e5e 100644 ---- a/libhashkit/has.cc -+++ b/libhashkit/has.cc -@@ -37,6 +37,7 @@ - - - #include -+#include - - bool libhashkit_has_algorithm(const hashkit_hash_algorithm_t algo) - { -@@ -44,7 +45,7 @@ bool libhashkit_has_algorithm(const hashkit_hash_algorithm_t algo) - { - case HASHKIT_HASH_FNV1_64: - case HASHKIT_HASH_FNV1A_64: --#if __WORDSIZE == 64 && defined(HAVE_FNV64_HASH) -+#if (LONG_BITS == 64) && defined(HAVE_FNV64_HASH) - return true; - #else - return false; -diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc -index 29a22de..161c646 100644 ---- a/libtest/cmdline.cc -+++ b/libtest/cmdline.cc -@@ -61,7 +61,7 @@ using namespace libtest; - #include - #include - --#ifndef __USE_GNU -+#ifndef _GNU_SOURCE - static char **environ= NULL; - #endif - -@@ -201,7 +201,7 @@ Application::error_t Application::run(const char *args[]) - - fatal_assert(posix_spawnattr_setsigmask(&spawnattr, &mask) == 0); - --#if defined(POSIX_SPAWN_USEVFORK) || defined(__linux__) -+#if defined(POSIX_SPAWN_USEVFORK) || defined(__GLIBC__) - // Use USEVFORK on linux - flags |= POSIX_SPAWN_USEVFORK; - #endif diff --git a/pkgs/by-name/li/libmemcached/package.nix b/pkgs/by-name/li/libmemcached/package.nix index dfcd86d022dec..0da1dfeb7ebfc 100644 --- a/pkgs/by-name/li/libmemcached/package.nix +++ b/pkgs/by-name/li/libmemcached/package.nix @@ -1,41 +1,66 @@ { lib, stdenv, - fetchurl, + fetchFromGitHub, fetchpatch, + bison, + cmake, + flex, cyrus_sasl, libevent, + ctestCheckHook, + memcached, }: stdenv.mkDerivation (finalAttrs: { pname = "libmemcached"; - version = "1.0.18"; + version = "1.1.4"; - src = fetchurl { - url = "https://launchpad.net/libmemcached/${lib.versions.majorMinor finalAttrs.version}/${finalAttrs.version}/+download/libmemcached-${finalAttrs.version}.tar.gz"; - sha256 = "10jzi14j32lpq0if0p9vygcl2c1352hwbywzvr9qzq7x6aq0nb72"; + src = fetchFromGitHub { + owner = "awesomized"; + repo = "libmemcached"; + tag = finalAttrs.version; + hash = "sha256-jEw6L2/139oo4sGprl9Xp0DTarxAK1bEF2ak2kHWSAs="; }; - # Fix linking against libpthread (patch from Fedora) - # https://bugzilla.redhat.com/show_bug.cgi?id=1037707 - # https://bugs.launchpad.net/libmemcached/+bug/1281907 - # Fix building on macOS (patch from Homebrew) - # https://bugs.launchpad.net/libmemcached/+bug/1245562 - patches = - lib.optional stdenv.hostPlatform.isLinux ./libmemcached-fix-linking-with-libpthread.patch - ++ lib.optional stdenv.hostPlatform.isDarwin (fetchpatch { - url = "https://raw.githubusercontent.com/Homebrew/homebrew/bfd4a0a4626b61c2511fdf573bcbbc6bbe86340e/Library/Formula/libmemcached.rb"; - sha256 = "1gjf3vd7hiyzxjvlg2zfc3y2j0lyr6nhbws4xb5dmin3csyp8qb8"; + patches = lib.optionals stdenv.hostPlatform.isDarwin [ + (fetchpatch { + name = "libcxx-compat.patch"; + url = "https://github.com/awesomized/libmemcached/commit/547460c12287a34a5993045157a0e13e14203f92.patch"; + includes = [ "test/lib/random.cpp" ]; + hash = "sha256-aH51O4UM3M4yzTtC8bTy+6NKrtPfgqysrvspMZ/gWDc="; }) - ++ lib.optional stdenv.hostPlatform.isMusl ./musl-fixes.patch; + ]; + + nativeBuildInputs = [ + bison + cmake + flex + ]; + + cmakeFlags = [ + (lib.cmakeBool "BUILD_TESTING" finalAttrs.doCheck) + "-DENABLE_SASL=ON" + ]; buildInputs = [ libevent ]; propagatedBuildInputs = [ cyrus_sasl ]; - env.NIX_CFLAGS_COMPILE = "-fpermissive"; + doCheck = true; + + nativeCheckInputs = [ + ctestCheckHook + memcached + ]; + + disabledTests = [ + "bin/memcapable" + "memcached_regression_lp583031" + ]; meta = { - homepage = "https://libmemcached.org"; + homepage = "https://github.com/awesomized/libmemcached"; + changelog = "https://github.com/awesomized/libmemcached/blob/${finalAttrs.src.tag}/ChangeLog-${lib.versions.majorMinor finalAttrs.version}.md"; description = "Open source C/C++ client library and tools for the memcached server"; license = lib.licenses.bsd3; platforms = lib.platforms.linux ++ lib.platforms.darwin; diff --git a/pkgs/by-name/li/libmpc/package.nix b/pkgs/by-name/li/libmpc/package.nix index 35328cc0023cd..908ff90ff44ae 100644 --- a/pkgs/by-name/li/libmpc/package.nix +++ b/pkgs/by-name/li/libmpc/package.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "libmpc"; - version = "1.4.0"; # to avoid clash with the MPD client + version = "1.4.1"; # to avoid clash with the MPD client src = fetchurl { url = "mirror://gnu/mpc/mpc-${finalAttrs.version}.tar.xz"; - hash = "sha256-MhCzpUaxywDClso2CJHXdA7m/wbesCono1sgzTwLsaU="; + hash = "sha256-kSBM0y8WS9O3yZLUpqjOZRlRGq2rMPeLaYLQv41z6TE="; }; strictDeps = true; diff --git a/pkgs/by-name/li/libnice/musl.patch b/pkgs/by-name/li/libnice/musl.patch new file mode 100644 index 0000000000000..bf5c2a890bbde --- /dev/null +++ b/pkgs/by-name/li/libnice/musl.patch @@ -0,0 +1,178 @@ +From a7310137cf09e382e2642e39d4ade88942d564c3 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross +Date: Fri, 19 Jun 2026 17:21:47 +0200 +Subject: [PATCH 1/3] tests: treat Glibc-style sendmmsg as default case + +As requested. + +Link: https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/353#note_3526962 +Signed-off-by: Alyssa Ross +--- + tests/instrument-send.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/tests/instrument-send.c b/tests/instrument-send.c +index 3f79de87..65576dea 100644 +--- a/tests/instrument-send.c ++++ b/tests/instrument-send.c +@@ -190,23 +190,23 @@ sendmsg (int sockfd, const struct msghdr *msg, int flags) + } + } + +-#ifndef __FreeBSD__ +-int +-sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags) +-#else ++#ifdef __FreeBSD__ + ssize_t + sendmmsg (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags) ++#else ++int ++sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags) + #endif + { + if (should_inject_ewouldblock ()) { + errno = EWOULDBLOCK; + return -1; + } else { +-#ifndef __FreeBSD__ +- int ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags)) ( ++#ifdef __FreeBSD__ ++ ssize_t ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags)) ( + dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); + #else +- ssize_t ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags)) ( ++ int ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags)) ( + dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); + #endif + if (ret != -1) { +-- +GitLab + + +From 145c542b442f4deb89e1cc8bb92e1ca02456f918 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross +Date: Mon, 15 Jun 2026 17:54:12 +0200 +Subject: [PATCH 2/3] tests: check sendmmsg prototype in Meson + +Checking the actual prototype we have rather than using hardcoded libc +checks improves portability by being compatible with libcs that aren't +explictly handled, but use the same prototype as a known libc. For +example, uClibc-ng uses the same prototype as FreeBSD, but wouldn't +have been caught be the __FreeBSD__ check. +--- + tests/instrument-send.c | 4 ++-- + tests/meson.build | 18 +++++++++++++++++- + 2 files changed, 19 insertions(+), 3 deletions(-) + +diff --git a/tests/instrument-send.c b/tests/instrument-send.c +index 65576dea..9903619a 100644 +--- a/tests/instrument-send.c ++++ b/tests/instrument-send.c +@@ -190,7 +190,7 @@ sendmsg (int sockfd, const struct msghdr *msg, int flags) + } + } + +-#ifdef __FreeBSD__ ++#if defined(HAVE_FREEBSD_STYLE_SENDMMSG) + ssize_t + sendmmsg (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags) + #else +@@ -202,7 +202,7 @@ sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags) + errno = EWOULDBLOCK; + return -1; + } else { +-#ifdef __FreeBSD__ ++#if defined(HAVE_FREEBSD_STYLE_SENDMMSG) + ssize_t ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags)) ( + dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); + #else +diff --git a/tests/meson.build b/tests/meson.build +index 7a4ce651..29888c29 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -102,9 +102,25 @@ if gst_dep.found() and not static_build + ] + gst_env = environment() + dl_dep = cc.find_library('dl') ++ ++ instrument_send_lib_c_args = ['-DG_LOG_DOMAIN="libnice-instrument-send"'] ++ if cc.compiles(''' ++ #include ++ static int (*f) (int, struct mmsghdr *, unsigned int, int) = &sendmmsg; ++ ''', args: ['-D_GNU_SOURCE', '-Werror=incompatible-pointer-types'], name: 'Glibc-style sendmmsg') ++ # We consider this the default. ++ elif cc.compiles(''' ++ #include ++ static ssize_t (*f) (int, struct mmsghdr *, size_t, int) = &sendmmsg; ++ ''', args: ['-D_GNU_SOURCE', '-Werror=incompatible-pointer-types'], name: 'FreeBSD-style sendmmsg') ++ instrument_send_lib_c_args += ['-DHAVE_FREEBSD_STYLE_SENDMMSG'] ++ else ++ error('sendmmsg not present or has unknown prototype') ++ endif ++ + instrument_send_lib = shared_library('instrument-send', + 'instrument-send.c', +- c_args: '-DG_LOG_DOMAIN="libnice-instrument-send"', ++ c_args: instrument_send_lib_c_args, + dependencies: [dl_dep, gio_deps], + ) + gst_env.append('LD_PRELOAD', instrument_send_lib.full_path()) +-- +GitLab + + +From 4565af6fe9fe01164b072710ad18e537608d3a40 Mon Sep 17 00:00:00 2001 +From: Alyssa Ross +Date: Wed, 17 Jun 2026 11:53:11 +0200 +Subject: [PATCH 3/3] tests: support NetBSD/musl-style sendmmsg + +Fixes compilation for these platforms. +--- + tests/instrument-send.c | 6 ++++++ + tests/meson.build | 5 +++++ + 2 files changed, 11 insertions(+) + +diff --git a/tests/instrument-send.c b/tests/instrument-send.c +index 9903619a..20c02b30 100644 +--- a/tests/instrument-send.c ++++ b/tests/instrument-send.c +@@ -193,6 +193,9 @@ sendmsg (int sockfd, const struct msghdr *msg, int flags) + #if defined(HAVE_FREEBSD_STYLE_SENDMMSG) + ssize_t + sendmmsg (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags) ++#elif defined(HAVE_NETBSD_STYLE_SENDMMSG) ++int ++sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int flags) + #else + int + sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags) +@@ -205,6 +208,9 @@ sendmmsg (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags) + #if defined(HAVE_FREEBSD_STYLE_SENDMMSG) + ssize_t ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, size_t vlen, int flags)) ( + dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); ++#elif defined(HAVE_NETBSD_STYLE_SENDMMSG) ++ int ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, unsigned int flags)) ( ++ dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); + #else + int ret = ((int (*) (int sockfd, struct mmsghdr *msgvec, unsigned int vlen, int flags)) ( + dlsym (RTLD_NEXT, "sendmmsg"))) (sockfd, msgvec, vlen, flags); +diff --git a/tests/meson.build b/tests/meson.build +index 29888c29..3827dc2b 100644 +--- a/tests/meson.build ++++ b/tests/meson.build +@@ -114,6 +114,11 @@ if gst_dep.found() and not static_build + static ssize_t (*f) (int, struct mmsghdr *, size_t, int) = &sendmmsg; + ''', args: ['-D_GNU_SOURCE', '-Werror=incompatible-pointer-types'], name: 'FreeBSD-style sendmmsg') + instrument_send_lib_c_args += ['-DHAVE_FREEBSD_STYLE_SENDMMSG'] ++ elif cc.compiles(''' ++ #include ++ static int (*f) (int, struct mmsghdr *, unsigned int, unsigned int) = &sendmmsg; ++ ''', args: ['-D_GNU_SOURCE', '-Werror=incompatible-pointer-types'], name: 'NetBSD-style sendmmsg') ++ instrument_send_lib_c_args += ['-DHAVE_NETBSD_STYLE_SENDMMSG'] + else + error('sendmmsg not present or has unknown prototype') + endif +-- +GitLab + diff --git a/pkgs/by-name/li/libnice/package.nix b/pkgs/by-name/li/libnice/package.nix index 6d2361b25d2e8..8551229f22082 100644 --- a/pkgs/by-name/li/libnice/package.nix +++ b/pkgs/by-name/li/libnice/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchurl, + fetchpatch, meson, ninja, pkg-config, @@ -19,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libnice"; - version = "0.1.22"; + version = "0.1.23"; outputs = [ "bin" @@ -30,13 +31,24 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://libnice.freedesktop.org/releases/libnice-${finalAttrs.version}.tar.gz"; - hash = "sha256-pfckzwnq5QxBp1FxQdidpKYeyerKMtpKAHP67VQXrX4="; + hash = "sha256-YY/E6N45O3GbFkHB2O7AGCbU050VrekmedIhx/Xk5w0="; }; patches = [ # Bumps the gupnp_igd_dep version requested to 1.6 # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/255 ./gupnp-igd-bump.patch + ] + # TODO: investigate what's wrong + ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ + (fetchpatch { + name = "freebsd.patch"; + url = "https://gitlab.freedesktop.org/libnice/libnice/-/commit/479f0813a571ff035bf00de679db452a0441125b.patch"; + hash = "sha256-rr8pAb8TjU85jYWUjsMMKkLxxXVE3B+IjfAyOw9suo0="; + }) + + # https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/353 + ./musl.patch ]; nativeBuildInputs = [ @@ -75,6 +87,7 @@ stdenv.mkDerivation (finalAttrs: { doCheck = false; meta = { + changelog = "https://gitlab.freedesktop.org/libnice/libnice/-/blob/${finalAttrs.version}/NEWS"; description = "GLib ICE implementation"; longDescription = '' Libnice is an implementation of the IETF's Interactice Connectivity diff --git a/pkgs/by-name/li/libopenmpt/package.nix b/pkgs/by-name/li/libopenmpt/package.nix index 0e7f01d0fe843..2cccd04d27e68 100644 --- a/pkgs/by-name/li/libopenmpt/package.nix +++ b/pkgs/by-name/li/libopenmpt/package.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libopenmpt"; - version = "0.8.6"; + version = "0.8.7"; outputs = [ "out" @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${finalAttrs.version}+release.autotools.tar.gz"; - hash = "sha256-yqL6lZ44n0N02eLfOvXGM0UsEt2ARCy6LonLf/K5PFs="; + hash = "sha256-J1wp70e+mZL2KjX8yW98oFwG0v0FySmLje6fdD91sIk="; }; enableParallelBuilding = true; diff --git a/pkgs/by-name/li/libpaper/package.nix b/pkgs/by-name/li/libpaper/package.nix index d15318f30b069..71c6f5326aebc 100644 --- a/pkgs/by-name/li/libpaper/package.nix +++ b/pkgs/by-name/li/libpaper/package.nix @@ -6,12 +6,12 @@ }: stdenv.mkDerivation (finalAttrs: { - version = "1.1.29"; + version = "2.2.8"; pname = "libpaper"; src = fetchurl { - url = "mirror://debian/pool/main/libp/libpaper/libpaper_${finalAttrs.version}.tar.gz"; - hash = "sha256-JjMOIemjEkZY1RX9hQsM3lRv9C2JsllqUmTF8Wd/BUc="; + url = "https://github.com/rrthomas/libpaper/releases/download/v${finalAttrs.version}/libpaper-${finalAttrs.version}.tar.gz"; + hash = "sha256-HjMFcWkBkYdOykFex2iJ3RG6uYh6IwLWo2Zc0IHE13s="; }; nativeBuildInputs = [ autoreconfHook ]; @@ -36,9 +36,15 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { + changelog = "https://github.com/rrthomas/libpaper/releases/tag/v${finalAttrs.version}"; description = "Library for handling paper characteristics"; - homepage = "http://packages.debian.org/unstable/source/libpaper"; - license = lib.licenses.gpl2; + homepage = "https://github.com/rrthomas/libpaper"; + license = with lib.licenses; [ + gpl2Only + gpl3Plus + mit + publicDomain + ]; platforms = lib.platforms.unix; }; }) diff --git a/pkgs/by-name/li/librsvg/package.nix b/pkgs/by-name/li/librsvg/package.nix index 333015e1927ca..297c1a0eae326 100644 --- a/pkgs/by-name/li/librsvg/package.nix +++ b/pkgs/by-name/li/librsvg/package.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "librsvg"; - version = "2.62.1"; + version = "2.62.3"; outputs = [ "out" @@ -62,13 +62,13 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz"; - hash = "sha256-tByoQgYkL93YJqK/djSNfN9SwQUMv6BguGboGiUhRcM="; + hash = "sha256-frRJsnIqdoAhNW9m3+4yAsIptU7U5qcM5AwJDpf/FvI="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; name = "librsvg-deps-${finalAttrs.version}"; - hash = "sha256-Px7H2Z4ShCCuZNskuKj427lE9dvIc6xRo8R1S4fK+ZQ="; + hash = "sha256-9ubfIl9R2BdcAWn7i050KBbb4cMdlakvrKdnjpZCQjA="; dontConfigure = true; }; diff --git a/pkgs/by-name/li/libsodium/package.nix b/pkgs/by-name/li/libsodium/package.nix index 7046a0a7d80d3..3fc91abaf0caf 100644 --- a/pkgs/by-name/li/libsodium/package.nix +++ b/pkgs/by-name/li/libsodium/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libsodium"; - version = "1.0.22-unstable-2026-04-09"; + version = "1.0.22-unstable-2026-04-16"; src = fetchFromGitHub { owner = "jedisct1"; repo = "libsodium"; - rev = "77e1ce5d6dee871c49ef211222ba18ef0c486bda"; - hash = "sha256-k8u7iNqvjLA0PptbneDyE8zCtutJlV2LirrRb41tmBY="; + rev = "33cc75ab1565d9dcbe808354191bd572ad6b64d0"; + hash = "sha256-8kS9FBoaFaJOjH7XZc8IG3GaQaUiYD/awQOhs7j0n1Y="; }; outputs = [ diff --git a/pkgs/by-name/li/libssh2/package.nix b/pkgs/by-name/li/libssh2/package.nix index 71ed533d7a744..1e987379f73c6 100644 --- a/pkgs/by-name/li/libssh2/package.nix +++ b/pkgs/by-name/li/libssh2/package.nix @@ -26,6 +26,31 @@ stdenv.mkDerivation (finalAttrs: { patches = [ # https://github.com/libssh2/libssh2/commit/256d04b60d80bf1190e96b0ad1e91b2174d744b1 ./CVE-2026-7598.patch + + (fetchurl { + name = "CVE-2025-15661.patch"; + url = "https://salsa.debian.org/debian/libssh2/-/raw/1d4906e6ebe85a9da2931ba33677ead96a61f07f/debian/patches/CVE-2025-15661.patch"; + hash = "sha256-Rz6i/881CbObUDcZbcPlgVPaKizSp6ZRTdmJNJ9HLHE="; + }) + + (fetchurl { + name = "CVE-2026-55199.patch"; + url = "https://salsa.debian.org/debian/libssh2/-/raw/1d4906e6ebe85a9da2931ba33677ead96a61f07f/debian/patches/CVE-2026-55199.patch"; + hash = "sha256-AFZa5kohha62aE0if5ckmAdJ0TZNcjfP32yDznoEhNo="; + }) + + (fetchurl { + name = "CVE-2026-55200.patch"; + url = "https://salsa.debian.org/debian/libssh2/-/raw/1d4906e6ebe85a9da2931ba33677ead96a61f07f/debian/patches/CVE-2026-55200.patch"; + hash = "sha256-wCAglr8BsBWIhnh3SiFeyKzZmIp8rC5MVfFgoEzp/hE="; + }) + + # necessary for the fix for CVE-2026-15661 + (fetchurl { + name = "libssh-unconst-backport.patch"; + url = "https://salsa.debian.org/debian/libssh2/-/raw/1d4906e6ebe85a9da2931ba33677ead96a61f07f/debian/patches/libssh-unconst-backport.patch"; + hash = "sha256-jc01Fb70GbaD9+RYeSjRaLFBtKLiMPTMuXas21aC0Ag="; + }) ]; # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion diff --git a/pkgs/by-name/li/libtiff/package.nix b/pkgs/by-name/li/libtiff/package.nix index 3b6ba23451483..66f679f6c6779 100644 --- a/pkgs/by-name/li/libtiff/package.nix +++ b/pkgs/by-name/li/libtiff/package.nix @@ -80,14 +80,17 @@ stdenv.mkDerivation (finalAttrs: { sphinx ]; - buildInputs = [ - libdeflate + # Things listed in the + # pkg-config file need to be propagated or else + # they will not be picked up properly + propagatedBuildInputs = [ libjpeg - # libwebp depends on us; this will cause infinite recursion otherwise - (libwebp.override { tiffSupport = false; }) - xz zlib zstd + libdeflate + xz + # libwebp depends on us; this will cause infinite recursion otherwise + (libwebp.override { tiffSupport = false; }) ] ++ lib.optionals withLerc [ lerc diff --git a/pkgs/by-name/li/libtpms/package.nix b/pkgs/by-name/li/libtpms/package.nix index f658b8d23f6c1..d0b6a1f2e0a21 100644 --- a/pkgs/by-name/li/libtpms/package.nix +++ b/pkgs/by-name/li/libtpms/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch2, pkg-config, autoreconfHook, openssl, @@ -10,16 +11,21 @@ stdenv.mkDerivation (finalAttrs: { pname = "libtpms"; - version = "0.10.2"; + version = "0.10.2-unstable-2026-05-06"; src = fetchFromGitHub { owner = "stefanberger"; repo = "libtpms"; - rev = "v${finalAttrs.version}"; - sha256 = "sha256-UhEpq5f/FT5DmtzQBe/Si414mOq+D4glikgRNK60GKQ="; + rev = "521c51073fe6f7c56023db78e56961fcaf7906e8"; + hash = "sha256-wCipOOr3LnLq1NqDtxw6hq0VTyniDwp18vBxyET/WGM="; }; - hardeningDisable = [ "strictflexarrays3" ]; + patches = [ + (fetchpatch2 { + url = "https://github.com/stefanberger/libtpms/commit/2d9b00c4e42677cd0a9b67344f4d873ddc409a21.patch?full_index=1"; + hash = "sha256-MVHy0sdg8ywKzu9M4ueRjH786uXQK8al21k8f+mAdR0="; + }) + ]; nativeBuildInputs = [ autoreconfHook diff --git a/pkgs/by-name/li/libultrahdr/package.nix b/pkgs/by-name/li/libultrahdr/package.nix index c3ef856b8fbf3..c4328f72fcfb3 100644 --- a/pkgs/by-name/li/libultrahdr/package.nix +++ b/pkgs/by-name/li/libultrahdr/package.nix @@ -40,6 +40,20 @@ stdenv.mkDerivation (finalAttrs: { (replaceVars ./gtest.patch { GTEST_INCLUDE_DIRS = "${lib.getDev gtest}/include"; }) + + # Remove platform and architecture detection logic + # Also drop arch-specific compile and optimization flags to ensure + # packaging friendliness. + # Based on https://github.com/google/libultrahdr/pull/383 + # modified to target 1.4.0 instead of main + ./remove-platform-and-detection-logic.patch + + # fix tests on big-endian + # https://github.com/google/libultrahdr/pull/396 + (fetchpatch { + url = "https://github.com/google/libultrahdr/commit/13a058f452d846e43d4691f6885eeeaa8b0ea8d0.patch"; + hash = "sha256-2ZVvBMz8wQLEThuXdRJbbx5m2ouRZpxVWoH88RLmit4="; + }) ]; # CMake incorrect absolute include/lib paths: https://github.com/NixOS/nixpkgs/issues/144170 @@ -53,6 +67,12 @@ stdenv.mkDerivation (finalAttrs: { 'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@' ''; + # use sse2 for floating point math to fix tests + env = lib.optionalAttrs stdenv.hostPlatform.isi686 { + CFLAGS = "-mfpmath=sse -msse2"; + CXXFLAGS = "-mfpmath=sse -msse2"; + }; + cmakeFlags = [ (lib.cmakeBool "UHDR_BUILD_TESTS" true) # Build disables install target in cross-compilation mode so @@ -102,33 +122,7 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ yzx9 ]; - # CMake script rejects non-approved platform targets - # https://github.com/google/libultrahdr/pull/383 would get rid of that - platforms = - let - # Values from the "Detect system" section in /CMakeLists.txt - # https://github.com/google/libultrahdr/blob/d52a0d13814ca399fc8a07e23de1d2c63f0e8404/CMakeLists.txt#L34 - oss = [ - "linux" - "windows" - "darwin" - ]; - archs = [ - "i686" - "x86_64" - "aarch64" - "armv7l" - "riscv64" - "riscv32" - "loongarch64" - ]; - in - lib.lists.intersectLists lib.platforms.all ( - lib.lists.crossLists (arch: os: "${arch}-${os}") [ - archs - oss - ] - ); + platforms = lib.platforms.all; license = with lib.licenses; [ asl20 ]; diff --git a/pkgs/by-name/li/libultrahdr/remove-platform-and-detection-logic.patch b/pkgs/by-name/li/libultrahdr/remove-platform-and-detection-logic.patch new file mode 100644 index 0000000000000..5c3521be65a6a --- /dev/null +++ b/pkgs/by-name/li/libultrahdr/remove-platform-and-detection-logic.patch @@ -0,0 +1,142 @@ +From e2daed8da97d8857dcec2fd68d2f6f3326170f67 Mon Sep 17 00:00:00 2001 +From: Kleis Auke Wolthuizen +Date: Wed, 10 Dec 2025 15:01:28 +0100 +Subject: [PATCH] Remove platform and architecture detection logic + +Also drop arch-specific compile and optimization flags to ensure +packaging friendliness. +--- + CMakeLists.txt | 104 +++----------------------------------------- + cmake/package.cmake | 3 -- + 2 files changed, 5 insertions(+), 102 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 51283356..07ed9100 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,44 +25,6 @@ project(libuhdr + LANGUAGES C CXX + DESCRIPTION "Library for encoding and decoding ultrahdr images") + +-########################################################### +-# Detect system +-########################################################### +-if(${CMAKE_SYSTEM_NAME} MATCHES "Linux") +-elseif(${CMAKE_SYSTEM_NAME} MATCHES "Emscripten") +-elseif(${CMAKE_SYSTEM_NAME} MATCHES "Android") +-elseif(WIN32) +-elseif(APPLE) +-else() +- message(FATAL_ERROR "Platform ${CMAKE_SYSTEM_NAME} not recognized") +-endif() +- +-if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*") +- if(CMAKE_SIZEOF_VOID_P EQUAL 8) +- set(ARCH "amd64") +- else() +- set(ARCH "i386") +- endif() +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*") +- set(ARCH "i386") +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*|ARM64.*)") +- if(CMAKE_SIZEOF_VOID_P EQUAL 8) +- set(ARCH "aarch64") +- else() +- set(ARCH "arm") +- endif() +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm.*|ARM.*)") +- set(ARCH "arm") +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv64") +- set(ARCH "riscv64") +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^riscv32") +- set(ARCH "riscv32") +-elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^loongarch64") +- set(ARCH "loong64") +-else() +- message(FATAL_ERROR "Architecture: ${CMAKE_SYSTEM_PROCESSOR} not recognized") +-endif() +- + ########################################################### + # Directories + ########################################################### +@@ -287,45 +228,9 @@ elseif(EMSCRIPTEN) + or try 'cmake -DUHDR_BUILD_DEPS=1'") + endif() + endif() +-else() +- add_compile_options(-ffunction-sections) +- add_compile_options(-fdata-sections) +- add_compile_options(-fomit-frame-pointer) +- add_compile_options(-ffp-contract=fast) +- if(ARCH STREQUAL "i386") +- add_compile_options(-m32) +- add_compile_options(-march=i386) +- add_compile_options(-mtune=generic) +- elseif(ARCH STREQUAL "amd64") +- add_compile_options(-m64) +- add_compile_options(-march=x86-64) +- add_compile_options(-mtune=generic) +- elseif(ARCH STREQUAL "arm") +- add_compile_options(-march=armv7-a) +- add_compile_options(-marm) +- if(NOT ANDROID_ABI) +- add_compile_options(-mfloat-abi=hard) +- endif() +- add_compile_options(-mfpu=neon-vfpv3) +- add_compile_options(-fno-lax-vector-conversions) +- elseif(ARCH STREQUAL "aarch64") +- add_compile_options(-march=armv8-a) +- add_compile_options(-fno-lax-vector-conversions) +- elseif(ARCH STREQUAL "riscv64") +- add_compile_options(-march=rv64gc) +- add_compile_options(-mabi=lp64d) +- elseif(ARCH STREQUAL "riscv32") +- add_compile_options(-march=rv32gc) +- add_compile_options(-mabi=ilp32d) +- elseif(ARCH STREQUAL "loong64") +- add_compile_options(-march=loongarch64) +- add_compile_options(-mabi=lp64d) +- endif() +- +- if(UHDR_ENABLE_WERROR) +- CheckCompilerOption("-Werror" SUPPORTS_WERROR) +- set(UHDR_WERROR_FLAGS "-Werror") +- endif() ++elseif(UHDR_ENABLE_WERROR) ++ CheckCompilerOption("-Werror" SUPPORTS_WERROR) ++ set(UHDR_WERROR_FLAGS "-Werror") + endif() + + ########################################################### +@@ -585,7 +490,8 @@ set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES + ########################################################### + file(GLOB UHDR_CORE_SRCS_LIST "${SOURCE_DIR}/src/*.cpp") + if(UHDR_ENABLE_INTRINSICS) +- if(ARCH STREQUAL "arm" OR ARCH STREQUAL "aarch64") ++ string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC) ++ if(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm") + file(GLOB UHDR_CORE_NEON_SRCS_LIST "${SOURCE_DIR}/src/dsp/arm/*.cpp") + list(APPEND UHDR_CORE_SRCS_LIST ${UHDR_CORE_NEON_SRCS_LIST}) + endif() +diff --git a/cmake/package.cmake b/cmake/package.cmake +index 2e3649aa..5a416c22 100644 +--- a/cmake/package.cmake ++++ b/cmake/package.cmake +@@ -29,9 +29,7 @@ if("${CMAKE_SYSTEM_NAME}" STREQUAL "") + message(FATAL_ERROR "Failed to determine CPACK_SYSTEM_NAME. Is CMAKE_SYSTEM_NAME set?" ) + endif() + string(TOLOWER "${CMAKE_SYSTEM_NAME}" CPACK_SYSTEM_NAME) +-set(CPACK_PACKAGE_ARCHITECTURE ${ARCH}) + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}") +-set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-${CPACK_PACKAGE_ARCHITECTURE}") + set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE) + set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) + +@@ -46,7 +44,6 @@ elseif(UNIX) + set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CPACK_PACKAGE_HOMEPAGE_URL}) + elseif(EXISTS "/etc/redhat-release") + set(CPACK_GENERATOR "RPM") +- set(CPACK_RPM_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE}) + set(CPACK_RPM_PACKAGE_RELEASE 1) + set(CPACK_RPM_PACKAGE_LICENSE "Apache 2.0") + set(CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_HOMEPAGE_URL}) diff --git a/pkgs/by-name/li/libusb1/package.nix b/pkgs/by-name/li/libusb1/package.nix index 4676098bff3e8..06f18ee6e5cac 100644 --- a/pkgs/by-name/li/libusb1/package.nix +++ b/pkgs/by-name/li/libusb1/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "libusb"; - version = "1.0.29"; + version = "1.0.30"; src = fetchFromGitHub { owner = "libusb"; repo = "libusb"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-m1w+uF8+2WCn72LvoaGUYa+R0PyXHtFFONQjdRfImYY="; + sha256 = "sha256-qgs8h1vSqJg2muBDWN5nJlvaMjGYZnwMg1m07rqzHco="; }; outputs = [ diff --git a/pkgs/by-name/li/libxi/package.nix b/pkgs/by-name/li/libxi/package.nix index 3cbac22c36f38..0475ba3951752 100644 --- a/pkgs/by-name/li/libxi/package.nix +++ b/pkgs/by-name/li/libxi/package.nix @@ -12,7 +12,7 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "libxi"; - version = "1.8.2"; + version = "1.8.3"; outputs = [ "out" @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://xorg/individual/lib/libXi-${finalAttrs.version}.tar.xz"; - hash = "sha256-0OBVXlPW4hFOq/pEImuhYtJwhQGiXhjZnPs1wJTGwQQ="; + hash = "sha256-etYAVvAa9PeGz+k7OncHRHcRYm/I2iY3vscakECbq+U="; }; strictDeps = true; diff --git a/pkgs/by-name/li/libxkbcommon_8/disable-x11com.patch b/pkgs/by-name/li/libxkbcommon_8/disable-x11com.patch deleted file mode 100644 index c0a8b7ac43af7..0000000000000 --- a/pkgs/by-name/li/libxkbcommon_8/disable-x11com.patch +++ /dev/null @@ -1,23 +0,0 @@ -On nixpkgs /tmp/.X11-unix is not compatible with Xvfb requirement and the -test fails. ---- a/meson.build -+++ b/meson.build -@@ -1229,18 +1229,6 @@ if get_option('enable-x11') - env: test_env, - is_parallel : false, - ) -- test( -- 'x11comp', -- executable( -- 'test-x11comp', -- 'test/x11comp.c', -- 'test/utils-text.c', -- 'test/utils-text.h', -- dependencies: x11_xvfb_test_dep -- ), -- env: test_env, -- is_parallel : false, -- ) - endif - if get_option('enable-xkbregistry') - test( diff --git a/pkgs/by-name/li/libxkbcommon_8/package.nix b/pkgs/by-name/li/libxkbcommon_8/package.nix index caed48e59c025..7c96341eb86c5 100644 --- a/pkgs/by-name/li/libxkbcommon_8/package.nix +++ b/pkgs/by-name/li/libxkbcommon_8/package.nix @@ -11,6 +11,8 @@ libxcb, libxml2, python3, + setxkbmap, + xkbcomp, libx11, # To enable the "interactive-wayland" subcommand of xkbcli. This is the # wayland equivalent of `xev` on X11. @@ -24,20 +26,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "libxkbcommon"; - version = "1.13.1"; + version = "1.13.2"; src = fetchFromGitHub { owner = "xkbcommon"; repo = "libxkbcommon"; tag = "xkbcommon-${finalAttrs.version}"; - hash = "sha256-wUsxsM0xXTg7nbvFMXrrnHherOepj0YI77eferjRgJA="; + hash = "sha256-JdS4+HPHDUUOUq5TUX2F5DicHif8wD3cPvMocWhD4S4="; }; - patches = [ - # Disable one Xvfb test as it fails for permission checks. - ./disable-x11com.patch - ]; - outputs = [ "out" "dev" @@ -64,7 +61,11 @@ stdenv.mkDerivation (finalAttrs: { wayland wayland-protocols ]; - nativeCheckInputs = [ python3 ]; + nativeCheckInputs = [ + python3 + setxkbmap + xkbcomp + ]; mesonFlags = [ "-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb" diff --git a/pkgs/by-name/li/libxkbfile/package.nix b/pkgs/by-name/li/libxkbfile/package.nix index 93cd9028b3795..4dd6270b4793b 100644 --- a/pkgs/by-name/li/libxkbfile/package.nix +++ b/pkgs/by-name/li/libxkbfile/package.nix @@ -2,6 +2,8 @@ lib, stdenv, fetchurl, + meson, + ninja, pkg-config, xorgproto, libx11, @@ -10,7 +12,7 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "libxkbfile"; - version = "1.1.3"; + version = "1.2.0"; outputs = [ "out" @@ -19,12 +21,16 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://xorg/individual/lib/libxkbfile-${finalAttrs.version}.tar.xz"; - hash = "sha256-qbY+6pl6u57mqLT7tRWDHIQfRxr4RaCd5EOygAOHS+w="; + hash = "sha256-f3GITl+vVvsOgj84SFmc+bWpr85RyQmCuutk9jUjPr8="; }; strictDeps = true; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + meson + ninja + pkg-config + ]; buildInputs = [ xorgproto diff --git a/pkgs/by-name/li/libxmlb/package.nix b/pkgs/by-name/li/libxmlb/package.nix index 1d480f08f1e0b..9218433fbe620 100644 --- a/pkgs/by-name/li/libxmlb/package.nix +++ b/pkgs/by-name/li/libxmlb/package.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "libxmlb"; - version = "0.3.25"; + version = "0.3.27"; outputs = [ "out" @@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "hughsie"; repo = "libxmlb"; rev = finalAttrs.version; - hash = "sha256-GBsaVJpnB6m1oItwD7t59BmoZcVQBU/sPz5fGGVzBG0="; + hash = "sha256-5RP794gBA67DcrjzqvguDYu/Sf+1X5kfRi9yvLx9b+c="; }; patches = [ diff --git a/pkgs/by-name/li/libxslt/package.nix b/pkgs/by-name/li/libxslt/package.nix index 6de4895cf7bc0..da39812157a4d 100644 --- a/pkgs/by-name/li/libxslt/package.nix +++ b/pkgs/by-name/li/libxslt/package.nix @@ -78,6 +78,9 @@ stdenv.mkDerivation (finalAttrs: { postFixup = '' moveToOutput bin/xslt-config "$dev" moveToOutput lib/xsltConf.sh "$dev" + + substituteInPlace "$dev/lib/cmake/libxslt/libxslt-config.cmake" \ + --replace-fail '"''${PACKAGE_PREFIX_DIR}/lib"' "\"$out/lib\"" '' + lib.optionalString pythonSupport '' mkdir -p $py/nix-support diff --git a/pkgs/by-name/li/lilv/package.nix b/pkgs/by-name/li/lilv/package.nix index acc3ff565858e..c09fa4a379b83 100644 --- a/pkgs/by-name/li/lilv/package.nix +++ b/pkgs/by-name/li/lilv/package.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { pname = "lilv"; - version = "0.26.4"; + version = "0.28.0"; outputs = [ "out" @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://download.drobilla.net/lilv-${version}.tar.xz"; - hash = "sha256-HItfy3hxgXPmfXblGtQj9RE6n/aEY/JWYZWuRjlgieM="; + hash = "sha256-jctwrbXPByM1EVprCR9BE3EL3HOrqtqj+enB5VlXsUk="; }; nativeBuildInputs = [ @@ -76,6 +76,7 @@ stdenv.mkDerivation rec { meta = { homepage = "http://drobilla.net/software/lilv"; + changelog = "https://gitlab.com/lv2/lilv/-/blob/v${version}/NEWS"; description = "C library to make the use of LV2 plugins"; license = lib.licenses.mit; maintainers = [ ]; diff --git a/pkgs/by-name/li/linux-pam/package.nix b/pkgs/by-name/li/linux-pam/package.nix index 5e1fdfd4a7cec..0da213b857c0a 100644 --- a/pkgs/by-name/li/linux-pam/package.nix +++ b/pkgs/by-name/li/linux-pam/package.nix @@ -3,6 +3,7 @@ stdenv, buildPackages, fetchFromGitHub, + fetchpatch, flex, db4, gettext, @@ -33,18 +34,25 @@ stdenv.mkDerivation (finalAttrs: { pname = "linux-pam"; - version = "1.7.1"; + version = "1.7.2"; src = fetchFromGitHub { owner = "linux-pam"; repo = "linux-pam"; tag = "v${finalAttrs.version}"; - hash = "sha256-kANcwxifQz2tYPSrSBSFiYNTm51Gr10L/zroCqm8ZHQ="; - + hash = "sha256-V3XQqolinh+MqUefMDYJF9zP4fBJTHc7YKN+NEGjx1g="; }; __structuredAttrs = true; + patches = [ + (fetchpatch { + name = "secure-opendir-fix-error-handling.patch"; + url = "https://github.com/linux-pam/linux-pam/commit/dd62bac17221911106de165607c6925ea54b18d1.patch?full_index=1"; + hash = "sha256-ddgDYdVfdXfTaMFV1hO3RJX9w1NHmE7yi3PxsHOdpvY="; + }) + ]; + # patching unix_chkpwd is required as the nix store entry does not have the necessary bits postPatch = '' substituteInPlace modules/module-meson.build \ @@ -104,6 +112,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "nis" false) (lib.mesonBool "xtests" false) (lib.mesonBool "examples" false) + (lib.mesonOption "vendordir" "${placeholder "out"}/etc") ] # warning: slower execution due to debug makes VM tests fail! ++ lib.optional debugMode (lib.mesonBool "pam-debug" true); diff --git a/pkgs/by-name/ll/llhttp/package.nix b/pkgs/by-name/ll/llhttp/package.nix index 6f9115c07dc4f..4487a45183609 100644 --- a/pkgs/by-name/ll/llhttp/package.nix +++ b/pkgs/by-name/ll/llhttp/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "llhttp"; - version = "9.4.1"; + version = "9.4.2"; src = fetchFromGitHub { owner = "nodejs"; repo = "llhttp"; tag = "release/v${finalAttrs.version}"; - hash = "sha256-eQoOsJ3lIIGSIfC4atkbUqCAYzCzs5kzTihYaI4jqz0="; + hash = "sha256-LS8HS8CnXJ3X8WlIvtxBLc0h1wLL/HmTqZWHlvBjTEo="; }; outputs = [ diff --git a/pkgs/by-name/lt/lttng-ust/package.nix b/pkgs/by-name/lt/lttng-ust/package.nix index 0455146aaed89..9f359b838cb97 100644 --- a/pkgs/by-name/lt/lttng-ust/package.nix +++ b/pkgs/by-name/lt/lttng-ust/package.nix @@ -26,13 +26,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "lttng-ust"; - version = "2.14.0"; + version = "2.15.1"; src = fetchFromGitHub { owner = "lttng"; repo = "lttng-ust"; tag = "v${finalAttrs.version}"; - hash = "sha256-9WZDjOGfflEc6BUUO3W70KeLcZnTaePkF8eg8Ns/lQc="; + hash = "sha256-AWo205IPGKpEyz5RlscHfdfCTV0zOWPHOGk4ImAJbcQ="; }; outputs = [ @@ -67,7 +67,15 @@ stdenv.mkDerivation (finalAttrs: { patchShebangs . ''; - configureFlags = [ "--disable-examples" ]; + configureFlags = [ + "--disable-examples" + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + # lttng-ust puts a single array on the stack that's the size of + # musl's whole default stack. + # https://review.lttng.org/c/lttng-ust/+/18160 + "CFLAGS=-Wl,-z,stack-size=2097152" + ]; doCheck = true; diff --git a/pkgs/by-name/ma/mate-panel-with-applets/package.nix b/pkgs/by-name/ma/mate-panel-with-applets/package.nix index a3a52ced0d438..e5d5031ff9c95 100644 --- a/pkgs/by-name/ma/mate-panel-with-applets/package.nix +++ b/pkgs/by-name/ma/mate-panel-with-applets/package.nix @@ -34,12 +34,13 @@ let in stdenv.mkDerivation { pname = "${mate-panel.pname}-with-applets"; - inherit (mate-panel) version; + inherit (mate-panel) version outputs; src = null; paths = [ - mate-panel + mate-panel.out + mate-panel.man ] ++ selectedApplets; @@ -84,13 +85,5 @@ stdenv.mkDerivation { __structuredAttrs = true; - meta = { - inherit (mate-panel.meta) - description - homepage - license - teams - platforms - ; - }; + inherit (mate-panel) meta; } diff --git a/pkgs/by-name/ma/maturin/package.nix b/pkgs/by-name/ma/maturin/package.nix index 8c08f6a0643f9..fae97effb3b9d 100644 --- a/pkgs/by-name/ma/maturin/package.nix +++ b/pkgs/by-name/ma/maturin/package.nix @@ -12,16 +12,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "maturin"; - version = "1.12.6"; + version = "1.14.1"; src = fetchFromGitHub { owner = "PyO3"; repo = "maturin"; tag = "v${finalAttrs.version}"; - hash = "sha256-NQ94RdQTQlRR5+2dC95cFNhwYliHmkD11JWyGt6BV6g="; + hash = "sha256-sqcNRN8oAZ2AK5gHr3ipb035VOiB+zDA10wTtiaeUBM="; }; - cargoHash = "sha256-9VqS9wvQAsSYNhH7B9WlD6SZjXR4S2sYzYoNy6vbYBM="; + cargoHash = "sha256-pD8/S7GsFFeAjc8U4fQ9ZTu+o3mKyPagMPKKRI40n4w="; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv diff --git a/pkgs/by-name/mc/mctc-lib/package.nix b/pkgs/by-name/mc/mctc-lib/package.nix index abf2cd1a85096..a2de791d14f07 100644 --- a/pkgs/by-name/mc/mctc-lib/package.nix +++ b/pkgs/by-name/mc/mctc-lib/package.nix @@ -10,6 +10,7 @@ pkg-config, python3, jonquil, + openmpCheckPhaseHook, }: assert ( @@ -43,6 +44,7 @@ stdenv.mkDerivation (finalAttrs: { gfortran pkg-config python3 + openmpCheckPhaseHook ] ++ lib.optionals (buildType == "meson") [ meson @@ -63,10 +65,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - postPatch = '' patchShebangs --build config/install-mod.py ''; diff --git a/pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch b/pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch deleted file mode 100644 index e0e9f3d96b2b4..0000000000000 --- a/pkgs/by-name/md/md4c/0001-fix-pkgconfig.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0ab8f5a6ee305cf4edcebfdc7b9eb5f98302de75 Mon Sep 17 00:00:00 2001 -From: Leif Middelschulte -Date: Fri, 17 Sep 2021 16:16:17 +0200 -Subject: [PATCH] pc.in: use _FULL_ variable variants - -Nix' cmake packaging handler replaces the CMAKE_INSTALL_INCLUDEDIR -with the absolute path. Which break package -portability (i.e. `prefix`-usage). ---- - src/md4c-html.pc.in | 6 ++---- - src/md4c.pc.in | 6 ++---- - 2 files changed, 4 insertions(+), 8 deletions(-) - -diff --git a/src/md4c-html.pc.in b/src/md4c-html.pc.in -index 504bb52..fec7df4 100644 ---- a/src/md4c-html.pc.in -+++ b/src/md4c-html.pc.in -@@ -1,7 +1,5 @@ --prefix=@CMAKE_INSTALL_PREFIX@ --exec_prefix=@CMAKE_INSTALL_PREFIX@ --libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ --includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: @PROJECT_NAME@ HTML renderer - Description: Markdown to HTML converter library. -diff --git a/src/md4c.pc.in b/src/md4c.pc.in -index cd8842d..b5d81f8 100644 ---- a/src/md4c.pc.in -+++ b/src/md4c.pc.in -@@ -1,7 +1,5 @@ --prefix=@CMAKE_INSTALL_PREFIX@ --exec_prefix=@CMAKE_INSTALL_PREFIX@ --libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ --includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ -+libdir=@CMAKE_INSTALL_FULL_LIBDIR@ -+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ - - Name: @PROJECT_NAME@ - Description: Markdown parser library with a SAX-like callback-based interface. --- -2.31.0 - diff --git a/pkgs/by-name/md/md4c/package.nix b/pkgs/by-name/md/md4c/package.nix index 10fe4712b78dd..32fad6ff5a2a5 100644 --- a/pkgs/by-name/md/md4c/package.nix +++ b/pkgs/by-name/md/md4c/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "md4c"; - version = "0.5.2"; + version = "0.5.3"; src = fetchFromGitHub { owner = "mity"; repo = "md4c"; rev = "release-${finalAttrs.version}"; - hash = "sha256-2/wi7nJugR8X2J9FjXJF1UDnbsozGoO7iR295/KSJng="; + hash = "sha256-rsNJlNLsmTEiAARqQ5TovNWmHNikMiRi8eEyn8o43ao="; }; outputs = [ @@ -24,13 +24,6 @@ stdenv.mkDerivation (finalAttrs: { "man" ]; - patches = [ - # We set CMAKE_INSTALL_LIBDIR to the absolute path in $out, so prefix and - # exec_prefix cannot be $out, too - # Use CMake's _FULL_ variables instead of `prefix` concatenation. - ./0001-fix-pkgconfig.patch - ]; - nativeBuildInputs = [ cmake pkg-config diff --git a/pkgs/by-name/md/mdbook/package.nix b/pkgs/by-name/md/mdbook/package.nix index 66c14abfb1307..fa23ac200d96c 100644 --- a/pkgs/by-name/md/mdbook/package.nix +++ b/pkgs/by-name/md/mdbook/package.nix @@ -8,7 +8,7 @@ installShellFiles, }: let - version = "0.5.2"; + version = "0.5.3"; in rustPlatform.buildRustPackage rec { inherit version; @@ -18,10 +18,10 @@ rustPlatform.buildRustPackage rec { owner = "rust-lang"; repo = "mdBook"; tag = "v${version}"; - hash = "sha256-gyjD47ZR9o2lIxipzesyJ6mxb9J9W+WS77TNWhKHP6U="; + hash = "sha256-RMJQn58hshBGQSpu30NdUOb3Prywn6NfhauSzFZ35xQ="; }; - cargoHash = "sha256-230KljOUSrDy8QCQki7jvJvdAsjVlUEjKDNVyTF4tWs="; + cargoHash = "sha256-LlImOjTQjMQURQ81Gn73v+DEHXqyyiz39K9T+MrE7S0="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/me/mercurial/package.nix b/pkgs/by-name/me/mercurial/package.nix index 3ac5b2529b127..badad6378c51f 100644 --- a/pkgs/by-name/me/mercurial/package.nix +++ b/pkgs/by-name/me/mercurial/package.nix @@ -40,11 +40,11 @@ let self = python3Packages.buildPythonApplication rec { pname = "mercurial${lib.optionalString fullBuild "-full"}"; - version = "7.1.2"; + version = "7.2.2"; src = fetchurl { url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; - hash = "sha256-zie5pHZ88upJa1FGi65RL6am6vCJHkn4lh3GlLTcgco="; + hash = "sha256-8uyOfu7wUAWRcG03RVXwzrEYgiBo51+jsyvgfdIYT2w="; }; pyproject = false; @@ -56,7 +56,7 @@ let rustPlatform.fetchCargoVendor { inherit src; name = "mercurial-${version}"; - hash = "sha256-REMgZ1TiVTDbvT8TCd4EeHfYT/xMJfC4E6weLJFT6Rw="; + hash = "sha256-OGsHK3Bh47V4n+7HYpVp/jymCz1QY45rkWlAW0Hob7g="; sourceRoot = "mercurial-${version}/rust"; } else @@ -180,12 +180,6 @@ let "" } done - - # https://bz.mercurial-scm.org/show_bug.cgi?id=6887 - # Adding setuptools to the python path is not enough for the distutils - # module to be found, so we patch usage directly: - substituteInPlace tests/hghave.py \ - --replace-fail "distutils" "setuptools._distutils" ''; # This runs Mercurial _a lot_ of times. diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix index 4f48831753c48..edd39a4512003 100644 --- a/pkgs/by-name/me/meson/package.nix +++ b/pkgs/by-name/me/meson/package.nix @@ -72,11 +72,11 @@ python3.pkgs.buildPythonApplication rec { if python3.isPyPy then '' substituteInPlace mesonbuild/modules/python.py \ - --replace-fail "PythonExternalProgram('python3', mesonlib.python_command)" \ - "PythonExternalProgram('${python3.meta.mainProgram}', mesonlib.python_command)" + --replace-fail "PythonExternalProgram('python3', mesonlib.python_command" \ + "PythonExternalProgram('${python3.meta.mainProgram}', mesonlib.python_command" substituteInPlace mesonbuild/modules/python3.py \ - --replace-fail "state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, 'python3')" \ - "state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, '${python3.meta.mainProgram}')" + --replace-fail "state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, 'python3'" \ + "state.environment.lookup_binary_entry(mesonlib.MachineChoice.HOST, '${python3.meta.mainProgram}'" substituteInPlace "test cases"/*/*/*.py "test cases"/*/*/*/*.py \ --replace-quiet '#!/usr/bin/env python3' '#!/usr/bin/env pypy3' \ --replace-quiet '#! /usr/bin/env python3' '#!/usr/bin/env pypy3' @@ -141,6 +141,8 @@ python3.pkgs.buildPythonApplication rec { ++ lib.optionals python3.isPyPy [ # fails for unknown reason "test cases/python/4 custom target depends extmodule" + # we patch the path to the binary... + "test cases/common/26 find program" ] )) ++ [ diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh index a9feb15eedd31..4eac581931423 100644 --- a/pkgs/by-name/me/meson/setup-hook.sh +++ b/pkgs/by-name/me/meson/setup-hook.sh @@ -63,16 +63,22 @@ mesonCheckPhase() { flagsArray+=("--timeout-multiplier=0") fi - # Parallel checking is enabled by default. + # Parallel building is enabled by default. local buildCores=1 - if [ "${enableParallelChecking-1}" ]; then + if [ "${enableParallelBuilding-1}" ]; then buildCores="$NIX_BUILD_CORES" fi TERM=dumb ninja -j"$buildCores" $ninjaFlags "${ninjaFlagsArray[@]}" meson-test-prereq + # Parallel checking is enabled by default. + local testCores=1 + if [ "${enableParallelChecking-1}" ]; then + testCores="$NIX_BUILD_CORES" + fi + echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}" - meson test --no-rebuild --print-errorlogs --max-lines=1000000 "${flagsArray[@]}" + meson test -j"$testCores" --no-rebuild --print-errorlogs --max-lines=1000000 "${flagsArray[@]}" runHook postCheck } diff --git a/pkgs/by-name/mi/minijail/package.nix b/pkgs/by-name/mi/minijail/package.nix index c2a72c604cd7c..a00a16045076f 100644 --- a/pkgs/by-name/mi/minijail/package.nix +++ b/pkgs/by-name/mi/minijail/package.nix @@ -8,12 +8,12 @@ stdenv.mkDerivation (finalAttrs: { pname = "minijail"; - version = "2025.07.02"; + version = "2026.05.18"; src = fetchFromGitiles { url = "https://chromium.googlesource.com/chromiumos/platform/minijail"; tag = "linux-v${finalAttrs.version}"; - hash = "sha256-GRnr2O6ZpWtRDGJ6Am0XPT426Xh7wxTJsoEqyTUECYY="; + hash = "sha256-15TQnTFIx2DSdAQZPCVhBPs8a+V6YV3IrA1LqfMWcRQ="; }; buildInputs = [ libcap ]; diff --git a/pkgs/by-name/mk/mkfontscale/package.nix b/pkgs/by-name/mk/mkfontscale/package.nix index 4b3e08ccd7543..cd05454e56a0d 100644 --- a/pkgs/by-name/mk/mkfontscale/package.nix +++ b/pkgs/by-name/mk/mkfontscale/package.nix @@ -11,11 +11,11 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "mkfontscale"; - version = "1.2.3"; + version = "1.2.4"; src = fetchurl { url = "mirror://xorg/individual/app/mkfontscale-${finalAttrs.version}.tar.xz"; - hash = "sha256-KSHNw0TxrO4EvNbqHilWXBMIJjAG4TSp7jjPnJ1v514="; + hash = "sha256-oBSSoXqbbA7j+S7leIUOMFMVufKY2l8AahzUtR2wGl4="; }; strictDeps = true; diff --git a/pkgs/by-name/ml/mlt/package.nix b/pkgs/by-name/ml/mlt/package.nix index 99c8b2f995f67..85216c588e677 100644 --- a/pkgs/by-name/ml/mlt/package.nix +++ b/pkgs/by-name/ml/mlt/package.nix @@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ gdk-pixbuf - (opencv4.override { inherit ffmpeg; }) + (opencv4.override { ffmpeg-headless = ffmpeg; }) ffmpeg fftw frei0r diff --git a/pkgs/by-name/mo/moltenvk/package.nix b/pkgs/by-name/mo/moltenvk/package.nix index d39bb52b35e90..7c028f16e0f54 100644 --- a/pkgs/by-name/mo/moltenvk/package.nix +++ b/pkgs/by-name/mo/moltenvk/package.nix @@ -17,6 +17,8 @@ # but that’s not really a concern for nixpkgs, so use them by default. # See: https://github.com/KhronosGroup/MoltenVK/blob/main/README.md#metal_private_api enablePrivateAPIUsage ? true, + # TODO: Clean up on `staging` + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -35,7 +37,11 @@ stdenv.mkDerivation (finalAttrs: { vulkan-headers ]; - nativeBuildInputs = [ xcbuildHook ]; + nativeBuildInputs = [ + xcbuildHook + # TODO: Clean up on `staging` + llvmPackages.lld + ]; outputs = [ "out" @@ -114,6 +120,11 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional enablePrivateAPIUsage "-DMVK_USE_METAL_PRIVATE_API=1" ); + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + env.NIX_CFLAGS_LINK = "-fuse-ld=lld"; + env.NIX_LDFLAGS = toString [ "-lglslang" "-lSPIRV" diff --git a/pkgs/by-name/mo/mopac/package.nix b/pkgs/by-name/mo/mopac/package.nix index c5e5dacccb9ba..c70b46ded59c9 100644 --- a/pkgs/by-name/mo/mopac/package.nix +++ b/pkgs/by-name/mo/mopac/package.nix @@ -39,10 +39,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Semiempirical quantum chemistry"; homepage = "https://github.com/openmopac/mopac"; diff --git a/pkgs/by-name/mo/motioneye/package.nix b/pkgs/by-name/mo/motioneye/package.nix index 7a5ee72311ef9..a947a722d8c1d 100644 --- a/pkgs/by-name/mo/motioneye/package.nix +++ b/pkgs/by-name/mo/motioneye/package.nix @@ -2,31 +2,21 @@ lib, python3Packages, fetchFromGitHub, - fetchpatch, + versionCheckHook, }: python3Packages.buildPythonApplication rec { pname = "motioneye"; - version = "0.43.1"; + version = "0.44.0"; pyproject = true; src = fetchFromGitHub { owner = "motioneye-project"; repo = "motioneye"; tag = version; - hash = "sha256-ckOgYmOP5irjNutcC3FMZPBexn/CldG0UtFZ+tPYNJ4="; + hash = "sha256-4sXttSSkmMgsoZb7PXEXXh8KNORTSmqq4lYp3JBDmPo="; }; - patches = [ - # fix pytest - # https://github.com/motioneye-project/motioneye/pull/3271 - (fetchpatch { - url = "https://github.com/motioneye-project/motioneye/commit/41c0727e2872af1b758743c41b529e76dcac6f84.patch"; - hash = "sha256-0zDveoAN1T0SuCob0U/9GEGTh7pj2CXH/j4YrjO0VE0="; - includes = [ "conftest.py" ]; - }) - ]; - build-system = with python3Packages; [ setuptools ]; @@ -38,16 +28,24 @@ python3Packages.buildPythonApplication rec { pillow pycurl tornado + argon2-cffi ]; nativeCheckInputs = with python3Packages; [ pytestCheckHook ]; + nativeInstallCheckInputs = [ + versionCheckHook + ]; + pythonImportsCheck = [ "motioneye" ]; + versionCheckProgram = "${placeholder "out"}/bin/meyectl"; + versionCheckProgramArg = "-v"; + meta = { description = "Web frontend for the motion daemon"; homepage = "https://github.com/motioneye-project/motioneye"; diff --git a/pkgs/by-name/mp/mpb/package.nix b/pkgs/by-name/mp/mpb/package.nix index eb001a94446d7..f92f7bfeeadfc 100644 --- a/pkgs/by-name/mp/mpb/package.nix +++ b/pkgs/by-name/mp/mpb/package.nix @@ -59,8 +59,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = "export OMP_NUM_THREADS=2"; - meta = { description = "MIT Photonic-Bands: computation of photonic band structures in periodic media"; homepage = "https://mpb.readthedocs.io/en/latest/"; diff --git a/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh b/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh index be2203951c0fb..139dc932366fa 100644 --- a/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh +++ b/pkgs/by-name/mp/mpiCheckPhaseHook/mpi-check-hook.sh @@ -72,8 +72,5 @@ setupMpiCheck() { export HWLOC_XMLFILE="@topology@" ;; esac - - # Limit number of OpenMP threads. Default is "all cores". - export OMP_NUM_THREADS=1 } diff --git a/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix b/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix index e5bdc817379da..db5832c28a6e6 100644 --- a/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix +++ b/pkgs/by-name/mp/mpiCheckPhaseHook/package.nix @@ -1,8 +1,8 @@ { lib, - callPackage, makeSetupHook, stdenv, + openmpCheckPhaseHook, }: makeSetupHook { @@ -13,5 +13,9 @@ makeSetupHook { topology = ./topology.xml; }; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + meta.license = lib.licenses.mit; } ./mpi-check-hook.sh diff --git a/pkgs/by-name/ms/msgpack-cxx/package.nix b/pkgs/by-name/ms/msgpack-cxx/package.nix index 02789eb707aee..0954f22c251d6 100644 --- a/pkgs/by-name/ms/msgpack-cxx/package.nix +++ b/pkgs/by-name/ms/msgpack-cxx/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "msgpack-cxx"; - version = "7.0.0"; + version = "8.0.0"; src = fetchFromGitHub { owner = "msgpack"; repo = "msgpack-c"; tag = "cpp-${finalAttrs.version}"; - hash = "sha256-kg4mpNiigfZ59ZeL8LXEHwtkLU8Po+vgRcUcgTJd+h4="; + hash = "sha256-11eRM63rjmbIi0glwY5dEuKG9wnVOLx8VXb7CXqCbJE="; }; strictDeps = true; diff --git a/pkgs/by-name/mu/multicharge/package.nix b/pkgs/by-name/mu/multicharge/package.nix index 677b9ec7f29e3..625263e9d1632 100644 --- a/pkgs/by-name/mu/multicharge/package.nix +++ b/pkgs/by-name/mu/multicharge/package.nix @@ -80,10 +80,6 @@ stdenv.mkDerivation (finalAttrs: { echo 'set(custom-lapack_FOUND TRUE)' >> config/cmake/Findcustom-lapack.cmake ''; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Electronegativity equilibration model for atomic partial charges"; mainProgram = "multicharge"; diff --git a/pkgs/by-name/mu/mupdf/package.nix b/pkgs/by-name/mu/mupdf/package.nix index 341a839549cad..b2a097ef2b8fa 100644 --- a/pkgs/by-name/mu/mupdf/package.nix +++ b/pkgs/by-name/mu/mupdf/package.nix @@ -115,7 +115,7 @@ stdenv.mkDerivation rec { ++ lib.optionals (enableCxx || enablePython) [ (python3.pythonOnBuildForHost.withPackages (ps: [ ps.setuptools - ps.libclang + ps.clang ])) ] ++ lib.optionals enablePython [ diff --git a/pkgs/by-name/mu/murmure/package.nix b/pkgs/by-name/mu/murmure/package.nix index 8f7e93a5a90b8..a73594ade7267 100644 --- a/pkgs/by-name/mu/murmure/package.nix +++ b/pkgs/by-name/mu/murmure/package.nix @@ -70,8 +70,8 @@ rustPlatform.buildRustPackage (finalAttrs: { version src ; - fetcherVersion = 3; - hash = "sha256-BPukv+nFcXncEwRvBd5JEmUNsX3JIXYldbaOGXakhJA="; + fetcherVersion = 4; + hash = "sha256-ixBGVKYAk1FYcAayvKKJMT5v3JLjSK17ds0mrBEj850="; }; cargoRoot = "src-tauri"; diff --git a/pkgs/by-name/mu/musescore/package.nix b/pkgs/by-name/mu/musescore/package.nix index c974b2e794152..0fe03f6c388ef 100644 --- a/pkgs/by-name/mu/musescore/package.nix +++ b/pkgs/by-name/mu/musescore/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, # nativeBuildInputs cmake, @@ -35,24 +34,6 @@ nixosTests, }: -let - qt6' = qt6.overrideScope ( - self: super: { - # Fix for: https://github.com/NixOS/nixpkgs/issues/526825 - # reported upstream at: https://github.com/musescore/MuseScore/issues/33015 - qtdeclarative = super.qtdeclarative.overrideAttrs ( - new: old: { - patches = old.patches ++ [ - (fetchpatch { - url = "https://github.com/qt/qtdeclarative/commit/9d4d376726a6ce15c429128dc65b927e411e40da.patch"; - hash = "sha256-XhfliF5wZuN4/E55f8hfipIRjxBe9V7vL1cgn5p4xqA="; - }) - ]; - } - ); - } - ); -in stdenv.mkDerivation (finalAttrs: { pname = "musescore"; version = "4.7.3"; @@ -114,8 +95,8 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake - qt6'.qttools - qt6'.wrapQtAppsHook + qt6.qttools + qt6.wrapQtAppsHook ninja pkg-config ] @@ -128,12 +109,12 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ flac freetype - qt6'.qt5compat - qt6'.qtbase - qt6'.qtdeclarative - qt6'.qtnetworkauth - qt6'.qtscxml - qt6'.qtsvg + qt6.qt5compat + qt6.qtbase + qt6.qtdeclarative + qt6.qtnetworkauth + qt6.qtscxml + qt6.qtsvg lame libjack2 libogg @@ -150,7 +131,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals stdenv.hostPlatform.isLinux [ alsa-lib - qt6'.qtwayland + qt6.qtwayland ]; # Put the default, `$prefix/lib` directory to look for ffmpeg shared objects, diff --git a/pkgs/by-name/mu/music-assistant/package.nix b/pkgs/by-name/mu/music-assistant/package.nix index dc59bf61ada49..70d6420d7e860 100644 --- a/pkgs/by-name/mu/music-assistant/package.nix +++ b/pkgs/by-name/mu/music-assistant/package.nix @@ -88,11 +88,6 @@ pythonPackages.buildPythonApplication (finalAttrs: { ]; postPatch = '' - # Undo Python 3.14 only syntax - substituteInPlace music_assistant/controllers/streams/controller.py \ - --replace-fail "except BrokenPipeError, ConnectionResetError, ConnectionError:" "except (BrokenPipeError, ConnectionResetError, ConnectionError):" \ - --replace-fail "except BrokenPipeError, ConnectionResetError:" "except (BrokenPipeError, ConnectionResetError):" - substituteInPlace pyproject.toml \ --replace-fail "0.0.0" "${finalAttrs.version}" \ --replace-fail "==" ">=" diff --git a/pkgs/by-name/mu/musl/package.nix b/pkgs/by-name/mu/musl/package.nix index b13ea98e18b77..4e9ce959c31e2 100644 --- a/pkgs/by-name/mu/musl/package.nix +++ b/pkgs/by-name/mu/musl/package.nix @@ -98,6 +98,14 @@ stdenv.mkDerivation (finalAttrs: { # drop next release # https://git.musl-libc.org/cgit/musl/commit/?id=fde29c04adbab9d5b081bf6717b5458188647f1c ./stdio-skip-empty-iovec-when-buffering-is-disabled.patch + # Backport addition of statx fields needed by systemd + ./statx.patch + # Backport addition of statx attrs needed by systemd + ./statx-attr.patch + # Backport even more statx stuff for systemd + ./statx-linux-6.11.patch + # Backport addition of renameat2 syscall wrapper needed by systemd + ./renameat2.patch ]; env = { diff --git a/pkgs/by-name/mu/musl/renameat2.patch b/pkgs/by-name/mu/musl/renameat2.patch new file mode 100644 index 0000000000000..22416191d20cc --- /dev/null +++ b/pkgs/by-name/mu/musl/renameat2.patch @@ -0,0 +1,55 @@ +From 05ce67fea99ca09cd4b6625cff7aec9cc222dd5a Mon Sep 17 00:00:00 2001 +From: Tony Ambardar +Date: Mon, 6 May 2024 20:28:32 -0700 +Subject: add renameat2 linux syscall wrapper + +This syscall is available since Linux 3.15 and also implemented in +glibc from version 2.28. It is commonly used in filesystem or security +contexts. + +Constants RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are +guarded by _GNU_SOURCE as with glibc. +--- + include/stdio.h | 7 +++++++ + src/linux/renameat2.c | 11 +++++++++++ + 2 files changed, 18 insertions(+) + create mode 100644 src/linux/renameat2.c + +diff --git a/include/stdio.h b/include/stdio.h +index cb858618..4ea4c170 100644 +--- a/include/stdio.h ++++ b/include/stdio.h +@@ -158,6 +158,13 @@ char *ctermid(char *); + #define L_ctermid 20 + #endif + ++#if defined(_GNU_SOURCE) ++#define RENAME_NOREPLACE (1 << 0) ++#define RENAME_EXCHANGE (1 << 1) ++#define RENAME_WHITEOUT (1 << 2) ++ ++int renameat2(int, const char *, int, const char *, unsigned); ++#endif + + #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ + || defined(_BSD_SOURCE) +diff --git a/src/linux/renameat2.c b/src/linux/renameat2.c +new file mode 100644 +index 00000000..b8060388 +--- /dev/null ++++ b/src/linux/renameat2.c +@@ -0,0 +1,11 @@ ++#define _GNU_SOURCE ++#include ++#include "syscall.h" ++ ++int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned flags) ++{ ++#ifdef SYS_renameat ++ if (!flags) return syscall(SYS_renameat, oldfd, old, newfd, new); ++#endif ++ return syscall(SYS_renameat2, oldfd, old, newfd, new, flags); ++} +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx-attr.patch b/pkgs/by-name/mu/musl/statx-attr.patch new file mode 100644 index 0000000000000..50c2a16d433ce --- /dev/null +++ b/pkgs/by-name/mu/musl/statx-attr.patch @@ -0,0 +1,35 @@ +From cbf1c7b605d979bb7fdde8b8e6a66acdba18c6b0 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Wed, 24 Apr 2024 13:26:03 -0400 +Subject: add missing STATX_ATTR_* macros omitted when statx was added + +commit b817541f1cfd38e4b81257b3215e276ea9d0fc61 added statx and the +mask constant macros, but not the stx_attributes[_mask] ones. +--- + include/sys/stat.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 6690192d..57d640d7 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -121,6 +121,16 @@ int lchmod(const char *, mode_t); + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU + ++#define STATX_ATTR_COMPRESSED 0x4 ++#define STATX_ATTR_IMMUTABLE 0x10 ++#define STATX_ATTR_APPEND 0x20 ++#define STATX_ATTR_NODUMP 0x40 ++#define STATX_ATTR_ENCRYPTED 0x800 ++#define STATX_ATTR_AUTOMOUNT 0x1000 ++#define STATX_ATTR_MOUNT_ROOT 0x2000 ++#define STATX_ATTR_VERITY 0x100000 ++#define STATX_ATTR_DAX 0x200000 ++ + struct statx_timestamp { + int64_t tv_sec; + uint32_t tv_nsec, __pad; +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx-linux-6.11.patch b/pkgs/by-name/mu/musl/statx-linux-6.11.patch new file mode 100644 index 0000000000000..6e5564a06ef9c --- /dev/null +++ b/pkgs/by-name/mu/musl/statx-linux-6.11.patch @@ -0,0 +1,49 @@ +From fcdff46a3203400e08a2264c34b3c7fb62bf6969 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?J=2E=20Neusch=C3=A4fer?= +Date: Thu, 24 Oct 2024 01:19:30 +0200 +Subject: statx: add Linux 6.11 fields/constants + +As of Linux 6.11, these fields and mask macros have been added to +include/uapi/linux/stat.h. +--- + include/sys/stat.h | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index c924ce2f..4f7dc2b1 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -123,6 +123,8 @@ int lchmod(const char *, mode_t); + #define STATX_MNT_ID 0x1000U + #define STATX_DIOALIGN 0x2000U + #define STATX_MNT_ID_UNIQUE 0x4000U ++#define STATX_SUBVOL 0x8000U ++#define STATX_WRITE_ATOMIC 0x10000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -133,6 +135,7 @@ int lchmod(const char *, mode_t); + #define STATX_ATTR_MOUNT_ROOT 0x2000 + #define STATX_ATTR_VERITY 0x100000 + #define STATX_ATTR_DAX 0x200000 ++#define STATX_ATTR_WRITE_ATOMIC 0x400000 + + struct statx_timestamp { + int64_t tv_sec; +@@ -164,7 +167,12 @@ struct statx { + uint32_t stx_dio_mem_align; + uint32_t stx_dio_offset_align; + uint64_t stx_subvol; +- uint64_t __pad1[11]; ++ uint32_t stx_atomic_write_unit_min; ++ uint32_t stx_atomic_write_unit_max; ++ uint32_t stx_atomic_write_segments_max; ++ uint32_t __pad1[1]; ++ uint64_t __pad2[9]; ++ + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/mu/musl/statx.patch b/pkgs/by-name/mu/musl/statx.patch new file mode 100644 index 0000000000000..fd08b5303cbb2 --- /dev/null +++ b/pkgs/by-name/mu/musl/statx.patch @@ -0,0 +1,39 @@ +From 23ab04a8630225371455d5f4538fd078665bb646 Mon Sep 17 00:00:00 2001 +From: Rich Felker +Date: Fri, 13 Sep 2024 17:21:17 -0400 +Subject: statx: add new struct statx fields and corresponding mask macros + +--- + include/sys/stat.h | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/include/sys/stat.h b/include/sys/stat.h +index 57d640d7..0c10dc21 100644 +--- a/include/sys/stat.h ++++ b/include/sys/stat.h +@@ -120,6 +120,9 @@ int lchmod(const char *, mode_t); + #define STATX_BASIC_STATS 0x7ffU + #define STATX_BTIME 0x800U + #define STATX_ALL 0xfffU ++#define STATX_MNT_ID 0x1000U ++#define STATX_DIOALIGN 0x2000U ++#define STATX_MNT_ID_UNIQUE 0x4000U + + #define STATX_ATTR_COMPRESSED 0x4 + #define STATX_ATTR_IMMUTABLE 0x10 +@@ -157,7 +160,11 @@ struct statx { + uint32_t stx_rdev_minor; + uint32_t stx_dev_major; + uint32_t stx_dev_minor; +- uint64_t __pad1[14]; ++ uint64_t stx_mnt_id; ++ uint32_t stx_dio_mem_align; ++ uint32_t stx_dio_offet_align; ++ uint64_t stx_subvol; ++ uint64_t __pad1[11]; + }; + + int statx(int, const char *__restrict, int, unsigned, struct statx *__restrict); +-- +cgit v1.2.1 + diff --git a/pkgs/by-name/ne/netpbm/c23.patch b/pkgs/by-name/ne/netpbm/c23.patch deleted file mode 100644 index c7712f0ba2305..0000000000000 --- a/pkgs/by-name/ne/netpbm/c23.patch +++ /dev/null @@ -1,63 +0,0 @@ -From cde10364f1b59098fa2fbcacbdba88c7bbab4848 Mon Sep 17 00:00:00 2001 -From: Alyssa Ross -Date: Sun, 22 Feb 2026 12:06:15 +0100 -Subject: [PATCH] Remove function declarators without prototypes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -These are no longer valid in C23 — they prototype the function as -taking no arguments, and now cause compilation errors when building -for non-Glibc systems. - -getenv is part of the C standard, so should be universally present, -and getopt is part of POSIX, so conflicting prototypes should be a -thing of the past. Similar changes have been made in upstream gnulib. ---- - converter/other/fiasco/getopt.c | 3 +-- - converter/other/fiasco/getopt.h | 7 ------- - 2 files changed, 1 insertion(+), 9 deletions(-) - -diff --git a/converter/other/fiasco/getopt.c b/converter/other/fiasco/getopt.c -index 65c206c3..565fac28 100644 ---- a/converter/other/fiasco/getopt.c -+++ b/converter/other/fiasco/getopt.c -@@ -44,6 +44,7 @@ - - #include - #include -+#include - - /* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C -@@ -203,8 +204,6 @@ static char *posixly_correct; - /* Avoid depending on library functions or files - whose names are inconsistent. */ - --char *getenv (); -- - static char * - my_index (str, chr) - const char *str; -diff --git a/converter/other/fiasco/getopt.h b/converter/other/fiasco/getopt.h -index 3c735e3d..08138da4 100644 ---- a/converter/other/fiasco/getopt.h -+++ b/converter/other/fiasco/getopt.h -@@ -95,14 +95,7 @@ struct option - #define optional_argument 2 - - #if defined (__STDC__) && __STDC__ --#ifdef __GNU_LIBRARY__ --/* Many other libraries have conflicting prototypes for getopt, with -- differences in the consts, in stdlib.h. To avoid compilation -- errors, only prototype getopt for the GNU C library. */ - extern int getopt (int argc, char *const *argv, const char *shortopts); --#else /* not __GNU_LIBRARY__ */ --extern int getopt (); --#endif /* __GNU_LIBRARY__ */ - extern int getopt_long (int argc, char *const *argv, const char *shortopts, - const struct option *longopts, int *longind); - extern int getopt_long_only (int argc, char *const *argv, --- -2.52.0 - diff --git a/pkgs/by-name/ne/netpbm/package.nix b/pkgs/by-name/ne/netpbm/package.nix index f7841cfe54bf8..0b6ea0555c86a 100644 --- a/pkgs/by-name/ne/netpbm/package.nix +++ b/pkgs/by-name/ne/netpbm/package.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: { # Determine version and revision from: # https://sourceforge.net/p/netpbm/code/HEAD/log/?path=/advanced pname = "netpbm"; - version = "11.13.3"; + version = "11.14.0"; outputs = [ "bin" @@ -31,15 +31,10 @@ stdenv.mkDerivation (finalAttrs: { src = fetchsvn { url = "https://svn.code.sf.net/p/netpbm/code/advanced"; - rev = "5164"; - sha256 = "sha256-3teRW9oucwv0+V+eyLVvh8Y2NtrFoyIt1JWoC2gyVgM="; + rev = "5182"; + sha256 = "sha256-VbVN08WVXQYXlEBK1yIKj5aIWWaBhim4rQc68ViA/vA="; }; - patches = [ - # Sent to maintainer 2026-02-22. - ./c23.patch - ]; - nativeBuildInputs = [ pkg-config flex diff --git a/pkgs/by-name/ng/nghttp3/package.nix b/pkgs/by-name/ng/nghttp3/package.nix index 720cf47f0dd81..852ebfce61946 100644 --- a/pkgs/by-name/ng/nghttp3/package.nix +++ b/pkgs/by-name/ng/nghttp3/package.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "nghttp3"; - version = "1.15.0"; + version = "1.16.0"; src = fetchurl { url = "https://github.com/ngtcp2/nghttp3/releases/download/v${finalAttrs.version}/nghttp3-${finalAttrs.version}.tar.bz2"; - hash = "sha256-xsSRpSgEgUCY5EZjDm78RZr8DT2nlS/+bL3As/mbK2I="; + hash = "sha256-IsBpidVL0mbUpx817vGS1JuJBlWfFqQfO4gssCNhdGM="; }; outputs = [ diff --git a/pkgs/by-name/nu/numsa/package.nix b/pkgs/by-name/nu/numsa/package.nix index c823b92a5036a..336aef737d9f7 100644 --- a/pkgs/by-name/nu/numsa/package.nix +++ b/pkgs/by-name/nu/numsa/package.nix @@ -90,10 +90,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/by-name/oc/ocl-icd/package.nix b/pkgs/by-name/oc/ocl-icd/package.nix index 1b6fad3afa821..f5440bf9270b2 100644 --- a/pkgs/by-name/oc/ocl-icd/package.nix +++ b/pkgs/by-name/oc/ocl-icd/package.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "ocl-icd"; - version = "2.3.4"; + version = "2.3.5"; src = fetchFromGitHub { owner = "OCL-dev"; repo = "ocl-icd"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-7q5+33oWMA/PQOz6awC+LOBVTKeXNluHxDNAq8bJPYU="; + sha256 = "sha256-J7j68KlcwdlwtBo171xZd5iLWeo1suYm43G1JiFs2AE="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/op/opencl-clhpp/package.nix b/pkgs/by-name/op/opencl-clhpp/package.nix index b3b728561ade4..0ef6776ff3502 100644 --- a/pkgs/by-name/op/opencl-clhpp/package.nix +++ b/pkgs/by-name/op/opencl-clhpp/package.nix @@ -12,14 +12,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "opencl-clhpp"; - version = "2025.07.22"; + version = "2026.05.29"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-CLHPP"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - sha256 = "sha256-afiHjAhdhjtNkGggCO69MwHiQuJZb028lfpQl3HIvXw="; + sha256 = "sha256-VrI6cufrIXUizV2exKnQ5B1zjKzWsX5imp3ON39BkSw="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/op/opencl-headers/package.nix b/pkgs/by-name/op/opencl-headers/package.nix index 86ab51dc5e339..52082350a9915 100644 --- a/pkgs/by-name/op/opencl-headers/package.nix +++ b/pkgs/by-name/op/opencl-headers/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "opencl-headers"; - version = "2025.07.22"; + version = "2026.05.29"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "OpenCL-Headers"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-XcDzBt4EAsip+5/lbZwPBO7/nDGAognUkJO/2Jg4OeY="; + sha256 = "sha256-qL8lFtjj+rYTsNz9RALx3pIlugAkcwclbGW7VIiijXk="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh b/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh new file mode 100644 index 0000000000000..b3279b170360e --- /dev/null +++ b/pkgs/by-name/op/openmpCheckPhaseHook/omp-check-hook.sh @@ -0,0 +1,11 @@ +preCheckHooks+=('setupOmpCheck') +preInstallCheckHooks+=('setupOmpCheck') + + +setupOmpCheck() { + # Limit number of OpenMP threads. Default is "all cores". + # Using all cores causes high load on builders if checks are executed with NIX_BUILD_CORE parallelism. + # This gets even worse if multiple builds are scheduled on the same machine, potentially growing O(n^3) without explicit core limits. + export OMP_NUM_THREADS="${OMP_NUM_THREADS:-1}" +} + diff --git a/pkgs/by-name/op/openmpCheckPhaseHook/package.nix b/pkgs/by-name/op/openmpCheckPhaseHook/package.nix new file mode 100644 index 0000000000000..9e30609e8de5b --- /dev/null +++ b/pkgs/by-name/op/openmpCheckPhaseHook/package.nix @@ -0,0 +1,12 @@ +{ + lib, + makeSetupHook, +}: + +makeSetupHook { + name = "omp-checkPhase-hook"; + + __structuredAttrs = true; + + meta.license = lib.licenses.mit; +} ./omp-check-hook.sh diff --git a/pkgs/by-name/or/orc/package.nix b/pkgs/by-name/or/orc/package.nix index ff7b71fbb4a87..4373c742ec9cb 100644 --- a/pkgs/by-name/or/orc/package.nix +++ b/pkgs/by-name/or/orc/package.nix @@ -4,10 +4,10 @@ fetchurl, meson, ninja, - file, - docbook-xsl-nons, - gtk-doc ? null, - buildDevDoc ? gtk-doc != null, + # FIXME: hotdoc errors out due to issues discovering libclang paths + # See https://github.com/NixOS/nixpkgs/issues/514723 + hotdoc, + buildDevDoc ? false, # for passthru.tests gnuradio, @@ -18,7 +18,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "orc"; - version = "0.4.41"; + version = "0.4.42"; outputs = [ "out" @@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/orc/orc-${finalAttrs.version}.tar.xz"; - hash = "sha256-yxv9T2VSic05vARkLVl76d5UJ2I/CGHB/BnAjZhGf6I="; + hash = "sha256-fskSq1mvPMl4dMRWpWqK4e7FIMOF7ER+ihArK9EiyQw="; }; postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) '' @@ -38,7 +38,10 @@ stdenv.mkDerivation (finalAttrs: { ''; mesonFlags = [ - (lib.mesonEnable "gtk_doc" buildDevDoc) + (lib.mesonEnable "examples" false) + (lib.mesonEnable "benchmarks" false) + (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck) + (lib.mesonEnable "hotdoc" buildDevDoc) ]; nativeBuildInputs = [ @@ -46,9 +49,7 @@ stdenv.mkDerivation (finalAttrs: { ninja ] ++ lib.optionals buildDevDoc [ - gtk-doc - file - docbook-xsl-nons + hotdoc ]; # https://gitlab.freedesktop.org/gstreamer/orc/-/issues/41 @@ -77,6 +78,6 @@ stdenv.mkDerivation (finalAttrs: { bsd2 ]; platforms = lib.platforms.unix; - maintainers = [ ]; + maintainers = with lib.maintainers; [ tmarkus ]; }; }) diff --git a/pkgs/by-name/or/orioledb/extension.nix b/pkgs/by-name/or/orioledb/extension.nix new file mode 100644 index 0000000000000..c77b03cb0bb15 --- /dev/null +++ b/pkgs/by-name/or/orioledb/extension.nix @@ -0,0 +1,46 @@ +{ + curl, + fetchFromGitHub, + lib, + postgresql, + postgresqlBuildExtension, + postgresqlTestExtension, + python3, +}: + +postgresqlBuildExtension (finalAttrs: { + pname = "orioledb"; + # SQL extension version is 1.8, official version is beta16-pre-3 + version = "1.8-beta16-pre-3"; + + src = fetchFromGitHub { + owner = "orioledb"; + repo = "orioledb"; + tag = "beta16-pre-3"; + hash = "sha256-nBLyc9VFETRo75HfBSLmQ13a6Vcc9rlSCp06y/SnDqQ="; + }; + + buildInputs = postgresql.buildInputs ++ [ + curl + ]; + + nativeBuildInputs = [ + python3 + ]; + + makeFlags = [ "USE_PGXS=1" ]; + + meta = + # Inheriting maintainers from `postgresql` is only OK to do, + # because it's the orioledb-specific fork of PostgreSQL. + # Once these patches are upstreamed and the extension can + # run on stock PG, this meta section needs to be adjusted. + assert postgresql.pname == "orioledb-postgres"; + { + inherit (postgresql.meta) description maintainers; + license = lib.licenses.OR [ + lib.licenses.asl20 + lib.licenses.postgresql + ]; + }; +}) diff --git a/pkgs/by-name/or/orioledb/package.nix b/pkgs/by-name/or/orioledb/package.nix new file mode 100644 index 0000000000000..85fbfee5ab660 --- /dev/null +++ b/pkgs/by-name/or/orioledb/package.nix @@ -0,0 +1,50 @@ +{ + fetchFromGitHub, + lib, + postgresql_17, +}: + +let + orioledb-postgres = postgresql_17.overrideAttrs ( + finalAttrs: oldAttrs: { + pname = "orioledb-postgres"; + version = "17.20"; + + src = fetchFromGitHub { + owner = "orioledb"; + repo = "postgres"; + tag = "patches17_20"; + hash = "sha256-3dC00fFpD8fJDKed37oQvILMtA3GKBsWo1GEdUQzXzQ="; + }; + + # Configure extracts the patch version from the git tag. This + # is required by the extension build to verify it builds against + # the correctly patched postgresql version. + postPatch = oldAttrs.postPatch or "" + '' + substituteInPlace configure \ + --replace-fail "git describe --tags --exact-match" "echo '${finalAttrs.src.tag}'" + ''; + + # orioledb seems to have made pg_rewind extensible somehow. For that reason, + # there is now a header file in the -dev output for it. Until reported otherwise + # we'll just strip that reference to avoid a cycle between outputs. + postInstall = oldAttrs.postInstall or "" + '' + remove-references-to -t "$dev" -t "$doc" -t "$man" "$out/bin/pg_rewind" + ''; + + meta = { + inherit (oldAttrs.meta) + license + pkgConfigModules + platforms + broken + ; + description = "Cloud-native storage engine for PostgreSQL"; + maintainers = [ + lib.maintainers.wolfgangwalther + ]; + }; + } + ); +in +orioledb-postgres.withPackages (pkgs: [ (pkgs.callPackage ./extension.nix { }) ]) diff --git a/pkgs/by-name/pa/pango/package.nix b/pkgs/by-name/pa/pango/package.nix index e05febccd593d..90028c86166a8 100644 --- a/pkgs/by-name/pa/pango/package.nix +++ b/pkgs/by-name/pa/pango/package.nix @@ -25,6 +25,8 @@ buildPackages, gobject-introspection, testers, + # TODO: Clean up on `staging`. + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -58,6 +60,10 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals withIntrospection [ gi-docgen gobject-introspection + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ @@ -83,8 +89,17 @@ stdenv.mkDerivation (finalAttrs: { ]; # Fontconfig error: Cannot load default config file - env.FONTCONFIG_FILE = makeFontsConf { - fontDirectories = [ freefont_ttf ]; + env = { + FONTCONFIG_FILE = makeFontsConf { + fontDirectories = [ freefont_ttf ]; + }; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + CC_LD = "lld"; + OBJC_LD = "lld"; }; # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake) @@ -139,6 +154,8 @@ stdenv.mkDerivation (finalAttrs: { "pangofc" "pangoft2" "pangoot" + ] + ++ lib.optionals x11Support [ "pangoxft" ]; }; diff --git a/pkgs/by-name/pa/paperless-ngx/package.nix b/pkgs/by-name/pa/paperless-ngx/package.nix index 641da02e2848f..93fb9c165ce21 100644 --- a/pkgs/by-name/pa/paperless-ngx/package.nix +++ b/pkgs/by-name/pa/paperless-ngx/package.nix @@ -3,10 +3,12 @@ stdenv, fetchFromGitHub, fetchPypi, + fetchpatch, callPackage, nixosTests, gettext, - python3, + # tests fail and eventually lock up on 3.14 + python313Packages, ghostscript_headless, imagemagickBig, jbig2enc, @@ -42,13 +44,10 @@ let ocrmypdf = prev.ocrmypdf_16.override { tesseract = tesseract5; }; }; - python = python3.override { - self = python; - packageOverrides = lib.composeManyExtensions [ - defaultPythonPackageOverrides - extraPythonPackageOverrides - ]; - }; + pythonPackages = python313Packages.overrideScope ( + final: prev: + lib.composeManyExtensions [ defaultPythonPackageOverrides extraPythonPackageOverrides ] final prev + ); path = lib.makeBinPath [ ghostscript_headless @@ -70,7 +69,7 @@ let ]; }; in -python.pkgs.buildPythonApplication (finalAttrs: { +pythonPackages.buildPythonApplication (finalAttrs: { pname = "paperless-ngx"; pyproject = true; @@ -83,6 +82,15 @@ python.pkgs.buildPythonApplication (finalAttrs: { hash = "sha256-Czh4Knel0IIHsTc3kEnp1153Kv+3721GRCbTYTkeCDg="; }; + patches = [ + # fix tests with latest filelock + (fetchpatch { + url = "https://github.com/paperless-ngx/paperless-ngx/commit/5e1202a4168fbc8e36f816f36eb16dd7636e9d9c.diff"; + includes = [ "src/*" ]; + hash = "sha256-ZDC+T4DyOBBV8SCw8xyeYGua1XOhiP7eoZthnSE/Fkk="; + }) + ]; + postPatch = '' # pytest-xdist with to many threads makes the tests flaky if (( $NIX_BUILD_CORES > 3)); then @@ -93,7 +101,7 @@ python.pkgs.buildPythonApplication (finalAttrs: { --replace-fail '--maxprocesses=16' "--numprocesses=$NIX_BUILD_CORES" ''; - build-system = [ python.pkgs.setuptools ]; + build-system = [ pythonPackages.setuptools ]; nativeBuildInputs = [ gettext @@ -114,10 +122,11 @@ python.pkgs.buildPythonApplication (finalAttrs: { # requested by maintainer "imap-tools" "ocrmypdf" + "filelock" ]; dependencies = - with python.pkgs; + with pythonPackages; [ babel bleach @@ -183,18 +192,18 @@ python.pkgs.buildPythonApplication (finalAttrs: { postBuild = '' # Compile manually because `pythonRecompileBytecodeHook` only works # for files in `python.sitePackages` - ${python.pythonOnBuildForHost.interpreter} -OO -m compileall src + ${pythonPackages.python.pythonOnBuildForHost.interpreter} -OO -m compileall src # Collect static files - ${python.pythonOnBuildForHost.interpreter} src/manage.py collectstatic --clear --no-input + ${pythonPackages.python.pythonOnBuildForHost.interpreter} src/manage.py collectstatic --clear --no-input # Compile string translations using gettext - ${python.pythonOnBuildForHost.interpreter} src/manage.py compilemessages + ${pythonPackages.python.pythonOnBuildForHost.interpreter} src/manage.py compilemessages ''; installPhase = let - pythonPath = python.pkgs.makePythonPath finalAttrs.passthru.dependencies; + pythonPath = pythonPackages.makePythonPath finalAttrs.passthru.dependencies; in '' runHook preInstall @@ -206,7 +215,7 @@ python.pkgs.buildPythonApplication (finalAttrs: { makeWrapper $out/lib/paperless-ngx/src/manage.py $out/bin/paperless-ngx \ --prefix PYTHONPATH : "${pythonPath}" \ --prefix PATH : "${path}" - makeWrapper ${lib.getExe python.pkgs.celery} $out/bin/celery \ + makeWrapper ${lib.getExe pythonPackages.celery} $out/bin/celery \ --prefix PYTHONPATH : "${pythonPath}:$out/lib/paperless-ngx/src" \ --prefix PATH : "${path}" @@ -218,7 +227,7 @@ python.pkgs.buildPythonApplication (finalAttrs: { find $out/lib/paperless-ngx -type d -name tests -exec rm -rv {} + ''; - nativeCheckInputs = with python.pkgs; [ + nativeCheckInputs = with pythonPackages; [ daphne factory-boy imagehash @@ -286,9 +295,9 @@ python.pkgs.buildPythonApplication (finalAttrs: { inherit nltkDataDir path - python tesseract5 ; + inherit (pythonPackages) python; tests = { inherit (nixosTests) paperless; }; updateScript = nix-update-script { extraArgs = [ diff --git a/pkgs/by-name/pc/pcsclite/package.nix b/pkgs/by-name/pc/pcsclite/package.nix index c4d14fe7a1376..271bf0fdd1214 100644 --- a/pkgs/by-name/pc/pcsclite/package.nix +++ b/pkgs/by-name/pc/pcsclite/package.nix @@ -88,6 +88,10 @@ stdenv.mkDerivation (finalAttrs: { moveToOutput bin/pcsc-spy "$dev" ''; + __structuredAttrs = true; + separateDebugInfo = true; + strictDeps = true; + nativeBuildInputs = [ meson ninja diff --git a/pkgs/by-name/pg/pgcopydb/package.nix b/pkgs/by-name/pg/pgcopydb/package.nix index 906bab8156dc1..f9ba308e0b303 100644 --- a/pkgs/by-name/pg/pgcopydb/package.nix +++ b/pkgs/by-name/pg/pgcopydb/package.nix @@ -17,13 +17,13 @@ clangStdenv.mkDerivation (finalAttrs: { pname = "pgcopydb"; - version = "0.17"; + version = "0.17-unstable-2026-05-21"; src = fetchFromGitHub { owner = "dimitri"; repo = "pgcopydb"; - tag = "v${finalAttrs.version}"; - hash = "sha256-g5MC4F0BYgTimpJZDX+PepFLXv1QuH7XGlzV66xM11M="; + rev = "984269274ccdaf0d297ed82db635e6746be55b75"; + hash = "sha256-qTtziRdsge4YtQTTfWQ5KD8SQn2HYnj3rDMcrbI56SY="; }; nativeBuildInputs = [ @@ -31,18 +31,11 @@ clangStdenv.mkDerivation (finalAttrs: { postgresql.pg_config ]; - buildInputs = [ + buildInputs = postgresql.buildInputs ++ [ boehmgc - libkrb5 - openssl postgresql - readline sqlite - zlib python3Packages.sphinxHook - ] - ++ lib.optionals clangStdenv.hostPlatform.isLinux [ - pam ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/by-name/pi/picard/package.nix b/pkgs/by-name/pi/picard/package.nix index db9009ebaedf5..51336472ded04 100644 --- a/pkgs/by-name/pi/picard/package.nix +++ b/pkgs/by-name/pi/picard/package.nix @@ -45,17 +45,13 @@ pythonPackages.buildPythonApplication (finalAttrs: { ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform qt5.qtwayland) [ qt5.qtwayland ] - ++ lib.optionals (pyqt5.multimediaEnabled) ( - [ - qt5.qtmultimedia.bin - gst_all_1.gst-libav - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - ] - ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform gst_all_1.gst-vaapi) [ - gst_all_1.gst-vaapi - ] - ); + ++ lib.optionals (pyqt5.multimediaEnabled) [ + qt5.qtmultimedia.bin + gst_all_1.gst-libav + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + ]; pythonRelaxDeps = lib.optionals stdenv.hostPlatform.isDarwin [ # Should be resolved in the next version diff --git a/pkgs/by-name/pi/pipeline/package.nix b/pkgs/by-name/pi/pipeline/package.nix index ffd0e38f62a7c..32e6e5e887b6e 100644 --- a/pkgs/by-name/pi/pipeline/package.nix +++ b/pkgs/by-name/pi/pipeline/package.nix @@ -74,7 +74,6 @@ stdenv.mkDerivation (finalAttrs: { gst_all_1.gst-plugins-good gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly - gst_all_1.gst-vaapi glib-networking # For GIO_EXTRA_MODULES. Fixes "TLS support is not available" ]; diff --git a/pkgs/by-name/pi/pipewire/package.nix b/pkgs/by-name/pi/pipewire/package.nix index 7a9de59f709d1..c2ec4a841043a 100644 --- a/pkgs/by-name/pi/pipewire/package.nix +++ b/pkgs/by-name/pi/pipewire/package.nix @@ -52,7 +52,6 @@ fdk_aac, libopus, ldacbt, - libldac-dec, spandsp, modemmanager, libpulseaudio, @@ -74,7 +73,6 @@ x11Support && lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform && lib.meta.availableOn stdenv.hostPlatform ffado, - ldacBtDecodeSupport ? false, ffado, libselinux, libebur128, @@ -90,7 +88,7 @@ in stdenv.mkDerivation (finalAttrs: { pname = "pipewire"; - version = "1.6.5"; + version = "1.6.7"; outputs = [ "out" @@ -106,7 +104,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "pipewire"; repo = "pipewire"; tag = finalAttrs.version; - hash = "sha256-ui5VTbSiobHmPUHW4jLguoeMWaKT4f2eTqdo3ZGgvNI="; + hash = "sha256-DSW9ho+NLikW/stlxvHLhRguMZy/4b7VEcC938ObJmQ="; }; patches = [ @@ -176,7 +174,6 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional webrtcAudioProcessingSupport webrtc-audio-processing ++ lib.optional stdenv.hostPlatform.isLinux alsa-lib ++ lib.optional ldacbtSupport ldacbt - ++ lib.optional (ldacBtDecodeSupport && ldacbtSupport) libldac-dec ++ lib.optional libcameraSupport libcamera ++ lib.optional zeroconfSupport avahi ++ lib.optional raopSupport openssl @@ -245,7 +242,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "bluez5-codec-lc3plus" false) (lib.mesonEnable "bluez5-codec-lc3" bluezSupport) (lib.mesonEnable "bluez5-codec-ldac" (bluezSupport && ldacbtSupport)) - (lib.mesonEnable "bluez5-codec-ldac-dec" (bluezSupport && ldacbtSupport && ldacBtDecodeSupport)) + (lib.mesonEnable "bluez5-codec-ldac-dec" (bluezSupport && ldacbtSupport)) (lib.mesonEnable "opus" true) (lib.mesonOption "sysconfdir" "/etc") (lib.mesonEnable "raop" raopSupport) diff --git a/pkgs/by-name/pi/pixman/package.nix b/pkgs/by-name/pi/pixman/package.nix index 367fa018c8604..23755586fe6c1 100644 --- a/pkgs/by-name/pi/pixman/package.nix +++ b/pkgs/by-name/pi/pixman/package.nix @@ -6,6 +6,7 @@ ninja, pkg-config, libpng, + openmpCheckPhaseHook, glib, # just passthru # for passthru.tests @@ -46,6 +47,7 @@ stdenv.mkDerivation (finalAttrs: { meson ninja pkg-config + openmpCheckPhaseHook __flattenIncludeHackHook ]; @@ -61,11 +63,6 @@ stdenv.mkDerivation (finalAttrs: { "-Dneon=disabled" ]; - preConfigure = '' - # https://gitlab.freedesktop.org/pixman/pixman/-/issues/62 - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 184 ? 184 : NIX_BUILD_CORES)) - ''; - enableParallelBuilding = true; doCheck = !stdenv.hostPlatform.isDarwin; diff --git a/pkgs/by-name/pl/platformio-core/package.nix b/pkgs/by-name/pl/platformio-core/package.nix index f335bbe37d0d0..13412ef77db56 100644 --- a/pkgs/by-name/pl/platformio-core/package.nix +++ b/pkgs/by-name/pl/platformio-core/package.nix @@ -24,7 +24,12 @@ let hash = "sha256-l5pEhv8D6jRlU24SlsGQEkXda/b7KUdP9mAqrZCbl38="; }; - propagatedBuildInputs = with python3.pkgs; [ packaging ]; + dependencies = with python3.pkgs; [ packaging ]; + + disabledTests = [ + # 'year must be in 1..9999, not 292278994' instead of 'out of range' + "test_from_timestamp_with_overflow_value" + ]; }); }; }; diff --git a/pkgs/by-name/pr/prek/package.nix b/pkgs/by-name/pr/prek/package.nix index 32b40a198cfdd..7d791d9cd57e2 100644 --- a/pkgs/by-name/pr/prek/package.nix +++ b/pkgs/by-name/pr/prek/package.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "prek"; - version = "0.3.11"; + version = "0.4.4"; src = fetchFromGitHub { owner = "j178"; repo = "prek"; tag = "v${finalAttrs.version}"; - hash = "sha256-Vd4XmO+Z0Zs5kE/PMesnr6q+JUz+DGXWKVoHsPZPKwM="; + hash = "sha256-PAEmRQ5Vro83fkegOWsdY59U7WAQxBPSEalzxZV6K4o="; }; - cargoHash = "sha256-AggCANaSMeKftOlan8TpgLgpYgaLCpYBBbBOeLKCCVo="; + cargoHash = "sha256-EmlR6Lmt5XR0uS/y3FqY5yGNeVBSdtLtEGH9jZLcP2o="; nativeBuildInputs = [ installShellFiles diff --git a/pkgs/by-name/pr/pretalx/package.nix b/pkgs/by-name/pr/pretalx/package.nix index 7098f3975c295..443cf72da8800 100644 --- a/pkgs/by-name/pr/pretalx/package.nix +++ b/pkgs/by-name/pr/pretalx/package.nix @@ -1,9 +1,11 @@ { lib, - buildNpmPackage, gettext, python314, fetchFromGitHub, + fetchNpmDeps, + npmHooks, + nodejs, plugins ? [ ], nixosTests, }: @@ -15,69 +17,42 @@ let django = prev.django_6; }; }; +in +python.pkgs.buildPythonApplication (finalAttrs: { + pname = "pretalx"; + version = "2026.2.1"; + pyproject = true; - version = "2026.1.2"; + __structuredAttrs = true; src = fetchFromGitHub { owner = "pretalx"; repo = "pretalx"; - tag = "v${version}"; - hash = "sha256-/hs2sPeHyv06aXfUn7UdaGJo9UQ2hah/nufSxG+wO5Q="; + tag = "v${finalAttrs.version}"; + hash = "sha256-dsnnr9/G8i5vfcinRiqpGv1ce90LwW7Esj/SrTK1Ov4="; }; - meta = { - description = "Conference planning tool: CfP, scheduling, speaker management"; - mainProgram = "pretalx-manage"; - homepage = "https://github.com/pretalx/pretalx"; - changelog = "https://docs.pretalx.org/changelog/v${version}/"; - license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ - hexa - SuperSandro2000 - ]; - platforms = lib.platforms.linux; + npmRoot = "src/pretalx/frontend"; + npmDeps = fetchNpmDeps { + inherit (finalAttrs) pname version; + src = "${finalAttrs.src}/src/pretalx/frontend"; + hash = "sha256-wWGNvUT9SFIm/Gfl8wuOe9xTn1QqH6JWoOIHTiSg0rQ="; }; - pretix-schedule-editor = buildNpmPackage { - pname = "pretalx-schedule-editor"; - inherit version src; - - sourceRoot = "${src.name}/src/pretalx/frontend/schedule-editor"; - - npmDepsHash = "sha256-66PA2COL3lqMspYGoF/bOJje5URRu1voQbZspM7DTxs="; - - npmBuildScript = "build"; - - installPhase = '' - runHook preInstall - - mkdir -p $out - cp dist/** $out/ - - runHook postInstall - ''; - - inherit meta; - }; -in -python.pkgs.buildPythonApplication rec { - pname = "pretalx"; - inherit version src; - pyproject = true; - outputs = [ "out" "static" ]; - patches = [ - # don't run npm during rebuild command, we already use a separate derivation - # to build static assets - ./rebuild-no-npm.patch - ]; + postPatch = '' + # we already provide npm deps + sed -i "/npm.*ci/d" src/pretalx/_build.py + ''; nativeBuildInputs = [ gettext + npmHooks.npmConfigHook + nodejs ]; build-system = with python.pkgs; [ @@ -137,6 +112,7 @@ python.pkgs.buildPythonApplication rec { publicsuffixlist python-dateutil qrcode + redis reportlab requests rules @@ -154,16 +130,10 @@ python.pkgs.buildPythonApplication rec { postgres = with python.pkgs; [ psycopg2 ]; - redis = with python.pkgs; [ - redis - ]; }; - postBuild = '' - # link schedule-editor so it can be picked up in staticfiles lookups - ln -s ${pretix-schedule-editor}/** ./src/pretalx/static/ - - # Generate all static files, see https://docs.pretalx.org/administrator/commands.html#python-m-pretalx-rebuild + # Generate all static files and translations, see + # https://docs.pretalx.org/administrator/commands.html#python-m-pretalx-rebuild PYTHONPATH=$PYTHONPATH:./src python -m pretalx rebuild ''; @@ -174,7 +144,6 @@ python.pkgs.buildPythonApplication rec { # Copy and merge static files mkdir -p $static cp -r ./src/static.dist/** $static/ - cp -r ${pretix-schedule-editor}/** $static/ # And link them into the package for staticfiles lookups rm -rf $out/${python.sitePackages}/pretalx/static @@ -200,7 +169,7 @@ python.pkgs.buildPythonApplication rec { pytestCheckHook responses ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; disabledTests = [ # assert 'tests.dummy_app' in ['pretalx_pages'] @@ -220,5 +189,16 @@ python.pkgs.buildPythonApplication rec { ); }; - inherit meta; -} + meta = { + description = "Conference planning tool: CfP, scheduling, speaker management"; + mainProgram = "pretalx-manage"; + homepage = "https://github.com/pretalx/pretalx"; + changelog = "https://docs.pretalx.org/changelog/v${finalAttrs.version}/"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ + hexa + SuperSandro2000 + ]; + platforms = lib.platforms.linux; + }; +}) diff --git a/pkgs/by-name/pr/pretalx/rebuild-no-npm.patch b/pkgs/by-name/pr/pretalx/rebuild-no-npm.patch deleted file mode 100644 index 0ca15e4fbd7c0..0000000000000 --- a/pkgs/by-name/pr/pretalx/rebuild-no-npm.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/src/pretalx/common/management/commands/rebuild.py b/src/pretalx/common/management/commands/rebuild.py -index b7412498f..f9e2e24c3 100644 ---- a/src/pretalx/common/management/commands/rebuild.py -+++ b/src/pretalx/common/management/commands/rebuild.py -@@ -57,16 +57,6 @@ def handle(self, *args, **options): - call_command( - "collectstatic", verbosity=silent, interactive=False, clear=options["clear"] - ) -- with override_settings(VITE_IGNORE=True): -- frontend_dir = ( -- Path(__file__).parent.parent.parent.parent / "frontend/schedule-editor/" -- ) -- env = os.environ.copy() -- env["OUT_DIR"] = str(settings.STATIC_ROOT) -- env["BASE_URL"] = settings.STATIC_URL -- if options["npm_install"] or not (frontend_dir / "node_modules").exists(): -- subprocess.check_call(["npm", "ci"], cwd=frontend_dir) # noqa: S607 -- npm is commonly installed in user paths -- subprocess.check_call(["npm", "run", "build"], cwd=frontend_dir, env=env) # noqa: S607 -- npm is commonly installed in user paths - - # This fails if we don't have db access, which is fine - with suppress(Exception): diff --git a/pkgs/by-name/pr/pretix-banktool/package.nix b/pkgs/by-name/pr/pretix-banktool/package.nix index 00634df8a597b..f962b749a55b0 100644 --- a/pkgs/by-name/pr/pretix-banktool/package.nix +++ b/pkgs/by-name/pr/pretix-banktool/package.nix @@ -4,14 +4,7 @@ fetchFromGitHub, }: -let - pythonPackages = python3Packages.overrideScope ( - self: super: { - fints = self.fints_4; - } - ); -in -pythonPackages.buildPythonApplication (finalAttrs: { +python3Packages.buildPythonApplication (finalAttrs: { pname = "pretix-banktool"; version = "1.1.0"; pyproject = true; @@ -23,15 +16,17 @@ pythonPackages.buildPythonApplication (finalAttrs: { hash = "sha256-x6P+WqrOak5/gmMEmBkHrx6kPsbSOAXbKRbndFG3IJU="; }; - build-system = with pythonPackages; [ setuptools ]; + build-system = with python3Packages; [ setuptools ]; - dependencies = with pythonPackages; [ + dependencies = with python3Packages; [ click fints requests mt-940 ]; + pythonRelaxDeps = [ "fints" ]; + doCheck = false; # no tests pythonImportsCheck = [ "pretix_banktool" ]; diff --git a/pkgs/by-name/pr/pretix/package.nix b/pkgs/by-name/pr/pretix/package.nix index 22f3855b68e99..b16dc8903405c 100644 --- a/pkgs/by-name/pr/pretix/package.nix +++ b/pkgs/by-name/pr/pretix/package.nix @@ -17,6 +17,7 @@ let python = python3.override { self = python; packageOverrides = self: super: { + chardet = super.chardet_5; django = super.django_5; django-oauth-toolkit = super.django-oauth-toolkit.overridePythonAttrs (oldAttrs: rec { diff --git a/pkgs/by-name/pr/prusa-slicer/catch2_3_15.patch b/pkgs/by-name/pr/prusa-slicer/catch2_3_15.patch new file mode 100644 index 0000000000000..a0119cbd6809d --- /dev/null +++ b/pkgs/by-name/pr/prusa-slicer/catch2_3_15.patch @@ -0,0 +1,32 @@ +From 8abf7e1b707adf145d7434dbf53ad14c9c7cccd3 Mon Sep 17 00:00:00 2001 +From: Andreas Schneider +Date: Fri, 12 Jun 2026 18:20:39 +0200 +Subject: [PATCH] Fix build with Catch2 v3: include + catch_interfaces_capture.hpp +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Catch::getResultCapture() requires an explicit include of + in Catch2 v3, +which was not previously included. + +tests/sla_print/sla_test_utils.cpp:87:32: error: ‘getResultCapture’ is not a member of ‘Catch’ + m.WriteOBJFile((Catch::getResultCapture().getCurrentTestName() + "_" + + ^~~~~~~~~~~~~~~~ +--- + tests/sla_print/sla_test_utils.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/sla_print/sla_test_utils.cpp b/tests/sla_print/sla_test_utils.cpp +index 01eb222969c..c9355ca8e91 100644 +--- a/tests/sla_print/sla_test_utils.cpp ++++ b/tests/sla_print/sla_test_utils.cpp +@@ -5,6 +5,7 @@ + #include "libslic3r/SLA/BranchingTreeSLA.hpp" + + #include ++#include + + void test_support_model_collision( + const std::string &obj_filename, diff --git a/pkgs/by-name/pr/prusa-slicer/package.nix b/pkgs/by-name/pr/prusa-slicer/package.nix index 5292f59478b99..1936fdf88a8a4 100644 --- a/pkgs/by-name/pr/prusa-slicer/package.nix +++ b/pkgs/by-name/pr/prusa-slicer/package.nix @@ -80,6 +80,9 @@ clangStdenv.mkDerivation (finalAttrs: { ./allow_wayland.patch # Pick https://github.com/prusa3d/PrusaSlicer/pull/14207 to remove unused and insecure ilmbase dependency ./no-ilmbase.patch + # catch2 3.15 support + # https://github.com/prusa3d/PrusaSlicer/pull/15462 + ./catch2_3_15.patch ]; # (not applicable to super-slicer fork) diff --git a/pkgs/by-name/py/pympress/package.nix b/pkgs/by-name/py/pympress/package.nix index 288ea438fb5de..55a6b40b82cb3 100644 --- a/pkgs/by-name/py/pympress/package.nix +++ b/pkgs/by-name/py/pympress/package.nix @@ -56,7 +56,6 @@ python3Packages.buildPythonApplication (finalAttrs: { gst_all_1.gst-plugins-ugly (gst_all_1.gst-plugins-good.override { gtkSupport = true; }) gst_all_1.gst-libav - gst_all_1.gst-vaapi ]; doCheck = false; # there are no tests diff --git a/pkgs/by-name/qe/qemu/package.nix b/pkgs/by-name/qe/qemu/package.nix index 5bd6c6e0f8c7b..80362ffd67575 100644 --- a/pkgs/by-name/qe/qemu/package.nix +++ b/pkgs/by-name/qe/qemu/package.nix @@ -123,6 +123,9 @@ minimal ? toolsOnly || userOnly, gitUpdater, qemu-utils, # for tests attribute + + # TODO: Clean up on `staging`. + llvmPackages, }: assert lib.assertMsg ( @@ -180,6 +183,9 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals hexagonSupport [ glib ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.sigtool + + # TODO: Clean up on `staging`. + llvmPackages.lld ] ++ lib.optionals (!userOnly) [ dtc ]; @@ -425,6 +431,10 @@ stdenv.mkDerivation (finalAttrs: { ln -s $out/bin/qemu-system-${stdenv.hostPlatform.qemuArch} $out/bin/qemu-kvm ''; + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; + passthru = { qemu-system-i386 = "bin/qemu-system-i386"; tests = lib.optionalAttrs (!toolsOnly) { diff --git a/pkgs/by-name/rh/rhash/package.nix b/pkgs/by-name/rh/rhash/package.nix index adb2c682ce6d2..e8ef05814fee6 100644 --- a/pkgs/by-name/rh/rhash/package.nix +++ b/pkgs/by-name/rh/rhash/package.nix @@ -29,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = [ "--ar=${stdenv.cc.targetPrefix}ar" "--target=${stdenv.hostPlatform.config}" + "--disable-shani" (lib.enableFeature enableStatic "static") (lib.enableFeature enableStatic "lib-static") ]; diff --git a/pkgs/by-name/rs/rsync/package.nix b/pkgs/by-name/rs/rsync/package.nix index cdeec0aac5a8b..4a067d7d21f2b 100644 --- a/pkgs/by-name/rs/rsync/package.nix +++ b/pkgs/by-name/rs/rsync/package.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-vYjPgvplPaMjFPsikTZAfFyQ+A0XWNj0sJF2eHfY+pY="; }; - patches = lib.optionals (stdenv.hostPlatform.isDarwin) [ + patches = [ # Fixes test failure on darwin (fetchpatch { url = "https://github.com/RsyncProject/rsync/commit/e1c5f0e93a75dd45f32f3b92ba221ef158ac2e5f.patch"; diff --git a/pkgs/by-name/ru/rust-cbindgen/package.nix b/pkgs/by-name/ru/rust-cbindgen/package.nix index 88bb855e800b0..c6e5427f80c2f 100644 --- a/pkgs/by-name/ru/rust-cbindgen/package.nix +++ b/pkgs/by-name/ru/rust-cbindgen/package.nix @@ -14,16 +14,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "rust-cbindgen"; - version = "0.29.3"; + version = "0.29.4"; src = fetchFromGitHub { owner = "mozilla"; repo = "cbindgen"; rev = "v${finalAttrs.version}"; - hash = "sha256-d0rY7Sk37s8HEZlQq9Sbjj1P+DgygD0Yjx8cXlFKEIA="; + hash = "sha256-leeHOwpzXuzg2cTjXehBnCsS+dvU4eIIFtWKeCee20U="; }; - cargoHash = "sha256-UeierkQpfCiB5ES9ZW9hO+0AcI9Ip8qSJ/Nd+I1xrmQ="; + cargoHash = "sha256-f6YoDoiVoh0BVPYHFO1FsdI4OCsF+LY72QaD57StdIQ="; nativeCheckInputs = [ cmake diff --git a/pkgs/by-name/sc/scribus/package.nix b/pkgs/by-name/sc/scribus/package.nix index faba5541389b8..54637d7c13320 100644 --- a/pkgs/by-name/sc/scribus/package.nix +++ b/pkgs/by-name/sc/scribus/package.nix @@ -3,6 +3,7 @@ cairo, cmake, cups, + fetchpatch, fetchurl, fontconfig, freetype, @@ -39,11 +40,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "scribus"; - version = "1.7.2"; + version = "1.7.3"; src = fetchurl { url = "mirror://sourceforge/scribus/scribus-devel/scribus-${finalAttrs.version}.tar.xz"; - hash = "sha256-nY4RzGusLNlsVTnvvXGSIv9/cOHBhZcogNn7MFHhONA="; + hash = "sha256-iC7lXKRJfALE4F8wrMaJ6h9IXC6AI8nrKT9RwsW+Bq0="; }; nativeBuildInputs = [ @@ -96,6 +97,32 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "WANT_GRAPHICSMAGICK" true) ]; + patches = [ + (fetchpatch { + name = "fix-build-with-poppler-26.05.0.patch"; + url = "https://github.com/scribusproject/scribus/commit/14a287fc1db2a44abfe1743260554447b31b4adf.patch"; + hash = "sha256-bhxnyL5zWVCjkfkW67CPykLW/uqDP+n3djnRKGMyhjw="; + }) + (fetchpatch { + # required for the next patch to apply cleanly + url = "https://github.com/scribusproject/scribus/commit/3aed8aa40d01d1affd2b55b107b48878d4b06eab.patch"; + includes = [ "scribus/plugins/import/pdf/importpdf.cpp" ]; + hash = "sha256-tiGXGW8CnG0Tj5YaimngelvNvO3CCSa5eXc3bSKJD54="; + }) + (fetchpatch { + name = "fix-build-with-poppler-26.06.0.patch"; + url = "https://github.com/scribusproject/scribus/commit/2b9405a00a96a09e0183190ddc9f83d44963d4e0.patch"; + hash = "sha256-4v+Ba+JODwNg4YLmwpFeBfIxk1j+RcZdtznPFeQ+H+w="; + }) + ]; + + postPatch = '' + # revert non-whitespace changes made by the second patch, i.e., + # https://github.com/scribusproject/scribus/commit/3aed8aa40d01d1affd2b55b107b48878d4b06eab + substituteInPlace scribus/plugins/import/pdf/importpdf.cpp \ + --replace-fail 'QSizeF()' '"Custom"' + ''; + preFixup = '' qtWrapperArgs+=( --prefix XDG_DATA_DIRS : "${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}" diff --git a/pkgs/by-name/sd/sdl2-compat/package.nix b/pkgs/by-name/sd/sdl2-compat/package.nix index 5b6376cd9538b..5317a4dc030a5 100644 --- a/pkgs/by-name/sd/sdl2-compat/package.nix +++ b/pkgs/by-name/sd/sdl2-compat/package.nix @@ -30,13 +30,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "sdl2-compat"; - version = "2.32.68"; + version = "2.32.70"; src = fetchFromGitHub { owner = "libsdl-org"; repo = "sdl2-compat"; tag = "release-${finalAttrs.version}"; - hash = "sha256-66AHlsl53q9efRqZOzI4JiUbaGByrSMoQFj3K7udTsQ="; + hash = "sha256-IKfcF03I+kCewjdEcw7ANd6sCZvjNksIhBfJan9SSUY="; }; nativeBuildInputs = [ @@ -64,6 +64,7 @@ stdenv.mkDerivation (finalAttrs: { cmakeFlags = [ (lib.cmakeBool "SDL2COMPAT_TESTS" finalAttrs.finalPackage.doCheck) (lib.cmakeFeature "CMAKE_INSTALL_RPATH" (lib.makeLibraryPath [ sdl3' ])) + (lib.cmakeFeature "CMAKE_BUILD_RPATH" (lib.makeLibraryPath [ sdl3' ])) ]; # skip timing-based tests as those are flaky diff --git a/pkgs/by-name/sd/sdl3/package.nix b/pkgs/by-name/sd/sdl3/package.nix index f5814d3f91b8e..aea62e081629f 100644 --- a/pkgs/by-name/sd/sdl3/package.nix +++ b/pkgs/by-name/sd/sdl3/package.nix @@ -61,6 +61,9 @@ vulkanSupport ? true, waylandSupport ? stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isAndroid, x11Support ? !stdenv.hostPlatform.isAndroid && !stdenv.hostPlatform.isWindows, + + # TODO: Clean up on `staging`. + llvmPackages, }: assert lib.assertMsg ( @@ -127,7 +130,8 @@ stdenv.mkDerivation (finalAttrs: { ninja validatePkgConfig ] - ++ lib.optional waylandSupport wayland-scanner; + ++ lib.optional waylandSupport wayland-scanner + ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.lld; buildInputs = lib.optionals libusbSupport [ @@ -207,6 +211,10 @@ stdenv.mkDerivation (finalAttrs: { && !(stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isAndroid) && !(x11Support || waylandSupport) )) + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ]; doCheck = true; diff --git a/pkgs/by-name/se/seatd/package.nix b/pkgs/by-name/se/seatd/package.nix index 7c11389a81c5d..759ac9650f53a 100644 --- a/pkgs/by-name/se/seatd/package.nix +++ b/pkgs/by-name/se/seatd/package.nix @@ -6,8 +6,8 @@ pkg-config, scdoc, stdenv, - systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, - systemd, + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, + systemdLibs, nixosTests, }: @@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: { scdoc ]; - buildInputs = lib.optionals systemdSupport [ systemd ]; + buildInputs = lib.optionals systemdSupport [ systemdLibs ]; mesonFlags = [ "-Dlibseat-logind=${if systemdSupport then "systemd" else "disabled"}" diff --git a/pkgs/by-name/si/siyuan/package.nix b/pkgs/by-name/si/siyuan/package.nix index 9abb265a43ccb..50f578ed3205e 100644 --- a/pkgs/by-name/si/siyuan/package.nix +++ b/pkgs/by-name/si/siyuan/package.nix @@ -95,8 +95,8 @@ stdenv.mkDerivation (finalAttrs: { sourceRoot ; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-4yqTBR8gv5q6uyuDq7Bgs1275YBQ87aaTYkNFtamVek="; + fetcherVersion = 4; + hash = "sha256-1QIGx0Zm6v4FIR1EYgXQzmBMZBa9Bi24vouT1K6v9EQ="; }; sourceRoot = "${finalAttrs.src.name}/app"; diff --git a/pkgs/by-name/so/socat/package.nix b/pkgs/by-name/so/socat/package.nix index 40f1308046a3b..40cf1ef10dcc0 100644 --- a/pkgs/by-name/so/socat/package.nix +++ b/pkgs/by-name/so/socat/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "socat"; - version = "1.8.1.1"; + version = "1.8.1.3"; src = fetchurl { url = "http://www.dest-unreach.org/socat/download/socat-${version}.tar.bz2"; - hash = "sha256-Xrxja39CcFP5iAZpZSFlOmFMfgZGSRA1PL9U4jJ63Bs="; + hash = "sha256-JbxkdikrLmFCIJicd7C2/Kh7slJdl0ezGmY5sftgJBg="; }; postPatch = '' diff --git a/pkgs/by-name/so/sord/package.nix b/pkgs/by-name/so/sord/package.nix index 8a66b2a19c235..1d70c20a38ce6 100644 --- a/pkgs/by-name/so/sord/package.nix +++ b/pkgs/by-name/so/sord/package.nix @@ -14,13 +14,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "sord"; - version = "0.16.20"; + version = "0.16.22"; src = fetchFromGitLab { owner = "drobilla"; repo = "sord"; tag = "v${finalAttrs.version}"; - hash = "sha256-+f3dxhcxVoub+KeI5c5/J87SVvAawrm5cZgo2qogdRM="; + hash = "sha256-XrtYKc/7oD/4XrWduokILeWgNIY0QrRDj36s50LOK80="; }; outputs = [ diff --git a/pkgs/by-name/sp/sparkle/package.nix b/pkgs/by-name/sp/sparkle/package.nix index dfc94a9a52458..54e83737e6d74 100644 --- a/pkgs/by-name/sp/sparkle/package.nix +++ b/pkgs/by-name/sp/sparkle/package.nix @@ -53,8 +53,8 @@ stdenvNoCC.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-H8RR1QtWLZC2oKPEwB7BR7947kTQmZB/gZBGYMtqSKU="; + fetcherVersion = 4; + hash = "sha256-+OHO0Rvp33QUDRFjKwDpaIzdciwbsjEwoQxmqd4TouA="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/sp/spirv-cross/package.nix b/pkgs/by-name/sp/spirv-cross/package.nix index 81ba6c313fa8f..ed353a8f884a6 100644 --- a/pkgs/by-name/sp/spirv-cross/package.nix +++ b/pkgs/by-name/sp/spirv-cross/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "spirv-cross"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Cross"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-F3/j2+B/qv3sDiOiOy1OhR9G+DnM7I4LJqljZXL4S7Q="; + hash = "sha256-JdVAS5uVSfe0mOGtyodkgmvgD4of9Amq8PbDSAtgaXc="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/sp/spirv-headers/package.nix b/pkgs/by-name/sp/spirv-headers/package.nix index 95a5f55b4cf20..ddb49d7af0929 100644 --- a/pkgs/by-name/sp/spirv-headers/package.nix +++ b/pkgs/by-name/sp/spirv-headers/package.nix @@ -2,20 +2,36 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, }: stdenv.mkDerivation (finalAttrs: { pname = "spirv-headers"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Headers"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-aYKFJxRDoY/Cor8gYVoR/YSyXWSNtcRG0HK8BZH0Ztk="; + hash = "sha256-nwzhJlkdN8DaExHvnuVc5rZmlrkPYb7Qmj1fx3O5Zpw="; }; + patches = [ + # backport to fix glslang tests + # FIXME: remove in next update + (fetchpatch { + url = "https://github.com/KhronosGroup/SPIRV-Headers/commit/1a22b167081842915a1c78a0b5b5a353a23284aa.diff"; + hash = "sha256-XUHfPHnk7bWK4vnozfW/84vaZN+rbFJUZSa6Og8GUAU="; + }) + # Backport new predicated load/store instructions, needed by spirv-llvm-translator + # Not in any tagged releases yet, should exist in the next release after 1.4.350.1. + (fetchpatch { + url = "https://github.com/KhronosGroup/SPIRV-Headers/commit/b8a32968473ce852a809b9de5f04f02a5a9dfa78.patch"; + hash = "sha256-59jmN28ifEhAxySXCpuGZ62jo1WVsRPnVosK8X4yrjM="; + }) + ]; + nativeBuildInputs = [ cmake ]; meta = { diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index ce8f31de261d1..b86f3424f750b 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -1,6 +1,7 @@ { lib, stdenv, + srcOnly, fetchFromGitHub, fetchpatch, cmake, @@ -16,6 +17,11 @@ let llvmMajor = lib.versions.major llvm.version; versions = { + "22" = rec { + version = "22.1.3"; + rev = "v${version}"; + hash = "sha256-u/OytBH9LgAyGF9PX+5lmAbGPQ7iVv52w8mwQ+6fi/s="; + }; "21" = rec { version = "21.1.0"; rev = "v${version}"; @@ -79,7 +85,7 @@ stdenv.mkDerivation { "-DLLVM_SPIRV_BUILD_EXTERNAL=YES" # RPATH of binary /nix/store/.../bin/llvm-spirv contains a forbidden reference to /build/ "-DCMAKE_SKIP_BUILD_RPATH=ON" - "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${spirv-headers.src}" + "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${srcOnly spirv-headers}" ] ++ lib.optional ( lib.toInt llvmMajor >= 19 diff --git a/pkgs/by-name/sp/spirv-tools/package.nix b/pkgs/by-name/sp/spirv-tools/package.nix index e08ae33d33e6d..16a2bdef93e7c 100644 --- a/pkgs/by-name/sp/spirv-tools/package.nix +++ b/pkgs/by-name/sp/spirv-tools/package.nix @@ -2,6 +2,7 @@ lib, stdenv, fetchFromGitHub, + fetchpatch, cmake, python3, spirv-headers, @@ -9,18 +10,25 @@ stdenv.mkDerivation (finalAttrs: { pname = "spirv-tools"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-8haVqfmTBvNuv5jEc/LaAO34pWjTZAJ04FIxuxfJNUc="; + hash = "sha256-tR3POZH/LXaAljMUS9aHBBvIvlr6o7d6+YUtJCRMS1w="; }; patches = [ # https://github.com/KhronosGroup/SPIRV-Tools/pull/6483 ./0001-Fix-generated-pkg-config-modules-with-absolute-insta.patch + + # backport to fix glslang tests + # FIXME: remove in next update + (fetchpatch { + url = "https://github.com/KhronosGroup/SPIRV-Tools/commit/2ec8457ab33d539b6f1fecc998360c0b8b05ed4f.diff"; + hash = "sha256-YHbYBwXMm4rTKpmMW6I3LUafhA4RuNUdXqUBUAXwXpE="; + }) ] # The cmake options are sufficient for turning on static building, but not # for disabling shared building, just trim the shared lib from the CMake diff --git a/pkgs/by-name/sp/spraycharles/drop-teams.patch b/pkgs/by-name/sp/spraycharles/drop-teams.patch new file mode 100644 index 0000000000000..2d876e005cf5b --- /dev/null +++ b/pkgs/by-name/sp/spraycharles/drop-teams.patch @@ -0,0 +1,61 @@ +diff --git a/spraycharles/lib/analyze.py b/spraycharles/lib/analyze.py +index 537f6db..424f87e 100755 +--- a/spraycharles/lib/analyze.py ++++ b/spraycharles/lib/analyze.py +@@ -4,7 +4,7 @@ from enum import Enum + from rich.table import Table + + from spraycharles.lib.logger import console, logger +-from spraycharles.lib.utils import discord, slack, teams, SMBStatus, SprayResult, HookSvc ++from spraycharles.lib.utils import discord, slack, SMBStatus, SprayResult, HookSvc + + + class Analyzer: +@@ -210,8 +210,6 @@ class Analyzer: + pass + case HookSvc.SLACK: + slack(self.webhook, self.host) +- case HookSvc.TEAMS: +- teams(self.webhook, self.host) + case HookSvc.DISCORD: + discord(self.webhook, self.host) + case _: +diff --git a/spraycharles/lib/utils/__init__.py b/spraycharles/lib/utils/__init__.py +index 59eda99..3615e4c 100644 +--- a/spraycharles/lib/utils/__init__.py ++++ b/spraycharles/lib/utils/__init__.py +@@ -1,4 +1,4 @@ +-from spraycharles.lib.utils.notify import discord, teams, slack, HookSvc ++from spraycharles.lib.utils.notify import discord, slack, HookSvc + from spraycharles.lib.utils.ntlm_challenger import main as ntlm_challenger + from spraycharles.lib.utils.smbstatus import SMBStatus + from spraycharles.lib.utils.sprayresult import SprayResult +diff --git a/spraycharles/lib/utils/notify.py b/spraycharles/lib/utils/notify.py +index f39d10d..f0d62f9 100644 +--- a/spraycharles/lib/utils/notify.py ++++ b/spraycharles/lib/utils/notify.py +@@ -1,12 +1,10 @@ + from enum import Enum +-import pymsteams + from discord_webhook import DiscordWebhook + import requests + + + class HookSvc(str, Enum): + SLACK = "Slack" +- TEAMS = "Teams" + DISCORD = "Discord" + + +@@ -18,12 +16,6 @@ def slack(webhook, host): + response.raise_for_status() # Raises an error for bad responses + + +-def teams(webhook, host): +- notify = pymsteams.connectorcard(webhook) +- notify.text(f"Credentials guessed for host: {host}") +- notify.send() +- +- + def discord(webhook, host): + notify = DiscordWebhook( diff --git a/pkgs/by-name/sp/spraycharles/package.nix b/pkgs/by-name/sp/spraycharles/package.nix index c2619145884f7..db30ac90c2d3a 100644 --- a/pkgs/by-name/sp/spraycharles/package.nix +++ b/pkgs/by-name/sp/spraycharles/package.nix @@ -18,13 +18,16 @@ python3.pkgs.buildPythonApplication (finalAttrs: { pythonRelaxDeps = true; + # https://github.com/Tw1sm/spraycharles/pull/34 + pythonRemoveDeps = [ "pymsteams" ]; + patches = [ ./drop-teams.patch ]; + build-system = with python3.pkgs; [ poetry-core ]; dependencies = with python3.pkgs; [ discord-webhook impacket numpy - pymsteams pyyaml requests requests-ntlm diff --git a/pkgs/by-name/sr/srt/package.nix b/pkgs/by-name/sr/srt/package.nix index a5190b8b6d366..d02efdc3d4e6e 100644 --- a/pkgs/by-name/sr/srt/package.nix +++ b/pkgs/by-name/sr/srt/package.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, openssl, windows, @@ -10,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "srt"; - version = "1.5.4"; + version = "1.5.5"; src = fetchFromGitHub { owner = "Haivision"; repo = "srt"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-NLy9GuP4OT/kKAIIDXSHtsmaBzXRuFohFM/aM+46cao="; + sha256 = "sha256-hOkLlmtF9dKqXZTjAeBntkkg5WsmsZN6DKhyakoIF1k="; }; nativeBuildInputs = [ cmake ]; @@ -29,12 +28,6 @@ stdenv.mkDerivation (finalAttrs: { ]; patches = [ - # Fix the build with CMake 4. - (fetchpatch { - name = "srt-fix-cmake-4.patch"; - url = "https://github.com/Haivision/srt/commit/0def1b1a1094fc57752f241250e9a1aed71bbffd.patch"; - hash = "sha256-dnBGNut+I9trkQzr81Wo36O2Pt7d2gsjA1buJBegPMM="; - }) ] ++ lib.optionals stdenv.hostPlatform.isMinGW [ ./no-msvc-compat-headers.patch diff --git a/pkgs/by-name/sv/svt-av1/package.nix b/pkgs/by-name/sv/svt-av1/package.nix index 23c007f26a503..4ad68f820e085 100644 --- a/pkgs/by-name/sv/svt-av1/package.nix +++ b/pkgs/by-name/sv/svt-av1/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "svt-av1"; - version = "3.1.2"; + version = "4.1.0"; src = fetchFromGitLab { owner = "AOMediaCodec"; repo = "SVT-AV1"; rev = "v${finalAttrs.version}"; - hash = "sha256-/CpcxdyC4qf9wdzzySMYw17FbjYpasT+QVykXSlx28U="; + hash = "sha256-NPJG1SsRlG9kGtUwdJa/uP6DAtF09nCctzeorrvjAhQ="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/sw/swtpm/package.nix b/pkgs/by-name/sw/swtpm/package.nix index 8f75456b72e74..ffa3d5760e31e 100644 --- a/pkgs/by-name/sw/swtpm/package.nix +++ b/pkgs/by-name/sw/swtpm/package.nix @@ -7,7 +7,7 @@ pkg-config, libtasn1, openssl, - fuse, + fuse3, glib, libseccomp, json-glib, @@ -15,6 +15,7 @@ unixtools, expect, socat, + gmp, gnutls, perl, makeWrapper, @@ -27,23 +28,15 @@ stdenv.mkDerivation (finalAttrs: { pname = "swtpm"; - version = "0.10.1"; + version = "0.10.1-unstable-2026-05-21"; # fuse3 support, switch to openssl src = fetchFromGitHub { owner = "stefanberger"; repo = "swtpm"; - rev = "v${finalAttrs.version}"; - hash = "sha256-N79vuI0FhawLyQtwVF6ABIvCmEaYefq/YkyrafUfUHE="; + rev = "89a67f3d4070887a1ab86ca641f8da13529c54b7"; + hash = "sha256-ebVfzKloJGmiaguxtcPC/MUuOQYzxIZDdi/0oEGXJ64="; }; - patches = [ - (fetchpatch { - name = "retry-nwwrite.patch"; - url = "https://github.com/stefanberger/swtpm/commit/4da66c66f92438443e66b67555673c9cb898b0ae.patch"; - hash = "sha256-TTS+ViN4g6EfNLrhvGPobcSQEbr/mEl9ZLZTWdxbifs="; - }) - ]; - nativeBuildInputs = [ pkg-config unixtools.netstat @@ -65,15 +58,17 @@ stdenv.mkDerivation (finalAttrs: { libtasn1 glib json-glib + gmp gnutls ] ++ lib.optionals stdenv.hostPlatform.isLinux [ - fuse + fuse3 libseccomp ]; configureFlags = [ "--localstatedir=/var" + "--with-gnutls" ] ++ lib.optionals stdenv.hostPlatform.isLinux [ "--with-cuse" @@ -87,39 +82,14 @@ stdenv.mkDerivation (finalAttrs: { # Makefile tries to create the directory /var/lib/swtpm-localca, which fails substituteInPlace samples/Makefile.am \ - --replace 'install-data-local:' 'do-not-execute:' + --replace-fail 'install-data-local:' 'do-not-execute:' - # Use the correct path to the certtool binary + # Use the correct path to the openssl binary # instead of relying on it being in the environment substituteInPlace src/swtpm_localca/swtpm_localca.c \ - --replace \ - '# define CERTTOOL_NAME "gnutls-certtool"' \ - '# define CERTTOOL_NAME "${gnutls}/bin/certtool"' \ - --replace \ - '# define CERTTOOL_NAME "certtool"' \ - '# define CERTTOOL_NAME "${gnutls}/bin/certtool"' - - substituteInPlace tests/common --replace \ - 'CERTTOOL=gnutls-certtool;;' \ - 'CERTTOOL=certtool;;' - - # Fix error on macOS: - # stat: invalid option -- '%' - # This is caused by the stat program not being the BSD version, - # as is expected by the test - substituteInPlace tests/common tests/sed-inplace --replace \ - 'if [[ "$(uname -s)" =~ (Linux|CYGWIN_NT-) ]]; then' \ - 'if [[ "$(uname -s)" =~ (Linux|Darwin|CYGWIN_NT-) ]]; then' - - # Otherwise certtool seems to pick up the system language on macOS, - # which might cause a test to fail - substituteInPlace tests/test_swtpm_setup_create_cert --replace \ - '$CERTTOOL' \ - 'LC_ALL=C.UTF-8 $CERTTOOL' - - substituteInPlace tests/test_tpm2_swtpm_cert --replace \ - 'certtool' \ - 'LC_ALL=C.UTF-8 certtool' + --replace-fail \ + '#define OPENSSL_TOOL "openssl"' \ + '#define OPENSSL_TOOL "${lib.getExe openssl}"' ''; # Workaround for https://github.com/stefanberger/swtpm/issues/795 @@ -129,6 +99,7 @@ stdenv.mkDerivation (finalAttrs: { ''; doCheck = true; + __darwinAllowLocalNetworking = true; # tests do socket things, requires local networking to pass enableParallelBuilding = true; outputs = [ diff --git a/pkgs/by-name/ti/tinysparql/package.nix b/pkgs/by-name/ti/tinysparql/package.nix index 25e5d9aaa0f03..aeeae95159df3 100644 --- a/pkgs/by-name/ti/tinysparql/package.nix +++ b/pkgs/by-name/ti/tinysparql/package.nix @@ -2,6 +2,7 @@ stdenv, lib, fetchurl, + fetchpatch, gettext, meson, mesonEmulatorHook, @@ -49,6 +50,18 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-z9RgIe4VFK1DXnFPeqHsenh8f1FqlPTHQ4iX7j1uyh4="; }; + patches = [ + # sqlite changed the precision of float <-> text conversions, causing + # failures in the test suite. patch here until this appears in a release. + # https://gitlab.gnome.org/GNOME/tinysparql/-/work_items/496 + # https://gitlab.gnome.org/GNOME/tinysparql/-/merge_requests/811 + (fetchpatch { + name = "tinysparql-sqlite-double-value-precision.patch"; + url = "https://gitlab.gnome.org/GNOME/tinysparql/-/commit/47d5bf9313d0ccb1feb7169eed9047d0e1597a39.patch"; + hash = "sha256-k6eELZCEEtD8s7GiMckjTlf6QcAiUNY1Mraw7GROsm4="; + }) + ]; + strictDeps = true; depsBuildBuild = [ diff --git a/pkgs/by-name/ti/tinyxxd/package.nix b/pkgs/by-name/ti/tinyxxd/package.nix index c149c0f7c3b62..2c0cc51b55208 100644 --- a/pkgs/by-name/ti/tinyxxd/package.nix +++ b/pkgs/by-name/ti/tinyxxd/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "tinyxxd"; - version = "1.3.15"; + version = "1.3.16"; src = fetchFromGitHub { repo = "tinyxxd"; owner = "xyproto"; rev = "v${finalAttrs.version}"; - hash = "sha256-JLu3x54/kpKhvfTeWovxmV+/bEB4MqaNlFPrHnM/+ko="; + hash = "sha256-SaxjQFQ//xxRCIx4FMx1exGGOGEKN/evgABTquL92WM="; }; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/by-name/tr/tree-sitter/grammars/build-grammar.nix b/pkgs/by-name/tr/tree-sitter/grammars/build-grammar.nix index a0795c617d6db..598a14ff6ec3d 100644 --- a/pkgs/by-name/tr/tree-sitter/grammars/build-grammar.nix +++ b/pkgs/by-name/tr/tree-sitter/grammars/build-grammar.nix @@ -27,6 +27,8 @@ stdenv.mkDerivation ( inherit version src; + __structuredAttrs = true; + nativeBuildInputs = [ jq ] diff --git a/pkgs/by-name/tr/tree-sitter/package.nix b/pkgs/by-name/tr/tree-sitter/package.nix index 2fce53f8d4532..5c2f8655c6253 100644 --- a/pkgs/by-name/tr/tree-sitter/package.nix +++ b/pkgs/by-name/tr/tree-sitter/package.nix @@ -130,17 +130,17 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "tree-sitter"; - version = "0.26.8"; + version = "0.26.9"; src = fetchFromGitHub { owner = "tree-sitter"; repo = "tree-sitter"; tag = "v${finalAttrs.version}"; - hash = "sha256-fcFEfoALrbpBD6rWogxJ7FNVlvDQgswoX9ylRgko+8Q="; + hash = "sha256-ohVhW4AEKX5VspqBePtfxbJGkjmJnNkf5ntU3RUxF+0="; fetchSubmodules = true; }; - cargoHash = "sha256-9FeWnWWPUWmMF15Psmul8GxGv2JceHWc2WZPmOr81gw="; + cargoHash = "sha256-3egxdusYHQs8PadxGZ44+VWtlTcGBrcqlWMUyUzpWnY="; cargoBuildFeatures = lib.optionals wasmSupport [ "wasm" ]; diff --git a/pkgs/by-name/tu/tunnelgraf/package.nix b/pkgs/by-name/tu/tunnelgraf/package.nix index 3f08a1565e1f7..82b297401714e 100644 --- a/pkgs/by-name/tu/tunnelgraf/package.nix +++ b/pkgs/by-name/tu/tunnelgraf/package.nix @@ -1,7 +1,6 @@ { lib, fetchFromGitHub, - fetchPypi, python3, }: @@ -12,12 +11,18 @@ let # Doesn't work with latest paramiko paramiko = super.paramiko.overridePythonAttrs (oldAttrs: rec { version = "3.4.0"; - src = fetchPypi { - pname = "paramiko"; - inherit version; - hash = "sha256-qsCPJqMdxN/9koIVJ9FoLZnVL572hRloEUqHKPPCdNM="; + src = fetchFromGitHub { + owner = "paramiko"; + repo = "paramiko"; + tag = version; + hash = "sha256-V0s9IoRmqXvzYQzzBsWmovYWwXnNC0x1phyiyjbejGA="; }; doCheck = false; + meta = oldAttrs.meta // { + knownVulnerabilities = [ + "CVE-2026-44405" + ]; + }; }); }; }; diff --git a/pkgs/by-name/ub/ubports-click/package.nix b/pkgs/by-name/ub/ubports-click/package.nix index b85dc331c31d9..8bbf7b66e49d6 100644 --- a/pkgs/by-name/ub/ubports-click/package.nix +++ b/pkgs/by-name/ub/ubports-click/package.nix @@ -90,11 +90,14 @@ python3Packages.buildPythonApplication (finalAttrs: { properties-cpp ]; - propagatedBuildInputs = with python3Packages; [ + build-system = [ + python3Packages.setuptools_80 + ]; + + dependencies = with python3Packages; [ python-debian chardet pygobject3 - setuptools ]; nativeCheckInputs = [ diff --git a/pkgs/by-name/uc/ucc/package.nix b/pkgs/by-name/uc/ucc/package.nix index ed2b439bce0b3..ebc88215053ae 100644 --- a/pkgs/by-name/uc/ucc/package.nix +++ b/pkgs/by-name/uc/ucc/package.nix @@ -40,13 +40,13 @@ effectiveStdenv.mkDerivation (finalAttrs: { strictDeps = true; pname = "ucc"; - version = "1.7.0"; + version = "1.8.0"; src = fetchFromGitHub { owner = "openucx"; repo = "ucc"; tag = "v${finalAttrs.version}"; - hash = "sha256-YGvagagGcG6Jiy5VppnfdZ03Sb5+5dYU6NV+RS/KnHY="; + hash = "sha256-rH/bG0pYO4VKfrnkXLXy/67hjaz6i3R0YoYdsGBqPsU="; }; outputs = [ diff --git a/pkgs/by-name/ur/urlwatch/package.nix b/pkgs/by-name/ur/urlwatch/package.nix index 662eb3ec4fe16..8e9a88908a66c 100644 --- a/pkgs/by-name/ur/urlwatch/package.nix +++ b/pkgs/by-name/ur/urlwatch/package.nix @@ -19,7 +19,6 @@ python3Packages.buildPythonApplication (finalAttrs: { build-system = with python3Packages; [ setuptools ]; dependencies = with python3Packages; [ - aioxmpp beautifulsoup4 cssbeautifier cssselect diff --git a/pkgs/by-name/ut/utf8cpp/package.nix b/pkgs/by-name/ut/utf8cpp/package.nix index a97a1043b555f..9d383273519a7 100644 --- a/pkgs/by-name/ut/utf8cpp/package.nix +++ b/pkgs/by-name/ut/utf8cpp/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "utf8cpp"; - version = "4.0.9"; + version = "4.1.1"; src = fetchFromGitHub { owner = "nemtrif"; repo = "utfcpp"; tag = "v${finalAttrs.version}"; - hash = "sha256-0FgMKHymFOA3BM7VS8US2is8TmQlL/wWj4nSRihqcDo="; + hash = "sha256-0NbbQMsucrbOGEWAVZGSFp7f4dp31XrurPVVjcYsH+I="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/ut/uthash/package.nix b/pkgs/by-name/ut/uthash/package.nix index 03576564438c1..60296d2114d71 100644 --- a/pkgs/by-name/ut/uthash/package.nix +++ b/pkgs/by-name/ut/uthash/package.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "uthash"; - version = "2.3.0"; + version = "2.4.0"; src = fetchFromGitHub { owner = "troydhanson"; repo = "uthash"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-F0M5ENT3bMn3dD16Oaq9mBFYOWzVliVWupAIrLc2nkQ="; + sha256 = "sha256-pEuBQVQSszuL7dIPZYSAyrr3tf6BTc/NWMBoFESCYkw="; }; doCheck = true; diff --git a/pkgs/by-name/ut/util-linux/package.nix b/pkgs/by-name/ut/util-linux/package.nix index 0c9c7542a23ce..f11d004bb0cf7 100644 --- a/pkgs/by-name/ut/util-linux/package.nix +++ b/pkgs/by-name/ut/util-linux/package.nix @@ -43,11 +43,11 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "util-linux" + lib.optionalString isMinimal "-minimal"; - version = "2.42"; + version = "2.42.2"; src = fetchurl { url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor finalAttrs.version}/util-linux-${finalAttrs.version}.tar.xz"; - hash = "sha256-NFKyYLuqd11udJrDuyIRF4UAP8H0RJcAJcjaJt+nWOk="; + hash = "sha256-A6BdOt+WAu8Sjy2gW4SzIFzmDDUeVzfANw90AAZ5zoo="; }; # Note: fetchpatch/fetchpatch2 cause infinite recursion with util-linuxMinimal. @@ -57,38 +57,6 @@ stdenv.mkDerivation (finalAttrs: { # which isn't valid on NixOS (and a compatibility link on most other modern # distros anyway). ./rtcwake-search-PATH-for-shutdown.patch - - # Fix compile of 2.42+ on Darwin. - # https://lore.kernel.org/util-linux/CAEUYr6ZjVX1bd-xcBGtFN_ZYwQnXDYsw7d1-7sTpF2BbgfrR+g@mail.gmail.com/T/#u - # Different fix than originally proposed; we just don't compile that file on Darwin now and the previous patch was able to be reverted. - # See: https://github.com/util-linux/util-linux/commit/6ccf20d2fd8e45eed70bd1b915c0d16f646bf133 - (fetchurl { - name = "pidfd-utils-linux-only.patch"; - url = "https://github.com/util-linux/util-linux/commit/afdade4a3d8e4e6070343c5576470c575719b81f.patch"; - hash = "sha256-EnHsIhU6jaS4Qm+kQMP2an7Ay08nKbIO0MbU7Y2pwkU="; - }) - - # Musl does not define AT_HANDLE_FID, hard-code it if left undefined. - # https://github.com/util-linux/util-linux/pull/4203 - (fetchurl { - name = "fix-musl-nsenter.patch"; - url = "https://github.com/util-linux/util-linux/commit/000aff333e5c3a23967280cb0d6451fbbfc9c91b.patch"; - hash = "sha256-6K3jRr2RsAfHnweBOlMn2F0h8hD3xjZobJ1pSlCQHw8="; - }) - - # `script` is broken with options after non-option args and has new memory leaks - # https://lore.kernel.org/util-linux/adi3573O-5gr9m2q@per.namespace.at/T/#t - # https://github.com/util-linux/util-linux/pull/4201 - (fetchurl { - name = "script-fix-backwards-compat.patch"; - url = "https://github.com/util-linux/util-linux/commit/70507ab9eaed10b8dd77b77d4ea25c11ee726bed.patch"; - hash = "sha256-PpFtv8XOK36npCVSvdgKcxGQmkJtgdyMmlN+4yQuWS8="; - }) - (fetchurl { - name = "script-fix-memory-leaks.patch"; - url = "https://github.com/util-linux/util-linux/commit/2f1c12a49500ca7ed9c3d5e80664c1622925456b.patch"; - hash = "sha256-9ZwA6sZwM1rQDoxV5x1KHLWxsFpI5CGWJqubtdEHj/I="; - }) ]; # We separate some of the utilities into their own outputs. This diff --git a/pkgs/by-name/va/valgrind/package.nix b/pkgs/by-name/va/valgrind/package.nix index 8c3a2ca3db1e8..25bc383f0ecb6 100644 --- a/pkgs/by-name/va/valgrind/package.nix +++ b/pkgs/by-name/va/valgrind/package.nix @@ -11,11 +11,11 @@ stdenv.mkDerivation rec { pname = "valgrind"; - version = "3.26.0"; + version = "3.27.1"; src = fetchurl { - url = "https://sourceware.org/pub/${pname}/${pname}-${version}.tar.bz2"; - hash = "sha256-jVTHFwKRBvFkSq2vgCq5aS5T2T3QFcvRnnQZDrpha9c="; + url = "https://sourceware.org/pub/valgrind/valgrind-${version}.tar.bz2"; + hash = "sha256-XViRUuuAccAv6rjOarcZ5DGh+8PisXAPVDJjKouSZNw="; }; patches = [ @@ -30,6 +30,11 @@ stdenv.mkDerivation rec { url = "https://bugsfiles.kde.org/attachment.cgi?id=186451"; hash = "sha256-IGmyHwwGoy00hcz3XxQSDcwcU8zHLBJ9dfqTvWDQ520="; }) + (fetchpatch { + name = "reallocarray-test-musl.patch"; + url = "https://sourceware.org/git/?p=valgrind.git;a=patch;h=991961ece87e4cdc0771a05c956c55baa437bb07"; + hash = "sha256-U16384rLXMhLE5Em9z8FKYbshPlnq8l9ejC2+epL7M4="; + }) # Fix build on armv7l. # see also https://bugs.kde.org/show_bug.cgi?id=454346 @@ -111,6 +116,7 @@ stdenv.mkDerivation rec { ''; license = lib.licenses.gpl3Plus; + mainProgram = "valgrind"; platforms = with lib.platforms; diff --git a/pkgs/by-name/vu/vulkan-extension-layer/package.nix b/pkgs/by-name/vu/vulkan-extension-layer/package.nix index 1be76857c00f8..eb36c08cf7ce1 100644 --- a/pkgs/by-name/vu/vulkan-extension-layer/package.nix +++ b/pkgs/by-name/vu/vulkan-extension-layer/package.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vulkan-extension-layer"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-ExtensionLayer"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-Qj2sZ9O3WNDb7thv5PzWmONIKBO6hXwz0wQ0PobFgvg="; + hash = "sha256-6ZtPp6OqzzppmijIU1/77qcUvwCck/eMZOUh5pSwVc8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/vu/vulkan-headers/package.nix b/pkgs/by-name/vu/vulkan-headers/package.nix index 65d0a32fdfd9a..956a3725941a8 100644 --- a/pkgs/by-name/vu/vulkan-headers/package.nix +++ b/pkgs/by-name/vu/vulkan-headers/package.nix @@ -7,7 +7,7 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "vulkan-headers"; - version = "1.4.341.0"; + version = "1.4.350.0"; # Adding `ninja` here to enable Ninja backend. Otherwise on gcc-14 or # later the build fails as: @@ -24,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "KhronosGroup"; repo = "Vulkan-Headers"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-R/t0mAhNX+jREDVIFnv0agB9qtcnRb06K4OHtLRxWow="; + hash = "sha256-RcUVurC+Rc0MyWpQLaLVmdn7FZO1GWWzTZZAOwvKwb4="; }; passthru.updateScript = ./update.sh; diff --git a/pkgs/by-name/vu/vulkan-loader/package.nix b/pkgs/by-name/vu/vulkan-loader/package.nix index a0f31bfc10145..3987debfef122 100644 --- a/pkgs/by-name/vu/vulkan-loader/package.nix +++ b/pkgs/by-name/vu/vulkan-loader/package.nix @@ -17,13 +17,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vulkan-loader"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Loader"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-OcguNyi1yZ2OMnI2HSrx+pYvk4RHbn6IGZqnYwWGmB0="; + hash = "sha256-jgibBetbMpqRJ+OJpJgNxgC6phECewNqtla9CCJj56U="; }; patches = [ ./fix-pkgconfig.patch ]; diff --git a/pkgs/by-name/vu/vulkan-tools-lunarg/package.nix b/pkgs/by-name/vu/vulkan-tools-lunarg/package.nix index 89c59d98e8e29..7ccc9cfa11ccb 100644 --- a/pkgs/by-name/vu/vulkan-tools-lunarg/package.nix +++ b/pkgs/by-name/vu/vulkan-tools-lunarg/package.nix @@ -27,13 +27,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vulkan-tools-lunarg"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "LunarG"; repo = "VulkanTools"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-y/xTeEBjhDBlB0qcWUe159SvsRa5tBLUy6FZSmupQsU="; + hash = "sha256-tKt/OrGIVfg2/aK9dYPuOB4+05ayUheP9T7Ny5MfWTk="; }; nativeBuildInputs = [ @@ -61,7 +61,6 @@ stdenv.mkDerivation (finalAttrs: { libxcb-keysyms libxcb-wm qt6.qtbase - qt6.qtwayland ]; cmakeFlags = [ diff --git a/pkgs/by-name/vu/vulkan-tools/package.nix b/pkgs/by-name/vu/vulkan-tools/package.nix index 826602ba462e5..f6bbd8c69f5bc 100644 --- a/pkgs/by-name/vu/vulkan-tools/package.nix +++ b/pkgs/by-name/vu/vulkan-tools/package.nix @@ -24,13 +24,13 @@ stdenv.mkDerivation rec { pname = "vulkan-tools"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Tools"; rev = "vulkan-sdk-${version}"; - hash = "sha256-+5BL28h7+r+mLr1Tr7UT4UEB8jRrIc2JwoasJ7HzxI0="; + hash = "sha256-qtEq1ZQT5JXE4bXzy8W053CRF/dOFVV7d7NE9uNYssI="; }; patches = [ ./wayland-scanner.patch ]; diff --git a/pkgs/by-name/vu/vulkan-utility-libraries/package.nix b/pkgs/by-name/vu/vulkan-utility-libraries/package.nix index b6f8c7ff3e5b0..2ea2fc62a0be1 100644 --- a/pkgs/by-name/vu/vulkan-utility-libraries/package.nix +++ b/pkgs/by-name/vu/vulkan-utility-libraries/package.nix @@ -9,13 +9,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "vulkan-utility-libraries"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Utility-Libraries"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-QB9U7Nj2jRTYlHql/qUuwpWoEQ+/T/cVYvs+zKXUUfw="; + hash = "sha256-E0T5eSI30eDB7//6srjwlkX9HfUp1UiyCPWDyK+ZEi8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/vu/vulkan-validation-layers/package.nix b/pkgs/by-name/vu/vulkan-validation-layers/package.nix index 5e4834e111a26..432825de08fcb 100644 --- a/pkgs/by-name/vu/vulkan-validation-layers/package.nix +++ b/pkgs/by-name/vu/vulkan-validation-layers/package.nix @@ -26,13 +26,13 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "vulkan-validation-layers"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-ValidationLayers"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-xUeMqtQ7bR3P50yQN5TXVzCO9Ugp9tUyFMtYnvc3g8s="; + hash = "sha256-3qUZP/R29eqTR4IAWH6jBGgmRqE0d1ahcdKbxUOAmTY="; }; strictDeps = true; diff --git a/pkgs/by-name/vu/vulkan-volk/package.nix b/pkgs/by-name/vu/vulkan-volk/package.nix index 52ae5b0de3499..613867ceee199 100644 --- a/pkgs/by-name/vu/vulkan-volk/package.nix +++ b/pkgs/by-name/vu/vulkan-volk/package.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "volk"; - version = "1.4.341.0"; + version = "1.4.350.0"; src = fetchFromGitHub { owner = "zeux"; repo = "volk"; rev = "vulkan-sdk-${finalAttrs.version}"; - hash = "sha256-jAXUwejUJGc8H+2lDGLHIlrI0sdzQbnJ+ZNbZHYdFX8="; + hash = "sha256-7JsOWhMTnxeJfsTVgnnHQt5gYJ8tqELT+s3VDHTPof8="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/by-name/wa/wannier90/package.nix b/pkgs/by-name/wa/wannier90/package.nix index 2a8996daf779f..321c34e4e0e7c 100644 --- a/pkgs/by-name/wa/wannier90/package.nix +++ b/pkgs/by-name/wa/wannier90/package.nix @@ -73,9 +73,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; checkInputs = [ python3 ]; checkTarget = [ "test-serial" ]; - preCheck = '' - export OMP_NUM_THREADS=4 - ''; enableParallelBuilding = true; diff --git a/pkgs/by-name/wh/which/package.nix b/pkgs/by-name/wh/which/package.nix index a8f4f1f53d026..6c28c95eb8449 100644 --- a/pkgs/by-name/wh/which/package.nix +++ b/pkgs/by-name/wh/which/package.nix @@ -7,11 +7,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "which"; - version = "2.23"; + version = "2.25"; src = fetchurl { url = "mirror://gnu/which/which-${finalAttrs.version}.tar.gz"; - hash = "sha256-osVYIm/E2eTOMxvS/Tw/F/lVEV0sAORHYYpO+ZeKKnM="; + hash = "sha256-HLg+T3AuYLghGrXsTCr7qxsd7IAglFan0vr3WE7SJeo="; }; patches = [ ./gcc15.patch diff --git a/pkgs/by-name/wx/wxwidgets_3_1/package.nix b/pkgs/by-name/wx/wxwidgets_3_1/package.nix index 17b1d60e360f7..bea53d1e25e14 100644 --- a/pkgs/by-name/wx/wxwidgets_3_1/package.nix +++ b/pkgs/by-name/wx/wxwidgets_3_1/package.nix @@ -23,6 +23,9 @@ withWebKit ? stdenv.hostPlatform.isDarwin, webkitgtk_4_1, libpng, + + # TODO: Clean up on `staging`. + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -45,7 +48,11 @@ stdenv.mkDerivation (finalAttrs: { ./0002-support-webkitgtk-41.patch ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.lld ]; buildInputs = [ gst_all_1.gst-plugins-base @@ -89,12 +96,17 @@ stdenv.mkDerivation (finalAttrs: { "--enable-webviewwebkit" ]; - env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { - SEARCH_LIB = toString [ - "${libGLU.out}/lib" - "${libGL.out}/lib" - ]; - }; + env = + lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { + SEARCH_LIB = toString [ + "${libGLU.out}/lib" + "${libGL.out}/lib" + ]; + } + # TODO: Clean up on `staging`. + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; preConfigure = '' substituteInPlace configure --replace \ diff --git a/pkgs/by-name/wx/wxwidgets_3_2/package.nix b/pkgs/by-name/wx/wxwidgets_3_2/package.nix index bc33af7fc265b..ca05463f928ff 100644 --- a/pkgs/by-name/wx/wxwidgets_3_2/package.nix +++ b/pkgs/by-name/wx/wxwidgets_3_2/package.nix @@ -29,6 +29,9 @@ withMesa ? !stdenv.hostPlatform.isDarwin, withWebKit ? true, webkitgtk_4_1, + + # TODO: Clean up on `staging`. + llvmPackages, }: let catch = fetchFromGitHub { @@ -56,7 +59,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-mYMUW3FnFkKHDQXb/k9UosSiWCPW7OQn+/orwq4Q95k="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.lld ]; buildInputs = [ gst_all_1.gst-plugins-base @@ -114,12 +121,17 @@ stdenv.mkDerivation (finalAttrs: { "--enable-webviewwebkit" ]; - env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { - SEARCH_LIB = toString [ - "${libGLU.out}/lib" - "${libGL.out}/lib" - ]; - }; + env = + lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { + SEARCH_LIB = toString [ + "${libGLU.out}/lib" + "${libGL.out}/lib" + ]; + } + # TODO: Clean up on `staging`. + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; preConfigure = '' cp -r ${catch}/* 3rdparty/catch/ diff --git a/pkgs/by-name/wx/wxwidgets_3_3/package.nix b/pkgs/by-name/wx/wxwidgets_3_3/package.nix index 078dc6706c1d3..8afa367df0feb 100644 --- a/pkgs/by-name/wx/wxwidgets_3_3/package.nix +++ b/pkgs/by-name/wx/wxwidgets_3_3/package.nix @@ -30,6 +30,9 @@ withEGL ? true, withPrivateFonts ? false, webkitgtk_4_1, + + # TODO: Clean up on `staging`. + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { @@ -44,7 +47,11 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-UL1NuByKFGMQ/dhjuWRdnWTgdy4+1cD9pSls3e1mur8="; }; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.lld ]; buildInputs = [ gst_all_1.gst-plugins-base @@ -103,12 +110,17 @@ stdenv.mkDerivation (finalAttrs: { "--enable-webviewwebkit" ]; - env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { - SEARCH_LIB = toString [ - "${libGLU.out}/lib" - "${libGL.out}/lib" - ]; - }; + env = + lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) { + SEARCH_LIB = toString [ + "${libGLU.out}/lib" + "${libGL.out}/lib" + ]; + } + # TODO: Clean up on `staging`. + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; postInstall = " pushd $out/include diff --git a/pkgs/by-name/x2/x265/fix-plt-rel.patch b/pkgs/by-name/x2/x265/fix-plt-rel.patch new file mode 100644 index 0000000000000..23b5472bea4f5 --- /dev/null +++ b/pkgs/by-name/x2/x265/fix-plt-rel.patch @@ -0,0 +1,11 @@ +--- a/common/x86/cpu-a.asm ++++ b/common/x86/cpu-a.asm +@@ -177,7 +177,7 @@ cglobal safe_intel_cpu_indicator_init + %if WIN64 + lea rax, [intel_cpu_indicator_init] + call rax +-%elif FORMAT_ELF ++%elif UNIX64 && FORMAT_ELF + call [rel intel_cpu_indicator_init wrt ..plt] + %else + call intel_cpu_indicator_init diff --git a/pkgs/by-name/x2/x265/package.nix b/pkgs/by-name/x2/x265/package.nix index 80ef96001f7c8..e55d07e6ae4d3 100644 --- a/pkgs/by-name/x2/x265/package.nix +++ b/pkgs/by-name/x2/x265/package.nix @@ -36,7 +36,7 @@ in stdenv.mkDerivation (finalAttrs: { pname = "x265"; - version = "4.1"; + version = "4.2"; outputs = [ "out" @@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: { # whether we fetch a source tarball or a tag from the git repo src = fetchurl { url = "https://bitbucket.org/multicoreware/x265_git/downloads/x265_${finalAttrs.version}.tar.gz"; - hash = "sha256-oxaZxqiYBrdLAVHl5qffZd5LSQUEgv5ev4pDedevjyk="; + hash = "sha256-QLHqBFPgMJ8OupNODd9TP49ilZZmeeiJTo8cHI1eEhA="; }; patches = [ @@ -55,26 +55,9 @@ stdenv.mkDerivation (finalAttrs: { # fix compilation with gcc15 # https://bitbucket.org/multicoreware/x265_git/pull-requests/36 ./gcc15-fixes.patch - - # Fix the build with CMake 4. - (fetchpatch { - name = "x265-fix-cmake-4-1.patch"; - url = "https://bitbucket.org/multicoreware/x265_git/commits/b354c009a60bcd6d7fc04014e200a1ee9c45c167/raw"; - stripLen = 1; - hash = "sha256-kS+hYZb5dnIlNoZ8ABmNkLkPx+NqCPy+DonXktBzJAE="; - }) - (fetchpatch { - name = "x265-fix-cmake-4-2.patch"; - url = "https://bitbucket.org/multicoreware/x265_git/commits/51ae8e922bcc4586ad4710812072289af91492a8/raw"; - stripLen = 1; - hash = "sha256-ZrpyfSnijUgdyVscW73K48iEXa9k85ftNaQdr0HWSYg="; - }) - (fetchpatch { - name = "x265-fix-cmake-4-3.patch"; - url = "https://bitbucket.org/multicoreware/x265_git/commits/78e5ac35c13c5cbccc5933083edceb0d3eaeaa21/raw"; - stripLen = 1; - hash = "sha256-qEihgUKGEdthbKz67s+/hS/qdpzl+3tEB3gx2tarax4="; - }) + # fix i686-linux build + # https://bitbucket.org/multicoreware/x265_git/issues/1030 + ./fix-plt-rel.patch ] # TODO: remove after update to version 4.2 ++ lib.optionals (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isLinux) [ diff --git a/pkgs/by-name/xa/xar/package.nix b/pkgs/by-name/xa/xar/package.nix index 53583b24caf3e..b9e477ca6194b 100644 --- a/pkgs/by-name/xa/xar/package.nix +++ b/pkgs/by-name/xa/xar/package.nix @@ -31,13 +31,13 @@ }: stdenv.mkDerivation (finalAttrs: { pname = "xar${lib.optionalString (e2fsprogs == null) "-minimal"}"; - version = "501"; + version = "503"; src = fetchFromGitHub { owner = "apple-oss-distributions"; repo = "xar"; rev = "xar-${finalAttrs.version}"; - hash = "sha256-Fq+Re0LCBIGhW2FR+pgV8SWtaDOEFgTh+rQ8JFWK/k0="; + hash = "sha256-QdK7NTN3A/EWr+vdfT5ZLTdX+wOmfnqvL5yJeiiPwtM="; }; # Update patch set with @@ -48,11 +48,7 @@ stdenv.mkDerivation (finalAttrs: { # # … # rm -r ../pkgs/by-name/xa/xar/patches # git format-patch --zero-commit --output-directory ../pkgs/by-name/xa/xar/patches main - patches = - # Avoid Darwin rebuilds on staging-next - lib.filter ( - p: stdenv.hostPlatform.isDarwin -> baseNameOf p != "0020-Fall-back-to-readlink-on-Linux.patch" - ) (lib.filesystem.listFilesRecursive ./patches); + patches = lib.filesystem.listFilesRecursive ./patches; # We do not use or modify files outside of the xar subdirectory. patchFlags = [ "-p2" ]; diff --git a/pkgs/by-name/xe/xemu/package.nix b/pkgs/by-name/xe/xemu/package.nix index b69437e9c3dea..b70955b2f10df 100644 --- a/pkgs/by-name/xe/xemu/package.nix +++ b/pkgs/by-name/xe/xemu/package.nix @@ -59,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: { find subprojects -type d -name .git -prune -execdir rm -r {} + ''; }; - __structuredAttrs = false; + __structuredAttrs = true; nativeBuildInputs = [ meson cmake diff --git a/pkgs/by-name/xp/xpra/package.nix b/pkgs/by-name/xp/xpra/package.nix index 6d9c26e42de92..bcd5776b7d217 100644 --- a/pkgs/by-name/xp/xpra/package.nix +++ b/pkgs/by-name/xp/xpra/package.nix @@ -159,7 +159,6 @@ effectiveBuildPythonApplication rec { ] ++ (with gst_all_1; [ gst-libav - gst-vaapi gst-plugins-ugly gst-plugins-bad gst-plugins-base diff --git a/pkgs/by-name/xt/xtb/package.nix b/pkgs/by-name/xt/xtb/package.nix index 47f1010308fb2..278220960454d 100644 --- a/pkgs/by-name/xt/xtb/package.nix +++ b/pkgs/by-name/xt/xtb/package.nix @@ -89,9 +89,6 @@ stdenv.mkDerivation (finalAttrs: { ]; doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; diff --git a/pkgs/by-name/ya/yara/package.nix b/pkgs/by-name/ya/yara/package.nix index 9af03728d7e9f..b0f598fe6f1eb 100644 --- a/pkgs/by-name/ya/yara/package.nix +++ b/pkgs/by-name/ya/yara/package.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "yara"; - version = "4.5.5"; + version = "4.5.6"; src = fetchFromGitHub { owner = "VirusTotal"; repo = "yara"; tag = "v${finalAttrs.version}"; - hash = "sha256-a+oLxVJgdDrnOra85PPo8ZlFhinawWHuRtVE39S8yJk="; + hash = "sha256-vzYH56BC0Stb2I4U5VzxA0xG46xZkWmbTIC6BtzeNQ8="; }; nativeBuildInputs = [ diff --git a/pkgs/by-name/yt/yt-dlp/package.nix b/pkgs/by-name/yt/yt-dlp/package.nix index 10723db8b7eb0..5149d2a1ad299 100644 --- a/pkgs/by-name/yt/yt-dlp/package.nix +++ b/pkgs/by-name/yt/yt-dlp/package.nix @@ -32,14 +32,14 @@ python3Packages.buildPythonApplication rec { # The websites yt-dlp deals with are a very moving target. That means that # downloads break constantly. Because of that, updates should always be backported # to the latest stable release. - version = "2026.06.09"; + version = "2026.07.04"; pyproject = true; src = fetchFromGitHub { owner = "yt-dlp"; repo = "yt-dlp"; tag = version; - hash = "sha256-ykqTDPzKKIWRGSQmw2esCRKyYqDZKXRYDeba888tkDU="; + hash = "sha256-+oHcVylLXFJTRR6jXF6IXvgntXJz0tRdtnwTruRPkoc="; }; postPatch = '' diff --git a/pkgs/by-name/yu/yubikey-manager/package.nix b/pkgs/by-name/yu/yubikey-manager/package.nix index bc8151eb9a73f..eed2cf332d630 100644 --- a/pkgs/by-name/yu/yubikey-manager/package.nix +++ b/pkgs/by-name/yu/yubikey-manager/package.nix @@ -43,6 +43,10 @@ python3Packages.buildPythonPackage rec { python-pskc ]; + pythonRelaxDeps = [ + "cryptography" + ]; + postInstall = '' installManPage man/ykman.1 '' diff --git a/pkgs/development/ada-modules/gprbuild/boot.nix b/pkgs/development/ada-modules/gprbuild/boot.nix index 0f8227d50d35a..f23628f37b7ab 100644 --- a/pkgs/development/ada-modules/gprbuild/boot.nix +++ b/pkgs/development/ada-modules/gprbuild/boot.nix @@ -110,5 +110,11 @@ stdenv.mkDerivation { license = lib.licenses.gpl3Plus; maintainers = [ lib.maintainers.sternenseemann ]; platforms = lib.platforms.all; + # gprbuild-boot builds on darwin, but `gprconfig` stack overflows whenever + # it runs during the enumeration of available toolchains + # This doesn't seem to be a problem with our compiler definition `./nixpkgs-gnat.xml` + # as a gprbuild system without that configuration also stack faults. + # Maybe a linker issue? + broken = stdenv.hostPlatform.isDarwin; }; } diff --git a/pkgs/development/compilers/gcc/common/configure-flags.nix b/pkgs/development/compilers/gcc/common/configure-flags.nix index 66099c2297435..d7b9344574f1e 100644 --- a/pkgs/development/compilers/gcc/common/configure-flags.nix +++ b/pkgs/development/compilers/gcc/common/configure-flags.nix @@ -8,7 +8,9 @@ threadsCross, version, - apple-sdk, + is13, + apple-sdk_14, + apple-sdk_15, binutils, gmp, mpfr, @@ -53,6 +55,8 @@ let targetPlatform ; + appleSdk = if langAda && !is13 then apple-sdk_15 else apple-sdk_14; + # See https://github.com/NixOS/nixpkgs/pull/209870#issuecomment-1500550903 disableBootstrap' = disableBootstrap && !langFortran && !langGo; @@ -159,12 +163,11 @@ let # gcc builds for cross-compilers (build != host) or cross-built # gcc (host != target) always apply the offset prefix to disentangle # target headers from build or host headers: - # ${with_build_sysroot}${native_system_header_dir} - # or ${test_exec_prefix}/${target_noncanonical}/sys-include - # or ${with_sysroot}${native_system_header_dir} + # ${with_sysroot}${native_system_header_dir} + # and ${with_build_sysroot}${native_system_header_dir} # While native build (build == host == target) uses passed headers # path as is: - # ${with_build_sysroot}${native_system_header_dir} + # ${with_sysroot}${native_system_header_dir} # # Nixpkgs uses flat directory structure for both native and cross # cases. As a result libc headers don't get found for cross case @@ -175,10 +178,14 @@ let # We pick "/" path to effectively avoid sysroot offset and make it work # as a native case. # Darwin requires using the SDK as the sysroot for `SDKROOT` to work correctly. - "--with-build-sysroot=${if targetPlatform.isDarwin then apple-sdk.sdkroot else "/"}" + "--with-build-sysroot=${if targetPlatform.isDarwin then appleSdk.sdkroot else "/"}" # Same with the stdlibc++ headers embedded in the gcc output "--with-gxx-include-dir=${placeholder "out"}/include/c++/${version}/" ] + ++ lib.optionals (!withoutTargetLibc && targetPlatform.isDarwin && !crossDarwin) [ + # Building on Darwin often requires --with-sysroot. + "--with-sysroot=${appleSdk.sdkroot}" + ] # Basic configuration ++ [ diff --git a/pkgs/development/compilers/gcc/common/dependencies.nix b/pkgs/development/compilers/gcc/common/dependencies.nix index 9d8feadde99e7..105fac5fe094c 100644 --- a/pkgs/development/compilers/gcc/common/dependencies.nix +++ b/pkgs/development/compilers/gcc/common/dependencies.nix @@ -2,6 +2,7 @@ lib, stdenv, version, + is13, buildPackages, targetPackages, texinfo, @@ -43,9 +44,9 @@ in nativeBuildInputs = [ texinfo which - gettext autoconf269 ] + ++ optionals (!is13) [ gettext ] ++ optionals (perl != null) [ perl ] ++ optionals (with stdenv.targetPlatform; isVc4 || isRedox || isSnapshot && flex != null) [ flex ] ++ optionals langAda [ gnat-bootstrap ] diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix index 615cd2b3b19a2..3012bccba8d7f 100644 --- a/pkgs/development/compilers/gcc/default.nix +++ b/pkgs/development/compilers/gcc/default.nix @@ -58,7 +58,8 @@ nukeReferences, callPackage, majorMinorVersion, - apple-sdk, + apple-sdk_14, + apple-sdk_15, darwin, }: @@ -84,6 +85,8 @@ let majorVersion = versions.major version; is13 = majorVersion == "13"; + appleSdk = if langAda && !is13 then apple-sdk_15 else apple-sdk_14; + # releases have a form: MAJOR.MINOR.MICRO, like 14.2.1 # snapshots have a form like MAJOR.MINOR.MICRO.DATE, like 14.2.1.20250322 isSnapshot = lib.length (lib.splitVersion version) == 4; @@ -127,7 +130,8 @@ let ; # inherit generated with 'nix eval --json --impure --expr "with import ./. {}; lib.attrNames (lib.functionArgs gcc${majorVersion}.cc.override)" | jq '.[]' --raw-output' inherit - apple-sdk + apple-sdk_14 + apple-sdk_15 autoconf269 binutils buildPackages @@ -149,6 +153,7 @@ let gnat-bootstrap gnused isl + is13 langAda langC langCC @@ -375,6 +380,11 @@ pipe NIX_LDFLAGS = optionalString hostPlatform.isSunOS "-lm"; + # Override isysroot for GNAT on Darwin due to SDK version sensitivity; GNAT 14+ requires Apple SDK 15 or later. + NIX_CFLAGS_COMPILE = optionalString ( + hostPlatform.isDarwin && langAda + ) "-isysroot ${appleSdk.sdkroot}"; + inherit (callFile ./common/extra-target-flags.nix { }) EXTRA_FLAGS_FOR_TARGET EXTRA_LDFLAGS_FOR_TARGET diff --git a/pkgs/development/compilers/gcc/patches/13/gnat13-aarch64-darwin-trampoline.patch b/pkgs/development/compilers/gcc/patches/13/gnat13-aarch64-darwin-trampoline.patch new file mode 100644 index 0000000000000..2065a90d136a5 --- /dev/null +++ b/pkgs/development/compilers/gcc/patches/13/gnat13-aarch64-darwin-trampoline.patch @@ -0,0 +1,202 @@ +From a41f0707bdcc9fb6dab39eb8ce7e392138d16dc0 Mon Sep 17 00:00:00 2001 +From: zinzilulo <214774502+zinzilulo@users.noreply.github.com> +Date: Wed, 27 May 2026 18:25:14 +0100 +Subject: [PATCH] Allow GNAT 13 bootstrap on aarch64-darwin with nested + trampoline symbol mismatch + +This patch renames nested function trampoline helper symbols from the +__gcc_* namespace to __builtin_* across GCC and libgcc in order to allow +GNAT 13 to build on aarch64-darwin under bootstrap constraints where the +prebuilt stage1 compiler does not provide the newer symbol set. + +The change updates builtin definitions, Darwin export lists, +documentation, +and libgcc implementations of the heap trampoline hooks used by +-ftrampoline-impl=heap. + +This is a bootstrap compatibility workaround to bridge the ABI mismatch +between the Alire/GNAT-FSF-build GNAT 13.2.0-2 compiler and the +IainS/gcc-13-branch 13.4-darwin-r0 source tree. +--- + gcc/builtins.def | 4 ++-- + gcc/config/darwin.h | 8 ++++---- + gcc/doc/invoke.texi | 4 ++-- + gcc/tree.cc | 8 ++++---- + libgcc/config/aarch64/heap-trampoline.c | 8 ++++---- + libgcc/config/i386/heap-trampoline.c | 8 ++++---- + libgcc/libgcc-std.ver.in | 4 ++-- + libgcc/libgcc2.h | 4 ++-- + 8 files changed, 24 insertions(+), 24 deletions(-) + +diff --git a/gcc/builtins.def b/gcc/builtins.def +index 448cf837ec8..5bf4769ae47 100644 +--- a/gcc/builtins.def ++++ b/gcc/builtins.def +@@ -1067,8 +1067,8 @@ DEF_BUILTIN_STUB (BUILT_IN_ADJUST_TRAMPOLINE, "__builtin_adjust_trampoline") + DEF_BUILTIN_STUB (BUILT_IN_INIT_DESCRIPTOR, "__builtin_init_descriptor") + DEF_BUILTIN_STUB (BUILT_IN_ADJUST_DESCRIPTOR, "__builtin_adjust_descriptor") + DEF_BUILTIN_STUB (BUILT_IN_NONLOCAL_GOTO, "__builtin_nonlocal_goto") +-DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_CREATED, "__gcc_nested_func_ptr_created", BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LIST) +-DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_DELETED, "__gcc_nested_func_ptr_deleted", BT_FN_VOID, ATTR_NOTHROW_LIST) ++DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_CREATED, "__builtin_nested_func_ptr_created", BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LIST) ++DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_DELETED, "__builtin_nested_func_ptr_deleted", BT_FN_VOID, ATTR_NOTHROW_LIST) + + /* Implementing __builtin_setjmp. */ + DEF_BUILTIN_STUB (BUILT_IN_SETJMP_SETUP, "__builtin_setjmp_setup") +diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h +index 0cc6f021365..47bca6f1db1 100644 +--- a/gcc/config/darwin.h ++++ b/gcc/config/darwin.h +@@ -433,10 +433,10 @@ extern GTY(()) int darwin_ms_struct; + ___emutls_get_address -exported_symbol ___emutls_get_address \ + -U ___emutls_register_common \ + -exported_symbol ___emutls_register_common \ +- -U ___gcc_nested_func_ptr_created \ +- -exported_symbol ___gcc_nested_func_ptr_created \ +- -U ___gcc_nested_func_ptr_deleted \ +- -exported_symbol ___gcc_nested_func_ptr_deleted \ ++ -U ___builtin_nested_func_ptr_created \ ++ -exported_symbol ___builtin_nested_func_ptr_created \ ++ -U ___builtin_nested_func_ptr_deleted \ ++ -exported_symbol ___builtin_nested_func_ptr_deleted \ + }} \ + }}}\ + %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\ +diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi +index 8f82ba0ecfa..4d5bba42fcd 100644 +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -18718,8 +18718,8 @@ for nested functions. + By default, trampolines are generated on stack. However, certain platforms + (such as the Apple M1) do not permit an executable stack. Compiling with + @option{-ftrampoline-impl=heap} generate calls to +-@code{__gcc_nested_func_ptr_created} and +-@code{__gcc_nested_func_ptr_deleted} in order to allocate and ++@code{__builtin_nested_func_ptr_created} and ++@code{__builtin_nested_func_ptr_deleted} in order to allocate and + deallocate trampoline space on the executable heap. These functions are + implemented in libgcc, and will only be provided on specific targets: + x86_64 Darwin, x86_64 and aarch64 Linux. @emph{PLEASE NOTE}: Heap +diff --git a/gcc/tree.cc b/gcc/tree.cc +index 032b87ee1c8..54abc791c88 100644 +--- a/gcc/tree.cc ++++ b/gcc/tree.cc +@@ -9874,17 +9874,17 @@ build_common_builtin_nodes (void) + ptr_type_node, // void *func + ptr_ptr_type_node, // void **dst + NULL_TREE); +- local_define_builtin ("__builtin___gcc_nested_func_ptr_created", ftype, ++ local_define_builtin ("__builtin___builtin_nested_func_ptr_created", ftype, + BUILT_IN_GCC_NESTED_PTR_CREATED, +- "__gcc_nested_func_ptr_created", ECF_NOTHROW); ++ "__builtin_nested_func_ptr_created", ECF_NOTHROW); + } + + if (!builtin_decl_explicit_p (BUILT_IN_GCC_NESTED_PTR_DELETED)) + { + ftype = build_function_type_list (void_type_node, NULL_TREE); +- local_define_builtin ("__builtin___gcc_nested_func_ptr_deleted", ftype, ++ local_define_builtin ("__builtin___builtin_nested_func_ptr_deleted", ftype, + BUILT_IN_GCC_NESTED_PTR_DELETED, +- "__gcc_nested_func_ptr_deleted", ECF_NOTHROW); ++ "__builtin_nested_func_ptr_deleted", ECF_NOTHROW); + } + + ftype = build_function_type_list (void_type_node, +diff --git a/libgcc/config/aarch64/heap-trampoline.c b/libgcc/config/aarch64/heap-trampoline.c +index b2c69aa5892..2e47cf56dc6 100644 +--- a/libgcc/config/aarch64/heap-trampoline.c ++++ b/libgcc/config/aarch64/heap-trampoline.c +@@ -26,8 +26,8 @@ int get_trampolines_per_page (void); + struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent); + void *allocate_trampoline_page (void); + +-void __gcc_nested_func_ptr_created (void *chain, void *func, void **dst); +-void __gcc_nested_func_ptr_deleted (void); ++void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst); ++void __builtin_nested_func_ptr_deleted (void); + + #if defined(__linux__) + static const unsigned char aarch64_trampoline_insns[6][4] = { +@@ -115,7 +115,7 @@ allocate_tramp_ctrl (struct tramp_ctrl_data *parent) + + HEAP_T_ATTR + void +-__gcc_nested_func_ptr_created (void *chain, void *func, void **dst) ++__builtin_nested_func_ptr_created (void *chain, void *func, void **dst) + { + if (tramp_ctrl_curr == NULL) + { +@@ -163,7 +163,7 @@ __gcc_nested_func_ptr_created (void *chain, void *func, void **dst) + + HEAP_T_ATTR + void +-__gcc_nested_func_ptr_deleted (void) ++__builtin_nested_func_ptr_deleted (void) + { + if (tramp_ctrl_curr == NULL) + abort (); +diff --git a/libgcc/config/i386/heap-trampoline.c b/libgcc/config/i386/heap-trampoline.c +index 2e8df1cfbd2..34aace2b5a6 100644 +--- a/libgcc/config/i386/heap-trampoline.c ++++ b/libgcc/config/i386/heap-trampoline.c +@@ -26,8 +26,8 @@ int get_trampolines_per_page (void); + struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent); + void *allocate_trampoline_page (void); + +-void __gcc_nested_func_ptr_created (void *chain, void *func, void **dst); +-void __gcc_nested_func_ptr_deleted (void); ++void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst); ++void __builtin_nested_func_ptr_deleted (void); + + #if __x86_64__ + +@@ -179,7 +179,7 @@ allocate_tramp_ctrl (struct tramp_ctrl_data *parent) + + HEAP_T_ATTR + void +-__gcc_nested_func_ptr_created (void *chain, void *func, void **dst) ++__builtin_nested_func_ptr_created (void *chain, void *func, void **dst) + { + if (tramp_ctrl_curr == NULL) + { +@@ -233,7 +233,7 @@ __gcc_nested_func_ptr_created (void *chain, void *func, void **dst) + + HEAP_T_ATTR + void +-__gcc_nested_func_ptr_deleted (void) ++__builtin_nested_func_ptr_deleted (void) + { + if (tramp_ctrl_curr == NULL) + abort (); +diff --git a/libgcc/libgcc-std.ver.in b/libgcc/libgcc-std.ver.in +index ad854bf0ded..acc4e6cfab8 100644 +--- a/libgcc/libgcc-std.ver.in ++++ b/libgcc/libgcc-std.ver.in +@@ -1947,6 +1947,6 @@ GCC_7.0.0 { + + %inherit GCC_14.0.0 GCC_7.0.0 + GCC_14.0.0 { +- __gcc_nested_func_ptr_created +- __gcc_nested_func_ptr_deleted ++ __builtin_nested_func_ptr_created ++ __builtin_nested_func_ptr_deleted + } +diff --git a/libgcc/libgcc2.h b/libgcc/libgcc2.h +index a7a5dff0184..ac7eaab4f01 100644 +--- a/libgcc/libgcc2.h ++++ b/libgcc/libgcc2.h +@@ -29,8 +29,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + #pragma GCC visibility push(default) + #endif + +-extern void __gcc_nested_func_ptr_created (void *, void *, void **); +-extern void __gcc_nested_func_ptr_deleted (void); ++extern void __builtin_nested_func_ptr_created (void *, void *, void **); ++extern void __builtin_nested_func_ptr_deleted (void); + + extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t); + extern void __clear_cache (void *, void *); +-- +2.50.1 (Apple Git-155) + diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix index 5be64c16ce845..cc0b5b47e9b4d 100644 --- a/pkgs/development/compilers/gcc/patches/default.nix +++ b/pkgs/development/compilers/gcc/patches/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, + is13, langC, langAda, langObjC, @@ -139,16 +140,6 @@ optionals noSysDirs ( atLeast14 && stdenv.hostPlatform.isDarwin && langAda ) ../patches/14/gcc-darwin-remove-coreservices.patch -# Use absolute path in GNAT dylib install names on Darwin -++ optionals (stdenv.hostPlatform.isDarwin && langAda) ( - { - "15" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; - "14" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; - "13" = [ ./gnat-darwin-dylib-install-name-13.patch ]; - } - .${majorVersion} or [ ] -) - # Here we apply patches by Iains (https://github.com/iains) # GitHub's "compare" API produces unstable diffs, so we resort to reusing # diffs from the Homebrew repo. @@ -185,6 +176,21 @@ optionals noSysDirs ( .${majorVersion} or [ ] ) +# Use absolute path in GNAT dylib install names on Darwin +++ optionals (stdenv.hostPlatform.isDarwin && langAda) ( + { + "15" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; + "14" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; + # After the Iains patch, GCC 13 and 14 share the same patch. + "13" = [ ../patches/14/gnat-darwin-dylib-install-name-14.patch ]; + } + .${majorVersion} or [ ] +) + +++ optional ( + langAda && is13 && canApplyIainsDarwinPatches +) ./13/gnat13-aarch64-darwin-trampoline.patch + ++ optional (targetPlatform.isWindows || targetPlatform.isCygwin) (fetchpatch { name = "libstdc-fix-compilation-in-freestanding-win32.patch"; url = "https://inbox.sourceware.org/gcc-patches/20250922182808.2599390-2-corngood@gmail.com/raw"; diff --git a/pkgs/development/compilers/gcc/patches/gnat-darwin-dylib-install-name-13.patch b/pkgs/development/compilers/gcc/patches/gnat-darwin-dylib-install-name-13.patch deleted file mode 100644 index 19c405d1226dc..0000000000000 --- a/pkgs/development/compilers/gcc/patches/gnat-darwin-dylib-install-name-13.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/gcc/ada/gcc-interface/Makefile.in -+++ b/gcc/ada/gcc-interface/Makefile.in -@@ -788,13 +788,13 @@ gnatlib-shared-darwin: - -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(MISCLIB) - cd $(RTSDIR); $(GCC_FOR_ADA_RTS) -dynamiclib $(PICFLAG_FOR_TARGET) \ - -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(GNATRTL_TASKING_OBJS) \ - $(SO_OPTS) \ -- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ -+ -Wl,-install_name,$(ADA_RTL_DSO_DIR)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ - $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) - cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ - libgnat$(soext) diff --git a/pkgs/development/compilers/gnat-bootstrap/default.nix b/pkgs/development/compilers/gnat-bootstrap/default.nix index a0ba3013efc0e..650bf5b37e405 100644 --- a/pkgs/development/compilers/gnat-bootstrap/default.nix +++ b/pkgs/development/compilers/gnat-bootstrap/default.nix @@ -33,60 +33,110 @@ stdenv.mkDerivation ( url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-${finalAttrs.version}/gnat-${stdenv.hostPlatform.system}-${finalAttrs.version}.tar.gz"; in { - "12" = { - gccVersion = "12.1.0"; + "13" = { + gccVersion = "13.2.0"; alireRevision = "2"; } // { x86_64-darwin = { inherit url; - hash = "sha256-zrcVFvFZMlGUtkG0p1wST6kGInRI64Icdsvkcf25yVs="; - upstreamTriplet = "x86_64-apple-darwin19.6.0"; + hash = "sha256-DNHcHTIi7pw0rsVtpyGTyLVElq3IoO2YX/OkDbdeQyo="; + upstreamTriplet = "x86_64-apple-darwin21.6.0"; }; x86_64-linux = { inherit url; - hash = "sha256-EPDPOOjWJnJsUM7GGxj20/PXumjfLoMIEFX1EDtvWVY="; + hash = "sha256-DC95udGSzRDE22ON4UpekxTYWOSBeUdJvILbSFj6MFQ="; upstreamTriplet = "x86_64-pc-linux-gnu"; }; + aarch64-darwin = { + inherit url; + hash = "sha256-Bjl6iuM2xLknezR92j/kpDYpxqTcxK1v8rffmivOAVw="; + upstreamTriplet = "aarch64-apple-darwin23.2.0"; + }; } .${stdenv.hostPlatform.system} or throwUnsupportedSystem; - "13" = { - gccVersion = "13.2.0"; - alireRevision = "2"; + "14" = { + gccVersion = "14.2.0"; + alireRevision = "1"; } // { x86_64-darwin = { inherit url; - hash = "sha256-DNHcHTIi7pw0rsVtpyGTyLVElq3IoO2YX/OkDbdeQyo="; + hash = "sha256-3YOnvuI6Qq7huQcqgFSz/o+ZgY2wNkKDqHIuzNz1MVY="; upstreamTriplet = "x86_64-apple-darwin21.6.0"; }; x86_64-linux = { inherit url; - hash = "sha256-DC95udGSzRDE22ON4UpekxTYWOSBeUdJvILbSFj6MFQ="; + hash = "sha256-pH3IuOpCM9sY/ppTYcxBmgpsUiMrisIjmAa/rmmZXb4="; upstreamTriplet = "x86_64-pc-linux-gnu"; }; + aarch64-linux = { + inherit url; + hash = "sha256-SVW/0yyj6ZH1GAjvD+unII+zSLGd3KGFt1bjjQ3SEFU="; + upstreamTriplet = "aarch64-linux-gnu"; + }; + aarch64-darwin = { + inherit url; + hash = "sha256-/nARwdQzAMd41fslUbrgloxn0hVZp9PokfQ9yPmL1g8="; + upstreamTriplet = "aarch64-apple-darwin23.6.0"; + }; } .${stdenv.hostPlatform.system} or throwUnsupportedSystem; - "14" = { - gccVersion = "14.2.0"; + "15" = { + gccVersion = "15.2.0"; + } + // { + x86_64-darwin = { + alireRevision = "1"; + inherit url; + hash = "sha256-1YTqWsLBwNH/GBAtF5CL/YZHQvfE/3PE0LlLJ9HmjAg="; + upstreamTriplet = "x86_64-apple-darwin22.6.0"; + }; + x86_64-linux = { + alireRevision = "1"; + inherit url; + hash = "sha256-b4hAg3ifoBRqgPxpfMYuOdunw7wzRTL/G5YGBO+im24="; + upstreamTriplet = "x86_64-pc-linux-gnu"; + }; + aarch64-linux = { + alireRevision = "1"; + inherit url; + hash = "sha256-0V/VHqOSYQI6LmvpUIHy3zB6hI3dG0njOcDsrg8oZq8="; + upstreamTriplet = "aarch64-linux-gnu"; + }; + aarch64-darwin = { + alireRevision = "2-pre0"; + url = "https://github.com/alire-project/GNAT-FSF-builds/releases/download/gnat-15.2.0-2-macos-pre0/gnat-${stdenv.hostPlatform.system}-${finalAttrs.version}.tar.gz"; + hash = "sha256-4bFtsjixfXYc8wYOc+5iAbp1MmiIS1h1NcdKno2IdJg="; + upstreamTriplet = "aarch64-apple-darwin24.6.0"; + }; + } + .${stdenv.hostPlatform.system} or throwUnsupportedSystem; + "16" = { + gccVersion = "16.1.0"; alireRevision = "1"; } // { x86_64-darwin = { inherit url; - hash = "sha256-3YOnvuI6Qq7huQcqgFSz/o+ZgY2wNkKDqHIuzNz1MVY="; - upstreamTriplet = "x86_64-apple-darwin21.6.0"; + hash = "sha256-u/cYFKqWLTaFADTscDxnrkYSoemKrfKpNIZ8XPlTbLI="; + upstreamTriplet = "x86_64-apple-darwin24.6.0"; }; x86_64-linux = { inherit url; - hash = "sha256-pH3IuOpCM9sY/ppTYcxBmgpsUiMrisIjmAa/rmmZXb4="; + hash = "sha256-5bKYPJnXDGa80BtAogLE82X0zTuYKdN2cKh503oMeic="; upstreamTriplet = "x86_64-pc-linux-gnu"; }; aarch64-linux = { inherit url; - hash = "sha256-SVW/0yyj6ZH1GAjvD+unII+zSLGd3KGFt1bjjQ3SEFU="; + hash = "sha256-jJnqDJGBOjqbT4hDW0nRpV0oA3RXxJhvI7BuvQkPDQI="; upstreamTriplet = "aarch64-linux-gnu"; }; + aarch64-darwin = { + inherit url; + hash = "sha256-TJlV/Ngq6SwpIgGkwamTN3aRGP2BnEzJyBGovtWb6Y0="; + upstreamTriplet = "aarch64-apple-darwin24.6.0"; + }; } .${stdenv.hostPlatform.system} or throwUnsupportedSystem; }; @@ -136,13 +186,15 @@ stdenv.mkDerivation ( ++ lib.optionals ( - lib.versionAtLeast majorVersion "14" && stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux + (majorVersion == "14" && stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) + || (lib.versionAtLeast majorVersion "15" && stdenv.hostPlatform.isLinux) ) [ # not sure why the bootstrap binaries link to zstd only on this architecture but they do zstd ]; + __structuredAttrs = true; strictDeps = true; # https://github.com/alire-project/GNAT-FSF-builds/issues/51 @@ -194,7 +246,7 @@ stdenv.mkDerivation ( # [2]: https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Fixed-Headers.html + lib.optionalString (stdenv.hostPlatform.isDarwin) '' - upstreamBuildPrefix="/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/x86_64-darwin/gcc/install" + upstreamBuildPrefix="/Users/runner/work/GNAT-FSF-builds/GNAT-FSF-builds/sbx/${stdenv.hostPlatform.system}/gcc/install" for i in "$out"/lib/*.dylib "$out"/lib/gcc/*/*/adalib/*.dylib; do if [[ -f "$i" && ! -h "$i" ]]; then install_name_tool -id "$i" "$i" || true @@ -238,8 +290,11 @@ stdenv.mkDerivation ( platforms = [ "x86_64-linux" "x86_64-darwin" + "aarch64-darwin" ] - ++ lib.optionals (lib.versionAtLeast majorVersion "14") [ "aarch64-linux" ]; + ++ lib.optionals (lib.versionAtLeast majorVersion "14") [ + "aarch64-linux" + ]; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; } diff --git a/pkgs/development/compilers/llvm/21/flang/accept-and-ignore-some-gfortran-optimization-flags.patch b/pkgs/development/compilers/llvm/21/flang/accept-and-ignore-some-gfortran-optimization-flags.patch new file mode 100644 index 0000000000000..912be71696212 --- /dev/null +++ b/pkgs/development/compilers/llvm/21/flang/accept-and-ignore-some-gfortran-optimization-flags.patch @@ -0,0 +1,49 @@ +From da7174958be43d69b2ed6b581c8ac8a382b59180 Mon Sep 17 00:00:00 2001 +From: Tarun Prabhu +Date: Tue, 28 Oct 2025 19:35:27 -0600 +Subject: [PATCH] [flang][Driver] Accept (and ignore) some gfortran-specific + options + +Enable the clang_ignored_gcc_optimization_f_group in flang. These options are +accepted by clang, but ignored after emitting a warning message. flang's +behavior now mirrors clang. + +Fixes #158436 +--- + clang/include/clang/Driver/Options.td | 3 ++- + clang/lib/Driver/ToolChains/Flang.cpp | 8 ++++++++ + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td +index ef1c8758705f4..cac122d296624 100644 +--- a/include/clang/Driver/Options.td ++++ b/include/clang/Driver/Options.td +@@ -316,7 +316,8 @@ def mno_mpx : Flag<["-"], "mno-mpx">, Group; + + // Group that ignores all gcc optimizations that won't be implemented + def clang_ignored_gcc_optimization_f_Group : OptionGroup< +- "">, Group, Flags<[Ignored]>; ++ "">, ++ Group, Flags<[Ignored]>, Visibility<[ClangOption, FlangOption]>; + + class DiagnosticOpts + : KeyPathAndMacro<"DiagnosticOpts->", base, "DIAG_"> {} +diff --git a/lib/Driver/ToolChains/Flang.cpp b/lib/Driver/ToolChains/Flang.cpp +index 88bce181d40d2..2f5e93d139858 100644 +--- a/lib/Driver/ToolChains/Flang.cpp ++++ b/lib/Driver/ToolChains/Flang.cpp +@@ -858,6 +858,14 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, + if (const Arg *A = Args.getLastArg(Opt)) + D.Diag(diag::warn_drv_invalid_argument_for_flang) << A->getSpelling(); + ++ // Warn about options that are ignored by flang. These are options that are ++ // accepted by gfortran, but have no equivalent in flang. ++ for (const Arg *A : ++ Args.filtered(options::OPT_clang_ignored_gcc_optimization_f_Group)) { ++ D.Diag(diag::warn_ignored_gcc_optimization) << A->getAsString(Args); ++ A->claim(); ++ } ++ + const InputInfo &Input = Inputs[0]; + types::ID InputType = Input.getType(); + diff --git a/pkgs/development/compilers/llvm/21/flang/use-xflang-in-diagnostics.patch b/pkgs/development/compilers/llvm/21/flang/use-xflang-in-diagnostics.patch new file mode 100644 index 0000000000000..29af46eba7989 --- /dev/null +++ b/pkgs/development/compilers/llvm/21/flang/use-xflang-in-diagnostics.patch @@ -0,0 +1,40 @@ +From 9ab9d33171ee35c948967a2a2d714b8059887607 Mon Sep 17 00:00:00 2001 +From: Tarun Prabhu +Date: Wed, 29 Oct 2025 09:13:17 -0600 +Subject: [PATCH] [flang][driver] Use -Xflang in diagnostics + +When an option that is only available in `flang -fc1` is provided to +`flang`, emit a diagnostic with a suggestion containing "did you mean +-Xflang '-foo'". + +Partially addresses #163550. +--- + clang/lib/Driver/Driver.cpp | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp +index 40ea513e85427..71c52807091ba 100644 +--- a/lib/Driver/Driver.cpp ++++ b/lib/Driver/Driver.cpp +@@ -365,9 +365,18 @@ + auto ArgString = A->getAsString(Args); + std::string Nearest; + if (getOpts().findNearest(ArgString, Nearest, VisibilityMask) > 1) { +- if (!IsCLMode() && +- getOpts().findExact(ArgString, Nearest, +- llvm::opt::Visibility(options::CC1Option))) { ++ if (IsFlangMode()) { ++ if (getOpts().findExact(ArgString, Nearest, ++ llvm::opt::Visibility(options::FC1Option))) { ++ DiagID = diag::err_drv_unknown_argument_with_suggestion; ++ Diags.Report(DiagID) << ArgString << "-Xflang " + Nearest; ++ } else { ++ DiagID = diag::err_drv_unknown_argument; ++ Diags.Report(DiagID) << ArgString; ++ } ++ } else if (!IsCLMode() && getOpts().findExact(ArgString, Nearest, ++ llvm::opt::Visibility( ++ options::CC1Option))) { + DiagID = diag::err_drv_unknown_argument_with_suggestion; + Diags.Report(DiagID) << ArgString << "-Xclang " + Nearest; + } else { diff --git a/pkgs/development/compilers/llvm/21/flang/warn-on-fbuiltin-and-fno-builtin.patch b/pkgs/development/compilers/llvm/21/flang/warn-on-fbuiltin-and-fno-builtin.patch new file mode 100644 index 0000000000000..ee2cb99b57a5c --- /dev/null +++ b/pkgs/development/compilers/llvm/21/flang/warn-on-fbuiltin-and-fno-builtin.patch @@ -0,0 +1,74 @@ +From 263377a175709c2d11f3ff63c2d2d2843afb91ea Mon Sep 17 00:00:00 2001 +From: Tarun Prabhu +Date: Thu, 23 Oct 2025 13:24:20 -0600 +Subject: [PATCH] [flang][Driver] Warn on -fbuiltin and -fno-builtin + +The options -fbuiltin and -fno-builtin are not valid for Fortran. However, +they are accepted by gfortran which emits a warning message but continues to +compile the code. Both -fbuiltin and -fno-builtin have been enabled for flang. +Specifying either will result in a warning message being shown but no other +effects. Compilation will proceed normally after these warnings are shown. This +brings flang's behavior in line with gfortran for these options. + +Fixes #164766 +--- + clang/include/clang/Basic/DiagnosticDriverKinds.td | 3 +++ + clang/include/clang/Driver/Options.td | 4 ++-- + clang/lib/Driver/ToolChains/Flang.cpp | 7 +++++++ + 3 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/include/clang/Basic/DiagnosticDriverKinds.td b/include/clang/Basic/DiagnosticDriverKinds.td +index 0581bf353d936..83980e3ac35b7 100644 +--- a/include/clang/Basic/DiagnosticDriverKinds.td ++++ b/include/clang/Basic/DiagnosticDriverKinds.td +@@ -131,6 +131,9 @@ def warn_drv_unsupported_option_for_offload_arch_req_feature : Warning< + def warn_drv_unsupported_option_for_target : Warning< + "ignoring '%0' option as it is not currently supported for target '%1'">, + InGroup; ++def warn_drv_invalid_argument_for_flang : Warning< ++ "'%0' is not valid for Fortran">, ++ InGroup; + def warn_drv_unsupported_option_for_flang : Warning< + "the argument '%0' is not supported for option '%1'. Mapping to '%1%2'">, + InGroup; +diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td +index ef1c8758705f4..bca8b26bc3d30 100644 +--- a/include/clang/Driver/Options.td ++++ b/include/clang/Driver/Options.td +@@ -1940,7 +1940,7 @@ defm borland_extensions : BoolFOption<"borland-extensions", + "Accept non-standard constructs supported by the Borland compiler">, + NegFlag>; + def fbuiltin : Flag<["-"], "fbuiltin">, Group, +- Visibility<[ClangOption, CLOption, DXCOption]>; ++ Visibility<[ClangOption, CLOption, DXCOption, FlangOption, FC1Option]>; + def fbuiltin_module_map : Flag <["-"], "fbuiltin-module-map">, Group, + Flags<[]>, HelpText<"Load the clang builtins module map file.">; + defm caret_diagnostics : BoolFOption<"caret-diagnostics", +@@ -3493,7 +3493,7 @@ def fno_assume_sane_operator_new : Flag<["-"], "fno-assume-sane-operator-new">, + HelpText<"Don't assume that C++'s global operator new can't alias any pointer">, + Visibility<[ClangOption, CC1Option]>, + MarshallingInfoNegativeFlag>; + def fno_builtin : Flag<["-"], "fno-builtin">, Group, +- Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, ++ Visibility<[ClangOption, CC1Option, CLOption, DXCOption, FlangOption, FC1Option]>, + HelpText<"Disable implicit builtin knowledge of functions">; + def fno_builtin_ : Joined<["-"], "fno-builtin-">, Group, + Visibility<[ClangOption, CC1Option, CLOption, DXCOption]>, +diff --git a/lib/Driver/ToolChains/Flang.cpp b/lib/Driver/ToolChains/Flang.cpp +index a56fa41c49d34..88bce181d40d2 100644 +--- a/lib/Driver/ToolChains/Flang.cpp ++++ b/lib/Driver/ToolChains/Flang.cpp +@@ -851,6 +851,13 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, + assert(false && "Unexpected action class for Flang tool."); + } + ++ // We support some options that are invalid for Fortran and have no effect. ++ // These are solely for compatibility with other compilers. Emit a warning if ++ // any such options are provided, then proceed normally. ++ for (options::ID Opt : {options::OPT_fbuiltin, options::OPT_fno_builtin}) ++ if (const Arg *A = Args.getLastArg(Opt)) ++ D.Diag(diag::warn_drv_invalid_argument_for_flang) << A->getSpelling(); ++ + const InputInfo &Input = Inputs[0]; + types::ID InputType = Input.getType(); + diff --git a/pkgs/development/compilers/llvm/common/clang/default.nix b/pkgs/development/compilers/llvm/common/clang/default.nix index 4b6a18a18a431..e353d9203b2a7 100644 --- a/pkgs/development/compilers/llvm/common/clang/default.nix +++ b/pkgs/development/compilers/llvm/common/clang/default.nix @@ -16,6 +16,7 @@ fixDarwinDylibNames, enableManpages ? false, enableClangToolsExtra ? true, + extraPatches ? [ ], devExtraCmakeFlags ? [ ], replaceVars, getVersionFile, @@ -73,7 +74,8 @@ stdenv.mkDerivation ( ]; stripLen = 1; hash = "sha256-1NKej08R9SPlbDY/5b0OKUsHjX07i9brR84yXiPwi7E="; - }); + }) + ++ extraPatches; nativeBuildInputs = [ cmake @@ -189,6 +191,8 @@ stdenv.mkDerivation ( passthru = { inherit libllvm; isClang = true; + langC = true; + langCC = true; hardeningUnsupportedFlagsByTargetPlatform = targetPlatform: [ "fortify3" ] diff --git a/pkgs/development/compilers/llvm/common/default.nix b/pkgs/development/compilers/llvm/common/default.nix index cd15cd6f36a55..4907eb7868393 100644 --- a/pkgs/development/compilers/llvm/common/default.nix +++ b/pkgs/development/compilers/llvm/common/default.nix @@ -473,28 +473,93 @@ makeScopeWithSplicing' { // lib.optionalAttrs (lib.versionAtLeast metadata.release_version "19") { bolt = callPackage ./bolt { }; } - // lib.optionalAttrs (lib.versionAtLeast metadata.release_version "20") { - flang = callPackage ./flang { }; - - libc-overlay = callPackage ./libc { - isFullBuild = false; - # Use clang due to "gnu::naked" not working on aarch64. - # Issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77882 - stdenv = overrideCC stdenv buildLlvmPackages.clang; - }; - - libc-full = callPackage ./libc { - isFullBuild = true; - # Use clang due to "gnu::naked" not working on aarch64. - # Issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77882 - stdenv = overrideCC stdenv buildLlvmPackages.clangNoLibcNoRt; - # FIXME: This should almost certainly be `stdenv.hostPlatform`. - cmake = if stdenv.targetPlatform.libc == "llvm" then cmakeMinimal else cmake; - python3 = if stdenv.targetPlatform.libc == "llvm" then python3Minimal else python3; - }; - - libc = - # FIXME: This should almost certainly be `stdenv.hostPlatform`. - if stdenv.targetPlatform.libc == "llvm" then self.libc-full else self.libc-overlay; - }; + // lib.optionalAttrs (lib.versionAtLeast metadata.release_version "20") ( + let + # Standalone flang still resolves driver/option definitions via the + # installed libclang package, so keep flang-specific driver backports + # in a private libclang variant instead of patching the flang source + # tree. The `-Xflang` diagnostic improvement applies to every + # supported standalone-flang version (20+); the other two backports + # are only needed up to LLVM 21 because upstream merged equivalent + # behaviour into LLVM 22. + flangDriverPatches = + lib.optionals (lib.versionAtLeast metadata.release_version "20") [ + (metadata.getVersionFile "flang/use-xflang-in-diagnostics.patch") + ] + ++ + lib.optionals + (lib.versionAtLeast metadata.release_version "20" && lib.versionOlder metadata.release_version "22") + [ + (metadata.getVersionFile "flang/warn-on-fbuiltin-and-fno-builtin.patch") + (metadata.getVersionFile "flang/accept-and-ignore-some-gfortran-optimization-flags.patch") + ]; + flangLibclang = + if flangDriverPatches == [ ] then + self.libclang + else + self.libclang.override { + extraPatches = flangDriverPatches; + }; + flangUnwrapped = callPackage ./flang { + libclang = flangLibclang; + }; + flangRt = callPackage ./flang-rt { + buildFlang = buildLlvmPackages.flang-unwrapped; + }; + in + { + flang-unwrapped = flangUnwrapped; + flang-rt = flangRt; + flang = + let + wrapped = wrapCCWith rec { + cc = flangUnwrapped; + bintools = bintools'; + extraPackages = [ targetLlvmPackages.flang-rt ]; + extraBuildCommands = mkExtraBuildCommands0 cc + '' + # triplet however is not used in darwin + PLATFORM_DIR="${if stdenv.targetPlatform.isDarwin then "darwin" else stdenv.targetPlatform.config}" + RT_LIB_PATH="${targetLlvmPackages.flang-rt}/lib/clang/${clangVersion}/lib/$PLATFORM_DIR" + if [ -d "$RT_LIB_PATH" ]; then + ln -s "$RT_LIB_PATH" "$rsrc"/lib + echo "-L$rsrc/lib" >> $out/nix-support/cc-ldflags + else + ln -s "${targetLlvmPackages.flang-rt}/lib" "$rsrc"/lib + echo "-L$rsrc/lib" >> $out/nix-support/cc-ldflags + fi + ''; + }; + tests = callPackage ./flang/tests.nix { + flang = wrapped; + }; + in + wrapped + // { + passthru = (wrapped.passthru or { }) // { + inherit tests; + }; + }; + + libc-overlay = callPackage ./libc { + isFullBuild = false; + # Use clang due to "gnu::naked" not working on aarch64. + # Issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77882 + stdenv = overrideCC stdenv buildLlvmPackages.clang; + }; + + libc-full = callPackage ./libc { + isFullBuild = true; + # Use clang due to "gnu::naked" not working on aarch64. + # Issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77882 + stdenv = overrideCC stdenv buildLlvmPackages.clangNoLibcNoRt; + # FIXME: This should almost certainly be `stdenv.hostPlatform`. + cmake = if stdenv.targetPlatform.libc == "llvm" then cmakeMinimal else cmake; + python3 = if stdenv.targetPlatform.libc == "llvm" then python3Minimal else python3; + }; + + libc = + # FIXME: This should almost certainly be `stdenv.hostPlatform`. + if stdenv.targetPlatform.libc == "llvm" then self.libc-full else self.libc-overlay; + } + ); } diff --git a/pkgs/development/compilers/llvm/common/flang-rt/default.nix b/pkgs/development/compilers/llvm/common/flang-rt/default.nix new file mode 100644 index 0000000000000..01a1d6ca8584c --- /dev/null +++ b/pkgs/development/compilers/llvm/common/flang-rt/default.nix @@ -0,0 +1,81 @@ +{ + lib, + stdenv, + llvm_meta, + monorepoSrc, + runCommand, + cmake, + libllvm, + ninja, + python3, + buildFlang, + version, +}: +let + + minDarwinVersion = "10.12"; + effectiveDarwinVersion = + if stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion minDarwinVersion then + minDarwinVersion + else + stdenv.hostPlatform.darwinMinVersion; +in +stdenv.mkDerivation (finalAttrs: { + pname = "flang-rt"; + inherit version; + + src = + runCommand "${finalAttrs.pname}-src-${version}" + { + inherit (monorepoSrc) passthru; + } + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/cmake "$out" + + mkdir -p "$out/llvm" + cp -r ${monorepoSrc}/llvm/cmake "$out/llvm" + cp -r ${monorepoSrc}/llvm/utils "$out/llvm" + cp -r ${monorepoSrc}/third-party "$out" + + cp -r ${monorepoSrc}/${finalAttrs.pname} "$out" + cp -r ${monorepoSrc}/flang "$out" + cp -r ${monorepoSrc}/runtimes "$out" + ''; + + sourceRoot = "${finalAttrs.src.name}/runtimes"; + + outputs = [ "out" ]; + + nativeBuildInputs = [ + buildFlang + cmake + ninja + python3 + ]; + buildInputs = [ + libllvm + ]; + + env = lib.optionalAttrs stdenv.isDarwin { + MACOSX_DEPLOYMENT_TARGET = effectiveDarwinVersion; + NIX_CFLAGS_COMPILE = "-mmacosx-version-min=${effectiveDarwinVersion}"; + }; + + cmakeFlags = [ + (lib.cmakeFeature "LLVM_DEFAULT_TARGET_TRIPLE" stdenv.hostPlatform.config) + (lib.cmakeFeature "CMAKE_Fortran_COMPILER" "${buildFlang}/bin/flang") + (lib.cmakeBool "CMAKE_Fortran_COMPILER_WORKS" true) + (lib.cmakeBool "CMAKE_Fortran_COMPILER_SUPPORTS_F90" true) + (lib.cmakeFeature "LLVM_DIR" "${libllvm.dev}/lib/cmake/llvm") + (lib.cmakeFeature "LLVM_ENABLE_RUNTIMES" "flang-rt") + ] + ++ lib.optionals stdenv.isDarwin [ + (lib.cmakeFeature "CMAKE_OSX_DEPLOYMENT_TARGET" effectiveDarwinVersion) + ]; + + meta = llvm_meta // { + homepage = "https://flang.llvm.org"; + description = "LLVM Fortran Runtime"; + }; +}) diff --git a/pkgs/development/compilers/llvm/common/flang/default.nix b/pkgs/development/compilers/llvm/common/flang/default.nix index 335633d7d19c9..5ddb77d74b2ef 100644 --- a/pkgs/development/compilers/llvm/common/flang/default.nix +++ b/pkgs/development/compilers/llvm/common/flang/default.nix @@ -23,21 +23,25 @@ stdenv.mkDerivation (finalAttrs: { pname = "flang"; inherit version; - src = runCommand "flang-src-${version}" { inherit (monorepoSrc) passthru; } '' - mkdir -p "$out" - cp -r ${monorepoSrc}/${finalAttrs.pname} "$out" - cp -r ${monorepoSrc}/cmake "$out" - cp -r ${monorepoSrc}/llvm "$out" - cp -r ${monorepoSrc}/clang "$out" - cp -r ${monorepoSrc}/mlir "$out" - cp -r ${monorepoSrc}/third-party "$out" - chmod -R +w $out/llvm - ''; + src = + runCommand "${finalAttrs.pname}-src-${finalAttrs.version}" + { + inherit (monorepoSrc) passthru; + } + '' + mkdir -p "$out" + cp -r ${monorepoSrc}/${finalAttrs.pname} "$out" + cp -r ${monorepoSrc}/cmake "$out" + cp -r ${monorepoSrc}/llvm "$out" + cp -r ${monorepoSrc}/clang "$out" + cp -r ${monorepoSrc}/mlir "$out" + cp -r ${monorepoSrc}/third-party "$out" + cp -r ${monorepoSrc}/flang-rt "$out" + chmod -R +w $out/llvm + ''; - patches = [ - ./dummy_target_19+.patch - ]; - patchFlags = [ "-p2" ]; + patches = [ ]; + patchFlags = [ "-p1" ]; sourceRoot = "${finalAttrs.src.name}/flang"; @@ -62,24 +66,35 @@ stdenv.mkDerivation (finalAttrs: { ls -l ${mlir.dev}/lib/cmake/mlir/MLIRConfig.cmake ''; cmakeFlags = [ - (lib.cmakeBool "CMAKE_VERBOSE_MAKEFILE" true) (lib.cmakeFeature "LLVM_DIR" "${libllvm.dev}/lib/cmake/llvm") - # TODO: Needs patches and the `lit` package like other LLVM builds? (lib.cmakeFeature "LLVM_TOOLS_BINARY_DIR" "${buildLlvmPackages.tblgen}/bin/") - (lib.cmakeFeature "LLVM_EXTERNAL_LIT" "${buildLlvmPackages.tblgen}/bin/llvm-lit") (lib.cmakeFeature "CLANG_DIR" "${libclang.dev}/lib/cmake/clang") (lib.cmakeFeature "MLIR_DIR" "${mlir.dev}/lib/cmake/mlir") (lib.cmakeFeature "MLIR_TABLEGEN_EXE" "${buildLlvmPackages.tblgen}/bin/mlir-tblgen") - (lib.cmakeFeature "MLIR_TABLEGEN_TARGET" "MLIR-TBLGen") - (lib.cmakeBool "LLVM_BUILD_EXAMPLES" false) + (lib.cmakeBool "MLIR_LINK_MLIR_DYLIB" (!stdenv.hostPlatform.isStatic)) + (lib.cmakeFeature "LLVM_LIT_ARGS" "-v") (lib.cmakeBool "LLVM_ENABLE_PLUGINS" false) (lib.cmakeBool "FLANG_STANDALONE_BUILD" true) (lib.cmakeBool "LLVM_INCLUDE_EXAMPLES" false) (lib.cmakeBool "FLANG_INCLUDE_TESTS" false) - ] ++ devExtraCmakeFlags; + passthru = { + # Used by cc-wrapper to determine whether or not the default setup hook is enabled. + langC = false; + langCC = false; + langFortran = true; + isClang = true; + isFlang = true; + + hardeningUnsupportedFlags = [ + "zerocallusedregs" + "stackprotector" + "stackclashprotection" + ]; + }; + postUnpack = '' chmod -R u+w -- $sourceRoot/.. ''; diff --git a/pkgs/development/compilers/llvm/common/flang/dummy_target_19+.patch b/pkgs/development/compilers/llvm/common/flang/dummy_target_19+.patch deleted file mode 100644 index ab09ef6504168..0000000000000 --- a/pkgs/development/compilers/llvm/common/flang/dummy_target_19+.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/flang/CMakeLists.txt b/flang/CMakeLists.txt -index 070c39eb6e9a..168c97524943 100644 ---- a/flang/CMakeLists.txt -+++ b/flang/CMakeLists.txt -@@ -1,6 +1,22 @@ - cmake_minimum_required(VERSION 3.20.0) - set(LLVM_SUBPROJECT_TITLE "Flang") - -+# Patch: define dummy mlir-tblgen target for TableGen.cmake -+if(DEFINED MLIR_TABLEGEN_EXE AND NOT TARGET mlir-tblgen) -+ add_executable(mlir-tblgen IMPORTED GLOBAL) -+ set_target_properties(mlir-tblgen PROPERTIES -+ IMPORTED_LOCATION "${MLIR_TABLEGEN_EXE}" -+ ) -+endif() -+ -+if(DEFINED MLIR_TABLEGEN_EXE AND NOT TARGET MLIR-TBLGen) -+ add_executable(MLIR-TBLGen IMPORTED GLOBAL) -+ set_target_properties(MLIR-TBLGen PROPERTIES -+ IMPORTED_LOCATION "${MLIR_TABLEGEN_EXE}" -+ ) -+endif() -+ -+ - if(NOT DEFINED LLVM_COMMON_CMAKE_UTILS) - set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake) - endif() diff --git a/pkgs/development/compilers/llvm/common/flang/tests.nix b/pkgs/development/compilers/llvm/common/flang/tests.nix new file mode 100644 index 0000000000000..4c195b9b27ff0 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/flang/tests.nix @@ -0,0 +1,92 @@ +{ + runCommand, + flang, +}: +let + flangExe = "${flang}/bin/flang"; + writeHello = '' + cat > hello.f90 <<'EOF' + program hello + end program hello + EOF + ''; +in +{ + compile-smoke = runCommand "flang-compile-smoke" { } '' + set -euo pipefail + + ${writeHello} + + ${flangExe} -c hello.f90 -o compile.o + [ -f compile.o ] + + cat > args.rsp <<'EOF' + -c + hello.f90 + -o + response.o + EOF + + ${flangExe} @args.rsp + [ -f response.o ] + + touch $out + ''; + + driver-flags = runCommand "flang-driver-flags" { } '' + set -euo pipefail + + ${writeHello} + + ${flangExe} -### -c hello.f90 > no-seed.log 2>&1 + if grep -F -- "-frandom-seed=" no-seed.log; then + echo "wrapper unexpectedly injected -frandom-seed" >&2 + exit 1 + fi + + # Confirm that user-supplied NIX_CFLAGS_COMPILE does not leak into the + # Fortran wrapper invocation: the wrapper must source flags from + # NIX_FFLAGS_COMPILE only, so a marker placed in NIX_CFLAGS_COMPILE + # must not appear in the resulting flang command line. + NIX_CFLAGS_COMPILE="-Icflags-leak-marker-include" \ + ${flangExe} -### -c hello.f90 > cflags-isolation.log 2>&1 + if grep -F -- "cflags-leak-marker-include" cflags-isolation.log; then + echo "NIX_CFLAGS_COMPILE leaked into the flang wrapper" >&2 + exit 1 + fi + + # Confirm that NIX_FFLAGS_COMPILE is the user-facing channel for + # Fortran flags and flows through to the driver. + NIX_FFLAGS_COMPILE="-Iffflags-marker-include" \ + ${flangExe} -### -c hello.f90 > fflags-passthrough.log 2>&1 + grep -F -- "ffflags-marker-include" fflags-passthrough.log + + ${flangExe} -### -fbuiltin -fno-builtin hello.f90 > builtin.log 2>&1 + grep -F -- "warning: '-fbuiltin' is not valid for Fortran" builtin.log + grep -F -- "warning: '-fno-builtin' is not valid for Fortran" builtin.log + if grep -F -- "error: unknown argument" builtin.log; then + echo "builtin compatibility flags unexpectedly failed" >&2 + exit 1 + fi + + ${flangExe} -### -fexpensive-optimizations hello.f90 > ignored-flag.log 2>&1 + grep -F -- "optimization flag '-fexpensive-optimizations' is not supported" ignored-flag.log + if grep -F -- "error: unknown argument" ignored-flag.log; then + echo "ignored gfortran-style flag unexpectedly failed" >&2 + exit 1 + fi + + if ${flangExe} -### -complex-range=full hello.f90 > suggestion.log 2>&1; then + echo "expected -complex-range=full to fail at the driver layer" >&2 + exit 1 + fi + grep -F -- "error: unknown argument '-complex-range=full'" suggestion.log + grep -F -- "did you mean '-Xflang -complex-range=full'" suggestion.log + if grep -F -- "-Xclang -complex-range=full" suggestion.log; then + echo "driver suggested -Xclang instead of -Xflang" >&2 + exit 1 + fi + + touch $out + ''; +} diff --git a/pkgs/development/compilers/llvm/common/libclc/default.nix b/pkgs/development/compilers/llvm/common/libclc/default.nix index 62a8dff18ec35..69350a9d3834b 100644 --- a/pkgs/development/compilers/llvm/common/libclc/default.nix +++ b/pkgs/development/compilers/llvm/common/libclc/default.nix @@ -97,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ llvm ]; strictDeps = true; - postInstall = '' + postInstall = lib.optionalString (lib.versionOlder finalAttrs.version "22.1") '' install -Dt $dev/bin prepare_builtins ''; diff --git a/pkgs/development/compilers/llvm/common/mlir/default.nix b/pkgs/development/compilers/llvm/common/mlir/default.nix index c68f6a9b0b68e..40bfddc38ee2f 100644 --- a/pkgs/development/compilers/llvm/common/mlir/default.nix +++ b/pkgs/development/compilers/llvm/common/mlir/default.nix @@ -39,6 +39,14 @@ stdenv.mkDerivation (finalAttrs: { patches = [ ./gnu-install-dirs.patch + # MLIRConfig.cmake unconditionally overwrites MLIR_TABLEGEN_EXE, breaking standalone + # builds that provide their own pre-built mlir-tblgen (e.g. in Nix sandboxed builds). + # The patch adds guards to respect caller-set values and auto-creates an imported + # mlir-tblgen target for downstream consumers. This replaces the previous dummy target + # workaround in flang's CMakeLists.txt. + + # Upstream issue: https://github.com/llvm/llvm-project/issues/150986 + ./mlir-tablegen-imported-target.patch ] ++ lib.optional (lib.versionOlder release_version "20") [ # Fix build with gcc15 diff --git a/pkgs/development/compilers/llvm/common/mlir/mlir-tablegen-imported-target.patch b/pkgs/development/compilers/llvm/common/mlir/mlir-tablegen-imported-target.patch new file mode 100644 index 0000000000000..a173341168d24 --- /dev/null +++ b/pkgs/development/compilers/llvm/common/mlir/mlir-tablegen-imported-target.patch @@ -0,0 +1,54 @@ +diff --git a/cmake/modules/MLIRConfig.cmake.in b/cmake/modules/MLIRConfig.cmake.in +index 71f3e028b1e8..b30b6cdc0de1 100644 +--- a/cmake/modules/MLIRConfig.cmake.in ++++ b/cmake/modules/MLIRConfig.cmake.in +@@ -9,9 +9,16 @@ find_package(LLVM ${LLVM_VERSION} EXACT REQUIRED CONFIG + set(MLIR_EXPORTED_TARGETS "@MLIR_EXPORTS@") + set(MLIR_CMAKE_DIR "@MLIR_CONFIG_CMAKE_DIR@") + set(MLIR_INCLUDE_DIRS "@MLIR_CONFIG_INCLUDE_DIRS@") +-set(MLIR_TABLEGEN_EXE "@MLIR_CONFIG_TABLEGEN_EXE@") +-set(MLIR_PDLL_TABLEGEN_EXE "@MLIR_CONFIG_PDLL_TABLEGEN_EXE@") +-set(MLIR_SRC_SHARDER_TABLEGEN_EXE "@MLIR_CONFIG_SRC_SHARDER_TABLEGEN_EXE@") ++# Allow users to override tablegen executables (e.g. for sandboxed builds). ++if(NOT MLIR_TABLEGEN_EXE) ++ set(MLIR_TABLEGEN_EXE "@MLIR_CONFIG_TABLEGEN_EXE@") ++endif() ++if(NOT MLIR_PDLL_TABLEGEN_EXE) ++ set(MLIR_PDLL_TABLEGEN_EXE "@MLIR_CONFIG_PDLL_TABLEGEN_EXE@") ++endif() ++if(NOT MLIR_SRC_SHARDER_TABLEGEN_EXE) ++ set(MLIR_SRC_SHARDER_TABLEGEN_EXE "@MLIR_CONFIG_SRC_SHARDER_TABLEGEN_EXE@") ++endif() + set(MLIR_IRDL_TO_CPP_EXE "@MLIR_CONFIG_IRDL_TO_CPP_EXE@") + set(MLIR_INSTALL_AGGREGATE_OBJECTS "@MLIR_INSTALL_AGGREGATE_OBJECTS@") + set(MLIR_ENABLE_BINDINGS_PYTHON "@MLIR_ENABLE_BINDINGS_PYTHON@") +@@ -32,6 +39,29 @@ if(NOT TARGET MLIRSupport) + @MLIR_CONFIG_INCLUDE_EXPORTS@ + endif() + ++# Ensure MLIR_TABLEGEN_EXE is a full path and has a corresponding imported ++# target. In install trees, MLIR_TABLEGEN_EXE may be a bare name ++# ("mlir-tblgen") rather than an absolute path. Resolve it so that ++# TableGen.cmake can use it as both a COMMAND and a DEPENDS entry. ++if(MLIR_TABLEGEN_EXE AND NOT IS_ABSOLUTE "${MLIR_TABLEGEN_EXE}" ++ AND NOT TARGET "${MLIR_TABLEGEN_EXE}") ++ find_program(_mlir_tblgen_exe "${MLIR_TABLEGEN_EXE}" ++ HINTS "${LLVM_TOOLS_BINARY_DIR}") ++ if(_mlir_tblgen_exe) ++ set(MLIR_TABLEGEN_EXE "${_mlir_tblgen_exe}") ++ endif() ++ unset(_mlir_tblgen_exe) ++endif() ++ ++if(NOT TARGET mlir-tblgen AND MLIR_TABLEGEN_EXE) ++ add_executable(mlir-tblgen IMPORTED GLOBAL) ++ set_target_properties(mlir-tblgen PROPERTIES ++ IMPORTED_LOCATION "${MLIR_TABLEGEN_EXE}") ++endif() ++if(NOT DEFINED MLIR_TABLEGEN_TARGET) ++ set(MLIR_TABLEGEN_TARGET mlir-tblgen) ++endif() ++ + # By creating these targets here, subprojects that depend on MLIR's + # tablegen-generated headers can always depend on these targets whether building + # in-tree with MLIR or not. diff --git a/pkgs/development/compilers/llvm/common/openmp/default.nix b/pkgs/development/compilers/llvm/common/openmp/default.nix index a08376522d9e3..10f9ce154cb4c 100644 --- a/pkgs/development/compilers/llvm/common/openmp/default.nix +++ b/pkgs/development/compilers/llvm/common/openmp/default.nix @@ -19,7 +19,7 @@ ompdSupport ? true, ompdGdbSupport ? ompdSupport, getVersionFile, - fetchpatch, + openmpCheckPhaseHook, }: assert lib.assertMsg (ompdGdbSupport -> ompdSupport) "OMPD GDB support requires OMPD support!"; @@ -60,6 +60,10 @@ stdenv.mkDerivation (finalAttrs: { lit ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + buildInputs = [ llvm ] diff --git a/pkgs/development/compilers/llvm/common/patches.nix b/pkgs/development/compilers/llvm/common/patches.nix index 76ae90c3aaa7f..2b6ba46d02cf9 100644 --- a/pkgs/development/compilers/llvm/common/patches.nix +++ b/pkgs/development/compilers/llvm/common/patches.nix @@ -143,4 +143,24 @@ path = ../19; } ]; + "flang/warn-on-fbuiltin-and-fno-builtin.patch" = [ + { + after = "20"; + before = "22"; + path = ../21; + } + ]; + "flang/accept-and-ignore-some-gfortran-optimization-flags.patch" = [ + { + after = "20"; + before = "22"; + path = ../21; + } + ]; + "flang/use-xflang-in-diagnostics.patch" = [ + { + after = "20"; + path = ../21; + } + ]; } diff --git a/pkgs/development/compilers/ocaml/5.5.nix b/pkgs/development/compilers/ocaml/5.5.nix new file mode 100644 index 0000000000000..8ed4b494db7c6 --- /dev/null +++ b/pkgs/development/compilers/ocaml/5.5.nix @@ -0,0 +1,6 @@ +import ./generic.nix { + major_version = "5"; + minor_version = "5"; + patch_version = "0"; + sha256 = "sha256-/MauZl0exR1SUQ6qx4NKhqmAa/WiWLt8ynhzP8zwFbo="; +} diff --git a/pkgs/development/compilers/rust/1_95.nix b/pkgs/development/compilers/rust/1_96.nix similarity index 56% rename from pkgs/development/compilers/rust/1_95.nix rename to pkgs/development/compilers/rust/1_96.nix index 0c69095341b47..b198c84400b5a 100644 --- a/pkgs/development/compilers/rust/1_95.nix +++ b/pkgs/development/compilers/rust/1_96.nix @@ -50,8 +50,8 @@ let in import ./default.nix { - rustcVersion = "1.95.0"; - rustcSha256 = "sha256-6puCqD5GlnU3w1ac6db6FoEcBDqW5lE3bDSecCQcpRU="; + rustcVersion = "1.96.1"; + rustcSha256 = "sha256-0Km1GYxBhoU4rhKvKAZBY1UdBtzOqxHvCxvJqm6Yt6c="; llvmSharedForBuild = llvmSharedFor pkgsBuildBuild; llvmSharedForHost = llvmSharedFor pkgsBuildHost; @@ -65,30 +65,30 @@ import ./default.nix # Note: the version MUST be the same version that we are building. Upstream # ensures that each released compiler can compile itself: # https://github.com/NixOS/nixpkgs/pull/351028#issuecomment-2438244363 - bootstrapVersion = "1.95.0"; + bootstrapVersion = "1.96.1"; # fetch hashes by running `print-hashes.sh ${bootstrapVersion}` bootstrapHashes = { - i686-unknown-linux-gnu = "3ef2320bdfa9b69b19c6ca42f950b6bfb9d2af3b925b0c43a6bfecc4d355a66e"; - x86_64-unknown-linux-gnu = "a47ac940abd12399d59ad15c877e7113fa35f2b9ec7e6a8a045d4fd8b9741dea"; - x86_64-unknown-linux-musl = "059086762ac6f4ebe15b5b10e629e4e33e96b372765e65741251f75c4fdfb4e0"; - arm-unknown-linux-gnueabihf = "7d742098e8bb0d10415775634eed83240ae88c1bae6bc73b470ccf0be4629b4c"; - armv7-unknown-linux-gnueabihf = "23a201e72c082c285e957a32b40e1c30805b15d344b84b984be3659e9aefadf6"; - aarch64-unknown-linux-gnu = "3b9385d3144ac57616befa0ccbac524f857ba1b4ab074226e73a24d43568a98e"; - aarch64-unknown-linux-musl = "ad35bcc6928ccb4fd8a12fe19ce88c8fb6e6e3690578a0cb4e0839008017484f"; - x86_64-apple-darwin = "3f3d9f29f8eb7aa821bd8531cb9b1c3c74c3976aa558dfabfcc15c2febb3cfb8"; - aarch64-apple-darwin = "ec23ad2e0e15a7397d2c3c232356149cc871b7df7f47e25c2acb1070157f5398"; - powerpc64-unknown-linux-gnu = "6d89e3739cfb7b3a05880734513361d5860492385217dcd166d033f3e974e823"; - powerpc64le-unknown-linux-gnu = "29e3430f38406c926ee24ff911357dba0c46ff1d3ea59e91625b03677bd51b30"; - powerpc64le-unknown-linux-musl = "b8856b651d64f4f4a2e2ee009366d99ea6135bdf88d15cf2134fc9e166745030"; - riscv64gc-unknown-linux-gnu = "8b527cb1a09f53f83aa3420b4e763c9ea64a54d89e6d7242da35c8aeaa325593"; - s390x-unknown-linux-gnu = "e9598bdd3bc1438d965208ef5186f0dd671826cddd4bcbb20e22a3cec14c111d"; - loongarch64-unknown-linux-gnu = "18038ce7a910930c6742cc76e06fdd4b21b879466a3e67d63a0b6cae955bb4dc"; - loongarch64-unknown-linux-musl = "eef910858c7e833b13c9cb32e79e59d89434999bc2a7d0b6447ab4046eb40461"; - x86_64-unknown-freebsd = "0ffb7aa1999ea12363bbfaea500e152565bb4918ad5a73e9713be40510d75e49"; + i686-unknown-linux-gnu = "9a3ef03fa419d662fbaf9b152a81db96379781771e6853ca06e31215fb177449"; + x86_64-unknown-linux-gnu = "b177534946e6e5422d8a75398b39625c08eabad675c08bd3d6565d3ba90c8450"; + x86_64-unknown-linux-musl = "12404d68457d3344877fbba3fde2c68743cd200fc70475451568e18076cc2a3d"; + arm-unknown-linux-gnueabihf = "c0c4b52bf5614dfcf6b9e94876f97509c71831fc09b8f0f0e228e13ce896ea92"; + armv7-unknown-linux-gnueabihf = "59320d46850c750b0a0d3e49939c00c3eed9917fab9a633300fb4d04bd8cfebc"; + aarch64-unknown-linux-gnu = "212cebf45b0669b2176eb08ffa17c90b07f9de2689d6aae3604d78699fa4f5c2"; + aarch64-unknown-linux-musl = "9e936f24cfd76db8a45ab352919336978531c0fb4eab7a7bdecc76b9562fcbdb"; + x86_64-apple-darwin = "c19cc27b3387e2dfe7eb4b5becc75ab5acf348b2a7f2142ad3716d93a0abaa2a"; + aarch64-apple-darwin = "c080e506af9cba3ca9472c17d989c2d8d5bcfc818eb5e196c77beee982788b50"; + powerpc64-unknown-linux-gnu = "7133e2e1ccf0eb66c4feeca8a2bbf21ad3223904a3459b3f228ff7c8dfc76871"; + powerpc64le-unknown-linux-gnu = "4cde26acb968f98fdb2f7f52e7f78b75a24afdea38abed7217e1cd02c6acbe06"; + powerpc64le-unknown-linux-musl = "d20d271134a11b3ba74c1c54fb926ea09f1c629321dcf53fb5d510f1ac1125a6"; + riscv64gc-unknown-linux-gnu = "b4c54315491239d2a4816535cea22a57ad1021e2529812ccfc938e64c53da276"; + s390x-unknown-linux-gnu = "17cb4a74048429dc03be326f976b35500c96290af248ed212071bafb4e366762"; + loongarch64-unknown-linux-gnu = "7f646ab7f798e7258db25286cbaed4fb54cae90afe44efebc7ff6c6120e4d3d9"; + loongarch64-unknown-linux-musl = "fd8e5e02e5c4bf879a54a31ebc4c24bbd2feb353a54b4e690e1cd04a97c60354"; + x86_64-unknown-freebsd = "8f5f247b7195a8925c092949c4eea96a6228d67e643dc10d97b1ed7c17e4c433"; }; - selectRustPackage = pkgs: pkgs.rust_1_95; + selectRustPackage = pkgs: pkgs.rust_1_96; } ( diff --git a/pkgs/development/compilers/rust/cargo.nix b/pkgs/development/compilers/rust/cargo.nix index 7c3d4eb2a5e0a..a86e4a3d186d7 100644 --- a/pkgs/development/compilers/rust/cargo.nix +++ b/pkgs/development/compilers/rust/cargo.nix @@ -3,7 +3,6 @@ stdenv, pkgsHostHost, pkgsBuildBuild, - fetchpatch, file, curl, pkg-config, @@ -27,23 +26,6 @@ rustPlatform.buildRustPackage.override pname = "cargo"; inherit (rustc.unwrapped) version src; - patches = [ - (fetchpatch { - name = "CVE-2026-5222.patch"; - url = "https://github.com/rust-lang/cargo/commit/c4d63a44234de22dc745231c416b80ed848d997f.patch"; - stripLen = 1; - extraPrefix = "src/tools/cargo/"; - hash = "sha256-YG7xtC308z+o1xVzrV81qqWov1121GVouyAXKflyBF8="; - }) - (fetchpatch { - name = "CVE-2026-5223.patch"; - url = "https://github.com/rust-lang/cargo/commit/285cebf58911eca5b7f177f5d0b1c53e1f646577.patch"; - stripLen = 1; - extraPrefix = "src/tools/cargo/"; - hash = "sha256-DbmPQ31N4AIYZEBiwwGAn59hgPsFEVTzA6PrI071LXE="; - }) - ]; - # the rust source tarball already has all the dependencies vendored, no need to fetch them again cargoVendorDir = "vendor"; buildAndTestSubdir = "src/tools/cargo"; diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix index 36963b65f8d7b..73d3cc08df881 100644 --- a/pkgs/development/compilers/sbcl/default.nix +++ b/pkgs/development/compilers/sbcl/default.nix @@ -30,8 +30,8 @@ let "2.4.10".sha256 = "sha256-zus5a2nSkT7uBIQcKva+ylw0LOFGTD/j5FPy3hDF4vg="; # By unofficial and very loose convention we keep the latest version of # SBCL, and the previous one in case someone quickly needs to roll back. - "2.6.3".sha256 = "sha256-50MvtkKVLdJaX8DFbSGPPQqlls5C0z76gwkbyn1pmIo="; "2.6.4".sha256 = "sha256-O6U+ZUtg/rfE9QRmGZ1tUmDyZhxxG6ItS3cLZVQA1Xs="; + "2.6.5".sha256 = "sha256-kex19kclLtbmrq6bGhP0fHxs/ZtoSI3Gnxpv6lrMtEA="; }; # Collection of pre-built SBCL binaries for platforms that need them for # bootstrapping. Ideally these are to be avoided. If ECL (or any other diff --git a/pkgs/development/compilers/swift/compiler/default.nix b/pkgs/development/compilers/swift/compiler/default.nix index 2f6fa2a9450fb..dc15009aac720 100644 --- a/pkgs/development/compilers/swift/compiler/default.nix +++ b/pkgs/development/compilers/swift/compiler/default.nix @@ -37,6 +37,8 @@ DarwinTools, apple-sdk_14, darwinMinVersionHook, + # TODO: Clean up on `staging` + lld, }: let @@ -252,6 +254,8 @@ stdenv.mkDerivation { DarwinTools # sw_vers fixDarwinDylibNames cctools.libtool + # TODO: Clean up on `staging` + lld ]; buildInputs = [ @@ -562,6 +566,12 @@ stdenv.mkDerivation { # Fixed in: https://github.com/apple/swift/commit/84083afef1de5931904d5c815d53856cdb3fb232 cmakeFlags=" -GNinja + ${ + # Fix for ld64 hardening issue + # + # TODO: Clean up on staging + lib.optionalString stdenv.hostPlatform.isDarwin "-DCMAKE_LINKER_TYPE=LLD" + } -DBOOTSTRAPPING_MODE=BOOTSTRAPPING${lib.optionalString stdenv.hostPlatform.isDarwin "-WITH-HOSTLIBS"} -DSWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING=ON -DSWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY=ON diff --git a/pkgs/development/compilers/swift/default.nix b/pkgs/development/compilers/swift/default.nix index ad4fe81c46cb6..8af33b495e9d0 100644 --- a/pkgs/development/compilers/swift/default.nix +++ b/pkgs/development/compilers/swift/default.nix @@ -15,7 +15,8 @@ let inherit stdenv; swift-unwrapped = callPackage ./compiler { - inherit (llvmPackages) stdenv; + # TODO: Clean up on `staging` + inherit (llvmPackages) stdenv lld; inherit (darwin) DarwinTools sigtool; }; diff --git a/pkgs/development/compilers/swift/swiftpm/default.nix b/pkgs/development/compilers/swift/swiftpm/default.nix index 9d8e414b72c9b..2d5db28d68c75 100644 --- a/pkgs/development/compilers/swift/swiftpm/default.nix +++ b/pkgs/development/compilers/swift/swiftpm/default.nix @@ -135,6 +135,11 @@ let # so we don't have to account for that scenario. "-DCMAKE_BUILD_WITH_INSTALL_NAME_DIR=ON" ]; + + # TODO: Clean up on `staging`. + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_LDFLAGS = "-headerpad_max_install_names"; + }; } ); diff --git a/pkgs/development/compilers/swift/wrapper/default.nix b/pkgs/development/compilers/swift/wrapper/default.nix index e446bec668688..0bd4a818da6db 100644 --- a/pkgs/development/compilers/swift/wrapper/default.nix +++ b/pkgs/development/compilers/swift/wrapper/default.nix @@ -5,6 +5,10 @@ useSwiftDriver ? true, swift-driver, clang, + + # TODO: Clean up on `staging`. + llvmPackages, + writeShellScriptBin, }: stdenv.mkDerivation ( @@ -90,6 +94,15 @@ stdenv.mkDerivation ( cp "$input" "$out/nix-support/$(basename "$input")" done fi + '' + # TODO: Clean up on `staging`. + + lib.optionalString stdenv.targetPlatform.isDarwin '' + printf "NIX_SWIFTFLAGS_COMPILE+=' -use-ld=lld -tools-directory %s'\n" \ + ${writeShellScriptBin "ld" '' + exec ${lib.getExe' llvmPackages.lld "ld64.lld"} "$@" + ''}/bin \ + >> $out/nix-support/setup-hook + printf '%s\n' ${lib.getBin llvmPackages.lld} >> $out/nix-support/propagated-build-inputs ''; passthru = { diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix index d8e2f2d357796..76bf3682c5bc7 100644 --- a/pkgs/development/coq-modules/coq-elpi/default.nix +++ b/pkgs/development/coq-modules/coq-elpi/default.nix @@ -2,6 +2,7 @@ lib, mkCoqDerivation, which, + dune, coq, stdlib, version ? null, @@ -33,7 +34,7 @@ let propagatedBuildInputs_wo_elpi = [ coq.ocamlPackages.findlib ]; - derivation = mkCoqDerivation { + derivation = mkCoqDerivation.override { dune = dune.override { version = "3.21.1"; }; } { pname = "elpi"; repo = "coq-elpi"; owner = "LPCIC"; diff --git a/pkgs/development/coq-modules/stalmarck/default.nix b/pkgs/development/coq-modules/stalmarck/default.nix index 94df3e3c0a7a5..5bcdffbfa9c8b 100644 --- a/pkgs/development/coq-modules/stalmarck/default.nix +++ b/pkgs/development/coq-modules/stalmarck/default.nix @@ -1,6 +1,7 @@ { lib, mkCoqDerivation, + dune, coq, stdlib, version ? null, @@ -38,7 +39,7 @@ let else "A two-level approach to prove tautologies using Stålmarck's algorithm in Coq."; in - mkCoqDerivation { + mkCoqDerivation.override { dune = dune.override { version = "3.21.1"; }; } { inherit version pname diff --git a/pkgs/development/interpreters/guile/3.0.nix b/pkgs/development/interpreters/guile/3.0.nix index d400a4059cecc..beddf97c4ddea 100644 --- a/pkgs/development/interpreters/guile/3.0.nix +++ b/pkgs/development/interpreters/guile/3.0.nix @@ -193,5 +193,6 @@ builder rec { license = lib.licenses.lgpl3Plus; maintainers = [ ]; platforms = lib.platforms.all; + mainProgram = "guile"; }; } diff --git a/pkgs/development/interpreters/python/cpython/3.14/hacl-static-ldeps-for-static-modules.patch b/pkgs/development/interpreters/python/cpython/3.14/hacl-static-ldeps-for-static-modules.patch deleted file mode 100644 index 8501ab38a940d..0000000000000 --- a/pkgs/development/interpreters/python/cpython/3.14/hacl-static-ldeps-for-static-modules.patch +++ /dev/null @@ -1,50 +0,0 @@ -From ee1b8479cff97ca7e5ed4d51d6aa24ccb47deb8b Mon Sep 17 00:00:00 2001 -From: Ihar Hrachyshka -Date: Sat, 21 Mar 2026 18:34:50 -0400 -Subject: [PATCH] gh-146264: Use static HACL deps for static module builds - ---- - .../next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst | 3 +++ - configure | 2 +- - configure.ac | 2 +- - 3 files changed, 5 insertions(+), 2 deletions(-) - create mode 100644 Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst - -diff --git a/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst b/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst -new file mode 100644 -index 00000000000..1fdafe56043 ---- /dev/null -+++ b/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst -@@ -0,0 +1,3 @@ -+Fix static module builds on non-WASI targets by linking HACL dependencies as -+static libraries when ``MODULE_BUILDTYPE=static``, preventing duplicate -+``_Py_LibHacl_*`` symbol errors at link time. -diff --git a/configure b/configure -index 23f24d51c79..db5c861f601 100755 ---- a/configure -+++ b/configure -@@ -33009,7 +33009,7 @@ fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HACL* library linking type" >&5 - printf %s "checking for HACL* library linking type... " >&6; } --if test "$ac_sys_system" = "WASI"; then -+if test "$ac_sys_system" = "WASI" || test "$MODULE_BUILDTYPE" = "static"; then - LIBHACL_LDEPS_LIBTYPE=STATIC - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static" >&5 - printf "%s\n" "static" >&6; } -diff --git a/configure.ac b/configure.ac -index 635fce3f2e6..59166d63e63 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -8171,7 +8171,7 @@ AC_SUBST([LIBHACL_BLAKE2_SIMD256_OBJS]) - # HACL*-based cryptographic primitives - - AC_MSG_CHECKING([for HACL* library linking type]) --if test "$ac_sys_system" = "WASI"; then -+if test "$ac_sys_system" = "WASI" || test "$MODULE_BUILDTYPE" = "static"; then - LIBHACL_LDEPS_LIBTYPE=STATIC - AC_MSG_RESULT([static]) - else --- -2.53.0 - diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index fe45d8d6fe717..02c6e27d11d47 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -31,6 +31,7 @@ sqlite, xz, zlib, + withZstd ? !withMinimalDeps, zstd, # platform-specific dependencies @@ -133,7 +134,6 @@ let getLib optionals optionalString - replaceStrings ; withLibxcrypt = @@ -291,7 +291,7 @@ let ++ optionals withExpat [ expat ] - ++ optionals (passthru.pythonAtLeast "3.14") [ + ++ optionals (withZstd && passthru.pythonAtLeast "3.14") [ zstd ] ++ optionals bluezSupport [ @@ -428,15 +428,6 @@ stdenv.mkDerivation (finalAttrs: { # backport fix for https://github.com/python/cpython/issues/95855 ./platform-triplet-detection.patch ] - ++ optionals (pythonAtLeast "3.14" && pythonOlder "3.15") [ - # https://github.com/python/cpython/issues/146264 - # https://github.com/python/cpython/pull/146265 - ./3.14/hacl-static-ldeps-for-static-modules.patch - ] - ++ optionals (version == "3.13.10" || version == "3.14.1") [ - # https://github.com/python/cpython/issues/142218 - ./${lib.versions.majorMinor version}/gh-142218.patch - ] ++ optionals (stdenv.hostPlatform.isMinGW) ( let # https://src.fedoraproject.org/rpms/mingw-python3 diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 65d088c2d9a2a..cf84bbe2b86c5 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -16,14 +16,14 @@ passthruFun = import ./passthrufun.nix args; sources = { - python313 = { + python314 = { sourceVersion = { major = "3"; - minor = "13"; - patch = "13"; + minor = "14"; + patch = "6"; suffix = ""; }; - hash = "sha256-Krkf9AF4PMymT3XRDIgulXvf1g4r9acvhCF5Nym3inE="; + hash = "sha256-FDsd3e+uw70uIeO4ObNKK3+5hCJyiDxXZCDWBenzDGM="; }; }; @@ -54,26 +54,26 @@ inherit passthruFun; }; - python313 = callPackage ./cpython ( - { - self = __splicedPackages.python313; - inherit passthruFun; - } - // sources.python313 - ); - - python314 = callPackage ./cpython { - self = __splicedPackages.python314; + python313 = callPackage ./cpython { + self = __splicedPackages.python313; sourceVersion = { major = "3"; - minor = "14"; - patch = "4"; + minor = "13"; + patch = "14"; suffix = ""; }; - hash = "sha256-2SPFEwPjjiSRNvwb3zVo1W7LAyFO/e9IUWF209f6rvg="; + hash = "sha256-Y55DJDxiCjCPloIT354A8vj2IzL3rbqnp+65eDBXxpA="; inherit passthruFun; }; + python314 = callPackage ./cpython ( + { + self = __splicedPackages.python314; + inherit passthruFun; + } + // sources.python314 + ); + python315 = callPackage ./cpython { self = __splicedPackages.python315; sourceVersion = { @@ -96,7 +96,7 @@ # strip down that python version as much as possible withMinimalDeps = true; } - // sources.python313 + // sources.python314 )).overrideAttrs (old: { # TODO(@Artturin): Add this to the main cpython expr diff --git a/pkgs/development/interpreters/spidermonkey/140.nix b/pkgs/development/interpreters/spidermonkey/140.nix index f66957465bf98..49908ebc35ef5 100644 --- a/pkgs/development/interpreters/spidermonkey/140.nix +++ b/pkgs/development/interpreters/spidermonkey/140.nix @@ -1,4 +1,4 @@ import ./common.nix { - version = "140.9.0"; - hash = "sha512-vAP9KnPQCoi9Cjye6u/mGP+zQib7e8L6xKAiRv8p/gOEI793U4Jz7m+sJfsePk+pi7UiAmrjQnoK1fQdLsa6mA=="; + version = "140.11.0"; + hash = "sha512-0GrbPvTeEyTj1hhy1w3jGrCKwBPzOQNUm+0oxuvMW03ulLs2OIKCwZNdd9GlZAefOtvwjWu4AoSomcuz2GEwDA=="; } diff --git a/pkgs/development/interpreters/spidermonkey/common.nix b/pkgs/development/interpreters/spidermonkey/common.nix index dd4bfcb45b7d4..29b381e774766 100644 --- a/pkgs/development/interpreters/spidermonkey/common.nix +++ b/pkgs/development/interpreters/spidermonkey/common.nix @@ -15,7 +15,7 @@ m4, perl, pkg-config, - python3, + python313, rust-cbindgen, rustPlatform, rustc, @@ -80,7 +80,7 @@ stdenv.mkDerivation (finalAttrs: { m4 perl pkg-config - python3 + python313 rustc rustc.llvmPackages.llvm # for llvm-objdump which diff --git a/pkgs/development/libraries/acl/default.nix b/pkgs/development/libraries/acl/default.nix index 9bba05fd90bfc..3397e6e27a14f 100644 --- a/pkgs/development/libraries/acl/default.nix +++ b/pkgs/development/libraries/acl/default.nix @@ -11,12 +11,12 @@ # cgit) that are needed here should be included directly in Nixpkgs as # files. -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "acl"; version = "2.3.2"; src = fetchurl { - url = "mirror://savannah/acl/acl-${version}.tar.gz"; + url = "mirror://savannah/acl/acl-${finalAttrs.version}.tar.gz"; hash = "sha256-XyvbrWKXB6p9hcYj+ZSqih0t7FWnPeUgW6wL9gWKL3w="; }; @@ -28,6 +28,10 @@ stdenv.mkDerivation rec { "doc" ]; + strictDeps = true; + __structuredAttrs = true; + enableParallelBuilding = true; + nativeBuildInputs = [ gettext ]; buildInputs = [ attr ]; @@ -41,6 +45,6 @@ stdenv.mkDerivation rec { description = "Library and tools for manipulating access control lists"; license = lib.licenses.gpl2Plus; teams = [ lib.teams.security-review ]; - identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "acl_project" version; + identifiers.cpeParts = lib.meta.cpeFullVersionWithVendor "acl_project" finalAttrs.version; }; -} +}) diff --git a/pkgs/development/libraries/appstream/default.nix b/pkgs/development/libraries/appstream/default.nix index 61e1d7792264c..095a87c4d853e 100644 --- a/pkgs/development/libraries/appstream/default.nix +++ b/pkgs/development/libraries/appstream/default.nix @@ -12,8 +12,9 @@ cmake, gettext, xmlto, - docbook-xsl-nons, + docbook-xsl-ns, docbook_xml_dtd_45, + libblake3, libxslt, libstemmer, glib, @@ -42,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "appstream"; - version = "1.1.2"; + version = "1.1.3"; outputs = [ "out" @@ -54,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "ximion"; repo = "appstream"; rev = "v${finalAttrs.version}"; - sha256 = "sha256-tvdWWdL6PthffAZZnNZ3+17/eJdZFx8xFkqm7IvyPWE="; + hash = "sha256-z9HmTYOjglki+ID7GPMf3jGLOAkxLqJd4+GsIR3W3u4="; }; patches = [ @@ -81,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: { gettext libxslt xmlto - docbook-xsl-nons + docbook-xsl-ns docbook_xml_dtd_45 glib itstool @@ -99,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: { ]; buildInputs = [ + libblake3 libstemmer glib xapian diff --git a/pkgs/development/libraries/boost/1.91.nix b/pkgs/development/libraries/boost/1.91.nix new file mode 100644 index 0000000000000..6a0587e5cc381 --- /dev/null +++ b/pkgs/development/libraries/boost/1.91.nix @@ -0,0 +1,26 @@ +{ + lib, + callPackage, + fetchurl, + ... +}@args: + +callPackage ./generic.nix ( + args + // rec { + version = "1.91.0"; + + src = + let + underVersion = lib.replaceString "." "_" version; + in + fetchurl { + urls = [ + "https://archives.boost.io/release/${version}/source/boost_${underVersion}.tar.bz2" + # "mirror://sourceforge/boost/boost_${underVersion}.tar.bz2" 1.91.0.beta1 is available, but not 1.91.0 + ]; + # SHA256 from https://www.boost.org/releases/1.91.0/ + sha256 = "de5e6b0e4913395c6bdfa90537febd9028ea4c0735d2cdb0cd9b45d5f51264f5"; + }; + } +) diff --git a/pkgs/development/libraries/boost/default.nix b/pkgs/development/libraries/boost/default.nix index 930cfab4e8bf2..c9eb8ec98b637 100644 --- a/pkgs/development/libraries/boost/default.nix +++ b/pkgs/development/libraries/boost/default.nix @@ -31,4 +31,5 @@ in boost188 = makeBoost ./1.88.nix; boost189 = makeBoost ./1.89.nix; boost190 = makeBoost ./1.90.nix; + boost191 = makeBoost ./1.91.nix; } diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix index 09e6aa28c5677..2c5bcf0c7c0e6 100644 --- a/pkgs/development/libraries/boost/generic.nix +++ b/pkgs/development/libraries/boost/generic.nix @@ -74,6 +74,7 @@ let needUserConfig = stdenv.hostPlatform != stdenv.buildPlatform + || enablePython || useMpi || (stdenv.hostPlatform.isDarwin && enableShared); @@ -423,5 +424,7 @@ stdenv.mkDerivation { ]; setOutputFlags = false; + strictDeps = true; + __structuredAttrs = true; } diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix index 5baddb0c34e2c..ba90e48323694 100644 --- a/pkgs/development/libraries/ffmpeg/default.nix +++ b/pkgs/development/libraries/ffmpeg/default.nix @@ -30,8 +30,8 @@ let hash = "sha256-DjmW5LeI9OJmPeIh61znAns4+kolxwKguEvKawgxy8I="; }; v8 = { - version = "8.1.1"; - hash = "sha256-WPGfjTZjsgpR5QiANRWF4g6LF2ejGzFQUrLjhzw9cfQ="; + version = "8.1.2"; + hash = "sha256-wJ3c8VVo/tK84K7bKYs/UWcln4mSO+tf/w5NLNjKhiI="; }; in diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix index 4c88263d7caf5..46a32fec2e7ee 100644 --- a/pkgs/development/libraries/ffmpeg/generic.nix +++ b/pkgs/development/libraries/ffmpeg/generic.nix @@ -59,7 +59,7 @@ withChromaprint ? withFullDeps, # Audio fingerprinting withCodec2 ? withFullDeps, # codec2 en/decoding withCuda ? withFullDeps && withNvcodec, - withCudaLLVM ? withHeadlessDeps, + withCudaLLVM ? withHeadlessDeps && !stdenv.hostPlatform.isDarwin, # Cuda isn’t supported on Darwin withCudaNVCC ? withFullDeps && withUnfree && config.cudaSupport, withCuvid ? withHeadlessDeps && withNvcodec, withDav1d ? withHeadlessDeps, # AV1 decoder (focused on speed and correctness) @@ -367,6 +367,9 @@ libnpp, # Testing testers, + + # TODO: Clean up on `staging`. + llvmPackages, }: /* @@ -481,9 +484,6 @@ stdenv.mkDerivation ( hash = "sha256-OLiQHKBNp2p63ZmzBBI4GEGz3WSSP+rMd8ITfZSVRgY="; }) ] - ++ optionals (lib.versionAtLeast version "7.1" && lib.versionOlder version "7.1.1") [ - ./fix-fate-ffmpeg-spec-disposition-7.1.patch - ] ++ optionals (lib.versionAtLeast version "7.1.1") [ # Expose a private API for Chromium / Qt WebEngine. (fetchpatch2 { @@ -491,25 +491,19 @@ stdenv.mkDerivation ( hash = "sha256-DbH6ieJwDwTjKOdQ04xvRcSLeeLP2Z2qEmqeo8HsPr4="; }) ] - ++ optionals (lib.versionAtLeast version "7.1" && lib.versionOlder version "7.1.4") [ - (fetchpatch2 { - name = "lcevcdec-4.0.0-compat.patch"; - url = "https://code.ffmpeg.org/FFmpeg/FFmpeg/commit/fa23202cc7baab899894e8d22d82851a84967848.patch"; - hash = "sha256-Ixkf1xzuDGk5t8J/apXKtghY0X9cfqSj/q987zrUuLQ="; - }) - ] - ++ optionals (lib.versionAtLeast version "7.1.1" && lib.versionOlder version "7.1.3") [ - (fetchpatch2 { - url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/d8ffec5bf9a2803f55cc0822a97b7815f24bee83"; - hash = "sha256-lmSI5arShb2/W84FMnSNs3lb6rd5vWdUSzfU8oza0Ic="; - }) - ] ++ optionals (lib.versionOlder version "7.1.2") [ (fetchpatch2 { name = "unbreak-svt-av1-3.0.0.patch"; url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/d1ed5c06e3edc5f2b5f3664c80121fa55b0baa95"; hash = "sha256-2NVkIhQVS1UQJVYuDdeH+ZvWYKVbtwW9Myu5gx7JnbA="; }) + ] + ++ optionals (lib.versionAtLeast version "6" && lib.versionOlder version "7.1.4") [ + (fetchpatch2 { + name = "svt-av1-4.0.0-compat.patch"; + url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/a5d4c398b411a00ac09d8fe3b66117222323844c"; + hash = "sha256-peIXXU5+5DRQc3Xdpz5V+xIN7Vohs0Dlal6mHiMryXc="; + }) ]; configurePlatforms = [ ]; @@ -840,8 +834,10 @@ stdenv.mkDerivation ( ++ optionals stdenv.hostPlatform.isx86 [ nasm ] # Texinfo version 7.1 introduced breaking changes, which older versions of ffmpeg do not handle. ++ optionals (lib.versionAtLeast version "6") [ texinfo ] - ++ optionals withCudaLLVM [ clang ] - ++ optionals withCudaNVCC [ cuda_nvcc ]; + ++ optionals withCudaLLVM [ clang.cc ] + ++ optionals withCudaNVCC [ cuda_nvcc ] + # TODO: Clean up on `staging`. + ++ optionals stdenv.hostPlatform.isDarwin [ llvmPackages.lld ]; buildInputs = [ ] @@ -985,12 +981,17 @@ stdenv.mkDerivation ( buildFlags = [ "all" ] ++ optional buildQtFaststart "tools/qt-faststart"; # Build qt-faststart executable - env = lib.optionalAttrs stdenv.cc.isGNU { - NIX_CFLAGS_COMPILE = toString [ - "-Wno-error=incompatible-pointer-types" - "-Wno-error=int-conversion" - ]; - }; + env = + lib.optionalAttrs stdenv.cc.isGNU { + NIX_CFLAGS_COMPILE = toString [ + "-Wno-error=incompatible-pointer-types" + "-Wno-error=int-conversion" + ]; + } + # TODO: Clean up on `staging`. + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; # tests linking broken with shaderc after https://github.com/NixOS/nixpkgs/pull/477464/changes/5a47b12dfcd1b909ba35778a866394430054319a doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform && !withShaderc; diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix index dee1e197dd6e1..c30fc7de65e5c 100644 --- a/pkgs/development/libraries/fontconfig/default.nix +++ b/pkgs/development/libraries/fontconfig/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "fontconfig"; - version = "2.17.1"; + version = "2.18.1"; outputs = [ "bin" @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { # ref: https://github.com/NixOS/nixpkgs/pull/401037#discussion_r2055430206 src = fetchurl { url = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/${finalAttrs.version}/fontconfig-${finalAttrs.version}.tar.xz"; - hash = "sha256-n1yuk/T//B+8Ba6ZzfxwjNYN/WYS/8BRKCcCXAJvpUE="; + hash = "sha256-IwDz2/pyU7OkT0/uzbyN+kXd5dws+3H86vMfOUy0EDE="; }; nativeBuildInputs = [ @@ -41,12 +41,9 @@ stdenv.mkDerivation (finalAttrs: { python3 ]; - buildInputs = [ - expat - ]; - propagatedBuildInputs = [ freetype + expat ]; postPatch = '' @@ -67,11 +64,12 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" + "ac_cv_va_copy=C99" ]; enableParallelBuilding = true; - doCheck = true; + doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform; installFlags = [ # Don't try to write to /var/cache/fontconfig at install time. diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix index 1b704e1014435..46b703ddfd343 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -108,14 +108,17 @@ # Checks meson.is_cross_build(), so even canExecute isn't enough. enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, hotdoc, - guiSupport ? true, + # causes gtk4 to depend on gtk3 and makes little sense + guiSupport ? false, gst-plugins-bad, apple-sdk_gstreamer, + # TODO: Clean up on `staging`. + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-bad"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -124,7 +127,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-${finalAttrs.version}.tar.xz"; - hash = "sha256-EQ+4J5Xw5Wmx4nsSq5aZ01x3YuH/TblTNdasjRRCrz0="; + hash = "sha256-MytzIPMMYPLVlBRG0DudBeN4HywlYb776IcYvXd/Dkc="; }; patches = [ @@ -134,6 +137,12 @@ stdenv.mkDerivation (finalAttrs: { }) ]; + separateDebugInfo = true; + + __structuredAttrs = true; + # Argument list too long + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -149,6 +158,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.hostPlatform.isLinux) [ wayland-scanner + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ @@ -311,6 +324,7 @@ stdenv.mkDerivation (finalAttrs: { "-Dwasapi=disabled" # not packaged in nixpkgs as of writing / no Windows support "-Dwasapi2=disabled" # not packaged in nixpkgs as of writing / no Windows support "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing + "-Dwpe2=disabled" "-Dgs=disabled" # depends on `google-cloud-cpp` "-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing "-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx` @@ -326,6 +340,10 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "webrtcdsp" webrtcAudioProcessingSupport) (lib.mesonEnable "isac" webrtcAudioProcessingSupport) ] + ++ lib.mapAttrsToList lib.mesonEnable { + mpeghdec = false; # mpeghdec not packaged + tflite = false; + } ++ lib.optionals (!stdenv.hostPlatform.isLinux) [ "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only ] @@ -359,8 +377,10 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals (!gst-plugins-base.glEnabled) [ "-Dgl=disabled" ] - ++ lib.optionals (!gst-plugins-base.waylandEnabled || !guiSupport) [ + ++ lib.optionals (!guiSupport) [ "-Dgtk3=disabled" # Wayland-based GTK sink + ] + ++ lib.optionals (!gst-plugins-base.waylandEnabled) [ "-Dwayland=disabled" ] ++ lib.optionals (!gst-plugins-base.glEnabled) [ @@ -385,9 +405,6 @@ stdenv.mkDerivation (finalAttrs: { ] ); - # Argument list too long - strictDeps = true; - postPatch = '' patchShebangs \ scripts/extract-release-date-from-doap-file.py @@ -397,6 +414,9 @@ stdenv.mkDerivation (finalAttrs: { # that trip up clang with format security enabled. hardeningDisable = [ "format" ]; + # TODO: Clean up on `staging`. + env.NIX_CFLAGS_LINK = lib.optionalString stdenv.hostPlatform.isDarwin "-fuse-ld=lld"; + doCheck = false; # fails 20 out of 58 tests, expensive preFixup = '' @@ -416,7 +436,7 @@ stdenv.mkDerivation (finalAttrs: { }; }; - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix index 6b1b2671e381e..8b779a9232263 100644 --- a/pkgs/development/libraries/gstreamer/base/default.nix +++ b/pkgs/development/libraries/gstreamer/base/default.nix @@ -46,11 +46,13 @@ hotdoc, directoryListingUpdater, apple-sdk_gstreamer, + # TODO: Clean up on `staging` + llvmPackages, }: stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-base"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -61,9 +63,10 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${finalAttrs.version}.tar.xz"; - hash = "sha256-/FD4hdQfXQQHzgh27HI12ee4LUjbL0vHLF8kSkrHkmM="; + hash = "sha256-qJiv1XZhcrAEnmeBVY4GiQmL+HudgrhGxlLlccAdYNg="; }; + __structuredAttrs = true; strictDeps = true; depsBuildBuild = [ pkg-config @@ -86,6 +89,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals enableWayland [ wayland-scanner + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ @@ -158,6 +165,14 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled" ++ lib.optional stdenv.hostPlatform.isDarwin "-Ddrm=disabled"; + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + CC_LD = "lld"; + OBJC_LD = "lld"; + }; + postPatch = '' patchShebangs \ scripts/meson-pkg-config-file-fixup.py \ @@ -190,7 +205,7 @@ stdenv.mkDerivation (finalAttrs: { glEnabled = enableGl; waylandEnabled = enableWayland; - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix index 05409199e3039..35151386097a9 100644 --- a/pkgs/development/libraries/gstreamer/core/default.nix +++ b/pkgs/development/libraries/gstreamer/core/default.nix @@ -33,6 +33,8 @@ hotdoc, directoryListingUpdater, apple-sdk_gstreamer, + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -40,7 +42,7 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "gstreamer"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "bin" @@ -52,13 +54,14 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${finalAttrs.version}.tar.xz"; - hash = "sha256-LgvRktBDjqYGpvdqlcjhZUIWdlb/7Cwrw6r27gg3+/Y="; + hash = "sha256-9a3H6PRIwQJgs7JaoQHJ1UBnTI2aVMK3eobQTys7UN0="; }; depsBuildBuild = [ pkg-config ]; + __structuredAttrs = true; strictDeps = true; nativeBuildInputs = [ meson @@ -83,6 +86,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals enableDocumentation [ hotdoc + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ @@ -116,6 +123,14 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "libdw" (withLibunwind && hasElfutils)) ]; + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { + CC_LD = "lld"; + OBJC_LD = "lld"; + }; + postPatch = '' patchShebangs \ gst/parse/get_flex_version.py \ @@ -144,7 +159,7 @@ stdenv.mkDerivation (finalAttrs: { tests = { pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; }; - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix index b41e8192aaa4b..21712e04da55f 100644 --- a/pkgs/development/libraries/gstreamer/default.nix +++ b/pkgs/development/libraries/gstreamer/default.nix @@ -37,8 +37,6 @@ lib.makeScope newScope ( gst-editing-services = callPackage ./ges { }; - gst-vaapi = callPackage ./vaapi { }; - icamerasrc-ipu6 = callPackage ./icamerasrc { }; icamerasrc-ipu6ep = callPackage ./icamerasrc { ipu6-camera-hal = ipu6ep-camera-hal; @@ -51,5 +49,6 @@ lib.makeScope newScope ( } // lib.optionalAttrs config.allowAliases { gst-plugins-viperfx = throw "'gst_all_1.gst-plugins-viperfx' was removed as it is broken and not maintained upstream"; # Added 2024-12-16 + gst-vaapi = throw "'gst_all_1.gst-vaapi' has been removed in GStreamer 1.28. Users are recommended to switch to gst-plugins-bad, however it is not an in-place upgrade."; # Added 2026-06-28 } ) diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix index d9c788cfdd591..e856bd59b233d 100644 --- a/pkgs/development/libraries/gstreamer/devtools/default.nix +++ b/pkgs/development/libraries/gstreamer/devtools/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-devtools"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-${finalAttrs.version}.tar.xz"; - hash = "sha256-Vl9IU4jJSYr+v3gAQYPN/xATEhEoZBqlbtql6pRBK+I="; + hash = "sha256-EdTxGIY506l2IDkGW7t7LDCbeo7Mb6Su0SJFVovwDbM="; }; cargoDeps = rustPlatform.fetchCargoVendor { @@ -46,9 +46,14 @@ stdenv.mkDerivation (finalAttrs: { cargoRoot ; name = "gst-devtools-${finalAttrs.version}"; - hash = "sha256-sqN1IBkbrT3pQqUQKU2pr8G1t4kNMKk0NR7NH7dTvAE="; + hash = "sha256-5VYzDwAMyVN2HR/sS8rCwTR7UW/tt60AS7wZMjx+w74="; }; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + depsBuildBuild = [ pkg-config ]; @@ -91,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: { passthru = { updateScript = let - updateSource = directoryListingUpdater { }; + updateSource = directoryListingUpdater { odd-unstable = true; }; updateLockfile = { command = [ diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix index 743c0e475e9ac..e41fa069923b6 100644 --- a/pkgs/development/libraries/gstreamer/ges/default.nix +++ b/pkgs/development/libraries/gstreamer/ges/default.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-editing-services"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -32,9 +32,14 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-${finalAttrs.version}.tar.xz"; - hash = "sha256-o26HkAtErBYIYS8tYW/AMvnX2SAyfE0jGv+2/pNJcU0="; + hash = "sha256-b361Xlhxjd5bWGn2Ge2Q6/Owz6A3bBacG4P8dzgRkUo="; }; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -78,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix index 9c531daf14864..6d0dd4edbdafc 100644 --- a/pkgs/development/libraries/gstreamer/good/default.nix +++ b/pkgs/development/libraries/gstreamer/good/default.nix @@ -66,6 +66,8 @@ gst-plugins-good, directoryListingUpdater, apple-sdk_gstreamer, + # TODO: Clean up on `staging` + llvmPackages, }: let @@ -78,7 +80,7 @@ assert raspiCameraSupport -> hostSupportsRaspiCamera; stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-good"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -87,7 +89,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${finalAttrs.version}.tar.xz"; - hash = "sha256-AB3rCHbV10PNNEir90onrew/2FABL8sbAJlIYb1sEUU="; + hash = "sha256-yCXqc3xZzqDkoMQdojiARf9d0y0WIiCsk6eoLuSgTmE="; }; patches = [ @@ -97,6 +99,9 @@ stdenv.mkDerivation (finalAttrs: { }) ]; + separateDebugInfo = true; + + __structuredAttrs = true; strictDeps = true; depsBuildBuild = [ pkg-config ]; @@ -134,6 +139,10 @@ stdenv.mkDerivation (finalAttrs: { ) ++ lib.optionals enableWayland [ wayland-protocols + ] + # TODO: Clean up on `staging` + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = [ @@ -262,6 +271,13 @@ stdenv.mkDerivation (finalAttrs: { # linking error on Darwin # https://github.com/NixOS/nixpkgs/pull/70690#issuecomment-553694896 "-lncurses"; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + CC_LD = "lld"; + OBJC_LD = "lld"; }; # fails 1 tests with "Unexpected critical/warning: g_object_set_is_valid_property: object class 'GstRtpStorage' has no property named ''" @@ -292,7 +308,7 @@ stdenv.mkDerivation (finalAttrs: { }; }; - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix index 14a7a877828b0..9bd3f34d49da2 100644 --- a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix +++ b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix @@ -34,6 +34,11 @@ stdenv.mkDerivation { export STRIP_VIRTUAL_CHANNEL_CAMHAL=ON ''; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + buildInputs = [ gst_all_1.gstreamer gst_all_1.gst-plugins-base diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix index 05319b9717549..ecff969ca1507 100644 --- a/pkgs/development/libraries/gstreamer/libav/default.nix +++ b/pkgs/development/libraries/gstreamer/libav/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-libav"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -28,9 +28,14 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${finalAttrs.version}.tar.xz"; - hash = "sha256-m7PSaB7w3pLRsanZVRhiNu4i5k83Lbm/wNIuLQ3xmGU="; + hash = "sha256-vRel3yh0p6WLy697lAIjN5rZYTYk246teD2wPnS7kEs="; }; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -65,7 +70,7 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix index 182433745fd41..b71da6b03adbe 100644 --- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix +++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-rtsp-server"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -28,9 +28,14 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-${finalAttrs.version}.tar.xz"; - hash = "sha256-th1DBNjOqqoboTn7HOk18E8ac9fhgkPAoFsvsEMFQG8="; + hash = "sha256-v7Z4BUK/DUAnNiMq6ubFoblDxEV3W/QDBby4bKcHBaA="; }; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -67,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix index 3f225da93ed1e..279dbb12b173d 100644 --- a/pkgs/development/libraries/gstreamer/ugly/default.nix +++ b/pkgs/development/libraries/gstreamer/ugly/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-ugly"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -36,9 +36,14 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${finalAttrs.version}.tar.xz"; - hash = "sha256-v5yfcu43SCXP1DhowoW8sBcA3yWEBp51169FX+SCRPg="; + hash = "sha256-VIbNFFxa9DJZ/TfKylnQSOKmfdsHCC6o9Q7w8CqF+KU="; }; + separateDebugInfo = true; + + __structuredAttrs = true; + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -104,7 +109,7 @@ stdenv.mkDerivation (finalAttrs: { }; }; - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix deleted file mode 100644 index 903be8f1e2459..0000000000000 --- a/pkgs/development/libraries/gstreamer/vaapi/default.nix +++ /dev/null @@ -1,117 +0,0 @@ -{ - lib, - stdenv, - fetchurl, - meson, - ninja, - pkg-config, - gst-plugins-base, - bzip2, - libva, - wayland, - wayland-protocols, - wayland-scanner, - libdrm, - udev, - libxv, - libxrandr, - libxext, - libx11, - libsm, - libice, - libxcb, - libGLU, - libGL, - gstreamer, - gst-plugins-bad, - nasm, - libvpx, - python3, - # Checks meson.is_cross_build(), so even canExecute isn't enough. - enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, - hotdoc, - directoryListingUpdater, - apple-sdk_gstreamer, -}: - -stdenv.mkDerivation (finalAttrs: { - pname = "gstreamer-vaapi"; - version = "1.26.11"; - - outputs = [ - "out" - "dev" - ]; - - src = fetchurl { - url = "https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-${finalAttrs.version}.tar.xz"; - hash = "sha256-8S+TAnPHodPg1/hblP+dE3nRYqzMky6Mo9OJk+0n/Kw="; - }; - - nativeBuildInputs = [ - meson - ninja - pkg-config - python3 - bzip2 - wayland-scanner - ] - ++ lib.optionals enableDocumentation [ - hotdoc - ]; - - buildInputs = [ - gstreamer - gst-plugins-base - gst-plugins-bad - libva - wayland - wayland-protocols - libdrm - udev - libx11 - libxcb - libxext - libxv - libxrandr - libsm - libice - nasm - libvpx - ] - ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ - libGL - libGLU - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - apple-sdk_gstreamer - ]; - - strictDeps = true; - - mesonFlags = [ - "-Dexamples=disabled" # requires many dependencies and probably not useful for our users - (lib.mesonEnable "doc" enableDocumentation) - ]; - - postPatch = '' - patchShebangs \ - scripts/extract-release-date-from-doap-file.py - ''; - - preFixup = '' - moveToOutput "lib/gstreamer-1.0/pkgconfig" "$dev" - ''; - - passthru = { - updateScript = directoryListingUpdater { }; - }; - - meta = { - description = "Set of VAAPI GStreamer Plug-ins"; - homepage = "https://gstreamer.freedesktop.org"; - license = lib.licenses.lgpl21Plus; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ tmarkus ]; - }; -}) diff --git a/pkgs/development/libraries/hyphen/default.nix b/pkgs/development/libraries/hyphen/default.nix index 214149fc1f23e..1be6ebb502471 100644 --- a/pkgs/development/libraries/hyphen/default.nix +++ b/pkgs/development/libraries/hyphen/default.nix @@ -1,33 +1,31 @@ { lib, stdenv, - fetchurl, + fetchFromGitHub, + autoreconfHook, perl, }: -let - version = "2.8.8"; - folder = - with builtins; - let - parts = splitVersion version; - in - concatStringsSep "." [ - (elemAt parts 0) - (elemAt parts 1) - ]; -in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "hyphen"; - inherit version; + version = "2.8.9"; + + nativeBuildInputs = [ + autoreconfHook + perl + ]; - nativeBuildInputs = [ perl ]; + strictDeps = true; - src = fetchurl { - url = "https://sourceforge.net/projects/hunspell/files/Hyphen/${folder}/${pname}-${version}.tar.gz"; - sha256 = "01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih"; + src = fetchFromGitHub { + owner = "hunspell"; + repo = "hyphen"; + tag = "v${finalAttrs.version}"; + hash = "sha256-F7PJQjEiE5t5i1gi5B8wzrwAJQl8FWzopRA8uDsaZBc="; }; + enableParallelBuilding = true; + # Do not install the en_US dictionary. installPhase = '' runHook preInstall @@ -36,14 +34,15 @@ stdenv.mkDerivation rec { make install-includeHEADERS # license - install -D -m644 COPYING "$out/share/licenses/${pname}/LICENSE" + install -D -m644 COPYING "$out/share/licenses/hyphen/LICENSE" runHook postInstall ''; meta = { + changelog = "https://github.com/hunspell/hyphen/blob/${finalAttrs.src.tag}/NEWS"; description = "Text hyphenation library"; mainProgram = "substrings.pl"; - homepage = "https://sourceforge.net/projects/hunspell/files/Hyphen/"; + homepage = "https://github.com/hunspell/hyphen"; platforms = lib.platforms.all; license = with lib.licenses; [ gpl2 @@ -51,4 +50,4 @@ stdenv.mkDerivation rec { mpl11 ]; }; -} +}) diff --git a/pkgs/development/libraries/libmicrohttpd/1.0.nix b/pkgs/development/libraries/libmicrohttpd/1.0.nix index 8070e78356c71..138f80ca444c3 100644 --- a/pkgs/development/libraries/libmicrohttpd/1.0.nix +++ b/pkgs/development/libraries/libmicrohttpd/1.0.nix @@ -1,10 +1,10 @@ { callPackage, fetchurl }: callPackage ./generic.nix rec { - version = "1.0.2"; + version = "1.0.5"; src = fetchurl { url = "mirror://gnu/libmicrohttpd/libmicrohttpd-${version}.tar.gz"; - hash = "sha256-3zJPzQg0F12rB0gxM5Atl3SmBb+imAJfaYgyiP0gqMc="; + hash = "sha256-tG0A9Y76b0l7l9LngsTuZjAdQS3dhV3TBoUYs6LNPqI="; }; } diff --git a/pkgs/development/libraries/libunistring/default.nix b/pkgs/development/libraries/libunistring/default.nix index 9a0bb2387e80a..c0c8c61e64d77 100644 --- a/pkgs/development/libraries/libunistring/default.nix +++ b/pkgs/development/libraries/libunistring/default.nix @@ -24,6 +24,8 @@ stdenv.mkDerivation (finalAttrs: { pname = "libunistring"; version = "1.4.2"; + __structuredAttrs = true; + src = fetchurl { url = "mirror://gnu/libunistring/libunistring-${finalAttrs.version}.tar.gz"; hash = "sha256-6CZksXAGTmIzGWISayWdRS1Tsie7SpOrIAQNhG/sAdg="; diff --git a/pkgs/development/libraries/mesa/gbm.nix b/pkgs/development/libraries/mesa/gbm.nix index e4f36f7f17799..6f9b56157253b 100644 --- a/pkgs/development/libraries/mesa/gbm.nix +++ b/pkgs/development/libraries/mesa/gbm.nix @@ -20,14 +20,14 @@ stdenv.mkDerivation rec { # We don't use the versions from common.nix, because libgbm is a world rebuild, # so the updates need to happen separately on staging. - version = "26.0.3"; + version = "26.1.3"; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = "mesa"; repo = "mesa"; rev = "mesa-${version}"; - hash = "sha256-CTOnJKsx9hDtLhDnuJSGc/lBQ2ZcDm3/Iie7awusGho="; + hash = "sha256-W2Ud9wmiIuDYMnFj8sK2SGAI1WayMCtdj7/7od/1Ql4="; }; mesonAutoFeatures = "disabled"; diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix index 12a385c9a9460..a7f342c6eaf7b 100644 --- a/pkgs/development/libraries/ngtcp2/default.nix +++ b/pkgs/development/libraries/ngtcp2/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "ngtcp2"; - version = "1.22.1"; + version = "1.23.0"; src = fetchurl { url = "https://github.com/ngtcp2/ngtcp2/releases/download/v${finalAttrs.version}/ngtcp2-${finalAttrs.version}.tar.bz2"; - hash = "sha256-hzVHltWssZvzEMt3vgS9IgDDImWmvnyUuGMeJsjpPKQ="; + hash = "sha256-3kuZ/8kNm5V0TESg2rYcnyqYSLiBuP3rl0rrXqEIAso="; }; outputs = [ diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix index b229ff708e7df..28f66d07bef36 100644 --- a/pkgs/development/libraries/opencv/4.x.nix +++ b/pkgs/development/libraries/opencv/4.x.nix @@ -59,7 +59,7 @@ enableVtk ? false, vtk, enableFfmpeg ? true, - ffmpeg, + ffmpeg-headless, enableGStreamer ? true, elfutils, gst_all_1, @@ -89,6 +89,9 @@ bzip2, callPackage, + + # TODO: Clean up on `staging`. + llvmPackages, }@inputs: let @@ -386,7 +389,7 @@ effectiveStdenv.mkDerivation { openjpeg ] ++ optionals enableFfmpeg [ - ffmpeg + ffmpeg-headless ] ++ optionals (enableGStreamer && effectiveStdenv.hostPlatform.isLinux) [ elfutils @@ -470,6 +473,10 @@ effectiveStdenv.mkDerivation { ) ++ optionals enableCuda [ cudaPackages.cuda_nvcc + ] + # TODO: Clean up on `staging`. + ++ optionals effectiveStdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; env = { @@ -559,6 +566,10 @@ effectiveStdenv.mkDerivation { ] ++ optionals (enabledModules != [ ]) [ (cmakeFeature "BUILD_LIST" (concatStringsSep "," enabledModules)) + ] + # TODO: Clean up on `staging`. + ++ optionals effectiveStdenv.hostPlatform.isDarwin [ + (cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ]; postBuild = optionalString enableDocs '' diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix index 12f1e353f510e..89b6496971c11 100644 --- a/pkgs/development/libraries/openssl/default.nix +++ b/pkgs/development/libraries/openssl/default.nix @@ -385,8 +385,8 @@ let passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - strictDeps = lib.versionAtLeast version "4.0"; - __structuredAttrs = lib.versionAtLeast version "4.0"; + strictDeps = true; + __structuredAttrs = true; meta = { homepage = "https://www.openssl.org/"; @@ -507,8 +507,8 @@ in }; openssl_3_6 = common { - version = "3.6.2"; - hash = "sha256-qvUaH+BkOE+BHa6utOxNznNA7IvYkwJ+7mdq8x6DoE8="; + version = "3.6.3"; + hash = "sha256-JDqGZJz28j7rai/yRW4J5dd92QGKVNPZawxr3Wumx/E="; patches = [ # Support for NIX_SSL_CERT_FILE, motivation: diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index 42995b15d25c2..19b690099e07b 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -4,6 +4,7 @@ fetchurl, fetchFromGitLab, cairo, + clang-tools, cmake, boost, curl, @@ -55,13 +56,13 @@ let domain = "gitlab.freedesktop.org"; owner = "poppler"; repo = "test"; - rev = "9d5011815a14c157ba25bb160187842fb81579a5"; - hash = "sha256-sA5f235IJpzzzHqpwHM3zCZC2Yh0ztA6PZa84j/6tfY="; + rev = "f0068e9c530017ad811d1f28b95f9b7f59264e37"; + hash = "sha256-Xf8duSh0r1o09b5BKB7mBvzrMfXYlzTuTOuK2ZCeItc="; }; in stdenv.mkDerivation (finalAttrs: { pname = "poppler-${suffix}"; - version = "25.10.0"; # beware: updates often break cups-filters build, check scribus too! + version = "26.06.0"; # beware: updates often break cups-filters build, check scribus too! outputs = [ "out" @@ -70,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://poppler.freedesktop.org/poppler-${finalAttrs.version}.tar.xz"; - hash = "sha256-a16btk2rsVeHoU2xZ1KRx6+vk4dDjMk6T7f2rsTub+A="; + hash = "sha256-TLTlo9yMte7HUciiPIuhn2H5be3AzQfSruawyOLPa6Q="; }; nativeBuildInputs = [ @@ -81,6 +82,13 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (!minimal) [ glib # for glib-mkenums + ] + ++ lib.optionals stdenv.cc.isClang [ + # Pick up the `clang-scan-deps` wrapper for CMake; see: + # + # * + # * + clang-tools ]; buildInputs = [ @@ -129,18 +137,22 @@ stdenv.mkDerivation (finalAttrs: { (mkFlag qt5Support "QT5") (mkFlag qt6Support "QT6") (mkFlag gpgmeSupport "GPGME") - ] - ++ lib.optionals finalAttrs.finalPackage.doCheck [ - "-DTESTDATADIR=${testData}" ]; disallowedReferences = lib.optional finalAttrs.finalPackage.doCheck testData; dontWrapQtApps = true; - # Workaround #54606 - preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin '' - sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt - ''; + preConfigure = + lib.optionalString finalAttrs.finalPackage.doCheck '' + # The test data directory needs to be writable during the test phase. + mkdir -p $TMPDIR/testdata + cp -r --no-preserve=mode ${testData}/* $TMPDIR/testdata + cmakeFlagsArray+=(-DTESTDATADIR=$TMPDIR/testdata) + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Workaround #54606 + sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt + ''; # Work around gpgme trying to write to $HOME during qt5 and qt6 tests: preCheck = lib.optionalString gpgmeSupport '' diff --git a/pkgs/development/libraries/protobuf/34.nix b/pkgs/development/libraries/protobuf/34.nix index ec10fc8824d84..9962256b0d833 100644 --- a/pkgs/development/libraries/protobuf/34.nix +++ b/pkgs/development/libraries/protobuf/34.nix @@ -2,8 +2,8 @@ callPackage ./generic.nix ( { - version = "34.1"; - hash = "sha256-PaIVJ8NtgnrqowbKLkX+uprsQjuxDch9AUxX4YBBNh4="; + version = "34.2"; + hash = "sha256-5YZ8Q9uy7MDnLRmLkkEuqp0k6eJRvs/nPfyo33cJLgs="; } // args ) diff --git a/pkgs/development/libraries/protobuf/35.nix b/pkgs/development/libraries/protobuf/35.nix new file mode 100644 index 0000000000000..c1addeb598405 --- /dev/null +++ b/pkgs/development/libraries/protobuf/35.nix @@ -0,0 +1,9 @@ +{ callPackage, ... }@args: + +callPackage ./generic.nix ( + { + version = "35.1"; + hash = "sha256-nif9xjd+3ASR2pvvSXkzTEWoKi2oKLzV9gMQ3EevBVk="; + } + // args +) diff --git a/pkgs/development/libraries/protobuf/generic.nix b/pkgs/development/libraries/protobuf/generic.nix index 91e6bc878b010..59de3e5e7f76b 100644 --- a/pkgs/development/libraries/protobuf/generic.nix +++ b/pkgs/development/libraries/protobuf/generic.nix @@ -28,6 +28,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "protobuf"; inherit version; + __structuredAttrs = true; src = fetchFromGitHub { owner = "protocolbuffers"; @@ -53,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-rIP+Ft/SWVwh9Oy8y8GSUBgP6CtLCLvGmr6nOqmyHhY="; }) ] - ++ lib.optionals (lib.versionAtLeast version "30") [ + ++ lib.optionals ((lib.versionAtLeast version "30") && (lib.versionOlder version "35")) [ # workaround nvcc bug in message_lite.h # https://github.com/protocolbuffers/protobuf/issues/21542 # Caused by: https://github.com/protocolbuffers/protobuf/commit/8f7aab29b21afb89ea0d6e2efeafd17ca71486a9 @@ -65,7 +66,7 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-2/vc4anc+kH7otfLHfBtW8dRowPyObiXZn0+HtQktak="; }) ] - ++ lib.optionals (lib.versionAtLeast version "33") [ + ++ lib.optionals ((lib.versionAtLeast version "33") && (lib.versionOlder version "35")) [ # Fix protoc plugins crashing on big-endian platforms # https://github.com/protocolbuffers/protobuf/pull/25363 (fetchpatch { diff --git a/pkgs/development/libraries/qgpgme/default.nix b/pkgs/development/libraries/qgpgme/default.nix index c3dbe6800552a..d1f7e6ca669ea 100644 --- a/pkgs/development/libraries/qgpgme/default.nix +++ b/pkgs/development/libraries/qgpgme/default.nix @@ -10,11 +10,11 @@ stdenv.mkDerivation (finalAttrs: { pname = "qgpgme"; - version = "2.0.0"; + version = "2.1.0"; src = fetchurl { url = "mirror://gnupg/qgpgme/qgpgme-${finalAttrs.version}.tar.xz"; - hash = "sha256-FWRbJHXMphGOsu0zGzqNlELJ1AGcOEa6P20lMhtKYa0="; + hash = "sha256-WzL+s+7kp/lALSK3IGSAkI3EO7TfOCkXwHXFEhFvjwg="; }; patches = [ @@ -30,6 +30,11 @@ stdenv.mkDerivation (finalAttrs: { cmake ]; + cmakeFlags = [ + (lib.cmakeBool "BUILD_WITH_QT5" (lib.versions.major qtbase.version == "5")) + (lib.cmakeBool "BUILD_WITH_QT6" (lib.versions.major qtbase.version == "6")) + ]; + buildInputs = [ qtbase ]; diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix index 6302d6ab5b31f..735afc3c51464 100644 --- a/pkgs/development/libraries/qt-5/5.15/default.nix +++ b/pkgs/development/libraries/qt-5/5.15/default.nix @@ -10,6 +10,7 @@ generateSplicesForMkScope, lib, stdenv, + callPackages, gcc14Stdenv, fetchurl, fetchgit, @@ -297,6 +298,7 @@ let wrapQtAppsHook = callPackage ( { + wrapQtAppsHook, makeBinaryWrapper, qtbase, qtwayland, @@ -308,6 +310,9 @@ let makeBinaryWrapper ] ++ lib.optional stdenv.hostPlatform.isLinux qtwayland.dev; + passthru.tests = callPackages ../../qt-6/tests/wrap-qt-apps-hook.nix { + inherit qtbase wrapQtAppsHook; + }; meta.license = lib.licenses.mit; } ../hooks/wrap-qt-apps-hook.sh ) { }; diff --git a/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh b/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh index 6f7cdac0c9418..0bbdeea1796a4 100644 --- a/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh +++ b/pkgs/development/libraries/qt-5/hooks/wrap-qt-apps-hook.sh @@ -3,8 +3,11 @@ __nix_wrapQtAppsHook=1 # wrap only once per output declare -a qtWrapperDoneForOuputs -# Inherit arguments given in mkDerivation -qtWrapperArgs=( ${qtWrapperArgs-} ) +# Normalize qtWrapperArgs to an array +declare -a _qtWrapperArgsTmp +concatTo _qtWrapperArgsTmp qtWrapperArgs +qtWrapperArgs=("${_qtWrapperArgsTmp[@]}") +unset _qtWrapperArgsTmp qtHostPathSeen=() diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index c1e05d0a8b625..480bd31a6bc13 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -20,6 +20,8 @@ which, # darwin support xcbuild, + # TODO: Clean up on `staging` + llvmPackages, dbus, fontconfig, @@ -192,6 +194,8 @@ stdenv.mkDerivation ( ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ xcbuild + # TODO: Clean up on `staging` + llvmPackages.lld ]; } @@ -373,6 +377,12 @@ stdenv.mkDerivation ( # if dependency paths contain the string "pq", which can occur in the hash. # To prevent these failures, we need to override PostgreSQL detection. PSQL_LIBS = "-L${libpq}/lib -lpq"; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + NIX_CFLAGS_LINK = "-fuse-ld=lld"; }; prefixKey = "-prefix "; diff --git a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix index f10ef301ebef4..b26a201bb38f4 100644 --- a/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix +++ b/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix @@ -9,6 +9,8 @@ gst_all_1, libpulseaudio, wayland, + # TODO: Clean up on `staging`. + llvmPackages, }: qtModule { @@ -17,7 +19,13 @@ qtModule { qtbase qtdeclarative ]; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld + ]; buildInputs = with gst_all_1; [ @@ -38,5 +46,7 @@ qtModule { qmakeFlags = [ "GST_VERSION=1.0" ]; env = lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { NIX_LDFLAGS = "-lobjc"; + # TODO: Clean up on `staging`. + NIX_CFLAGS_LINK = "-fuse-ld=lld"; }; } diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index dc7233f11a8c4..6f1489005a122 100644 --- a/pkgs/development/libraries/qt-6/default.nix +++ b/pkgs/development/libraries/qt-6/default.nix @@ -2,6 +2,7 @@ newScope, lib, stdenv, + callPackages, generateSplicesForMkScope, makeScopeWithSplicing', fetchurl, @@ -88,7 +89,6 @@ let gst-plugins-base gst-plugins-good gst-libav - gst-vaapi ; }; qtmqtt = callPackage ./modules/qtmqtt.nix { }; @@ -124,6 +124,7 @@ let wrapQtAppsHook = callPackage ( { + wrapQtAppsHook, makeBinaryWrapper, qtwayland, qtbase, @@ -134,6 +135,9 @@ let depsTargetTargetPropagated = [ (onlyPluginsAndQml qtbase) ]; + passthru.tests = callPackages ./tests/wrap-qt-apps-hook.nix { + inherit qtbase wrapQtAppsHook; + }; meta.license = lib.licenses.mit; } ./hooks/wrap-qt-apps-hook.sh ) { }; diff --git a/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh b/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh index 18056b9ddf3bc..248d00b3dda2b 100644 --- a/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh +++ b/pkgs/development/libraries/qt-6/hooks/wrap-qt-apps-hook.sh @@ -3,8 +3,11 @@ if [[ -z "${__nix_wrapQtAppsHook-}" ]]; then # wrap only once per output declare -a qtWrapperDoneForOuputs - # Inherit arguments given in mkDerivation - qtWrapperArgs=(${qtWrapperArgs-}) + # Normalize qtWrapperArgs to an array + declare -a _qtWrapperArgsTmp + concatTo _qtWrapperArgsTmp qtWrapperArgs + qtWrapperArgs=("${_qtWrapperArgsTmp[@]}") + unset _qtWrapperArgsTmp qtHostPathSeen=() diff --git a/pkgs/development/libraries/qt-6/modules/qtbase/default.nix b/pkgs/development/libraries/qt-6/modules/qtbase/default.nix index df428b92f64ee..e3f60553ee63a 100644 --- a/pkgs/development/libraries/qt-6/modules/qtbase/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qtbase/default.nix @@ -89,6 +89,9 @@ # options qttranslations ? null, fetchpatch, + + # TODO: Clean up on `staging`. + llvmPackages, }: let @@ -197,7 +200,11 @@ stdenv.mkDerivation { cmake ninja ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ]; + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + moveBuildTree + # TODO: Clean up on `staging`. + llvmPackages.lld + ]; propagatedNativeBuildInputs = [ lndir @@ -270,6 +277,13 @@ stdenv.mkDerivation { --replace-quiet /usr/libexec/PlistBuddy '${lib.getExe' xcbuild "PlistBuddy"}' done + # Unlike Apple's PlistBuddy, xcbuild's only accepts capitalized commands, + # so the usage-description probe in permissions.prf always fails and the + # darwin permission plugins (Bluetooth, camera, ...) are silently never + # linked into qmake-built apps. + substituteInPlace mkspecs/features/permissions.prf \ + --replace-fail "-c 'print " "-c 'Print " + substituteInPlace mkspecs/common/macx.conf \ --replace-fail 'CONFIG += ' 'CONFIG += no_default_rpath ' ''; @@ -305,6 +319,8 @@ stdenv.mkDerivation { # When this variable is not set, cmake tries to execute xcodebuild # to query the version. "-DQT_INTERNAL_XCODE_VERSION=0.1" + # TODO: Clean up on `staging`. + (lib.cmakeFeature "CMAKE_LINKER_TYPE" "LLD") ] ++ lib.optionals isCrossBuild [ "-DQT_HOST_PATH=${pkgsBuildBuild.qt6.qtbase}" @@ -327,7 +343,12 @@ stdenv.mkDerivation { postFixup = '' moveToOutput "mkspecs/modules" "$dev" fixQtModulePaths "$dev/mkspecs/modules" - fixQtBuiltinPaths "$out" '*.pr?' + # fixQtBuiltinPaths reads qtPluginPrefix/qtQmlPrefix from the environment, + # but the setup hook only exports them for downstream packages; without + # them e.g. $$[QT_INSTALL_PLUGINS] in qt.prf is rewritten to "$out/" + # instead of "$out/${qtPluginPrefix}", breaking static plugin linking. + qtPluginPrefix=${qtPluginPrefix} qtQmlPrefix=${qtQmlPrefix} \ + fixQtBuiltinPaths "$out" '*.pr?' # @out@ would be automagically replaced inside makeSetupHook by the output of that derivation, # but we need it to be the output of this derivation. diff --git a/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix b/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix index 2f19e06a67fa2..dde1935940c8b 100644 --- a/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix @@ -11,6 +11,8 @@ pkgsBuildBuild, replaceVars, fetchpatch, + # TODO: Clean up on `staging`. + llvmPackages, }: qtModule { @@ -27,6 +29,8 @@ qtModule { nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ darwin.sigtool + # TODO: Clean up on `staging`. + llvmPackages.lld ]; patches = [ @@ -49,6 +53,14 @@ qtModule { url = "https://github.com/qt/qtdeclarative/commit/8a2c82be6ad90e3f2a0760d8bab1e3a8cdb2473a.diff"; hash = "sha256-3KbyoQPAiRyCwGnwwYV3y0yz2i6UAJcX70EPsXV0ZZM="; }) + + # backport required at least for [musescore][1], and perhaps many other + # applications. + # [1]: https://github.com/musescore/MuseScore/issues/33015 + (fetchpatch { + url = "https://github.com/qt/qtdeclarative/commit/9d4d376726a6ce15c429128dc65b927e411e40da.diff"; + hash = "sha256-XhfliF5wZuN4/E55f8hfipIRjxBe9V7vL1cgn5p4xqA="; + }) ]; cmakeFlags = [ @@ -61,6 +73,11 @@ qtModule { "-DQt6QmlTools_DIR=${pkgsBuildBuild.qt6.qtdeclarative}/lib/cmake/Qt6QmlTools" ]; + env = lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { + # TODO: Clean up on `staging`. + NIX_CFLAGS_LINK = "-fuse-ld=lld"; + }; + meta.maintainers = with lib.maintainers; [ nickcao outfoxxed diff --git a/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix b/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix index 104bfb752531b..b8151df0358dd 100644 --- a/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix @@ -14,7 +14,6 @@ gst-plugins-base, gst-plugins-good, gst-libav, - gst-vaapi, ffmpeg, libva, libpulseaudio, @@ -25,11 +24,19 @@ libunwind, orc, pkgsBuildBuild, + # TODO: Clean up on `staging`. + llvmPackages, }: qtModule { pname = "qtmultimedia"; - nativeBuildInputs = [ pkg-config ]; + nativeBuildInputs = [ + pkg-config + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld + ]; buildInputs = [ ffmpeg ] @@ -59,7 +66,6 @@ qtModule { gst-plugins-base gst-plugins-good gst-libav - gst-vaapi ]; patches = lib.optionals stdenv.hostPlatform.isMinGW [ @@ -74,6 +80,8 @@ qtModule { env = { NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin "-include AudioToolbox/AudioToolbox.h"; + # TODO: Clean up on `staging`. + NIX_CFLAGS_LINK = lib.optionalString stdenv.hostPlatform.isDarwin "-fuse-ld=lld"; NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-framework AudioToolbox"; }; } diff --git a/pkgs/development/libraries/qt-6/tests/wrap-qt-apps-hook.nix b/pkgs/development/libraries/qt-6/tests/wrap-qt-apps-hook.nix new file mode 100644 index 0000000000000..e9010031e879c --- /dev/null +++ b/pkgs/development/libraries/qt-6/tests/wrap-qt-apps-hook.nix @@ -0,0 +1,174 @@ +{ + lib, + qtbase, + runCommandLocal, + stdenv, + wrapQtAppsHook, +}: +let + testProgram = stdenv.mkDerivation { + pname = "qt-wrapper-test-program"; + version = "0.0.1"; + __structuredAttrs = true; + + dontUnpack = true; + + src = /* c */ '' + #include + #include + #include + + int main(void) { + const char *wrapperTest = getenv("WRAPPER_TEST"); + if (!wrapperTest || strcmp(wrapperTest, "expected") != 0) { + fprintf(stderr, + "expected WRAPPER_TEST=expected, got=%s\n", + wrapperTest); + return 1; + } + + const char *plugin_path = getenv("QT_PLUGIN_PATH"); + if (!plugin_path) { + fprintf(stderr, "QT_PLUGIN_PATH not set\n"); + return 1; + } + + if (!strstr(plugin_path, + "${qtbase}/${qtbase.qtPluginPrefix}")) { + fprintf(stderr, + "QT_PLUGIN_PATH missing Qt plugin dir:\n%s\n", + plugin_path); + return 1; + } + + return 0; + } + ''; + + buildPhase = '' + "$CC" -x c - -o test <<<"$src" + ''; + + installPhase = '' + mkdir -p $out/bin + install -m755 test $out/bin/test + ''; + + meta.mainProgram = "test"; + }; + + # Test that wrapQtAppsHook produces the expected qtWrapperArgs bash array + checkWrapperArgsArray = + { + name, + qtWrapperArgs, + }: + runCommandLocal "${name}-check-qtWrapperArgs" + { + inherit qtWrapperArgs; + buildInputs = [ qtbase ]; + nativeBuildInputs = [ wrapQtAppsHook ]; + __structuredAttrs = true; + } + '' + ${lib.toShellVars { + # The resulting array should start with the exact user-defined args: + userDefinedArgs = qtWrapperArgs; + + # The hook's setup should also add internal flags, including: + internalArgs = [ + "QT_PLUGIN_PATH" + "${qtbase}/${qtbase.qtPluginPrefix}" + ]; + }} + + # The hook should have run its setup already, converting qtWrapperArgs + # to an array and appending internal flags. + type=$(declare -p qtWrapperArgs) + [[ "$type" == "declare -"*a* ]] || { + echo "Expected qtWrapperArgs to be an array, found: ''${type%%=*}" >&2 + exit 1 + } + + # The start of the array should equal the user-defined args + for i in "''${!userDefinedArgs[@]}"; do + actual="''${qtWrapperArgs[$i]}" + expected="''${userDefinedArgs[$i]}" + [ "$expected" = "$actual" ] || { + echo "qtWrapperArgs[$i]: expected '$expected', found '$actual'" >&2 + exit 1 + } + done + + # Internal args should be appended to the array + internalSlice=("''${qtWrapperArgs[@]:''${#userDefinedArgs[@]}}") + for expected in "''${internalArgs[@]}"; do + found= + for actual in "''${internalSlice[@]}"; do + if [ "$expected" = "$actual" ]; then + found=1 + break + fi + done + + [ -n "$found" ] || { + echo "Internal arg '$expected' not found in internal qtWrapperArgs" >&2 + exit 1 + } + done + + # The hook should've defined the wrapQtAppsHook function + [ "$(type -t wrapQtAppsHook)" = function ] || { + echo "wrapQtAppsHook is not declared as a function" >&2 + exit 1 + } + + touch "$out" + ''; +in + +lib.fix (self: { + + simple = checkWrapperArgsArray { + name = "simple"; + qtWrapperArgs = [ + "--chdir" + "/foo" + ]; + }; + + simple-no-structuredAttrs = self.simple.overrideAttrs (prevAttrs: { + name = prevAttrs.name + "-no-structuredAttrs"; + __structuredAttrs = false; + }); + + # Integration test: assert program is wrapped with the expected environment + runtime = + runCommandLocal "simple-wrapper-runtime" + { + qtWrapperArgs = [ + "--set" + "WRAPPER_TEST" + "expected" + ]; + + buildInputs = [ qtbase ]; + nativeBuildInputs = [ wrapQtAppsHook ]; + __structuredAttrs = true; + } + '' + # Install the test program + mkdir -p "$out/bin" + cp ${lib.getExe testProgram} "$out/bin/test" + + # Wrap and run the test + wrapQtAppsHook + "$out/bin/test" + ''; + + runtime-no-structuredAttrs = self.runtime.overrideAttrs (prevAttrs: { + name = prevAttrs.name + "-no-structuredAttrs"; + __structuredAttrs = false; + }); + +}) diff --git a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix index 7b84749d9552f..8b9b68ccec9a3 100644 --- a/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix +++ b/pkgs/development/libraries/science/chemistry/simple-dftd3/default.nix @@ -64,9 +64,6 @@ stdenv.mkDerivation rec { ]; doCheck = true; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; meta = { description = "Reimplementation of the DFT-D3 program"; diff --git a/pkgs/development/libraries/science/chemistry/tblite/default.nix b/pkgs/development/libraries/science/chemistry/tblite/default.nix index 1c21aa56c2ec8..a10cea0d64dbe 100644 --- a/pkgs/development/libraries/science/chemistry/tblite/default.nix +++ b/pkgs/development/libraries/science/chemistry/tblite/default.nix @@ -100,10 +100,6 @@ stdenv.mkDerivation (finalAttrs: { doCheck = buildType == "meson"; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - meta = { description = "Light-weight tight-binding framework"; mainProgram = "tblite"; diff --git a/pkgs/development/libraries/silgraphite/graphite2.nix b/pkgs/development/libraries/silgraphite/graphite2.nix index b5ed5a969db73..40ae39918d8c7 100644 --- a/pkgs/development/libraries/silgraphite/graphite2.nix +++ b/pkgs/development/libraries/silgraphite/graphite2.nix @@ -2,7 +2,7 @@ lib, stdenv, llvmPackages, - fetchpatch, + python3, fetchurl, pkg-config, freetype, @@ -12,14 +12,14 @@ }: stdenv.mkDerivation (finalAttrs: { - version = "1.3.14"; + version = "1.3.15"; pname = "graphite2"; src = fetchurl { url = with finalAttrs; "https://github.com/silnrsi/graphite/releases/download/${version}/${pname}-${version}.tgz"; - sha256 = "1790ajyhk0ax8xxamnrk176gc9gvhadzy78qia4rd8jzm89ir7gr"; + hash = "sha256-xryLQlJyRmUpf3ytDFWJcoXGc/m45ts1IqzoM1k/4LE="; }; outputs = [ @@ -29,6 +29,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ pkg-config + (python3.withPackages (ps: [ ps.fonttools ])) cmake ]; buildInputs = [ @@ -40,14 +41,7 @@ stdenv.mkDerivation (finalAttrs: { } ); - patches = [ - # Fix build with gcc15 - (fetchpatch { - url = "https://src.fedoraproject.org/rpms/graphite2/raw/deba28323b0a3b7a3dcfd06df1efc2195b102ed7/f/graphite2-1.3.14-gcc15.patch"; - hash = "sha256-vkkGkHkcsj1mD3OHCHLWWgpcmFDv8leC4YQm+TsbIUw="; - }) - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ ./macosx.patch ]; + patches = lib.optionals stdenv.hostPlatform.isDarwin [ ./macosx.patch ]; postPatch = '' # disable broken 'nametabletest' test, fails on gcc-13: # https://github.com/silnrsi/graphite/pull/74 @@ -61,22 +55,6 @@ stdenv.mkDerivation (finalAttrs: { # headers are located in the dev output: substituteInPlace CMakeLists.txt \ --replace-fail ' ''${CMAKE_INSTALL_PREFIX}/include' " ${placeholder "dev"}/include" - - # Fix the build with CMake 4. - # - # See: - badCmakeFiles=( - CMakeLists.txt - src/CMakeLists.txt - tests/{bittwiddling,json,sparsetest,utftest}/CMakeLists.txt - gr2fonttest/CMakeLists.txt - ) - for file in "''${badCmakeFiles[@]}"; do - substituteInPlace "$file" \ - --replace-fail \ - 'CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)' \ - 'CMAKE_MINIMUM_REQUIRED(VERSION 3.10 FATAL_ERROR)' - done ''; cmakeFlags = lib.optionals static [ diff --git a/pkgs/development/libraries/spandsp/3.nix b/pkgs/development/libraries/spandsp/3.nix index 5a7f0005a407d..3d10c91e4b4e1 100644 --- a/pkgs/development/libraries/spandsp/3.nix +++ b/pkgs/development/libraries/spandsp/3.nix @@ -12,6 +12,11 @@ rev = "6ec23e5a7e411a22d59e5678d12c4d2942c4a4b6"; # upstream does not seem to believe in tags sha256 = "03w0s99y3zibi5fnvn8lk92dggfgrr0mz5255745jfbz28b2d5y7"; }; + + patches = [ + # https://github.com/freeswitch/spandsp/pull/120 + ./Fix-buffer-overrun-in-t85-tests.patch + ]; }).overrideAttrs ( finalAttrs: previousAttrs: { diff --git a/pkgs/development/libraries/spandsp/Fix-buffer-overrun-in-t85-tests.patch b/pkgs/development/libraries/spandsp/Fix-buffer-overrun-in-t85-tests.patch new file mode 100644 index 0000000000000..de78212f73794 --- /dev/null +++ b/pkgs/development/libraries/spandsp/Fix-buffer-overrun-in-t85-tests.patch @@ -0,0 +1,29 @@ +From bc1c899fa1b6746d430f7b3d7ee288506d50441a Mon Sep 17 00:00:00 2001 +From: Alyssa Ross +Date: Mon, 11 May 2026 08:51:29 +0200 +Subject: [PATCH] Fix buffer overrun in t85 tests + +The variable length tests involve reading an extra row from +test_image, which would previously read past the end of test_image. + +Identified with fortify-headers. +--- + tests/t85_tests.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/t85_tests.c b/tests/t85_tests.c +index 436dfca..671ee6c 100644 +--- a/tests/t85_tests.c ++++ b/tests/t85_tests.c +@@ -55,7 +55,7 @@ in ITU specifications T.85. + #include "spandsp.h" + + #define TESTBUF_SIZE 400000 +-#define TEST_IMAGE_SIZE (1951*1960/8) ++#define TEST_IMAGE_SIZE (1952*1960/8) + + uint8_t testbuf[TESTBUF_SIZE]; + uint8_t test_image[TEST_IMAGE_SIZE]; +-- +2.53.0 + diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix index 54b4ef4557f2c..bc27578cda3d7 100644 --- a/pkgs/development/libraries/sqlite/default.nix +++ b/pkgs/development/libraries/sqlite/default.nix @@ -28,17 +28,17 @@ in stdenv.mkDerivation rec { pname = "sqlite${lib.optionalString interactive "-interactive"}"; - version = "3.51.2"; + version = "3.53.1"; # nixpkgs-update: no auto update # NB! Make sure to update ./tools.nix src (in the same directory). src = fetchurl { url = "https://sqlite.org/2026/sqlite-src-${archiveVersion version}.zip"; - hash = "sha256-hREPdi1QeUFNmd1deRe8P/fgWHbmzL0T2ElqOBfyCCk="; + hash = "sha256-GytXVdkGTE1dGwv1MHtIsImWPikcQMxzUTGKobYcRg4="; }; docsrc = fetchurl { url = "https://sqlite.org/2026/sqlite-doc-${archiveVersion version}.zip"; - hash = "sha256-xuMNB8XpwSaQHFTY18kKnBo3B4JFUX8GCzxpxN5Dv10="; + hash = "sha256-n9Bgv33YwseOdBHQb7gdyKqgWeth7sgMZeBlioVFtDM="; }; outputs = [ diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix index 932366a1b595a..9755b37332734 100644 --- a/pkgs/development/libraries/sqlite/tools.nix +++ b/pkgs/development/libraries/sqlite/tools.nix @@ -19,14 +19,14 @@ let }: stdenv.mkDerivation rec { inherit pname; - version = "3.51.2"; + version = "3.53.1"; # nixpkgs-update: no auto update src = assert version == sqlite.version; fetchurl { url = "https://sqlite.org/2026/sqlite-src-${archiveVersion version}.zip"; - hash = "sha256-hREPdi1QeUFNmd1deRe8P/fgWHbmzL0T2ElqOBfyCCk="; + hash = "sha256-GytXVdkGTE1dGwv1MHtIsImWPikcQMxzUTGKobYcRg4="; }; nativeBuildInputs = [ unzip ]; diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix index 65270be3e3452..7088a60468cc6 100644 --- a/pkgs/development/libraries/tk/generic.nix +++ b/pkgs/development/libraries/tk/generic.nix @@ -9,6 +9,8 @@ zlib, patches ? [ ], enableAqua ? stdenv.hostPlatform.isDarwin, + # TODO: Clean up on `staging`. + llvmPackages, ... }: @@ -74,6 +76,10 @@ tcl.mkTclDerivation { ++ lib.optionals (lib.versionAtLeast tcl.version "9.0") [ # Only used to detect the presence of zlib. Could be replaced with a stub. zip + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; buildInputs = lib.optionals (lib.versionAtLeast tcl.version "9.0") [ zlib @@ -89,9 +95,16 @@ tcl.mkTclDerivation { inherit tcl; - env = lib.optionalAttrs (lib.versionOlder tcl.version "8.6") { - NIX_CFLAGS_COMPILE = "-std=gnu17"; - }; + env = + lib.optionalAttrs (lib.versionOlder tcl.version "8.6") { + NIX_CFLAGS_COMPILE = "-std=gnu17"; + } + // lib.optionalAttrs stdenv.hostPlatform.isDarwin { + # workaround for ld64 hardening issue + # + # TODO: Clean up on `staging` + NIX_CFLAGS_COMPILE = "-fuse-ld=lld"; + }; passthru = rec { inherit (tcl) release version; diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix index b4bce91d08788..6bf372a5dd926 100644 --- a/pkgs/development/libraries/tpm2-tss/default.nix +++ b/pkgs/development/libraries/tpm2-tss/default.nix @@ -167,7 +167,9 @@ stdenv.mkDerivation (finalAttrs: { stdenv.buildPlatform.canExecute stdenv.hostPlatform && !stdenv.hostPlatform.isDarwin # Tests rely on mocking, which can't work with static libs. - && !stdenv.hostPlatform.isStatic; + && !stdenv.hostPlatform.isStatic + # swtpm does not build on 32-bit targets + && !stdenv.hostPlatform.is32bit; # Since we rewrote the load path in the dynamic loader for the TCTI # The various tcti implementation should be placed in their target directory # before we could run tests, so we make turn checkPhase into installCheckPhase diff --git a/pkgs/development/libraries/wayland/protocols.nix b/pkgs/development/libraries/wayland/protocols.nix index 8a14819a2805f..3aeaf002b5ddb 100644 --- a/pkgs/development/libraries/wayland/protocols.nix +++ b/pkgs/development/libraries/wayland/protocols.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "wayland-protocols"; - version = "1.48"; + version = "1.49"; doCheck = stdenv.hostPlatform == stdenv.buildPlatform @@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "https://gitlab.freedesktop.org/wayland/${finalAttrs.pname}/-/releases/${finalAttrs.version}/downloads/${finalAttrs.pname}-${finalAttrs.version}.tar.xz"; - hash = "sha256-OYA2rA62SEmC3b3n/4aEjXUyMfnN7q6YPwa1KUZiWqE="; + hash = "sha256-7EyPdJQtbf96zotM5HZPDvn/YYqTXZdOp37e4q0kCxQ="; }; postPatch = lib.optionalString finalAttrs.finalPackage.doCheck '' diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix index 1e80c814a03e1..7d7c6c382d179 100644 --- a/pkgs/development/lua-modules/generated-packages.nix +++ b/pkgs/development/lua-modules/generated-packages.nix @@ -752,15 +752,15 @@ final: prev: { }: buildLuarocksPackage { pname = "dkjson"; - version = "2.8-2"; + version = "2.10-1"; knownRockspec = (fetchurl { - url = "mirror://luarocks/dkjson-2.8-2.rockspec"; - sha256 = "0hr4vfmf64kvmqbnr1vx4p6gl3mmiq1hg5jd60rqwplsiaib2r67"; + url = "mirror://luarocks/dkjson-2.10-1.rockspec"; + sha256 = "0h49fv93h6n32xwwgwvrhb6w5rzvgjzyls6m9xhmcd94pbkih8v2"; }).outPath; src = fetchurl { - url = "https://dkolf.de/dkjson-lua/dkjson-2.8.tar.gz"; - sha256 = "0chmlcv8498n313x19aampwvz2s1pp4zpcvvxdhwihcixcxwvs14"; + url = "https://dkolf.de/dkjson-lua/dkjson-2.10.tar.gz"; + sha256 = "092v9m13h7zl89qfgywbs22wdvniwr2lr3shjqrn91f4nl39xiz8"; }; disabled = luaOlder "5.1" || luaAtLeast "5.6"; diff --git a/pkgs/development/ocaml-modules/dune-configurator/default.nix b/pkgs/development/ocaml-modules/dune-configurator/default.nix index d17a866141b9b..2ede486e1a14f 100644 --- a/pkgs/development/ocaml-modules/dune-configurator/default.nix +++ b/pkgs/development/ocaml-modules/dune-configurator/default.nix @@ -1,14 +1,17 @@ { lib, buildDunePackage, + ocaml, dune, csexp, + version ? if lib.versionAtLeast ocaml.version "4.13" then dune.version else "3.22.2", }: buildDunePackage { pname = "dune-configurator"; + inherit version; - inherit (dune) src version; + inherit (dune.override { inherit version; }) src; dontAddPrefix = true; diff --git a/pkgs/development/ocaml-modules/janestreet/0.17.nix b/pkgs/development/ocaml-modules/janestreet/0.17.nix index 5ebd0770438d2..23dcd03452ff2 100644 --- a/pkgs/development/ocaml-modules/janestreet/0.17.nix +++ b/pkgs/development/ocaml-modules/janestreet/0.17.nix @@ -60,6 +60,7 @@ with self; pname = "accessor_core"; hash = "sha256-ku83ZfLtVI8FvQhrKcnJmhmoNlYcVMKx1tor5N8Nq7M="; meta.description = "Accessors for Core types, for use with the Accessor library"; + meta.broken = lib.versionAtLeast ocaml.version "5.5"; propagatedBuildInputs = [ accessor_base core_kernel diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix index 04f8867cb0ad0..cc22bd5e1502f 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/default.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/default.nix @@ -85,6 +85,6 @@ buildDunePackage (finalAttrs: { meta = lsp.meta // { description = "OCaml Language Server Protocol implementation"; mainProgram = "ocamllsp"; - broken = lib.versions.majorMinor ocaml.version == "4.13"; + broken = lib.versionAtLeast ocaml.version "4.13" && lib.versionOlder ocaml.version "5.4"; }; }) diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix index c273d70b2c750..de8d03343690c 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/jsonrpc.nix @@ -9,8 +9,10 @@ lib, ocaml, version ? - if lib.versionAtLeast ocaml.version "5.4" then - "1.25.0" + if lib.versionAtLeast ocaml.version "5.5" then + "1.27.0" + else if lib.versionAtLeast ocaml.version "5.4" then + "1.26.0" else if lib.versionAtLeast ocaml.version "5.3" then "1.23.1" else if lib.versionAtLeast ocaml.version "5.2" then @@ -28,6 +30,16 @@ let params = { + "1.27.0" = { + name = "lsp"; + minimalOCamlVersion = "5.3"; + sha256 = "sha256-BDrNaSP4pcuq2RVFI1cKsTlzuu72mOK1VTIT3WN5JxU="; + }; + "1.26.0" = { + name = "lsp"; + minimalOCamlVersion = "5.3"; + sha256 = "sha256-tMgQ1mZKW/F1pvmUbIDIzCsY5GqYWTTBRQss4IDkaDI="; + }; "1.25.0" = { name = "lsp"; minimalOCamlVersion = "5.3"; diff --git a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix index 7900a7261c081..660c4ff90b7a6 100644 --- a/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix +++ b/pkgs/development/ocaml-modules/ocaml-lsp/lsp.nix @@ -25,8 +25,10 @@ ocamlformat-rpc-lib, ocaml, version ? - if lib.versionAtLeast ocaml.version "5.4" then - "1.25.0" + if lib.versionAtLeast ocaml.version "5.5" then + "1.27.0" + else if lib.versionAtLeast ocaml.version "5.4" then + "1.26.0" else if lib.versionAtLeast ocaml.version "5.3" then "1.23.1" else if lib.versionAtLeast ocaml.version "5.2" then diff --git a/pkgs/development/ocaml-modules/ppx_import/default.nix b/pkgs/development/ocaml-modules/ppx_import/default.nix index fdd59a094f5ec..185154a4ec7bd 100644 --- a/pkgs/development/ocaml-modules/ppx_import/default.nix +++ b/pkgs/development/ocaml-modules/ppx_import/default.nix @@ -1,6 +1,7 @@ { lib, fetchurl, + ocaml, buildDunePackage, ounit, ppx_deriving, @@ -53,5 +54,6 @@ buildDunePackage { description = "Syntax extension for importing declarations from interface files"; license = lib.licenses.mit; homepage = "https://github.com/ocaml-ppx/ppx_import"; + broken = lib.versionAtLeast ocaml.version "5.5"; }; } diff --git a/pkgs/development/ocaml-modules/stdune/default.nix b/pkgs/development/ocaml-modules/stdune/default.nix index 04b3fc3d1267d..f4d61e9241f90 100644 --- a/pkgs/development/ocaml-modules/stdune/default.nix +++ b/pkgs/development/ocaml-modules/stdune/default.nix @@ -1,5 +1,7 @@ { + lib, buildDunePackage, + ocaml, dune, dyn, ordering, @@ -7,11 +9,14 @@ csexp, fs-io, top-closure, + version ? if lib.versionAtLeast ocaml.version "4.13" then dune.version else "3.22.2", }: buildDunePackage { pname = "stdune"; - inherit (dune) version src; + inherit version; + + inherit (dune.override { inherit version; }) src; dontAddPrefix = true; diff --git a/pkgs/development/perl-modules/Cpanel-JSON-XS-CVE-2025-40929.patch b/pkgs/development/perl-modules/Cpanel-JSON-XS-CVE-2025-40929.patch deleted file mode 100644 index 0f76f7313fde4..0000000000000 --- a/pkgs/development/perl-modules/Cpanel-JSON-XS-CVE-2025-40929.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 5592bfb58eb8d1c8a644e67c9bba795d1384a995 Mon Sep 17 00:00:00 2001 -From: Marc Lehmann -Date: Sat, 6 Sep 2025 11:31:36 +0200 -Subject: [PATCH 1/2] fix json_atof_scan1 overflows - -with fuzzed overlong numbers. CVE-2025-40928 -Really the comparisons were wrong. ---- - XS.xs | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/XS.xs b/XS.xs -index 9b1ce2b..94ab0d6 100755 ---- a/XS.xs -+++ b/XS.xs -@@ -710,16 +710,16 @@ json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth) - /* if we recurse too deep, skip all remaining digits */ - /* to avoid a stack overflow attack */ - if (UNLIKELY(--maxdepth <= 0)) -- while (((U8)*s - '0') < 10) -+ while ((U8)(*s - '0') < 10) - ++s; - - for (;;) - { -- U8 dig = (U8)*s - '0'; -+ U8 dig = (U8)(*s - '0'); - - if (UNLIKELY(dig >= 10)) - { -- if (dig == (U8)((U8)'.' - (U8)'0')) -+ if (dig == (U8)('.' - '0')) - { - ++s; - json_atof_scan1 (s, accum, expo, 1, maxdepth); -@@ -739,7 +739,7 @@ json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth) - else if (*s == '+') - ++s; - -- while ((dig = (U8)*s - '0') < 10) -+ while ((dig = (U8)(*s - '0')) < 10) - exp2 = exp2 * 10 + *s++ - '0'; - - *expo += neg ? -exp2 : exp2; --- -2.50.1 - diff --git a/pkgs/development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch b/pkgs/development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch deleted file mode 100644 index 5433d3afd9347..0000000000000 --- a/pkgs/development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch +++ /dev/null @@ -1,242 +0,0 @@ -From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Tue, 21 May 2024 15:17:30 +0200 -Subject: [PATCH 1/3] Fix test suite with libxml2 2.13.0 - ---- - t/02parse.t | 7 ++++++- - t/08findnodes.t | 8 +++++++- - t/19die_on_invalid_utf8_rt_58848.t | 2 +- - t/25relaxng.t | 4 ++-- - t/26schema.t | 4 ++-- - t/60error_prev_chain.t | 8 ++++---- - 6 files changed, 22 insertions(+), 11 deletions(-) - -diff --git a/t/02parse.t b/t/02parse.t -index b111507b..40aa5f13 100644 ---- a/t/02parse.t -+++ b/t/02parse.t -@@ -884,7 +884,12 @@ EOXML - eval { - $doc2 = $parser->parse_string( $xmldoc ); - }; -- isnt($@, '', "error parsing $xmldoc"); -+ # https://gitlab.gnome.org/GNOME/libxml2/-/commit/b717abdd -+ if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) { -+ isnt($@, '', "error parsing $xmldoc"); -+ } else { -+ is( $doc2->documentElement()->firstChild()->nodeName(), "foo" ); -+ } - - $parser->validation(1); - -diff --git a/t/08findnodes.t b/t/08findnodes.t -index 016c85a1..e9417bc5 100644 ---- a/t/08findnodes.t -+++ b/t/08findnodes.t -@@ -123,7 +123,13 @@ my $docstring = q{ - my @ns = $root->findnodes('namespace::*'); - # TEST - --is(scalar(@ns), 2, ' TODO : Add test name' ); -+# https://gitlab.gnome.org/GNOME/libxml2/-/commit/aca16fb3 -+# fixed xmlCopyNamespace with XML namespace. -+if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) { -+ is(scalar(@ns), 2, ' TODO : Add test name' ); -+} else { -+ is(scalar(@ns), 3, ' TODO : Add test name' ); -+} - - # bad xpaths - # TEST:$badxpath=4; -diff --git a/t/19die_on_invalid_utf8_rt_58848.t b/t/19die_on_invalid_utf8_rt_58848.t -index aa8ad105..4160cb27 100644 ---- a/t/19die_on_invalid_utf8_rt_58848.t -+++ b/t/19die_on_invalid_utf8_rt_58848.t -@@ -16,7 +16,7 @@ use XML::LibXML; - my $err = $@; - - # TEST -- like ("$err", qr{parser error : Input is not proper UTF-8}, -+ like ("$err", qr{not proper UTF-8|Invalid bytes in character encoding}, - 'Parser error.', - ); - } -diff --git a/t/25relaxng.t b/t/25relaxng.t -index 93e61883..71383b2a 100644 ---- a/t/25relaxng.t -+++ b/t/25relaxng.t -@@ -132,7 +132,7 @@ print "# 6 check that no_network => 1 works\n"; - { - my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, no_network => 1 ) }; - # TEST -- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' ); -+ like( $@, qr{Attempt to load network entity}, 'RNG from file location with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $rng, 'RNG from file location with external import and no_network => 1 is not loaded.' ); - } -@@ -152,7 +152,7 @@ print "# 6 check that no_network => 1 works\n"; - - EOF - # TEST -- like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' ); -+ like( $@, qr{Attempt to load network entity}, 'RNG from buffer with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $rng, 'RNG from buffer with external import and no_network => 1 is not loaded.' ); - } -diff --git a/t/26schema.t b/t/26schema.t -index 17f641e4..c404cedd 100644 ---- a/t/26schema.t -+++ b/t/26schema.t -@@ -117,7 +117,7 @@ EOF - { - my $schema = eval { XML::LibXML::Schema->new( location => $netfile, no_network => 1 ) }; - # TEST -- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' ); -+ like( $@, qr{Attempt to load network entity}, 'Schema from file location with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $schema, 'Schema from file location with external import and no_network => 1 is not loaded.' ); - } -@@ -129,7 +129,7 @@ EOF - - EOF - # TEST -- like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' ); -+ like( $@, qr{Attempt to load network entity}, 'Schema from buffer with external import and no_network => 1 throws an exception.' ); - # TEST - ok( !defined $schema, 'Schema from buffer with external import and no_network => 1 is not loaded.' ); - } -diff --git a/t/60error_prev_chain.t b/t/60error_prev_chain.t -index e48215c4..55ac0b2e 100644 ---- a/t/60error_prev_chain.t -+++ b/t/60error_prev_chain.t -@@ -16,13 +16,11 @@ use XML::LibXML; - - { - my $parser = XML::LibXML->new(); -- $parser->validation(0); -- $parser->load_ext_dtd(0); - - eval - { - local $^W = 0; -- $parser->parse_file('example/JBR-ALLENtrees.htm'); -+ $parser->parse_string('“ ”'); - }; - - my $err = $@; -@@ -31,7 +29,7 @@ use XML::LibXML; - if( $err && !ref($err) ) { - plan skip_all => 'The local libxml library does not support errors as objects to $@'; - } -- plan tests => 1; -+ plan tests => 2; - - while (defined($err) && $count < 200) - { -@@ -44,6 +42,8 @@ use XML::LibXML; - - # TEST - ok ((!$err), "Reached the end of the chain."); -+ # TEST -+ is ($count, 3, "Correct number of errors reported") - } - - =head1 COPYRIGHT & LICENSE - -From c9f9c2fe51173b0a00969f01b577399f1098aa47 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Thu, 13 Feb 2025 19:50:35 +0100 -Subject: [PATCH 2/3] Fix test suite with libxml2 2.14.0 - ---- - t/16docnodes.t | 7 ++++++- - t/49_load_html.t | 8 +++++++- - 2 files changed, 13 insertions(+), 2 deletions(-) - -diff --git a/t/16docnodes.t b/t/16docnodes.t -index db7bc1fc..0b0ae005 100644 ---- a/t/16docnodes.t -+++ b/t/16docnodes.t -@@ -60,7 +60,12 @@ for my $time (0 .. 2) { - $doc->setDocumentElement($node); - - # TEST -- is( $node->serialize(), '', 'Node serialise works.' ); -+ # libxml2 2.14 avoids unnecessary escaping of attribute values. -+ if (XML::LibXML::LIBXML_VERSION() >= 21400) { -+ is( $node->serialize(), "", 'Node serialise works.' ); -+ } else { -+ is( $node->serialize(), '', 'Node serialise works.' ); -+ } - - $doc->setEncoding('utf-8'); - # Second output -diff --git a/t/49_load_html.t b/t/49_load_html.t -index 70d26607..3861edf8 100644 ---- a/t/49_load_html.t -+++ b/t/49_load_html.t -@@ -52,7 +52,13 @@ use XML::LibXML; - - EOS - -- { -+ SKIP: { -+ # libxml2 2.14 tokenizes HTML according to HTML5 where -+ # this isn't an error, see "13.2.5.73 Named character -+ # reference state". -+ skip("libxml2 version >= 21400", 1) -+ if XML::LibXML::LIBXML_VERSION >= 21400; -+ - my $buf = ''; - open my $fh, '>', \$buf; - # redirect STDERR there - -From ecbebc2f33fecb66b3d5487c6e48bea353e374f9 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Fri, 16 May 2025 19:11:12 +0200 -Subject: [PATCH 3/3] Remove tests that disable line numbers - -Line numbers are always enabled since libxml2 2.15.0. ---- - t/02parse.t | 13 ++----------- - 1 file changed, 2 insertions(+), 11 deletions(-) - -diff --git a/t/02parse.t b/t/02parse.t -index 40aa5f13..17419f8f 100644 ---- a/t/02parse.t -+++ b/t/02parse.t -@@ -14,7 +14,7 @@ use locale; - - POSIX::setlocale(LC_ALL, "C"); - --use Test::More tests => 533; -+use Test::More tests => 531; - use IO::File; - - use XML::LibXML::Common qw(:libxml); -@@ -25,7 +25,7 @@ use constant XML_DECL => "\n"; - - use Errno qw(ENOENT); - --# TEST*533 -+# TEST*531 - - ## - # test values -@@ -773,15 +773,6 @@ EOXML - - my $newkid = $root->appendChild( $doc->createElement( "bar" ) ); - is( $newkid->line_number(), 0, "line number is 0"); -- -- $parser->line_numbers(0); -- eval { $doc = $parser->parse_string( $goodxml ); }; -- -- $root = $doc->documentElement(); -- is( $root->line_number(), 0, "line number is 0"); -- -- @kids = $root->childNodes(); -- is( $kids[1]->line_number(), 0, "line number is 0"); - } - - SKIP: { diff --git a/pkgs/development/php-packages/memcached/default.nix b/pkgs/development/php-packages/memcached/default.nix index fdbda0292e592..f2c5125dd6777 100644 --- a/pkgs/development/php-packages/memcached/default.nix +++ b/pkgs/development/php-packages/memcached/default.nix @@ -24,12 +24,12 @@ buildPecl rec { configureFlags = [ "--with-zlib-dir=${zlib.dev}" - "--with-libmemcached-dir=${libmemcached}" ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ cyrus_sasl + libmemcached zlib ]; diff --git a/pkgs/development/python-modules/adax-local/default.nix b/pkgs/development/python-modules/adax-local/default.nix index 0dea9d257e5f3..8f0f851408ea9 100644 --- a/pkgs/development/python-modules/adax-local/default.nix +++ b/pkgs/development/python-modules/adax-local/default.nix @@ -6,7 +6,7 @@ buildPythonPackage, fetchFromGitHub, async-timeout, - setuptools, + setuptools_80, }: buildPythonPackage rec { @@ -21,7 +21,7 @@ buildPythonPackage rec { hash = "sha256-8gVpUYQoE4V3ATR6zFAz/sARyEmHu9lYyGchTpS1eX8="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ aiohttp diff --git a/pkgs/development/python-modules/aiocache/default.nix b/pkgs/development/python-modules/aiocache/default.nix index c4af88bf2cbf9..a5bfc179135cc 100644 --- a/pkgs/development/python-modules/aiocache/default.nix +++ b/pkgs/development/python-modules/aiocache/default.nix @@ -77,6 +77,9 @@ buildPythonPackage rec { # TypeError: object MagicMock can't be used in 'await' expression "tests/ut/backends/test_redis.py::TestRedisBackend::test_close" + + # flaky, see https://github.com/aio-libs/aiocache/issues/587 + "tests/acceptance/test_lock.py::TestRedLock::test_locking_dogpile" ]; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/aiohappyeyeballs/default.nix b/pkgs/development/python-modules/aiohappyeyeballs/default.nix index 8b66278e436f8..61403273a997e 100644 --- a/pkgs/development/python-modules/aiohappyeyeballs/default.nix +++ b/pkgs/development/python-modules/aiohappyeyeballs/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "aiohappyeyeballs"; - version = "2.6.1"; + version = "2.7.0"; pyproject = true; src = fetchFromGitHub { owner = "bdraco"; repo = "aiohappyeyeballs"; tag = "v${version}"; - hash = "sha256-qqe/h633uEbJPpdsuCzZKW86Z6BQUmPdCju1vg7OLXc="; + hash = "sha256-BqwKo1zZ7CqkUZ9H05fbbHVj/z3m0xaERh5dGBDKFYI="; }; outputs = [ diff --git a/pkgs/development/python-modules/aiohasupervisor/default.nix b/pkgs/development/python-modules/aiohasupervisor/default.nix index a4a3aaf8d4c12..4486fd2391306 100644 --- a/pkgs/development/python-modules/aiohasupervisor/default.nix +++ b/pkgs/development/python-modules/aiohasupervisor/default.nix @@ -6,6 +6,7 @@ fetchFromGitHub, mashumaro, orjson, + pyprojectVersionPatchHook, pytest-aiohttp, pytest-cov-stub, pytest-timeout, @@ -16,22 +17,25 @@ buildPythonPackage rec { pname = "aiohasupervisor"; - version = "0.4.3"; + version = "0.5.0"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "python-supervisor-client"; tag = version; - hash = "sha256-h22y62f+pdoHYKqPeKNGFkVS7/IMWbxaAoDLomwAB40="; + hash = "sha256-qIj3kiKSo0aUj7b250c39FqxU3jV6uegmBlxR6wOkQ8="; }; postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail 'version = "0.0.0"' 'version = "${version}"' \ --replace-fail "setuptools>=68.0,<82.1" "setuptools" ''; + nativeBuildInputs = [ + pyprojectVersionPatchHook + ]; + build-system = [ setuptools ]; dependencies = [ diff --git a/pkgs/development/python-modules/aiohomeconnect/default.nix b/pkgs/development/python-modules/aiohomeconnect/default.nix index d63da6a8ba14f..b74efa64abf48 100644 --- a/pkgs/development/python-modules/aiohomeconnect/default.nix +++ b/pkgs/development/python-modules/aiohomeconnect/default.nix @@ -19,14 +19,14 @@ buildPythonPackage (finalAttrs: { pname = "aiohomeconnect"; - version = "0.36.1"; + version = "0.38.0"; pyproject = true; src = fetchFromGitHub { owner = "MartinHjelmare"; repo = "aiohomeconnect"; tag = "v${finalAttrs.version}"; - hash = "sha256-dzDNwqAYS1Sqhcd9koNTtSkXZ/t78WC/YIKOaA4uqzI="; + hash = "sha256-KJlkJXxbTSA1j/lvCAsIEheF5h2HQpJXVmiM3dyINPw="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aiohttp-jinja2/aiohttp-3.14.patch b/pkgs/development/python-modules/aiohttp-jinja2/aiohttp-3.14.patch new file mode 100644 index 0000000000000..7070f63fefb12 --- /dev/null +++ b/pkgs/development/python-modules/aiohttp-jinja2/aiohttp-3.14.patch @@ -0,0 +1,11 @@ +--- a/aiohttp_jinja2/__init__.py ++++ b/aiohttp_jinja2/__init__.py +@@ -38,7 +38,7 @@ + "APP_CONTEXT_PROCESSORS_KEY" + ) + APP_KEY: Final = web.AppKey[jinja2.Environment]("APP_KEY") +-REQUEST_CONTEXT_KEY: Final = "aiohttp_jinja2_context" ++REQUEST_CONTEXT_KEY: Final = web.RequestKey("jinja_context", dict) + + _T = TypeVar("_T") + _P = ParamSpec("_P") \ No newline at end of file diff --git a/pkgs/development/python-modules/aiohttp-jinja2/default.nix b/pkgs/development/python-modules/aiohttp-jinja2/default.nix index 9ccf48edc5e1c..d917bc9eacedf 100644 --- a/pkgs/development/python-modules/aiohttp-jinja2/default.nix +++ b/pkgs/development/python-modules/aiohttp-jinja2/default.nix @@ -20,6 +20,11 @@ buildPythonPackage rec { hash = "sha256-o6f/UmTlvKUuiuVHu/0HYbcklSMNQ40FtsCRW+YZsOI="; }; + patches = [ + # Adapted from https://github.com/aio-libs/aiohttp-jinja2/pull/1025 + ./aiohttp-3.14.patch + ]; + build-system = [ setuptools ]; dependencies = [ diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix index 9b76c5565090c..bd20ca8fc8452 100644 --- a/pkgs/development/python-modules/aiohttp/default.nix +++ b/pkgs/development/python-modules/aiohttp/default.nix @@ -41,6 +41,7 @@ pytest-codspeed, pytest-cov-stub, pytest-mock, + pytest-timeout, pytest-xdist, pytestCheckHook, re-assert, @@ -48,16 +49,16 @@ zlib-ng, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "aiohttp"; - version = "3.13.5"; + version = "3.14.1"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "aiohttp"; - tag = "v${version}"; - hash = "sha256-bAP1/a2COHbe+39KY3GHXSo1Iq9x9xX8O2mLhmFlMlE="; + tag = "v${finalAttrs.version}"; + hash = "sha256-OJSLv/NfVrKESZqNr51FJUzLRz7wLMRdGoNjKC5EhlI="; }; postPatch = '' @@ -68,6 +69,10 @@ buildPythonPackage rec { # don't install Cython using pip substituteInPlace Makefile \ --replace-fail "cythonize: .install-cython" "cythonize:" + + # don't depend on coverage for tests + substituteInPlace setup.cfg \ + --replace-fail "ignore:Couldn't import C tracer:coverage.exceptions.CoverageWarning" "" ''; build-system = [ @@ -95,7 +100,7 @@ buildPythonPackage rec { propcache yarl ] - ++ optional-dependencies.speedups; + ++ finalAttrs.passthru.optional-dependencies.speedups; optional-dependencies.speedups = [ aiodns @@ -115,6 +120,7 @@ buildPythonPackage rec { pytest-codspeed pytest-cov-stub pytest-mock + pytest-timeout pytest-xdist pytestCheckHook re-assert @@ -163,10 +169,10 @@ buildPythonPackage rec { ''; meta = { - changelog = "https://docs.aiohttp.org/en/${src.tag}/changes.html"; + changelog = "https://docs.aiohttp.org/en/${finalAttrs.src.tag}/changes.html"; description = "Asynchronous HTTP Client/Server for Python and asyncio"; license = lib.licenses.asl20; homepage = "https://github.com/aio-libs/aiohttp"; maintainers = with lib.maintainers; [ dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/aioimaplib/default.nix b/pkgs/development/python-modules/aioimaplib/default.nix index f26dc63ec141f..dc7cf465bd5b3 100644 --- a/pkgs/development/python-modules/aioimaplib/default.nix +++ b/pkgs/development/python-modules/aioimaplib/default.nix @@ -29,6 +29,10 @@ buildPythonPackage rec { ./event-loop.patch ]; + postPatch = '' + sed -i "/crypto.X509Extension/,+1d" tests/ssl_cert.py + ''; + build-system = [ poetry-core ]; nativeCheckInputs = [ @@ -43,6 +47,7 @@ buildPythonPackage rec { disabledTests = [ # TimeoutError "test_idle_start__exits_queue_get_without_timeout_error" + "test_client_can_connect_to_server_over_ssl" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Comparison to magic strings diff --git a/pkgs/development/python-modules/aiolifx-themes/default.nix b/pkgs/development/python-modules/aiolifx-themes/default.nix index 517e10840aba7..d710bc1c89479 100644 --- a/pkgs/development/python-modules/aiolifx-themes/default.nix +++ b/pkgs/development/python-modules/aiolifx-themes/default.nix @@ -13,7 +13,7 @@ buildPythonPackage (finalAttrs: { pname = "aiolifx-themes"; - version = "1.0.3"; + version = "1.0.4"; pyproject = true; disabled = pythonOlder "3.12"; @@ -22,7 +22,7 @@ buildPythonPackage (finalAttrs: { owner = "Djelibeybi"; repo = "aiolifx-themes"; tag = "v${finalAttrs.version}"; - hash = "sha256-Y92ze+zrkz+fxQNFFSR5V9sPJMN0/dfIRwT6UhXo0+U="; + hash = "sha256-FTQu8dvm3myRsMC2SKlvIk0MkRIuDPVv5Zxnw5IrPv4="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix index d1525f12f6a14..a568be21e4ec0 100644 --- a/pkgs/development/python-modules/aiolifx/default.nix +++ b/pkgs/development/python-modules/aiolifx/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "aiolifx"; - version = "1.2.1"; + version = "1.2.2"; pyproject = true; src = fetchFromGitHub { owner = "aiolifx"; repo = "aiolifx"; tag = version; - hash = "sha256-9FTsY/VFfzLlDEjF8ueBQxr30YasdQwei1/KfHiXwMo="; + hash = "sha256-v2001UY12HTi1pgugfRQSUg1R6uZAfVpwCASZZW9S0o="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aiopnsense/default.nix b/pkgs/development/python-modules/aiopnsense/default.nix index 19541f5a3c3d6..5b897b2be04b0 100644 --- a/pkgs/development/python-modules/aiopnsense/default.nix +++ b/pkgs/development/python-modules/aiopnsense/default.nix @@ -15,7 +15,7 @@ buildPythonPackage (finalAttrs: { pname = "aiopnsense"; - version = "1.0.8"; + version = "1.1.0"; pyproject = true; disabled = pythonOlder "3.14"; @@ -24,7 +24,7 @@ buildPythonPackage (finalAttrs: { owner = "Snuffy2"; repo = "aiopnsense"; tag = "v${finalAttrs.version}"; - hash = "sha256-pJVYbf81/vZRi5elhNhiscXrEqDRLiIrik8N9GcR6yQ="; + hash = "sha256-Ffp0CTYqqeeB8462luTvpa2dp2QOxztkipretBqaKig="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aioresponses/aiohttp-3.14-compat.patch b/pkgs/development/python-modules/aioresponses/aiohttp-3.14-compat.patch new file mode 100644 index 0000000000000..a607360626149 --- /dev/null +++ b/pkgs/development/python-modules/aioresponses/aiohttp-3.14-compat.patch @@ -0,0 +1,79 @@ +From 1a48e1f898035e3bedc981f06520842c55977706 Mon Sep 17 00:00:00 2001 +From: kleine-safie +Date: Wed, 10 Jun 2026 11:05:30 +0900 +Subject: [PATCH] support for pause_reading + +--- + aioresponses/compat.py | 5 +++++ + aioresponses/core.py | 2 ++ + tests/test_aioresponses.py | 11 ++++++++++- + tox.ini | 11 ++++++----- + 4 files changed, 23 insertions(+), 6 deletions(-) + +diff --git a/aioresponses/compat.py b/aioresponses/compat.py +index 83fd47a..e95ecb2 100644 +--- a/aioresponses/compat.py ++++ b/aioresponses/compat.py +@@ -2,6 +2,7 @@ + import asyncio # noqa: F401 + from re import Pattern + from typing import Dict, Optional, Union # noqa ++from unittest.mock import Mock + from urllib.parse import parse_qsl, urlencode + + from aiohttp import __version__ as aiohttp_version, StreamReader +@@ -17,6 +18,10 @@ def stream_reader_factory( # noqa + loop: 'Optional[asyncio.AbstractEventLoop]' = None + ) -> StreamReader: + protocol = ResponseHandler(loop=loop) ++ # Satisfies BaseProtocol's flow control hooks that ++ # fire when a large payload exceeds the StreamReader limit. ++ protocol._parser = Mock() ++ protocol._parser.feed_data.return_value = ([], False, b'') + return StreamReader(protocol, limit=2 ** 16, loop=loop) + + +diff --git a/aioresponses/core.py b/aioresponses/core.py +index a904cf9..52640f3 100644 +--- a/aioresponses/core.py ++++ b/aioresponses/core.py +@@ -182,6 +182,8 @@ def _build_response(self, url: 'Union[URL, str]', + headers=CIMultiDictProxy(self._prepare_request_headers(request_headers)), + real_url=url + ) ++ if 'stream_writer' in inspect.signature(response_class).parameters: ++ kwargs['stream_writer'] = Mock(output_size=0) + kwargs['writer'] = None + kwargs['continue100'] = None + kwargs['timer'] = TimerNoop() +diff --git a/tests/test_aioresponses.py b/tests/test_aioresponses.py +index 68bec3f..45c0d87 100644 +--- a/tests/test_aioresponses.py ++++ b/tests/test_aioresponses.py +@@ -4,9 +4,10 @@ + from asyncio import CancelledError, TimeoutError + from random import uniform + from typing import Coroutine, Generator, Union +-from unittest.mock import patch ++from unittest.mock import MagicMock, patch + + from aiohttp import hdrs ++from aiohttp.base_protocol import BaseProtocol + from aiohttp import http + from aiohttp.client import ClientSession + from aiohttp.client_reqrep import ClientResponse +@@ -312,6 +313,14 @@ async def test_streaming(self, m): + content = await resp.content.read() + self.assertEqual(content, b'Test') + ++ @aioresponses() ++ async def test_streaming_large_body(self, m): ++ body = b'x' * (1024 * 1024) ++ m.get(self.url, body=body) ++ resp = await self.session.get(self.url) ++ content = await resp.content.read() ++ self.assertEqual(content, body) ++ + @aioresponses() + async def test_streaming_up_to(self, m): + m.get(self.url, body='Test') diff --git a/pkgs/development/python-modules/aioresponses/default.nix b/pkgs/development/python-modules/aioresponses/default.nix index e3ec08c122ce6..395f7387aef76 100644 --- a/pkgs/development/python-modules/aioresponses/default.nix +++ b/pkgs/development/python-modules/aioresponses/default.nix @@ -25,6 +25,12 @@ buildPythonPackage rec { hash = "sha256-uGHN/l3FjzuK+sewppc9XXsstgjdD2JT0WuO6Or23xE="; }; + patches = [ + # https://github.com/pnuckowski/aioresponses/issues/289 + # https://github.com/pnuckowski/aioresponses/pull/292 + ./aiohttp-3.14-compat.patch + ]; + postPatch = '' # https://github.com/pnuckowski/aioresponses/pull/278 substituteInPlace aioresponses/core.py \ diff --git a/pkgs/development/python-modules/aiosasl/default.nix b/pkgs/development/python-modules/aiosasl/default.nix deleted file mode 100644 index 95f5ed8e7470c..0000000000000 --- a/pkgs/development/python-modules/aiosasl/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - fetchpatch, - pyopenssl, - pytestCheckHook, - setuptools, -}: - -buildPythonPackage rec { - pname = "aiosasl"; - version = "0.5.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "horazont"; - repo = "aiosasl"; - tag = "v${version}"; - hash = "sha256-JIuNPb/l4QURMQc905H2iNGCfMz+zM/QJhDQOR8LPdc="; - }; - - patches = [ - (fetchpatch { - name = "python311-compat.patch"; - url = "https://github.com/horazont/aiosasl/commit/44c48d36b416bd635d970dba2607a31b2167ea1b.patch"; - hash = "sha256-u6PJKV54dU2MA9hXa/9hJ3eLVds1DuLHGbt8y/OakWs="; - }) - ]; - - postPatch = '' - # https://github.com/horazont/aiosasl/issues/28 - substituteInPlace tests/test_aiosasl.py \ - --replace-fail "assertRaisesRegexp" "assertRaisesRegex" - ''; - - build-system = [ setuptools ]; - - nativeCheckInputs = [ - pyopenssl - pytestCheckHook - ]; - - pythonImportsCheck = [ "aiosasl" ]; - - meta = { - description = "Asyncio SASL library"; - homepage = "https://github.com/horazont/aiosasl"; - license = lib.licenses.lgpl3Plus; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix index 26f029c5a745c..d911ebfa39e03 100644 --- a/pkgs/development/python-modules/aioshelly/default.nix +++ b/pkgs/development/python-modules/aioshelly/default.nix @@ -17,14 +17,14 @@ buildPythonPackage (finalAttrs: { pname = "aioshelly"; - version = "13.26.1"; + version = "13.26.2"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "aioshelly"; tag = finalAttrs.version; - hash = "sha256-mOqHHgyx1Eevhr8BHkfFQa7g6x7vt9KJe4E72fr9HPg="; + hash = "sha256-LNMFFi3afbDFezr32zr85lNX1TIdo8BF04yDfc2AIA0="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/aioxmpp/default.nix b/pkgs/development/python-modules/aioxmpp/default.nix deleted file mode 100644 index e0285de62caa0..0000000000000 --- a/pkgs/development/python-modules/aioxmpp/default.nix +++ /dev/null @@ -1,98 +0,0 @@ -{ - lib, - aioopenssl, - aiosasl, - babel, - buildPythonPackage, - dnspython, - fetchFromCodeberg, - lxml, - multidict, - pyasn1-modules, - pyasn1, - pyopenssl, - pytestCheckHook, - pythonAtLeast, - pytz, - setuptools, - sortedcollections, - tzlocal, -}: - -buildPythonPackage rec { - pname = "aioxmpp"; - version = "0.13.3"; - pyproject = true; - - src = fetchFromCodeberg { - owner = "jssfr"; - repo = "aioxmpp"; - tag = "v${version}"; - hash = "sha256-bQPKEM5eKhFI3Kx3U1espdxqjnG4yUgOXmYCrd98PDo="; - }; - - postPatch = '' - substituteInPlace tests/bookmarks/test_service.py \ - --replace-fail 'can only assign an iterable$' 'must assign iterable' - substituteInPlace tests/test_utils.py \ - --replace-fail 'property of .* has no' 'property .*of .* has no' - ''; - - pythonRelaxDeps = [ - "lxml" - ]; - - build-system = [ setuptools ]; - - dependencies = [ - aiosasl - aioopenssl - babel - dnspython - lxml - multidict - pyasn1 - pyasn1-modules - pyopenssl - pytz - sortedcollections - tzlocal - ]; - - pythonImportsCheck = [ - "aioxmpp" - "aioxmpp.node" - "aioxmpp.security_layer" - "aioxmpp.stanza" - "aioxmpp.stream" - ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - disabledTestPaths = [ "benchmarks" ]; - - disabledTests = [ - # AttributeError: 'zoneinfo.ZoneInfo' object has no attribute 'normalize' - "test_convert_field_datetime_default_locale" - ] - ++ lib.optionals (pythonAtLeast "3.12") [ - # asyncio issues - "test_is_abstract" - "Testbackground" - "TestCapturingXSO" - "Testcheck_x509" - "TestClient" - "TestIntegerType" - "TestStanzaStream" - "TestStanzaToken" - "TestXMLStream" - ]; - - meta = { - description = "Pure-python XMPP library for asyncio"; - homepage = "https://codeberg.org/jssfr/aioxmpp"; - changelog = "https://codeberg.org/jssfr/aioxmpp/src/tag/${src.tag}/docs/api/changelog.rst"; - license = lib.licenses.lgpl3Plus; - maintainers = with lib.maintainers; [ dotlambda ]; - }; -} diff --git a/pkgs/development/python-modules/airos/default.nix b/pkgs/development/python-modules/airos/default.nix index 2ac80bdbef8dd..bfbd38bee453f 100644 --- a/pkgs/development/python-modules/airos/default.nix +++ b/pkgs/development/python-modules/airos/default.nix @@ -3,7 +3,7 @@ buildPythonPackage, fetchFromGitHub, pythonOlder, - setuptools, + setuptools_80, aiohttp, mashumaro, aiofiles, @@ -26,7 +26,7 @@ buildPythonPackage (finalAttrs: { hash = "sha256-mCa2Mabw+Y5QAdiFquw7NP3K9HgDj+wZJbln2ugTp0Q="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ aiohttp diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix index 822bc7b0b484f..2aa45bf41a62d 100644 --- a/pkgs/development/python-modules/anyio/default.nix +++ b/pkgs/development/python-modules/anyio/default.nix @@ -20,6 +20,7 @@ hypothesis, psutil, pytest-mock, + pytest-timeout, pytest-xdist, pytestCheckHook, trustme, @@ -31,14 +32,14 @@ buildPythonPackage rec { pname = "anyio"; - version = "4.13.0"; + version = "4.14.1"; pyproject = true; src = fetchFromGitHub { owner = "agronholm"; repo = "anyio"; tag = version; - hash = "sha256-W2uR1VwI9u4QIPmbcYp8jDatEdya97NaJwAABlaRHzM="; + hash = "sha256-LPNRNb1RuSVQqsI6aAAiYWC2c2CZAhFS67XW9OfbIiE="; }; build-system = [ setuptools-scm ]; @@ -59,6 +60,7 @@ buildPythonPackage rec { hypothesis psutil pytest-mock + pytest-timeout pytest-xdist pytestCheckHook trustme @@ -89,6 +91,7 @@ buildPythonPackage rec { "test_nonexistent_main_module" # 3 second timeout expired "test_keyboardinterrupt_during_test" + "test_dynamic_async_fixture_access_does_not_hang" # racy with high thread count, see https://github.com/NixOS/nixpkgs/issues/448125 "test_multiple_threads" @@ -98,6 +101,9 @@ buildPythonPackage rec { "test_run_in_custom_limiter" "test_cancel_from_shielded_scope" "test_start_task_soon_cancel_later" + + # fails to monkeypatch __file__.__main__ + "test_entrypoint_main_module" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # PermissionError: [Errno 1] Operation not permitted: '/dev/console' diff --git a/pkgs/development/python-modules/appnope/default.nix b/pkgs/development/python-modules/appnope/default.nix index 55a66aaf82717..12e720eb3618e 100644 --- a/pkgs/development/python-modules/appnope/default.nix +++ b/pkgs/development/python-modules/appnope/default.nix @@ -2,28 +2,34 @@ lib, buildPythonPackage, fetchFromGitHub, + setuptools, pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "appnope"; version = "0.1.4"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "minrk"; repo = "appnope"; - rev = version; + tag = finalAttrs.version; hash = "sha256-We7sZKVbQFIMdZpS+VMdi0RH1O/qtFNrfJNg/98tO5A="; }; + build-system = [ setuptools ]; + checkInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "appnope" ]; + meta = { description = "Disable App Nap on macOS"; homepage = "https://github.com/minrk/appnope"; + changelog = "https://github.com/minrk/appnope/releases/tag/${finalAttrs.version}"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ OPNA2608 ]; # Not Darwin-specific because dummy fallback may be used cross-platform }; -} +}) diff --git a/pkgs/development/python-modules/apscheduler/default.nix b/pkgs/development/python-modules/apscheduler/default.nix index aaa64871ccb78..0d03b17759766 100644 --- a/pkgs/development/python-modules/apscheduler/default.nix +++ b/pkgs/development/python-modules/apscheduler/default.nix @@ -9,7 +9,7 @@ pytest-tornado, pytest8_3CheckHook, pytz, - setuptools, + setuptools_80, setuptools-scm, tornado, twisted, @@ -33,7 +33,7 @@ buildPythonPackage rec { ''; build-system = [ - setuptools + setuptools_80 setuptools-scm ]; diff --git a/pkgs/development/python-modules/apswutils/default.nix b/pkgs/development/python-modules/apswutils/default.nix index 035a74132ab51..707309af83a69 100644 --- a/pkgs/development/python-modules/apswutils/default.nix +++ b/pkgs/development/python-modules/apswutils/default.nix @@ -4,7 +4,7 @@ fetchFromGitHub, # build-system - setuptools, + setuptools_80, # dependencies apsw, @@ -28,7 +28,7 @@ buildPythonPackage (finalAttrs: { }; build-system = [ - setuptools + setuptools_80 ]; dependencies = [ diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix index e5c29e34c1fa0..ad2617bfbf349 100644 --- a/pkgs/development/python-modules/ase/default.nix +++ b/pkgs/development/python-modules/ase/default.nix @@ -16,6 +16,7 @@ psycopg2, scipy, tkinter, + typing-extensions, # tests addBinToPathHook, @@ -27,14 +28,14 @@ buildPythonPackage rec { pname = "ase"; - version = "3.28.0"; + version = "3.29.0"; pyproject = true; src = fetchFromGitLab { owner = "ase"; repo = "ase"; tag = version; - hash = "sha256-ZbQxCd8uFTNPVUjjsCCiZR9pKRucobWfxDZGdyMm6ko="; + hash = "sha256-hMeGeQFoC+eWfHkJize21IdxLKAR7Oc0Txwg2BQIvWg="; }; build-system = [ setuptools ]; @@ -46,6 +47,7 @@ buildPythonPackage rec { pillow psycopg2 scipy + typing-extensions ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ tkinter @@ -59,6 +61,10 @@ buildPythonPackage rec { writableTmpDirAsHomeHook ]; + pytestFlags = [ + "-Wignore::DeprecationWarning" + ]; + disabledTests = [ "test_fundamental_params" "test_ase_bandstructure" diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix index 727587c610cd3..516fb48f8b5f7 100644 --- a/pkgs/development/python-modules/asgiref/default.nix +++ b/pkgs/development/python-modules/asgiref/default.nix @@ -5,22 +5,25 @@ fetchFromGitHub, pytest-asyncio, pytestCheckHook, + setuptools, typing-extensions, }: -buildPythonPackage rec { - version = "3.11.0"; +buildPythonPackage (finalAttrs: { + version = "3.11.1"; pname = "asgiref"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "django"; repo = "asgiref"; - tag = version; - hash = "sha256-2ZaUIWGF5cQVNj95b7WiKGsn2wYsoJmJ/CfPhIEZdjc="; + tag = finalAttrs.version; + hash = "sha256-Mhnaowgv5a+O2hN0ZSdtdhCBQx8HoKSwtRC3gHodgKY="; }; - propagatedBuildInputs = [ typing-extensions ]; + build-system = [ setuptools ]; + + dependencies = [ typing-extensions ]; nativeCheckInputs = [ pytestCheckHook @@ -34,10 +37,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "asgiref" ]; meta = { - changelog = "https://github.com/django/asgiref/blob/${src.tag}/CHANGELOG.txt"; + changelog = "https://github.com/django/asgiref/blob/${finalAttrs.src.tag}/CHANGELOG.txt"; description = "Reference ASGI adapters and channel layers"; homepage = "https://github.com/django/asgiref"; license = lib.licenses.bsd3; - maintainers = [ ]; + maintainers = with lib.maintainers; [ miniharinn ]; }; -} +}) diff --git a/pkgs/development/python-modules/asmog/default.nix b/pkgs/development/python-modules/asmog/default.nix deleted file mode 100644 index de2165d63e3f8..0000000000000 --- a/pkgs/development/python-modules/asmog/default.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - lib, - aiohttp, - async-timeout, - buildPythonPackage, - fetchPypi, - setuptools, -}: - -buildPythonPackage (finalAttrs: { - pname = "asmog"; - version = "0.0.6"; - pyproject = true; - - src = fetchPypi { - inherit (finalAttrs) pname version; - hash = "sha256-k8dC3g2oY/b4w4m7Y/HUy/6/3Tm1kntx9tjoyXqDaJE="; - }; - - build-system = [ setuptools ]; - - dependencies = [ - aiohttp - async-timeout - ]; - - # Project doesn't ship the tests - # https://github.com/kstaniek/python-ampio-smog-api/issues/2 - doCheck = false; - - pythonImportsCheck = [ "asmog" ]; - - meta = { - description = "Python module for Ampio Smog Sensors"; - homepage = "https://github.com/kstaniek/python-ampio-smog-api"; - license = with lib.licenses; [ asl20 ]; - maintainers = with lib.maintainers; [ fab ]; - }; -}) diff --git a/pkgs/development/python-modules/ast-serialize/default.nix b/pkgs/development/python-modules/ast-serialize/default.nix new file mode 100644 index 0000000000000..0ce8d6d2a3f4e --- /dev/null +++ b/pkgs/development/python-modules/ast-serialize/default.nix @@ -0,0 +1,40 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + rustPlatform, +}: + +buildPythonPackage (finalAttrs: { + pname = "ast-serialize"; + version = "0.5.0"; + pyproject = true; + + src = fetchFromGitHub { + owner = "mypyc"; + repo = "ast_serialize"; + tag = "v${finalAttrs.version}"; + hash = "sha256-GmhbMraI16J6ePtn7lXAWaJ+9zDH1GdebKIAzm5w9ok="; + }; + + cargoDeps = rustPlatform.fetchCargoVendor { + inherit (finalAttrs) pname version src; + hash = "sha256-h+BklNeoQaRVWczsE9sFXgvFrnHW5vjWOVaOvLghv0U="; + }; + + build-system = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + pythonImportsCheck = [ + "ast_serialize" + ]; + + meta = { + description = "Fast Python parser that generates a serialized AST"; + homepage = "https://github.com/mypyc/ast_serialize"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/astropy-iers-data/default.nix b/pkgs/development/python-modules/astropy-iers-data/default.nix index 59397e3488850..e2031f81cffc1 100644 --- a/pkgs/development/python-modules/astropy-iers-data/default.nix +++ b/pkgs/development/python-modules/astropy-iers-data/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "astropy-iers-data"; - version = "0.2026.1.19.0.42.31"; + version = "0.2026.6.22.1.23.34"; pyproject = true; src = fetchFromGitHub { owner = "astropy"; repo = "astropy-iers-data"; tag = "v${finalAttrs.version}"; - hash = "sha256-psxVL7375xQuo6mqh+5rvv0xEuZNUOtFco1BrPPWLtg="; + hash = "sha256-q3uW3G3WTHpaRC54tO7ytmSg65SMaOQKO5KbqaSxeq4="; }; build-system = [ diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix index 639e234acbb07..02291cdfef736 100644 --- a/pkgs/development/python-modules/astropy/default.nix +++ b/pkgs/development/python-modules/astropy/default.nix @@ -54,14 +54,14 @@ buildPythonPackage rec { pname = "astropy"; - version = "7.2.0"; + version = "8.0.0"; pyproject = true; src = fetchFromGitHub { owner = "astropy"; repo = "astropy"; tag = "v${version}"; - hash = "sha256-U9kCzyOZcttlUP0DUGkhJVkk96sBM/Gm/s5ZPJZcEoA="; + hash = "sha256-pKptFnbhiE6DfsEZ557ugd6nrbWGg2FmEdhp78z+bUM="; }; env = lib.optionalAttrs stdenv.cc.isClang { @@ -143,10 +143,6 @@ buildPythonPackage rec { preCheck = '' export HOME="$(mktemp -d)" - export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 )) - if [ $OMP_NUM_THREADS -eq 0 ]; then - export OMP_NUM_THREADS=1 - fi # See https://github.com/astropy/astropy/issues/17649 and see # --hypothesis-profile=ci pytest flag below. diff --git a/pkgs/development/python-modules/astunparse/default.nix b/pkgs/development/python-modules/astunparse/default.nix index fdff2e83ebf93..8f367a1a15ee2 100644 --- a/pkgs/development/python-modules/astunparse/default.nix +++ b/pkgs/development/python-modules/astunparse/default.nix @@ -2,23 +2,24 @@ lib, fetchPypi, buildPythonPackage, + setuptools, six, - wheel, }: buildPythonPackage rec { pname = "astunparse"; version = "1.6.3"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872"; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ six - wheel ]; # tests not included with pypi release diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix index 26277b5002251..6ee54dff36af9 100644 --- a/pkgs/development/python-modules/asyncssh/default.nix +++ b/pkgs/development/python-modules/asyncssh/default.nix @@ -6,6 +6,7 @@ fetchPypi, fido2, gssapi, + ifaddr, libnacl, libsodium, nettle, @@ -15,17 +16,18 @@ pytestCheckHook, python-pkcs11, setuptools, + stdenv, typing-extensions, }: buildPythonPackage rec { pname = "asyncssh"; - version = "2.22.0"; + version = "2.24.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-w85ysBvk+XtA5ihE3ThCJ+X/WkAaN5MAfEL4alyOtTc="; + hash = "sha256-QGTFkOWc4ujYKi9m018xINdlgotN9ePb+we0qMJGhsk="; }; build-system = [ setuptools ]; @@ -41,6 +43,7 @@ buildPythonPackage rec { optional-dependencies = { bcrypt = [ bcrypt ]; fido2 = [ fido2 ]; + ifaddr = [ ifaddr ]; gssapi = [ gssapi ]; libnacl = [ libnacl ]; pkcs11 = [ python-pkcs11 ]; @@ -78,8 +81,14 @@ buildPythonPackage rec { "test_connect_timeout_exceeded" # Fails in the sandbox "test_forward_remote" - # (2.21.0) SFTP copy ends up with an empty file + # Seems weirdly filesystem specific + "test_put_name_too_long" + # SFTP copy ends up with an empty file on ZFS "test_copy_max_requests" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # Requires network access + "test_canonicalize_failure" ]; pythonImportsCheck = [ "asyncssh" ]; diff --git a/pkgs/development/python-modules/atenpdu/default.nix b/pkgs/development/python-modules/atenpdu/default.nix deleted file mode 100644 index 2cfd06220afe7..0000000000000 --- a/pkgs/development/python-modules/atenpdu/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - async-timeout, - pysnmp, - poetry-core, -}: - -buildPythonPackage rec { - pname = "atenpdu"; - version = "0.7.2"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-+UQVCizqpyVe7nuQUYwSBOtiTwW+0LVH1HaaucnIg9k="; - }; - - build-system = [ poetry-core ]; - - dependencies = [ - async-timeout - pysnmp - ]; - - # Module has no test - doCheck = false; - - pythonImportsCheck = [ "atenpdu" ]; - - meta = { - description = "Python interface to control ATEN PE PDUs"; - homepage = "https://github.com/mtdcr/pductl"; - changelog = "https://github.com/mtdcr/pductl/releases/tag/${version}"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fab ]; - mainProgram = "pductl"; - broken = lib.versionAtLeast pysnmp.version "7"; - }; -} diff --git a/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix b/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix index 7c7b1c87a056f..8718244494213 100644 --- a/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix +++ b/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchPypi, pytestCheckHook, + setuptools, }: let @@ -12,13 +13,15 @@ in buildPythonPackage { inherit pname version; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-JWpnIQbxZ0VEUijZZiQLd7VfRqCW0gMFkBpXql0fTC8="; }; + build-system = [ setuptools ]; + pythonImportsCheck = [ "atomicwrites" ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/avion/default.nix b/pkgs/development/python-modules/avion/default.nix deleted file mode 100644 index 1135c20bd08eb..0000000000000 --- a/pkgs/development/python-modules/avion/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - lib, - bluepy, - buildPythonPackage, - csrmesh, - fetchPypi, - pycryptodome, - requests, - setuptools, -}: - -buildPythonPackage (finalAttrs: { - pname = "avion"; - version = "0.10"; - pyproject = true; - - src = fetchPypi { - inherit (finalAttrs) pname version; - hash = "sha256-v/0NwFmxDZ9kEOx5qs5L9sKzOg/kto79syctg0Ah+30="; - }; - - postPatch = '' - # https://github.com/mjg59/python-avion/pull/16 - substituteInPlace setup.py \ - --replace "bluepy>==1.1.4" "bluepy>=1.1.4" - ''; - - build-system = [ setuptools ]; - - dependencies = [ - bluepy - csrmesh - pycryptodome - requests - ]; - - # Module has no test - doCheck = false; - - # bluepy/uuids.json is not found - # pythonImportsCheck = [ "avion" ]; - - meta = { - description = "Python API for controlling Avi-on Bluetooth dimmers"; - homepage = "https://github.com/mjg59/python-avion"; - license = with lib.licenses; [ gpl3Plus ]; - maintainers = with lib.maintainers; [ fab ]; - }; -}) diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix index 33ced09ce46b8..42a22dedbbafc 100644 --- a/pkgs/development/python-modules/aws-sam-translator/default.nix +++ b/pkgs/development/python-modules/aws-sam-translator/default.nix @@ -10,25 +10,22 @@ pytest-rerunfailures, pytest-xdist, pytestCheckHook, - pythonAtLeast, pyyaml, + requests, setuptools, typing-extensions, }: buildPythonPackage rec { pname = "aws-sam-translator"; - version = "1.106.0"; + version = "1.110.0"; pyproject = true; - # https://github.com/aws/serverless-application-model/issues/3831 - disabled = pythonAtLeast "3.14"; - src = fetchFromGitHub { owner = "aws"; repo = "serverless-application-model"; tag = "v${version}"; - hash = "sha256-9KrBoa50lgZcqe/wzt05TsuUYbjRuQXgXTVHjDKBmr4="; + hash = "sha256-Zn+6cDyDZSsV9V+zAA8BOPs4aKl0j3dF92/azGYG+OI="; }; postPatch = '' @@ -36,6 +33,8 @@ buildPythonPackage rec { rm pytest.ini ''; + pythonRelaxDeps = [ "pydantic" ]; + build-system = [ setuptools ]; dependencies = [ @@ -52,6 +51,7 @@ buildPythonPackage rec { pytest-xdist pytestCheckHook pyyaml + requests ]; preCheck = '' @@ -66,26 +66,6 @@ buildPythonPackage rec { "slow" ]; - disabledTests = [ - # urllib3 2.0 compat - "test_plugin_accepts_different_sar_client" - "test_plugin_accepts_flags" - "test_plugin_accepts_parameters" - "test_plugin_default_values" - "test_plugin_invalid_configuration_raises_exception" - "test_plugin_must_setup_correct_name" - "test_must_process_applications" - "test_must_process_applications_validate" - "test_process_invalid_applications" - "test_process_invalid_applications_validate" - "test_resolve_intrinsics" - "test_sar_service_calls" - "test_sar_success_one_app" - "test_sar_throttling_doesnt_stop_processing" - "test_sleep_between_sar_checks" - "test_unexpected_sar_error_stops_processing" - ]; - __darwinAllowLocalNetworking = true; pythonImportsCheck = [ "samtranslator" ]; diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix index 5511129685b8f..ef006d39cabf0 100644 --- a/pkgs/development/python-modules/azure-identity/default.nix +++ b/pkgs/development/python-modules/azure-identity/default.nix @@ -12,13 +12,13 @@ buildPythonPackage rec { pname = "azure-identity"; - version = "1.25.1"; + version = "1.25.3"; pyproject = true; src = fetchPypi { pname = "azure_identity"; inherit version; - hash = "sha256-h8qDKIg95gNkQ+HDe0Do3I+3SJgkD2EHHgnS42k2FFY="; + hash = "sha256-qyPA1jAV9QtjDvbGzzlecmL0Oc4G5dB6ZOh0xyT42eY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/babel/default.nix b/pkgs/development/python-modules/babel/default.nix index 85466baf45738..5f51421c82e5a 100644 --- a/pkgs/development/python-modules/babel/default.nix +++ b/pkgs/development/python-modules/babel/default.nix @@ -17,12 +17,12 @@ buildPythonPackage rec { pname = "babel"; - version = "2.17.0"; + version = "2.18.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-DFTP+xn2kM3MUqO1C8v3HgeoCNHIDVSfJFm50s8K+50="; + hash = "sha256-uAuZoUvQhfys+hXJFl9lH7s0BuZsxgOr8RxXUJN8mS0="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/backports-zstd/default.nix b/pkgs/development/python-modules/backports-zstd/default.nix index e8567cb414655..db294f3527d78 100644 --- a/pkgs/development/python-modules/backports-zstd/default.nix +++ b/pkgs/development/python-modules/backports-zstd/default.nix @@ -9,7 +9,7 @@ buildPythonPackage rec { pname = "backports-zstd"; - version = "1.3.0"; + version = "1.5.0"; pyproject = true; src = fetchFromGitHub { @@ -20,7 +20,7 @@ buildPythonPackage rec { postFetch = '' rm -r "$out/src/c/zstd" ''; - hash = "sha256-AF2Id4U2++RMCFICxz0E3DrgEVgGNsph4sIZ9YC87fE="; + hash = "sha256-0FGYh6o26oeovZ23VYKmmY2nNzDHXIKU8/lBqUxuGQw="; }; postPatch = '' diff --git a/pkgs/development/python-modules/barectf/default.nix b/pkgs/development/python-modules/barectf/default.nix index 6618268556151..0ef38100e3cd3 100644 --- a/pkgs/development/python-modules/barectf/default.nix +++ b/pkgs/development/python-modules/barectf/default.nix @@ -2,9 +2,9 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, poetry-core, pytest7CheckHook, - setuptools, jsonschema, pyyaml, jinja2, @@ -23,6 +23,18 @@ buildPythonPackage rec { hash = "sha256-JelFfd3WS012dveNlIljhLdyPmgE9VEOXoZE3MBA/Gw="; }; + patches = [ + (fetchpatch { + name = "setuptools-82-compat.patch"; + url = "https://github.com/efficios/barectf/commit/e16d289546bb4f6b0d909f79b8d6188eabe32640.patch"; + hash = "sha256-5tSOxc6trSHFPnVj+7YVO9J65bZ1H2MFKrZAbRy1WTM="; + excludes = [ + "pyproject.toml" + "poetry.lock" + ]; + }) + ]; + nativeBuildInputs = [ poetry-core ]; @@ -33,8 +45,11 @@ buildPythonPackage rec { "termcolor" ]; + pythonRemoveDeps = [ + "setuptools" + ]; + propagatedBuildInputs = [ - setuptools # needs pkg_resources at runtime jsonschema pyyaml jinja2 diff --git a/pkgs/development/python-modules/beewi-smartclim/default.nix b/pkgs/development/python-modules/beewi-smartclim/default.nix deleted file mode 100644 index 083894116408d..0000000000000 --- a/pkgs/development/python-modules/beewi-smartclim/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - setuptools, - btlewrap, - bluepy, -}: - -buildPythonPackage rec { - pname = "beewi-smartclim"; - version = "0.0.10"; - pyproject = true; - - src = fetchFromGitHub { - owner = "alemuro"; - repo = "beewi_smartclim"; - tag = version; - hash = "sha256-xdr545Q4DFhup2BCMZZ1WYWgt97qT6oipIHWcsp90+A="; - }; - - build-system = [ setuptools ]; - - dependencies = [ - btlewrap - bluepy - ]; - - # No tests available - doCheck = false; - - pythonImportsCheck = [ "beewi_smartclim" ]; - - meta = { - description = "Library to read data from BeeWi SmartClim sensor using Bluetooth LE"; - homepage = "https://github.com/alemuro/beewi_smartclim"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.jamiemagee ]; - }; -} diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix index ea56257d981f2..ee547c137c060 100644 --- a/pkgs/development/python-modules/black/default.nix +++ b/pkgs/development/python-modules/black/default.nix @@ -2,8 +2,7 @@ stdenv, lib, buildPythonPackage, - fetchPypi, - fetchpatch, + fetchFromGitHub, pytestCheckHook, aiohttp, click, @@ -17,50 +16,36 @@ pathspec, parameterized, platformdirs, + pytokens, tokenize-rt, uvloop, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "black"; - version = "25.1.0"; + version = "26.5.1"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-M0ltXNEiKtczkTUrSujaFSU8Xeibk6gLPiyNmhnsJmY="; + src = fetchFromGitHub { + owner = "psf"; + repo = "black"; + tag = finalAttrs.version; + hash = "sha256-xALg9ta0U2V6i/b7VYiPKu0oNnHfg9T+XuK3CvqJmjs="; }; - patches = [ - (fetchpatch { - name = "click-8.2-compat-1.patch"; - url = "https://github.com/psf/black/commit/14e1de805a5d66744a08742cad32d1660bf7617a.patch"; - hash = "sha256-fHRlMetE6+09MKkuFNQQr39nIKeNrqwQuBNqfIlP4hc="; - }) - (fetchpatch { - name = "click-8.2-compat-2.patch"; - url = "https://github.com/psf/black/commit/ed64d89faa7c738c4ba0006710f7e387174478af.patch"; - hash = "sha256-df/J6wiRqtnHk3mAY3ETiRR2G4hWY1rmZMfm2rjP2ZQ="; - }) - (fetchpatch { - name = "click-8.2-compat-3.patch"; - url = "https://github.com/psf/black/commit/b0f36f5b4233ef4cf613daca0adc3896d5424159.patch"; - hash = "sha256-SGLCxbgrWnAi79IjQOb2H8mD/JDbr2SGfnKyzQsJrOA="; - }) - ]; - - nativeBuildInputs = [ + build-system = [ hatch-fancy-pypi-readme hatch-vcs hatchling ]; - propagatedBuildInputs = [ + dependencies = [ click mypy-extensions packaging pathspec platformdirs + pytokens ]; optional-dependencies = { @@ -81,7 +66,7 @@ buildPythonPackage rec { pytestCheckHook parameterized ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; pytestFlags = [ "-Wignore::DeprecationWarning" @@ -102,9 +87,6 @@ buildPythonPackage rec { disabledTests = [ # requires network access "test_gen_check_output" - # broken on Python 3.13.4 - # FIXME: remove this when fixed upstream - "test_simple_format[pep_701]" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # fails on darwin @@ -119,7 +101,7 @@ buildPythonPackage rec { meta = { description = "Uncompromising Python code formatter"; homepage = "https://github.com/psf/black"; - changelog = "https://github.com/psf/black/blob/${version}/CHANGES.md"; + changelog = "https://github.com/psf/black/blob/${finalAttrs.src.tag}/CHANGES.md"; license = lib.licenses.mit; mainProgram = "black"; maintainers = with lib.maintainers; [ @@ -127,4 +109,4 @@ buildPythonPackage rec { autophagy ]; }; -} +}) diff --git a/pkgs/development/python-modules/bleak-esphome/bluetooth-adapters-2.4.0-compat.patch b/pkgs/development/python-modules/bleak-esphome/bluetooth-adapters-2.4.0-compat.patch new file mode 100644 index 0000000000000..7eccf5dc52288 --- /dev/null +++ b/pkgs/development/python-modules/bleak-esphome/bluetooth-adapters-2.4.0-compat.patch @@ -0,0 +1,21 @@ +diff --git a/tests/conftest.py b/tests/conftest.py +index 55defbe..551d19e 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -9,7 +9,7 @@ from aioesphomeapi import ( + ReconnectLogic, + ) + from bleak_retry_connector import BleakSlotManager +-from bluetooth_adapters import BluetoothAdapters ++from bluetooth_adapters import get_adapters + from habluetooth import ( + BluetoothManager, + set_manager, +@@ -20,7 +20,7 @@ from zeroconf import Zeroconf + @pytest.fixture(scope="session", autouse=True) + def manager(): + slot_manager = BleakSlotManager() +- bluetooth_adapters = BluetoothAdapters() ++ bluetooth_adapters = get_adapters() + set_manager(BluetoothManager(bluetooth_adapters, slot_manager)) + diff --git a/pkgs/development/python-modules/bleak-esphome/default.nix b/pkgs/development/python-modules/bleak-esphome/default.nix index 7b6869cf77290..3e934714e5b0c 100644 --- a/pkgs/development/python-modules/bleak-esphome/default.nix +++ b/pkgs/development/python-modules/bleak-esphome/default.nix @@ -29,6 +29,10 @@ buildPythonPackage (finalAttrs: { hash = "sha256-S4tYL/fq7wMjq81WRftZ1A+RVxs7kGpaM/TfVBNBgaI="; }; + patches = [ + ./bluetooth-adapters-2.4.0-compat.patch + ]; + postPatch = '' substituteInPlace pyproject.toml \ --replace-fail "setuptools>=75.8.2" setuptools diff --git a/pkgs/development/python-modules/blockdiag/default.nix b/pkgs/development/python-modules/blockdiag/default.nix index ba1e71eab3520..7ca2aece7bfa9 100644 --- a/pkgs/development/python-modules/blockdiag/default.nix +++ b/pkgs/development/python-modules/blockdiag/default.nix @@ -10,7 +10,7 @@ pillow, pytestCheckHook, reportlab, - setuptools, + setuptools_80, webcolors, }: @@ -48,14 +48,14 @@ buildPythonPackage rec { # note: this is a postPatch as `seqdiag` uses them directly ''; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ docutils funcparserlib pillow reportlab - setuptools + setuptools_80 webcolors ]; diff --git a/pkgs/development/python-modules/bluetooth-adapters/default.nix b/pkgs/development/python-modules/bluetooth-adapters/default.nix index 2dc949d75601c..7810ccf8b7644 100644 --- a/pkgs/development/python-modules/bluetooth-adapters/default.nix +++ b/pkgs/development/python-modules/bluetooth-adapters/default.nix @@ -21,14 +21,14 @@ buildPythonPackage (finalAttrs: { pname = "bluetooth-adapters"; - version = "2.3.0"; + version = "2.4.0"; pyproject = true; src = fetchFromGitHub { owner = "Bluetooth-Devices"; repo = "bluetooth-adapters"; tag = "v${finalAttrs.version}"; - hash = "sha256-r/qDwlIVa7VBkhepmuFqwtlJ7WYUTiYRKikhURTgLH8="; + hash = "sha256-d1vHb1WvsumlvilwuV6yfTwMXViLqeosSSM3LijIGYY="; }; outputs = [ diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix index 9164bcd76bb9d..706731f2dcf42 100644 --- a/pkgs/development/python-modules/botocore/default.nix +++ b/pkgs/development/python-modules/botocore/default.nix @@ -1,6 +1,7 @@ { lib, awscrt, + cacert, buildPythonPackage, fetchFromGitHub, @@ -29,6 +30,10 @@ buildPythonPackage rec { hash = "sha256-avuv1uXKMeSr3SL+BI9XW8tDCQM/dlXFn590di3S03k="; }; + postPatch = '' + ln -sf ${cacert}/etc/ssl/certs/ca-no-trust-rules-bundle.crt botocore/cacert.pem + ''; + build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/buienradar/default.nix b/pkgs/development/python-modules/buienradar/default.nix index 1c6bbdb29d0b1..03fd6a688f7c1 100644 --- a/pkgs/development/python-modules/buienradar/default.nix +++ b/pkgs/development/python-modules/buienradar/default.nix @@ -25,6 +25,11 @@ buildPythonPackage rec { hash = "sha256-DTdxzBe9fBOH5fHME++oq62xMtBKnjY7BCevwjl8VZ8="; }; + patches = [ + # https://github.com/mjj4791/python-buienradar/pull/26 + ./setuptools-82-compat.patch + ]; + build-system = [ setuptools ]; dependencies = [ diff --git a/pkgs/development/python-modules/buienradar/setuptools-82-compat.patch b/pkgs/development/python-modules/buienradar/setuptools-82-compat.patch new file mode 100644 index 0000000000000..aff0bdafbcc29 --- /dev/null +++ b/pkgs/development/python-modules/buienradar/setuptools-82-compat.patch @@ -0,0 +1,30 @@ +Author: Martin Weinelt +Date: Sun Jul 5 16:24:28 2026 +0200 + + Make compatible with setuptools 82 + + This migrates the version retrieval to the stdlib importlib library. + +diff --git a/buienradar/__main__.py b/buienradar/__main__.py +index b0838c1..b556374 100755 +--- a/buienradar/__main__.py ++++ b/buienradar/__main__.py +@@ -19,8 +19,8 @@ Usage: + """ + import logging + import sys ++from importlib.metadata import version + +-import pkg_resources + from docopt import docopt + + from .buienradar import get_data, parse_data +@@ -30,7 +30,7 @@ from .constants import CONTENT, MESSAGE, RAINCONTENT, SUCCESS + def main(argv=sys.argv[1:]): + """Parse argument and start main program.""" + args = docopt(__doc__, argv=argv, +- version=pkg_resources.require('buienradar')[0].version) ++ version=version('buienradar')) + + level = logging.ERROR + if args['-v']: diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix index 5764651403a0f..194e56dd34f93 100644 --- a/pkgs/development/python-modules/build/default.nix +++ b/pkgs/development/python-modules/build/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "build"; - version = "1.4.4"; + version = "1.5.0"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "build"; tag = version; - hash = "sha256-QprU0sXL6FL0rSVJwu8cYpcPlnYKzKAbkyDaTV778js="; + hash = "sha256-Kxqqh9HfNC28CxFHzVkNVzqNM8MVkLgkaCU2jxpjceA="; }; build-system = [ flit-core ]; diff --git a/pkgs/development/python-modules/captum/default.nix b/pkgs/development/python-modules/captum/default.nix index 455eac5c5fc15..858e9abc4110e 100644 --- a/pkgs/development/python-modules/captum/default.nix +++ b/pkgs/development/python-modules/captum/default.nix @@ -52,10 +52,6 @@ buildPythonPackage rec { scikit-learn ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ # These tests may fail if multiple builds run them at the same time due diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix index da4ab5806aaf7..a560f2598d8d6 100644 --- a/pkgs/development/python-modules/cassandra-driver/default.nix +++ b/pkgs/development/python-modules/cassandra-driver/default.nix @@ -4,6 +4,7 @@ buildPythonPackage, cryptography, cython, + deprecated, eventlet, fetchFromGitHub, geomet, @@ -17,6 +18,7 @@ pyyaml, scales, sure, + tomli, twisted, setuptools, distutils, @@ -24,14 +26,14 @@ buildPythonPackage (finalAttrs: { pname = "cassandra-driver"; - version = "3.29.3"; + version = "3.30.0"; pyproject = true; src = fetchFromGitHub { owner = "apache"; repo = "cassandra-python-driver"; tag = finalAttrs.version; - hash = "sha256-VynrUc7gqAi061FU2ln4B1fK4NaSUcjSgH1i1JQpmvk="; + hash = "sha256-4ElOiADaldT/TyLqg/5ijFk9Ygb3GEF37P2d8WdAxkw="; }; pythonRelaxDeps = [ "geomet" ]; @@ -40,11 +42,13 @@ buildPythonPackage (finalAttrs: { distutils setuptools cython + tomli ]; buildInputs = [ libev ]; dependencies = [ + deprecated geomet ]; diff --git a/pkgs/development/python-modules/certbot-nginx/default.nix b/pkgs/development/python-modules/certbot-nginx/default.nix index e832f5e7ac09c..ebe6f87ef6e3c 100644 --- a/pkgs/development/python-modules/certbot-nginx/default.nix +++ b/pkgs/development/python-modules/certbot-nginx/default.nix @@ -1,9 +1,7 @@ { buildPythonPackage, - acme, certbot, pyparsing, - pytestCheckHook, setuptools, }: @@ -18,16 +16,13 @@ buildPythonPackage rec { build-system = [ setuptools ]; dependencies = [ - acme certbot pyparsing ]; - nativeCheckInputs = [ pytestCheckHook ]; - - pytestFlags = [ - "-pno:cacheprovider" - "-Wignore::DeprecationWarning" + pythonImportsCheck = [ + "certbot_nginx" + "certbot.plugins.nginx" ]; meta = certbot.meta // { diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix index b7d31f76d7713..797667c6d296d 100644 --- a/pkgs/development/python-modules/certbot/default.nix +++ b/pkgs/development/python-modules/certbot/default.nix @@ -22,19 +22,19 @@ writeShellScriptBin, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "certbot"; - version = "5.4.0"; + version = "5.6.0"; pyproject = true; src = fetchFromGitHub { owner = "certbot"; repo = "certbot"; - tag = "v${version}"; - hash = "sha256-Tu46Wybod89TiwsVccNuQcweWoeQE1wbH+pDWNC9+kE="; + tag = "v${finalAttrs.version}"; + hash = "sha256-knaEk4bjC0cdnMiO4ENvaDm/i/3tn6ZOJPdyqJxLKOs="; }; - sourceRoot = "${src.name}/certbot"; + sourceRoot = "${finalAttrs.src.name}/certbot"; build-system = [ setuptools ]; @@ -87,9 +87,9 @@ buildPythonPackage rec { let pythonEnv = python.withPackages f; in - runCommand "certbot-with-plugins-${version}" + runCommand "certbot-with-plugins-${finalAttrs.version}" { - inherit pname version; + inherit (finalAttrs) pname version; } '' mkdir -p $out/bin @@ -99,11 +99,11 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/certbot/certbot"; - changelog = "https://github.com/certbot/certbot/blob/${src.tag}/certbot/CHANGELOG.md"; + changelog = "https://github.com/certbot/certbot/blob/${finalAttrs.src.tag}/certbot/CHANGELOG.md"; description = "ACME client that can obtain certs and extensibly update server configurations"; platforms = lib.platforms.unix; mainProgram = "certbot"; - maintainers = [ ]; + maintainers = with lib.maintainers; [ miniharinn ]; license = with lib.licenses; [ asl20 ]; }; -} +}) diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix index 94ef983a6a8e4..2f1d3be1e64df 100644 --- a/pkgs/development/python-modules/certifi/default.nix +++ b/pkgs/development/python-modules/certifi/default.nix @@ -7,16 +7,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "certifi"; - version = "2026.01.04"; + version = "2026.04.22"; pyproject = true; src = fetchFromGitHub { owner = "certifi"; repo = "python-certifi"; - rev = version; - hash = "sha256-JXv12im46xKabIRVZ4FMSZUbpw2k8WCcaZZLX2pFteY="; + tag = finalAttrs.version; + hash = "sha256-bGeOrYd7ZUG0VIbgRiYIBK3JDRC5wpST5IrFHyWO/cg="; }; patches = [ @@ -47,4 +47,4 @@ buildPythonPackage rec { license = lib.licenses.isc; maintainers = with lib.maintainers; [ koral ]; }; -} +}) diff --git a/pkgs/development/python-modules/certomancer/default.nix b/pkgs/development/python-modules/certomancer/default.nix index d54ae914cde04..1a0d61e8f6c2e 100644 --- a/pkgs/development/python-modules/certomancer/default.nix +++ b/pkgs/development/python-modules/certomancer/default.nix @@ -2,9 +2,11 @@ lib, buildPythonPackage, fetchFromGitHub, + # build-system setuptools, - wheel, + setuptools-scm, + # dependencies asn1crypto, click, @@ -12,11 +14,13 @@ python-dateutil, pyyaml, tzlocal, + # optional-dependencies requests-mock, jinja2, werkzeug, python-pkcs11, + # nativeCheckInputs freezegun, pyhanko-certvalidator, @@ -28,19 +32,19 @@ buildPythonPackage rec { pname = "certomancer"; - version = "0.13.0"; + version = "0.14.0"; pyproject = true; src = fetchFromGitHub { owner = "MatthiasValvekens"; repo = "certomancer"; tag = "v${version}"; - hash = "sha256-2/qTTN/UuSMHjkSsOs/KbfzKLBjJSLHY51XtgQ6x1Wo="; + hash = "sha256-rsugn1g8iYESrC+IUSbxCAbwnKXWG+ubbUj9QdZB+Ow="; }; build-system = [ setuptools - wheel + setuptools-scm ]; dependencies = [ diff --git a/pkgs/development/python-modules/cffsubr/default.nix b/pkgs/development/python-modules/cffsubr/default.nix index 082c6f493a58d..7483086dbd13c 100644 --- a/pkgs/development/python-modules/cffsubr/default.nix +++ b/pkgs/development/python-modules/cffsubr/default.nix @@ -3,13 +3,13 @@ afdko, buildPythonPackage, cmake, - distutils, + distutils_80, fetchPypi, fonttools, ninja, pytestCheckHook, scikit-build, - setuptools, + setuptools_80, setuptools-scm, }: @@ -31,11 +31,11 @@ buildPythonPackage rec { ''; build-system = [ + distutils_80 + setuptools_80 cmake - distutils ninja scikit-build - setuptools setuptools-scm ]; diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix index 70a2968acfe8e..a14902531efae 100644 --- a/pkgs/development/python-modules/cfn-lint/default.nix +++ b/pkgs/development/python-modules/cfn-lint/default.nix @@ -74,6 +74,8 @@ buildPythonPackage rec { "test/integration/test_quickstart_templates.py::TestQuickStartTemplates::test_templates" "test/integration/test_quickstart_templates_non_strict.py::TestQuickStartTemplates::test_module_integration" "test/integration/test_quickstart_templates_non_strict.py::TestQuickStartTemplates::test_templates" + "test/integration/test_good_templates.py::TestQuickStartTemplates::test_module_integration" + "test/integration/test_good_templates.py::TestQuickStartTemplates::test_templates" ]; pythonImportsCheck = [ "cfnlint" ]; diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix index dab8b5c075fb6..c6aa4b4035a2f 100644 --- a/pkgs/development/python-modules/chalice/default.nix +++ b/pkgs/development/python-modules/chalice/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - pythonAtLeast, # build-system setuptools, @@ -28,8 +27,6 @@ buildPythonPackage (finalAttrs: { version = "1.33.0"; pyproject = true; - disabled = pythonAtLeast "3.14"; - src = fetchFromGitHub { owner = "aws"; repo = "chalice"; @@ -78,7 +75,6 @@ buildPythonPackage (finalAttrs: { "test_can_import_env_vars" "test_stack_trace_printed_on_error" # Don't build - "test_can_generate_pipeline_for_all" "test_build_wheel" # Tests require dist "test_setup_tar_gz_hyphens_in_name" diff --git a/pkgs/development/python-modules/chardet/5.nix b/pkgs/development/python-modules/chardet/5.nix new file mode 100644 index 0000000000000..50959e4753fd1 --- /dev/null +++ b/pkgs/development/python-modules/chardet/5.nix @@ -0,0 +1,44 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + hypothesis, + pytestCheckHook, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "chardet"; + version = "5.2.0"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchPypi { + inherit (finalAttrs) pname version; + hash = "sha256-Gztv9HmoxBS8P6LAhSmVaVxKAm3NbQYzst0JLKOcHPc="; + }; + + build-system = [ setuptools ]; + + nativeCheckInputs = [ + hypothesis + pytestCheckHook + ]; + + disabledTests = [ + # flaky; https://github.com/chardet/chardet/issues/256 + "test_detect_all_and_detect_one_should_agree" + ]; + + pythonImportsCheck = [ "chardet" ]; + + meta = { + changelog = "https://github.com/chardet/chardet/releases/tag/${finalAttrs.version}"; + description = "Universal encoding detector"; + mainProgram = "chardetect"; + homepage = "https://github.com/chardet/chardet"; + license = lib.licenses.lgpl21Plus; + maintainers = [ ]; + }; +}) diff --git a/pkgs/development/python-modules/chardet/default.nix b/pkgs/development/python-modules/chardet/default.nix index 87f4b526b9b4d..1e6bf432037ee 100644 --- a/pkgs/development/python-modules/chardet/default.nix +++ b/pkgs/development/python-modules/chardet/default.nix @@ -1,26 +1,36 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, + hatch-vcs, + hatchling, hypothesis, + pytest-timeout, + pytest-xdist, pytestCheckHook, - setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "chardet"; - version = "5.2.0"; + version = "6.0.0.post1"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-Gztv9HmoxBS8P6LAhSmVaVxKAm3NbQYzst0JLKOcHPc="; + src = fetchFromGitHub { + owner = "chardet"; + repo = "chardet"; + tag = finalAttrs.version; + hash = "sha256-7G998L4VRvNiGBBNAxPJB27lI2DtL1lTteowUH2NBDk="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ + hatch-vcs + hatchling + ]; nativeCheckInputs = [ hypothesis + pytest-timeout + pytest-xdist pytestCheckHook ]; @@ -32,11 +42,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "chardet" ]; meta = { - changelog = "https://github.com/chardet/chardet/releases/tag/${version}"; + changelog = "https://github.com/chardet/chardet/releases/tag/${finalAttrs.src.tag}"; description = "Universal encoding detector"; mainProgram = "chardetect"; homepage = "https://github.com/chardet/chardet"; license = lib.licenses.lgpl21Plus; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/charset-normalizer/default.nix b/pkgs/development/python-modules/charset-normalizer/default.nix index 5137ceb0e83f8..7454c0643eb1c 100644 --- a/pkgs/development/python-modules/charset-normalizer/default.nix +++ b/pkgs/development/python-modules/charset-normalizer/default.nix @@ -4,10 +4,12 @@ buildPythonPackage, fetchFromGitHub, isPyPy, + ast-serialize, mypy, pytestCheckHook, requests, setuptools, + withMypyc ? !isPyPy, }: buildPythonPackage rec { @@ -30,9 +32,12 @@ buildPythonPackage rec { build-system = [ setuptools ] - ++ lib.optional (!isPyPy) mypy; + ++ lib.optionals withMypyc [ + ast-serialize + mypy + ]; - env.CHARSET_NORMALIZER_USE_MYPYC = lib.optionalString (!isPyPy) "1"; + env.CHARSET_NORMALIZER_USE_MYPYC = lib.optionalString withMypyc "1"; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/cirq-aqt/default.nix b/pkgs/development/python-modules/cirq-aqt/default.nix index 58ceb5c600b2f..e14be31559b1f 100644 --- a/pkgs/development/python-modules/cirq-aqt/default.nix +++ b/pkgs/development/python-modules/cirq-aqt/default.nix @@ -2,6 +2,7 @@ buildPythonPackage, cirq-core, requests, + pytest-benchmark, pytestCheckHook, setuptools, }: @@ -24,7 +25,10 @@ buildPythonPackage rec { requests ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytest-benchmark + pytestCheckHook + ]; # cirq's importlib hook doesn't work here #pythonImportsCheck = [ "cirq_aqt" ]; diff --git a/pkgs/development/python-modules/cirq-core/default.nix b/pkgs/development/python-modules/cirq-core/default.nix index 7ebedaaf96865..41adf3d103285 100644 --- a/pkgs/development/python-modules/cirq-core/default.nix +++ b/pkgs/development/python-modules/cirq-core/default.nix @@ -3,7 +3,6 @@ stdenv, buildPythonPackage, fetchFromGitHub, - fetchpatch, # build-system setuptools, @@ -31,6 +30,7 @@ # tests freezegun, pytest-asyncio, + pytest-benchmark, pytestCheckHook, withContribRequires ? false, @@ -38,29 +38,18 @@ buildPythonPackage rec { pname = "cirq-core"; - version = "1.6.1"; + version = "1.7.0"; pyproject = true; src = fetchFromGitHub { owner = "quantumlib"; repo = "cirq"; tag = "v${version}"; - hash = "sha256-M+ojGXJOnrBipjSA9hd3++yTS70kCjPru9FG/rm7zI8="; + hash = "sha256-OAyBYzMEFyVMlxN5UjrKk1x2rSayLyAIAC5h96JeqK0="; }; sourceRoot = "${src.name}/${pname}"; - patches = [ - # Upstream PR: https://github.com/quantumlib/Cirq/pull/7761 - (fetchpatch { - name = "python-3.14.patch"; - url = "https://github.com/quantumlib/Cirq/commit/9aea3bad824cac77031c163d6d6f5cf3e01cfe80.patch"; - stripLen = 1; - includes = [ "cirq/ops/linear_combinations_test.py" ]; - hash = "sha256-Ggcaswrdx6mOfNOwlbWE2ix7aZWt3/Fljb4i1ow+lUU="; - }) - ]; - pythonRelaxDeps = [ "matplotlib" ]; build-system = [ setuptools ]; @@ -91,6 +80,7 @@ buildPythonPackage rec { nativeCheckInputs = [ freezegun pytest-asyncio + pytest-benchmark pytestCheckHook ]; diff --git a/pkgs/development/python-modules/cirq-google/default.nix b/pkgs/development/python-modules/cirq-google/default.nix index 6737ce491da39..ab706085b038d 100644 --- a/pkgs/development/python-modules/cirq-google/default.nix +++ b/pkgs/development/python-modules/cirq-google/default.nix @@ -5,6 +5,7 @@ google-api-core, protobuf, freezegun, + pytest-benchmark, pytestCheckHook, typedunits, }: @@ -32,6 +33,7 @@ buildPythonPackage rec { nativeCheckInputs = [ freezegun + pytest-benchmark pytestCheckHook ]; diff --git a/pkgs/development/python-modules/cirq-ionq/default.nix b/pkgs/development/python-modules/cirq-ionq/default.nix index 8522bc23e0e3a..21d95a5a7858d 100644 --- a/pkgs/development/python-modules/cirq-ionq/default.nix +++ b/pkgs/development/python-modules/cirq-ionq/default.nix @@ -2,6 +2,7 @@ buildPythonPackage, cirq-core, requests, + pytest-benchmark, pytestCheckHook, setuptools, }: @@ -24,7 +25,10 @@ buildPythonPackage rec { requests ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytest-benchmark + pytestCheckHook + ]; # cirq's importlib hook doesn't work here #pythonImportsCheck = [ "cirq_ionq" ]; diff --git a/pkgs/development/python-modules/cirq-pasqal/default.nix b/pkgs/development/python-modules/cirq-pasqal/default.nix index db0e5d2455b5c..82c792e7772b6 100644 --- a/pkgs/development/python-modules/cirq-pasqal/default.nix +++ b/pkgs/development/python-modules/cirq-pasqal/default.nix @@ -2,6 +2,7 @@ buildPythonPackage, cirq-core, requests, + pytest-benchmark, pytestCheckHook, setuptools, }: @@ -24,7 +25,10 @@ buildPythonPackage rec { requests ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytest-benchmark + pytestCheckHook + ]; # cirq's importlib hook doesn't work here #pythonImportsCheck = [ "cirq_pasqal" ]; diff --git a/pkgs/development/python-modules/cirq-web/default.nix b/pkgs/development/python-modules/cirq-web/default.nix index 782aec95c4efe..c091bf20eedf4 100644 --- a/pkgs/development/python-modules/cirq-web/default.nix +++ b/pkgs/development/python-modules/cirq-web/default.nix @@ -1,6 +1,7 @@ { buildPythonPackage, cirq-core, + pytest-benchmark, pytestCheckHook, setuptools, }: @@ -16,7 +17,10 @@ buildPythonPackage rec { dependencies = [ cirq-core ]; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytest-benchmark + pytestCheckHook + ]; # cirq's importlib hook doesn't work here #pythonImportsCheck = [ "cirq_web" ]; diff --git a/pkgs/development/python-modules/libclang/default.nix b/pkgs/development/python-modules/clang/default.nix similarity index 98% rename from pkgs/development/python-modules/libclang/default.nix rename to pkgs/development/python-modules/clang/default.nix index 4657515963e73..1f6e2103034f0 100644 --- a/pkgs/development/python-modules/libclang/default.nix +++ b/pkgs/development/python-modules/clang/default.nix @@ -25,7 +25,7 @@ let ''; in buildPythonPackage { - pname = "libclang"; + pname = "clang"; pyproject = true; inherit (libclang) version src; diff --git a/pkgs/development/python-modules/click-repl/default.nix b/pkgs/development/python-modules/click-repl/default.nix index 7b57b60938b2b..5dffa01686490 100644 --- a/pkgs/development/python-modules/click-repl/default.nix +++ b/pkgs/development/python-modules/click-repl/default.nix @@ -9,31 +9,31 @@ # dependencies click, prompt-toolkit, - six, + typing-extensions, # tests pytest-cov-stub, pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "click-repl"; - version = "0.3.0"; + version = "0.3.0-unstable-2026-03-26"; pyproject = true; src = fetchFromGitHub { owner = "click-contrib"; repo = "click-repl"; - tag = version; - hash = "sha256-xCT3w0DDY73dtDL5jbssXM05Zlr44OOcy4vexgHyWiE="; + rev = "b84191aec21b407b3cb3374ff1ab000887d38f29"; + hash = "sha256-5Xv6oeV6sIRE3K3sZq8DyAXOcY8fYobcJtW/ZN7C4U0="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools ]; - propagatedBuildInputs = [ + dependencies = [ click prompt-toolkit - six + typing-extensions ]; nativeCheckInputs = [ @@ -42,11 +42,9 @@ buildPythonPackage rec { ]; meta = { - # https://github.com/click-contrib/click-repl/issues/128 - broken = lib.versionAtLeast click.version "8.2.0"; homepage = "https://github.com/click-contrib/click-repl"; description = "Subcommand REPL for click apps"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ twey ]; }; -} +}) diff --git a/pkgs/development/python-modules/click/default.nix b/pkgs/development/python-modules/click/default.nix index 47f53fb6580b0..13e65aa099c8d 100644 --- a/pkgs/development/python-modules/click/default.nix +++ b/pkgs/development/python-modules/click/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "click"; - version = "8.3.1"; + version = "8.3.3"; pyproject = true; src = fetchFromGitHub { owner = "pallets"; repo = "click"; tag = version; - hash = "sha256-MbaIQJr6GbM8JwdbUkbeC8TqWN5dH82pFOqHwJE2PBA="; + hash = "sha256-LcnAI4hyiuaJ4qnFnbAR5Cft/yvW5tAIjY6qc6K/Nrw="; }; build-system = [ flit-core ]; diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix index 464b1187d40d1..1ea710021d18b 100644 --- a/pkgs/development/python-modules/cmd2/default.nix +++ b/pkgs/development/python-modules/cmd2/default.nix @@ -46,6 +46,8 @@ buildPythonPackage rec { # Don't require vim for tests, it causes lots of rebuilds "test_find_editor_not_specified" "test_transcript" + # Removed upstream after rich 15 update + "test_from_ansi_wrapper" ]; pythonImportsCheck = [ "cmd2" ]; diff --git a/pkgs/development/python-modules/cohere/default.nix b/pkgs/development/python-modules/cohere/default.nix index b288342f6d75b..0c4888a71c6fa 100644 --- a/pkgs/development/python-modules/cohere/default.nix +++ b/pkgs/development/python-modules/cohere/default.nix @@ -47,6 +47,10 @@ buildPythonPackage rec { typing-extensions ]; + pythonRelaxDeps = [ + "pydantic-core" + ]; + optional-dependencies = { aiohttp = [ aiohttp diff --git a/pkgs/development/python-modules/coreapi/default.nix b/pkgs/development/python-modules/coreapi/default.nix index 7c810a0fb0c5b..90c7c088308c9 100644 --- a/pkgs/development/python-modules/coreapi/default.nix +++ b/pkgs/development/python-modules/coreapi/default.nix @@ -2,7 +2,7 @@ lib, fetchFromGitHub, buildPythonPackage, - setuptools, + setuptools_80, django, coreschema, itypes, @@ -24,7 +24,7 @@ buildPythonPackage rec { hash = "sha256-nNUzQbBaT7woI3fmvPvIM0SVDnt4iC2rQ9bDgUeFzLA="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ django diff --git a/pkgs/development/python-modules/coredis/default.nix b/pkgs/development/python-modules/coredis/default.nix index d54d4e0a65257..7740b0a99efeb 100644 --- a/pkgs/development/python-modules/coredis/default.nix +++ b/pkgs/development/python-modules/coredis/default.nix @@ -1,6 +1,6 @@ { lib, - async-timeout, + anyio, beartype, buildPythonPackage, hatchling, @@ -8,36 +8,35 @@ hatch-vcs, types-deprecated, deprecated, + exceptiongroup, fetchFromGitHub, packaging, - pympler, pytest-asyncio, pytest-lazy-fixtures, + pytest-mock, pytestCheckHook, redis, typing-extensions, - wrapt, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "coredis"; - version = "5.6.0"; + version = "6.6.1"; pyproject = true; src = fetchFromGitHub { owner = "alisaifee"; repo = "coredis"; - tag = version; - hash = "sha256-84mFHEPvCv7c1u2giTwTmC+56KCB/3snl8vJ4c+sE2s="; + tag = finalAttrs.version; + hash = "sha256-Jn6tqMpyk849/hwYM0DHuQnGbMltRpTXAVcN5Kt6lk4="; }; postPatch = '' sed -i '/mypy==/d' pyproject.toml - sed -i '/packaging/d' pyproject.toml - sed -i '/pympler/d' pyproject.toml - sed -i '/types_deprecated/d' pyproject.toml - substituteInPlace pytest.ini \ - --replace-fail "-K" "" + sed -i '/hatch-mypy/d' pyproject.toml + sed -i '/opentelemetry-sdk/d' pyproject.toml + substituteInPlace pyproject.toml \ + --replace-fail '"-K"' "" ''; build-system = [ @@ -48,13 +47,12 @@ buildPythonPackage rec { ]; dependencies = [ - async-timeout + anyio beartype deprecated + exceptiongroup packaging - pympler typing-extensions - wrapt ]; nativeCheckInputs = [ @@ -62,6 +60,7 @@ buildPythonPackage rec { redis pytest-asyncio pytest-lazy-fixtures + pytest-mock ]; pythonImportsCheck = [ "coredis" ]; @@ -77,7 +76,7 @@ buildPythonPackage rec { meta = { description = "Async redis client with support for redis server, cluster & sentinel"; homepage = "https://github.com/alisaifee/coredis"; - changelog = "https://github.com/alisaifee/coredis/blob/${src.tag}/HISTORY.rst"; + changelog = "https://github.com/alisaifee/coredis/blob/${finalAttrs.src.tag}/HISTORY.rst"; license = lib.licenses.mit; }; -} +}) diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix index 729c1801daa70..f0560b576078f 100644 --- a/pkgs/development/python-modules/cryptography/default.nix +++ b/pkgs/development/python-modules/cryptography/default.nix @@ -1,6 +1,7 @@ { lib, stdenv, + fetchpatch, buildPythonPackage, callPackage, setuptools, @@ -21,21 +22,30 @@ buildPythonPackage rec { pname = "cryptography"; - version = "48.0.0"; + version = "49.0.0"; pyproject = true; src = fetchFromGitHub { owner = "pyca"; repo = "cryptography"; tag = version; - hash = "sha256-S1oOLou6tE1atqZ6HXwVQDps9BnjiEpRdoZY5VQm+Kg="; + hash = "sha256-yHUIGauFZYnjcoROvocT1UqQ0B8ZuVTaJ0ZAfri6T1E="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-mp+1Fw8xNBJD1DM8obAqYBP8erxXiP768+ifqRN1Uqs="; + hash = "sha256-yMCBu/RGRcEQST8tEWCNgVvlQsp2KamOqt60qvOYdt8="; }; + patches = [ + (fetchpatch { + # Add test marks where malloc failure is expected on systems with overcommit enabled + name = "malloc-overcommit-mark.patch"; + url = "https://github.com/pyca/cryptography/commit/2efeba9cc67809b67e659bea8eaea680df2135e8.patch"; + hash = "sha256-06Z+sk2JTJ50CCnPf2vXyPL5BZeI98oc43LpccenzNg="; + }) + ]; + postPatch = '' substituteInPlace pyproject.toml \ --replace-fail "--benchmark-disable" "" diff --git a/pkgs/development/python-modules/cu2qu/default.nix b/pkgs/development/python-modules/cu2qu/default.nix index 1e913c4f4aca6..aa76138d3e461 100644 --- a/pkgs/development/python-modules/cu2qu/default.nix +++ b/pkgs/development/python-modules/cu2qu/default.nix @@ -6,7 +6,7 @@ # build cython, setuptools-scm, - setuptools, + setuptools_80, # propagates defcon, @@ -32,7 +32,7 @@ buildPythonPackage rec { nativeBuildInputs = [ cython - setuptools + setuptools_80 setuptools-scm ]; diff --git a/pkgs/development/python-modules/cyclopts/default.nix b/pkgs/development/python-modules/cyclopts/default.nix index 64fb1c8d18fce..6b634027e6cf0 100644 --- a/pkgs/development/python-modules/cyclopts/default.nix +++ b/pkgs/development/python-modules/cyclopts/default.nix @@ -84,6 +84,9 @@ buildPythonPackage (finalAttrs: { # Building docs "build_succeeds" # timeouts under heavy concurrency + "test_behavior[zsh-root-subcommands]" + "test_behavior[zsh-subcommand-prefix]" + "test_path_completion_action" "test_requires_equals_eq_form_value_completion" ]; diff --git a/pkgs/development/python-modules/cython/default.nix b/pkgs/development/python-modules/cython/default.nix index 5676bed17b70b..34e82fb9f3525 100644 --- a/pkgs/development/python-modules/cython/default.nix +++ b/pkgs/development/python-modules/cython/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "cython"; - version = "3.2.4"; + version = "3.2.5"; pyproject = true; src = fetchFromGitHub { owner = "cython"; repo = "cython"; tag = version; - hash = "sha256-8J5EcaQXexWEA+se5rCR06CwlEYao2XK5TnVNgFGHYQ="; + hash = "sha256-wes7UFSWW00tKTmp3Aqk0jDpMMRVHRIhonC6CD7pwB4="; }; build-system = [ diff --git a/pkgs/development/python-modules/db-dtypes/default.nix b/pkgs/development/python-modules/db-dtypes/default.nix index 82f7dde2133d2..4393f725aafe9 100644 --- a/pkgs/development/python-modules/db-dtypes/default.nix +++ b/pkgs/development/python-modules/db-dtypes/default.nix @@ -2,26 +2,38 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, numpy, packaging, pandas, pyarrow, - pytest8_3CheckHook, + pytestCheckHook, setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "db-dtypes"; - version = "1.5.0"; + version = "1.6.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; - repo = "python-db-dtypes-pandas"; - tag = "v${version}"; - hash = "sha256-cF40Y2J944AojOXKoTzQ/ybTFY4GP5G8KWY6+NWyRT8="; + repo = "google-cloud-python"; + tag = "db-dtypes-v${finalAttrs.version}"; + hash = "sha256-KJviH4dofYSvZu9S7VMBSnGjH66xMUEvhcmZN7GJ4Iw="; }; + sourceRoot = "${finalAttrs.src.name}/packages/db-dtypes"; + + patches = [ + (fetchpatch { + name = "support-pandas-3.0.patch"; + url = "https://github.com/googleapis/google-cloud-python/commit/2086b34d8b3418462c9bc89b96eac779a25a3afd.patch"; + relative = "packages/db-dtypes"; + hash = "sha256-0NvbTCnr95IW7rkQVu3iUDsNXU/LzXhJwwSDdliFZ+Y="; + }) + ]; + build-system = [ setuptools ]; dependencies = [ @@ -31,22 +43,19 @@ buildPythonPackage rec { pyarrow ]; - nativeCheckInputs = [ pytest8_3CheckHook ]; + nativeCheckInputs = [ pytestCheckHook ]; - disabledTests = [ - # ValueError: Unable to avoid copy while creating an array as requested. - "test_array_interface_copy" - # Failed: DID NOT RAISE - "test_reduce_series_numeric" + pytestFlags = [ + "-Wignore::DeprecationWarning" ]; pythonImportsCheck = [ "db_dtypes" ]; meta = { description = "Pandas Data Types for SQL systems (BigQuery, Spanner)"; - homepage = "https://github.com/googleapis/python-db-dtypes-pandas"; - changelog = "https://github.com/googleapis/python-db-dtypes-pandas/blob/${src.tag}/CHANGELOG.md"; + homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/db-dtypes"; + changelog = "https://github.com/googleapis/google-cloud-python/blob/${finalAttrs.src.tag}/packages/db-dtypes/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/dbus-fast/default.nix b/pkgs/development/python-modules/dbus-fast/default.nix index 3c2836d282323..6a4ed61a01d9a 100644 --- a/pkgs/development/python-modules/dbus-fast/default.nix +++ b/pkgs/development/python-modules/dbus-fast/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "dbus-fast"; - version = "5.0.17"; + version = "5.0.22"; pyproject = true; src = fetchFromGitHub { owner = "Bluetooth-Devices"; repo = "dbus-fast"; tag = "v${finalAttrs.version}"; - hash = "sha256-wZ4ufGua56weOuaOkyjBIzDex/gjmLeAczYzeLQRFwo="; + hash = "sha256-tYgsaXOo1zYjWebcWZyGIIbYHCJApwhRnuYcHOP+ZUs="; }; postPatch = '' diff --git a/pkgs/development/python-modules/decopatch/default.nix b/pkgs/development/python-modules/decopatch/default.nix index 36dd006225db8..c95f9339b39cd 100644 --- a/pkgs/development/python-modules/decopatch/default.nix +++ b/pkgs/development/python-modules/decopatch/default.nix @@ -3,22 +3,26 @@ buildPythonPackage, fetchPypi, makefun, + setuptools_80, setuptools-scm, }: buildPythonPackage rec { pname = "decopatch"; version = "1.4.10"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-lX9JyT9BUBgsI/j7UdE7syE+DxenngnIzKcFdZi1VyA="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ + setuptools_80 + setuptools-scm + ]; - propagatedBuildInputs = [ makefun ]; + dependencies = [ makefun ]; postPatch = '' substituteInPlace setup.cfg \ diff --git a/pkgs/development/python-modules/deprecated/default.nix b/pkgs/development/python-modules/deprecated/default.nix index 195534a8add39..4dce3b873c780 100644 --- a/pkgs/development/python-modules/deprecated/default.nix +++ b/pkgs/development/python-modules/deprecated/default.nix @@ -3,13 +3,13 @@ fetchFromGitHub, buildPythonPackage, pythonAtLeast, - setuptools, + setuptools_80, wrapt, pytestCheckHook, sphinxHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "deprecated"; version = "1.3.1"; pyproject = true; @@ -22,15 +22,15 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "tantale"; repo = "deprecated"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-1mB9aRZOsaW7Mqcu1SWIYTusQ7MlMvUucdTyfu++Nx8="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; nativeBuildInputs = [ sphinxHook ]; - propagatedBuildInputs = [ wrapt ]; + dependencies = [ wrapt ]; nativeCheckInputs = [ pytestCheckHook ]; @@ -43,9 +43,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "deprecated" ]; meta = { + changelog = "https://github.com/laurent-laporte-pro/deprecated/releases/tag/${finalAttrs.src.tag}"; homepage = "https://github.com/tantale/deprecated"; description = "Python @deprecated decorator to deprecate old python classes, functions or methods"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tilpner ]; }; -} +}) diff --git a/pkgs/development/python-modules/distutils/80.nix b/pkgs/development/python-modules/distutils/80.nix new file mode 100644 index 0000000000000..8d9c304afded6 --- /dev/null +++ b/pkgs/development/python-modules/distutils/80.nix @@ -0,0 +1,91 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + pythonAtLeast, + setuptools-scm, + setuptools_80, + python, + docutils, + jaraco-collections, + jaraco-functools, + jaraco-envs, + jaraco-path, + jaraco-text, + libz, + more-itertools, + packaging, + path, + pyfakefs, + pytestCheckHook, + stdenv, +}: + +buildPythonPackage { + pname = "distutils"; + inherit (setuptools_80) version; + pyproject = true; + + src = fetchFromGitHub { + owner = "pypa"; + repo = "distutils"; + rev = "5ad8291ff2ad3e43583bc72a4c09299ca6134f09"; # correlate commit from setuptools version + hash = "sha256-3Mqpe/Goj3lQ6GEbX3DHWjdoh7XsFIg9WkOCK138OAo="; + }; + + postPatch = '' + sed -i '/coherent\.licensed/d' pyproject.toml + ''; + + build-system = [ setuptools-scm ]; + + dependencies = [ + jaraco-collections + jaraco-functools + more-itertools + packaging + ]; + + postInstall = '' + rm -r $out/${python.sitePackages}/distutils + ln -s ${setuptools_80}/${python.sitePackages}/setuptools/_distutils $out/${python.sitePackages}/distutils + ''; + + pythonImportsCheck = [ "distutils" ]; + + nativeCheckInputs = [ + docutils + jaraco-envs + jaraco-path + jaraco-text + more-itertools + path + pyfakefs + pytestCheckHook + ]; + + checkInputs = [ + # https://github.com/pypa/distutils/blob/5ad8291ff2ad3e43583bc72a4c09299ca6134f09/distutils/tests/test_build_ext.py#L107 + libz + ]; + + # jaraco-path depends ob pyobjc + doCheck = !stdenv.hostPlatform.isDarwin; + + disabledTests = [ + # TypeError: byte_compile() got an unexpected keyword argument 'dry_run' + "test_byte_compile" + "test_byte_compile_optimized" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ + # AssertionError: assert '(?s:foo[^/]*)\\z' == '(?s:foo[^/]*)\\Z' + "test_glob_to_re" + ]; + + meta = { + description = "Distutils as found in cpython"; + homepage = "https://github.com/pypa/distutils"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/development/python-modules/distutils/default.nix b/pkgs/development/python-modules/distutils/default.nix index 727b109d64bcf..292cf61b2fb92 100644 --- a/pkgs/development/python-modules/distutils/default.nix +++ b/pkgs/development/python-modules/distutils/default.nix @@ -29,10 +29,14 @@ buildPythonPackage { src = fetchFromGitHub { owner = "pypa"; repo = "distutils"; - rev = "5ad8291ff2ad3e43583bc72a4c09299ca6134f09"; # correlate commit from setuptools version - hash = "sha256-3Mqpe/Goj3lQ6GEbX3DHWjdoh7XsFIg9WkOCK138OAo="; + rev = "f10ac6219960991c98b821cf2544bf9c2864ebc2"; # correlate commit from setuptools version + hash = "sha256-KzC7zvrC7fsAQhLFZvep/F+yDRzsBDYtir1EA7gdpGM="; }; + postPatch = '' + sed -i '/coherent\.licensed/d' pyproject.toml + ''; + build-system = [ setuptools-scm ]; dependencies = [ @@ -68,7 +72,12 @@ buildPythonPackage { # jaraco-path depends ob pyobjc doCheck = !stdenv.hostPlatform.isDarwin; - disabledTests = lib.optionals (pythonAtLeast "3.14") [ + disabledTests = [ + # TypeError: byte_compile() got an unexpected keyword argument 'dry_run' + "test_byte_compile" + "test_byte_compile_optimized" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ # AssertionError: assert '(?s:foo[^/]*)\\z' == '(?s:foo[^/]*)\\Z' "test_glob_to_re" ]; diff --git a/pkgs/development/python-modules/django-compressor/default.nix b/pkgs/development/python-modules/django-compressor/default.nix index eedf03e288630..6e1686fe0b8b3 100644 --- a/pkgs/development/python-modules/django-compressor/default.nix +++ b/pkgs/development/python-modules/django-compressor/default.nix @@ -15,7 +15,6 @@ # tests beautifulsoup4, brotli, - calmjs, csscompressor, django-sekizai, jinja2, @@ -52,7 +51,6 @@ buildPythonPackage rec { nativeCheckInputs = [ beautifulsoup4 brotli - calmjs csscompressor django-sekizai jinja2 @@ -68,6 +66,8 @@ buildPythonPackage rec { disabledTests = [ # we set mtime to 1980-01-02 "test_css_mtimes" + # calmjs removed from test deps, because it requires pkg_resources at runtime + "test_calmjs_filter" ]; pythonImportsCheck = [ "compressor" ]; diff --git a/pkgs/development/python-modules/django-q2/default.nix b/pkgs/development/python-modules/django-q2/default.nix index e5ebe7e58edaa..f114e4a24eb71 100644 --- a/pkgs/development/python-modules/django-q2/default.nix +++ b/pkgs/development/python-modules/django-q2/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "django-q2"; - version = "1.9.0"; + version = "1.10.0"; pyproject = true; src = fetchFromGitHub { owner = "django-q2"; repo = "django-q2"; tag = "v${version}"; - hash = "sha256-xqRm9vv/lD9HLX+ekdPgIGGwr5H7QZBATPx0CCjQAmw="; + hash = "sha256-VwB3pvDAGsMvcKblRnmCYHzvEBCz8E13Qov4LjWEqxc="; }; build-system = [ @@ -74,6 +74,9 @@ buildPythonPackage rec { disabledTestPaths = [ "django_q/tests/test_commands.py" + # assert 0 == 1 where 0 = .reincarnations + "django_q/tests/test_cluster.py::test_recycle" + "django_q/tests/test_cluster.py::test_max_rss" ]; pytestFlags = [ "-vv" ]; diff --git a/pkgs/development/python-modules/django-rq/default.nix b/pkgs/development/python-modules/django-rq/default.nix index a946f4d89b544..990743f247e05 100644 --- a/pkgs/development/python-modules/django-rq/default.nix +++ b/pkgs/development/python-modules/django-rq/default.nix @@ -16,14 +16,14 @@ buildPythonPackage (finalAttrs: { pname = "django-rq"; - version = "4.1"; + version = "4.1.1"; pyproject = true; src = fetchFromGitHub { owner = "rq"; repo = "django-rq"; tag = "v${finalAttrs.version}"; - hash = "sha256-c/elbEi+m3WVGl8137ct1PsxRM397uZNPy9X54b8fmg="; + hash = "sha256-pp8/7pMG4CHEe+jsmZ9euAV8eEMW0Hh4ecTTHnP6DiE="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix index 273b61da19c95..74dff79704f1f 100644 --- a/pkgs/development/python-modules/django/5.nix +++ b/pkgs/development/python-modules/django/5.nix @@ -41,14 +41,14 @@ buildPythonPackage rec { pname = "django"; - version = "5.2.15"; + version = "5.2.16"; pyproject = true; src = fetchFromGitHub { owner = "django"; repo = "django"; tag = version; - hash = "sha256-K9yFHr3IkVNMqoeumESszVlju2fW2r8hS8z6M2OdVpE="; + hash = "sha256-DZa3OkqnrgXp1A/HerKYdUdanvi5jxHndo1DV4RVs0M="; }; patches = [ diff --git a/pkgs/development/python-modules/django/6.nix b/pkgs/development/python-modules/django/6.nix index 4b6e54569b85b..b6cb92b964e90 100644 --- a/pkgs/development/python-modules/django/6.nix +++ b/pkgs/development/python-modules/django/6.nix @@ -42,7 +42,7 @@ buildPythonPackage (finalAttrs: { pname = "django"; - version = "6.0.6"; + version = "6.0.7"; pyproject = true; disabled = pythonOlder "3.12"; @@ -51,7 +51,7 @@ buildPythonPackage (finalAttrs: { owner = "django"; repo = "django"; tag = finalAttrs.version; - hash = "sha256-hLnTqY64PfaGJ1JJccrxYms41Jp4E4pVq6rmrtFpESE="; + hash = "sha256-B28twwEGLcXV0TlQxgRhNBiKhwJd+5f7sL35SkHAkRY="; }; patches = [ diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix index 65245ca72ab22..f42859403ac8f 100644 --- a/pkgs/development/python-modules/dramatiq/default.nix +++ b/pkgs/development/python-modules/dramatiq/default.nix @@ -11,7 +11,7 @@ pytest-benchmark, pytest-cov-stub, redis, - setuptools, + setuptools_80, watchdog, watchdog-gevent, }: @@ -28,7 +28,7 @@ buildPythonPackage rec { hash = "sha256-wUE3R/lFafP7P9tjKjFC+jwCc3jkvGeXunC8AhkBLbM="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ prometheus-client ]; diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix index 6393b3d9fc1da..c4fd3dd51b3ba 100644 --- a/pkgs/development/python-modules/dropbox/default.nix +++ b/pkgs/development/python-modules/dropbox/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, requests, six, stone, @@ -30,7 +30,7 @@ buildPythonPackage rec { hash = "sha256-9Fsh06V226vIyJhrlLkh9Xr4UGoEIISnIFCtuKqI218="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ requests diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix index 9736c5eeae5f7..edc2419ab06ac 100644 --- a/pkgs/development/python-modules/duckdb/default.nix +++ b/pkgs/development/python-modules/duckdb/default.nix @@ -18,6 +18,7 @@ pytz, scikit-build-core, setuptools-scm, + typing-extensions, pytest-reraise, pytestCheckHook, }: @@ -71,6 +72,10 @@ buildPythonPackage rec { openssl ]; + dependencies = [ + typing-extensions + ]; + optional-dependencies = { all = [ # FIXME package adbc_driver_manager @@ -104,7 +109,10 @@ buildPythonPackage rec { ++ optional-dependencies.all; # test flags from .github/workflows/Python.yml - pytestFlags = [ "--verbose" ]; + pytestFlags = [ + "--verbose" + "-Wignore::DeprecationWarning" + ]; enabledTestPaths = if stdenv.hostPlatform.isDarwin then [ "tests/fast" ] else [ "tests" ]; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/eliqonline/default.nix b/pkgs/development/python-modules/eliqonline/default.nix deleted file mode 100644 index 06135070f86d9..0000000000000 --- a/pkgs/development/python-modules/eliqonline/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - aiohttp, - buildPythonPackage, - docopt, - fetchPypi, - pyyaml, -}: - -buildPythonPackage rec { - pname = "eliqonline"; - version = "1.2.2"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - sha256 = "hOUN4cA4pKVioIrfJM02GOnZdDRc7xbNtvHfoD3//bM="; - }; - - propagatedBuildInputs = [ - aiohttp - docopt - pyyaml - ]; - - # Project has no tests - doCheck = false; - - pythonImportsCheck = [ "eliqonline" ]; - - meta = { - description = "Python client to the Eliq Online API"; - mainProgram = "eliqonline"; - homepage = "https://github.com/molobrakos/eliqonline"; - license = lib.licenses.lgpl3Only; - maintainers = with lib.maintainers; [ fab ]; - }; -} diff --git a/pkgs/development/python-modules/encutils/chardet6-compat.patch b/pkgs/development/python-modules/encutils/chardet6-compat.patch new file mode 100644 index 0000000000000..11730056e5c97 --- /dev/null +++ b/pkgs/development/python-modules/encutils/chardet6-compat.patch @@ -0,0 +1,79 @@ +diff --git a/encutils/__init__.py b/encutils/__init__.py +index 02922be..8a85574 100644 +--- a/encutils/__init__.py ++++ b/encutils/__init__.py +@@ -442,7 +442,7 @@ def tryEncodings(text, log=None): # noqa: C901 + + encoding = chardet.detect(text)["encoding"] + +- except ImportError: ++ except (ImportError, AttributeError): + msg = 'Using simplified encoding detection, you might want to install chardet.' + if log: + log.warn(msg) +encutils-1.0.0 on  main [!] is 📦 v1.0.0 via 🐍 v3.13.13 +❯ hx encutils/__init__.py +encutils-1.0.0 on  main [!] is 📦 v1.0.0 via 🐍 v3.13.13 took 59s +❯ git diff +diff --git a/encutils/__init__.py b/encutils/__init__.py +index 02922be..100e06e 100644 +--- a/encutils/__init__.py ++++ b/encutils/__init__.py +@@ -441,6 +441,8 @@ def tryEncodings(text, log=None): # noqa: C901 + import chardet + + encoding = chardet.detect(text)["encoding"] ++ if encoding is not None: ++ return encoding + + except ImportError: + msg = 'Using simplified encoding detection, you might want to install chardet.' +@@ -449,27 +451,27 @@ def tryEncodings(text, log=None): # noqa: C901 + else: + print(msg) + +- encodings = ( +- 'ascii', +- 'iso-8859-1', +- # 'windows-1252', # test later +- 'utf-8', +- ) +- encoding = None +- for e in encodings: +- try: +- text.decode(e) +- except UnicodeDecodeError: +- pass +- else: +- if 'iso-8859-1' == e: +- try: +- if '€' in text.decode('windows-1252'): +- return 'windows-1252' +- except UnicodeDecodeError: +- pass +- +- return e ++ encodings = ( ++ 'ascii', ++ 'iso-8859-1', ++ # 'windows-1252', # test later ++ 'utf-8', ++ ) ++ encoding = None ++ for e in encodings: ++ try: ++ text.decode(e) ++ except UnicodeDecodeError: ++ pass ++ else: ++ if 'iso-8859-1' == e: ++ try: ++ if '€' in text.decode('windows-1252'): ++ return 'windows-1252' ++ except UnicodeDecodeError: ++ pass ++ ++ return e + + return encoding + diff --git a/pkgs/development/python-modules/encutils/default.nix b/pkgs/development/python-modules/encutils/default.nix index 37f91db5a0071..84b77e0f840ed 100644 --- a/pkgs/development/python-modules/encutils/default.nix +++ b/pkgs/development/python-modules/encutils/default.nix @@ -18,6 +18,9 @@ buildPythonPackage (finalAttrs: { hash = "sha256-OOylrxjOur2L5DwX8UydP7uoPMX3rI46schuJMSyuRo="; }; + # expect chardet.detect to return None + patches = [ ./chardet6-compat.patch ]; + build-system = [ flit-core ]; dependencies = [ diff --git a/pkgs/development/python-modules/face-recognition/models.nix b/pkgs/development/python-modules/face-recognition/models.nix index 40eb6ad5bbe27..aa2ef447dab80 100644 --- a/pkgs/development/python-modules/face-recognition/models.nix +++ b/pkgs/development/python-modules/face-recognition/models.nix @@ -2,21 +2,21 @@ buildPythonPackage, lib, fetchPypi, - setuptools, + setuptools_80, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "face-recognition-models"; version = "0.3.0"; - format = "setuptools"; + pyproject = true; src = fetchPypi { pname = "face_recognition_models"; - inherit version; + inherit (finalAttrs) version; hash = "sha256-t5vSAKiMh8mp1EbJkK5xxaYm0fNzAXTm1XAVf/HYls8="; }; - propagatedBuildInputs = [ setuptools ]; + build-system = [ setuptools_80 ]; # no tests doCheck = false; @@ -29,4 +29,4 @@ buildPythonPackage rec { maintainers = [ ]; description = "Trained models for the face_recognition python library"; }; -} +}) diff --git a/pkgs/development/python-modules/fastapi-cli/default.nix b/pkgs/development/python-modules/fastapi-cli/default.nix index b13bcff26a204..9a314d21ca1ba 100644 --- a/pkgs/development/python-modules/fastapi-cli/default.nix +++ b/pkgs/development/python-modules/fastapi-cli/default.nix @@ -15,14 +15,14 @@ let self = buildPythonPackage rec { pname = "fastapi-cli"; - version = "0.0.20"; + version = "0.0.24"; pyproject = true; src = fetchFromGitHub { owner = "fastapi"; repo = "fastapi-cli"; tag = version; - hash = "sha256-RTxu6WmKmGMVsQ2izd8j8P+gGbXV91gVjb95JC52e8Q="; + hash = "sha256-LEo8to1mspauTMCQ5Zf6znG0ALqF5XtauPar5bqN6/Q="; }; build-system = [ pdm-backend ]; @@ -37,6 +37,11 @@ let optional-dependencies = { standard = [ uvicorn + # FIXME package fastapi-cloud-cli + ] + ++ uvicorn.optional-dependencies.standard; + standard-no-fastapi-cloud-cli = [ + uvicorn ] ++ uvicorn.optional-dependencies.standard; }; diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix index 3e29f81a9da26..e7c8a426fae75 100644 --- a/pkgs/development/python-modules/fastapi/default.nix +++ b/pkgs/development/python-modules/fastapi/default.nix @@ -11,6 +11,7 @@ starlette, pydantic, typing-extensions, + typing-inspection, # tests anyio, @@ -18,15 +19,11 @@ dirty-equals, flask, inline-snapshot, - passlib, pwdlib, pyjwt, - pytest-asyncio, pytest-xdist, pytest-timeout, pytestCheckHook, - sqlalchemy, - trio, # optional-dependencies fastapi-cli, @@ -35,8 +32,6 @@ itsdangerous, python-multipart, pyyaml, - ujson, - orjson, email-validator, uvicorn, pydantic-settings, @@ -57,16 +52,12 @@ buildPythonPackage rec { build-system = [ pdm-backend ]; - pythonRelaxDeps = [ - "anyio" - "starlette" - ]; - dependencies = [ annotated-doc starlette pydantic typing-extensions + typing-inspection ]; optional-dependencies = { @@ -77,12 +68,8 @@ buildPythonPackage rec { python-multipart itsdangerous pyyaml - ujson - orjson email-validator uvicorn - ] - ++ lib.optionals (lib.versionAtLeast pydantic.version "2") [ pydantic-settings pydantic-extra-types ] @@ -90,56 +77,56 @@ buildPythonPackage rec { ++ uvicorn.optional-dependencies.standard; standard = [ fastapi-cli + # FIXME package fastar httpx jinja2 python-multipart email-validator uvicorn + pydantic-settings + pydantic-extra-types ] ++ fastapi-cli.optional-dependencies.standard ++ uvicorn.optional-dependencies.standard; + standard-no-fastapi-cloud-cli = [ + fastapi-cli + httpx + jinja2 + python-multipart + email-validator + uvicorn + pydantic-settings + pydantic-extra-types + ] + ++ fastapi-cli.optional-dependencies.standard-no-fastapi-cloud-cli + ++ uvicorn.optional-dependencies.standard; }; nativeCheckInputs = [ + a2wsgi anyio a2wsgi dirty-equals flask inline-snapshot - passlib pwdlib pyjwt pytestCheckHook - pytest-asyncio pytest-xdist pytest-timeout - trio - sqlalchemy ] ++ anyio.optional-dependencies.trio - ++ passlib.optional-dependencies.bcrypt ++ optional-dependencies.all; - pytestFlags = [ - # ignoring deprecation warnings to avoid test failure from - # tests/test_tutorial/test_testing/test_tutorial001.py - "-Wignore::DeprecationWarning" - "-Wignore::pytest.PytestUnraisableExceptionWarning" - ]; - disabledTests = [ # Coverage test "test_fastapi_cli" - # Likely pydantic compat issue - "test_exception_handler_body_access" ]; disabledTestPaths = [ # Don't test docs and examples "docs_src" - "tests/test_tutorial/test_sql_databases" - "tests/test_tutorial/test_static_files" - "tests/test_tutorial/test_custom_docs_ui" + "tests/test_tutorial" # Infinite recursion with strawberry-graphql "tests/test_tutorial/test_graphql/test_tutorial001.py" ]; diff --git a/pkgs/development/python-modules/fastlite/default.nix b/pkgs/development/python-modules/fastlite/default.nix index c1c9efde7f3e3..705585945d13e 100644 --- a/pkgs/development/python-modules/fastlite/default.nix +++ b/pkgs/development/python-modules/fastlite/default.nix @@ -4,7 +4,7 @@ fetchFromGitHub, # build-system - setuptools, + setuptools_80, # dependencies fastcore, @@ -24,7 +24,7 @@ buildPythonPackage (finalAttrs: { }; build-system = [ - setuptools + setuptools_80 ]; dependencies = [ diff --git a/pkgs/development/python-modules/fastmcp/default.nix b/pkgs/development/python-modules/fastmcp/default.nix index 74d4985d26aa8..f30dcd9150912 100644 --- a/pkgs/development/python-modules/fastmcp/default.nix +++ b/pkgs/development/python-modules/fastmcp/default.nix @@ -119,6 +119,11 @@ buildPythonPackage (finalAttrs: { "test_multi_server" "test_server_starts_without_auth" "test_canonical_multi_client_with_transforms" + + # RuntimeError: Attempted to exit a cancel scope that isn't the current tasks's current cancel scope + "test_stateful_proxy" + "test_concurrent_log_requests_no_mixing" + "test_multi_proxies_no_mixing" ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ # floating point error diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix index 1c8dcd43b6b7f..d7f7c5a74afa9 100644 --- a/pkgs/development/python-modules/fastparquet/default.nix +++ b/pkgs/development/python-modules/fastparquet/default.nix @@ -62,6 +62,13 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; + disabledTests = [ + # DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, + # and will raise an error in the future. This includes implicit conversion of bare + # integers (e.g. `+ 1`).Please use a specific unit instead. + "test_import_without_warning" + ]; + # Workaround https://github.com/NixOS/nixpkgs/issues/123561 preCheck = '' mv fastparquet/test . diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix index f279e558460d1..6329cfb442ef3 100644 --- a/pkgs/development/python-modules/fido2/default.nix +++ b/pkgs/development/python-modules/fido2/default.nix @@ -8,14 +8,14 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "fido2"; - version = "2.1.1"; + version = "2.2.1"; pyproject = true; src = fetchPypi { - inherit pname version; - hash = "sha256-8TefhFhwzH/GTH8HMjw85B6MlsNwVOeeCs1WMLP+xaw="; + inherit (finalAttrs) pname version; + hash = "sha256-hXh0KKlMP46vcvD/MK+6mDtVmhsbeVyTMYyBtK1AYsQ="; }; build-system = [ poetry-core ]; @@ -28,7 +28,10 @@ buildPythonPackage rec { pcsc = [ pyscard ]; }; - nativeCheckInputs = [ pytestCheckHook ]; + nativeCheckInputs = [ + pytestCheckHook + ] + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; pytestFlags = [ "-v" @@ -40,8 +43,8 @@ buildPythonPackage rec { meta = { description = "Provides library functionality for FIDO 2.0, including communication with a device over USB"; homepage = "https://github.com/Yubico/python-fido2"; - changelog = "https://github.com/Yubico/python-fido2/releases/tag/${version}"; + changelog = "https://github.com/Yubico/python-fido2/releases/tag/${finalAttrs.version}"; license = lib.licenses.bsd2; maintainers = with lib.maintainers; [ prusnak ]; }; -} +}) diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix index 54fc63da2f08d..80810b707766d 100644 --- a/pkgs/development/python-modules/filelock/default.nix +++ b/pkgs/development/python-modules/filelock/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, hatch-vcs, hatchling, pytest-asyncio, @@ -12,12 +12,14 @@ buildPythonPackage rec { pname = "filelock"; - version = "3.20.3"; + version = "3.29.0"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-GMV+6RXH7GHP8Oz38Phpk2x8MBkbsM9AbxNBd40INOE="; + src = fetchFromGitHub { + owner = "tox-dev"; + repo = "filelock"; + tag = version; + hash = "sha256-efBEyjuCcLkHsfpG61eKN6ALk4QW4UMdNmD56rSgFLc="; }; build-system = [ @@ -37,13 +39,15 @@ buildPythonPackage rec { disabledTestPaths = [ # Circular dependency with virtualenv "tests/test_virtualenv.py" + # Very prone to timeouts on busy machines + "tests/test_filelock.py" ]; meta = { changelog = "https://github.com/tox-dev/py-filelock/releases/tag/${version}"; description = "Platform independent file lock for Python"; homepage = "https://github.com/benediktschmitt/py-filelock"; - license = lib.licenses.unlicense; + license = lib.licenses.mit; maintainers = [ ]; }; } diff --git a/pkgs/development/python-modules/fints/4.nix b/pkgs/development/python-modules/fints/4.nix deleted file mode 100644 index 089e022842ebb..0000000000000 --- a/pkgs/development/python-modules/fints/4.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ - lib, - buildPythonPackage, - setuptools, - fetchFromGitHub, - bleach, - mt-940, - pretix-banktool, - requests, - sepaxml, - pytestCheckHook, - pytest-mock, -}: - -buildPythonPackage rec { - version = "4.2.4"; - pname = "fints"; - pyproject = true; - - src = fetchFromGitHub { - owner = "raphaelm"; - repo = "python-fints"; - tag = "v${version}"; - hash = "sha256-la5vpWBoZ7hZsAyjjCqHpFfOykDVosI/S9amox1dmzY="; - }; - - pythonRemoveDeps = [ "enum-tools" ]; - - build-system = [ setuptools ]; - - dependencies = [ - bleach - mt-940 - requests - sepaxml - ]; - - __darwinAllowLocalNetworking = true; - - pythonImportsCheck = [ "fints" ]; - - nativeCheckInputs = [ - pytestCheckHook - pytest-mock - ]; - - meta = { - homepage = "https://github.com/raphaelm/python-fints/"; - description = "Pure-python FinTS (formerly known as HBCI) implementation"; - license = lib.licenses.lgpl3Only; - inherit (pretix-banktool.meta) maintainers; - }; -} diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix index ff1fd5cd52a33..af03514a81bc9 100644 --- a/pkgs/development/python-modules/fints/default.nix +++ b/pkgs/development/python-modules/fints/default.nix @@ -24,6 +24,8 @@ buildPythonPackage rec { hash = "sha256-ll2+PtcGQiY5nbQTKVetd2ecDBVSXgzWP4Vzzri1Trs="; }; + pythonRelaxDeps = [ "lxml" ]; + pythonRemoveDeps = [ "enum-tools" ]; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/flask-cors/default.nix b/pkgs/development/python-modules/flask-cors/default.nix index 0f85100730347..16f9c4d18f500 100644 --- a/pkgs/development/python-modules/flask-cors/default.nix +++ b/pkgs/development/python-modules/flask-cors/default.nix @@ -6,26 +6,28 @@ werkzeug, pytestCheckHook, setuptools, + setuptools-scm, # for passthru.tests aiobotocore, moto, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "flask-cors"; - version = "6.0.2"; + version = "6.0.5"; pyproject = true; src = fetchFromGitHub { owner = "corydolphin"; repo = "flask-cors"; - tag = version; - hash = "sha256-9WlD5Qd0WiBDrVHf5nT1qAK2gtYavlPnY7qFkiAgxws="; + tag = finalAttrs.version; + hash = "sha256-fngKJm7/7BMcWPPFncTCWw2sL1UJ0t4ICpXr95yNpbg="; }; build-system = [ setuptools + setuptools-scm ]; dependencies = [ @@ -33,6 +35,8 @@ buildPythonPackage rec { werkzeug ]; + pythonImportsCheck = [ "flask_cors" ]; + nativeCheckInputs = [ pytestCheckHook ]; @@ -44,8 +48,8 @@ buildPythonPackage rec { meta = { description = "Flask extension adding a decorator for CORS support"; homepage = "https://github.com/corydolphin/flask-cors"; - changelog = "https://github.com/corydolphin/flask-cors/releases/tag/${src.tag}"; + changelog = "https://github.com/corydolphin/flask-cors/releases/tag/${finalAttrs.src.tag}"; license = with lib.licenses; [ mit ]; maintainers = with lib.maintainers; [ nickcao ]; }; -} +}) diff --git a/pkgs/development/python-modules/flatdict/default.nix b/pkgs/development/python-modules/flatdict/default.nix index 93d495a6de6c9..7cf444e088937 100644 --- a/pkgs/development/python-modules/flatdict/default.nix +++ b/pkgs/development/python-modules/flatdict/default.nix @@ -2,20 +2,27 @@ lib, buildPythonPackage, fetchFromGitHub, + hatchling, + hatch-vcs, }: buildPythonPackage rec { pname = "flatdict"; - version = "4.0.1"; - format = "setuptools"; + version = "4.1.0"; + pyproject = true; src = fetchFromGitHub { owner = "gmr"; repo = "flatdict"; - rev = version; - hash = "sha256-CWsTiCNdIKSQtjpQC07lhZoU1hXT/MGpXdj649x2GlU="; + tag = version; + hash = "sha256-sLeW92F473H90+EMHaIWPt9ETqSeL/DoLmlMAg9Thj4="; }; + build-system = [ + hatchling + hatch-vcs + ]; + pythonImportsCheck = [ "flatdict" ]; meta = { diff --git a/pkgs/development/python-modules/flexcache/default.nix b/pkgs/development/python-modules/flexcache/default.nix index 5e1389986fb7d..76276a0bf5673 100644 --- a/pkgs/development/python-modules/flexcache/default.nix +++ b/pkgs/development/python-modules/flexcache/default.nix @@ -13,7 +13,6 @@ # checks pytestCheckHook, - pytest-mpl, }: buildPythonPackage rec { @@ -38,7 +37,6 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook - pytest-mpl ]; pythonImportsCheck = [ "flexcache" ]; diff --git a/pkgs/development/python-modules/flexparser/default.nix b/pkgs/development/python-modules/flexparser/default.nix index 51d7e223c9ba8..1e5be670e34bb 100644 --- a/pkgs/development/python-modules/flexparser/default.nix +++ b/pkgs/development/python-modules/flexparser/default.nix @@ -12,7 +12,6 @@ # checks pytestCheckHook, - pytest-mpl, }: buildPythonPackage rec { @@ -36,7 +35,6 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook - pytest-mpl ]; pythonImportsCheck = [ "flexparser" ]; diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix index bc6b8c1e797a7..43bf78c3dd3b1 100644 --- a/pkgs/development/python-modules/fontparts/default.nix +++ b/pkgs/development/python-modules/fontparts/default.nix @@ -31,7 +31,10 @@ buildPythonPackage (finalAttrs: { postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail ', "vcs-versioning"' "" + --replace-fail ', "vcs-versioning"' "" \ + --replace-fail "setuptools_scm[toml]>=3.4,<10" "setuptools_scm[toml]" + substituteInPlace setup.cfg \ + --replace-fail "setuptools_scm==9.2.2" "setuptools_scm" ''; build-system = [ diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix index f93a7bd2152b8..d854d9126cbc2 100644 --- a/pkgs/development/python-modules/fonttools/default.nix +++ b/pkgs/development/python-modules/fonttools/default.nix @@ -21,19 +21,20 @@ xattr, skia-pathops, uharfbuzz, + addBinToPathHook, pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "fonttools"; - version = "4.61.1"; + version = "4.63.0"; pyproject = true; src = fetchFromGitHub { owner = "fonttools"; repo = "fonttools"; - tag = version; - hash = "sha256-762bqAhOqqnuNSH8yFLTBnzYuigs716nt+uC1UwUqT4="; + tag = finalAttrs.version; + hash = "sha256-XTE18TKpIa4MpbJ5tcHwCyLk3Q6CV/ElzMtddG86HJA="; }; build-system = [ @@ -50,7 +51,7 @@ buildPythonPackage rec { (if isPyPy then brotlicffi else brotli) zopfli ]; - unicode = lib.optional (pythonOlder "3.13") unicodedata2; + unicode = lib.optional (pythonOlder "3.15") unicodedata2; graphite = [ lz4 ]; interpolatable = [ pycairo @@ -59,13 +60,14 @@ buildPythonPackage rec { plot = [ matplotlib ]; symfont = [ sympy ]; type1 = lib.optional stdenv.hostPlatform.isDarwin xattr; - pathops = lib.optional (lib.meta.availableOn stdenv.hostPlatform skia-pathops) skia-pathops; + pathops = [ skia-pathops ]; repacker = [ uharfbuzz ]; }; in extras // { all = lib.concatLists (lib.attrValues extras); }; nativeCheckInputs = [ + addBinToPathHook pytestCheckHook ] ++ lib.concatLists ( @@ -75,20 +77,17 @@ buildPythonPackage rec { # "interpolatable" is not included because it only contains 2 tests at the time of writing but adds 270 extra dependencies "ufo" ] - ++ lib.optionals (!skia-pathops.meta.broken) [ - "pathops" # broken - ] + ++ + lib.optionals (lib.meta.availableOn stdenv.hostPlatform skia-pathops && !skia-pathops.meta.broken) + [ + "pathops" # broken + ] ++ [ "repacker" ] - ) optional-dependencies + ) finalAttrs.passthru.optional-dependencies ); pythonImportsCheck = [ "fontTools" ]; - preCheck = '' - # tests want to execute the "fonttools" executable from $PATH - export PATH="$out/bin:$PATH" - ''; - # Timestamp tests have timing issues probably related # to our file timestamp normalization disabledTests = [ @@ -100,8 +99,8 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/fonttools/fonttools"; description = "Library to manipulate font files from Python"; - changelog = "https://github.com/fonttools/fonttools/blob/${src.tag}/NEWS.rst"; + changelog = "https://github.com/fonttools/fonttools/blob/${finalAttrs.src.tag}/NEWS.rst"; license = lib.licenses.mit; maintainers = [ lib.maintainers.sternenseemann ]; }; -} +}) diff --git a/pkgs/development/python-modules/forecast-solar/default.nix b/pkgs/development/python-modules/forecast-solar/default.nix index f8edb6cee3cdb..6169617282419 100644 --- a/pkgs/development/python-modules/forecast-solar/default.nix +++ b/pkgs/development/python-modules/forecast-solar/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "forecast-solar"; - version = "5.0.0"; + version = "5.0.1"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "forecast_solar"; tag = "v${version}"; - hash = "sha256-gFa1jq4Dq6fWqL/3eY+OGcJU+T+R6TZs8CX1ynnW+pU="; + hash = "sha256-fvmi5kwVAScVlGpxutjH8nl0lJx/VnQEVoj9a1UY7r4="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix index 44715f97f82d0..c579ac186a6ed 100644 --- a/pkgs/development/python-modules/fs/default.nix +++ b/pkgs/development/python-modules/fs/default.nix @@ -12,7 +12,7 @@ pytestCheckHook, pythonAtLeast, pytz, - setuptools, + setuptools_80, six, }: @@ -35,10 +35,10 @@ buildPythonPackage rec { --replace ThreadedTestFTPd FtpdThreadWrapper ''; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ - setuptools + setuptools_80 six appdirs pytz diff --git a/pkgs/development/python-modules/gast/default.nix b/pkgs/development/python-modules/gast/default.nix index 35f3906c15763..8151bbace629a 100644 --- a/pkgs/development/python-modules/gast/default.nix +++ b/pkgs/development/python-modules/gast/default.nix @@ -1,6 +1,5 @@ { lib, - astunparse, buildPythonPackage, fetchFromGitHub, pytestCheckHook, @@ -22,7 +21,6 @@ buildPythonPackage rec { build-system = [ setuptools ]; nativeCheckInputs = [ - astunparse pytestCheckHook ]; diff --git a/pkgs/development/python-modules/genshi/default.nix b/pkgs/development/python-modules/genshi/default.nix index 1dee12d5bb702..7531c484cc152 100644 --- a/pkgs/development/python-modules/genshi/default.nix +++ b/pkgs/development/python-modules/genshi/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchPypi, - setuptools, + setuptools_80, pytestCheckHook, }: @@ -16,7 +16,7 @@ buildPythonPackage rec { hash = "sha256-hbDbETYlMU8PRPP+bvDrJWTWw03S7lZ3tJXRUUK7SXM="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/geometric/default.nix b/pkgs/development/python-modules/geometric/default.nix index ec1553e164aba..08301b669d5c1 100644 --- a/pkgs/development/python-modules/geometric/default.nix +++ b/pkgs/development/python-modules/geometric/default.nix @@ -28,10 +28,6 @@ buildPythonPackage rec { six ]; - preCheck = '' - export OMP_NUM_THREADS=2 - ''; - nativeCheckInputs = [ pytestCheckHook ]; meta = { diff --git a/pkgs/development/python-modules/gftools/default.nix b/pkgs/development/python-modules/gftools/default.nix index 8bbc950768332..72bbfd772b871 100644 --- a/pkgs/development/python-modules/gftools/default.nix +++ b/pkgs/development/python-modules/gftools/default.nix @@ -158,7 +158,6 @@ buildPythonPackage rec { requests rich ruamel-yaml - setuptools skia-pathops statmake strictyaml diff --git a/pkgs/development/python-modules/gitterpy/default.nix b/pkgs/development/python-modules/gitterpy/default.nix deleted file mode 100644 index ee35d962d1d85..0000000000000 --- a/pkgs/development/python-modules/gitterpy/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - setuptools, - requests, -}: - -buildPythonPackage rec { - pname = "gitterpy"; - version = "0.1.7"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-nmZ6sVjrHRLfvXMr/fYiN+a4Wly87YKwAR+heP/sNkE="; - }; - - build-system = [ setuptools ]; - - dependencies = [ requests ]; - - # Package has no tests - doCheck = false; - - pythonImportsCheck = [ "gitterpy" ]; - - meta = { - description = "Python interface for the Gitter API"; - homepage = "https://github.com/MichaelYusko/GitterPy"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.jamiemagee ]; - }; -} diff --git a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix index 6ecf3a9201498..e10f2d5e3850b 100644 --- a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix +++ b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix @@ -14,13 +14,13 @@ buildPythonPackage rec { pname = "google-cloud-artifact-registry"; - version = "1.19.0"; + version = "1.22.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_artifact_registry"; inherit version; - hash = "sha256-QVAy29BzPd9EO4RDKo3kiZqktupkGWDJjd8v6x10mpE="; + hash = "sha256-DoFzqXrmld/PAsgyd6D9V04aOb5AnaY0W5Rb6+V3rZQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-asset/default.nix b/pkgs/development/python-modules/google-cloud-asset/default.nix index f1be9e6ea0b49..9e8c9995c8fb6 100644 --- a/pkgs/development/python-modules/google-cloud-asset/default.nix +++ b/pkgs/development/python-modules/google-cloud-asset/default.nix @@ -20,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-asset"; - version = "4.2.0"; + version = "4.4.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; tag = "google-cloud-asset-v${finalAttrs.version}"; - sha256 = "sha256-dVgcnnInqjUjySL7wjxGzI33t1YZJ8e9mSsmjAJ+fBI="; + sha256 = "sha256-M/7uDWWz4YCfxa4gyM9BaAo10iyTMvtR2MhNpdFYnis="; }; sourceRoot = "${finalAttrs.src.name}/packages/google-cloud-asset"; diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix index 9b9bf37da1f86..7d4b5748ba923 100644 --- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix +++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix @@ -37,13 +37,13 @@ buildPythonPackage rec { pname = "google-cloud-bigquery"; - version = "3.40.0"; + version = "3.41.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_bigquery"; inherit version; - hash = "sha256-s8yxHK8AKfFbKVaVGPZnVT/gj28UWblZAgyD+72PLmg="; + hash = "sha256-IhfkiLR+1XY2DJsswH1Z2IOlS4MWfA7zf5FcJrAaBv4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix index f5b745956ce19..599dd3073cd28 100644 --- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix +++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix @@ -16,14 +16,14 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-datacatalog"; - version = "3.29.0"; + version = "3.31.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; tag = "google-cloud-datacatalog-v${finalAttrs.version}"; - hash = "sha256-dVgcnnInqjUjySL7wjxGzI33t1YZJ8e9mSsmjAJ+fBI="; + hash = "sha256-M/7uDWWz4YCfxa4gyM9BaAo10iyTMvtR2MhNpdFYnis="; }; sourceRoot = "${finalAttrs.src.name}/packages/google-cloud-datacatalog"; diff --git a/pkgs/development/python-modules/google-cloud-firestore/default.nix b/pkgs/development/python-modules/google-cloud-firestore/default.nix index 072ba065326fe..86f06063126e6 100644 --- a/pkgs/development/python-modules/google-cloud-firestore/default.nix +++ b/pkgs/development/python-modules/google-cloud-firestore/default.nix @@ -21,14 +21,14 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-firestore"; - version = "2.27.0"; + version = "2.28.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; tag = "google-cloud-firestore-v${finalAttrs.version}"; - hash = "sha256-hdUT4SRPOL+ArpU4RcsNCUCV3UCW3vQgwtHuxJiyZeU="; + hash = "sha256-dct5yBerIMNQgVIvOWdO9yTxSrH1JDUen6I7CYHftC0="; }; sourceRoot = "${finalAttrs.src.name}/packages/google-cloud-firestore"; @@ -71,6 +71,11 @@ buildPythonPackage (finalAttrs: { # Test requires credentials "tests/system/test_pipeline_acceptance.py" ] + ++ lib.optionals (pythonOlder "3.14") [ + # RuntimeError: There is no current event loop in thread 'MainThread'. + "tests/unit/v1/test_base_client.py::test_baseclient__emulator_channel" + "tests/unit/v1/test_bundle.py::TestAsyncBundle::test_async_query" + ] ++ lib.optionals (pythonAtLeast "3.14") [ # RuntimeError: There is no current event loop in thread 'MainThread' # due to eliding aiounittest diff --git a/pkgs/development/python-modules/google-cloud-iam/default.nix b/pkgs/development/python-modules/google-cloud-iam/default.nix index 1f6f485223599..b1108657a84ff 100644 --- a/pkgs/development/python-modules/google-cloud-iam/default.nix +++ b/pkgs/development/python-modules/google-cloud-iam/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "google-cloud-iam"; - version = "2.21.0"; + version = "2.24.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; tag = "google-cloud-iam-v${version}"; - hash = "sha256-dVgcnnInqjUjySL7wjxGzI33t1YZJ8e9mSsmjAJ+fBI="; + hash = "sha256-ywRS1BfK6s+gcU8QRem0cSnfZq4BUQ2ABNcgnOa01LI="; }; sourceRoot = "${src.name}/packages/google-cloud-iam"; diff --git a/pkgs/development/python-modules/google-cloud-kms/default.nix b/pkgs/development/python-modules/google-cloud-kms/default.nix index 46d1df626da1e..7afa896fad598 100644 --- a/pkgs/development/python-modules/google-cloud-kms/default.nix +++ b/pkgs/development/python-modules/google-cloud-kms/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "google-cloud-kms"; - version = "3.9.0"; + version = "3.14.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; tag = "google-cloud-kms-v${version}"; - hash = "sha256-JR3fcwCuMZkHyJHnMt4EGvTZZ7MLgQrgxCaTlJZ1zYE="; + hash = "sha256-ywRS1BfK6s+gcU8QRem0cSnfZq4BUQ2ABNcgnOa01LI="; }; sourceRoot = "${src.name}/packages/google-cloud-kms"; diff --git a/pkgs/development/python-modules/google-cloud-logging/default.nix b/pkgs/development/python-modules/google-cloud-logging/default.nix index b422a3dceab8f..f4de6a36e21a1 100644 --- a/pkgs/development/python-modules/google-cloud-logging/default.nix +++ b/pkgs/development/python-modules/google-cloud-logging/default.nix @@ -23,13 +23,13 @@ buildPythonPackage rec { pname = "google-cloud-logging"; - version = "3.13.0"; + version = "3.16.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_logging"; inherit version; - hash = "sha256-Oq4Fc7GhpPWezfRXH054gbWCO9Ep/kaVYcHEmn+opME="; + hash = "sha256-CKMHa48PckIZ1vc7KiQu9p1R6LziJhM66+QaJfI/VAA="; }; build-system = [ setuptools ]; @@ -77,8 +77,6 @@ buildPythonPackage rec { # Tests require credentials "tests/system/test_system.py" "tests/unit/test__gapic.py" - # Exclude performance tests - "tests/performance/test_performance.py" ]; pythonImportsCheck = [ @@ -88,8 +86,8 @@ buildPythonPackage rec { meta = { description = "Stackdriver Logging API client library"; - homepage = "https://github.com/googleapis/python-logging"; - changelog = "https://github.com/googleapis/python-logging/blob/v${version}/CHANGELOG.md"; + homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-logging"; + changelog = "https://github.com/googleapis/google-cloud-python/blob/${version}/packages/google-cloud-logging/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = [ ]; }; diff --git a/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/pkgs/development/python-modules/google-cloud-monitoring/default.nix index eaa6fb87b374d..ceeb26b8db3f9 100644 --- a/pkgs/development/python-modules/google-cloud-monitoring/default.nix +++ b/pkgs/development/python-modules/google-cloud-monitoring/default.nix @@ -15,13 +15,13 @@ buildPythonPackage (finalAttrs: { pname = "google-cloud-monitoring"; - version = "2.30.0"; + version = "2.31.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_monitoring"; inherit (finalAttrs) version; - hash = "sha256-qVMKqaokbEkIEN+nvjLWfoNA0ZEIrMmcvALR7UlPunY="; + hash = "sha256-tMnTUoyGQ9TrS51ojLs8WRS8X2mzFP98XhtHvcBzqa4="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix index a2a635cd758a3..1ce8e8f571db0 100644 --- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix +++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix @@ -19,13 +19,13 @@ buildPythonPackage rec { pname = "google-cloud-pubsub"; - version = "2.34.0"; + version = "2.39.0"; pyproject = true; src = fetchPypi { pname = "google_cloud_pubsub"; inherit version; - hash = "sha256-JfmMO6FqaYcfnruteuzj/mPIr+e6OSqtIJS+cw1UWXY="; + hash = "sha256-7tZeJfV/lb8+AtltfuFxaIsjkiRx+fIbWpHtkOEoLA8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix index 55e252a4f12c0..10ca5fc8ec98f 100644 --- a/pkgs/development/python-modules/google-cloud-storage/default.nix +++ b/pkgs/development/python-modules/google-cloud-storage/default.nix @@ -25,16 +25,18 @@ buildPythonPackage rec { pname = "google-cloud-storage"; - version = "3.10.1"; + version = "3.12.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; - repo = "python-storage"; - tag = "v${version}"; - hash = "sha256-pKy1A9RNyRlAn4bXclcdvbfW4kZOP9Z4HqKWwcrDePo="; + repo = "google-cloud-python"; + tag = "google-cloud-storage-v${version}"; + hash = "sha256-4rmrRvYW9FOpvYY4a+vbDzQRcLXfFHGSCnv7yL6S1FM="; }; + sourceRoot = "${src.name}/packages/google-cloud-storage"; + build-system = [ setuptools ]; dependencies = [ @@ -94,6 +96,16 @@ buildPythonPackage rec { "test_update_user_agent_when_default_clientinfo_provided" "test_update_user_agent_when_none_clientinfo_provided" "test_update_user_agent_with_existing_user_agent" + "test_403_permission_cache_fallback" + "test_404_on_blob_bucket_deleted" + "test_404_on_blob_but_bucket_exists" + "test_cache_eviction_on_bucket_404" + "test_cache_eviction_on_bucket_delete" + "test_cache_stampede_protection" + "test_disable_bucket_md_env_flag" + "test_lru_bounded_capacity_eviction" + "test_sequential_cache_priming" + "test_sequential_cache_priming_multi_region" ]; disabledTestPaths = [ @@ -117,8 +129,8 @@ buildPythonPackage rec { meta = { description = "Google Cloud Storage API client library"; - homepage = "https://github.com/googleapis/python-storage"; - changelog = "https://github.com/googleapis/python-storage/blob/${src.tag}/CHANGELOG.md"; + homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-storage"; + changelog = "https://github.com/googleapis/google-cloud-python/blob/${src.tag}/packages/google-cloud-storage/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ sarahec ]; }; diff --git a/pkgs/development/python-modules/greenwavereality/default.nix b/pkgs/development/python-modules/greenwavereality/default.nix deleted file mode 100644 index b49b9cd01a943..0000000000000 --- a/pkgs/development/python-modules/greenwavereality/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - setuptools, - requests, - xmltodict, - urllib3, -}: - -buildPythonPackage rec { - pname = "greenwavereality"; - version = "0.5.1"; - pyproject = true; - - src = fetchPypi { - inherit pname version; - hash = "sha256-bNTO9qHoOe3A7TYiUwLBVq4eWyGoIfCoguizM1hKk/Y="; - }; - - build-system = [ setuptools ]; - - dependencies = [ - requests - xmltodict - urllib3 - ]; - - # Module has no tests - doCheck = false; - - pythonImportsCheck = [ "greenwavereality" ]; - - meta = { - description = "Control of Greenwave Reality Lights"; - homepage = "https://github.com/dfiel/greenwavereality"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.jamiemagee ]; - }; -} diff --git a/pkgs/development/python-modules/grpc-google-iam-v1/default.nix b/pkgs/development/python-modules/grpc-google-iam-v1/default.nix index 871ed0c66eada..51a51e67e3a7b 100644 --- a/pkgs/development/python-modules/grpc-google-iam-v1/default.nix +++ b/pkgs/development/python-modules/grpc-google-iam-v1/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + gitUpdater, googleapis-common-protos, grpcio, pytestCheckHook, @@ -10,14 +11,14 @@ buildPythonPackage rec { pname = "grpc-google-iam-v1"; - version = "3.31.3"; + version = "0.14.4"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "google-cloud-python"; - tag = "google-cloud-build-v${version}"; - hash = "sha256-qQ+8X6I8lt4OTgbvODsbdab2dYUk0wxWsbaVT2T651U="; + tag = "grpc-google-iam-v1-v${version}"; + hash = "sha256-i2t8qtF2czaP9vgGOUN9AjQ3XhLkk8g05FtXUdk/Vng="; }; sourceRoot = "${src.name}/packages/grpc-google-iam-v1"; @@ -42,6 +43,11 @@ buildPythonPackage rec { "-Wignore::DeprecationWarning" ]; + passthru = { + skipBulkUpdate = true; # chooses tag for a different project + updateScript = gitUpdater { rev-prefix = "grpc-google-iam-v1-v"; }; + }; + meta = { description = "GRPC library for the google-iam-v1 service"; homepage = "https://github.com/googleapis/google-cloud-python/tree/main/packages/grpc-google-iam-v1"; diff --git a/pkgs/development/python-modules/grpcio-channelz/default.nix b/pkgs/development/python-modules/grpcio-channelz/default.nix index 028c63669ca3f..634811c727e9d 100644 --- a/pkgs/development/python-modules/grpcio-channelz/default.nix +++ b/pkgs/development/python-modules/grpcio-channelz/default.nix @@ -12,13 +12,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-channelz"; - version = "1.80.0"; + version = "1.81.0"; pyproject = true; src = fetchPypi { pname = "grpcio_channelz"; inherit version; - hash = "sha256-fs6As480ti6Q5uHFqghYXwwPE8GpyI6vdNioZxw6n6E="; + hash = "sha256-V6Gr5QURNJv9iafEJtHbaRmOLJzUcbr2wNVgbDTbmt8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix index 2db14472125a1..3d65fef2e4644 100644 --- a/pkgs/development/python-modules/grpcio-health-checking/default.nix +++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix @@ -11,13 +11,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-health-checking"; - version = "1.80.0"; + version = "1.81.0"; format = "setuptools"; src = fetchPypi { pname = "grpcio_health_checking"; inherit version; - hash = "sha256-LMXwi8i4FrhlWrb1nHFFAGO6IHZtMeIaST6RLjVgyLE="; + hash = "sha256-CfMWdPGs3PIUvE5kDru77xZbB3of1kg0eVGW1Sv9zjk="; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/grpcio-reflection/default.nix b/pkgs/development/python-modules/grpcio-reflection/default.nix index 914cffe156181..87e145bb3513a 100644 --- a/pkgs/development/python-modules/grpcio-reflection/default.nix +++ b/pkgs/development/python-modules/grpcio-reflection/default.nix @@ -12,13 +12,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-reflection"; - version = "1.80.0"; + version = "1.81.0"; pyproject = true; src = fetchPypi { pname = "grpcio_reflection"; inherit version; - hash = "sha256-6cdqq8QyQnmUW3C8dqPUG8T5OWv/zxz8EBGlccLFYiE="; + hash = "sha256-UZHbeqbKsbaYGwh5+kT9zdQ7pkTwMBxAuXb4E+tO/wY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix index a4ebf1aaf5a22..03c03473d5ad3 100644 --- a/pkgs/development/python-modules/grpcio-status/default.nix +++ b/pkgs/development/python-modules/grpcio-status/default.nix @@ -12,13 +12,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-status"; - version = "1.80.0"; + version = "1.81.0"; format = "setuptools"; src = fetchPypi { pname = "grpcio_status"; inherit version; - hash = "sha256-33OAKkyJo+qIqir/lx6Ib8zOFivC5lEUCLPWehRDgc0="; + hash = "sha256-tv6XiM/dHw9jwFKKHgv9tB6P8Fg+kg0tjoiIWYwBu2k="; }; postPatch = '' diff --git a/pkgs/development/python-modules/grpcio-testing/default.nix b/pkgs/development/python-modules/grpcio-testing/default.nix index 812e24eaf438e..b3f68350d32fd 100644 --- a/pkgs/development/python-modules/grpcio-testing/default.nix +++ b/pkgs/development/python-modules/grpcio-testing/default.nix @@ -12,13 +12,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-testing"; - version = "1.80.0"; + version = "1.81.0"; pyproject = true; src = fetchPypi { pname = "grpcio_testing"; inherit version; - hash = "sha256-+1rVfED/36l3MEPfo46MN3Oa+ONHHxZwoh54BRzRmv0="; + hash = "sha256-MjcL3/wM0Jq63pKP2ID5Gb8HCv5dASot4UEkJ7LcGSE="; }; postPatch = '' diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix index d079a2447a3f5..bf74b27fcea26 100644 --- a/pkgs/development/python-modules/grpcio-tools/default.nix +++ b/pkgs/development/python-modules/grpcio-tools/default.nix @@ -13,13 +13,13 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio-tools"; - version = "1.80.0"; + version = "1.81.0"; pyproject = true; src = fetchPypi { pname = "grpcio_tools"; inherit version; - hash = "sha256-JgUrGcbODc9S0QJElq6j4r36hkFZ8G3HuXsi0EGpSyY="; + hash = "sha256-BzPXc+yoy0YfTyobecZMEj25ZhvkGwgYS4FJeyuZHMs="; }; postPatch = '' diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix index 880782e6c683f..7b786ec380ba8 100644 --- a/pkgs/development/python-modules/grpcio/default.nix +++ b/pkgs/development/python-modules/grpcio/default.nix @@ -18,12 +18,12 @@ # nixpkgs-update: no auto update buildPythonPackage rec { pname = "grpcio"; - version = "1.80.0"; + version = "1.81.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-KayhXt0GiMIroB18wBywANcrIDP0o8cqgaGbVv0UMlc="; + hash = "sha256-pazX79Ox/ptOsLyqoVB+7WigrQZ4tlTD97Rk35up3KU="; }; postPatch = '' diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix index 797f0a320a9d3..45c25c2550a69 100644 --- a/pkgs/development/python-modules/gst-python/default.nix +++ b/pkgs/development/python-modules/gst-python/default.nix @@ -21,7 +21,7 @@ buildPythonPackage rec { pname = "gst-python"; - version = "1.26.11"; + version = "1.28.4"; pyproject = false; @@ -32,14 +32,13 @@ buildPythonPackage rec { src = fetchurl { url = "https://gstreamer.freedesktop.org/src/gst-python/gst-python-${version}.tar.xz"; - hash = "sha256-ETFrp2m1bSbYsUZMcZipkkyurkgTT321kXH68ac9xDY="; + hash = "sha256-xOs4JyC0RD+4AaU0GN/wvUzXR4cW1c7Uk1BKZ1tNCf0="; }; - # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4322 - postPatch = '' - substituteInPlace testsuite/meson.build \ - --replace-fail "['gstinit', 'test_gst_init.py']," "" - ''; + patches = [ + # https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9918#note_3530752 + ./fix-test-plugin-imports.patch + ]; # Python 2.x is not supported. disabled = !isPy3k; @@ -96,13 +95,13 @@ buildPythonPackage rec { ''; passthru = { - updateScript = directoryListingUpdater { }; + updateScript = directoryListingUpdater { odd-unstable = true; }; }; meta = { homepage = "https://gstreamer.freedesktop.org"; description = "Python bindings for GStreamer"; license = lib.licenses.lgpl2Plus; - maintainers = [ ]; + maintainers = with lib.maintainers; [ tmarkus ]; }; } diff --git a/pkgs/development/python-modules/gst-python/fix-test-plugin-imports.patch b/pkgs/development/python-modules/gst-python/fix-test-plugin-imports.patch new file mode 100644 index 0000000000000..a08142a85a033 --- /dev/null +++ b/pkgs/development/python-modules/gst-python/fix-test-plugin-imports.patch @@ -0,0 +1,22 @@ +diff --git a/subprojects/gst-python/testsuite/test_plugin.py b/subprojects/gst-python/testsuite/test_plugin.py +index 3ab299d54c..4ed1e85c82 100644 +--- a/testsuite/test_plugin.py ++++ b/testsuite/test_plugin.py +@@ -18,14 +18,14 @@ + # License along with this library; if not, write to the Free Software + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +-from gi.repository import Gst +-import gi +-from common import TestCase, unittest + import overrides_hack + overrides_hack + ++from common import TestCase, unittest + ++import gi + gi.require_version("Gst", "1.0") ++from gi.repository import Gst + + + class TestPlugin(TestCase): diff --git a/pkgs/development/python-modules/habluetooth/default.nix b/pkgs/development/python-modules/habluetooth/default.nix index 8ede59b6de0d4..1bf1216602014 100644 --- a/pkgs/development/python-modules/habluetooth/default.nix +++ b/pkgs/development/python-modules/habluetooth/default.nix @@ -20,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "habluetooth"; - version = "6.8.1"; + version = "6.26.5"; pyproject = true; src = fetchFromGitHub { owner = "Bluetooth-Devices"; repo = "habluetooth"; tag = "v${finalAttrs.version}"; - hash = "sha256-a6qYBCN4nlJ0KRqGSbE6D5YySrvhi2kqAArMKa5A6sM="; + hash = "sha256-IM3M4fWTdD4wT3UsNiLZq7QX3p9pf+lR3x84vuOICMM="; }; build-system = [ diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix index 82d3b959c4a35..c65804a5f894e 100644 --- a/pkgs/development/python-modules/hass-nabucasa/default.nix +++ b/pkgs/development/python-modules/hass-nabucasa/default.nix @@ -50,6 +50,10 @@ buildPythonPackage (finalAttrs: { build-system = [ setuptools ]; + pythonRelaxDeps = [ + "acme" + ]; + dependencies = [ acme aiohttp diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix index 0a33e98bb4fec..9fcc49b409eff 100644 --- a/pkgs/development/python-modules/hassil/default.nix +++ b/pkgs/development/python-modules/hassil/default.nix @@ -16,7 +16,7 @@ let pname = "hassil"; - version = "3.7.0"; + version = "3.8.0"; in buildPythonPackage rec { inherit pname version; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "OHF-Voice"; repo = "hassil"; tag = "v${version}"; - hash = "sha256-C3nx8w0y4RsHq9txwdSfgS9BMcY4TyZiBOq4QIq5w+0="; + hash = "sha256-b+ykT6P9yG8jZZN92K76uBaKTJpV6lkcqP3AAYbj3dU="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/hatchling/default.nix b/pkgs/development/python-modules/hatchling/default.nix index 569de133621dc..e9c0556a05a53 100644 --- a/pkgs/development/python-modules/hatchling/default.nix +++ b/pkgs/development/python-modules/hatchling/default.nix @@ -17,14 +17,14 @@ virtualenv, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "hatchling"; - version = "1.29.0"; + version = "1.30.1"; pyproject = true; src = fetchPypi { - inherit pname version; - hash = "sha256-eTwxgW2VLO5AW4NIjOABxxnzJdnNpp8fxM11BSdkDqY="; + inherit (finalAttrs) pname version; + hash = "sha256-7uT9RTV/cuuz16QuXXLPteKe1CbXnog2KIkmxCWNXy4="; }; # listed in backend/pyproject.toml @@ -65,11 +65,11 @@ buildPythonPackage rec { description = "Modern, extensible Python build backend"; mainProgram = "hatchling"; homepage = "https://hatch.pypa.io/latest/"; - changelog = "https://github.com/pypa/hatch/releases/tag/hatchling-v${version}"; + changelog = "https://github.com/pypa/hatch/releases/tag/hatchling-v${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ hexa ofek ]; }; -} +}) diff --git a/pkgs/development/python-modules/hawkmoth/default.nix b/pkgs/development/python-modules/hawkmoth/default.nix index aedd7da24c456..782d88abbf567 100644 --- a/pkgs/development/python-modules/hawkmoth/default.nix +++ b/pkgs/development/python-modules/hawkmoth/default.nix @@ -3,9 +3,9 @@ buildPythonPackage, fetchFromGitHub, hatchling, - libclang, - sphinx, clang, + sphinx, + llvmPackages, pytestCheckHook, strictyaml, }: @@ -25,13 +25,13 @@ buildPythonPackage rec { build-system = [ hatchling ]; dependencies = [ - libclang + clang sphinx ]; propagatedBuildInputs = [ clang ]; nativeCheckInputs = [ - clang + llvmPackages.clang pytestCheckHook strictyaml ]; diff --git a/pkgs/development/python-modules/hole/default.nix b/pkgs/development/python-modules/hole/default.nix index da63168416586..fd3bb35cd59c6 100644 --- a/pkgs/development/python-modules/hole/default.nix +++ b/pkgs/development/python-modules/hole/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "hole"; - version = "0.9.1"; + version = "0.9.2"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-ecosystem"; repo = "python-hole"; tag = finalAttrs.version; - hash = "sha256-rIKb6GeULi2ooNtWD2a23JQxO9HkXiUYy0AroYeVeKU="; + hash = "sha256-j9fwetfxc0HG+Ly+MpRYL3jDHAwtt+Ls3tUcizHuUrg="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/home-assistant-chip-wheels/default.nix b/pkgs/development/python-modules/home-assistant-chip-wheels/default.nix index 8ccc67b828a0c..0ff3cc2c9dab8 100644 --- a/pkgs/development/python-modules/home-assistant-chip-wheels/default.nix +++ b/pkgs/development/python-modules/home-assistant-chip-wheels/default.nix @@ -1,6 +1,7 @@ { aiohttp, alive-progress, + ast-serialize, build, clang-tools, click, @@ -196,6 +197,7 @@ stdenv.mkDerivation rec { dependencies = [ aiohttp alive-progress + ast-serialize colorama coloredlogs click diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix index dc252d84b8a19..63ccf4c8f2a55 100644 --- a/pkgs/development/python-modules/html5lib/default.nix +++ b/pkgs/development/python-modules/html5lib/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, six, webencodings, pytest-expect, @@ -29,7 +29,7 @@ buildPythonPackage { ./pytest9-compat.patch ]; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ six diff --git a/pkgs/development/python-modules/httpcore2/default.nix b/pkgs/development/python-modules/httpcore2/default.nix index cfbbf8113342f..eddeeb5178fd5 100644 --- a/pkgs/development/python-modules/httpcore2/default.nix +++ b/pkgs/development/python-modules/httpcore2/default.nix @@ -29,14 +29,14 @@ buildPythonPackage (finalAttrs: { pname = "httpcore2"; - version = "2.3.0"; + version = "2.4.0"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "httpx2"; tag = "v${finalAttrs.version}"; - hash = "sha256-cW6meHx6VBMz5r/lXCKKK7Sq4e2nk+n1A5YTNtR2kB4="; + hash = "sha256-T5As4cdZRHkWszzaDZX8G8Z35TkaBsB/oy92FtOhuBY="; }; postPatch = '' diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix index 2b146d05b658b..a5e66abfcd68a 100644 --- a/pkgs/development/python-modules/httpx/default.nix +++ b/pkgs/development/python-modules/httpx/default.nix @@ -96,6 +96,10 @@ buildPythonPackage rec { "test_sync_proxy_close" # ResourceWarning: Async generator 'httpx._content.ByteStream.__aiter__' was garbage collected before it had been exhausted. Surround its use in 'async with aclosing(...):' to ensure that it gets cleaned up as soon as you're done using it. "test_write_timeout" # trio variant + # chardet v6 recognizes the wrong encoding + "test_client_decode_text_using_autodetect" + "test_client_decode_text_using_explicit_encoding" + "test_response_decode_text_using_autodetect" ]; disabledTestPaths = [ "tests/test_main.py" ]; diff --git a/pkgs/development/python-modules/httpx/setup-hook.sh b/pkgs/development/python-modules/httpx/setup-hook.sh index 7e9ced07b69c5..fe567877ef1a1 100644 --- a/pkgs/development/python-modules/httpx/setup-hook.sh +++ b/pkgs/development/python-modules/httpx/setup-hook.sh @@ -1,5 +1,7 @@ httpxSslCertFileUnset() { + if [ ! -e "${SSL_CERT_FILE-}" ]; then unset SSL_CERT_FILE + fi } postHooks+=(httpxSslCertFileUnset) diff --git a/pkgs/development/python-modules/httpx2/default.nix b/pkgs/development/python-modules/httpx2/default.nix index 9e73b584f2767..f273150467882 100644 --- a/pkgs/development/python-modules/httpx2/default.nix +++ b/pkgs/development/python-modules/httpx2/default.nix @@ -29,7 +29,6 @@ # tests chardet, pytestCheckHook, - pytest-httpbin, pytest-trio, trustme, uvicorn, @@ -40,14 +39,14 @@ buildPythonPackage (finalAttrs: { pname = "httpx2"; - version = "2.3.0"; + version = "2.4.0"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "httpx2"; tag = "v${finalAttrs.version}"; - hash = "sha256-cW6meHx6VBMz5r/lXCKKK7Sq4e2nk+n1A5YTNtR2kB4="; + hash = "sha256-T5As4cdZRHkWszzaDZX8G8Z35TkaBsB/oy92FtOhuBY="; }; postPatch = '' diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix index 70d05e492e23b..61c2d9daedea4 100644 --- a/pkgs/development/python-modules/ibis-framework/default.nix +++ b/pkgs/development/python-modules/ibis-framework/default.nix @@ -148,10 +148,11 @@ buildPythonPackage (finalAttrs: { "-Wignore:fetch_arrow_table:DeprecationWarning" # DeprecationWarning: fetch_record_batch() is deprecated, use to_arrow_reader() instead. "-Wignore:fetch_record_batch:DeprecationWarning" - ] - ++ lib.optionals (pythonAtLeast "3.14") [ # DeprecationWarning: '_UnionGenericAlias' is deprecated and slated for removal in Python 3.17 + # DeprecationWarning: The 'generic' unit for NumPy timedelta is deprecated, and will raise an error in the future. This includes implicit conversion of bare integers (e.g. `+ 1`).Please use a specific unit instead. "-Wignore::DeprecationWarning" + ] + ++ lib.optionals (pythonAtLeast "3.14") [ # Multiple tests with warnings fail without it "-Wignore::pytest.PytestUnraisableExceptionWarning" ]; diff --git a/pkgs/development/python-modules/idna/default.nix b/pkgs/development/python-modules/idna/default.nix index 9d4cbee7e5a19..a8bda9b6f28f2 100644 --- a/pkgs/development/python-modules/idna/default.nix +++ b/pkgs/development/python-modules/idna/default.nix @@ -6,16 +6,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "idna"; - version = "3.13"; + version = "3.18"; pyproject = true; src = fetchFromGitHub { owner = "kjd"; repo = "idna"; - tag = "v${version}"; - hash = "sha256-D72KUEwiFA/LdU/xE3sN+Abc6NpAsIlGSdB07V1nk68="; + tag = "v${finalAttrs.version}"; + hash = "sha256-9nLy/9PNuLSQJsf4Jes0uN695+LGjz2LXlfiZxxvGV4="; }; build-system = [ flit-core ]; @@ -26,9 +26,9 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/kjd/idna/"; - changelog = "https://github.com/kjd/idna/releases/tag/${src.tag}"; + changelog = "https://github.com/kjd/idna/blob/${finalAttrs.src.tag}/HISTORY.md"; description = "Internationalized Domain Names in Applications (IDNA)"; license = lib.licenses.bsd3; maintainers = [ lib.maintainers.dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix index f5451a8e95eee..85dfcc8a70389 100644 --- a/pkgs/development/python-modules/importlib-resources/default.nix +++ b/pkgs/development/python-modules/importlib-resources/default.nix @@ -21,15 +21,19 @@ buildPythonPackage rec { pname = "importlib-resources"; - version = "6.5.2"; + version = "7.1.0"; pyproject = true; src = fetchPypi { pname = "importlib_resources"; inherit version; - hash = "sha256-GF+Hre9bzCiESdmPtPugfOp4vANkVd1ExfxKL+eP7Sw="; + hash = "sha256-ByLUxiEkicUw8qFFo0wKejtHIbyWoV+tpZMOKgt2Bwg="; }; + postPatch = '' + sed -i '/coherent.licensed/d' pyproject.toml + ''; + build-system = [ setuptools setuptools-scm diff --git a/pkgs/development/python-modules/imread/default.nix b/pkgs/development/python-modules/imread/default.nix index a26b89fb2b02f..bc0934f5bd7c1 100644 --- a/pkgs/development/python-modules/imread/default.nix +++ b/pkgs/development/python-modules/imread/default.nix @@ -49,7 +49,6 @@ buildPythonPackage rec { preCheck = '' cd $TMPDIR export HOME=$TMPDIR - export OMP_NUM_THREADS=1 ''; meta = { diff --git a/pkgs/development/python-modules/influxdb/default.nix b/pkgs/development/python-modules/influxdb/default.nix index d6785f77f8a93..71c865ed28e0e 100644 --- a/pkgs/development/python-modules/influxdb/default.nix +++ b/pkgs/development/python-modules/influxdb/default.nix @@ -79,6 +79,21 @@ buildPythonPackage rec { "test_write_points_from_dataframe_with_tag_escaped" # AssertionError: 2 != 1 : .WarnBulkSizeNoEffect'> call should have generated one warning. "testWarnBulkSizeNoEffect" + # Timestamp precision 10^9 vs 10^12 + "test_dataframe_write_points_with_whitespace_in_column_names" + "test_dataframe_write_points_with_whitespace_measurement" + "test_write_points_from_dataframe" + "test_write_points_from_dataframe_with_leading_none_column" + "test_write_points_from_dataframe_with_line_of_none" + "test_write_points_from_dataframe_with_nan_line" + "test_write_points_from_dataframe_with_none" + "test_write_points_from_dataframe_with_numeric_column_names" + "test_write_points_from_dataframe_with_period_index" + "test_write_points_from_dataframe_with_tag_cols_and_defaults" + "test_write_points_from_dataframe_with_tag_cols_and_global_tags" + "test_write_points_from_dataframe_with_tag_columns" + "test_write_points_from_dataframe_with_tags_and_nan_line" + "test_write_points_from_dataframe_with_time_precision" ]; pythonImportsCheck = [ "influxdb" ]; diff --git a/pkgs/development/python-modules/infrared-protocols/default.nix b/pkgs/development/python-modules/infrared-protocols/default.nix index e5a79ea3d0ffc..839e131595299 100644 --- a/pkgs/development/python-modules/infrared-protocols/default.nix +++ b/pkgs/development/python-modules/infrared-protocols/default.nix @@ -8,14 +8,14 @@ buildPythonPackage (finalAttrs: { pname = "infrared-protocols"; - version = "5.8.1"; + version = "6.3.1"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "infrared-protocols"; tag = finalAttrs.version; - hash = "sha256-CSVnH+U/dqp5vjA4eWEJEFT0LZgaAG3OC1rcgyKIcJE="; + hash = "sha256-6kyb0a0cCwVSS4evDGg0Z7wLGhDUHnLeXUJ9PW+fhHk="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/installer/default.nix b/pkgs/development/python-modules/installer/default.nix index b0fcdf21f4632..677be93995a5d 100644 --- a/pkgs/development/python-modules/installer/default.nix +++ b/pkgs/development/python-modules/installer/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "installer"; - version = "1.0.0"; + version = "1.0.1"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "installer"; rev = version; - hash = "sha256-zOnDOaH+9h78Z1667n1Cr8HIm8+OPn2Vc1Zl4XksiCM="; + hash = "sha256-GkHLZfzHfTcBL8wQmIGlNkVodEw9Pih4i1SS36mSfBo="; }; patches = [ diff --git a/pkgs/development/python-modules/iometer/default.nix b/pkgs/development/python-modules/iometer/default.nix index 932fe4fc0e8dd..25cf8f9c137f4 100644 --- a/pkgs/development/python-modules/iometer/default.nix +++ b/pkgs/development/python-modules/iometer/default.nix @@ -13,14 +13,14 @@ buildPythonPackage (finalAttrs: { pname = "iometer"; - version = "1.0.1"; + version = "1.0.2"; pyproject = true; src = fetchFromGitHub { owner = "iometer-gmbh"; repo = "iometer.py"; - tag = finalAttrs.version; - hash = "sha256-ksf/nZHv4/JRHo5OrFp6lgPF62DD37ELFfUVkL+TDEo="; + tag = "v${finalAttrs.version}"; + hash = "sha256-50tq+z1+8CX58Yj6GztYXStHMG+IncOHDgwK8WhxVcQ="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix index 556b9a91e21f0..9d9e1d227c5b5 100644 --- a/pkgs/development/python-modules/ipython/default.nix +++ b/pkgs/development/python-modules/ipython/default.nix @@ -3,7 +3,6 @@ stdenv, buildPythonPackage, fetchPypi, - pythonAtLeast, pythonOlder, # Build dependencies @@ -16,6 +15,7 @@ matplotlib-inline, pexpect, prompt-toolkit, + psutil, pygments, stack-data, traitlets, @@ -36,7 +36,7 @@ buildPythonPackage (finalAttrs: { pname = "ipython"; - version = "9.9.0"; + version = "9.14.0"; outputs = [ "out" "man" @@ -45,7 +45,7 @@ buildPythonPackage (finalAttrs: { src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-SPvtGy3l4scXfu+hRKun/LgtrFFPCbV+KsnaNN21QiA="; + hash = "sha256-byf/Dx2eoFDgVR9xVovEs02KuleejxEcW0F19ErGtKo="; }; build-system = [ setuptools ]; @@ -57,6 +57,7 @@ buildPythonPackage (finalAttrs: { matplotlib-inline pexpect prompt-toolkit + psutil pygments stack-data traitlets @@ -84,16 +85,7 @@ buildPythonPackage (finalAttrs: { testpath ]; - disabledTests = [ - # UnboundLocalError: local variable 'child' referenced before assignment - "test_system_interrupt" - ] - ++ lib.optionals (pythonAtLeast "3.13") [ - # AttributeError: 'Pdb' object has no attribute 'curframe'. Did you mean: 'botframe'? - "test_run_debug_twice" - "test_run_debug_twice_with_breakpoint" - ] - ++ lib.optionals (stdenv.hostPlatform.isDarwin) [ + disabledTests = lib.optionals (stdenv.hostPlatform.isDarwin) [ # FileNotFoundError: [Errno 2] No such file or directory: 'pbpaste' "test_clipboard_get" ]; diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix index b1e084faa030d..cc3ae7a619146 100644 --- a/pkgs/development/python-modules/jax/default.nix +++ b/pkgs/development/python-modules/jax/default.nix @@ -132,6 +132,10 @@ buildPythonPackage (finalAttrs: { # --numprocesses. # New test in jax 0.10.2 (tests/random_impl_test.py). "test_random_bits" + + # Jax uses deprecated numpy logic as an oracle. Fixed upstream in jax 0.11.0, can't be properly backported. + # https://github.com/jax-ml/jax/commit/d219f03b589a1075f499148113aa9c647e1be0b9 + "testCross" ] ++ lib.optionals usingMKL [ # See diff --git a/pkgs/development/python-modules/joserfc/default.nix b/pkgs/development/python-modules/joserfc/default.nix index 342a93b6bd008..a31a8bc44e946 100644 --- a/pkgs/development/python-modules/joserfc/default.nix +++ b/pkgs/development/python-modules/joserfc/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "joserfc"; - version = "1.6.1"; + version = "1.6.9"; pyproject = true; src = fetchFromGitHub { owner = "authlib"; repo = "joserfc"; tag = version; - hash = "sha256-druh7ybcQBjTxUFMVLUwknw/aa/fyrUdS4ftS/ftYeA="; + hash = "sha256-Ge1r34GVmpJ9h5GtRkPd0mkV7HuLf7D31ikuPAnpkuY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix index 01c93b61a9fe7..39fc694fa546a 100644 --- a/pkgs/development/python-modules/jq/default.nix +++ b/pkgs/development/python-modules/jq/default.nix @@ -38,6 +38,7 @@ buildPythonPackage rec { disabledTests = [ # tries to match exact error text, fails with jq 1.8 "test_value_error_is_raised_if_program_is_invalid" + "test_value_error_is_raised_if_input_cannot_be_processed_by_program" ]; pythonImportsCheck = [ "jq" ]; diff --git a/pkgs/development/python-modules/jsonschema-path/default.nix b/pkgs/development/python-modules/jsonschema-path/default.nix index 85cdc1f45b598..c5da88ac37323 100644 --- a/pkgs/development/python-modules/jsonschema-path/default.nix +++ b/pkgs/development/python-modules/jsonschema-path/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "jsonschema-path"; - version = "0.4.6"; + version = "0.5.0"; pyproject = true; src = fetchFromGitHub { owner = "p1c2u"; repo = "jsonschema-path"; tag = version; - hash = "sha256-abAhWtBnZUeg1VGphfnvxPzSnPM6VjM/XKLPJVIrIXg="; + hash = "sha256-CDDwhIlwytUPVwq/+0T5kVzl8viJfSalSIxC5VrQdgs="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/jupyter-packaging/default.nix b/pkgs/development/python-modules/jupyter-packaging/default.nix index 9c56beb7f3a35..516cf273d4418 100644 --- a/pkgs/development/python-modules/jupyter-packaging/default.nix +++ b/pkgs/development/python-modules/jupyter-packaging/default.nix @@ -31,9 +31,9 @@ buildPythonPackage rec { }) ]; - nativeBuildInputs = [ hatchling ]; + build-system = [ hatchling ]; - propagatedBuildInputs = [ + dependencies = [ deprecation packaging setuptools @@ -45,7 +45,11 @@ buildPythonPackage rec { pytest-timeout ]; - pytestFlags = [ "-Wignore::DeprecationWarning" ]; + pytestFlags = [ + "-Wignore::DeprecationWarning" + # The 'wheel' package is no longer the canonical location of the 'bdist_wheel' command, and will be removed in a future release. Please update to setuptools v70.1 or later which contains an integrated version of this command. + "-Wignore::FutureWarning" + ]; preCheck = '' export HOME=$(mktemp -d) diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix index 9de28fa56d6dc..cfaa0ac635c7a 100644 --- a/pkgs/development/python-modules/keras/default.nix +++ b/pkgs/development/python-modules/keras/default.nix @@ -130,6 +130,10 @@ buildPythonPackage (finalAttrs: { ]; disabledTestPaths = [ + # np.cross is deprecated for 2d arrays starting from numpy 2.5.0 + # ValueError: Both input arrays must be (arrays of) 3-dimensional vectors, but they are 3 and 2 dimensional instead + "keras/src/ops/numpy_test.py::NumpyTwoInputOpsCorrectnessTest::test_cross" + # Require unpackaged `grain` "keras/src/layers/preprocessing/data_layer_test.py" "keras/src/layers/preprocessing/discretization_test.py" diff --git a/pkgs/development/python-modules/knx-telegram-store/default.nix b/pkgs/development/python-modules/knx-telegram-store/default.nix new file mode 100644 index 0000000000000..cdbda0cf2b4b1 --- /dev/null +++ b/pkgs/development/python-modules/knx-telegram-store/default.nix @@ -0,0 +1,61 @@ +{ + aiosqlite, + asyncpg, + buildPythonPackage, + fetchFromGitHub, + lib, + pytest-asyncio, + pytestCheckHook, + pytest-cov-stub, + setuptools, + sqlalchemy, +}: + +buildPythonPackage (finalAttrs: { + pname = "knx-telegram-store"; + version = "0.4.0"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "XKNX"; + repo = "knx-telegram-store"; + tag = "v${finalAttrs.version}"; + hash = "sha256-t4Bmm5n9+XSBiR2Rvm6UKAKweH9fQuZwaNqG1W2q3Co="; + }; + + build-system = [ + setuptools + ]; + + optional-dependencies = { + postgres = [ + asyncpg + sqlalchemy + ]; + sqlite = [ + aiosqlite + sqlalchemy + ]; + }; + + nativeCheckInputs = [ + pytest-asyncio + pytest-cov-stub + pytestCheckHook + ] + ++ finalAttrs.passthru.optional-dependencies.sqlite; + + pythonImportsCheck = [ + "knx_telegram_store" + ]; + + meta = { + description = "Standalone, host-agnostic Python library for KNX telegram persistence"; + homepage = "https://github.com/XKNX/knx-telegram-store"; + changelog = "https://github.com/XKNX/knx-telegram-store/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/langgraph/default.nix b/pkgs/development/python-modules/langgraph/default.nix index 8d495cced49df..8cc5d8c7c06f6 100644 --- a/pkgs/development/python-modules/langgraph/default.nix +++ b/pkgs/development/python-modules/langgraph/default.nix @@ -138,8 +138,7 @@ buildPythonPackage (finalAttrs: { "tests/test_subgraph_persistence_async.py" "tests/test_time_travel.py" "tests/test_time_travel_async.py" - ] - ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ + # Race condition "tests/test_retry.py::test_error_handler_resumes_after_crash_multiple_nodes" ]; diff --git a/pkgs/development/python-modules/launchpadlib/default.nix b/pkgs/development/python-modules/launchpadlib/default.nix index db6e0c9ab8e03..02769d84b52fc 100644 --- a/pkgs/development/python-modules/launchpadlib/default.nix +++ b/pkgs/development/python-modules/launchpadlib/default.nix @@ -5,7 +5,7 @@ httplib2, lazr-restfulclient, lazr-uri, - setuptools, + setuptools_80, six, testresources, pytestCheckHook, @@ -21,7 +21,7 @@ buildPythonPackage rec { hash = "sha256-tMJYkLt1BQ1UwIEj0nMxVreKWaJVX1Rh9psORM2RJC8="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ httplib2 diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix index 33f4e1c5c56a7..7b8a5cf6a7954 100644 --- a/pkgs/development/python-modules/librosa/default.nix +++ b/pkgs/development/python-modules/librosa/default.nix @@ -143,6 +143,11 @@ buildPythonPackage (finalAttrs: { "test_resample_stereo" ]; + disabledTestPaths = [ + # matplotlib 3.11 exceeds tolerances for image comparison + "tests/test_display.py" + ]; + meta = { description = "Python library for audio and music analysis"; homepage = "https://github.com/librosa/librosa"; diff --git a/pkgs/development/python-modules/librt/default.nix b/pkgs/development/python-modules/librt/default.nix index 044a9c7425175..628f0e68b0ab6 100644 --- a/pkgs/development/python-modules/librt/default.nix +++ b/pkgs/development/python-modules/librt/default.nix @@ -6,23 +6,36 @@ mypy-extensions, python, pytest, + stdenv, }: buildPythonPackage rec { pname = "librt"; - version = "0.9.0"; + version = "0.11.0"; pyproject = true; src = fetchFromGitHub { owner = "mypyc"; repo = "librt"; tag = "v${version}"; - hash = "sha256-RZGaOq8hmkwekCs1fKshDrx3vmHdJl/wI3IO9ZLH5rc="; + hash = "sha256-y9z1EdrZRiDtT8cxz/Ex/f6B/RfjnAXdGf7tM+77HGg="; }; # https://github.com/mypyc/librt/blob/v0.7.8/.github/workflows/buildwheels.yml#L90-L93 postPatch = '' cp -rv lib-rt/* . + + # build_setup.py patches CCompiler.spawn to inject architecture-specific + # SIMD flags based on platform.machine() (which returns the build arch instead + # of the target arch). When cross-compiling, this causes the compiler to abort + # with "unrecognized command-line option" errors. + # + # The patch below forces the use of the target architecture, in order + # to keep SIMD flags for x86_64 targets while avoiding them elsewhere. + substituteInPlace build_setup.py \ + --replace-fail \ + 'X86_64 = platform.machine() in ("x86_64", "AMD64", "amd64")' \ + 'X86_64 = ${if stdenv.hostPlatform.isx86_64 then "True" else "False"}' ''; build-system = [ diff --git a/pkgs/development/python-modules/libsass/default.nix b/pkgs/development/python-modules/libsass/default.nix index 348014d5fca44..f26c4bcb09be5 100644 --- a/pkgs/development/python-modules/libsass/default.nix +++ b/pkgs/development/python-modules/libsass/default.nix @@ -3,7 +3,7 @@ buildPythonPackage, fetchFromGitHub, libsass, - six, + setuptools_80, pytestCheckHook, werkzeug, }: @@ -11,7 +11,7 @@ buildPythonPackage (finalAttrs: { pname = "libsass"; version = "0.23.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "sass"; @@ -20,13 +20,11 @@ buildPythonPackage (finalAttrs: { hash = "sha256-CiSr9/3EDwpDEzu6VcMBAlm3CtKTmGYbZMnMEjyZVxI="; }; - buildInputs = [ libsass ]; + build-system = [ setuptools_80 ]; - propagatedBuildInputs = [ six ]; + buildInputs = [ libsass ]; - preBuild = '' - export SYSTEM_SASS=true; - ''; + env.SYSTEM_SASS = "true"; nativeCheckInputs = [ pytestCheckHook @@ -41,6 +39,7 @@ buildPythonPackage (finalAttrs: { description = "Python binding for libsass to compile Sass/SCSS"; mainProgram = "pysassc"; homepage = "https://sass.github.io/libsass-python/"; + downloadPage = "https://github.com/sass/libsass-python"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ sigmanificient ]; }; diff --git a/pkgs/development/python-modules/libtfr/default.nix b/pkgs/development/python-modules/libtfr/default.nix index 4a66aa6b71ead..cbc89c8da6e02 100644 --- a/pkgs/development/python-modules/libtfr/default.nix +++ b/pkgs/development/python-modules/libtfr/default.nix @@ -4,7 +4,7 @@ buildPythonPackage, # build-system - setuptools, + setuptools_80, pkg-config, cython, pkgconfig, @@ -38,7 +38,7 @@ buildPythonPackage rec { ]; build-system = [ - setuptools + setuptools_80 ]; dependencies = [ diff --git a/pkgs/development/python-modules/linearmodels/default.nix b/pkgs/development/python-modules/linearmodels/default.nix index 5245dd64f9a3b..5e5bceb6daf85 100644 --- a/pkgs/development/python-modules/linearmodels/default.nix +++ b/pkgs/development/python-modules/linearmodels/default.nix @@ -69,8 +69,6 @@ buildPythonPackage (finalAttrs: { preCheck = '' rm linearmodels/__init__.py - - export OMP_NUM_THREADS=1 ''; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix index c4b70c6f0d492..a1f46b4d323fd 100644 --- a/pkgs/development/python-modules/litellm/default.nix +++ b/pkgs/development/python-modules/litellm/default.nix @@ -162,6 +162,7 @@ buildPythonPackage rec { "importlib-metadata" "jsonschema" "openai" + "pydantic" "python-dotenv" ]; diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix index d932dd3c866da..cb855b02e33c8 100644 --- a/pkgs/development/python-modules/llvmlite/default.nix +++ b/pkgs/development/python-modules/llvmlite/default.nix @@ -1,10 +1,8 @@ { lib, - stdenv, fetchFromGitHub, buildPythonPackage, isPyPy, - pythonAtLeast, setuptools, @@ -26,7 +24,7 @@ in buildPythonPackage rec { pname = "llvmlite"; - version = "0.46.0"; + version = "0.47.0"; pyproject = true; disabled = isPyPy; @@ -35,7 +33,7 @@ buildPythonPackage rec { owner = "numba"; repo = "llvmlite"; tag = "v${version}"; - hash = "sha256-mQFNfcOLmFYvYQGcgLi7G6iJDoTCm7hJfPh5hH9jPGc="; + hash = "sha256-YEIdIdbk19JHYtgL2gWjnAUYu13CH+7ikoyBUkOPpws="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix index 2892a70dd7c4f..997fe6504a784 100644 --- a/pkgs/development/python-modules/lxml/default.nix +++ b/pkgs/development/python-modules/lxml/default.nix @@ -16,23 +16,18 @@ xcodebuild, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "lxml"; - version = "6.0.2"; + version = "6.1.1"; pyproject = true; src = fetchFromGitHub { owner = "lxml"; repo = "lxml"; - tag = "lxml-${version}"; - hash = "sha256-Ri5SzfQJFghRcMAKHS5QKD365OZlio895fSlumq83vs="; + tag = "lxml-${finalAttrs.version}"; + hash = "sha256-SRJaegK4PxgK0rdILVp3J92VnjPmExiD2AuMLoGQIbA="; }; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail 'Cython>=3.1.4' 'Cython' - ''; - build-system = [ cython setuptools @@ -63,10 +58,10 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/lxml/lxml/blob/lxml-${version}/CHANGES.txt"; + changelog = "https://github.com/lxml/lxml/blob/${finalAttrs.src.tag}/CHANGES.txt"; description = "Pythonic binding for the libxml2 and libxslt libraries"; homepage = "https://lxml.de"; license = lib.licenses.bsd3; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/mace-torch/default.nix b/pkgs/development/python-modules/mace-torch/default.nix index 10f928d168f84..0122bffd13ca7 100644 --- a/pkgs/development/python-modules/mace-torch/default.nix +++ b/pkgs/development/python-modules/mace-torch/default.nix @@ -87,10 +87,6 @@ buildPythonPackage (finalAttrs: { writableTmpDirAsHomeHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - disabledTests = [ # _pickle.PickleError: ScriptFunction cannot be pickled "test_run_eval_fail_with_wrong_model" diff --git a/pkgs/development/python-modules/makefun/default.nix b/pkgs/development/python-modules/makefun/default.nix index 2065105ac8b1b..3f7c4872e4bc5 100644 --- a/pkgs/development/python-modules/makefun/default.nix +++ b/pkgs/development/python-modules/makefun/default.nix @@ -4,11 +4,11 @@ buildPythonPackage, # build-system - setuptools, + setuptools_80, setuptools-scm, # tests - pytest7CheckHook, + pytest8_3CheckHook, }: buildPythonPackage rec { @@ -27,11 +27,13 @@ buildPythonPackage rec { ''; build-system = [ - setuptools + setuptools_80 setuptools-scm ]; - nativeCheckInputs = [ pytest7CheckHook ]; + nativeCheckInputs = [ + pytest8_3CheckHook + ]; pythonImportsCheck = [ "makefun" ]; diff --git a/pkgs/development/python-modules/mako/default.nix b/pkgs/development/python-modules/mako/default.nix index ab4137e548bc1..a317e542fc804 100644 --- a/pkgs/development/python-modules/mako/default.nix +++ b/pkgs/development/python-modules/mako/default.nix @@ -5,7 +5,7 @@ isPyPy, # build-system - setuptools, + setuptools_80, # propagates markupsafe, @@ -20,19 +20,19 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "mako"; - version = "1.3.10"; + version = "1.3.12"; pyproject = true; src = fetchFromGitHub { owner = "sqlalchemy"; repo = "mako"; - tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-lxGlYyKbrDpr2LHcsqTow+s2l8+g+63M5j8xJt++tGo="; + tag = "rel_${lib.replaceString "." "_" finalAttrs.version}"; + hash = "sha256-YIMmP8CIGUlgnB8/96lR9yDvEZTES766dSN0vT0JfbM="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ markupsafe ]; @@ -46,7 +46,7 @@ buildPythonPackage rec { mock pytestCheckHook ] - ++ lib.concatAttrValues optional-dependencies; + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; disabledTests = lib.optionals isPyPy [ # https://github.com/sqlalchemy/mako/issues/315 @@ -59,12 +59,12 @@ buildPythonPackage rec { ]; meta = { + changelog = "https://github.com/sqlalchemy/mako/releases/tag/${finalAttrs.src.tag}"; description = "Super-fast templating language"; mainProgram = "mako-render"; homepage = "https://www.makotemplates.org/"; - changelog = "https://docs.makotemplates.org/en/latest/changelog.html"; license = lib.licenses.mit; platforms = lib.platforms.unix; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/mashumaro/default.nix b/pkgs/development/python-modules/mashumaro/default.nix index 2a490f7d6e2c8..88e4f1ad479e7 100644 --- a/pkgs/development/python-modules/mashumaro/default.nix +++ b/pkgs/development/python-modules/mashumaro/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "mashumaro"; - version = "3.17"; + version = "3.21"; pyproject = true; src = fetchFromGitHub { owner = "Fatal1ty"; repo = "mashumaro"; tag = "v${version}"; - hash = "sha256-oQKSIDrIPlY1m63uP9Jxpgf7ruaZpt9uZF4hTso503U="; + hash = "sha256-SWmZA/yoiElQ299+BkjwTdcPukKfgw/UgUwiesFRkqo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/masky/default.nix b/pkgs/development/python-modules/masky/default.nix index d90e6d4364a18..289479f398e3c 100644 --- a/pkgs/development/python-modules/masky/default.nix +++ b/pkgs/development/python-modules/masky/default.nix @@ -7,12 +7,13 @@ fetchFromGitHub, impacket, pyasn1, + setuptools_80, }: buildPythonPackage rec { pname = "masky"; version = "0.2.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "Z4kSec"; @@ -21,7 +22,9 @@ buildPythonPackage rec { hash = "sha256-npRuszHkxwjJ+B+q8eQywXPd0OX0zS+AfCro4TM83Uc="; }; - propagatedBuildInputs = [ + build-system = [ setuptools_80 ]; + + dependencies = [ asn1crypto colorama cryptography diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix index ff7fb38852a58..bee69a777e5e5 100644 --- a/pkgs/development/python-modules/matplotlib/default.nix +++ b/pkgs/development/python-modules/matplotlib/default.nix @@ -13,19 +13,12 @@ setuptools-scm, pytestCheckHook, python, - matplotlib, - fetchurl, # native libraries ffmpeg-headless, freetype, - # By default, almost all tests fail due to the fact we use our version of - # freetype. We still use this argument to define the overridden - # derivation `matplotlib.passthru.tests.withoutOutdatedFreetype` - which - # builds matplotlib with the freetype version they default to, with which all - # tests should pass. - doCheck ? false, qhull, + libraqm, # propagates contourpy, @@ -69,20 +62,23 @@ # Reverse dependency sage, + + # TODO: Clean up on `staging`. + llvmPackages, }: let interactive = enableTk || enableGtk3 || enableQt; in -buildPythonPackage rec { - version = "3.10.9"; +buildPythonPackage (finalAttrs: { + version = "3.11.0"; pname = "matplotlib"; pyproject = true; src = fetchPypi { - inherit pname version; - hash = "sha256-/WZQjoxod9mOWGZUtgigRW241+ilRuseJgDv2VcwI1g="; + inherit (finalAttrs) pname version; + hash = "sha256-aMDHvgGzDcyjY4k09/WR33NAEjXL2/DRqxxx59t/i1c="; }; env.XDG_RUNTIME_DIR = "/tmp"; @@ -100,7 +96,7 @@ buildPythonPackage rec { '' + '' substituteInPlace pyproject.toml \ - --replace-fail "meson-python>=0.13.1,<0.17.0" meson-python + --replace-fail "setuptools_scm>=7,<10" setuptools_scm patchShebangs tools '' @@ -111,12 +107,18 @@ buildPythonPackage rec { --replace-fail libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0 ''; - nativeBuildInputs = [ pkg-config ] ++ lib.optionals enableGtk3 [ gobject-introspection ]; + nativeBuildInputs = [ + pkg-config + ] + ++ lib.optionals enableGtk3 [ gobject-introspection ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ llvmPackages.lld ]; buildInputs = [ ffmpeg-headless freetype qhull + libraqm ] ++ lib.optionals enableGtk3 [ cairo @@ -158,6 +160,7 @@ buildPythonPackage rec { mesonFlags = lib.mapAttrsToList lib.mesonBool { system-freetype = true; system-qhull = true; + system-libraqm = true; # Otherwise GNU's `ar` binary fails to put symbols from libagg into the # matplotlib shared objects. See: # -https://github.com/matplotlib/matplotlib/issues/28260#issuecomment-2146243663 @@ -165,22 +168,21 @@ buildPythonPackage rec { b_lto = false; }; + # TODO: Clean up on `staging`. + env.${if stdenv.hostPlatform.isDarwin then "CC_LD" else null} = "lld"; + env.${if stdenv.hostPlatform.isDarwin then "CXX_LD" else null} = "lld"; + env.${if stdenv.hostPlatform.isDarwin then "OBJC_LD" else null} = "lld"; + passthru.tests = { inherit sage; - withOutdatedFreetype = matplotlib.override { - doCheck = true; - freetype = freetype.overrideAttrs (_: { - src = fetchurl { - url = "mirror://savannah/freetype/freetype-old/freetype-2.6.1.tar.gz"; - hash = "sha256-Cjx9+9ptoej84pIy6OltmHq6u79x68jHVlnkEyw2cBQ="; - }; - patches = [ ]; - }); - }; }; pythonImportsCheck = [ "matplotlib" ]; - inherit doCheck; + # Running the tests requires a specific freetype version, so pixel-to-pixel + # comparisons will pass. Since matplotlib depends directly & indirectly on + # freetype, this would be too expensive to even test this (correctly) in + # `passthru.tests`. + doCheck = false; nativeCheckInputs = [ pytestCheckHook ]; preCheck = '' # https://matplotlib.org/devdocs/devel/testing.html#obtain-the-reference-images @@ -198,13 +200,14 @@ buildPythonPackage rec { meta = { description = "Python plotting library, making publication quality plots"; homepage = "https://matplotlib.org/"; - changelog = "https://github.com/matplotlib/matplotlib/releases/tag/v${version}"; + changelog = "https://github.com/matplotlib/matplotlib/releases/tag/v${finalAttrs.version}"; license = with lib.licenses; [ psfl bsd0 ]; maintainers = with lib.maintainers; [ veprbl + doronbehar ]; }; -} +}) diff --git a/pkgs/development/python-modules/mcp/default.nix b/pkgs/development/python-modules/mcp/default.nix index 6d6ae50b6d822..0ddad0e922cf4 100644 --- a/pkgs/development/python-modules/mcp/default.nix +++ b/pkgs/development/python-modules/mcp/default.nix @@ -42,7 +42,7 @@ buildPythonPackage (finalAttrs: { pname = "mcp"; - version = "1.27.0"; + version = "1.27.1"; pyproject = true; __structuredAttrs = true; @@ -50,7 +50,7 @@ buildPythonPackage (finalAttrs: { owner = "modelcontextprotocol"; repo = "python-sdk"; tag = "v${finalAttrs.version}"; - hash = "sha256-qvbGyF0PVC626yCgUqOYmA1zOmvI3/bC7l7HhfOtKH8="; + hash = "sha256-LhoLcFC5+7xOCfud23sbHyTMxKYmdeZh0c+UtGdvzCs="; }; # time.sleep(0.1) feels a bit optimistic and it has been flaky whilst diff --git a/pkgs/development/python-modules/mediapy/default.nix b/pkgs/development/python-modules/mediapy/default.nix index de5dc2ed90eb7..1081b0cc331e5 100644 --- a/pkgs/development/python-modules/mediapy/default.nix +++ b/pkgs/development/python-modules/mediapy/default.nix @@ -1,40 +1,62 @@ { lib, + bash, buildPythonPackage, - fetchPypi, + fetchFromGitHub, flit-core, ipython, matplotlib, numpy, pillow, + absl-py, + ffmpeg-headless, + pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "mediapy"; - version = "1.2.5"; + version = "1.2.7"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-LHpMUXBLJmQnNxkKbl++qCYLAn/enZnGRKZwJVquhg8="; + src = fetchFromGitHub { + owner = "google"; + repo = "mediapy"; + tag = "v${finalAttrs.version}"; + hash = "sha256-+p88Zc7YuN0P4i1AzTQfQqCFo6Uc6hpDKgoDpdJxMaI="; }; - nativeBuildInputs = [ flit-core ]; + postPatch = '' + substituteInPlace mediapy_test.py \ + --replace-fail "/bin/bash" "${lib.getExe bash}" + ''; - propagatedBuildInputs = [ + build-system = [ flit-core ]; + + dependencies = [ ipython matplotlib numpy pillow ]; + nativeCheckInputs = [ + absl-py + ffmpeg-headless + pytestCheckHook + ]; + + disabledTests = [ + # AssertionError: np.float64(148.75258355982479) not less than 51.2 + "test_video_read_write_10bit" + ]; + pythonImportsCheck = [ "mediapy" ]; meta = { description = "Read/write/show images and videos in an IPython notebook"; homepage = "https://github.com/google/mediapy"; - changelog = "https://github.com/google/mediapy/releases/tag/v${version}"; + changelog = "https://github.com/google/mediapy/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ mcwitt ]; }; -} +}) diff --git a/pkgs/development/python-modules/meson-python/default.nix b/pkgs/development/python-modules/meson-python/default.nix index 35e9e0c350b43..28f726541f1a1 100644 --- a/pkgs/development/python-modules/meson-python/default.nix +++ b/pkgs/development/python-modules/meson-python/default.nix @@ -20,13 +20,13 @@ buildPythonPackage rec { pname = "meson-python"; - version = "0.19.0"; + version = "0.20.0"; pyproject = true; src = fetchPypi { inherit version; pname = "meson_python"; - hash = "sha256-mVnRmKpptX/P01SjRRjG95W3gac+0GVvTQFmAWDMJVM="; + hash = "sha256-bZcmrmzTfiLyEMdLNkswGApowgRC6X/wnzxWakFK9zg="; }; build-system = [ diff --git a/pkgs/development/python-modules/mill-local/default.nix b/pkgs/development/python-modules/mill-local/default.nix index c171dbf4a157f..7006bb79bc9dc 100644 --- a/pkgs/development/python-modules/mill-local/default.nix +++ b/pkgs/development/python-modules/mill-local/default.nix @@ -4,7 +4,7 @@ async-timeout, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, }: buildPythonPackage rec { @@ -19,7 +19,7 @@ buildPythonPackage rec { hash = "sha256-t6nZ6KXX5GFIcdNIXyFxYtSjOuuUJmCekaBITNgcIkU="; }; - buildInputs = [ setuptools ]; + buildInputs = [ setuptools_80 ]; dependencies = [ aiohttp diff --git a/pkgs/development/python-modules/mistralai/default.nix b/pkgs/development/python-modules/mistralai/default.nix index 35b41c8926a43..a3fc4e9f92f20 100644 --- a/pkgs/development/python-modules/mistralai/default.nix +++ b/pkgs/development/python-modules/mistralai/default.nix @@ -27,6 +27,7 @@ # tests opentelemetry-sdk, + pytest-asyncio, pytestCheckHook, }: @@ -87,6 +88,7 @@ buildPythonPackage (finalAttrs: { pythonImportsCheck = [ "mistralai" ]; nativeCheckInputs = [ + pytest-asyncio pytestCheckHook ] ++ finalAttrs.passthru.optional-dependencies.agents @@ -99,6 +101,8 @@ buildPythonPackage (finalAttrs: { "src/mistralai/extra/tests/test_otel_tracing.py" # ModuleNotFoundError: No module named 'msgpack' "src/mistralai/extra/tests/test_workflow_encoding.py" + # '062f2cad7f1fee8c3e409b73d431e71b' not found in '00-e5d29cde482d5d796428c10d13e86060-468fe44f7efdb086-01' + "src/mistralai/extra/tests/test_traceparent_hook.py::TestTraceparentInjectionHook::test_propagates_sampled_active_span" ]; meta = { diff --git a/pkgs/development/python-modules/mistune/default.nix b/pkgs/development/python-modules/mistune/default.nix index 8cdfa4023ded4..99f3922ee0fa0 100644 --- a/pkgs/development/python-modules/mistune/default.nix +++ b/pkgs/development/python-modules/mistune/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "mistune"; - version = "3.2.1"; + version = "3.3.2"; pyproject = true; src = fetchFromGitHub { owner = "lepture"; repo = "mistune"; tag = "v${version}"; - hash = "sha256-8AEEh/SWAk/Esq0jAoZGLw1FIQUw6C5Xq8CgnI2fjv0="; + hash = "sha256-uyOJFtDvVn0Y3VypphOXsSW3pX5XVCcfQ7dtFiL/5qY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix index 2d4e4f5a95d8b..3f5407613d6e5 100644 --- a/pkgs/development/python-modules/mitmproxy/default.nix +++ b/pkgs/development/python-modules/mitmproxy/default.nix @@ -56,11 +56,12 @@ buildPythonPackage rec { # just keep those "typing-extensions" - "urwid" "asgiref" + "cryptography" "pyparsing" "ruamel.yaml" "tornado" + "urwid" "wsproto" ]; diff --git a/pkgs/development/python-modules/mock-services/default.nix b/pkgs/development/python-modules/mock-services/default.nix index 14158d4f6e3b9..9e752ca75d9a8 100644 --- a/pkgs/development/python-modules/mock-services/default.nix +++ b/pkgs/development/python-modules/mock-services/default.nix @@ -7,12 +7,13 @@ funcsigs, requests-mock, pytestCheckHook, + setuptools_80, }: buildPythonPackage rec { pname = "mock-services"; version = "0.3.1"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "peopledoc"; @@ -29,7 +30,9 @@ buildPythonPackage rec { }) ]; - propagatedBuildInputs = [ + build-system = [ setuptools_80 ]; + + dependencies = [ attrs funcsigs requests-mock diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix index 8cf838a93b291..4d5373b9457ea 100644 --- a/pkgs/development/python-modules/mocket/default.nix +++ b/pkgs/development/python-modules/mocket/default.nix @@ -90,6 +90,8 @@ buildPythonPackage rec { "test_gethostbyname" # httpx read failure "test_no_dangling_fds" + # redis-py response mismatch + "test_hgetall" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # fails on darwin due to upstream bug: https://github.com/mindflayer/python-mocket/issues/287 diff --git a/pkgs/development/python-modules/moddb/default.nix b/pkgs/development/python-modules/moddb/default.nix index d2792616c6b12..8c025e7fd3061 100644 --- a/pkgs/development/python-modules/moddb/default.nix +++ b/pkgs/development/python-modules/moddb/default.nix @@ -5,22 +5,25 @@ beautifulsoup4, pyrate-limiter, requests, + setuptools_80, toolz, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "moddb"; version = "0.12.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "ClementJ18"; repo = "moddb"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-idBja/W9r8iX69Af+x2TZcLpSLy45fC9pmrMKJZ0RsA="; }; - propagatedBuildInputs = [ + build-system = [ setuptools_80 ]; + + dependencies = [ beautifulsoup4 pyrate-limiter requests @@ -39,4 +42,4 @@ buildPythonPackage rec { license = lib.licenses.mit; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/modelsearch/default.nix b/pkgs/development/python-modules/modelsearch/default.nix index 8caa4a4f60077..2bedecb5f91e5 100644 --- a/pkgs/development/python-modules/modelsearch/default.nix +++ b/pkgs/development/python-modules/modelsearch/default.nix @@ -31,6 +31,11 @@ buildPythonPackage (finalAttrs: { hash = "sha256-UH1t/CXJ7OX250SoUZYKMIAHuCxYxOT6l79RXI/oMLs="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools>=80,<81" setuptools + ''; + build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/morfessor/default.nix b/pkgs/development/python-modules/morfessor/default.nix index 969e2f347a999..0fda02a714f46 100644 --- a/pkgs/development/python-modules/morfessor/default.nix +++ b/pkgs/development/python-modules/morfessor/default.nix @@ -2,13 +2,14 @@ lib, buildPythonPackage, fetchPypi, + setuptools_80, + pytestCheckHook, }: buildPythonPackage rec { pname = "morfessor"; version = "2.0.6"; - - format = "setuptools"; + pyproject = true; src = fetchPypi { pname = "Morfessor"; @@ -16,7 +17,13 @@ buildPythonPackage rec { sha256 = "bb3beac234341724c5f640f65803071f62373a50dba854d5a398567f9aefbab2"; }; - checkPhase = "python -m unittest -v morfessor/test/*"; + build-system = [ setuptools_80 ]; + + nativeCheckInputs = [ pytestCheckHook ]; + + enabledTestPaths = [ + "morfessor/test/*" + ]; pythonImportsCheck = [ "morfessor" ]; diff --git a/pkgs/development/python-modules/mozart-api/default.nix b/pkgs/development/python-modules/mozart-api/default.nix index 105d1a22ac13d..ace3c790d2404 100644 --- a/pkgs/development/python-modules/mozart-api/default.nix +++ b/pkgs/development/python-modules/mozart-api/default.nix @@ -18,13 +18,13 @@ buildPythonPackage (finalAttrs: { pname = "mozart-api"; - version = "5.3.1.108.2"; + version = "6.2.0.44.1"; pyproject = true; src = fetchPypi { pname = "mozart_api"; inherit (finalAttrs) version; - hash = "sha256-ilUSGgc4m6iMBUuSI7qt7c4DAE8cOPTzLGeQ4JQAB8U="; + hash = "sha256-HJKxw49hGjVedjpCzxfbL8v6b6MXXqE96hlL5U64r5Y="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix index f053b318e350a..9e4b3eddc90ea 100644 --- a/pkgs/development/python-modules/msal/default.nix +++ b/pkgs/development/python-modules/msal/default.nix @@ -10,12 +10,12 @@ buildPythonPackage (finalAttrs: { pname = "msal"; - version = "1.34.0"; + version = "1.37.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-drqDtxbqWm11sCecCsNToOBbggyh9mgsDrf0UZDEPC8="; + hash = "sha256-GxZyoz7kZ8HXCzQbsWyv1RuzyBcUepW5MmN5SwOXG+w="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/msmart-ng/default.nix b/pkgs/development/python-modules/msmart-ng/default.nix index 8f34f12022135..bacb4048217f5 100644 --- a/pkgs/development/python-modules/msmart-ng/default.nix +++ b/pkgs/development/python-modules/msmart-ng/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "msmart-ng"; - version = "2026.4.1"; + version = "2026.7.0"; pyproject = true; src = fetchFromGitHub { owner = "mill1000"; repo = "midea-msmart"; tag = version; - hash = "sha256-kWKdNu5IxBly+4SMIFYF1V3s5stpTbYvvcXpVtG51vM="; + hash = "sha256-OW5++yd+o2KqaFWTo/RiLjK1HO2l9WSDxkiX3lYtaUs="; }; build-system = [ diff --git a/pkgs/development/python-modules/music-assistant-client/default.nix b/pkgs/development/python-modules/music-assistant-client/default.nix index 5aa9a2dfcef50..09542f5c3e597 100644 --- a/pkgs/development/python-modules/music-assistant-client/default.nix +++ b/pkgs/development/python-modules/music-assistant-client/default.nix @@ -15,14 +15,14 @@ buildPythonPackage rec { pname = "music-assistant-client"; - version = "1.3.5"; + version = "1.3.6"; pyproject = true; src = fetchFromGitHub { owner = "music-assistant"; repo = "client"; tag = version; - hash = "sha256-1yJTn8gnEFkoWGQHItpdO77ltE1Ai5z9hmJvakxyi24="; + hash = "sha256-uK3suOFhRJT6ji5ksdH3Y4iO9ysdbyZWVNTThJvGiGc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/music-assistant-models/default.nix b/pkgs/development/python-modules/music-assistant-models/default.nix index 7f2b91bb4c1d4..46790c8fc4670 100644 --- a/pkgs/development/python-modules/music-assistant-models/default.nix +++ b/pkgs/development/python-modules/music-assistant-models/default.nix @@ -23,14 +23,14 @@ buildPythonPackage (finalAttrs: { pname = "music-assistant-models"; # Must be compatible with music-assistant-client package # nixpkgs-update: no auto update - version = "1.1.115"; + version = "1.1.139"; pyproject = true; src = fetchFromGitHub { owner = "music-assistant"; repo = "models"; tag = finalAttrs.version; - hash = "sha256-oEXL0B8JNH4PcltpES375ov7QGs+gtYKlMGr1B7BlKY="; + hash = "sha256-AT+R0Sor3aDqydGfT8gJfk9/rEpqEOad5ytnGnW7B1U="; }; postPatch = '' diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix index add7605c4a9ba..ef6646c856b5e 100644 --- a/pkgs/development/python-modules/mypy/default.nix +++ b/pkgs/development/python-modules/mypy/default.nix @@ -12,9 +12,12 @@ setuptools, types-psutil, types-setuptools, + ast-serialize, - # propagates + # nativeBuildInputs + propagates librt, + + # propagates mypy-extensions, tomli, typing-extensions, @@ -33,7 +36,7 @@ buildPythonPackage rec { pname = "mypy"; - version = "1.20.1"; + version = "2.1.0"; pyproject = true; # relies on several CPython internals @@ -43,13 +46,17 @@ buildPythonPackage rec { owner = "python"; repo = "mypy"; tag = "v${version}"; - hash = "sha256-MQZZyGu6xFh3wO+0lWED+mingjK92v/onljtp9gylmM="; + hash = "sha256-sm/pxQGxH5XuPH7B8i3fpp30KaFU9aSp6BT67UcDPvU="; }; passthru.updateScript = gitUpdater { rev-prefix = "v"; }; + nativeBuildInputs = [ + librt + ]; + build-system = [ mypy-extensions pathspec @@ -57,6 +64,7 @@ buildPythonPackage rec { types-psutil types-setuptools typing-extensions + ast-serialize ]; dependencies = [ diff --git a/pkgs/development/python-modules/narwhals/default.nix b/pkgs/development/python-modules/narwhals/default.nix index c37327e9ea012..7e2aa326772ba 100644 --- a/pkgs/development/python-modules/narwhals/default.nix +++ b/pkgs/development/python-modules/narwhals/default.nix @@ -5,8 +5,7 @@ dask, duckdb, fetchFromGitHub, - fetchpatch2, - hatchling, + uv-build, hypothesis, ibis-framework, packaging, @@ -24,37 +23,17 @@ buildPythonPackage rec { pname = "narwhals"; - version = "2.16.0"; + version = "2.23.0"; pyproject = true; src = fetchFromGitHub { owner = "narwhals-dev"; repo = "narwhals"; tag = "v${version}"; - hash = "sha256-k7CeM8Q4JgKbkLisAaVrljro4diOf0K0immek6AI0vM="; + hash = "sha256-fT3v7T2S7cmv0tX60kjRBrUq+89TG2/Ar9Qh9O4LP8U="; }; - patches = [ - (fetchpatch2 { - name = "fix-dask-deprecationwarning.patch"; - url = "https://github.com/narwhals-dev/narwhals/commit/254655af21872e8127f7fee9a9afbfb279f1eda2.patch?full_index=1"; - # Exclude unrelated change to non-test code. - includes = [ "pyproject.toml" ]; - hash = "sha256-tgz0b08P36CENOYFBILbicHhdB4BytXgFQk3nIxpw0A="; - }) - (fetchpatch2 { - name = "fix-dask-deprecationwarning.patch"; - url = "https://github.com/narwhals-dev/narwhals/commit/b92d5a840e08bdf7806947ffde27de856900c5ab.patch?full_index=1"; - hash = "sha256-2lct6/MfViKnRjpEehNKqF6zdZVIkXi7tYxycDh/Hn8="; - }) - (fetchpatch2 { - name = "ignore-polars-deprecation-warning-in-tests.patch"; - url = "https://github.com/narwhals-dev/narwhals/commit/fb798716eb5f8835096d8f88d422baae2b22b3ce.patch?full_index=1"; - hash = "sha256-pWi0y4S48aADJ1MA3kB9FsLuoA+HfZp5+AgEn69pUuA="; - }) - ]; - - build-system = [ hatchling ]; + build-system = [ uv-build ]; optional-dependencies = { # cudf = [ cudf ]; @@ -108,6 +87,10 @@ buildPythonPackage rec { "test_first_expr_broadcasting" # sqlframe improvements cause strict XPASS failures (tests expected to fail now pass) "test_unique_expr" + # sqlframe issues + "test_over_quantile" + "test_quantile_expr" + "test_join_duplicate_column_names" ]; disabledTestPaths = lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [ diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix index 0873da577050a..ae8c93a4d742b 100644 --- a/pkgs/development/python-modules/nibabel/default.nix +++ b/pkgs/development/python-modules/nibabel/default.nix @@ -2,8 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchpatch2, - pythonAtLeast, pythonOlder, # build-system @@ -17,6 +15,9 @@ typing-extensions, # optional-dependencies + backports-zstd, + indexed-gzip, + matplotlib, pydicom, pillow, h5py, @@ -27,28 +28,21 @@ pytest-doctestplus, pytest-httpserver, pytest-xdist, - pytest7CheckHook, + pytestCheckHook, }: buildPythonPackage (finalAttrs: { pname = "nibabel"; - version = "5.3.3"; + version = "5.4.2"; pyproject = true; src = fetchFromGitHub { owner = "nipy"; repo = "nibabel"; tag = finalAttrs.version; - hash = "sha256-Kdz7kCY5QnA9OiV/FPW1RerjP1GGLn+YaTwFpA0dJAM="; + hash = "sha256-QzkmSI0JGdIXLc3XSPZrGrBYSq98tLFrozNNopR/ytg="; }; - patches = [ - (fetchpatch2 { - url = "https://github.com/nipy/nibabel/commit/3f40a3bc0c4bd996734576a15785ad0f769a963a.patch?full_index=1"; - hash = "sha256-URsxgP6Sd5IIOX20GtAYtWBWOhw+Hiuhgu1oa8o8NXk="; - }) - ]; - build-system = [ hatch-vcs hatchling @@ -62,14 +56,14 @@ buildPythonPackage (finalAttrs: { ++ lib.optionals (pythonOlder "3.13") [ typing-extensions ]; optional-dependencies = lib.fix (self: { - all = self.dicom ++ self.dicomfs ++ self.minc2 ++ self.spm ++ self.zstd; + all = self.dicomfs ++ self.indexed_gzip ++ self.minc2 ++ self.spm ++ self.zstd; dicom = [ pydicom ]; dicomfs = [ pillow ] ++ self.dicom; + indexed_gzip = [ indexed-gzip ]; minc2 = [ h5py ]; spm = [ scipy ]; - zstd = [ - # TODO: pyzstd - ]; + viewers = [ matplotlib ]; + zstd = lib.optionals (pythonOlder "3.14") [ backports-zstd ]; }); nativeCheckInputs = [ @@ -78,14 +72,11 @@ buildPythonPackage (finalAttrs: { pytest-doctestplus pytest-httpserver pytest-xdist - pytest7CheckHook + pytestCheckHook ] ++ finalAttrs.passthru.optional-dependencies.all; - disabledTests = lib.optionals (pythonAtLeast "3.14") [ - # https://github.com/nipy/nibabel/issues/1390 - "test_deprecator_maker" - ]; + pythonImportsCheck = [ "nibabel" ]; meta = { homepage = "https://nipy.org/nibabel"; diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix index 506f0e10dfd63..11c25c98168df 100644 --- a/pkgs/development/python-modules/numba/default.nix +++ b/pkgs/development/python-modules/numba/default.nix @@ -4,7 +4,6 @@ fetchFromGitHub, buildPythonPackage, replaceVars, - fetchpatch, # nativeBuildInputs setuptools, @@ -16,8 +15,8 @@ # tests numba, pytestCheckHook, + pytest-xdist, writableTmpDirAsHomeHook, - numpy_1, writers, python, @@ -37,7 +36,7 @@ let cudatoolkit = cudaPackages.cuda_nvcc; in buildPythonPackage (finalAttrs: { - version = "0.63.1"; + version = "0.65.1"; pname = "numba"; pyproject = true; @@ -53,14 +52,29 @@ buildPythonPackage (finalAttrs: { postFetch = '' sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${finalAttrs.src.tag})"/' $out/numba/_version.py ''; - hash = "sha256-M7Hdc1Qakclz7i/HujBUqVEWFsHj9ZGQDzb8Ze9AztA="; + hash = "sha256-DMmUyTElDFyMK4BUQ4EhDNmG43lOWQHurKbnSyhAs5k="; }; + patches = [ + ./numpy2.5.patch + ] + ++ lib.optionals cudaSupport [ + (replaceVars ./cuda_path.patch { + cuda_toolkit_path = cudatoolkit; + cuda_toolkit_lib_path = lib.getLib cudatoolkit; + }) + ]; + postPatch = '' substituteInPlace numba/cuda/cudadrv/driver.py \ --replace-fail \ "dldir = [" \ "dldir = [ '${addDriverRunpath.driverLink}/lib', " + + substituteInPlace setup.py \ + --replace-fail 'max_numpy_run_version = "2.5"' 'max_numpy_run_version = "2.6"' + substituteInPlace numba/__init__.py \ + --replace-fail "(2, 4)" "(2, 6)" ''; build-system = [ @@ -84,33 +98,9 @@ buildPythonPackage (finalAttrs: { llvmlite ]; - patches = [ - # Support Numpy 2.4, see: - # - # - https://github.com/numba/numba/pull/10393 - # - https://github.com/numba/numba/issues/10263 - (fetchpatch { - url = "https://github.com/numba/numba/commit/7ec267efb80d87f0652c00535e8843f35d006f20.patch"; - hash = "sha256-oAOZa2/m2qs8CeX13/0lmRTg/lQj5aDIaaQeDeLAghc="; - excludes = [ - "azure-pipelines.yml" - "buildscripts/azure/azure-windows.yml" - ]; - }) - # The above doesn't fix the source's build and run time checks of Numpy's - # version, it only fixes the tests and API. Upstream puts these checks only - # in release tarballs, and hence the patch has to be vendored. - ./numpy2.4.patch - ] - ++ lib.optionals cudaSupport [ - (replaceVars ./cuda_path.patch { - cuda_toolkit_path = cudatoolkit; - cuda_toolkit_lib_path = lib.getLib cudatoolkit; - }) - ]; - nativeCheckInputs = [ pytestCheckHook + pytest-xdist writableTmpDirAsHomeHook ]; @@ -163,9 +153,6 @@ buildPythonPackage (finalAttrs: { doFullCheck = true; testsWithoutSandbox = false; }; - numpy_1 = numba.override { - numpy = numpy_1; - }; }; meta = { diff --git a/pkgs/development/python-modules/numba/numpy2.4.patch b/pkgs/development/python-modules/numba/numpy2.4.patch deleted file mode 100644 index 37fd13bd9582a..0000000000000 --- a/pkgs/development/python-modules/numba/numpy2.4.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/numba/__init__.py b/numba/__init__.py -index 33f752018..7d3b3ae8d 100644 ---- a/numba/__init__.py -+++ b/numba/__init__.py -@@ -39,8 +39,8 @@ def _ensure_critical_deps(): - f"{numpy_version[0]}.{numpy_version[1]}.") - raise ImportError(msg) - -- if numpy_version > (2, 3): -- msg = (f"Numba needs NumPy 2.3 or less. Got NumPy " -+ if numpy_version > (2, 4): -+ msg = (f"Numba needs NumPy 2.4 or less. Got NumPy " - f"{numpy_version[0]}.{numpy_version[1]}.") - raise ImportError(msg) - -diff --git a/setup.py b/setup.py -index 9eaa191cb..a5febef1e 100644 ---- a/setup.py -+++ b/setup.py -@@ -23,7 +23,7 @@ min_python_version = "3.10" - max_python_version = "3.15" # exclusive - min_numpy_build_version = "2.0.0rc1" - min_numpy_run_version = "1.22" --max_numpy_run_version = "2.4" -+max_numpy_run_version = "2.5" - min_llvmlite_version = "0.46.0dev0" - max_llvmlite_version = "0.47" - diff --git a/pkgs/development/python-modules/numba/numpy2.5.patch b/pkgs/development/python-modules/numba/numpy2.5.patch new file mode 100644 index 0000000000000..7cc84679ced97 --- /dev/null +++ b/pkgs/development/python-modules/numba/numpy2.5.patch @@ -0,0 +1,26 @@ +diff --git a/numba/np/arrayobj.py b/numba/np/arrayobj.py +index ae81627ec..dd69a2a45 100644 +--- a/numba/np/arrayobj.py ++++ b/numba/np/arrayobj.py +@@ -6639,7 +6639,7 @@ def impl_np_vstack(tup): + return impl + + +-if numpy_version >= (2, 0): ++if (2, 0) <= numpy_version < (2, 5): + overload(np.row_stack)(impl_np_vstack) + + +diff --git a/numba/tests/test_dyn_array.py b/numba/tests/test_dyn_array.py +index 99328052c..dfbf57589 100644 +--- a/numba/tests/test_dyn_array.py ++++ b/numba/tests/test_dyn_array.py +@@ -36,7 +36,7 @@ def np_vstack(a, b, c): + return np.vstack((a, b, c)) + + def np_row_stack(a, b, c): +- return np.row_stack((a, b, c)) ++ return np.vstack((a, b, c)) + + def np_dstack(a, b, c): + return np.dstack((a, b, c)) diff --git a/pkgs/development/python-modules/numbagg/default.nix b/pkgs/development/python-modules/numbagg/default.nix index 38d47436b3926..68187a35dfc1f 100644 --- a/pkgs/development/python-modules/numbagg/default.nix +++ b/pkgs/development/python-modules/numbagg/default.nix @@ -56,6 +56,12 @@ buildPythonPackage rec { pytestFlags = [ "--benchmark-disable" ]; + disabledTests = [ + # Uses outdated pandas API as an oracle + "nanargmin" + "nanargmax" + ]; + meta = { description = "Fast N-dimensional aggregation functions with Numba"; homepage = "https://github.com/numbagg/numbagg"; diff --git a/pkgs/development/python-modules/numcodecs/default.nix b/pkgs/development/python-modules/numcodecs/default.nix index c32b3e679805a..ef6f77ba48fe2 100644 --- a/pkgs/development/python-modules/numcodecs/default.nix +++ b/pkgs/development/python-modules/numcodecs/default.nix @@ -11,15 +11,18 @@ py-cpuinfo, # dependencies - deprecated, numpy, + typing-extensions, # optional-dependencies crc32c, + google-crc32c, + pcodec, pyzstd, # tests msgpack, + python, pytestCheckHook, importlib-metadata, zstd, @@ -27,12 +30,12 @@ buildPythonPackage rec { pname = "numcodecs"; - version = "0.16.3"; + version = "0.16.5"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-U9cFhl+q8KeSfJc683d1MgAcj7tlPeEZwehEYIYU15k="; + hash = "sha256-DQ+2CFL4TAvZVDzE0que79N/yO/MQQrNR3fmKh0wAxg="; }; build-system = [ @@ -43,14 +46,15 @@ buildPythonPackage rec { ]; dependencies = [ - deprecated numpy + typing-extensions ]; optional-dependencies = { crc32c = [ crc32c ]; + google_crc32c = [ google-crc32c ]; msgpack = [ msgpack ]; - pyzstd = [ pyzstd ]; + pcodec = [ pcodec ]; # zfpy = [ zfpy ]; }; @@ -61,12 +65,18 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook importlib-metadata + pyzstd zstd ] ++ lib.concatAttrValues optional-dependencies; + disabledTestPaths = [ + # https://github.com/zarr-developers/numcodecs/issues/815 + "numcodecs/tests/test_pcodec.py" + ]; + # https://github.com/NixOS/nixpkgs/issues/255262 - preCheck = "pushd $out"; + preCheck = "pushd $out/${python.sitePackages}"; postCheck = "popd"; meta = { diff --git a/pkgs/development/python-modules/numpy/1.nix b/pkgs/development/python-modules/numpy/1.nix index 4fc274257916c..7167ff94637e1 100644 --- a/pkgs/development/python-modules/numpy/1.nix +++ b/pkgs/development/python-modules/numpy/1.nix @@ -18,6 +18,8 @@ blas, lapack, + openmpCheckPhaseHook, + # Reverse dependency sage, @@ -93,7 +95,6 @@ buildPythonPackage (finalAttrs: { # see https://github.com/OpenMathLib/OpenBLAS/issues/2993 preConfigure = '' sed -i 's/-faltivec//' numpy/distutils/system_info.py - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES)) ''; preBuild = '' @@ -110,6 +111,10 @@ buildPythonPackage (finalAttrs: { typing-extensions ]; + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + preCheck = '' cd "$out" ''; diff --git a/pkgs/development/python-modules/numpy/2.nix b/pkgs/development/python-modules/numpy/2.nix index 67c60475fd5f7..4af4511fdc816 100644 --- a/pkgs/development/python-modules/numpy/2.nix +++ b/pkgs/development/python-modules/numpy/2.nix @@ -19,8 +19,14 @@ coreutils, lapack, + openmpCheckPhaseHook, + # Reverse dependency + astropy, + numba, + pandas, sage, + xarray, # tests hypothesis, @@ -30,11 +36,12 @@ typing-extensions, }: -assert (!blas.isILP64) && (!lapack.isILP64); +# Verify these are compatible +assert blas.isILP64 == lapack.isILP64; buildPythonPackage (finalAttrs: { pname = "numpy"; - version = "2.4.4"; + version = "2.5.0"; pyproject = true; src = fetchFromGitHub { @@ -42,16 +49,9 @@ buildPythonPackage (finalAttrs: { repo = "numpy"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-LAGXw4vFpjZjZ2s/dXdzXHDm6Ah3pronjScqK02wivY="; + hash = "sha256-RiC1dLoDamK5B2VzHBL0V//K/Vix25q11wNGcl3Witk="; }; - patches = lib.optionals python.hasDistutilsCxxPatch [ - # We patch cpython/distutils to fix https://bugs.python.org/issue1222585 - # Patching of numpy.distutils is needed to prevent it from undoing the - # patch to distutils. - ./numpy-distutils-C++.patch - ]; - postPatch = '' # remove needless reference to full Python path stored in built wheel substituteInPlace numpy/meson.build \ @@ -62,7 +62,11 @@ buildPythonPackage (finalAttrs: { --replace-fail '/bin/true' '${lib.getExe' coreutils "true"}' ''; - mesonFlags = lib.optionals (!stdenv.hostPlatform.isLoongArch64) [ + mesonFlags = [ + # See https://numpy.org/devdocs/building/blas_lapack.html + "-Duse-ilp64=${if blas.isILP64 then "true" else "false"}" + ] + ++ lib.optionals (!stdenv.hostPlatform.isLoongArch64) [ # This is required to support CPUs with feature-sets earlier than x86-64-v2 # (before 2009). This will still build optimizations for newer features, but # allow for importing with older machines. See: @@ -86,14 +90,6 @@ buildPythonPackage (finalAttrs: { ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; - # we default openblas to build with 64 threads - # if a machine has more than 64 threads, it will segfault - # see https://github.com/OpenMathLib/OpenBLAS/issues/2993 - preConfigure = '' - sed -i 's/-faltivec//' numpy/distutils/system_info.py - export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES)) - ''; - buildInputs = [ blas lapack @@ -113,6 +109,18 @@ buildPythonPackage (finalAttrs: { typing-extensions ]; + # Enables any dependent package to easily find numpy.pc via standard + # pkg-config call. The `$out/include` symlink matches what's written in the + # numpy.pc file. + postInstall = '' + ln -s $out/${python.sitePackages}/numpy/_core/lib/pkgconfig $out/lib/pkgconfig + ln -s ${placeholder "out"}/${finalAttrs.passthru.coreIncludeInnerDir} $out/include + ''; + + propagatedNativeBuildInputs = [ + openmpCheckPhaseHook + ]; + preCheck = '' pushd $out # For numpy-config executable to be available during tests @@ -192,9 +200,23 @@ buildPythonPackage (finalAttrs: { name = "site.cfg"; text = lib.generators.toINI { } finalAttrs.finalPackage.buildConfig; }; - coreIncludeDir = "${finalAttrs.finalPackage}/${python.sitePackages}/numpy/_core/include"; + # Need to be defined with two variables for postInstall to use `placeholder + # "out"` where here we have to use `${finalAttrs.finalPackage}`, that would + # cause infinite recursion if used in postInstall too. + coreIncludeInnerDir = "${python.sitePackages}/numpy/_core/include"; + coreIncludeDir = "${finalAttrs.finalPackage}/${finalAttrs.finalPackage.passthru.coreIncludeInnerDir}"; tests = { - inherit sage; + # NOTE: It is important to check these central dependent packages when + # issuing Numpy PRs and especially version bumps (even minor version + # bumps) - evidently these have caused issues in staging-next in the + # past. + inherit + astropy + numba + pandas + sage + xarray + ; }; }; diff --git a/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch b/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch deleted file mode 100644 index 6c75f34ce07a9..0000000000000 --- a/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py ---- a/numpy/distutils/unixccompiler.py -+++ b/numpy/distutils/unixccompiler.py -@@ -37,8 +37,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts - if opt not in llink_s: - self.linker_so = llink_s.split() + opt.split() - -- display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) -- - # gcc style automatic dependencies, outputs a makefile (-MF) that lists - # all headers needed by a c file as a side effect of compilation (-MMD) - if getattr(self, '_auto_depends', False): -@@ -47,8 +45,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts - deps = [] - - try: -- self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps + -- extra_postargs, display = display) -+ if self.detect_language(src) == 'c++': -+ display = '%s: %s' % (os.path.basename(self.compiler_so_cxx[0]), src) -+ self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + deps + -+ extra_postargs, display = display) -+ else: -+ display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src) -+ self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps + -+ extra_postargs, display = display) -+ - except DistutilsExecError as e: - msg = str(e) - raise CompileError(msg) diff --git a/pkgs/development/python-modules/omegaconf/default.nix b/pkgs/development/python-modules/omegaconf/default.nix index a4542a21913ad..e0f6acec894a7 100644 --- a/pkgs/development/python-modules/omegaconf/default.nix +++ b/pkgs/development/python-modules/omegaconf/default.nix @@ -5,7 +5,7 @@ attrs, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, jre_minimal, pydevd, pytest-mock, @@ -44,7 +44,7 @@ buildPythonPackage rec { sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements/base.txt ''; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; nativeBuildInputs = [ jre_minimal ]; diff --git a/pkgs/development/python-modules/openapi-core/default.nix b/pkgs/development/python-modules/openapi-core/default.nix index 3fafd9f25fd47..81fb76e51861f 100644 --- a/pkgs/development/python-modules/openapi-core/default.nix +++ b/pkgs/development/python-modules/openapi-core/default.nix @@ -42,6 +42,10 @@ buildPythonPackage rec { build-system = [ poetry-core ]; + pythonRelaxDeps = [ + "jsonschema-path" + ]; + dependencies = [ isodate more-itertools @@ -86,6 +90,11 @@ buildPythonPackage rec { "tests/integration/contrib/django/" ]; + disabledTests = [ + # https://github.com/p1c2u/jsonschema-path/pull/262 broke comparison of `SchemaPath`s + "test_returns_default_server" + ]; + pythonImportsCheck = [ "openapi_core" "openapi_core.validation.request.validators" diff --git a/pkgs/development/python-modules/opentelemetry-api/default.nix b/pkgs/development/python-modules/opentelemetry-api/default.nix index eb4afad2436fc..c3af4ad016e02 100644 --- a/pkgs/development/python-modules/opentelemetry-api/default.nix +++ b/pkgs/development/python-modules/opentelemetry-api/default.nix @@ -14,7 +14,7 @@ let self = buildPythonPackage rec { pname = "opentelemetry-api"; - version = "1.34.0"; + version = "1.43.0"; pyproject = true; # to avoid breakage, every package in opentelemetry-python must inherit this version, src, and meta @@ -22,7 +22,7 @@ let owner = "open-telemetry"; repo = "opentelemetry-python"; tag = "v${version}"; - hash = "sha256-fAXcS2VyDMk+UDW3ru5ZvwzXjydsY1uFcT2GvZuiGWw="; + hash = "sha256-NnRx0sMVlht2CVXeKjP7mZlzhyOqU/YyveDMWRbmAD8="; }; sourceRoot = "${src.name}/opentelemetry-api"; diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-logging/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-logging/default.nix index c81381cdf3638..6e459a895c754 100644 --- a/pkgs/development/python-modules/opentelemetry-instrumentation-logging/default.nix +++ b/pkgs/development/python-modules/opentelemetry-instrumentation-logging/default.nix @@ -1,10 +1,10 @@ { - lib, buildPythonPackage, hatchling, opentelemetry-api, opentelemetry-instrumentation, opentelemetry-test-utils, + pytest-benchmark, pytestCheckHook, }: @@ -24,9 +24,14 @@ buildPythonPackage { nativeCheckInputs = [ opentelemetry-test-utils + pytest-benchmark pytestCheckHook ]; + pytestFlags = [ + "--benchmark-disable" + ]; + pythonImportsCheck = [ "opentelemetry.instrumentation.logging" ]; meta = opentelemetry-instrumentation.meta // { diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-requests/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-requests/default.nix index e64aa913d50b1..f482bc846903f 100644 --- a/pkgs/development/python-modules/opentelemetry-instrumentation-requests/default.nix +++ b/pkgs/development/python-modules/opentelemetry-instrumentation-requests/default.nix @@ -7,7 +7,9 @@ opentelemetry-semantic-conventions, opentelemetry-util-http, httpretty, + mocket, opentelemetry-test-utils, + pytest-benchmark, pytestCheckHook, }: @@ -30,10 +32,16 @@ buildPythonPackage { nativeCheckInputs = [ httpretty + mocket opentelemetry-test-utils + pytest-benchmark pytestCheckHook ]; + pytestFlags = [ + "--benchmark-disable" + ]; + pythonImportsCheck = [ "opentelemetry.instrumentation.requests" ]; meta = opentelemetry-instrumentation.meta // { diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix index d8534e95f7f56..83fd84b4be6fb 100644 --- a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix +++ b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix @@ -12,7 +12,7 @@ buildPythonPackage (finalAttrs: { pname = "opentelemetry-instrumentation"; - version = "0.55b0"; + version = "0.64b0"; pyproject = true; # To avoid breakage, every package in opentelemetry-python-contrib must inherit this version, src, and meta @@ -20,7 +20,7 @@ buildPythonPackage (finalAttrs: { owner = "open-telemetry"; repo = "opentelemetry-python-contrib"; tag = "v${finalAttrs.version}"; - hash = "sha256-UM9ezCh3TVwyj257O0rvTCIgfrddobWcVIgJmBUj/Vo="; + hash = "sha256-dOcDzJD1xxCN7+Zrn+2mF/gbZjy/XC6uAKDhpfYLf98="; }; sourceRoot = "${finalAttrs.src.name}/opentelemetry-instrumentation"; diff --git a/pkgs/development/python-modules/opentelemetry-resourcedetector-gcp/default.nix b/pkgs/development/python-modules/opentelemetry-resourcedetector-gcp/default.nix index 02b3917a0cfa4..88a8a3c99de44 100644 --- a/pkgs/development/python-modules/opentelemetry-resourcedetector-gcp/default.nix +++ b/pkgs/development/python-modules/opentelemetry-resourcedetector-gcp/default.nix @@ -12,7 +12,7 @@ buildPythonPackage (finalAttrs: { pname = "opentelemetry-resourcedetector-gcp"; - version = "1.11.0a0"; + version = "1.12.0a0"; pyproject = true; # Use PyPi instead of GitHub because the GitHub tags are inaccurate @@ -20,7 +20,7 @@ buildPythonPackage (finalAttrs: { src = fetchPypi { pname = "opentelemetry_resourcedetector_gcp"; inherit (finalAttrs) version; - hash = "sha256-kVodb9FdrKnu3T/FKw9wU3UFTy7xQOLnprTMqVpHzbE="; + hash = "sha256-1eP3goOicuuSVH4Au+/0W3Myo0rnkacKtOuoGvm8O68="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/opentelemetry-semantic-conventions-ai/default.nix b/pkgs/development/python-modules/opentelemetry-semantic-conventions-ai/default.nix new file mode 100644 index 0000000000000..4022a30b56223 --- /dev/null +++ b/pkgs/development/python-modules/opentelemetry-semantic-conventions-ai/default.nix @@ -0,0 +1,43 @@ +{ + lib, + buildPythonPackage, + fetchPypi, + hatchling, + opentelemetry-sdk, + opentelemetry-semantic-conventions, + pytestCheckHook, +}: +let + version = "0.5.1"; +in +buildPythonPackage { + pname = "opentelemetry-semantic-conventions-ai"; + inherit version; + pyproject = true; + + src = fetchPypi { + pname = "opentelemetry_semantic_conventions_ai"; + inherit version; + hash = "sha256-FTkGIA2MHS+OCb142+9SaRYCPehaw9qzWRK/r7af8Ew="; + }; + + build-system = [ hatchling ]; + + dependencies = [ + opentelemetry-sdk + opentelemetry-semantic-conventions + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ "opentelemetry.semconv_ai" ]; + + meta = { + description = "Open-source observability for your GenAI or LLM application, based on OpenTelemetry"; + homepage = "https://github.com/traceloop/openllmetry/tree/main/packages/opentelemetry-semantic-conventions-ai"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ lach ]; + }; +} diff --git a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix index 99769b3ffec4e..8c415e19b5591 100644 --- a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix +++ b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix @@ -5,6 +5,7 @@ opentelemetry-api, opentelemetry-instrumentation, opentelemetry-sdk, + requests, }: buildPythonPackage { @@ -23,6 +24,7 @@ buildPythonPackage { asgiref opentelemetry-api opentelemetry-sdk + requests ]; pythonImportsCheck = [ "opentelemetry.test" ]; diff --git a/pkgs/development/python-modules/opuslib-next/ctypes.patch b/pkgs/development/python-modules/opuslib-next/ctypes.patch new file mode 100644 index 0000000000000..6d380643d0218 --- /dev/null +++ b/pkgs/development/python-modules/opuslib-next/ctypes.patch @@ -0,0 +1,13 @@ +diff --git a/opuslib_next/api/__init__.py b/opuslib_next/api/__init__.py +index dc498b2..b2ded08 100644 +--- a/opuslib_next/api/__init__.py ++++ b/opuslib_next/api/__init__.py +@@ -15,7 +15,7 @@ __copyright__ = "Copyright (c) 2025, Kalicyh" + __license__ = "BSD 3-Clause License" + + +-lib_location = find_library("opus") ++lib_location = "@libopus@" + + if lib_location is None: + # find opus library in macOS diff --git a/pkgs/development/python-modules/opuslib-next/default.nix b/pkgs/development/python-modules/opuslib-next/default.nix new file mode 100644 index 0000000000000..3d4a30b96c0fe --- /dev/null +++ b/pkgs/development/python-modules/opuslib-next/default.nix @@ -0,0 +1,54 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + hatchling, + libopus, + pytestCheckHook, + replaceVars, + stdenv, +}: + +buildPythonPackage (finalAttrs: { + pname = "opuslib-next"; + version = "1.3.0"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "kalicyh"; + repo = "opuslib-next"; + tag = "v${finalAttrs.version}"; + hash = "sha256-rR1tsijKUBUH3bZZSISsx1JUO35TZevcTcfPtoQow/E="; + }; + + patches = [ + (replaceVars ./ctypes.patch { + libopus = "${lib.getLib libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}"; + }) + ]; + + build-system = [ + hatchling + ]; + + buildInputs = [ + libopus + ]; + + nativeCheckInputs = [ + pytestCheckHook + ]; + + pythonImportsCheck = [ + "opuslib_next" + ]; + + meta = { + description = "Python bindings to the libopus, IETF low-delay audio codec"; + homepage = "https://github.com/kalicyh/opuslib-next"; + changelog = "https://github.com/kalicyh/opuslib-next/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.bsd3; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix index 4c59abd298a7b..7232c5d0f8ea4 100644 --- a/pkgs/development/python-modules/orjson/default.nix +++ b/pkgs/development/python-modules/orjson/default.nix @@ -29,14 +29,14 @@ buildPythonPackage rec { pname = "orjson"; - version = "3.11.7"; + version = "3.11.9"; pyproject = true; src = fetchFromGitHub { owner = "ijl"; repo = "orjson"; tag = version; - hash = "sha256-4a8vNQEe1P1t2BcqSL+d+GLHi1lhUtbA7p5/vj/J0Lc="; + hash = "sha256-CCwpD6pzO80GlMvjJt4HURQxbghYg53OG/6ZIJWggNU="; }; patches = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ @@ -46,7 +46,7 @@ buildPythonPackage rec { cargoDeps = rustPlatform.fetchCargoVendor { inherit pname version src; - hash = "sha256-eB7jVTsvBSUjtaKsbRnRtYSd+SqnCaoDyG76iExmSHc="; + hash = "sha256-F1TFEj26trVV0TjK6tkS8kiorWRF0uijb1jQko7RDSM="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/oslo-i18n/default.nix b/pkgs/development/python-modules/oslo-i18n/default.nix index 3cad5136d8586..50fd28dcb0c5c 100644 --- a/pkgs/development/python-modules/oslo-i18n/default.nix +++ b/pkgs/development/python-modules/oslo-i18n/default.nix @@ -41,8 +41,8 @@ buildPythonPackage rec { runHook preCheck stestr run -e <(echo " - # test counts warnings which no longer matches in python 3.11 - oslo_i18n.tests.test_message.MessageTestCase.test_translate_message_bad_translation + # list is not deduped + oslo_i18n.tests.test_gettextutils.GettextTest.test_get_available_languages ") runHook postCheck diff --git a/pkgs/development/python-modules/ouman-eh-800-api/default.nix b/pkgs/development/python-modules/ouman-eh-800-api/default.nix index e84d768dce1a4..05e87357b57cb 100644 --- a/pkgs/development/python-modules/ouman-eh-800-api/default.nix +++ b/pkgs/development/python-modules/ouman-eh-800-api/default.nix @@ -13,7 +13,7 @@ buildPythonPackage (finalAttrs: { pname = "ouman-eh-800-api"; - version = "0.5.0"; + version = "1.0.0"; pyproject = true; disabled = pythonOlder "3.13"; @@ -22,7 +22,7 @@ buildPythonPackage (finalAttrs: { owner = "Markus98"; repo = "ouman-eh-800-api"; tag = "v${finalAttrs.version}"; - hash = "sha256-1CEn44Uw+OH4DXcATt6qvsi3Ce4ghorWyS7lBhO2lH4="; + hash = "sha256-lY6aC2d31M4I5O1J9vIBH83MMiJ941cMixTsGP5I0OM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/ovmfvartool/default.nix b/pkgs/development/python-modules/ovmfvartool/default.nix index 9dea32157d9bf..9518d67039213 100644 --- a/pkgs/development/python-modules/ovmfvartool/default.nix +++ b/pkgs/development/python-modules/ovmfvartool/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchFromGitHub, pyyaml, + nixosTests, }: buildPythonPackage { @@ -11,10 +12,11 @@ buildPythonPackage { format = "setuptools"; src = fetchFromGitHub { - owner = "hlandau"; + # https://github.com/hlandau/ovmfvartool/pull/4 + owner = "baloo"; repo = "ovmfvartool"; - rev = "45e6b1e53967ee6590faae454c076febce096931"; - hash = "sha256-XbvcE/MXNj5S5N7A7jxdwgEE5yMuB82Xg+PYBsFRIm0="; + rev = "6a17190131bf44699ea27815543a65efff880142"; + hash = "sha256-lIneg3kL21oxqjsraogGlOVsgmYnp38CPav1TwBg0p0="; }; propagatedBuildInputs = [ pyyaml ]; @@ -24,6 +26,10 @@ buildPythonPackage { pythonImportsCheck = [ "ovmfvartool" ]; + passthru.tests = { + inherit (nixosTests.nixos-test-driver) efivars; + }; + meta = { description = "Parse and generate OVMF_VARS.fd from Yaml"; mainProgram = "ovmfvartool"; diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix index ebf39f5d92cde..25e98c490a215 100644 --- a/pkgs/development/python-modules/packaging/default.nix +++ b/pkgs/development/python-modules/packaging/default.nix @@ -7,56 +7,54 @@ flit-core, # tests + packaging, pretend, pytestCheckHook, }: -let - packaging = buildPythonPackage rec { - pname = "packaging"; - version = "26.1"; - pyproject = true; +buildPythonPackage (finalAttrs: { + pname = "packaging"; + version = "26.2"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-8EIVK2gcS/rFyuJ0KlXhA9J6suwPPYgDcTa2v+fJxd4="; - }; - - nativeBuildInputs = [ flit-core ]; - - nativeCheckInputs = [ - pytestCheckHook - pretend - ]; + src = fetchPypi { + inherit (finalAttrs) pname version; + hash = "sha256-/0Uv9aPoKM4RAZD+/xF4ux8uoigfogdarbmHwvsiFmE="; + }; - pythonImportsCheck = [ - "packaging" - "packaging.metadata" - "packaging.requirements" - "packaging.specifiers" - "packaging.tags" - "packaging.version" + nativeBuildInputs = [ flit-core ]; + + nativeCheckInputs = [ + pytestCheckHook + pretend + ]; + + pythonImportsCheck = [ + "packaging" + "packaging.metadata" + "packaging.requirements" + "packaging.specifiers" + "packaging.tags" + "packaging.version" + ]; + + # Prevent circular dependency with pytest + doCheck = false; + + passthru.tests = packaging.overridePythonAttrs (_: { + doCheck = true; + }); + + meta = { + changelog = "https://github.com/pypa/packaging/blob/${finalAttrs.version}/CHANGELOG.rst"; + description = "Core utilities for Python packages"; + downloadPage = "https://github.com/pypa/packaging"; + homepage = "https://packaging.pypa.io/"; + license = with lib.licenses; [ + bsd2 + asl20 ]; - - # Prevent circular dependency with pytest - doCheck = false; - - passthru.tests = packaging.overridePythonAttrs (_: { - doCheck = true; - }); - - meta = { - changelog = "https://github.com/pypa/packaging/blob/${version}/CHANGELOG.rst"; - description = "Core utilities for Python packages"; - downloadPage = "https://github.com/pypa/packaging"; - homepage = "https://packaging.pypa.io/"; - license = with lib.licenses; [ - bsd2 - asl20 - ]; - maintainers = with lib.maintainers; [ bennofs ]; - teams = [ lib.teams.python ]; - }; + maintainers = with lib.maintainers; [ bennofs ]; + teams = [ lib.teams.python ]; }; -in -packaging +}) diff --git a/pkgs/development/python-modules/pajgps-api/default.nix b/pkgs/development/python-modules/pajgps-api/default.nix index 88acca389028b..a3b2b2423fd76 100644 --- a/pkgs/development/python-modules/pajgps-api/default.nix +++ b/pkgs/development/python-modules/pajgps-api/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "pajgps-api"; - version = "0.3.1"; + version = "0.4.0"; pyproject = true; src = fetchFromGitHub { owner = "skipperro"; repo = "pajgps-api"; tag = finalAttrs.version; - hash = "sha256-OJbWF5KcqyRud0Sfx7rME+mXIjiZQD9UxD3vpeV6RWY="; + hash = "sha256-7NVr75ss9vUjyn0Yz+bpZVdN4gDx4gvpdDV1bWLKOIQ="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix index 947122608e8c5..a0519d35c2abd 100644 --- a/pkgs/development/python-modules/pandas/default.nix +++ b/pkgs/development/python-modules/pandas/default.nix @@ -63,14 +63,17 @@ let pandas = buildPythonPackage rec { pname = "pandas"; - version = "2.3.3"; + version = "3.0.4"; pyproject = true; src = fetchFromGitHub { owner = "pandas-dev"; repo = "pandas"; tag = "v${version}"; - hash = "sha256-jY1uM9HmJzoFk26ilbtzJnxAsQhmXS19r73JcFeFWRQ="; + postFetch = '' + sed -i 's/git_refnames = "[^"]*"/git_refnames = " (tag: ${src.tag})"/' $out/pandas/_version.py + ''; + hash = "sha256-cPnvBVs5xXjbRoj6KU/KeNn+To9oue7H0OBaJ2JdJG4="; }; # A NOTE regarding the Numpy version relaxing: Both Numpy versions 1.x & @@ -86,7 +89,7 @@ let # that override globally the `numpy` attribute to point to `numpy_1`. postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail "numpy>=2.0" numpy + --replace-fail "numpy>=2.0.0" numpy ''; build-system = [ diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix index 6350ba2e5a8a5..5e99e2ce79d55 100644 --- a/pkgs/development/python-modules/paramiko/default.nix +++ b/pkgs/development/python-modules/paramiko/default.nix @@ -3,26 +3,25 @@ bcrypt, buildPythonPackage, cryptography, - fetchPypi, - gssapi, + fetchFromGitHub, icecream, invoke, - mock, - pyasn1, pynacl, pytest-relaxed, pytestCheckHook, setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "paramiko"; - version = "4.0.0"; + version = "5.0.0"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-aiXwezgMycmojSuSCtNxZ6xGZ/jZiGzOvY+Q9lS11p8="; + src = fetchFromGitHub { + owner = "paramiko"; + repo = "paramiko"; + tag = finalAttrs.version; + hash = "sha256-zzbM2oGaZ5jkIN7LyDGuMAKSpSmUwpBbup6MBVdTaXA="; }; build-system = [ setuptools ]; @@ -34,21 +33,11 @@ buildPythonPackage rec { pynacl ]; - optional-dependencies = { - gssapi = [ - pyasn1 - gssapi - ]; - ed25519 = [ ]; - }; - nativeCheckInputs = [ icecream - mock pytestCheckHook pytest-relaxed - ] - ++ lib.concatAttrValues optional-dependencies; + ]; pythonImportsCheck = [ "paramiko" ]; @@ -56,7 +45,7 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/paramiko/paramiko/"; - changelog = "https://github.com/paramiko/paramiko/blob/${version}/sites/www/changelog.rst"; + changelog = "https://github.com/paramiko/paramiko/blob/${finalAttrs.src.tag}/sites/www/changelog.rst"; description = "Native Python SSHv2 protocol library"; license = lib.licenses.lgpl21Plus; longDescription = '' @@ -66,4 +55,4 @@ buildPythonPackage rec { supported. SFTP client and server mode are both supported too. ''; }; -} +}) diff --git a/pkgs/development/python-modules/pathable/default.nix b/pkgs/development/python-modules/pathable/default.nix index 4921616d1c145..85e7f7593a8cf 100644 --- a/pkgs/development/python-modules/pathable/default.nix +++ b/pkgs/development/python-modules/pathable/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "pathable"; - version = "0.5.0"; + version = "0.6.0"; pyproject = true; src = fetchFromGitHub { owner = "p1c2u"; repo = "pathable"; tag = version; - hash = "sha256-D3TYVMcKXPA6fmy2JND5o8ja3Rk8Ne17Sxm4+fLw3Dw="; + hash = "sha256-DjIn+hXZvx4tKyzQlWPwIxHD8vWy/jEvhdFY6HC+sdo="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix index 925f2896c54bc..a0f0b47f599f1 100644 --- a/pkgs/development/python-modules/pathspec/default.nix +++ b/pkgs/development/python-modules/pathspec/default.nix @@ -14,12 +14,12 @@ buildPythonPackage rec { pname = "pathspec"; - version = "1.0.4"; + version = "1.1.1"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-AhDiroohqRN8DUcFeMsOWVr4ftqm6/Ev8XbxSgLg5kU="; + hash = "sha256-F9tezVJBBKEg4XOBTJA2epapjQfEWy4QwvORn/+Rv1o="; }; nativeBuildInputs = [ flit-core ]; diff --git a/pkgs/development/python-modules/pdm-backend/default.nix b/pkgs/development/python-modules/pdm-backend/default.nix index 4170d421d632c..e4bf513d4f554 100644 --- a/pkgs/development/python-modules/pdm-backend/default.nix +++ b/pkgs/development/python-modules/pdm-backend/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "pdm-backend"; - version = "2.4.8"; + version = "2.4.9"; pyproject = true; src = fetchFromGitHub { owner = "pdm-project"; repo = "pdm-backend"; tag = version; - hash = "sha256-zh+JP1sX+ra3Z6oVgxOabwMmD/bQjokdb0MelZ0k1KQ="; + hash = "sha256-082ZSfRUGUV8DX+vuJeOd+HOuAfnKfZPZ3Lyhx6TRlE="; }; env.PDM_BUILD_SCM_VERSION = version; diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix index 2a30200bf2696..0ca5fd267f9ee 100644 --- a/pkgs/development/python-modules/pendulum/default.nix +++ b/pkgs/development/python-modules/pendulum/default.nix @@ -3,65 +3,60 @@ stdenv, buildPythonPackage, fetchFromGitHub, - isPyPy, # build-system - poetry-core, rustPlatform, - # native dependencies - iconv, - # dependencies python-dateutil, - time-machine, tzdata, # tests pytestCheckHook, - pytz, + time-machine, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pendulum"; - version = "3.1.0-unstable-2025-10-28"; + version = "3.2.0"; pyproject = true; src = fetchFromGitHub { owner = "sdispater"; repo = "pendulum"; - rev = "2982f25feaad2e58ad1530d3b53cc30fc1c82bd6"; - hash = "sha256-1ULvlWLZx3z5eGmWJfrN46x0ohJ+mAxipm6l6rykGPY="; + tag = finalAttrs.version; + hash = "sha256-zpBymeYhCy+yu6RPhOuN5xOVk6928hd3+oRsfiBPPuY="; }; + patches = [ + # Fix the build on Darwin. + # + # + ./delete-obsolete-cargo-toml.patch + ]; + cargoRoot = "rust"; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname version src; - sourceRoot = "${src.name}/rust"; - hash = "sha256-Ozg+TW/woJsqmbmyDsgdMua3Lmnn+KBvBhd9kVik3XY="; + inherit (finalAttrs) pname version src; + sourceRoot = "${finalAttrs.src.name}/rust"; + hash = "sha256-tC65lxI561ygOhBFujWzGk32XiQH6QB42nqboWSfQrg="; }; nativeBuildInputs = [ - poetry-core rustPlatform.maturinBuildHook rustPlatform.cargoSetupHook ]; - buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ iconv ]; - - propagatedBuildInputs = [ + dependencies = [ python-dateutil tzdata - ] - ++ lib.optionals (!isPyPy) [ - time-machine ]; pythonImportsCheck = [ "pendulum" ]; nativeCheckInputs = [ pytestCheckHook - pytz + time-machine ]; disabledTestPaths = [ @@ -75,8 +70,8 @@ buildPythonPackage rec { meta = { description = "Python datetimes made easy"; homepage = "https://github.com/sdispater/pendulum"; - changelog = "https://github.com/sdispater/pendulum/blob/${src.rev}/CHANGELOG.md"; + changelog = "https://github.com/sdispater/pendulum/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/pendulum/delete-obsolete-cargo-toml.patch b/pkgs/development/python-modules/pendulum/delete-obsolete-cargo-toml.patch new file mode 100644 index 0000000000000..5e841e26145fa --- /dev/null +++ b/pkgs/development/python-modules/pendulum/delete-obsolete-cargo-toml.patch @@ -0,0 +1,39 @@ +From dd0c442ab1f50f19dde95875b39a6a4463e6e835 Mon Sep 17 00:00:00 2001 +From: Emily +Date: Sat, 4 Jul 2026 18:18:19 +0100 +Subject: [PATCH] Delete obsolete `.cargo/config.toml` + +Maturin adds these flags by itself, but the presence of this file can +seemingly cause them to not get added at all in some environments, +likely related to them using their own `.cargo/config.toml` file. + +This was possibly caused by +, +as we noticed it when bumping Maturin past that commit in +Nixpkgs. Removing the file fixes the macOS build in our environment. +--- + rust/.cargo/config.toml | 15 --------------- + 1 file changed, 15 deletions(-) + delete mode 100644 rust/.cargo/config.toml + +diff --git a/rust/.cargo/config.toml b/rust/.cargo/config.toml +deleted file mode 100644 +index f0ba8af4..00000000 +--- a/rust/.cargo/config.toml ++++ /dev/null +@@ -1,15 +0,0 @@ +-[build] +-rustflags = [] +- +-# see https://pyo3.rs/main/building_and_distribution.html#macos +-[target.x86_64-apple-darwin] +-rustflags = [ +- "-C", "link-arg=-undefined", +- "-C", "link-arg=dynamic_lookup", +-] +- +-[target.aarch64-apple-darwin] +-rustflags = [ +- "-C", "link-arg=-undefined", +- "-C", "link-arg=dynamic_lookup", +-] diff --git a/pkgs/development/python-modules/phply/default.nix b/pkgs/development/python-modules/phply/default.nix index 392c5e264a33c..087da4f1a8d27 100644 --- a/pkgs/development/python-modules/phply/default.nix +++ b/pkgs/development/python-modules/phply/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchPypi, - setuptools, + setuptools_80, ply, pytestCheckHook, }: @@ -18,7 +18,7 @@ buildPythonPackage rec { hash = "sha256-Cyd3TShfUHo0RYBaBfj7KZj1bXCScPeLiSCLZbDYSRc="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ ply ]; diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix index cb7214e768fbd..3dc5a86987481 100644 --- a/pkgs/development/python-modules/pikepdf/default.nix +++ b/pkgs/development/python-modules/pikepdf/default.nix @@ -1,7 +1,10 @@ { lib, + stdenv, attrs, buildPythonPackage, + clang-tools, + cmake, fetchFromGitHub, hypothesis, jbig2dec, @@ -9,23 +12,24 @@ lxml, withMupdf ? false, mupdf-headless, + nanobind, + ninja, numpy, packaging, pillow, psutil, - pybind11, pytest-xdist, pytestCheckHook, python-dateutil, python-xmp-toolkit, qpdf, - setuptools, replaceVars, + scikit-build-core, }: buildPythonPackage rec { pname = "pikepdf"; - version = "10.5.1"; + version = "10.8.0"; pyproject = true; src = fetchFromGitHub { @@ -38,7 +42,7 @@ buildPythonPackage rec { postFetch = '' rm "$out/.git_archival.txt" ''; - hash = "sha256-x17cRef8rB5UQQws48G/IqeSp4B3CaLzIoUIQ8fJeUg="; + hash = "sha256-ih5QC6VVl7dGvamp3FRzahnpEDjdO8gGFNVX19Bu8LE="; }; patches = [ @@ -54,18 +58,24 @@ buildPythonPackage rec { }) ]; - postPatch = '' - substituteInPlace setup.py \ - --replace-fail "shims_enabled = not cflags_defined" "shims_enabled = False" - ''; - buildInputs = [ qpdf ]; build-system = [ - pybind11 - setuptools + cmake + nanobind + ninja + scikit-build-core + ] + ++ lib.optionals stdenv.cc.isClang [ + # Pick up the `clang-scan-deps` wrapper for CMake; see: + # + # * + # * + clang-tools ]; + dontUseCmakeConfigure = true; + nativeCheckInputs = [ attrs hypothesis diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix index e2c0b2eb75ad6..e19a87b695eb8 100644 --- a/pkgs/development/python-modules/pillow/default.nix +++ b/pkgs/development/python-modules/pillow/default.nix @@ -42,14 +42,14 @@ buildPythonPackage rec { pname = "pillow"; - version = "12.2.0"; + version = "12.3.0"; pyproject = true; src = fetchFromGitHub { owner = "python-pillow"; repo = "pillow"; tag = version; - hash = "sha256-7w6FbZLTAoUMvLtSPvafk3wSRv8TrkAAfgZ/dfu3HpA="; + hash = "sha256-kmUlgR+f75Y8DAKKPdEbchLLgg0m95oyVP53WTQni88="; }; build-system = [ diff --git a/pkgs/development/python-modules/plaster-pastedeploy/default.nix b/pkgs/development/python-modules/plaster-pastedeploy/default.nix index 05e7a02e49b77..ab5a8f6dd902c 100644 --- a/pkgs/development/python-modules/plaster-pastedeploy/default.nix +++ b/pkgs/development/python-modules/plaster-pastedeploy/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchPypi, + setuptools_80, plaster, pastedeploy, pytestCheckHook, @@ -10,7 +11,7 @@ buildPythonPackage rec { pname = "plaster-pastedeploy"; version = "1.0.1"; - format = "setuptools"; + pyproject = true; src = fetchPypi { pname = "plaster_pastedeploy"; @@ -18,7 +19,9 @@ buildPythonPackage rec { hash = "sha256-viYubS5BpyZIddqi/ihQy7BhVyi83JKCj9xyc244FBI="; }; - propagatedBuildInputs = [ + build-system = [ setuptools_80 ]; + + dependencies = [ plaster pastedeploy ]; diff --git a/pkgs/development/python-modules/platformdirs/default.nix b/pkgs/development/python-modules/platformdirs/default.nix index fd0cc9667c0de..3c81d609b50fa 100644 --- a/pkgs/development/python-modules/platformdirs/default.nix +++ b/pkgs/development/python-modules/platformdirs/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "platformdirs"; - version = "4.5.1"; + version = "4.9.6"; pyproject = true; src = fetchFromGitHub { owner = "tox-dev"; repo = "platformdirs"; tag = version; - hash = "sha256-wDhhfS8r0fCYOUJUu2kwH+fyTPmS+aPUiqWN21Fedoc="; + hash = "sha256-/aoJquWRn1UQZa96uZba15tDO+IGEHN9/duu9JYXmd4="; }; build-system = [ @@ -34,6 +34,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "platformdirs" ]; + preCheck = '' + unset XDG_DATA_DIRS + ''; + meta = { description = "Module for determining appropriate platform-specific directories"; homepage = "https://platformdirs.readthedocs.io/"; diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix index be7b67a21b50d..d158236eff784 100644 --- a/pkgs/development/python-modules/poetry-core/default.nix +++ b/pkgs/development/python-modules/poetry-core/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "poetry-core"; - version = "2.3.2"; + version = "2.4.0"; pyproject = true; src = fetchFromGitHub { owner = "python-poetry"; repo = "poetry-core"; tag = version; - hash = "sha256-Rv6JCHsqu5rRvihGaUFcRk/NUT90bnIUM01QxUUkxh4="; + hash = "sha256-i9EucMsoX8Z0iyhNDVYaczv1CSY/KaZpMjn/FGzIJU4="; }; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/polars/default.nix b/pkgs/development/python-modules/polars/default.nix index 41ff1ff2918ee..3d1fdfb9c674c 100644 --- a/pkgs/development/python-modules/polars/default.nix +++ b/pkgs/development/python-modules/polars/default.nix @@ -36,33 +36,31 @@ assert builtins.elem "--disable-initial-exec-tls" jemalloc'.configureFlags; jemalloc', - polars, python, }: let - version = "1.40.1"; # Hide symbols to prevent accidental use rust-jemalloc-sys = throw "polars: use polarsMemoryAllocator over rust-jemalloc-sys"; jemalloc = throw "polars: use polarsMemoryAllocator over jemalloc"; in -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "polars"; - inherit version; + version = "1.41.2"; pyproject = true; src = fetchFromGitHub { owner = "pola-rs"; repo = "polars"; - tag = "py-${version}"; - hash = "sha256-QlrEYwoYPALELK3UGBC/92vCBIzFrigJAwU8qxn7Pys="; + tag = "py-${finalAttrs.version}"; + hash = "sha256-Wys56Tj75+7sNNwi3U5a62Wwkddep/W1MjtAHOuDdwc="; }; cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname version src; - hash = "sha256-rmCJ5SY5okvkgfd63yPDO2YOksqAWgKa9nqxTqP7Grw="; + inherit (finalAttrs) pname version src; + hash = "sha256-tmc8n0TVaXmc4C8XXTgPVsTRs0C/V+88f6T1vOamt00="; }; requiredSystemFeatures = [ "big-parallel" ]; @@ -128,7 +126,7 @@ buildPythonPackage rec { nativeBuildInputs = [ (python.withPackages (ps: [ ps.pyarrow - polars + finalAttrs.finalPackage ])) ]; } @@ -145,7 +143,7 @@ buildPythonPackage rec { nativeBuildInputs = [ (python.withPackages (ps: [ ps.pyarrow - polars + finalAttrs.finalPackage ])) ]; failureHook = '' @@ -159,13 +157,13 @@ buildPythonPackage rec { EOF ''; passthru.tests.pytest = stdenv.mkDerivation { - pname = "${polars.pname}-pytest"; + pname = "${finalAttrs.pname}-pytest"; - inherit (polars) version src; + inherit (finalAttrs) version src; requiredSystemFeatures = [ "big-parallel" ]; - sourceRoot = "${src.name}/py-polars"; + sourceRoot = "${finalAttrs.src.name}/py-polars"; postPatch = '' for f in * ; do [[ "$f" == "tests" ]] || \ @@ -183,7 +181,7 @@ buildPythonPackage rec { checkPhase = "pytestCheckPhase"; nativeBuildInputs = [ (python.withPackages (ps: [ - polars + finalAttrs.finalPackage ps.aiosqlite ps.altair ps.boto3 @@ -217,7 +215,6 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ pytestCheckHook - pytest-codspeed pytest-cov-stub pytest-xdist pytest-benchmark @@ -292,7 +289,7 @@ buildPythonPackage rec { meta = { description = "Dataframes powered by a multithreaded, vectorized query engine, written in Rust"; homepage = "https://github.com/pola-rs/polars"; - changelog = "https://github.com/pola-rs/polars/releases/tag/py-${version}"; + changelog = "https://github.com/pola-rs/polars/releases/tag/py-${finalAttrs.version}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ happysalada @@ -301,4 +298,4 @@ buildPythonPackage rec { mainProgram = "polars"; platforms = lib.platforms.all; }; -} +}) diff --git a/pkgs/development/python-modules/prawcore/default.nix b/pkgs/development/python-modules/prawcore/default.nix index 790594cde747e..22c34f8302dda 100644 --- a/pkgs/development/python-modules/prawcore/default.nix +++ b/pkgs/development/python-modules/prawcore/default.nix @@ -39,6 +39,11 @@ buildPythonPackage (finalAttrs: { pytestCheckHook ]; + disabledTests = [ + # fixture out of date + "test_request__session_timeout_default" + ]; + disabledTestPaths = [ # tests requiring network "tests/integration" diff --git a/pkgs/development/python-modules/propcache/default.nix b/pkgs/development/python-modules/propcache/default.nix index d7d7db06793c2..43aeadad29d1b 100644 --- a/pkgs/development/python-modules/propcache/default.nix +++ b/pkgs/development/python-modules/propcache/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "propcache"; - version = "0.4.1"; + version = "0.5.2"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "propcache"; tag = "v${version}"; - hash = "sha256-7HQUOggbFC7kWcXqatLeCTNJqo0fW9FRCy8UkYL6wvM="; + hash = "sha256-vn6FSdWEMk6c8Cu1mHyhZyH8ZlFK0kgYK8T7GKLHHwc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/protobuf/5.nix b/pkgs/development/python-modules/protobuf/5.nix index 5e44c82d463ff..dcfbf72e415c3 100644 --- a/pkgs/development/python-modules/protobuf/5.nix +++ b/pkgs/development/python-modules/protobuf/5.nix @@ -10,6 +10,7 @@ buildPythonPackage rec { pname = "protobuf"; version = "5.29.6"; pyproject = true; + __structuredAttrs = true; # nixpkgs-update: no auto update src = fetchPypi { diff --git a/pkgs/development/python-modules/protobuf/6.nix b/pkgs/development/python-modules/protobuf/6.nix index 6c96954b0df70..8259f224f1319 100644 --- a/pkgs/development/python-modules/protobuf/6.nix +++ b/pkgs/development/python-modules/protobuf/6.nix @@ -11,6 +11,7 @@ buildPythonPackage (finalAttrs: { pname = "protobuf"; version = "6.33.6"; pyproject = true; + __structuredAttrs = true; src = fetchPypi { inherit (finalAttrs) pname version; diff --git a/pkgs/development/python-modules/protobuf/7.nix b/pkgs/development/python-modules/protobuf/7.nix index 2ca17523a3e6e..203c3b9c118a3 100644 --- a/pkgs/development/python-modules/protobuf/7.nix +++ b/pkgs/development/python-modules/protobuf/7.nix @@ -9,12 +9,13 @@ buildPythonPackage (finalAttrs: { pname = "protobuf"; - version = "7.34.1"; + version = "7.35.1"; pyproject = true; + __structuredAttrs = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-nOQiRecEzFAnvnl8HbHrkxhNRNHN1xgR+y2bJa1UEoA="; + hash = "sha256-zhFaJv4MOaLCmXPZFNMn5RamRVRkSJ/jzR5RobNU+Bo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/prowlpy/default.nix b/pkgs/development/python-modules/prowlpy/default.nix index f69da1bc04c07..a6368e345efee 100644 --- a/pkgs/development/python-modules/prowlpy/default.nix +++ b/pkgs/development/python-modules/prowlpy/default.nix @@ -43,6 +43,7 @@ buildPythonPackage (finalAttrs: { pythonImportsCheck = [ "prowlpy" ]; nativeCheckInputs = [ + cacert pytest-asyncio pytest-cov-stub pytestCheckHook @@ -50,12 +51,6 @@ buildPythonPackage (finalAttrs: { ] ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; - preCheck = '' - # Without this pyreqwest fails with - # unexpected error: No CA certificates were loaded from the system - export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" - ''; - # tests fail without this pytestFlags = [ "-v" ]; diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix index ae962b95e9783..3a00ad8401762 100644 --- a/pkgs/development/python-modules/psautohint/default.nix +++ b/pkgs/development/python-modules/psautohint/default.nix @@ -2,10 +2,9 @@ lib, buildPythonPackage, fetchFromGitHub, - fonttools, - lxml, - fs, # for fonttools extras + setuptools, setuptools-scm, + fonttools, pytestCheckHook, pytest-cov-stub, pytest-xdist, @@ -13,31 +12,32 @@ psautohint, # for passthru.tests }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "psautohint"; version = "2.4.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "adobe-type-tools"; repo = "psautohint"; - rev = "v${version}"; + tag = "v${finalAttrs.version}"; sha256 = "125nx7accvbk626qlfar90va1995kp9qfrz6a978q4kv2kk37xai"; fetchSubmodules = true; # data dir for tests }; postPatch = '' - echo '#define PSAUTOHINT_VERSION "${version}"' > libpsautohint/src/version.h + echo '#define PSAUTOHINT_VERSION "${finalAttrs.version}"' > libpsautohint/src/version.h sed -i '/use_scm_version/,+3d' setup.py - sed -i '/setup(/a \ version="${version}",' setup.py + sed -i '/setup(/a \ version="${finalAttrs.version}",' setup.py ''; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ + setuptools + setuptools-scm + ]; - propagatedBuildInputs = [ + dependencies = [ fonttools - lxml - fs ]; nativeCheckInputs = [ @@ -45,6 +45,7 @@ buildPythonPackage rec { pytest-cov-stub pytest-xdist ]; + disabledTests = lib.optionals (!runAllTests) [ # Slow tests, reduces test time from ~5 mins to ~30s "test_mmufo" @@ -69,4 +70,4 @@ buildPythonPackage rec { license = lib.licenses.bsd3; maintainers = [ lib.maintainers.sternenseemann ]; }; -} +}) diff --git a/pkgs/development/python-modules/py-ccm15/default.nix b/pkgs/development/python-modules/py-ccm15/default.nix index d6371c1e012b1..ace59fce7e144 100644 --- a/pkgs/development/python-modules/py-ccm15/default.nix +++ b/pkgs/development/python-modules/py-ccm15/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "py-ccm15"; - version = "0.1.2"; + version = "1.1.2"; pyproject = true; src = fetchFromGitHub { @@ -21,7 +21,7 @@ buildPythonPackage rec { # Therefore it should not be marked unstable # upstream issue: https://github.com/ocalvo/py-ccm15/issues/10 tag = "v${version}"; - hash = "sha256-QfitJzCFk0gnlcCvvKzuI4fS1lVm79q4xaDZFKKt458="; + hash = "sha256-qEowsu7ebnD5eCR7SiWEqLwR3yqoqOnuw4wSQm4rmHQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/py-synologydsm-api/default.nix b/pkgs/development/python-modules/py-synologydsm-api/default.nix index 2129c2f1e5232..02db8b9fae269 100644 --- a/pkgs/development/python-modules/py-synologydsm-api/default.nix +++ b/pkgs/development/python-modules/py-synologydsm-api/default.nix @@ -13,14 +13,14 @@ buildPythonPackage rec { pname = "py-synologydsm-api"; - version = "2.10.1"; + version = "2.10.2"; pyproject = true; src = fetchFromGitHub { owner = "mib1185"; repo = "py-synologydsm-api"; tag = "v${version}"; - hash = "sha256-3NfI+wth0UTBbByFIsUgyyu7SCmbpNu8necNl7KOAxY="; + hash = "sha256-LILtlgUCSL+107axBZOIjqbS4kAXWLxt9936tpvW3XA="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pyanglianwater/default.nix b/pkgs/development/python-modules/pyanglianwater/default.nix index 311e81b2f1a62..becb9af2a267e 100644 --- a/pkgs/development/python-modules/pyanglianwater/default.nix +++ b/pkgs/development/python-modules/pyanglianwater/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyanglianwater"; - version = "3.2.3"; + version = "3.2.4"; pyproject = true; src = fetchFromGitHub { owner = "pantherale0"; repo = "pyanglianwater"; tag = version; - hash = "sha256-hXHkRiKnv59TW1Wr2aJcMvW65SQbkfSokGjh9AvmN3s="; + hash = "sha256-AkdWWiw1FMs/uuJNSocMBpReXY2mrxouQfWuu4ntRWY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix index 9f4366c6685dc..f21dac9e39cc9 100644 --- a/pkgs/development/python-modules/pyarrow/default.nix +++ b/pkgs/development/python-modules/pyarrow/default.nix @@ -11,14 +11,16 @@ cython, fsspec, hypothesis, + libcst, + ninja, numpy, pandas, pytestCheckHook, pytest-lazy-fixture, pkg-config, + scikit-build-core, setuptools, setuptools-scm, - oldest-supported-numpy, }: let @@ -32,18 +34,21 @@ buildPythonPackage rec { sourceRoot = "${src.name}/python"; - nativeBuildInputs = [ + build-system = [ + scikit-build-core cmake cython + libcst + ninja + numpy pkg-config setuptools setuptools-scm - oldest-supported-numpy ]; buildInputs = [ arrow-cpp ]; - propagatedBuildInputs = [ + dependencies = [ cffi numpy ]; @@ -134,6 +139,12 @@ buildPythonPackage rec { "pyarrow/tests/test_udf.py::test_scalar_input" "pyarrow/tests/test_udf.py::test_scalar_udf_context" "pyarrow/tests/test_udf.py::test_udf_array_unary" + # CSV pickle mismatches + "pyarrow/tests/test_csv.py::TestThreadedStreamingCSVRead::test_invalid_row_handler[" + "pyarrow/tests/test_csv.py::TestThreadedStreamingCSVRead::test_row_number_offset_in_errors" + "pyarrow/tests/test_csv.py::TestThreadedStreamingCSVRead::test_row_number_offset_in_errors" + # Does not raise NotImplementedError + "pyarrow/tests/test_table.py::test_table_group_by_first" ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # Requires loopback networking. diff --git a/pkgs/development/python-modules/pybtex-docutils/default.nix b/pkgs/development/python-modules/pybtex-docutils/default.nix index 3933238316682..7b5752f79eed6 100644 --- a/pkgs/development/python-modules/pybtex-docutils/default.nix +++ b/pkgs/development/python-modules/pybtex-docutils/default.nix @@ -5,19 +5,22 @@ fetchPypi, pybtex, pytestCheckHook, + setuptools_80, }: buildPythonPackage rec { pname = "pybtex-docutils"; version = "1.0.3"; - format = "setuptools"; + pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-On69+StZPgDowcU4qpogvKXZLYQjESRxWsyWTVHZPGs="; }; - buildInputs = [ + build-system = [ setuptools_80 ]; + + dependencies = [ docutils pybtex ]; diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix index 49be840bf8f9c..c7c32e9e20d36 100644 --- a/pkgs/development/python-modules/pycurl/default.nix +++ b/pkgs/development/python-modules/pycurl/default.nix @@ -4,19 +4,21 @@ buildPythonPackage, isPyPy, fetchFromGitHub, - fetchpatch, + fetchpatch2, curl, openssl, bottle, pytestCheckHook, flaky, flask, + numpy, + websockets, setuptools, }: buildPythonPackage rec { pname = "pycurl"; - version = "7.45.6"; + version = "7.46.0"; pyproject = true; disabled = isPyPy; # https://github.com/pycurl/pycurl/issues/208 @@ -25,21 +27,14 @@ buildPythonPackage rec { owner = "pycurl"; repo = "pycurl"; tag = "REL_${lib.replaceStrings [ "." ] [ "_" ] version}"; - hash = "sha256-M4rO0CaI2SmjdJVS7hWnJZrL72WvayB4aKn707KoNiQ="; + hash = "sha256-F40bJ7TYFK2dVkDJGGxl7XV46fKmjwvUYYulcwGL6hk="; }; patches = [ - # curl 8.16 compatibility - (fetchpatch { - url = "https://github.com/pycurl/pycurl/commit/eb7f52eeef85feb6c117678d52803050bbdd7bc8.patch"; - hash = "sha256-hdwazS7R9duuMd/7S3SNAxVcToo3GhtyWu/1Q6qTMYc="; - }) - # curl 8.17+ compatibility - # https://github.com/pycurl/pycurl/pull/909 - (fetchpatch { - name = "pycurl-8.17.0-compat.patch"; - url = "https://github.com/pycurl/pycurl/commit/ea92e3ca230a3ff3d464cb6816102fa157177aca.patch"; - hash = "sha256-kmlsG0SFfS9FdRNp8pPgudcWK6hSyD9x5oAedZLgBcY="; + (fetchpatch2 { + name = "pycurl-curl-8.21.0-ws-support.patch"; + url = "https://github.com/pycurl/pycurl/commit/c78fd8aba82e2f8037275063138eaa7706c111af.diff?full_index=1"; + hash = "sha256-EBXgGiaMtXTsgJOOrzzZFJ7Q/ofAlc4zuipoEpfdFqU="; }) ]; @@ -64,6 +59,8 @@ buildPythonPackage rec { bottle flaky flask + numpy + websockets pytestCheckHook ]; @@ -90,24 +87,15 @@ buildPythonPackage rec { "test_libcurl_ssl_gnutls" # AssertionError: assert 'crypto' in ['curl'] "test_ssl_in_static_libs" - # https://github.com/pycurl/pycurl/issues/819 - "test_multi_socket_select" - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # https://github.com/pycurl/pycurl/issues/729 - "test_easy_pause_unpause" - "test_multi_socket_action" + # expected socketp to be None again after unassign() + "test_clear_via_assign_none_inside_callback_resets_socketp" + "test_multi_unassign_inside_socket_callback" ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ # Fatal Python error: Segmentation fault "cadata_test" ]; - disabledTestPaths = [ - # https://github.com/pycurl/pycurl/issues/856 - "tests/multi_test.py" - ]; - meta = { description = "Python Interface To The cURL library"; homepage = "http://pycurl.io/"; diff --git a/pkgs/development/python-modules/pydantic-core/default.nix b/pkgs/development/python-modules/pydantic-core/default.nix index c59679649a88b..6f580895976f4 100644 --- a/pkgs/development/python-modules/pydantic-core/default.nix +++ b/pkgs/development/python-modules/pydantic-core/default.nix @@ -2,9 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, - cargo, rustPlatform, - rustc, typing-extensions, pytestCheckHook, hypothesis, @@ -21,26 +19,31 @@ let pydantic-core = buildPythonPackage rec { pname = "pydantic-core"; - version = "2.41.5"; + version = "2.46.4"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; - repo = "pydantic-core"; - tag = "v${version}"; - hash = "sha256-oIYHLSep8tWOXEaUybXG8Gv9WBoPGQ1Aj7QyqYksvMw="; + repo = "pydantic"; + tag = "core-v${version}"; + hash = "sha256-G4Xo6BF6tOn4g/qG3RNDP3/+lYnCOuw3AB1OrVOGcSA="; }; + sourceRoot = "${src.name}/pydantic-core"; + cargoDeps = rustPlatform.fetchCargoVendor { - inherit pname version src; - hash = "sha256-Kvc0a34C6oGc9oS/iaPaazoVUWn5ABUgrmPa/YocV+Y="; + inherit + pname + version + src + sourceRoot + ; + hash = "sha256-5L317YTV7/Bc/YJLLzc745oJntiYkcZupdeUxiQwcOU="; }; nativeBuildInputs = [ - cargo rustPlatform.cargoSetupHook rustPlatform.maturinBuildHook - rustc ]; dependencies = [ typing-extensions ]; @@ -64,9 +67,8 @@ let ]; meta = { - changelog = "https://github.com/pydantic/pydantic-core/releases/tag/${src.tag}"; description = "Core validation logic for pydantic written in rust"; - homepage = "https://github.com/pydantic/pydantic-core"; + homepage = "https://github.com/pydantic/pydantic/tree/main/pydantic-core"; license = lib.licenses.mit; inherit (pydantic.meta) maintainers; }; diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix index a34ffbb95b292..b84ef6f5aace2 100644 --- a/pkgs/development/python-modules/pydantic/default.nix +++ b/pkgs/development/python-modules/pydantic/default.nix @@ -3,7 +3,6 @@ python, buildPythonPackage, fetchFromGitHub, - fetchpatch, # build-system hatchling, @@ -19,32 +18,27 @@ cloudpickle, email-validator, dirty-equals, + hypothesis, + inline-snapshot, jsonschema, pytestCheckHook, pytest-mock, pytest-run-parallel, + pytest-timeout, }: buildPythonPackage rec { pname = "pydantic"; - version = "2.12.5"; + version = "2.13.4"; pyproject = true; src = fetchFromGitHub { owner = "pydantic"; repo = "pydantic"; tag = "v${version}"; - hash = "sha256-9TRLtVNBw2WHQnS0XFHg16Q7FdpTf3e2nb5qE5rlLUA="; + hash = "sha256-G4Xo6BF6tOn4g/qG3RNDP3/+lYnCOuw3AB1OrVOGcSA="; }; - patches = lib.optionals (lib.versionAtLeast python.version "3.14.1") [ - # Fix build with python 3.14.1 - (fetchpatch { - url = "https://github.com/pydantic/pydantic/commit/53cb5f830207dd417d20e0e55aab2e6764f0d6fc.patch"; - hash = "sha256-Y1Ob1Ei0rrw0ua+0F5L2iE2r2RdpI9DI2xuiu9pLr5Y="; - }) - ]; - postPatch = '' sed -i "/--benchmark/d" pyproject.toml ''; @@ -68,15 +62,19 @@ buildPythonPackage rec { nativeCheckInputs = [ cloudpickle dirty-equals + hypothesis + (inline-snapshot.overridePythonAttrs { doCheck = false; }) jsonschema pytest-mock pytest-run-parallel + pytest-timeout pytestCheckHook ] ++ lib.concatAttrValues optional-dependencies; disabledTestPaths = [ "tests/benchmarks" + "tests/pydantic_core/benchmarks" # avoid cyclic dependency "tests/test_docs.py" diff --git a/pkgs/development/python-modules/pydeck/default.nix b/pkgs/development/python-modules/pydeck/default.nix index d7c7de2030eb5..866834959dfda 100644 --- a/pkgs/development/python-modules/pydeck/default.nix +++ b/pkgs/development/python-modules/pydeck/default.nix @@ -16,12 +16,12 @@ buildPythonPackage rec { pname = "pydeck"; - version = "0.9.1"; + version = "0.9.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-90R1rmN5UdY/LuWDJnV/jU+c2fKkV89ClQcVAD4stgU="; + hash = "sha256-wQ2QNegerWOFJkysjRlAJHH2hmoVyh998UAPUhQrz4c="; }; # upstream has an invalid pyproject.toml diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix index b912d6b04bb8c..c728dbbbd82c5 100644 --- a/pkgs/development/python-modules/pygobject/3.nix +++ b/pkgs/development/python-modules/pygobject/3.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "pygobject"; - version = "3.56.2"; + version = "3.56.3"; outputs = [ "out" @@ -28,7 +28,7 @@ buildPythonPackage rec { src = fetchurl { url = "mirror://gnome/sources/pygobject/${lib.versions.majorMinor version}/pygobject-${version}.tar.gz"; - hash = "sha256-uBYJiWlUQIHenuztuUrWrFnHfk1XH+cFHxi+vOwHQxM="; + hash = "sha256-EnYOSg49BLbrleBveifjYsgm1WfqYTNzqSwAO2xw0tY="; }; depsBuildBuild = [ pkg-config ]; diff --git a/pkgs/development/python-modules/pygraphviz/default.nix b/pkgs/development/python-modules/pygraphviz/default.nix index f8a7d37977ddb..c6b365bf23f12 100644 --- a/pkgs/development/python-modules/pygraphviz/default.nix +++ b/pkgs/development/python-modules/pygraphviz/default.nix @@ -7,19 +7,20 @@ coreutils, pkg-config, setuptools, + swig, pytest, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pygraphviz"; - version = "1.14"; + version = "2.0"; pyproject = true; src = fetchFromGitHub { owner = "pygraphviz"; repo = "pygraphviz"; - tag = "pygraphviz-${version}"; - hash = "sha256-RyUmT2djj2GnVG82xO9HULMAJZb2LYMUGDRvCwaYBg8="; + tag = "pygraphviz-${finalAttrs.version}"; + hash = "sha256-AxiaKEmVjofAi6LV1ozOPERqZyOhmBWMLV3GYlhSuNo="; }; patches = [ @@ -32,9 +33,21 @@ buildPythonPackage rec { }) ]; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail ', "swig>4.1.0"' "" + ''; + + env.GRAPHVIZ_PREFIX = graphviz; + + build-system = [ + setuptools + ]; + nativeBuildInputs = [ + graphviz # for dot pkg-config - setuptools + swig ]; buildInputs = [ graphviz ]; @@ -50,6 +63,7 @@ buildPythonPackage rec { pythonImportsCheck = [ "pygraphviz" ]; meta = { + changelog = "https://github.com/pygraphviz/pygraphviz/releases/tag/pygraphviz-${finalAttrs.version}"; description = "Python interface to Graphviz graph drawing package"; homepage = "https://github.com/pygraphviz/pygraphviz"; license = lib.licenses.bsd3; @@ -58,4 +72,4 @@ buildPythonPackage rec { dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/pygti/default.nix b/pkgs/development/python-modules/pygti/default.nix index a9ee409a15aed..f557ffef46100 100644 --- a/pkgs/development/python-modules/pygti/default.nix +++ b/pkgs/development/python-modules/pygti/default.nix @@ -2,28 +2,34 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools-scm, + hatchling, + hatch-vcs, aiohttp, + pydantic, pytz, voluptuous, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pygti"; - version = "0.10.0"; + version = "1.1.1"; pyproject = true; src = fetchFromGitHub { owner = "vigonotion"; repo = "pygti"; - tag = version; - hash = "sha256-2T4Yw4XEOkv+IWyB4Xa2dPu929VH0tLeUjQ5S8EVXz0="; + tag = "v${finalAttrs.version}"; + hash = "sha256-B+jz91xoN7GiU4PnJTG5Kt1eA4ST63d+ZEgRrr9Xio8="; }; - build-system = [ setuptools-scm ]; + build-system = [ + hatchling + hatch-vcs + ]; dependencies = [ aiohttp + pydantic pytz voluptuous ]; @@ -38,10 +44,10 @@ buildPythonPackage rec { ]; meta = { - changelog = "https://github.com/vigonotion/pygti/releases/tag/${src.tag}"; + changelog = "https://github.com/vigonotion/pygti/releases/tag/${finalAttrs.src.tag}"; description = "Access public transport information in Hamburg, Germany"; homepage = "https://github.com/vigonotion/pygti"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/pyhanko/default.nix b/pkgs/development/python-modules/pyhanko/default.nix index 275aa0d35876b..575cd470b4daa 100644 --- a/pkgs/development/python-modules/pyhanko/default.nix +++ b/pkgs/development/python-modules/pyhanko/default.nix @@ -66,11 +66,11 @@ buildPythonPackage (finalAttrs: { dependencies = [ asn1crypto cryptography + lxml pyhanko-certvalidator pyyaml requests tzlocal - lxml ]; optional-dependencies = { diff --git a/pkgs/development/python-modules/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix index b5ab00d1a7aa7..6b5464f6ee97a 100644 --- a/pkgs/development/python-modules/pyicloud/default.nix +++ b/pkgs/development/python-modules/pyicloud/default.nix @@ -7,27 +7,32 @@ fido2, keyring, keyrings-alt, + protobuf, + pydantic, pytest-mock, pytest-socket, pytestCheckHook, pythonAtLeast, requests, + rich, setuptools, setuptools-scm, srp, + tinyhtml, + typer, tzlocal, }: buildPythonPackage (finalAttrs: { pname = "pyicloud"; - version = "2.4.1"; + version = "2.6.5"; pyproject = true; src = fetchFromGitHub { owner = "timlaing"; repo = "pyicloud"; tag = finalAttrs.version; - hash = "sha256-6Z5YhEqRzThQM5nHG0o+q4Rm/+A/ss3N6RDRz6mPJm4="; + hash = "sha256-wlBVQPGGt8Q6EeLceORfRn+MtRKtmum+z3WAG6ZR+2Q="; }; build-system = [ @@ -41,16 +46,27 @@ buildPythonPackage (finalAttrs: { fido2 keyring keyrings-alt + protobuf + pydantic requests srp + tinyhtml tzlocal ]; + optional-dependencies = { + cli = [ + rich + typer + ]; + }; + nativeCheckInputs = [ pytest-mock pytest-socket pytestCheckHook - ]; + ] + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; pythonImportsCheck = [ "pyicloud" ]; diff --git a/pkgs/development/python-modules/pyipma/default.nix b/pkgs/development/python-modules/pyipma/default.nix index 628254991592a..a37899a50f7da 100644 --- a/pkgs/development/python-modules/pyipma/default.nix +++ b/pkgs/development/python-modules/pyipma/default.nix @@ -12,16 +12,16 @@ setuptools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pyipma"; - version = "3.0.9"; + version = "3.0.10"; pyproject = true; src = fetchFromGitHub { owner = "dgomes"; repo = "pyipma"; - tag = version; - hash = "sha256-1EUOkNwNoZQEetJ5v6httas0S0a3bHLv/lDRXQsT/Ds="; + tag = "v${finalAttrs.version}"; + hash = "sha256-f1V+8So8TmR9Cu2fjD3B7EqeJd9e1G9cgCNytGul2Eo="; }; build-system = [ setuptools ]; @@ -41,6 +41,11 @@ buildPythonPackage rec { pythonImportsCheck = [ "pyipma" ]; + disabledTests = [ + # Test requires network access + "test_retrieve_returns_json_response_from_api" + ]; + disabledTestPaths = [ # Tests require network access "tests/test_auxiliar.py" @@ -51,8 +56,8 @@ buildPythonPackage rec { meta = { description = "Library to retrieve information from Instituto Português do Mar e Atmosfera"; homepage = "https://github.com/dgomes/pyipma"; - changelog = "https://github.com/dgomes/pyipma/releases/tag/${src.tag}"; + changelog = "https://github.com/dgomes/pyipma/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/pylama/default.nix b/pkgs/development/python-modules/pylama/default.nix index ed1a787eb7a13..5349ee627470c 100644 --- a/pkgs/development/python-modules/pylama/default.nix +++ b/pkgs/development/python-modules/pylama/default.nix @@ -11,7 +11,7 @@ pydocstyle, pyflakes, vulture, - setuptools, + setuptools_80, pylint, pytestCheckHook, }: @@ -43,7 +43,7 @@ let pycodestyle pydocstyle pyflakes - setuptools + setuptools_80 vulture ]; diff --git a/pkgs/development/python-modules/pylamarzocco/default.nix b/pkgs/development/python-modules/pylamarzocco/default.nix index 8b437d940b47a..b9a5e7642000f 100644 --- a/pkgs/development/python-modules/pylamarzocco/default.nix +++ b/pkgs/development/python-modules/pylamarzocco/default.nix @@ -16,14 +16,14 @@ buildPythonPackage (finalAttrs: { pname = "pylamarzocco"; - version = "2.3.0"; + version = "2.4.2"; pyproject = true; src = fetchFromGitHub { owner = "zweckj"; repo = "pylamarzocco"; tag = "v${finalAttrs.version}"; - hash = "sha256-DNlUdnJjaYUfz8X8UmzqjHwj+WGmRQZQGDkHUjrAJ7E="; + hash = "sha256-9wqSF67MNxnGvDDDVY9epI3hoV8M20L3Fyz80/x8G74="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix index 2a6a0b952371c..69dc994c5b91a 100644 --- a/pkgs/development/python-modules/pylitterbot/default.nix +++ b/pkgs/development/python-modules/pylitterbot/default.nix @@ -1,9 +1,11 @@ { lib, aiohttp, + aiointercept, aioresponses, buildPythonPackage, deepdiff, + fastmcp, fetchFromGitHub, hatchling, pycognito, @@ -18,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "pylitterbot"; - version = "2025.4.0"; + version = "2025.6.0"; pyproject = true; src = fetchFromGitHub { owner = "natekspencer"; repo = "pylitterbot"; tag = finalAttrs.version; - hash = "sha256-k10QYIdV8EFGR/366IZ6OaXbK+kEcaz3Awdwu116zHA="; + hash = "sha256-shn218uasWtZidnmhAVU0bG9BVfrN/0Gy1iy01LGfrc="; }; build-system = [ @@ -34,8 +36,10 @@ buildPythonPackage (finalAttrs: { ]; dependencies = [ + aiointercept aiohttp deepdiff + fastmcp pycognito pyjwt ]; diff --git a/pkgs/development/python-modules/pymodbus/default.nix b/pkgs/development/python-modules/pymodbus/default.nix index 9837885ecb5f8..fc0afe74e6147 100644 --- a/pkgs/development/python-modules/pymodbus/default.nix +++ b/pkgs/development/python-modules/pymodbus/default.nix @@ -2,10 +2,7 @@ lib, aiohttp, buildPythonPackage, - click, fetchFromGitHub, - prompt-toolkit, - pygments, pymodbus-repl, pyserial, pytest-asyncio, @@ -16,19 +13,18 @@ setuptools, sqlalchemy, twisted, - typer, }: buildPythonPackage (finalAttrs: { pname = "pymodbus"; - version = "3.12.1"; + version = "3.13.1"; pyproject = true; src = fetchFromGitHub { owner = "pymodbus-dev"; repo = "pymodbus"; tag = "v${finalAttrs.version}"; - hash = "sha256-ISfAqZu6BSuXoISo8me7Z7BjvoEj6c2KgvuScjEiqd4="; + hash = "sha256-gaCD3bhwBXF08vn3v9OU2mT1WJycrqgtxUC8sRLmZ8Y="; }; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/pymsteams/default.nix b/pkgs/development/python-modules/pymsteams/default.nix deleted file mode 100644 index a9032180e0482..0000000000000 --- a/pkgs/development/python-modules/pymsteams/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - requests, - setuptools, - setuptools-scm, -}: - -buildPythonPackage rec { - pname = "pymsteams"; - version = "0.2.5"; - pyproject = true; - - src = fetchFromGitHub { - owner = "rveachkc"; - repo = "pymsteams"; - tag = version; - hash = "sha256-Ze25mcXCRaon6qzWzcltD8kwJTfrG2w5jMswXymmKo4="; - }; - - build-system = [ - setuptools - setuptools-scm - ]; - - dependencies = [ requests ]; - - # Tests require network access - doCheck = false; - - pythonImportsCheck = [ "pymsteams" ]; - - meta = { - description = "Python module to interact with Microsoft Teams"; - homepage = "https://github.com/rveachkc/pymsteams"; - changelog = "https://github.com/rveachkc/pymsteams/releases/tag/${version}"; - license = with lib.licenses; [ asl20 ]; - maintainers = with lib.maintainers; [ fab ]; - }; -} diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix index a087c6442d916..a879125bd8e7b 100644 --- a/pkgs/development/python-modules/pymupdf/default.nix +++ b/pkgs/development/python-modules/pymupdf/default.nix @@ -7,7 +7,7 @@ toPythonModule, # build-system - libclang, + clang, pipcl, psutil, setuptools, @@ -75,7 +75,7 @@ buildPythonPackage (finalAttrs: { ''; build-system = [ - libclang + clang pipcl swig setuptools diff --git a/pkgs/development/python-modules/pyobjc-core/default.nix b/pkgs/development/python-modules/pyobjc-core/default.nix index e07a01289f742..278ad48196d88 100644 --- a/pkgs/development/python-modules/pyobjc-core/default.nix +++ b/pkgs/development/python-modules/pyobjc-core/default.nix @@ -4,6 +4,9 @@ fetchFromGitHub, lib, setuptools, + + # TODO: Clean up on `staging`. + llvmPackages, }: buildPythonPackage rec { @@ -28,6 +31,9 @@ buildPythonPackage rec { nativeBuildInputs = [ darwin.DarwinTools # sw_vers + + # TODO: Clean up on `staging`. + llvmPackages.lld ]; env.NIX_CFLAGS_COMPILE = toString [ @@ -36,6 +42,9 @@ buildPythonPackage rec { "-Wno-error=unused-command-line-argument" ]; + # TODO: Clean up on `staging`. + env.NIX_CFLAGS_LINK = "-fuse-ld=lld"; + pythonImportsCheck = [ "objc" ]; meta = { diff --git a/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix b/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix index f6af5aca2f54b..31fec380115c7 100644 --- a/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix +++ b/pkgs/development/python-modules/pyobjc-framework-Cocoa/default.nix @@ -5,6 +5,9 @@ lib, pyobjc-core, setuptools, + # TODO: Clean up on `staging`. + stdenv, + llvmPackages, }: buildPythonPackage rec { @@ -25,6 +28,10 @@ buildPythonPackage rec { nativeBuildInputs = [ darwin.DarwinTools # sw_vers + ] + # TODO: Clean up on `staging`. + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + llvmPackages.lld ]; # See https://github.com/ronaldoussoren/pyobjc/pull/641. Unfortunately, we @@ -43,6 +50,8 @@ buildPythonPackage rec { "-I${darwin.libffi.dev}/include" "-Wno-error=unused-command-line-argument" ]; + # TODO: Clean up on `staging`. + env.NIX_CFLAGS_LINK = "-fuse-ld=lld"; pythonImportsCheck = [ "Cocoa" diff --git a/pkgs/development/python-modules/pyomie/default.nix b/pkgs/development/python-modules/pyomie/default.nix index 3709034e38d20..5c4e69d734077 100644 --- a/pkgs/development/python-modules/pyomie/default.nix +++ b/pkgs/development/python-modules/pyomie/default.nix @@ -15,19 +15,22 @@ buildPythonPackage (finalAttrs: { pname = "pyomie"; - version = "1.1.1"; + version = "1.1.3"; pyproject = true; src = fetchFromGitHub { owner = "luuuis"; repo = "pyomie"; tag = "v${finalAttrs.version}"; - hash = "sha256-BOaOClTXeoRxWb2aJKN6+lQRCLAShvHPXsUZBbH0mno="; + hash = "sha256-gsCPqKBzQ0nA47WT30PesGuJ4/jicYsFXl04KQ8H/KQ="; }; build-system = [ poetry-core ]; - pythonRelaxDeps = [ "typer" ]; + pythonRelaxDeps = [ + "click" + "typer" + ]; dependencies = [ aiohttp diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix index 46e99e1e4bbfe..3924e6cd73adb 100644 --- a/pkgs/development/python-modules/pyopenssl/default.nix +++ b/pkgs/development/python-modules/pyopenssl/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "pyopenssl"; - version = "26.0.0"; + version = "26.3.0"; pyproject = true; src = fetchFromGitHub { owner = "pyca"; repo = "pyopenssl"; tag = version; - hash = "sha256-3Z9I4T1KPObZebVEMhykeq9yzQ446i9CZ5YwkeqlVTs="; + hash = "sha256-ASpF7CcakrPS4qg8XFGYgYb7Etjg7wcVyMBbtAZaKO0="; }; outputs = [ diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix index 6a45385fbc15a..28d49bf3d6f1d 100644 --- a/pkgs/development/python-modules/pyoverkiz/default.nix +++ b/pkgs/development/python-modules/pyoverkiz/default.nix @@ -5,9 +5,9 @@ backoff, boto3, buildPythonPackage, + cattrs, fetchFromGitHub, hatchling, - pyhumps, pytest-asyncio, pytestCheckHook, warrant-lite, @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "pyoverkiz"; - version = "1.20.6"; + version = "2.0.3"; pyproject = true; src = fetchFromGitHub { owner = "iMicknl"; repo = "python-overkiz-api"; tag = "v${finalAttrs.version}"; - hash = "sha256-Zbz4l5bPvFQaek6/Nbn+PzAzLS3l2PyetuxOBVsuLPk="; + hash = "sha256-kKaT9YimH9o5yI7x9T9TSrcvwKEQ5M/HRnZp5S4xbGE="; }; build-system = [ hatchling ]; @@ -31,11 +31,16 @@ buildPythonPackage (finalAttrs: { aiohttp attrs backoff - boto3 - pyhumps - warrant-lite + cattrs ]; + optional-dependencies = { + nexity = [ + boto3 + warrant-lite + ]; + }; + nativeCheckInputs = [ pytest-asyncio pytestCheckHook diff --git a/pkgs/development/python-modules/pyramid/default.nix b/pkgs/development/python-modules/pyramid/default.nix index 6b76dad2eb72c..c04a3e45faeef 100644 --- a/pkgs/development/python-modules/pyramid/default.nix +++ b/pkgs/development/python-modules/pyramid/default.nix @@ -1,8 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, - fetchpatch2, + fetchFromGitHub, webtest, zope-component, hupper, @@ -10,7 +9,7 @@ plaster, plaster-pastedeploy, repoze-lru, - setuptools, + setuptools_80, translationstring, venusian, webob, @@ -19,25 +18,19 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pyramid"; - version = "2.0.2"; + version = "2.1"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-NyE4pzjkIWU1zHbczm7d1aGqypUTDyNU+4NCZMBvGN4="; + src = fetchFromGitHub { + owner = "Pylons"; + repo = "pyramid"; + tag = finalAttrs.version; + hash = "sha256-N0zH0BpS9ImSTWeADBOBSgLYI062sdLxTzwBENAawFc="; }; - patches = [ - (fetchpatch2 { - name = "python-3.13-compat.patch"; - url = "https://github.com/Pylons/pyramid/commit/1079613eb07e2a67454378e1fc28815dfd64bb82.patch"; - hash = "sha256-/jxbA2q0kAeXDvIwhNkO8h4KbKtdquWXAH7/0lV8MXc="; - }) - ]; - - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ hupper @@ -45,7 +38,6 @@ buildPythonPackage rec { plaster plaster-pastedeploy repoze-lru - setuptools # for pkg_resources translationstring venusian webob @@ -64,8 +56,8 @@ buildPythonPackage rec { meta = { description = "Python web framework"; homepage = "https://trypyramid.com/"; - changelog = "https://github.com/Pylons/pyramid/blob/${version}/CHANGES.rst"; + changelog = "https://github.com/Pylons/pyramid/blob/${finalAttrs.src.tag}/CHANGES.rst"; license = lib.licenses.bsd0; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/pyrate-limiter/default.nix b/pkgs/development/python-modules/pyrate-limiter/default.nix index 5de57d7bd3dc8..c5649cd22864b 100644 --- a/pkgs/development/python-modules/pyrate-limiter/default.nix +++ b/pkgs/development/python-modules/pyrate-limiter/default.nix @@ -14,6 +14,7 @@ redis, # test + aiohttp, pytestCheckHook, pytest-asyncio, pytest-xdist, @@ -22,14 +23,14 @@ buildPythonPackage rec { pname = "pyrate-limiter"; - version = "4.1.0"; + version = "4.4.0"; pyproject = true; src = fetchFromGitHub { owner = "vutran1710"; repo = "PyrateLimiter"; tag = "v${version}"; - hash = "sha256-2gWbabdRqwWiC4xbMx/VGBwwMcygVMKJswXgd4Ia+xE="; + hash = "sha256-DT4WyGrayI12Sid6yLOit68vW/YT4cHsRYjd4oo0/J8="; }; build-system = [ @@ -55,6 +56,7 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ + aiohttp filelock pytestCheckHook pytest-asyncio diff --git a/pkgs/development/python-modules/pyreqwest/default.nix b/pkgs/development/python-modules/pyreqwest/default.nix index 10b1897571080..3d6fe0e9c825a 100644 --- a/pkgs/development/python-modules/pyreqwest/default.nix +++ b/pkgs/development/python-modules/pyreqwest/default.nix @@ -43,6 +43,7 @@ buildPythonPackage (finalAttrs: { pythonImportsCheck = [ "pyreqwest" ]; nativeCheckInputs = [ + cacert dirty-equals docker granian @@ -57,12 +58,6 @@ buildPythonPackage (finalAttrs: { yarl ]; - preCheck = '' - # Without this tests fails with - # unexpected error: No CA certificates were loaded from the system - export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" - ''; - disabledTestPaths = [ # requires a running Docker daemon "tests/test_examples.py" diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix index 4559253b2535f..6ee8a07eca811 100644 --- a/pkgs/development/python-modules/pyrisco/default.nix +++ b/pkgs/development/python-modules/pyrisco/default.nix @@ -4,25 +4,29 @@ buildPythonPackage, fetchFromGitHub, setuptools, + setuptools-scm, }: buildPythonPackage (finalAttrs: { pname = "pyrisco"; - version = "0.7.0"; + version = "0.8.0"; pyproject = true; src = fetchFromGitHub { owner = "OnFreund"; repo = "pyrisco"; tag = "v${finalAttrs.version}"; - hash = "sha256-moFKikAIBLWfkpADjNKqZd3jAg5LPapubB1pGmx8OPo="; + hash = "sha256-tzCwimkSLazD6LtimFUcRjOvnvSlYY1MpJLZ2u4WgUg="; }; - build-system = [ setuptools ]; + build-system = [ + setuptools + setuptools-scm + ]; dependencies = [ aiohttp ]; - # Project has no tests + # All tests require cloud access doCheck = false; pythonImportsCheck = [ "pyrisco" ]; diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix index a248a1bb0d49c..012d23f0dcfb3 100644 --- a/pkgs/development/python-modules/pyscf/default.nix +++ b/pkgs/development/python-modules/pyscf/default.nix @@ -80,7 +80,6 @@ buildPythonPackage (finalAttrs: { preCheck = '' # Set config used by tests to ensure reproducibility echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py - export OMP_NUM_THREADS=1 ulimit -s 20000 export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py ''; diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix index 64db47763f558..1a6e2c0439895 100644 --- a/pkgs/development/python-modules/pyshark/default.nix +++ b/pkgs/development/python-modules/pyshark/default.nix @@ -29,10 +29,6 @@ buildPythonPackage (finalAttrs: { version = "0.6"; pyproject = true; - # Almost all tests fail with: - # RuntimeError: There is no current event loop in thread 'MainThread' - disabled = pythonAtLeast "3.14"; - src = fetchFromGitHub { owner = "KimiNewt"; repo = "pyshark"; @@ -58,6 +54,8 @@ buildPythonPackage (finalAttrs: { (replaceVars ./hardcode-tshark-path.patch { tshark = lib.getExe' wireshark-cli "tshark"; }) + # Compat for Python 3.14 asyncio changes + ./py314-compat.patch ]; sourceRoot = "${finalAttrs.src.name}/src"; @@ -81,6 +79,13 @@ buildPythonPackage (finalAttrs: { # KeyError: 'Packet of index 0 does not exist in capture' "test_getting_packet_summary" ] + ++ lib.optionals (pythonAtLeast "3.14") [ + # _pickle.PicklingError: logger cannot be pickled + "test_iterate_empty_psml_capture" + # configparser.NoSectionError: No section: 'tshark' + # Path is mocked, and yet... + "test_get_tshark_path" + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ # fails on darwin # _pickle.PicklingError: logger cannot be pickled diff --git a/pkgs/development/python-modules/pyshark/py314-compat.patch b/pkgs/development/python-modules/pyshark/py314-compat.patch new file mode 100644 index 0000000000000..e1f457e168edd --- /dev/null +++ b/pkgs/development/python-modules/pyshark/py314-compat.patch @@ -0,0 +1,37 @@ +diff --git a/src/pyshark/capture/capture.py b/src/pyshark/capture/capture.py +index b7aef6e..8967398 100644 +--- a/src/pyshark/capture/capture.py ++++ b/src/pyshark/capture/capture.py +@@ -182,25 +182,16 @@ class Capture: + asyncio.set_event_loop(self.eventloop) + else: + try: +- self.eventloop = asyncio.get_event_loop_policy().get_event_loop() ++ self.eventloop = asyncio.get_running_loop() + except RuntimeError: +- if threading.current_thread() != threading.main_thread(): +- # Ran not in main thread, make a new eventloop ++ try: ++ # Python <3.14: may return an existing non-running loop. ++ self.eventloop = asyncio.get_event_loop() ++ except RuntimeError: ++ # Python 3.14+: no loop exists for this thread. + self.eventloop = asyncio.new_event_loop() + asyncio.set_event_loop(self.eventloop) +- else: +- raise +- if os.name == "posix" and isinstance(threading.current_thread(), threading._MainThread): +- # The default child watchers (ThreadedChildWatcher) attach_loop method is empty! +- # While using pyshark with ThreadedChildWatcher, asyncio could raise a ChildProcessError +- # "Unknown child process pid %d, will report returncode 255" +- # This led to a TSharkCrashException in _cleanup_subprocess. +- # Using the SafeChildWatcher fixes this issue, but it is slower. +- # SafeChildWatcher O(n) -> large numbers of processes are slow +- # ThreadedChildWatcher O(1) -> independent of process number +- # asyncio.get_child_watcher().attach_loop(self.eventloop) +- asyncio.set_child_watcher(asyncio.SafeChildWatcher()) +- asyncio.get_child_watcher().attach_loop(self.eventloop) ++ + + def _packets_from_tshark_sync(self, packet_count=None, existing_process=None): + """Returns a generator of packets. diff --git a/pkgs/development/python-modules/pysmartapp/default.nix b/pkgs/development/python-modules/pysmartapp/default.nix deleted file mode 100644 index c753f4dc96944..0000000000000 --- a/pkgs/development/python-modules/pysmartapp/default.nix +++ /dev/null @@ -1,46 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - httpsig, - pytest-asyncio, - pytestCheckHook, - setuptools, -}: - -buildPythonPackage rec { - pname = "pysmartapp"; - version = "0.3.5"; - pyproject = true; - - src = fetchFromGitHub { - owner = "andrewsayre"; - repo = "pysmartapp"; - tag = version; - hash = "sha256-RiRGOO5l5hcHllyDDGLtQHr51JOTZhAa/wK8BfMqmAY="; - }; - - build-system = [ setuptools ]; - - dependencies = [ httpsig ]; - - nativeCheckInputs = [ - pytest-asyncio - pytestCheckHook - ]; - - pythonImportsCheck = [ "pysmartapp" ]; - - disabledTestPaths = [ - # These tests are outdated - "tests/test_smartapp.py" - ]; - - meta = { - description = "Python implementation to work with SmartApp lifecycle events"; - homepage = "https://github.com/andrewsayre/pysmartapp"; - changelog = "https://github.com/andrewsayre/pysmartapp/releases/tag/${src.tag}"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fab ]; - }; -} diff --git a/pkgs/development/python-modules/pysmi/default.nix b/pkgs/development/python-modules/pysmi/default.nix index 2c64e9f2ab8dd..39ade30d993e4 100644 --- a/pkgs/development/python-modules/pysmi/default.nix +++ b/pkgs/development/python-modules/pysmi/default.nix @@ -4,7 +4,7 @@ fetchFromGitHub, flit-core, jinja2, - ply, + lark, pysmi, pysnmp, pytestCheckHook, @@ -13,21 +13,21 @@ buildPythonPackage (finalAttrs: { pname = "pysmi"; - version = "1.6.3"; + version = "2.0.2"; pyproject = true; src = fetchFromGitHub { owner = "lextudio"; repo = "pysmi"; tag = "v${finalAttrs.version}"; - hash = "sha256-TpDrsBGym07JPIcnytyWI7Ebx9RR+7Ia36zOzWMWqPM="; + hash = "sha256-ft8R73eUgb+pnr35ZVc2Br3BGHhUDHEcQ9k/K6tjYBk="; }; build-system = [ flit-core ]; dependencies = [ - ply jinja2 + lark requests ]; diff --git a/pkgs/development/python-modules/pysmlight/default.nix b/pkgs/development/python-modules/pysmlight/default.nix index 2885145690aad..f2a57047a682f 100644 --- a/pkgs/development/python-modules/pysmlight/default.nix +++ b/pkgs/development/python-modules/pysmlight/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "pysmlight"; - version = "0.3.2"; + version = "0.5.2"; pyproject = true; src = fetchFromGitHub { owner = "smlight-tech"; repo = "pysmlight"; tag = "v${version}"; - hash = "sha256-LsHxHHBTJCeB78y2Zv4ESzMwBDH2DB49uGyrmO8IVo0="; + hash = "sha256-zqb2rfY3JDnIhlaevqX+/ppX5YhB8xUeIrrM4OQKEq0="; }; build-system = [ diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix index b1fb2450970e5..dcdf8d9f5b6a3 100644 --- a/pkgs/development/python-modules/pysnmp/default.nix +++ b/pkgs/development/python-modules/pysnmp/default.nix @@ -19,14 +19,14 @@ buildPythonPackage rec { pname = "pysnmp"; - version = "7.1.24"; + version = "7.1.27"; pyproject = true; src = fetchFromGitHub { owner = "lextudio"; repo = "pysnmp"; tag = "v${version}"; - hash = "sha256-jKTU6ivcg13naaKMVmCYtjmi16kh3nAScDN80OR0d+A="; + hash = "sha256-BFdPdEa5aZAYa6i7714k33wM36Sq1ExJO/6dmsGLzVg="; }; build-system = [ flit-core ]; @@ -64,6 +64,7 @@ buildPythonPackage rec { "test_v2c_get_table_bulk_0_5_subtree" "test_v2c_get_table_bulk_0_6_subtree" # pysnmp.smi.error.MibNotFoundError + # mibs are not part of the repo and expensive to pull "test_send_v3_trap_notification" "test_addAsn1MibSource" "test_v1_walk" @@ -72,6 +73,9 @@ buildPythonPackage rec { "test_syntax_unsigned" "test_add_asn1_mib_source" "test_syntax_fixed_length_octet_string" + "test_inet_address_ipv4_resolv" + "test_inet_address_ipv6_resolv" + "test_inet_address_roundtrip" ]; disabledTestPaths = [ diff --git a/pkgs/development/python-modules/pystiebeleltron/default.nix b/pkgs/development/python-modules/pystiebeleltron/default.nix index 6583c95f29e9c..1e9ba577a4fbd 100644 --- a/pkgs/development/python-modules/pystiebeleltron/default.nix +++ b/pkgs/development/python-modules/pystiebeleltron/default.nix @@ -31,6 +31,11 @@ buildPythonPackage rec { pytest-mock ]; + disabledTestPaths = [ + # mock server is not compatible with pymodbus 3.13 + "test/test_pystiebeleltron.py" + ]; + pythonImportsCheck = [ "pystiebeleltron" ]; meta = { diff --git a/pkgs/development/python-modules/pytest-aiohttp/default.nix b/pkgs/development/python-modules/pytest-aiohttp/default.nix index ba963a0b67b7b..0952681a51350 100644 --- a/pkgs/development/python-modules/pytest-aiohttp/default.nix +++ b/pkgs/development/python-modules/pytest-aiohttp/default.nix @@ -10,9 +10,9 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pytest-aiohttp"; - version = "1.1.0"; + version = "1.1.1"; pyproject = true; __darwinAllowLocalNetworking = true; @@ -20,8 +20,8 @@ buildPythonPackage rec { src = fetchFromGitHub { owner = "aio-libs"; repo = "pytest-aiohttp"; - tag = "v${version}"; - hash = "sha256-5xUY3SVaoZzCZE/qfAP4R49HbtBMYj5jMN5viLEzEkM="; + tag = "v${finalAttrs.version}"; + hash = "sha256-SYMwVmcgPLOasW6TQGqqNO+sbp8zQQtDHb3IyAVO6KI="; }; build-system = [ @@ -45,9 +45,9 @@ buildPythonPackage rec { meta = { homepage = "https://github.com/aio-libs/pytest-aiohttp/"; - changelog = "https://github.com/aio-libs/pytest-aiohttp/blob/${src.rev}/CHANGES.rst"; + changelog = "https://github.com/aio-libs/pytest-aiohttp/blob/${finalAttrs.src.tag}/CHANGES.rst"; description = "Pytest plugin for aiohttp support"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix index 87062960a7cba..a166439fdac9c 100644 --- a/pkgs/development/python-modules/pytest-asyncio/default.nix +++ b/pkgs/development/python-modules/pytest-asyncio/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "pytest-asyncio"; - version = "1.3.0"; # N.B.: when updating, tests bleak and aioesphomeapi tests + version = "1.4.0"; # N.B.: when updating, tests bleak and aioesphomeapi tests pyproject = true; src = fetchFromGitHub { owner = "pytest-dev"; repo = "pytest-asyncio"; tag = "v${version}"; - hash = "sha256-MWKMJkvxdvuOyxE8rNlf15j7C+MwJibnNsbfS0biKwo="; + hash = "sha256-MuTLCRHCuD9TwJkMiFIC5Xv5Xz6NL8j4JZpW8BA45SI="; }; outputs = [ diff --git a/pkgs/development/python-modules/pytest-cases/default.nix b/pkgs/development/python-modules/pytest-cases/default.nix index 6e5b90d279667..e5680266e7427 100644 --- a/pkgs/development/python-modules/pytest-cases/default.nix +++ b/pkgs/development/python-modules/pytest-cases/default.nix @@ -6,6 +6,7 @@ decopatch, packaging, pytest, + setuptools_80, setuptools-scm, }: @@ -20,7 +21,10 @@ buildPythonPackage rec { hash = "sha256-xOGB8bUlyTGjGNSBL6jeZWwsj7d/zPFXHs8Mxf6Of48="; }; - build-system = [ setuptools-scm ]; + build-system = [ + setuptools_80 + setuptools-scm + ]; dependencies = [ decopatch diff --git a/pkgs/development/python-modules/pytest-describe/default.nix b/pkgs/development/python-modules/pytest-describe/default.nix index 3c88f2f6f66bf..fcbfbd3f4be05 100644 --- a/pkgs/development/python-modules/pytest-describe/default.nix +++ b/pkgs/development/python-modules/pytest-describe/default.nix @@ -15,7 +15,7 @@ let pname = "pytest-describe"; - version = "3.1.0"; + version = "3.2.0"; in buildPythonPackage { inherit pname version; @@ -25,7 +25,7 @@ buildPythonPackage { owner = "pytest-dev"; repo = "pytest-describe"; tag = version; - hash = "sha256-ygrZwd1cO9arekdzqn5Axjz4i9Q0QKFA/OS6QSIvP9Y="; + hash = "sha256-nvTINE3QtV2pCKD/aixYDSO2ryW1uYDv55FLOMP7Vlc="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix index cc41563099e5c..fc5cb01cf15d0 100644 --- a/pkgs/development/python-modules/pytest-django/default.nix +++ b/pkgs/development/python-modules/pytest-django/default.nix @@ -12,13 +12,13 @@ buildPythonPackage (finalAttrs: { pname = "pytest-django"; - version = "4.11.1"; + version = "4.12.0"; pyproject = true; src = fetchPypi { pname = "pytest_django"; inherit (finalAttrs) version; - hash = "sha256-qUkUGh7hA8sOeiDxRR01X4P15KXQe91Nz90f0P8ieZE="; + hash = "sha256-35TsgZqDyJecj23hPZzfvnbowh05Rzz+K0DJ/Jvjx1g="; }; build-system = [ diff --git a/pkgs/development/python-modules/pytest-logdog/default.nix b/pkgs/development/python-modules/pytest-logdog/default.nix index 4ddb31f54c581..cf479422c7595 100644 --- a/pkgs/development/python-modules/pytest-logdog/default.nix +++ b/pkgs/development/python-modules/pytest-logdog/default.nix @@ -4,14 +4,14 @@ fetchFromGitHub, pytest, pytestCheckHook, - setuptools, + setuptools_80, setuptools-scm, }: buildPythonPackage rec { pname = "pytest-logdog"; version = "0.1.0"; - format = "setuptools"; + pyproject = true; src = fetchFromGitHub { owner = "ods"; @@ -20,12 +20,13 @@ buildPythonPackage rec { hash = "sha256-Tmoq+KAGzn0MMj29rukDfAc4LSIwC8DoMTuBAppV32I="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ + setuptools_80 + setuptools-scm + ]; buildInputs = [ pytest ]; - propagatedBuildInputs = [ setuptools ]; - nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "pytest_logdog" ]; diff --git a/pkgs/development/python-modules/pytest-mpl/default.nix b/pkgs/development/python-modules/pytest-mpl/default.nix index f3f672324d35f..7cc159faa61ca 100644 --- a/pkgs/development/python-modules/pytest-mpl/default.nix +++ b/pkgs/development/python-modules/pytest-mpl/default.nix @@ -12,16 +12,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "pytest-mpl"; - version = "0.18.0"; + version = "0.19.0"; pyproject = true; src = fetchFromGitHub { owner = "matplotlib"; repo = "pytest-mpl"; - tag = "v${version}"; - hash = "sha256-9fMhVgeEL4bjNIegmJV7lisrdzp27h0syn9pMwzX4Gg="; + tag = "v${finalAttrs.version}"; + hash = "sha256-qSOGGq2lOikm3kwZmGI1hFkuPU+zuh0iGL9TbH6ktEQ="; }; build-system = [ @@ -43,6 +43,10 @@ buildPythonPackage rec { disabledTestPaths = [ # Following are broken since at least a1548780dbc79d76360580691dc1bb4af4e837f6 "tests/subtests/test_subtest.py" + # https://github.com/matplotlib/pytest-mpl/issues/263 + "tests/test_baseline_path.py::test_config" + "tests/test_results_always.py::test_config" + "tests/test_use_full_test_name.py::test_config" ]; # need to set MPLBACKEND=agg for headless matplotlib for darwin @@ -59,9 +63,10 @@ buildPythonPackage rec { ''; meta = { + changelog = "https://github.com/matplotlib/pytest-mpl/blob/${finalAttrs.src.tag}/CHANGES.md"; description = "Pytest plugin to help with testing figures output from Matplotlib"; homepage = "https://github.com/matplotlib/pytest-mpl"; license = lib.licenses.bsd3; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix index 4c073d30e0426..9ba4e2bef69a3 100644 --- a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix +++ b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix @@ -17,14 +17,14 @@ buildPythonPackage rec { pname = "pytest-mypy-plugins"; - version = "4.0.2"; + version = "4.0.3"; pyproject = true; src = fetchFromGitHub { owner = "typeddjango"; repo = "pytest-mypy-plugins"; tag = version; - hash = "sha256-py6sspmhQ2vjXEEn+X6kx1+fTiS1M0P8z+kbgVItW/k="; + hash = "sha256-RyHoZniVLtunqz42tuVeAoiUm/e5JvvwX2MMCAJBhy8="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/pkgs/development/python-modules/pytest-rerunfailures/default.nix index 57bd62628ccdd..7f681df0ce46b 100644 --- a/pkgs/development/python-modules/pytest-rerunfailures/default.nix +++ b/pkgs/development/python-modules/pytest-rerunfailures/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "pytest-rerunfailures"; - version = "16.1"; + version = "16.3"; pyproject = true; src = fetchFromGitHub { owner = "pytest-dev"; repo = "pytest-rerunfailures"; tag = version; - hash = "sha256-EvjgqJQb4Nw7rn/wVLfHoq9iUnJ4vQ1kwSL5fetHv6M="; + hash = "sha256-T4l4AoUHvT6GjHyRK2TA3vPTxRicZ5pvgFgDtbkOGMw="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-run-parallel/default.nix b/pkgs/development/python-modules/pytest-run-parallel/default.nix index 7f7dfe9cad199..2ab2cd05f6510 100644 --- a/pkgs/development/python-modules/pytest-run-parallel/default.nix +++ b/pkgs/development/python-modules/pytest-run-parallel/default.nix @@ -21,14 +21,14 @@ buildPythonPackage (finalAttrs: { pname = "pytest-run-parallel"; - version = "0.8.2"; + version = "0.9.1"; pyproject = true; src = fetchFromGitHub { owner = "Quansight-Labs"; repo = "pytest-run-parallel"; tag = "v${finalAttrs.version}"; - hash = "sha256-/EoIemQvQFgo9Ic+ZcQJk7fC8S+OHOHaHODrsivarhY="; + hash = "sha256-8ndm/CKtWieNF3mx7Ni7nPO4psam3TAM9NJzdiiSpPQ="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/pytest-subprocess/default.nix b/pkgs/development/python-modules/pytest-subprocess/default.nix index b46373b85b9b0..bdb8d2ef85916 100644 --- a/pkgs/development/python-modules/pytest-subprocess/default.nix +++ b/pkgs/development/python-modules/pytest-subprocess/default.nix @@ -2,7 +2,6 @@ lib, buildPythonPackage, fetchFromGitHub, - fetchpatch, setuptools, pytest, pytestCheckHook, @@ -16,25 +15,16 @@ buildPythonPackage rec { pname = "pytest-subprocess"; - version = "1.5.4"; + version = "1.6.0"; pyproject = true; src = fetchFromGitHub { owner = "aklajnert"; repo = "pytest-subprocess"; tag = version; - hash = "sha256-TFTY6enuyzQx0U+qHVde71VHqVa0oEGbSJUwhMAsI7Q="; + hash = "sha256-zPKExIrCt8ZwhKGU0l3tyTcDhRIGPSiM8OWy5cpmsuE="; }; - patches = [ - # https://github.com/aklajnert/pytest-subprocess/pull/202 - (fetchpatch { - name = "fix-test_any_matching_program.patch"; - url = "https://github.com/aklajnert/pytest-subprocess/commit/14c571b9b72a7b7e429189a9455fc715e6f0dbce.patch"; - hash = "sha256-xDj5KSyv+JXRuMoUKpIr5oDN9y8V14LApRXbzNi9HI8="; - }) - ]; - build-system = [ setuptools ]; buildInputs = [ pytest ]; diff --git a/pkgs/development/python-modules/python-bsblan/default.nix b/pkgs/development/python-modules/python-bsblan/default.nix index 9ddb062c54298..3df45379234a4 100644 --- a/pkgs/development/python-modules/python-bsblan/default.nix +++ b/pkgs/development/python-modules/python-bsblan/default.nix @@ -19,14 +19,14 @@ buildPythonPackage (finalAttrs: { pname = "python-bsblan"; - version = "6.0.1"; + version = "6.1.5"; pyproject = true; src = fetchFromGitHub { owner = "liudger"; repo = "python-bsblan"; tag = "v${finalAttrs.version}"; - hash = "sha256-4ds/zYedmdLA7zLe2KoJ4DMzHJC8459KjZIJlHrfWEQ="; + hash = "sha256-D3uhEk4VK9kpuwPh3R+oswMaQZQfuTIUwvUnb5HAMFM="; }; postPatch = '' diff --git a/pkgs/development/python-modules/python-clementine-remote/default.nix b/pkgs/development/python-modules/python-clementine-remote/default.nix deleted file mode 100644 index 00abc62b20752..0000000000000 --- a/pkgs/development/python-modules/python-clementine-remote/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - setuptools, - protobuf, -}: - -buildPythonPackage rec { - pname = "python-clementine-remote"; - version = "1.0.3"; - pyproject = true; - - src = fetchFromGitHub { - owner = "jjmontesl"; - repo = "python-clementine-remote"; - tag = version; - hash = "sha256-tPaxRBvt+tW4yV5Ap3YxMQxK3o7BJF3nP/wzBJeDgic="; - }; - - build-system = [ setuptools ]; - - dependencies = [ protobuf ]; - - # Project has no tests - doCheck = false; - - env = { - # https://github.com/jjmontesl/python-clementine-remote/pull/7 - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION = "python"; - }; - - pythonImportsCheck = [ "clementineremote" ]; - - meta = { - description = "Python library and CLI for the Clementine Music Player remote protocol"; - homepage = "https://github.com/jjmontesl/python-clementine-remote"; - license = lib.licenses.asl20; - maintainers = [ lib.maintainers.jamiemagee ]; - }; -} diff --git a/pkgs/development/python-modules/python-duco-connectivity/default.nix b/pkgs/development/python-modules/python-duco-connectivity/default.nix index 987422109bddc..aef185b4713f2 100644 --- a/pkgs/development/python-modules/python-duco-connectivity/default.nix +++ b/pkgs/development/python-modules/python-duco-connectivity/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "python-duco-connectivity"; - version = "0.5.0"; + version = "0.7.1"; pyproject = true; src = fetchFromGitHub { owner = "ronaldvdmeer"; repo = "python-duco-connectivity"; tag = "v${finalAttrs.version}"; - hash = "sha256-AH8EhC0v8GDNvPSUaTownV9d4upvKRiO//2sipGHz9g="; + hash = "sha256-Txm7l7fVkEcUIX2J5CEF3OLLgTiT9O/xva0tSCCMZpI="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/python-ldap/default.nix b/pkgs/development/python-modules/python-ldap/default.nix index 26cba5d602e90..23186b37e8dbe 100644 --- a/pkgs/development/python-modules/python-ldap/default.nix +++ b/pkgs/development/python-modules/python-ldap/default.nix @@ -19,28 +19,18 @@ jaraco-functools, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "python-ldap"; - version = "3.4.5"; + version = "3.4.7"; pyproject = true; src = fetchFromGitHub { owner = "python-ldap"; repo = "python-ldap"; - tag = "python-ldap-${version}"; - hash = "sha256-olRu5HacRKaAcNbQczA+UCbDxhySUOO7qH0KdWlSbT0="; + tag = "python-ldap-${finalAttrs.version}"; + hash = "sha256-uSP8c5gid5TBenBaNVdlteHatkctAafz6yFHuIYKiTY="; }; - patches = [ - # https://github.com/python-ldap/python-ldap/pull/605 - ./python-3.14.patch - ]; - - postPatch = '' - # unused in 3.4.5; https://github.com/python-ldap/python-ldap/pull/597 - sed -i "/setuptools-scm/d" pyproject.toml - ''; - build-system = [ distutils setuptools @@ -80,8 +70,8 @@ buildPythonPackage rec { description = "Python modules for implementing LDAP clients"; downloadPage = "https://github.com/python-ldap/python-ldap"; homepage = "https://www.python-ldap.org/"; - changelog = "https://github.com/python-ldap/python-ldap/releases/tag/python-ldap-${version}"; + changelog = "https://github.com/python-ldap/python-ldap/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.psfl; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/python-ldap/python-3.14.patch b/pkgs/development/python-modules/python-ldap/python-3.14.patch deleted file mode 100644 index 831296d2607e1..0000000000000 --- a/pkgs/development/python-modules/python-ldap/python-3.14.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c6bb3ea9d16f0e088151b87c7ff8184272aa0714 Mon Sep 17 00:00:00 2001 -From: Iwan -Date: Sat, 17 Jan 2026 15:26:55 +0100 -Subject: [PATCH] Explicitly close url file to avoid ResourceWarning in Python - 3.14 - ---- - Lib/ldap/schema/subentry.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/Lib/ldap/schema/subentry.py b/Lib/ldap/schema/subentry.py -index b83d819b..3f73df71 100644 ---- a/Lib/ldap/schema/subentry.py -+++ b/Lib/ldap/schema/subentry.py -@@ -476,10 +476,10 @@ def urlfetch(uri,trace_level=0): - l.unbind_s() - del l - else: -- ldif_file = urlopen(uri) -- ldif_parser = ldif.LDIFRecordList(ldif_file,max_entries=1) -- ldif_parser.parse() -- subschemasubentry_dn,s_temp = ldif_parser.all_records[0] -+ with urlopen(uri) as ldif_file: -+ ldif_parser = ldif.LDIFRecordList(ldif_file,max_entries=1) -+ ldif_parser.parse() -+ subschemasubentry_dn,s_temp = ldif_parser.all_records[0] - # Work-around for mixed-cased attribute names - subschemasubentry_entry = ldap.cidict.cidict() - s_temp = s_temp or {} diff --git a/pkgs/development/python-modules/python-multipart/CVE-2026-40347-part-2.patch b/pkgs/development/python-modules/python-multipart/CVE-2026-40347-part-2.patch deleted file mode 100644 index ea8e5b2e95f85..0000000000000 --- a/pkgs/development/python-modules/python-multipart/CVE-2026-40347-part-2.patch +++ /dev/null @@ -1,106 +0,0 @@ -Based on upstream d4452a78bbde94995dd3c0d1b4aff3610a5c472f, adjusted -to apply to 0.0.22 - -diff --git a/python_multipart/multipart.py b/python_multipart/multipart.py -index 0f238c2..d2a597e 100644 ---- a/python_multipart/multipart.py -+++ b/python_multipart/multipart.py -@@ -1418,12 +1418,8 @@ class MultipartParser(BaseParser): - state = MultipartState.END - - elif state == MultipartState.END: -- # Don't do anything if chunk ends with CRLF. -- if c == CR and i + 1 < length and data[i + 1] == LF: -- i += 2 -- continue -- # Skip data after the last boundary. -- self.logger.warning("Skipping data after last boundary") -+ # Silently discard any epilogue data (RFC 2046 section 5.1.1 allows a CRLF and optional -+ # epilogue after the closing boundary). Django and Werkzeug do the same. - i = length - break - -diff --git a/tests/test_multipart.py b/tests/test_multipart.py -index 75982b6..3e8dd89 100644 ---- a/tests/test_multipart.py -+++ b/tests/test_multipart.py -@@ -1,6 +1,5 @@ - from __future__ import annotations - --import logging - import os - import random - import sys -@@ -722,6 +721,14 @@ single_byte_tests = [ - "single_field_single_file", - ] - -+EPILOGUE_TEST_HEAD = ( -+ "--boundary\r\n" -+ 'Content-Disposition: form-data; name="file"; filename="filename.txt"\r\n' -+ "Content-Type: text/plain\r\n\r\n" -+ "hello\r\n" -+ "--boundary--" -+).encode("latin-1") -+ - - def split_all(val: bytes) -> Iterator[tuple[bytes, bytes]]: - """ -@@ -1266,7 +1273,7 @@ class TestFormParser(unittest.TestCase): - self.assert_file_data(files[0], b"hello") - - def test_multipart_parser_data_after_last_boundary(self) -> None: -- """This test makes sure that the parser does not handle when there is junk data after the last boundary.""" -+ """Parser must short-circuit on arbitrary epilogue data after the closing boundary (no O(N) scan).""" - num = 50_000_000 - data = ( - "--boundary\r\n" -@@ -1284,29 +1291,32 @@ class TestFormParser(unittest.TestCase): - f = FormParser("multipart/form-data", on_field=Mock(), on_file=on_file, boundary="boundary") - f.write(data.encode("latin-1")) - -- @pytest.fixture(autouse=True) -- def inject_fixtures(self, caplog: pytest.LogCaptureFixture) -> None: -- self._caplog = caplog -- -- def test_multipart_parser_data_end_with_crlf_without_warnings(self) -> None: -- """This test makes sure that the parser does not handle when the data ends with a CRLF.""" -- data = ( -- "--boundary\r\n" -- 'Content-Disposition: form-data; name="file"; filename="filename.txt"\r\n' -- "Content-Type: text/plain\r\n\r\n" -- "hello\r\n" -- "--boundary--\r\n" -- ) -+ @parametrize( -+ "chunks", -+ [ -+ [EPILOGUE_TEST_HEAD + b"\r\n"], -+ [EPILOGUE_TEST_HEAD + b"\r", b"\n"], -+ [EPILOGUE_TEST_HEAD, b"\r\n"], -+ [EPILOGUE_TEST_HEAD + b"\r\n--boundary\r\nthis is not a valid header\r\n\r\nnot a real part"], -+ ], -+ ) -+ def test_multipart_parser_ignores_epilogue(self, chunks: list[bytes]) -> None: -+ """Epilogue data after the closing boundary must be ignored. - -+ Covers both the single-chunk case and the case where trailing CRLF is split across `write()` calls. -+ The final case asserts that epilogue bytes are not parsed or validated. -+ """ - files: list[File] = [] - - def on_file(f: FileProtocol) -> None: - files.append(cast(File, f)) - - f = FormParser("multipart/form-data", on_field=Mock(), on_file=on_file, boundary="boundary") -- with self._caplog.at_level(logging.WARNING): -- f.write(data.encode("latin-1")) -- assert len(self._caplog.records) == 0 -+ for chunk in chunks: -+ f.write(chunk) -+ -+ assert len(files) == 1 -+ self.assert_file_data(files[0], b"hello") - - def test_max_size_multipart(self) -> None: - # Load test data. diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix index ed476d568dd85..5403a419d768e 100644 --- a/pkgs/development/python-modules/python-multipart/default.nix +++ b/pkgs/development/python-modules/python-multipart/default.nix @@ -16,14 +16,14 @@ buildPythonPackage (finalAttrs: { pname = "python-multipart"; - version = "0.0.29"; + version = "0.0.30"; pyproject = true; src = fetchFromGitHub { owner = "Kludex"; repo = "python-multipart"; tag = finalAttrs.version; - hash = "sha256-1aV7gWLuulINesm3L8Wm3+prmeD9+OY/ihm36rtQPRs="; + hash = "sha256-qW/OkOaM+7sN6+mxO5tm6tuDDJ/c703XDNqo6i6YnXo="; }; build-system = [ hatchling ]; @@ -50,6 +50,9 @@ buildPythonPackage (finalAttrs: { description = "Streaming multipart parser for Python"; homepage = "https://github.com/Kludex/python-multipart"; license = lib.licenses.asl20; - maintainers = with lib.maintainers; [ ris ]; + maintainers = with lib.maintainers; [ + dotlambda + ris + ]; }; }) diff --git a/pkgs/development/python-modules/python-openevse-http/default.nix b/pkgs/development/python-modules/python-openevse-http/default.nix index f33bdd102a93e..962cb637c9792 100644 --- a/pkgs/development/python-modules/python-openevse-http/default.nix +++ b/pkgs/development/python-modules/python-openevse-http/default.nix @@ -9,21 +9,25 @@ pytestCheckHook, pytest-asyncio, setuptools, + setuptools-scm, }: buildPythonPackage (finalAttrs: { pname = "python-openevse-http"; - version = "0.3.4"; + version = "1.0.1"; pyproject = true; src = fetchFromGitHub { owner = "firstof9"; repo = "python-openevse-http"; tag = finalAttrs.version; - hash = "sha256-H5kRn8TmTpaX1qf94N2l1qOm03upFzHFistZDLFu/Zs="; + hash = "sha256-X87nS/h+Lh//rf8pNrlX22HOpT3Bz/6QgWBfQEaDQP8="; }; - build-system = [ setuptools ]; + build-system = [ + setuptools + setuptools-scm + ]; dependencies = [ aiohttp diff --git a/pkgs/development/python-modules/python-pooldose/default.nix b/pkgs/development/python-modules/python-pooldose/default.nix index 033965d23f334..98514cb947d5e 100644 --- a/pkgs/development/python-modules/python-pooldose/default.nix +++ b/pkgs/development/python-modules/python-pooldose/default.nix @@ -8,18 +8,19 @@ pytest-asyncio, pytestCheckHook, setuptools, + websockets, }: buildPythonPackage rec { pname = "python-pooldose"; - version = "0.9.1"; + version = "0.9.6"; pyproject = true; src = fetchFromGitHub { owner = "lmaertin"; repo = "python-pooldose"; tag = version; - hash = "sha256-1WHNiVPquL/D5lpN27iXSA2cWU+VjCPIcW9Th65axVA="; + hash = "sha256-eSFe3PRKhVMuwJ7XUHRec8nPilSxGUQ1T2k2loLubUg="; }; build-system = [ setuptools ]; @@ -28,6 +29,7 @@ buildPythonPackage rec { aiofiles aiohttp getmac + websockets ]; pythonImportsCheck = [ "pooldose" ]; diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix index cf262e14980a4..b6a949eb1c7f2 100644 --- a/pkgs/development/python-modules/python-roborock/default.nix +++ b/pkgs/development/python-modules/python-roborock/default.nix @@ -15,23 +15,26 @@ pycryptodome, pycryptodomex, pyrate-limiter, + pyshark, pytest-asyncio, pytestCheckHook, + pyyaml, vacuum-map-parser-roborock, click-shell, syrupy, + writableTmpDirAsHomeHook, }: buildPythonPackage (finalAttrs: { pname = "python-roborock"; - version = "5.14.0"; + version = "5.25.0"; pyproject = true; src = fetchFromGitHub { owner = "Python-roborock"; repo = "python-roborock"; tag = "v${finalAttrs.version}"; - hash = "sha256-SqFU7hhcykP/VSSiPLQPi62iAkgcSw6vwmXq+FpIt9w="; + hash = "sha256-Uj7rr9vAdZBseeePQU1/3bILwsI0P2CDy1bGu6R90Cg="; }; pythonRelaxDeps = [ @@ -44,24 +47,31 @@ buildPythonPackage (finalAttrs: { dependencies = [ aiohttp aiomqtt - click construct paho-mqtt protobuf pycryptodome pyrate-limiter vacuum-map-parser-roborock - click-shell ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ pycryptodomex ]; + optional-dependencies.cli = [ + click + click-shell + pyyaml + pyshark + ]; + nativeCheckInputs = [ aioresponses freezegun pytest-asyncio pytestCheckHook syrupy - ]; + writableTmpDirAsHomeHook + ] + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; __darwinAllowLocalNetworking = true; diff --git a/pkgs/development/python-modules/python-xlib/default.nix b/pkgs/development/python-modules/python-xlib/default.nix index 1bb1f5361d5f0..c58397a1fd008 100644 --- a/pkgs/development/python-modules/python-xlib/default.nix +++ b/pkgs/development/python-modules/python-xlib/default.nix @@ -4,7 +4,7 @@ buildPythonPackage, fetchFromGitHub, six, - setuptools, + setuptools_80, setuptools-scm, libx11, xvfb, @@ -19,8 +19,6 @@ buildPythonPackage rec { version = "0.33"; pyproject = true; - build-system = [ setuptools ]; - src = fetchFromGitHub { owner = "python-xlib"; repo = "python-xlib"; @@ -28,11 +26,13 @@ buildPythonPackage rec { hash = "sha256-u06OWlMIOUzHOVS4hvm72jGgTSXWUqMvEQd8bTpFog0="; }; - nativeBuildInputs = [ setuptools-scm ]; + build-system = [ + (setuptools-scm.override { setuptools = setuptools_80; }) + ]; buildInputs = [ libx11 ]; - propagatedBuildInputs = [ six ]; + dependencies = [ six ]; doCheck = !stdenv.hostPlatform.isDarwin; diff --git a/pkgs/development/python-modules/pytokens/default.nix b/pkgs/development/python-modules/pytokens/default.nix new file mode 100644 index 0000000000000..cd0346f062237 --- /dev/null +++ b/pkgs/development/python-modules/pytokens/default.nix @@ -0,0 +1,47 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + ast-serialize, + mypy, + setuptools, + pytestCheckHook, + pytest-cov-stub, +}: + +buildPythonPackage (finalAttrs: { + pname = "pytokens"; + version = "0.4.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "tusharsadhwani"; + repo = "pytokens"; + tag = finalAttrs.version; + hash = "sha256-DOCOoZ3T7qh8me1vn7qYlEMiyc31d77sf1/5RsW5sUg="; + }; + + build-system = [ + ast-serialize + mypy + setuptools + ]; + + nativeCheckInputs = [ + pytest-cov-stub + pytestCheckHook + ]; + + pythonImportsCheck = [ + "pytokens" + ]; + + meta = { + changelog = "https://github.com/tusharsadhwani/pytokens/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + description = "Fast, spec compliant Python 3.14+ tokenizer that runs on older Pythons"; + homepage = "https://github.com/tusharsadhwani/pytokens"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/pyturbojpeg/default.nix b/pkgs/development/python-modules/pyturbojpeg/default.nix index 05d24e31f8d41..f6aa0ba577f33 100644 --- a/pkgs/development/python-modules/pyturbojpeg/default.nix +++ b/pkgs/development/python-modules/pyturbojpeg/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyturbojpeg"; - version = "2.2.0"; + version = "2.3.0"; pyproject = true; src = fetchFromGitHub { owner = "lilohuang"; repo = "PyTurboJPEG"; tag = "v${version}"; - hash = "sha256-Sue8S/2/dY3aF7fihHuqpHXotcXcijcqAXGCJn8Z5VE="; + hash = "sha256-rMn5NmiwKhyj4U9kyyRf9ZheVnETpixZoL/AVlBlImQ="; }; patches = [ diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix index a6f0018e3fd13..7b8e9ddc2d6bd 100644 --- a/pkgs/development/python-modules/pytz/default.nix +++ b/pkgs/development/python-modules/pytz/default.nix @@ -9,12 +9,12 @@ buildPythonPackage rec { pname = "pytz"; - version = "2026.1.post1"; + version = "2026.2"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-M3jd5qDD0mcZGCFCxW5gx/mvfpaAdvMarladcqA1juE="; + hash = "sha256-DmC0eynyFXQ3byGP4hq8AJiUojIeoWxnVPPK1ut83Wo="; }; postPatch = '' diff --git a/pkgs/development/python-modules/pywebtransport/default.nix b/pkgs/development/python-modules/pywebtransport/default.nix index c8116561b720b..d1e93433fe5ec 100644 --- a/pkgs/development/python-modules/pywebtransport/default.nix +++ b/pkgs/development/python-modules/pywebtransport/default.nix @@ -3,7 +3,6 @@ buildPythonPackage, clang, fetchFromGitHub, - libclang, llvmPackages, msgpack, pkg-config, @@ -42,13 +41,13 @@ buildPythonPackage (finalAttrs: { ]; nativeBuildInputs = [ - clang + llvmPackages.clang llvmPackages.libclang.lib pkg-config ]; env.LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; - env.LD_LIBRARY_PATH = "${llvmPackages.libclang.lib}/lib:${lib.getLib libclang}/lib"; + env.LD_LIBRARY_PATH = "${llvmPackages.libclang.lib}/lib:${lib.getLib clang}/lib"; prePatch = '' # maturin can't find the file diff --git a/pkgs/development/python-modules/pywmspro/default.nix b/pkgs/development/python-modules/pywmspro/default.nix index 39209509a0117..3e84f4f90a6d2 100644 --- a/pkgs/development/python-modules/pywmspro/default.nix +++ b/pkgs/development/python-modules/pywmspro/default.nix @@ -4,19 +4,20 @@ fetchFromGitHub, hatchling, hatch-vcs, + aiofiles, aiohttp, }: buildPythonPackage (finalAttrs: { pname = "pywmspro"; - version = "0.3.5"; + version = "0.4.1"; pyproject = true; src = fetchFromGitHub { owner = "mback2k"; repo = "pywmspro"; tag = finalAttrs.version; - hash = "sha256-01jXkSZfmBIzrz0B/4/KLcAU4jUQGDfle4sE4saraJo="; + hash = "sha256-gpAAGrM/dLSD7rCbYM9O3hVCvDb0QA0joZG7h+jTfCg="; }; build-system = [ @@ -24,7 +25,10 @@ buildPythonPackage (finalAttrs: { hatch-vcs ]; - dependencies = [ aiohttp ]; + dependencies = [ + aiofiles + aiohttp + ]; # Package has no tests doCheck = false; diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix index 89e77b9957851..aa968f51180d2 100644 --- a/pkgs/development/python-modules/qutip/default.nix +++ b/pkgs/development/python-modules/qutip/default.nix @@ -62,7 +62,6 @@ buildPythonPackage (finalAttrs: { # This is due to the Cython-compiled modules not being in the correct location # of the source tree. preCheck = '' - export OMP_NUM_THREADS=$NIX_BUILD_CORES mkdir -p test && cd test ''; diff --git a/pkgs/development/python-modules/readability-lxml/default.nix b/pkgs/development/python-modules/readability-lxml/default.nix index e016767db6141..30453064016a4 100644 --- a/pkgs/development/python-modules/readability-lxml/default.nix +++ b/pkgs/development/python-modules/readability-lxml/default.nix @@ -25,7 +25,10 @@ buildPythonPackage rec { build-system = [ poetry-core ]; - pythonRelaxDeps = [ "lxml" ]; + pythonRelaxDeps = [ + "chardet" + "lxml" + ]; dependencies = [ chardet diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix index 2602e0f0e3e1a..2e92150b8f9e3 100644 --- a/pkgs/development/python-modules/redis/default.nix +++ b/pkgs/development/python-modules/redis/default.nix @@ -23,18 +23,32 @@ cryptography, pyopenssl, requests, + + # extras: otel + opentelemetry-api, + opentelemetry-exporter-otlp-proto-http, + opentelemetry-sdk, + + # extras: xxhash + xxhash, + + # tests + numpy, + pytest-asyncio, + pytestCheckHook, + redisTestHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "redis"; - version = "7.4.0"; + version = "8.0.1"; pyproject = true; src = fetchFromGitHub { owner = "redis"; repo = "redis-py"; - tag = "v${version}"; - hash = "sha256-alrfAYzjvoYsaA2NYVgI56f3R+5ed4CsA35ZmvXnk6k="; + tag = "v${finalAttrs.version}"; + hash = "sha256-41i4oZmbWi87KBSaAAaZe2gPlCpgw6kEPne1IA3PHQM="; }; build-system = [ hatchling ]; @@ -52,6 +66,12 @@ buildPythonPackage rec { pyopenssl requests ]; + otel = [ + opentelemetry-api + opentelemetry-exporter-otlp-proto-http + opentelemetry-sdk + ]; + xxhash = [ xxhash ]; }; pythonImportsCheck = [ @@ -64,15 +84,55 @@ buildPythonPackage rec { "redis.utils" ]; - # Tests require a running redis + nativeCheckInputs = [ + numpy + pytest-asyncio + pytestCheckHook + redisTestHook + ] + ++ finalAttrs.passthru.optional-dependencies.circuit_breaker + ++ finalAttrs.passthru.optional-dependencies.otel; + + enabledTestMarks = [ + "onlynoncluster" + ]; + + disabledTestMarks = [ + "onlycluster" + "redismod" + ]; + + disabledTestPaths = [ + # requires Redis Sentinel + "tests/test_asyncio/test_sentinel.py" + "tests/test_sentinel.py" + # FIXME package redis-entraid + "tests/test_asyncio/test_credentials.py" + "tests/test_credentials.py" + ]; + + disabledTests = [ + # requires a Redis cluster + "test_readonly_invalid_cluster_state" + # we run Valkey, not Redis + "test_lolwut" + ]; + + # circular dependency via pybreaker doCheck = false; + passthru.tests = { + pytest = finalAttrs.finalPackage.overrideAttrs { + doInstallCheck = true; + }; + }; + meta = { description = "Python client for Redis key-value store"; homepage = "https://github.com/redis/redis-py"; - changelog = "https://github.com/redis/redis-py/releases/tag/${src.tag}"; + changelog = "https://github.com/redis/redis-py/releases/tag/${finalAttrs.src.tag}"; license = lib.licenses.mit; maintainers = [ lib.maintainers.dotlambda ]; teams = [ lib.teams.redis ]; }; -} +}) diff --git a/pkgs/development/python-modules/requests-toolbelt/default.nix b/pkgs/development/python-modules/requests-toolbelt/default.nix index f9e79d5955c37..59354d41092be 100644 --- a/pkgs/development/python-modules/requests-toolbelt/default.nix +++ b/pkgs/development/python-modules/requests-toolbelt/default.nix @@ -6,20 +6,22 @@ pyopenssl, pytestCheckHook, requests, + setuptools, trustme, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "requests-toolbelt"; version = "1.0.0"; - format = "setuptools"; + pyproject = true; src = fetchPypi { - inherit pname version; + inherit (finalAttrs) pname version; hash = "sha256-doGgo9BHAStb3A7jfX+PB+vnarCMrsz8OSHOI8iNW8Y="; }; - propagatedBuildInputs = [ requests ]; + build-system = [ setuptools ]; + dependencies = [ requests ]; nativeCheckInputs = [ betamax @@ -43,8 +45,8 @@ buildPythonPackage rec { meta = { description = "Toolbelt of useful classes and functions to be used with requests"; homepage = "http://toolbelt.rtfd.org"; - changelog = "https://github.com/requests/toolbelt/blob/${version}/HISTORY.rst"; + changelog = "https://github.com/requests/toolbelt/blob/${finalAttrs.version}/HISTORY.rst"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ matthiasbeyer ]; }; -} +}) diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix index 633658bec1ecf..6f5c636620f17 100644 --- a/pkgs/development/python-modules/requests/default.nix +++ b/pkgs/development/python-modules/requests/default.nix @@ -15,18 +15,16 @@ urllib3, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "requests"; - version = "2.33.1"; + version = "2.34.2"; pyproject = true; - __darwinAllowLocalNetworking = true; - src = fetchFromGitHub { owner = "psf"; repo = "requests"; - tag = "v${version}"; - hash = "sha256-cQnCTMmpdkvWwt7RFAIhAfmhVwGVn0Y8Z5Tr6lzDmS8="; + tag = "v${finalAttrs.version}"; + hash = "sha256-J2/sNpFUDHkNBeN7BfiMamv7YaWixZAZHxaqmPVEptc="; }; build-system = [ setuptools ]; @@ -49,7 +47,7 @@ buildPythonPackage rec { pytest-xdist pytestCheckHook ] - ++ optional-dependencies.socks; + ++ finalAttrs.passthru.optional-dependencies.socks; disabledTests = [ # Disable tests that require network access and use httpbin @@ -79,11 +77,13 @@ buildPythonPackage rec { pythonImportsCheck = [ "requests" ]; + __darwinAllowLocalNetworking = true; + meta = { description = "HTTP library for Python"; homepage = "http://docs.python-requests.org/"; - changelog = "https://github.com/psf/requests/blob/v${version}/HISTORY.md"; + changelog = "https://github.com/psf/requests/blob/${finalAttrs.src.tag}/HISTORY.md"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ fab ]; }; -} +}) diff --git a/pkgs/development/python-modules/rf-protocols/default.nix b/pkgs/development/python-modules/rf-protocols/default.nix index 089bc108991eb..4b6da52582437 100644 --- a/pkgs/development/python-modules/rf-protocols/default.nix +++ b/pkgs/development/python-modules/rf-protocols/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "rf-protocols"; - version = "4.2.0"; + version = "4.3.0"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "rf-protocols"; tag = finalAttrs.version; - hash = "sha256-F0pvEg+Cns3czK/yI6M0hpgRpk67jUgRKqgzCBYmgUY="; + hash = "sha256-g2e+iQXBaoGO1Yv5v+xpiM+beecErI58Ua5/FODg8Bo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/rich-toolkit/default.nix b/pkgs/development/python-modules/rich-toolkit/default.nix index bac82024c5837..dfb682351eefd 100644 --- a/pkgs/development/python-modules/rich-toolkit/default.nix +++ b/pkgs/development/python-modules/rich-toolkit/default.nix @@ -17,18 +17,23 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "rich-toolkit"; - version = "0.17.1"; + version = "0.20.1"; pyproject = true; src = fetchFromGitHub { owner = "patrick91"; repo = "rich-toolkit"; - tag = version; - hash = "sha256-69x760lnMdwrNFUL1g9PBlTRGz34Ur2CHWbJq7PqBmk="; + tag = finalAttrs.version; + hash = "sha256-XYSksCMCCxO6wzsEEJ6X340iT32hU5n/EikKLZ2m7A0="; }; + postPatch = '' + # the commit updating the version happens only after tagging + sed -i 's/version = ".*"/version = "${finalAttrs.version}"/' pyproject.toml + ''; + build-system = [ hatchling ]; dependencies = [ @@ -46,10 +51,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "rich_toolkit" ]; meta = { - changelog = "https://github.com/patrick91/rich-toolkit/releases/tag/${src.tag}"; + changelog = "https://github.com/patrick91/rich-toolkit/blob/${finalAttrs.src.tag}/CHANGELOG.md"; description = "Rich toolkit for building command-line applications"; homepage = "https://github.com/patrick91/rich-toolkit/"; license = lib.licenses.mit; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix index 78ad8add1fd9a..7b055a98e0bb9 100644 --- a/pkgs/development/python-modules/rich/default.nix +++ b/pkgs/development/python-modules/rich/default.nix @@ -25,16 +25,16 @@ textual, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "rich"; - version = "14.3.3"; + version = "15.0.0"; pyproject = true; src = fetchFromGitHub { owner = "Textualize"; repo = "rich"; - tag = "v${version}"; - hash = "sha256-6udVO7N17ineQozlCG/tI9jJob811gqb4GtY50JZFb0="; + tag = "v${finalAttrs.version}"; + hash = "sha256-Uk3r6aYhrjYJ8GrMKfdlv3/muK/uUynd4pd1yWCwSOM="; }; build-system = [ poetry-core ]; @@ -68,8 +68,8 @@ buildPythonPackage rec { meta = { description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"; homepage = "https://github.com/Textualize/rich"; - changelog = "https://github.com/Textualize/rich/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/Textualize/rich/blob/${finalAttrs.src.tag}/CHANGELOG.md"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ ris ]; }; -} +}) diff --git a/pkgs/development/python-modules/roman/default.nix b/pkgs/development/python-modules/roman/default.nix index 754a889cc7957..fbf8712820e57 100644 --- a/pkgs/development/python-modules/roman/default.nix +++ b/pkgs/development/python-modules/roman/default.nix @@ -2,7 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, pytestCheckHook, }: @@ -18,7 +18,7 @@ buildPythonPackage (finalAttrs: { hash = "sha256-ZtwHlS3V18EqDXJxTTwfUdtOvyQg9GbSArV7sOs1b38="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; pythonImportsCheck = [ "roman" ]; diff --git a/pkgs/development/python-modules/roombapy/default.nix b/pkgs/development/python-modules/roombapy/default.nix index 6f34f8375feb1..5f3117a1d1559 100644 --- a/pkgs/development/python-modules/roombapy/default.nix +++ b/pkgs/development/python-modules/roombapy/default.nix @@ -1,6 +1,5 @@ { lib, - amqtt, buildPythonPackage, click, fetchFromGitHub, @@ -43,7 +42,6 @@ buildPythonPackage rec { ]; nativeCheckInputs = [ - amqtt pytest-asyncio pytestCheckHook ]; diff --git a/pkgs/development/python-modules/rpy2-rinterface/default.nix b/pkgs/development/python-modules/rpy2-rinterface/default.nix index 726311ba8e3c9..4ec273c8ea1f4 100644 --- a/pkgs/development/python-modules/rpy2-rinterface/default.nix +++ b/pkgs/development/python-modules/rpy2-rinterface/default.nix @@ -1,5 +1,4 @@ { - stdenv, lib, buildPythonPackage, fetchurl, @@ -11,6 +10,7 @@ zlib, zstd, icu, + libdeflate, pytestCheckHook, setuptools, cffi, @@ -39,7 +39,8 @@ buildPythonPackage rec { ]; postPatch = '' - substituteInPlace 'src/rpy2/rinterface_lib/embedded.py' --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE" + substituteInPlace 'src/rpy2/rinterface_lib/embedded.py' \ + --replace-fail '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE" ''; buildInputs = [ @@ -48,6 +49,7 @@ buildPythonPackage rec { zlib zstd icu + libdeflate ] ++ rWrapper.recommendedPackages; @@ -55,11 +57,14 @@ buildPythonPackage rec { R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly) ]; - propagatedBuildInputs = [ - cffi + build-system = [ setuptools ]; + dependencies = [ + cffi + ]; + nativeCheckInputs = [ pytestCheckHook ]; # https://github.com/rpy2/rpy2/issues/1111 diff --git a/pkgs/development/python-modules/rpy2-robjects/default.nix b/pkgs/development/python-modules/rpy2-robjects/default.nix index 72034f447237b..637a76b82a5e6 100644 --- a/pkgs/development/python-modules/rpy2-robjects/default.nix +++ b/pkgs/development/python-modules/rpy2-robjects/default.nix @@ -1,5 +1,4 @@ { - stdenv, lib, buildPythonPackage, fetchurl, @@ -11,6 +10,7 @@ jinja2, numpy, pandas, + setuptools, tzlocal, pytestCheckHook, }: @@ -42,7 +42,9 @@ buildPythonPackage rec { R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly) ]; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ ipython jinja2 numpy @@ -58,6 +60,11 @@ buildPythonPackage rec { "-Wignore::pytest.PytestRemovedIn9Warning" ]; + disabledTests = [ + # panda 3.0 type mismatch + "test_ri2pandas" + ]; + meta = { homepage = "https://rpy2.github.io/"; description = "Python interface to R"; diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix index 053bceb0b9ab1..cd506db94100a 100644 --- a/pkgs/development/python-modules/rpy2/default.nix +++ b/pkgs/development/python-modules/rpy2/default.nix @@ -1,12 +1,11 @@ { - stdenv, lib, buildPythonPackage, fetchPypi, isPyPy, rpy2-rinterface, rpy2-robjects, - pytestCheckHook, + setuptools, }: buildPythonPackage rec { @@ -20,7 +19,9 @@ buildPythonPackage rec { hash = "sha256-8ftGSc59FOk1EzCI3sl82ifrN858xxA4X4HcpVb+jJ8="; }; - propagatedBuildInputs = [ + build-system = [ setuptools ]; + + dependencies = [ rpy2-rinterface rpy2-robjects ]; diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index 0efb763e3694d..40457b6271dc7 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -23,7 +23,7 @@ buildPythonPackage (finalAttrs: { pname = "rq"; - version = "2.9.1"; + version = "2.10"; pyproject = true; __structuredAttrs = true; @@ -31,7 +31,7 @@ buildPythonPackage (finalAttrs: { owner = "rq"; repo = "rq"; tag = "v${finalAttrs.version}"; - hash = "sha256-arPz/+T8+NneiTur17BQehMiIIpHqqR8M8nw5LWu56o="; + hash = "sha256-D5K9N5egGdysskfyjriANgytHWK0E+JMvyEpJt9QJyo="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/scales/default.nix b/pkgs/development/python-modules/scales/default.nix index e258bdf045f23..a0809ee2c5f35 100644 --- a/pkgs/development/python-modules/scales/default.nix +++ b/pkgs/development/python-modules/scales/default.nix @@ -5,7 +5,7 @@ pytestCheckHook, fetchpatch2, six, - setuptools, + setuptools_80, }: buildPythonPackage rec { @@ -34,7 +34,7 @@ buildPythonPackage rec { done; ''; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; dependencies = [ six ]; diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix index c909d8d66d08a..1190d875005a6 100644 --- a/pkgs/development/python-modules/scikit-bio/default.nix +++ b/pkgs/development/python-modules/scikit-bio/default.nix @@ -62,10 +62,6 @@ buildPythonPackage (finalAttrs: { pytestCheckHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - # only the $out dir contains the built cython extensions, so we run the tests inside there enabledTestPaths = [ "${placeholder "out"}/${python.sitePackages}/skbio" ]; diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index c0ee37ecae8ec..61cd4585d23cc 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -28,27 +28,24 @@ buildPythonPackage (finalAttrs: { pname = "scikit-build-core"; - version = "0.11.6"; + version = "0.12.2"; pyproject = true; src = fetchFromGitHub { owner = "scikit-build"; repo = "scikit-build-core"; tag = "v${finalAttrs.version}"; - hash = "sha256-zBTDacTkeclz+/X0SUl1xkxLz4zsfeLOD4Ew0V1Y1iU="; + hash = "sha256-JE6z44u1FLfI+Gguhd2rVUvY8tyEoo/WviGJmPRT8kc="; }; patches = [ - # Backport an upstream commit to fix the tests on Darwin. (fetchpatch { - url = "https://github.com/scikit-build/scikit-build-core/commit/c30f52a3b2bd01dc05f23d3b89332c213006afe0.patch"; - excludes = [ ".github/workflows/ci.yml" ]; - hash = "sha256-5E9QfF5UcSNY1wzHzieEEHEPYzPjUTb66CKCodYb9vo="; + name = "setuptools-scm-10-compat.patch"; + url = "https://github.com/scikit-build/scikit-build-core/commit/1b870c538bf7ca679fc4a6e0cbba301c98d9ac35.patch"; + hash = "sha256-JUxBvKiAHpDlIIFkvU+CflTNA6m/auxW5wd5cVYpvcM="; }) ]; - postPatch = ""; - build-system = [ hatch-vcs hatchling @@ -84,6 +81,11 @@ buildPythonPackage (finalAttrs: { "network" ]; + disabledTests = [ + # wheel tags generated with wrong system name/version + "test_wheel_tag" + ]; + disabledTestPaths = [ # store permissions issue in Nix: "tests/test_editable.py" diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix index 31f0a1d2b65f8..8bf1fbdc5ba7d 100644 --- a/pkgs/development/python-modules/scikit-build/default.nix +++ b/pkgs/development/python-modules/scikit-build/default.nix @@ -22,26 +22,15 @@ buildPythonPackage rec { pname = "scikit-build"; - version = "0.18.1"; + version = "0.19.0"; pyproject = true; src = fetchPypi { pname = "scikit_build"; inherit version; - hash = "sha256-pBUqxaCE1JnCineXvgYo2DZsM24vsOGgY+sy5V78uOc="; + hash = "sha256-RuGy1xND0U5MB9fmCQLmc8eN77miwoK3CtgPuFAq3i4="; }; - patches = [ - (fetchpatch2 { - name = "setuptools-75.0-compat.patch"; - url = "https://github.com/scikit-build/scikit-build/commit/3992485c67331097553ec8f54233c4c295943f70.patch"; - hash = "sha256-U34UY+m6RE3c3UN/jGHuR+sRUqTGmG7dT52NWCY7nIE="; - }) - - # - ./fix-cmake-4.patch - ]; - # This line in the filterwarnings section of the pytest configuration leads to this error: # E UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils. postPatch = '' diff --git a/pkgs/development/python-modules/scikit-build/fix-cmake-4.patch b/pkgs/development/python-modules/scikit-build/fix-cmake-4.patch deleted file mode 100644 index 35d1ef5ad9313..0000000000000 --- a/pkgs/development/python-modules/scikit-build/fix-cmake-4.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 9efbf7f9baa846867a9c5586e4cc82a8a19e2e84 Mon Sep 17 00:00:00 2001 -From: Emily -Date: Wed, 17 Sep 2025 19:00:01 +0100 -Subject: [PATCH 1/2] tests: fix `test_issue335_support_cmake_source_dir` with - CMake 4 - ---- - tests/samples/issue-335-support-cmake-source-dir/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/samples/issue-335-support-cmake-source-dir/CMakeLists.txt b/tests/samples/issue-335-support-cmake-source-dir/CMakeLists.txt -index 7e391c46..18bae2bf 100644 ---- a/tests/samples/issue-335-support-cmake-source-dir/CMakeLists.txt -+++ b/tests/samples/issue-335-support-cmake-source-dir/CMakeLists.txt -@@ -1,4 +1,4 @@ --cmake_minimum_required(VERSION 3.2) -+cmake_minimum_required(VERSION 3.2...3.10) - - project(hello NONE) - - -From 491d7494a3ec6cc181d37d02670c65b74c67cbfe Mon Sep 17 00:00:00 2001 -From: Emily -Date: Wed, 17 Sep 2025 19:00:01 +0100 -Subject: [PATCH 2/2] tests: fix `test_make_without_configure_fails` with CMake - 4 - ---- - tests/test_cmaker.py | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/tests/test_cmaker.py b/tests/test_cmaker.py -index cf166905..9b6c3758 100644 ---- a/tests/test_cmaker.py -+++ b/tests/test_cmaker.py -@@ -82,7 +82,10 @@ def test_make_without_configure_fails(capfd): - CMaker().make() - _, err = capfd.readouterr() - assert "An error occurred while building with CMake." in str(excinfo.value) -- assert "Error: could not load cache" in err -+ # CMake 4 changed the error message. -+ err_message_cmake_3 = "Error: could not load cache" -+ err_message_cmake_4 = "Error: not a CMake build directory (missing CMakeCache.txt)" -+ assert err_message_cmake_3 in err or err_message_cmake_4 in err - - - @pytest.mark.parametrize("configure_with_cmake_source_dir", [True, False]) diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix index b48f5a5d8f729..bf50ab0b7a632 100644 --- a/pkgs/development/python-modules/scikit-learn/default.nix +++ b/pkgs/development/python-modules/scikit-learn/default.nix @@ -116,7 +116,6 @@ buildPythonPackage rec { preCheck = '' cd $TMPDIR export HOME=$TMPDIR - export OMP_NUM_THREADS=1 ''; pythonImportsCheck = [ "sklearn" ]; diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix index cdecd986e4ef7..388e665f78ccc 100644 --- a/pkgs/development/python-modules/scipy/default.nix +++ b/pkgs/development/python-modules/scipy/default.nix @@ -27,7 +27,7 @@ pybind11, pooch, xsimd, - boost189, + boost191, qhull, # dependencies @@ -44,41 +44,26 @@ buildPythonPackage (finalAttrs: { pname = "scipy"; - version = "1.17.1"; + version = "1.18.0"; pyproject = true; src = fetchFromGitHub { owner = "scipy"; repo = "scipy"; tag = "v${finalAttrs.version}"; - hash = "sha256-lFmqdbCf7pcosdZ7RFMv+8H9+ztMJbDS5g5fQs8Nws8="; + hash = "sha256-qVTFWYZ9krhZNYLyuZTfiS7UYmMZL40GFqod84l+VHI="; fetchSubmodules = true; }; patches = [ # Helps with cross compilation, see https://github.com/scipy/scipy/pull/18167 (fetchpatch { - url = "https://github.com/scipy/scipy/commit/dd50ac9d98dbb70625333a23e3a90e493228e3be.patch"; - hash = "sha256-Vf6/hhwu6X5s8KWhq8bUZKtSkdVu/GtEpGtj8Olxe7s="; - excludes = [ "doc/source/dev/contributor/meson_advanced.rst" ]; + url = "https://github.com/scipy/scipy/commit/33696c545b74d6fda6f6f39e818d26c2b7631498.patch"; + hash = "sha256-R5rgSz/9+T2+fpDFTfZQLTvdISTGUAuHEBAWT39x9LQ="; + excludes = [ "doc/source/building/cross_compilation.rst" ]; }) ]; - # A NOTE regarding the Numpy version relaxing: Both Numpy versions 1.x & - # 2.x are supported. However upstream wants to always build with Numpy 2, - # and with it to still be able to run with a Numpy 1 or 2. We insist to - # perform this substitution even though python3.pkgs.numpy is of version 2 - # nowadays, because our ecosystem unfortunately doesn't allow easily - # separating runtime and build-system dependencies. See also: - # - # https://discourse.nixos.org/t/several-comments-about-priorities-and-new-policies-in-the-python-ecosystem/51790 - # - # Being able to build (& run) with Numpy 1 helps for python environments - # that override globally the `numpy` attribute to point to `numpy_1`. - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail "numpy>=2.0.0,<2.7" numpy - '' - + lib.optionalString (stdenv.hostPlatform.isDarwin) '' + postPatch = lib.optionalString (stdenv.hostPlatform.isDarwin) '' substituteInPlace scipy/meson.build \ --replace-fail "r = run_command('xcrun', '-sdk', 'macosx', '--show-sdk-version', check: true)" "" substituteInPlace scipy/meson.build \ @@ -101,7 +86,7 @@ buildPythonPackage (finalAttrs: { pybind11 pooch xsimd - boost189 + boost191 qhull ]; @@ -115,32 +100,41 @@ buildPythonPackage (finalAttrs: { pytest-xdist ]; - disabledTests = - lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ - # The following tests are broken on aarch64-darwin with newer compilers and library versions. - # See https://github.com/scipy/scipy/issues/18308 - "test_a_b_neg_int_after_euler_hypergeometric_transformation" - "test_dst4_definition_ortho" - "test_load_mat4_le" - "hyp2f1_test_case47" - "hyp2f1_test_case3" - "test_uint64_max" - "test_large_m4" # https://github.com/scipy/scipy/issues/22466 - "test_spiral_cleanup" - ] - ++ lib.optionals (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian) [ - # https://github.com/scipy/scipy/issues/24090 - "test_cython_api" - "test_distance_transform_cdt05" - "test_eval_chebyt_gh20129" - "test_hyp0f1" - "test_hyp0f1_gh5764" - "test_simple_det_shapes_real_complex" - ] - ++ lib.optionals (python.isPy311) [ - # https://github.com/scipy/scipy/issues/22789 Observed only with Python 3.11 - "test_funcs" - ]; + disabledTests = [ + # precision issues on at least some x86_64 and aarch64 + # see: https://github.com/scipy/scipy/issues/25488 + "test_nyquist" + ] + ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [ + # more flakiness + # see: https://github.com/scipy/scipy/issues/25522 + "test_convergence" + ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ + # The following tests are broken on aarch64-darwin with newer compilers and library versions. + # See https://github.com/scipy/scipy/issues/18308 + "test_a_b_neg_int_after_euler_hypergeometric_transformation" + "test_dst4_definition_ortho" + "test_load_mat4_le" + "hyp2f1_test_case47" + "hyp2f1_test_case3" + "test_uint64_max" + "test_large_m4" # https://github.com/scipy/scipy/issues/22466 + "test_spiral_cleanup" + ] + ++ lib.optionals (stdenv.hostPlatform.isPower64 && stdenv.hostPlatform.isBigEndian) [ + # https://github.com/scipy/scipy/issues/24090 + "test_cython_api" + "test_distance_transform_cdt05" + "test_eval_chebyt_gh20129" + "test_hyp0f1" + "test_hyp0f1_gh5764" + "test_simple_det_shapes_real_complex" + ] + ++ lib.optionals (python.isPy311) [ + # https://github.com/scipy/scipy/issues/22789 Observed only with Python 3.11 + "test_funcs" + ]; doCheck = !(stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isDarwin); @@ -190,11 +184,6 @@ buildPythonPackage (finalAttrs: { ''; preCheck = '' - export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 )) - if [ $OMP_NUM_THREADS -eq 0 ]; then - export OMP_NUM_THREADS=1 - fi - cd $out ''; diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix index 0cacbda728d83..cceb55ded4584 100644 --- a/pkgs/development/python-modules/scrapy/default.nix +++ b/pkgs/development/python-modules/scrapy/default.nix @@ -9,6 +9,7 @@ fetchFromGitHub, glibcLocales, hatchling, + httpx, installShellFiles, itemadapter, itemloaders, @@ -40,14 +41,14 @@ buildPythonPackage rec { pname = "scrapy"; - version = "2.14.1"; + version = "2.16.0"; pyproject = true; src = fetchFromGitHub { owner = "scrapy"; repo = "scrapy"; tag = version; - hash = "sha256-KDci1Z5TZ+3svotYXkEG1s+bPWtxzIfQQwOgvI0k8w0="; + hash = "sha256-s72COXzDuTtRNGenZEZG8QCeq+9LBu6fuT5NOjpVYaY="; }; pythonRelaxDeps = [ @@ -86,6 +87,7 @@ buildPythonPackage rec { nativeCheckInputs = [ botocore glibcLocales + httpx jmespath pexpect pytest-asyncio @@ -106,7 +108,6 @@ buildPythonPackage rec { ]; disabledTestPaths = [ - "tests/test_proxy_connect.py" "tests/test_utils_display.py" "tests/test_command_check.py" @@ -133,9 +134,12 @@ buildPythonPackage rec { "AnonymousFTPTestCase" "FTPFeedStorageTest" "FeedExportTest" + "TestRealWebsite" "test_custom_asyncio_loop_enabled_true" "test_custom_loop_asyncio" "test_custom_loop_asyncio_deferred_signal" + "test_pos_string" + "test_key_resp_or_url" # "FileFeedStoragePreFeedOptionsTest" # https://github.com/scrapy/scrapy/issues/5157 "test_persist" "test_timeout_download_from_spider_nodata_rcvd" diff --git a/pkgs/development/python-modules/scsgate/default.nix b/pkgs/development/python-modules/scsgate/default.nix deleted file mode 100644 index f61d14a5d4188..0000000000000 --- a/pkgs/development/python-modules/scsgate/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - pyserial, - pyyaml, - setuptools, - pytestCheckHook, -}: - -buildPythonPackage rec { - pname = "scsgate"; - version = "0.1.0"; - pyproject = true; - - src = fetchFromGitHub { - owner = "flavio"; - repo = "scsgate"; - tag = version; - hash = "sha256-wVzXKOKljENAKppod+guqm+0XMPenLgOsZzMQVTBo+k="; - }; - - build-system = [ setuptools ]; - - dependencies = [ - pyserial - pyyaml - ]; - - nativeCheckInputs = [ pytestCheckHook ]; - - pythonImportsCheck = [ "scsgate" ]; - - meta = { - description = "Python module to interact with SCSGate"; - homepage = "https://github.com/flavio/scsgate"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.jamiemagee ]; - }; -} diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix index 08041d7a5d7b1..3a48512d690b3 100644 --- a/pkgs/development/python-modules/seaborn/default.nix +++ b/pkgs/development/python-modules/seaborn/default.nix @@ -12,6 +12,7 @@ pandas, scipy, statsmodels, + writableTmpDirAsHomeHook, }: buildPythonPackage rec { @@ -64,11 +65,16 @@ buildPythonPackage rec { nativeCheckInputs = [ pytest-xdist pytest8_3CheckHook + writableTmpDirAsHomeHook ]; disabledTests = [ # requires internet connection "test_load_dataset_string_error" + # matplotlib error string matching + "test_theme_validation" + # log scale transformation match too strict + "test_log_scale" ] ++ lib.optionals (!stdenv.hostPlatform.isx86) [ # overly strict float tolerances diff --git a/pkgs/development/python-modules/serialx/default.nix b/pkgs/development/python-modules/serialx/default.nix index b07291e7a98f5..6979a8587c49f 100644 --- a/pkgs/development/python-modules/serialx/default.nix +++ b/pkgs/development/python-modules/serialx/default.nix @@ -20,14 +20,14 @@ buildPythonPackage (finalAttrs: { pname = "serialx"; - version = "1.8.1"; + version = "1.8.2"; pyproject = true; src = fetchFromGitHub { owner = "puddly"; repo = "serialx"; tag = "v${finalAttrs.version}"; - hash = "sha256-89lRB96lit4XxPhACnZ3Lv01G0IcddlwyPTttrWwsLQ="; + hash = "sha256-/Bx8TnO3h+Pk/Tg5YSYO96cK5PfJVwqRG0qdLJntNpQ="; }; cargoDeps = rustPlatform.fetchCargoVendor { diff --git a/pkgs/development/python-modules/setuptools-scm/default.nix b/pkgs/development/python-modules/setuptools-scm/default.nix index 876eb1e9cbd8c..3b855063ad5e6 100644 --- a/pkgs/development/python-modules/setuptools-scm/default.nix +++ b/pkgs/development/python-modules/setuptools-scm/default.nix @@ -8,8 +8,7 @@ setuptools, # dependencies - packaging, - typing-extensions, + vcs-versioning, # optional-dependencies rich, @@ -17,13 +16,13 @@ buildPythonPackage rec { pname = "setuptools-scm"; - version = "9.2.2"; + version = "10.0.5"; pyproject = true; src = fetchPypi { pname = "setuptools_scm"; inherit version; - hash = "sha256-HGdKtGZWhqCIfX4kwDqyXyQgHCE+guponS8+Fp7371c="; + hash = "sha256-u7qP51RRbN79AX9EVnIXdebvlmK9eIf7Uq4mgT1IOMM="; }; postPatch = null; @@ -31,9 +30,8 @@ buildPythonPackage rec { build-system = [ setuptools ]; dependencies = [ - packaging setuptools - typing-extensions + vcs-versioning ]; optional-dependencies = { diff --git a/pkgs/development/python-modules/setuptools/80.nix b/pkgs/development/python-modules/setuptools/80.nix new file mode 100644 index 0000000000000..a051cb776fa38 --- /dev/null +++ b/pkgs/development/python-modules/setuptools/80.nix @@ -0,0 +1,56 @@ +{ + stdenv, + lib, + buildPythonPackage, + distutils_80, + fetchFromGitHub, + python, +}: + +buildPythonPackage (finalAttrs: { + pname = "setuptools"; + version = "80.10.2"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pypa"; + repo = "setuptools"; + tag = "v${finalAttrs.version}"; + hash = "sha256-kf2c4auQrZDGW8bM0SxOPFsR8IE4b0coevTxKWGtHp8="; + }; + + patches = [ + ./reproducible-wheel.patch + ]; + + # Drop dependency on coherent.license, which in turn requires coherent.build + postPatch = '' + sed -i "/coherent.licensed/d" pyproject.toml + + # Substitute version for reproducible builds + substituteInPlace setuptools/version.py \ + --replace-fail '@version@' '${finalAttrs.version}' + ''; + + preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' + export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0 + ''; + + # Requires pytest, causing infinite recursion. + doCheck = false; + + passthru.tests = { + inherit distutils_80; + }; + + meta = { + description = "Utilities to facilitate the installation of Python packages"; + homepage = "https://github.com/pypa/setuptools"; + changelog = "https://setuptools.pypa.io/en/stable/history.html#v${ + lib.replaceString "." "-" finalAttrs.version + }"; + license = with lib.licenses; [ mit ]; + platforms = python.meta.platforms; + teams = [ lib.teams.python ]; + }; +}) diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix index 657d23f350732..7daa5062fbb88 100644 --- a/pkgs/development/python-modules/setuptools/default.nix +++ b/pkgs/development/python-modules/setuptools/default.nix @@ -7,16 +7,16 @@ python, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "setuptools"; - version = "80.10.1"; + version = "82.0.1"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "setuptools"; - tag = "v${version}"; - hash = "sha256-s/gfJc3yxvCE6cjP03vtIZqNFmoZKR3d7+4gTPk1hQg="; + tag = "v${finalAttrs.version}"; + hash = "sha256-M4fB+R4UNla2VlcWNhfDLvExQMpjLkPkgVsU4vg6ImU="; }; patches = [ @@ -29,7 +29,7 @@ buildPythonPackage rec { # Substitute version for reproducible builds substituteInPlace setuptools/version.py \ - --replace-fail '@version@' '${version}' + --replace-fail '@version@' '${finalAttrs.version}' ''; preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) '' @@ -47,10 +47,10 @@ buildPythonPackage rec { description = "Utilities to facilitate the installation of Python packages"; homepage = "https://github.com/pypa/setuptools"; changelog = "https://setuptools.pypa.io/en/stable/history.html#v${ - lib.replaceStrings [ "." ] [ "-" ] version + lib.replaceString "." "-" finalAttrs.version }"; license = with lib.licenses; [ mit ]; platforms = python.meta.platforms; teams = [ lib.teams.python ]; }; -} +}) diff --git a/pkgs/development/python-modules/sigstore/default.nix b/pkgs/development/python-modules/sigstore/default.nix index 6cc24de623ba3..365356b0dd8e1 100644 --- a/pkgs/development/python-modules/sigstore/default.nix +++ b/pkgs/development/python-modules/sigstore/default.nix @@ -52,6 +52,7 @@ buildPythonPackage (finalAttrs: { pythonRelaxDeps = [ "cryptography" + "rich" "sigstore-models" ]; diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix index c7d4995fc1cc5..df2552ed6f5da 100644 --- a/pkgs/development/python-modules/skein/default.nix +++ b/pkgs/development/python-modules/skein/default.nix @@ -10,7 +10,7 @@ grpcio-tools, hadoop, pytestCheckHook, - setuptools, + setuptools_80, versioneer, }: @@ -27,12 +27,17 @@ buildPythonPackage rec { jarHash = "sha256-x2KH6tnoG7sogtjrJvUaxy0PCEA8q/zneuI969oBOKo="; skeinJar = callPackage ./skeinjar.nix { inherit pname version jarHash; }; - propagatedBuildInputs = [ + build-system = [ + setuptools_80 + versioneer + ]; + + dependencies = [ cryptography grpcio pyyaml - ] - ++ lib.optionals (!pythonOlder "3.12") [ setuptools ]; + ]; + buildInputs = [ grpcio-tools ]; preBuild = '' @@ -52,8 +57,6 @@ buildPythonPackage rec { --replace-fail "distutils" "setuptools._distutils" ''; - build-system = [ versioneer ]; - pythonImportsCheck = [ "skein" ]; nativeCheckInputs = [ pytestCheckHook ]; diff --git a/pkgs/development/python-modules/skia-pathops/default.nix b/pkgs/development/python-modules/skia-pathops/default.nix index 275f8814a9cbc..8db6aca481ec9 100644 --- a/pkgs/development/python-modules/skia-pathops/default.nix +++ b/pkgs/development/python-modules/skia-pathops/default.nix @@ -16,13 +16,13 @@ buildPythonPackage rec { pname = "skia-pathops"; - version = "0.9.1"; + version = "0.9.2"; pyproject = true; src = fetchPypi { pname = "skia_pathops"; inherit version; - hash = "sha256-8Sc+9NojVw8z5253U5CEhOWkokaPexCJ+REMzuYpP5k="; + hash = "sha256-S22EWfb0ppKCyyb8oMK7CzIcxYqb+cxleaUqOR7cAxk="; }; postPatch = '' diff --git a/pkgs/development/python-modules/slowapi/default.nix b/pkgs/development/python-modules/slowapi/default.nix index 3847051bca321..28c6221c2f17a 100644 --- a/pkgs/development/python-modules/slowapi/default.nix +++ b/pkgs/development/python-modules/slowapi/default.nix @@ -50,6 +50,10 @@ buildPythonPackage (finalAttrs: { # AssertionError: assert '1740326049.9886339' == '1740326049' "test_headers_no_breach" "test_headers_breach" + # tests use @app.route() removed in Starlette 1.0 + # https://github.com/laurentS/slowapi/issues/271 + "test_retry_after" + "test_exempt_decorator" ]; pythonImportsCheck = [ "slowapi" ]; diff --git a/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix b/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix index fcfc2e4b98939..a084e1a549624 100644 --- a/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix +++ b/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix @@ -10,14 +10,14 @@ buildPythonPackage (finalAttrs: { pname = "sphinx-autodoc-typehints"; - version = "3.10.2"; + version = "3.10.5"; pyproject = true; src = fetchFromGitHub { owner = "tox-dev"; repo = "sphinx-autodoc-typehints"; tag = finalAttrs.version; - hash = "sha256-ZdUKD8qUWjndhkqnUVk9NoSFgH/Fl2yG7LKHUB4T9CA="; + hash = "sha256-ClRfCv3UvUdnSnm5XuyrWj8oFQMSAPb3ZCDokAWI4cE="; }; build-system = [ diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix index fb99c84de0bde..b0733c1289e52 100644 --- a/pkgs/development/python-modules/sphinx/default.nix +++ b/pkgs/development/python-modules/sphinx/default.nix @@ -95,11 +95,11 @@ buildPythonPackage rec { disabledTestPaths = lib.optionals isPyPy [ # internals are asserted which are sightly different in PyPy - "tests/test_extensions/test_ext_autodoc.py" - "tests/test_extensions/test_ext_autodoc_autoclass.py" - "tests/test_extensions/test_ext_autodoc_autofunction.py" - "tests/test_extensions/test_ext_autodoc_automodule.py" - "tests/test_extensions/test_ext_autodoc_preserve_defaults.py" + "tests/test_ext_autodoc/test_ext_autodoc.py" + "tests/test_ext_autodoc/test_ext_autodoc_autoclass.py" + "tests/test_ext_autodoc/test_ext_autodoc_autofunction.py" + "tests/test_ext_autodoc/test_ext_autodoc_automodule.py" + "tests/test_ext_autodoc/test_ext_autodoc_preserve_defaults.py" "tests/test_util/test_util_inspect.py" "tests/test_util/test_util_typing.py" ]; diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix index 984523ba14738..8f628338332cc 100644 --- a/pkgs/development/python-modules/sqlalchemy/default.nix +++ b/pkgs/development/python-modules/sqlalchemy/default.nix @@ -43,14 +43,14 @@ buildPythonPackage (finalAttrs: { pname = "sqlalchemy"; - version = "2.0.49"; + version = "2.0.51"; pyproject = true; src = fetchFromGitHub { owner = "sqlalchemy"; repo = "sqlalchemy"; tag = "rel_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; - hash = "sha256-+6g9TONKwCQWmWXHjpIDPDh96ng4lwLc1C009/l769Q="; + hash = "sha256-2t3NhfLiu/rLI2yvFPK9uQXGyzqNUj7ImDRx0EasdsI="; }; postPatch = '' diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix index e66a5cf7a80d8..98974519d5758 100644 --- a/pkgs/development/python-modules/starlette/default.nix +++ b/pkgs/development/python-modules/starlette/default.nix @@ -31,7 +31,7 @@ buildPythonPackage rec { pyproject = true; src = fetchFromGitHub { - owner = "encode"; + owner = "Kludex"; repo = "starlette"; tag = version; hash = "sha256-9iQXlpA1VDGw1c7X1zJPmJ3Dub46PwqrVIX1+fWOZ7M="; @@ -56,12 +56,6 @@ buildPythonPackage rec { ] ++ lib.concatAttrValues optional-dependencies; - pytestFlags = [ - "-Wignore::DeprecationWarning" - "-Wignore::trio.TrioDeprecationWarning" - "-Wignore::ResourceWarning" # FIXME remove once test suite is fully compatible with anyio 4.4.0 - ]; - pythonImportsCheck = [ "starlette" ]; passthru.tests = { @@ -69,8 +63,8 @@ buildPythonPackage rec { }; meta = { - changelog = "https://www.starlette.io/release-notes/#${lib.replaceStrings [ "." ] [ "" ] version}"; - downloadPage = "https://github.com/encode/starlette"; + changelog = "https://github.com/Kludex/starlette/blob/${src.tag}/docs/release-notes.md"; + downloadPage = "https://github.com/Kludex/starlette"; homepage = "https://www.starlette.io/"; description = "Little ASGI framework that shines"; license = lib.licenses.bsd3; diff --git a/pkgs/development/python-modules/strct/default.nix b/pkgs/development/python-modules/strct/default.nix index ff38db934034a..dd481a5fb52a5 100644 --- a/pkgs/development/python-modules/strct/default.nix +++ b/pkgs/development/python-modules/strct/default.nix @@ -2,7 +2,7 @@ lib, fetchFromGitHub, buildPythonPackage, - setuptools, + setuptools_80, pytestCheckHook, pytest-cov-stub, sortedcontainers, @@ -23,7 +23,7 @@ buildPythonPackage rec { # don't append .dev0 to version env.RELEASING_PROCESS = "1"; - nativeBuildInputs = [ setuptools ]; + nativeBuildInputs = [ setuptools_80 ]; nativeCheckInputs = [ pytestCheckHook diff --git a/pkgs/development/python-modules/syrupy/default.nix b/pkgs/development/python-modules/syrupy/default.nix index 4b2b521e033ce..c4f84e1506998 100644 --- a/pkgs/development/python-modules/syrupy/default.nix +++ b/pkgs/development/python-modules/syrupy/default.nix @@ -1,33 +1,33 @@ { lib, - attrs, buildPythonPackage, fetchFromGitHub, - poetry-core, + hatchling, + hypothesis, pydantic, pytest, pytest-xdist, invoke, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "syrupy"; - version = "5.1.0"; + version = "5.2.0"; pyproject = true; src = fetchFromGitHub { owner = "syrupy-project"; repo = "syrupy"; - tag = "v${version}"; - hash = "sha256-oogH5Q+0leZsfu/7r3tZmB2rxjcUOmGAsn4Z50oSlH8="; + tag = "v${finalAttrs.version}"; + hash = "sha256-tivRKADRYyyNmNOOd0w2qTseA3t7TMwkAkQ/Kr6wp6U="; }; - build-system = [ poetry-core ]; + build-system = [ hatchling ]; buildInputs = [ pytest ]; nativeCheckInputs = [ - attrs + hypothesis invoke pydantic pytest @@ -44,10 +44,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "syrupy" ]; meta = { - changelog = "https://github.com/syrupy-project/syrupy/blob/${src.tag}/CHANGELOG.md"; + changelog = "https://github.com/syrupy-project/syrupy/blob/${finalAttrs.src.tag}/CHANGELOG.md"; description = "Pytest Snapshot Test Utility"; homepage = "https://github.com/syrupy-project/syrupy"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ dotlambda ]; }; -} +}) diff --git a/pkgs/development/python-modules/systemrdl-compiler/default.nix b/pkgs/development/python-modules/systemrdl-compiler/default.nix index 7763a6a78b195..4c655d0df55e9 100644 --- a/pkgs/development/python-modules/systemrdl-compiler/default.nix +++ b/pkgs/development/python-modules/systemrdl-compiler/default.nix @@ -8,6 +8,7 @@ markdown, setuptools, setuptools-scm, + typing-extensions, }: buildPythonPackage (finalAttrs: { @@ -32,6 +33,7 @@ buildPythonPackage (finalAttrs: { antlr4-python3-runtime colorama markdown + typing-extensions ]; passthru.updateScript = gitUpdater { rev-prefix = "v"; }; diff --git a/pkgs/development/python-modules/tabcmd/default.nix b/pkgs/development/python-modules/tabcmd/default.nix index b2282677ee3b7..c07319fbe6c8c 100644 --- a/pkgs/development/python-modules/tabcmd/default.nix +++ b/pkgs/development/python-modules/tabcmd/default.nix @@ -22,14 +22,14 @@ buildPythonPackage rec { pname = "tabcmd"; - version = "2.0.18"; + version = "2.0.20"; pyproject = true; src = fetchFromGitHub { owner = "tableau"; repo = "tabcmd"; tag = "v${version}"; - hash = "sha256-Eb9ZboYdco6opKW3Tz0+U9VREWdEyt2xuG62n9WIXPk="; + hash = "sha256-BviaCIav8rz37ac126KS4p54gbxzd6vs1p5kTy42bv4="; }; prePatch = '' diff --git a/pkgs/development/python-modules/tank-utility/default.nix b/pkgs/development/python-modules/tank-utility/default.nix index f8eaa15929946..cd36738656899 100644 --- a/pkgs/development/python-modules/tank-utility/default.nix +++ b/pkgs/development/python-modules/tank-utility/default.nix @@ -6,7 +6,7 @@ pytestCheckHook, requests, responses, - setuptools, + setuptools_80, urllib3, }: @@ -22,9 +22,9 @@ buildPythonPackage rec { hash = "sha256-h9y3X+FSzSFt+bd/chz+x0nocHaKZ8DvreMxAYMs8/E="; }; - nativeBuildInputs = [ setuptools ]; + build-system = [ setuptools_80 ]; - propagatedBuildInputs = [ + dependencies = [ requests urllib3 ]; diff --git a/pkgs/development/python-modules/teltasync/default.nix b/pkgs/development/python-modules/teltasync/default.nix index 08cb9bf63f5ab..e5c8bae9dc266 100644 --- a/pkgs/development/python-modules/teltasync/default.nix +++ b/pkgs/development/python-modules/teltasync/default.nix @@ -12,14 +12,14 @@ buildPythonPackage (finalAttrs: { pname = "teltasync"; - version = "0.3.1"; + version = "0.4.0"; pyproject = true; src = fetchFromCodeberg { owner = "dmho"; repo = "teltasync"; tag = "v${finalAttrs.version}"; - hash = "sha256-TXVdOT0EAwza/rgLPjMnBUCuq+2PwLoRAXvYTz2CT+0="; + hash = "sha256-xR4Rh2TnnsXAqicRDBQyhwpUh5zl5cWS6BuyxY/RFsE="; }; postPatch = '' diff --git a/pkgs/development/python-modules/tensorboard/default.nix b/pkgs/development/python-modules/tensorboard/default.nix index d96daa9ed04e0..80df6401b7471 100644 --- a/pkgs/development/python-modules/tensorboard/default.nix +++ b/pkgs/development/python-modules/tensorboard/default.nix @@ -1,7 +1,9 @@ { lib, + fetchpatch, fetchPypi, buildPythonPackage, + python, # dependencies absl-py, @@ -57,6 +59,26 @@ buildPythonPackage rec { standard-imghdr ]; + postInstall = + let + patch = fetchpatch { + name = "remove-runtime-pkg_resources-dependency.patch"; + url = "https://github.com/tensorflow/tensorboard/commit/29f809f4737489912612635d9079a61f8e570bb8.patch"; + excludes = [ + "tensorboard/BUILD" + "tensorboard/data/BUILD" + "tensorboard/default_test.py" + "tensorboard/version_test.py" + ]; + hash = "sha256-+jaXI4fVQP4mOg6y94KPMMCg3XuHV/gBUDNsp3ogS6c="; + }; + in + '' + pushd $out/${python.sitePackages} + patch -p1 < ${patch} + popd + ''; + pythonImportsCheck = [ "tensorboard" "tensorboard.backend" diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix index da07cc04b6ad6..4edddcbf0d999 100644 --- a/pkgs/development/python-modules/tensorflow/bin.nix +++ b/pkgs/development/python-modules/tensorflow/bin.nix @@ -19,7 +19,7 @@ google-pasta, grpcio, h5py, - libclang, + clang, numpy, opt-einsum, packaging, @@ -95,7 +95,7 @@ buildPythonPackage (finalAttrs: { google-pasta grpcio h5py - libclang + clang ml-dtypes numpy opt-einsum diff --git a/pkgs/development/python-modules/textual-fastdatatable/default.nix b/pkgs/development/python-modules/textual-fastdatatable/default.nix index d97f7d3730f40..691f3031cfb68 100644 --- a/pkgs/development/python-modules/textual-fastdatatable/default.nix +++ b/pkgs/development/python-modules/textual-fastdatatable/default.nix @@ -50,6 +50,7 @@ buildPythonPackage rec { pythonRelaxDeps = [ "numpy" + "pandas" "pyarrow" ]; diff --git a/pkgs/development/python-modules/thinqconnect/default.nix b/pkgs/development/python-modules/thinqconnect/default.nix index f4c881de90aab..d8b1a1a566a9f 100644 --- a/pkgs/development/python-modules/thinqconnect/default.nix +++ b/pkgs/development/python-modules/thinqconnect/default.nix @@ -10,14 +10,14 @@ buildPythonPackage rec { pname = "thinqconnect"; - version = "1.0.12"; + version = "1.0.13"; pyproject = true; src = fetchFromGitHub { owner = "thinq-connect"; repo = "pythinqconnect"; tag = version; - hash = "sha256-LOIqh/f9NiaBpkJqre1TejdUN0gbguSM3s8faGPcf54="; + hash = "sha256-0efPQ0fvBLi+Bp+JbBMRJPYFqRKBVpPQFyQ9rvHpEnY="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/tikteck/default.nix b/pkgs/development/python-modules/tikteck/default.nix deleted file mode 100644 index fdc1aeadd4fe9..0000000000000 --- a/pkgs/development/python-modules/tikteck/default.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchPypi, - setuptools, - bluepy, - pycryptodome, -}: - -buildPythonPackage rec { - pname = "tikteck"; - version = "0.4"; - pyproject = true; - - # github doesn't have any tags unfortunately - src = fetchPypi { - pname = "tikteck"; - inherit version; - hash = "sha256-KEbGT2RXLFMQ49gltOYcbE+ebJ1kiXzhT0DIeVXsSJM="; - }; - - build-system = [ setuptools ]; - - dependencies = [ - bluepy - pycryptodome - ]; - - pythonImportsCheck = [ "tikteck" ]; - - # no upstream tests exist - doCheck = false; - - meta = { - description = "Control Tikteck Bluetooth LED bulbs"; - homepage = "https://github.com/mjg59/python-tikteck"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ ethancedwards8 ]; - }; -} diff --git a/pkgs/development/python-modules/tinyhtml/default.nix b/pkgs/development/python-modules/tinyhtml/default.nix new file mode 100644 index 0000000000000..1b41c18021294 --- /dev/null +++ b/pkgs/development/python-modules/tinyhtml/default.nix @@ -0,0 +1,51 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + jinja2, + pandas, + setuptools, +}: + +buildPythonPackage (finalAttrs: { + pname = "tinyhtml"; + version = "1.3.0"; + pyproject = true; + + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "niklasf"; + repo = "python-tinyhtml"; + tag = "v${finalAttrs.version}"; + hash = "sha256-1DPQFszrNsGNEpEl4c1SNdnNfwi3bcHzCrOWdu+dTGA="; + }; + + build-system = [ + setuptools + ]; + + nativeCheckInputs = [ + pandas + jinja2 + ]; + + # https://github.com/niklasf/python-tinyhtml/blob/master/tox.ini + checkPhase = '' + runHook preCheck + python -m doctest README.rst + runHook postCheck + ''; + + pythonImportsCheck = [ + "tinyhtml" + ]; + + meta = { + description = "Tiny library to safely render compact HTML5 from Python expressions"; + homepage = "https://github.com/niklasf/python-tinyhtml"; + changelog = "https://github.com/niklasf/python-tinyhtml/blob/${finalAttrs.src.tag}/CHANGELOG.md"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/torch-geometric/default.nix b/pkgs/development/python-modules/torch-geometric/default.nix index 839f5c8e02e5b..06863712e7c5b 100644 --- a/pkgs/development/python-modules/torch-geometric/default.nix +++ b/pkgs/development/python-modules/torch-geometric/default.nix @@ -185,10 +185,6 @@ buildPythonPackage (finalAttrs: { writableTmpDirAsHomeHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - pytestFlags = [ # DeprecationWarning: Failing to pass a value to the 'type_params' parameter of # 'typing._eval_type' is deprecated, as it leads to incorrect behaviour when calling diff --git a/pkgs/development/python-modules/torch/source/default.nix b/pkgs/development/python-modules/torch/source/default.nix index 19a85037b016e..da1f1569b640c 100644 --- a/pkgs/development/python-modules/torch/source/default.nix +++ b/pkgs/development/python-modules/torch/source/default.nix @@ -327,7 +327,9 @@ buildPythonPackage.override { inherit stdenv; } (finalAttrs: { postPatch = '' substituteInPlace pyproject.toml \ - --replace-fail "setuptools>=70.1.0,<80.0" "setuptools" + --replace-fail "setuptools>=70.1.0,<82" "setuptools" + substituteInPlace setup.py \ + --replace-fail "setuptools<82" setuptools '' # Provide path to openssl binary for inductor code cache hash # InductorError: FileNotFoundError: [Errno 2] No such file or directory: 'openssl' diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix index 4327db46ac9e6..2cd462786b208 100644 --- a/pkgs/development/python-modules/tornado/default.nix +++ b/pkgs/development/python-modules/tornado/default.nix @@ -18,16 +18,16 @@ urllib3, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "tornado"; - version = "6.5.4"; + version = "6.5.7"; pyproject = true; src = fetchFromGitHub { owner = "tornadoweb"; repo = "tornado"; - tag = "v${version}"; - hash = "sha256-d6lKg8yrQqaCeKxdPjQNzv7Nc23U/v8d5x3sE3trRM4="; + tag = "v${finalAttrs.version}"; + hash = "sha256-iE0Tf95zmPoZJhw7FDLzTmv8HaWds3ZU5xzZSMvxFH4="; }; build-system = [ setuptools ]; @@ -63,9 +63,10 @@ buildPythonPackage rec { }; meta = { + changelog = "https://www.tornadoweb.org/en/stable/releases/${finalAttrs.src.tag}.html"; description = "Web framework and asynchronous networking library"; homepage = "https://www.tornadoweb.org/"; license = lib.licenses.asl20; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix index 9dcd42eb70ef7..50b685ec17e61 100644 --- a/pkgs/development/python-modules/tqdm/default.nix +++ b/pkgs/development/python-modules/tqdm/default.nix @@ -16,12 +16,12 @@ buildPythonPackage rec { pname = "tqdm"; - version = "4.67.1"; + version = "4.67.3"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-+K75xSwIwTpl8w6jT05arD/Ro0lZh51+WeYwJyhmJ/I="; + hash = "sha256-fYJfA/iSRO9z8dTOGTyxd0qBef2W8x1+Hc3mIJK5YLs="; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix index 1c44cd1ffe12f..281010a17b787 100644 --- a/pkgs/development/python-modules/transitions/default.nix +++ b/pkgs/development/python-modules/transitions/default.nix @@ -42,7 +42,12 @@ buildPythonPackage rec { export HOME=$TMPDIR ''; - disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ + disabledTestPaths = [ + # crashes in pygraphviz/graphviz + "tests/test_pygraphviz.py::PygraphvizTest::test_binary_stream" + "tests/test_pygraphviz.py::TestPygraphvizNested::test_binary_stream" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ # sleep is not accurate on Darwin "tests/test_async.py" ]; diff --git a/pkgs/development/python-modules/trove-classifiers/default.nix b/pkgs/development/python-modules/trove-classifiers/default.nix index 5771c71605156..898180da3cd0b 100644 --- a/pkgs/development/python-modules/trove-classifiers/default.nix +++ b/pkgs/development/python-modules/trove-classifiers/default.nix @@ -10,13 +10,13 @@ let self = buildPythonPackage rec { pname = "trove-classifiers"; - version = "2026.4.28.13"; + version = "2026.5.20.19"; pyproject = true; src = fetchPypi { pname = "trove_classifiers"; inherit version; - hash = "sha256-yFu4pTw95zMNFpm4RO2fuAmmAqCawV3HmtbRpQm+BnY="; + hash = "sha256-bmEZk5h8qTJpaK1wRScz2t0xRxWZ05iWBFsolwqbuB4="; }; postPatch = '' diff --git a/pkgs/development/python-modules/ttfautohint-py/default.nix b/pkgs/development/python-modules/ttfautohint-py/default.nix index 69c0b33a9eb43..adcf961c57456 100644 --- a/pkgs/development/python-modules/ttfautohint-py/default.nix +++ b/pkgs/development/python-modules/ttfautohint-py/default.nix @@ -36,10 +36,6 @@ buildPythonPackage rec { distutils ]; - dependencies = [ - setuptools # for pkg_resources - ]; - buildInputs = [ ttfautohint ]; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix index a886c3576a414..e298aabb4d01c 100644 --- a/pkgs/development/python-modules/twisted/default.nix +++ b/pkgs/development/python-modules/twisted/default.nix @@ -4,7 +4,7 @@ buildPythonPackage, pythonAtLeast, pythonOlder, - fetchPypi, + fetchFromGitHub, fetchpatch, python, @@ -56,27 +56,26 @@ buildPythonPackage rec { pname = "twisted"; - version = "25.5.0"; + version = "26.4.0"; pyproject = true; - src = fetchPypi { - inherit pname version; - extension = "tar.gz"; - hash = "sha256-HesnI1jLa+Hj6PxvnIs2946w+nwiM9Lb4R7G/uBOoxY="; + src = fetchFromGitHub { + owner = "twisted"; + repo = "twisted"; + tag = "twisted-${version}"; + hash = "sha256-D6vDa+8qwjryKnElPBZgXCNokMX2l3i2bMdtk4FhEp4="; }; patches = [ + # pyOpenSSL 26.3.0 dropped some deprecated APIs, which breaks various + # functionality in twisted. We include the patch which replaces these + # with equivalent functionality from pyca/cryptography. + # https://github.com/twisted/twisted/issues/12660 + # https://github.com/twisted/twisted/pull/12661 (fetchpatch { - # https://github.com/twisted/twisted/pull/12508 - url = "https://github.com/twisted/twisted/commit/ef6160aa2595adfba0c71da6db65b7a7252f23e9.patch"; - hash = "sha256-zHkEWT0lvWf86RlkzU5Wx6R5ear04cfpxB7wjgdpw5c="; - }) - # https://github.com/twisted/twisted/pull/12511 - ./python314-urljoin-compat.patch - (fetchpatch { - # https://github.com/twisted/twisted/pull/12551 - url = "https://github.com/twisted/twisted/commit/b1173fa307a9752eedd63890113eb610c3cca4a0.patch"; - hash = "sha256-DWEygdo1b8uQOeFLy0/zcRNuuKJdSsF7cQM7RH04Puw="; + name = "twisted-replace-pyopenssl-x509req-with-cryptography-csr.patch"; + url = "https://github.com/twisted/twisted/commit/5b4601c9965ffc92d6aa952b8c05127d5ac37307.patch"; + hash = "sha256-mbSZOvzinfUolfOHJl+vEdAEGjy8OF2S/SrTsAbvjIw="; }) ]; diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix index 81a5310ec78b9..b1c969e2d3988 100644 --- a/pkgs/development/python-modules/typeguard/default.nix +++ b/pkgs/development/python-modules/typeguard/default.nix @@ -15,12 +15,12 @@ buildPythonPackage rec { pname = "typeguard"; - version = "4.4.4"; + version = "4.5.1"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-On/S3/twXU0O+u1DBqcEyJud7oULaI8GCosWFaeeX3Q="; + hash = "sha256-9vjsu8gZybx0mYPMZ8AjkeFqm0O4sn8V3HDtfEoAcnQ="; }; outputs = [ diff --git a/pkgs/development/python-modules/typer/default.nix b/pkgs/development/python-modules/typer/default.nix index c9bc634b3549b..65a0772135ad6 100644 --- a/pkgs/development/python-modules/typer/default.nix +++ b/pkgs/development/python-modules/typer/default.nix @@ -24,14 +24,14 @@ buildPythonPackage rec { pname = "typer"; - version = "0.24.0"; + version = "0.25.1"; pyproject = true; src = fetchFromGitHub { owner = "fastapi"; repo = "typer"; tag = version; - hash = "sha256-ha/cT2+I9/WUjb7ZXSKqLSocZ3vq0N1fm4RvRpsXIDc="; + hash = "sha256-HIvXseuR7zUXFuTWzntDfHhAp8BcFjxo35gn0i4+03w="; }; postPatch = '' diff --git a/pkgs/development/python-modules/uiprotect/default.nix b/pkgs/development/python-modules/uiprotect/default.nix index 44222a54167b0..815ad685f6b06 100644 --- a/pkgs/development/python-modules/uiprotect/default.nix +++ b/pkgs/development/python-modules/uiprotect/default.nix @@ -39,14 +39,14 @@ buildPythonPackage (finalAttrs: { pname = "uiprotect"; - version = "10.17.0"; + version = "15.4.1"; pyproject = true; src = fetchFromGitHub { owner = "uilibs"; repo = "uiprotect"; tag = "v${finalAttrs.version}"; - hash = "sha256-q02gSnEruUM1sF4LnMWwqNRzbFhZRRxTZ3pAuRb+XDc="; + hash = "sha256-qsGLheVKhIM1aEq/KRsclf3ZQtRhtX/S8cQ5Aem8dEw="; }; build-system = [ poetry-core ]; diff --git a/pkgs/development/python-modules/unifiled/default.nix b/pkgs/development/python-modules/unifiled/default.nix deleted file mode 100644 index c05ebcab4c7da..0000000000000 --- a/pkgs/development/python-modules/unifiled/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - lib, - buildPythonPackage, - fetchFromGitHub, - requests, - urllib3, -}: - -buildPythonPackage rec { - pname = "unifiled"; - version = "1.1"; - format = "setuptools"; - - src = fetchFromGitHub { - owner = "florisvdk"; - repo = "unifiled"; - rev = "v${version}"; - sha256 = "1nmqxxhwa0isxdb889nhbp7w4axj1mcrwd3pr9d8nhpw4yj9h3vq"; - }; - - propagatedBuildInputs = [ - requests - urllib3 - ]; - - # Project doesn't have any tests - doCheck = false; - pythonImportsCheck = [ "unifiled" ]; - - meta = { - description = "Python module for Ubiquiti Unifi LED controller"; - homepage = "https://github.com/florisvdk/unifiled"; - license = with lib.licenses; [ mit ]; - maintainers = with lib.maintainers; [ fab ]; - }; -} diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix index 047c47c2dcbe6..3ff4ea7062509 100644 --- a/pkgs/development/python-modules/urllib3/default.nix +++ b/pkgs/development/python-modules/urllib3/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, isPyPy, # build-system @@ -28,82 +28,76 @@ trustme, }: -let - self = buildPythonPackage rec { - pname = "urllib3"; - version = "2.6.3"; - pyproject = true; +buildPythonPackage (finalAttrs: { + pname = "urllib3"; + version = "2.7.0"; + pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-G2K2iElEpX2+MhUJq5T9TTswcHXgwurpkaxx7hWtOO0="; - }; - - build-system = [ - hatchling - hatch-vcs - ]; + src = fetchFromGitHub { + owner = "urllib3"; + repo = "urllib3"; + tag = finalAttrs.version; + hash = "sha256-iN59MS5gKgDxe2v4ILrZ/1y7wV4yB1tFs4ATKppYAAk="; + }; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail ', "setuptools-scm>=8,<10"' "" - ''; + build-system = [ + hatchling + hatch-vcs + ]; - optional-dependencies = { - brotli = if isPyPy then [ brotlicffi ] else [ brotli ]; - h2 = [ h2 ]; - socks = [ pysocks ]; - zstd = [ backports-zstd ]; - }; + optional-dependencies = { + brotli = if isPyPy then [ brotlicffi ] else [ brotli ]; + h2 = [ h2 ]; + socks = [ pysocks ]; + zstd = [ backports-zstd ]; + }; - nativeCheckInputs = [ - httpx - pyopenssl - pytest-socket - pytest-timeout - pytestCheckHook - quart - quart-trio - tornado - trio - trustme - ] - ++ lib.concatAttrValues optional-dependencies; + nativeCheckInputs = [ + httpx + pyopenssl + pytest-socket + pytest-timeout + pytestCheckHook + quart + quart-trio + tornado + trio + trustme + ] + ++ lib.concatAttrValues finalAttrs.passthru.optional-dependencies; - disabledTestMarks = [ - "requires_network" - ]; + disabledTestMarks = [ + "requires_network" + ]; - # Tests in urllib3 are mostly timeout-based instead of event-based and - # are therefore inherently flaky. On your own machine, the tests will - # typically build fine, but on a loaded cluster such as Hydra random - # timeouts will occur. - # - # The urllib3 test suite has two different timeouts in their test suite - # (see `test/__init__.py`): - # - SHORT_TIMEOUT - # - LONG_TIMEOUT - # When CI is in the env, LONG_TIMEOUT will be significantly increased. - # Still, failures can occur and for that reason tests are disabled. - doCheck = false; + # Tests in urllib3 are mostly timeout-based instead of event-based and + # are therefore inherently flaky. On your own machine, the tests will + # typically build fine, but on a loaded cluster such as Hydra random + # timeouts will occur. + # + # The urllib3 test suite has two different timeouts in their test suite + # (see `test/__init__.py`): + # - SHORT_TIMEOUT + # - LONG_TIMEOUT + # When CI is in the env, LONG_TIMEOUT will be significantly increased. + # Still, failures can occur and for that reason tests are disabled. + doCheck = false; - passthru.tests.pytest = self.overridePythonAttrs (_: { - doCheck = true; - }); + passthru.tests.pytest = finalAttrs.finalPackage.overrideAttrs (_: { + doInstallCheck = true; + }); - preCheck = '' - export CI # Increases LONG_TIMEOUT - ''; + preCheck = '' + export CI # Increases LONG_TIMEOUT + ''; - pythonImportsCheck = [ "urllib3" ]; + pythonImportsCheck = [ "urllib3" ]; - meta = { - description = "Powerful, user-friendly HTTP client for Python"; - homepage = "https://github.com/urllib3/urllib3"; - changelog = "https://github.com/urllib3/urllib3/blob/${version}/CHANGES.rst"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fab ]; - }; + meta = { + description = "Powerful, user-friendly HTTP client for Python"; + homepage = "https://github.com/urllib3/urllib3"; + changelog = "https://github.com/urllib3/urllib3/blob/${finalAttrs.src.tag}/CHANGES.rst"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ fab ]; }; -in -self +}) diff --git a/pkgs/development/python-modules/uv-build/default.nix b/pkgs/development/python-modules/uv-build/default.nix index c37b17d316c77..0750166192ce1 100644 --- a/pkgs/development/python-modules/uv-build/default.nix +++ b/pkgs/development/python-modules/uv-build/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "uv-build"; - version = "0.10.0"; + version = "0.11.16"; pyproject = true; src = fetchFromGitHub { owner = "astral-sh"; repo = "uv"; tag = finalAttrs.version; - hash = "sha256-nD26zqKMK5LNkeYdqVYteeYL4mYaQQ/QlyjbMDDhLAY="; + hash = "sha256-5LJspcHj/RjOMv7eRB7n+tofX4s51M3kqHCPymCg90A="; }; nativeBuildInputs = [ @@ -26,7 +26,7 @@ buildPythonPackage (finalAttrs: { cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) pname version src; - hash = "sha256-lEynVemQHCI7ZKD2+1n4K/AtEYRld2+aRLkDMSX8ejM="; + hash = "sha256-2lg86WxPGVbJ91zi61lKrSqnzFgmmSrBrl+SfV5SJWU="; }; buildAndTestSubdir = "crates/uv-build"; @@ -47,9 +47,10 @@ buildPythonPackage (finalAttrs: { }; meta = { + changelog = "https://github.com/astral-sh/uv/blob/${finalAttrs.src.tag}/CHANGELOG.md"; description = "Minimal build backend for uv"; homepage = "https://docs.astral.sh/uv/reference/settings/#build-backend"; - inherit (pkgs.uv.meta) changelog license; + inherit (pkgs.uv.meta) license; maintainers = with lib.maintainers; [ bengsparks ]; }; }) diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix index 9bdc07615fe1c..d9d4aba3e6e2a 100644 --- a/pkgs/development/python-modules/uvicorn/default.nix +++ b/pkgs/development/python-modules/uvicorn/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "uvicorn"; - version = "0.40.0"; + version = "0.46.0"; pyproject = true; src = fetchFromGitHub { owner = "encode"; repo = "uvicorn"; tag = version; - hash = "sha256-YpmvMZJxxpMdwbhFQSu+0fo7kcM6w3zJ7jI5LVamV1E="; + hash = "sha256-+21fEPLnH2nrwPCXNlRw7U1VcXdaUnNCeThTfzepQoY="; }; outputs = [ diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix index 898c53fca80ec..d608690e1b087 100644 --- a/pkgs/development/python-modules/uvloop/default.nix +++ b/pkgs/development/python-modules/uvloop/default.nix @@ -3,11 +3,10 @@ stdenv, buildPythonPackage, fetchFromGitHub, - fetchpatch, # build-system cython, - setuptools, + setuptools_80, # native dependencies libuv, @@ -39,7 +38,7 @@ buildPythonPackage rec { build-system = [ cython - setuptools + setuptools_80 ]; env.LIBUV_CONFIGURE_HOST = stdenv.hostPlatform.config; diff --git a/pkgs/development/python-modules/vcrpy/default.nix b/pkgs/development/python-modules/vcrpy/default.nix index 78e41447623a0..5556125736eee 100644 --- a/pkgs/development/python-modules/vcrpy/default.nix +++ b/pkgs/development/python-modules/vcrpy/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "vcrpy"; - version = "8.1.1"; + version = "8.2.1"; pyproject = true; src = fetchFromGitHub { owner = "kevin1024"; repo = "vcrpy"; tag = "v${version}"; - hash = "sha256-X6cOoj+XP0lVvf78FTb7FkNqrq5RfXtQlQ3lcOzr3D8="; + hash = "sha256-PlpbBzAj9a4bAfORGozAAsbrzngJt2Pnnp3bI96wYfI="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/vcs-versioning/default.nix b/pkgs/development/python-modules/vcs-versioning/default.nix new file mode 100644 index 0000000000000..096da5eac421c --- /dev/null +++ b/pkgs/development/python-modules/vcs-versioning/default.nix @@ -0,0 +1,60 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + packaging, + setuptools, + git, + pytestCheckHook, + vcs-versioning, +}: + +buildPythonPackage (finalAttrs: { + pname = "vcs-versioning"; + version = "1.1.1"; + pyproject = true; + + src = fetchFromGitHub { + owner = "pypa"; + repo = "setuptools-scm"; + tag = "vcs-versioning-v${finalAttrs.version}"; + hash = "sha256-CfRzupWFtvmQLbubyr+eXRnLi4auZc2PA/Zz0aFNgaU="; + }; + + env.SETUPTOOLS_SCM_PRETEND_VERSION = finalAttrs.version; + + postPatch = '' + pushd vcs-versioning + ''; + + build-system = [ + setuptools + ]; + + dependencies = [ + packaging + ]; + + pythonImportsCheck = [ + "vcs_versioning" + ]; + + doCheck = false; # infinite recursion with pytest + + nativeCheckInputs = [ + git + pytestCheckHook + ]; + + pytestFlags = [ "-vvv" ]; + + passthru.tests.pytest = vcs-versioning.overridePythonAttrs { doCheck = true; }; + + meta = { + changelog = "https://github.com/pypa/setuptools-scm/releases/tag/${finalAttrs.src.tag}"; + description = "The blessed package to manage your versions by scm tags"; + homepage = "https://github.com/pypa/setuptools-scm/tree/main/vcs-versioning"; + license = lib.licenses.mit; + teams = [ lib.teams.python ]; + }; +}) diff --git a/pkgs/development/python-modules/vega-datasets/default.nix b/pkgs/development/python-modules/vega-datasets/default.nix index efe73ec81ce73..8de4b62fc21d5 100644 --- a/pkgs/development/python-modules/vega-datasets/default.nix +++ b/pkgs/development/python-modules/vega-datasets/default.nix @@ -26,6 +26,12 @@ buildPythonPackage rec { pytestFlags = [ "--doctest-modules" ]; + disabledTests = [ + # timestamp precision mismatch + "test_date_types" + "test_stock_date_parsing" + ]; + pythonImportsCheck = [ "vega_datasets" ]; meta = diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix index a51ae2bbd75e6..dbdb04131e0d2 100644 --- a/pkgs/development/python-modules/virtualenv/default.nix +++ b/pkgs/development/python-modules/virtualenv/default.nix @@ -12,19 +12,20 @@ pytest-freezer, pytest-mock, pytestCheckHook, + python-discovery, time-machine, }: buildPythonPackage rec { pname = "virtualenv"; - version = "20.36.1"; + version = "21.2.4"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "virtualenv"; tag = version; - hash = "sha256-8fiC7+9FzQnmoI+N4cA5kKBLH9tpU7LXZ7pVj8Bz8Wc="; + hash = "sha256-3Ed2h5zzjpm+D1fQW2urWYcO/6sFGuZtueQxUnIu3MY="; }; build-system = [ @@ -36,6 +37,7 @@ buildPythonPackage rec { distlib filelock platformdirs + python-discovery ]; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/voip-utils/default.nix b/pkgs/development/python-modules/voip-utils/default.nix index 8bc955822ca74..ead77fa7f2a70 100644 --- a/pkgs/development/python-modules/voip-utils/default.nix +++ b/pkgs/development/python-modules/voip-utils/default.nix @@ -3,20 +3,20 @@ buildPythonPackage, fetchFromGitHub, setuptools, - opuslib, + opuslib-next, pytestCheckHook, }: buildPythonPackage rec { pname = "voip-utils"; - version = "0.3.5"; + version = "0.4.0"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "voip-utils"; tag = "v${version}"; - hash = "sha256-/HSbtP9UAGOs4aZmdinijCMe16HtBH7YuhFM7h158lc="; + hash = "sha256-kvuNqiBjcDQ53X6LbnOp2WNh8QOu+ExjhfgKWBoSsH0="; }; postPatch = '' @@ -26,9 +26,9 @@ buildPythonPackage rec { build-system = [ setuptools ]; - pythonRelaxDeps = [ "opuslib" ]; + pythonRelaxDeps = [ "opuslib-next" ]; - dependencies = [ opuslib ]; + dependencies = [ opuslib-next ]; pythonImportsCheck = [ "voip_utils" ]; diff --git a/pkgs/development/python-modules/voluptuous-openapi/default.nix b/pkgs/development/python-modules/voluptuous-openapi/default.nix index 52400684d14e1..e14f2d32b099e 100644 --- a/pkgs/development/python-modules/voluptuous-openapi/default.nix +++ b/pkgs/development/python-modules/voluptuous-openapi/default.nix @@ -14,16 +14,16 @@ pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "voluptuous-openapi"; - version = "0.3.0"; + version = "0.4.1"; pyproject = true; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "voluptuous-openapi"; - tag = version; - hash = "sha256-e94D87plGOcdXFLmZ4MhOt5xWbcoqyo3FgYbbXV8nNU="; + tag = finalAttrs.version; + hash = "sha256-eT0Ej0mylMh/GNUZsr/YPziPad5id2bs2rMtX65BsZA="; }; build-system = [ setuptools ]; @@ -38,10 +38,10 @@ buildPythonPackage rec { pythonImportsCheck = [ "voluptuous_openapi" ]; meta = { - changelog = "https://github.com/home-assistant-libs/voluptuous-openapi/releases/tag/${src.tag}"; + changelog = "https://github.com/home-assistant-libs/voluptuous-openapi/releases/tag/${finalAttrs.src.tag}"; description = "Convert voluptuous schemas to OpenAPI Schema object"; homepage = "https://github.com/home-assistant-libs/voluptuous-openapi"; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ hexa ]; }; -} +}) diff --git a/pkgs/development/python-modules/vsure/default.nix b/pkgs/development/python-modules/vsure/default.nix index 65c2463df0e9e..f372bacd30553 100644 --- a/pkgs/development/python-modules/vsure/default.nix +++ b/pkgs/development/python-modules/vsure/default.nix @@ -9,12 +9,12 @@ buildPythonPackage (finalAttrs: { pname = "vsure"; - version = "2.6.9"; + version = "2.8.0"; pyproject = true; src = fetchPypi { inherit (finalAttrs) pname version; - hash = "sha256-BdUQB7usj1UwMS4AewUtaWWTl1otamCviX2MF/+x9ic="; + hash = "sha256-FC2aRsfxBGO8HaEHGJWweKgZzz8UG/03oB/E+hOAe/w="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/wcwidth/default.nix b/pkgs/development/python-modules/wcwidth/default.nix index 39e7931da5843..d8c9b9cea8c57 100644 --- a/pkgs/development/python-modules/wcwidth/default.nix +++ b/pkgs/development/python-modules/wcwidth/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "wcwidth"; - version = "0.6.0"; + version = "0.7.0"; pyproject = true; src = fetchFromGitHub { owner = "jquast"; repo = "wcwidth"; tag = version; - hash = "sha256-J1uVqHMbOr9OZK6W7O3ilSgzB4i6R9jLN8RzwOxZZnA="; + hash = "sha256-XIOgDCoAP/shepasR41NbNW3cFlbemmdC0Xbd+9OOts="; }; build-system = [ hatchling ]; diff --git a/pkgs/development/python-modules/webrtcvad/default.nix b/pkgs/development/python-modules/webrtcvad/default.nix index b18d159fcdd4d..1613d10047e7e 100644 --- a/pkgs/development/python-modules/webrtcvad/default.nix +++ b/pkgs/development/python-modules/webrtcvad/default.nix @@ -17,6 +17,12 @@ buildPythonPackage (finalAttrs: { hash = "sha256-8b7S+yW2P7expV1kCQyZPJyRZ7KEha4Lzdgc9u3pauo="; }; + patches = [ + # remove pkg_resources usage + # backport of https://github.com/wiseman/py-webrtcvad/pull/96 + ./no-pkg-resources.patch + ]; + build-system = [ setuptools ]; # required WAV files for testing are not included in the tarball diff --git a/pkgs/development/python-modules/webrtcvad/no-pkg-resources.patch b/pkgs/development/python-modules/webrtcvad/no-pkg-resources.patch new file mode 100644 index 0000000000000..e38ecbfcd9fba --- /dev/null +++ b/pkgs/development/python-modules/webrtcvad/no-pkg-resources.patch @@ -0,0 +1,21 @@ +--- a/webrtcvad.py ++++ b/webrtcvad.py +@@ -1,11 +1,16 @@ +-import pkg_resources ++try: ++ # Python 3.8+ ++ from importlib.metadata import version ++except Exception: # pragma: no cover ++ # Backport for Python < 3.8 ++ from importlib_metadata import version + + import _webrtcvad + + __author__ = "John Wiseman jjwiseman@gmail.com" + __copyright__ = "Copyright (C) 2016 John Wiseman" + __license__ = "MIT" +-__version__ = pkg_resources.get_distribution('webrtcvad').version ++__version__ = version("webrtcvad") + + + class Vad(object): \ No newline at end of file diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix index 50696d7c0cf59..4aca9e5d587db 100644 --- a/pkgs/development/python-modules/wheel/default.nix +++ b/pkgs/development/python-modules/wheel/default.nix @@ -7,14 +7,14 @@ buildPythonPackage rec { pname = "wheel"; - version = "0.46.1"; + version = "0.47.0"; pyproject = true; src = fetchFromGitHub { owner = "pypa"; repo = "wheel"; tag = version; - hash = "sha256-iyGfGr3pLVZSEIHetjsPbIIXkuXrmIPiSqqOw31l9Qw="; + hash = "sha256-/5OxFySesdsFsuUbhdhcgFPsry8RSy5ZshG0TWGncVY="; }; nativeBuildInputs = [ flit-core ]; diff --git a/pkgs/development/python-modules/wxpython/4.2.nix b/pkgs/development/python-modules/wxpython/4.2.nix index e33e4e871716d..1e5cfaea6e75e 100644 --- a/pkgs/development/python-modules/wxpython/4.2.nix +++ b/pkgs/development/python-modules/wxpython/4.2.nix @@ -48,14 +48,14 @@ xvfb-run, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "wxpython"; - version = "4.2.4"; + version = "4.2.5"; pyproject = false; src = fetchPypi { - inherit pname version; - hash = "sha256-LrEjl5yHvLMp6KJFImnWD/j59lHpvyXGdXnlPE67rjw="; + inherit (finalAttrs) pname version; + hash = "sha256-ROg20bzNmcOHkLsDS27PcNkGD2c0MgVg98Sw0AYUR5M="; }; patches = [ @@ -65,13 +65,6 @@ buildPythonPackage rec { libcairo = "${lib.getLib cairo}/lib/libcairo${stdenv.hostPlatform.extensions.sharedLibrary}"; }) ./0001-add-missing-bool-c.patch # Add missing bool.c from old source - # TODO: drop when updating beyond version 4.2.4 - # https://github.com/wxWidgets/Phoenix/pull/2822 - (fetchpatch { - name = "Fix-wx.svg-to-work-with-cython-3.1-generated-code.patch"; - url = "https://github.com/wxWidgets/Phoenix/commit/31303649ab0a0fed0789e0951a7487d172b65bfa.patch"; - hash = "sha256-OAnAsyqHGPNEAiOxLLpdEGcd92K7TCxqEBYceuIb8so="; - }) ]; # https://github.com/wxWidgets/Phoenix/issues/2575 @@ -178,7 +171,7 @@ buildPythonPackage rec { ''; meta = { - changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${version}/CHANGES.rst"; + changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${finalAttrs.version}/CHANGES.rst"; description = "Cross platform GUI toolkit for Python, Phoenix version"; homepage = "http://wxpython.org/"; license = with lib.licenses; [ @@ -186,4 +179,4 @@ buildPythonPackage rec { wxWindowsException31 ]; }; -} +}) diff --git a/pkgs/development/python-modules/x-transformers/default.nix b/pkgs/development/python-modules/x-transformers/default.nix index 1496775f5eec8..16d3dff4fd61b 100644 --- a/pkgs/development/python-modules/x-transformers/default.nix +++ b/pkgs/development/python-modules/x-transformers/default.nix @@ -42,10 +42,6 @@ buildPythonPackage (finalAttrs: { nativeCheckInputs = [ pytestCheckHook ]; - preCheck = '' - export OMP_NUM_THREADS=1 - ''; - # RuntimeError: torch.compile is not supported on Python 3.14+ disabledTests = lib.optionals (pythonAtLeast "3.14") [ "test_up" ]; diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix index b0e9e537cd564..d9f1f54642745 100644 --- a/pkgs/development/python-modules/xarray/default.nix +++ b/pkgs/development/python-modules/xarray/default.nix @@ -2,6 +2,7 @@ lib, buildPythonPackage, fetchFromGitHub, + fetchpatch, # build-system setuptools, @@ -51,6 +52,22 @@ buildPythonPackage (finalAttrs: { hash = "sha256-BsgL+Xo9fTMLLdz5AfScnKGuBa76cE85LuUzB4ZNLiY="; }; + patches = [ + # Performance fix + (fetchpatch { + url = "https://github.com/pydata/xarray/commit/b8bfeca3275045ca82adc3401c38444b1ed12c4a.patch"; + hash = "sha256-KzN45MqOBPMNEmoG+rb3iwrk/7XFLlTNktQf5uYBWNo="; + }) + # Fix tests with numpy >= 2.5.0 + (fetchpatch { + url = "https://github.com/pydata/xarray/commit/c3a398e856f7fcff1c18bc72bfd1ab9c64d5a2e7.patch"; + excludes = [ + "doc/whats-new.rst" + ]; + hash = "sha256-TakZ9RrJHeRksT3oBe7AKyfrjZeZ4oSmbE8axh7EmGg="; + }) + ]; + postPatch = '' # don't depend on pytest-mypy-plugins sed -i "/--mypy-/d" pyproject.toml diff --git a/pkgs/development/python-modules/xmlsec/default.nix b/pkgs/development/python-modules/xmlsec/default.nix index e1178ff3058fe..81f4571b32e6a 100644 --- a/pkgs/development/python-modules/xmlsec/default.nix +++ b/pkgs/development/python-modules/xmlsec/default.nix @@ -40,6 +40,7 @@ buildPythonPackage (finalAttrs: { postPatch = '' substituteInPlace pyproject.toml \ + --replace-fail "lxml==" "lxml>=" \ --replace-fail "setuptools==" "setuptools>=" ''; diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix index bd22bc108bbe4..0c928c0aa158b 100644 --- a/pkgs/development/python-modules/xmltodict/default.nix +++ b/pkgs/development/python-modules/xmltodict/default.nix @@ -29,6 +29,6 @@ buildPythonPackage rec { homepage = "https://github.com/martinblech/xmltodict"; changelog = "https://github.com/martinblech/xmltodict/blob/${src.tag}/CHANGELOG.md"; license = lib.licenses.mit; - maintainers = [ ]; + maintainers = [ lib.maintainers.dotlambda ]; }; } diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix index a429afaae31eb..f84f8ced4678c 100644 --- a/pkgs/development/python-modules/yalexs/default.nix +++ b/pkgs/development/python-modules/yalexs/default.nix @@ -60,6 +60,11 @@ buildPythonPackage rec { requests-mock ]; + disabledTests = [ + # aiohttp api breakage, remove when bumping to 9.2.8 or newer + "test__raise_response_exceptions" + ]; + pythonImportsCheck = [ "yalexs" ]; meta = { diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix index 4b517a0199593..ba29a36fff8f8 100644 --- a/pkgs/development/python-modules/yarl/default.nix +++ b/pkgs/development/python-modules/yarl/default.nix @@ -18,14 +18,14 @@ buildPythonPackage rec { pname = "yarl"; - version = "1.23.0"; + version = "1.24.2"; pyproject = true; src = fetchFromGitHub { owner = "aio-libs"; repo = "yarl"; tag = "v${version}"; - hash = "sha256-vjWV9fgBg7Mw54hsXWnO81CxJCe9WzB0okMEUz1KRAc="; + hash = "sha256-GEe2GDXmqsQgWB0UxPZVMdSco3j2JYHg9BU9M6oqynw="; }; build-system = [ diff --git a/pkgs/development/python-modules/yoto-api/default.nix b/pkgs/development/python-modules/yoto-api/default.nix index 23b105fde225d..e311ec216accf 100644 --- a/pkgs/development/python-modules/yoto-api/default.nix +++ b/pkgs/development/python-modules/yoto-api/default.nix @@ -9,14 +9,14 @@ buildPythonPackage (finalAttrs: { pname = "yoto-api"; - version = "3.2.0"; + version = "4.3.1"; pyproject = true; src = fetchFromGitHub { owner = "cdnninja"; repo = "yoto_api"; tag = "v${finalAttrs.version}"; - hash = "sha256-pzU+qResc+fqC1nhwbCYNNXKrD1aAjXZujjgL/5AGkc="; + hash = "sha256-Hy2OE8jol/ttZ1MsIC4EzkYa72DINwcjsHflo8+a7xo="; }; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix index bb739b974ccaa..83db908d50b09 100644 --- a/pkgs/development/python-modules/zconfig/default.nix +++ b/pkgs/development/python-modules/zconfig/default.nix @@ -23,6 +23,11 @@ buildPythonPackage rec { patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools >= 78.1.1,< 81" setuptools + ''; + build-system = [ setuptools ]; buildInputs = [ diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix index 863e80a873859..bbb6d4164aa2b 100644 --- a/pkgs/development/python-modules/zeroconf/default.nix +++ b/pkgs/development/python-modules/zeroconf/default.nix @@ -15,14 +15,14 @@ buildPythonPackage (finalAttrs: { pname = "zeroconf"; - version = "0.149.16"; + version = "0.150.0"; pyproject = true; src = fetchFromGitHub { owner = "jstasiak"; repo = "python-zeroconf"; tag = finalAttrs.version; - hash = "sha256-l/F+Cz0HEtsgfQj01ayl+FQYoQbZVpMfRhNs27BqThI="; + hash = "sha256-Etk8sQZotwmsM6HkArAl2sDZop77wTAcE4aUSIoM1ds="; }; build-system = [ diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix index 90a188eec7ce1..33f0197e5b8b0 100644 --- a/pkgs/development/python-modules/zha-quirks/default.nix +++ b/pkgs/development/python-modules/zha-quirks/default.nix @@ -8,12 +8,13 @@ pythonOlder, setuptools, time-machine, + zha, zigpy, }: buildPythonPackage rec { pname = "zha-quirks"; - version = "1.2.0"; + version = "2.1.0"; pyproject = true; disabled = pythonOlder "3.12"; @@ -22,7 +23,7 @@ buildPythonPackage rec { owner = "zigpy"; repo = "zha-device-handlers"; tag = version; - hash = "sha256-mDcvVwqzSmszaJDahzkRNteiO4C/eU+BqTdBpWj5yGw="; + hash = "sha256-VSMGUeLx8oQ8kfGj48hcceNQTEAP98svz1MCvw5KiVc="; }; postPatch = '' @@ -35,6 +36,7 @@ buildPythonPackage rec { dependencies = [ aiohttp + zha zigpy ]; diff --git a/pkgs/development/python-modules/zha/default.nix b/pkgs/development/python-modules/zha/default.nix index 2b08a84c8f94e..960c328826831 100644 --- a/pkgs/development/python-modules/zha/default.nix +++ b/pkgs/development/python-modules/zha/default.nix @@ -1,30 +1,32 @@ { lib, + attrs, bellows, buildPythonPackage, fetchFromGitHub, freezegun, + frozendict, looptime, pyprojectVersionPatchHook, - pyserial, - pyserial-asyncio-fast, pytest-asyncio_0, pytest-timeout, pytest-xdist, pytestCheckHook, pythonOlder, setuptools, - zha-quirks, zigpy, zigpy-deconz, zigpy-xbee, zigpy-zigate, + zigpy-ziggurat, zigpy-znp, + zha, + zha-quirks, }: buildPythonPackage (finalAttrs: { pname = "zha"; - version = "1.4.1"; + version = "2.0.0"; pyproject = true; disabled = pythonOlder "3.12"; @@ -33,12 +35,15 @@ buildPythonPackage (finalAttrs: { owner = "zigpy"; repo = "zha"; tag = finalAttrs.version; - hash = "sha256-Jf8k/4z7eERiV2jwDzhV990sLBebasEKe5/0WbX1hYc="; + hash = "sha256-cLE30i+3dqmtasHZKgW16zThMwWbZ8wh/GFtrgWmpfE="; }; postPatch = '' substituteInPlace pyproject.toml \ --replace-fail '"setuptools-git-versioning<3"' "" + + # do not install development tools + rm -r tools ''; nativeBuildInputs = [ @@ -50,14 +55,14 @@ buildPythonPackage (finalAttrs: { ]; dependencies = [ + attrs bellows - pyserial - pyserial-asyncio-fast - zha-quirks + frozendict zigpy zigpy-deconz zigpy-xbee zigpy-zigate + zigpy-ziggurat zigpy-znp ]; @@ -68,10 +73,13 @@ buildPythonPackage (finalAttrs: { pytest-timeout pytest-xdist pytestCheckHook + zha-quirks ]; pythonImportsCheck = [ "zha" ]; + doCheck = false; # infinite recursion with zhaquirks + disabledTests = [ # Tests are long-running and often keep hanging "test_check_available_no_basic_cluster_handler" @@ -100,6 +108,10 @@ buildPythonPackage (finalAttrs: { "test_gateway_startup_failure" # Failed first attempt, passed second, flaky ]; + passthru.tests = { + pytest = zha.overridePythonAttrs { doCheck = true; }; + }; + meta = { description = "Zigbee Home Automation"; homepage = "https://github.com/zigpy/zha"; diff --git a/pkgs/development/python-modules/zigpy-xbee/default.nix b/pkgs/development/python-modules/zigpy-xbee/default.nix index 661d641efc75d..d58a27f82dedc 100644 --- a/pkgs/development/python-modules/zigpy-xbee/default.nix +++ b/pkgs/development/python-modules/zigpy-xbee/default.nix @@ -37,6 +37,10 @@ buildPythonPackage rec { zigpy ]; + # lacking zigpy 2.0 compat + # https://github.com/zigpy/zigpy-xbee/pull/179 + doCheck = false; + nativeCheckInputs = [ pytest-asyncio pytestCheckHook diff --git a/pkgs/development/python-modules/zigpy-ziggurat/default.nix b/pkgs/development/python-modules/zigpy-ziggurat/default.nix new file mode 100644 index 0000000000000..802656960311c --- /dev/null +++ b/pkgs/development/python-modules/zigpy-ziggurat/default.nix @@ -0,0 +1,63 @@ +{ + lib, + buildPythonPackage, + fetchFromGitHub, + setuptools, + aiohttp, + mashumaro, + pyprojectVersionPatchHook, + pytest-asyncio, + pytestCheckHook, + zigpy, +}: + +buildPythonPackage (finalAttrs: { + pname = "zigpy-ziggurat"; + version = "1.0.1"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "zigpy"; + repo = "zigpy-ziggurat"; + tag = "v${finalAttrs.version}"; + hash = "sha256-/yOj4ktxEmfFCiZwJVrYqY0PXnZUi8/LwuaUgxTfBCs="; + }; + + postPatch = '' + # finds version 0.0.1 instead of 1.0.1 + substituteInPlace pyproject.toml \ + --replace-fail ', "setuptools-git-versioning<3"' "" + ''; + + nativeBuildInputs = [ + pyprojectVersionPatchHook + ]; + + build-system = [ + setuptools + ]; + + dependencies = [ + aiohttp + mashumaro + zigpy + ]; + + nativeCheckInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pythonImportsCheck = [ + "zigpy_ziggurat" + ]; + + meta = { + description = "Zigpy radio library for communicating with the Ziggurat stack"; + homepage = "https://github.com/zigpy/zigpy-ziggurat"; + changelog = "https://github.com/zigpy/zigpy-ziggurat/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ hexa ]; + }; +}) diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix index e3bec251f590a..175f16a153332 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -23,20 +23,23 @@ buildPythonPackage (finalAttrs: { pname = "zigpy"; - version = "1.5.1"; + version = "2.0.0"; pyproject = true; src = fetchFromGitHub { owner = "zigpy"; repo = "zigpy"; tag = finalAttrs.version; - hash = "sha256-AbVVv/3a/FZuk+VWLereCF7NEwu4u8HjZrsXsfarSZA="; + hash = "sha256-EQ77zEitOV3m+Jc/UrRpWFHrQm+4qA+jdBrHd4dCySg="; }; postPatch = '' substituteInPlace pyproject.toml \ --replace-fail '"setuptools-git-versioning<2"' "" \ --replace-fail 'dynamic = ["version"]' 'version = "${finalAttrs.version}"' + + # do not install development tools + rm -r tools ''; build-system = [ setuptools ]; diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix index 9981e18a166e4..bd2c8c65ad884 100644 --- a/pkgs/development/python-modules/zipp/default.nix +++ b/pkgs/development/python-modules/zipp/default.nix @@ -11,14 +11,14 @@ let zipp = buildPythonPackage rec { pname = "zipp"; - version = "3.23.1"; + version = "4.0.0"; pyproject = true; src = fetchFromGitHub { owner = "jaraco"; repo = "zipp"; tag = "v${version}"; - hash = "sha256-SC5aMiQsAPLNjCdOHDAMYX2iDSwZltjXxAJJgZnPlJ0="; + hash = "sha256-JkU35S+BpDvWca1+BP61z3W5oyxf/RI21WXZ9fZ65SQ="; }; postPatch = '' diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix index a5057f5b02453..a35d8ed7f0099 100644 --- a/pkgs/development/python-modules/zodb/default.nix +++ b/pkgs/development/python-modules/zodb/default.nix @@ -38,6 +38,9 @@ buildPythonPackage (finalAttrs: { postPatch = '' # remove broken test rm -vf src/ZODB/tests/testdocumentation.py + # remove setuptools version check + substituteInPlace pyproject.toml \ + --replace-fail "setuptools >= 78.1.1,< 81" "setuptools" '' + lib.optionalString (pythonAtLeast "3.14") '' # remove broken under python 3.14 diff --git a/pkgs/development/python-modules/zope-event/default.nix b/pkgs/development/python-modules/zope-event/default.nix index 0c33629346d77..5d8ff0a4d2a94 100644 --- a/pkgs/development/python-modules/zope-event/default.nix +++ b/pkgs/development/python-modules/zope-event/default.nix @@ -2,23 +2,23 @@ lib, buildPythonPackage, fetchFromGitHub, - setuptools, + setuptools_80, pytestCheckHook, }: -buildPythonPackage rec { +buildPythonPackage (finalAttrs: { pname = "zope-event"; - version = "6.1"; + version = "6.2"; pyproject = true; src = fetchFromGitHub { owner = "zopefoundation"; repo = "zope.event"; - tag = version; - hash = "sha256-ugyHPqqFcObgldThkkUQgZnl1fVEcXYFnXyAxNwUFIE="; + tag = finalAttrs.version; + hash = "sha256-FoE9bdr/JcOaB8/OQTUmxGrNgIDc1vPDlmZq0v+bjmQ="; }; - build-system = [ setuptools ]; + build-system = [ setuptools_80 ]; pythonImportsCheck = [ "zope.event" ]; @@ -31,8 +31,8 @@ buildPythonPackage rec { meta = { description = "Event publishing system"; homepage = "https://github.com/zopefoundation/zope.event"; - changelog = "https://github.com/zopefoundation/zope.event/blob/${src.tag}/CHANGES.rst"; + changelog = "https://github.com/zopefoundation/zope.event/blob/${finalAttrs.src.tag}/CHANGES.rst"; license = lib.licenses.zpl21; maintainers = [ ]; }; -} +}) diff --git a/pkgs/development/python-modules/zope-testing/default.nix b/pkgs/development/python-modules/zope-testing/default.nix index 79764e7fed273..d0a68e9b7b241 100644 --- a/pkgs/development/python-modules/zope-testing/default.nix +++ b/pkgs/development/python-modules/zope-testing/default.nix @@ -19,6 +19,11 @@ buildPythonPackage rec { hash = "sha256-dAUiG8DxlhQKMBXh49P0CDC9UjqAYjB+2vVCTI36cgc="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools >= 78.1.1,< 81" setuptools + ''; + build-system = [ setuptools ]; doCheck = !isPyPy; diff --git a/pkgs/development/python-modules/zopfli/default.nix b/pkgs/development/python-modules/zopfli/default.nix index 5d6b2f1ef79fb..e602cd3ce3336 100644 --- a/pkgs/development/python-modules/zopfli/default.nix +++ b/pkgs/development/python-modules/zopfli/default.nix @@ -17,6 +17,11 @@ buildPythonPackage (finalAttrs: { hash = "sha256-qO6ZKyVJ4JDNPwF4v2Bt1Bop4GE6BM31BUIkZixy3OY="; }; + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail "setuptools<72.2.0" "setuptools" + ''; + build-system = [ setuptools-scm ]; buildInputs = [ zopfli ]; diff --git a/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/pkgs/development/tools/continuous-integration/woodpecker/common.nix index e09f5cba6ee61..956298d7a111d 100644 --- a/pkgs/development/tools/continuous-integration/woodpecker/common.nix +++ b/pkgs/development/tools/continuous-integration/woodpecker/common.nix @@ -2,7 +2,7 @@ let version = "3.16.0"; vendorHash = "sha256-z87enzlH2jVq/BI6uVbpLG6jKsO5Wr2alJOcFjt/+MM="; - nodeModulesHash = "sha256-3Ezkm/jDIIeufADCj7w+FGQljSYHNG/09YQyXcpSlMg="; + nodeModulesHash = "sha256-zj8InXWu8hRgJaN0dkb6K16kWvXAhAzUPUU1OQcw0Yo="; in { inherit version vendorHash nodeModulesHash; diff --git a/pkgs/development/tools/continuous-integration/woodpecker/webui.nix b/pkgs/development/tools/continuous-integration/woodpecker/webui.nix index 47e21ae3a5eb9..447849735c234 100644 --- a/pkgs/development/tools/continuous-integration/woodpecker/webui.nix +++ b/pkgs/development/tools/continuous-integration/woodpecker/webui.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: { inherit (finalAttrs) pname version src; inherit pnpm; sourceRoot = "${common.src.name}/web"; - fetcherVersion = 3; + fetcherVersion = 4; hash = common.nodeModulesHash; }; diff --git a/pkgs/development/tools/hotdoc/clang.patch b/pkgs/development/tools/hotdoc/clang.patch deleted file mode 100644 index 53334206b7d51..0000000000000 --- a/pkgs/development/tools/hotdoc/clang.patch +++ /dev/null @@ -1,52 +0,0 @@ -diff --git a/hotdoc/extensions/c/c_extension.py b/hotdoc/extensions/c/c_extension.py -index 1cfd5b3..cff20c8 100644 ---- a/hotdoc/extensions/c/c_extension.py -+++ b/hotdoc/extensions/c/c_extension.py -@@ -89,7 +89,7 @@ def get_clang_headers(): - try: - # Clang 5.0+ can tell us directly - resource_dir = subprocess.check_output( -- ['clang', '--print-resource-dir']).strip().decode() -+ ['@clang@', '--print-resource-dir']).strip().decode() - if len(resource_dir) > 0: - include_dir = os.path.join(resource_dir, 'include') - if os.path.exists(include_dir): -diff --git a/hotdoc/extensions/c/clang/cindex.py b/hotdoc/extensions/c/clang/cindex.py -index fc93fda..2eb8eaf 100644 ---- a/hotdoc/extensions/c/clang/cindex.py -+++ b/hotdoc/extensions/c/clang/cindex.py -@@ -3937,20 +3937,23 @@ class Config: - if Config.library_file: - return Config.library_file - -- import platform -- name = platform.system() -+ if Config.library_path: -+ import platform -+ name = platform.system() - -- if name == 'Darwin': -- file = 'libclang.dylib' -- elif name == 'Windows': -- file = 'libclang.dll' -- else: -- file = 'libclang.so' -+ if name == 'Darwin': -+ file = 'libclang.dylib' -+ elif name == 'Windows': -+ file = 'libclang.dll' -+ else: -+ file = 'libclang.so' - -- if Config.library_path: -- file = Config.library_path + '/' + file -+ if Config.library_path: -+ file = Config.library_path + '/' + file -+ -+ return file - -- return file -+ return "@libclang@" - - def get_cindex_library(self): - try: diff --git a/pkgs/development/tools/language-servers/ansible-language-server/default.nix b/pkgs/development/tools/language-servers/ansible-language-server/default.nix index 4aa668ea9b800..ff3bc5d6efb4b 100644 --- a/pkgs/development/tools/language-servers/ansible-language-server/default.nix +++ b/pkgs/development/tools/language-servers/ansible-language-server/default.nix @@ -37,8 +37,8 @@ stdenv.mkDerivation (finalAttrs: { src ; pnpm = pnpm_11; - fetcherVersion = 3; - hash = "sha256-z41U5Yr7e6SgIyFTfwx6TNcVnJIxGcYUWnLlIoDIgo0="; + fetcherVersion = 4; + hash = "sha256-BJkPE4dNDNIUL6+LeFXTTCWNf5njItHuM/rHMkmxLJk="; }; buildPhase = '' diff --git a/pkgs/development/tools/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix index 0ce2558441c5e..75327f83f1849 100644 --- a/pkgs/development/tools/misc/luarocks/default.nix +++ b/pkgs/development/tools/misc/luarocks/default.nix @@ -58,6 +58,10 @@ stdenv.mkDerivation (finalAttrs: { if test -n "$lua_inc"; then appendToVar configureFlags "--with-lua-include=$lua_inc" fi + lua_lib="${lua}/lib" + if test -d "$lua_lib"; then + appendToVar configureFlags "--with-lua-lib=$lua_lib" + fi ''; nativeBuildInputs = [ diff --git a/pkgs/development/tools/ocaml/camlp4/default.nix b/pkgs/development/tools/ocaml/camlp4/default.nix index 9b28e342de4c5..ae434dbddeb7c 100644 --- a/pkgs/development/tools/ocaml/camlp4/default.nix +++ b/pkgs/development/tools/ocaml/camlp4/default.nix @@ -9,150 +9,157 @@ findlib, }: -if lib.versionAtLeast ocaml.version "5.5" then - throw "camlp4 is not available for OCaml ${ocaml.version}" -else - - let - param = - { - "4.02" = { - version = "4.02+6"; - sha256 = "06yl4q0qazl7g25b0axd1gdkfd4qpqzs1gr5fkvmkrcbz113h1hj"; - }; - "4.03" = { - version = "4.03+1"; - sha256 = "1f2ndch6f1m4fgnxsjb94qbpwjnjgdlya6pard44y6n0dqxi1wsq"; - }; - "4.04" = { - version = "4.04+1"; - sha256 = "1ad7rygqjxrc1im95gw9lp8q83nhdaf383f2808f1p63yl42xm7k"; - }; - "4.05" = { - version = "4.05+1"; - sha256 = "0wm795hpwvwpib9c9z6p8kw2fh7p7b2hml6g15z8zry3y7w738sv"; - }; - "4.06" = { - version = "4.06+1"; - sha256 = "0fazfw2l7wdmbwnqc22xby5n4ri1wz27lw9pfzhsbcdrighykysf"; - }; - "4.07" = { - version = "4.07+1"; - sha256 = "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl"; - }; - "4.08" = { - version = "4.08+1"; - sha256 = "0qplawvxwai25bi27niw2cgz2al01kcnkj8wxwhxslpi21z6pyx1"; - }; - "4.09" = { - version = "4.09+1"; - sha256 = "1gr33x6xs1rs0bpyq4vzyfxd6vn47jfkg8imi81db2r0cbs0kxx1"; - }; - "4.10" = { - version = "4.10+1"; - sha256 = "093bc1c28wid5li0jwglnd4p3csxw09fmbs9ffybq2z41a5mgay6"; - }; - "4.11" = { - version = "4.11+1"; - sha256 = "0sn7f6im940qh0ixmx1k738xrwwdvy9g7r19bv5218jb6mh0g068"; - }; - "4.12" = { - version = "4.12+1"; - sha256 = "1cfk5ppnd511vzsr9gc0grxbafmh0m3m897aij198rppzxps5kyz"; - }; - "4.13" = { - version = "4.13+1"; - sha256 = "0fzxa1zdhk74mlxpin7p90flks6sp4gkc0mfclmj9zak15rii55n"; - }; - "4.14" = { - version = "4.14+1"; - sha256 = "sha256-cPN3GioZT/Zt6uzbjGUPEGVJcPQdsAnCkU/AQoPfvuo="; - }; - "5.0" = { - version = "5.0"; - sha256 = "sha256-oZptFNPUEAq5YlcqAoDWfLghGMF9AN7E7hUN55SAX+4="; - }; - "5.1" = { - version = "5.1"; - sha256 = "sha256-Ubedjg3BeHA0bJbEalQN9eEk5+LRAI/er+8mWfVYchg="; - }; - "5.2" = { - version = "5.2"; - sha256 = "sha256-lzbc9xsgeYlbVf71O+PWYS14QivAH1aPdnvWhe0HHME="; - }; - "5.3" = { - version = "5.3"; - sha256 = "sha256-V/kKhTP9U4jWDFuQKuB7BS3XICg1lq/2Avj7UJR55+k="; - }; - "5.4" = { - version = "5.4"; - sha256 = "sha256-7FsKEr0cRVF4LIOvROWMyXBefRTBaS66ZqwtP2VLefM="; - }; - } - .${ocaml.meta.branch}; - in - - stdenv.mkDerivation rec { - pname = "camlp4"; - inherit (param) version; - - src = fetchzip { - url = "https://github.com/ocaml/camlp4/archive/${version}.tar.gz"; - inherit (param) sha256; +let + params = { + "4.02" = { + version = "4.02+6"; + sha256 = "06yl4q0qazl7g25b0axd1gdkfd4qpqzs1gr5fkvmkrcbz113h1hj"; }; - - strictDeps = true; - - nativeBuildInputs = [ - which - ocaml - ocamlbuild - ] - ++ lib.optionals (lib.versionAtLeast ocaml.version "5.0") [ - findlib - ]; - - buildInputs = lib.optionals (lib.versionAtLeast ocaml.version "5.0") [ - camlp-streams - ocamlbuild - ]; - - # build fails otherwise - enableParallelBuilding = false; - - dontAddPrefix = true; - - preConfigure = '' - # increase stack space for spacetime variant of the compiler - # https://github.com/ocaml/ocaml/issues/7435 - # but disallowed by darwin sandbox - ulimit -s unlimited || true - - configureFlagsArray=( - --bindir=$out/bin - --libdir=$out/lib/ocaml/${ocaml.version}/site-lib - --pkgdir=$out/lib/ocaml/${ocaml.version}/site-lib - ) - ''; - - postConfigure = '' - substituteInPlace camlp4/META.in \ - --replace +camlp4 $out/lib/ocaml/${ocaml.version}/site-lib/camlp4 - ''; - - makeFlags = [ "all" ]; - - installTargets = [ - "install" - "install-META" - ]; - - dontStrip = true; - - meta = { - description = "Software system for writing extensible parsers for programming languages"; - homepage = "https://github.com/ocaml/camlp4"; - platforms = ocaml.meta.platforms or [ ]; - license = lib.licenses.WITH lib.licenses.lgpl2Only lib.licenses.ocamlLgplLinkingException; + "4.03" = { + version = "4.03+1"; + sha256 = "1f2ndch6f1m4fgnxsjb94qbpwjnjgdlya6pard44y6n0dqxi1wsq"; + }; + "4.04" = { + version = "4.04+1"; + sha256 = "1ad7rygqjxrc1im95gw9lp8q83nhdaf383f2808f1p63yl42xm7k"; + }; + "4.05" = { + version = "4.05+1"; + sha256 = "0wm795hpwvwpib9c9z6p8kw2fh7p7b2hml6g15z8zry3y7w738sv"; }; + "4.06" = { + version = "4.06+1"; + sha256 = "0fazfw2l7wdmbwnqc22xby5n4ri1wz27lw9pfzhsbcdrighykysf"; + }; + "4.07" = { + version = "4.07+1"; + sha256 = "0cxl4hkqcvspvkx4f2k83217rh6051fll9i2yz7cw6m3bq57mdvl"; + }; + "4.08" = { + version = "4.08+1"; + sha256 = "0qplawvxwai25bi27niw2cgz2al01kcnkj8wxwhxslpi21z6pyx1"; + }; + "4.09" = { + version = "4.09+1"; + sha256 = "1gr33x6xs1rs0bpyq4vzyfxd6vn47jfkg8imi81db2r0cbs0kxx1"; + }; + "4.10" = { + version = "4.10+1"; + sha256 = "093bc1c28wid5li0jwglnd4p3csxw09fmbs9ffybq2z41a5mgay6"; + }; + "4.11" = { + version = "4.11+1"; + sha256 = "0sn7f6im940qh0ixmx1k738xrwwdvy9g7r19bv5218jb6mh0g068"; + }; + "4.12" = { + version = "4.12+1"; + sha256 = "1cfk5ppnd511vzsr9gc0grxbafmh0m3m897aij198rppzxps5kyz"; + }; + "4.13" = { + version = "4.13+1"; + sha256 = "0fzxa1zdhk74mlxpin7p90flks6sp4gkc0mfclmj9zak15rii55n"; + }; + "4.14" = { + version = "4.14+1"; + sha256 = "sha256-cPN3GioZT/Zt6uzbjGUPEGVJcPQdsAnCkU/AQoPfvuo="; + }; + "5.0" = { + version = "5.0"; + sha256 = "sha256-oZptFNPUEAq5YlcqAoDWfLghGMF9AN7E7hUN55SAX+4="; + }; + "5.1" = { + version = "5.1"; + sha256 = "sha256-Ubedjg3BeHA0bJbEalQN9eEk5+LRAI/er+8mWfVYchg="; + }; + "5.2" = { + version = "5.2"; + sha256 = "sha256-lzbc9xsgeYlbVf71O+PWYS14QivAH1aPdnvWhe0HHME="; + }; + "5.3" = { + version = "5.3"; + sha256 = "sha256-V/kKhTP9U4jWDFuQKuB7BS3XICg1lq/2Avj7UJR55+k="; + }; + "5.4" = { + version = "5.4"; + sha256 = "sha256-7FsKEr0cRVF4LIOvROWMyXBefRTBaS66ZqwtP2VLefM="; + }; + "5.5" = { + version = "5.5+1"; + sha256 = "sha256-ERzTg6CFXm1Z0/NSXP5MwM0H/fSpN/4D2ISFcJa1qSI="; + }; + }; + param = { + # Dummy version to let the `meta` attribute set evaluate + version = ""; + sha256 = lib.fakeSha256; + } + // (params.${ocaml.meta.branch} or { } + ); +in + +stdenv.mkDerivation rec { + pname = "camlp4"; + inherit (param) version; + + src = fetchzip { + url = "https://github.com/ocaml/camlp4/archive/${version}.tar.gz"; + inherit (param) sha256; + }; + + strictDeps = true; + + nativeBuildInputs = [ + which + ocaml + ocamlbuild + ] + ++ lib.optionals (lib.versionAtLeast ocaml.version "5.0") [ + findlib + ]; + + buildInputs = lib.optionals (lib.versionAtLeast ocaml.version "5.0") [ + camlp-streams + ocamlbuild + ]; + + # build fails otherwise + enableParallelBuilding = false; + + dontAddPrefix = true; + + preConfigure = '' + # increase stack space for spacetime variant of the compiler + # https://github.com/ocaml/ocaml/issues/7435 + # but disallowed by darwin sandbox + ulimit -s unlimited || true + + configureFlagsArray=( + --bindir=$out/bin + --libdir=$out/lib/ocaml/${ocaml.version}/site-lib + --pkgdir=$out/lib/ocaml/${ocaml.version}/site-lib + ) + ''; + + postConfigure = '' + substituteInPlace camlp4/META.in \ + --replace +camlp4 $out/lib/ocaml/${ocaml.version}/site-lib/camlp4 + ''; + + makeFlags = [ "all" ]; + + installTargets = [ + "install" + "install-META" + ]; + + dontStrip = true; + + meta = { + description = "Software system for writing extensible parsers for programming languages"; + homepage = "https://github.com/ocaml/camlp4"; + platforms = ocaml.meta.platforms; + license = lib.licenses.WITH lib.licenses.lgpl2Only lib.licenses.ocamlLgplLinkingException; + broken = !(params ? ${ocaml.meta.branch}); + }; +} diff --git a/pkgs/development/tools/ocaml/merlin/4.x.nix b/pkgs/development/tools/ocaml/merlin/4.x.nix index d48fa76bb0c21..5358e4aed7738 100644 --- a/pkgs/development/tools/ocaml/merlin/4.x.nix +++ b/pkgs/development/tools/ocaml/merlin/4.x.nix @@ -32,8 +32,9 @@ "5.2.0" = "5.3-502"; "5.2.1" = "5.3-502"; "5.3.0" = "5.6-503"; - "5.4.0" = "5.6-504"; - "5.4.1" = "5.6-504"; + "5.4.0" = "5.7.1-504"; + "5.4.1" = "5.7.1-504"; + "5.5.0" = "5.8-505"; } ."${ocaml.version}", }: @@ -53,6 +54,8 @@ let "5.4.1-503" = "sha256-SbO0x3jBISX8dAXnN5CwsxLV15dJ3XPUg4tlYqJTMCI="; "5.6-503" = "sha256-sNytCSqq96I/ZauaCJ6HYb1mXMcjV5CeCsbCGC9PwtQ="; "5.6-504" = "sha256-gtZIpBgNbVqjoIMhjii/GX9OnxR4hN6TArtoEa2Yt38="; + "5.7.1-504" = "sha256-E5sHPPkUs4tyXFT3W4tkL2VMNJjQpLqM+oMf8CqJcNU="; + "5.8-505" = "sha256-VkLN6EhqhKrZj6XFkLcOjcxgdNf72zubjEayxbQvZTs="; }; in diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index 5fd5eeac69191..537ea51b87cf5 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -47,7 +47,7 @@ uvwasi, zlib, zstd, - icu78, + icu, bash, ninja, pkgconf, @@ -140,9 +140,9 @@ let useSharedAdaAndSimd = lib.versionAtLeast version "22.2"; useSharedFFI = lib.versionAtLeast version "26.1"; useSharedGtestAndHistogram = lib.versionAtLeast version ( - if majorVersion == 24 then "24.14.0" else "25.4" + if majorVersion == "24" then "24.14.0" else "25.4" ); - useSharedNBytes = lib.versionAtLeast version (if majorVersion == 24 then "24.14.0" else "25.5"); + useSharedNBytes = lib.versionAtLeast version (if majorVersion == "24" then "24.14.0" else "25.5"); useSharedLief = lib.versionAtLeast version "25.6"; useSharedMerve = lib.versionAtLeast version (if majorVersion == 24 then "24.14.0" else "25.6.1"); useSharedSQLite = lib.versionAtLeast version "22.5"; @@ -274,7 +274,7 @@ let # that use bash wrappers, e.g. polaris-web. buildInputs = [ bash - icu78 + icu ] ++ builtins.attrValues sharedLibDeps; diff --git a/pkgs/development/web/nodejs/symlink.nix b/pkgs/development/web/nodejs/symlink.nix index defbb3f088e8f..1dd0822d8db4a 100644 --- a/pkgs/development/web/nodejs/symlink.nix +++ b/pkgs/development/web/nodejs/symlink.nix @@ -5,10 +5,7 @@ }: (symlinkJoin { pname = "nodejs"; - inherit (nodejs-slim) version meta; - passthru = nodejs-slim.passthru // { - inherit (nodejs-slim) src; - }; + inherit (nodejs-slim) version passthru meta; paths = [ nodejs-slim nodejs-slim.npm diff --git a/pkgs/development/web/nodejs/v24.nix b/pkgs/development/web/nodejs/v24.nix index 914ab1479370a..359e20891269b 100644 --- a/pkgs/development/web/nodejs/v24.nix +++ b/pkgs/development/web/nodejs/v24.nix @@ -23,8 +23,8 @@ let [ ]; in buildNodejs { - version = "24.16.0"; - sha256 = "2ff84a6de70b6165290111b0fc656ded1ad207a799816fe720cc7c31232df30f"; + version = "24.18.0"; + sha256 = "e94afde24db08e0c564ee7110a2d5aab51ee0059382c9fd8233c54eec47b28f9"; patches = ( if (stdenv.hostPlatform.emulatorAvailable buildPackages) then @@ -56,13 +56,6 @@ buildNodejs { ./use-correct-env-in-tests.patch ./bin-sh-node-run-v22.patch ./use-nix-codesign.patch - - # Patch for nghttp2 1.69 support - (fetchpatch2 { - url = "https://github.com/nodejs/node/commit/4a32c00fb8dbe55c3bcf9ef43343968c9fe449e6.diff?full_index=1"; - hash = "sha256-pex8ruwa4b/vWvfGA+nyN3JJP8NOturmwAQe4Rkd6nU="; - excludes = [ "tools/nix/*" ]; - }) ] ++ gypPatches ++ lib.optionals (!stdenv.buildPlatform.isDarwin) [ diff --git a/pkgs/development/web/playwright/webkit.nix b/pkgs/development/web/playwright/webkit.nix index 82cab5e085d44..1981e2ed06b7d 100644 --- a/pkgs/development/web/playwright/webkit.nix +++ b/pkgs/development/web/playwright/webkit.nix @@ -80,6 +80,13 @@ let hash = "sha256-I3PGgh0XqRkCFz7lUZ3Q4eU0+0GwaQcVb6t4Pru1kKo="; fetchSubmodules = true; }; + + # override split output shenanigans from the main package + outputs = [ + "out" + "dev" + ]; + patches = [ # Add missing content to fix gcc compilation for RISCV architecture # https://github.com/libjxl/libjxl/pull/2211 diff --git a/pkgs/kde/gear/calligra/default.nix b/pkgs/kde/gear/calligra/default.nix index 4e816b99551ef..cbd17e8fc688a 100644 --- a/pkgs/kde/gear/calligra/default.nix +++ b/pkgs/kde/gear/calligra/default.nix @@ -1,6 +1,7 @@ { mkKdeDerivation, lib, + fetchpatch, boost, eigen, gsl, @@ -26,6 +27,14 @@ mkKdeDerivation { pname = "calligra"; + patches = [ + # Fix build with Poppler 26.04 + (fetchpatch { + url = "https://invent.kde.org/office/calligra/-/commit/e9aae90db47ca87d639b8f2b17ec75c1b6093e27.patch"; + hash = "sha256-V21Bw0xV/E4a9v8Yrt0vZ3AU1LJFHul1k92u+nsp85I="; + }) + ]; + extraBuildInputs = [ boost eigen diff --git a/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix b/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix index 3ded625c156b9..3f0e13b38f2ac 100644 --- a/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/ad/adv_cmds/package.nix @@ -14,7 +14,7 @@ let Libc = sourceRelease "Libc"; libplatform = sourceRelease "libplatform"; - xnu = sourceRelease "xnu"; + xnu = sourceRelease "xnu"; # Can’t use xnuHeaders because adv_cmds is a transitive dependency of xnuHeaders. privateHeaders = stdenvNoCC.mkDerivation { name = "adv_cmds-deps-private-headers"; @@ -27,6 +27,9 @@ let install -D -m644 -t "$out/include/System/sys" \ '${xnu}/bsd/sys/persona.h' \ '${xnu}/bsd/sys/proc.h' + + install -D -m644 -t "$out/include/sys" \ + '${xnu}/bsd/sys/proc_private.h' ''; }; in diff --git a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/meson.build.in b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/meson.build.in index 00270488507a8..ab4a184efaa93 100644 --- a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/meson.build.in @@ -114,7 +114,6 @@ executable( dependencies : [ apfs, libdisk ], include_directories : [ 'edt_fstab', 'fsck.tproj', 'mount_flags_dir' ], install : true, - link_args : host_machine.cpu_family() == 'x86_64' ? [ '-Wl,-undefined,dynamic_lookup' ] : [ ], sources : [ 'edt_fstab/edt_fstab.c', 'mount.tproj/mount.c', diff --git a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix index a9e5571a89546..7a16dbe684840 100644 --- a/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/di/diskdev_cmds/package.nix @@ -48,7 +48,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-qyQM+48PKKWUmdoBprpDf4DXIVAtd3EKCU+ZD/EhNXQ="; + xcodeHash = "sha256-mlTUd9eTBQhJa1hzAKzBpw6+702C4dwUjwZvJs/EKyw="; postPatch = # Fix incompatible pointer to integer conversion. The last parameter is size_t not a pointer. diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in b/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in index 5bbef54de6478..467f425e1cc09 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/meson.build.in @@ -9,6 +9,7 @@ project( version : '@version@' ) add_project_arguments( + '-DLD_VERSION=@version@', # Prevent build failures due to these targets not being defined '-DTARGET_OS_BRIDGE=0', '-DTARGET_OS_EXCLAVEKIT=0', @@ -63,6 +64,32 @@ corecrypto_dep = declare_dependency( link_with : corecrypto, ) +common = static_library( + 'common', + dependencies : [ corecrypto_dep ], + include_directories : [ + common_inc, + 'cache_builder', + 'lsl', + 'other-tools', + ], + sources : [ + 'common/CRC32c.cpp', + 'common/CachePatching.cpp', + 'common/Diagnostics.cpp', + 'common/DyldSharedCache.cpp', + 'common/MachOFile.cpp', + 'common/MachOLayout.cpp', + 'common/MachOLoaded.cpp', + 'common/TargetPolicy.cpp', + 'common/Utilities.cpp', + ], +) +common_dep = declare_dependency( + include_directories : [ 'common' ], + link_with : common, +) + lsl = static_library( 'lsl', cpp_args : [ @@ -77,7 +104,6 @@ lsl = static_library( ], sources : [ 'lsl/Allocator.cpp', - 'lsl/CRC32c.cpp', 'lsl/PVLEInt64.cpp', ], ) @@ -107,7 +133,7 @@ libmach_o = static_library( 'mach_o/FunctionStarts.cpp', 'mach_o/FunctionVariants.cpp', 'mach_o/GradedArchitectures.cpp', - 'mach_o/Header.cpp', + 'mach_o/LazyLoadDylib.cpp', 'mach_o/Image.cpp', 'mach_o/Instructions.cpp', # 'mach_o/LinkerOptimizationHints.cpp', @@ -121,6 +147,7 @@ libmach_o = static_library( 'mach_o/SplitSeg.cpp', 'mach_o/Symbol.cpp', 'mach_o/Universal.cpp', + 'mach_o/UnsafeHeader.cpp', 'mach_o/Version32.cpp', 'mach_o/Version64.cpp', ], @@ -147,12 +174,12 @@ libmach_o_writer = static_library( 'mach_o_writer/ExportsTrieWriter.cpp', 'mach_o_writer/FunctionStartsWriter.cpp', 'mach_o_writer/FunctionVariantsWriter.cpp', - 'mach_o_writer/HeaderWriter.cpp', 'mach_o_writer/LinkerOptimizationHintsWriter.cpp', 'mach_o_writer/NListSymbolTableWriter.cpp', 'mach_o_writer/RebaseOpcodesWriter.cpp', 'mach_o_writer/SplitSegWriter.cpp', 'mach_o_writer/UniversalWriter.cpp', + 'mach_o_writer/UnsafeHeaderWriter.cpp', ], ) libmach_o_writer_dep = declare_dependency( @@ -170,7 +197,11 @@ libminidyld = static_library( '-DPRIVATE', '-DBUILDING_LIBDYLD=1', ], - dependencies : [ corecrypto_dep, lsl_dep ], + dependencies : [ + common_dep, + corecrypto_dep, + lsl_dep + ], include_directories : [ common_inc, 'cache_builder', @@ -178,9 +209,6 @@ libminidyld = static_library( 'libdyld_introspection', ], sources : [ - 'common/CachePatching.cpp', - 'common/MachOLayout.cpp', - 'common/MachOLoaded.cpp', 'libdyld/CrashReporterAnnotations.c', ], ) @@ -189,6 +217,7 @@ libdsc_extractor = shared_library( 'dsc_extractor', cpp_args : [ '-DBUILDING_SHARED_CACHE_EXTRACTOR=1' ], dependencies : [ + common_dep, corecrypto_dep, libmach_o_dep, lsl_dep @@ -204,13 +233,8 @@ libdsc_extractor = shared_library( name_prefix : '', name_suffix : 'bundle', sources : [ - 'common/DyldSharedCache.cpp', - 'common/MachOFile.cpp', - 'common/TargetPolicy.cpp', 'other-tools/dsc_extractor.cpp', 'other-tools/dsc_iterator.cpp', - 'common/MachOLayout.cpp', - 'common/Diagnostics.cpp', ], ) @@ -223,6 +247,30 @@ executable( sources : [ 'other-tools/dsc_extractor_bin.cpp' ], ) + +executable( + 'dyld_analyzer', + cpp_args : [ '-DBUILDING_LEGACY_TOOL' ], + dependencies : [ + common_dep, + libmach_o_dep, + lsl_dep, + ], + include_directories : [ + common_inc, + 'cache_builder', + 'other-tools', + ], + install : true, + link_with : [ libminidyld ], + sources : [ + 'other-tools/dyld_analyzer.cpp', + 'other-tools/FileUtils.cpp', + 'other-tools/MiscFileUtils.cpp', + 'other-tools/Tool.cpp', + ], +) + executable( 'dyld_info', cpp_args : [ @@ -230,6 +278,7 @@ executable( '-DBUILDING_FOR_TOOLCHAIN=1', ], dependencies : [ + common_dep, corecrypto_dep, libmach_o_dep, llvm_dep, @@ -244,13 +293,6 @@ executable( link_args : [ '-Wl,-weak-lLTO' ], link_with : [ libminidyld ], sources : [ - 'common/Diagnostics.cpp', - 'common/DyldSharedCache.cpp', - 'common/MachOAnalyzer.cpp', - 'common/MachOFile.cpp', - 'common/MetadataVisitor.cpp', - 'common/SwiftVisitor.cpp', - 'common/TargetPolicy.cpp', 'other-tools/dyld_info.cpp', 'other-tools/FileUtils.cpp', 'other-tools/MiscFileUtils.cpp', @@ -258,3 +300,101 @@ executable( ], ) install_man('doc/man/man1/dyld_info.1') + +# Requires headers from unpublished ld-prime sources +# executable( +# 'libtool', +# dependencies : [ lsl_dep ], +# include_directories : [ +# common_inc, +# 'cache_builder', +# 'mach_o_writer', +# ], +# install : true, +# sources : [ +# 'other-tools/libtool.cpp', +# 'other-tools/Tool.cpp', +# ], +# ) +# install_man('doc/man/man1/libtool.1') +# +# # ranlib is a symlink to libtool +# install_man('doc/man/man1/ranlib.1') + +# Requires headers from unpublished ld-prime sources +# executable( +# 'lipo', +# dependencies : [ lsl_dep ], +# include_directories : [ common_inc ], +# install : true, +# sources : [ +# 'other-tools/lipo.cpp', +# 'other-tools/Tool.cpp', +# ], +# ) + +executable( + 'nm', + cpp_args : [ '-DBUILDING_LEGACY_TOOL' ], + dependencies : [ + common_dep, + libmach_o_dep, + lsl_dep, + ], + include_directories : [ + common_inc, + 'cache_builder', + 'other-tools', + ], + install : true, + link_with : [ libminidyld ], + sources : [ + 'other-tools/MiscFileUtils.cpp', + 'other-tools/nm.cpp', + 'other-tools/Tool.cpp', + ], +) + +executable( + 'strings', + cpp_args : [ '-DBUILDING_LEGACY_TOOL' ], + dependencies : [ + common_dep, + libmach_o_dep, + lsl_dep, + ], + include_directories : [ + common_inc, + 'cache_builder', + 'other-tools', + ], + install : true, + link_with : [ libminidyld ], + sources : [ + 'other-tools/MiscFileUtils.cpp', + 'other-tools/strings.cpp', + 'other-tools/Tool.cpp', + ], +) + +executable( + 'size', + cpp_args : [ '-DBUILDING_LEGACY_TOOL' ], + dependencies : [ + common_dep, + libmach_o_dep, + lsl_dep, + ], + include_directories : [ + common_inc, + 'cache_builder', + 'other-tools', + ], + install : true, + link_with : [ libminidyld ], + sources : [ + 'other-tools/MiscFileUtils.cpp', + 'other-tools/size.cpp', + 'other-tools/Tool.cpp', + ], +) diff --git a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix index a92bdb13e3ad5..9a2cd1afa6ea3 100644 --- a/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix +++ b/pkgs/os-specific/darwin/by-name/dy/dyld/package.nix @@ -10,6 +10,7 @@ pkgsBuildHost, sourceRelease, stdenvNoCC, + xnuHeaders, }: let @@ -34,13 +35,8 @@ let '${Libc}/include/_bounds.h' mkdir -p "$out/include/System" - for dir in arm i386 machine; do - mkdir -p "$out/include/$dir" - for file in '${xnu}/osfmk/'$dir/*; do - name=$(basename "$file") - # Skip copying `endian.h` because it conflicts with the SDK, breaking the build on x86_64-darwin. - test "$name" != endian.h && cp -r "$file" "$out/include/$dir/$name" - done + for dir in arm machine; do + cp -r '${xnu}/osfmk/'$dir "$out/include/$dir" ln -s "$out/include/$dir" "$out/include/System/$dir" done @@ -70,18 +66,19 @@ let install -D -m644 -t "$out/include/os" \ '${xnu}/libsyscall/os/tsd.h' \ - '${xnu}/libkern/os/atomic_private.h' \ - '${xnu}/libkern/os/atomic_private_arch.h' \ - '${xnu}/libkern/os/atomic_private_impl.h' \ - '${xnu}/libkern/os/base_private.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders/os/atomic_private.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders/os/atomic_private_arch.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders/os/atomic_private_impl.h' \ + '${xnuHeaders}/Library/Frameworks/Kernel.framework/Versions/A/PrivateHeaders/os/base_private.h' \ '${libplatform}/private/os/lock_private.h' substituteInPlace "$out/include/os/lock_private.h" \ --replace-fail ', bridgeos(4.0)' "" install -D -m644 -t "$out/include/sys" \ - '${xnu}/bsd/sys/kern_memorystatus.h' \ - '${xnu}/bsd/sys/reason.h' + '${xnuHeaders}/include/sys/commpage_private.h' \ + '${xnuHeaders}/include/sys/kern_memorystatus.h' \ + '${xnuHeaders}/include/sys/reason.h' # This file is part of ld-prime, which is unhelpfully not included in the dyld source release. # Fortunately, nothing in it is actually needed to build `dyld_info` and `dsc_extractor`. @@ -100,7 +97,7 @@ mkAppleDerivation { propagatedBuildOutputs = [ ]; - xcodeHash = "sha256-F/V1XzBP1qEDpUDTz+jyp5dbcfqdQp8s9NW2OBoU5x0="; + xcodeHash = "sha256-eECKavCwz8NDqPOgW1YZ4ldQQHSUdBvAGRtYcVgEX/w="; patches = [ # Disable use of private kdebug API @@ -134,7 +131,8 @@ mkAppleDerivation { --replace-fail '__API_UNAVAILABLE(ios, tvos, watchos) __API_UNAVAILABLE(bridgeos)' "" substituteInPlace include/mach-o/utils_priv.h \ - --replace-fail 'SPI_AVAILABLE(macos(15.0), ios(18.0), tvos(18.0), watchos(11.0))' "" + --replace-fail 'SPI_AVAILABLE' "__SPI_AVAILABLE" \ + --replace-fail '____SPI_AVAILABLE' "__SPI_AVAILABLE" substituteInPlace libdyld/utils.cpp \ --replace-fail 'DYLD_EXCLAVEKIT_UNAVAILABLE' "" @@ -146,6 +144,9 @@ mkAppleDerivation { = { CRASHREPORTER_ANNOTATIONS_VERSION, 0, 0, 0, 0, 0, 0 }; EOF + substituteInPlace other-tools/Tool.cpp \ + --replace-fail 'bridgeOS 6,' "" + # Fix header includes substituteInPlace libdyld_introspection/dyld_introspection.cpp \ --replace-fail 'dyld_introspection.h' 'mach-o/dyld_introspection.h' diff --git a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix index ba754ddee3ee6..8c61f41b7e749 100644 --- a/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/fi/file_cmds/package.nix @@ -70,12 +70,6 @@ let typedef int32_t user32_time_t; typedef int64_t user64_addr_t; typedef int64_t user64_time_t; - #elif defined(__x86_64__) - /* https://github.com/apple-oss-distributions/xnu/blob/94d3b452840153a99b38a3a9659680b2a006908e/bsd/i386/types.h#L128-L142 */ - typedef int32_t user32_addr_t; - typedef int32_t user32_time_t; - typedef int64_t user64_addr_t __attribute__((aligned(8))); - typedef int64_t user64_time_t __attribute__((aligned(8))); #else #error "Tried to build file_cmds for an unsupported architecture" #endif diff --git a/pkgs/os-specific/darwin/by-name/ic/ICU/package.nix b/pkgs/os-specific/darwin/by-name/ic/ICU/package.nix index f742f47438075..300dd48f27f3d 100644 --- a/pkgs/os-specific/darwin/by-name/ic/ICU/package.nix +++ b/pkgs/os-specific/darwin/by-name/ic/ICU/package.nix @@ -3,7 +3,7 @@ bootstrapStdenv, buildPackages, fetchpatch2, - icu76, # The ICU version should correspond to the same one used by Apple’s ICU package + icu78, # The ICU version should correspond to the same one used by Apple’s ICU package mkAppleDerivation, python3, stdenvNoCC, @@ -40,9 +40,11 @@ let patches = [ # Skip MessageFormatTest test, which is known to crash sometimes and should be suppressed if it does. - ./patches/suppress-icu-check-crash.patch + ./patches/0001-suppress-icu-check-crash.patch ]; + patchFlags = [ "-p4" ]; + preConfigure = '' sed -i -e "s|/bin/sh|${stdenv.shell}|" configure patchShebangs --build . @@ -102,48 +104,38 @@ let ++ lib.optional withStatic "static"; outputBin = "dev"; - postPatch = - lib.optionalString self.finalPackage.doCheck ( - '' - # Skip test for missing encodingSamples data. - substituteInPlace test/cintltst/ucsdetst.c \ - --replace-fail "&TestMailFilterCSS" "NULL" - - # Disable failing tests - substituteInPlace test/cintltst/cloctst.c \ - --replace-fail 'TESTCASE(TestCanonicalForm);' "" - - substituteInPlace test/intltest/rbbitst.cpp \ - --replace-fail 'TESTCASE_AUTO(TestExternalBreakEngineWithFakeYue);' "" - - # Add missing test data. It’s not included in the source release. - chmod u+w "$NIX_BUILD_TOP/source/icu" - tar -C "$NIX_BUILD_TOP/source" -axf ${lib.escapeShellArg icu76.src} icu/testdata - '' - + lib.optionalString stdenv.hostPlatform.isx86_64 '' - # These tests fail under Rosetta 2 with a floating-point exception. - substituteInPlace test/intltest/caltest.cpp \ - --replace-fail 'TESTCASE_AUTO(Test22633RollTwiceGetTimeOverflow);' "" \ - --replace-fail 'TESTCASE_AUTO(Test22750Roll);' "" - '' - ) - + '' - # Otherwise `make install` is broken. - substituteInPlace Makefile.in \ - --replace-fail '$(top_srcdir)/../LICENSE' "$NIX_BUILD_TOP/source/icu/LICENSE" - substituteInPlace config/dist-data.sh \ - --replace-fail "\''${top_srcdir}/../LICENSE" "$NIX_BUILD_TOP/source/icu/LICENSE" - - # Make sure this ICU build puts C++ symbols in a distinct namespace to avoid symbol clashes with other ICU - # implementations (including both the system ICU and builds of the upstream ICU). - # This breaks binary compatibility for the C++ API, but it’s not ABI stable anyway. Without doing this, - # `dotnet` crashes on macOS 26.4 when linked against `libicucore.A.dylib` from Nixpkgs. - substituteInPlace common/unicode/uvernum.h \ - --replace-fail 'U_ICU_VERSION_SUFFIX ' 'U_ICU_VERSION_SUFFIX _nix' - # Only enable symbol renaming for C++ symbols. C symbols need to remain unversioned for compatibility. - substituteInPlace common/unicode/uversion.h \ - --replace-fail U_DISABLE_RENAMING 0 - ''; + postPatch = lib.optionalString self.finalPackage.doCheck '' + # Skip test for missing encodingSamples data. + substituteInPlace test/cintltst/ucsdetst.c \ + --replace-fail "&TestMailFilterCSS" "NULL" + + # Disable failing tests + substituteInPlace test/cintltst/cloctst.c \ + --replace-fail 'TESTCASE(TestCanonicalForm);' "" + + substituteInPlace test/intltest/rbbitst.cpp \ + --replace-fail 'TESTCASE_AUTO(TestExternalBreakEngineWithFakeYue);' "" + + # Add missing test data. It’s not included in the source release. + chmod u+w "$NIX_BUILD_TOP/source/icu" + tar -C "$NIX_BUILD_TOP/source" -axf ${lib.escapeShellArg icu78.src} icu/testdata + + # Otherwise `make install` is broken. + substituteInPlace Makefile.in \ + --replace-fail '$(top_srcdir)/../LICENSE' "$NIX_BUILD_TOP/source/icu/LICENSE" + substituteInPlace config/dist-data.sh \ + --replace-fail "\''${top_srcdir}/../LICENSE" "$NIX_BUILD_TOP/source/icu/LICENSE" + + # Make sure this ICU build puts C++ symbols in a distinct namespace to avoid symbol clashes with other ICU + # implementations (including both the system ICU and builds of the upstream ICU). + # This breaks binary compatibility for the C++ API, but it’s not ABI stable anyway. Without doing this, + # `dotnet` crashes on macOS 26.4 when linked against `libicucore.A.dylib` from Nixpkgs. + substituteInPlace common/unicode/uvernum.h \ + --replace-fail 'U_ICU_VERSION_SUFFIX ' 'U_ICU_VERSION_SUFFIX _nix' + # Only enable symbol renaming for C++ symbols. C symbols need to remain unversioned for compatibility. + substituteInPlace common/unicode/uversion.h \ + --replace-fail U_DISABLE_RENAMING 0 + ''; # remove dependency on bootstrap-tools in early stdenv build postInstall = diff --git a/pkgs/os-specific/darwin/by-name/ic/ICU/patches/0001-suppress-icu-check-crash.patch b/pkgs/os-specific/darwin/by-name/ic/ICU/patches/0001-suppress-icu-check-crash.patch new file mode 100644 index 0000000000000..b9018766b8384 --- /dev/null +++ b/pkgs/os-specific/darwin/by-name/ic/ICU/patches/0001-suppress-icu-check-crash.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 8 May 2026 21:00:49 -0400 +Subject: [PATCH] suppress-icu-check-crash + +--- + icu/icu4c/source/test/cintltst/cmsgtst.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/icu/icu4c/source/test/cintltst/cmsgtst.c b/icu/icu4c/source/test/cintltst/cmsgtst.c +index 16263b5c7..fccc2753d 100644 +--- a/icu/icu4c/source/test/cintltst/cmsgtst.c ++++ b/icu/icu4c/source/test/cintltst/cmsgtst.c +@@ -231,7 +231,7 @@ static void MessageFormatTest( void ) + austrdup(result), austrdup(testResultStrings[i]) ); + } + +-#if (U_PLATFORM == U_PF_LINUX || U_PLATFORM == U_PF_QNX) /* add platforms here .. */ ++#if (U_PLATFORM == U_PF_LINUX || U_PLATFORM == U_PF_DARWIN || U_PLATFORM == U_PF_QNX) /* add platforms here .. */ + log_verbose("Skipping potentially crashing test for mismatched varargs.\n"); + #else + log_verbose("Note: the next is a platform dependent test. If it crashes, add an exclusion for your platform near %s:%d\n", __FILE__, __LINE__); +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/ic/ICU/patches/suppress-icu-check-crash.patch b/pkgs/os-specific/darwin/by-name/ic/ICU/patches/suppress-icu-check-crash.patch deleted file mode 100644 index 23a5ac307c800..0000000000000 --- a/pkgs/os-specific/darwin/by-name/ic/ICU/patches/suppress-icu-check-crash.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/test/cintltst/cmsgtst.c b/test/cintltst/cmsgtst.c -index cb328707..1073e6c1 100644 ---- a/test/cintltst/cmsgtst.c -+++ b/test/cintltst/cmsgtst.c -@@ -231,7 +231,7 @@ static void MessageFormatTest( void ) - austrdup(result), austrdup(testResultStrings[i]) ); - } - --#if (U_PLATFORM == U_PF_LINUX) /* add platforms here .. */ -+#if (U_PLATFORM == U_PF_LINUX || U_PLATFORM == U_PF_DARWIN) /* add platforms here .. */ - log_verbose("Skipping potentially crashing test for mismatched varargs.\n"); - #else - log_verbose("Note: the next is a platform dependent test. If it crashes, add an exclusion for your platform near %s:%d\n", __FILE__, __LINE__); diff --git a/pkgs/os-specific/darwin/by-name/li/libffi/package.nix b/pkgs/os-specific/darwin/by-name/li/libffi/package.nix index 7aefb636900e3..0411e61a1f9e0 100644 --- a/pkgs/os-specific/darwin/by-name/li/libffi/package.nix +++ b/pkgs/os-specific/darwin/by-name/li/libffi/package.nix @@ -53,16 +53,14 @@ mkAppleDerivation (finalAttrs: { postConfigure = '' # Use Apple’s configuration instead of the one generated by the `configure` script. - cp darwin/include/fficonfig_${stdenv.hostPlatform.darwinArch}.h build/fficonfig.h - cp darwin/include/ffitarget_${ - if stdenv.hostPlatform.isAarch64 then "arm64" else "x86" - }.h build/include/ffitarget.h + cp darwin/include/fficonfig_arm64.h build/fficonfig.h + cp darwin/include/ffitarget_arm64.h build/include/ffitarget.h # Use `macCatalyst` instead of `iosmac` to avoid errors due to invalid availability annotations. substitute darwin/include/ffi.h build/include/ffi.h \ --replace-fail iosmac macCatalyst ''; - postBuild = lib.optionalString stdenv.hostPlatform.isAarch64 '' + postBuild = '' $CC -Os -Wl,-allowable_client,! -Wl,-not_for_dyld_shared_cache -Wl,-no_compact_unwind \ src/aarch64/trampoline.S -dynamiclib -o libffi-trampolines.dylib \ -Iinclude -Ibuild -Ibuild/include \ @@ -75,7 +73,7 @@ mkAppleDerivation (finalAttrs: { ln -s "$dev/include" "$dev/include/ffi" '' # Install the trampoline dylib since it is build manually. - + lib.optionalString stdenv.hostPlatform.isAarch64 '' + + '' cp libffi-trampolines.dylib "$out/lib/libffi-trampolines.dylib" ''; diff --git a/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix b/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix index 6e8cf1f8e3948..f38797fd2ce9e 100644 --- a/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix +++ b/pkgs/os-specific/darwin/by-name/li/libresolv/package.nix @@ -1,6 +1,5 @@ { lib, - fetchFromGitHub, mkAppleDerivation, sourceRelease, stdenvNoCC, @@ -23,8 +22,12 @@ let '${dyld}/include/mach-o/dyld_priv.h' substituteInPlace "$out/include/mach-o/dyld_priv.h" \ - --replace-fail ', bridgeos(3.0)' "" \ - --replace-fail '//@VERSION_DEFS@' 'const dyld_build_version_t dyld_2024_SU_E_os_versions = { 1 /* macOS */, 150400 };' + --replace-fail ', bridgeos(3.0)' "" + + cat < "$out/include/mach-o/dyld_version_defines.h" + #pragma once + const dyld_build_version_t dyld_2024_SU_E_os_versions = { 1 /* macOS */, 150400 }; + EOF ''; }; in diff --git a/pkgs/os-specific/darwin/by-name/ma/mail_cmds/package.nix b/pkgs/os-specific/darwin/by-name/ma/mail_cmds/package.nix index b29e711251d67..01eb728f2eb6f 100644 --- a/pkgs/os-specific/darwin/by-name/ma/mail_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/ma/mail_cmds/package.nix @@ -14,7 +14,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-6rBflDgQkqWDc8XPLgKIO703bMamg2QlhUnP71hBX3I="; + xcodeHash = "sha256-X9WKaCXm7gJI04iOJ3upmqTwZ6Lw+JjH0xSs+ng/9J0="; meta.description = "Traditional mail command for Darwin"; } diff --git a/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix b/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix index 1504ebf595906..39faf051ad146 100644 --- a/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/ne/network_cmds/package.nix @@ -32,17 +32,16 @@ let '${xnu}/libkern/firehose/firehose_types_private.h' \ '${xnu}/libkern/firehose/tracepoint_private.h' - for dir in arm i386 kern machine; do + for dir in arm kern machine; do mkdir -p "$out/include/$dir" for file in '${xnuHeaders}/include/'$dir/*; do name=$(basename "$file") - # Skip copying `endian.h` because it conflicts with the SDK, breaking the build on x86_64-darwin. + # Skip copying `endian.h` because it conflicts with the SDK, breaking the build. test "$name" != endian.h && cp -r "$file" "$out/include/$dir/$name" done done unifdef -x 1 -DKERNEL_PRIVATE -o "$out/include/arm/locks.h" '${xnu}/osfmk/arm/locks.h' - unifdef -x 1 -DKERNEL_PRIVATE -o "$out/include/i386/locks.h" '${xnu}/osfmk/i386/locks.h' install -D -t "$out/include/net" \ '${xnuHeaders}/include/net/bpf.h' \ @@ -119,6 +118,9 @@ let #include <${xnuHeaders}/include/netinet6/nd6.h> EOF + install -D -t "$out/include/netkey" \ + '${xnuHeaders}/include/netkey/keysock_private.h' + install -D -t "$out/include/os" \ '${xnuHeaders}/Library/Frameworks/Kernel.framework/PrivateHeaders/os/atomic_private.h' \ '${xnuHeaders}/Library/Frameworks/Kernel.framework/PrivateHeaders/os/atomic_private_arch.h' \ diff --git a/pkgs/os-specific/darwin/by-name/pa/patch_cmds/package.nix b/pkgs/os-specific/darwin/by-name/pa/patch_cmds/package.nix index 30f1eef87c270..5be1753d589a2 100644 --- a/pkgs/os-specific/darwin/by-name/pa/patch_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/pa/patch_cmds/package.nix @@ -1,6 +1,6 @@ { lib, - apple-sdk, + apple-sdk_26, libutil, mkAppleDerivation, pkg-config, @@ -14,11 +14,19 @@ mkAppleDerivation { "man" ]; + patches = [ + # Use `scandir` on versions of macOS older than 26.4. + ./patches/0001-Fall-back-to-scandir.patch + ]; + xcodeHash = "sha256-Ox8Ii2sUuledUttZ64DaHC0iFlUybs3lNZ23IDeziPM="; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libutil ]; + buildInputs = [ + apple-sdk_26 + libutil + ]; meta = { description = "BSD patch commands for Darwin"; diff --git a/pkgs/os-specific/darwin/by-name/pa/patch_cmds/patches/0001-Fall-back-to-scandir.patch b/pkgs/os-specific/darwin/by-name/pa/patch_cmds/patches/0001-Fall-back-to-scandir.patch new file mode 100644 index 0000000000000..bcc6279d081ed --- /dev/null +++ b/pkgs/os-specific/darwin/by-name/pa/patch_cmds/patches/0001-Fall-back-to-scandir.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Randy Eckenrode +Date: Fri, 8 May 2026 19:34:31 -0400 +Subject: [PATCH] Fall-back-to-scandir + +--- + diff/diffdir.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/diff/diffdir.c b/diff/diffdir.c +index 7583f98..cc476bc 100644 +--- a/diff/diffdir.c ++++ b/diff/diffdir.c +@@ -92,8 +92,13 @@ vscandir(struct inodetree *tree, const char *path, struct dirent ***dirp, + *dirp = NULL; + return (0); + } +- if ((ret = fdscandir(fd, dirp, select, compar)) < 0) +- goto fail; ++ if (__builtin_available(macOS 26.4, *)) { ++ if ((ret = fdscandir(fd, dirp, select, compar)) < 0) ++ goto fail; ++ } else { ++ if ((ret = scandir(path, dirp, select, compar)) < 0) ++ goto fail; ++ } + RB_INSERT(inodetree, tree, ino); + close(fd); + return (ret); +-- +2.51.2 + diff --git a/pkgs/os-specific/darwin/by-name/re/remote_cmds/meson.build.in b/pkgs/os-specific/darwin/by-name/re/remote_cmds/meson.build.in index 137397b3abbc9..646143084e2c6 100644 --- a/pkgs/os-specific/darwin/by-name/re/remote_cmds/meson.build.in +++ b/pkgs/os-specific/darwin/by-name/re/remote_cmds/meson.build.in @@ -53,6 +53,7 @@ executable( '-DCOLLATE_DEBUG', '-DYY_NO_UNPUT', ], + include_directories: [ 'wall' ], install : true, sources : [ 'talkd/announce.c', diff --git a/pkgs/os-specific/darwin/by-name/re/remote_cmds/package.nix b/pkgs/os-specific/darwin/by-name/re/remote_cmds/package.nix index 8029d2982acd1..523c67f886453 100644 --- a/pkgs/os-specific/darwin/by-name/re/remote_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/re/remote_cmds/package.nix @@ -14,7 +14,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-+hC3yJwwwXr01Aa47K5dv4gL0+IlTQZU9YYgygXkTSI="; + xcodeHash = "sha256-SdeF6Jp+KuVTUawJdvpw53qr3gIPEhVzqgQxAau19C0="; postPatch = '' # Avoid a conflict with the definition in SDK’s headers. diff --git a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix index 88f7885ce8149..955a2bc845422 100644 --- a/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/sh/shell_cmds/package.nix @@ -24,7 +24,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-fY8k7qzqqiv/KvGIB4a82qbNsm23QPnGOadrZmNoi54="; + xcodeHash = "sha256-sbgPFMMXgUp+F1IRLiaFto+PsfMHBd23KQ1sQK7tP7A="; postPatch = '' # Fix `mktemp` templates diff --git a/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix b/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix index 1fdb00d9a7358..8a780069d52db 100644 --- a/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/sy/system_cmds/package.nix @@ -18,7 +18,7 @@ let libplatform = sourceRelease "libplatform"; - xnu = sourceRelease "xnu"; + xnu = sourceRelease "xnu"; # Can’t use xnuHeaders because adv_cmds is a transitive dependency of xnuHeaders. privateHeaders = stdenvNoCC.mkDerivation { name = "system_cmds-deps-private-headers"; @@ -71,10 +71,11 @@ let install -D -t "$out/include/sys" \ '${xnu}/bsd/sys/csr.h' \ '${xnu}/bsd/sys/event_private.h' \ - '${xnu}/bsd/sys/pgo.h' \ '${xnu}/bsd/sys/kdebug_private.h' \ '${xnu}/bsd/sys/kern_memorystatus.h' \ + '${xnu}/bsd/sys/pgo.h' \ '${xnu}/bsd/sys/proc_info_private.h' \ + '${xnu}/bsd/sys/proc_private.h' \ '${xnu}/bsd/sys/reason.h' \ '${xnu}/bsd/sys/resource.h' \ '${xnu}/bsd/sys/resource_private.h' \ diff --git a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix index 8a757030dd9bf..d91a37359c320 100644 --- a/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix +++ b/pkgs/os-specific/darwin/by-name/te/text_cmds/package.nix @@ -45,7 +45,7 @@ mkAppleDerivation { "man" ]; - xcodeHash = "sha256-4nwDGUBSx5jjeLQ3EGQFdPZE2MfNGcBvlTU/Sye6OIk="; + xcodeHash = "sha256-8Z6Goz94xP3HqAaSnFUurhZE8l3G1mK5KviXtxSPQhI="; postPatch = '' # Improve compatiblity with libmd in nixpkgs. diff --git a/pkgs/os-specific/darwin/sourceRelease/versions.json b/pkgs/os-specific/darwin/sourceRelease/versions.json index 352df185452c0..78e9ad87a6bf7 100644 --- a/pkgs/os-specific/darwin/sourceRelease/versions.json +++ b/pkgs/os-specific/darwin/sourceRelease/versions.json @@ -1,7 +1,7 @@ { "AvailabilityVersions": { - "hash": "sha256-WcRJx/dt4DdEZ+lQBGgLwRYv1zlSwyNeKUTtuKH1fzE=", - "version": "155" + "hash": "sha256-v+ikUET6ByNEBRbPbl7ivqTJKJkZQDGG7Q20tIMt8pU=", + "version": "157.2" }, "CarbonHeaders": { "hash": "sha256-nIPXnLr21yVnpBhx9K5q3l/nPARA6JL/dED08MeyhP8=", @@ -16,12 +16,12 @@ "version": "88" }, "ICU": { - "hash": "sha256-qtv+IUEjdY5I87wDEIO9cWFAh1WmnIDVIzIyyL9NTd8=", - "version": "76142.3.1.1" + "hash": "sha256-NnTaNtYDDSNe7wLr9U/raaCXGBDWHMt91HJcumY0qTQ=", + "version": "76142.4.7" }, "IOAudioFamily": { "hash": "sha256-A3iiAjjP29VdjMj40tLS5Q/ni4qeh9bBpnmNzeG2pIY=", - "version": "700.2" + "version": "740.1" }, "IOBDStorageFamily": { "hash": "sha256-OcQUJ3nEfrpvWX/npnedJ4PECIGWFSLiM0PKoiH911w=", @@ -56,40 +56,40 @@ "version": "262" }, "IOGraphics": { - "hash": "sha256-iysZE42mOKZbFxSZBNspaBTCRKEKK38DFGBxZWQxZxI=", - "version": "599" + "hash": "sha256-+9DtN1aRQQXLl+OaMZNXdD7ae+NZw3eSWpVhRY5qvhw=", + "version": "600" }, "IOHIDFamily": { - "hash": "sha256-EJg5lL5uuFCzeOjKDeNZCRYlinwt4WDci0Lr8rJ4Q9k=", - "version": "2222.80.22" + "hash": "sha256-BORZA8jiVFq/HHY6AnSotKyERkWAN1jK555ZNPW4G1M=", + "version": "2238.100.59" }, "IOKitTools": { "hash": "sha256-Oknsvzn4nv77WU7f0WPS446iwR2BM2q4iw46r/qctAE=", "version": "125" }, "IOKitUser": { - "hash": "sha256-bT6CIKd4/Ea17jWd74FWvz5dsmdyDRGU+D5/VydAjrA=", - "version": "100222.80.4" + "hash": "sha256-PPsD3JGEJlwe9qJdlduQP4q13DtUT3Eak7W1WhlUdn4=", + "version": "100231.100.18.0.1" }, "IONetworkingFamily": { - "hash": "sha256-ZF5ML41Y1l1liQn32qTkcl4mMvx9Xdizb9VgvTzVTL4=", - "version": "186" + "hash": "sha256-zSmOsiCh+W1k9d6G2+/FD0KPrrtjQTkZscyKgKIa3UU=", + "version": "188" }, "IOSerialFamily": { "hash": "sha256-wVS4QTx6MBOS0VrwyCZ3s5Usezwaf8rWzmNnfdDTXTU=", "version": "93" }, "IOStorageFamily": { - "hash": "sha256-5oUSyzMxniNHG7rPkuxb31v4QcOmXNCriI3Jku2VOTY=", - "version": "333.40.1" + "hash": "sha256-whybjI8XIaihvo16oLq6xP5pNRPZeG7Jdy5jbyWqG1k=", + "version": "337.100.1" }, "IOUSBFamily": { "hash": "sha256-Z0E3TfKP49toYo1Fo9kElRap8CZ+mVDHy5RIexgJTpA=", "version": "630.4.5" }, "Libc": { - "hash": "sha256-3r3IFwONIg+4Oe99IRJ4jvyevZRmIuFmjVL+JMrfw/M=", - "version": "1725.40.4" + "hash": "sha256-+40LeOU1ViMKBXCSvJXQi1N8NSAhL/rlucR32KZ+Chw=", + "version": "1752.100.10" }, "Libinfo": { "hash": "sha256-4InBEPi0n2EMo/8mIBib1Im4iTKRcRJ4IlAcLCigVGk=", @@ -100,8 +100,8 @@ "version": "2026" }, "Libnotify": { - "hash": "sha256-p8cJZlBYOFmI1NDHXGYjgcv8z9Ldc1amZuYlxxJfeVY=", - "version": "344.0.1" + "hash": "sha256-5ZpFParMjqf3nwsjx3Y1SCTXmTUtHX9eDkVJTW59Ppg=", + "version": "348.100.7" }, "Librpcsvc": { "hash": "sha256-UWYdCQ9QsBqwM01bWr+igINAHSdSluB/FrOclC5AjTI=", @@ -116,12 +116,12 @@ "version": "146" }, "PowerManagement": { - "hash": "sha256-KqpAUjwqENbx3qPxhkK6OFARjBGSMEpaGz5ozo9vtSY=", - "version": "1846.81.1" + "hash": "sha256-2vtld72nBFzgqh3vAh8L0PR3RORaXRojQZDc4OH4MVQ=", + "version": "1846.101.2" }, "Security": { - "hash": "sha256-+Rt3+bwj7++u8Pm5V6QgIQUpugwcY2gjqkCWZ2xqGqw=", - "version": "61901.80.25" + "hash": "sha256-1ka7ws6POwm+WKwB/VYZX/uQTQccJe5r9tYDHgoqHp0=", + "version": "61901.101.4" }, "adv_cmds": { "hash": "sha256-QSqEchXCBSUo6kpGb1FyCcrZx1RFfUP/9hoNbQK2lF8=", @@ -140,20 +140,20 @@ "version": "138" }, "configd": { - "hash": "sha256-OJhJocVQvIaulSK65z2URATB+NTnFdOXyunjcBGr08k=", - "version": "1385.80.4" + "hash": "sha256-3GiQlhfYhemK37ue0KY8Q3CDQK2TMFRDFnoxFeJzO+k=", + "version": "1405.100.8" }, "copyfile": { - "hash": "sha256-I9uDi5BDQKa7mO3XpHxv0d6PiROW2ueZ3vGfrsG0OJo=", - "version": "230.0.1.0.1" + "hash": "sha256-IPwDBOtzdUiS1M4ZlhJ44z8Rv7Ot21QnKGxwUW8UZ8c=", + "version": "240" }, "developer_cmds": { - "hash": "sha256-4DDyWuRbxpwDLkbfJIwYp6DKcEDByDiGUmsdOmwq5fI=", - "version": "87" + "hash": "sha256-MX7PIvmWvu/QTUqgzjMu0NntcZuFTL35faec3IkWHBE=", + "version": "89" }, "diskdev_cmds": { - "hash": "sha256-WDedl0pv/AReA96Gh+v2MwoX+QGrekK7YXEGw3aWB5Q=", - "version": "751.80.2" + "hash": "sha256-SciJme+LNmkKkxEO77P0kRGMhtw2ZXSKKMSp55YbdIo=", + "version": "757" }, "doc_cmds": { "hash": "sha256-nnwKXKKjgJXcLCArD38Dme2L1WyR1U0rwn7zI+NCftw=", @@ -164,20 +164,20 @@ "version": "413" }, "dyld": { - "hash": "sha256-rvWFiQVLJKqL0hOL2nRqwRkyPc/OvGnL0GEBymq7Fio=", - "version": "1340" + "hash": "sha256-uXFAHIgSrAR2duFhSvOXdaa0x8GTj4Qjq9TNGOZRGhU=", + "version": "1376.6" }, "eap8021x": { - "hash": "sha256-To9CIsN0oXRmtUjPojXYfUmaoOOdrNbq3AYwghxzoQs=", - "version": "368.60.2" + "hash": "sha256-nwCp5QgtXC2X3y5eR3DnXkdpECNkLmejM2iGQ6nuPaQ=", + "version": "368.101.1" }, "file_cmds": { - "hash": "sha256-1hdTjg1Nf31gAhwjQEhRZQhaqayC8x7PGHAwZ1aEIm8=", - "version": "475" + "hash": "sha256-4Ii7dbijMCYq0IyAYXt1wm+9igSqUCtS60hsAm8+dM8=", + "version": "479" }, "hfs": { - "hash": "sha256-WqXzEVvveaOvTbVN/HzKdDxeHYmxEfLhV3WjO/S+u1E=", - "version": "704.60.4" + "hash": "sha256-GOI7U2J4vy5GQRubSWqx0xZFtE4e/hq7SsUuqptrYR0=", + "version": "715.100.10" }, "launchd": { "hash": "sha256-8mW9bnuHmRXCx9py8Wy28C5b2QPICW0rlAps5njYa00=", @@ -188,95 +188,95 @@ "version": "96" }, "libdispatch": { - "hash": "sha256-L0+Ho9dAlMXVpqFEGIcIMsJc0gULckRulUImNEZe5MU=", - "version": "1542.0.4" + "hash": "sha256-1PHHUzPipwUdzk9uMHweG64J4EU4lixPApV7qwPBpWY=", + "version": "1542.100.32" }, "libffi": { "hash": "sha256-xHefZVsZg9kUXV0t/HLdjPkkD/hn/4bvdRVJ4PsQLeM=", "version": "40" }, "libiconv": { - "hash": "sha256-MboAwJvpO0ix7XsAuKUUxipv8ecxD2OjDgD5bQbygr8=", - "version": "113" + "hash": "sha256-iPPdwts6kALf2lGnYnXfMTuBa2lYrDt7rySiUmraJqs=", + "version": "115.100.1" }, "libmalloc": { - "hash": "sha256-FYWPf6UwDfmWtde2xW1EuBfygv43bvzGncKEMUHY3Qc=", - "version": "792.80.2" + "hash": "sha256-kwJ6vfk1PzDdE0n3Ba+3hXLSf63YmMgPluxrEuvOpF0=", + "version": "812.100.31" }, "libpcap": { - "hash": "sha256-G7CL3pCCmxOoZ+ouA+xfOeDgvLcT9AN9zyrx+cL2Ge4=", - "version": "144" + "hash": "sha256-imKN9h6AfSyjjOjp9AX68LNXybh/pitXDM35N/3/Tls=", + "version": "146" }, "libplatform": { - "hash": "sha256-m1g1suIbEA4g7vWEKYR9x+g0aaXSjvR0IRy4jCU+y0w=", - "version": "359.80.2" + "hash": "sha256-bghS+sClE2nygZMahh1udoMZmGvRSCKn+W4ywTi51Zw=", + "version": "375.100.10" }, "libpthread": { "hash": "sha256-3Xoe0gYZ6RbMZqzsAG8ynnFb3cqypFYImPNYA5H6P9s=", - "version": "539.80.3" + "version": "539.100.4" }, "libresolv": { - "hash": "sha256-SDdF7foz8DFUXmXEznwusNMkXFHrPkdLWQM8xfxb0gc=", - "version": "93" + "hash": "sha256-MAfzoyww1UK0o5TJ7XI4A9vi1T09Nz6Yb9iMrS/wX78=", + "version": "96" }, "libutil": { "hash": "sha256-64+1CIRpYBon7skJRKdaXcxucPh9GrhAbUERhL2PLXA=", "version": "73" }, "mDNSResponder": { - "hash": "sha256-Wa6IM6qz/gjO1GwER7KkPEiknEJbkntA2Q92Bc/YMoY=", - "version": "2881.80.4.0.1" + "hash": "sha256-0u2c3b0rmOFock4wIWg6n16XZWEr+bsj2r5JwgUOr7o=", + "version": "2881.100.56.0.1" }, "mail_cmds": { - "hash": "sha256-peoaHopJaYDqyE4TGfLx7W1K2KsFZmHLWr8Er/HpA90=", - "version": "41" + "hash": "sha256-xAU0HNDC2jmzYqnWWIzUjV0Kldl3SHMvM66Pl6kK8/0=", + "version": "43" }, "misc_cmds": { "hash": "sha256-04uBS16nNrg73Fqh4Obev7nQDjTTlY4f5+pEv3i0FIU=", "version": "45" }, "network_cmds": { - "hash": "sha256-WlO668xfWOJk9QkTDJBqBVfXK52yg2Ofdjcdk6pQvIo=", - "version": "730.80.3" + "hash": "sha256-GXtGhkmTrpYHZj5ufpx2aOMRTMjCe8/H425OWBluKeU=", + "version": "741.100.2" }, "objc4": { - "hash": "sha256-imgOe9mr5HnvTAupIEj1UwS7tbmk3coqNf5BQgI32lE=", - "version": "951.1" + "hash": "sha256-vonl+pqJurD7ozdZ8AQokvtlgKXCk+BP/vFfoyGJiUQ=", + "version": "951.7" }, "patch_cmds": { - "hash": "sha256-fDY2NOT3DnU5pm06cHSs+JJcA/EFP8Lxjg7sErUerJ0=", - "version": "72" + "hash": "sha256-XoLEVrvu9pfHPalkBQDH0IfzcX8FLkcEBmW03cq2jQY=", + "version": "75" }, "ppp": { - "hash": "sha256-N8e3BvyxTvb+mAhNHuCWVGqEyEE89G2zNQDL/mro+X0=", - "version": "1023" + "hash": "sha256-syc0tbDPACswBNNrTaOsC6Lyix6d7O9634PBCjnuqOs=", + "version": "1025" }, "remote_cmds": { - "hash": "sha256-8c/NgQZ+K6jJ3aoYK78/BsEkM1gmRS+9z0437+SvcCw=", - "version": "306" + "hash": "sha256-aTcoaFbKhVrhGQyVRvqb/Iwm0sqUn5HMO19sBpdt428=", + "version": "308" }, "removefile": { - "hash": "sha256-Z5UD0mk/s80CQB0PZWDzSl2JWXmnVmwUvlNb28+hR3k=", - "version": "84" + "hash": "sha256-4E0LsE6b83AqP90tpIhnRdtSekToY7JUWa7lQ3+y3WI=", + "version": "85.100.6" }, "shell_cmds": { - "hash": "sha256-hoMssbZCrmzyJTgEAzOS4L7DhY9z/yXIcvHRhL6W5qc=", - "version": "326" + "hash": "sha256-mZ8DuxAMrv96gDnIG3nNXY906wNVDmjymOv/t3wDr2Q=", + "version": "329" }, "system_cmds": { - "hash": "sha256-OYLCu2pPe10apZEK5kgINcEvxRFFPYquPzcRNkvtJKI=", - "version": "1039" + "hash": "sha256-zG5N06b1/X6bCPWFME10w8XoLqwGKvrAmNihLy0cxl4=", + "version": "1042.100.6.0.1" }, "text_cmds": { - "hash": "sha256-SDH74Pwy/kPiApisuUFBrDVQ7swCsinMK7zkpm82rnw=", - "version": "197" + "hash": "sha256-Z2SKmsmCRX/CnRC9kkgCb8ozK+nit4GYsv1rrEWL3qs=", + "version": "199" }, "top": { "hash": "sha256-F+P7yRQw4qa73JmQrMVgy3lVQRDBrFDy9kkOUJ135ys=", "version": "144" }, "xnu": { - "hash": "sha256-ci4Rsa1nRpS9qYBUxnaQokrtBzApGF/kQXugGusb9ok=", - "version": "12377.81.4" + "hash": "sha256-TpT7j7jgcibaHd7cqGbyfDRO0XkjKJNf/tPrdnVVpUw=", + "version": "12377.101.15" } } diff --git a/pkgs/os-specific/linux/fuse/common.nix b/pkgs/os-specific/linux/fuse/common.nix index 726032f36d26e..935661f5aa009 100644 --- a/pkgs/os-specific/linux/fuse/common.nix +++ b/pkgs/os-specific/linux/fuse/common.nix @@ -20,22 +20,25 @@ let isFuse3 = lib.hasPrefix "3" version; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "fuse"; inherit version; src = fetchFromGitHub { owner = "libfuse"; repo = "libfuse"; - rev = "${pname}-${version}"; + tag = "fuse-${version}"; inherit hash; }; + strictDeps = true; + __structuredAttrs = true; + patches = lib.optional (!isFuse3 && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isLoongArch64)) (fetchpatch { url = "https://github.com/libfuse/libfuse/commit/914871b20a901e3e1e981c92bc42b1c93b7ab81b.patch"; - sha256 = "1w4j6f1awjrycycpvmlv0x5v9gprllh4dnbjxl4dyl2jgbkaw6pa"; + hash = "sha256-6hqu5npSUN8I7XLZRiCl+b60Sweb1n2ZZz5LroIzkvA="; }) ++ ( if isFuse3 then @@ -48,7 +51,7 @@ stdenv.mkDerivation rec { ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch (fetchpatch { url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/sys-fs/fuse/files/fuse-2.9.9-closefrom-glibc-2-34.patch?id=8a970396fca7aca2d5a761b8e7a8242f1eef14c9"; - sha256 = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; + hash = "sha256-ELYBW/wxRcSMssv7ejCObrpsJHtOPJcGq33B9yHQII4="; }) ./fuse2-gettext-0.25.patch ] @@ -145,4 +148,4 @@ stdenv.mkDerivation rec { ]; outputsToInstall = [ "bin" ]; }; -} +}) diff --git a/pkgs/os-specific/linux/fuse/default.nix b/pkgs/os-specific/linux/fuse/default.nix index 41c8e32a27ec5..983bb378d7c01 100644 --- a/pkgs/os-specific/linux/fuse/default.nix +++ b/pkgs/os-specific/linux/fuse/default.nix @@ -14,7 +14,7 @@ in }; fuse_3 = mkFuse { - version = "3.17.4"; - hash = "sha256-G3+cBp8q8S8oLIcgWp0p+TAtzqXlKYbRSY/5Y3L7QO4="; + version = "3.18.2"; + hash = "sha256-QArQMSStVxwUo6CgU2JlXBdFWjzlGXfZk1AVGLGeE70="; }; } diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix index 3bee4e848c765..25f45e0ebc12e 100644 --- a/pkgs/os-specific/linux/kernel-headers/default.nix +++ b/pkgs/os-specific/linux/kernel-headers/default.nix @@ -157,13 +157,13 @@ in linuxHeaders = let - version = "6.18.7"; + version = "7.0"; in makeLinuxHeaders { inherit version; src = fetchurl { url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; - hash = "sha256-tyak0Vz5rgYhm1bYeCB3bjTYn7wTflX7VKm5wwFbjx4="; + hash = "sha256-u39tgLOHx1e30Uu5MCj8uQ95PFwNNnc27oFaEAs4kfA="; }; patches = [ ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms diff --git a/pkgs/os-specific/linux/kernel-headers/no-relocs.patch b/pkgs/os-specific/linux/kernel-headers/no-relocs.patch index 32c88224b8674..a4e794cf3b261 100644 --- a/pkgs/os-specific/linux/kernel-headers/no-relocs.patch +++ b/pkgs/os-specific/linux/kernel-headers/no-relocs.patch @@ -2,6 +2,6 @@ +++ b/arch/x86/Makefile @@ -231,3 +231,3 @@ endif archscripts: scripts_basic -- $(Q)$(MAKE) $(build)=arch/x86/tools relocs -+ $(Q)$(MAKE) $(build)=arch/x86/tools +- $(Q)$(MAKE) $(build)=arch/x86/tools relocs vdso2c ++ $(Q)$(MAKE) $(build)=arch/x86/tools vdso2c diff --git a/pkgs/os-specific/linux/lvm2/2_03.nix b/pkgs/os-specific/linux/lvm2/2_03.nix index c288d56dcc037..83397f3b492e0 100644 --- a/pkgs/os-specific/linux/lvm2/2_03.nix +++ b/pkgs/os-specific/linux/lvm2/2_03.nix @@ -1,4 +1,4 @@ import ./common.nix { - version = "2.03.39"; - hash = "sha256-I7yQZ+KP4NN7PMRB8oZbngIs48Ykur4ikYuN2QwDHug="; + version = "2.03.41"; + hash = "sha256-1YARuEXfjsE4FsoT6mw51Ms9A4zS19OHrN9Wga19Zjc="; } diff --git a/pkgs/os-specific/linux/lvm2/common.nix b/pkgs/os-specific/linux/lvm2/common.nix index 2e4de4038f9a3..83b6502405c83 100644 --- a/pkgs/os-specific/linux/lvm2/common.nix +++ b/pkgs/os-specific/linux/lvm2/common.nix @@ -231,6 +231,9 @@ stdenv.mkDerivation rec { }; meta = { + changelog = "https://gitlab.com/lvmteam/lvm2/-/blob/v${ + lib.replaceString "." "_" version + }/WHATS_NEW"; homepage = "http://sourceware.org/lvm2/"; description = "Tools to support Logical Volume Management (LVM) on Linux"; platforms = lib.platforms.linux; diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bash/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/bash/static.nix index 742379b94603c..31ec4ebc58366 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/bash/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/bash/static.nix @@ -63,6 +63,7 @@ bash.runCommand "${pname}-${version}" --host=${hostPlatform.config} \ --without-bash-malloc \ --disable-dependency-tracking \ + --disable-nls \ --enable-static-link \ CC=musl-gcc @@ -72,5 +73,6 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip rm $out/bin/bashbug + rm -rf $out/share ln -s $out/bin/bash $out/bin/sh '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix index 4ba20f13192e9..eb34c121e9da0 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/binutils/default.nix @@ -54,6 +54,8 @@ let # libbfd and libopcodes into a default visibility. Drop default lib # path to force users to declare their use of these libraries. "--with-lib-path=:" + "--disable-gold" + "--disable-plugins" ]; in bash.runCommand "${pname}-${version}" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix index fd0681ca4d41f..6461f6523c0b8 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/binutils/static.nix @@ -46,6 +46,8 @@ let "--enable-deterministic-archives" # depends on bison "--disable-gprofng" + # unused downstream + "--disable-gprof" # Turn on --enable-new-dtags by default to make the linker set # RUNPATH instead of RPATH on binaries. This is important because @@ -56,6 +58,10 @@ let # libbfd and libopcodes into a default visibility. Drop default lib # path to force users to declare their use of these libraries. "--with-lib-path=:" + "--disable-gold" + # unused in the bootstrap path and removed from the output + "--disable-libctf" + "--disable-plugins" ]; in bash.runCommand "${pname}-${version}" @@ -81,6 +87,7 @@ bash.runCommand "${pname}-${version}" result: bash.runCommand "${pname}-get-version-${version}" { } '' ${result}/bin/ld --version + ${result}/${hostPlatform.config}/bin/ld --version mkdir $out ''; } @@ -104,5 +111,17 @@ bash.runCommand "${pname}-${version}" # gprof/addr2line/elfedit + man pages are unused downstream. rm -f $out/bin/gprof $out/bin/addr2line $out/bin/elfedit - rm -rf $out/share/info $out/share/man + rm -rf $out/include $out/lib $out/share + + # The target-prefixed tools duplicate the unprefixed tools byte-for-byte. + # Keep the conventional target-prefixed paths, but make them symlinks. + targetBin=$out/${hostPlatform.config}/bin + if [ -d "$targetBin" ]; then + for tool in ar as ld ld.bfd nm objcopy objdump ranlib readelf strip; do + if [ -e "$targetBin/$tool" ] && cmp -s "$out/bin/$tool" "$targetBin/$tool"; then + rm "$targetBin/$tool" + ln -s ../../bin/$tool "$targetBin/$tool" + fi + done + fi '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/bzip2/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/bzip2/static.nix index fcdb8131957ed..540f86112aa4c 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/bzip2/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/bzip2/static.nix @@ -33,12 +33,28 @@ bash.runCommand "${pname}-${version}" gzip ]; - passthru.tests.get-version = - result: - bash.runCommand "${pname}-get-version-${version}" { } '' - ${result}/bin/bzip2 --help - mkdir $out - ''; + passthru.tests = { + get-version = + result: + bash.runCommand "${pname}-get-version-${version}" { } '' + ${result}/bin/bzip2 --help + mkdir $out + ''; + + compress = + result: + bash.runCommand "${pname}-compress-${version}" { } '' + printf 'bootstrap\n' > input + ${result}/bin/bzip2 -k input + ${result}/bin/bunzip2 -c input.bz2 > bunzip2-output + read -r bunzip2Output < bunzip2-output + test "$bunzip2Output" = bootstrap + ${result}/bin/bzcat input.bz2 > bzcat-output + read -r bzcatOutput < bzcat-output + test "$bzcatOutput" = bootstrap + mkdir $out + ''; + }; meta = { description = "High-quality data compression program"; @@ -58,12 +74,15 @@ bash.runCommand "${pname}-${version}" -j $NIX_BUILD_CORES \ CC=musl-gcc \ CFLAGS=-static \ - bzip2 bzip2recover + bzip2 # Install - make install -j $NIX_BUILD_CORES PREFIX=$out + mkdir -p $out/bin + cp bzip2 $out/bin/bzip2 + ln -s bzip2 $out/bin/bunzip2 + ln -s bzip2 $out/bin/bzcat # Strip # Ignore failures, because strip may fail on non-elf files. - find $out/{bin,lib} -type f -exec strip --strip-debug {} + || true + strip --strip-debug $out/bin/bzip2 || true '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/static.nix index 22eca3a3c873a..2291a5dedba37 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/coreutils/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/coreutils/static.nix @@ -80,5 +80,5 @@ bash.runCommand "${pname}-${version}" make -j $NIX_BUILD_CORES install-strip # Remove documentation not needed in the bootstrap chain. - rm -rf $out/share/info $out/share/man + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix index dae72f79852a5..5418c6507b4b3 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/default.nix @@ -184,6 +184,9 @@ lib.makeScope tinycc = tinycc-musl; gawk = gawk-mes; gnumakeBoot = gnumake; + # GNU Make's release tarball relies on preserved mtimes for + # pregenerated Autotools files. + gnutar = gnutar-musl; }; gnumake-static = callPackage ./gnumake/static.nix { @@ -366,61 +369,83 @@ lib.makeScope writeTextFile writeText ; - test = kaem.runCommand "minimal-bootstrap-test" { } ( - '' + + tests = { + bootstrap-chain = kaem.runCommand "minimal-bootstrap-bootstrap-chain-test" { } '' echo ${bash.tests.get-version} - echo ${bash-static.tests.get-version} echo ${bash_2_05.tests.get-version} echo ${binutils.tests.get-version} - echo ${binutils-static.tests.get-version} echo ${bison.tests.get-version} echo ${bzip2.tests.get-version} - echo ${bzip2-static.tests.get-version} echo ${coreutils-musl.tests.get-version} - echo ${coreutils-static.tests.get-version} echo ${diffutils.tests.get-version} - echo ${diffutils-static.tests.get-version} echo ${findutils.tests.get-version} - echo ${findutils-static.tests.get-version} echo ${gawk.tests.get-version} echo ${gawk-mes.tests.get-version} - echo ${gawk-static.tests.get-version} - echo ${gcc46.tests.get-version} - echo ${gcc46-cxx.tests.hello-world} - echo ${gcc10.tests.hello-world} - echo ${gcc-latest.tests.hello-world} echo ${gnugrep.tests.get-version} - echo ${gnugrep-static.tests.get-version} echo ${gnum4.tests.get-version} echo ${gnumake-musl.tests.get-version} - echo ${gnumake-static.tests.get-version} - echo ${gnupatch-static.tests.get-version} echo ${gnused.tests.get-version} echo ${gnused-mes.tests.get-version} - echo ${gnused-static.tests.get-version} echo ${gnutar.tests.get-version} echo ${gnutar-latest.tests.get-version} echo ${gnutar-musl.tests.get-version} - echo ${gnutar-static.tests.get-version} echo ${gzip.tests.get-version} - echo ${gzip-static.tests.get-version} echo ${heirloom.tests.get-version} echo ${mes.compiler.tests.get-version} echo ${musl.tests.hello-world} - echo ${patchelf-static.tests.get-version} echo ${python.tests.get-version} echo ${tinycc-mes.compiler.tests.chain} echo ${tinycc-musl.compiler.tests.hello-world} echo ${xz.tests.get-version} - '' - + (lib.strings.optionalString (hostPlatform.libc == "glibc") '' - echo ${gcc-glibc.tests.hello-world} - echo ${glibc.tests.hello-world} - '') - + '' mkdir ''${out} - '' - ); + ''; + + static-tools = kaem.runCommand "minimal-bootstrap-static-tools-test" { } '' + echo ${bash-static.tests.get-version} + echo ${binutils-static.tests.get-version} + echo ${bzip2-static.tests.get-version} + echo ${bzip2-static.tests.compress} + echo ${coreutils-static.tests.get-version} + echo ${diffutils-static.tests.get-version} + echo ${findutils-static.tests.get-version} + echo ${gawk-static.tests.get-version} + echo ${gnugrep-static.tests.get-version} + echo ${gnumake-static.tests.get-version} + echo ${gnupatch-static.tests.get-version} + echo ${gnused-static.tests.get-version} + echo ${gnutar-static.tests.get-version} + echo ${gzip-static.tests.get-version} + echo ${patchelf-static.tests.get-version} + echo ${xz-static.tests.get-version} + mkdir ''${out} + ''; + + compiler = kaem.runCommand "minimal-bootstrap-compiler-test" { } ( + '' + echo ${gcc46.tests.get-version} + echo ${gcc46-cxx.tests.hello-world} + echo ${gcc10.tests.hello-world} + echo ${gcc-latest.tests.hello-world} + '' + + (lib.strings.optionalString (hostPlatform.libc == "glibc") '' + echo ${gcc-glibc.tests.hello-world} + echo ${glibc.tests.hello-world} + '') + + '' + mkdir ''${out} + '' + ); + + full = kaem.runCommand "minimal-bootstrap-test" { } '' + echo ${tests.bootstrap-chain} + echo ${tests.static-tools} + echo ${tests.compiler} + mkdir ''${out} + ''; + }; + + test = tests.full; } // (lib.optionalAttrs (hostPlatform.libc == "glibc")) { gcc-glibc = callPackage ./gcc/glibc.nix { diff --git a/pkgs/os-specific/linux/minimal-bootstrap/diffutils/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/diffutils/static.nix index 063d1f0a4100a..f46805411c61b 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/diffutils/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/diffutils/static.nix @@ -69,6 +69,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS=-static \ ac_cv_path_PR_PROGRAM=pr @@ -78,4 +79,7 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip + + # Remove documentation not needed in the bootstrap chain. + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/findutils/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/findutils/static.nix index aa68c36eb73ba..c6b1c6e2ba0cc 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/findutils/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/findutils/static.nix @@ -47,6 +47,7 @@ bash.runCommand "${pname}-${version}" result: bash.runCommand "${pname}-get-version-${version}" { } '' ${result}/bin/find --version + ${result}/bin/xargs --version mkdir $out ''; @@ -69,6 +70,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS=-static @@ -77,5 +79,8 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip - rm $out/bin/updatedb + + # Keep only the bootstrap-relevant find/xargs tools. + rm -f $out/bin/locate $out/bin/updatedb + rm -rf $out/libexec $out/share $out/var '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gawk/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gawk/static.nix index 2abe73c2aa0c3..c6175308d59d1 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gawk/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gawk/static.nix @@ -48,6 +48,7 @@ bash.runCommand "${pname}-${version}" result: bash.runCommand "${pname}-get-version-${version}" { } '' ${result}/bin/awk --version + ${result}/bin/awk 'BEGIN { if (2 + 2 != 4) exit 1 }' mkdir $out ''; } @@ -62,6 +63,10 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-extensions \ + --disable-mpfr \ + --disable-nls \ + --disable-pma \ CC=musl-gcc \ CFLAGS=-static @@ -71,4 +76,6 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip rm $out/bin/gawkbug + rm -rf $out/etc $out/include $out/lib $out/libexec + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix index 090b939acd7fb..25b06eb13f003 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/10.nix @@ -48,12 +48,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -112,13 +106,11 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Patch # doesn't recognise musl @@ -127,7 +119,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export C_INCLUDE_PATH="${musl}/include" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" export LIBRARY_PATH="${musl}/lib" @@ -154,7 +149,10 @@ bash.runCommand "${pname}-${version}" --disable-lto \ --disable-multilib \ --disable-nls \ - --disable-plugin + --disable-plugin \ + --without-isl \ + --disable-libstdcxx-filesystem-ts \ + --disable-shared # Build make -j $NIX_BUILD_CORES diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix index 0f442367f72f4..3016e751e72f1 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.cxx.nix @@ -130,7 +130,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export C_INCLUDE_PATH="${musl}/include" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" export LIBRARY_PATH="${musl}/lib" @@ -152,7 +155,9 @@ bash.runCommand "${pname}-${version}" --disable-libstdcxx-pch \ --disable-lto \ --disable-multilib \ - --disable-nls + --disable-nls \ + --disable-libsanitizer \ + --disable-shared # Build make -j $NIX_BUILD_CORES diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix index d9c37f5a0562c..7c533e2d0d5b7 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/4.6.nix @@ -110,6 +110,7 @@ bash.runCommand "${pname}-${version}" # Configure export CC="tcc -B ${tinycc.libs}/lib" + export CFLAGS="-O2" export C_INCLUDE_PATH="${tinycc.libs}/include:$(pwd)/mpfr/src" export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH" diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix index 890098aa66b9c..3188453cea74d 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/glibc.nix @@ -52,12 +52,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -115,17 +109,19 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1 -pipe" + export CXXFLAGS="-O1 -pipe" + export CFLAGS_FOR_TARGET="-O0" + export CXXFLAGS_FOR_TARGET="-O0" bash ./configure \ --prefix=$out \ @@ -148,7 +144,10 @@ bash.runCommand "${pname}-${version}" --disable-multilib \ --disable-nls \ --disable-plugin \ - --with-specs="%x{-dynamic-linker=${glibc}/lib/${linkerName}} %x{-L${glibc}/lib/} -B${glibc}/lib" + --with-specs="%x{-dynamic-linker=${glibc}/lib/${linkerName}} %x{-L${glibc}/lib/} -B${glibc}/lib" \ + --without-isl \ + --disable-libstdcxx-backtrace \ + --disable-libstdcxx-filesystem-ts # Build make -j $NIX_BUILD_CORES diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix index e55acf5caecd2..d003f164abada 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix @@ -45,12 +45,6 @@ let url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz"; hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg="; }; - - islVersion = "0.24"; - isl = fetchurl { - url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2"; - hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA="; - }; in bash.runCommand "${pname}-${version}" { @@ -109,13 +103,11 @@ bash.runCommand "${pname}-${version}" tar xf ${gmp} tar xf ${mpfr} tar xf ${mpc} - tar xf ${isl} cd gcc-${version} ln -s ../gmp-${gmpVersion} gmp ln -s ../mpfr-${mpfrVersion} mpfr ln -s ../mpc-${mpcVersion} mpc - ln -s ../isl-${islVersion} isl # Patch # force musl even if host triple is gnu @@ -124,7 +116,10 @@ bash.runCommand "${pname}-${version}" # Configure export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" - export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CFLAGS="-O1" + export CXXFLAGS="-O1" + export CFLAGS_FOR_TARGET="-O0 -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so" + export CXXFLAGS_FOR_TARGET="$CFLAGS_FOR_TARGET" export LIBRARY_PATH="${musl}/lib" bash ./configure \ @@ -148,7 +143,9 @@ bash.runCommand "${pname}-${version}" --disable-lto \ --disable-multilib \ --disable-nls \ - --disable-plugin + --disable-plugin \ + --without-isl \ + --disable-shared # Build make -j $NIX_BUILD_CORES diff --git a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix index a9694d349f5ea..f156f862ecc0c 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/glibc/default.nix @@ -98,12 +98,18 @@ bash.runCommand "${pname}-${version}" cd build # libstdc++.so is built against musl and fails to link export CXX=false + export CFLAGS="-O1" bash ../configure \ --prefix=$out \ --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --with-headers=${linux-headers}/include \ - --disable-dependency-tracking + --disable-dependency-tracking \ + --disable-nscd \ + --disable-build-nscd \ + --disable-profile \ + --disable-timezone-tools \ + --disable-mathvec # Build make -j $NIX_BUILD_CORES diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/static.nix index 69f8dadd22ab8..18e71d8334613 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnugrep/static.nix @@ -70,6 +70,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS=-static @@ -78,5 +79,7 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip - rm $out/bin/{egrep,fgrep} + + # Remove documentation not needed in the bootstrap chain. + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix index 1913ce85927b9..7476143d34695 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/musl.nix @@ -4,6 +4,7 @@ hostPlatform, fetchurl, bash, + coreutils, tinycc, gnumakeBoot, gnupatch, @@ -37,6 +38,7 @@ bash.runCommand "${pname}-${version}" inherit pname version meta; nativeBuildInputs = [ + coreutils tinycc.compiler gnumakeBoot gnupatch @@ -59,6 +61,13 @@ bash.runCommand "${pname}-${version}" tar xzf ${src} cd make-${version} + # Defeat parallel-build automake regen race, see gnused/default.nix. + touch Makefile.in Makefile aclocal.m4 config.h.in configure 2>/dev/null || true + for f in */Makefile.in; do touch "$f" 2>/dev/null || true; done + chmod +x configure config.guess config.sub install-sh missing compile \ + depcomp mkinstalldirs help2man 2>/dev/null || true + [ -d build-aux ] && chmod +x build-aux/* 2>/dev/null || true + # Patch ${lib.concatMapStringsSep "\n" (f: "patch -Np1 -i ${f}") patches} diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/static.nix index 1a7da3f1aff3c..d24f0e6d12cef 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnumake/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnumake/static.nix @@ -79,6 +79,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS="-static -std=gnu17" @@ -87,4 +88,7 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip + + # Remove files not needed to execute make in the bootstrap chain. + rm -rf $out/include $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/static.nix index 7cf5c0d1e7862..ee25341e0b3ba 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnupatch/static.nix @@ -78,4 +78,5 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix index 267f1f12dd205..260f9103c756a 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnused/default.nix @@ -4,6 +4,7 @@ hostPlatform, fetchurl, bash, + coreutils, gnumake, tinycc, gnused, @@ -33,6 +34,7 @@ bash.runCommand "${pname}-${version}" inherit pname version meta; nativeBuildInputs = [ + coreutils gnumake tinycc.compiler gnused @@ -53,6 +55,14 @@ bash.runCommand "${pname}-${version}" tar xzf ${src} cd sed-${version} + # Defeat parallel-build automake regen race: refresh generated-file + # mtimes and restore +x on autotools helpers. + touch Makefile.in Makefile aclocal.m4 config.h.in configure 2>/dev/null || true + for f in */Makefile.in; do touch "$f" 2>/dev/null || true; done + chmod +x configure config.guess config.sub install-sh missing compile \ + depcomp mkinstalldirs help2man 2>/dev/null || true + [ -d build-aux ] && chmod +x build-aux/* 2>/dev/null || true + # Configure export CC="tcc -B ${tinycc.libs}/lib" export LD=tcc diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnused/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnused/static.nix index f086c21747ff7..8ebb1791e55c6 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnused/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnused/static.nix @@ -62,6 +62,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS=-static @@ -70,4 +71,5 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix index 2580347d71023..f38f8e262854d 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/mes.nix @@ -4,6 +4,7 @@ hostPlatform, fetchurl, bash, + coreutils, tinycc, gnumake, gnused, @@ -25,6 +26,7 @@ bash.runCommand "${pname}-${version}" inherit pname version meta; nativeBuildInputs = [ + coreutils tinycc.compiler gnumake gnused @@ -45,6 +47,14 @@ bash.runCommand "${pname}-${version}" rm tar.tar cd tar-${version} + # untar drops mtimes and +x on autotools helpers, restore them so + # parallel builds don't trip into automake regeneration. + touch Makefile.in Makefile aclocal.m4 config.h.in configure 2>/dev/null || true + for f in */Makefile.in; do touch "$f" 2>/dev/null || true; done + chmod +x configure config.guess config.sub install-sh missing compile \ + depcomp mkinstalldirs help2man 2>/dev/null || true + [ -d build-aux ] && chmod +x build-aux/* 2>/dev/null || true + # Configure export CC="tcc -B ${tinycc.libs}/lib" bash ./configure \ diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix index c3e967ebe53d7..09d2d260b8956 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/musl.nix @@ -4,6 +4,7 @@ hostPlatform, fetchurl, bash, + coreutils, tinycc, gnumake, gnugrep, @@ -26,6 +27,7 @@ bash.runCommand "${pname}-${version}" inherit pname version meta; nativeBuildInputs = [ + coreutils tinycc.compiler gnumake gnused @@ -46,6 +48,14 @@ bash.runCommand "${pname}-${version}" rm tar.tar cd tar-${version} + # untar drops mtimes and +x on autotools helpers, restore them so + # parallel builds don't trip into automake regeneration. + touch Makefile.in Makefile aclocal.m4 config.h.in configure 2>/dev/null || true + for f in */Makefile.in; do touch "$f" 2>/dev/null || true; done + chmod +x configure config.guess config.sub install-sh missing compile \ + depcomp mkinstalldirs help2man 2>/dev/null || true + [ -d build-aux ] && chmod +x build-aux/* 2>/dev/null || true + # Configure export CC="tcc -B ${tinycc.libs}/lib" export LD=tcc diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/static.nix index 3add87dc6f3a4..07eba0ef2fe46 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/static.nix @@ -62,6 +62,7 @@ bash.runCommand "${pname}-${version}" --build=${buildPlatform.config} \ --host=${hostPlatform.config} \ --disable-dependency-tracking \ + --disable-nls \ CC=musl-gcc \ CFLAGS=-static @@ -70,4 +71,5 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES install-strip + rm -rf $out/libexec $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gzip/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/gzip/static.nix index 5697ce2299342..f449fdcd36094 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/gzip/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/gzip/static.nix @@ -77,4 +77,5 @@ bash.runCommand "${pname}-${version}" # Install make -j $NIX_BUILD_CORES bin_SCRIPTS= install-strip + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix index 36849236ee6c0..7c3335ed1f21b 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/mes/default.nix @@ -1,3 +1,8 @@ +let + sourcesJson = (builtins.fromJSON (builtins.readFile ./sources.json)); + inherit (builtins) split filter isString; +in + { lib, fetchurl, @@ -57,7 +62,7 @@ let } .${buildPlatform.system}; - sources = (lib.importJSON ./sources.json).${arch}.linux.mescc; + sources = sourcesJson."${arch}.linux.mescc"; inherit (sources) libc_mini_SOURCES @@ -67,7 +72,7 @@ let ; # add symlink() to libc+tcc so we can use it in ln-boot - libc_tcc_SOURCES = sources.libc_tcc_SOURCES ++ [ "lib/linux/symlink.c" ]; + libc_tcc_SOURCES = "${sources.libc_tcc_SOURCES} lib/linux/symlink.c"; setjmp_x86_64 = ./setjmp_x86_64.c; meta = { @@ -254,39 +259,31 @@ let CC = toString ([ cc ] ++ ccArgs); - stripExt = source: lib.replaceStrings [ ".c" ] [ "" ] (baseNameOf source); - - compile = - source: - kaem.runCommand (stripExt source) { } '' - mkdir ''${out} - cd ''${out} - ${CC} -c ${srcPrefix}/${source} - ''; - - crt1 = compile "/lib/linux/${arch}-mes-mescc/crt1.c"; - - getRes = suffix: res: "${res}/${res.name}${suffix}"; - - archive = out: sources: "catm ${out} ${lib.concatMapStringsSep " " (getRes ".o") sources}"; - sourceArchive = out: sources: "catm ${out} ${lib.concatMapStringsSep " " (getRes ".s") sources}"; + crt1 = + kaem.runCommand "${pname}-crt1-${version}" + { + inherit meta; + } + '' + mkdir ''${out} + cd ''${out} + ${CC} -c ${srcPrefix}/lib/linux/${arch}-mes-mescc/crt1.c + ''; mkLib = libname: sources: - let - os = map compile sources; - in kaem.runCommand "${pname}-${libname}-${version}" { inherit meta; } '' + cd ${srcPost}/mes-${version} LIBDIR=''${out}/lib mkdir -p ''${LIBDIR} - cd ''${LIBDIR} + catm ''${LIBDIR}/${libname}.c ${sources} - ${archive "${libname}.a" os} - ${sourceArchive "${libname}.s" os} + ${CC} -S -o ''${LIBDIR}/${libname}.s ''${out}/lib/${libname}.c + ${CC} -c -o ''${LIBDIR}/${libname}.a ''${LIBDIR}/${libname}.s ''; libc-mini = mkLib "libc-mini" libc_mini_SOURCES; @@ -338,6 +335,9 @@ let # Build mes itself compiler = + let + objs = filter isString (split " " mes_SOURCES); + in kaem.runCommand "${pname}-${version}" { inherit pname version; @@ -353,8 +353,19 @@ let } '' mkdir -p ''${out}/bin + ${lib.concatMapStringsSep "\n" (obj: '' + ${srcPost.bin}/bin/mes-m2 -e main ${srcPost.bin}/bin/mescc.scm -- \ + -D HAVE_CONFIG_H=1 \ + -I ${srcPrefix}/include \ + -I ${srcPrefix}/include/linux/${arch} \ + -I ${srcPost}/mes-${version}/src \ + -c \ + -o ${lib.removePrefix "src/" obj}.o \ + ${srcPost}/mes-${version}/${obj} + '') objs} ${srcPost.bin}/bin/mes-m2 -e main ${srcPost.bin}/bin/mescc.scm -- \ + -I ${srcPost}/mes-${version}/src \ -L ''${srcPrefix}/lib \ -L ${libs}/lib \ -lc \ @@ -362,7 +373,7 @@ let -nostdlib \ -o ''${out}/bin/mes \ ${libs}/lib/${arch}-mes/crt1.o \ - ${lib.concatMapStringsSep " " (getRes ".o") (map compile mes_SOURCES)} + ${lib.concatMapStringsSep " " (obj: "${lib.removePrefix "src/" obj}.o") objs} ''; in { diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh b/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh index fcee9605e42cc..a3a0b5c2e05c3 100755 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh +++ b/pkgs/os-specific/linux/minimal-bootstrap/mes/gen-sources.sh @@ -17,13 +17,15 @@ ARCHS="x86 x86_64" KERNELS="linux" COMPILERS="mescc gcc" +to_json_joined_string() { + printf '%s\n' "$@" | jq --raw-input --null-input '[inputs]|join(" ")' +} -to_json_array() { - if [ $# -eq 0 ]; then - echo '[]' - else - printf '%s\n' "$@" | jq --raw-input --null-input '[inputs]' - fi +to_json_joined_string_1() { + printf '%s\n' "$@" | jq --raw-input --null-input '[inputs]|.[0:100]|join(" ")' +} +to_json_joined_string_2() { + printf '%s\n' "$@" | jq --raw-input --null-input '[inputs]|.[100:]|join(" ")' } gen_sources() { @@ -38,20 +40,22 @@ gen_sources() { jq --null-input \ --arg key "$mes_cpu.$mes_kernel.$compiler" \ - --argjson libc_mini_SOURCES "$(to_json_array $libc_mini_SOURCES)" \ - --argjson libmescc_SOURCES "$(to_json_array $libmescc_SOURCES)" \ - --argjson libtcc1_SOURCES "$(to_json_array $libtcc1_SOURCES)" \ - --argjson libc_SOURCES "$(to_json_array $libc_SOURCES)" \ - --argjson libc_tcc_SOURCES "$(to_json_array $libc_tcc_SOURCES)" \ - --argjson libc_gnu_SOURCES "$(to_json_array $libc_gnu_SOURCES)" \ - --argjson mes_SOURCES "$(to_json_array $mes_SOURCES)" \ + --argjson libc_mini_SOURCES "$(to_json_joined_string $libc_mini_SOURCES)" \ + --argjson libmescc_SOURCES "$(to_json_joined_string $libmescc_SOURCES)" \ + --argjson libtcc1_SOURCES "$(to_json_joined_string $libtcc1_SOURCES)" \ + --argjson libc_SOURCES "$(to_json_joined_string $libc_SOURCES)" \ + --argjson libc_tcc_SOURCES "$(to_json_joined_string $libc_tcc_SOURCES)" \ + --argjson libc_gnu1_SOURCES "$(to_json_joined_string_1 $libc_gnu_SOURCES)" \ + --argjson libc_gnu2_SOURCES "$(to_json_joined_string_2 $libc_gnu_SOURCES)" \ + --argjson mes_SOURCES "$(to_json_joined_string $mes_SOURCES)" \ '{($key): { libc_mini_SOURCES: $libc_mini_SOURCES, libmescc_SOURCES: $libmescc_SOURCES, libtcc1_SOURCES: $libtcc1_SOURCES, libc_SOURCES: $libc_SOURCES, libc_tcc_SOURCES: $libc_tcc_SOURCES, - libc_gnu_SOURCES: $libc_gnu_SOURCES, + libc_gnu1_SOURCES: $libc_gnu1_SOURCES, + libc_gnu2_SOURCES: $libc_gnu2_SOURCES, mes_SOURCES: $mes_SOURCES }}' } diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix b/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix index d6dc9fa977870..edf1a2f15640b 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/mes/libc.nix @@ -1,9 +1,12 @@ +let + sourcesJson = (builtins.fromJSON (builtins.readFile ./sources.json)); +in + { lib, kaem, ln-boot, mes, - mes-libc, buildPlatform, fetchurl, }: @@ -18,8 +21,13 @@ let } .${buildPlatform.system}; - sources = (lib.importJSON ./sources.json).${arch}.linux.gcc; - inherit (sources) libtcc1_SOURCES libc_gnu_SOURCES; + sources = sourcesJson."${arch}.linux.gcc"; + inherit (sources) libtcc1_SOURCES libc_gnu1_SOURCES libc_gnu2_SOURCES; + + ldexpl = fetchurl { + url = "https://gitlab.com/janneke/mes/-/raw/c837abed8edb341d4e56913729fbe9803b4de47c/lib/math/ldexpl.c"; + hash = "sha256-3QoFZZIqVmlMUosEqOdYIMEHzYgQ7GJ7Hz0Bf/1iIig="; + }; # Concatenate all source files into a convenient bundle # "gcc" variants of source files (eg. "lib/linux/x86-mes-gcc") can also be @@ -27,14 +35,14 @@ let # # Passing this many arguments is too much for kaem so we need to split # the operation in two - firstLibc = (lib.take 100 libc_gnu_SOURCES) ++ [ ./ldexpl.c ]; - lastLibc = lib.drop 100 libc_gnu_SOURCES; + firstLibc = libc_gnu1_SOURCES + " ${ldexpl}"; + lastLibc = libc_gnu2_SOURCES; in kaem.runCommand "${pname}-${version}" { inherit pname version; - nativeBuildInputs = [ ln-boot ]; + extraPath = "${ln-boot}/bin"; passthru.CFLAGS = "-std=c11"; @@ -56,8 +64,8 @@ kaem.runCommand "${pname}-${version}" mkdir -p ''${out}/lib/${arch}-mes # libc.c - catm ''${TMPDIR}/first.c ${lib.concatStringsSep " " firstLibc} - catm ''${out}/lib/libc.c ''${TMPDIR}/first.c ${lib.concatStringsSep " " lastLibc} + catm ''${TMPDIR}/first.c ${firstLibc} + catm ''${out}/lib/libc.c ''${TMPDIR}/first.c ${lastLibc} # crt{1,n,i}.c cp lib/linux/${arch}-mes-gcc/crt1.c ''${out}/lib @@ -65,11 +73,11 @@ kaem.runCommand "${pname}-${version}" cp lib/linux/${arch}-mes-gcc/crti.c ''${out}/lib # libtcc1.c - catm ''${out}/lib/libtcc1.c ${lib.concatStringsSep " " libtcc1_SOURCES} + catm ''${out}/lib/libtcc1.c ${libtcc1_SOURCES} # getopt.c cp lib/posix/getopt.c ''${out}/lib/libgetopt.c # Install headers - ln -s ${mes.srcPrefix}/include ''${out}/include + ${ln-boot}/bin/ln -s ${mes.srcPrefix}/include ''${out}/include '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.json b/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.json index cca800e197c5d..8ca28a1366f52 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.json +++ b/pkgs/os-specific/linux/minimal-bootstrap/mes/sources.json @@ -1,2314 +1,42 @@ { - "x86": { - "linux": { - "gcc": { - "libc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-gcc/_exit.c", - "lib/linux/x86-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c" - ], - "libc_gnu_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-gcc/_exit.c", - "lib/linux/x86-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86-mes-gcc/setjmp.c", - "lib/ctype/isalnum.c", - "lib/ctype/isalpha.c", - "lib/ctype/isascii.c", - "lib/ctype/iscntrl.c", - "lib/ctype/isgraph.c", - "lib/ctype/isprint.c", - "lib/ctype/ispunct.c", - "lib/math/ceil.c", - "lib/math/fabs.c", - "lib/math/floor.c", - "lib/mes/fdgets.c", - "lib/posix/alarm.c", - "lib/posix/execl.c", - "lib/posix/execlp.c", - "lib/posix/mktemp.c", - "lib/posix/pathconf.c", - "lib/posix/sbrk.c", - "lib/posix/sleep.c", - "lib/posix/unsetenv.c", - "lib/stdio/clearerr.c", - "lib/stdio/feof.c", - "lib/stdio/fgets.c", - "lib/stdio/fileno.c", - "lib/stdio/freopen.c", - "lib/stdio/fscanf.c", - "lib/stdio/perror.c", - "lib/stdio/vfscanf.c", - "lib/stdlib/__exit.c", - "lib/stdlib/abort.c", - "lib/stdlib/abs.c", - "lib/stdlib/alloca.c", - "lib/stdlib/atexit.c", - "lib/stdlib/atof.c", - "lib/stdlib/atol.c", - "lib/stdlib/mbstowcs.c", - "lib/string/bcmp.c", - "lib/string/bcopy.c", - "lib/string/bzero.c", - "lib/string/index.c", - "lib/string/rindex.c", - "lib/string/strcspn.c", - "lib/string/strdup.c", - "lib/string/strerror.c", - "lib/string/strncat.c", - "lib/string/strpbrk.c", - "lib/string/strspn.c", - "lib/stub/__cleanup.c", - "lib/stub/atan2.c", - "lib/stub/bsearch.c", - "lib/stub/chown.c", - "lib/stub/cos.c", - "lib/stub/ctime.c", - "lib/stub/exp.c", - "lib/stub/fpurge.c", - "lib/stub/freadahead.c", - "lib/stub/frexp.c", - "lib/stub/getgrgid.c", - "lib/stub/getgrnam.c", - "lib/stub/getlogin.c", - "lib/stub/getpgid.c", - "lib/stub/getpgrp.c", - "lib/stub/getpwnam.c", - "lib/stub/getpwuid.c", - "lib/stub/gmtime.c", - "lib/stub/log.c", - "lib/stub/mktime.c", - "lib/stub/modf.c", - "lib/stub/pclose.c", - "lib/stub/popen.c", - "lib/stub/pow.c", - "lib/stub/rand.c", - "lib/stub/rewind.c", - "lib/stub/setbuf.c", - "lib/stub/setgrent.c", - "lib/stub/setlocale.c", - "lib/stub/setvbuf.c", - "lib/stub/sigaddset.c", - "lib/stub/sigblock.c", - "lib/stub/sigdelset.c", - "lib/stub/sigsetmask.c", - "lib/stub/sin.c", - "lib/stub/sqrt.c", - "lib/stub/strftime.c", - "lib/stub/sys_siglist.c", - "lib/stub/system.c", - "lib/stub/times.c", - "lib/stub/ttyname.c", - "lib/stub/utime.c", - "lib/linux/getegid.c", - "lib/linux/geteuid.c", - "lib/linux/getgid.c", - "lib/linux/getppid.c", - "lib/linux/getrusage.c", - "lib/linux/getuid.c", - "lib/linux/ioctl.c", - "lib/linux/mknod.c", - "lib/linux/readlink.c", - "lib/linux/setgid.c", - "lib/linux/settimer.c", - "lib/linux/setuid.c", - "lib/linux/signal.c", - "lib/linux/sigprogmask.c" - ], - "libc_mini_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-gcc/_exit.c", - "lib/linux/x86-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/mes/write.c" - ], - "libc_tcc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-gcc/_exit.c", - "lib/linux/x86-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86-mes-gcc/setjmp.c" - ], - "libmescc_SOURCES": [ - "lib/mes/globals.c", - "lib/linux/x86-mes-gcc/syscall-internal.c" - ], - "libtcc1_SOURCES": [ - "lib/libtcc1.c" - ], - "mes_SOURCES": [ - "src/builtins.c", - "src/cc.c", - "src/core.c", - "src/display.c", - "src/eval-apply.c", - "src/gc.c", - "src/globals.c", - "src/hash.c", - "src/lib.c", - "src/math.c", - "src/mes.c", - "src/module.c", - "src/posix.c", - "src/reader.c", - "src/stack.c", - "src/string.c", - "src/struct.c", - "src/symbol.c", - "src/variable.c", - "src/vector.c" - ] - }, - "mescc": { - "libc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-mescc/_exit.c", - "lib/linux/x86-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c" - ], - "libc_gnu_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-mescc/_exit.c", - "lib/linux/x86-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86-mes-mescc/setjmp.c", - "lib/ctype/isalnum.c", - "lib/ctype/isalpha.c", - "lib/ctype/isascii.c", - "lib/ctype/iscntrl.c", - "lib/ctype/isgraph.c", - "lib/ctype/isprint.c", - "lib/ctype/ispunct.c", - "lib/math/ceil.c", - "lib/math/fabs.c", - "lib/math/floor.c", - "lib/mes/fdgets.c", - "lib/posix/alarm.c", - "lib/posix/execl.c", - "lib/posix/execlp.c", - "lib/posix/mktemp.c", - "lib/posix/pathconf.c", - "lib/posix/sbrk.c", - "lib/posix/sleep.c", - "lib/posix/unsetenv.c", - "lib/stdio/clearerr.c", - "lib/stdio/feof.c", - "lib/stdio/fgets.c", - "lib/stdio/fileno.c", - "lib/stdio/freopen.c", - "lib/stdio/fscanf.c", - "lib/stdio/perror.c", - "lib/stdio/vfscanf.c", - "lib/stdlib/__exit.c", - "lib/stdlib/abort.c", - "lib/stdlib/abs.c", - "lib/stdlib/alloca.c", - "lib/stdlib/atexit.c", - "lib/stdlib/atof.c", - "lib/stdlib/atol.c", - "lib/stdlib/mbstowcs.c", - "lib/string/bcmp.c", - "lib/string/bcopy.c", - "lib/string/bzero.c", - "lib/string/index.c", - "lib/string/rindex.c", - "lib/string/strcspn.c", - "lib/string/strdup.c", - "lib/string/strerror.c", - "lib/string/strncat.c", - "lib/string/strpbrk.c", - "lib/string/strspn.c", - "lib/stub/__cleanup.c", - "lib/stub/atan2.c", - "lib/stub/bsearch.c", - "lib/stub/chown.c", - "lib/stub/cos.c", - "lib/stub/ctime.c", - "lib/stub/exp.c", - "lib/stub/fpurge.c", - "lib/stub/freadahead.c", - "lib/stub/frexp.c", - "lib/stub/getgrgid.c", - "lib/stub/getgrnam.c", - "lib/stub/getlogin.c", - "lib/stub/getpgid.c", - "lib/stub/getpgrp.c", - "lib/stub/getpwnam.c", - "lib/stub/getpwuid.c", - "lib/stub/gmtime.c", - "lib/stub/log.c", - "lib/stub/mktime.c", - "lib/stub/modf.c", - "lib/stub/pclose.c", - "lib/stub/popen.c", - "lib/stub/pow.c", - "lib/stub/rand.c", - "lib/stub/rewind.c", - "lib/stub/setbuf.c", - "lib/stub/setgrent.c", - "lib/stub/setlocale.c", - "lib/stub/setvbuf.c", - "lib/stub/sigaddset.c", - "lib/stub/sigblock.c", - "lib/stub/sigdelset.c", - "lib/stub/sigsetmask.c", - "lib/stub/sin.c", - "lib/stub/sqrt.c", - "lib/stub/strftime.c", - "lib/stub/sys_siglist.c", - "lib/stub/system.c", - "lib/stub/times.c", - "lib/stub/ttyname.c", - "lib/stub/utime.c", - "lib/linux/getegid.c", - "lib/linux/geteuid.c", - "lib/linux/getgid.c", - "lib/linux/getppid.c", - "lib/linux/getrusage.c", - "lib/linux/getuid.c", - "lib/linux/ioctl.c", - "lib/linux/mknod.c", - "lib/linux/readlink.c", - "lib/linux/setgid.c", - "lib/linux/settimer.c", - "lib/linux/setuid.c", - "lib/linux/signal.c", - "lib/linux/sigprogmask.c" - ], - "libc_mini_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-mescc/_exit.c", - "lib/linux/x86-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/mes/write.c" - ], - "libc_tcc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86-mes-mescc/_exit.c", - "lib/linux/x86-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86-mes-mescc/setjmp.c" - ], - "libmescc_SOURCES": [ - "lib/mes/globals.c", - "lib/linux/x86-mes-mescc/syscall-internal.c" - ], - "libtcc1_SOURCES": [ - "lib/libtcc1.c" - ], - "mes_SOURCES": [ - "src/builtins.c", - "src/cc.c", - "src/core.c", - "src/display.c", - "src/eval-apply.c", - "src/gc.c", - "src/globals.c", - "src/hash.c", - "src/lib.c", - "src/math.c", - "src/mes.c", - "src/module.c", - "src/posix.c", - "src/reader.c", - "src/stack.c", - "src/string.c", - "src/struct.c", - "src/symbol.c", - "src/variable.c", - "src/vector.c" - ] - } - } + "x86.linux.gcc": { + "libc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c", + "libc_gnu1_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c", + "libc_gnu2_SOURCES": "lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86-mes-gcc/setjmp.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/pathconf.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/utime.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/mknod.c lib/linux/readlink.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c", + "libc_mini_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/mes/write.c", + "libc_tcc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-gcc/_exit.c lib/linux/x86-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86-mes-gcc/setjmp.c", + "libmescc_SOURCES": "lib/mes/globals.c lib/linux/x86-mes-gcc/syscall-internal.c", + "libtcc1_SOURCES": "lib/libtcc1.c", + "mes_SOURCES": "src/builtins.c src/cc.c src/core.c src/display.c src/eval-apply.c src/gc.c src/globals.c src/hash.c src/lib.c src/math.c src/mes.c src/module.c src/posix.c src/reader.c src/stack.c src/string.c src/struct.c src/symbol.c src/variable.c src/vector.c" }, - "x86_64": { - "linux": { - "gcc": { - "libc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-gcc/_exit.c", - "lib/linux/x86_64-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c" - ], - "libc_gnu_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-gcc/_exit.c", - "lib/linux/x86_64-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86_64-mes-gcc/setjmp.c", - "lib/ctype/isalnum.c", - "lib/ctype/isalpha.c", - "lib/ctype/isascii.c", - "lib/ctype/iscntrl.c", - "lib/ctype/isgraph.c", - "lib/ctype/isprint.c", - "lib/ctype/ispunct.c", - "lib/math/ceil.c", - "lib/math/fabs.c", - "lib/math/floor.c", - "lib/mes/fdgets.c", - "lib/posix/alarm.c", - "lib/posix/execl.c", - "lib/posix/execlp.c", - "lib/posix/mktemp.c", - "lib/posix/pathconf.c", - "lib/posix/sbrk.c", - "lib/posix/sleep.c", - "lib/posix/unsetenv.c", - "lib/stdio/clearerr.c", - "lib/stdio/feof.c", - "lib/stdio/fgets.c", - "lib/stdio/fileno.c", - "lib/stdio/freopen.c", - "lib/stdio/fscanf.c", - "lib/stdio/perror.c", - "lib/stdio/vfscanf.c", - "lib/stdlib/__exit.c", - "lib/stdlib/abort.c", - "lib/stdlib/abs.c", - "lib/stdlib/alloca.c", - "lib/stdlib/atexit.c", - "lib/stdlib/atof.c", - "lib/stdlib/atol.c", - "lib/stdlib/mbstowcs.c", - "lib/string/bcmp.c", - "lib/string/bcopy.c", - "lib/string/bzero.c", - "lib/string/index.c", - "lib/string/rindex.c", - "lib/string/strcspn.c", - "lib/string/strdup.c", - "lib/string/strerror.c", - "lib/string/strncat.c", - "lib/string/strpbrk.c", - "lib/string/strspn.c", - "lib/stub/__cleanup.c", - "lib/stub/atan2.c", - "lib/stub/bsearch.c", - "lib/stub/chown.c", - "lib/stub/cos.c", - "lib/stub/ctime.c", - "lib/stub/exp.c", - "lib/stub/fpurge.c", - "lib/stub/freadahead.c", - "lib/stub/frexp.c", - "lib/stub/getgrgid.c", - "lib/stub/getgrnam.c", - "lib/stub/getlogin.c", - "lib/stub/getpgid.c", - "lib/stub/getpgrp.c", - "lib/stub/getpwnam.c", - "lib/stub/getpwuid.c", - "lib/stub/gmtime.c", - "lib/stub/log.c", - "lib/stub/mktime.c", - "lib/stub/modf.c", - "lib/stub/pclose.c", - "lib/stub/popen.c", - "lib/stub/pow.c", - "lib/stub/rand.c", - "lib/stub/rewind.c", - "lib/stub/setbuf.c", - "lib/stub/setgrent.c", - "lib/stub/setlocale.c", - "lib/stub/setvbuf.c", - "lib/stub/sigaddset.c", - "lib/stub/sigblock.c", - "lib/stub/sigdelset.c", - "lib/stub/sigsetmask.c", - "lib/stub/sin.c", - "lib/stub/sqrt.c", - "lib/stub/strftime.c", - "lib/stub/sys_siglist.c", - "lib/stub/system.c", - "lib/stub/times.c", - "lib/stub/ttyname.c", - "lib/stub/utime.c", - "lib/linux/getegid.c", - "lib/linux/geteuid.c", - "lib/linux/getgid.c", - "lib/linux/getppid.c", - "lib/linux/getrusage.c", - "lib/linux/getuid.c", - "lib/linux/ioctl.c", - "lib/linux/mknod.c", - "lib/linux/readlink.c", - "lib/linux/setgid.c", - "lib/linux/settimer.c", - "lib/linux/setuid.c", - "lib/linux/signal.c", - "lib/linux/sigprogmask.c" - ], - "libc_mini_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-gcc/_exit.c", - "lib/linux/x86_64-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/mes/write.c" - ], - "libc_tcc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-gcc/_exit.c", - "lib/linux/x86_64-mes-gcc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-gcc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86_64-mes-gcc/setjmp.c" - ], - "libmescc_SOURCES": [ - "lib/mes/globals.c", - "lib/linux/x86_64-mes-gcc/syscall-internal.c" - ], - "libtcc1_SOURCES": [ - "lib/libtcc1.c" - ], - "mes_SOURCES": [ - "src/builtins.c", - "src/cc.c", - "src/core.c", - "src/display.c", - "src/eval-apply.c", - "src/gc.c", - "src/globals.c", - "src/hash.c", - "src/lib.c", - "src/math.c", - "src/mes.c", - "src/module.c", - "src/posix.c", - "src/reader.c", - "src/stack.c", - "src/string.c", - "src/struct.c", - "src/symbol.c", - "src/variable.c", - "src/vector.c" - ] - }, - "mescc": { - "libc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-mescc/_exit.c", - "lib/linux/x86_64-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c" - ], - "libc_gnu_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-mescc/_exit.c", - "lib/linux/x86_64-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86_64-mes-mescc/setjmp.c", - "lib/ctype/isalnum.c", - "lib/ctype/isalpha.c", - "lib/ctype/isascii.c", - "lib/ctype/iscntrl.c", - "lib/ctype/isgraph.c", - "lib/ctype/isprint.c", - "lib/ctype/ispunct.c", - "lib/math/ceil.c", - "lib/math/fabs.c", - "lib/math/floor.c", - "lib/mes/fdgets.c", - "lib/posix/alarm.c", - "lib/posix/execl.c", - "lib/posix/execlp.c", - "lib/posix/mktemp.c", - "lib/posix/pathconf.c", - "lib/posix/sbrk.c", - "lib/posix/sleep.c", - "lib/posix/unsetenv.c", - "lib/stdio/clearerr.c", - "lib/stdio/feof.c", - "lib/stdio/fgets.c", - "lib/stdio/fileno.c", - "lib/stdio/freopen.c", - "lib/stdio/fscanf.c", - "lib/stdio/perror.c", - "lib/stdio/vfscanf.c", - "lib/stdlib/__exit.c", - "lib/stdlib/abort.c", - "lib/stdlib/abs.c", - "lib/stdlib/alloca.c", - "lib/stdlib/atexit.c", - "lib/stdlib/atof.c", - "lib/stdlib/atol.c", - "lib/stdlib/mbstowcs.c", - "lib/string/bcmp.c", - "lib/string/bcopy.c", - "lib/string/bzero.c", - "lib/string/index.c", - "lib/string/rindex.c", - "lib/string/strcspn.c", - "lib/string/strdup.c", - "lib/string/strerror.c", - "lib/string/strncat.c", - "lib/string/strpbrk.c", - "lib/string/strspn.c", - "lib/stub/__cleanup.c", - "lib/stub/atan2.c", - "lib/stub/bsearch.c", - "lib/stub/chown.c", - "lib/stub/cos.c", - "lib/stub/ctime.c", - "lib/stub/exp.c", - "lib/stub/fpurge.c", - "lib/stub/freadahead.c", - "lib/stub/frexp.c", - "lib/stub/getgrgid.c", - "lib/stub/getgrnam.c", - "lib/stub/getlogin.c", - "lib/stub/getpgid.c", - "lib/stub/getpgrp.c", - "lib/stub/getpwnam.c", - "lib/stub/getpwuid.c", - "lib/stub/gmtime.c", - "lib/stub/log.c", - "lib/stub/mktime.c", - "lib/stub/modf.c", - "lib/stub/pclose.c", - "lib/stub/popen.c", - "lib/stub/pow.c", - "lib/stub/rand.c", - "lib/stub/rewind.c", - "lib/stub/setbuf.c", - "lib/stub/setgrent.c", - "lib/stub/setlocale.c", - "lib/stub/setvbuf.c", - "lib/stub/sigaddset.c", - "lib/stub/sigblock.c", - "lib/stub/sigdelset.c", - "lib/stub/sigsetmask.c", - "lib/stub/sin.c", - "lib/stub/sqrt.c", - "lib/stub/strftime.c", - "lib/stub/sys_siglist.c", - "lib/stub/system.c", - "lib/stub/times.c", - "lib/stub/ttyname.c", - "lib/stub/utime.c", - "lib/linux/getegid.c", - "lib/linux/geteuid.c", - "lib/linux/getgid.c", - "lib/linux/getppid.c", - "lib/linux/getrusage.c", - "lib/linux/getuid.c", - "lib/linux/ioctl.c", - "lib/linux/mknod.c", - "lib/linux/readlink.c", - "lib/linux/setgid.c", - "lib/linux/settimer.c", - "lib/linux/setuid.c", - "lib/linux/signal.c", - "lib/linux/sigprogmask.c" - ], - "libc_mini_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-mescc/_exit.c", - "lib/linux/x86_64-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/mes/write.c" - ], - "libc_tcc_SOURCES": [ - "lib/mes/__init_io.c", - "lib/mes/eputs.c", - "lib/mes/oputs.c", - "lib/mes/globals.c", - "lib/stdlib/exit.c", - "lib/linux/x86_64-mes-mescc/_exit.c", - "lib/linux/x86_64-mes-mescc/_write.c", - "lib/stdlib/puts.c", - "lib/string/strlen.c", - "lib/ctype/isnumber.c", - "lib/mes/abtol.c", - "lib/mes/cast.c", - "lib/mes/eputc.c", - "lib/mes/fdgetc.c", - "lib/mes/fdputc.c", - "lib/mes/fdputs.c", - "lib/mes/fdungetc.c", - "lib/mes/itoa.c", - "lib/mes/ltoa.c", - "lib/mes/ltoab.c", - "lib/mes/mes_open.c", - "lib/mes/ntoab.c", - "lib/mes/oputc.c", - "lib/mes/ultoa.c", - "lib/mes/utoa.c", - "lib/stub/__raise.c", - "lib/ctype/isdigit.c", - "lib/ctype/isspace.c", - "lib/ctype/isxdigit.c", - "lib/mes/assert_msg.c", - "lib/posix/write.c", - "lib/stdlib/atoi.c", - "lib/linux/lseek.c", - "lib/dirent/__getdirentries.c", - "lib/dirent/closedir.c", - "lib/dirent/opendir.c", - "lib/mes/__assert_fail.c", - "lib/mes/__buffered_read.c", - "lib/mes/__mes_debug.c", - "lib/posix/execv.c", - "lib/posix/getcwd.c", - "lib/posix/getenv.c", - "lib/posix/isatty.c", - "lib/posix/open.c", - "lib/posix/buffered-read.c", - "lib/posix/setenv.c", - "lib/posix/wait.c", - "lib/stdio/fgetc.c", - "lib/stdio/fputc.c", - "lib/stdio/fputs.c", - "lib/stdio/getc.c", - "lib/stdio/getchar.c", - "lib/stdio/putc.c", - "lib/stdio/putchar.c", - "lib/stdio/ungetc.c", - "lib/stdlib/calloc.c", - "lib/stdlib/free.c", - "lib/stdlib/realloc.c", - "lib/string/memchr.c", - "lib/string/memcmp.c", - "lib/string/memcpy.c", - "lib/string/memmove.c", - "lib/string/memset.c", - "lib/string/strcmp.c", - "lib/string/strcpy.c", - "lib/string/strncmp.c", - "lib/posix/raise.c", - "lib/linux/access.c", - "lib/linux/brk.c", - "lib/linux/chdir.c", - "lib/linux/chmod.c", - "lib/linux/clock_gettime.c", - "lib/linux/close.c", - "lib/linux/dup.c", - "lib/linux/dup2.c", - "lib/linux/execve.c", - "lib/linux/fcntl.c", - "lib/linux/fork.c", - "lib/linux/fstat.c", - "lib/linux/fsync.c", - "lib/linux/_getcwd.c", - "lib/linux/getdents.c", - "lib/linux/gettimeofday.c", - "lib/linux/ioctl3.c", - "lib/linux/link.c", - "lib/linux/lstat.c", - "lib/linux/_open3.c", - "lib/linux/malloc.c", - "lib/linux/mkdir.c", - "lib/linux/nanosleep.c", - "lib/linux/pipe.c", - "lib/linux/_read.c", - "lib/linux/readdir.c", - "lib/linux/rename.c", - "lib/linux/rmdir.c", - "lib/linux/stat.c", - "lib/linux/symlink.c", - "lib/linux/time.c", - "lib/linux/umask.c", - "lib/linux/uname.c", - "lib/linux/unlink.c", - "lib/linux/utimensat.c", - "lib/linux/wait4.c", - "lib/linux/waitpid.c", - "lib/linux/x86_64-mes-mescc/syscall.c", - "lib/linux/getpid.c", - "lib/linux/kill.c", - "lib/ctype/islower.c", - "lib/ctype/isupper.c", - "lib/ctype/tolower.c", - "lib/ctype/toupper.c", - "lib/mes/abtod.c", - "lib/mes/dtoab.c", - "lib/mes/search-path.c", - "lib/posix/execvp.c", - "lib/stdio/fclose.c", - "lib/stdio/fdopen.c", - "lib/stdio/ferror.c", - "lib/stdio/fflush.c", - "lib/stdio/fopen.c", - "lib/stdio/fprintf.c", - "lib/stdio/fread.c", - "lib/stdio/fseek.c", - "lib/stdio/ftell.c", - "lib/stdio/fwrite.c", - "lib/stdio/printf.c", - "lib/stdio/remove.c", - "lib/stdio/snprintf.c", - "lib/stdio/sprintf.c", - "lib/stdio/sscanf.c", - "lib/stdio/vfprintf.c", - "lib/stdio/vprintf.c", - "lib/stdio/vsnprintf.c", - "lib/stdio/vsprintf.c", - "lib/stdio/vsscanf.c", - "lib/stdlib/qsort.c", - "lib/stdlib/strtod.c", - "lib/stdlib/strtof.c", - "lib/stdlib/strtol.c", - "lib/stdlib/strtold.c", - "lib/stdlib/strtoll.c", - "lib/stdlib/strtoul.c", - "lib/stdlib/strtoull.c", - "lib/string/memmem.c", - "lib/string/strcat.c", - "lib/string/strchr.c", - "lib/string/strlwr.c", - "lib/string/strncpy.c", - "lib/string/strrchr.c", - "lib/string/strstr.c", - "lib/string/strupr.c", - "lib/stub/sigaction.c", - "lib/stub/ldexp.c", - "lib/stub/mprotect.c", - "lib/stub/localtime.c", - "lib/stub/putenv.c", - "lib/stub/realpath.c", - "lib/stub/sigemptyset.c", - "lib/x86_64-mes-mescc/setjmp.c" - ], - "libmescc_SOURCES": [ - "lib/mes/globals.c", - "lib/linux/x86_64-mes-mescc/syscall-internal.c" - ], - "libtcc1_SOURCES": [ - "lib/libtcc1.c" - ], - "mes_SOURCES": [ - "src/builtins.c", - "src/cc.c", - "src/core.c", - "src/display.c", - "src/eval-apply.c", - "src/gc.c", - "src/globals.c", - "src/hash.c", - "src/lib.c", - "src/math.c", - "src/mes.c", - "src/module.c", - "src/posix.c", - "src/reader.c", - "src/stack.c", - "src/string.c", - "src/struct.c", - "src/symbol.c", - "src/variable.c", - "src/vector.c" - ] - } - } + "x86.linux.mescc": { + "libc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-mescc/_exit.c lib/linux/x86-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c", + "libc_gnu1_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-mescc/_exit.c lib/linux/x86-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c", + "libc_gnu2_SOURCES": "lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86-mes-mescc/setjmp.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/pathconf.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/utime.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/mknod.c lib/linux/readlink.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c", + "libc_mini_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-mescc/_exit.c lib/linux/x86-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/mes/write.c", + "libc_tcc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86-mes-mescc/_exit.c lib/linux/x86-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86-mes-mescc/setjmp.c", + "libmescc_SOURCES": "lib/mes/globals.c lib/linux/x86-mes-mescc/syscall-internal.c", + "libtcc1_SOURCES": "lib/libtcc1.c", + "mes_SOURCES": "src/builtins.c src/cc.c src/core.c src/display.c src/eval-apply.c src/gc.c src/globals.c src/hash.c src/lib.c src/math.c src/mes.c src/module.c src/posix.c src/reader.c src/stack.c src/string.c src/struct.c src/symbol.c src/variable.c src/vector.c" + }, + "x86_64.linux.gcc": { + "libc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-gcc/_exit.c lib/linux/x86_64-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c", + "libc_gnu1_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-gcc/_exit.c lib/linux/x86_64-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c", + "libc_gnu2_SOURCES": "lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86_64-mes-gcc/setjmp.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/pathconf.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/utime.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/mknod.c lib/linux/readlink.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c", + "libc_mini_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-gcc/_exit.c lib/linux/x86_64-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/mes/write.c", + "libc_tcc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-gcc/_exit.c lib/linux/x86_64-mes-gcc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-gcc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86_64-mes-gcc/setjmp.c", + "libmescc_SOURCES": "lib/mes/globals.c lib/linux/x86_64-mes-gcc/syscall-internal.c", + "libtcc1_SOURCES": "lib/libtcc1.c", + "mes_SOURCES": "src/builtins.c src/cc.c src/core.c src/display.c src/eval-apply.c src/gc.c src/globals.c src/hash.c src/lib.c src/math.c src/mes.c src/module.c src/posix.c src/reader.c src/stack.c src/string.c src/struct.c src/symbol.c src/variable.c src/vector.c" + }, + "x86_64.linux.mescc": { + "libc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-mescc/_exit.c lib/linux/x86_64-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c", + "libc_gnu1_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-mescc/_exit.c lib/linux/x86_64-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c", + "libc_gnu2_SOURCES": "lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86_64-mes-mescc/setjmp.c lib/ctype/isalnum.c lib/ctype/isalpha.c lib/ctype/isascii.c lib/ctype/iscntrl.c lib/ctype/isgraph.c lib/ctype/isprint.c lib/ctype/ispunct.c lib/math/ceil.c lib/math/fabs.c lib/math/floor.c lib/mes/fdgets.c lib/posix/alarm.c lib/posix/execl.c lib/posix/execlp.c lib/posix/mktemp.c lib/posix/pathconf.c lib/posix/sbrk.c lib/posix/sleep.c lib/posix/unsetenv.c lib/stdio/clearerr.c lib/stdio/feof.c lib/stdio/fgets.c lib/stdio/fileno.c lib/stdio/freopen.c lib/stdio/fscanf.c lib/stdio/perror.c lib/stdio/vfscanf.c lib/stdlib/__exit.c lib/stdlib/abort.c lib/stdlib/abs.c lib/stdlib/alloca.c lib/stdlib/atexit.c lib/stdlib/atof.c lib/stdlib/atol.c lib/stdlib/mbstowcs.c lib/string/bcmp.c lib/string/bcopy.c lib/string/bzero.c lib/string/index.c lib/string/rindex.c lib/string/strcspn.c lib/string/strdup.c lib/string/strerror.c lib/string/strncat.c lib/string/strpbrk.c lib/string/strspn.c lib/stub/__cleanup.c lib/stub/atan2.c lib/stub/bsearch.c lib/stub/chown.c lib/stub/cos.c lib/stub/ctime.c lib/stub/exp.c lib/stub/fpurge.c lib/stub/freadahead.c lib/stub/frexp.c lib/stub/getgrgid.c lib/stub/getgrnam.c lib/stub/getlogin.c lib/stub/getpgid.c lib/stub/getpgrp.c lib/stub/getpwnam.c lib/stub/getpwuid.c lib/stub/gmtime.c lib/stub/log.c lib/stub/mktime.c lib/stub/modf.c lib/stub/pclose.c lib/stub/popen.c lib/stub/pow.c lib/stub/rand.c lib/stub/rewind.c lib/stub/setbuf.c lib/stub/setgrent.c lib/stub/setlocale.c lib/stub/setvbuf.c lib/stub/sigaddset.c lib/stub/sigblock.c lib/stub/sigdelset.c lib/stub/sigsetmask.c lib/stub/sin.c lib/stub/sqrt.c lib/stub/strftime.c lib/stub/sys_siglist.c lib/stub/system.c lib/stub/times.c lib/stub/ttyname.c lib/stub/utime.c lib/linux/getegid.c lib/linux/geteuid.c lib/linux/getgid.c lib/linux/getppid.c lib/linux/getrusage.c lib/linux/getuid.c lib/linux/ioctl.c lib/linux/mknod.c lib/linux/readlink.c lib/linux/setgid.c lib/linux/settimer.c lib/linux/setuid.c lib/linux/signal.c lib/linux/sigprogmask.c", + "libc_mini_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-mescc/_exit.c lib/linux/x86_64-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/mes/write.c", + "libc_tcc_SOURCES": "lib/mes/__init_io.c lib/mes/eputs.c lib/mes/oputs.c lib/mes/globals.c lib/stdlib/exit.c lib/linux/x86_64-mes-mescc/_exit.c lib/linux/x86_64-mes-mescc/_write.c lib/stdlib/puts.c lib/string/strlen.c lib/ctype/isnumber.c lib/mes/abtol.c lib/mes/cast.c lib/mes/eputc.c lib/mes/fdgetc.c lib/mes/fdputc.c lib/mes/fdputs.c lib/mes/fdungetc.c lib/mes/itoa.c lib/mes/ltoa.c lib/mes/ltoab.c lib/mes/mes_open.c lib/mes/ntoab.c lib/mes/oputc.c lib/mes/ultoa.c lib/mes/utoa.c lib/stub/__raise.c lib/ctype/isdigit.c lib/ctype/isspace.c lib/ctype/isxdigit.c lib/mes/assert_msg.c lib/posix/write.c lib/stdlib/atoi.c lib/linux/lseek.c lib/dirent/__getdirentries.c lib/dirent/closedir.c lib/dirent/opendir.c lib/mes/__assert_fail.c lib/mes/__buffered_read.c lib/mes/__mes_debug.c lib/posix/execv.c lib/posix/getcwd.c lib/posix/getenv.c lib/posix/isatty.c lib/posix/open.c lib/posix/buffered-read.c lib/posix/setenv.c lib/posix/wait.c lib/stdio/fgetc.c lib/stdio/fputc.c lib/stdio/fputs.c lib/stdio/getc.c lib/stdio/getchar.c lib/stdio/putc.c lib/stdio/putchar.c lib/stdio/ungetc.c lib/stdlib/calloc.c lib/stdlib/free.c lib/stdlib/realloc.c lib/string/memchr.c lib/string/memcmp.c lib/string/memcpy.c lib/string/memmove.c lib/string/memset.c lib/string/strcmp.c lib/string/strcpy.c lib/string/strncmp.c lib/posix/raise.c lib/linux/access.c lib/linux/brk.c lib/linux/chdir.c lib/linux/chmod.c lib/linux/clock_gettime.c lib/linux/close.c lib/linux/dup.c lib/linux/dup2.c lib/linux/execve.c lib/linux/fcntl.c lib/linux/fork.c lib/linux/fstat.c lib/linux/fsync.c lib/linux/_getcwd.c lib/linux/getdents.c lib/linux/gettimeofday.c lib/linux/ioctl3.c lib/linux/link.c lib/linux/lstat.c lib/linux/_open3.c lib/linux/malloc.c lib/linux/mkdir.c lib/linux/nanosleep.c lib/linux/pipe.c lib/linux/_read.c lib/linux/readdir.c lib/linux/rename.c lib/linux/rmdir.c lib/linux/stat.c lib/linux/symlink.c lib/linux/time.c lib/linux/umask.c lib/linux/uname.c lib/linux/unlink.c lib/linux/utimensat.c lib/linux/wait4.c lib/linux/waitpid.c lib/linux/x86_64-mes-mescc/syscall.c lib/linux/getpid.c lib/linux/kill.c lib/ctype/islower.c lib/ctype/isupper.c lib/ctype/tolower.c lib/ctype/toupper.c lib/mes/abtod.c lib/mes/dtoab.c lib/mes/search-path.c lib/posix/execvp.c lib/stdio/fclose.c lib/stdio/fdopen.c lib/stdio/ferror.c lib/stdio/fflush.c lib/stdio/fopen.c lib/stdio/fprintf.c lib/stdio/fread.c lib/stdio/fseek.c lib/stdio/ftell.c lib/stdio/fwrite.c lib/stdio/printf.c lib/stdio/remove.c lib/stdio/snprintf.c lib/stdio/sprintf.c lib/stdio/sscanf.c lib/stdio/vfprintf.c lib/stdio/vprintf.c lib/stdio/vsnprintf.c lib/stdio/vsprintf.c lib/stdio/vsscanf.c lib/stdlib/qsort.c lib/stdlib/strtod.c lib/stdlib/strtof.c lib/stdlib/strtol.c lib/stdlib/strtold.c lib/stdlib/strtoll.c lib/stdlib/strtoul.c lib/stdlib/strtoull.c lib/string/memmem.c lib/string/strcat.c lib/string/strchr.c lib/string/strlwr.c lib/string/strncpy.c lib/string/strrchr.c lib/string/strstr.c lib/string/strupr.c lib/stub/sigaction.c lib/stub/ldexp.c lib/stub/mprotect.c lib/stub/localtime.c lib/stub/putenv.c lib/stub/realpath.c lib/stub/sigemptyset.c lib/x86_64-mes-mescc/setjmp.c", + "libmescc_SOURCES": "lib/mes/globals.c lib/linux/x86_64-mes-mescc/syscall-internal.c", + "libtcc1_SOURCES": "lib/libtcc1.c", + "mes_SOURCES": "src/builtins.c src/cc.c src/core.c src/display.c src/eval-apply.c src/gc.c src/globals.c src/hash.c src/lib.c src/math.c src/mes.c src/module.c src/posix.c src/reader.c src/stack.c src/string.c src/struct.c src/symbol.c src/variable.c src/vector.c" } } diff --git a/pkgs/os-specific/linux/minimal-bootstrap/patchelf/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/patchelf/static.nix index 7bf32df8ecb91..1bec275f7b2a9 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/patchelf/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/patchelf/static.nix @@ -43,6 +43,8 @@ bash.runCommand "${pname}-${version}" gzip ]; + disallowedReferences = [ gcc ]; + passthru.tests.get-version = result: bash.runCommand "${pname}-get-version-${version}" { } '' @@ -70,11 +72,12 @@ bash.runCommand "${pname}-${version}" --host=${hostPlatform.config} \ --disable-dependency-tracking \ CC=musl-gcc \ - CXXFLAGS=-static + CXXFLAGS="-static -g0 -O2 -DNDEBUG -ffile-prefix-map=${gcc}=. -fmacro-prefix-map=${gcc}=." # Build make -j $NIX_BUILD_CORES # Install make -j $NIX_BUILD_CORES install-strip + rm -rf $out/share '' diff --git a/pkgs/os-specific/linux/minimal-bootstrap/utils.nix b/pkgs/os-specific/linux/minimal-bootstrap/utils.nix index 96e983f537f81..ef72d3216ed0b 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/utils.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/utils.nix @@ -28,7 +28,8 @@ rec { baseDrv = derivation ( { inherit (buildPlatform) system; - inherit (meta) name; + # redefining from meta to avoid forcing the thunk until it's used + name = attrs.name or "${attrs.pname}-${attrs.version}"; } // maybeContentAddressed // (removeAttrs attrs [ diff --git a/pkgs/os-specific/linux/minimal-bootstrap/xz/static.nix b/pkgs/os-specific/linux/minimal-bootstrap/xz/static.nix index d7eec96dff2a9..c663c4cf04f85 100644 --- a/pkgs/os-specific/linux/minimal-bootstrap/xz/static.nix +++ b/pkgs/os-specific/linux/minimal-bootstrap/xz/static.nix @@ -39,10 +39,12 @@ bash.runCommand "${pname}-${version}" gzip ]; + disallowedReferences = [ musl ]; + passthru.tests.get-version = result: bash.runCommand "${pname}-get-version-${version}" { } '' - ${lib.getExe result} --version + ${result}/bin/xz --version mkdir $out ''; @@ -65,8 +67,8 @@ bash.runCommand "${pname}-${version}" # Configure export CC=musl-gcc - export CFLAGS=-static - export CXXFLAGS=-static + export CFLAGS="-g0 -O2 -DNDEBUG" + export CXXFLAGS="$CFLAGS" export LDFLAGS=-static bash ./configure \ --prefix=$out \ @@ -78,11 +80,16 @@ bash.runCommand "${pname}-${version}" --disable-nls \ --disable-shared \ --disable-scripts \ + --disable-doc \ + --disable-xzdec \ + --disable-lzmadec \ + --disable-lzmainfo \ --disable-assembler # Build - make -j $NIX_BUILD_CORES + make -j $NIX_BUILD_CORES LDFLAGS=-all-static # Install make -j $NIX_BUILD_CORES install-strip + rm -rf $out/include $out/lib $out/share '' diff --git a/pkgs/os-specific/linux/procps-ng/default.nix b/pkgs/os-specific/linux/procps-ng/default.nix index ecd877096f93c..ff53296d9aba5 100644 --- a/pkgs/os-specific/linux/procps-ng/default.nix +++ b/pkgs/os-specific/linux/procps-ng/default.nix @@ -31,6 +31,15 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-Z76m+8OkKlNaAjDJ6JHl3ftNnTlCLUZWWimQ0azhUhY="; }; + outputs = [ + "out" + "man" + "dev" + ] + ++ lib.optionals (!watchOnly) [ + "doc" + ]; + buildInputs = [ ncurses ] ++ lib.optionals withSystemd [ systemdLibs ]; nativeBuildInputs = [ pkg-config @@ -40,6 +49,8 @@ stdenv.mkDerivation (finalAttrs: { makeFlags = [ "usrbin_execdir=$(out)/bin" ] ++ lib.optionals watchOnly [ "src/watch" ]; enableParallelBuilding = true; + strictDeps = true; + __structuredAttrs = true; # Too red; 8bit support for fixing https://github.com/NixOS/nixpkgs/issues/275220 configureFlags = [ diff --git a/pkgs/os-specific/linux/systemd/0002-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/pkgs/os-specific/linux/systemd/0002-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch index a9ec66f9dd3d7..5d993d1493d7e 100644 --- a/pkgs/os-specific/linux/systemd/0002-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch +++ b/pkgs/os-specific/linux/systemd/0002-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch @@ -35,10 +35,10 @@ index 3a13e04a27..4fd58068a1 100644 Etc/UTC. The resulting link should lead to the corresponding binary diff --git a/src/basic/time-util.c b/src/basic/time-util.c -index 5dd00af952..b97a41f6ac 100644 +index eb74de32c2..6906462b36 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c -@@ -1443,7 +1443,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) { +@@ -1456,7 +1456,7 @@ static int get_timezones_from_zone1970_tab(char ***ret) { assert(ret); @@ -47,7 +47,7 @@ index 5dd00af952..b97a41f6ac 100644 if (!f) return -errno; -@@ -1488,7 +1488,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) { +@@ -1501,7 +1501,7 @@ static int get_timezones_from_tzdata_zi(char ***ret) { assert(ret); @@ -56,7 +56,7 @@ index 5dd00af952..b97a41f6ac 100644 if (!f) return -errno; -@@ -1603,7 +1603,7 @@ int verify_timezone(const char *name, int log_level) { +@@ -1616,7 +1616,7 @@ int verify_timezone(const char *name, int log_level) { if (p - name >= PATH_MAX) return -ENAMETOOLONG; @@ -65,7 +65,7 @@ index 5dd00af952..b97a41f6ac 100644 fd = open(t, O_RDONLY|O_CLOEXEC); if (fd < 0) -@@ -1675,7 +1675,7 @@ int get_timezone(char **ret) { +@@ -1688,7 +1688,7 @@ int get_timezone(char **ret) { if (r < 0) return r; /* Return EINVAL if not a symlink */ @@ -75,10 +75,10 @@ index 5dd00af952..b97a41f6ac 100644 return -EINVAL; if (!timezone_is_valid(e, LOG_DEBUG)) diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c -index ae1899593c..20d3071114 100644 +index e922abdd63..986a9e25d1 100644 --- a/src/firstboot/firstboot.c +++ b/src/firstboot/firstboot.c -@@ -584,7 +584,7 @@ static int prompt_timezone(int rfd, sd_varlink **mute_console_link) { +@@ -601,7 +601,7 @@ static int prompt_timezone(int rfd, sd_varlink **mute_console_link) { static int process_timezone(int rfd, sd_varlink **mute_console_link) { _cleanup_close_ int pfd = -EBADF; @@ -87,7 +87,7 @@ index ae1899593c..20d3071114 100644 const char *e; int r; -@@ -630,12 +630,9 @@ static int process_timezone(int rfd, sd_varlink **mute_console_link) { +@@ -647,12 +647,9 @@ static int process_timezone(int rfd, sd_varlink **mute_console_link) { if (isempty(arg_timezone)) return 0; @@ -103,10 +103,10 @@ index ae1899593c..20d3071114 100644 return log_error_errno(r, "Failed to create /etc/localtime symlink: %m"); diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c -index 84e94e845a..8e1f1a6ea2 100644 +index 7f7ceac318..5f3faa7bf4 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c -@@ -1856,8 +1856,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid +@@ -1757,8 +1757,8 @@ int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t uid, gid static const char *timezone_from_path(const char *path) { return PATH_STARTSWITH_SET( path, diff --git a/pkgs/os-specific/linux/systemd/0006-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch b/pkgs/os-specific/linux/systemd/0006-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch index bf6ebeebe59ad..0724cd661fd5a 100644 --- a/pkgs/os-specific/linux/systemd/0006-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch +++ b/pkgs/os-specific/linux/systemd/0006-timesyncd-disable-NSCD-when-DNSSEC-validation-is-dis.patch @@ -13,13 +13,13 @@ directly. 1 file changed, 11 insertions(+) diff --git a/src/timesync/timesyncd.c b/src/timesync/timesyncd.c -index 96d0dd5c2b..ee7cc4bd17 100644 +index 5e0d13023a..1bfe0b1e6f 100644 --- a/src/timesync/timesyncd.c +++ b/src/timesync/timesyncd.c -@@ -25,6 +25,11 @@ +@@ -22,6 +22,11 @@ + #include "timesyncd-bus.h" #include "timesyncd-conf.h" #include "timesyncd-manager.h" - #include "user-util.h" +#include "env-util.h" + +struct traced_file; @@ -28,7 +28,7 @@ index 96d0dd5c2b..ee7cc4bd17 100644 static int advance_tstamp(int fd, usec_t epoch) { assert(fd >= 0); -@@ -204,6 +209,12 @@ static int run(int argc, char *argv[]) { +@@ -169,6 +174,12 @@ static int run(int argc, char *argv[]) { if (r < 0) return log_error_errno(r, "Failed to parse fallback server strings: %m"); diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 09e87bf7be83a..eab1a27055ecd 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -34,8 +34,8 @@ acl, lz4, openssl, + libucontext, libgcrypt, - libgpg-error, libidn2, curl, zlib, @@ -106,6 +106,7 @@ withHostnamed ? true, withHwdb ? true, withImportd ? true, + withImds ? true, withKmod ? true, withLibBPF ? lib.versionAtLeast buildPackages.llvmPackages.clang.version "10.0" @@ -142,6 +143,7 @@ withRemote ? true, withResolved ? true, withShellCompletions ? true, + withSysinstall ? true, withSysusers ? true, withSysupdate ? true, withTimedated ? true, @@ -190,7 +192,7 @@ assert withRepart -> withCryptsetup; assert withBootloader -> withEfi; let - wantCurl = withRemote || withImportd; + wantCurl = withRemote || withImportd || withImds; # Use the command below to update `releaseTimestamp` on every (major) version # change. More details in the commentary at mesonFlags. @@ -201,13 +203,13 @@ let in stdenv.mkDerivation (finalAttrs: { inherit pname; - version = "260.2"; + version = "261"; src = fetchFromGitHub { owner = "systemd"; repo = "systemd"; - rev = "v${finalAttrs.version}"; - hash = "sha256-NXmmSV7/9WIW6C8wjdOwaerCy4v7Zcrd8+XDzcS8rEk="; + tag = "v${finalAttrs.version}"; + hash = "sha256-6IB1ZEQqQ0impwBhCaLZAEgMVkVFU61JDVlGotxNzGQ="; }; # PATCH POLICY @@ -308,11 +310,7 @@ stdenv.mkDerivation (finalAttrs: { jinja2 ] ++ lib.optional withEfi ps.pyelftools - # pefile is only required to trigger a check in meson to actually build - # ukify. This module should never appear in the runtime closure of ukify. - # Instead the pefile from buildInputs should be used. - # Remove this when it's fixed upstream: https://github.com/systemd/systemd/pull/41959 - ++ lib.optional withUkify ps.pefile + ++ lib.optional (withUkify && finalAttrs.finalPackage.doCheck) ps.pefile )) ] ++ lib.optionals withLibBPF [ @@ -321,17 +319,25 @@ stdenv.mkDerivation (finalAttrs: { buildPackages.llvmPackages.libllvm ]; - autoPatchelfFlags = [ "--keep-libc" ]; + autoPatchelfFlags = [ + "--keep-libc" + ] + ++ lib.optionals stdenv.hostPlatform.isMusl [ + # TODO: can be unconditionalized on staging. + # Nixpkgs does not rely on gettext for libintl for musl. + "--ignore-missing=libintl.so.8" + ]; buildInputs = [ libxcrypt libuuid linuxHeaders ] - + ++ lib.optionals stdenv.hostPlatform.isMusl [ + libucontext + ] ++ lib.optionals withGcrypt [ libgcrypt - libgpg-error ] ++ lib.optionals withOpenSSL [ openssl ] ++ lib.optional withTests glib @@ -347,7 +353,7 @@ stdenv.mkDerivation (finalAttrs: { zstd ] ++ lib.optional withCoredump elfutils - ++ lib.optional withCryptsetup (lib.getDev cryptsetup.dev) + ++ lib.optional withCryptsetup cryptsetup ++ lib.optional withKexectools kexec-tools ++ lib.optional withKmod kmod ++ lib.optional withLibidn2 libidn2 @@ -498,6 +504,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonEnable "apparmor" withApparmor) (lib.mesonEnable "gcrypt" withGcrypt) (lib.mesonEnable "importd" withImportd) + (lib.mesonEnable "imds" withImds) (lib.mesonEnable "homed" withHomed) (lib.mesonEnable "polkit" withPolkit) (lib.mesonEnable "elfutils" withCoredump) @@ -539,6 +546,7 @@ stdenv.mkDerivation (finalAttrs: { (lib.mesonBool "coredump" withCoredump) (lib.mesonBool "firstboot" withFirstboot) (lib.mesonBool "resolve" withResolved) + (lib.mesonBool "sysinstall" withSysinstall) (lib.mesonBool "sysusers" withSysusers) (lib.mesonBool "efi" withEfi) (lib.mesonBool "utmp" withUtmp) @@ -781,7 +789,7 @@ stdenv.mkDerivation (finalAttrs: { systemd-repart-basic systemd-repart-create-root systemd-repart-encrypt-tpm2 - systemd-repart-factory-reset + # systemd-repart-factory-reset # broken upstream ; } // { diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index ee46cfa8c7c59..5e596553f08b8 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2026.6.4"; + version = "2026.7.1"; components = { "3_day_blinds" = ps: with ps; [ @@ -42,10 +42,6 @@ ps: with ps; [ accuweather ]; - "acer_projector" = - ps: with ps; [ - serialx - ]; "acmeda" = ps: with ps; [ aiopulse @@ -245,10 +241,6 @@ "amp_motorization" = ps: with ps; [ ]; - "ampio" = - ps: with ps; [ - asmog - ]; "analytics" = ps: with ps; [ aiohasupervisor @@ -369,6 +361,9 @@ ps: with ps; [ sharp-aquos-rc ]; + "aqvify" = + ps: with ps; [ + ]; # missing inputs: pyaqvify "aranet" = ps: with ps; [ aioesphomeapi @@ -422,7 +417,7 @@ ps: with ps; [ aiohasupervisor paho-mqtt - ]; + ]; # missing inputs: arwn-client "aseko_pool_live" = ps: with ps; [ aioaseko @@ -454,10 +449,6 @@ ps: with ps; [ pyatag ]; - "aten_pe" = - ps: with ps; [ - atenpdu - ]; "atlanticcityelectric" = ps: with ps; [ ]; @@ -551,9 +542,8 @@ serialx zeroconf ]; - "avion" = + "avosdim" = ps: with ps; [ - avion ]; "awair" = ps: with ps; [ @@ -643,10 +633,6 @@ ps: with ps; [ pybbox ]; - "beewi_smartclim" = - ps: with ps; [ - beewi-smartclim - ]; "bge" = ps: with ps; [ ]; @@ -905,6 +891,9 @@ "button" = ps: with ps; [ ]; + "bwt" = + ps: with ps; [ + ]; "caldav" = ps: with ps; [ caldav @@ -1005,6 +994,32 @@ ps: with ps; [ pychannels ]; + "chef_iq" = + ps: with ps; [ + aioesphomeapi + aiohasupervisor + aioruuvigateway + aioshelly + aiousbwatcher + bleak + bleak-esphome + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools + dbus-fast + esphome-dashboard-api + ha-ffmpeg + habluetooth + hassil + home-assistant-intents + ifaddr + mutagen + pymicro-vad + pyspeex-noise + serialx + zeroconf + ]; # missing inputs: chefiq-ble "chess_com" = ps: with ps; [ chess-com-api @@ -1029,10 +1044,6 @@ ps: with ps; [ python-citybikes ]; - "clementine" = - ps: with ps; [ - python-clementine-remote - ]; "clickatell" = ps: with ps; [ ]; @@ -1114,7 +1125,7 @@ ]; "command_line" = ps: with ps; [ - jsonpath + jsonpath-python ]; "compensation" = ps: with ps; [ @@ -1567,6 +1578,10 @@ ps: with ps; [ aioecowitt ]; + "edifier_infrared" = + ps: with ps; [ + infrared-protocols + ]; "edimax" = ps: with ps; [ pyedimax @@ -1615,10 +1630,6 @@ ps: with ps; [ elgato ]; - "eliqonline" = - ps: with ps; [ - eliqonline - ]; "elkm1" = ps: with ps; [ elkm1-lib @@ -1675,6 +1686,9 @@ "energie_vanons" = ps: with ps; [ ]; + "energieleser" = + ps: with ps; [ + ]; # missing inputs: energieleser "energy" = ps: with ps; [ fnv-hash-fast @@ -1707,6 +1721,9 @@ ps: with ps; [ enturclient ]; + "envertech_evt800" = + ps: with ps; [ + ]; # missing inputs: pyenvertechevt800 "environment_canada" = ps: with ps; [ env-canada @@ -2276,7 +2293,6 @@ ]; "gitter" = ps: with ps; [ - gitterpy ]; "glances" = ps: with ps; [ @@ -2441,14 +2457,15 @@ ps: with ps; [ greenplanet-energy-api ]; + "greencell" = + ps: with ps; [ + aiohasupervisor + paho-mqtt + ]; # missing inputs: greencell_client "greeneye_monitor" = ps: with ps; [ greeneye-monitor ]; - "greenwave" = - ps: with ps; [ - greenwavereality - ]; "group" = ps: with ps; [ ]; @@ -2531,6 +2548,9 @@ "heiwa" = ps: with ps; [ ]; + "helty" = + ps: with ps; [ + ]; # missing inputs: pyhelty "heos" = ps: with ps; [ pyheos @@ -2977,6 +2997,9 @@ ps: with ps; [ aioimmich ]; + "imou" = + ps: with ps; [ + ]; # missing inputs: pyimouapi "improv_ble" = ps: with ps; [ aioesphomeapi @@ -3120,6 +3143,9 @@ ps: with ps; [ ha-iotawattpy ]; + "iotorero" = + ps: with ps; [ + ]; "iotty" = ps: with ps; [ iottycloud @@ -3212,8 +3238,7 @@ ]; "itach" = ps: with ps; [ - pyitachip2ir - ]; + ]; # missing inputs: pyitachip2ir2 "itunes" = ps: with ps; [ ]; @@ -3358,6 +3383,10 @@ ps: with ps; [ kiwiki-client ]; + "klik_aan_klik_uit" = + ps: with ps; [ + rf-protocols + ]; "kmtronic" = ps: with ps; [ pykmtronic @@ -3367,12 +3396,16 @@ knocki ]; "knx" = - ps: with ps; [ + ps: + with ps; + [ home-assistant-frontend knx-frontend + knx-telegram-store xknx xknxproject - ]; + ] + ++ knx-telegram-store.optional-dependencies.sqlite; "kodi" = ps: with ps; [ pykodi @@ -3723,9 +3756,6 @@ psutil-home-assistant sqlalchemy ]; - "logentries" = - ps: with ps; [ - ]; "logger" = ps: with ps; [ ]; @@ -3945,6 +3975,9 @@ ps: with ps; [ python-melcloud ]; + "melcloud_home" = + ps: with ps; [ + ]; # missing inputs: aiomelcloudhome "melissa" = ps: with ps; [ py-melissa-climate @@ -4023,18 +4056,6 @@ ps: with ps; [ pycsspeechtts ]; - "microsoft_face" = - ps: with ps; [ - pyturbojpeg - ]; - "microsoft_face_detect" = - ps: with ps; [ - pyturbojpeg - ]; - "microsoft_face_identify" = - ps: with ps; [ - pyturbojpeg - ]; "miele" = ps: with ps; [ pymiele @@ -4274,7 +4295,6 @@ ]; "msteams" = ps: with ps; [ - pymsteams ]; "mta" = ps: with ps; [ @@ -4418,6 +4438,9 @@ ps: with ps; [ neurio ]; + "nexen" = + ps: with ps; [ + ]; "nexia" = ps: with ps; [ nexia @@ -4886,6 +4909,7 @@ universal-silabs-flasher zeroconf zha + zha-quirks ]; "otp" = ps: with ps; [ @@ -4900,9 +4924,12 @@ ourgroceries ]; "overkiz" = - ps: with ps; [ + ps: + with ps; + [ pyoverkiz - ]; + ] + ++ pyoverkiz.optional-dependencies.nexity; "overseerr" = ps: with ps; [ aiohasupervisor @@ -5504,7 +5531,11 @@ "raspberry_pi" = ps: with ps; [ aiohasupervisor + aiousbwatcher + ha-silabs-firmware-client psutil-home-assistant + serialx + universal-silabs-flasher ]; "raspyrfm" = ps: with ps; [ @@ -5592,7 +5623,7 @@ ]; "rest" = ps: with ps; [ - jsonpath + jsonpath-python xmltodict ]; "rest_command" = @@ -5807,7 +5838,7 @@ "scrape" = ps: with ps; [ beautifulsoup4 - jsonpath + jsonpath-python lxml xmltodict ]; @@ -5821,10 +5852,6 @@ "script" = ps: with ps; [ ]; - "scsgate" = - ps: with ps; [ - scsgate - ]; "search" = ps: with ps; [ ]; @@ -6297,6 +6324,9 @@ ]; "srp_energy" = ps: with ps; [ + fnv-hash-fast + psutil-home-assistant + sqlalchemy srpenergy ]; "ssdp" = @@ -6406,7 +6436,7 @@ ]; "swisscom" = ps: with ps; [ - ]; + ]; # missing inputs: python-swisscom-internet-box "switch" = ps: with ps; [ ]; @@ -6446,6 +6476,29 @@ ]; "switchbot_cloud" = ps: with ps; [ + aiohasupervisor + aiousbwatcher + bleak + bleak-retry-connector + bluetooth-adapters + bluetooth-auto-recovery + bluetooth-data-tools + cronsim + dbus-fast + ha-ffmpeg + habluetooth + hass-nabucasa + hassil + home-assistant-intents + matter-ble-proxy + matter-python-client + mutagen + openai + pymicro-vad + pyspeex-noise + pyturbojpeg + securetar + serialx switchbot-api ]; "switcher_kis" = @@ -6718,10 +6771,6 @@ pytibber sqlalchemy ]; - "tikteck" = - ps: with ps; [ - tikteck - ]; "tile" = ps: with ps; [ pytile @@ -7018,10 +7067,6 @@ ps: with ps; [ unifi-discovery ]; - "unifiled" = - ps: with ps; [ - unifiled - ]; "unifiprotect" = ps: with ps; [ uiprotect @@ -7314,6 +7359,9 @@ ps: with ps; [ aiowatttime ]; + "wattwaechter" = + ps: with ps; [ + ]; # missing inputs: aio-wattwaechter "waze_travel_time" = ps: with ps; [ pywaze @@ -7686,6 +7734,7 @@ serialx universal-silabs-flasher zha + zha-quirks ]; "zhong_hong" = ps: with ps; [ @@ -7792,6 +7841,7 @@ "aprs" "apsystems" "aquacell" + "aqualogic" "aranet" "arcam_fmj" "arve" @@ -7947,6 +7997,7 @@ "econet" "ecovacs" "ecowitt" + "edifier_infrared" "edl21" "efergy" "egauge" @@ -7974,6 +8025,7 @@ "enocean" "enphase_envoy" "environment_canada" + "envisalink" "epic_games_store" "epion" "epson" @@ -8213,6 +8265,7 @@ "kiosker" "kira" "kitchen_sink" + "klik_aan_klik_uit" "kmtronic" "knocki" "knx" @@ -8259,7 +8312,6 @@ "locative" "lock" "logbook" - "logentries" "logger" "lojack" "london_air" @@ -8305,9 +8357,6 @@ "mfi" "microbees" "microsoft" - "microsoft_face" - "microsoft_face_detect" - "microsoft_face_identify" "miele" "mikrotik" "mill" @@ -8559,6 +8608,7 @@ "ruuvitag_ble" "rympro" "sabnzbd" + "saj" "samsung_infrared" "samsungtv" "sanix" @@ -8748,6 +8798,7 @@ "ukraine_alarm" "unifi" "unifi_access" + "unifi_direct" "unifi_discovery" "unifiprotect" "universal" diff --git a/pkgs/servers/home-assistant/custom-components/battery_notes/package.nix b/pkgs/servers/home-assistant/custom-components/battery_notes/package.nix index cd7fab37282df..da76ab824d4bd 100644 --- a/pkgs/servers/home-assistant/custom-components/battery_notes/package.nix +++ b/pkgs/servers/home-assistant/custom-components/battery_notes/package.nix @@ -7,13 +7,13 @@ buildHomeAssistantComponent rec { owner = "andrew-codechimp"; domain = "battery_notes"; - version = "3.4.7"; + version = "3.4.8"; src = fetchFromGitHub { inherit owner; repo = "HA-Battery-Notes"; tag = version; - hash = "sha256-28yWBODUDJXSmuHgBI5+kLsPjpRM2OxUQnU1nGz83v0="; + hash = "sha256-Kc4ATfEEi8SRvl10msLotmBa3/RNff2yD4moRPsk8j8="; }; # has no tests diff --git a/pkgs/servers/home-assistant/custom-components/blitzortung/package.nix b/pkgs/servers/home-assistant/custom-components/blitzortung/package.nix index 3982a11427823..102ba62329cdd 100644 --- a/pkgs/servers/home-assistant/custom-components/blitzortung/package.nix +++ b/pkgs/servers/home-assistant/custom-components/blitzortung/package.nix @@ -10,13 +10,13 @@ buildHomeAssistantComponent (finalAttrs: { owner = "mrk-its"; domain = "blitzortung"; - version = "1.5.0"; + version = "1.7.0"; src = fetchFromGitHub { owner = "mrk-its"; repo = "homeassistant-blitzortung"; tag = "v${finalAttrs.version}"; - hash = "sha256-hed7XBBV7LID12Md0FWA0KkAjEH0RB7MQ1XJOm0W3sw="; + hash = "sha256-8/KIPOmQdaaSFFrjliBBNjboPx8ewzG9/W/grBuex6s="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/blueprints-updater/package.nix b/pkgs/servers/home-assistant/custom-components/blueprints-updater/package.nix index 7bc24178269ce..088de13e94786 100644 --- a/pkgs/servers/home-assistant/custom-components/blueprints-updater/package.nix +++ b/pkgs/servers/home-assistant/custom-components/blueprints-updater/package.nix @@ -13,13 +13,13 @@ buildHomeAssistantComponent rec { owner = "luuquangvu"; domain = "blueprints_updater"; - version = "2.9.1"; + version = "2.9.2"; src = fetchFromGitHub { inherit owner; repo = "blueprints-updater"; tag = version; - hash = "sha256-OGQ6lE14w84C88QJv5w+mNBGg7gbCtqb9nde47FkL6A="; + hash = "sha256-b6DBrG1c7reIomg9/ZrQgDig976PAbCKIl9AfA/RtmY="; }; patches = [ diff --git a/pkgs/servers/home-assistant/custom-components/bodymiscale/package.nix b/pkgs/servers/home-assistant/custom-components/bodymiscale/package.nix index 76a7492c91a65..2b944d5846e66 100644 --- a/pkgs/servers/home-assistant/custom-components/bodymiscale/package.nix +++ b/pkgs/servers/home-assistant/custom-components/bodymiscale/package.nix @@ -9,13 +9,13 @@ buildHomeAssistantComponent rec { owner = "dckiller51"; domain = "bodymiscale"; - version = "2026.5.6"; + version = "2026.7.0"; src = fetchFromGitHub { inherit owner; repo = domain; rev = version; - hash = "sha256-IUGQrUVaDw4XlxFGzYsSeg4Y1UxQgbOECL6OiB3cdsg="; + hash = "sha256-xBxK5V+DwXkoaC0D5HNlH2hHn+W2KUJAZ7rk0KxIy4U="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix b/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix index 9b9a4bb81b55d..66c811fa989f3 100644 --- a/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix +++ b/pkgs/servers/home-assistant/custom-components/browser-mod/package.nix @@ -10,13 +10,13 @@ buildHomeAssistantComponent rec { owner = "thomasloven"; domain = "browser_mod"; - version = "2.13.5"; + version = "3.0.0"; src = fetchFromGitHub { inherit owner; repo = "hass-browser_mod"; tag = "v${version}"; - hash = "sha256-uVMefvOiw0CMcpOSo8dJn4NazZxACvPscV4GqtyQXSY="; + hash = "sha256-s9b5JeMyT7pYyHWJtuqw2xVHrmU98kG5dBE4aBsJ+u8="; }; nativeBuildInputs = [ @@ -27,7 +27,7 @@ buildHomeAssistantComponent rec { npmDeps = fetchNpmDeps { inherit src; - hash = "sha256-eX7dyDxcaPMhTOAhAbcw7beP3cwBKRz457OZgp3LRAA="; + hash = "sha256-p+1yRZVyo/EunNjBkdkl8xajZO4U7KpdIu1GzU7L8gE="; }; npmBuildScript = "build"; diff --git a/pkgs/servers/home-assistant/custom-components/elegoo_printer/package.nix b/pkgs/servers/home-assistant/custom-components/elegoo_printer/package.nix index b22b77df6c7eb..a76ec8273dcff 100644 --- a/pkgs/servers/home-assistant/custom-components/elegoo_printer/package.nix +++ b/pkgs/servers/home-assistant/custom-components/elegoo_printer/package.nix @@ -19,13 +19,13 @@ buildHomeAssistantComponent rec { owner = "danielcherubini"; domain = "elegoo_printer"; - version = "2.9.0"; + version = "2.10.1"; src = fetchFromGitHub { owner = "danielcherubini"; repo = "elegoo-homeassistant"; tag = "v${version}"; - hash = "sha256-lKRi90H48w9jndljoSyaHY4cVh4/qEkGGOkEs5GVk1o="; + hash = "sha256-8L4uJC9TmZ4lkEAQzDUd2txAGPveA/3iiIYzguLtOSA="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/emporia_vue/package.nix b/pkgs/servers/home-assistant/custom-components/emporia_vue/package.nix index cda6f31556be2..f97477297b8f4 100644 --- a/pkgs/servers/home-assistant/custom-components/emporia_vue/package.nix +++ b/pkgs/servers/home-assistant/custom-components/emporia_vue/package.nix @@ -8,13 +8,13 @@ buildHomeAssistantComponent rec { owner = "magico13"; domain = "emporia_vue"; - version = "0.12.1"; + version = "0.12.2"; src = fetchFromGitHub { owner = "magico13"; repo = "ha-emporia-vue"; rev = "v${version}"; - hash = "sha256-kdTM5keDxRNz46uwq+tXIv7Hz80lxmbQVVzk7bmRm1w="; + hash = "sha256-3S9ko1CN8eM3xVl91bwfLnRwU5T5bgXnY6slQ3u8Lk4="; }; dependencies = [ @@ -22,6 +22,7 @@ buildHomeAssistantComponent rec { ]; ignoreVersionRequirement = [ + "boto3" "pyemvue" ]; diff --git a/pkgs/servers/home-assistant/custom-components/goodwe/package.nix b/pkgs/servers/home-assistant/custom-components/goodwe/package.nix index 7c969d1423dc9..90117352a0449 100644 --- a/pkgs/servers/home-assistant/custom-components/goodwe/package.nix +++ b/pkgs/servers/home-assistant/custom-components/goodwe/package.nix @@ -8,13 +8,13 @@ buildHomeAssistantComponent rec { owner = "mletenay"; domain = "goodwe"; - version = "0.9.9.30"; + version = "0.9.9.31"; src = fetchFromGitHub { owner = "mletenay"; repo = "home-assistant-goodwe-inverter"; tag = "v${version}"; - hash = "sha256-/R0HBR1369gjjdCInbFzUaBEclw4PJDmgRGHtlUNvCA="; + hash = "sha256-aq3m1+XBE0f/+r3RiSXU1XFq+vUwKs0phis2B34c/8w="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/midea_ac/package.nix b/pkgs/servers/home-assistant/custom-components/midea_ac/package.nix index 8565ff7b7d1f5..e6fc1d55e28df 100644 --- a/pkgs/servers/home-assistant/custom-components/midea_ac/package.nix +++ b/pkgs/servers/home-assistant/custom-components/midea_ac/package.nix @@ -10,13 +10,13 @@ buildHomeAssistantComponent rec { owner = "mill1000"; domain = "midea_ac"; - version = "2026.4.0"; + version = "2026.7.0"; src = fetchFromGitHub { owner = "mill1000"; repo = "midea-ac-py"; tag = version; - hash = "sha256-XYajDvp7K1pBlVhT553Rqa8Hi/mA8AWwchTUN4PZ+iw="; + hash = "sha256-lZfhZRvKdeisjQAHjYxPsyS2YL486wLtuf4ERw57vZ4="; }; dependencies = [ msmart-ng ]; diff --git a/pkgs/servers/home-assistant/custom-components/octopus_energy/package.nix b/pkgs/servers/home-assistant/custom-components/octopus_energy/package.nix index 2c76e6733ecd2..75f5ea66d66e5 100644 --- a/pkgs/servers/home-assistant/custom-components/octopus_energy/package.nix +++ b/pkgs/servers/home-assistant/custom-components/octopus_energy/package.nix @@ -11,13 +11,13 @@ buildHomeAssistantComponent rec { owner = "BottlecapDave"; domain = "octopus_energy"; - version = "18.3.1"; + version = "18.3.2"; src = fetchFromGitHub { inherit owner; repo = "HomeAssistant-OctopusEnergy"; tag = "v${version}"; - hash = "sha256-5Cjaq4DIe11hx/goKxGDSj6zyOb3H16s8KqlFRzhOYs="; + hash = "sha256-KSnpebEUzp25PsBMFqCajdnTINk51hdswmV9rGtG+3Q="; }; dependencies = [ pydantic ]; diff --git a/pkgs/servers/home-assistant/custom-components/oref_alert/package.nix b/pkgs/servers/home-assistant/custom-components/oref_alert/package.nix index 6e396bbd4a972..b8bd319c3465b 100644 --- a/pkgs/servers/home-assistant/custom-components/oref_alert/package.nix +++ b/pkgs/servers/home-assistant/custom-components/oref_alert/package.nix @@ -15,13 +15,13 @@ buildHomeAssistantComponent rec { owner = "amitfin"; domain = "oref_alert"; - version = "6.20.1"; + version = "6.20.2"; src = fetchFromGitHub { owner = "amitfin"; repo = "oref_alert"; tag = "v${version}"; - hash = "sha256-O4A4Aiddq4YzPx5g9akCepWjEeFdlwTWe5xkPtAmuYE="; + hash = "sha256-jDrSFIFlp9BVytIVUiW3lAKAmG6N0NYS0TaUxQC26eE="; }; # Do not publish cards, currently broken, attempting to write to nix store. diff --git a/pkgs/servers/home-assistant/custom-components/smarthq/package.nix b/pkgs/servers/home-assistant/custom-components/smarthq/package.nix index 301fa4e159076..496dc54787cfd 100644 --- a/pkgs/servers/home-assistant/custom-components/smarthq/package.nix +++ b/pkgs/servers/home-assistant/custom-components/smarthq/package.nix @@ -8,13 +8,13 @@ buildHomeAssistantComponent (finalAttrs: { owner = "geappliances"; domain = "smarthq"; - version = "1.1.0"; + version = "1.2.1"; src = fetchFromGitHub { owner = "geappliances"; repo = "geappliances-smarthq-integration"; tag = "v${finalAttrs.version}"; - hash = "sha256-LTLlkl4Mh0nSZfNVyLEItVPnQkM1nnDkPjsM98otp3w="; + hash = "sha256-8DAnALqtFuMfEXF4Kcu/RMmcK2LS7TLrvgrFP+Jwo/4="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/spook/package.nix b/pkgs/servers/home-assistant/custom-components/spook/package.nix index 2a4af86c8896a..c081c4ab44598 100644 --- a/pkgs/servers/home-assistant/custom-components/spook/package.nix +++ b/pkgs/servers/home-assistant/custom-components/spook/package.nix @@ -10,13 +10,13 @@ buildHomeAssistantComponent rec { owner = "frenck"; domain = "spook"; - version = "4.0.1"; + version = "5.0.0"; src = fetchFromGitHub { inherit owner; repo = domain; tag = "v${version}"; - hash = "sha256-0IihrhATgraGmuMRnrbGTUrtlXAR+CooENSIKSWIknY="; + hash = "sha256-tIVEI5oZcvI0uyCQfajb1WVldkx7aQF8gV0UBWYPUnI="; }; patches = [ ./remove-sub-integration-symlink-hack.patch ]; diff --git a/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch b/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch index 30a30d7166faa..05d0ecc8e42bc 100644 --- a/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch +++ b/pkgs/servers/home-assistant/custom-components/spook/remove-sub-integration-symlink-hack.patch @@ -1,17 +1,8 @@ diff --git a/custom_components/spook/__init__.py b/custom_components/spook/__init__.py -index 1abc79d..68d48d1 100644 +index 4223fac..6891ee9 100644 --- a/custom_components/spook/__init__.py +++ b/custom_components/spook/__init__.py -@@ -22,8 +22,6 @@ from .services import SpookServiceManager - from .util import ( - async_forward_setup_entry, - async_setup_all_entity_ids_cache_invalidation, -- link_sub_integrations, -- unlink_sub_integrations, - ) - - if TYPE_CHECKING: -@@ -35,48 +33,6 @@ if TYPE_CHECKING: +@@ -33,49 +33,6 @@ if TYPE_CHECKING: async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up from a config entry.""" @@ -57,53 +48,12 @@ index 1abc79d..68d48d1 100644 - severity=ir.IssueSeverity.WARNING, - translation_key="restart_required", - ) - +- # Forward async_setup_entry to ectoplasms await async_forward_setup_entry(hass, entry) -@@ -131,4 +87,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: + +@@ -117,4 +74,3 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_remove_entry(hass: HomeAssistant, _: ConfigEntry) -> None: """Remove a config entry.""" - await hass.async_add_executor_job(unlink_sub_integrations, hass) -diff --git a/custom_components/spook/util.py b/custom_components/spook/util.py -index 6aea27c..1437913 100644 ---- a/custom_components/spook/util.py -+++ b/custom_components/spook/util.py -@@ -284,37 +284,6 @@ async def async_forward_platform_entry_setups_to_ectoplasm( - ) - - --def link_sub_integrations(hass: HomeAssistant) -> bool: -- """Link Spook sub integrations.""" -- LOGGER.debug("Linking up Spook sub integrations") -- -- changes = False -- for manifest in Path(__file__).parent.rglob("integrations/*/manifest.json"): -- LOGGER.debug("Linking Spook sub integration: %s", manifest.parent.name) -- dest = Path(hass.config.config_dir) / "custom_components" / manifest.parent.name -- if not dest.exists(): -- src = ( -- Path(hass.config.config_dir) -- / "custom_components" -- / DOMAIN -- / "integrations" -- / manifest.parent.name -- ) -- dest.symlink_to(src) -- changes = True -- return changes -- -- --def unlink_sub_integrations(hass: HomeAssistant) -> None: -- """Unlink Spook sub integrations.""" -- LOGGER.debug("Unlinking Spook sub integrations") -- for manifest in Path(__file__).parent.rglob("integrations/*/manifest.json"): -- LOGGER.debug("Unlinking Spook sub integration: %s", manifest.parent.name) -- dest = Path(hass.config.config_dir) / "custom_components" / manifest.parent.name -- if dest.exists(): -- dest.unlink() -- -- - @callback - def async_get_all_area_ids(hass: HomeAssistant) -> set[str]: - """Return all area IDs, known to Home Assistant.""" diff --git a/pkgs/servers/home-assistant/custom-components/systemair/package.nix b/pkgs/servers/home-assistant/custom-components/systemair/package.nix index 8439babb69856..a03c7c5d83e6d 100644 --- a/pkgs/servers/home-assistant/custom-components/systemair/package.nix +++ b/pkgs/servers/home-assistant/custom-components/systemair/package.nix @@ -10,20 +10,15 @@ buildHomeAssistantComponent rec { owner = "AN3Orik"; domain = "systemair"; - version = "1.0.25"; + version = "1.0.26"; src = fetchFromGitHub { inherit owner; repo = "systemair"; tag = "v${version}"; - hash = "sha256-K8Boix6muKsaNOpIw2WothjREbawHeKprHnW8RerxRg="; + hash = "sha256-tY/5gEjMCbrVwIyEsWWsB/ePju9+8wgbi23XLdCVKrA="; }; - postPatch = '' - substituteInPlace custom_components/systemair/manifest.json \ - --replace-fail "pymodbus==" "pymodbus>=" - ''; - dependencies = [ pymodbus async-timeout diff --git a/pkgs/servers/home-assistant/custom-components/tibber_local/package.nix b/pkgs/servers/home-assistant/custom-components/tibber_local/package.nix index abf556d2a04e9..1268d9cc704f9 100644 --- a/pkgs/servers/home-assistant/custom-components/tibber_local/package.nix +++ b/pkgs/servers/home-assistant/custom-components/tibber_local/package.nix @@ -8,13 +8,13 @@ buildHomeAssistantComponent rec { owner = "marq24"; domain = "tibber_local"; - version = "2026.6.1"; + version = "2026.6.2"; src = fetchFromGitHub { inherit owner; repo = "ha-tibber-pulse-local"; tag = version; - hash = "sha256-HalEHJg3+6D+3TXVsfdlxL3HvSqXUcaSrW1owtRPff8="; + hash = "sha256-Mssjizh9DcA6fldwl6QmmgG8aOVwvF5d0akqrkArM5g="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-components/tuya_local/package.nix b/pkgs/servers/home-assistant/custom-components/tuya_local/package.nix index 8b3a1edde7ec3..26b653c45218d 100644 --- a/pkgs/servers/home-assistant/custom-components/tuya_local/package.nix +++ b/pkgs/servers/home-assistant/custom-components/tuya_local/package.nix @@ -11,13 +11,13 @@ buildHomeAssistantComponent rec { owner = "make-all"; domain = "tuya_local"; - version = "2026.6.2"; + version = "2026.6.4"; src = fetchFromGitHub { inherit owner; repo = "tuya-local"; tag = version; - hash = "sha256-4897QCslPQ/5Rt1U6EcapUav7XMa65i+5aXbMyv9mxE="; + hash = "sha256-VJ2c8wegviirCT+hygg9LKPN5ZLqxfkQl6zayaXZRU0="; }; dependencies = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/gitinfo.patch b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/gitinfo.patch new file mode 100644 index 0000000000000..19b178b4629d5 --- /dev/null +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/gitinfo.patch @@ -0,0 +1,37 @@ +diff --git a/rollup.config.js b/rollup.config.js +index 9a8b5a17..cb0b7e62 100644 +--- a/rollup.config.js ++++ b/rollup.config.js +@@ -1,4 +1,5 @@ + import commonjs from '@rollup/plugin-commonjs'; ++import fs from 'node:fs'; + import image from '@rollup/plugin-image'; + import json from '@rollup/plugin-json'; + import { nodeResolve } from '@rollup/plugin-node-resolve'; +@@ -27,11 +28,16 @@ const serveopts = { + }, + }; + ++const hasDotGit = fs.existsSync('git'); ++const gitInfoPlugin = hasDotGit ++ ? [gitInfo.default({ enableBuildDate: true, updateVersion: false })] ++ : []; ++ + /** + * @type {import('rollup').RollupOptions['plugins']} + */ + const plugins = [ +- gitInfo.default({ enableBuildDate: true, updateVersion: false }), ++ ...gitInfoPlugin, + styles({ + modules: false, + // Behavior of inject mode, without actually injecting style +@@ -55,7 +61,7 @@ const plugins = [ + inlineSources: dev, + exclude: ['dist/**', 'tests/**/*.test.ts'], + }), +- json({ exclude: 'package.json' }), ++ json({ exclude: hasDotGit ? 'package.json' : undefined }), + replace({ + preventAssignment: true, + values: { diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix index c8a14915f6333..042ccb0f84362 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/advanced-camera-card/package.nix @@ -16,16 +16,23 @@ stdenv.mkDerivation (finalAttrs: { owner = "dermotduffy"; repo = "advanced-camera-card"; tag = "v${finalAttrs.version}"; - hash = "sha256-GHSyDdKGgPPMbcPIqlQbRA0V8gPd1YsId8gqPF0VgTs="; - leaveDotGit = true; # gitInfo plugin + hash = "sha256-NdWP2nYzDEzmO4DpwVUpn3/KsungKNOzOQf8FxZ4fGw="; }; patches = [ # Remove after upstream updates to Yarn 4.14 # https://github.com/dermotduffy/advanced-camera-card/blob/main/package.json#L201 ./yarn-4.14-support.patch + + # Drop hard dependency on .git repo during build + ./gitinfo.patch ]; + postPatch = '' + substituteInPlace package.json \ + --replace-fail "0.0.0-dev" "${finalAttrs.version}" + ''; + missingHashes = ./missing-hashes.json; offlineCache = yarn-berry_4.fetchYarnBerryDeps { diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/atomic-calendar-revive/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/atomic-calendar-revive/package.nix index 929423483c6a7..13d8fc21e5e87 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/atomic-calendar-revive/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/atomic-calendar-revive/package.nix @@ -27,8 +27,8 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; - fetcherVersion = 3; - hash = "sha256-yxB142cM4Qe3bzs5ZHD+Bfi+AEoBdq5n2K2Mmm0nIhs="; + fetcherVersion = 4; + hash = "sha256-RR+QxRJvxd8YXE4Siw4CmUGUC4mrPfstSIkHqoHvldE="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix index fe7d1471398dc..be780fcdfe2bd 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "auto-entities"; - version = "2.5.0"; + version = "2.6.0"; src = fetchFromGitHub { owner = "Lint-Free-Technology"; repo = "lovelace-auto-entities"; tag = "v${version}"; - hash = "sha256-qKhxVLD4NbkCzpUNX5UkjEjLOMQ7ZvHHLVLTrcunTPQ="; + hash = "sha256-2lIeFtskvUq1ZrHinCXrv/VBtI06tZn7YwRAMvBm/uk="; }; - npmDepsHash = "sha256-Z+9Lp1AzrY2I+unpBxdbr9rkfcIe/dDblB3MDSd2D8w="; + npmDepsHash = "sha256-XZcb5gFRGiC4Xj97ExDtRFXWRHbyWEOIp7spUzoS9EA="; installPhase = '' runHook preInstall diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix index ae5928dad3531..faa21902dcf0f 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/bubble-card/package.nix @@ -6,13 +6,13 @@ buildNpmPackage rec { pname = "bubble-card"; - version = "3.2.3"; + version = "3.2.4"; src = fetchFromGitHub { owner = "Clooos"; repo = "Bubble-Card"; rev = "v${version}"; - hash = "sha256-X6Oh+0VcVSvr2JydMqWVzYFonxdsewi0lrrFVXtb/BA="; + hash = "sha256-ofGIq6DLA2VQj5Gm/Dc+DZfwWZI3frAFzXO7MJDM610="; }; npmDepsHash = "sha256-jyw8U99R7M3JJwu30ADefAitm4lWWVHEwq108gWZpfg="; diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/card-mod/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/card-mod/package.nix index a2bb31a699884..19f30f3ba278b 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/card-mod/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/card-mod/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "lovelace-card-mod"; - version = "4.2.1"; + version = "4.2.1-202604"; src = fetchFromGitHub { owner = "thomasloven"; repo = "lovelace-card-mod"; rev = "v${version}"; - hash = "sha256-16aA9VaSuWZ1i9UBGp9vb7N1H5vfcLOiqppjPoqphM0="; + hash = "sha256-56nGxdA1RTkXZpcuQ6LOuRtGoBjTQtH2jKCN3omZCN0="; }; - npmDepsHash = "sha256-tJsEGsVTmU1Hakumv9dsurwHpJ791wwRYpoAi2uAclA="; + npmDepsHash = "sha256-RZP3zWz7ZHob/QySF/6XTYOYuulGZUBQXG79fHHJfug="; installPhase = '' runHook preInstall diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/custom-brand-icons/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/custom-brand-icons/package.nix index 0b09a638cb71f..8c8a48490df4b 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/custom-brand-icons/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/custom-brand-icons/package.nix @@ -6,13 +6,13 @@ buildNpmPackage (finalAttrs: { pname = "custom-brand-icons"; - version = "2026.06.4"; + version = "2026.07.0"; src = fetchFromGitHub { owner = "elax46"; repo = "custom-brand-icons"; tag = finalAttrs.version; - hash = "sha256-9wipxsj4KcwgPDo6nanMrSpuDAMAAM72EQISkTOczbs="; + hash = "sha256-fmvWUt3Q+9ydvHB7t8z3/9mCLuF/llpoUo6e8K2rn/g="; }; npmDepsHash = "sha256-ZTl9+vXEBR3pvksaLWof8y1WnoL2tAL3KuPzZn7VjjE="; diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/custom-sidebar/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/custom-sidebar/package.nix index 6079608c0499d..d5041e4d3e38c 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/custom-sidebar/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/custom-sidebar/package.nix @@ -12,20 +12,20 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "custom-sidebar"; - version = "15.0.0"; + version = "16.0.0"; src = fetchFromGitHub { owner = "elchininet"; repo = "custom-sidebar"; tag = "v${finalAttrs.version}"; - hash = "sha256-0bS760GfIO/LdQD6lNEKhiIW5lyCu35cTi0g3GaGQ5M="; + hash = "sha256-ST7wgxl9bpsHvguYbZQYYWO1KkinSrNCrbugVBJGvJo="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; fetcherVersion = 3; - hash = "sha256-zmWZhOx1Pl7O5T5vNdff/nZC1juwm66YOVIMjuNoBYg="; + hash = "sha256-SbjE9u2RZ8M6GHxk7NkvyihGDiO6v/1LHywvaP8OcQM="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/kiosk-mode/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/kiosk-mode/package.nix index 8e677fc86fef9..67a4a32f276fc 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/kiosk-mode/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/kiosk-mode/package.nix @@ -12,20 +12,20 @@ let in stdenvNoCC.mkDerivation (finalAttrs: { pname = "kiosk-mode"; - version = "14.0.0"; + version = "14.0.1"; src = fetchFromGitHub { owner = "nemesisre"; repo = "kiosk-mode"; tag = "v${finalAttrs.version}"; - hash = "sha256-FWSWG+tWRDGHDd9uvVmD8vGlHkJ9tf02S+8RWGAu+10="; + hash = "sha256-eQ2dYXmx4nnk/1bbTayPezPyghBo5UbNWf3USY20ePg="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; fetcherVersion = 3; - hash = "sha256-Ci1RENFsJwWBEUUSKbAvbRGTHn2rfIOXLsdGKamzRRE="; + hash = "sha256-bCtk+cqWnYvPo4VsvLaN+m0LIlP8jgb951aIf1emGZg="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/multiple-entity-row/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/multiple-entity-row/package.nix index 3ff0c62aa1e1d..d328337101aee 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/multiple-entity-row/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/multiple-entity-row/package.nix @@ -10,18 +10,18 @@ stdenv.mkDerivation (finalAttrs: { pname = "multiple-entity-row"; - version = "4.5.1"; + version = "4.6.1"; src = fetchFromGitHub { owner = "benct"; repo = "lovelace-multiple-entity-row"; tag = "v${finalAttrs.version}"; - hash = "sha256-CXRgXyH1NUg7ssQhenqP0tXr1m2qOkHna3Rf30K3SjI="; + hash = "sha256-zRFBeYicjBxKeEneKg2/JRDlF6BlblKQ03z5aqfBtfc="; }; offlineCache = fetchYarnDeps { inherit (finalAttrs) src; - hash = "sha256-8YIcQhbYf0e2xO620zVHEk/0sssBmzF/jCq+2za+D6E="; + hash = "sha256-F3ghw+TXg66FSf5SLb7umantSRky9ABpZu7ftqWT+7M="; }; nativeBuildInputs = [ diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/scheduler-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/scheduler-card/package.nix index bed6bf4563830..4d10ecad0bc50 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/scheduler-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/scheduler-card/package.nix @@ -6,13 +6,13 @@ buildNpmPackage rec { pname = "scheduler-card"; - version = "4.0.18"; + version = "4.0.19"; src = fetchFromGitHub { owner = "nielsfaber"; repo = "scheduler-card"; tag = "v${version}"; - hash = "sha256-hxoVds650qcwiwi/9n62A6/jS6AmuaIEssBOU6H8GHo="; + hash = "sha256-fHU5qhBbtSkEtHDQacgd6R1U+NV55VtPqfX8M56uUnw="; }; postPatch = '' diff --git a/pkgs/servers/home-assistant/custom-lovelace-modules/xiaomi-vacuum-map-card/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/xiaomi-vacuum-map-card/package.nix index 0f5624aa41b36..dc368cdb291e0 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/xiaomi-vacuum-map-card/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/xiaomi-vacuum-map-card/package.nix @@ -6,13 +6,13 @@ buildNpmPackage rec { pname = "lovelace-xiaomi-vacuum-map-card"; - version = "2.3.2"; + version = "2.4.1"; src = fetchFromGitHub { owner = "PiotrMachowski"; repo = "lovelace-xiaomi-vacuum-map-card"; tag = "v${version}"; - hash = "sha256-3329L+2Su2XvrKQIKa5btJz3CQWgS+c8qHD/9vxuEbM="; + hash = "sha256-dkVBHtKezXr/X8Akij3LwRFn85FlN3YD6x8/z97YuTA="; }; npmDepsHash = "sha256-vLxmzqDSmB+6VKjiwG5WH9FUvn0NlVHo9TBmbx5UkG0="; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 8de81bf72298e..49d422039124b 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -150,6 +150,11 @@ let tag = version; hash = "sha256-NwGGNN6LC3gvE8zoVL5meNWMbqZjJ+6PcU2ebJTfJmU="; }; + + # ancient pinned version requires pkg_resources + nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ + self.setuptools_80 + ]; }); # Pinned due to API changes in 0.1.0 @@ -265,7 +270,7 @@ let extraBuildInputs = extraPackages python3Packages; # Don't forget to run update-component-packages.py after updating - hassVersion = "2026.6.4"; + hassVersion = "2026.7.1"; in python3Packages.buildPythonApplication rec { @@ -286,13 +291,13 @@ python3Packages.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; tag = version; - hash = "sha256-NeqJT2CW8A0VfUJ2yrR+KGmmQMK8q0Wdag43rUBBoWU="; + hash = "sha256-3QQ4zDbhr6wD0AR7QOnG3mfbtKYcesCF9qrFwRleQfU="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-7Y26vN0oskJBgijtm9RZcvHw/xBEH3IsI8hezgsOVr0="; + hash = "sha256-++Hb/ZXXhqnf7wOzmi5kmENFHqhLavZFJijRFMQu9Lg="; }; build-system = with python3Packages; [ diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index f0950cfe0265a..b984654efa372 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -8,7 +8,7 @@ buildPythonPackage (finalAttrs: { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20260527.7"; + version = "20260624.4"; format = "wheel"; src = fetchPypi { @@ -17,7 +17,7 @@ buildPythonPackage (finalAttrs: { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-zYm8K3HJnAkT41S6TmGvj8V8zpt7tb4pRtWCiB9PEXw="; + hash = "sha256-mC3+BGVT9sDlHhj2aNeqh0YMehE3BAAT8SfMOQKv4/E="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/intents.nix b/pkgs/servers/home-assistant/intents.nix index 98b12fd38dbb9..c8538c72df771 100644 --- a/pkgs/servers/home-assistant/intents.nix +++ b/pkgs/servers/home-assistant/intents.nix @@ -19,37 +19,19 @@ pytestCheckHook, }: -let - intents = fetchFromGitHub { - owner = "OHF-Voice"; - repo = "intents"; - rev = "4178d174018d408209879c44e98aa150335a1656"; - hash = "sha256-xMH3lZaI4sSvicSMFaGCeYlcr5SrhA8nB/krrN0kyQo="; - }; -in - buildPythonPackage (finalAttrs: { pname = "home-assistant-intents"; - version = "2026.6.1"; + version = "2026.6.24"; pyproject = true; src = fetchFromGitHub { owner = "OHF-Voice"; repo = "intents-package"; - # https://github.com/OHF-Voice/intents-package/issues/14 - tag = "2026.5.5"; + tag = finalAttrs.version; fetchSubmodules = true; - hash = "sha256-R6PPZSiDiFvB+lNxyuIHwMIgpQvVI0oqrucnw4jnYNU="; + hash = "sha256-fuVS+s3l/oStgrRdeLzHrzCr9cmFesq6sYV8EgNNsIo="; }; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail '2026.5.5' '2026.6.1' - - rm -rf intents - ln -sf ${intents} intents - ''; - build-system = [ setuptools diff --git a/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch b/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch index 079b07f970aad..8dce29af3c212 100644 --- a/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch +++ b/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch @@ -1,25 +1,23 @@ diff --git a/homeassistant/components/http/static.py b/homeassistant/components/http/static.py -index 29c5840a4bf..463c723df91 100644 +index 40405a8734d..754edffb910 100644 --- a/homeassistant/components/http/static.py +++ b/homeassistant/components/http/static.py -@@ -7,6 +7,7 @@ from pathlib import Path - from typing import Final +@@ -5,6 +5,7 @@ from pathlib import Path + from typing import Final, override from aiohttp.hdrs import CACHE_CONTROL, CONTENT_TYPE +from aiohttp.typedefs import PathLike from aiohttp.web import FileResponse, Request, StreamResponse from aiohttp.web_fileresponse import CONTENT_TYPES, FALLBACK_CONTENT_TYPE from aiohttp.web_urldispatcher import StaticResource -@@ -21,6 +22,12 @@ RESPONSE_CACHE: LRU[tuple[str, Path], tuple[Path, str]] = LRU(512) +@@ -20,6 +21,10 @@ _GUESSER = CONTENT_TYPES.guess_file_type + class CachingStaticResource(StaticResource): """Static Resource handler that will add cache headers.""" - + def __init__(self, prefix: str, directory: PathLike, **kwargs): + """Allow static files to be hosted behind symlinks.""" + kwargs.update({"follow_symlinks": True}) + super().__init__(prefix, directory, **kwargs) -+ -+ + + @override async def _handle(self, request: Request) -> StreamResponse: - """Wrap base handler to cache file path resolution and content type guess.""" - rel_url = request.match_info["filename"] diff --git a/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix b/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix index d6049a3f5f860..da0e2cc1bb764 100644 --- a/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix +++ b/pkgs/servers/home-assistant/pytest-homeassistant-custom-component.nix @@ -19,7 +19,7 @@ buildPythonPackage rec { pname = "pytest-homeassistant-custom-component"; - version = "0.13.340"; + version = "0.13.345"; pyproject = true; disabled = pythonOlder "3.13"; @@ -28,7 +28,7 @@ buildPythonPackage rec { owner = "MatthewFlamm"; repo = "pytest-homeassistant-custom-component"; tag = version; - hash = "sha256-08hshNdSbOJSu/uJVBeZSxksYaCSZo7KjwwyaooqNGo="; + hash = "sha256-Px4uPBn/drE9gbpszJDMwlaHNWk/dLvdmgqcgY770V0="; }; build-system = [ setuptools ]; diff --git a/pkgs/servers/home-assistant/stubs.nix b/pkgs/servers/home-assistant/stubs.nix index d56ddb56f4ce1..e8f663e4afdcf 100644 --- a/pkgs/servers/home-assistant/stubs.nix +++ b/pkgs/servers/home-assistant/stubs.nix @@ -10,7 +10,7 @@ buildPythonPackage rec { pname = "homeassistant-stubs"; - version = "2026.6.4"; + version = "2026.7.1"; pyproject = true; disabled = python.version != home-assistant.python3Packages.python.version; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "KapJI"; repo = "homeassistant-stubs"; tag = version; - hash = "sha256-nfBY+nXBv0ZrXXr0Be/0xttYMncx7NmMPbAbx6D00SU="; + hash = "sha256-pk6SGLbTLhA94Pg2FdWWRDNHbXif3EGGZzfDfziSFyY="; }; build-system = [ diff --git a/pkgs/servers/home-assistant/tests.nix b/pkgs/servers/home-assistant/tests.nix index d4ac5634c5da3..bb7452f8bdd55 100644 --- a/pkgs/servers/home-assistant/tests.nix +++ b/pkgs/servers/home-assistant/tests.nix @@ -2,6 +2,7 @@ lib, stdenv, home-assistant, + writableTmpDirAsHomeHook, }: let @@ -15,10 +16,12 @@ let "frontend" "stream" ]; + analytics = getComponentDeps "homeassistant_hardware"; anthropic = getComponentDeps "ai_task" ++ getComponentDeps "openai_conversation"; assist_pipeline = getComponentDeps "frontend"; automation = getComponentDeps "frontend" ++ getComponentDeps "mobile_app"; axis = getComponentDeps "deconz"; + backup = getComponentDeps "homeassistant_hardware"; bluetooth = getComponentDeps "switchbot"; braviatv = getComponentDeps "ssdp"; bthome = getComponentDeps "frontend"; @@ -28,6 +31,7 @@ let emulated_hue = [ defusedxml ]; + esphome = getComponentDeps "homeassistant_hardware"; gardena_bluetooth = getComponentDeps "husqvarna_automower_ble"; go2rtc = [ tqdm @@ -44,7 +48,11 @@ let homeassistant_sky_connect = getComponentDeps "zha"; homeassistant_yellow = getComponentDeps "zha"; homekit = getComponentDeps "frontend"; - http = getComponentDeps "cloud" ++ getComponentDeps "frontend"; + http = concatMap getComponentDeps [ + "cloud" + "frontend" + "homeassistant_hardware" + ]; intelliclima = getComponentDeps "intellifire"; logbook = getComponentDeps "alexa"; lovelace = getComponentDeps "frontend" ++ [ @@ -54,9 +62,11 @@ let mastodon = concatMap getComponentDeps [ "stream" ]; + matter = getComponentDeps "homeassistant_hardware"; miele = getComponentDeps "cloud"; mobile_app = getComponentDeps "frontend"; mopeka = getComponentDeps "switchbot"; + mqtt = getComponentDeps "homeassistant_hardware"; nest = [ av ]; @@ -65,8 +75,14 @@ let pymetno radios rpi-bad-power - ]; + ] + ++ getComponentDeps "homeassistant_hardware" + ++ getComponentDeps "usb"; open_router = getComponentDeps "ai_task"; + osoenergy = [ + # loguru wants to write into HOME + writableTmpDirAsHomeHook + ]; raspberry_pi = [ rpi-bad-power ]; @@ -91,10 +107,14 @@ let yolink = getComponentDeps "cloud"; zeroconf = getComponentDeps "shelly"; zha = getComponentDeps "deconz" ++ getComponentDeps "frontend"; - zwave_js = getComponentDeps "frontend"; + zwave_js = getComponentDeps "frontend" ++ getComponentDeps "homeassistant_hardware"; }; extraDisabledTestPaths = { + bluetooth = [ + # [2026.7.1] Fails to replace HCI device after advertisement became stale + "tests/components/bluetooth/test_manager.py::test_switching_adapters_based_on_stale_with_discovered_interval" + ]; influxdb = [ # These tests fail because they check for the number of warnings in the # logs and there is an extra warning in the logs: @@ -122,6 +142,10 @@ let }; extraDisabledTests = { + bsblan = [ + # [2026.7.1] outdated snapshot + "test_diagnostics" + ]; conversation = lib.optionals stdenv.hostPlatform.isAarch64 [ # intent fixture mismatch on aarch64 "test_error_no_device_on_floor" @@ -139,6 +163,10 @@ let # https://github.com/home-assistant/core/pull/172909 "test_upload_image_device_not_in_range" ]; + smlight = [ + # [2026.7.1] outdated snapshot + "test_entry_diagnostics" + ]; teslemetry = [ # [2026.6.4] http://github.com/home-assistant/core/commit/a33a92982af19e682a0d0fa7bec0cb16929c00d1 "test_sensors" @@ -154,36 +182,34 @@ let ]; }; in -lib.listToAttrs ( - map ( - component: - lib.nameValuePair component ( - home-assistant.overridePythonAttrs (old: { - pname = "homeassistant-test-${component}"; - pyproject = false; +lib.genAttrs home-assistant.supportedComponentsWithTests ( + component: + home-assistant.overridePythonAttrs (old: { + pname = "homeassistant-test-${component}"; + pyproject = false; + + dontBuild = true; + dontInstall = true; - dontBuild = true; - dontInstall = true; + nativeCheckInputs = + old.requirementsTest + ++ home-assistant.getPackages component home-assistant.python3Packages + ++ extraCheckInputs.${component} or [ ]; - nativeCheckInputs = - old.requirementsTest - ++ home-assistant.getPackages component home-assistant.python3Packages - ++ extraCheckInputs.${component} or [ ]; + disabledTests = extraDisabledTests.${component} or [ ]; + disabledTestPaths = extraDisabledTestPaths.${component} or [ ]; - disabledTests = extraDisabledTests.${component} or [ ]; - disabledTestPaths = extraDisabledTestPaths.${component} or [ ]; + # components are more often racy than the core + dontUsePytestXdist = true; - # components are more often racy than the core - dontUsePytestXdist = true; + enabledTestPaths = [ "tests/components/${component}" ]; - enabledTestPaths = [ "tests/components/${component}" ]; + pytestFlags = [ "-vvv" ]; - meta = old.meta // { - broken = lib.elem component [ ]; - # upstream only tests on Linux, so do we. - platforms = lib.platforms.linux; - }; - }) - ) - ) home-assistant.supportedComponentsWithTests + meta = old.meta // { + broken = lib.elem component [ ]; + # upstream only tests on Linux, so do we. + platforms = lib.platforms.linux; + }; + }) ) diff --git a/pkgs/servers/sql/postgresql/14.nix b/pkgs/servers/sql/postgresql/14.nix index 184d0a7b3b73a..04c9628ceb66e 100644 --- a/pkgs/servers/sql/postgresql/14.nix +++ b/pkgs/servers/sql/postgresql/14.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "14.23"; rev = "refs/tags/REL_14_23"; hash = "sha256-fjoboaUhrHFDqusmIXzSS5ZnIpSRHO9+qcqvkchl2dM="; diff --git a/pkgs/servers/sql/postgresql/15.nix b/pkgs/servers/sql/postgresql/15.nix index 633131478a214..084b353c00ec8 100644 --- a/pkgs/servers/sql/postgresql/15.nix +++ b/pkgs/servers/sql/postgresql/15.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "15.18"; rev = "refs/tags/REL_15_18"; hash = "sha256-tw1zzgLXx7Jr4bi8rMKRmTJzOSQFGvrP2nHr9FcVrjs="; diff --git a/pkgs/servers/sql/postgresql/16.nix b/pkgs/servers/sql/postgresql/16.nix index 22027d48d97c2..83fa3acab5d1f 100644 --- a/pkgs/servers/sql/postgresql/16.nix +++ b/pkgs/servers/sql/postgresql/16.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "16.14"; rev = "refs/tags/REL_16_14"; hash = "sha256-g2+OdB2dGIKBSFJ24Z3Yy7oRAFywNMSVDdWfnsaeJJQ="; diff --git a/pkgs/servers/sql/postgresql/17.nix b/pkgs/servers/sql/postgresql/17.nix index c5298a23de817..0f5eb20d649c8 100644 --- a/pkgs/servers/sql/postgresql/17.nix +++ b/pkgs/servers/sql/postgresql/17.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "17.10"; rev = "refs/tags/REL_17_10"; hash = "sha256-3ZAqlT3R8ywhNH13oqz2VUbSwpOJ2JaICbxZ29awaMw="; diff --git a/pkgs/servers/sql/postgresql/18.nix b/pkgs/servers/sql/postgresql/18.nix index 4d70b2474f27b..1bccfcc412a08 100644 --- a/pkgs/servers/sql/postgresql/18.nix +++ b/pkgs/servers/sql/postgresql/18.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "18.4"; rev = "refs/tags/REL_18_4"; hash = "sha256-Ac/Dqcj8vjcW3my5vsnKaMiQqTq/HPtUzckJ3SMyrfA="; diff --git a/pkgs/servers/sql/postgresql/19.nix b/pkgs/servers/sql/postgresql/19.nix index 50862f58f4ab9..9ee9780fbfa55 100644 --- a/pkgs/servers/sql/postgresql/19.nix +++ b/pkgs/servers/sql/postgresql/19.nix @@ -1,4 +1,4 @@ -import ./generic.nix { +{ version = "19beta1"; rev = "refs/tags/REL_19_BETA1"; hash = "sha256-thvbttX8wwGLf5tMJRHl86Xv8OgINzahoqB/AzAdtMI="; diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix index 7fe28ef140fd3..c8c57ec7ae76b 100644 --- a/pkgs/servers/sql/postgresql/default.nix +++ b/pkgs/servers/sql/postgresql/default.nix @@ -23,7 +23,7 @@ let version: path: let attrName = if jitSupport then "${version}_jit" else version; - postgresql = import path { inherit self; }; + postgresql = self.callPackage ./generic.nix (import path // { inherit self; }); attrValue = if jitSupport then postgresql.withJIT else postgresql; in self.lib.nameValuePair attrName attrValue diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/0001-disable-avx512vnni.patch b/pkgs/servers/sql/postgresql/ext/vectorchord/0001-disable-avx512vnni.patch new file mode 100644 index 0000000000000..093663c162dd8 --- /dev/null +++ b/pkgs/servers/sql/postgresql/ext/vectorchord/0001-disable-avx512vnni.patch @@ -0,0 +1,29 @@ +diff --git a/crates/simd/src/byte.rs b/crates/simd/src/byte.rs +index 0c7c4be..87737d4 100644 +--- a/crates/simd/src/byte.rs ++++ b/crates/simd/src/byte.rs +@@ -389,7 +389,7 @@ mod reduce_sum_of_xy { + } + } + +- #[crate::multiversion(@"v4:avx512vnni", @"v4", @"v3", @"v2", @"a2:dotprod", @"a2", "z17", "z16", "z15", "z14", "z13", "p9", "p8", "p7", "r1")] ++ #[crate::multiversion(@"v4", @"v3", @"v2", @"a2:dotprod", @"a2", "z17", "z16", "z15", "z14", "z13", "p9", "p8", "p7", "r1")] + pub fn reduce_sum_of_xy(s: &[u8], t: &[u8]) -> u32 { + assert_eq!(s.len(), t.len()); + let n = s.len(); +diff --git a/crates/simd/src/halfbyte.rs b/crates/simd/src/halfbyte.rs +index e1aa016..f7dc3dc 100644 +--- a/crates/simd/src/halfbyte.rs ++++ b/crates/simd/src/halfbyte.rs +@@ -411,7 +411,7 @@ mod reduce_sum_of_xy { + } + } + +- #[crate::multiversion(@"v4:avx512vnni", @"v4", @"v3", @"v2", @"a2:dotprod", @"a2", "z17", "z16", "z15", "z14", "z13", "p9", "p8", "p7", "r1")] ++ #[crate::multiversion(@"v4", @"v3", @"v2", @"a2:dotprod", @"a2", "z17", "z16", "z15", "z14", "z13", "p9", "p8", "p7", "r1")] + pub fn reduce_sum_of_xy(s: &[u8], t: &[u8]) -> u32 { + assert_eq!(s.len(), t.len()); + let n = s.len(); +-- +2.54.0 + diff --git a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix index 1dd1d6283a819..7d40097abf6a2 100644 --- a/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix +++ b/pkgs/servers/sql/postgresql/ext/vectorchord/package.nix @@ -6,6 +6,8 @@ nix-update-script, postgresql, postgresqlTestExtension, + rustc, + stdenv, }: buildPgrxExtension (finalAttrs: { inherit postgresql; @@ -23,6 +25,17 @@ buildPgrxExtension (finalAttrs: { cargoHash = "sha256-IXOCzKJArNOcb/2TcJbLz1XdCquUpyF/cLHYU5vmlko="; + patches = lib.optional (lib.versionOlder rustc.llvm.version "22.0.0" && stdenv.isx86_64) [ + # Due to a bug in LLVM 21, build fails on x86_64 with: + # `rustc-LLVM ERROR: Cannot select: intrinsic %llvm.x86.avx512.vpdpbusd.512`. + # This has been fixed in Rust's build of LLVM and LLVM 22 with https://github.com/rust-lang/llvm-project/commit/94e2c19f86a699d7a19ff0f4130b696699189c8d, + # but this is not reflected in nixpkgs' packaging of rustc. + # For this reason, we temporarily disable avx512vnni support until this is fixed in nixpkgs. + # This might cause a performance penalty, but should not affect correctness. + # See https://github.com/NixOS/nixpkgs/pull/537113#issuecomment-4846239887 + ./0001-disable-avx512vnni.patch + ]; + # Include upgrade scripts in the final package # https://github.com/supervc-stack/VectorChord/blob/0.5.0/crates/make/src/main.rs#L366 postInstall = '' diff --git a/pkgs/servers/sql/postgresql/generic.nix b/pkgs/servers/sql/postgresql/generic.nix index f860cf950df6c..8332f4d4e2de0 100644 --- a/pkgs/servers/sql/postgresql/generic.nix +++ b/pkgs/servers/sql/postgresql/generic.nix @@ -1,722 +1,598 @@ +{ + # utils + stdenv, + fetchFromGitHub, + fetchurl, + lib, + replaceVars, + + # source specification + hash, + muslPatches ? { }, + rev, + version, + + # runtime dependencies + darwin, + freebsd, + glibc, + libuuid, + libxml2, + lz4, + openssl, + readline, + tzdata, + zlib, + zstd, + + # build dependencies + bison, + docbook-xsl-nons, + docbook_xml_dtd_45, + flex, + libxslt, + makeBinaryWrapper, + pkg-config, + removeReferencesTo, + + # passthru + buildPackages, + newScope, + nixosTests, + self, + testers, + + # Block size + # Changing the block size will break on-disk database compatibility. See: + # https://www.postgresql.org/docs/current/install-make.html#CONFIGURE-OPTION-WITH-BLOCKSIZE + withBlocksize ? null, + withWalBlocksize ? null, + + # bonjour + bonjourSupport ? false, + + # Curl + curlSupport ? lib.versionAtLeast version "18" && lib.meta.availableOn stdenv.hostPlatform curl, + curl, + + # GSSAPI + gssSupport ? with stdenv.hostPlatform; !isWindows, + libkrb5, + + # icu + icuSupport ? true, + icu, + + # JIT + jitSupport ? stdenv.hostPlatform.canExecute stdenv.buildPlatform, + llvmPackages, + nukeReferences, + overrideCC, + + # LDAP + ldapSupport ? false, + openldap, + + # NLS + nlsSupport ? false, + gettext, + + # NUMA + numaSupport ? lib.versionAtLeast version "18" && lib.meta.availableOn stdenv.hostPlatform numactl, + numactl, + + # PAM + pamSupport ? lib.meta.availableOn stdenv.hostPlatform linux-pam, + linux-pam, + + # PL/Perl + perlSupport ? + lib.meta.availableOn stdenv.hostPlatform perl + # configure tries to call the perl executable for the version + && stdenv.buildPlatform.canExecute stdenv.hostPlatform, + perl, + + # PL/Python + pythonSupport ? + lib.meta.availableOn stdenv.hostPlatform python3 + # configure tries to call the python executable + && stdenv.buildPlatform.canExecute stdenv.hostPlatform, + python3, + + # PL/Tcl + tclSupport ? + lib.meta.availableOn stdenv.hostPlatform tcl + # configure fails with: + # configure: error: file 'tclConfig.sh' is required for Tcl + && stdenv.buildPlatform.canExecute stdenv.hostPlatform, + tcl, + + # SELinux + selinuxSupport ? false, + libselinux, + + # Systemd + systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, + systemdLibs, + + # Uring + uringSupport ? lib.versionAtLeast version "18" && lib.meta.availableOn stdenv.hostPlatform liburing, + liburing, +}@args: let + atLeast = lib.versionAtLeast version; + olderThan = lib.versionOlder version; + lz4Enabled = atLeast "14"; + zstdEnabled = atLeast "15"; + + dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary; + + stdenv' = + if !stdenv.cc.isClang then + overrideCC llvmPackages.stdenv ( + llvmPackages.stdenv.cc.override { + # LLVM bintools are not used by default, but are needed to make -flto work below. + bintools = buildPackages."llvmPackages_${lib.versions.major llvmPackages.release_version}".bintools; + } + ) + else + stdenv; +in +stdenv'.mkDerivation (finalAttrs: { + inherit version; + pname = "postgresql"; + + src = fetchFromGitHub { + owner = "postgres"; + repo = "postgres"; + # rev, not tag, on purpose: allows updating when new versions + # are "stamped" a few days before release (tag). + inherit hash rev; + }; + + __structuredAttrs = true; + + outputs = [ + "out" + "dev" + "doc" + "lib" + "man" + ] + ++ lib.optionals jitSupport [ "jit" ] + ++ lib.optionals perlSupport [ "plperl" ] + ++ lib.optionals pythonSupport [ "plpython3" ] + ++ lib.optionals tclSupport [ "pltcl" ]; + + outputChecks = { + out = { + disallowedReferences = [ + "dev" + "doc" + "man" + ] + ++ lib.optionals jitSupport [ "jit" ]; + disallowedRequisites = [ + stdenv'.cc + llvmPackages.llvm.out + llvmPackages.llvm.lib + ] + ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); + }; - generic = - # utils - { - stdenv, - fetchFromGitHub, - fetchurl, - lib, - replaceVars, - - # source specification - hash, - muslPatches ? { }, - rev, - version, - - # runtime dependencies - darwin, - freebsd, - glibc, - libuuid, - libxml2, - lz4, - openssl, - readline, - tzdata, - zlib, - zstd, - - # build dependencies - bison, - docbook-xsl-nons, - docbook_xml_dtd_45, - flex, - libxslt, - makeBinaryWrapper, - pkg-config, - removeReferencesTo, - - # passthru - buildEnv, - buildPackages, - newScope, - nixosTests, - self, - testers, - - # Block size - # Changing the block size will break on-disk database compatibility. See: - # https://www.postgresql.org/docs/current/install-make.html#CONFIGURE-OPTION-WITH-BLOCKSIZE - withBlocksize ? null, - withWalBlocksize ? null, - - # bonjour - bonjourSupport ? false, - - # Curl - curlSupport ? - lib.versionAtLeast version "18" - && lib.meta.availableOn stdenv.hostPlatform curl - # Building statically fails with: - # configure: error: library 'curl' does not provide curl_multi_init - # https://www.postgresql.org/message-id/487dacec-6d8d-46c0-a36f-d5b8c81a56f1%40technowledgy.de - && !stdenv.hostPlatform.isStatic, - curl, - - # GSSAPI - gssSupport ? with stdenv.hostPlatform; !isWindows && !isStatic, - libkrb5, - - # icu - # Building with icu in pkgsStatic gives tons of "undefined reference" errors like this: - # /nix/store/452lkaak37d3mzzn3p9ak7aa3wzhdqaj-icu4c-74.2-x86_64-unknown-linux-musl/lib/libicuuc.a(chariter.ao): - # (.data.rel.ro._ZTIN6icu_7417CharacterIteratorE[_ZTIN6icu_7417CharacterIteratorE]+0x0): - # undefined reference to `vtable for __cxxabiv1::__si_class_type_info' - icuSupport ? !stdenv.hostPlatform.isStatic, - icu, - - # JIT - jitSupport ? - stdenv.hostPlatform.canExecute stdenv.buildPlatform - # Building with JIT in pkgsStatic fails like this: - # fatal error: 'stdio.h' file not found - && !stdenv.hostPlatform.isStatic, - llvmPackages, - nukeReferences, - overrideCC, - - # LDAP - ldapSupport ? false, - openldap, - - # NLS - nlsSupport ? false, - gettext, - - # NUMA - numaSupport ? lib.versionAtLeast version "18" && lib.meta.availableOn stdenv.hostPlatform numactl, - numactl, - - # PAM - pamSupport ? - lib.meta.availableOn stdenv.hostPlatform linux-pam - # Building with linux-pam in pkgsStatic gives a few "undefined reference" errors like this: - # /nix/store/3s55icpsbc36sgn7sa8q3qq4z6al6rlr-linux-pam-static-x86_64-unknown-linux-musl-1.6.1/lib/libpam.a(pam_audit.o): - # in function `pam_modutil_audit_write':(.text+0x571): - # undefined reference to `audit_close' - && !stdenv.hostPlatform.isStatic, - linux-pam, - - # PL/Perl - perlSupport ? - lib.meta.availableOn stdenv.hostPlatform perl - # Building with perl in pkgsStatic gives this error: - # configure: error: cannot build PL/Perl because libperl is not a shared library - && !stdenv.hostPlatform.isStatic - # configure tries to call the perl executable for the version - && stdenv.buildPlatform.canExecute stdenv.hostPlatform, - perl, - - # PL/Python - pythonSupport ? - lib.meta.availableOn stdenv.hostPlatform python3 - # Building with python in pkgsStatic gives this error: - # checking how to link an embedded Python application... configure: error: could not find shared library for Python - && !stdenv.hostPlatform.isStatic - # configure tries to call the python executable - && stdenv.buildPlatform.canExecute stdenv.hostPlatform, - python3, - - # PL/Tcl - tclSupport ? - lib.meta.availableOn stdenv.hostPlatform tcl - # tcl is broken in pkgsStatic - && !stdenv.hostPlatform.isStatic - # configure fails with: - # configure: error: file 'tclConfig.sh' is required for Tcl - && stdenv.buildPlatform.canExecute stdenv.hostPlatform, - tcl, - - # SELinux - selinuxSupport ? false, - libselinux, - - # Systemd - systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, - systemdLibs, - - # Uring - uringSupport ? lib.versionAtLeast version "18" && lib.meta.availableOn stdenv.hostPlatform liburing, - liburing, - }@args: - let - atLeast = lib.versionAtLeast version; - olderThan = lib.versionOlder version; - lz4Enabled = atLeast "14"; - zstdEnabled = atLeast "15"; - - dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary; - - stdenv' = - if !stdenv.cc.isClang then - overrideCC llvmPackages.stdenv ( - llvmPackages.stdenv.cc.override { - # LLVM bintools are not used by default, but are needed to make -flto work below. - bintools = buildPackages."llvmPackages_${lib.versions.major llvmPackages.release_version}".bintools; - } - ) - else - stdenv; - in - stdenv'.mkDerivation (finalAttrs: { - inherit version; - pname = "postgresql"; - - src = fetchFromGitHub { - owner = "postgres"; - repo = "postgres"; - # rev, not tag, on purpose: allows updating when new versions - # are "stamped" a few days before release (tag). - inherit hash rev; - }; - - __structuredAttrs = true; - - outputs = [ + lib = { + disallowedReferences = [ "out" "dev" "doc" - "lib" "man" ] - ++ lib.optionals jitSupport [ "jit" ] - ++ lib.optionals perlSupport [ "plperl" ] - ++ lib.optionals pythonSupport [ "plpython3" ] - ++ lib.optionals tclSupport [ "pltcl" ]; - - outputChecks = { - out = { - disallowedReferences = [ - "dev" - "doc" - "man" - ] - ++ lib.optionals jitSupport [ "jit" ]; - disallowedRequisites = [ - stdenv'.cc - llvmPackages.llvm.out - llvmPackages.llvm.lib - ] - ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); - }; - - lib = { - disallowedReferences = [ - "out" - "dev" - "doc" - "man" - ] - ++ lib.optionals jitSupport [ "jit" ]; - disallowedRequisites = [ - stdenv'.cc - llvmPackages.llvm.out - llvmPackages.llvm.lib - ] - ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); - }; - - doc = { - disallowedReferences = [ - "out" - "dev" - "man" - ] - ++ lib.optionals jitSupport [ "jit" ]; - }; - - man = { - disallowedReferences = [ - "out" - "dev" - "doc" - ] - ++ lib.optionals jitSupport [ "jit" ]; - }; - } - // lib.optionalAttrs jitSupport { - jit = { - disallowedReferences = [ - "dev" - "doc" - "man" - ]; - disallowedRequisites = [ - stdenv'.cc - llvmPackages.llvm.out - ] - ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); - }; - }; - - strictDeps = true; + ++ lib.optionals jitSupport [ "jit" ]; + disallowedRequisites = [ + stdenv'.cc + llvmPackages.llvm.out + llvmPackages.llvm.lib + ] + ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); + }; - buildInputs = [ - zlib - readline - openssl - libxml2 - libuuid + doc = { + disallowedReferences = [ + "out" + "dev" + "man" ] - ++ lib.optionals icuSupport [ icu ] - ++ lib.optionals jitSupport [ llvmPackages.llvm ] - ++ lib.optionals lz4Enabled [ lz4 ] - ++ lib.optionals zstdEnabled [ zstd ] - ++ lib.optionals systemdSupport [ systemdLibs ] - ++ lib.optionals uringSupport [ liburing ] - ++ lib.optionals curlSupport [ curl ] - ++ lib.optionals numaSupport [ numactl ] - ++ lib.optionals gssSupport [ libkrb5 ] - ++ lib.optionals pamSupport [ linux-pam ] - ++ lib.optionals perlSupport [ perl ] - ++ lib.optionals ldapSupport [ openldap ] - ++ lib.optionals selinuxSupport [ libselinux ] - ++ lib.optionals nlsSupport [ gettext ]; - - nativeBuildInputs = [ - bison - docbook-xsl-nons - docbook_xml_dtd_45 - flex - libxml2 - libxslt - makeBinaryWrapper - perl - pkg-config - removeReferencesTo + ++ lib.optionals jitSupport [ "jit" ]; + }; + + man = { + disallowedReferences = [ + "out" + "dev" + "doc" ] - ++ lib.optionals jitSupport [ - llvmPackages.llvm.dev - nukeReferences + ++ lib.optionals jitSupport [ "jit" ]; + }; + } + // lib.optionalAttrs jitSupport { + jit = { + disallowedReferences = [ + "dev" + "doc" + "man" ]; - - enableParallelBuilding = true; - - separateDebugInfo = true; - - buildFlags = [ "world" ]; - - env = { - # libpgcommon.a and libpgport.a contain all paths returned by pg_config and are linked - # into all binaries. However, almost no binaries actually use those paths. The following - # flags will remove unused sections from all shared libraries and binaries - including - # those paths. This avoids a lot of circular dependency problems with different outputs, - # and allows splitting them cleanly. - CFLAGS = "-fdata-sections -ffunction-sections -flto"; - - # This flag was introduced upstream in: - # https://github.com/postgres/postgres/commit/b6c7cfac88c47a9194d76f3d074129da3c46545a - # It causes errors when linking against libpq.a in pkgsStatic: - # undefined reference to `pg_encoding_to_char' - # Unsetting the flag fixes it. The upstream reasoning to introduce it is about the risk - # to have initdb load a libpq.so from a different major version and how to avoid that. - # This doesn't apply to us with Nix. - NIX_CFLAGS_COMPILE = "-UUSE_PRIVATE_ENCODING_FUNCS"; - } - // lib.optionalAttrs perlSupport { PERL = lib.getExe perl; } - // lib.optionalAttrs pythonSupport { PYTHON = lib.getExe python3; } - // lib.optionalAttrs tclSupport { TCLSH = "${lib.getBin tcl}/bin/tclsh"; }; - - configureFlags = - let - inherit (lib) withFeature; - in - [ - "--with-openssl" - "--with-libxml" - (withFeature icuSupport "icu") - "--sysconfdir=/etc" - "--with-system-tzdata=${tzdata}/share/zoneinfo" - "--enable-debug" - (lib.optionalString systemdSupport "--with-systemd") - (if stdenv.hostPlatform.isFreeBSD then "--with-uuid=bsd" else "--with-uuid=e2fs") - (withFeature perlSupport "perl") - ] - ++ lib.optionals (withBlocksize != null) [ "--with-blocksize=${toString withBlocksize}" ] - ++ lib.optionals (withWalBlocksize != null) [ "--with-wal-blocksize=${toString withWalBlocksize}" ] - ++ lib.optionals lz4Enabled [ "--with-lz4" ] - ++ lib.optionals zstdEnabled [ "--with-zstd" ] - ++ lib.optionals uringSupport [ "--with-liburing" ] - ++ lib.optionals curlSupport [ "--with-libcurl" ] - ++ lib.optionals numaSupport [ "--with-libnuma" ] - ++ lib.optionals gssSupport [ "--with-gssapi" ] - ++ lib.optionals pythonSupport [ "--with-python" ] - ++ lib.optionals jitSupport [ "--with-llvm" ] - ++ lib.optionals pamSupport [ "--with-pam" ] - # This can be removed once v17 is removed. v18+ ships with it. - ++ lib.optionals (stdenv'.hostPlatform.isDarwin && atLeast "16" && olderThan "18") [ - "LDFLAGS_EX_BE=-Wl,-export_dynamic" - ] - # some version of this flag is required in all cross configurations - # since it cannot be automatically detected - ++ - lib.optionals - ( - (!stdenv'.hostPlatform.isDarwin) - && (!(stdenv'.buildPlatform.canExecute stdenv.hostPlatform)) - && atLeast "16" - ) - [ - "LDFLAGS_EX_BE=-Wl,--export-dynamic" - ] - ++ lib.optionals ldapSupport [ "--with-ldap" ] - ++ lib.optionals tclSupport [ "--with-tcl" ] - ++ lib.optionals selinuxSupport [ "--with-selinux" ] - ++ lib.optionals nlsSupport [ "--enable-nls" ] - ++ 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 = [ - ( - if atLeast "16" then - ./patches/relative-to-symlinks-16+.patch - else - ./patches/relative-to-symlinks.patch - ) + disallowedRequisites = [ + stdenv'.cc + llvmPackages.llvm.out + ] + ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); + }; + }; + + strictDeps = true; + + buildInputs = [ + zlib + readline + openssl + libxml2 + libuuid + ] + ++ lib.optionals icuSupport [ icu ] + ++ lib.optionals jitSupport [ llvmPackages.llvm ] + ++ lib.optionals lz4Enabled [ lz4 ] + ++ lib.optionals zstdEnabled [ zstd ] + ++ lib.optionals systemdSupport [ systemdLibs ] + ++ lib.optionals uringSupport [ liburing ] + ++ lib.optionals curlSupport [ curl ] + ++ lib.optionals numaSupport [ numactl ] + ++ lib.optionals gssSupport [ libkrb5 ] + ++ lib.optionals pamSupport [ linux-pam ] + ++ lib.optionals perlSupport [ perl ] + ++ lib.optionals ldapSupport [ openldap ] + ++ lib.optionals selinuxSupport [ libselinux ] + ++ lib.optionals nlsSupport [ gettext ]; + + nativeBuildInputs = [ + bison + docbook-xsl-nons + docbook_xml_dtd_45 + flex + libxml2 + libxslt + makeBinaryWrapper + perl + pkg-config + removeReferencesTo + ] + ++ lib.optionals jitSupport [ + llvmPackages.llvm.dev + nukeReferences + ]; + + enableParallelBuilding = true; + + separateDebugInfo = true; + + buildFlags = [ "world" ]; + + env = { + # libpgcommon.a and libpgport.a contain all paths returned by pg_config and are linked + # into all binaries. However, almost no binaries actually use those paths. The following + # flags will remove unused sections from all shared libraries and binaries - including + # those paths. This avoids a lot of circular dependency problems with different outputs, + # and allows splitting them cleanly. + CFLAGS = "-fdata-sections -ffunction-sections -flto"; + + # This flag was introduced upstream in: + # https://github.com/postgres/postgres/commit/b6c7cfac88c47a9194d76f3d074129da3c46545a + # It causes errors when linking against libpq.a in pkgsStatic: + # undefined reference to `pg_encoding_to_char' + # Unsetting the flag fixes it. The upstream reasoning to introduce it is about the risk + # to have initdb load a libpq.so from a different major version and how to avoid that. + # This doesn't apply to us with Nix. + NIX_CFLAGS_COMPILE = "-UUSE_PRIVATE_ENCODING_FUNCS"; + } + // lib.optionalAttrs perlSupport { PERL = lib.getExe perl; } + // lib.optionalAttrs pythonSupport { PYTHON = lib.getExe python3; } + // lib.optionalAttrs tclSupport { TCLSH = "${lib.getBin tcl}/bin/tclsh"; }; + + configureFlags = + let + inherit (lib) withFeature; + in + [ + "--with-openssl" + "--with-libxml" + (withFeature icuSupport "icu") + "--sysconfdir=/etc" + "--with-system-tzdata=${tzdata}/share/zoneinfo" + "--enable-debug" + (lib.optionalString systemdSupport "--with-systemd") + (if stdenv.hostPlatform.isFreeBSD then "--with-uuid=bsd" else "--with-uuid=e2fs") + (withFeature perlSupport "perl") + ] + ++ lib.optionals (withBlocksize != null) [ "--with-blocksize=${toString withBlocksize}" ] + ++ lib.optionals (withWalBlocksize != null) [ "--with-wal-blocksize=${toString withWalBlocksize}" ] + ++ lib.optionals lz4Enabled [ "--with-lz4" ] + ++ lib.optionals zstdEnabled [ "--with-zstd" ] + ++ lib.optionals uringSupport [ "--with-liburing" ] + ++ lib.optionals curlSupport [ "--with-libcurl" ] + ++ lib.optionals numaSupport [ "--with-libnuma" ] + ++ lib.optionals gssSupport [ "--with-gssapi" ] + ++ lib.optionals pythonSupport [ "--with-python" ] + ++ lib.optionals jitSupport [ "--with-llvm" ] + ++ lib.optionals pamSupport [ "--with-pam" ] + # This can be removed once v17 is removed. v18+ ships with it. + ++ lib.optionals (stdenv'.hostPlatform.isDarwin && atLeast "16" && olderThan "18") [ + "LDFLAGS_EX_BE=-Wl,-export_dynamic" + ] + # some version of this flag is required in all cross configurations + # since it cannot be automatically detected + ++ + lib.optionals ( - if atLeast "15" then - ./patches/empty-pg-config-view-15+.patch - else - ./patches/empty-pg-config-view.patch + (!stdenv'.hostPlatform.isDarwin) + && (!(stdenv'.buildPlatform.canExecute stdenv.hostPlatform)) + && atLeast "16" ) - ./patches/less-is-more.patch - ./patches/paths-for-split-outputs.patch - ./patches/paths-with-postgresql-suffix.patch - - (replaceVars ./patches/locale-binary-path.patch { - locale = "${ - if stdenv.hostPlatform.isDarwin then - darwin.adv_cmds - else if stdenv.hostPlatform.isFreeBSD then - freebsd.locale - else - lib.getBin stdenv.cc.libc - }/bin/locale"; - }) - ] - ++ lib.optionals stdenv'.hostPlatform.isMusl ( - # Using fetchurl instead of fetchpatch on purpose: https://github.com/NixOS/nixpkgs/issues/240141 - map fetchurl (lib.attrValues muslPatches) - ) - ++ lib.optionals stdenv'.hostPlatform.isLinux [ - ./patches/socketdir-in-run-13+.patch - ] - ++ lib.optionals (stdenv'.hostPlatform.isDarwin && olderThan "16") [ - ./patches/export-dynamic-darwin-15-.patch - ]; - - installTargets = [ "install-world" ]; - - postPatch = '' - substituteInPlace "src/Makefile.global.in" --subst-var out - substituteInPlace "src/common/config_info.c" --subst-var dev - cat ${./pg_config.env.mk} >> src/common/Makefile - '' - # This test always fails on hardware with >1 NUMA node: the sysfs - # dirs providing information about the topology are hidden in the sandbox, - # so postgres assumes there's only a single node `0`. However, - # the test checks on which NUMA nodes the allocated pages are which is >1 - # on such hardware. This in turn triggers a safeguard in the view - # which breaks the test. - # Manual tests confirm that the testcase behaves properly outside of the - # Nix sandbox. - + lib.optionalString (atLeast "18") '' - substituteInPlace src/test/regress/parallel_schedule \ - --replace-fail numa "" - '' - # This check was introduced upstream to prevent calls to "exit" inside libpq. - # However, this doesn't work reliably with static linking, see this and following: - # https://postgr.es/m/flat/20210703001639.GB2374652%40rfd.leadboat.com#52584ca4bd3cb9dac376f3158c419f97 - # Thus, disable the check entirely, as it would currently fail with this: - # > libpq.so.5.17: U atexit - # > libpq.so.5.17: U pthread_exit - # > libpq must not be calling any function which invokes exit - # Don't mind the fact that this checks libpq.**so** in pkgsStatic - that's correct, since PostgreSQL - # still needs a shared library internally. - + lib.optionalString (atLeast "15" && stdenv'.hostPlatform.isStatic) '' - substituteInPlace src/interfaces/libpq/Makefile \ - --replace-fail "echo 'libpq must not be calling any function which invokes exit'; exit 1;" "echo;" - ''; - - postInstall = '' - moveToOutput "bin/ecpg" "$dev" - moveToOutput "lib/pgxs" "$dev" - '' - + lib.optionalString (stdenv'.buildPlatform.canExecute stdenv'.hostPlatform) '' - mkdir -p "$dev/nix-support" - "$out/bin/pg_config" > "$dev/nix-support/pg_config.expected" - '' - + '' - rm "$out/bin/pg_config" - make -C src/common pg_config.env - substituteInPlace src/common/pg_config.env \ - --replace-fail "$out" "@out@" \ - --replace-fail "$man" "@man@" - install -D src/common/pg_config.env "$dev/nix-support/pg_config.env" - - # postgres exposes external symbols get_pkginclude_path and similar. Those - # can't be stripped away by --gc-sections/LTO, because they could theoretically - # be used by dynamically loaded modules / extensions. To avoid circular dependencies, - # references to -dev, -doc and -man are removed here. References to -lib must be kept, - # because there is a realistic use-case for extensions to locate the /lib directory to - # load other shared modules. - remove-references-to -t "$dev" -t "$doc" -t "$man" "$out/bin/postgres" - '' - + lib.optionalString (!stdenv'.hostPlatform.isStatic) '' - if [ -z "''${dontDisableStatic:-}" ]; then - # Remove static libraries in case dynamic are available. - for i in $lib/lib/*.a; do - name="$(basename "$i")" - ext="${stdenv'.hostPlatform.extensions.sharedLibrary}" - if [ -e "$lib/lib/''${name%.a}$ext" ] || [ -e "''${i%.a}$ext" ]; then - rm "$i" - fi - done + [ + "LDFLAGS_EX_BE=-Wl,--export-dynamic" + ] + ++ lib.optionals ldapSupport [ "--with-ldap" ] + ++ lib.optionals tclSupport [ "--with-tcl" ] + ++ lib.optionals selinuxSupport [ "--with-selinux" ] + ++ lib.optionals nlsSupport [ "--enable-nls" ] + ++ 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 = [ + ( + if atLeast "16" then + ./patches/relative-to-symlinks-16+.patch + else + ./patches/relative-to-symlinks.patch + ) + ( + if atLeast "15" then + ./patches/empty-pg-config-view-15+.patch + else + ./patches/empty-pg-config-view.patch + ) + ./patches/less-is-more.patch + ./patches/paths-for-split-outputs.patch + ./patches/paths-with-postgresql-suffix.patch + + (replaceVars ./patches/locale-binary-path.patch { + locale = "${ + if stdenv.hostPlatform.isDarwin then + darwin.adv_cmds + else if stdenv.hostPlatform.isFreeBSD then + freebsd.locale + else + lib.getBin stdenv.cc.libc + }/bin/locale"; + }) + ] + ++ lib.optionals stdenv'.hostPlatform.isMusl ( + # Using fetchurl instead of fetchpatch on purpose: https://github.com/NixOS/nixpkgs/issues/240141 + map fetchurl (lib.attrValues muslPatches) + ) + ++ lib.optionals stdenv'.hostPlatform.isLinux [ + ./patches/socketdir-in-run-13+.patch + ] + ++ lib.optionals (stdenv'.hostPlatform.isDarwin && olderThan "16") [ + ./patches/export-dynamic-darwin-15-.patch + ]; + + installTargets = [ "install-world" ]; + + postPatch = '' + substituteInPlace "src/Makefile.global.in" --subst-var out + substituteInPlace "src/common/config_info.c" --subst-var dev + cat ${./pg_config.env.mk} >> src/common/Makefile + '' + # This test always fails on hardware with >1 NUMA node: the sysfs + # dirs providing information about the topology are hidden in the sandbox, + # so postgres assumes there's only a single node `0`. However, + # the test checks on which NUMA nodes the allocated pages are which is >1 + # on such hardware. This in turn triggers a safeguard in the view + # which breaks the test. + # Manual tests confirm that the testcase behaves properly outside of the + # Nix sandbox. + + lib.optionalString (atLeast "18") '' + substituteInPlace src/test/regress/parallel_schedule \ + --replace-fail numa "" + ''; + + postInstall = '' + moveToOutput "bin/ecpg" "$dev" + moveToOutput "lib/pgxs" "$dev" + '' + + lib.optionalString (stdenv'.buildPlatform.canExecute stdenv'.hostPlatform) '' + mkdir -p "$dev/nix-support" + "$out/bin/pg_config" > "$dev/nix-support/pg_config.expected" + '' + + '' + rm "$out/bin/pg_config" + make -C src/common pg_config.env + substituteInPlace src/common/pg_config.env \ + --replace-fail "$out" "@out@" \ + --replace-fail "$man" "@man@" + install -D src/common/pg_config.env "$dev/nix-support/pg_config.env" + + # postgres exposes external symbols get_pkginclude_path and similar. Those + # can't be stripped away by --gc-sections/LTO, because they could theoretically + # be used by dynamically loaded modules / extensions. To avoid circular dependencies, + # references to -dev, -doc and -man are removed here. References to -lib must be kept, + # because there is a realistic use-case for extensions to locate the /lib directory to + # load other shared modules. + remove-references-to -t "$dev" -t "$doc" -t "$man" "$out/bin/postgres" + + if [ -z "''${dontDisableStatic:-}" ]; then + # Remove static libraries in case dynamic are available. + for i in $lib/lib/*.a; do + name="$(basename "$i")" + ext="${stdenv'.hostPlatform.extensions.sharedLibrary}" + if [ -e "$lib/lib/''${name%.a}$ext" ] || [ -e "''${i%.a}$ext" ]; then + rm "$i" fi - '' - + '' - # The remaining static libraries are libpgcommon.a, libpgport.a and related. - # Those are only used when building e.g. extensions, so go to $dev. - moveToOutput "lib/*.a" "$dev" - '' - + lib.optionalString jitSupport '' - # In the case of JIT support, prevent useless dependencies on header files - find "$out/lib" -iname '*.bc' -type f -exec nuke-refs '{}' + - - # Stop lib depending on the -dev output of llvm - remove-references-to -t ${llvmPackages.llvm.dev} "$out/lib/llvmjit${dlSuffix}" - - moveToOutput "lib/bitcode" "$jit" - moveToOutput "lib/llvmjit*" "$jit" - '' - + lib.optionalString stdenv'.hostPlatform.isDarwin '' - # The darwin specific Makefile for PGXS contains a reference to the postgres - # binary. Some extensions (here: postgis), which are able to set bindir correctly - # to their own output for installation, will then fail to find "postgres" during linking. - substituteInPlace "$dev/lib/pgxs/src/Makefile.port" \ - --replace-fail '-bundle_loader $(bindir)/postgres' "-bundle_loader $out/bin/postgres" - '' - + lib.optionalString perlSupport '' - moveToOutput "lib/*plperl*" "$plperl" - moveToOutput "share/postgresql/extension/*plperl*" "$plperl" - '' - + lib.optionalString pythonSupport '' - moveToOutput "lib/*plpython3*" "$plpython3" - moveToOutput "share/postgresql/extension/*plpython3*" "$plpython3" - '' - + lib.optionalString tclSupport '' - moveToOutput "lib/*pltcl*" "$pltcl" - moveToOutput "share/postgresql/extension/*pltcl*" "$pltcl" - ''; - - postFixup = lib.optionalString stdenv'.hostPlatform.isGnu '' - # initdb needs access to "locale" command from glibc. - wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin - ''; - - # Running tests as "install check" to work around SIP issue on macOS: - # https://www.postgresql.org/message-id/flat/4D8E1BC5-BBCF-4B19-8226-359201EA8305%40gmail.com - # Also see /doc/stdenv/platform-notes.chapter.md - doCheck = false; - doInstallCheck = - !(stdenv'.hostPlatform.isStatic) - && - # Tests currently can't be run on darwin, because of a Nix bug: - # https://github.com/NixOS/nix/issues/12548 - # https://git.lix.systems/lix-project/lix/issues/691 - # The error appears as this in the initdb logs: - # FATAL: could not create shared memory segment: Cannot allocate memory - # Don't let yourself be fooled when trying to remove this condition: Running - # the tests works fine most of the time. But once the tests (or any package using - # postgresqlTestHook) fails on the same machine for a few times, enough IPC objects - # will be stuck around, and any future builds with the tests enabled *will* fail. - !(stdenv'.hostPlatform.isDarwin) - && - # Regression tests currently fail in pkgsMusl because of a difference in EXPLAIN output. - !(stdenv'.hostPlatform.isMusl) - && - # Modifying block sizes is expected to break regression tests. - # https://www.postgresql.org/message-id/E1TJOeZ-000717-Lg%40wrigleys.postgresql.org - (withBlocksize == null && withWalBlocksize == null); - installCheckTarget = "check-world"; - - passthru = { - inherit dlSuffix; - - psqlSchema = lib.versions.major version; - - withJIT = - if jitSupport then - finalAttrs.finalPackage.withPackages (_: [ finalAttrs.finalPackage.jit ]) - else - null; - withoutJIT = finalAttrs.finalPackage.withPackages (_: [ ]); - - pkgs = - let - scope = { - inherit - jitSupport - pythonSupport - perlSupport - tclSupport - ; - inherit (llvmPackages) llvm; - postgresql = finalAttrs.finalPackage; - stdenv = stdenv'; - postgresqlTestExtension = newSuper.callPackage ./postgresqlTestExtension.nix { }; - postgresqlBuildExtension = newSuper.callPackage ./postgresqlBuildExtension.nix { }; - }; - newSelf = self // scope; - newSuper = { - callPackage = newScope (scope // finalAttrs.finalPackage.pkgs); - }; - in - import ./ext.nix newSelf newSuper; - - withPackages = postgresqlWithPackages { - inherit buildEnv lib makeBinaryWrapper; + done + fi + + # The remaining static libraries are libpgcommon.a, libpgport.a and related. + # Those are only used when building e.g. extensions, so go to $dev. + moveToOutput "lib/*.a" "$dev" + '' + + lib.optionalString jitSupport '' + # In the case of JIT support, prevent useless dependencies on header files + find "$out/lib" -iname '*.bc' -type f -exec nuke-refs '{}' + + + # Stop lib depending on the -dev output of llvm + remove-references-to -t ${llvmPackages.llvm.dev} "$out/lib/llvmjit${dlSuffix}" + + moveToOutput "lib/bitcode" "$jit" + moveToOutput "lib/llvmjit*" "$jit" + '' + + lib.optionalString stdenv'.hostPlatform.isDarwin '' + # The darwin specific Makefile for PGXS contains a reference to the postgres + # binary. Some extensions (here: postgis), which are able to set bindir correctly + # to their own output for installation, will then fail to find "postgres" during linking. + substituteInPlace "$dev/lib/pgxs/src/Makefile.port" \ + --replace-fail '-bundle_loader $(bindir)/postgres' "-bundle_loader $out/bin/postgres" + '' + + lib.optionalString perlSupport '' + moveToOutput "lib/*plperl*" "$plperl" + moveToOutput "share/postgresql/extension/*plperl*" "$plperl" + '' + + lib.optionalString pythonSupport '' + moveToOutput "lib/*plpython3*" "$plpython3" + moveToOutput "share/postgresql/extension/*plpython3*" "$plpython3" + '' + + lib.optionalString tclSupport '' + moveToOutput "lib/*pltcl*" "$pltcl" + moveToOutput "share/postgresql/extension/*pltcl*" "$pltcl" + ''; + + postFixup = lib.optionalString stdenv'.hostPlatform.isGnu '' + # initdb needs access to "locale" command from glibc. + wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin + ''; + + # Running tests as "install check" to work around SIP issue on macOS: + # https://www.postgresql.org/message-id/flat/4D8E1BC5-BBCF-4B19-8226-359201EA8305%40gmail.com + # Also see /doc/stdenv/platform-notes.chapter.md + doCheck = false; + doInstallCheck = + # Tests currently can't be run on darwin, because of a Nix bug: + # https://github.com/NixOS/nix/issues/12548 + # https://git.lix.systems/lix-project/lix/issues/691 + # The error appears as this in the initdb logs: + # FATAL: could not create shared memory segment: Cannot allocate memory + # Don't let yourself be fooled when trying to remove this condition: Running + # the tests works fine most of the time. But once the tests (or any package using + # postgresqlTestHook) fails on the same machine for a few times, enough IPC objects + # will be stuck around, and any future builds with the tests enabled *will* fail. + !(stdenv'.hostPlatform.isDarwin) + && + # Regression tests currently fail in pkgsMusl because of a difference in EXPLAIN output. + !(stdenv'.hostPlatform.isMusl) + && + # Modifying block sizes is expected to break regression tests. + # https://www.postgresql.org/message-id/E1TJOeZ-000717-Lg%40wrigleys.postgresql.org + (withBlocksize == null && withWalBlocksize == null); + installCheckTarget = "check-world"; + + passthru = { + inherit dlSuffix; + + psqlSchema = lib.versions.major version; + + withJIT = + if jitSupport then + finalAttrs.finalPackage.withPackages (_: [ finalAttrs.finalPackage.jit ]) + else + null; + withoutJIT = finalAttrs.finalPackage.withPackages (_: [ ]); + + pkgs = + let + scope = { + inherit + jitSupport + pythonSupport + perlSupport + tclSupport + ; + inherit (llvmPackages) llvm; postgresql = finalAttrs.finalPackage; + stdenv = stdenv'; + postgresqlTestExtension = newSuper.callPackage ./postgresqlTestExtension.nix { }; + postgresqlBuildExtension = newSuper.callPackage ./postgresqlBuildExtension.nix { }; }; - - pg_config = buildPackages.callPackage ./pg_config.nix { - inherit (finalAttrs) finalPackage; - outputs = { - out = lib.getOutput "out" finalAttrs.finalPackage; - man = lib.getOutput "man" finalAttrs.finalPackage; - }; + newSelf = self // scope; + newSuper = { + callPackage = newScope (scope // finalAttrs.finalPackage.pkgs); }; + in + import ./ext.nix newSelf newSuper; - tests = { - postgresql = nixosTests.postgresql.postgresql.passthru.override finalAttrs.finalPackage; - postgresql-replication = nixosTests.postgresql.postgresql-replication.passthru.override finalAttrs.finalPackage; - postgresql-tls-client-cert = nixosTests.postgresql.postgresql-tls-client-cert.passthru.override finalAttrs.finalPackage; - postgresql-wal-receiver = nixosTests.postgresql.postgresql-wal-receiver.passthru.override finalAttrs.finalPackage; - pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - } - // lib.optionalAttrs jitSupport { - postgresql-jit = nixosTests.postgresql.postgresql-jit.passthru.override finalAttrs.finalPackage; - }; - }; + withPackages = self.callPackage ./wrapper.nix { postgresql = finalAttrs.finalPackage; }; - meta = { - homepage = "https://www.postgresql.org"; - description = "Powerful, open source object-relational database system"; - license = lib.licenses.postgresql; - changelog = "https://www.postgresql.org/docs/release/${finalAttrs.version}/"; - teams = [ lib.teams.postgres ]; - pkgConfigModules = [ - "libecpg" - "libecpg_compat" - "libpgtypes" - "libpq" - ]; - platforms = lib.platforms.unix; - - # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode - # (`%.bc` is the corresponding `make(1)`-rule) for each sub-directory in `backend/` for - # the JIT apparently, but with a $(CLANG) that can produce binaries for the build, not the - # host-platform. - # - # I managed to get a cross-build with JIT support working with - # `depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but considering that the - # resulting LLVM IR isn't platform-independent this doesn't give you much. - # In fact, I tried to test the result in a VM-test, but as soon as JIT was used to optimize - # a query, postgres would coredump with `Illegal instruction`. - # - # Note: This is "host canExecute build" on purpose, since this is about the LLVM that is called - # to do JIT at **runtime**. - broken = jitSupport && !stdenv.hostPlatform.canExecute stdenv.buildPlatform; + pg_config = buildPackages.callPackage ./pg_config.nix { + inherit (finalAttrs) finalPackage; + outputs = { + out = lib.getOutput "out" finalAttrs.finalPackage; + man = lib.getOutput "man" finalAttrs.finalPackage; }; - }); - - postgresqlWithPackages = - { - postgresql, - buildEnv, - lib, - makeBinaryWrapper, - }: - f: - let - installedExtensions = f postgresql.pkgs; - recurse = postgresqlWithPackages { - inherit - buildEnv - lib - makeBinaryWrapper - postgresql - ; - }; - finalPackage = buildEnv { - pname = "${postgresql.pname}-and-plugins"; - inherit (postgresql) version; - paths = installedExtensions ++ [ - # consider keeping in-sync with `postBuild` below - postgresql - postgresql.man # in case user installs this into environment - ]; - - pathsToLink = [ - "/" - "/bin" - "/share/postgresql/extension" - # Unbreaks Omnigres' build system - "/share/postgresql/timezonesets" - "/share/postgresql/tsearch_data" - ]; - - derivationArgs = { - strictDeps = true; - nativeBuildInputs = [ makeBinaryWrapper ]; - postBuild = - let - args = lib.concatMap (ext: ext.wrapperArgs or [ ]) installedExtensions; - in - '' - wrapProgram "$out/bin/postgres" ${lib.concatStringsSep " " args} - ''; - }; - - passthru = { - inherit installedExtensions; - inherit (postgresql) - pkgs - psqlSchema - ; - - pg_config = postgresql.pg_config.override { - outputs = { - out = finalPackage; - man = finalPackage; - }; - }; - - withJIT = recurse (_: installedExtensions ++ [ postgresql.jit ]); - withoutJIT = recurse (_: lib.remove postgresql.jit installedExtensions); - - withPackages = f': recurse (ps: installedExtensions ++ f' ps); - }; - }; - in - finalPackage; - -in -# passed by .nix -versionArgs: -# passed by default.nix -{ self, ... }@defaultArgs: -self.callPackage generic (defaultArgs // versionArgs) + }; + + tests = { + postgresql = nixosTests.postgresql.postgresql.passthru.override finalAttrs.finalPackage; + postgresql-replication = nixosTests.postgresql.postgresql-replication.passthru.override finalAttrs.finalPackage; + postgresql-tls-client-cert = nixosTests.postgresql.postgresql-tls-client-cert.passthru.override finalAttrs.finalPackage; + postgresql-wal-receiver = nixosTests.postgresql.postgresql-wal-receiver.passthru.override finalAttrs.finalPackage; + pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + } + // lib.optionalAttrs jitSupport { + postgresql-jit = nixosTests.postgresql.postgresql-jit.passthru.override finalAttrs.finalPackage; + }; + }; + + meta = { + homepage = "https://www.postgresql.org"; + description = "Powerful, open source object-relational database system"; + license = lib.licenses.postgresql; + changelog = "https://www.postgresql.org/docs/release/${finalAttrs.version}/"; + teams = [ lib.teams.postgres ]; + pkgConfigModules = [ + "libecpg" + "libecpg_compat" + "libpgtypes" + "libpq" + ]; + platforms = lib.platforms.unix; + + broken = + # JIT support doesn't work with cross-compilation. It is attempted to build LLVM-bytecode + # (`%.bc` is the corresponding `make(1)`-rule) for each sub-directory in `backend/` for + # the JIT apparently, but with a $(CLANG) that can produce binaries for the build, not the + # host-platform. + # + # I managed to get a cross-build with JIT support working with + # `depsBuildBuild = [ llvmPackages.clang ] ++ buildInputs`, but considering that the + # resulting LLVM IR isn't platform-independent this doesn't give you much. + # In fact, I tried to test the result in a VM-test, but as soon as JIT was used to optimize + # a query, postgres would coredump with `Illegal instruction`. + # + # Note: This is "host canExecute build" on purpose, since this is about the LLVM that is called + # to do JIT at **runtime**. + (jitSupport && !stdenv.hostPlatform.canExecute stdenv.buildPlatform) + # While PostgreSQL claims to support static builds, it does not do so in a way that + # would work properly and consistently in pkgsStatic. The server heavily depends on + # the ability to load shared modules at runtime, but dlopen() is stubbed out in static + # musl builds. The important part is, that the separate libpq package builds in pkgsStatic. + || stdenv.hostPlatform.isStatic; + }; +}) diff --git a/pkgs/servers/sql/postgresql/wrapper.nix b/pkgs/servers/sql/postgresql/wrapper.nix new file mode 100644 index 0000000000000..2f81cc546588f --- /dev/null +++ b/pkgs/servers/sql/postgresql/wrapper.nix @@ -0,0 +1,71 @@ +{ + buildEnv, + callPackage, + lib, + makeBinaryWrapper, + postgresql, +}: +f: +let + installedExtensions = f postgresql.pkgs; + recurse = import ./wrapper.nix { + # explicitly listed in case they were overridden + inherit + buildEnv + callPackage + lib + makeBinaryWrapper + postgresql + ; + }; +in +buildEnv (finalAttrs: { + pname = "${postgresql.pname}-and-plugins"; + inherit (postgresql) version; + paths = installedExtensions ++ [ + # consider keeping in-sync with `postBuild` below + postgresql + postgresql.man # in case user installs this into environment + ]; + + pathsToLink = [ + "/" + "/bin" + "/share/postgresql/extension" + # Unbreaks Omnigres' build system + "/share/postgresql/timezonesets" + "/share/postgresql/tsearch_data" + ]; + + derivationArgs = { + strictDeps = true; + nativeBuildInputs = [ makeBinaryWrapper ]; + postBuild = + let + args = lib.concatMap (ext: ext.wrapperArgs or [ ]) installedExtensions; + in + '' + wrapProgram "$out/bin/postgres" ${lib.concatStringsSep " " args} + ''; + }; + + passthru = { + inherit installedExtensions; + inherit (postgresql) + pkgs + psqlSchema + ; + + pg_config = postgresql.pg_config.override { + outputs = { + out = finalAttrs.finalPackage; + man = finalAttrs.finalPackage; + }; + }; + + withJIT = recurse (_: installedExtensions ++ [ postgresql.jit ]); + withoutJIT = recurse (_: lib.remove postgresql.jit installedExtensions); + + withPackages = f': recurse (ps: installedExtensions ++ f' ps); + }; +}) diff --git a/pkgs/servers/web-apps/lemmy/server.nix b/pkgs/servers/web-apps/lemmy/server.nix index c3cb5c6444e10..1b6028b4f37ec 100644 --- a/pkgs/servers/web-apps/lemmy/server.nix +++ b/pkgs/servers/web-apps/lemmy/server.nix @@ -49,6 +49,9 @@ rustPlatform.buildRustPackage rec { PROTOC = "${protobuf}/bin/protoc"; PROTOC_INCLUDE = "${protobuf}/include"; + + # #[deny(warnings)] trips on newer rustc + RUSTFLAGS = "--cap-lints warn"; }; nativeBuildInputs = [ protobuf diff --git a/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix b/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix deleted file mode 100644 index 1f4bf0b7cf1f2..0000000000000 --- a/pkgs/stdenv/darwin/bootstrap-files/x86_64-apple-darwin.nix +++ /dev/null @@ -1,22 +0,0 @@ -# Autogenerated by maintainers/scripts/bootstrap-files/refresh-tarballs.bash as: -# $ ./refresh-tarballs.bash --targets=x86_64-apple-darwin -# -# Metadata: -# - nixpkgs revision: d8657587c0c1ce2191b4b489299c386b5b7148c6 -# - hydra build: https://hydra.nixos.org/job/nixpkgs/trunk/stdenvBootstrapTools.x86_64-apple-darwin.build/latest -# - resolved hydra build: https://hydra.nixos.org/build/290554343 -# - instantiated derivation: /nix/store/38sk9c8s4zyhjrifcr9cd3a8d9hyi4zj-stdenv-bootstrap-tools.drv -# - output directory: /nix/store/y617yisg19x2pj34hzxg9zcm3wlsfj29-stdenv-bootstrap-tools -# - build time: Thu, 20 Feb 2025 12:38:34 +0000 -{ - bootstrapTools = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/d8657587c0c1ce2191b4b489299c386b5b7148c6/bootstrap-tools.tar.xz"; - hash = "sha256-gtkeaUaV8ZXY8JxEkyd7ZeB75MESpsBPjaux0B2c0lE="; - }; - unpack = import { - url = "http://tarballs.nixos.org/stdenv/x86_64-apple-darwin/d8657587c0c1ce2191b4b489299c386b5b7148c6/unpack.nar.xz"; - hash = "sha256-vgfZGKo6I565ORLZ/AGKh6SUpgLhgaanFuhYk897+zw="; - name = "unpack"; - unpack = true; - }; -} diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index d7e0dbf2c6ee2..b19cdcc54de28 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -18,7 +18,7 @@ if localSystem.isAarch64 then import ./bootstrap-files/aarch64-apple-darwin.nix else - import ./bootstrap-files/x86_64-apple-darwin.nix + throw "Unsupported platform for the Darwin stdenv" ), }: @@ -285,7 +285,6 @@ let }; sdkDarwinPackages = prevStage: { inherit (prevStage.darwin) - Csu adv_cmds copyfile libiconv @@ -601,6 +600,7 @@ assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check python3-bootstrap = super.python3.override { self = self.python3-bootstrap; pythonAttr = "python3-bootstrap"; + zstd = null; # Avoid infinite recursion due to zstd depending on libiconv, which depends on Python via Meson. enableLTO = false; }; @@ -1058,7 +1058,6 @@ assert bootstrapTools.passthru.isFromBootstrapFiles or false; # sanity check prevStage.updateAutotoolsGnuConfigScriptsHook prevStage.updateAutotoolsGnuConfigScriptsHook.gnu_config ] - ++ lib.optionals localSystem.isx86_64 [ prevStage.darwin.Csu ] ++ (with prevStage.darwin; [ binutils binutils.bintools diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index 1c5c82be25b7d..98eeded49b8c4 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -29,10 +29,15 @@ if [[ -n "${NIX_ATTRS_JSON_FILE:-}" ]]; then __structuredAttrs=1 echo "structuredAttrs is enabled" - for outputName in "${!outputs[@]}"; do - # ex: out=/nix/store/... - export "$outputName=${outputs[$outputName]}" - done + _exportOutputsByName() { + local outputName + for outputName in "${!outputs[@]}"; do + # ex: out=/nix/store/... + export "$outputName=${outputs[$outputName]}" + done + } + + _exportOutputsByName else __structuredAttrs= : "${outputs:=out}" diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index 77fb996d376b2..c9b64c3086e84 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -179,7 +179,13 @@ let buildPlatform = localSystem; hostPlatform = localSystem; targetPlatform = localSystem; - inherit extraNativeBuildInputs; + # Every real (post-dummy) stage needs this hook so configure scripts + # can recognise architectures (LoongArch, RISC-V, etc.). + extraNativeBuildInputs = + extraNativeBuildInputs + ++ lib.optional ( + prevStage ? updateAutotoolsGnuConfigScriptsHook + ) prevStage.updateAutotoolsGnuConfigScriptsHook; inherit (stage0) initialPath; preHook = '' # Don't patch #!/interpreter because it leads to retained @@ -275,11 +281,7 @@ in stageFun prevStage { name = "bootstrap-stage1"; - # Rebuild binutils to use from stage2 onwards. overrides = self: super: { - binutils-unwrapped = super.binutils-unwrapped.override { - enableGold = false; - }; inherit (prevStage) ccWrapperStdenv gcc-unwrapped @@ -309,9 +311,6 @@ in }; }); }; - - # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. - extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; } ) @@ -342,6 +341,8 @@ in gnum4 perl patchelf + nukeReferences + libxcrypt ; ${localSystem.libc} = prevStage.${localSystem.libc}; gmp = super.gmp.override { cxx = false; }; @@ -425,9 +426,6 @@ in ''; }); }; - - # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. - extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; } ) @@ -459,10 +457,10 @@ in bison texinfo which + nukeReferences + autoconf269 + libxcrypt ; - dejagnu = super.dejagnu.overrideAttrs (a: { - doCheck = false; - }); # Avoids infinite recursion, as this is in the build-time dependencies of libc. libiconv = self.libcIconv prevStage.libc; @@ -529,10 +527,6 @@ in ); }; - - # `gettext` comes with obsolete config.sub/config.guess that don't recognize LoongArch64. - # `libtool` comes with obsolete config.sub/config.guess that don't recognize Risc-V. - extraNativeBuildInputs = [ prevStage.updateAutotoolsGnuConfigScriptsHook ]; } ) @@ -574,6 +568,9 @@ in libidn2 libunistring libxcrypt + nukeReferences + autoconf269 + python3Minimal ; # We build a special copy of libgmp which doesn't use libstdc++, because # xgcc++'s libstdc++ references the bootstrap-files (which is what @@ -603,8 +600,6 @@ in }; extraNativeBuildInputs = [ prevStage.patchelf - # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. - prevStage.updateAutotoolsGnuConfigScriptsHook ]; } ) @@ -640,6 +635,7 @@ in linuxHeaders libidn2 libunistring + python3Minimal ; ${localSystem.libc} = prevStage.${localSystem.libc}; # Since this is the first fresh build of binutils since stage2, our own runtimeShell will be used. @@ -669,8 +665,6 @@ in extraNativeBuildInputs = [ prevStage.patchelf prevStage.xz - # Many tarballs come with obsolete config.sub/config.guess that don't recognize aarch64. - prevStage.updateAutotoolsGnuConfigScriptsHook ]; } ) @@ -838,7 +832,6 @@ in xz bashNonInteractive coreutils - diffutils findutils gawk gnused diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 63e8e2b32aaef..d02f45fb48845 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -254,6 +254,16 @@ in ) pkgs.arrayUtilities ); + # Accumulate all passthru.tests from qt5 into a single attribute set. + qt5 = recurseIntoAttrs { + wrapQtAppsHook = recurseIntoAttrs pkgs.qt5.wrapQtAppsHook.passthru.tests; + }; + + # Accumulate all passthru.tests from qt6 into a single attribute set. + qt6 = recurseIntoAttrs { + wrapQtAppsHook = recurseIntoAttrs pkgs.qt6.wrapQtAppsHook.passthru.tests; + }; + srcOnly = callPackage ../build-support/src-only/tests.nix { }; systemd = callPackage ./systemd { }; diff --git a/pkgs/test/pnpm/default.nix b/pkgs/test/pnpm/default.nix index 3a75e146cafa8..aa2da06e1ac80 100644 --- a/pkgs/test/pnpm/default.nix +++ b/pkgs/test/pnpm/default.nix @@ -8,7 +8,6 @@ pnpm-empty-lockfile = callPackage ./pnpm-empty-lockfile { }; pnpm-fixup-state-db = callPackage ./pnpm-fixup-state-db { }; pnpm-workspaces = lib.recurseIntoAttrs (callPackage ./pnpm-workspaces { }); - pnpm_11_v3 = callPackage ./pnpm_11_v3 { }; pnpm_11_v4 = callPackage ./pnpm_11_v4 { }; # pnpm reverse dependencies that don't have a top-level package diff --git a/pkgs/test/pnpm/pnpm-fixup-state-db/default.nix b/pkgs/test/pnpm/pnpm-fixup-state-db/default.nix index f4c47ae00efa4..a9f59e3c05ee1 100644 --- a/pkgs/test/pnpm/pnpm-fixup-state-db/default.nix +++ b/pkgs/test/pnpm/pnpm-fixup-state-db/default.nix @@ -19,5 +19,5 @@ testers.runCommand { cp ./store/index.db $out ''; - hash = "sha256-tjpKgdMvDcs0X65PENIsiHELYPzVupEH3jS4PyLsF40="; + hash = "sha256-P3PDQAziwUxl2pfYV+QyPVwNpq90Jg46bawTvrT0NOQ="; } diff --git a/pkgs/test/pnpm/pnpm_11_v3/default.nix b/pkgs/test/pnpm/pnpm_11_v3/default.nix deleted file mode 100644 index fb07efe96667a..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ - fetchPnpmDeps, - lib, - makeShellWrapper, - nodejs-slim, - pnpmConfigHook, - pnpm_11, - stdenv, - testers, -}: -let - pnpm = pnpm_11; -in -stdenv.mkDerivation (finalAttrs: { - pname = "pnpm-test"; - inherit (pnpm) version; - - src = ./src; - - pnpmDeps = testers.invalidateFetcherByDrvHash fetchPnpmDeps { - inherit (finalAttrs) pname version src; - inherit pnpm; - fetcherVersion = 3; - hash = "sha256-+Vrv5ZiVIARDZrR5/4OYRmaecQQZmcZFtMjK4qhXKb8="; - }; - - nativeBuildInputs = [ - makeShellWrapper - nodejs-slim - pnpm - pnpmConfigHook - ]; - - buildPhase = '' - runHook preBuild - - pnpm build - - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - install -Dm644 -t $out/lib/pnpm-11-test dist/index.js - - makeWrapper ${lib.getExe nodejs-slim} $out/bin/pnpm-11-test \ - --add-flags "$out/lib/pnpm-11-test" - - runHook postInstall - ''; - - __structuredAttrs = true; - - meta = { - license = lib.licenses.mit; - mainProgram = "pnpm-11-test"; - inherit (pnpm.meta) maintainers; - }; -}) diff --git a/pkgs/test/pnpm/pnpm_11_v3/src/.gitignore b/pkgs/test/pnpm/pnpm_11_v3/src/.gitignore deleted file mode 100644 index 1eae0cf6700ce..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/src/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -dist/ -node_modules/ diff --git a/pkgs/test/pnpm/pnpm_11_v3/src/index.ts b/pkgs/test/pnpm/pnpm_11_v3/src/index.ts deleted file mode 100644 index accefceba62b4..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello World"); diff --git a/pkgs/test/pnpm/pnpm_11_v3/src/package.json b/pkgs/test/pnpm/pnpm_11_v3/src/package.json deleted file mode 100644 index 1eb3b51b38869..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/src/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "pnpm11test", - "version": "1.0.0", - "description": "", - "main": "dist/index.js", - "scripts": { - "build": "tsc", - "start": "node dist/index.js" - }, - "license": "MIT", - "packageManager": "pnpm", - "type": "module", - "files": [ - "dist/" - ], - "devDependencies": { - "@types/node": "^25.5.0", - "typescript": "^6.0.2" - } -} diff --git a/pkgs/test/pnpm/pnpm_11_v3/src/pnpm-lock.yaml b/pkgs/test/pnpm/pnpm_11_v3/src/pnpm-lock.yaml deleted file mode 100644 index def71aa4e5a28..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/src/pnpm-lock.yaml +++ /dev/null @@ -1,39 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - devDependencies: - '@types/node': - specifier: ^25.5.0 - version: 25.5.0 - typescript: - specifier: ^6.0.2 - version: 6.0.2 - -packages: - - '@types/node@25.5.0': - resolution: {integrity: sha512-jp2P3tQMSxWugkCUKLRPVUpGaL5MVFwF8RDuSRztfwgN1wmqJeMSbKlnEtQqU8UrhTmzEmZdu2I6v2dpp7XIxw==} - - typescript@6.0.2: - resolution: {integrity: sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@7.18.2: - resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} - -snapshots: - - '@types/node@25.5.0': - dependencies: - undici-types: 7.18.2 - - typescript@6.0.2: {} - - undici-types@7.18.2: {} diff --git a/pkgs/test/pnpm/pnpm_11_v3/src/tsconfig.json b/pkgs/test/pnpm/pnpm_11_v3/src/tsconfig.json deleted file mode 100644 index 3471bd329666f..0000000000000 --- a/pkgs/test/pnpm/pnpm_11_v3/src/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "outDir": "dist", - "rootDir": ".", - "strict": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true - } -} diff --git a/pkgs/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index a014b652d313f..03c614cb66e94 100644 --- a/pkgs/tools/compression/zstd/default.nix +++ b/pkgs/tools/compression/zstd/default.nix @@ -2,7 +2,6 @@ lib, stdenv, fetchFromGitHub, - fetchpatch, cmake, bashNonInteractive, gnugrep, @@ -27,6 +26,11 @@ testers, }: +# Note: this package is used for bootstrapping fetchurl, and thus +# cannot use fetchpatch! All mutable patches (generated by GitHub or +# cgit) that are needed here should be included directly in Nixpkgs as +# files. + stdenv.mkDerivation (finalAttrs: { pname = "zstd"; version = "1.5.7"; @@ -49,11 +53,7 @@ stdenv.mkDerivation (finalAttrs: { # Pull missing manpages update: # https://github.com/facebook/zstd/pull/4302 # TODO: remove with 1.5.8 release - (fetchpatch { - name = "man-fix.patch"; - url = "https://github.com/facebook/zstd/commit/6af3842118ea5325480b403213b2a9fbed3d3d74.patch"; - hash = "sha256-i+iv+owUXbKU3UtZBsjfj86kFB3TDlpcVDNsDX8dyZE="; - }) + ./man-fix.patch ]; postPatch = lib.optionalString (!static) '' diff --git a/pkgs/tools/compression/zstd/man-fix.patch b/pkgs/tools/compression/zstd/man-fix.patch new file mode 100644 index 0000000000000..7ef0a5a08d37a --- /dev/null +++ b/pkgs/tools/compression/zstd/man-fix.patch @@ -0,0 +1,805 @@ +From 6af3842118ea5325480b403213b2a9fbed3d3d74 Mon Sep 17 00:00:00 2001 +From: Yann Collet +Date: Wed, 19 Feb 2025 16:25:00 -0800 +Subject: [PATCH] updated man pages and manual + +fixes #4301 +--- + doc/zstd_manual.html | 55 +++++---- + programs/zstd.1 | 260 +++++++++++++++++++++++++++++++++++++------ + programs/zstdgrep.1 | 2 +- + programs/zstdless.1 | 2 +- + 4 files changed, 257 insertions(+), 62 deletions(-) + +diff --git a/doc/zstd_manual.html b/doc/zstd_manual.html +index 485d5eafbe9..89f0761f492 100644 +--- a/doc/zstd_manual.html ++++ b/doc/zstd_manual.html +@@ -110,6 +110,7 @@

Decompression helper functions


+ - ZSTD_CONTENTSIZE_UNKNOWN if the size cannot be determined + - ZSTD_CONTENTSIZE_ERROR if an error occurred (e.g. invalid magic number, srcSize too small) + note 1 : a 0 return value means the frame is valid but "empty". ++ When invoking this method on a skippable frame, it will return 0. + note 2 : decompressed size is an optional field, it may not be present (typically in streaming mode). + When `return==ZSTD_CONTENTSIZE_UNKNOWN`, data to decompress could be any size. + In which case, it's necessary to use streaming mode to decompress data. +@@ -128,9 +129,8 @@

Decompression helper functions


+


+ +
ZSTD_DEPRECATED("Replaced by ZSTD_getFrameContentSize")
+-ZSTDLIB_API
+ unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize);
+-

NOTE: This function is now obsolete, in favor of ZSTD_getFrameContentSize(). ++

This function is now obsolete, in favor of ZSTD_getFrameContentSize(). + Both functions work the same way, but ZSTD_getDecompressedSize() blends + "empty", "unknown" and "error" results to the same return value (0), + while ZSTD_getFrameContentSize() gives them separate return values. +@@ -142,7 +142,12 @@

Decompression helper functions


+ `srcSize` must be >= first frame size + @return : the compressed size of the first frame starting at `src`, + suitable to pass as `srcSize` to `ZSTD_decompress` or similar, +- or an error code if input is invalid ++ or an error code if input is invalid ++ Note 1: this method is called _find*() because it's not enough to read the header, ++ it may have to scan through the frame's content, to reach its end. ++ Note 2: this method also works with Skippable Frames. In which case, ++ it returns the size of the complete skippable frame, ++ which is always equal to its content size + 8 bytes for headers. +


+ +

Compression helper functions


+@@ -166,8 +171,7 @@

Compression helper functions


+ +


+ +-

Error helper functions

#include "zstd_errors.h" /* list of errors */
+-/* ZSTD_isError() :
++

Error helper functions

/* ZSTD_isError() :
+  * Most ZSTD_* functions returning a size_t value can be tested for error,
+  * using ZSTD_isError().
+  * @return 1 if error, 0 otherwise
+@@ -1239,7 +1243,7 @@ 

Streaming decompression functions


+


+ +
ZSTDLIB_STATIC_API size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize);
+-

srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. ++

srcSize must be large enough, aka >= ZSTD_FRAMEHEADERSIZE_PREFIX. + @return : size of the Frame Header, + or an error code (if srcSize is too small) +


+@@ -1252,20 +1256,20 @@

Streaming decompression functions


+ unsigned blockSizeMax; + ZSTD_FrameType_e frameType;
/* if == ZSTD_skippableFrame, frameContentSize is the size of skippable content */ + unsigned headerSize; +- unsigned dictID; ++ unsigned dictID; /* for ZSTD_skippableFrame, contains the skippable magic variant [0-15] */ + unsigned checksumFlag; + unsigned _reserved1; + unsigned _reserved2; +-} ZSTD_frameHeader; ++} ZSTD_FrameHeader; +

+-
ZSTDLIB_STATIC_API size_t ZSTD_getFrameHeader(ZSTD_FrameHeader* zfhPtr, const void* src, size_t srcSize);   /**< doesn't consume input */
++
ZSTDLIB_STATIC_API size_t ZSTD_getFrameHeader(ZSTD_FrameHeader* zfhPtr, const void* src, size_t srcSize);
+ /*! ZSTD_getFrameHeader_advanced() :
+  *  same as ZSTD_getFrameHeader(),
+  *  with added capability to select a format (like ZSTD_f_zstd1_magicless) */
+ ZSTDLIB_STATIC_API size_t ZSTD_getFrameHeader_advanced(ZSTD_FrameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format);
+-

decode Frame Header, or requires larger `srcSize`. +- @return : 0, `zfhPtr` is correctly filled, +- >0, `srcSize` is too small, value is wanted `srcSize` amount, ++

decode Frame Header into `zfhPtr`, or requires larger `srcSize`. ++ @return : 0 => header is complete, `zfhPtr` is correctly filled, ++ >0 => `srcSize` is too small, @return value is the wanted `srcSize` amount, `zfhPtr` is not filled, + or an error code, which can be tested using ZSTD_isError() +


+ +@@ -1421,7 +1425,7 @@

Streaming decompression functions


+ ZSTD_compressSequencesAndLiterals(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t nbSequences, +- const void* literals, size_t litSize, size_t litCapacity, ++ const void* literals, size_t litSize, size_t litBufCapacity, + size_t decompressedSize); +

This is a variant of ZSTD_compressSequences() which, + instead of receiving (src,srcSize) as input parameter, receives (literals,litSize), +@@ -1435,20 +1439,22 @@

Streaming decompression functions


+ - Not compatible with frame checksum, which must be disabled + - If any block is incompressible, will fail and return an error + - @litSize must be == sum of all @.litLength fields in @inSeqs. Any discrepancy will generate an error. +- - the buffer @literals must have a size @litCapacity which is larger than @litSize by at least 8 bytes. ++ - @litBufCapacity is the size of the underlying buffer into which literals are written, starting at address @literals. ++ @litBufCapacity must be at least 8 bytes larger than @litSize. + - @decompressedSize must be correct, and correspond to the sum of all Sequences. Any discrepancy will generate an error. + @return : final compressed size, or a ZSTD error code. + +


+ +
ZSTDLIB_STATIC_API size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity,
+-                                const void* src, size_t srcSize, unsigned magicVariant);
++                                 const void* src, size_t srcSize,
++                                       unsigned magicVariant);
+ 

Generates a zstd skippable frame containing data given by src, and writes it to dst buffer. + + Skippable frames begin with a 4-byte magic number. There are 16 possible choices of magic number, + ranging from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15. +- As such, the parameter magicVariant controls the exact skippable frame magic number variant used, so +- the magic number used will be ZSTD_MAGIC_SKIPPABLE_START + magicVariant. ++ As such, the parameter magicVariant controls the exact skippable frame magic number variant used, ++ so the magic number used will be ZSTD_MAGIC_SKIPPABLE_START + magicVariant. + + Returns an error if destination buffer is not large enough, if the source size is not representable + with a 4-byte unsigned int, or if the parameter magicVariant is greater than 15 (and therefore invalid). +@@ -1457,13 +1463,14 @@

Streaming decompression functions


+ +


+ +-
size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity, unsigned* magicVariant,
+-                                const void* src, size_t srcSize);
+-

Retrieves a zstd skippable frame containing data given by src, and writes it to dst buffer. ++

ZSTDLIB_STATIC_API size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity,
++                                      unsigned* magicVariant,
++                                      const void* src, size_t srcSize);
++

Retrieves the content of a zstd skippable frame starting at @src, and writes it to @dst buffer. + +- The parameter magicVariant will receive the magicVariant that was supplied when the frame was written, +- i.e. magicNumber - ZSTD_MAGIC_SKIPPABLE_START. This can be NULL if the caller is not interested +- in the magicVariant. ++ The parameter @magicVariant will receive the magicVariant that was supplied when the frame was written, ++ i.e. magicNumber - ZSTD_MAGIC_SKIPPABLE_START. ++ This can be NULL if the caller is not interested in the magicVariant. + + Returns an error if destination buffer is not large enough, or if the frame is not skippable. + +@@ -1471,7 +1478,7 @@

Streaming decompression functions


+ +


+ +-
unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size);
++
ZSTDLIB_STATIC_API unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size);
+ 

Tells if the content of `buffer` starts with a valid Frame Identifier for a skippable frame. + +


+diff --git a/programs/zstd.1 b/programs/zstd.1 +index 5f1519f3323..5503a5b86f4 100644 +--- a/programs/zstd.1 ++++ b/programs/zstd.1 +@@ -1,392 +1,580 @@ +-.TH "ZSTD" "1" "October 2024" "zstd 1.5.6" "User Commands" ++. ++.TH "ZSTD" "1" "February 2025" "zstd 1.5.7" "User Commands" ++. + .SH "NAME" + \fBzstd\fR \- zstd, zstdmt, unzstd, zstdcat \- Compress or decompress \.zst files ++. + .SH "SYNOPSIS" +-.TS +-allbox; +-\fBzstd\fR [\fIOPTIONS\fR] [\- \fIINPUT\-FILE\fR] [\-o \fIOUTPUT\-FILE\fR] +-.TE ++\fBzstd\fR [\fIOPTIONS\fR] [\-|\fIINPUT\-FILE\fR] [\-o \fIOUTPUT\-FILE\fR] ++. + .P + \fBzstdmt\fR is equivalent to \fBzstd \-T0\fR ++. + .P + \fBunzstd\fR is equivalent to \fBzstd \-d\fR ++. + .P + \fBzstdcat\fR is equivalent to \fBzstd \-dcf\fR ++. + .SH "DESCRIPTION" + \fBzstd\fR is a fast lossless compression algorithm and data compression tool, with command line syntax similar to \fBgzip\fR(1) and \fBxz\fR(1)\. It is based on the \fBLZ77\fR family, with further FSE & huff0 entropy stages\. \fBzstd\fR offers highly configurable compression speed, from fast modes at > 200 MB/s per core, to strong modes with excellent compression ratios\. It also features a very fast decoder, with speeds > 500 MB/s per core, which remains roughly stable at all compression settings\. ++. + .P + \fBzstd\fR command line syntax is generally similar to gzip, but features the following few differences: ++. + .IP "\(bu" 4 +-Source files are preserved by default\. It's possible to remove them automatically by using the \fB\-\-rm\fR command\. ++Source files are preserved by default\. It\'s possible to remove them automatically by using the \fB\-\-rm\fR command\. ++. + .IP "\(bu" 4 + When compressing a single file, \fBzstd\fR displays progress notifications and result summary by default\. Use \fB\-q\fR to turn them off\. ++. + .IP "\(bu" 4 + \fBzstd\fR displays a short help page when command line is an error\. Use \fB\-q\fR to turn it off\. ++. + .IP "\(bu" 4 +-\fBzstd\fR does not accept input from console, though it does accept \fBstdin\fR when it's not the console\. ++\fBzstd\fR does not accept input from console, though it does accept \fBstdin\fR when it\'s not the console\. ++. + .IP "\(bu" 4 +-\fBzstd\fR does not store the input's filename or attributes, only its contents\. ++\fBzstd\fR does not store the input\'s filename or attributes, only its contents\. ++. + .IP "" 0 ++. + .P + \fBzstd\fR processes each \fIfile\fR according to the selected operation mode\. If no \fIfiles\fR are given or \fIfile\fR is \fB\-\fR, \fBzstd\fR reads from standard input and writes the processed data to standard output\. \fBzstd\fR will refuse to write compressed data to standard output if it is a terminal: it will display an error message and skip the file\. Similarly, \fBzstd\fR will refuse to read compressed data from standard input if it is a terminal\. ++. + .P + Unless \fB\-\-stdout\fR or \fB\-o\fR is specified, \fIfiles\fR are written to a new file whose name is derived from the source \fIfile\fR name: ++. + .IP "\(bu" 4 + When compressing, the suffix \fB\.zst\fR is appended to the source filename to get the target filename\. ++. + .IP "\(bu" 4 + When decompressing, the \fB\.zst\fR suffix is removed from the source filename to get the target filename ++. + .IP "" 0 ++. + .SS "Concatenation with \.zst Files" + It is possible to concatenate multiple \fB\.zst\fR files\. \fBzstd\fR will decompress such agglomerated file as if it was a single \fB\.zst\fR file\. ++. + .SH "OPTIONS" ++. + .SS "Integer Suffixes and Special Values" + In most places where an integer argument is expected, an optional suffix is supported to easily indicate large integers\. There must be no space between the integer and the suffix\. ++. + .TP + \fBKiB\fR +-Multiply the integer by 1,024 (2\e^10)\. \fBKi\fR, \fBK\fR, and \fBKB\fR are accepted as synonyms for \fBKiB\fR\. ++Multiply the integer by 1,024 (2^10)\. \fBKi\fR, \fBK\fR, and \fBKB\fR are accepted as synonyms for \fBKiB\fR\. ++. + .TP + \fBMiB\fR +-Multiply the integer by 1,048,576 (2\e^20)\. \fBMi\fR, \fBM\fR, and \fBMB\fR are accepted as synonyms for \fBMiB\fR\. ++Multiply the integer by 1,048,576 (2^20)\. \fBMi\fR, \fBM\fR, and \fBMB\fR are accepted as synonyms for \fBMiB\fR\. ++. + .SS "Operation Mode" + If multiple operation mode options are given, the last one takes effect\. ++. + .TP + \fB\-z\fR, \fB\-\-compress\fR + Compress\. This is the default operation mode when no operation mode option is specified and no other operation mode is implied from the command name (for example, \fBunzstd\fR implies \fB\-\-decompress\fR)\. ++. + .TP + \fB\-d\fR, \fB\-\-decompress\fR, \fB\-\-uncompress\fR + Decompress\. ++. + .TP + \fB\-t\fR, \fB\-\-test\fR + Test the integrity of compressed \fIfiles\fR\. This option is equivalent to \fB\-\-decompress \-\-stdout > /dev/null\fR, decompressed data is discarded and checksummed for errors\. No files are created or removed\. ++. + .TP + \fB\-b#\fR + Benchmark file(s) using compression level \fI#\fR\. See \fIBENCHMARK\fR below for a description of this operation\. ++. + .TP + \fB\-\-train FILES\fR + Use \fIFILES\fR as a training set to create a dictionary\. The training set should contain a lot of small files (> 100)\. See \fIDICTIONARY BUILDER\fR below for a description of this operation\. ++. + .TP + \fB\-l\fR, \fB\-\-list\fR +-Display information related to a zstd compressed file, such as size, ratio, and checksum\. Some of these fields may not be available\. This command's output can be augmented with the \fB\-v\fR modifier\. ++Display information related to a zstd compressed file, such as size, ratio, and checksum\. Some of these fields may not be available\. This command\'s output can be augmented with the \fB\-v\fR modifier\. ++. + .SS "Operation Modifiers" ++. + .IP "\(bu" 4 +-\fB\-#\fR: selects \fB#\fR compression level [1\-19] (default: 3)\. Higher compression levels \fIgenerally\fR produce higher compression ratio at the expense of speed and memory\. A rough rule of thumb is that compression speed is expected to be divided by 2 every 2 levels\. Technically, each level is mapped to a set of advanced parameters (that can also be modified individually, see below)\. Because the compressor's behavior highly depends on the content to compress, there's no guarantee of a smooth progression from one level to another\. ++\fB\-#\fR: selects \fB#\fR compression level [1\-19] (default: 3)\. Higher compression levels \fIgenerally\fR produce higher compression ratio at the expense of speed and memory\. A rough rule of thumb is that compression speed is expected to be divided by 2 every 2 levels\. Technically, each level is mapped to a set of advanced parameters (that can also be modified individually, see below)\. Because the compressor\'s behavior highly depends on the content to compress, there\'s no guarantee of a smooth progression from one level to another\. ++. + .IP "\(bu" 4 + \fB\-\-ultra\fR: unlocks high compression levels 20+ (maximum 22), using a lot more memory\. Note that decompression will also require more memory when using these levels\. ++. + .IP "\(bu" 4 + \fB\-\-fast[=#]\fR: switch to ultra\-fast compression levels\. If \fB=#\fR is not present, it defaults to \fB1\fR\. The higher the value, the faster the compression speed, at the cost of some compression ratio\. This setting overwrites compression level if one was set previously\. Similarly, if a compression level is set after \fB\-\-fast\fR, it overrides it\. ++. + .IP "\(bu" 4 + \fB\-T#\fR, \fB\-\-threads=#\fR: Compress using \fB#\fR working threads (default: 1)\. If \fB#\fR is 0, attempt to detect and use the number of physical CPU cores\. In all cases, the nb of threads is capped to \fBZSTDMT_NBWORKERS_MAX\fR, which is either 64 in 32\-bit mode, or 256 for 64\-bit environments\. This modifier does nothing if \fBzstd\fR is compiled without multithread support\. ++. + .IP "\(bu" 4 + \fB\-\-single\-thread\fR: Use a single thread for both I/O and compression\. As compression is serialized with I/O, this can be slightly slower\. Single\-thread mode features significantly lower memory usage, which can be useful for systems with limited amount of memory, such as 32\-bit systems\. ++. + .IP + Note 1: this mode is the only available one when multithread support is disabled\. ++. + .IP + Note 2: this mode is different from \fB\-T1\fR, which spawns 1 compression thread in parallel with I/O\. Final compressed result is also slightly different from \fB\-T1\fR\. ++. + .IP "\(bu" 4 + \fB\-\-auto\-threads={physical,logical} (default: physical)\fR: When using a default amount of threads via \fB\-T0\fR, choose the default based on the number of detected physical or logical cores\. ++. + .IP "\(bu" 4 + \fB\-\-adapt[=min=#,max=#]\fR: \fBzstd\fR will dynamically adapt compression level to perceived I/O conditions\. Compression level adaptation can be observed live by using command \fB\-v\fR\. Adaptation can be constrained between supplied \fBmin\fR and \fBmax\fR levels\. The feature works when combined with multi\-threading and \fB\-\-long\fR mode\. It does not work with \fB\-\-single\-thread\fR\. It sets window size to 8 MiB by default (can be changed manually, see \fBwlog\fR)\. Due to the chaotic nature of dynamic adaptation, compressed result is not reproducible\. ++. + .IP + \fINote\fR: at the time of this writing, \fB\-\-adapt\fR can remain stuck at low speed when combined with multiple worker threads (>=2)\. ++. + .IP "\(bu" 4 + \fB\-\-long[=#]\fR: enables long distance matching with \fB#\fR \fBwindowLog\fR, if \fB#\fR is not present it defaults to \fB27\fR\. This increases the window size (\fBwindowLog\fR) and memory usage for both the compressor and decompressor\. This setting is designed to improve the compression ratio for files with long matches at a large distance\. ++. + .IP + Note: If \fBwindowLog\fR is set to larger than 27, \fB\-\-long=windowLog\fR or \fB\-\-memory=windowSize\fR needs to be passed to the decompressor\. ++. ++.IP "\(bu" 4 ++\fB\-\-max\fR: set advanced parameters to maximum compression\. warning: this setting is very slow and uses a lot of resources\. It\'s inappropriate for 32\-bit mode and therefore disabled in this mode\. ++. + .IP "\(bu" 4 + \fB\-D DICT\fR: use \fBDICT\fR as Dictionary to compress or decompress FILE(s) ++. + .IP "\(bu" 4 +-\fB\-\-patch\-from FILE\fR: Specify the file to be used as a reference point for zstd's diff engine\. This is effectively dictionary compression with some convenient parameter selection, namely that \fIwindowSize\fR > \fIsrcSize\fR\. ++\fB\-\-patch\-from FILE\fR: Specify the file to be used as a reference point for zstd\'s diff engine\. This is effectively dictionary compression with some convenient parameter selection, namely that \fIwindowSize\fR > \fIsrcSize\fR\. ++. + .IP + Note: cannot use both this and \fB\-D\fR together\. ++. + .IP + Note: \fB\-\-long\fR mode will be automatically activated if \fIchainLog\fR < \fIfileLog\fR (\fIfileLog\fR being the \fIwindowLog\fR required to cover the whole file)\. You can also manually force it\. ++. + .IP +-Note: up to level 15, you can use \fB\-\-patch\-from\fR in \fB\-\-single\-thread\fR mode to improve compression ratio marginally at the cost of speed\. Using '\-\-single\-thread' above level 15 will lead to lower compression ratios\. ++Note: up to level 15, you can use \fB\-\-patch\-from\fR in \fB\-\-single\-thread\fR mode to improve compression ratio marginally at the cost of speed\. Using \'\-\-single\-thread\' above level 15 will lead to lower compression ratios\. ++. + .IP + Note: for level 19, you can get increased compression ratio at the cost of speed by specifying \fB\-\-zstd=targetLength=\fR to be something large (i\.e\. 4096), and by setting a large \fB\-\-zstd=chainLog=\fR\. ++. + .IP "\(bu" 4 +-\fB\-\-rsyncable\fR: \fBzstd\fR will periodically synchronize the compression state to make the compressed file more rsync\-friendly\. There is a negligible impact to compression ratio, and a potential impact to compression speed, perceptible at higher speeds, for example when combining \fB\-\-rsyncable\fR with many parallel worker threads\. This feature does not work with \fB\-\-single\-thread\fR\. You probably don't want to use it with long range mode, since it will decrease the effectiveness of the synchronization points, but your mileage may vary\. ++\fB\-\-rsyncable\fR: \fBzstd\fR will periodically synchronize the compression state to make the compressed file more rsync\-friendly\. There is a negligible impact to compression ratio, and a potential impact to compression speed, perceptible at higher speeds, for example when combining \fB\-\-rsyncable\fR with many parallel worker threads\. This feature does not work with \fB\-\-single\-thread\fR\. You probably don\'t want to use it with long range mode, since it will decrease the effectiveness of the synchronization points, but your mileage may vary\. ++. + .IP "\(bu" 4 + \fB\-C\fR, \fB\-\-[no\-]check\fR: add integrity check computed from uncompressed data (default: enabled) ++. + .IP "\(bu" 4 + \fB\-\-[no\-]content\-size\fR: enable / disable whether or not the original size of the file is placed in the header of the compressed file\. The default option is \fB\-\-content\-size\fR (meaning that the original size will be placed in the header)\. ++. + .IP "\(bu" 4 +-\fB\-\-no\-dictID\fR: do not store dictionary ID within frame header (dictionary compression)\. The decoder will have to rely on implicit knowledge about which dictionary to use, it won't be able to check if it's correct\. ++\fB\-\-no\-dictID\fR: do not store dictionary ID within frame header (dictionary compression)\. The decoder will have to rely on implicit knowledge about which dictionary to use, it won\'t be able to check if it\'s correct\. ++. + .IP "\(bu" 4 + \fB\-M#\fR, \fB\-\-memory=#\fR: Set a memory usage limit\. By default, \fBzstd\fR uses 128 MiB for decompression as the maximum amount of memory the decompressor is allowed to use, but you can override this manually if need be in either direction (i\.e\. you can increase or decrease it)\. ++. + .IP + This is also used during compression when using with \fB\-\-patch\-from=\fR\. In this case, this parameter overrides that maximum size allowed for a dictionary\. (128 MiB)\. ++. + .IP + Additionally, this can be used to limit memory for dictionary training\. This parameter overrides the default limit of 2 GiB\. zstd will load training samples up to the memory limit and ignore the rest\. ++. + .IP "\(bu" 4 + \fB\-\-stream\-size=#\fR: Sets the pledged source size of input coming from a stream\. This value must be exact, as it will be included in the produced frame header\. Incorrect stream sizes will cause an error\. This information will be used to better optimize compression parameters, resulting in better and potentially faster compression, especially for smaller source sizes\. ++. + .IP "\(bu" 4 + \fB\-\-size\-hint=#\fR: When handling input from a stream, \fBzstd\fR must guess how large the source size will be when optimizing compression parameters\. If the stream size is relatively small, this guess may be a poor one, resulting in a higher compression ratio than expected\. This feature allows for controlling the guess when needed\. Exact guesses result in better compression ratios\. Overestimates result in slightly degraded compression ratios, while underestimates may result in significant degradation\. ++. + .IP "\(bu" 4 + \fB\-\-target\-compressed\-block\-size=#\fR: Attempt to produce compressed blocks of approximately this size\. This will split larger blocks in order to approach this target\. This feature is notably useful for improved latency, when the receiver can leverage receiving early incomplete data\. This parameter defines a loose target: compressed blocks will target this size "on average", but individual blocks can still be larger or smaller\. Enabling this feature can decrease compression speed by up to ~10% at level 1\. Higher levels will see smaller relative speed regression, becoming invisible at higher settings\. ++. + .IP "\(bu" 4 + \fB\-f\fR, \fB\-\-force\fR: disable input and output checks\. Allows overwriting existing files, input from console, output to stdout, operating on links, block devices, etc\. During decompression and when the output destination is stdout, pass\-through unrecognized formats as\-is\. ++. + .IP "\(bu" 4 + \fB\-c\fR, \fB\-\-stdout\fR: write to standard output (even if it is the console); keep original files (disable \fB\-\-rm\fR)\. ++. + .IP "\(bu" 4 + \fB\-o FILE\fR: save result into \fBFILE\fR\. Note that this operation is in conflict with \fB\-c\fR\. If both operations are present on the command line, the last expressed one wins\. ++. + .IP "\(bu" 4 + \fB\-\-[no\-]sparse\fR: enable / disable sparse FS support, to make files with many zeroes smaller on disk\. Creating sparse files may save disk space and speed up decompression by reducing the amount of disk I/O\. default: enabled when output is into a file, and disabled when output is stdout\. This setting overrides default and can force sparse mode over stdout\. ++. + .IP "\(bu" 4 + \fB\-\-[no\-]pass\-through\fR enable / disable passing through uncompressed files as\-is\. During decompression when pass\-through is enabled, unrecognized formats will be copied as\-is from the input to the output\. By default, pass\-through will occur when the output destination is stdout and the force (\fB\-f\fR) option is set\. ++. + .IP "\(bu" 4 + \fB\-\-rm\fR: remove source file(s) after successful compression or decompression\. This command is silently ignored if output is \fBstdout\fR\. If used in combination with \fB\-o\fR, triggers a confirmation prompt (which can be silenced with \fB\-f\fR), as this is a destructive operation\. ++. + .IP "\(bu" 4 + \fB\-k\fR, \fB\-\-keep\fR: keep source file(s) after successful compression or decompression\. This is the default behavior\. ++. + .IP "\(bu" 4 + \fB\-r\fR: operate recursively on directories\. It selects all files in the named directory and all its subdirectories\. This can be useful both to reduce command line typing, and to circumvent shell expansion limitations, when there are a lot of files and naming breaks the maximum size of a command line\. ++. + .IP "\(bu" 4 + \fB\-\-filelist FILE\fR read a list of files to process as content from \fBFILE\fR\. Format is compatible with \fBls\fR output, with one file per line\. ++. + .IP "\(bu" 4 + \fB\-\-output\-dir\-flat DIR\fR: resulting files are stored into target \fBDIR\fR directory, instead of same directory as origin file\. Be aware that this command can introduce name collision issues, if multiple files, from different directories, end up having the same name\. Collision resolution ensures first file with a given name will be present in \fBDIR\fR, while in combination with \fB\-f\fR, the last file will be present instead\. ++. + .IP "\(bu" 4 + \fB\-\-output\-dir\-mirror DIR\fR: similar to \fB\-\-output\-dir\-flat\fR, the output files are stored underneath target \fBDIR\fR directory, but this option will replicate input directory hierarchy into output \fBDIR\fR\. ++. + .IP + If input directory contains "\.\.", the files in this directory will be ignored\. If input directory is an absolute directory (i\.e\. "/var/tmp/abc"), it will be stored into the "output\-dir/var/tmp/abc"\. If there are multiple input files or directories, name collision resolution will follow the same rules as \fB\-\-output\-dir\-flat\fR\. ++. + .IP "\(bu" 4 + \fB\-\-format=FORMAT\fR: compress and decompress in other formats\. If compiled with support, zstd can compress to or decompress from other compression algorithm formats\. Possibly available options are \fBzstd\fR, \fBgzip\fR, \fBxz\fR, \fBlzma\fR, and \fBlz4\fR\. If no such format is provided, \fBzstd\fR is the default\. ++. + .IP "\(bu" 4 + \fB\-h\fR/\fB\-H\fR, \fB\-\-help\fR: display help/long help and exit ++. + .IP "\(bu" 4 + \fB\-V\fR, \fB\-\-version\fR: display version number and immediately exit\. note that, since it exits, flags specified after \fB\-V\fR are effectively ignored\. Advanced: \fB\-vV\fR also displays supported formats\. \fB\-vvV\fR also displays POSIX support\. \fB\-qV\fR will only display the version number, suitable for machine reading\. ++. + .IP "\(bu" 4 + \fB\-v\fR, \fB\-\-verbose\fR: verbose mode, display more information ++. + .IP "\(bu" 4 + \fB\-q\fR, \fB\-\-quiet\fR: suppress warnings, interactivity, and notifications\. specify twice to suppress errors too\. ++. + .IP "\(bu" 4 + \fB\-\-no\-progress\fR: do not display the progress bar, but keep all other messages\. ++. + .IP "\(bu" 4 + \fB\-\-show\-default\-cparams\fR: shows the default compression parameters that will be used for a particular input file, based on the provided compression level and the input size\. If the provided file is not a regular file (e\.g\. a pipe), this flag will output the parameters used for inputs of unknown size\. ++. + .IP "\(bu" 4 + \fB\-\-exclude\-compressed\fR: only compress files that are not already compressed\. ++. + .IP "\(bu" 4 + \fB\-\-\fR: All arguments after \fB\-\-\fR are treated as files ++. + .IP "" 0 ++. + .SS "gzip Operation Modifiers" + When invoked via a \fBgzip\fR symlink, \fBzstd\fR will support further options that intend to mimic the \fBgzip\fR behavior: ++. + .TP + \fB\-n\fR, \fB\-\-no\-name\fR + do not store the original filename and timestamps when compressing a file\. This is the default behavior and hence a no\-op\. ++. + .TP + \fB\-\-best\fR + alias to the option \fB\-9\fR\. ++. + .SS "Environment Variables" + Employing environment variables to set parameters has security implications\. Therefore, this avenue is intentionally limited\. Only \fBZSTD_CLEVEL\fR and \fBZSTD_NBTHREADS\fR are currently supported\. They set the default compression level and number of threads to use during compression, respectively\. ++. + .P + \fBZSTD_CLEVEL\fR can be used to set the level between 1 and 19 (the "normal" range)\. If the value of \fBZSTD_CLEVEL\fR is not a valid integer, it will be ignored with a warning message\. \fBZSTD_CLEVEL\fR just replaces the default compression level (\fB3\fR)\. ++. + .P +-\fBZSTD_NBTHREADS\fR can be used to set the number of threads \fBzstd\fR will attempt to use during compression\. If the value of \fBZSTD_NBTHREADS\fR is not a valid unsigned integer, it will be ignored with a warning message\. \fBZSTD_NBTHREADS\fR has a default value of (\fB1\fR), and is capped at ZSTDMT_NBWORKERS_MAX==200\. \fBzstd\fR must be compiled with multithread support for this variable to have any effect\. ++\fBZSTD_NBTHREADS\fR can be used to set the number of threads \fBzstd\fR will attempt to use during compression\. If the value of \fBZSTD_NBTHREADS\fR is not a valid unsigned integer, it will be ignored with a warning message\. \fBZSTD_NBTHREADS\fR has a default value of \fBmax(1, min(4, nbCores/4))\fR, and is capped at ZSTDMT_NBWORKERS_MAX==200\. \fBzstd\fR must be compiled with multithread support for this variable to have any effect\. ++. + .P + They can both be overridden by corresponding command line arguments: \fB\-#\fR for compression level and \fB\-T#\fR for number of compression threads\. ++. + .SH "ADVANCED COMPRESSION OPTIONS" + \fBzstd\fR provides 22 predefined regular compression levels plus the fast levels\. A compression level is translated internally into multiple advanced parameters that control the behavior of the compressor (one can observe the result of this translation with \fB\-\-show\-default\-cparams\fR)\. These advanced parameters can be overridden using advanced compression options\. ++. + .SS "\-\-zstd[=options]:" + The \fIoptions\fR are provided as a comma\-separated list\. You may specify only the options you want to change and the rest will be taken from the selected or default compression level\. The list of available \fIoptions\fR: ++. + .TP + \fBstrategy\fR=\fIstrat\fR, \fBstrat\fR=\fIstrat\fR + Specify a strategy used by a match finder\. ++. + .IP + There are 9 strategies numbered from 1 to 9, from fastest to strongest: 1=\fBZSTD_fast\fR, 2=\fBZSTD_dfast\fR, 3=\fBZSTD_greedy\fR, 4=\fBZSTD_lazy\fR, 5=\fBZSTD_lazy2\fR, 6=\fBZSTD_btlazy2\fR, 7=\fBZSTD_btopt\fR, 8=\fBZSTD_btultra\fR, 9=\fBZSTD_btultra2\fR\. ++. + .TP + \fBwindowLog\fR=\fIwlog\fR, \fBwlog\fR=\fIwlog\fR + Specify the maximum number of bits for a match distance\. ++. + .IP + The higher number of increases the chance to find a match which usually improves compression ratio\. It also increases memory requirements for the compressor and decompressor\. The minimum \fIwlog\fR is 10 (1 KiB) and the maximum is 30 (1 GiB) on 32\-bit platforms and 31 (2 GiB) on 64\-bit platforms\. ++. + .IP + Note: If \fBwindowLog\fR is set to larger than 27, \fB\-\-long=windowLog\fR or \fB\-\-memory=windowSize\fR needs to be passed to the decompressor\. ++. + .TP + \fBhashLog\fR=\fIhlog\fR, \fBhlog\fR=\fIhlog\fR + Specify the maximum number of bits for a hash table\. ++. + .IP + Bigger hash tables cause fewer collisions which usually makes compression faster, but requires more memory during compression\. ++. + .IP + The minimum \fIhlog\fR is 6 (64 entries / 256 B) and the maximum is 30 (1B entries / 4 GiB)\. ++. + .TP + \fBchainLog\fR=\fIclog\fR, \fBclog\fR=\fIclog\fR + Specify the maximum number of bits for the secondary search structure, whose form depends on the selected \fBstrategy\fR\. ++. + .IP + Higher numbers of bits increases the chance to find a match which usually improves compression ratio\. It also slows down compression speed and increases memory requirements for compression\. This option is ignored for the \fBZSTD_fast\fR \fBstrategy\fR, which only has the primary hash table\. ++. + .IP + The minimum \fIclog\fR is 6 (64 entries / 256 B) and the maximum is 29 (512M entries / 2 GiB) on 32\-bit platforms and 30 (1B entries / 4 GiB) on 64\-bit platforms\. ++. + .TP + \fBsearchLog\fR=\fIslog\fR, \fBslog\fR=\fIslog\fR + Specify the maximum number of searches in a hash chain or a binary tree using logarithmic scale\. ++. + .IP + More searches increases the chance to find a match which usually increases compression ratio but decreases compression speed\. ++. + .IP +-The minimum \fIslog\fR is 1 and the maximum is 'windowLog' \- 1\. ++The minimum \fIslog\fR is 1 and the maximum is \'windowLog\' \- 1\. ++. + .TP + \fBminMatch\fR=\fImml\fR, \fBmml\fR=\fImml\fR + Specify the minimum searched length of a match in a hash table\. ++. + .IP + Larger search lengths usually decrease compression ratio but improve decompression speed\. ++. + .IP + The minimum \fImml\fR is 3 and the maximum is 7\. ++. + .TP + \fBtargetLength\fR=\fItlen\fR, \fBtlen\fR=\fItlen\fR + The impact of this field vary depending on selected strategy\. ++. + .IP + For \fBZSTD_btopt\fR, \fBZSTD_btultra\fR and \fBZSTD_btultra2\fR, it specifies the minimum match length that causes match finder to stop searching\. A larger \fBtargetLength\fR usually improves compression ratio but decreases compression speed\. ++. + .IP + For \fBZSTD_fast\fR, it triggers ultra\-fast mode when > 0\. The value represents the amount of data skipped between match sampling\. Impact is reversed: a larger \fBtargetLength\fR increases compression speed but decreases compression ratio\. ++. + .IP + For all other strategies, this field has no impact\. ++. + .IP + The minimum \fItlen\fR is 0 and the maximum is 128 KiB\. ++. + .TP + \fBoverlapLog\fR=\fIovlog\fR, \fBovlog\fR=\fIovlog\fR + Determine \fBoverlapSize\fR, amount of data reloaded from previous job\. This parameter is only available when multithreading is enabled\. Reloading more data improves compression ratio, but decreases speed\. ++. + .IP + The minimum \fIovlog\fR is 0, and the maximum is 9\. 1 means "no overlap", hence completely independent jobs\. 9 means "full overlap", meaning up to \fBwindowSize\fR is reloaded from previous job\. Reducing \fIovlog\fR by 1 reduces the reloaded amount by a factor 2\. For example, 8 means "windowSize/2", and 6 means "windowSize/8"\. Value 0 is special and means "default": \fIovlog\fR is automatically determined by \fBzstd\fR\. In which case, \fIovlog\fR will range from 6 to 9, depending on selected \fIstrat\fR\. ++. ++.TP ++\fBldmHashRateLog\fR=\fIlhrlog\fR, \fBlhrlog\fR=\fIlhrlog\fR ++Specify the frequency of inserting entries into the long distance matching hash table\. ++. ++.IP ++This option is ignored unless long distance matching is enabled\. ++. ++.IP ++Larger values will improve compression speed\. Deviating far from the default value will likely result in a decrease in compression ratio\. ++. ++.IP ++The default value varies between 4 and 7, depending on \fBstrategy\fR\. ++. + .TP + \fBldmHashLog\fR=\fIlhlog\fR, \fBlhlog\fR=\fIlhlog\fR + Specify the maximum size for a hash table used for long distance matching\. ++. + .IP + This option is ignored unless long distance matching is enabled\. ++. + .IP + Bigger hash tables usually improve compression ratio at the expense of more memory during compression and a decrease in compression speed\. ++. + .IP +-The minimum \fIlhlog\fR is 6 and the maximum is 30 (default: 20)\. ++The minimum \fIlhlog\fR is 6 and the maximum is 30 (default: \fBwindowLog \- ldmHashRateLog\fR)\. ++. + .TP + \fBldmMinMatch\fR=\fIlmml\fR, \fBlmml\fR=\fIlmml\fR + Specify the minimum searched length of a match for long distance matching\. ++. + .IP + This option is ignored unless long distance matching is enabled\. ++. + .IP + Larger/very small values usually decrease compression ratio\. ++. + .IP +-The minimum \fIlmml\fR is 4 and the maximum is 4096 (default: 64)\. ++The minimum \fIlmml\fR is 4 and the maximum is 4096 (default: 32 to 64, depending on \fBstrategy\fR)\. ++. + .TP + \fBldmBucketSizeLog\fR=\fIlblog\fR, \fBlblog\fR=\fIlblog\fR + Specify the size of each bucket for the hash table used for long distance matching\. ++. + .IP + This option is ignored unless long distance matching is enabled\. ++. + .IP + Larger bucket sizes improve collision resolution but decrease compression speed\. ++. + .IP +-The minimum \fIlblog\fR is 1 and the maximum is 8 (default: 3)\. +-.TP +-\fBldmHashRateLog\fR=\fIlhrlog\fR, \fBlhrlog\fR=\fIlhrlog\fR +-Specify the frequency of inserting entries into the long distance matching hash table\. +-.IP +-This option is ignored unless long distance matching is enabled\. +-.IP +-Larger values will improve compression speed\. Deviating far from the default value will likely result in a decrease in compression ratio\. +-.IP +-The default value is \fBwlog \- lhlog\fR\. ++The minimum \fIlblog\fR is 1 and the maximum is 8 (default: 4 to 8, depending on \fBstrategy\fR)\. ++. + .SS "Example" + The following parameters sets advanced compression options to something similar to predefined level 19 for files bigger than 256 KB: ++. + .P + \fB\-\-zstd\fR=wlog=23,clog=23,hlog=22,slog=6,mml=3,tlen=48,strat=6 ++. + .SS "\-B#:" + Specify the size of each compression job\. This parameter is only available when multi\-threading is enabled\. Each compression job is run in parallel, so this value indirectly impacts the nb of active threads\. Default job size varies depending on compression level (generally \fB4 * windowSize\fR)\. \fB\-B#\fR makes it possible to manually select a custom size\. Note that job size must respect a minimum value which is enforced transparently\. This minimum is either 512 KB, or \fBoverlapSize\fR, whichever is largest\. Different job sizes will lead to non\-identical compressed frames\. ++. + .SH "DICTIONARY BUILDER" +-\fBzstd\fR offers \fIdictionary\fR compression, which greatly improves efficiency on small files and messages\. It's possible to train \fBzstd\fR with a set of samples, the result of which is saved into a file called a \fBdictionary\fR\. Then, during compression and decompression, reference the same dictionary, using command \fB\-D dictionaryFileName\fR\. Compression of small files similar to the sample set will be greatly improved\. ++\fBzstd\fR offers \fIdictionary\fR compression, which greatly improves efficiency on small files and messages\. It\'s possible to train \fBzstd\fR with a set of samples, the result of which is saved into a file called a \fBdictionary\fR\. Then, during compression and decompression, reference the same dictionary, using command \fB\-D dictionaryFileName\fR\. Compression of small files similar to the sample set will be greatly improved\. ++. + .TP + \fB\-\-train FILEs\fR + Use FILEs as training set to create a dictionary\. The training set should ideally contain a lot of samples (> 100), and weight typically 100x the target dictionary size (for example, ~10 MB for a 100 KB dictionary)\. \fB\-\-train\fR can be combined with \fB\-r\fR to indicate a directory rather than listing all the files, which can be useful to circumvent shell expansion limits\. ++. + .IP + Since dictionary compression is mostly effective for small files, the expectation is that the training set will only contain small files\. In the case where some samples happen to be large, only the first 128 KiB of these samples will be used for training\. ++. + .IP + \fB\-\-train\fR supports multithreading if \fBzstd\fR is compiled with threading support (default)\. Additional advanced parameters can be specified with \fB\-\-train\-fastcover\fR\. The legacy dictionary builder can be accessed with \fB\-\-train\-legacy\fR\. The slower cover dictionary builder can be accessed with \fB\-\-train\-cover\fR\. Default \fB\-\-train\fR is equivalent to \fB\-\-train\-fastcover=d=8,steps=4\fR\. ++. + .TP + \fB\-o FILE\fR + Dictionary saved into \fBFILE\fR (default name: dictionary)\. ++. + .TP + \fB\-\-maxdict=#\fR +-Limit dictionary to specified size (default: 112640 bytes)\. As usual, quantities are expressed in bytes by default, and it's possible to employ suffixes (like \fBKB\fR or \fBMB\fR) to specify larger values\. ++Limit dictionary to specified size (default: 112640 bytes)\. As usual, quantities are expressed in bytes by default, and it\'s possible to employ suffixes (like \fBKB\fR or \fBMB\fR) to specify larger values\. ++. + .TP + \fB\-#\fR + Use \fB#\fR compression level during training (optional)\. Will generate statistics more tuned for selected compression level, resulting in a \fIsmall\fR compression ratio improvement for this level\. ++. + .TP + \fB\-B#\fR + Split input files into blocks of size # (default: no split) ++. + .TP + \fB\-M#\fR, \fB\-\-memory=#\fR + Limit the amount of sample data loaded for training (default: 2 GB)\. Note that the default (2 GB) is also the maximum\. This parameter can be useful in situations where the training set size is not well controlled and could be potentially very large\. Since speed of the training process is directly correlated to the size of the training sample set, a smaller sample set leads to faster training\. ++. + .IP + In situations where the training set is larger than maximum memory, the CLI will randomly select samples among the available ones, up to the maximum allowed memory budget\. This is meant to improve dictionary relevance by mitigating the potential impact of clustering, such as selecting only files from the beginning of a list sorted by modification date, or sorted by alphabetical order\. The randomization process is deterministic, so training of the same list of files with the same parameters will lead to the creation of the same dictionary\. ++. + .TP + \fB\-\-dictID=#\fR +-A dictionary ID is a locally unique ID\. The decoder will use this value to verify it is using the right dictionary\. By default, zstd will create a 4\-bytes random number ID\. It's possible to provide an explicit number ID instead\. It's up to the dictionary manager to not assign twice the same ID to 2 different dictionaries\. Note that short numbers have an advantage: an ID < 256 will only need 1 byte in the compressed frame header, and an ID < 65536 will only need 2 bytes\. This compares favorably to 4 bytes default\. ++A dictionary ID is a locally unique ID\. The decoder will use this value to verify it is using the right dictionary\. By default, zstd will create a 4\-bytes random number ID\. It\'s possible to provide an explicit number ID instead\. It\'s up to the dictionary manager to not assign twice the same ID to 2 different dictionaries\. Note that short numbers have an advantage: an ID < 256 will only need 1 byte in the compressed frame header, and an ID < 65536 will only need 2 bytes\. This compares favorably to 4 bytes default\. ++. + .IP +-Note that RFC8878 reserves IDs less than 32768 and greater than or equal to 2\e^31, so they should not be used in public\. ++Note that RFC8878 reserves IDs less than 32768 and greater than or equal to 2^31, so they should not be used in public\. ++. + .TP + \fB\-\-train\-cover[=k#,d=#,steps=#,split=#,shrink[=#]]\fR + Select parameters for the default dictionary builder algorithm named cover\. If \fId\fR is not specified, then it tries \fId\fR = 6 and \fId\fR = 8\. If \fIk\fR is not specified, then it tries \fIsteps\fR values in the range [50, 2000]\. If \fIsteps\fR is not specified, then the default value of 40 is used\. If \fIsplit\fR is not specified or split <= 0, then the default value of 100 is used\. Requires that \fId\fR <= \fIk\fR\. If \fIshrink\fR flag is not used, then the default value for \fIshrinkDict\fR of 0 is used\. If \fIshrink\fR is not specified, then the default value for \fIshrinkDictMaxRegression\fR of 1 is used\. ++. + .IP + Selects segments of size \fIk\fR with highest score to put in the dictionary\. The score of a segment is computed by the sum of the frequencies of all the subsegments of size \fId\fR\. Generally \fId\fR should be in the range [6, 8], occasionally up to 16, but the algorithm will run faster with d <= \fI8\fR\. Good values for \fIk\fR vary widely based on the input data, but a safe range is [2 * \fId\fR, 2000]\. If \fIsplit\fR is 100, all input samples are used for both training and testing to find optimal \fId\fR and \fIk\fR to build dictionary\. Supports multithreading if \fBzstd\fR is compiled with threading support\. Having \fIshrink\fR enabled takes a truncated dictionary of minimum size and doubles in size until compression ratio of the truncated dictionary is at most \fIshrinkDictMaxRegression%\fR worse than the compression ratio of the largest dictionary\. ++. + .IP + Examples: ++. + .IP + \fBzstd \-\-train\-cover FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=k=50,d=8 FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=d=8,steps=500 FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=k=50 FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=k=50,split=60 FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=shrink FILEs\fR ++. + .IP + \fBzstd \-\-train\-cover=shrink=2 FILEs\fR ++. + .TP + \fB\-\-train\-fastcover[=k#,d=#,f=#,steps=#,split=#,accel=#]\fR + Same as cover but with extra parameters \fIf\fR and \fIaccel\fR and different default value of split If \fIsplit\fR is not specified, then it tries \fIsplit\fR = 75\. If \fIf\fR is not specified, then it tries \fIf\fR = 20\. Requires that 0 < \fIf\fR < 32\. If \fIaccel\fR is not specified, then it tries \fIaccel\fR = 1\. Requires that 0 < \fIaccel\fR <= 10\. Requires that \fId\fR = 6 or \fId\fR = 8\. ++. + .IP + \fIf\fR is log of size of array that keeps track of frequency of subsegments of size \fId\fR\. The subsegment is hashed to an index in the range [0,2^\fIf\fR \- 1]\. It is possible that 2 different subsegments are hashed to the same index, and they are considered as the same subsegment when computing frequency\. Using a higher \fIf\fR reduces collision but takes longer\. ++. + .IP + Examples: ++. + .IP + \fBzstd \-\-train\-fastcover FILEs\fR ++. + .IP + \fBzstd \-\-train\-fastcover=d=8,f=15,accel=2 FILEs\fR ++. + .TP + \fB\-\-train\-legacy[=selectivity=#]\fR + Use legacy dictionary builder algorithm with the given dictionary \fIselectivity\fR (default: 9)\. The smaller the \fIselectivity\fR value, the denser the dictionary, improving its efficiency but reducing its achievable maximum size\. \fB\-\-train\-legacy=s=#\fR is also accepted\. ++. + .IP + Examples: ++. + .IP + \fBzstd \-\-train\-legacy FILEs\fR ++. + .IP + \fBzstd \-\-train\-legacy=selectivity=8 FILEs\fR ++. + .SH "BENCHMARK" +-The \fBzstd\fR CLI provides a benchmarking mode that can be used to easily find suitable compression parameters, or alternatively to benchmark a computer's performance\. \fBzstd \-b [FILE(s)]\fR will benchmark \fBzstd\fR for both compression and decompression using default compression level\. Note that results are very dependent on the content being compressed\. It's possible to pass multiple files to the benchmark, and even a directory with \fB\-r DIRECTORY\fR\. When no \fBFILE\fR is provided, the benchmark will use a procedurally generated \fBlorem ipsum\fR text\. ++The \fBzstd\fR CLI provides a benchmarking mode that can be used to easily find suitable compression parameters, or alternatively to benchmark a computer\'s performance\. \fBzstd \-b [FILE(s)]\fR will benchmark \fBzstd\fR for both compression and decompression using default compression level\. Note that results are very dependent on the content being compressed\. ++. ++.P ++It\'s possible to pass multiple files to the benchmark, and even a directory with \fB\-r DIRECTORY\fR\. When no \fBFILE\fR is provided, the benchmark will use a procedurally generated \fBlorem ipsum\fR text\. ++. ++.P ++Benchmarking will employ \fBmax(1, min(4, nbCores/4))\fR worker threads by default in order to match the behavior of the normal CLI I/O\. ++. + .IP "\(bu" 4 + \fB\-b#\fR: benchmark file(s) using compression level # ++. + .IP "\(bu" 4 + \fB\-e#\fR: benchmark file(s) using multiple compression levels, from \fB\-b#\fR to \fB\-e#\fR (inclusive) ++. + .IP "\(bu" 4 + \fB\-d\fR: benchmark decompression speed only (requires providing a zstd\-compressed content) ++. + .IP "\(bu" 4 + \fB\-i#\fR: minimum evaluation time, in seconds (default: 3s), benchmark mode only ++. + .IP "\(bu" 4 + \fB\-B#\fR, \fB\-\-block\-size=#\fR: cut file(s) into independent chunks of size # (default: no chunking) ++. + .IP "\(bu" 4 + \fB\-S\fR: output one benchmark result per input file (default: consolidated result) ++. + .IP "\(bu" 4 + \fB\-D dictionary\fR benchmark using dictionary ++. + .IP "\(bu" 4 + \fB\-\-priority=rt\fR: set process priority to real\-time (Windows) ++. + .IP "" 0 ++. + .P + Beyond compression levels, benchmarking is also compatible with other parameters, such as number of threads (\fB\-T#\fR), advanced compression parameters (\fB\-\-zstd=###\fR), dictionary compression (\fB\-D dictionary\fR), or even disabling checksum verification for example\. ++. + .P + \fBOutput Format:\fR CompressionLevel#Filename: InputSize \-> OutputSize (CompressionRatio), CompressionSpeed, DecompressionSpeed ++. + .P + \fBMethodology:\fR For speed measurement, the entire input is compressed/decompressed in\-memory to measure speed\. A run lasts at least 1 sec, so when files are small, they are compressed/decompressed several times per run, in order to improve measurement accuracy\. ++. + .SH "SEE ALSO" + \fBzstdgrep\fR(1), \fBzstdless\fR(1), \fBgzip\fR(1), \fBxz\fR(1) ++. + .P +-The \fIzstandard\fR format is specified in Y\. Collet, "Zstandard Compression and the 'application/zstd' Media Type", https://www\.ietf\.org/rfc/rfc8878\.txt, Internet RFC 8878 (February 2021)\. ++The \fIzstandard\fR format is specified in Y\. Collet, "Zstandard Compression and the \'application/zstd\' Media Type", https://www\.ietf\.org/rfc/rfc8878\.txt, Internet RFC 8878 (February 2021)\. ++. + .SH "BUGS" + Report bugs at: https://github\.com/facebook/zstd/issues ++. + .SH "AUTHOR" + Yann Collet +diff --git a/programs/zstdgrep.1 b/programs/zstdgrep.1 +index d7fda583398..fc79e82e326 100644 +--- a/programs/zstdgrep.1 ++++ b/programs/zstdgrep.1 +@@ -1,5 +1,5 @@ + . +-.TH "ZSTDGREP" "1" "March 2024" "zstd 1.5.6" "User Commands" ++.TH "ZSTDGREP" "1" "February 2025" "zstd 1.5.7" "User Commands" + . + .SH "NAME" + \fBzstdgrep\fR \- print lines matching a pattern in zstandard\-compressed files +diff --git a/programs/zstdless.1 b/programs/zstdless.1 +index 7dd65f8fc44..ad5048a02c7 100644 +--- a/programs/zstdless.1 ++++ b/programs/zstdless.1 +@@ -1,5 +1,5 @@ + . +-.TH "ZSTDLESS" "1" "March 2024" "zstd 1.5.6" "User Commands" ++.TH "ZSTDLESS" "1" "February 2025" "zstd 1.5.7" "User Commands" + . + .SH "NAME" + \fBzstdless\fR \- view zstandard\-compressed files diff --git a/pkgs/tools/misc/file/0001-PR-745-streamout-Don-t-flush-when-trying-to-set-nega.patch b/pkgs/tools/misc/file/0001-PR-745-streamout-Don-t-flush-when-trying-to-set-nega.patch deleted file mode 100644 index 77ad10f252c7e..0000000000000 --- a/pkgs/tools/misc/file/0001-PR-745-streamout-Don-t-flush-when-trying-to-set-nega.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 12b76648185104ce9118d8b5fa57aa34a77ad084 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Wed, 15 Apr 2026 20:00:20 +0000 -Subject: [PATCH] PR/745: streamout: Don't flush when trying to set negative - offsets on pipes, just continue, fixes 'cat file.zip | file -' - ---- - ChangeLog | 2 ++ - src/softmagic.c | 22 ++++++++++++++++------ - 2 files changed, 18 insertions(+), 6 deletions(-) - -diff --git a/src/softmagic.c b/src/softmagic.c -index 7cf7c798..a5e758eb 100644 ---- a/src/softmagic.c -+++ b/src/softmagic.c -@@ -245,14 +245,19 @@ match(struct magic_set *ms, struct magic *magic, file_regex_t **magic_rxcomp, - flush: - /* Skip sub-tests */ - while (magindex < nmagic - 1 && -- magic[magindex + 1].cont_level != 0) -+ magic[magindex + 1].cont_level != 0) { - magindex++; -+ } - cont_level = 0; - continue; /* Skip to next top-level test*/ - } - -- if (msetoffset(ms, m, &bb, b, offset, cont_level) == -1) -- goto flush; -+ if (msetoffset(ms, m, &bb, b, offset, cont_level) == -1) { -+ if (b->elen == FILE_BADSIZE) -+ continue; -+ else -+ goto flush; -+ } - ms->line = m->lineno; - - /* if main entry matches, print it... */ -@@ -347,8 +352,13 @@ flush: - */ - cont_level = m->cont_level; - } -- if (msetoffset(ms, m, &bb, b, offset, cont_level) == -1) -- goto flush; -+ if (msetoffset(ms, m, &bb, b, offset, cont_level) -+ == -1) { -+ if (b->elen == FILE_BADSIZE) -+ continue; -+ else -+ goto flush; -+ } - if (m->flag & OFFADD) { - if (cont_level == 0) { - if ((ms->flags & MAGIC_DEBUG) != 0) --- -2.53.0 - diff --git a/pkgs/tools/misc/file/0002-PR-725-inliniac-Revert-previous-and-always-set-offse.patch b/pkgs/tools/misc/file/0002-PR-725-inliniac-Revert-previous-and-always-set-offse.patch deleted file mode 100644 index ff405c446597c..0000000000000 --- a/pkgs/tools/misc/file/0002-PR-725-inliniac-Revert-previous-and-always-set-offse.patch +++ /dev/null @@ -1,26 +0,0 @@ -From c54605718190ad8fe9c25cb475f1f32ca7cd54f7 Mon Sep 17 00:00:00 2001 -From: Christos Zoulas -Date: Sun, 12 Apr 2026 22:15:14 +0000 -Subject: [PATCH] PR/725: inliniac: Revert previous and always set offset. - ---- - src/softmagic.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/src/softmagic.c b/src/softmagic.c -index 9aaf8b3e..7cf7c798 100644 ---- a/src/softmagic.c -+++ b/src/softmagic.c -@@ -1577,8 +1577,7 @@ normal: - ms->offset = offset; - ms->eoffset = 0; - } else { -- if (b->fd != -1) -- ms->offset = ms->eoffset + offset; -+ ms->offset = ms->eoffset + offset; - } - } - if ((ms->flags & MAGIC_DEBUG) != 0) { --- -2.51.2 - diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix index ae27a481b38ff..da9968755584c 100644 --- a/pkgs/tools/misc/file/default.nix +++ b/pkgs/tools/misc/file/default.nix @@ -16,14 +16,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "file"; - version = "5.47"; + version = "5.48"; src = fetchurl { urls = [ "https://astron.com/pub/file/file-${finalAttrs.version}.tar.gz" "https://distfiles.macports.org/file/file-${finalAttrs.version}.tar.gz" ]; - hash = "sha256-RWcv7BZctMwTWKLXa11X0ih23Ll6sWlCesOFy+HVWXo="; + hash = "sha256-7RRlaIOyOjZLQFfAVZXZMlLam8Rz0wEGUZUZ0NoUEoM="; }; outputs = [ @@ -32,17 +32,6 @@ stdenv.mkDerivation (finalAttrs: { "man" ]; - patches = [ - # Fixes `cat archive.zip | file -` just showing a generic "data" type. See: - # - https://bugs.astron.com/view.php?id=764 - # - https://github.com/file/file/commit/12b76648185104ce9118d8b5fa57aa34a77ad084 - # Vendored patch because using fetchpatch is impossible for a package in - # this part of the bootstrap chain. - ./0001-PR-745-streamout-Don-t-flush-when-trying-to-set-nega.patch - # Fixes breakage of python3Packages.python-magic and xdg-utils - ./0002-PR-725-inliniac-Revert-previous-and-always-set-offse.patch - ]; - strictDeps = true; enableParallelBuilding = true; diff --git a/pkgs/tools/package-management/lix/common-lix.nix b/pkgs/tools/package-management/lix/common-lix.nix index d5277055efd26..fdd550e8c8d14 100644 --- a/pkgs/tools/package-management/lix/common-lix.nix +++ b/pkgs/tools/package-management/lix/common-lix.nix @@ -39,6 +39,7 @@ assert lib.assertMsg ( darwin, doxygen, editline, + fetchpatch2, flex, git, gtest, @@ -127,16 +128,24 @@ let substitute $inputPath $out --replace-fail @deps@ "$(cat ${deps})" ''; - # https://github.com/NixOS/nixpkgs/pull/525953 backported a performance patch - # that /somehow/ breaks Lix unit tests. - # FIXME revert when the patch is gone in curl drv + # curl 8.21.0 /somehow/ breaks Lix unit tests. + # See https://github.com/NixOS/nixpkgs/issues/534713 + # FIXME remove once fixed curl-fixed = curl.overrideAttrs ( { patches ? [ ], ... }: { - patches = lib.filter (patch: !lib.strings.hasSuffix "fix-wakeup-consumption.patch" patch) patches; + patches = patches ++ [ + # See https://github.com/curl/curl/commit/2a2104f3cff44bb28bb570a093be52bbeeed8f23 + (fetchpatch2 { + name = "fix-wakeup-consumption-revert.patch"; + url = "https://github.com/curl/curl/commit/2a2104f3cff44bb28bb570a093be52bbeeed8f23.patch"; + hash = "sha256-dkwr1ZaR7XB408JxeIKhuHxJrlwf3J01jL6lnOLXo1I="; + revert = true; + }) + ]; } ); in diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 8dfbd7f46bd2b..d040f7d6f6c66 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -173,14 +173,14 @@ lib.makeExtensible ( nixComponents_2_34 = (nixDependencies.callPackage ./modular/packages.nix rec { - version = "2.34.7"; + version = "2.34.8"; inherit teams; otherSplices = generateSplicesForNixComponents "nixComponents_2_34"; src = removeFunctionalTests commonDisabledTests (fetchFromGitHub { owner = "NixOS"; repo = "nix"; tag = version; - hash = "sha256-uj5KNW8Vdm60FCUxD2KsrCVH/WwoemvczWmmrb3Gvlo="; + hash = "sha256-Rvy1PmIUMGI0IS/kwDwmf/VrorU8v1iZYejssSVu1rY="; }); }).appendPatches [ ]; diff --git a/pkgs/tools/package-management/nix/modular/src/libexpr/package.nix b/pkgs/tools/package-management/nix/modular/src/libexpr/package.nix index 965dffdf109e4..2af58b0a241c6 100644 --- a/pkgs/tools/package-management/nix/modular/src/libexpr/package.nix +++ b/pkgs/tools/package-management/nix/modular/src/libexpr/package.nix @@ -38,6 +38,10 @@ mkMesonLibrary (finalAttrs: { workDir = ./.; + hardeningDisable = lib.optionals stdenv.hostPlatform.isMusl [ + "fortify" + ]; + nativeBuildInputs = [ bison flex diff --git a/pkgs/tools/package-management/nix/modular/tests/functional/package.nix b/pkgs/tools/package-management/nix/modular/tests/functional/package.nix index b8bf89d99f7fe..597c89f08c4dc 100644 --- a/pkgs/tools/package-management/nix/modular/tests/functional/package.nix +++ b/pkgs/tools/package-management/nix/modular/tests/functional/package.nix @@ -73,14 +73,6 @@ mkMesonDerivation (finalAttrs: { echo $PWD | grep tests/functional ''; - # Test contains invocation of `script` broken by util-linux regression: - # https://github.com/util-linux/util-linux/commit/70507ab9eaed10b8dd77b77d4ea25c11ee726bed - preCheck = - assert util-linux.version == "2.42"; - '' - echo "exit 77" > ../json.sh - ''; - mesonCheckFlags = [ "--print-errorlogs" ]; diff --git a/pkgs/tools/security/pinentry/mac.nix b/pkgs/tools/security/pinentry/mac.nix index 6b354ef48d232..fd9dee1723a76 100644 --- a/pkgs/tools/security/pinentry/mac.nix +++ b/pkgs/tools/security/pinentry/mac.nix @@ -10,6 +10,8 @@ common-updater-scripts, writers, re-plistbuddy, + # TODO: Clean up on `staging` + llvmPackages, }: stdenv.mkDerivation rec { @@ -47,6 +49,8 @@ stdenv.mkDerivation rec { makeBinaryWrapper texinfo re-plistbuddy + # TODO: Clean up on `staging` + llvmPackages.lld ]; configureFlags = [ @@ -56,6 +60,11 @@ stdenv.mkDerivation rec { "--with-libassuan-prefix=${libassuan.dev}" ]; + # Fix for ld64 hardening issue + # + # TODO: Clean up on `staging` + env.NIX_CFLAGS_LINK = "-fuse-ld=lld"; + installPhase = '' mkdir -p $out/Applications $out/bin mv macosx/pinentry-mac.app $out/Applications diff --git a/pkgs/tools/text/gnupatch/default.nix b/pkgs/tools/text/gnupatch/default.nix index 188ac323543f3..e32573c050484 100644 --- a/pkgs/tools/text/gnupatch/default.nix +++ b/pkgs/tools/text/gnupatch/default.nix @@ -31,6 +31,8 @@ stdenv.mkDerivation (finalAttrs: { doCheck = stdenv.hostPlatform.libc != "musl"; nativeCheckInputs = [ ed ]; + strictDeps = true; + meta = { description = "GNU Patch, a program to apply differences to files"; mainProgram = "patch"; diff --git a/pkgs/tools/text/gnused/default.nix b/pkgs/tools/text/gnused/default.nix index 6effd6d9f41db..7f1cfe514425a 100644 --- a/pkgs/tools/text/gnused/default.nix +++ b/pkgs/tools/text/gnused/default.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "gnused"; - version = "4.9"; + version = "4.10"; src = fetchurl { url = "mirror://gnu/sed/sed-${version}.tar.xz"; - sha256 = "sha256-biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE="; + sha256 = "sha256-uOchgrLslqNXTimYxHt6qmTMIM4ADY6awxPMB87PKMc="; }; outputs = [ diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 1270137082d31..c514f87d803f4 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -390,6 +390,7 @@ mapAliases { biff = throw "biff has been renamed to/replaced by 'bttf'"; # Added 2026-06-04 bindle = throw "bindle has been removed since it is vulnerable to CVE-2025-62518 and upstream has been archived"; # Added 2025-10-24 binserve = throw "'binserve' has been removed because it is unmaintained upstream."; # Added 2025-11-29 + binutilsDualAs = throw "binutilsDualAs has been removed because it was only useful on `x86_64-darwin` and also only useful for the GNAT bootstrap and also not even used for that any more and actually what on earth were you using this thing for anyway?"; # Added 2026-06-27 bitbucket-server-cli = throw "bitbucket-server-cli has been removed due to lack of maintenance upstream."; # Added 2025-05-27 bitcoin-abc = throw "bitcoin-abc has been removed due to a lack of maintanance"; # Added 2025-06-17 bitcoind-abc = throw "bitcoind-abc has been removed due to a lack of maintanance"; # Added 2025-06-17 @@ -1824,6 +1825,7 @@ mapAliases { pingvin-share = throw "'pingvin-share' has been removed as it was broken and archived upstream"; # Added 2025-11-08 pipecontrol = throw "'pipecontrol' has been removed due to outdated KF5 dependencies."; # Added 2026-05-01 piper-train = throw "piper-train is now part of the piper package using the `withTrain` override"; # Added 2025-09-03 + pkgsx86_64Darwin = throw "pkgsx86_64Darwin has been removed, as support for the platform has been dropped; see https://nixos.org/manual/nixpkgs/unstable/release-notes#x86_64-darwin-26.11"; # Added 2026-06-21 plandex = throw "plandex has been removed, as it is not maintained anymore"; # Added 2026-05-18 plandex-server = throw "plandex has been removed, as it is not maintained anymore"; # Added 2026-05-18 plant-it = throw "plant-it backend was discontinued in september 2025"; # Added 2026-01-30 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7ab47bb13750a..05377ba9281cd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1942,8 +1942,6 @@ with pkgs; enableBloat = false; }; - diffutils = callPackage ../tools/text/diffutils { }; - inherit (import ../build-support/dlang/dub-support.nix { inherit lib callPackage; }) dub-to-nix importDubLock @@ -2248,8 +2246,6 @@ with pkgs; host = bind.host; - hotdoc = python3Packages.callPackage ../development/tools/hotdoc { }; - hpccm = with python3Packages; toPythonApplication hpccm; html-proofer = callPackage ../tools/misc/html-proofer { }; @@ -3470,7 +3466,7 @@ with pkgs; enableLTO = false; }; - gnat = gnat13; # When changing this, update also gnatPackages + gnat = pkgs."gnat${toString default-gcc-version}"; # When changing this, update also gnatPackages gnat13 = wrapCC ( gcc13.cc.override { @@ -3492,9 +3488,8 @@ with pkgs; stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 then - overrideCC stdenv gnat-bootstrap13 + overrideCC gccStdenv gnat-bootstrap13 else stdenv; } @@ -3520,9 +3515,8 @@ with pkgs; stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 then - overrideCC stdenv gnat-bootstrap14 + overrideCC gccStdenv gnat-bootstrap14 else stdenv; } @@ -3540,7 +3534,7 @@ with pkgs; # If we are cross-compiling GNAT, we may as well do the same. gnat-bootstrap = if stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform then - buildPackages.gnat-bootstrap14 + buildPackages.gnat-bootstrap15 else buildPackages.gnat15; stdenv = @@ -3548,9 +3542,8 @@ with pkgs; stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 then - overrideCC stdenv gnat-bootstrap14 + overrideCC gccStdenv gnat-bootstrap15 else stdenv; } @@ -3568,7 +3561,7 @@ with pkgs; # If we are cross-compiling GNAT, we may as well do the same. gnat-bootstrap = if stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform then - buildPackages.gnat-bootstrap14 + buildPackages.gnat-bootstrap16 else buildPackages.gnat16; stdenv = @@ -3576,37 +3569,40 @@ with pkgs; stdenv.hostPlatform == stdenv.targetPlatform && stdenv.buildPlatform == stdenv.hostPlatform && stdenv.buildPlatform.isDarwin - && stdenv.buildPlatform.isx86_64 then - overrideCC stdenv gnat-bootstrap14 + overrideCC gccStdenv gnat-bootstrap16 else stdenv; } ); - gnat-bootstrap = gnat-bootstrap13; - gnat-bootstrap13 = wrapCCWith ( - { - cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "13"; }; - } - // lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { - bintools = bintoolsDualAs; - } - ); - gnat-bootstrap14 = wrapCCWith ( - { - cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "14"; }; - } - // lib.optionalAttrs (stdenv.hostPlatform.isDarwin) { - bintools = bintoolsDualAs; - } - ); + gnat-bootstrap = pkgs."gnat-bootstrap${toString default-gcc-version}"; + + gnat-bootstrap13 = wrapCCWith { + cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "13"; }; + isAlireGNAT = true; + }; + + gnat-bootstrap14 = wrapCCWith { + cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "14"; }; + isAlireGNAT = true; + }; + + gnat-bootstrap15 = wrapCCWith { + cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "15"; }; + isAlireGNAT = true; + }; + + gnat-bootstrap16 = wrapCCWith { + cc = callPackage ../development/compilers/gnat-bootstrap { majorVersion = "16"; }; + isAlireGNAT = true; + }; gnat13Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat13; }); gnat14Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat14; }); gnat15Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat15; }); gnat16Packages = recurseIntoAttrs (callPackage ./ada-packages.nix { gnat = buildPackages.gnat16; }); - gnatPackages = gnat13Packages; + gnatPackages = pkgs."gnat${toString default-gcc-version}Packages"; inherit (gnatPackages) gprbuild @@ -4094,15 +4090,15 @@ with pkgs; wrapRustcWith = { rustc-unwrapped, ... }@args: callPackage ../build-support/rust/rustc-wrapper args; wrapRustc = rustc-unwrapped: wrapRustcWith { inherit rustc-unwrapped; }; - rust_1_95 = callPackage ../development/compilers/rust/1_95.nix { }; - rust = rust_1_95; + rust_1_96 = callPackage ../development/compilers/rust/1_96.nix { }; + rust = rust_1_96; mrustc = callPackage ../development/compilers/mrustc { }; mrustc-minicargo = callPackage ../development/compilers/mrustc/minicargo.nix { }; mrustc-bootstrap = callPackage ../development/compilers/mrustc/bootstrap.nix { }; - rustPackages_1_95 = rust_1_95.packages.stable; - rustPackages = rustPackages_1_95; + rustPackages_1_96 = rust_1_96.packages.stable; + rustPackages = rustPackages_1_96; inherit (rustPackages) cargo @@ -4570,10 +4566,10 @@ with pkgs; # Python interpreters. All standard library modules are included except for tkinter, which is # available as `pythonPackages.tkinter` and can be used as any other Python package. # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md - python3 = python313; + python3 = python314; # pythonPackages further below, but assigned here because they need to be in sync - python3Packages = dontRecurseIntoAttrs python313Packages; + python3Packages = dontRecurseIntoAttrs python314Packages; pypy = pypy2; pypy2 = pypy27; @@ -4989,11 +4985,6 @@ with pkgs; bintools = bintools-unwrapped; }; - bintoolsDualAs = wrapBintoolsWith { - bintools = darwin.binutilsDualAs-unwrapped; - wrapGas = true; - }; - black = with python3Packages; toPythonApplication black; black-macchiato = with python3Packages; toPythonApplication black-macchiato; @@ -5519,6 +5510,7 @@ with pkgs; boost188 boost189 boost190 + boost191 ; boost = boost189; @@ -6538,10 +6530,11 @@ with pkgs; # this version should align with the static protobuf version linked into python3.pkgs.tensorflow # $ nix-shell -I nixpkgs=$(git rev-parse --show-toplevel) -p python3.pkgs.tensorflow --run "python3 -c 'import google.protobuf; print(google.protobuf.__version__)'" - protobuf = protobuf_34; + protobuf = protobuf_35; inherit ({ + protobuf_35 = callPackage ../development/libraries/protobuf/35.nix { }; protobuf_34 = callPackage ../development/libraries/protobuf/34.nix { }; protobuf_33 = callPackage ../development/libraries/protobuf/33.nix { }; protobuf_32 = callPackage ../development/libraries/protobuf/32.nix { }; @@ -6560,6 +6553,7 @@ with pkgs; abseil-cpp = abseil-cpp_202103; }; }) + protobuf_35 protobuf_34 protobuf_33 protobuf_32 @@ -7109,24 +7103,23 @@ with pkgs; ]; }; - sbcl_2_6_3 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl { version = "2.6.3"; }; - + sbcl_2_6_4 = wrapLisp { + pkg = callPackage ../development/compilers/sbcl { version = "2.6.4"; }; faslExt = "fasl"; flags = [ "--dynamic-space-size" "3000" ]; }; - sbcl_2_6_4 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl { version = "2.6.4"; }; + sbcl_2_6_5 = wrapLisp { + pkg = callPackage ../development/compilers/sbcl { version = "2.6.5"; }; faslExt = "fasl"; flags = [ "--dynamic-space-size" "3000" ]; }; - sbcl = sbcl_2_6_4; + sbcl = sbcl_2_6_5; sbclPackages = recurseIntoAttrs sbcl.pkgs; @@ -7632,8 +7625,8 @@ with pkgs; postgresql_18_jit postgresql_19_jit ; - postgresql = postgresql_17; - postgresql_jit = postgresql_17_jit; + postgresql = postgresql_18; + postgresql_jit = postgresql_18_jit; postgresqlPackages = recurseIntoAttrs postgresql.pkgs; postgresql14Packages = recurseIntoAttrs postgresql_14.pkgs; postgresql15Packages = recurseIntoAttrs postgresql_15.pkgs; @@ -8082,6 +8075,7 @@ with pkgs; withHomed = false; withHwdb = false; withImportd = false; + withImds = false; withLibBPF = false; withLibidn2 = false; withLocaled = false; @@ -8098,6 +8092,7 @@ with pkgs; withRemote = false; withResolved = false; withShellCompletions = false; + withSysinstall = false; withSysupdate = false; withSysusers = false; withTimedated = false; diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix index de13c0a29993d..058e383e0b7aa 100644 --- a/pkgs/top-level/config.nix +++ b/pkgs/top-level/config.nix @@ -482,18 +482,18 @@ let }; allowDeprecatedx86_64Darwin = mkOption { - # `force` does nothing; it’s reserved for forward compatibility - # with 26.11. We hide it from the documentation to avoid a - # footgun, as it will make the error in 26.11 less useful. - type = types.either types.bool (types.enum [ "force" ]) // { - inherit (types.bool) description descriptionClass; - }; + # `true` does nothing; it silenced the warning in 26.05. + type = types.either types.bool (types.enum [ "force" ]); default = false; description = '' - Silence the warning for the upcoming deprecation of the - `x86_64-darwin` platform in Nixpkgs 26.11. + Set to `"force"` to allow evaluating for the `x86_64-darwin` + platform despite its deprecation in Nixpkgs 26.11. + + This is not expected to function, and Hydra will not build + binaries for the platform. It is provided only as an escape + hatch for custom setups, and comes with no support. - See the [release notes](#x86_64-darwin-26.05) for more + See the [release notes](#x86_64-darwin-26.11) for more information. ''; }; diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index b2cd7f2ada19c..a93fb26666c9f 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -17,6 +17,7 @@ fetchpatch, makeWrapper, coq2html, + dune, }@args: let lib = import ../build-support/coq/extra-lib.nix { inherit (args) lib; }; diff --git a/pkgs/top-level/darwin-aliases.nix b/pkgs/top-level/darwin-aliases.nix index 2d4608cc2201e..72a7dbc9434a1 100644 --- a/pkgs/top-level/darwin-aliases.nix +++ b/pkgs/top-level/darwin-aliases.nix @@ -103,11 +103,14 @@ stubs ### B ### + binutilsDualAs = throw "binutilsDualAs has been removed because it was only useful on `x86_64-darwin` and also only useful for the GNAT bootstrap and also not even used for that any more and actually what on earth were you using this thing for anyway?"; # Added 2026-06-27 + binutilsDualAs-unwrapped = throw "binutilsDualAs has been removed because it was only useful on `x86_64-darwin` and also only useful for the GNAT bootstrap and also not even used for that any more and actually what on earth were you using this thing for anyway?"; # Added 2026-06-27 builder = throw "'darwin.builder' has been changed and renamed to 'darwin.linux-builder'. The default ssh port is now 31022. Please update your configuration or override the port back to 22. See https://nixos.org/manual/nixpkgs/unstable/#sec-darwin-builder"; # added 2023-07-06 bsdmake = pkgs.bmake; # added 2024-10-03 ### C ### + Csu = throw "darwin.Csu has been removed, as it was only used on `x86_64-darwin`, which is no longer supported"; # added 2026-06-26 cctools = pkgs.cctools; # added 2024-07-17 cctools-apple = pkgs.cctools; # added 2024-07-01 cctools-llvm = pkgs.cctools; # added 2024-07-01 diff --git a/pkgs/top-level/darwin-packages.nix b/pkgs/top-level/darwin-packages.nix index 5010f2658c7e1..33e09e254c430 100644 --- a/pkgs/top-level/darwin-packages.nix +++ b/pkgs/top-level/darwin-packages.nix @@ -69,32 +69,6 @@ makeScopeWithSplicing' { bintools = self.binutils-unwrapped; }; - # x86-64 Darwin gnat-bootstrap emits assembly - # with MOVQ as the mnemonic for quadword interunit moves - # such as `movq %rbp, %xmm0`. - # The clang integrated assembler recognises this as valid, - # but unfortunately the cctools.gas GNU assembler does not; - # it instead uses MOVD as the mnemonic. - # The assembly that a GCC build emits is determined at build time - # and cannot be changed afterwards. - # - # To build GNAT on x86-64 Darwin, therefore, - # we need both the clang _and_ the cctools.gas assemblers to be available: - # the former to build at least the stage1 compiler, - # and the latter at least to be detectable - # as the target for the final compiler. - binutilsDualAs-unwrapped = buildEnv { - name = "${lib.getName self.binutils-unwrapped}-dualas-${lib.getVersion self.binutils-unwrapped}"; - paths = [ - self.binutils-unwrapped - (lib.getOutput "gas" cctools) - ]; - }; - - binutilsDualAs = self.binutils.override { - bintools = self.binutilsDualAs-unwrapped; - }; - sourceRelease = self.callPackage ../os-specific/darwin/sourceRelease { }; inherit (self.file_cmds) xattr; diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index c9e888067a741..c00efe313abde 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -18,25 +18,6 @@ or dot-files. */ -let - # We hoist this above the closure so that the same thunk is shared - # between multiple imports of Nixpkgs. This ensures that commands - # like `nix eval nixpkgs#legacyPackages.x86_64-darwin.pkgsStatic.hello` - # print only one warning, which would otherwise be spammy in common - # scenarios that instantiate many copies of Nixpkgs. - # - # Unfortunately, flakes’ handling of transitive dependencies mean - # that it’s still likely users will see multiple warnings, but - # there’s nothing we can do about that within the constraints of the - # Nix language. - x86_64DarwinDeprecationWarning = - pristineLib.warn - "Nixpkgs 26.05 will be the last release to support x86_64-darwin; see https://nixos.org/manual/nixpkgs/unstable/release-notes#x86_64-darwin-26.05" - (x: x); - - pristineLib = import ../../lib; -in - { # The system packages will be built on. See the manual for the # subtle division of labor between these two `*System`s and the three @@ -74,6 +55,8 @@ let # Rename the function arguments in let + pristineLib = import ../../lib; + lib = if __allowFileset then pristineLib @@ -93,7 +76,33 @@ let } ); - inherit (lib) throwIfNot; + inherit (lib) throwIfNot throwIf; + + x86_64DarwinDeprecationMessage = '' + Nixpkgs 26.11 has dropped support for x86_64-darwin. + + The 26.05 stable branch still supports x86_64-darwin, and will + receive security fixes until the end of 2026. If you use channels, + you can switch to 26.05 as follows: + + $ sudo nix-channel --add https://nixos.org/channels/nixpkgs-26.05-darwin nixpkgs + $ sudo nix-channel --update + + If this doesn’t work, you may need to run: + + # Lack of sudo is deliberate: + $ nix-channel --remove nixpkgs + + If you use flakes, switch your flake input: + + inputs.nixpkgs = { + url = "github:NixOS/nixpkgs/nixpkgs-26.05-darwin"; + }; + + See the release notes for more information and alternatives: + + https://nixos.org/manual/nixpkgs/unstable/release-notes#x86_64-darwin-26.11 + ''; checked = (throwIfNot (lib.isList overlays) "The overlays argument to nixpkgs must be a list.") @@ -101,15 +110,10 @@ let (throwIfNot (lib.isList crossOverlays) "The crossOverlays argument to nixpkgs must be a list.") (throwIfNot (lib.all lib.isFunction crossOverlays) "All crossOverlays passed to nixpkgs must be functions.") ( - if - ( - ((localSystem.isDarwin && localSystem.isx86) || (crossSystem.isDarwin && crossSystem.isx86)) - && config.allowDeprecatedx86_64Darwin == false - ) - then - x86_64DarwinDeprecationWarning - else - x: x + throwIf ( + ((localSystem.isDarwin && localSystem.isx86) || (crossSystem.isDarwin && crossSystem.isx86)) + && config.allowDeprecatedx86_64Darwin != "force" + ) x86_64DarwinDeprecationMessage ); localSystem = lib.systems.elaborate args.localSystem; diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix index e10d6f5e1ed24..70d2f84495f8c 100644 --- a/pkgs/top-level/nixpkgs-basic-release-checks.nix +++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix @@ -56,7 +56,7 @@ pkgs.runCommand "nixpkgs-release-checks" set -x nix-env -f $src \ --show-trace --argstr system "$platform" \ - --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system \ "''${opts[@]}" 2> eval-warnings.log > packages1 @@ -72,7 +72,7 @@ pkgs.runCommand "nixpkgs-release-checks" nix-env -f $src2 \ --show-trace --argstr system "$platform" \ - --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system \ "''${opts[@]}" > packages2 @@ -95,7 +95,7 @@ pkgs.runCommand "nixpkgs-release-checks" nix-env -f $src \ --show-trace --argstr system "$platform" \ - --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; allowDeprecatedx86_64Darwin = true; }' \ + --arg config '{ lib, pkgs }: { problems.matchers = lib.mkForce [ ]; allowAliases = false; }' \ --option lint-url-literals fatal \ -qa --drv-path --system-filter \* --system --meta --xml \ "''${opts[@]}" > /dev/null diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 8b143f80b45c9..03cd672321f23 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -2414,7 +2414,9 @@ rec { ocamlPackages_5_4 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.4.nix { }); - ocamlPackages_latest = ocamlPackages_5_4; + ocamlPackages_5_5 = mkOcamlPackages (callPackage ../development/compilers/ocaml/5.5.nix { }); + + ocamlPackages_latest = ocamlPackages_5_5; ocamlPackages = ocamlPackages_5_4; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 7cf04a60d07fa..dfe9e57f7eb56 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -5092,6 +5092,22 @@ with self; }; }; + ClassErrorHandler = buildPerlPackage { + pname = "Class-ErrorHandler"; + version = "0.04"; + src = fetchurl { + url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Class-ErrorHandler-0.04.tar.gz"; + hash = "sha256-NC0tz8eXogvugXmxuWuFwK56W0iCc1lSPNjHTD5wRQI="; + }; + meta = { + description = "Base class for error handling"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + ClassInspector = buildPerlPackage { pname = "Class-Inspector"; version = "1.36"; @@ -6045,10 +6061,10 @@ with self; ConfigIniFiles = buildPerlPackage { pname = "Config-IniFiles"; - version = "3.000003"; + version = "3.002000"; src = fetchurl { - url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz"; - hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI="; + url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.002000.tar.gz"; + hash = "sha256-Bmke17QZl+hQxOfGs05cOWFF4M0FCvGUSiDQaMOlpAs="; }; propagatedBuildInputs = [ IOStringy ]; meta = { @@ -6397,6 +6413,29 @@ with self; }; }; + ConvertPEM = buildPerlPackage { + pname = "Convert-PEM"; + version = "0.13"; + src = fetchurl { + url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-PEM-0.13.tar.gz"; + hash = "sha256-eZ+jLCcAgfTmKSsN31GAlScQqKS+Ey6Qe9oxdqe9HCM="; + }; + buildInputs = [ TestException ]; + propagatedBuildInputs = [ + ClassErrorHandler + ConvertASN1 + CryptDESEDE3 + CryptX + ]; + meta = { + description = "Read/write encrypted ASN.1 PEM files"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + ConvertUU = buildPerlPackage { pname = "Convert-UU"; version = "0.5201"; @@ -6480,10 +6519,10 @@ with self; CookieBaker = buildPerlModule { pname = "Cookie-Baker"; - version = "0.11"; + version = "0.12"; src = fetchurl { - url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz"; - hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s="; + url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.12.tar.gz"; + hash = "sha256-mwTfXUfc1FrEKZYmoQ7JkPtAyU7lpjAMOoi9+zV17Ck="; }; buildInputs = [ ModuleBuildTiny @@ -6691,12 +6730,11 @@ with self; CpanelJSONXS = buildPerlPackage { pname = "Cpanel-JSON-XS"; - version = "4.37"; + version = "4.42"; src = fetchurl { - url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz"; - hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs="; + url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.42.tar.gz"; + hash = "sha256-4awvqx46bS2ZjTRAxgAGc2W9x9vwyPKyBZy85LTIMXM="; }; - patches = [ ../development/perl-modules/Cpanel-JSON-XS-CVE-2025-40929.patch ]; meta = { description = "CPanel fork of JSON::XS, fast and correct serializing"; license = with lib.licenses; [ @@ -6890,13 +6928,15 @@ with self; CryptArgon2 = buildPerlModule { pname = "Crypt-Argon2"; - version = "0.019"; + version = "0.031"; src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz"; - hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg="; + url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.031.tar.gz"; + hash = "sha256-1l5RoZQ+6AglEkUNw1KuUpUQZswJI/u38uYK+l8WTi0="; }; nativeBuildInputs = [ pkgs.ld-is-cc-hook ]; + buildInputs = [ DistBuild ]; meta = { + changelog = "https://github.com/Leont/crypt-argon2/blob/v0.031/Changes"; description = "Perl interface to the Argon2 key derivation functions"; license = with lib.licenses; [ cc0 ]; }; @@ -6950,11 +6990,16 @@ with self; CryptCBC = buildPerlPackage { pname = "Crypt-CBC"; - version = "2.33"; + version = "3.07"; src = fetchurl { - url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz"; - hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU="; + url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-CBC-3.07.tar.gz"; + hash = "sha256-9N37TdasUBPfg0G/pzTZye4PEOLnEhXsj+W/eAt8kSc="; }; + propagatedBuildInputs = [ + CryptPBKDF2 + CryptURandom + CryptX + ]; meta = { description = "Encrypt Data with Cipher Block Chaining Mode"; license = with lib.licenses; [ @@ -7017,6 +7062,23 @@ with self; }; }; + CryptDESEDE3 = buildPerlPackage { + pname = "Crypt-DES_EDE3"; + version = "0.03"; + src = fetchurl { + url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-DES_EDE3-0.03.tar.gz"; + hash = "sha256-KFktt7njR0WqkfPhnl27uDqvRyop5we5eR0NArPiJ/U="; + }; + propagatedBuildInputs = [ CryptDES ]; + meta = { + description = "Triple-DES EDE encryption/decryption"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + CryptDH = buildPerlPackage { pname = "Crypt-DH"; version = "0.07"; @@ -7059,14 +7121,17 @@ with self; CryptDSA = buildPerlPackage { pname = "Crypt-DSA"; - version = "1.17"; + version = "1.21"; src = fetchurl { - url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz"; - hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM="; + url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-DSA-1.21.tar.gz"; + hash = "sha256-pGIB6DkOi6O75RER12SJ8x2v2g9qYLCrkxndUr0rMrA="; }; propagatedBuildInputs = [ + ConvertASN1 + ConvertPEM + CryptSysRandom + CryptURandom DataBuffer - DigestSHA1 FileWhich ]; meta = { @@ -7260,11 +7325,12 @@ with self; CryptPasswdMD5 = buildPerlPackage { pname = "Crypt-PasswdMD5"; - version = "1.42"; + version = "1.43"; src = fetchurl { - url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz"; - hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k="; + url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.43.tgz"; + hash = "sha256-Qr+Sk0UQlYXUlWkCVX7ONdBh7aQ454lPhucHV0EoB1k="; }; + propagatedBuildInputs = [ CryptURandom ]; meta = { description = "Provide interoperable MD5-based crypt() functions"; license = with lib.licenses; [ @@ -7497,12 +7563,15 @@ with self; CryptScryptKDF = buildPerlModule { pname = "Crypt-ScryptKDF"; - version = "0.010"; + version = "0.011"; src = fetchurl { - url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz"; - hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc="; + url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.011.tar.gz"; + hash = "sha256-IZLJ8E8rX/cHN/XNrz9PZ6VXE8MeoIVAOMvzXjttFrQ="; }; - propagatedBuildInputs = [ CryptOpenSSLRandom ]; + propagatedBuildInputs = [ + CryptOpenSSLRandom + CryptX + ]; meta = { description = "Scrypt password based key derivation function"; homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF"; @@ -7744,15 +7813,19 @@ with self; }; }; - CryptPBKDF2 = buildPerlPackage { + CryptPBKDF2 = buildPerlModule { pname = "Crypt-PBKDF2"; - version = "0.161520"; + version = "0.261630"; src = fetchurl { - url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz"; - hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc="; + url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.261630.tar.gz"; + hash = "sha256-GHVxiWOJMrMJs0xFu4EKo+SFbj7VgBAAF9reZXk/RsA="; }; - buildInputs = [ TestFatal ]; + buildInputs = [ + ModuleBuildTiny + TestFatal + ]; propagatedBuildInputs = [ + CryptURandom DigestHMAC DigestSHA3 Moo @@ -11019,6 +11092,31 @@ with self; }; }; + DistBuild = buildPerlModule { + pname = "Dist-Build"; + version = "0.028"; + src = fetchurl { + url = "mirror://cpan/authors/id/L/LE/LEONT/Dist-Build-0.028.tar.gz"; + hash = "sha256-JPFLFA4Tq3x1PU25bI0zbQnepcb1H+1IvA92Khyhgx8="; + }; + propagatedBuildInputs = [ + ExtUtilsBuilder + ExtUtilsBuilderCompiler + ExtUtilsConfig + ExtUtilsHelpers + ExtUtilsInstallPaths + ]; + meta = { + changelog = "https://github.com/Leont/dist-build/blob/v0.028/Changes"; + description = "Modern module builder, author tools not included"; + homepage = "https://github.com/Leont/dist-build"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + DistributionMetadata = buildPerlModule { pname = "Distribution-Metadata"; version = "0.10"; @@ -12567,6 +12665,48 @@ with self; }; }; + ExtUtilsBuilder = buildPerlPackage { + pname = "ExtUtils-Builder"; + version = "0.020"; + src = fetchurl { + url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Builder-0.020.tar.gz"; + hash = "sha256-UtZR46oDJyUOR5h9Rf9I6cyQtbe9L7D/P3h4PlMq/8w="; + }; + propagatedBuildInputs = [ + ExtUtilsConfig + ExtUtilsHelpers + ]; + meta = { + description = "Abstract representation of build processes"; + homepage = "https://github.com/Leont/extutils-builder-plan"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + + ExtUtilsBuilderCompiler = buildPerlPackage { + pname = "ExtUtils-Builder-Compiler"; + version = "0.037"; + src = fetchurl { + url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Builder-Compiler-0.037.tar.gz"; + hash = "sha256-s5VNaI45gDkoUnkWfG6+7nVX8Q6VYBzj/baBkyY2h7g="; + }; + propagatedBuildInputs = [ + ExtUtilsBuilder + ExtUtilsConfig + ]; + meta = { + description = "Interface around different compilers"; + homepage = "https://github.com/Leont/extutils-builder-compiler"; + license = with lib.licenses; [ + artistic1 + gpl1Plus + ]; + }; + }; + ExtUtilsCChecker = buildPerlModule { pname = "ExtUtils-CChecker"; version = "0.11"; @@ -12586,10 +12726,10 @@ with self; ExtUtilsConfig = buildPerlPackage { pname = "ExtUtils-Config"; - version = "0.008"; + version = "0.010"; src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz"; - hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow="; + url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.010.tar.gz"; + hash = "sha256-gufk6Qy+OA4VL13m4+QDdGmC1QLdMBl6EjZS5GYQxm0="; }; meta = { description = "Wrapper for perl's configuration"; @@ -12677,10 +12817,10 @@ with self; ExtUtilsHelpers = buildPerlPackage { pname = "ExtUtils-Helpers"; - version = "0.026"; + version = "0.028"; src = fetchurl { - url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz"; - hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY="; + url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.028.tar.gz"; + hash = "sha256-yFdIdczgc+fcU0WnsG1QLlIETWiJT5FgID/KqzeVFP4="; }; meta = { description = "Various portability utilities for module builders"; @@ -14650,10 +14790,10 @@ with self; GD = buildPerlPackage { pname = "GD"; - version = "2.78"; + version = "2.86"; src = fetchurl { - url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz"; - hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ="; + url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.86.tar.gz"; + hash = "sha256-bWTTvhQpzB606IqPICL+yRDqPgeS2k/ljT7fdpXEbKI="; }; nativeBuildInputs = [ @@ -14668,6 +14808,7 @@ with self; pkgs.fontconfig pkgs.libxpm ExtUtilsPkgConfig + FileWhich TestFork TestNoWarnings ]; @@ -16014,10 +16155,10 @@ with self; HTMLForm = buildPerlPackage { pname = "HTML-Form"; - version = "6.11"; + version = "6.13"; src = fetchurl { - url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz"; - hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ="; + url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Form-6.13.tar.gz"; + hash = "sha256-rlrQ9v5wsaOCeJ1eg6m2acxUHunUWeG/qJtDrgwBTN0="; }; buildInputs = [ TestWarnings ]; propagatedBuildInputs = [ @@ -16283,10 +16424,10 @@ with self; HTMLParser = buildPerlPackage { pname = "HTML-Parser"; - version = "3.81"; + version = "3.85"; src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz"; - hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I="; + url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.85.tar.gz"; + hash = "sha256-/UK6ar4HJBzwrVe+JGw5gAZfaD5EZeWbRq+e/ryODHE="; }; propagatedBuildInputs = [ HTMLTagset @@ -16881,10 +17022,10 @@ with self; HTTPMessage = buildPerlPackage { pname = "HTTP-Message"; - version = "6.45"; + version = "7.02"; src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz"; - hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4="; + url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-7.02.tar.gz"; + hash = "sha256-eKvvHYMxRrSNF9shmxsD1Ty743oozNrQ79zFgzylxgw="; }; buildInputs = [ TestNeeds @@ -16892,8 +17033,11 @@ with self; ]; propagatedBuildInputs = [ Clone + CompressRawBzip2 + CompressRawZlib EncodeLocale HTTPDate + IOCompress IOHTML LWPMediaTypes URI @@ -17544,10 +17688,10 @@ with self; IOCompress = buildPerlPackage { pname = "IO-Compress"; - version = "2.220"; + version = "2.221"; src = fetchurl { - url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.220.tar.gz"; - hash = "sha256-nZbqKR8sVO82fHOWuFfZO6GsHEsvG84T7Yo+Xz7rtic="; + url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.221.tar.gz"; + hash = "sha256-r0LJyRBK3313LSVcDZpASjRi6kXnvELQbaCgtR3j0K4="; }; propagatedBuildInputs = [ CompressRawBzip2 @@ -18782,10 +18926,10 @@ with self; libwwwperl = buildPerlPackage { pname = "libwww-perl"; - version = "6.72"; + version = "6.83"; src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz"; - hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0="; + url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.83.tar.gz"; + hash = "sha256-518PqdPG8Nr1pacvqfixycDSPjqEqFIsy0+DUjK5VQU="; }; buildInputs = [ HTTPDaemon @@ -20039,10 +20183,10 @@ with self; LWP = buildPerlPackage { pname = "libwww-perl"; - version = "6.72"; + version = "6.83"; src = fetchurl { - url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz"; - hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0="; + url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.83.tar.gz"; + hash = "sha256-518PqdPG8Nr1pacvqfixycDSPjqEqFIsy0+DUjK5VQU="; }; propagatedBuildInputs = [ FileListing @@ -22687,10 +22831,10 @@ with self; Mojolicious = buildPerlPackage { pname = "Mojolicious"; - version = "9.39"; + version = "9.46"; src = fetchurl { - url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.39.tar.gz"; - hash = "sha256-EwpJDXfXYTn3NM4biU1Fm64DgF+x89/dWPxE/oKvPP0="; + url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.46.tar.gz"; + hash = "sha256-/kc9LK5tLe/pUBgCggc2VoJa0F20TwvIxIQhXi1xaqw="; }; meta = { description = "Real-time web framework"; @@ -26384,10 +26528,10 @@ with self; NetStatsd = buildPerlPackage { pname = "Net-Statsd"; - version = "0.12"; + version = "0.13"; src = fetchurl { - url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz"; - hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw="; + url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.13.tar.gz"; + hash = "sha256-xKYP9dP002ompqR3YxGI7HnNzp4wUMZ6NOm1rikgoQA="; }; meta = { description = "Perl client for Etsy's statsd daemon"; @@ -28557,12 +28701,13 @@ with self; PlackMiddlewareSession = buildPerlModule { pname = "Plack-Middleware-Session"; - version = "0.33"; + version = "0.36"; src = fetchurl { - url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz"; - hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4="; + url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.36.tar.gz"; + hash = "sha256-kqWDFliBDSNzLm47rnpEofpafYpqbm3NdbkcapwktGY="; }; propagatedBuildInputs = [ + CryptSysRandom DigestHMAC Plack ]; @@ -29117,10 +29262,10 @@ with self; ProtocolHTTP2 = buildPerlModule { pname = "Protocol-HTTP2"; - version = "1.11"; + version = "1.13"; src = fetchurl { - url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.11.tar.gz"; - hash = "sha256-Vp8Fsavpl7UHyCUVMMyB0e6WvZMsxoJTS2zkhlNQCRM="; + url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.13.tar.gz"; + hash = "sha256-LsO0oYpkqGHgKYHO/Y7W8iOHUTj75e/us0DvF5ZVMGI="; }; buildInputs = [ AnyEvent @@ -30561,10 +30706,10 @@ with self; SerealDecoder = buildPerlPackage { pname = "Sereal-Decoder"; - version = "5.004"; + version = "5.006"; src = fetchurl { - url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz"; - hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q="; + url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.006.tar.gz"; + hash = "sha256-eZGFXpGBo3nJsBIv6PwvaONEnJFhaow1eSbxFh9oR2g="; }; buildInputs = [ TestDeep @@ -30586,10 +30731,10 @@ with self; SerealEncoder = buildPerlPackage { pname = "Sereal-Encoder"; - version = "5.004"; + version = "5.006"; src = fetchurl { - url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz"; - hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs="; + url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.006.tar.gz"; + hash = "sha256-kLQsyHdZgq4MdJno9ZLOeu+ug0M1g+EKWtVxKBHRcK0="; }; buildInputs = [ SerealDecoder @@ -30611,10 +30756,10 @@ with self; Sereal = buildPerlPackage { pname = "Sereal"; - version = "5.004"; + version = "5.006"; src = fetchurl { - url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz"; - hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128="; + url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.006.tar.gz"; + hash = "sha256-uwXnY+1ry+pEx5IX/vCy05GKwVRxlHIwOMbER+5vWd4="; }; buildInputs = [ TestDeep @@ -31388,10 +31533,10 @@ with self; Starlet = buildPerlPackage { pname = "Starlet"; - version = "0.31"; + version = "0.32"; src = fetchurl { - url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz"; - hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg="; + url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.32.tar.gz"; + hash = "sha256-gZI9OmCX3YHH4Og9SBvuof89ZejgHY0f59yziFV1vY8="; }; buildInputs = [ LWP @@ -38773,10 +38918,10 @@ with self; XMLLibXML = buildPerlPackage { pname = "XML-LibXML"; - version = "2.0210"; + version = "2.0213"; src = fetchurl { - url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz"; - hash = "sha256-opvz8Aq5ye4EIYFU4K/I95m/I2dOuZwantTeH0BZpI0="; + url = "mirror://cpan/authors/id/T/TO/TODDR/XML-LibXML-2.0213.tar.gz"; + hash = "sha256-KvIcXWGsNOompfq/FbpaWEHmSPcYnbPjO28otUiYAqs="; }; env.SKIP_SAX_INSTALL = 1; buildInputs = [ @@ -38790,10 +38935,6 @@ with self; zlib ] ); - patches = [ - # https://github.com/shlomif/perl-XML-LibXML/pull/87 - ../development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch - ]; propagatedBuildInputs = [ XMLSAX ]; meta = { description = "Perl Binding for libxml2"; @@ -39388,11 +39529,12 @@ with self; YAMLLibYAML = buildPerlPackage { pname = "YAML-LibYAML"; - version = "0.89"; + version = "0.907.0"; src = fetchurl { - url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz"; - hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw="; + url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-v0.907.0.tar.gz"; + hash = "sha256-a6CHIkkROJ52+hmLFJzsg/BlsKx13cUmGPNJCULNlQY="; }; + buildInputs = [ TestWarnings ]; meta = { description = "Perl YAML Serialization using XS and libyaml"; license = with lib.licenses; [ diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index 70cc9000f7c8c..16df0610345ac 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -79,8 +79,10 @@ mapAliases { abodepy = throw "'abodepy' has been renamed to/replaced by 'jaraco-abode'"; # Converted to throw 2025-10-29 advocate = throw "'advocate' has been removed due to being archived upstream and unused"; # added 2026-07-01 aioinflux = throw "'aioinflux' was removed because it is abandonned upstream. For InfluxDB v2+ support, please use the official Python client library"; # Added 2026-01-15 + aiosasl = throw "'aiosasl' was removed because it is abandoned upstream and does not work on modern Python versions."; # Added 2026-06-28 aiosenz = throw "aiosenz was removed because Home Assistant switched to pysenz"; # added 2025-12-29 aioshutil = throw "'aioshutil' was removed because uiprotect no longer depends on it"; # added 2026-02-16 + aioxmpp = throw "'aioxmpp' was removed because it depends on aiosasl, which is abandoned and does not work on modern Python versions."; # Added 2026-06-28 amazon-kclpy = throw "amazon-kclpy has been removed because it has been marked as broken since at least November 2024."; # Added 2025-10-03 amazon_kclpy = throw "'amazon_kclpy' has been renamed to/replaced by 'amazon-kclpy'"; # Converted to throw 2025-10-29 amqplib = throw "amqplib has been removed as it was unmaintained upstream"; # Added 2025-11-22 @@ -89,6 +91,7 @@ mapAliases { apkit = throw "apkit was removed because it is unmaintained upstream and different from apkit on PyPI"; # added 2025-09-13 APScheduler = throw "'APScheduler' has been renamed to/replaced by 'apscheduler'"; # Converted to throw 2025-10-29 argon2_cffi = throw "'argon2_cffi' has been renamed to/replaced by 'argon2-cffi'"; # Converted to throw 2025-10-29 + asmog = throw "'asmog' has been removed because the service it polled is offline and the library has been unmaintained since 2019"; # Added 2026-06-04 aspy-refactor-imports = throw "'aspy-refactor-imports' has been renamed to/replaced by 'classify-imports'"; # Added 2026-05-22 aspy-yaml = throw "'aspy-yaml' has been removed because the upstream repository was archived in 2020"; # Added 2026-06-04 astropy-extension-helpers = extension-helpers; # Added 2025-10-15 @@ -98,11 +101,13 @@ mapAliases { async_stagger = throw "'async_stagger' has been renamed to/replaced by 'async-stagger'"; # Converted to throw 2025-10-29 asyncio-nats-client = throw "'asyncio-nats-client' has been renamed to/replaced by 'nats-py'"; # Converted to throw 2025-10-29 asyncstdlib-fw = throw "'asyncstdlib-fw' has been removed as it is not longer required by fireworks-ai"; # Added 2026-06-09 + atenpdu = throw "'atenpdu' has been removed, since it had was broken and unmaintained in home-assistant"; # Added 2026-06-04 atsim_potentials = throw "'atsim_potentials' has been renamed to/replaced by 'atsim-potentials'"; # Converted to throw 2025-10-29 aubio = throw "'aubio' only direct user LedFX switched to a fork named 'aubio-ledfx', hence the aubio package has been replaced."; # Added 2026-04-20 audio-metadata = throw "'audio-metadata' has been removed as it's unmaintained since 2020"; # Added 2026-03-12 autotrash = throw "'autotrash' has been renamed to/replaced by 'super.pkgs.autotrash'"; # Converted to throw 2025-10-29 av_13 = throw "'av_13' has been renamed to/replaced by 'av'"; # Added 2026-02-01 + avion = throw "'avion' has been removed since it depended on the unmaintained bluepy library"; # Added 2026-06-04 avro3k = throw "'avro3k' was removed because it's unmaintained since 2014"; # added 2026-06-18 awesome-slugify = throw "'awesome-slugify' has been removed as it was unmaintained upstream"; # Added 2026-06-14 Babel = throw "'Babel' has been renamed to/replaced by 'babel'"; # Converted to throw 2025-10-29 @@ -115,6 +120,7 @@ mapAliases { beancount_docverif = throw "'beancount_docverif' has been renamed to/replaced by 'beancount-docverif'"; # Converted to throw 2025-10-29 beets-stable = lib.warn "beets-stable was aliased to beets, since upstream releases are frequent nowadays" self.beets; # added 2025-10-16 beets-unstable = lib.warn "beets-unstable was aliased to beets, since upstream releases are frequent nowadays" self.beets; # added 2025-10-16 + beewi-smartclim = throw "'beetwi-smartclim' was removed because it depends on the unmaintained bluepy library"; # Added 2026-06-04 betterproto-fw = throw "'betterproto-fw' has been removed as it is not longer required by fireworks-ai"; # Added 2026-06-09 bilibili-api-python = throw "'bilibili-api-python' was removed because its source is unavailable"; # added 2026-07-07 bimmer-connected = throw "'bimmer-connected' was removed because BMW started blocking third parties"; # added 2026-03-30 @@ -204,6 +210,7 @@ mapAliases { EasyProcess = throw "'EasyProcess' has been renamed to/replaced by 'easyprocess'"; # Converted to throw 2025-10-29 editdistance-s = throw "editdistance-s has been removed since it was added solely for the identity package, which has moved on to ukkonen"; # added 2025-08-04 elegy = throw "elegy has been removed because it has transitively been marked as broken since 2023."; # Added 2025-10-11 + eliqonline = throw "'eligonline' was removed because Home Assistant dropped the integation"; # Added 2026-06-04 email_validator = throw "'email_validator' has been renamed to/replaced by 'email-validator'"; # Converted to throw 2025-10-29 emailthreads = throw "'emailthreads' has been removed because the upstream repository was archived in 2024"; # Added 2026-04-09 enocean = throw "'enocean' was removed because Home Assistant switched to 'enocean-async'"; # added 2026-03-31 @@ -223,6 +230,7 @@ mapAliases { fenics = throw "fenics has been removed, use fenics-dolfinx instead"; # added 2025-08-07 filebrowser_safe = throw "'filebrowser_safe' has been renamed to/replaced by 'filebrowser-safe'"; # Converted to throw 2025-10-29 filesplit = throw "filesplit has been removed, since it is unmaintained"; # added 2025-08-20 + fints_4 = throw "fints_4 has been removed, migrate to fints"; # added 2026-06-04 flake8-future-import = throw "'flake8-future-import' has been removed as it was unmaintained upstream"; # Added 2026-03-22 flask-security-too = throw "'flask-security-too' has been renamed to/replaced by 'flask-security'"; # Converted to throw 2025-10-29 flask-silk = throw "flask-silk was removed, as it is unmaintained since 2018."; # added 2025-05-25 @@ -250,6 +258,7 @@ mapAliases { ghidra-bridge = throw "'ghidra-bridge' has been removed as it was unmaintained upstream"; # Added 2026-04-05 github3_py = throw "'github3_py' has been renamed to/replaced by 'github3-py'"; # Converted to throw 2025-10-29 GitPython = throw "'GitPython' has been renamed to/replaced by 'gitpython'"; # Converted to throw 2025-10-29 + gitterpy = throw "'gitterpy' was removed. The service was migrated to Matrix"; # Added 2026-06-04 google_api_python_client = throw "'google_api_python_client' has been renamed to/replaced by 'google-api-python-client'"; # Converted to throw 2025-10-29 googleapis_common_protos = throw "'googleapis_common_protos' has been renamed to/replaced by 'googleapis-common-protos'"; # Converted to throw 2025-10-29 gotrue = throw "'gotrue' has been replaced by 'supabase-auth'"; # Added 2026-03-08 @@ -260,6 +269,7 @@ mapAliases { gradient_statsd = throw "'gradient_statsd' has been renamed to/replaced by 'gradient-statsd'"; # Converted to throw 2025-10-29 grapheme = throw "'grapheme' has been removed as it is unmaintained upstream. Consider using 'graphemeu' instead."; # Converted to throw 2025-12-22 grappelli_safe = throw "'grappelli_safe' has been renamed to/replaced by 'grappelli-safe'"; # Converted to throw 2025-10-29 + greenwavereality = throw "'greenwavereality' has been removed because Home Assistant dropped support"; # Added 2026-06-04 groestlcoin_hash = throw "'groestlcoin_hash' has been renamed to/replaced by 'groestlcoin-hash'"; # Converted to throw 2025-10-29 grpc_google_iam_v1 = throw "'grpc_google_iam_v1' has been renamed to/replaced by 'grpc-google-iam-v1'"; # Converted to throw 2025-10-29 gtimelog = throw "'gtimelog' has been renamed to/replaced by 'gtimelog'"; # Converted to throw 2025-10-29 @@ -326,6 +336,7 @@ mapAliases { ledger-agent = throw "ledger-agent has been removed because upstream dropped Ledger support"; # Added 2026-03-11 ledger_agent = throw "ledger-agent has been removed because upstream dropped Ledger support"; # Added 2026-03-11 libarcus = throw "'libarcus' has been removed, as it was unmaintained in nixpkgs"; # Added 2026-05-22 + libclang = clang; # added 2026-06-18 libgpiod = gpiod; # added 2026-03-30 libpyfoscam = throw "libpyfoscam was removed because Home Assistant switched to libpyfoscamcgi"; # added 2025-07-03 line_profiler = throw "'line_profiler' has been renamed to/replaced by 'line-profiler'"; # Converted to throw 2025-10-29 @@ -458,6 +469,7 @@ mapAliases { pylit = throw "'pylit' has been removed as it was broken and unmaintained upstream"; # Added 2025-11-29 pymc3 = throw "'pymc3' has been renamed to/replaced by 'pymc'"; # Converted to throw 2025-10-29 pymelcloud = throw "'pymelcloud' has been renamed to/replaced by 'python-melcloud'"; # Converted to throw 2025-10-29 + pymsteams = throw "'pymsteams' was removed because API used was discontinued"; # Added 2026-06-04 PyMVGLive = throw "'PyMVGLive' has been renamed to/replaced by 'pymvglive'"; # Converted to throw 2025-10-29 pymyq = throw "'pymyq' has been renamed to/replaced by 'python-myq'"; # Converted to throw 2025-10-29 pymystem3 = throw "'pymystem3' has been removed because it is broken and unmaintained"; # Added 2026-04-19 @@ -488,6 +500,7 @@ mapAliases { pyside6-fluent-widgets = throw "pyside6-fluent-widgets has been removed, since it is unmaintained"; # added 2025-08-20 pysidesix-frameless-window = throw "pysidesix-frameless-window has been removed, since it is unmaintained"; # added 2025-08-20 pysmart-smartx = throw "'pysmart-smartx' has been renamed to/replaced by 'pysmart'"; # Converted to throw 2025-10-29 + pysmartapp = throw "'pysmartapp' has been removed since it is deprecated and archived upstream."; # Added 2026-06-03 pySmartDL = throw "'pySmartDL' has been renamed to/replaced by 'pysmartdl'"; # Converted to throw 2025-10-29 pysmi-lextudio = throw "'pysmi-lextudio' has been renamed to/replaced by 'pysmi'"; # Converted to throw 2025-10-29 pysnmp-lextudio = throw "'pysnmp-lextudio' has been renamed to/replaced by 'pysnmp'"; # Converted to throw 2025-10-29 @@ -505,6 +518,7 @@ mapAliases { pytestquickcheck = throw "'pytestquickcheck' has been renamed to/replaced by 'pytest-quickcheck'"; # Converted to throw 2025-10-29 pytestrunner = throw "'pytestrunner' has been renamed to/replaced by 'pytest-runner'"; # Converted to throw 2025-10-29 python-bring-api = throw "python-bring-api was removed because Home Assistant switched to bring-api"; # added 2025-10-03 + python-clementine-remote = throw "'python-clementine-remote' was removed because Home Assistant droppped the integration"; # Added 2026-06-04 python-ethtool = throw "'python-ethtool' has been renamed to/replaced by 'ethtool'"; # Converted to throw 2025-10-29 python-igraph = throw "'python-igraph' has been renamed to/replaced by 'igraph'"; # Converted to throw 2025-10-29 python-jsonrpc-server = throw "python-jsonrpc-server has been removed because it was no longer used by anything"; # added 2025-11-11 @@ -575,6 +589,7 @@ mapAliases { scikitimage = throw "'scikitimage' has been renamed to/replaced by 'scikit-image'"; # Converted to throw 2025-10-29 scikitlearn = throw "'scikitlearn' has been renamed to/replaced by 'scikit-learn'"; # Converted to throw 2025-10-29 scrapy-fake-useragent = throw "scrapy-fake-useragent has been removed because it is incompatible with scrapy >= 2.14"; # Added 2026-01-14 + scsgate = throw "'scsgate' has been removed because Home Assistant dropped the integration"; # Added 2026-06-04 seaserv = throw "seaserv has been removed as it is unmaintained"; # Added 2025-08-21 sentry-sdk_2 = throw "'sentry-sdk_2' has been renamed to/replaced by 'sentry-sdk'"; # Converted to throw 2025-10-29 setuptools_dso = throw "'setuptools_dso' has been renamed to/replaced by 'setuptools-dso'"; # Converted to throw 2025-10-29 @@ -632,6 +647,7 @@ mapAliases { TheanoWithCuda = throw "'TheanoWithCuda' has been renamed to/replaced by 'theanoWithCuda'"; # Converted to throw 2025-10-29 TheanoWithoutCuda = throw "'TheanoWithoutCuda' has been renamed to/replaced by 'theanoWithoutCuda'"; # Converted to throw 2025-10-29 threadpool = throw "'threadpool' has been removed, since it is obsolete"; # Added 2026-01-09 + tikteck = throw "'tikteck' has been removed because Home Assistant dropped its integration"; # Added 2026-06-04 tikzplotlib = throw "tikzplotlib was removed because it is incompatible with recent versions of matplotlib and webcolors"; # added 2025-11-11 torchtnt-nightly = throw "'torchtnt-nightly' was only needed as a test dependency for 'torcheval', but these tests are no longer run"; # added 2025-11-12 torchtune = throw "'torchtune' was removed because it is unmaintained upstream."; # added 2026-07-02 @@ -652,6 +668,7 @@ mapAliases { ufoLib2 = throw "'ufoLib2' has been renamed to/replaced by 'ufolib2'"; # Converted to throw 2025-10-29 unicode-slugify = throw "'unicode-slugify' has been removed becaues it was broken and unmaintained. Consider using 'python-slugify' instead."; # added 2025-10-05 unifi = throw "'unifi' has been removed as upstream was archived in 2017"; # Added 2025-08-25 + unifiled = throw "'unifiled' has been removed because Home Assistant dropped the integration"; # Added 2026-06-04 unittest-data-provider = throw "'unittest-data-provider' has been removed as it was unused, unmaintained, and upstream suggests 'pytest parameterize' instead."; # Added 2026-05-22 update_checker = throw "'update_checker' has been renamed to/replaced by 'update-checker'"; # Converted to throw 2025-10-29 uranium = throw "'uranium' has been removed, as it was unmaintained in nixpkgs"; # Added 2026-05-22 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 10b615e269eeb..86476eafd4fdd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -27,6 +27,8 @@ self: super: with self; { setuptools = callPackage ../development/python-modules/setuptools { }; + setuptools_80 = callPackage ../development/python-modules/setuptools/80.nix { }; + # by_regex ensures inherit statements are sorted after the (first) attribute name that is inherited. # keep-sorted start block=yes newline_separated=yes by_regex=["(?:inherit\\s+\\([^)]+\\)\\n?\\s*)?(.+)"] a2a-sdk = callPackage ../development/python-modules/a2a-sdk { }; @@ -526,8 +528,6 @@ self: super: with self; { aiorwlock = callPackage ../development/python-modules/aiorwlock { }; - aiosasl = callPackage ../development/python-modules/aiosasl { }; - aiosendspin = callPackage ../development/python-modules/aiosendspin { }; aiosendspin-mpris = callPackage ../development/python-modules/aiosendspin-mpris { }; @@ -612,8 +612,6 @@ self: super: with self; { aiowmi = callPackage ../development/python-modules/aiowmi { }; - aioxmpp = callPackage ../development/python-modules/aioxmpp { }; - aioymaps = callPackage ../development/python-modules/aioymaps { }; aiozeroconf = callPackage ../development/python-modules/aiozeroconf { }; @@ -1389,8 +1387,6 @@ self: super: with self; { asks = callPackage ../development/python-modules/asks { }; - asmog = callPackage ../development/python-modules/asmog { }; - asn1 = callPackage ../development/python-modules/asn1 { }; asn1ate = callPackage ../development/python-modules/asn1ate { }; @@ -1411,6 +1407,8 @@ self: super: with self; { ast-grep-py = callPackage ../development/python-modules/ast-grep-py { }; + ast-serialize = callPackage ../development/python-modules/ast-serialize { }; + asterisk-mbox = callPackage ../development/python-modules/asterisk-mbox { }; asteroid-filterbanks = callPackage ../development/python-modules/asteroid-filterbanks { }; @@ -1507,8 +1505,6 @@ self: super: with self; { atc-ble = callPackage ../development/python-modules/atc-ble { }; - atenpdu = callPackage ../development/python-modules/atenpdu { }; - atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { }; atom = callPackage ../development/python-modules/atom { }; @@ -1644,8 +1640,6 @@ self: super: with self; { avidtools = callPackage ../development/python-modules/avidtools { }; - avion = callPackage ../development/python-modules/avion { }; - avro = callPackage ../development/python-modules/avro { }; avro-python3 = callPackage ../development/python-modules/avro-python3 { }; @@ -2315,8 +2309,6 @@ self: super: with self; { beets-ytimport = callPackage ../development/python-modules/beets-ytimport { }; - beewi-smartclim = callPackage ../development/python-modules/beewi-smartclim { }; - before-after = callPackage ../development/python-modules/before-after { }; behave = callPackage ../development/python-modules/behave { }; @@ -3040,6 +3032,8 @@ self: super: with self; { chardet = callPackage ../development/python-modules/chardet { }; + chardet_5 = callPackage ../development/python-modules/chardet/5.nix { }; + charset-normalizer = callPackage ../development/python-modules/charset-normalizer { }; chat-downloader = callPackage ../development/python-modules/chat-downloader { }; @@ -3122,7 +3116,11 @@ self: super: with self; { ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { }; - ckzg = callPackage ../development/python-modules/ckzg { }; + ckzg = callPackage ../development/python-modules/ckzg { + inherit (pkgs) clang; + }; + + clang = callPackage ../development/python-modules/clang { }; clarabel = callPackage ../development/python-modules/clarabel { }; @@ -4444,6 +4442,9 @@ self: super: with self; { distutils-extra = callPackage ../development/python-modules/distutils-extra { }; + distutils_80 = + if pythonOlder "3.12" then null else callPackage ../development/python-modules/distutils/80.nix { }; + dj-database-url = callPackage ../development/python-modules/dj-database-url { }; dj-email-url = callPackage ../development/python-modules/dj-email-url { }; @@ -5379,8 +5380,6 @@ self: super: with self; { eliot = callPackage ../development/python-modules/eliot { }; - eliqonline = callPackage ../development/python-modules/eliqonline { }; - elkm1-lib = callPackage ../development/python-modules/elkm1-lib { }; elkoep-aio-mqtt = callPackage ../development/python-modules/elkoep-aio-mqtt { }; @@ -5975,8 +5974,6 @@ self: super: with self; { fints = callPackage ../development/python-modules/fints { }; - fints_4 = callPackage ../development/python-modules/fints/4.nix { }; - finvizfinance = callPackage ../development/python-modules/finvizfinance { }; fiona = callPackage ../development/python-modules/fiona { }; @@ -6763,8 +6760,6 @@ self: super: with self; { gitpython = callPackage ../development/python-modules/gitpython { }; - gitterpy = callPackage ../development/python-modules/gitterpy { }; - giturlparse = callPackage ../development/python-modules/giturlparse { }; glad = callPackage ../development/python-modules/glad { }; @@ -7171,8 +7166,6 @@ self: super: with self; { greenplanet-energy-api = callPackage ../development/python-modules/greenplanet-energy-api { }; - greenwavereality = callPackage ../development/python-modules/greenwavereality { }; - gremlinpython = callPackage ../development/python-modules/gremlinpython { }; grep-ast = callPackage ../development/python-modules/grep-ast { }; @@ -8875,6 +8868,8 @@ self: super: with self; { knx-frontend = callPackage ../development/python-modules/knx-frontend { }; + knx-telegram-store = callPackage ../development/python-modules/knx-telegram-store { }; + kokoro = callPackage ../development/python-modules/kokoro { }; kombu = callPackage ../development/python-modules/kombu { }; @@ -9191,8 +9186,6 @@ self: super: with self; { libbs = callPackage ../development/python-modules/libbs { }; - libclang = callPackage ../development/python-modules/libclang { }; - libcloud = callPackage ../development/python-modules/libcloud { }; libcomps = lib.pipe pkgs.libcomps [ @@ -12426,6 +12419,10 @@ self: super: with self; { callPackage ../development/python-modules/opentelemetry-semantic-conventions { }; + opentelemetry-semantic-conventions-ai = + callPackage ../development/python-modules/opentelemetry-semantic-conventions-ai + { }; + opentelemetry-test-utils = callPackage ../development/python-modules/opentelemetry-test-utils { }; opentelemetry-util-http = callPackage ../development/python-modules/opentelemetry-util-http { }; @@ -12493,6 +12490,8 @@ self: super: with self; { opuslib = callPackage ../development/python-modules/opuslib { }; + opuslib-next = callPackage ../development/python-modules/opuslib-next { }; + opytimark = callPackage ../development/python-modules/opytimark { }; oracledb = callPackage ../development/python-modules/oracledb { }; @@ -15077,8 +15076,6 @@ self: super: with self; { pymssql = callPackage ../development/python-modules/pymssql { krb5-c = pkgs.krb5; }; - pymsteams = callPackage ../development/python-modules/pymsteams { }; - pymumble = callPackage ../development/python-modules/pymumble { }; pymunk = callPackage ../development/python-modules/pymunk { }; @@ -15213,7 +15210,9 @@ self: super: with self; { callPackage ../development/python-modules/pyobjc-framework-libdispatch { }; - pyobjus = callPackage ../development/python-modules/pyobjus { }; + pyobjus = callPackage ../development/python-modules/pyobjus { + inherit (pkgs) clang; + }; pyocd = callPackage ../development/python-modules/pyocd { }; @@ -15797,8 +15796,6 @@ self: super: with self; { pysmart = callPackage ../development/python-modules/pysmart { }; - pysmartapp = callPackage ../development/python-modules/pysmartapp { }; - pysmartdl = callPackage ../development/python-modules/pysmartdl { }; pysmartthings = callPackage ../development/python-modules/pysmartthings { }; @@ -16340,8 +16337,6 @@ self: super: with self; { python-citybikes = callPackage ../development/python-modules/python-citybikes { }; - python-clementine-remote = callPackage ../development/python-modules/python-clementine-remote { }; - python-code-minimap = callPackage ../development/python-modules/python-code-minimap { }; python-codon-tables = callPackage ../development/python-modules/python-codon-tables { }; @@ -16881,6 +16876,8 @@ self: super: with self; { pytmx = callPackage ../development/python-modules/pytmx { }; + pytokens = callPackage ../development/python-modules/pytokens { }; + pytomlpp = callPackage ../development/python-modules/pytomlpp { }; pytomorrowio = callPackage ../development/python-modules/pytomorrowio { }; @@ -18209,8 +18206,6 @@ self: super: with self; { scs = callPackage ../development/python-modules/scs { }; - scsgate = callPackage ../development/python-modules/scsgate { }; - scspell = callPackage ../development/python-modules/scspell { }; scverse-misc = callPackage ../development/python-modules/scverse-misc { }; @@ -20208,8 +20203,6 @@ self: super: with self; { tika-client = callPackage ../development/python-modules/tika-client { }; - tikteck = callPackage ../development/python-modules/tikteck { }; - tiktoken = callPackage ../development/python-modules/tiktoken { }; tiledb = callPackage ../development/python-modules/tiledb { inherit (pkgs) tiledb; }; @@ -20270,6 +20263,8 @@ self: super: with self; { tinygrad = callPackage ../development/python-modules/tinygrad { }; + tinyhtml = callPackage ../development/python-modules/tinyhtml { }; + tinyhtml5 = callPackage ../development/python-modules/tinyhtml5 { }; tinyio = callPackage ../development/python-modules/tinyio { }; @@ -21452,8 +21447,6 @@ self: super: with self; { unifi-discovery = callPackage ../development/python-modules/unifi-discovery { }; - unifiled = callPackage ../development/python-modules/unifiled { }; - unify = callPackage ../development/python-modules/unify { }; unique-log-filter = callPackage ../development/python-modules/unique-log-filter { }; @@ -21654,6 +21647,8 @@ self: super: with self; { vcrpy = callPackage ../development/python-modules/vcrpy { }; + vcs-versioning = callPackage ../development/python-modules/vcs-versioning { }; + vcversioner = callPackage ../development/python-modules/vcversioner { }; vdf = callPackage ../development/python-modules/vdf { }; @@ -22534,6 +22529,8 @@ self: super: with self; { zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { }; + zigpy-ziggurat = callPackage ../development/python-modules/zigpy-ziggurat { }; + zigpy-znp = callPackage ../development/python-modules/zigpy-znp { }; zimports = callPackage ../development/python-modules/zimports { }; diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix index 6ed29a18e494b..686d09922259a 100644 --- a/pkgs/top-level/release-haskell.nix +++ b/pkgs/top-level/release-haskell.nix @@ -192,7 +192,7 @@ let # -> [a] -- list of elements from which to remove # -> [a] # - # > removeMany ["aarch64-linux" "x86_64-darwin"] ["aarch64-linux" "x86_64-darwin" "x86_64-linux"] + # > removeMany ["aarch64-linux" "aarch64-darwin"] ["aarch64-linux" "aarch64-darwin" "x86_64-linux"] # ["x86_64-linux"] removeMany = itemsToRemove: list: lib.foldr lib.remove list itemsToRemove; @@ -204,11 +204,11 @@ let # -> AttrSet # # > attrSet = { - # foo = ["aarch64-linux" "x86_64-darwin" "x86_64-linux"]; + # foo = ["aarch64-linux" "aarch64-darwin" "x86_64-linux"]; # bar.baz = ["aarch64-linux" "x86_64-linux"]; - # bar.quux = ["aarch64-linux" "x86_64-darwin"]; + # bar.quux = ["aarch64-linux" "aarch64-darwin"]; # } - # > removePlatforms ["aarch64-linux" "x86_64-darwin"] attrSet + # > removePlatforms ["aarch64-linux" "aarch64-darwin"] attrSet # { # foo = ["x86_64-linux"]; # bar = { @@ -373,7 +373,6 @@ let "aarch64-linux" # musl only supports linux, not darwin. - "x86_64-darwin" "aarch64-darwin" ] { @@ -401,7 +400,6 @@ let "aarch64-linux" # times out on Hydra # Static doesn't work on darwin - "x86_64-darwin" "aarch64-darwin" ] { @@ -500,7 +498,6 @@ let # Testing cross from x86_64-linux "aarch64-darwin" "aarch64-linux" - "x86_64-darwin" ] { haskellPackages = { diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index 6bbcc48ee6514..ec22e346a7ec8 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -65,7 +65,6 @@ let pkgs_aarch64_darwin = packageSet' { system = "aarch64-darwin"; }; pkgs_armv6l_linux = packageSet' { system = "armv6l-linux"; }; pkgs_armv7l_linux = packageSet' { system = "armv7l-linux"; }; - pkgs_x86_64_darwin = packageSet' { system = "x86_64-darwin"; }; pkgs_x86_64_freebsd = packageSet' { system = "x86_64-freebsd"; }; pkgs_i686_freebsd = packageSet' { system = "i686-freebsd"; }; pkgs_i686_cygwin = packageSet' { system = "i686-cygwin"; }; @@ -87,8 +86,6 @@ let pkgs_armv6l_linux else if system == "armv7l-linux" then pkgs_armv7l_linux - else if system == "x86_64-darwin" then - pkgs_x86_64_darwin else if system == "x86_64-freebsd" then pkgs_x86_64_freebsd else if system == "i686-freebsd" then diff --git a/pkgs/top-level/release-supported-systems.json b/pkgs/top-level/release-supported-systems.json index 44c18f1abf0e5..8746d3955ce6c 100644 --- a/pkgs/top-level/release-supported-systems.json +++ b/pkgs/top-level/release-supported-systems.json @@ -1,6 +1,5 @@ [ "aarch64-linux", "aarch64-darwin", - "x86_64-linux", - "x86_64-darwin" + "x86_64-linux" ] diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index c8b59f37e0aef..65c5490592e9a 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -26,7 +26,6 @@ "aarch64-unknown-linux-gnu" "aarch64-unknown-linux-musl" "i686-unknown-linux-gnu" - "x86_64-apple-darwin" "x86_64-unknown-linux-gnu" "x86_64-unknown-linux-musl" # we can uncomment that once our bootstrap tarballs are fixed @@ -90,10 +89,7 @@ let inherit (release-lib.lib.attrsets) unionOfDisjoint; - supportDarwin = genAttrs [ - "x86_64" - "aarch64" - ] (arch: elem "${arch}-darwin" supportedSystems); + supportDarwin = elem "aarch64-darwin" supportedSystems; nonPackageJobs = { tarball = import ./make-tarball.nix { @@ -112,7 +108,7 @@ let metrics = import ./metrics.nix { inherit pkgs nixpkgs; }; darwin-tested = - if supportDarwin.x86_64 || supportDarwin.aarch64 then + if supportDarwin then pkgs.releaseTools.aggregate { name = "nixpkgs-darwin-${jobs.tarball.version}"; meta.description = "Release-critical builds for the Nixpkgs darwin channel"; @@ -120,49 +116,7 @@ let jobs.tarball jobs.release-checks ] - ++ optionals supportDarwin.x86_64 [ - jobs.cabal2nix.x86_64-darwin - jobs.ghc.x86_64-darwin - jobs.git.x86_64-darwin - jobs.go.x86_64-darwin - jobs.mariadb.x86_64-darwin - jobs.nix.x86_64-darwin - jobs.nixpkgs-review.x86_64-darwin - jobs.nix-info.x86_64-darwin - jobs.nix-info-tested.x86_64-darwin - jobs.openssh.x86_64-darwin - jobs.openssl.x86_64-darwin - jobs.pandoc.x86_64-darwin - jobs.postgresql.x86_64-darwin - jobs.python3.x86_64-darwin - jobs.ruby.x86_64-darwin - jobs.rustc.x86_64-darwin - # blocking ofBorg CI 2020-02-28 - # jobs.stack.x86_64-darwin - jobs.stdenv.x86_64-darwin - jobs.vim.x86_64-darwin - jobs.cachix.x86_64-darwin - jobs.darwin.linux-builder.x86_64-darwin - - # UI apps - # jobs.firefox-unwrapped.x86_64-darwin - jobs.qt5.qtmultimedia.x86_64-darwin - jobs.inkscape.x86_64-darwin - jobs.gimp2.x86_64-darwin # FIXME replace with gimp once https://github.com/NixOS/nixpkgs/issues/411189 is resoved - jobs.emacs.x86_64-darwin - jobs.wireshark.x86_64-darwin - - # Tests - /* - jobs.tests.cc-wrapper.default.x86_64-darwin - jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin - jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin - jobs.tests.stdenv-inputs.x86_64-darwin - jobs.tests.macOSSierraShared.x86_64-darwin - jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin - */ - ] - ++ optionals supportDarwin.aarch64 [ + ++ optionals supportDarwin [ jobs.cabal2nix.aarch64-darwin jobs.ghc.aarch64-darwin jobs.git.aarch64-darwin @@ -251,33 +205,7 @@ let */ ] ++ collect isDerivation jobs.stdenvBootstrapTools - ++ optionals supportDarwin.x86_64 [ - jobs.stdenv.x86_64-darwin - jobs.cargo.x86_64-darwin - jobs.cachix.x86_64-darwin - jobs.devenv.x86_64-darwin - jobs.go.x86_64-darwin - jobs.python3.x86_64-darwin - jobs.nixpkgs-review.x86_64-darwin - jobs.nix.x86_64-darwin - jobs.nix-info.x86_64-darwin - jobs.nix-info-tested.x86_64-darwin - jobs.git.x86_64-darwin - jobs.mariadb.x86_64-darwin - jobs.vim.x86_64-darwin - jobs.inkscape.x86_64-darwin - jobs.qt5.qtmultimedia.x86_64-darwin - jobs.darwin.linux-builder.x86_64-darwin - /* - jobs.tests.cc-wrapper.default.x86_64-darwin - jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin - jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin - jobs.tests.stdenv-inputs.x86_64-darwin - jobs.tests.macOSSierraShared.x86_64-darwin - jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin - */ - ] - ++ optionals supportDarwin.aarch64 [ + ++ optionals supportDarwin [ jobs.stdenv.aarch64-darwin jobs.cargo.aarch64-darwin jobs.cachix.aarch64-darwin @@ -294,7 +222,13 @@ let jobs.inkscape.aarch64-darwin jobs.qt5.qtmultimedia.aarch64-darwin jobs.darwin.linux-builder.aarch64-darwin - # consider adding tests, as suggested above for x86_64-darwin + /* + jobs.tests.cc-wrapper.default.aarch64-darwin + jobs.tests.cc-wrapper.llvmPackages.clang.aarch64-darwin + jobs.tests.cc-wrapper.llvmPackages.libcxx.aarch64-darwin + jobs.tests.stdenv-inputs.aarch64-darwin + jobs.tests.stdenv.hooks.patch-shebangs.aarch64-darwin + */ ]; }; diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index 8a01dc2f6aa80..0668737c9ee4f 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -55,6 +55,7 @@ in # `stdenv` without a C compiler. Passing in this helps avoid infinite # recursions, and may eventually replace passing in the full stdenv. stdenvNoCC ? stdenv.override { + name = "${stdenv.name}-no-cc"; cc = null; hasCC = false; # Darwin doesn’t need an SDK in `stdenvNoCC`. Dropping it shrinks the closure diff --git a/pkgs/top-level/variants.nix b/pkgs/top-level/variants.nix index fb6a38029c963..5652c62986a9d 100644 --- a/pkgs/top-level/variants.nix +++ b/pkgs/top-level/variants.nix @@ -81,28 +81,6 @@ self: super: { else throw "Musl libc only supports 64-bit Linux systems, and i686-linux."; - # x86_64-darwin packages for aarch64-darwin users to use with Rosetta for incompatible packages - pkgsx86_64Darwin = - if stdenv.hostPlatform.isDarwin then - nixpkgsFun { - overlays = [ - (self': super': { - pkgsx86_64Darwin = super'; - }) - ] - ++ overlays; - localSystem = { - config = lib.systems.parse.tripleFromSystem ( - stdenv.hostPlatform.parsed - // { - cpu = lib.systems.parse.cpuTypes.x86_64; - } - ); - }; - } - else - throw "x86_64 Darwin package set can only be used on Darwin systems."; - # Full package set with rocm on cuda off # Mostly useful for asserting pkgs.pkgsRocm.torchWithRocm == pkgs.torchWithRocm and similar pkgsRocm = nixpkgsFun {