diff --git a/ci/OWNERS b/ci/OWNERS index e6e3bb388348..e2153236ced0 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 7fb76b72953e..63cc9b2ded64 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 000000000000..5a5842eb5e29 --- /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 ecfda62b5700..7e9130218ca6 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 a4ff07bf5a63..30722e9fcdaa 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 1c1cb0676928..2f8130e9b41a 100644 --- a/doc/redirects.json +++ b/doc/redirects.json @@ -1127,6 +1127,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" ], @@ -2914,6 +2917,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 70c235970e54..33b558f27149 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -10,6 +10,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 18f3b2344607..ea707ceba677 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 d5a985c90d35..061c1b128d42 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 b8e348845bc8..6c3321e8c7fe 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 d3e184320fbd..3970b69735a9 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 055f727d53c9..ab062f82bce3 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 851dc1af7181..1589ff23baa4 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 e2b9093511c6..a27861b09253 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 263d0aa50e6e..5ef28baa41e0 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 01507338ec5f..8e9907698aa2 100644 --- a/nixos/doc/manual/release-notes/rl-2611.section.md +++ b/nixos/doc/manual/release-notes/rl-2611.section.md @@ -4,7 +4,7 @@ -- Create the first release note entry in this section! +- The default PostgreSQL version for new NixOS installations (i.e. with `system.stateVersion >= 26.11`) is v18. ## New Modules {#sec-release-26.11-new-modules} diff --git a/nixos/lib/qemu-common.nix b/nixos/lib/qemu-common.nix index 9ff482b83f3a..346d3ffcef5a 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 5c974f41dda5..99cc42c48a1d 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 03cfcb6915b3..efc7d8fa9a85 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 000000000000..fb547ded5dd9 --- /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 9ddf7fa2d947..d1f519c803b9 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 pathlib import Path 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 @@ class QemuStartCommand: 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 @@ class QemuStartCommand: "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 @@ class QemuStartCommand: 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 @@ class QemuStartCommand: 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 @@ class QemuMachine(BaseMachine): 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 @@ class QemuMachine(BaseMachine): # 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 @@ class QemuMachine(BaseMachine): self.qmp_path, self.shell_path, allow_reboot, + self.efi_vars_path, self.vsock_guest, ) @@ -1437,6 +1457,28 @@ class QemuMachine(BaseMachine): 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 f83f268c88b3..6a90990b1829 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 d64afef1e1f8..b9b8307c3ed1 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 3d0f4a9f7d86..96d0d68e5c93 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -505,7 +505,7 @@ EOF # 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 23a0bebe388c..da2e3288936d 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 1d4eff6a72cd..96c461cf795b 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 2f3e0b20de8b..f5350ad727ad 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 f7e23df84f01..0b9aae8e2bbd 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/testing/test-instrumentation.nix b/nixos/modules/testing/test-instrumentation.nix index 4d20b20090b4..de2cb3d2afc8 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 8230da280b50..59645757575f 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 2a92d910a25a..5e7a1a12a29c 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 76b3b62c0389..930d3afc203d 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 000000000000..504f4504bf9d --- /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 000000000000..953c69a0257e --- /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 65308d11838f..da808cf64a8e 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 df13df07a978..e46a14127710 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 0a92e2cb11d9..d33fb2ef12bc 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 05ac73b9f13e..71848004202f 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 ec3e7c9a6253..d9abd14e2e51 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 a2a105e3182c..f07960cf950c 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 36e22ddc2b0a..9e48750c0b0a 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 7a5b12418a12..ccea323f700b 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 000000000000..e9af942188db --- /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 183c2c52ef41..839ec6db93d2 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 a5f7e9e861aa..cee47f70a062 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 fd7837eb5cc3..840c5a50ac76 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 93aa7825f9a9..1d67e65baf20 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 000000000000..84238f025fc6 --- /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 67312aa0e186..cee18f7439ef 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 865e0d054820..d5515604c0bc 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 a86f65d03f97..4b9f71af4eab 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 246c1b1f65f6..2d36278b59fa 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 fd857d0c152d..617bd299a41d 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/prefetch-npm-deps/default.nix b/pkgs/build-support/node/prefetch-npm-deps/default.nix index 12c56a58b6ec..eb73907343de 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 2882aee9ec20..b65db0492c3e 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 3e6f5019ea33..6f76dd7f59df 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 8d554a8dc3e2..37a37f7b7bd2 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 73c2782cfe07..7212578e7405 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 7487dabd5aad..ef2c02dff02e 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 cb354cd50a3d..9dd41332758e 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 47079240bfac..4c5a7b415cfe 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 00349a77af67..d5aa04249411 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 a8109b35fd33..0c83ccd4fbc6 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 8d0bffd2b12f..4c02e2a8d7eb 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 5f0e2130bb84..eace84e7b18f 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 ff627a73cc83..4476b715cdcf 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 b1f1dcc0e174..a03ba327914d 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 47927ab6477b..de39713f0c10 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 db3c21009b4c..7ecb3ba5cb3c 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 a79581e7767d..304f02c6ee4d 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 f9551b5b9bad..f6e9cf4e2ef2 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 3002a9226cc5..d655c7ebada9 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 e675f1a55df8..3becc5f51f39 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/av/avahi/package.nix b/pkgs/by-name/av/avahi/package.nix index 4a8a1f29cea2..dc9b7fee4dc6 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 01b333b01b35..9f0fd8c16f04 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 590195761664..960d79c9a43d 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 68c4209fb501..c30ddabf05f2 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 01ad1839c339..51deec6c5c64 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 20a9bcce09da..81ec00b045ca 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 c6bede970944..5d8675628527 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 aec23ef6a32e..de41ba27871a 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 8da6559f602b..12b19dd74a14 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 4e7a3b2e97ba..35d956d9d5b1 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 8dd727f6ded3..df6b082a92bc 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 348ff29ef61a..a865d352943b 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 b74e0abbd515..064df430d374 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 effa2325438f..159334080752 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 525a410dbcba..4c931652b666 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 000000000000..a66482a91e5a --- /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 39d5bfb97b32..de38e46763c3 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/ci/citrix-workspace/package.nix b/pkgs/by-name/ci/citrix-workspace/package.nix index 79155f5fe206..b9fb58c0cc6d 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 34cb30c206b1..cae6effbbfbd 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 99484edfc1d2..7a5049365423 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 0bc04b60bb87..000000000000 --- 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 a25ea809c62b..832ffbbd04b6 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 eb5da071f472..ada4d8812cb9 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 b754f292c7c3..264f6d944497 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 26cb46756bca..1387196ffbae 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 771803f6b9b5..f83c4ef9c0d5 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 000000000000..c66623749a73 --- /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 c58a7400c404..b4bc8271cf33 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 f6eb3ccbb140..13563f3242b8 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 7b31908b1d37..25df8ddcb8fa 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 eb701a89dc89..9ab45d795aa9 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 6b16dcfd94a2..aa83cd89b603 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 2a5b9122740a..0f50adc7b00f 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 5205b6d8a56c..4d38926996d1 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/elfutils/package.nix b/pkgs/by-name/el/elfutils/package.nix index 65b1371f1c98..a66af1cb091b 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 6e5b5890a758..000000000000 --- 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 170f03f697e8..650d59f93de4 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 9514bb89f1e4..59ccb179b2bd 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 78ff9e9253b0..72459e1c2ac6 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 867b9d0f2e9c..7733ee43da04 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 41762add1ce7..af71afe150d8 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 57d9b9d87805..f6fe650fafd7 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 78b37719df78..d292b8ac7a60 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/fr/frama-c/package.nix b/pkgs/by-name/fr/frama-c/package.nix index bb9229a8803a..e5e751dbe005 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 2f5f6ccef0a8..460e787f59a6 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 115e311419e8..a1c0e3a6707a 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 54eee2b237f9..f660fde43654 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 6cc1617193ee..a35f4781dba1 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/gdb/package.nix b/pkgs/by-name/gd/gdb/package.nix index 95769211d8c2..b7aef9c38772 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 665ed686a51c..6fa9a27b5ccb 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 5ec352798319..42f9ba41d58f 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 000000000000..461f4d06512a --- /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 8a665bb1638b..000000000000 --- 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 04ef6c3ba755..000000000000 --- 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 579cbd5a3e3c..1fa7deb61a00 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/gl/glfw3/package.nix b/pkgs/by-name/gl/glfw3/package.nix index 711406030b70..6ecf627adce1 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 f215eef798af..000000000000 --- 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 cf554d53e403..bda3d4a4a09c 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 3477b7584bfc..000000000000 --- 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 fc06faf61314..c8b19772c622 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 66f02fcc542a..f640662eedf4 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 681954677367..57e2576d2b7d 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 51344245c45f..acf5f3233aeb 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 448bd4b1b110..c132697abbd7 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 a5888096c827..693d874cbf7b 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 cd68dd81ec3b..33edca30f448 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 d0f6ce2ae37d..d82e0d1617ba 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 1172173dd326..f5686e0274d3 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 c08356a17058..fb360c6728b8 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 083b1493dcf6..0b4ebba4d63f 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 fd682d3b0516..84e80bfc5b7d 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 b4d8daba12c1..a25d7c8f1547 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 a2db2fee4788..9f58e9fb8f75 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 95f6879a0069..000000000000 --- 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 19976e462e15..26b30559c991 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 3f05469c1afc..369cfbee3695 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 3c3ffc066dbb..bd66967f1014 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 f9c9c50a629c..357eff882818 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 ce91685cf0b2..edc886281aca 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 000000000000..cf5c10fca3d4 --- /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 64f7538ca37b..47862db4d978 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 ce0e7db16a7b..398c9e9e453b 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 0678443277a9..0fc7c9022a62 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 c49a9c9b78ad..5ad26d3e89a3 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 8e8502ff557a..b164f6ead3a7 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 f4c47a76c39c..000000000000 --- 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 ffce265c53e0..918d97c640fa 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 9417763e3177..2ad8fa7c8a26 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/je/jetbrains-mono/package.nix b/pkgs/by-name/je/jetbrains-mono/package.nix index 4461ab2bafef..5584347e5a2b 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 68ed1766c073..86bf75f0c426 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 29d08c9adcd7..000000000000 --- 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 9f31fd82b057..000000000000 --- 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 5b6497e1469d..000000000000 --- 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 cc0c3d17f77f..000000000000 --- 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 483316f64b4b..000000000000 --- 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 3632899882e7..000000000000 --- 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 70b6bb169fce..edf9b16ec356 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 dc3d94b78260..25d1bcdf8fe0 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 c820958ab0f2..382a297f1865 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 ebd9e4b077f3..f36cfa1fa910 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 000000000000..3c7dde29df3f --- /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 c4e35061d41a..4e97e9867190 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 ecb0c3280adb..d07d8ca7ffa4 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 8699a4132d4a..184f635cffe3 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 000000000000..e054d75fd395 --- /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 000000000000..c357bed9881c --- /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 000000000000..1bd0a8ca2e96 --- /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 72320637739d..62ade6e1b577 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" ]; + 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 + ]; + nativeBuildInputs = [ - cmake + meson + ninja ]; - cmakeFlags = [ - # CMakeLists.txt by default points to $out - "-DINSTALL_INCLUDEDIR=${placeholder "dev"}/include" - ]; + mesonBuildType = "release"; - # Fix the build with CMake 4. - # - # See: + # 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 4078cdfd5372..f40ea684be96 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 fa2f854f4d80..00823f701cde 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 35de54c0d9da..d803c65219e9 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 9290ebfa7044..7cfb71447ceb 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 8f9f756a2ee9..fe81d018859c 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 c778d78d66a7..8ec16503feee 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 61fd56ee0880..000000000000 --- 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 ee6063875091..da1efae66365 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 0f3abdba1ab9..8ae11fe8a786 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 c9c5813a16c1..19dc58048530 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 31ad8ed2fbd1..d195af9386e9 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 0da2905d7725..d0c737104160 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 caa0e573221a..7e0b8d177df9 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 2f57d64b6145..dac50c6c439d 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 30a316d0074d..11712e641d99 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 93e90b41467c..4724fb81451f 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 2bd139469e2c..c826fff3ad34 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 d66ac6704ecb..9500cdb60097 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 ebbaae3748d8..4804f7bb9645 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 000000000000..bada0d80d142 --- /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 0b933048fc0e..c086abb3c806 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 42171d469f5a..940c3015dfb5 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 d78d12faf698..fc60dbff5d0a 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 d36eedac8fe9..071b7f08f15d 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 5156d1f87d5c..0181dabd9757 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 ce50b109a961..93fceb3f3095 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 97736060a1ac..8ea24155784d 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 89fa401ea258..000000000000 --- 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 dfcd86d022de..0da1dfeb7ebf 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 35328cc0023c..908ff90ff44a 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 000000000000..bf5c2a890bbd --- /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 6d2361b25d2e..8551229f2208 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 0e7f01d0fe84..2cccd04d27e6 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 d15318f30b06..71c6f5326aeb 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 333015e1927c..297c1a0eae32 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 7046a0a7d80d..3fc91abaf0ca 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 71ed533d7a74..1e987379f73c 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 3b6ba2345148..66f679f6c677 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 f658b8d23f6c..d0b6a1f2e0a2 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 c3ef856b8fbf..c4328f72fcfb 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 000000000000..5c3521be65a6 --- /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 4676098bff3e..06f18ee6e5ca 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 3cbac22c36f3..0475ba395175 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 c0a8b7ac43af..000000000000 --- 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 caed48e59c02..7c96341eb86c 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 93cd9028b379..4dd6270b4793 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 1d480f08f1e0..9218433fbe62 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 6de4895cf7bc..da39812157a4 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 acc3ff565858..c09fa4a379b8 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 5e1fdfd4a7ce..0da213b857c0 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 6f9115c07dc4..4487a4518360 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 0455146aaed8..9f359b838cb9 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 a3a52ced0d43..e5d5031ff9c9 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 8c08f6a0643f..fae97effb3b9 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 abf2cd1a8509..a2de791d14f0 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 e0e9f3d96b2b..000000000000 --- 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 10fe4712b78d..32fad6ff5a2a 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 66c14abfb130..fa23ac200d96 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 3ac5b2529b12..badad6378c51 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 4f48831753c4..edd39a451200 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 a9feb15eedd3..4eac58193142 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 c2a72c604cd7..a00a16045076 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/ml/mlt/package.nix b/pkgs/by-name/ml/mlt/package.nix index 99c8b2f995f6..85216c588e67 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 d39bb52b35e9..7c028f16e0f5 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 c5e5dacccb9b..c70b46ded59c 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 7a5ee72311ef..a947a722d8c1 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 eb001a94446d..f92f7bfeeadf 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 be2203951c0f..139dc932366f 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 e5bdc817379d..db5832c28a6e 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 02789eb707ae..0954f22c251d 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 677b9ec7f29e..625263e9d163 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 341a839549ca..b2a097ef2b8f 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/musescore/package.nix b/pkgs/by-name/mu/musescore/package.nix index c974b2e79415..0fe03f6c388e 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/musl/package.nix b/pkgs/by-name/mu/musl/package.nix index b13ea98e18b7..4e9ce959c31e 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 000000000000..22416191d20c --- /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 000000000000..50c2a16d433c --- /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 000000000000..6e5564a06ef9 --- /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 000000000000..fd08b5303cbb --- /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 c7712f0ba230..000000000000 --- 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 f7841cfe54bf..0b6ea0555c86 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 720cf47f0dd8..852ebfce6194 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 c823b92a5036..336aef737d9f 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 1b6fad3afa82..f5440bf9270b 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 b3b728561ade..0ef6776ff350 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 86ab51dc5e33..52082350a991 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 000000000000..b3279b170360 --- /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 000000000000..9e30609e8de5 --- /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 ff7b71fbb4a8..4373c742ec9c 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 000000000000..c77b03cb0bb1 --- /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 000000000000..85fbfee5ab66 --- /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 e05febccd593..90028c86166a 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 641da02e2848..93fb9c165ce2 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 c4d14fe7a137..271bf0fdd121 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 906bab8156dc..f9ba308e0b30 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 db9009ebaedf..51336472ded0 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 ffd0e38f62a7..32e6e5e887b6 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 7a9de59f709d..c2ec4a841043 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 367fa018c860..23755586fe6c 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 f335bbe37d0d..13412ef77db5 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 32b40a198cfd..7d791d9cd57e 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/pretix-banktool/package.nix b/pkgs/by-name/pr/pretix-banktool/package.nix index 00634df8a597..f962b749a55b 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 22f3855b68e9..b16dc8903405 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/py/pympress/package.nix b/pkgs/by-name/py/pympress/package.nix index 288ea438fb5d..55a6b40b82cb 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 5bd6c6e0f8c7..80362ffd6757 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 adb2c682ce6d..e8ef05814fee 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 cdeec0aac5a8..4a067d7d21f2 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 88bb855e800b..c6e5427f80c2 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 faba5541389b..54637d7c1332 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 5b6376cd9538..5317a4dc030a 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 f5814d3f91b8..aea62e081629 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 7c11389a81c5..759ac9650f53 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/so/socat/package.nix b/pkgs/by-name/so/socat/package.nix index 40f1308046a3..40cf1ef10dcc 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 8a66b2a19c23..1d70c20a38ce 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/spirv-cross/package.nix b/pkgs/by-name/sp/spirv-cross/package.nix index 81ba6c313fa8..ed353a8f884a 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 95a5f55b4cf2..ddb49d7af092 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 ce8f31de261d..b86f3424f750 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 e08ae33d33e6..16a2bdef93e7 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 000000000000..2d876e005cf5 --- /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 c2619145884f..db30ac90c2d3 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 a5190b8b6d36..d02efdc3d4e6 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 23c007f26a50..4ad68f820e08 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 8f75456b72e7..ffa3d5760e31 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 25e5d9aaa0f0..aeeae95159df 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 c149c0f7c3b6..2c0cc51b5520 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 a0795c617d6d..598a14ff6ec3 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 2fce53f8d453..5c2f8655c625 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 3f08a1565e1f..82b297401714 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 b85dc331c31d..8bbf7b66e49d 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 ed2b439bce0b..ebc88215053a 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 662eb3ec4fe1..8e9a88908a66 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 a97a1043b555..9d383273519a 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 03576564438c..60296d2114d7 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 0c9c7542a23c..f11d004bb0cf 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 8c3a2ca3db1e..25bc383f0ecb 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 1be76857c00f..eb36c08cf7ce 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 65d0a32fdfd9..956a3725941a 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 a0f31bfc1014..3987debfef12 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 89c59d98e8e2..7ccc9cfa11cc 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 826602ba462e..f6bbd8c69f5b 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 b6f8c7ff3e5b..2ea2fc62a0be 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 5e4834e111a2..432825de08fc 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 52ae5b0de349..613867ceee19 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 2a8996daf779..321c34e4e0e7 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 a8f4f1f53d02..6c28c95eb844 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 17b1d60e360f..bea53d1e25e1 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 bc33af7fc265..ca05463f928f 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 078dc6706c1d..8afa367df0fe 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 000000000000..23b5472bea4f --- /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 80ef96001f7c..e55d07e6ae4d 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 53583b24caf3..b9e477ca6194 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 b69437e9c3de..b70955b2f10d 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 6d9c26e42de9..bcd5776b7d21 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 47f1010308fb..278220960454 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 9af03728d7e9..b0f598fe6f1e 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/yu/yubikey-manager/package.nix b/pkgs/by-name/yu/yubikey-manager/package.nix index bc8151eb9a73..eed2cf332d63 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 0f8227d50d35..f23628f37b7a 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 66099c229743..d7b9344574f1 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 9d8feadde99e..105fac5fe094 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 615cd2b3b19a..3012bccba8d7 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 000000000000..2065a90d136a --- /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 5be64c16ce84..cc0b5b47e9b4 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 19c405d1226d..000000000000 --- 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 ef7ed876e583..9a6e728c9fcc 100644 --- a/pkgs/development/compilers/gnat-bootstrap/default.nix +++ b/pkgs/development/compilers/gnat-bootstrap/default.nix @@ -33,23 +33,6 @@ 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"; - alireRevision = "2"; - } - // { - x86_64-darwin = { - inherit url; - hash = "sha256-zrcVFvFZMlGUtkG0p1wST6kGInRI64Icdsvkcf25yVs="; - upstreamTriplet = "x86_64-apple-darwin19.6.0"; - }; - x86_64-linux = { - inherit url; - hash = "sha256-EPDPOOjWJnJsUM7GGxj20/PXumjfLoMIEFX1EDtvWVY="; - upstreamTriplet = "x86_64-pc-linux-gnu"; - }; - } - .${stdenv.hostPlatform.system} or throwUnsupportedSystem; "13" = { gccVersion = "13.2.0"; alireRevision = "2"; @@ -65,6 +48,11 @@ stdenv.mkDerivation ( 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; "14" = { @@ -87,6 +75,68 @@ stdenv.mkDerivation ( 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; + "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-u/cYFKqWLTaFADTscDxnrkYSoemKrfKpNIZ8XPlTbLI="; + upstreamTriplet = "x86_64-apple-darwin24.6.0"; + }; + x86_64-linux = { + inherit url; + hash = "sha256-5bKYPJnXDGa80BtAogLE82X0zTuYKdN2cKh503oMeic="; + upstreamTriplet = "x86_64-pc-linux-gnu"; + }; + aarch64-linux = { + inherit url; + 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 @@ -235,8 +287,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 000000000000..912be7169621 --- /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 000000000000..29af46eba798 --- /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 000000000000..ee2cb99b57a5 --- /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 4b6a18a18a43..e353d9203b2a 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 cd15cd6f36a5..4907eb786839 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 { }; + // 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-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-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; - }; + 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 000000000000..01a1d6ca8584 --- /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 335633d7d19c..5ddb77d74b2e 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 ab09ef650416..000000000000 --- 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 000000000000..4c195b9b27ff --- /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 62a8dff18ec3..69350a9d3834 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 c68f6a9b0b68..40bfddc38ee2 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 000000000000..a173341168d2 --- /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 a08376522d9e..10f9ce154cb4 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 76ae90c3aaa7..2b6ba46d02cf 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 000000000000..8ed4b494db7c --- /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 0c69095341b4..b198c84400b5 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 7c3d4eb2a5e0..a86e4a3d186d 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 36963b65f8d7..73d3cc08df88 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 2f6fa2a9450f..dc15009aac72 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 ad4fe81c46cb..8af33b495e9d 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 9d8e414b72c9..2d5db28d68c7 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 e446bec66868..0bd4a818da6d 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 d8e2f2d35779..76bf3682c5bc 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 94df3e3c0a7a..5bcdffbfa9c8 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 d400a4059cec..beddf97c4dde 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 8501ab38a940..000000000000 --- 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 fe45d8d6fe71..02c6e27d11d4 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 65d088c2d9a2..cf84bbe2b86c 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 f66957465bf9..49908ebc35ef 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 dd4bfcb45b7d..29b381e77476 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 9bba05fd90bf..3397e6e27a14 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 61e1d7792264..095a87c4d853 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 000000000000..6a0587e5cc38 --- /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 930cfab4e8bf..c9eb8ec98b63 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 09e6aa28c567..2c5bcf0c7c0e 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 5baddb0c34e2..ba90e4832369 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 4c88263d7caf..46a32fec2e7e 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 dee1e197dd6e..c30fc7de65e5 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 1b704e101443..463e73d32190 100644 --- a/pkgs/development/libraries/gstreamer/bad/default.nix +++ b/pkgs/development/libraries/gstreamer/bad/default.nix @@ -108,14 +108,15 @@ # 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, }: stdenv.mkDerivation (finalAttrs: { pname = "gst-plugins-bad"; - version = "1.26.11"; + version = "1.28.4"; outputs = [ "out" @@ -124,7 +125,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 +135,12 @@ stdenv.mkDerivation (finalAttrs: { }) ]; + separateDebugInfo = true; + + __structuredAttrs = true; + # Argument list too long + strictDeps = true; + nativeBuildInputs = [ meson ninja @@ -311,6 +318,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 +334,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 +371,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 +399,6 @@ stdenv.mkDerivation (finalAttrs: { ] ); - # Argument list too long - strictDeps = true; - postPatch = '' patchShebangs \ scripts/extract-release-date-from-doap-file.py @@ -416,7 +427,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 6b1b2671e381..8b779a923226 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 05409199e303..35151386097a 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 b41e8192aaa4..21712e04da55 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 d9c788cfdd59..e856bd59b233 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 743c0e475e9a..e41fa069923b 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 9c531daf1486..6d0dd4edbdaf 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 14a7a877828b..9bd3f34d49da 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 05319b971754..ecff969ca150 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 182433745fd4..b71da6b03adb 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 3f225da93ed1..279dbb12b173 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 903be8f1e245..000000000000 --- 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 214149fc1f23..1be6ebb50247 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 = [ perl ]; + nativeBuildInputs = [ + autoreconfHook + perl + ]; - src = fetchurl { - url = "https://sourceforge.net/projects/hunspell/files/Hyphen/${folder}/${pname}-${version}.tar.gz"; - sha256 = "01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih"; + strictDeps = true; + + 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 8070e78356c7..138f80ca444c 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 9a0bb2387e80..c0c8c61e64d7 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 e4f36f7f1779..6f9b56157253 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 12a385c9a946..a7f342c6eaf7 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 b229ff708e7d..28f66d07bef3 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 12f1e353f510..89b6496971c1 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 42995b15d25c..19b690099e07 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 ec10fc8824d8..9962256b0d83 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 000000000000..c1addeb59840 --- /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 91e6bc878b01..59de3e5e7f76 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 c3dbe6800552..d1f7e6ca669e 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 6302d6ab5b31..735afc3c5146 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 6f7cdac0c941..0bbdeea1796a 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 c1e05d0a8b62..480bd31a6bc1 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-6/default.nix b/pkgs/development/libraries/qt-6/default.nix index dc7233f11a8c..6f1489005a12 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 18056b9ddf3b..248d00b3dda2 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 df428b92f64e..e3f60553ee63 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 2f19e06a67fa..cfcdb5f6c59a 100644 --- a/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix +++ b/pkgs/development/libraries/qt-6/modules/qtdeclarative/default.nix @@ -49,6 +49,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 = [ diff --git a/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix b/pkgs/development/libraries/qt-6/modules/qtmultimedia/default.nix index 104bfb752531..50829d0b0ef7 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, @@ -59,7 +58,6 @@ qtModule { gst-plugins-base gst-plugins-good gst-libav - gst-vaapi ]; patches = lib.optionals stdenv.hostPlatform.isMinGW [ 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 000000000000..e9010031e879 --- /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 7b84749d9552..8b9b68ccec9a 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 1c21aa56c2ec..a10cea0d64db 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 b5ed5a969db7..40ae39918d8c 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 5a7f0005a407..3d10c91e4b4e 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 000000000000..de78212f7379 --- /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 54b4ef4557f2..bc27578cda3d 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 932366a1b595..9755b3733273 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 65270be3e345..7088a60468cc 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 b4bce91d0878..6bf372a5dd92 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 8a14819a2805..3aeaf002b5dd 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 51563500fbd3..d080d86e874f 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 d17a866141b9..2ede486e1a14 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 5ebd0770438d..23dcd03452ff 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 04f8867cb0ad..cc22bd5e1502 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 c273d70b2c75..de8d03343690 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 7900a7261c08..660c4ff90b7a 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 fdd59a094f5e..185154a4ec7b 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 04b3fc3d1267..f4d61e9241f9 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 0f76f7313fde..000000000000 --- 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 5433d3afd934..000000000000 --- 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 fdbda0292e59..f2c5125dd677 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 0dea9d257e5f..8f0f851408ea 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 c4af88bf2cbf..a5bfc179135c 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 8b66278e436f..61403273a997 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 a4a3aaf8d4c1..4486fd239130 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 d63da6a8ba14..b74efa64abf4 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 000000000000..7070f63fefb1 --- /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 9ccf48edc5e1..d917bc9eaced 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 9b76c5565090..bd20ca8fc845 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 f26dc63ec141..dc7cf465bd5b 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 517e10840aba..d710bc1c8947 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 d1525f12f6a1..a568be21e4ec 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 19541f5a3c3d..5b897b2be04b 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 000000000000..a60736062614 --- /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 e3ec08c122ce..395f7387aef7 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 95f5ed8e7470..000000000000 --- 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 26f029c5a745..d911ebfa39e0 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 e0285de62caa..000000000000 --- 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 14adc63dab3c..e1462f243025 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-/A9bP7wc+N0Jz/jJLvKHqVPjF3ddHjVKWlSN8tqGHIw="; }; - 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 822bc7b0b484..2aa45bf41a62 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 55a66aaf8271..12e720eb3618 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 aaa64871ccb7..0d03b1775976 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 035a74132ab5..707309af83a6 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 e5c29e34c1fa..ad2617bfbf34 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 727587c610cd..516fb48f8b5f 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 de2165d63e3f..000000000000 --- 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 000000000000..0ce8d6d2a3f4 --- /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 59397e348885..e2031f81cffc 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 639e234acbb0..02291cdfef73 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 fdff2e83ebf9..8f367a1a15ee 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 26277b500225..57caf4fc3b30 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, @@ -20,12 +21,12 @@ 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 +42,7 @@ buildPythonPackage rec { optional-dependencies = { bcrypt = [ bcrypt ]; fido2 = [ fido2 ]; + ifaddr = [ ifaddr ]; gssapi = [ gssapi ]; libnacl = [ libnacl ]; pkcs11 = [ python-pkcs11 ]; @@ -78,7 +80,9 @@ 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" ]; diff --git a/pkgs/development/python-modules/atenpdu/default.nix b/pkgs/development/python-modules/atenpdu/default.nix deleted file mode 100644 index 2cfd06220afe..000000000000 --- 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 7c7b1c87a056..871824449421 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 1135c20bd08e..000000000000 --- 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 33ced09ce46b..42a22dedbbaf 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 5511129685b8..ef006d39cabf 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 85466baf4573..5f51421c82e5 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 e8567cb41465..db294f3527d7 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 661826855615..0ef38100e3cd 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 083894116408..000000000000 --- 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 ea56257d981f..ee547c137c06 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 000000000000..7eccf5dc5228 --- /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 7b6869cf7729..3e934714e5b0 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 ba1e71eab352..7ca2aece7bfa 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 2dc949d75601..7810ccf8b764 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 9164bcd76bb9..706731f2dcf4 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 1c6bbdb29d0b..03fd6a688f7c 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 000000000000..aff0bdafbcc2 --- /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 5764651403a0..194e56dd34f9 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 455eac5c5fc1..858e9abc4110 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 da4ab5806aaf..a560f2598d8d 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 e832f5e7ac09..ebe6f87ef6e3 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 b7d31f76d771..797667c6d296 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 94ef983a6a8e..2f1d3be1e64d 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 d54ae914cde0..1a0d61e8f6c2 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 082c6f493a58..7483086dbd13 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 70a2968acfe8..a14902531efa 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 dab8b5c075fb..c6aa4b4035a2 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 000000000000..50959e4753fd --- /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 87f4b526b9b4..1e6bf432037e 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 5137ceb0e83f..7454c0643eb1 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 58ceb5c600b2..e14be31559b1 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 7ebedaaf9686..41adf3d10328 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 6737ce491da3..ab706085b038 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 8522bc23e0e3..21d95a5a7858 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 db0e5d2455b5..82c792e7772b 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 782aec95c4ef..c091bf20eedf 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 4657515963e7..1f6e2103034f 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 7b57b60938b2..5dffa0168649 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 47f53fb6580b..13e65aa099c8 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 464b1187d40d..1ea710021d18 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 b288342f6d75..0c4888a71c6f 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 7c810a0fb0c5..90c7c088308c 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 d54d4e0a6525..7740b0a99efe 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 729c1801daa7..f0560b576078 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 1e913c4f4aca..aa76138d3e46 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 64fb1c8d18fc..6b634027e6cf 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 5676bed17b70..34e82fb9f352 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/dask/default.nix b/pkgs/development/python-modules/dask/default.nix index f10b8b100be4..89c9bcad48f4 100644 --- a/pkgs/development/python-modules/dask/default.nix +++ b/pkgs/development/python-modules/dask/default.nix @@ -3,6 +3,7 @@ stdenv, buildPythonPackage, fetchFromGitHub, + fetchpatch, pythonAtLeast, util-linux, @@ -54,6 +55,15 @@ buildPythonPackage (finalAttrs: { hash = "sha256-JfCiABGSCJKKSz2/r8fvpVwdQSZqvoQICe+lDvuNhoM="; }; + patches = [ + (fetchpatch { + # Unit-less timedelta64 is deprecated in NumPy 2.5 + name = "numpy-2.5-compat.patch"; + url = "https://github.com/dask/dask/commit/ade7a30c5a222f838b0f69f5a00c804e4cdf3d19.patch?full_index=1"; + hash = "sha256-4uZOHjWW+S7if47pOw9ydYAei9PsdIVqZYeYfHR93Z0="; + }) + ]; + postPatch = lib.optionalString stdenv.hostPlatform.isLinux '' substituteInPlace dask/tests/test_system.py \ --replace-fail \ diff --git a/pkgs/development/python-modules/db-dtypes/default.nix b/pkgs/development/python-modules/db-dtypes/default.nix index 82f7dde2133d..4393f725aafe 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 3c2836d28232..6a4ed61a01d9 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 36dd006225db..c95f9339b39c 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 195534a8add3..4dce3b873c78 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 000000000000..8d9c304afded --- /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 727b109d64bc..292cf61b2fb9 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 eedf03e28863..6e1686fe0b8b 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 e5ebe7e58eda..f114e4a24eb7 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 a946f4d89b54..990743f247e0 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/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix index 65245ca72ab2..f42859403ac8 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 6393b3d9fc1d..c4fd3dd51b3b 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 9736c5eeae5f..edc2419ab06a 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 06135070f86d..000000000000 --- 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 000000000000..11730056e5c9 --- /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 37f91db5a007..84b77e0f840e 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 40eb6ad5bbe2..aa2ef447dab8 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 b13bcff26a20..9a314d21ca1b 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 3e29f81a9da2..e7c8a426fae7 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 c1c9efde7f3e..705585945d13 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 74d4985d26aa..f30dcd915091 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 1c8dcd43b6b7..d7f7c5a74afa 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 f279e558460d..6329cfb442ef 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 54fc63da2f08..80810b707766 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 089e022842eb..000000000000 --- 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 ff1fd5cd52a3..af03514a81bc 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 0f8510073034..16f9c4d18f50 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 93d495a6de6c..7cf444e08893 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 5e1389986fb7..76276a0bf567 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 51d7e223c9ba..1e5be670e34b 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 bc6b8c1e797a..43bf78c3dd3b 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 f93a7bd2152b..d854d9126cbc 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 f8edb6cee3cd..616961728241 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 44715f97f82d..c579ac186a6e 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 35f3906c1576..8151bbace629 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 1dee12d5bb70..7531c484cc15 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 ec1553e164ab..08301b669d5c 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 8bbc95076833..72bbfd772b87 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 ee35d962d1d8..000000000000 --- 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 6ecf3a920149..e10f2d5e3850 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 f1be9e6ea0b4..9e8c9995c8fb 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 9b9bf37da1f8..7d4b5748ba92 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 f5b745956ce1..599dd3073cd2 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 072ba065326f..86f06063126e 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 1f6f48522359..b1108657a84f 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 46d1df626da1..7afa896fad59 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 b422a3dceab8..f4de6a36e21a 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 eaa6fb87b374..ceeb26b8db3f 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 a2a635cd758a..1ce8e8f571db 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 55e252a4f12c..10ca5fc8ec98 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 b49b9cd01a94..000000000000 --- 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 871ed0c66ead..51a51e67e3a7 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 028c63669ca3..634811c727e9 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 2db14472125a..3d65fef2e464 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 914cffe15618..87e145bb3513 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 a4ebf1aaf5a2..03c03473d5ad 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 812e24eaf438..b3f68350d32f 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 d079a2447a3f..bf74b27fcea2 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 880782e6c683..7b786ec380ba 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 797f0a320a9d..45c25c2550a6 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 000000000000..a08142a85a03 --- /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 8ede59b6de0d..1bf121660201 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 82d3b959c4a3..c65804a5f894 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 0a33e98bb4fe..9fcc49b409ef 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 569de133621d..e9c0556a05a5 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 aedd7da24c45..782d88abbf56 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 da6316841658..fd3bb35cd59c 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 8ccc67b828a0..0ff3cc2c9dab 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 dc252d84b8a1..63ccf4c8f2a5 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 cfbbf8113342..eddeeb5178fd 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 2b146d05b658..a5e66abfcd68 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 7e9ced07b69c..fe567877ef1a 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 9e73b584f276..f27315046788 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 70d05e492e23..61c2d9daedea 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" + # 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") [ - # DeprecationWarning: '_UnionGenericAlias' is deprecated and slated for removal in Python 3.17 - "-Wignore::DeprecationWarning" # 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 9d4cbee7e5a1..a8bda9b6f28f 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 f5451a8e95ee..85dfcc8a7038 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 a26b89fb2b02..bc0934f5bd7c 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 d6785f77f8a9..71c865ed28e0 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 e5a79ea3d0ff..839e13159529 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 b0fcdf21f463..677be93995a5 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 932fe4fc0e8d..25cf8f9c137f 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 556b9a91e21f..9d9e1d227c5b 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 b1e084faa030..cc3ae7a61914 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 342a93b6bd00..a31a8bc44e94 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 01c93b61a9fe..39fc694fa546 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 85cdc1f45b59..c5da88ac3732 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 9c56beb7f3a3..516cf273d441 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 9de28fa56d6d..cfaa0ac635c7 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 000000000000..cdbda0cf2b4b --- /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 d78cac57ceac..7c1d6ac40e82 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 db6e0c9ab8e0..02769d84b52f 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 33f4e1c5c56a..7b8a5cf6a795 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 044a9c742517..628f0e68b0ab 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 348014d5fca4..f26c4bcb09be 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="; }; + build-system = [ setuptools_80 ]; + buildInputs = [ libsass ]; - propagatedBuildInputs = [ six ]; - - 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 4a66aa6b71ea..cbc89c8da6e0 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 5245dd64f9a3..5e5bceb6daf8 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 c4b70c6f0d49..a1f46b4d323f 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 d932dd3c866d..cb855b02e33c 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 2892a70dd7c4..997fe6504a78 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 10f928d168f8..0122bffd13ca 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 2065105ac8b1..3f7c4872e4bc 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 ab4137e548bc..a317e542fc80 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 2a490f7d6e2c..88e4f1ad479e 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 d90e6d4364a1..289479f398e3 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 ff7fb38852a5..bee69a777e5e 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 6d6ae50b6d82..0ddad0e922cf 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 de5dc2ed90eb..1081b0cc331e 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 35e9e0c350b4..28f726541f1a 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 c171dbf4a157..7006bb79bc9d 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 35b41c8926a4..a3fc4e9f92f2 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 8cdfa4023ded..99f3922ee0fa 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 2d4e4f5a95d8..3f5407613d6e 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 14158d4f6e3b..9e752ca75d9a 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 8cf838a93b29..4d5373b9457e 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 d2792616c6b1..8c025e7fd306 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 8caa4a4f6007..2bedecb5f91e 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 969e2f347a99..0fda02a714f4 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 105d1a22ac13..ace3c790d240 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 f053b318e350..9e4b3eddc90e 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 8f34f1202213..bacb4048217f 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 5aa9a2dfcef5..09542f5c3e59 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 7f2b91bb4c1d..46790c8fc467 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 add7605c4a9b..ef6646c856b5 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, + + # nativeBuildInputs + propagates + librt, # propagates - librt, 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 c37327e9ea01..7e2aa326772b 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 0873da577050..ae8c93a4d742 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 506f0e10dfd6..11c25c98168d 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 37fd13bd9582..000000000000 --- 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 000000000000..7cc84679ced9 --- /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 38d47436b392..68187a35dfc1 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 c32b3e679805..ef6f77ba48fe 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 4fc274257916..7167ff94637e 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 67c60475fd5f..4af4511fdc81 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 6c75f34ce07a..000000000000 --- 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 a4542a21913a..e0f6acec894a 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 3fafd9f25fd4..81fb76e51861 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 eb4afad2436f..c3af4ad016e0 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 c81381cdf363..6e459a895c75 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 e64aa913d50b..f482bc846903 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 d8534e95f7f5..83fd84b4be6f 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 02b3917a0cfa..88a8a3c99de4 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 000000000000..4022a30b5622 --- /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 99769b3ffec4..8c415e19b559 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 000000000000..6d380643d021 --- /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 000000000000..3d4a30b96c0f --- /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 4c59abd298a7..7232c5d0f8ea 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 3cad5136d858..50fd28dcb0c5 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 e84d768dce1a..05e87357b57c 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 9dea32157d9b..9518d6703921 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 ebf39f5d92cd..25e98c490a21 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 - ]; - - 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/${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 ]; - }; + src = fetchPypi { + inherit (finalAttrs) pname version; + hash = "sha256-/0Uv9aPoKM4RAZD+/xF4ux8uoigfogdarbmHwvsiFmE="; }; -in -packaging + + 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 + ]; + maintainers = with lib.maintainers; [ bennofs ]; + teams = [ lib.teams.python ]; + }; +}) diff --git a/pkgs/development/python-modules/pajgps-api/default.nix b/pkgs/development/python-modules/pajgps-api/default.nix index 88acca389028..a3b2b2423fd7 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 947122608e8c..a0519d35c2ab 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 6350ba2e5a8a..5e99e2ce79d5 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 4921616d1c14..85e7f7593a8c 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 925f2896c54b..a0f0b47f599f 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 4170d421d632..e4bf513d4f55 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 2a30200bf269..0ca5fd267f9e 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 000000000000..5e841e26145f --- /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 392c5e264a33..087da4f1a8d2 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 cb7214e768fb..3dc5a8698748 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 e2c0b2eb75ad..e19a87b695eb 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 05e7a02e49b7..ab5a8f6dd902 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 fd0cc9667c0d..3c81d609b50f 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 be7b67a21b50..d158236eff78 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 41ff1ff2918e..3d1fdfb9c674 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 790594cde747..22c34f8302dd 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 d7d7db06793c..43aeadad29d1 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 5e44c82d463f..dcfbf72e415c 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 6c96954b0df7..8259f224f131 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 2ca17523a3e6..203c3b9c118a 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 f69da1bc04c0..a6368e345efe 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 ae962b95e978..3a00ad840176 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 d6371c1e012b..ace59fce7e14 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 2129c2f1e523..02db8b9fae26 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 311e81b2f1a6..becb9af2a267 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 9f4366c6685d..f21dac9e39cc 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 393323831668..7b5752f79eed 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 49be840bf8f9..c7c32e9e20d3 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 c59679649a88..6f580895976f 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 a34ffbb95b29..b84ef6f5aace 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 d7c7de2030eb..866834959dfd 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 b912d6b04bb8..c728dbbbd82c 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 f8a7d37977dd..c6b365bf23f1 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,11 +33,23 @@ buildPythonPackage rec { }) ]; - nativeBuildInputs = [ - pkg-config + postPatch = '' + substituteInPlace pyproject.toml \ + --replace-fail ', "swig>4.1.0"' "" + ''; + + env.GRAPHVIZ_PREFIX = graphviz; + + build-system = [ setuptools ]; + nativeBuildInputs = [ + graphviz # for dot + pkg-config + swig + ]; + buildInputs = [ graphviz ]; nativeCheckInputs = [ pytest ]; @@ -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 a9ee409a15ae..f557ffef4610 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 275aa0d35876..575cd470b4da 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 b5ab00d1a7aa..6b5464f6ee97 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 628254991592..a37899a50f7d 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 ed1a787eb7a1..5349ee627470 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 8b437d940b47..b9a5e7642000 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 2a6a0b952371..69dc994c5b91 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 9837885ecb5f..fc0afe74e614 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 a9032180e048..000000000000 --- 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 a087c6442d91..a879125bd8e7 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 e07a01289f74..278ad48196d8 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/pyomie/default.nix b/pkgs/development/python-modules/pyomie/default.nix index 3709034e38d2..5c4e69d73407 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 46e99e1e4bbf..3924e6cd73ad 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 6a45385fbc15..28d49bf3d6f1 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 6b76dad2eb72..c04a3e45faee 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 5de57d7bd3dc..c5649cd22864 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 10b189757108..3d6fe0e9c825 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 4559253b2535..6ee8a07eca81 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 a248a1bb0d49..012d23f0dcfb 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 64db47763f55..1a6e2c043989 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 000000000000..e1f457e168ed --- /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 c753f4dc9694..000000000000 --- 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 2c64e9f2ab8d..39ade30d993e 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 2885145690aa..f2a57047a682 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 b1fb2450970e..dcdf8d9f5b6a 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 6583c95f29e9..1e9ba577a4fb 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 ba963a0b67b7..0952681a5135 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 87062960a7cb..a166439fdac9 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 6e5b90d27966..e5680266e742 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 3c88f2f6f66b..fcbfbd3f4be0 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 cc41563099e5..fc5cb01cf15d 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 4ddb31f54c58..cf479422c759 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 f3f672324d35..7cc159faa61c 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 4c073d30e042..9ba4e2bef69a 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 57bd62628ccd..7f681df0ce46 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 7f7dfe9cad19..2ab2cd05f651 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 b46373b85b9b..bdb8d2ef8591 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 9ddb062c5429..3df45379234a 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 00abc62b2075..000000000000 --- 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 987422109bdd..aef185b4713f 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 26cba5d602e9..23186b37e8db 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 831296d2607e..000000000000 --- 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 ea8e5b2e95f8..000000000000 --- 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 ed476d568dd8..5403a419d768 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 f33bdd102a93..962cb637c979 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 033965d23f33..98514cb947d5 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 cf262e14980a..b6a949eb1c7f 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 1bb1f5361d5f..c58397a1fd00 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 000000000000..cd0346f06223 --- /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 05d24e31f8d4..f6aa0ba577f3 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 a6f0018e3fd1..7b8e9ddc2d6b 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 c8116561b720..d1e93433fe5e 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 39209509a011..3e84f4f90a6d 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 89e77b995785..aa968f51180d 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 e016767db614..30453064016a 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 2602e0f0e3e1..2e92150b8f9e 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 f9e79d5955c3..59354d41092b 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 633658bec1ec..6f5c636620f1 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 089bc108991e..4b6da5258243 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 bac82024c583..dfb682351eef 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 78ad8add1fd9..7b055a98e0bb 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 754a889cc795..fbf8712820e5 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 6f34f8375feb..5f3117a1d155 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 726311ba8e3c..4ec273c8ea1f 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 72034f447237..637a76b82a5e 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 053bceb0b9ab..cd506db94100 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 0efb763e3694..40457b6271dc 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 e258bdf045f2..a0809ee2c5f3 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 c909d8d66d08..1190d875005a 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 c0ee37ecae8e..61cd4585d23c 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 31f0a1d2b65f..8bf1fbdc5ba7 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 35d1ef5ad931..000000000000 --- 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 b48f5a5d8f72..bf50ab0b7a63 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 cdecd986e4ef..388e665f78cc 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 0cacbda728d8..cceb55ded458 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 f61d14a5d418..000000000000 --- 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 08041d7a5d7b..3a48512d690b 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 b07291e7a98f..6979a8587c49 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 876eb1e9cbd8..3b855063ad5e 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 000000000000..a051cb776fa3 --- /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 657d23f35073..7daa5062fbb8 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 6cc24de623ba..365356b0dd8e 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 c7d4995fc1cc..df2552ed6f5d 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 275f8814a9cb..8db6aca481ec 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 3847051bca32..28c6221c2f17 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 fcfc2e4b9893..a084e1a54962 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 fb99c84de0bd..b0733c1289e5 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 984523ba1473..8f628338332c 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 e66a5cf7a80d..98974519d575 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 ff38db934034..dd481a5fb52a 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 4b2b521e033c..c4f84e150699 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 7763a6a78b19..4c655d0df55e 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 b2282677ee3b..c07319fbe6c8 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 f8eaa1592994..cd3673865689 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 08cb9bf63f5a..e5c8bae9dc26 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 d96daa9ed04e..80df6401b747 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 da07cc04b6ad..4edddcbf0d99 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 d97f7d3730f4..691f3031cfb6 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 f4c881de90aa..d8b1a1a566a9 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 fdc1aeadd4fe..000000000000 --- 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 000000000000..1b41c1802129 --- /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 839f5c8e02e5..06863712e7c5 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 19a85037b016..da1f1569b640 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 4327db46ac9e..2cd462786b20 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 9dcd42eb70ef..50b685ec17e6 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 1c44cd1ffe12..281010a17b78 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 5771c7160515..898180da3cd0 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 69c0b33a9eb4..adcf961c5745 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 a886c3576a41..e298aabb4d01 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 81a5310ec78b..b1c969e2d398 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 c9bc634b3549..65a0772135ad 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 44222a54167b..815ad685f6b0 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 c05ebcab4c7d..000000000000 --- 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 047c47c2dcbe..3ff4ea706250 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 - ]; - - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail ', "setuptools-scm>=8,<10"' "" - ''; - - 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; - - 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; - - passthru.tests.pytest = self.overridePythonAttrs (_: { - doCheck = true; - }); - - preCheck = '' - export CI # Increases LONG_TIMEOUT - ''; - - 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 ]; - }; + src = fetchFromGitHub { + owner = "urllib3"; + repo = "urllib3"; + tag = finalAttrs.version; + hash = "sha256-iN59MS5gKgDxe2v4ILrZ/1y7wV4yB1tFs4ATKppYAAk="; }; -in -self + + build-system = [ + hatchling + hatch-vcs + ]; + + 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 finalAttrs.passthru.optional-dependencies; + + 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; + + passthru.tests.pytest = finalAttrs.finalPackage.overrideAttrs (_: { + doInstallCheck = true; + }); + + preCheck = '' + export CI # Increases LONG_TIMEOUT + ''; + + pythonImportsCheck = [ "urllib3" ]; + + 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 ]; + }; +}) diff --git a/pkgs/development/python-modules/uv-build/default.nix b/pkgs/development/python-modules/uv-build/default.nix index c37b17d316c7..0750166192ce 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 9bdc07615fe1..d9d4aba3e6e2 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 898c53fca80e..d608690e1b08 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 78e41447623a..5556125736ee 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 000000000000..096da5eac421 --- /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 efe73ec81ce7..8de4b62fc21d 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 a51ae2bbd75e..dbdb04131e0d 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 8bc955822ca7..ead77fa7f2a7 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/vsure/default.nix b/pkgs/development/python-modules/vsure/default.nix index 65c2463df0e9..f372bacd3055 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 39e7931da584..d8c9b9cea8c5 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 b18d159fcdd4..1613d10047e7 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 000000000000..e38ecbfcd9fb --- /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 50696d7c0cf5..4aca9e5d587d 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 e33e4e871716..1e5cfaea6e75 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 1496775f5eec..16d3dff4fd61 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 b0e9e537cd56..d9f1f5464274 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 e1178ff3058f..81f4571b32e6 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 bd22bc108bbe..0c928c0aa158 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 a429afaae31e..f84f8ced4678 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 4b517a019959..ba29a36fff8f 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 23b105fde225..e311ec216acc 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 bb739b974cca..83db908d50b0 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 863e80a87385..bbb6d4164aa2 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 90a188eec7ce..33f0197e5b8b 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 2b08a84c8f94..3e0278b6749f 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,7 +35,7 @@ buildPythonPackage (finalAttrs: { owner = "zigpy"; repo = "zha"; tag = finalAttrs.version; - hash = "sha256-Jf8k/4z7eERiV2jwDzhV990sLBebasEKe5/0WbX1hYc="; + hash = "sha256-cLE30i+3dqmtasHZKgW16zThMwWbZ8wh/GFtrgWmpfE="; }; postPatch = '' @@ -50,14 +52,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 +70,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 +105,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 661d641efc75..d58a27f82ded 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 000000000000..802656960311 --- /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 e3bec251f590..0a8a8e2bf2c8 100644 --- a/pkgs/development/python-modules/zigpy/default.nix +++ b/pkgs/development/python-modules/zigpy/default.nix @@ -23,14 +23,14 @@ 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 = '' diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix index 9981e18a166e..bd2c8c65ad88 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/zope-event/default.nix b/pkgs/development/python-modules/zope-event/default.nix index 0c33629346d7..5d8ff0a4d2a9 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 79764e7fed27..d0a68e9b7b24 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 5d6b2f1ef79f..e602cd3ce333 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/hotdoc/clang.patch b/pkgs/development/tools/hotdoc/clang.patch deleted file mode 100644 index 53334206b7d5..000000000000 --- 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/misc/luarocks/default.nix b/pkgs/development/tools/misc/luarocks/default.nix index 0ce2558441c5..75327f83f184 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 9b28e342de4c..ae434dbddeb7 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 d48fa76bb0c2..5358e4aed773 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 5fd5eeac6919..537ea51b87cf 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 defbb3f088e8..1dd0822d8db4 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 914ab1479370..359e20891269 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 82cab5e085d4..1981e2ed06b7 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 4e816b99551e..cbd17e8fc688 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 3ded625c156b..3f0e13b38f2a 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 00270488507a..ab4a184efaa9 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 a9e5571a8954..7a16dbe68484 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 5bbef54de647..467f425e1cc0 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 a92bdb13e3ad..9a2cd1afa6ea 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 ba754ddee3ee..8c61f41b7e74 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 f742f4743807..300dd48f27f3 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" + 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);' "" + # Disable failing tests + substituteInPlace test/cintltst/cloctst.c \ + --replace-fail 'TESTCASE(TestCanonicalForm);' "" - substituteInPlace test/intltest/rbbitst.cpp \ - --replace-fail 'TESTCASE_AUTO(TestExternalBreakEngineWithFakeYue);' "" + 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" + # 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 - # 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 - ''; + # 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 000000000000..b9018766b838 --- /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 23a5ac307c80..000000000000 --- 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 7aefb636900e..0411e61a1f9e 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 6e8cf1f8e394..f38797fd2ce9 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 b29e711251d6..01eb728f2eb6 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 1504ebf59590..39faf051ad14 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 30f1eef87c27..5be1753d589a 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 000000000000..bcc6279d081e --- /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 137397b3abbc..646143084e2c 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 8029d2982acd..523c67f88645 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 88f7885ce814..955a2bc84542 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 1fdb00d9a735..8a780069d52d 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 8a757030dd9b..d91a37359c32 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 352df185452c..78e9ad87a6bf 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 726032f36d26..935661f5aa00 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 41c8e32a27ec..983bb378d7c0 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 3bee4e848c76..25f45e0ebc12 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 32c88224b867..a4e794cf3b26 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 c288d56dcc03..83397f3b492e 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 2e4de4038f9a..83b6502405c8 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 742379b94603..31ec4ebc5836 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 4ba20f13192e..eb34c121e9da 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 fd0681ca4d41..6461f6523c0b 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 fcdb8131957e..540f86112aa4 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 22eca3a3c873..2291a5dedba3 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 dae72f79852a..5418c6507b4b 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 063d1f0a4100..f46805411c61 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 aa68c36eb73b..c6b1c6e2ba0c 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 2abe73c2aa0c..c6175308d59d 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 090b939acd7f..25b06eb13f00 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 0f442367f72f..3016e751e72f 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 d9c37f5a0562..7c533e2d0d5b 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 890098aa66b9..3188453cea74 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 e55acf5caecd..d003f164abad 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 a9694d349f5e..f156f862ecc0 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 69f8dadd22ab..18e71d833461 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 1913ce85927b..7476143d3469 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 1a7da3f1aff3..d24f0e6d12ce 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 7cf5c0d1e786..ee25341e0b3b 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 267f1f12dd20..260f9103c756 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 f086c21747ff..8ebb1791e55c 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 2580347d7102..f38f8e262854 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 c3e967ebe53d..09d2d260b895 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 3add87dc6f3a..07eba0ef2fe4 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 5697ce229934..f449fdcd3609 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 36849236ee6c..7c3335ed1f21 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 fcee9605e42c..a3a0b5c2e05c 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 d6dc9fa97787..edf1a2f15640 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 cca800e197c5..8ca28a1366f5 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 7bf32df8ecb9..1bec275f7b2a 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 96e983f537f8..ef72d3216ed0 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 d7eec96dff2a..c663c4cf04f8 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 ecd877096f93..ff53296d9aba 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 a9ec66f9dd3d..5d993d1493d7 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 bf6ebeebe59a..0724cd661fd5 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 09e87bf7be83..eab1a27055ec 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 ee46cfa8c7c5..5e596553f08b 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 cd7fab37282d..da76ab824d4b 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 3982a1142782..102ba62329cd 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 7bc24178269c..088de13e9478 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 76a7492c91a6..2b944d5846e6 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 9b9a4bb81b55..66c811fa989f 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 b22b77df6c7e..a76ec8273dcf 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 cda6f31556be..f97477297b8f 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 7c969d1423dc..90117352a044 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 8565ff7b7d1f..e6fc1d55e28d 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 2c76e6733ecd..75f5ea66d66e 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 6e396bbd4a97..b8bd319c3465 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 301fa4e15907..496dc54787cf 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 2a4af86c8896..c081c4ab4459 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 30a30d7166fa..05d0ecc8e42b 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 8439babb6985..a03c7c5d83e6 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 abf556d2a04e..1268d9cc704f 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 8b3a1edde7ec..26b653c45218 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 000000000000..19b178b4629d --- /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 c8a14915f633..042ccb0f8436 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/auto-entities/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/auto-entities/package.nix index fe7d1471398d..be780fcdfe2b 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 ae5928dad353..faa21902dcf0 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 a2bb31a69988..19f30f3ba278 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 0b09a638cb71..8c8a48490df4 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 6079608c0499..d5041e4d3e38 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 8e677fc86fef..67a4a32f276f 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/material-you-utilities/package.nix b/pkgs/servers/home-assistant/custom-lovelace-modules/material-you-utilities/package.nix index af26077a697e..605580201fd5 100644 --- a/pkgs/servers/home-assistant/custom-lovelace-modules/material-you-utilities/package.nix +++ b/pkgs/servers/home-assistant/custom-lovelace-modules/material-you-utilities/package.nix @@ -6,16 +6,16 @@ buildNpmPackage rec { pname = "material-you-utilities"; - version = "2.1.16"; + version = "2.1.19"; src = fetchFromGitHub { owner = "Nerwyn"; repo = "material-you-utilities"; tag = version; - hash = "sha256-s8VVV2KmiJ3auQPRwVRWHonYlVWkExC3quRANfW295U="; + hash = "sha256-9eOn5E4lYzhfZSl7dmb3UNEkgU+hv7UFfmh6r6IX13M="; }; - npmDepsHash = "sha256-D18gwO8zO7lKbaRhj+QaeGzkE7zqXc3KGvz9am4rrFY="; + npmDepsHash = "sha256-6WGpuiMDzlx0Pm6C9mPtCVXHDDp4JWk3jMu6XNetiYE="; installPhase = '' runHook preInstall 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 3ff0c62aa1e1..d328337101ae 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 bed6bf456383..4d10ecad0bc5 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 0f5624aa41b3..dc368cdb291e 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 8de81bf72298..49d422039124 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 f0950cfe0265..b984654efa37 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 98b12fd38dbb..c8538c72df77 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 079b07f970aa..8dce29af3c21 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 d6049a3f5f86..da0e2cc1bb76 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 d56ddb56f4ce..e8f663e4afdc 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 d4ac5634c5da..bb7452f8bdd5 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}" ]; - meta = old.meta // { - broken = lib.elem component [ ]; - # upstream only tests on Linux, so do we. - platforms = lib.platforms.linux; - }; - }) - ) - ) home-assistant.supportedComponentsWithTests + pytestFlags = [ "-vvv" ]; + + 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 184d0a7b3b73..04c9628ceb66 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 633131478a21..084b353c00ec 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 22027d48d97c..83fa3acab5d1 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 c5298a23de81..0f5eb20d649c 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 4d70b2474f27..1bccfcc412a0 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 50862f58f4ab..9ee9780fbfa5 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 7fe28ef140fd..c8c57ec7ae76 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 000000000000..093663c162dd --- /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 1dd1d6283a81..7d40097abf6a 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 f860cf950df6..8332f4d4e2de 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"; - generic = - # utils - { - stdenv, - fetchFromGitHub, - fetchurl, - lib, - replaceVars, + dlSuffix = if olderThan "16" then ".so" else stdenv.hostPlatform.extensions.sharedLibrary; - # source specification - hash, - muslPatches ? { }, - rev, - version, + 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"; - # runtime dependencies - darwin, - freebsd, - glibc, - libuuid, - libxml2, - lz4, - openssl, - readline, - tzdata, - zlib, - zstd, + 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; + }; - # build dependencies - bison, - docbook-xsl-nons, - docbook_xml_dtd_45, - flex, - libxslt, - makeBinaryWrapper, - pkg-config, - removeReferencesTo, + __structuredAttrs = true; - # passthru - buildEnv, - buildPackages, - newScope, - nixosTests, - self, - testers, + outputs = [ + "out" + "dev" + "doc" + "lib" + "man" + ] + ++ lib.optionals jitSupport [ "jit" ] + ++ lib.optionals perlSupport [ "plperl" ] + ++ lib.optionals pythonSupport [ "plpython3" ] + ++ lib.optionals tclSupport [ "pltcl" ]; - # 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, + 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)); + }; - # 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; - - buildInputs = [ - zlib - readline - openssl - libxml2 - libuuid + ++ lib.optionals jitSupport [ "jit" ]; + disallowedRequisites = [ + stdenv'.cc + llvmPackages.llvm.out + llvmPackages.llvm.lib ] - ++ 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 ]; + ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); + }; - nativeBuildInputs = [ - bison - docbook-xsl-nons - docbook_xml_dtd_45 - flex - libxml2 - libxslt - makeBinaryWrapper - perl - pkg-config - removeReferencesTo + doc = { + disallowedReferences = [ + "out" + "dev" + "man" ] - ++ lib.optionals jitSupport [ - llvmPackages.llvm.dev - nukeReferences + ++ lib.optionals jitSupport [ "jit" ]; + }; + + man = { + disallowedReferences = [ + "out" + "dev" + "doc" + ] + ++ 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 - ) - ( - 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"; - }) + disallowedRequisites = [ + stdenv'.cc + llvmPackages.llvm.out ] - ++ 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 - ]; + ++ (map lib.getDev (builtins.filter (drv: drv ? "dev") finalAttrs.buildInputs)); + }; + }; - installTargets = [ "install-world" ]; + strictDeps = true; - 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;" - ''; + 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 ]; - 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" + nativeBuildInputs = [ + bison + docbook-xsl-nons + docbook_xml_dtd_45 + flex + libxml2 + libxslt + makeBinaryWrapper + perl + pkg-config + removeReferencesTo + ] + ++ lib.optionals jitSupport [ + llvmPackages.llvm.dev + nukeReferences + ]; - # 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 - 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 '{}' + + enableParallelBuilding = true; - # Stop lib depending on the -dev output of llvm - remove-references-to -t ${llvmPackages.llvm.dev} "$out/lib/llvmjit${dlSuffix}" + separateDebugInfo = true; - 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" - ''; + buildFlags = [ "world" ]; - postFixup = lib.optionalString stdenv'.hostPlatform.isGnu '' - # initdb needs access to "locale" command from glibc. - wrapProgram $out/bin/initdb --prefix PATH ":" ${glibc.bin}/bin - ''; + 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"; - # 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"; + # 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"; }; - 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; - postgresql = finalAttrs.finalPackage; - }; - - pg_config = buildPackages.callPackage ./pg_config.nix { - inherit (finalAttrs) finalPackage; - outputs = { - out = lib.getOutput "out" finalAttrs.finalPackage; - man = lib.getOutput "man" finalAttrs.finalPackage; - }; - }; - - 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; - - # 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; - }; - }); - - postgresqlWithPackages = - { - postgresql, - buildEnv, - lib, - makeBinaryWrapper, - }: - f: + configureFlags = 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); - }; - }; + inherit (lib) withFeature; in - finalPackage; + [ + "--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" ]; -in -# passed by .nix -versionArgs: -# passed by default.nix -{ self, ... }@defaultArgs: -self.callPackage generic (defaultArgs // versionArgs) + 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 + 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 { }; + }; + newSelf = self // scope; + newSuper = { + callPackage = newScope (scope // finalAttrs.finalPackage.pkgs); + }; + in + import ./ext.nix newSelf newSuper; + + withPackages = self.callPackage ./wrapper.nix { postgresql = finalAttrs.finalPackage; }; + + pg_config = buildPackages.callPackage ./pg_config.nix { + inherit (finalAttrs) finalPackage; + outputs = { + out = lib.getOutput "out" finalAttrs.finalPackage; + man = lib.getOutput "man" finalAttrs.finalPackage; + }; + }; + + 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 000000000000..2f81cc546588 --- /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 c3cb5c6444e1..1b6028b4f37e 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 1f4bf0b7cf1f..000000000000 --- 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 d7e0dbf2c6ee..b19cdcc54de2 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 1c5c82be25b7..98eeded49b8c 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 77fb996d376b..c9b64c3086e8 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 63e8e2b32aae..d02f45fb4884 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/tools/compression/zstd/default.nix b/pkgs/tools/compression/zstd/default.nix index a014b652d313..03c614cb66e9 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 000000000000..7ef0a5a08d37 --- /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 77ad10f252c7..000000000000 --- 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 ff405c446597..000000000000 --- 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 ae27a481b38f..da9968755584 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 d5277055efd2..fdd550e8c8d1 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 8dfbd7f46bd2..d040f7d6f6c6 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 965dffdf109e..2af58b0a241c 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 b8bf89d99f7f..597c89f08c4d 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 6b354ef48d23..fd9dee1723a7 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 188ac323543f..e32573c05048 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 6effd6d9f41d..7f1cfe514425 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 e25946ed237c..9473f70ff694 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -388,6 +388,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 @@ -1816,6 +1817,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 075a6b9b2a72..6320662fd27c 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; @@ -4994,11 +4990,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; @@ -5524,6 +5515,7 @@ with pkgs; boost188 boost189 boost190 + boost191 ; boost = boost189; @@ -6543,10 +6535,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 { }; @@ -6565,6 +6558,7 @@ with pkgs; abseil-cpp = abseil-cpp_202103; }; }) + protobuf_35 protobuf_34 protobuf_33 protobuf_32 @@ -7114,15 +7108,6 @@ with pkgs; ]; }; - sbcl_2_6_3 = wrapLisp { - pkg = callPackage ../development/compilers/sbcl { version = "2.6.3"; }; - - faslExt = "fasl"; - flags = [ - "--dynamic-space-size" - "3000" - ]; - }; sbcl_2_6_4 = wrapLisp { pkg = callPackage ../development/compilers/sbcl { version = "2.6.4"; }; faslExt = "fasl"; @@ -7131,7 +7116,15 @@ with pkgs; "3000" ]; }; - sbcl = sbcl_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_5; sbclPackages = recurseIntoAttrs sbcl.pkgs; @@ -7637,8 +7630,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; @@ -8087,6 +8080,7 @@ with pkgs; withHomed = false; withHwdb = false; withImportd = false; + withImds = false; withLibBPF = false; withLibidn2 = false; withLocaled = false; @@ -8103,6 +8097,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 de13c0a29993..058e383e0b7a 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. - See the [release notes](#x86_64-darwin-26.05) for more + 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.11) for more information. ''; }; diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index b2cd7f2ada19..a93fb26666c9 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 2d4608cc2201..72a7dbc9434a 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 5010f2658c7e..33e09e254c43 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 c9e888067a74..c00efe313abd 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 e10d6f5e1ed2..70d2f84495f8 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 974759c5491b..7e60a67a73ff 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -2410,7 +2410,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 7cf04a60d07f..dfe9e57f7eb5 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 818cd202a9c9..ebbf572dbb80 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 bimmer-connected = throw "'bimmer-connected' was removed because BMW started blocking third parties"; # added 2026-03-30 bip_utils = throw "'bip_utils' has been renamed to/replaced by 'bip-utils'"; # Converted to throw 2025-10-29 @@ -202,6 +208,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 @@ -221,6 +228,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 @@ -248,6 +256,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 @@ -258,6 +267,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 @@ -324,6 +334,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 @@ -456,6 +467,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 @@ -486,6 +498,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 @@ -503,6 +516,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 @@ -573,6 +587,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 @@ -630,6 +645,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 @@ -650,6 +666,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 dac84bd97981..2edae2a835f4 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 { }; @@ -3042,6 +3034,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 { }; @@ -3124,7 +3118,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 { }; @@ -4448,6 +4446,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 { }; @@ -5383,8 +5384,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 { }; @@ -5979,8 +5978,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 { }; @@ -6767,8 +6764,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 { }; @@ -7175,8 +7170,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 { }; @@ -8879,6 +8872,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 { }; @@ -9195,8 +9190,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 [ @@ -12430,6 +12423,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 { }; @@ -12497,6 +12494,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 { }; @@ -15081,8 +15080,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 { }; @@ -15217,7 +15214,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 { }; @@ -15801,8 +15800,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 { }; @@ -16344,8 +16341,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 { }; @@ -16885,6 +16880,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 { }; @@ -18213,8 +18210,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 { }; @@ -20212,8 +20207,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; }; @@ -20274,6 +20267,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 { }; @@ -21456,8 +21451,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 { }; @@ -21658,6 +21651,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 { }; @@ -22536,6 +22531,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 6ed29a18e494..686d09922259 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 6bbcc48ee651..ec22e346a7ec 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 44c18f1abf0e..8746d3955ce6 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 c8b59f37e0ae..65c5490592e9 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 8a01dc2f6aa8..0668737c9ee4 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 fb6a38029c96..5652c62986a9 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 {