diff --git a/doc/doc-support/header.html b/doc/doc-support/header.html
new file mode 100644
index 000000000000..1c42f4adcf11
--- /dev/null
+++ b/doc/doc-support/header.html
@@ -0,0 +1,7 @@
+
diff --git a/doc/doc-support/package.nix b/doc/doc-support/package.nix
index f2c37df39132..728bbe334501 100644
--- a/doc/doc-support/package.nix
+++ b/doc/doc-support/package.nix
@@ -119,6 +119,8 @@ stdenvNoCC.mkDerivation (
--script ./anchor-use.js \
--sidebar-depth 3 \
--nav ./nav.json \
+ --header ${./header.html}\
+ --no-navheader \
manual.md \
out/index.html
diff --git a/doc/languages-frameworks/rocq.section.md b/doc/languages-frameworks/rocq.section.md
index f2ba50312807..056394056797 100644
--- a/doc/languages-frameworks/rocq.section.md
+++ b/doc/languages-frameworks/rocq.section.md
@@ -74,6 +74,8 @@ The recommended way of defining a derivation for a Rocq library, is to use the `
* `enableParallelBuilding` (optional, defaults to `true`), since it is activated by default, we provide a way to disable it.
* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variables `COQLIBINSTALL` and `COQPLUGININSTALL` so as to install in the proper subdirectory. Indeed Rocq libraries should be installed in `$(out)/lib/coq/${rocq-core.rocq-version}/user-contrib/`. Such directories are automatically added to the `$ROCQPATH` environment variable by the hook defined in the Rocq derivation.
* `setROCQBIN` (optional, defaults to `true`), by default, the environment variable `$ROCQBIN` is set to the current Rocq's binary, but one can disable this behavior by setting it to `false`,
+* `useCoq` (optional, defaults to `false`), adds the Coq compatibility binaries to the build environment, which is necessary for some packages that still depend on them and sets `COQBIN` to the path of the `coqc` binary (if `setROCQBIN` is also set to `true`). A wrapper `mkCoqDerivation` is provided that sets this option to `true`.
+* `useCoqifVersion` (optional, defaults to `(x: false)`), adds the Coq compatibility binaries to the build environment if the provided predicate evaluates to true on the version. This can be useful for supporting old package versions that need the Coq compatibility binaries, while newer versions do not.
* `useMelquiondRemake` (optional, default to `null`) is an attribute set, which, if given, overloads the `preConfigurePhases`, `configureFlags`, `buildPhase`, and `installPhase` attributes of the derivation for a specific use in libraries using `remake` as set up by Guillaume Melquiond for `flocq`, `gappalib`, `interval`, and `coquelicot` (see the corresponding derivation for concrete examples of use of this option). For backward compatibility, the attribute `useMelquiondRemake.logpath` must be set to the logical root of the library (otherwise, one can pass `useMelquiondRemake = {}` to activate this without backward compatibility).
* `dropAttrs`, `keepAttrs`, `dropDerivationAttrs` are all optional and allow to tune which attribute is added or removed from the final call to `mkDerivation`.
diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md
index ce3330d0b967..3df6dcba2037 100644
--- a/doc/release-notes/rl-2611.section.md
+++ b/doc/release-notes/rl-2611.section.md
@@ -44,6 +44,8 @@
- `libgdata` has been removed, as it was archived upstream and relied on the insecure libsoup 2.4.
+- `mcphost` has been removed, as it was archived upstream and declared unmaintained.
+
- `services.mysql` now sets `root@localhost` authentication to `auth_socket` when used with `mysql` or `percona-server`.
Existing deployments will also be adjusted if possible. See the [security advisory GHSA-6qxx-6rg8-c4p8](https://github.com/NixOS/nixpkgs/security/advisories/GHSA-6qxx-6rg8-c4p8) for more information.
@@ -106,6 +108,7 @@
- Starting with v14, `flameshot` will primarily utilise xdg-desktop-portal calls for screenshotting. This will directly affect users on X11 window managers due to the lack of a compatible portal with Screenshot feature. See [upstream changelog](https://github.com/flameshot-org/flameshot/releases/tag/v14.0.0) or [NixOS Flameshot](https://wiki.nixos.org/wiki/Flameshot) wiki page for workarounds.
- `nim1` and respective aliases have been removed due to entering EOL; please migrate to `nim` or `nim-unwrapped` (nim 2).
- `nim-2_0` & `nim-2_2` and respective aliases have been removed; please migrate to `nim` or `nim-unwrapped` (nim 2.2.10).
+- `domoticz` has been updated from `2024.7` to `2026.x`, breaking third party applications and scripts using the old RType calls. Review the [release notes](https://github.com/domoticz/domoticz/blob/2026.2/History.txt#L398) for more information.
- `vimacs` has been removed, as it has not been maintained in 10 years and was built for an old version of vim (6.0).
@@ -142,10 +145,11 @@
### Deprecations {#sec-nixpkgs-release-26.11-lib-deprecations}
-- Create the first release note entry in this section!
+- Setting `config.allowBrokenPredicate` is deprecated in favor of
+ using `config.problems.handlers.PackageName.broken = "warn"` (or `=
+ "ignore"`). For more information see [](#sec-allow-broken).
### Additions and Improvements {#sec-nixpkgs-release-26.11-lib-additions-improvements}
- Create the first release note entry in this section!
-
diff --git a/doc/style.css b/doc/style.css
index 8b426e72de24..9410d39e54be 100644
--- a/doc/style.css
+++ b/doc/style.css
@@ -23,14 +23,14 @@ body {
@media screen and (min-width: 992px) {
.book,
.appendix {
- max-width: 60rem;
+ max-width: 55rem;
}
}
@media screen and (min-width: 1200px) {
.book,
.appendix {
- max-width: 73rem;
+ max-width: 55rem;
}
}
@@ -398,6 +398,7 @@ div.appendix .variablelist .term {
:root {
--sidebar-width: 20rem;
+ --header-height: 3rem;
--background: #fff;
--main-text-color: #000;
--link-color: #405d99;
@@ -528,7 +529,7 @@ nav.toc-sidebar summary {
min-height: 0;
display: grid;
grid-template-columns: minmax(0, 1fr);
- grid-template-rows: auto minmax(0, 1fr);
+ grid-template-rows: var(--header-height) auto minmax(0, 1fr);
}
body:has(> nav.toc-sidebar) {
@@ -537,7 +538,7 @@ nav.toc-sidebar summary {
.navheader {
grid-column: 1 / -1;
- grid-row: 1;
+ grid-row: 2;
}
nav.toc-sidebar {
@@ -548,7 +549,7 @@ nav.toc-sidebar summary {
/* */
margin: 0;
grid-column: 1;
- grid-row: 2;
+ grid-row: 3;
max-height: none;
overflow-y: auto;
border: none;
@@ -562,7 +563,7 @@ nav.toc-sidebar summary {
main.content {
grid-column: 1 / -1;
- grid-row: 2;
+ grid-row: 3;
overflow-y: auto;
padding: 0 1rem;
}
@@ -571,3 +572,73 @@ nav.toc-sidebar summary {
grid-column: 2;
}
}
+
+.manual-header {
+ background-color: var(--background);
+ border-bottom: 0.0625rem solid #d8d8d8;
+ display: flex;
+ flex-direction: column;
+}
+
+.manual-header--title {
+ order: -1;
+ padding: 0.5rem 1rem 0;
+ font-size: 0.875rem;
+ font-weight: 500;
+ color: var(--small-heading-color);
+ text-align: center;
+}
+
+.manual-header--tabs {
+ display: flex;
+ align-items: stretch;
+ justify-content: space-around;
+ margin: 0;
+ padding: 0;
+}
+
+.manual-header--tab {
+ display: flex;
+ align-items: center;
+ padding: 0 1rem;
+ font-size: 0.875rem;
+ font-weight: 500;
+ color: var(--main-text-color);
+ text-decoration: none;
+ border-bottom: 0.1875rem solid transparent;
+ border-top: 0.1875rem solid transparent;
+ transition: border-bottom-color 0.15s ease;
+}
+
+.manual-header--tab:hover {
+ border-bottom-color: var(--heading-color);
+ color: var(--main-text-color);
+}
+
+.manual-header--tab-active {
+ border-bottom-color: var(--heading-color);
+ color: var(--heading-color);
+ font-weight: 700;
+}
+
+@media screen and (min-width: 768px) {
+ .manual-header {
+ height: var(--header-height);
+ flex-direction: row;
+ align-items: stretch;
+ grid-column: 1 / -1;
+ grid-row: 1;
+ }
+
+ .manual-header--title {
+ order: 0;
+ margin-left: auto;
+ padding: 0 1rem;
+ align-self: center;
+ }
+
+ .manual-header--tabs {
+ justify-content: flex-start;
+ padding: 0 1rem;
+ }
+}
diff --git a/maintainers/github-teams.json b/maintainers/github-teams.json
index 40779e666e48..8c1abf72ed9e 100644
--- a/maintainers/github-teams.json
+++ b/maintainers/github-teams.json
@@ -151,6 +151,7 @@
"samuela": 226872
},
"members": {
+ "ethancedwards8": 60861925,
"prusnak": 42201
},
"name": "cuda-maintainers"
@@ -365,10 +366,10 @@
"freedesktop": {
"description": "Maintain Freedesktop.org packages for graphical desktop.",
"id": 3806136,
- "maintainers": {},
- "members": {
+ "maintainers": {
"jtojnar": 705123
},
+ "members": {},
"name": "Freedesktop"
},
"geospatial": {
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index dfae715bcd38..7667360d7624 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1943,6 +1943,11 @@
githubId = 143312793;
name = "Annin";
};
+ anntnzrb = {
+ github = "anntnzrb";
+ githubId = 51257127;
+ name = "anntnzrb";
+ };
anoa = {
matrix = "@andrewm:amorgan.xyz";
email = "andrew@amorgan.xyz";
@@ -4640,6 +4645,13 @@
githubId = 53847249;
name = "Casey Avila";
};
+ cassandracomar = {
+ name = "Cassandra Comar";
+ github = "cassandracomar";
+ githubId = 320772;
+ email = "cass@mountclare.net";
+ keys = [ { fingerprint = "104E E74E 24A0 372B EAF5 5533 B019 18F7 7E04 AC99"; } ];
+ };
castorNova2 = {
email = "solemnsquire@gmail.com";
github = "castorNova2";
@@ -8841,6 +8853,13 @@
githubId = 345808;
name = "Jakub Okoński";
};
+ FatBoyXPC = {
+ name = "FatBoyXPC";
+ email = "fatboyxpc@gmail.com";
+ github = "FatBoyXPC";
+ githubId = 744962;
+ keys = [ { fingerprint = "0E08 1B81 CBCA 1CF7 9568 A13F C4ED 3CA2 3211 8969"; } ];
+ };
faukah = {
github = "faukah";
name = "faukah";
@@ -9021,6 +9040,11 @@
githubId = 5198058;
name = "Udo Sauer";
};
+ fernvenue = {
+ github = "fernvenue";
+ githubId = 84565547;
+ name = "fernvenue";
+ };
feyorsh = {
email = "george@feyor.sh";
github = "Feyorsh";
@@ -10386,6 +10410,12 @@
githubId = 273582;
name = "greg";
};
+ gregshuflin = {
+ email = "greg@everdayimshuflin.com";
+ github = "neunenak";
+ githubId = 311545;
+ name = "Greg Shuflin";
+ };
greizgh = {
email = "greizgh@ephax.org";
github = "greizgh";
@@ -11445,6 +11475,11 @@
githubId = 69209;
name = "Ian Duncan";
};
+ IanHollow = {
+ github = "IanHollow";
+ githubId = 72767437;
+ name = "Ian Holloway";
+ };
ianliu = {
email = "ian.liu88@gmail.com";
github = "ianliu";
@@ -12745,6 +12780,12 @@
githubId = 5741620;
name = "Jeremy Schlatter";
};
+ jeremystucki = {
+ email = "dev@jeremystucki.ch";
+ github = "jeremystucki";
+ githubId = 7629727;
+ name = "Jeremy Stucki";
+ };
jerith666 = {
email = "github@matt.mchenryfamily.org";
github = "jerith666";
@@ -14096,6 +14137,14 @@
name = "Kenichi Kamiya";
keys = [ { fingerprint = "9121 5D87 20CA B405 C63F 24D2 EF6E 574D 040A E2A5"; } ];
};
+ kacper-uminski = {
+ name = "Kacper Uminski";
+ email = "kacper+nixpkgs@lysator.liu.se";
+ github = "kacper-uminski";
+ githubId = 57466578;
+ matrix = "@kacper.uminski:matrix.org";
+ keys = [ { fingerprint = "3DF9 3DEB CAA9 81FA B3E2 A7F0 87DA 201D E02F 14B1"; } ];
+ };
kaction = {
name = "Dmitry Bogatov";
email = "KAction@disroot.org";
@@ -20309,6 +20358,12 @@
githubId = 4242897;
name = "Nikolai Mishin";
};
+ nmoya = {
+ email = "nikolasmoya@gmail.com";
+ github = "nmoya";
+ githubId = 1767648;
+ name = "Nikolas Moya";
+ };
noaccos = {
name = "Francesco Noacco";
email = "francesco.noacco2000@gmail.com";
diff --git a/nixos/doc/manual/default.nix b/nixos/doc/manual/default.nix
index cf5c28358097..78f44ad9ad74 100644
--- a/nixos/doc/manual/default.nix
+++ b/nixos/doc/manual/default.nix
@@ -202,6 +202,8 @@ rec {
--script ./anchor.min.js \
--script ./anchor-use.js \
--sidebar-depth 2 \
+ --header ${./header.html}\
+ --no-navheader \
./manual.md \
$dst/${common.indexPath}
diff --git a/nixos/doc/manual/header.html b/nixos/doc/manual/header.html
new file mode 100644
index 000000000000..acc029f5c3e4
--- /dev/null
+++ b/nixos/doc/manual/header.html
@@ -0,0 +1,7 @@
+
diff --git a/nixos/doc/manual/redirects.json b/nixos/doc/manual/redirects.json
index fa6f1989ba71..f767735f9e37 100644
--- a/nixos/doc/manual/redirects.json
+++ b/nixos/doc/manual/redirects.json
@@ -1891,6 +1891,9 @@
"sec-kubernetes": [
"index.html#sec-kubernetes"
],
+ "module-services-nordvpn": [
+ "index.html#module-services-nordvpn"
+ ],
"ch-running": [
"index.html#ch-running"
],
diff --git a/nixos/doc/manual/release-notes/rl-2611.section.md b/nixos/doc/manual/release-notes/rl-2611.section.md
index ccf235a16557..5eec5286eb9f 100644
--- a/nixos/doc/manual/release-notes/rl-2611.section.md
+++ b/nixos/doc/manual/release-notes/rl-2611.section.md
@@ -56,6 +56,8 @@
- [OO7](https://github.com/linux-credentials/oo7) is a desktop-agnostic Secret Service provider. Available as [services.oo7](#opt-services.oo7.enable)
+- [NordVPN](https://github.com/NordSecurity/nordvpn-linux), a NordVPN client for linux. Available as [services.nordvpn](options.html#opt-services.nordvpn.enable).
+
## Backward Incompatibilities {#sec-release-26.11-incompatibilities}
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6773d0004541..a1c6cedf8a41 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -358,6 +358,7 @@
./programs/wayland/mangowc.nix
./programs/wayland/miracle-wm.nix
./programs/wayland/niri.nix
+ ./programs/wayland/pinnacle.nix
./programs/wayland/river.nix
./programs/wayland/sway.nix
./programs/wayland/uwsm.nix
@@ -1343,6 +1344,7 @@
./services/networking/nncp.nix
./services/networking/nntp-proxy.nix
./services/networking/nomad.nix
+ ./services/networking/nordvpn.nix
./services/networking/nsd.nix
./services/networking/ntopng.nix
./services/networking/ntp/chrony.nix
diff --git a/nixos/modules/programs/wayland/pinnacle.nix b/nixos/modules/programs/wayland/pinnacle.nix
new file mode 100644
index 000000000000..2b341136c583
--- /dev/null
+++ b/nixos/modules/programs/wayland/pinnacle.nix
@@ -0,0 +1,70 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}:
+let
+ cfg = config.programs.pinnacle;
+ inherit (lib.options) mkEnableOption mkPackageOption;
+in
+{
+ options.programs.pinnacle = {
+ enable = mkEnableOption "pinnacle";
+ package = mkPackageOption pkgs "pinnacle" {
+ default = "pinnacle";
+ example = "pkgs.pinnacle";
+ extraDescription = "package containing the pinnacle server binary";
+ };
+ xdg-portals.enable = mkEnableOption "enable xdg-portals for pinnacle";
+ withUWSM = mkEnableOption ''
+ manage the pinnacle session with [UWSM](https://github.com/Vladimir-csp/uwsm) instead
+ of independent systemd services and targets.
+ '';
+ };
+
+ config = lib.mkIf cfg.enable (
+ lib.mkMerge [
+ {
+ environment.systemPackages = [
+ cfg.package
+ pkgs.protobuf
+ cfg.package.lua-client-api
+ ];
+ environment.pathsToLink = [
+ # For /run/current-system/sw/share/pinnacle protobuf files - for
+ # pinnacle to be able to launch with a non-default config out of the
+ # box.
+ "/share/pinnacle"
+ ];
+ xdg.portal = lib.mkIf cfg.xdg-portals.enable {
+ enable = true;
+ wlr.enable = true;
+ configPackages = [ cfg.package ];
+ extraPortals = [
+ pkgs.xdg-desktop-portal-wlr
+ pkgs.xdg-desktop-portal-gtk
+ pkgs.gnome-keyring
+ ];
+ };
+ }
+ (lib.mkIf (cfg.withUWSM) {
+ programs.uwsm.enable = true;
+ # Configure UWSM to launch Pinnacle from a display manager like SDDM
+ programs.uwsm.waylandCompositors = {
+ pinnacle = {
+ prettyName = "Pinnacle";
+ comment = "Pinnacle compositor managed by UWSM";
+ binPath = "/run/current-system/sw/bin/pinnacle";
+ extraArgs = [ "--session" ];
+ };
+ };
+ })
+ (lib.mkIf (!cfg.withUWSM) {
+ services.displayManager.sessionPackages = [ cfg.package ];
+ })
+ ]
+ );
+
+ meta.maintainers = with lib.maintainers; [ cassandracomar ];
+}
diff --git a/nixos/modules/services/matrix/dendrite.nix b/nixos/modules/services/matrix/dendrite.nix
index 4a55c30c839b..671c3821da4d 100644
--- a/nixos/modules/services/matrix/dendrite.nix
+++ b/nixos/modules/services/matrix/dendrite.nix
@@ -13,6 +13,7 @@ in
{
options.services.dendrite = {
enable = lib.mkEnableOption "matrix.org dendrite";
+ package = lib.mkPackageOption pkgs "dendrite" { };
httpPort = lib.mkOption {
type = lib.types.nullOr lib.types.port;
default = 8008;
@@ -321,7 +322,7 @@ in
];
ExecStart = lib.strings.concatStringsSep " " (
[
- "${pkgs.dendrite}/bin/dendrite"
+ (lib.getExe cfg.package)
"--config /run/dendrite/dendrite.yaml"
]
++ lib.optionals (cfg.httpPort != null) [
diff --git a/nixos/modules/services/networking/networkd-dispatcher.nix b/nixos/modules/services/networking/networkd-dispatcher.nix
index eb874447bb3a..adc948104da3 100644
--- a/nixos/modules/services/networking/networkd-dispatcher.nix
+++ b/nixos/modules/services/networking/networkd-dispatcher.nix
@@ -93,6 +93,10 @@ in
config = mkIf cfg.enable {
+ warnings = mkIf (!config.networking.useNetworkd) [
+ "services.networkd-dispatcher will not execute any scripts unless networking.useNetworkd is enabled."
+ ];
+
systemd = {
packages = [ pkgs.networkd-dispatcher ];
services.networkd-dispatcher = {
diff --git a/nixos/modules/services/networking/nordvpn.md b/nixos/modules/services/networking/nordvpn.md
new file mode 100644
index 000000000000..06016098894a
--- /dev/null
+++ b/nixos/modules/services/networking/nordvpn.md
@@ -0,0 +1,65 @@
+# NordVPN {#module-services-nordvpn}
+
+*Source:* {file}`modules/services/networking/nordvpn.nix`
+
+*Upstream documentation:*
+
+NordVPN offers a paid virtual private network (VPN) service.
+The service operates as closed-source,
+but the Linux client uses open-source code licensed under GPLv3.
+A minimal configuration in NixOS appears as follows:
+
+```nix
+{
+ services.nordvpn.enable = true;
+ networking.firewall.enable = true;
+ networking.firewall.checkReversePath = "loose";
+}
+```
+
+When using a firewall, set `networking.firewall.checkReversePath` to `"loose"` or `false`.
+NordVPN includes a `kill-switch` feature that blocks all packets not associated with the VPN connection.
+
+Additionally, add your user to the `nordvpn` group.
+
+```nix
+{
+ users.users.yourUser = {
+ #..
+ extraGroups = [
+ #..
+ "nordvpn"
+ ];
+ };
+}
+```
+
+If you prefer to use your own user and group, you can do so using
+
+```nix
+{
+ services.nordvpn.user = "SOME-USER";
+ services.nordvpn.group = "SOME-GROUP";
+}
+```
+
+NordVPN provides several useful CLI commands, including:
+
+```bash
+nordvpn login # Log in using an OAuth URL
+nordvpn login --token # Log in with a token obtained from your NordVPN account
+nordvpn c # Connect to the VPN
+nordvpn c ie # Connect to a NordVPN server in Ireland
+nordvpn d # Disconnect from the VPN
+nordvpn set technology openvpn # Switch to OpenVPN technology
+nordvpn c # Reconnect after changing technology
+```
+
+Additionally, if you prefer to use the friendly GUI,
+
+```bash
+nordvpn-gui
+```
+
+**Disclaimer:** NixOS currently does not support meshnet.
+Contributions welcome!
diff --git a/nixos/modules/services/networking/nordvpn.nix b/nixos/modules/services/networking/nordvpn.nix
new file mode 100644
index 000000000000..b38d75dd519d
--- /dev/null
+++ b/nixos/modules/services/networking/nordvpn.nix
@@ -0,0 +1,171 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+let
+ cfg = config.services.nordvpn;
+ defaultUser = "nordvpn";
+ defaultGroup = "nordvpn";
+
+ nordvpn =
+ let
+ cli = cfg.package.cli.overrideAttrs (old: {
+ preBuild =
+ let
+ extraPreBuild = lib.optionalString (cfg.group != defaultGroup) ''
+ substituteInPlace internal/permissions.go \
+ --replace-fail \
+ 'string{"nordvpn"}' \
+ 'string{"${cfg.group}"}'
+
+ substituteInPlace internal/constants.go \
+ --replace-fail \
+ 'NordvpnGroup = "nordvpn"' \
+ 'NordvpnGroup = "${cfg.group}"'
+ '';
+ in
+ extraPreBuild + (old.preBuild or "");
+
+ # postFixup wraps nordvpnd so that it can find binaries that it calls.
+ # here, instead, use systemd to update the path to those binaries.
+ postFixup = "";
+ });
+ in
+ pkgs.symlinkJoin {
+ inherit (cfg.package) pname version meta;
+ paths = [
+ cli
+ cfg.package.gui
+ ];
+ };
+in
+{
+ options.services.nordvpn = {
+ enable = lib.mkEnableOption "Enable NordVPN";
+ package = lib.mkPackageOption pkgs "nordvpn" { };
+ user = lib.mkOption {
+ type = lib.types.str;
+ default = defaultUser;
+ description = ''
+ The User that owns the `nordvpnd` systemd process.
+ If overriding the default, a user with the same name must exist.
+ '';
+ };
+ group = lib.mkOption {
+ type = lib.types.str;
+ default = defaultGroup;
+ description = ''
+ The Group that owns the `nordvpnd` systemd process.
+ If overriding the default, a group with the same name must exist.
+ '';
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+
+ # create the default user if that's the one used
+ users.users = lib.mkIf (cfg.user == defaultUser) {
+ ${defaultUser} = {
+ description = "User that runs `nordvpnd`.";
+ group = cfg.group;
+ isSystemUser = true;
+ };
+ };
+
+ # create the default group if that's the one used
+ users.groups = lib.mkIf (cfg.group == defaultGroup) {
+ ${defaultGroup} = { };
+ };
+
+ # nordvpnd uses resolved to configure dns
+ services.resolved.enable = true;
+
+ # policy that allows nordvpnd to configure dns
+ security.polkit = {
+ enable = true;
+ extraConfig = ''
+ polkit.addRule(function(action, subject) {
+ if (action.id == "org.freedesktop.resolve1.set-dns-servers"
+ && subject.isInGroup("${cfg.group}")) {
+ return polkit.Result.YES;
+ }
+ });
+ '';
+ };
+
+ environment.systemPackages = [
+ nordvpn
+ ];
+
+ systemd.services.nordvpnd = {
+ after = [ "network-online.target" ];
+ description = "NordVPN daemon.";
+ path = (
+ with pkgs;
+ [
+ e2fsprogs
+ iproute2
+ libxslt
+ nftables
+ procps
+ wireguard-tools
+ ]
+ ++ [ nordvpn ]
+ );
+ serviceConfig = {
+ # nordvpnd needs CAP_NET_ADMIN to configure network interfaces
+ AmbientCapabilities = "CAP_NET_ADMIN";
+ CapabilityBoundingSet = "CAP_NET_ADMIN";
+ ExecStart = lib.getExe' nordvpn "nordvpnd";
+ Group = cfg.group;
+ KillMode = "process";
+ NonBlocking = true;
+ Requires = "nordvpnd.socket";
+ Restart = "on-failure";
+ RestartSec = 5;
+ RuntimeDirectory = "nordvpn";
+ RuntimeDirectoryMode = "0750";
+ StateDirectory = "nordvpn";
+ StateDirectoryMode = "0750";
+ User = cfg.user;
+ };
+ wantedBy = [ "default.target" ];
+ wants = [ "network-online.target" ];
+ };
+
+ systemd.sockets.nordvpnd = {
+ description = "NordVPN Daemon Socket";
+ listenStreams = [ "/run/nordvpn/nordvpnd.sock" ];
+ partOf = [ "nordvpnd.service" ];
+ socketConfig = {
+ DirectoryMode = "0750";
+ NoDelay = true;
+ SocketGroup = cfg.group;
+ SocketMode = "0770";
+ SocketUser = cfg.user;
+ };
+ wantedBy = [ "sockets.target" ];
+ };
+
+ systemd.user.services.norduserd = {
+ after = [ "network-online.target" ];
+ description = "NordUserD Service";
+ serviceConfig = {
+ ExecStart = lib.getExe' nordvpn "norduserd";
+ NonBlocking = true;
+ Restart = "on-failure";
+ RestartSec = 5;
+ };
+ wantedBy = [ "graphical-session.target" ];
+ wants = [ "network-online.target" ];
+ };
+
+ };
+
+ meta = {
+ doc = ./nordvpn.md;
+ maintainers = with lib.maintainers; [ different-error ];
+ };
+}
diff --git a/nixos/modules/services/networking/technitium-dns-server.nix b/nixos/modules/services/networking/technitium-dns-server.nix
index 143b0c43cfdc..32aa247989aa 100644
--- a/nixos/modules/services/networking/technitium-dns-server.nix
+++ b/nixos/modules/services/networking/technitium-dns-server.nix
@@ -65,6 +65,7 @@ in
DynamicUser = true;
StateDirectory = "technitium-dns-server";
+ LogsDirectory = "technitium";
Restart = "always";
RestartSec = 10;
@@ -102,5 +103,8 @@ in
};
};
- meta.maintainers = with lib.maintainers; [ fabianrig ];
+ meta.maintainers = with lib.maintainers; [
+ fabianrig
+ awildleon
+ ];
}
diff --git a/nixos/modules/system/boot/loader/limine/limine-install.py b/nixos/modules/system/boot/loader/limine/limine-install.py
index 9add26b636c6..dacf4a339d0e 100644
--- a/nixos/modules/system/boot/loader/limine/limine-install.py
+++ b/nixos/modules/system/boot/loader/limine/limine-install.py
@@ -347,7 +347,7 @@ def config_entry(levels: int, bootspec: BootSpec, label: str, time: str) -> str:
os.path.basename(bootspec.toplevel) + "-secrets"
)
- if os.system(bootspec.initrdSecrets + " " + initrd_secrets_path_temp) != 0:
+ if subprocess.run([bootspec.initrdSecrets, initrd_secrets_path_temp]).returncode != 0:
print(
f'warning: failed to create initrd secrets for "{label}"',
file=sys.stderr,
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 5e2b349d0813..029a2543ec93 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -63,7 +63,7 @@ let
- `config.node.pkgs.` or `config.nodes.foo.nixpkgs.pkgs.` to refer
to the Nixpkgs used on the VM guest(s).
- `hostPkgs.` when invoking commands on the VM host (e.g. in Python
- `os.system("foo")`)
+ `subprocess.run(["foo"])`)
- Since the runTest argument is a module instead of a function, arguments
must be passed as option definitions.
You may declare explicit `options` for the test parameter(s), or use the
@@ -1205,6 +1205,7 @@ in
nominatim = runTest ./nominatim.nix;
non-default-filesystems = handleTest ./non-default-filesystems.nix { };
non-switchable-system = runTest ./non-switchable-system.nix;
+ nordvpn = runTest ./nordvpn.nix;
noto-fonts = runTest ./noto-fonts.nix;
noto-fonts-cjk-qt-default-weight = runTest ./noto-fonts-cjk-qt-default-weight.nix;
novacomd = handleTestOn [ "x86_64-linux" ] ./novacomd.nix { };
diff --git a/nixos/tests/blint.nix b/nixos/tests/blint.nix
index ea0a14cb4b1f..3438f4926f82 100644
--- a/nixos/tests/blint.nix
+++ b/nixos/tests/blint.nix
@@ -14,7 +14,7 @@
]
++ teams.ngi.members;
- nodes.machine = {
+ containers.machine = {
environment.systemPackages = with pkgs; [
blint
jq
diff --git a/nixos/tests/bluesky-pds.nix b/nixos/tests/bluesky-pds.nix
index b74c74955f54..aa791a43c27b 100644
--- a/nixos/tests/bluesky-pds.nix
+++ b/nixos/tests/bluesky-pds.nix
@@ -2,7 +2,7 @@
{
name = "PDS";
- nodes.machine = {
+ containers.machine = {
services.bluesky-pds = {
enable = true;
settings = {
diff --git a/nixos/tests/boot.nix b/nixos/tests/boot.nix
index a59f94b94edf..ecc6240fc888 100644
--- a/nixos/tests/boot.nix
+++ b/nixos/tests/boot.nix
@@ -203,11 +203,26 @@ in
makeTest {
name = "boot-uboot-extlinux";
nodes = { };
- testScript = ''
- import os
+ testScript = /* py */ ''
+ import subprocess
# Create a mutable linked image backed by the read-only SD image
- if os.system("${pkgs.qemu}/bin/qemu-img create -f qcow2 -F raw -b ${sdImage} ${mutableImage}") != 0:
+ if (
+ subprocess.run(
+ [
+ "${pkgs.qemu}/bin/qemu-img",
+ "create",
+ "-f",
+ "qcow2",
+ "-F",
+ "raw",
+ "-b",
+ "${sdImage}",
+ "${mutableImage}",
+ ]
+ ).returncode
+ != 0
+ ):
raise RuntimeError("Could not create mutable linked image")
machine = create_machine("${startCommand}")
diff --git a/nixos/tests/ec2-image.nix b/nixos/tests/ec2-image.nix
index df07d14b8ba7..b711ceadc2d5 100644
--- a/nixos/tests/ec2-image.nix
+++ b/nixos/tests/ec2-image.nix
@@ -135,7 +135,17 @@ in
public_key = os.path.join(key_dir, "id_ed25519.pub")
# Generate key pair using host SSH tools
- ret = os.system(f"${hostPkgs.openssh}/bin/ssh-keygen -t ed25519 -f {private_key} -N \"\"")
+ ret = subprocess.run(
+ [
+ "${hostPkgs.openssh}/bin/ssh-keygen",
+ "-t",
+ "ed25519",
+ "-f",
+ private_key,
+ "-N",
+ ""
+ ]
+ ).returncode
if ret != 0:
raise Exception("Failed to generate SSH key pair")
diff --git a/nixos/tests/ghostunnel-modular.nix b/nixos/tests/ghostunnel-modular.nix
index bb4cef2a9f08..7fa301168a46 100644
--- a/nixos/tests/ghostunnel-modular.nix
+++ b/nixos/tests/ghostunnel-modular.nix
@@ -54,13 +54,13 @@
};
testScript = ''
- import os
+ import subprocess
# prepare certificates
def cmd(command):
print(f"+{command}")
- r = os.system(command)
+ r = subprocess.run(command, shell=True).returncode
if r != 0:
raise Exception(f"Command {command} failed with exit code {r}")
diff --git a/nixos/tests/ghostunnel.nix b/nixos/tests/ghostunnel.nix
index acd9c4331835..58749591ffbc 100644
--- a/nixos/tests/ghostunnel.nix
+++ b/nixos/tests/ghostunnel.nix
@@ -48,13 +48,13 @@
};
testScript = ''
- import os
+ import subprocess
# prepare certificates
def cmd(command):
print(f"+{command}")
- r = os.system(command)
+ r = subprocess.run(command, shell=True).returncode
if r != 0:
raise Exception(f"Command {command} failed with exit code {r}")
diff --git a/nixos/tests/haproxy.nix b/nixos/tests/haproxy.nix
index 107010528737..20bcd700bb58 100644
--- a/nixos/tests/haproxy.nix
+++ b/nixos/tests/haproxy.nix
@@ -69,12 +69,12 @@
};
};
testScript = ''
- import os
+ import subprocess
# Helpers
def cmd(command):
print(f"+{command}")
- r = os.system(command)
+ r = subprocess.run(command, shell=True).returncode
if r != 0:
raise Exception(f"Command {command} failed with exit code {r}")
diff --git a/nixos/tests/matter-server.nix b/nixos/tests/matter-server.nix
index 5aeffaa97b42..ca4d55a161ce 100644
--- a/nixos/tests/matter-server.nix
+++ b/nixos/tests/matter-server.nix
@@ -1,7 +1,7 @@
{ pkgs, lib, ... }:
let
- chipVersion = pkgs.python311Packages.home-assistant-chip-core.version;
+ chipVersion = pkgs.python3Packages.home-assistant-chip-core.version;
in
{
diff --git a/nixos/tests/nordvpn.nix b/nixos/tests/nordvpn.nix
new file mode 100644
index 000000000000..59af7c54660f
--- /dev/null
+++ b/nixos/tests/nordvpn.nix
@@ -0,0 +1,129 @@
+{ lib, ... }:
+{
+ name = "nordvpn";
+ meta.maintainers = with lib.maintainers; [ different-error ];
+ nodes =
+ let
+ commonConfig = user: {
+ # norduserd reads DBUS_SESSION_BUS_ADDRESS which the
+ # desktopManager sets on user session creation (i.e. login)
+ services.xserver.enable = true;
+ services.desktopManager.plasma6.enable = true;
+ services.displayManager.gdm.enable = true;
+ services.displayManager.autoLogin = {
+ enable = true;
+ user = user;
+ };
+ };
+ in
+ {
+ nada = { ... }: { };
+ basic =
+ { ... }:
+ lib.recursiveUpdate {
+ users.users.alice = {
+ extraGroups = [ "nordvpn" ];
+ isNormalUser = true;
+ };
+ # default: run nordvpnd as nordvpn:nordvpn
+ services.nordvpn.enable = true;
+ } (commonConfig "alice");
+ userOnly =
+ { ... }:
+ lib.recursiveUpdate {
+ users.users.kanye = {
+ extraGroups = [ "nordvpn" ];
+ isNormalUser = true;
+ };
+ # run nordvpnd as kanye:nordvpn
+ services.nordvpn = {
+ enable = true;
+ user = "kanye";
+ };
+ } (commonConfig "kanye");
+ groupOnly =
+ { ... }:
+ lib.recursiveUpdate {
+ users.users.alice = {
+ extraGroups = [ "kanye" ];
+ isNormalUser = true;
+ };
+ users.groups.kanye = { };
+ # run nordvpnd as nordvpn:kanye
+ services.nordvpn = {
+ enable = true;
+ group = "kanye";
+ };
+ } (commonConfig "alice");
+ userAndGroup =
+ { ... }:
+ lib.recursiveUpdate {
+ users.users.kanye = {
+ group = "kanye";
+ isNormalUser = true;
+ };
+ users.groups.kanye = { };
+ # run nordvpnd as kanye:kanye
+ services.nordvpn = {
+ enable = true;
+ group = "kanye";
+ user = "kanye";
+ };
+ } (commonConfig "kanye");
+ };
+
+ testScript = ''
+ class UserGroupTestCase:
+ def __init__(self, machine, user, has_nordvpn_usr, has_nordvpn_gp):
+ self.machine = machine
+ self.user = user
+ self.has_nordvpn_usr = has_nordvpn_usr
+ self.has_nordvpn_gp = has_nordvpn_gp
+
+ def run(self):
+ self.machine.start()
+ self.verify_nordvpn_user()
+ self.verify_nordvpn_group()
+ self.verify_services()
+ self.machine.shutdown()
+
+ def verify_nordvpn_user(self):
+ if self.has_nordvpn_usr:
+ self.machine.succeed("id nordvpn")
+ else:
+ self.machine.fail("id nordvpn")
+
+ def verify_nordvpn_group(self):
+ group_str = self.machine.succeed(f"sudo -u {self.user} groups")
+ groups = [x.strip() for x in group_str.split(" ")]
+ if self.has_nordvpn_gp:
+ assert "nordvpn" in groups, f"nordvpn is not in {groups} but should be"
+ else:
+ assert "nordvpn" not in groups, f"nordvpn is in {groups} but should not be"
+
+ def verify_services(self):
+ self.machine.wait_for_unit("nordvpnd", timeout=60)
+ self.machine.wait_for_unit("norduserd", self.user, timeout=90)
+ # verify can talk to nordvpnd. give nordvpnd at most 5s to initialize.
+ self.machine.wait_until_succeeds("nordvpn status", timeout=5)
+ self.machine.succeed("nordvpn status")
+
+ test_cases = [
+ UserGroupTestCase(basic, "alice", has_nordvpn_usr=True, has_nordvpn_gp=True),
+ UserGroupTestCase(userOnly, "kanye", has_nordvpn_usr=False, has_nordvpn_gp=True),
+ UserGroupTestCase(groupOnly, "alice", has_nordvpn_usr=True, has_nordvpn_gp=False),
+ UserGroupTestCase(userAndGroup, "kanye", has_nordvpn_usr=False, has_nordvpn_gp=False),
+ ]
+
+ # NADA
+ nada.start()
+ nada.wait_for_unit("multi-user.target", timeout=60)
+ nada.fail("nordvpnd")
+ nada.fail("nordvpn")
+ nada.fail("norduserd")
+ nada.shutdown()
+
+ for test_case in test_cases:
+ test_case.run()
+ '';
+}
diff --git a/nixos/tests/slipshow.nix b/nixos/tests/slipshow.nix
index abbbc6361e88..c8bd4158af5b 100644
--- a/nixos/tests/slipshow.nix
+++ b/nixos/tests/slipshow.nix
@@ -8,7 +8,7 @@
meta.maintainers = with lib.maintainers; [ ethancedwards8 ];
- nodes.machine = {
+ containers.machine = {
environment.systemPackages = with pkgs; [ slipshow ];
environment.etc."slipshow".source = pkgs.fetchFromGitHub {
diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/applications/editors/jetbrains/ides/webstorm.nix
index 637302db7639..0e35c48c293b 100644
--- a/pkgs/applications/editors/jetbrains/ides/webstorm.nix
+++ b/pkgs/applications/editors/jetbrains/ides/webstorm.nix
@@ -12,20 +12,20 @@ let
# update-script-start: urls
urls = {
x86_64-linux = {
- url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.3.tar.gz";
- hash = "sha256-lryIoVxoytyDyfgjnobQ3e94wIIohmIKL88fwf2I49w=";
+ url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4.tar.gz";
+ hash = "sha256-BPuMTwZ3Xkk4SBRCdgZ8vCoEYjhTa3d8CFOqrGlcGg0=";
};
aarch64-linux = {
- url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.3-aarch64.tar.gz";
- hash = "sha256-oZQaxpVV0O4WlDE6Ia+KzHIF0SfWQBubBFIopSRMbvE=";
+ url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4-aarch64.tar.gz";
+ hash = "sha256-f9KenMq1gtldzpBraSBwOb/186WQwh1ps5Ypj5JoOU0=";
};
x86_64-darwin = {
- url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.3.dmg";
- hash = "sha256-KUcQRWYUD/+4HHWnkGuqoltqL2an0WQkUEfUcttwjCI=";
+ url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4.dmg";
+ hash = "sha256-SGdo6WYMCcCBuZUjvURcMTbJUqhZ4MzFlSLg6Zjr84I=";
};
aarch64-darwin = {
- url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.3-aarch64.dmg";
- hash = "sha256-1N1RtN1QLvuJ1QL8jbN5TdbOHAHSN84W9XEK2PEPijI=";
+ url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4-aarch64.dmg";
+ hash = "sha256-ZYen6Ew0GYbBAmuGCDACPBsygxZ6sT787o6gqF9DJzw=";
};
};
# update-script-end: urls
@@ -39,8 +39,8 @@ mkJetBrainsProduct {
product = "WebStorm";
# update-script-start: version
- version = "2026.1.3";
- buildNumber = "261.25134.101";
+ version = "2026.1.4";
+ buildNumber = "261.26222.58";
# update-script-end: version
src = fetchurl (urls.${system} or (throw "Unsupported system: ${system}"));
diff --git a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix
index e6d1da26f2ca..f547aec1465c 100644
--- a/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/anthropic.claude-code/default.nix
@@ -21,26 +21,26 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
sources = {
"x86_64-linux" = {
arch = "linux-x64";
- hash = "sha256-OY34TyyPj0Vjc6rLdR7uaVYsgmCXQFTS/1+QLA9pGgk=";
+ hash = "sha256-QxZa6ugaMC7otLQmDZU54Fv3OGMNYO5iyjqjCLDNdbI=";
};
"aarch64-linux" = {
arch = "linux-arm64";
- hash = "sha256-A8CrNx6GfFmaFWe1Awck/2B0VuJhNX6HHI5YNSG1qVo=";
+ hash = "sha256-lgE5dld8lvt/dyGVNjR1ZiV2qtBu9pMZayNe5dBfHo0=";
};
"x86_64-darwin" = {
arch = "darwin-x64";
- hash = "sha256-egXg308OJWvMyMqLHiANNEIGCSza/yKPFIqWq1X6JdE=";
+ hash = "sha256-AnqO7aZ3uybYnAHYCi5ppZ/5xOuiTqs+75TflN7bVow=";
};
"aarch64-darwin" = {
arch = "darwin-arm64";
- hash = "sha256-BmI7NTlKUVMnTBS8nf2jqYYSA+LT3qP9Yu5gQIv7Mxo=";
+ hash = "sha256-KKuUXjfIsngnKrSLTMYNzb6XVZkJszUwIihCGHQJ0gU=";
};
};
in
{
name = "claude-code";
publisher = "anthropic";
- version = "2.1.206";
+ version = "2.1.207";
}
// sources.${stdenvNoCC.hostPlatform.system}
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 58c011dda03d..de3ec7a5475f 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1007,8 +1007,8 @@ let
mktplcRef = {
name = "coder-remote";
publisher = "coder";
- version = "1.15.0";
- hash = "sha256-Nw1aXRIJI6kBJl3yp2hripZLf+wIecb8gmIjT5zVBjk=";
+ version = "1.15.2";
+ hash = "sha256-mBACvGUQF3LoaFJ9MIewN9zu4jDTWfUgyd1MQvZQUvk=";
};
meta = {
description = "Extension for Visual Studio Code to open any Coder workspace in VS Code with a single click";
@@ -1346,8 +1346,8 @@ let
mktplcRef = {
publisher = "discloud";
name = "discloud";
- version = "2.29.7";
- hash = "sha256-l0CTWC16Aw2u8uob5tKauYIT3KaDsptV/L8WR54eN64=";
+ version = "2.29.8";
+ hash = "sha256-dvyIdixtmg5ZTo/REB/E5QlHJu2xZ+Ui5qwJegoHTfk=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/discloud.discloud/changelog";
diff --git a/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix b/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix
index 19ebc0b3efb4..5ebaa79fb71b 100644
--- a/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/detachhead.basedpyright/default.nix
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "basedpyright";
publisher = "detachhead";
- version = "1.39.8";
- hash = "sha256-MiCa1OuLvXYC5HmXNzM7LCL72weG40tDTgLWWl9Kxug=";
+ version = "1.39.9";
+ hash = "sha256-Iycuj7EXzRwVgvpk0KXa3dNw2rL21DnG4ohqIExS6Go=";
};
meta = {
changelog = "https://github.com/detachhead/basedpyright/releases";
diff --git a/pkgs/applications/emulators/libretro/cores/dosbox-pure.nix b/pkgs/applications/emulators/libretro/cores/dosbox-pure.nix
index c86912e97cb3..f30232317025 100644
--- a/pkgs/applications/emulators/libretro/cores/dosbox-pure.nix
+++ b/pkgs/applications/emulators/libretro/cores/dosbox-pure.nix
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "dosbox-pure";
- version = "0-unstable-2026-06-26";
+ version = "0-unstable-2026-07-06";
src = fetchFromGitHub {
owner = "schellingb";
repo = "dosbox-pure";
- rev = "424f2dfd6d08c587020857421b89a5d9acda4beb";
- hash = "sha256-QkHgLWW+gk106wNeF5bKYsA4e6IKPiXakWb92AImRQc=";
+ rev = "d137f0cacff196fb44a2783ecbc6e8ddb3e57cfc";
+ hash = "sha256-4KPYwvtVLrzZcn3LYqSWmP+qWFjtNsCjrVY/L93/ZOE=";
};
hardeningDisable = [ "format" ];
diff --git a/pkgs/applications/emulators/libretro/cores/gambatte.nix b/pkgs/applications/emulators/libretro/cores/gambatte.nix
index edab66c09021..54cbf0bc890b 100644
--- a/pkgs/applications/emulators/libretro/cores/gambatte.nix
+++ b/pkgs/applications/emulators/libretro/cores/gambatte.nix
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "gambatte";
- version = "0-unstable-2026-06-19";
+ version = "0-unstable-2026-07-03";
src = fetchFromGitHub {
owner = "libretro";
repo = "gambatte-libretro";
- rev = "4832d33cc3427ee0a1c1b9065339dd18ff57370d";
- hash = "sha256-qn3zYecSmQjQV1f0Aw6+zVEQttMSHsrNQuMFbsDyKC8=";
+ rev = "dfc165599f3f1068c40a0b7ad6fe5f161283d483";
+ hash = "sha256-a7GXw0B/ekIcNl08s1DpuRQZyxm4tYGWzNVVBTjXeOk=";
};
meta = {
diff --git a/pkgs/applications/emulators/libretro/cores/play.nix b/pkgs/applications/emulators/libretro/cores/play.nix
index f777c18941ff..26b3d48ea660 100644
--- a/pkgs/applications/emulators/libretro/cores/play.nix
+++ b/pkgs/applications/emulators/libretro/cores/play.nix
@@ -14,13 +14,13 @@
}:
mkLibretroCore {
core = "play";
- version = "0-unstable-2026-06-22";
+ version = "0-unstable-2026-07-11";
src = fetchFromGitHub {
owner = "jpd002";
repo = "Play-";
- rev = "1e4f393f3c52581cdec7867ddadc47f6b4d20cec";
- hash = "sha256-a02AsJg7mm/fUBN/5IC2Q6NexLYsBYp74bfqfJosaxc=";
+ rev = "50aedca2639521bc498ace0b2be1ea012801a86a";
+ hash = "sha256-ywqwy8HwxigRG/2GfvfpewNjTIeunXH9NtyAH5iUfa8=";
fetchSubmodules = true;
};
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index ecd3d377729e..c48d47e8b89c 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -54,13 +54,13 @@
"vendorHash": "sha256-sESuNlWNyjjGYb7z+tQF7RGBgicnPISuwXRzB+QJ7E4="
},
"aminueza_minio": {
- "hash": "sha256-DfpZjIkjo5bEZ2BtHJoBLtjEDAD6ZiqpoCOMbmd1Jvo=",
+ "hash": "sha256-4b5K2Hyy26euJct1/0dxC39DMM41W6+jdJS68/d4yCw=",
"homepage": "https://registry.terraform.io/providers/aminueza/minio",
"owner": "aminueza",
"repo": "terraform-provider-minio",
- "rev": "v3.38.1",
+ "rev": "v3.38.3",
"spdx": "AGPL-3.0",
- "vendorHash": "sha256-OLabFXYTe+Yhlf0Ja63tCcrc5mvPeXfN7yLoRZCkdvg="
+ "vendorHash": "sha256-se32x/vxIRiAewIIUZb/wR9eB6sDpDzN3n7OS5m8t5g="
},
"argoproj-labs_argocd": {
"hash": "sha256-c6+WY4oXL8evvPk/RzVrwtgq4XLB/LzAH5tpjErbE60=",
@@ -283,13 +283,13 @@
"vendorHash": "sha256-3o6YRDrq4rQhNAFyqiGJrAoxuAykWw85OExRGSE3kGI="
},
"datadog_datadog": {
- "hash": "sha256-pTtEKgxh17Oi41oqgBrtUCsriRMfRew30kLjbOdM9jo=",
+ "hash": "sha256-PmzUO8mCYQRYWI0MxFqVua+laKybLAFgeW9+9HZ/7A8=",
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
"owner": "DataDog",
"repo": "terraform-provider-datadog",
- "rev": "v4.13.0",
+ "rev": "v4.15.0",
"spdx": "MPL-2.0",
- "vendorHash": "sha256-GRxcI8+3uarErfVhzoz+Iku3mCmY9XfriDZZX0wSI5s="
+ "vendorHash": "sha256-G3lkLzLo31XGDyTgprHd7LbbOaAGRvq9LTIth2vnH00="
},
"datadrivers_nexus": {
"hash": "sha256-gwExaFhOoJFrAhH91oZEp1AFvI7kgWekp655zd4tyd8=",
@@ -508,13 +508,13 @@
"vendorHash": "sha256-ikBqIxD5aTOcwNHCMN6EaOwSHCAP5n/SULuqQXPLpOc="
},
"hashicorp_aws": {
- "hash": "sha256-710i6mRyieTzltcaC23OXZm8mtqjyOc5Fk9fmcqkXY4=",
+ "hash": "sha256-876U9ojKfnJCRKaTFhW9NvBQ6fvTpC0NYE+fhwkCwk8=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
- "rev": "v6.52.0",
+ "rev": "v6.54.0",
"spdx": "MPL-2.0",
- "vendorHash": "sha256-COWHnLR6aRwcGJVo6IFvqQLwAYxFpqUGQbZVvEo/b/I="
+ "vendorHash": "sha256-lxxSwaBXrl2xrZJ+OHrCBvHKmsq3D9Om7/Y0zPaYIQg="
},
"hashicorp_awscc": {
"hash": "sha256-z1wns0zuanfoeIb7CDRBtt4CoRQ4+b5PNKpmDbfyHd0=",
@@ -706,11 +706,11 @@
"vendorHash": "sha256-47xWjlzpQ/EYzjbuuMKQiu5cfYAXdYkXRl+AOEP+sA4="
},
"heroku_heroku": {
- "hash": "sha256-hR4DvSneqG/5P4tYljcuFxQ34AnDIjIt+JMn1BhloeU=",
+ "hash": "sha256-AmHgAlz4J3l9OCjUMVxLMWtKZB1LpNOyX1exUI6fWHA=",
"homepage": "https://registry.terraform.io/providers/heroku/heroku",
"owner": "heroku",
"repo": "terraform-provider-heroku",
- "rev": "v5.3.2",
+ "rev": "v5.4.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -760,13 +760,13 @@
"vendorHash": null
},
"integrations_github": {
- "hash": "sha256-OpuKe7/Ymr46J41zgYdk1Qet+trEGTafl6TM23PV1lA=",
+ "hash": "sha256-2y25AE4iLckdvvFv+vPRdl2wLCPlUnK2Xc73m0qVyxc=",
"homepage": "https://registry.terraform.io/providers/integrations/github",
"owner": "integrations",
"repo": "terraform-provider-github",
- "rev": "v6.12.1",
+ "rev": "v6.13.0",
"spdx": "MIT",
- "vendorHash": "sha256-qzyV/rgQ79XvoTBRjjIsPFfqAXLROiIAlY7Y/d8SYcM="
+ "vendorHash": "sha256-crDSVC0UvJ8fXoKwSgyFWHivwOA9XRO7dXoEOYLPZTo="
},
"jfrog_artifactory": {
"hash": "sha256-BSUOmqHwnDEYojtwTXBWo9oGG2FbgaODUKClZPCaK/I=",
@@ -1319,11 +1319,11 @@
"vendorHash": "sha256-7ZoJg1HEVj5Nygr46lmBZeJDfZuU4F90yntrgkBVgGg="
},
"tencentcloudstack_tencentcloud": {
- "hash": "sha256-tADmls3GAmR3S5wdasoHrBYOtZTVXDS2alZD6Mzfo4M=",
+ "hash": "sha256-1UBML3E5ZnOcsdGZlZ5qkaqQsE1+Q9Uw9R8FeWJXFSw=",
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
"owner": "tencentcloudstack",
"repo": "terraform-provider-tencentcloud",
- "rev": "v1.83.7",
+ "rev": "v1.83.10",
"spdx": "MPL-2.0",
"vendorHash": null
},
@@ -1427,13 +1427,13 @@
"vendorHash": null
},
"vancluever_acme": {
- "hash": "sha256-AlT7Qe4YGdPUhM1N4OiMyjbmupgqXcQ/6SLz/v+W8lI=",
+ "hash": "sha256-CziwRMh53FPGhXw/TFWJUuI3KtMlwobCVNOgfRyjRLA=",
"homepage": "https://registry.terraform.io/providers/vancluever/acme",
"owner": "vancluever",
"repo": "terraform-provider-acme",
- "rev": "v2.48.1",
+ "rev": "v2.48.3",
"spdx": "MPL-2.0",
- "vendorHash": "sha256-lWBMihP6oX7qPpTuPQQwQS3IDwdyb/rEYqtBsTozb7Q="
+ "vendorHash": "sha256-I6u4huFtk7dXmSyPRX4NxvcUJ4Q2iKuw8qzCdNzYjoQ="
},
"venafi_venafi": {
"hash": "sha256-tCjeApdanKPNEy7snb6QJoCvwjpNa2fdDryoD+7wn8Y=",
diff --git a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix
index 7472cc1155db..e1072e07d6ea 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/telegram-desktop/unwrapped.nix
@@ -34,6 +34,7 @@
libjxl,
libicns,
apple-sdk_15,
+ llvmPackages,
nix-update-script,
}:
@@ -67,6 +68,11 @@ stdenv.mkDerivation (finalAttrs: {
# to build bundled libdispatch
clang
gobject-introspection
+ ]
+ # Work around ld64's libc++ hardening issue causing Trace/BPT trap: 5
+ # TODO: Remove once nixpkgs#536365 reaches this branch.
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ llvmPackages.lld
];
buildInputs = [
@@ -102,6 +108,12 @@ stdenv.mkDerivation (finalAttrs: {
dontWrapQtApps = true;
+ # Work around ld64's libc++ hardening issue causing Trace/BPT trap: 5
+ # TODO: Remove once nixpkgs#536365 reaches this branch.
+ env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
+ NIX_CFLAGS_LINK = "-fuse-ld=lld";
+ };
+
cmakeFlags = [
# We're allowed to used the API ID of the Snap package:
(lib.cmakeFeature "TDESKTOP_API_ID" "611335")
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index cee47f70a062..aedee50cefef 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -79,7 +79,7 @@ let
};
releaseRev = v: "V${v}";
fetched =
- import ../../../../build-support/coq/meta-fetch/default.nix
+ import ../../../../build-support/rocq/meta-fetch/default.nix
{
inherit
lib
diff --git a/pkgs/applications/science/logic/rocq-core/default.nix b/pkgs/applications/science/logic/rocq-core/default.nix
index 6f1c384d005f..a6501daaaa3f 100644
--- a/pkgs/applications/science/logic/rocq-core/default.nix
+++ b/pkgs/applications/science/logic/rocq-core/default.nix
@@ -32,7 +32,7 @@ let
};
releaseRev = v: "V${v}";
fetched =
- import ../../../../build-support/coq/meta-fetch/default.nix
+ import ../../../../build-support/rocq/meta-fetch/default.nix
{
inherit
lib
diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix
deleted file mode 100644
index 3c9670f4f65e..000000000000
--- a/pkgs/build-support/coq/default.nix
+++ /dev/null
@@ -1,246 +0,0 @@
-{
- lib,
- stdenv,
- coqPackages,
- coq,
- which,
- fetchzip,
- fetchurl,
- dune,
-}@args:
-
-let
- lib = import ./extra-lib.nix {
- inherit (args) lib;
- };
-
- inherit (lib)
- concatStringsSep
- flip
- foldl
- isFunction
- isString
- optional
- optionalAttrs
- optionals
- optionalString
- pred
- remove
- switch
- versions
- ;
-
- inherit (lib.attrsets) removeAttrs;
- inherit (lib.strings) match;
-
- isGitHubDomain = d: match "^github.*" d != null;
- isGitLabDomain = d: match "^gitlab.*" d != null;
-in
-
-{
- pname,
- version ? null,
- fetcher ? null,
- owner ? "rocq-community",
- domain ? "github.com",
- repo ? pname,
- defaultVersion ? null,
- releaseRev ? (v: v),
- displayVersion ? { },
- release ? { },
- buildInputs ? [ ],
- nativeBuildInputs ? [ ],
- extraBuildInputs ? [ ],
- extraNativeBuildInputs ? [ ],
- overrideBuildInputs ? [ ],
- overrideNativeBuildInputs ? [ ],
- namePrefix ? [ "coq" ],
- enableParallelBuilding ? true,
- extraInstallFlags ? [ ],
- setCOQBIN ? true,
- mlPlugin ? false,
- useMelquiondRemake ? null,
- dropAttrs ? [ ],
- keepAttrs ? [ ],
- dropDerivationAttrs ? [ ],
- useDuneifVersion ? (x: false),
- useDune ? false,
- opam-name ? (concatStringsSep "-" (namePrefix ++ [ pname ])),
- ...
-}@args:
-let
- args-to-remove = foldl (flip remove) (
- [
- "version"
- "fetcher"
- "repo"
- "owner"
- "domain"
- "releaseRev"
- "displayVersion"
- "defaultVersion"
- "useMelquiondRemake"
- "release"
- "buildInputs"
- "nativeBuildInputs"
- "extraBuildInputs"
- "extraNativeBuildInputs"
- "overrideBuildInputs"
- "overrideNativeBuildInputs"
- "namePrefix"
- "meta"
- "useDuneifVersion"
- "useDune"
- "opam-name"
- "extraInstallFlags"
- "setCOQBIN"
- "mlPlugin"
- "dropAttrs"
- "dropDerivationAttrs"
- "keepAttrs"
- "env"
- ]
- ++ dropAttrs
- ) keepAttrs;
- fetch =
- import ../coq/meta-fetch/default.nix
- {
- inherit
- lib
- stdenv
- fetchzip
- fetchurl
- ;
- }
- (
- {
- inherit release releaseRev;
- location = { inherit domain owner repo; };
- }
- // optionalAttrs (args ? fetcher) { inherit fetcher; }
- );
- fetched = fetch (if version != null then version else defaultVersion);
- display-pkg =
- n: sep: v:
- let
- d = displayVersion.${n} or (if sep == "" then ".." else true);
- in
- n
- + optionalString (v != "" && v != null) (
- switch d [
- {
- case = true;
- out = sep + v;
- }
- {
- case = ".";
- out = sep + versions.major v;
- }
- {
- case = "..";
- out = sep + versions.majorMinor v;
- }
- {
- case = "...";
- out = sep + versions.majorMinorPatch v;
- }
- {
- case = isFunction;
- out = optionalString (d v != "") (sep + d v);
- }
- {
- case = isString;
- out = optionalString (d != "") (sep + d);
- }
- ] ""
- )
- + optionalString (v == null) "-broken";
- append-version = p: n: p + display-pkg n "" coqPackages.${n}.version + "-";
- prefix-name = foldl append-version "" namePrefix;
- useDune = args.useDune or (useDuneifVersion fetched.version);
- coqlib-flags = [
- "COQLIBINSTALL=$(out)/lib/coq/${coq.coq-version}/user-contrib"
- "COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)"
- ];
- docdir-flags = [ "COQDOCINSTALL=$(out)/share/coq/${coq.coq-version}/user-contrib" ];
- COQUSERCONTRIB = "$out/lib/coq/${coq.coq-version}/user-contrib";
-in
-stdenv.mkDerivation (
- removeAttrs (
- {
-
- name = prefix-name + (display-pkg pname "-" fetched.version);
-
- inherit (fetched) version src;
-
- nativeBuildInputs =
- args.overrideNativeBuildInputs or (
- [ which ]
- ++ optional useDune dune
- ++ optionals (useDune || mlPlugin) [
- coq.ocamlPackages.ocaml
- coq.ocamlPackages.findlib
- ]
- ++ (args.nativeBuildInputs or [ ])
- ++ extraNativeBuildInputs
- );
- buildInputs =
- args.overrideBuildInputs or ([ coq ] ++ (args.buildInputs or [ ]) ++ extraBuildInputs);
- inherit enableParallelBuilding;
-
- env =
- optionalAttrs setCOQBIN {
- COQBIN = "${coq}/bin/";
- }
- // optionalAttrs (args ? useMelquiondRemake) {
- inherit COQUSERCONTRIB;
- }
- // (args.env or { });
-
- meta =
- (
- {
- platforms = coq.meta.platforms;
- }
- // (switch domain [
- {
- case = pred.union isGitHubDomain isGitLabDomain;
- out = {
- homepage = "https://${domain}/${owner}/${repo}";
- };
- }
- ] { })
- // optionalAttrs (fetched.broken or false) {
- coqFilter = true;
- broken = true;
- }
- )
- // (args.meta or { });
-
- }
- // (optionalAttrs (!args ? installPhase && !args ? useMelquiondRemake) {
- installFlags = coqlib-flags ++ docdir-flags ++ extraInstallFlags;
- })
- // (optionalAttrs useDune {
- buildPhase = ''
- runHook preBuild
- dune build -p ${opam-name} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
- runHook postBuild
- '';
- installPhase = ''
- runHook preInstall
- dune install --prefix=$out --libdir $OCAMLFIND_DESTDIR ${opam-name}
- mkdir $out/lib/coq/
- mv $OCAMLFIND_DESTDIR/coq $out/lib/coq/${coq.coq-version}
- runHook postInstall
- '';
- })
- // (optionalAttrs (args ? useMelquiondRemake) {
- preConfigurePhases = [ "autoconf" ];
- configureFlags = [ "--libdir=${COQUSERCONTRIB}/${useMelquiondRemake.logpath or ""}" ];
- buildPhase = "./remake -j$NIX_BUILD_CORES";
- installPhase = "./remake install";
- })
- // (removeAttrs args args-to-remove)
- ) dropDerivationAttrs
-)
diff --git a/pkgs/build-support/rocq/default.nix b/pkgs/build-support/rocq/default.nix
index 7a7c5fba7b25..68181efcfb44 100644
--- a/pkgs/build-support/rocq/default.nix
+++ b/pkgs/build-support/rocq/default.nix
@@ -3,15 +3,16 @@
stdenv,
rocqPackages,
rocq-core,
+ coq,
which,
fetchzip,
fetchurl,
dune,
-}@args:
+}@args0:
let
lib = import ./extra-lib.nix {
- inherit (args) lib;
+ inherit (args0) lib;
};
inherit (lib)
@@ -66,6 +67,8 @@ in
useDuneifVersion ? (x: false),
useDune ? false,
opam-name ? (concatStringsSep "-" (namePrefix ++ [ pname ])),
+ useCoq ? false,
+ useCoqifVersion ? (x: false),
...
}@args:
let
@@ -99,11 +102,13 @@ let
"dropDerivationAttrs"
"keepAttrs"
"env"
+ "useCoq"
+ "useCoqifVersion"
]
++ dropAttrs
) keepAttrs;
fetch =
- import ../coq/meta-fetch/default.nix
+ import ../rocq/meta-fetch/default.nix
{
inherit
lib
@@ -158,6 +163,8 @@ let
append-version = p: n: p + display-pkg n "" rocqPackages.${n}.version + "-";
prefix-name = foldl append-version "" namePrefix;
useDune = args.useDune or (useDuneifVersion fetched.version);
+ useCoq = args.useCoq or (useCoqifVersion fetched.version);
+ rocq-core = if useCoq then coq // { rocq-version = coq.coq-version; } else args0.rocq-core;
rocqlib-flags = [
"COQLIBINSTALL=$(out)/lib/coq/${rocq-core.rocq-version}/user-contrib"
"COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)"
@@ -190,9 +197,10 @@ stdenv.mkDerivation (
inherit enableParallelBuilding;
env =
- optionalAttrs setROCQBIN {
+ optionalAttrs (setROCQBIN && !useCoq) {
ROCQBIN = "${rocq-core}/bin/";
}
+ // optionalAttrs (setROCQBIN && useCoq) { COQBIN = "${rocq-core}/bin/"; }
// optionalAttrs (args ? useMelquiondRemake) {
inherit COQUSERCONTRIB;
}
diff --git a/pkgs/build-support/coq/meta-fetch/default.nix b/pkgs/build-support/rocq/meta-fetch/default.nix
similarity index 100%
rename from pkgs/build-support/coq/meta-fetch/default.nix
rename to pkgs/build-support/rocq/meta-fetch/default.nix
diff --git a/pkgs/by-name/ac/ace-of-penguins/fix-wayland-segfault.patch b/pkgs/by-name/ac/ace-of-penguins/fix-wayland-segfault.patch
new file mode 100644
index 000000000000..0e2d0a63aee8
--- /dev/null
+++ b/pkgs/by-name/ac/ace-of-penguins/fix-wayland-segfault.patch
@@ -0,0 +1,16 @@
+diff --git a/lib/help.c b/lib/help.c
+--- a/lib/help.c
++++ b/lib/help.c
+@@ -177,8 +177,12 @@
+ for (i=0; i<17; i++)
+ {
+ if (!fonts[i])
+ fonts[i] = XLoadQueryFont(display, i & STYLE_TT ? "fixed" : "variable");
++ if (!fonts[i])
++ fonts[i] = XLoadQueryFont(display, "fixed");
++ if (!fonts[i])
++ return;
+ thin_space[i] = XTextWidth(fonts[i], " ", 1);
+ }
+ for (i=0; i
+Date: Sun, 12 Jul 2026 14:39:09 +0530
+Subject: [PATCH 1/3] fix: rm deprecated import
+ github.com/ncruces/go-sqlite3/embed
+
+Signed-off-by: phanirithvij
+---
+ internal/kvstore/sqlitekvstore.go | 1 -
+ internal/logstore/logstore.go | 1 -
+ internal/oplog/sqlitestore/sqlitestore.go | 1 -
+ 3 files changed, 3 deletions(-)
+
+diff --git a/internal/kvstore/sqlitekvstore.go b/internal/kvstore/sqlitekvstore.go
+index 9453228..e360a2c 100644
+--- a/internal/kvstore/sqlitekvstore.go
++++ b/internal/kvstore/sqlitekvstore.go
+@@ -8,7 +8,6 @@ import (
+ "strings"
+
+ _ "github.com/ncruces/go-sqlite3/driver"
+- _ "github.com/ncruces/go-sqlite3/embed"
+ )
+
+ var ErrNotExist = errors.New("key does not exist")
+diff --git a/internal/logstore/logstore.go b/internal/logstore/logstore.go
+index 48e0509..dd6ac17 100644
+--- a/internal/logstore/logstore.go
++++ b/internal/logstore/logstore.go
+@@ -17,7 +17,6 @@ import (
+
+ "github.com/hashicorp/go-multierror"
+ _ "github.com/ncruces/go-sqlite3/driver"
+- _ "github.com/ncruces/go-sqlite3/embed"
+ "go.uber.org/zap"
+ )
+
+diff --git a/internal/oplog/sqlitestore/sqlitestore.go b/internal/oplog/sqlitestore/sqlitestore.go
+index 41b12ac..08a53e0 100644
+--- a/internal/oplog/sqlitestore/sqlitestore.go
++++ b/internal/oplog/sqlitestore/sqlitestore.go
+@@ -27,7 +27,6 @@ import (
+
+ "github.com/gofrs/flock"
+ _ "github.com/ncruces/go-sqlite3/driver"
+- _ "github.com/ncruces/go-sqlite3/embed"
+ "github.com/ncruces/go-sqlite3/vfs"
+ "github.com/ncruces/go-sqlite3/vfs/memdb"
+ _ "github.com/ncruces/go-sqlite3/vfs/memdb"
+--
+2.54.0
+
diff --git a/pkgs/by-name/ba/backrest/0002-fix-exit-after-printing-version.patch b/pkgs/by-name/ba/backrest/0002-fix-exit-after-printing-version.patch
new file mode 100644
index 000000000000..d78462d64dde
--- /dev/null
+++ b/pkgs/by-name/ba/backrest/0002-fix-exit-after-printing-version.patch
@@ -0,0 +1,26 @@
+From 2d84683ee874d9f7ca506c61f810aaf4bdc06e63 Mon Sep 17 00:00:00 2001
+From: phanirithvij
+Date: Sun, 12 Jul 2026 15:12:39 +0530
+Subject: [PATCH 2/3] fix: exit after printing version
+
+Signed-off-by: phanirithvij
+---
+ cmd/backrest/backrest.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmd/backrest/backrest.go b/cmd/backrest/backrest.go
+index dd59512..9c0ca7e 100644
+--- a/cmd/backrest/backrest.go
++++ b/cmd/backrest/backrest.go
+@@ -58,7 +58,7 @@ func runApp() {
+ flag.Parse()
+ if *printVersion {
+ fmt.Printf("backrest version: %s, commit: %s\n", version, commit)
+- return
++ os.Exit(0)
+ }
+ installLoggers(version, commit)
+
+--
+2.54.0
+
diff --git a/pkgs/by-name/ba/backrest/0003-fix-quit-tray-on-graceful-shutdown.patch b/pkgs/by-name/ba/backrest/0003-fix-quit-tray-on-graceful-shutdown.patch
new file mode 100644
index 000000000000..6137bd5136b0
--- /dev/null
+++ b/pkgs/by-name/ba/backrest/0003-fix-quit-tray-on-graceful-shutdown.patch
@@ -0,0 +1,28 @@
+From 809a1e95a2d322ac2c00f95a274b639860d3b5bc Mon Sep 17 00:00:00 2001
+From: phanirithvij
+Date: Sun, 12 Jul 2026 16:07:29 +0530
+Subject: [PATCH 3/3] fix: quit tray on graceful shutdown
+
+---
+ cmd/backrest/tray.go | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/cmd/backrest/tray.go b/cmd/backrest/tray.go
+index 68db4f2..cca1b36 100644
+--- a/cmd/backrest/tray.go
++++ b/cmd/backrest/tray.go
+@@ -16,7 +16,10 @@ func startTray() {
+ status := newTrayStatus()
+ // Observe oplog status in-process so the icon can reflect backup state.
+ onOpLogReady = status.attach
+- go runApp()
++ go func() {
++ runApp()
++ systray.Quit()
++ }()
+ systray.Run(func() { onReady(status) }, func() {})
+ }
+
+--
+2.54.0
+
diff --git a/pkgs/by-name/ba/backrest/package.nix b/pkgs/by-name/ba/backrest/package.nix
index 0e79b0605e0d..9157c8e337a5 100644
--- a/pkgs/by-name/ba/backrest/package.nix
+++ b/pkgs/by-name/ba/backrest/package.nix
@@ -22,13 +22,13 @@ let
pnpm = pnpm_11;
pname = "backrest";
- version = "1.13.0";
+ version = "1.14.1";
src = fetchFromGitHub {
owner = "garethgeorge";
repo = "backrest";
tag = "v${version}";
- hash = "sha256-JcrHQDjoaaK6BONEcn6XKsjhGlth4SaZKqfxa3cD0gY=";
+ hash = "sha256-RxjPjvnKy8UM1OXRklJF/HSZ6FMiHWYQBsZ6owMJMF0=";
leaveDotGit = true;
postFetch = ''
cd "$out"
@@ -62,7 +62,7 @@ let
inherit pnpm;
sourceRoot = "${finalAttrs.src.name}/webui";
fetcherVersion = 4;
- hash = "sha256-xPZg7kYRlqdO/EfZr+m+IVhDcyYegQ6v8ZAF2EjrKjU=";
+ hash = "sha256-y6NYFPepibiTuvPMwyc5cN3TwAc2W7RtPbCmzWDozNQ=";
};
postPatch = ''
@@ -99,6 +99,15 @@ buildGoModule (finalAttrs: {
__structuredAttrs = true;
strictDeps = true;
+ patches = [
+ # https://github.com/garethgeorge/backrest/pull/1293
+ ./0001-fix-rm-deprecated-import-github.com-ncruces-go-sqlit.patch
+ # https://github.com/garethgeorge/backrest/pull/1294
+ ./0002-fix-exit-after-printing-version.patch
+ # https://github.com/garethgeorge/backrest/pull/1295
+ ./0003-fix-quit-tray-on-graceful-shutdown.patch
+ ];
+
postPatch = ''
sed -i -e \
'/func installRestic(targetPath string) error {/a\
@@ -107,7 +116,7 @@ buildGoModule (finalAttrs: {
'';
proxyVendor = true;
- vendorHash = "sha256-1PecXGXdSu4FzOKVZ15lTLLPy3VlLiGvGeTUDzqe9sc=";
+ vendorHash = "sha256-yadRulgtcDPthWLeTydcMol/vwriflKvDu7zgoehZCM=";
subPackages = [ "cmd/backrest" ];
@@ -116,6 +125,8 @@ buildGoModule (finalAttrs: {
makeBinaryWrapper
];
+ tags = [ "tray" ];
+
ldflags = [
"-s"
"-X main.version=${finalAttrs.version}"
@@ -164,6 +175,8 @@ buildGoModule (finalAttrs: {
postInstall = ''
wrapProgram $out/bin/backrest \
--set-default BACKREST_RESTIC_COMMAND "${lib.getExe restic}"
+ makeBinaryWrapper $out/bin/backrest $out/bin/backrest-tray \
+ --add-flags "-tray"
'';
doInstallCheck = true;
diff --git a/pkgs/by-name/bi/bisq1/package.nix b/pkgs/by-name/bi/bisq1/package.nix
index 8895ec305994..e5ca6ad35ec8 100644
--- a/pkgs/by-name/bi/bisq1/package.nix
+++ b/pkgs/by-name/bi/bisq1/package.nix
@@ -36,7 +36,10 @@
}:
let
- version = "1.10.2";
+ # This is separated into its own file so it's easier for `update.sh`.
+ sources = import ./sources.nix;
+
+ version = sources.version;
# JDK 21 is the toolchain required by docs/build.md. enableJavaFX is not
# strictly required (Bisq bundles its own JavaFX jars), but mirrors the
@@ -86,17 +89,17 @@ let
publicKey = {
"E222AA02" = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/E222AA02.asc";
- hash = "sha256-Ue/UmS6F440/ybEEIAR+pdPEIksAt6QSMN6G5TZVWzc=";
+ hash = sources."key-E222AA02-hash";
};
"4A133008" = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/4A133008.asc";
- hash = "sha256-UijG3DkJNNTakVJd2wl30mDepa27n6R/Xxfl4sjt0sk=";
+ hash = sources."key-4A133008-hash";
};
"387C8307" = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/387C8307.asc";
- hash = "sha256-PrRYZLT0xv82dUscOBgQGKNf6zwzWUDhriAffZbNpmI=";
+ hash = sources."key-387C8307-hash";
};
};
@@ -133,7 +136,7 @@ stdenv.mkDerivation (finalAttrs: {
src = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb";
- hash = "sha256-e7rPUhA6KF3Tz3zlYqEfM9G0owe9hAUFDifKseRvb6A=";
+ hash = sources."deb-hash";
# Verify the upstream Debian package's detached PGP signature prior to use.
# This ensures that a successful build of this Nix package requires the
@@ -158,7 +161,7 @@ stdenv.mkDerivation (finalAttrs: {
signature = fetchurl {
url = "https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb.asc";
- hash = "sha256-kBRaOXuP22DvXMkJ1XQatwvTmu/Ds8FvmUgYnRT7Vg0=";
+ hash = sources."sig-hash";
};
nativeBuildInputs = [
@@ -241,6 +244,8 @@ stdenv.mkDerivation (finalAttrs: {
runHook postInstall
'';
+ passthru.updateScript = ./update.sh;
+
meta = {
description = "Decentralized bitcoin exchange network (Bisq 1)";
homepage = "https://bisq.network";
diff --git a/pkgs/by-name/bi/bisq1/sources.nix b/pkgs/by-name/bi/bisq1/sources.nix
new file mode 100644
index 000000000000..8b9f276e8cf1
--- /dev/null
+++ b/pkgs/by-name/bi/bisq1/sources.nix
@@ -0,0 +1,9 @@
+# Generated by ./update.sh - do not update manually!
+{
+ version = "1.10.3";
+ deb-hash = "sha256-kzLtadq8gfX6j9XU3PD5kNV43wLDoICPlXdJqULkAWE=";
+ sig-hash = "sha256-+51j+SBp7buukop1T4Gz0YDUga6540BVxDRoU2YE3pY=";
+ key-E222AA02-hash = "sha256-Ue/UmS6F440/ybEEIAR+pdPEIksAt6QSMN6G5TZVWzc=";
+ key-4A133008-hash = "sha256-UijG3DkJNNTakVJd2wl30mDepa27n6R/Xxfl4sjt0sk=";
+ key-387C8307-hash = "sha256-PrRYZLT0xv82dUscOBgQGKNf6zwzWUDhriAffZbNpmI=";
+}
diff --git a/pkgs/by-name/bi/bisq1/update.sh b/pkgs/by-name/bi/bisq1/update.sh
new file mode 100755
index 000000000000..c162a4e6190b
--- /dev/null
+++ b/pkgs/by-name/bi/bisq1/update.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash --pure --keep GITHUB_TOKEN -p nix git curl cacert jq
+
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+# Fetch the latest release version from GitHub
+payload=$(curl -sL https://api.github.com/repos/bisq-network/bisq/releases/latest)
+version=$(jq -r .tag_name <<< "$payload" | sed 's/^v//')
+
+echo "Updating bisq1 to version $version"
+
+# URLs for the new version
+deb_url="https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb"
+sig_url="https://github.com/bisq-network/bisq/releases/download/v${version}/Bisq-64bit-${version}.deb.asc"
+
+# Fetch and compute hashes using nix-prefetch-url and convert to SRI format
+echo "Prefetching .deb package..."
+deb_hash_raw=$(nix-prefetch-url "$deb_url" 2>/dev/null)
+deb_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$deb_hash_raw")
+echo " deb hash: $deb_hash"
+
+echo "Prefetching signature..."
+sig_hash_raw=$(nix-prefetch-url "$sig_url" 2>/dev/null)
+sig_hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$sig_hash_raw")
+echo " signature hash: $sig_hash"
+
+# Fetch and compute hashes for public keys (these may not exist in all releases)
+get_key_hash() {
+ local key_name=$1
+ local url="https://github.com/bisq-network/bisq/releases/download/v${version}/${key_name}.asc"
+ local hash_raw
+ if hash_raw=$(nix-prefetch-url "$url" 2>/dev/null); then
+ nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$hash_raw"
+ else
+ echo "" # Return empty if key doesn't exist
+ fi
+}
+
+echo "Prefetching public keys..."
+key_E222AA02_hash=$(get_key_hash "E222AA02")
+if [ -n "$key_E222AA02_hash" ]; then
+ echo " E222AA02 hash: $key_E222AA02_hash"
+else
+ echo " E222AA02: not found in this release, keeping old hash"
+ key_E222AA02_hash=$(grep 'key-E222AA02-hash' sources.nix | sed 's/.*= "\(.*\)".*/\1/')
+fi
+
+key_4A133008_hash=$(get_key_hash "4A133008")
+if [ -n "$key_4A133008_hash" ]; then
+ echo " 4A133008 hash: $key_4A133008_hash"
+else
+ echo " 4A133008: not found in this release, keeping old hash"
+ key_4A133008_hash=$(grep 'key-4A133008-hash' sources.nix | sed 's/.*= "\(.*\)".*/\1/')
+fi
+
+key_387C8307_hash=$(get_key_hash "387C8307")
+if [ -n "$key_387C8307_hash" ]; then
+ echo " 387C8307 hash: $key_387C8307_hash"
+else
+ echo " 387C8307: not found in this release, keeping old hash"
+ key_387C8307_hash=$(grep 'key-387C8307-hash' sources.nix | sed 's/.*= "\(.*\)".*/\1/')
+fi
+
+# Write sources.nix (only include keys that exist)
+cat >sources.nix <= 1.122 but still ships @vscode/ripgrep.
+ # Capping the build-time vscodeVersion avoids modifying the notarized app bundle on Darwin.
+ vscodeVersion =
+ if lib.versionAtLeast sourcesJson.vscodeVersion "1.122.0" then
+ "1.121.0"
+ else
+ sourcesJson.vscodeVersion;
pname = "cursor";
diff --git a/pkgs/by-name/co/code-cursor/sources.json b/pkgs/by-name/co/code-cursor/sources.json
index 29774683e1bb..31ac9cbdd27f 100644
--- a/pkgs/by-name/co/code-cursor/sources.json
+++ b/pkgs/by-name/co/code-cursor/sources.json
@@ -1,22 +1,22 @@
{
- "version": "3.9.16",
- "vscodeVersion": "1.105.1",
+ "version": "3.11.13",
+ "vscodeVersion": "1.125.0",
"sources": {
"x86_64-linux": {
- "url": "https://downloads.cursor.com/production/042b3c1a4c53f2c3808067f519fbfc67b72cad8b/linux/x64/Cursor-3.9.16-x86_64.AppImage",
- "hash": "sha256-dG61VYGMHPip57ldzNICEi1yPc4s1dON+MlDGiKadKc="
+ "url": "https://downloads.cursor.com/production/3f21b08f0b436a07be29fbfe00b304fa15553353/linux/x64/Cursor-3.11.13-x86_64.AppImage",
+ "hash": "sha256-MXBXgGe7HXiL3kAMKxBSRTZxWMbh15D5dfXw6iemG9g="
},
"aarch64-linux": {
- "url": "https://downloads.cursor.com/production/042b3c1a4c53f2c3808067f519fbfc67b72cad8b/linux/arm64/Cursor-3.9.16-aarch64.AppImage",
- "hash": "sha256-7tkupyy8EFeOpzQqoHQsYxWQlFoW6VBpXkuCJsRIhRw="
+ "url": "https://downloads.cursor.com/production/3f21b08f0b436a07be29fbfe00b304fa15553353/linux/arm64/Cursor-3.11.13-aarch64.AppImage",
+ "hash": "sha256-UCjZFxXjzeovYrZWp6xrZGp+eH4uGo41Tl9Uj9q16W4="
},
"x86_64-darwin": {
- "url": "https://downloads.cursor.com/production/042b3c1a4c53f2c3808067f519fbfc67b72cad8b/darwin/x64/Cursor-darwin-x64.dmg",
- "hash": "sha256-5sAj/FiPAs1facGmNKgXiNzs1Kc1ht9eXYU1aZ1VoUA="
+ "url": "https://downloads.cursor.com/production/3f21b08f0b436a07be29fbfe00b304fa15553353/darwin/x64/Cursor-darwin-x64.dmg",
+ "hash": "sha256-FbSBuRaWKjTD7vdg0GvFsizmbpNvnNyzB6yAljMAtSs="
},
"aarch64-darwin": {
- "url": "https://downloads.cursor.com/production/042b3c1a4c53f2c3808067f519fbfc67b72cad8b/darwin/arm64/Cursor-darwin-arm64.dmg",
- "hash": "sha256-pnSsOvyFiBKJsPUPkfnSY1l+LEzz3g5kbepIco7dDIM="
+ "url": "https://downloads.cursor.com/production/3f21b08f0b436a07be29fbfe00b304fa15553353/darwin/arm64/Cursor-darwin-arm64.dmg",
+ "hash": "sha256-j1k40mFZDWnNTl/IwCB39JZ+Zc4/JwEthNh8SPCXAZE="
}
}
}
diff --git a/pkgs/by-name/co/codechecker/package.nix b/pkgs/by-name/co/codechecker/package.nix
index 305e2aa8b8e4..371c6b048095 100644
--- a/pkgs/by-name/co/codechecker/package.nix
+++ b/pkgs/by-name/co/codechecker/package.nix
@@ -1,65 +1,30 @@
{
lib,
- python3,
fetchPypi,
- fetchFromGitHub,
- clang,
+ makeWrapper,
+ python3Packages,
+ libclang,
clang-tools,
cppcheck,
gcc,
- makeWrapper,
+ infer,
withClang ? false,
withClangTools ? false,
withCppcheck ? false,
withGcc ? false,
+ withInfer ? false,
}:
-let
- python = python3.override {
- packageOverrides = self: super: rec {
- # codechecker is incompatible with SQLAlchemy greater than 1.3
- sqlalchemy = super.sqlalchemy_1_4.overridePythonAttrs (oldAttrs: rec {
- version = "1.3.23";
- pname = oldAttrs.pname;
- src = fetchFromGitHub {
- owner = "sqlalchemy";
- repo = "sqlalchemy";
- rev = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
- hash = "sha256-hWA0/f7rQpEfYTg10i0rBK3qeJbw3p6HW7S59rLnD0Q=";
- };
- doCheck = false;
- # That test does not exist in the 1.3 branch so we get an error for disabling it
- disabledTestPaths = builtins.filter (
- testPath: testPath != "test/ext/mypy"
- ) oldAttrs.disabledTestPaths;
- });
- sqlalchemy_1_4 = sqlalchemy;
-
- # The current alembic version is not compatible with SQLAlchemy 1.3 so we need to downgrade it
- alembic = super.alembic.overridePythonAttrs (oldAttrs: rec {
- pname = "alembic";
- version = "1.5.5";
- src = fetchPypi {
- inherit pname version;
- hash = "sha256-3wAowZJ1os/xN+OWF6Oc3NvRFzczuHtr+iV7fAhgITs=";
- };
- doCheck = false;
- dependencies = oldAttrs.dependencies ++ [
- super.python-dateutil
- super.python-editor
- ];
- });
- };
- };
- python3Packages = python.pkgs;
-in
python3Packages.buildPythonApplication rec {
pname = "codechecker";
- version = "6.24.0";
+ version = "6.28.0";
pyproject = true;
+ strictDeps = true;
+ __structuredAttrs = true;
+
src = fetchPypi {
inherit pname version;
- hash = "sha256-ftZACUf2lAHokcUXj45LRA7/3goOcIy521cGl6qhR98=";
+ hash = "sha256-wxV+/hzsk7RrzWTXNz5HyweYdFFI1upNS508QRPCefo=";
};
build-system = with python3Packages; [
@@ -67,40 +32,39 @@ python3Packages.buildPythonApplication rec {
];
dependencies = with python3Packages; [
+ alembic
+ argcomplete
+ authlib
distutils # required in python312 to call subcommands (see https://github.com/Ericsson/codechecker/issues/4350)
lxml
- sqlalchemy
- alembic
+ multiprocess
portalocker
psutil
- multiprocess
+ semver
+ sqlalchemy
thrift
gitpython
pyyaml
+ requests
types-pyyaml
sarif-tools
+ types-psutil
];
- pythonRelaxDeps = [
- "thrift"
- "portalocker"
- "types-pyyaml"
- "lxml"
- "psutil"
- "multiprocess"
- "gitpython"
- "sarif-tools"
- "pyyaml"
+ pythonRelaxDeps = true;
+ nativeBuildInputs = with python3Packages; [
+ makeWrapper
+ pythonRelaxDepsHook
];
postInstall = ''
wrapProgram "$out/bin/CodeChecker" --prefix PATH : ${
lib.makeBinPath (
- [ ]
- ++ lib.optional withClang clang
+ lib.optional withClang libclang
++ lib.optional withClangTools clang-tools
++ lib.optional withCppcheck cppcheck
++ lib.optional withGcc gcc
+ ++ lib.optional withInfer infer
)
}
'';
@@ -116,6 +80,7 @@ python3Packages.buildPythonApplication rec {
maintainers = with lib.maintainers; [
zebreus
felixsinger
+ kacper-uminski
];
mainProgram = "CodeChecker";
platforms = lib.platforms.darwin ++ lib.platforms.linux;
diff --git a/pkgs/by-name/co/comrak/package.nix b/pkgs/by-name/co/comrak/package.nix
index 79a1304b8aeb..efb36ff4bd01 100644
--- a/pkgs/by-name/co/comrak/package.nix
+++ b/pkgs/by-name/co/comrak/package.nix
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "comrak";
- version = "0.53.0";
+ version = "0.54.0";
src = fetchFromGitHub {
owner = "kivikakk";
repo = "comrak";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-neiDYC1wvCCYKlSX5R1PupZiH5vP3W5bWw17+8wv6uM=";
+ sha256 = "sha256-nLyGIN5AsWJsi+RPsQqPb2DLeSVF30ZrJAcDTsBV1V8=";
};
- cargoHash = "sha256-ErZ0yD9G0i0EEafrFGP2MQoVQR/plIkJjBrfbNTeEy8=";
+ cargoHash = "sha256-CXdjr6ScUN1JehyFDlk1Fji93X5tCF5/fs4obRTBzOU=";
meta = {
description = "CommonMark-compatible GitHub Flavored Markdown parser and formatter";
diff --git a/pkgs/by-name/co/container/package.nix b/pkgs/by-name/co/container/package.nix
index 4e9d69648b62..e084654d9ce8 100644
--- a/pkgs/by-name/co/container/package.nix
+++ b/pkgs/by-name/co/container/package.nix
@@ -5,23 +5,25 @@
libarchive,
xar,
installShellFiles,
+ makeWrapper,
versionCheckHook,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "container";
- version = "0.12.3";
+ version = "1.1.0";
src = fetchurl {
url = "https://github.com/apple/container/releases/download/${finalAttrs.version}/container-${finalAttrs.version}-installer-signed.pkg";
- hash = "sha256-g/NjEmrB8GRYjeOc1rR0NA1InBkmSSosTlnE1Uqm2OM=";
+ hash = "sha256-DKHEKiJpwlV++x2CsbOKxVPmo6PaGxF5xDm87h59ZxQ=";
};
nativeBuildInputs = [
libarchive
xar
installShellFiles
+ makeWrapper
];
dontUnpack = true;
@@ -43,6 +45,13 @@ stdenvNoCC.mkDerivation (finalAttrs: {
--zsh <($out/bin/${finalAttrs.meta.mainProgram} --generate-completion-script zsh)
'';
+ postFixup = ''
+ wrapProgram $out/bin/container \
+ --set-default CONTAINER_INSTALL_ROOT "$out"
+ wrapProgram $out/bin/container-apiserver \
+ --set-default CONTAINER_INSTALL_ROOT "$out"
+ '';
+
nativeInstallCheckInputs = [
versionCheckHook
];
@@ -60,6 +69,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
mainProgram = "container";
maintainers = with lib.maintainers; [
xiaoxiangmoe
+ Br1ght0ne
];
platforms = [ "aarch64-darwin" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/by-name/co/context7-mcp/package.nix b/pkgs/by-name/co/context7-mcp/package.nix
index bc565e2e546b..2869d2bac74c 100644
--- a/pkgs/by-name/co/context7-mcp/package.nix
+++ b/pkgs/by-name/co/context7-mcp/package.nix
@@ -18,13 +18,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "context7-mcp";
- version = "3.2.2";
+ version = "3.2.3";
src = fetchFromGitHub {
owner = "upstash";
repo = "context7";
tag = "${tag-prefix}@${finalAttrs.version}";
- hash = "sha256-v3zKMnZsc0gWVAdgZwFTskWcFVlOU6sG2i+qDwjx+dw=";
+ hash = "sha256-yyz4UraRm1JR/C7J2ib0nBU6zsNpKCWIWduTu7OlebM=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/co/copacetic/package.nix b/pkgs/by-name/co/copacetic/package.nix
index a689b45517b6..f1462d0ad0f8 100644
--- a/pkgs/by-name/co/copacetic/package.nix
+++ b/pkgs/by-name/co/copacetic/package.nix
@@ -12,13 +12,13 @@
buildGoModule (finalAttrs: {
pname = "copacetic";
- version = "0.14.1";
+ version = "0.14.2";
src = fetchFromGitHub {
owner = "project-copacetic";
repo = "copacetic";
tag = "v${finalAttrs.version}";
- hash = "sha256-pD6AdJ9GfTPVgI/e4zRW4oJjOzpEk9uY4kdEm5yLDrw=";
+ hash = "sha256-MH3HSbJ+/5vjUrjFZQVf4Qv2+qAezOShxfkAoCJMnFU=";
};
vendorHash = "sha256-RKqaIwGDZj91lfbEJHcnG8RhIrixtR0VtieCfZD/rns=";
diff --git a/pkgs/by-name/ct/ctx7/package.nix b/pkgs/by-name/ct/ctx7/package.nix
index 67cca59a1728..a98087d61091 100644
--- a/pkgs/by-name/ct/ctx7/package.nix
+++ b/pkgs/by-name/ct/ctx7/package.nix
@@ -16,7 +16,7 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "ctx7";
- version = "0.5.3";
+ version = "0.5.4";
__structuredAttrs = true;
strictDeps = true;
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "upstash";
repo = "context7";
tag = "${finalAttrs.pname}@${finalAttrs.version}";
- hash = "sha256-J3FS0HPpkuriuxEyY1dluwdMovdvgWUTFgBxVUlf+GA=";
+ hash = "sha256-yyz4UraRm1JR/C7J2ib0nBU6zsNpKCWIWduTu7OlebM=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/cu/cursor-cli/package.nix b/pkgs/by-name/cu/cursor-cli/package.nix
index 4bf958f44b12..8d3f8946c574 100644
--- a/pkgs/by-name/cu/cursor-cli/package.nix
+++ b/pkgs/by-name/cu/cursor-cli/package.nix
@@ -10,26 +10,26 @@ let
inherit (stdenv) hostPlatform;
sources = {
x86_64-linux = fetchurl {
- url = "https://downloads.cursor.com/lab/2026.06.19-20-24-33-653a7fb/linux/x64/agent-cli-package.tar.gz";
- hash = "sha256-3xHrn1JaG2Leok/CiWtZezERrYqVcpZggXSD/zuWyy4=";
+ url = "https://downloads.cursor.com/lab/2026.06.26-7079533/linux/x64/agent-cli-package.tar.gz";
+ hash = "sha256-fZNlWkdPQsK12SfmKmG+VrxWA4Df7sAFQJ5DSToq+Eg=";
};
aarch64-linux = fetchurl {
- url = "https://downloads.cursor.com/lab/2026.06.19-20-24-33-653a7fb/linux/arm64/agent-cli-package.tar.gz";
- hash = "sha256-6iiinIexiEKqXDXOHzKut1d0Mtg89A8zel0zeXna4Qc=";
+ url = "https://downloads.cursor.com/lab/2026.06.26-7079533/linux/arm64/agent-cli-package.tar.gz";
+ hash = "sha256-WcMurHV8Pm/2Y1HvNJGZYqjgt3OzHwn5oW5W27egueE=";
};
x86_64-darwin = fetchurl {
- url = "https://downloads.cursor.com/lab/2026.06.19-20-24-33-653a7fb/darwin/x64/agent-cli-package.tar.gz";
- hash = "sha256-HgxyZ1TPLnyJJJuvi8VrQhm33/rzD9kCwxy4Mp0D9C0=";
+ url = "https://downloads.cursor.com/lab/2026.06.26-7079533/darwin/x64/agent-cli-package.tar.gz";
+ hash = "sha256-5J2SA5AoyOxT9Ng58MnyCFtNllQCYhbO5MQZaONwgsk=";
};
aarch64-darwin = fetchurl {
- url = "https://downloads.cursor.com/lab/2026.06.19-20-24-33-653a7fb/darwin/arm64/agent-cli-package.tar.gz";
- hash = "sha256-Qa22+f5+x5+4sHesqp24d9GlKqPp6xBJG7BFxz6LUVU=";
+ url = "https://downloads.cursor.com/lab/2026.06.26-7079533/darwin/arm64/agent-cli-package.tar.gz";
+ hash = "sha256-UO8SRA6depwO9SNhvYl9uOy9Dp625vHVNiyfxtmq3c4=";
};
};
in
stdenv.mkDerivation {
pname = "cursor-cli";
- version = "2026.06.19-20-24-33-653a7fb";
+ version = "0-unstable-2026-06-26";
src = sources.${hostPlatform.system};
diff --git a/pkgs/by-name/cy/cyberstrike/package.nix b/pkgs/by-name/cy/cyberstrike/package.nix
index 8ce2972eb26e..777d5301dea2 100644
--- a/pkgs/by-name/cy/cyberstrike/package.nix
+++ b/pkgs/by-name/cy/cyberstrike/package.nix
@@ -16,7 +16,7 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "cyberstrike";
- version = "1.1.14";
+ version = "1.1.15";
__structuredAttrs = true;
strictDeps = true;
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
owner = "CyberStrikeus";
repo = "CyberStrike";
tag = "v${finalAttrs.version}";
- hash = "sha256-MlFEGP/MiuDtLl7Ms6j11u1MdLV6w8T/7TYo7eeE/rc=";
+ hash = "sha256-U1yYTFZCjF3z+161CL4xyxYwcWJh5zCbGAOm/ctACSs=";
};
node_modules = stdenvNoCC.mkDerivation {
@@ -75,7 +75,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
# Required so fixed-output derivation does not retain store references
dontFixup = true;
- outputHash = "sha256-IxIdzd9MJJRpc0nB5eEASSW0LIckU+SvcUgkKoL+mog=";
+ outputHash = "sha256-O5p/2+14dFt/gbONLVSvqPdNmLgQ8L+cUTGp81Rm0js=";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
diff --git a/pkgs/by-name/cy/cypress/package.nix b/pkgs/by-name/cy/cypress/package.nix
index 0bc132727e15..11170463fc34 100644
--- a/pkgs/by-name/cy/cypress/package.nix
+++ b/pkgs/by-name/cy/cypress/package.nix
@@ -1,6 +1,7 @@
{
alsa-lib,
autoPatchelfHook,
+ darwin,
fetchzip,
gtk2,
gtk3,
@@ -55,6 +56,9 @@ stdenv.mkDerivation rec {
unzip
makeShellWrapper
]
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ darwin.autoSignDarwinBinariesHook
+ ]
++ lib.optionals stdenv.hostPlatform.isLinux [
autoPatchelfHook
# override doesn't preserve splicing https://github.com/NixOS/nixpkgs/issues/132651
diff --git a/pkgs/by-name/da/daisydisk/package.nix b/pkgs/by-name/da/daisydisk/package.nix
index e6d6676a0852..784b352b8d82 100644
--- a/pkgs/by-name/da/daisydisk/package.nix
+++ b/pkgs/by-name/da/daisydisk/package.nix
@@ -10,11 +10,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "daisydisk";
- version = "4.33.3";
+ version = "4.34.2";
src = fetchzip {
url = "https://daisydiskapp.com/download/DaisyDisk.zip";
- hash = "sha256-2QhaY4oQV+bkvcyC88Zsk7eZJ6dySsb5G2+juH8HNjI=";
+ hash = "sha256-lSV367twsKDp0e5TsVYfjYO5GPcjtteBCxmUIOrz+0E=";
stripRoot = false;
};
diff --git a/pkgs/by-name/da/databricks-cli/package.nix b/pkgs/by-name/da/databricks-cli/package.nix
index 13f93aec0b51..34ab2772083f 100644
--- a/pkgs/by-name/da/databricks-cli/package.nix
+++ b/pkgs/by-name/da/databricks-cli/package.nix
@@ -7,7 +7,6 @@
versionCheckHook,
nix-update-script,
}:
-
buildGoModule (finalAttrs: {
pname = "databricks-cli";
version = "1.7.0";
@@ -31,6 +30,12 @@ buildGoModule (finalAttrs: {
ldflags = [
"-X github.com/databricks/cli/internal/build.buildVersion=${finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildTag=v${finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildSummary=v${finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildMajor=${lib.versions.major finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildMinor=${lib.versions.minor finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildPatch=${lib.versions.patch finalAttrs.version}"
+ "-X github.com/databricks/cli/internal/build.buildIsSnapshot=false"
];
postBuild = ''
diff --git a/pkgs/by-name/da/davmail/package.nix b/pkgs/by-name/da/davmail/package.nix
index 60c07cfa4630..026e4cde54ee 100644
--- a/pkgs/by-name/da/davmail/package.nix
+++ b/pkgs/by-name/da/davmail/package.nix
@@ -23,13 +23,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "davmail";
- version = "6.8.0";
+ version = "6.8.1";
src = fetchFromGitHub {
owner = "mguessan";
repo = "davmail";
tag = finalAttrs.version;
- hash = "sha256-I5MQTxCU3SCIAj6Y6idJ9KbBRhvSbzZhZ9nY82BXM7k=";
+ hash = "sha256-kIDAMVenUzc7tIC49yzc1MzqNa9B7nNlX1bzwpG8Vp0=";
};
buildPhase = ''
diff --git a/pkgs/by-name/de/deck-app/package.nix b/pkgs/by-name/de/deck-app/package.nix
new file mode 100644
index 000000000000..2fd4267197f2
--- /dev/null
+++ b/pkgs/by-name/de/deck-app/package.nix
@@ -0,0 +1,50 @@
+{
+ lib,
+ stdenvNoCC,
+ fetchurl,
+ undmg,
+ nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "deck-app";
+ version = "1.4.5";
+
+ src = fetchurl {
+ url = "https://github.com/yuzeguitarist/Deck/releases/download/v${finalAttrs.version}/Deck.dmg";
+ hash = "sha256-U5iMoQZGycwiiehxKUB3iohvzAh42gkC1sk3AJ62Ujs=";
+ };
+
+ nativeBuildInputs = [ undmg ];
+
+ sourceRoot = ".";
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/Applications
+ cp -r *.app $out/Applications
+
+ runHook postInstall
+ '';
+
+ dontBuild = true;
+ dontFixup = true;
+ strictDeps = true;
+
+ __structuredAttrs = true;
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "Deck is a modern, native, privacy-first clipboard manager for macOS.";
+ homepage = "https://deckclip.app/";
+ changelog = "https://github.com/yuzeguitarist/Deck/releases/tag/v${finalAttrs.version}";
+ sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+ platforms = lib.platforms.darwin;
+ license = lib.licenses.unfree;
+ maintainers = with lib.maintainers; [ myzel394 ];
+ # Deck provides a CLI tool that can be enabled in the app settings.
+ mainProgram = "deckclip";
+ };
+})
diff --git a/pkgs/by-name/de/dendrite/package.nix b/pkgs/by-name/de/dendrite/package.nix
index 227a78356917..6186e6723e06 100644
--- a/pkgs/by-name/de/dendrite/package.nix
+++ b/pkgs/by-name/de/dendrite/package.nix
@@ -67,6 +67,7 @@ buildGoModule (finalAttrs: {
meta = {
homepage = "https://element-hq.github.io/dendrite";
+ mainProgram = "dendrite";
description = "Second-generation Matrix homeserver written in Go";
changelog = "https://github.com/element-hq/dendrite/releases/tag/v${finalAttrs.version}";
license = lib.licenses.agpl3Plus;
diff --git a/pkgs/by-name/de/dependency-track/package.nix b/pkgs/by-name/de/dependency-track/package.nix
index e15bbc02d63e..9c30cb651b6b 100644
--- a/pkgs/by-name/de/dependency-track/package.nix
+++ b/pkgs/by-name/de/dependency-track/package.nix
@@ -2,7 +2,7 @@
lib,
buildNpmPackage,
fetchFromGitHub,
- nodejs_20,
+ fetchpatch2,
jre_headless,
protobuf_30,
xmlstarlet,
@@ -13,20 +13,17 @@
nixosTests,
}:
let
- version = "4.14.1";
+ version = "4.14.2";
frontend = buildNpmPackage {
pname = "dependency-track-frontend";
inherit version;
- # TODO: pinned due to build error on node 22
- nodejs = nodejs_20;
-
src = fetchFromGitHub {
owner = "DependencyTrack";
repo = "frontend";
- rev = version;
- hash = "sha256-xjIRkffmXYMAfZ8wJehnPRfTThJjTgNL8ONl9N9ZJ+M=";
+ tag = version;
+ hash = "sha256-/MH1YjEJdRjYjenkzOcp7oytudsJcinPbc9OAGFnI/Q=";
};
installPhase = ''
@@ -34,7 +31,14 @@ let
cp -R ./dist $out/
'';
- npmDepsHash = "sha256-CW9LOur8N3obrOeHgYFH2OO/vg8XihUspuXS5Zrix8I=";
+ patches = [
+ (fetchpatch2 {
+ url = "https://github.com/DependencyTrack/frontend/pull/1575.patch?full_index=1";
+ hash = "sha256-Wo+6yXa/8jB/pph0DTNsFz6lK3sedvro+7yvLSKes9c=";
+ })
+ ];
+
+ npmDepsHash = "sha256-md+PGEC1/Kl2MQhhYldSErcsDSefbPvwVDsw0Yklq1E=";
forceGitDeps = true;
makeCacheWritable = true;
@@ -50,8 +54,8 @@ maven.buildMavenPackage rec {
src = fetchFromGitHub {
owner = "DependencyTrack";
repo = "dependency-track";
- rev = version;
- hash = "sha256-pIZM8FQ0IFqRbTQT5VIlCmS+fCCXULJJ6bdEv6xfjbc=";
+ tag = version;
+ hash = "sha256-9EPjIm2VOmt1FEiPoJtwNHoKZcewO0kJgBSc9fnUXeI=";
};
postPatch = ''
@@ -84,7 +88,7 @@ maven.buildMavenPackage rec {
'';
mvnJdk = jre_headless;
- mvnHash = "sha256-eZuwBt+emThf4mxVaphFgBWNqP64Cs9WIKW+GPvHll4=";
+ mvnHash = "sha256-pshUDIPPGGGzxg5WJXC3mjnqGXn8HVowFCb2l5f6zjA=";
manualMvnArtifacts = [
"com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0.1"
# added to saticfy protobuf compiler plugin dependency resolving
@@ -92,7 +96,7 @@ maven.buildMavenPackage rec {
"com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.19.1"
"com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.21.0"
"com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.3"
- "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.21.0"
+ "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.21.2"
"io.micrometer:micrometer-core:1.16.0"
"io.micrometer:micrometer-observation:1.16.0"
];
diff --git a/pkgs/by-name/de/devin-cli/package.nix b/pkgs/by-name/de/devin-cli/package.nix
index a0599a264759..02bfc1cbf3f5 100644
--- a/pkgs/by-name/de/devin-cli/package.nix
+++ b/pkgs/by-name/de/devin-cli/package.nix
@@ -7,29 +7,24 @@
}:
let
- version = "3000.1.23";
+ version = "3000.1.27";
throwSystem = throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}";
srcs = {
x86_64-linux = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-x86_64-unknown-linux.tar.gz";
- hash = "sha256-m7DOI/PY0ldm4kRmAxeEQXTiH/R2oT3R8igmtXYA40g=";
+ hash = "sha256-y0kHpKT2wZvquR0EOIpFN2EMC84BpOOOKLXWwE0nygo=";
};
aarch64-linux = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-aarch64-unknown-linux.tar.gz";
- hash = "sha256-oOZjPyr3sgaH54KBWQhODFwxrEnuhkTW/rVPwXUAeUY=";
+ hash = "sha256-gyWbCpfLNphBjoSGVIhi7hgGToBKceavEKn//yDA1uw=";
};
aarch64-darwin = fetchurl {
url = "https://static.devin.ai/cli/${version}/devin-${version}-aarch64-apple-darwin.tar.gz";
- hash = "sha256-x+g7kILZuWG2JX4tc+GdIE7XqpHIzWt6+xPQU/gzyeA=";
- };
-
- x86_64-darwin = fetchurl {
- url = "https://static.devin.ai/cli/${version}/devin-${version}-x86_64-apple-darwin.tar.gz";
- hash = "sha256-LF1Mk53ds28Avvq+TtyvIu/BPYSHm9tBVjAlUXAyJVU=";
+ hash = "sha256-OnpANdMh9ws9FHwfwWR63OSaC/P3MB+eAV33JxQNUaQ=";
};
};
in
diff --git a/pkgs/by-name/de/devin-cli/update.sh b/pkgs/by-name/de/devin-cli/update.sh
index 8b1773684578..33955c67802e 100755
--- a/pkgs/by-name/de/devin-cli/update.sh
+++ b/pkgs/by-name/de/devin-cli/update.sh
@@ -16,7 +16,6 @@ update-source-version devin-cli $latestVersion || true
for system in \
x86_64-linux \
aarch64-linux \
- x86_64-darwin \
aarch64-darwin; do
hash=$(nix store prefetch-file --json --hash-type sha256 \
$(nix-instantiate --eval --raw -E "with import ./. {}; devin-cli.src.url" --system "$system") | jq -r '.hash')
diff --git a/pkgs/by-name/de/dezoomify-rs/package.nix b/pkgs/by-name/de/dezoomify-rs/package.nix
index 101220e3344d..96df189c77aa 100644
--- a/pkgs/by-name/de/dezoomify-rs/package.nix
+++ b/pkgs/by-name/de/dezoomify-rs/package.nix
@@ -6,17 +6,20 @@
nix-update-script,
pkg-config,
openssl,
+ cacert,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "dezoomify-rs";
- version = "2.15.0";
+ version = "2.16.0";
+
+ __structuredAttrs = true;
src = fetchFromGitHub {
owner = "lovasoa";
repo = "dezoomify-rs";
tag = "v${finalAttrs.version}";
- hash = "sha256-gx/h9i+VPU0AtpQEkN/zCLmeyaW5wSUCfdY52hPwm3Q=";
+ hash = "sha256-45Vlgle605s3uvPh+Lr+KAk72AzIoolnSuhFzRCORC4=";
};
nativeBuildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
@@ -27,9 +30,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
openssl
];
+ nativeCheckInputs = [
+ cacert
+ ];
+
passthru.updateScript = nix-update-script { };
- cargoHash = "sha256-Jh1a5DW25a4wzuZbOAoTn/crp/ioLsmq3jDiqIctCCM=";
+ cargoHash = "sha256-tfeknHPrY11rSmHyEAUvJgCLDwmIpo9jk8BLgzgQCrc=";
# hyper uses SystemConfiguration.framework to read system proxy settings.
# Allow access to the Mach service to prevent the tests from failing.
@@ -39,9 +46,13 @@ rustPlatform.buildRustPackage (finalAttrs: {
meta = {
description = "Zoomable image downloader for Google Arts & Culture, Zoomify, IIIF, and others";
+ changelog = "https://github.com/lovasoa/dezoomify-rs/releases/tag/${finalAttrs.src.tag}";
homepage = "https://github.com/lovasoa/dezoomify-rs/";
license = lib.licenses.gpl3Only;
- maintainers = with lib.maintainers; [ fsagbuya ];
+ maintainers = with lib.maintainers; [
+ fsagbuya
+ kybe236
+ ];
mainProgram = "dezoomify-rs";
};
})
diff --git a/pkgs/by-name/di/diesel-cli/package.nix b/pkgs/by-name/di/diesel-cli/package.nix
index 3cc982696725..b70a321014f0 100644
--- a/pkgs/by-name/di/diesel-cli/package.nix
+++ b/pkgs/by-name/di/diesel-cli/package.nix
@@ -27,15 +27,15 @@ assert lib.assertMsg (lib.elem true [
rustPlatform.buildRustPackage rec {
pname = "diesel-cli";
- version = "2.3.10";
+ version = "2.3.11";
src = fetchCrate {
inherit version;
crateName = "diesel_cli";
- hash = "sha256-ePoFjIzLUQ4GpPIObhIsg0NvvM1VcVf++IDdTI3XjXw=";
+ hash = "sha256-zxlV3AbG5cBBGUk3hx9U3OR26lB3G2QQlcxTg00WJZQ=";
};
- cargoHash = "sha256-lGVUxYrZ81YvJncGGw7VQ8bl74aYOyHsEKDIMCwc7lw=";
+ cargoHash = "sha256-GytJ0Eq4LkdSq1fosXFoC0nI7bY0VdM8oOV/tvyUSMg=";
nativeBuildInputs = [
installShellFiles
diff --git a/pkgs/by-name/di/direvent/package.nix b/pkgs/by-name/di/direvent/package.nix
index 80c722a028df..f500c4d1e4fb 100644
--- a/pkgs/by-name/di/direvent/package.nix
+++ b/pkgs/by-name/di/direvent/package.nix
@@ -6,11 +6,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "direvent";
- version = "5.4";
+ version = "5.5";
src = fetchurl {
url = "mirror://gnu/direvent/direvent-${finalAttrs.version}.tar.gz";
- sha256 = "sha256-HbvGGSqrZ+NFclFIYD1XDGooKDgMlkIVdir5FSTXlbo=";
+ sha256 = "sha256-DhbAtLPm92c+m08x2BqwEjatIvg1OFEvOy9Y+flv3Lc=";
};
meta = {
diff --git a/pkgs/by-name/di/diskonaut-ng/package.nix b/pkgs/by-name/di/diskonaut-ng/package.nix
new file mode 100644
index 000000000000..3735ed81bc59
--- /dev/null
+++ b/pkgs/by-name/di/diskonaut-ng/package.nix
@@ -0,0 +1,40 @@
+{
+ lib,
+ stdenv,
+ rustPlatform,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+
+rustPlatform.buildRustPackage (finalAttrs: {
+
+ __structuredAttrs = true;
+
+ pname = "diskonaut-ng";
+ version = "0.13.2";
+
+ src = fetchFromGitHub {
+ owner = "neunenak";
+ repo = "diskonaut";
+ tag = finalAttrs.version;
+ hash = "sha256-4gfJnqACJP1lV62Bkuarp85Idoh/H8zQ5W085yNZR5Q=";
+ };
+
+ cargoHash = "sha256-+NwZbR3fRj8Wi95GtsUQFWOyaZ0ekC4chsoJ5rsH3Zg=";
+
+ # 1 passed; 44 failed https://hydra.nixos.org/build/148943783/nixlog/1
+ doCheck = !stdenv.hostPlatform.isDarwin;
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "Terminal disk space navigator";
+ homepage = "https://github.com/neunenak/diskonaut";
+ changelog = "https://github.com/neunenak/diskonaut/releases/tag/${finalAttrs.version}";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [
+ gregshuflin
+ ];
+ mainProgram = "diskonaut";
+ };
+})
diff --git a/pkgs/by-name/dn/dnsproxy/package.nix b/pkgs/by-name/dn/dnsproxy/package.nix
index c6cdb6d87806..f620e39268fb 100644
--- a/pkgs/by-name/dn/dnsproxy/package.nix
+++ b/pkgs/by-name/dn/dnsproxy/package.nix
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "dnsproxy";
- version = "0.82.1";
+ version = "0.83.0";
src = fetchFromGitHub {
owner = "AdguardTeam";
repo = "dnsproxy";
tag = "v${finalAttrs.version}";
- hash = "sha256-d/PZrfH8jR4kcBX5Ze/06vDcDTlKWxHZ2gvi7eJF2j8=";
+ hash = "sha256-ceeNS1Z2xQgZrouRTh48in+Z71dBj/dtnOYTPY/0az8=";
};
- vendorHash = "sha256-QsNhCfqhqPv01xM/ojO3K4ktyTrUgdR79cQICtP2y1g=";
+ vendorHash = "sha256-6skcvkErUm/0u7yk8p70tYnT4d1XLySw6arMgPnOzq8=";
ldflags = [
"-s"
diff --git a/pkgs/by-name/do/doas-sudo-shim/package.nix b/pkgs/by-name/do/doas-sudo-shim/package.nix
index bc7a005210d4..e973b4d526ea 100644
--- a/pkgs/by-name/do/doas-sudo-shim/package.nix
+++ b/pkgs/by-name/do/doas-sudo-shim/package.nix
@@ -15,13 +15,13 @@
stdenv.mkDerivation rec {
pname = "doas-sudo-shim";
- version = "0.1.2";
+ version = "0.2.0";
src = fetchFromGitHub {
owner = "jirutka";
repo = "doas-sudo-shim";
rev = "v${version}";
- sha256 = "sha256-jgakKxglJi4LcxXsSE4mEdY/44kPxVb/jF7CgX7dllA=";
+ sha256 = "sha256-USSakVUzCbUY1DJLmDCiwdq/xjOwwnm3VtXBBeXeV1A=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/do/domoticz/package.nix b/pkgs/by-name/do/domoticz/package.nix
index beeeafccb3a0..5bbdf8dc17cd 100644
--- a/pkgs/by-name/do/domoticz/package.nix
+++ b/pkgs/by-name/do/domoticz/package.nix
@@ -2,7 +2,6 @@
lib,
stdenv,
fetchFromGitHub,
- fetchpatch,
makeWrapper,
cmake,
python3,
@@ -24,23 +23,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "domoticz";
- version = "2024.7";
+ version = "2026.2-unstable-2026-07-09";
src = fetchFromGitHub {
owner = "domoticz";
repo = "domoticz";
- tag = finalAttrs.version;
- hash = "sha256-D8U1kK3m1zT83YvZ42hGSU9PzBfS1VGr2mxUYbM2vNQ=";
+ rev = "7e12d1e5d7bf3f7d083ef31d5dd611d678f89d48"; # pinned due to removed dependency (see nixpkgs pr #539060)
+ hash = "sha256-+6EIEsgGTaLEPzBa/R5EYAxnYB3+cj54LGDJwutTQGA=";
+ fetchSubmodules = true;
};
- patches = [
- # Boost 1.87 compatibility, remove once upgraded to 2025.1
- (fetchpatch {
- url = "https://github.com/domoticz/domoticz/commit/5d0db89bbd120ed5dc05b4ff8c136f14a42f0cd3.patch";
- hash = "sha256-FPe83yJKJEgnY3kABy9CTRe1CBh42dPG1ZWCUE5PO8E=";
- })
- ];
-
buildInputs = [
openssl
python3
@@ -87,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
nativeInstallCheckInputs = [
- versionCheckHook
+ # versionCheckHook # readd once we can move to a tagged release again
];
doInstallCheck = true;
@@ -98,15 +90,15 @@ stdenv.mkDerivation (finalAttrs: {
various devices like: lights, switches, various sensors/meters like
temperature, rain, wind, UV, electra, gas, water and much more
'';
- maintainers = with lib.maintainers; [ edcragg ];
+ maintainers = with lib.maintainers; [
+ edcragg
+ lenny
+ ];
homepage = "https://www.domoticz.com/";
changelog = "https://github.com/domoticz/domoticz/blob/${finalAttrs.version}/History.txt";
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.all;
broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/domoticz.x86_64-darwin
mainProgram = "domoticz";
- knownVulnerabilities = [
- "CVE-2026-1001"
- ];
};
})
diff --git a/pkgs/by-name/do/dopamine/package.nix b/pkgs/by-name/do/dopamine/package.nix
index a4eed321c8de..9a1eecaf52e4 100644
--- a/pkgs/by-name/do/dopamine/package.nix
+++ b/pkgs/by-name/do/dopamine/package.nix
@@ -10,7 +10,7 @@
}:
buildNpmPackage (finalAttrs: {
pname = "dopamine";
- version = "3.0.6";
+ version = "3.0.7";
# needed to upgrade better-sqlite3 in npmConfigHook
src = applyPatches {
@@ -18,7 +18,7 @@ buildNpmPackage (finalAttrs: {
owner = "digimezzo";
repo = "dopamine";
tag = "v${finalAttrs.version}";
- hash = "sha256-HTPWejm5Wi6yGJyS/f1RhjIluTz01ue8lAsnAcQY3IY=";
+ hash = "sha256-zYuf5BIQaxTqHBXWX1PLghGR5WmwtnSxTYrNosVFebc=";
};
patches = [
# register-scheme contains install scripts, but has no lockfile
@@ -32,7 +32,7 @@ buildNpmPackage (finalAttrs: {
];
};
- npmDepsHash = "sha256-9dQUqoLfzYXOgmE9j2lkew9b/1m4XOghT7roD82y+qg=";
+ npmDepsHash = "sha256-m5y8TmOUAUf2IE87b73hFe2vj/uRAqFGgfuy3vkUX/s=";
nativeBuildInputs = [
(python3.withPackages (ps: with ps; [ distutils ]))
diff --git a/pkgs/by-name/do/dosbox-x/package.nix b/pkgs/by-name/do/dosbox-x/package.nix
index c09e3235c70f..b7007d6b9197 100644
--- a/pkgs/by-name/do/dosbox-x/package.nix
+++ b/pkgs/by-name/do/dosbox-x/package.nix
@@ -29,13 +29,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dosbox-x";
- version = "2026.06.02";
+ version = "2026.07.02";
src = fetchFromGitHub {
owner = "joncampbell123";
repo = "dosbox-x";
rev = "dosbox-x-v${finalAttrs.version}";
- hash = "sha256-60ZMaevTqYjHq6WrhKVQ8T8kfrQV7Auy59y3JFMHi5w=";
+ hash = "sha256-HO5JJQHeEJYXU7TtNCXZALgqkNbIMGI+TjDwbvs5L8w=";
};
# sips is unavailable in sandbox, replacing with imagemagick breaks build due to wrong Foundation propagation(?) so don't generate resolution variants
diff --git a/pkgs/by-name/dr/drawy/package.nix b/pkgs/by-name/dr/drawy/package.nix
index c743c0cf6a91..c44ef3ca7ba6 100644
--- a/pkgs/by-name/dr/drawy/package.nix
+++ b/pkgs/by-name/dr/drawy/package.nix
@@ -12,16 +12,17 @@
stdenv.mkDerivation (finalAttrs: {
pname = "drawy";
- version = "1.0.0";
+ version = "1.0.1";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "graphics";
repo = "drawy";
rev = "v${finalAttrs.version}";
- hash = "sha256-K070SiIf2bj1r44tixUZbsLYDxT65lEW0g68ENg3ZiE=";
+ hash = "sha256-Y6CAdHgcCK9lIae+CwqSGml+FAvVzLzyIAKdw85dKmQ=";
};
+ __structuredAttrs = true;
strictDeps = true;
nativeBuildInputs = [
@@ -31,32 +32,46 @@ stdenv.mkDerivation (finalAttrs: {
shared-mime-info
];
- buildInputs = [
- qt6.qtbase
- qt6.qttools
-
- kdePackages.extra-cmake-modules
- kdePackages.kconfig
- kdePackages.kconfigwidgets
- kdePackages.kcoreaddons
- kdePackages.kcrash
- kdePackages.kdoctools
- kdePackages.ki18n
- kdePackages.kiconthemes
- kdePackages.kwidgetsaddons
- kdePackages.kxmlgui
- kdePackages.syntax-highlighting
- ];
+ buildInputs =
+ (with qt6; [
+ qtbase
+ qttools
+ ])
+ ++ (with kdePackages; [
+ extra-cmake-modules
+ kconfig
+ kconfigwidgets
+ kcoreaddons
+ kcrash
+ kdoctools
+ ki18n
+ kiconthemes
+ kwidgetsaddons
+ kxmlgui
+ syntax-highlighting
+ ]);
passthru.updateScript = nix-update-script { };
meta = {
description = "Handy and infinite brainstorming tool";
homepage = "https://apps.kde.org/drawy/";
- license = lib.licenses.gpl3Only;
+ changelog = "https://invent.kde.org/graphics/drawy/-/blob/v${finalAttrs.version}/CHANGELOG.md";
+ license = with lib.licenses; [
+ bsd2
+ bsd3
+ cc-by-sa-40
+ cc0
+ gpl2Plus
+ gpl3Plus
+ lgpl2Plus
+ mit
+ ofl
+ ];
maintainers = with lib.maintainers; [
- yiyu
quarterstar
+ sigmasquadron
+ yiyu
];
mainProgram = "drawy";
platforms = lib.platforms.all;
diff --git a/pkgs/by-name/dr/dropbear/package.nix b/pkgs/by-name/dr/dropbear/package.nix
index 2474bc2e0fb9..6cd5364963f4 100644
--- a/pkgs/by-name/dr/dropbear/package.nix
+++ b/pkgs/by-name/dr/dropbear/package.nix
@@ -1,7 +1,7 @@
{
lib,
stdenv,
- fetchurl,
+ fetchFromGitHub,
zlib,
libxcrypt,
enableSCP ? false,
@@ -15,18 +15,24 @@ let
SFTPSERVER_PATH = sftpPath;
DROPBEAR_PATH_SSH_PROGRAM = "${placeholder "out"}/bin/dbclient";
};
-
in
-
stdenv.mkDerivation (finalAttrs: {
pname = "dropbear";
- version = "2026.91";
+ version = "2026.92";
- src = fetchurl {
- url = "https://matt.ucc.asn.au/dropbear/releases/dropbear-${finalAttrs.version}.tar.bz2";
- sha256 = "sha256-3vqSRHWr9rwedKvAAXPka/3IBL1Hyq+hT1pO8Mx22jQ=";
+ src = fetchFromGitHub {
+ owner = "mkj";
+ repo = "dropbear";
+ tag = "DROPBEAR_${finalAttrs.version}";
+ hash = "sha256-xXjKWj6tMW/Qlq4DttxKAqOwsER2QEeb1Qw3Gllu2QQ=";
};
+ patches = [
+ # Allow sessions to inherit the PATH from the parent dropbear.
+ # Otherwise they only get the usual /bin:/usr/bin kind of PATH
+ ./pass-path.patch
+ ];
+
env.CFLAGS = lib.pipe (lib.attrNames dflags) [
(map (name: "-D${name}=\\\"${dflags.${name}}\\\""))
(lib.concatStringsSep " ")
@@ -55,27 +61,38 @@ stdenv.mkDerivation (finalAttrs: {
)
'';
- postInstall = lib.optionalString enableSCP ''
- ln -rs $out/bin/scp $out/bin/dbscp
- '';
-
- patches = [
- # Allow sessions to inherit the PATH from the parent dropbear.
- # Otherwise they only get the usual /bin:/usr/bin kind of PATH
- ./pass-path.patch
- ];
-
buildInputs = [
zlib
libxcrypt
];
+ postInstall = lib.optionalString enableSCP ''
+ ln -rs $out/bin/scp $out/bin/dbscp
+ '';
+
meta = {
- description = "Small footprint implementation of the SSH 2 protocol";
+ description = "Small memory footprint ssh server/client suitable for memory-constrained environments";
+ longDescription = ''
+ Dropbear is particularly useful for "embedded"-type Linux (or other Unix) systems, such as wireless routers.
+
+ ## Features
+
+ * Implements X11 forwarding, and authentication-agent forwarding for OpenSSH clients
+ * Can run from inetd or standalone
+ * Compatible with OpenSSH ~/.ssh/authorized_keys public key authentication
+ * Multi-hop mode uses SSH TCP forwarding to tunnel through multiple SSH hosts in a single command:
+
+ ```shell
+ dbclient user1@hop1,user2@hop2,destination
+ ```
+ '';
homepage = "https://matt.ucc.asn.au/dropbear/dropbear.html";
- changelog = "https://github.com/mkj/dropbear/raw/DROPBEAR_${finalAttrs.version}/CHANGES";
+ changelog = "https://github.com/mkj/dropbear/releases/tag/DROPBEAR_${finalAttrs.version}";
+ downloadPage = "https://matt.ucc.asn.au/dropbear/releases";
license = lib.licenses.mit;
- maintainers = [ ];
platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [
+ debtquity
+ ];
};
})
diff --git a/pkgs/by-name/du/duplicati/package.nix b/pkgs/by-name/du/duplicati/package.nix
index b56dc86e3d52..04a6d33e7e31 100644
--- a/pkgs/by-name/du/duplicati/package.nix
+++ b/pkgs/by-name/du/duplicati/package.nix
@@ -14,9 +14,9 @@
let
# for update.sh easy to handle
- ngclientVersion = "0.0.225";
- ngclientRev = "b740ef00435af2066936f90d4cf284b5662c4bf9";
- ngclientHash = "sha256-X8ZhCmwfroIZWj3DjFq/InN+2zCOtHjEE1TyCXHNaIw=";
+ ngclientVersion = "0.0.226";
+ ngclientRev = "2cc3e2e088ddb4691bb389b0afa89287d399340e";
+ ngclientHash = "sha256-uMWOunSaV9HNhgH65P2boangZFe/9NCRb5BBqXv9TI0=";
# from Duplicati/Server/webroot/ngclient/package.json
ngclient = buildNpmPackage {
@@ -30,7 +30,7 @@ let
hash = ngclientHash;
};
- npmDepsHash = "sha256-DhP1gY965xNOj98s95LqSTCaqJt4YdFfbZ4bGp3o4cA=";
+ npmDepsHash = "sha256-89l/1v8dncwImDgiQic2VN65K/dxIkEPCrsHCty2VV0=";
nativeBuildInputs = [ bun ];
@@ -58,15 +58,15 @@ let
in
buildDotnetModule rec {
pname = "duplicati";
- version = "2.3.0.3";
+ version = "2.3.0.4";
channel = "stable";
- buildDate = "2026-06-10";
+ buildDate = "2026-07-09";
src = fetchFromGitHub {
owner = "duplicati";
repo = "duplicati";
tag = "v${version}_${channel}_${buildDate}";
- hash = "sha256-vRD3pehsGznGesynrftns6F5md9Ej509A99Ug0IOPGk=";
+ hash = "sha256-pVfcD7bIlZ/ZsMNwjPcg+DY6YFNm191ngEm5SrDukSw=";
stripRoot = true;
};
diff --git a/pkgs/by-name/eg/eggnog-mapper/package.nix b/pkgs/by-name/eg/eggnog-mapper/package.nix
index 2960d5485476..704794daac0c 100644
--- a/pkgs/by-name/eg/eggnog-mapper/package.nix
+++ b/pkgs/by-name/eg/eggnog-mapper/package.nix
@@ -2,6 +2,7 @@
lib,
autoPatchelfHook,
fetchFromGitHub,
+ fetchpatch2,
python3Packages,
wget,
zlib,
@@ -9,38 +10,53 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "eggnog-mapper";
- version = "2.1.13";
- format = "setuptools";
+ version = "2.1.14";
+ pyproject = true;
src = fetchFromGitHub {
owner = "eggnogdb";
repo = "eggnog-mapper";
- tag = finalAttrs.version;
- hash = "sha256-Gu4D8DBvgCPlO+2MjeNZy6+lNqsIlksegWmmYvEZmUU=";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-rjQojz6JA7T03s4PojjXJuDZhdAx9VhPQrlRTGZaYZg=";
};
- postPatch = ''
- # Not a great solution...
- substituteInPlace setup.cfg \
- --replace "==" ">="
- '';
+ patches = [
+ # From https://github.com/eggnogdb/eggnog-mapper/pull/599
+ (fetchpatch2 {
+ name = "replace-distutils.patch";
+ url = "https://github.com/eggnogdb/eggnog-mapper/commit/998129d3766e060ff450e8f950b5361c6318b0a2.patch?full_index=1";
+ hash = "sha256-xYNd9p5BhGpvFXCWXRSEkZf+Lt4hCRGYeV9Oe4mDz3I=";
+ })
+ ];
nativeBuildInputs = [
autoPatchelfHook
];
+ build-system = with python3Packages; [
+ setuptools
+ ];
+
buildInputs = [
zlib
];
propagatedBuildInputs = [
wget
- ]
- ++ (with python3Packages; [
+ ];
+
+ dependencies = with python3Packages; [
biopython
psutil
xlsxwriter
- ]);
+ ];
+
+ # Upstream already relaxed these dependencies, but that is not yet included in 2.1.14
+ pythonRelaxDeps = [
+ "biopython"
+ "psutil"
+ "xlsxwriter"
+ ];
# Tests rely on some of the databases being available, which is not bundled
# with this package as (1) in total, they represent >100GB of data, and (2)
diff --git a/pkgs/by-name/en/envfs/package.nix b/pkgs/by-name/en/envfs/package.nix
index f1601aa562bc..823c183868e6 100644
--- a/pkgs/by-name/en/envfs/package.nix
+++ b/pkgs/by-name/en/envfs/package.nix
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "envfs";
- version = "1.1.0";
+ version = "1.2.0";
src = fetchFromGitHub {
owner = "Mic92";
repo = "envfs";
rev = finalAttrs.version;
- hash = "sha256-bpATdm/lB+zomPYGCxA7omWK/SKPIaqr94J+fjMaXfE=";
+ hash = "sha256-hj/6zS9ebF0IDqgc1Dne59nWx80nk6jn2gj8BzQUFIQ=";
};
- cargoHash = "sha256-nMUdAFRHJZDwvLASBVykzzkwk3HxslDehqqm1U99qYg=";
+ cargoHash = "sha256-dz3gpE464jnmSDsAsmJHcxUsEKeUURNoUjgGU2214Xg=";
postInstall = ''
ln -s envfs $out/bin/mount.envfs
diff --git a/pkgs/by-name/et/et-book/package.nix b/pkgs/by-name/et/et-book/package.nix
index a25b27d5c6a9..673a7704837d 100644
--- a/pkgs/by-name/et/et-book/package.nix
+++ b/pkgs/by-name/et/et-book/package.nix
@@ -2,12 +2,21 @@
lib,
stdenvNoCC,
fetchFromGitHub,
+ installFonts,
}:
stdenvNoCC.mkDerivation {
pname = "et-book";
version = "0-unstable-2015-10-05";
+ strictDeps = true;
+ __structuredAttrs = true;
+
+ outputs = [
+ "out"
+ "webfont"
+ ];
+
src = fetchFromGitHub {
owner = "edwardtufte";
repo = "et-book";
@@ -15,14 +24,7 @@ stdenvNoCC.mkDerivation {
hash = "sha256-B6ryC9ibNop08TJC/w9LSHHwqV/81EezXsTUJFq8xpo=";
};
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/share/fonts/truetype
- cp -t $out/share/fonts/truetype source/4-ttf/*.ttf
-
- runHook postInstall
- '';
+ nativeBuildInputs = [ installFonts ];
meta = {
description = "Typeface used in Edward Tufte’s books";
diff --git a/pkgs/by-name/ev/evdevremapkeys/package.nix b/pkgs/by-name/ev/evdevremapkeys/package.nix
index 7986b373996b..e1c04f0c7c29 100644
--- a/pkgs/by-name/ev/evdevremapkeys/package.nix
+++ b/pkgs/by-name/ev/evdevremapkeys/package.nix
@@ -4,32 +4,35 @@
python3Packages,
}:
-python3Packages.buildPythonPackage {
+python3Packages.buildPythonPackage (finalAttrs: {
pname = "evdevremapkeys";
- version = "1.0.0";
+ version = "1.0.3";
pyproject = true;
src = fetchFromGitHub {
owner = "philipl";
repo = "evdevremapkeys";
- rev = "9b6f372a9bdf8b27d39f7e655b74f6b9d1a8467f";
- sha256 = "sha256-FwRbo0RTiiV2AB7z6XOalMnwMbj15jM4Dxs41TsIOQI=";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-Gtml52tHNtg/3Fy+QO9eIh90nim0p0Fs+oEyqJvsZKs=";
};
build-system = with python3Packages; [
- setuptools
+ hatchling
+ hatch-vcs
];
+ env.SETUPTOOLS_SCM_PRETEND_VERSION = finalAttrs.version;
+
dependencies = with python3Packages; [
pyyaml
pyxdg
- python-daemon
evdev
pyudev
];
- # hase no tests
- doCheck = false;
+ nativeCheckInputs = with python3Packages; [
+ pytestCheckHook
+ ];
pythonImportsCheck = [ "evdevremapkeys" ];
@@ -41,4 +44,4 @@ python3Packages.buildPythonPackage {
maintainers = [ lib.maintainers.q3k ];
platforms = lib.platforms.linux;
};
-}
+})
diff --git a/pkgs/by-name/fc/fcitx5-pinyin-moegirl/package.nix b/pkgs/by-name/fc/fcitx5-pinyin-moegirl/package.nix
index 87e68113e450..988e1e4e3d9e 100644
--- a/pkgs/by-name/fc/fcitx5-pinyin-moegirl/package.nix
+++ b/pkgs/by-name/fc/fcitx5-pinyin-moegirl/package.nix
@@ -6,11 +6,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "fcitx5-pinyin-moegirl";
- version = "20260511";
+ version = "20260712";
src = fetchurl {
url = "https://github.com/outloudvi/mw2fcitx/releases/download/${finalAttrs.version}/moegirl.dict";
- hash = "sha256-H9SZRkwZJZ9LMDiyfXXZm8zCq3E3CjbSCBePjf1pPd4=";
+ hash = "sha256-fCzh9pn+HWL60IvpPieaaZ+JjQZ1bbfYIyLEHDITK4U=";
};
dontUnpack = true;
diff --git a/pkgs/by-name/fe/fex/package.nix b/pkgs/by-name/fe/fex/package.nix
index 046ced1cb339..ea2f4eece6da 100644
--- a/pkgs/by-name/fe/fex/package.nix
+++ b/pkgs/by-name/fe/fex/package.nix
@@ -185,7 +185,7 @@ llvmPackages.stdenv.mkDerivation (finalAttrs: {
llvmPackages.bintools
(python3.withPackages (
pythonPackages: with pythonPackages; [
- setuptools
+ packaging
libclang
]
))
diff --git a/pkgs/by-name/fo/formatjson5/package.nix b/pkgs/by-name/fo/formatjson5/package.nix
index 505c3f073f8a..55cc640cf25d 100644
--- a/pkgs/by-name/fo/formatjson5/package.nix
+++ b/pkgs/by-name/fo/formatjson5/package.nix
@@ -20,9 +20,20 @@ rustPlatform.buildRustPackage {
patches = [
(fetchpatch {
+ # bugfix: fix missing_docs error
+ # Needed to build with Rust 1.83+.
+ name = "0001-bugfix-fix-missing-docs-error";
url = "https://github.com/google/json5format/commit/32914546e7088b3d9173ae9a2f307effa87917bf.patch";
hash = "sha256-kAbRUL/FuhnxkC9Xo4J2bXt9nkMOLeJvgMmOoKnSxKc=";
})
+ (fetchpatch {
+ # Skip rewriting unchanged files with --replace
+ # Unmerged upstream patch, ensures json5format is compatible with treefmt(-nix),
+ # which is quite popular in the Nix ecosystem.
+ name = "0002-skip-rewriting-unchanged-files";
+ url = "https://github.com/google/json5format/commit/7bb67ff03529f6f0350d72b7a36839f20fe9d190.patch";
+ hash = "sha256-ZY7Ck51/vHcRDQ5GEwOuMIF+QiYNGay3wbIvesmEl9k=";
+ })
];
cargoHash = "sha256-1CSt9dPVHdOqfQXio7/eXiDLWt+iOe6Qj+VtWblwSDE=";
diff --git a/pkgs/by-name/fr/freedv/package.nix b/pkgs/by-name/fr/freedv/package.nix
index 99d631b9ad1e..8df7058846e1 100644
--- a/pkgs/by-name/fr/freedv/package.nix
+++ b/pkgs/by-name/fr/freedv/package.nix
@@ -8,7 +8,6 @@
libtool,
cmake,
pkg-config,
- python3,
macdylibbundler,
makeWrapper,
darwin,
@@ -24,6 +23,7 @@
dbus,
apple-sdk_15,
nix-update-script,
+ wget,
}:
let
@@ -49,52 +49,54 @@ let
hash = "sha256-P84gjnuiQQBVBExJBY3sUbwo00lXY6HB+AMpx/oovRg=";
};
radaeSrc = fetchFromGitHub {
- owner = "drowe67";
- repo = "radae";
- rev = "5d640a028ab2b8e4ff23ed7136caee396cdcb844";
- # upstream repository archive fetching is broken
- forceFetchGit = true;
- hash = "sha256-+Sd+FWycEJabT3RN/zyKXS2Xzr060/ekYdzg6s1gQcM=";
+ owner = "peterbmarks";
+ repo = "radae_nopy";
+ rev = "d72ec84e795493249db44d5939eb9b05438f956a";
+ hash = "sha256-ziEhYZarzQtQ1akAxF54kcX6o38gJeUJ08jipSWXnxQ=";
};
- radeInteg = fetchFromGitHub {
- owner = "drowe67";
- repo = "radae";
- rev = "7bd3ae2401fcba58e314755576a2940085835312";
- hash = "sha256-WVYKvttiNh6uEzw0b27winyDfzzGkEEhYq7DIwfZW74=";
+ rnnoiseSrc = fetchFromGitHub {
+ owner = "xiph";
+ repo = "rnnoise";
+ rev = "70f1d256acd4b34a572f999a05c87bf00b67730d";
+ nativeBuildInputs = [ wget ];
+ postFetch = ''
+ cd $out
+ export NIX_SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
+ export SSL_CERT_FILE=$NIX_SSL_CERT_FILE
+ ./download_model.sh
+ substituteInPlace autogen.sh \
+ --replace-fail "./download_model.sh" ""
+ '';
+ hash = "sha256-t/AwOCuHb5Oahy1fDI3Sc9M08Xz3dSAavhYatRC1OIk=";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "freedv";
- version = "2.2.1";
+ version = "2.3.1";
src = fetchFromGitHub {
owner = "drowe67";
repo = "freedv-gui";
tag = "v${finalAttrs.version}";
- hash = "sha256-7SOGz2+MzAkXd5JDKasSJcKVXcnuYk+C0S9N/NPRfOM=";
+ hash = "sha256-TjE/iYg+VFvbZH7/1q1V4t0SgcS44pLVet4Pgt6L5HA=";
};
- patches = [
- ./no-framework.patch
- ];
-
postPatch = ''
cp -R ${ebur128Src} ebur128
cp -R ${radaeSrc} radae
- cp -R ${radeInteg} rade_integ
- chmod -R u+w ebur128 radae rade_integ
+ cp -R ${rnnoiseSrc} rnnoise
+ chmod -R u+w ebur128 radae rnnoise
substituteInPlace cmake/BuildEbur128.cmake \
--replace-fail "GIT_REPOSITORY https://github.com/jiixyj/libebur128.git" "URL $(realpath ebur128)" \
--replace-fail 'GIT_TAG "v''${EBUR128_VERSION}"' "" \
--replace-fail "git apply" "patch -p1 <"
substituteInPlace cmake/BuildRADE.cmake \
--replace-fail "https://github.com/xiph/opus/archive/940d4e5af64351ca8ba8390df3f555484c567fbb.zip" "${opusSrc}" \
- --replace-fail "GIT_REPOSITORY https://github.com/drowe67/radae.git" "URL $(realpath radae)" \
+ --replace-fail "GIT_REPOSITORY https://github.com/peterbmarks/radae_nopy/" "URL $(realpath radae)" \
+ --replace-fail "GIT_TAG main" ""
+ substituteInPlace cmake/BuildRNNoise.cmake \
+ --replace-fail "GIT_REPOSITORY \''${RNNOISE_REPO}" "URL $(realpath rnnoise)" \
--replace-fail "GIT_TAG main" ""
- substituteInPlace cmake/BuildRADEForIntegrations.cmake \
- --replace-fail "https://github.com/xiph/opus/archive/940d4e5af64351ca8ba8390df3f555484c567fbb.zip" "${opusSrc}" \
- --replace-fail "GIT_REPOSITORY https://github.com/drowe67/radae.git" "URL $(realpath rade_integ)" \
- --replace-fail "GIT_TAG ms-disable-python-gc" ""
patchShebangs test/test_*.sh
substituteInPlace cmake/CheckGit.cmake \
--replace-fail "git describe --abbrev=4 --always HEAD" "echo v${finalAttrs.version}"
@@ -113,7 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
libtool
cmake
pkg-config
- python3
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(macdylibbundler.overrideAttrs {
@@ -136,7 +137,6 @@ stdenv.mkDerivation (finalAttrs: {
speexdsp
hamlib_4
wxwidgets_3_2
- python3.pkgs.numpy
]
++ (
if stdenv.hostPlatform.isLinux then
diff --git a/pkgs/by-name/gc/gcx/package.nix b/pkgs/by-name/gc/gcx/package.nix
index 67fd9803b791..644851da09d0 100644
--- a/pkgs/by-name/gc/gcx/package.nix
+++ b/pkgs/by-name/gc/gcx/package.nix
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "gcx";
- version = "0.4.3";
+ version = "0.4.4";
src = fetchFromGitHub {
owner = "grafana";
repo = "gcx";
tag = "v${finalAttrs.version}";
- hash = "sha256-nSopsew5QMOs/QyJg7TzALokZagIGCjxMCNsairB5PA=";
+ hash = "sha256-yPxSRg9PLfHwfv4bCTaxgvRD6UHD4A5qh68c2Dxcpn0=";
};
- vendorHash = "sha256-JioNpEqGFxD6Gg84ZZ/9OrETxTGn2V+HMlGGiiZfeIo=";
+ vendorHash = "sha256-PevzovryzpNap8dzruYWdk07M5g9jlA8QPQcrXnO7xk=";
subPackages = [ "cmd/gcx" ];
diff --git a/pkgs/by-name/gd/gdal/package.nix b/pkgs/by-name/gd/gdal/package.nix
index 7f9c9f1684d1..5e537209a2a7 100644
--- a/pkgs/by-name/gd/gdal/package.nix
+++ b/pkgs/by-name/gd/gdal/package.nix
@@ -309,6 +309,11 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optionals (!usePoppler) [
"test_pdf_jpx_compression"
+ ]
+ ++ lib.optionals (!useNetCDF) [
+ # writes the Zarr tile-presence cache (.gmac) via the netCDF driver, which
+ # is absent in the minimal build
+ "test_zarr_read_simple_sharding"
];
postCheck = ''
popd # autotest
diff --git a/pkgs/by-name/ge/geeqie/package.nix b/pkgs/by-name/ge/geeqie/package.nix
index b8cf75d9742b..c0a945cc229a 100644
--- a/pkgs/by-name/ge/geeqie/package.nix
+++ b/pkgs/by-name/ge/geeqie/package.nix
@@ -41,13 +41,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "geeqie";
- version = "2.8";
+ version = "2.9";
src = fetchFromGitHub {
owner = "BestImageViewer";
repo = "geeqie";
tag = "v${finalAttrs.version}";
- hash = "sha256-90e+f95RIv2FZUFrfr6e7MhsQ8Xnve+Ie+uPyc87FRE=";
+ hash = "sha256-6g1aBeQUy9+WMlikAqvlb0NcCT7h0qgBRSsCOdRiZ/E=";
};
postPatch = ''
diff --git a/pkgs/by-name/ge/gelly/package.nix b/pkgs/by-name/ge/gelly/package.nix
index 75488e5e7912..367d8e288f00 100644
--- a/pkgs/by-name/ge/gelly/package.nix
+++ b/pkgs/by-name/ge/gelly/package.nix
@@ -19,16 +19,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gelly";
- version = "1.9.0";
+ version = "1.9.2";
src = fetchFromGitHub {
owner = "Fingel";
repo = "gelly";
tag = "v${finalAttrs.version}";
- hash = "sha256-DIE+IjFpDG9kCEwN3XLlxYLWduGZ7G8LXjVDnl6pp1w=";
+ hash = "sha256-WcnPNsFvQ/CqvAYxWeoAWZiJ62bOgLe8fGNeyh2B+8s=";
};
- cargoHash = "sha256-iOJMUyjqYBl5muWZCnKRRgpAf5lTPgANjohTHa1cfGY=";
+ cargoHash = "sha256-0ZKW2xxjTn84mWBrK6zhw/uiOnd5sD+URu2O0a1TZW8=";
nativeBuildInputs = [
pkg-config
diff --git a/pkgs/by-name/ge/geminicommit/package.nix b/pkgs/by-name/ge/geminicommit/package.nix
index cad18ba4b39a..572d60b2988a 100644
--- a/pkgs/by-name/ge/geminicommit/package.nix
+++ b/pkgs/by-name/ge/geminicommit/package.nix
@@ -9,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "geminicommit";
- version = "0.7.0";
+ version = "0.8.0";
src = fetchFromGitHub {
owner = "tfkhdyt";
repo = "geminicommit";
tag = "v${finalAttrs.version}";
- hash = "sha256-BLCnBym69O6s4UnogopcccI5PnniOFJ3BcWFyxEsUUI=";
+ hash = "sha256-OgcbPnZ88snTky8Uzbq2LIwSpMv44JvE75MPbTih7+c=";
};
vendorHash = "sha256-FFWptw1kSbl7f8DR3FrM0jAfr06NaJT+i/8ZaQjav/E=";
diff --git a/pkgs/by-name/gg/ggmorse/package.nix b/pkgs/by-name/gg/ggmorse/package.nix
new file mode 100644
index 000000000000..51a4ce819e28
--- /dev/null
+++ b/pkgs/by-name/gg/ggmorse/package.nix
@@ -0,0 +1,45 @@
+{
+ lib,
+ stdenv,
+ cmake,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+stdenv.mkDerivation {
+ pname = "ggmorse";
+ version = "0.1.0-unstable-2024-05-31";
+
+ src = fetchFromGitHub {
+ owner = "ggerganov";
+ repo = "ggmorse";
+ rev = "8fb433d6cd6a71940f51b5724663ec0c75bf0b62";
+ hash = "sha256-6GhyPhzNNAx1DSomfIfejbnLTckKa7/+VUZhSaGvGtI=";
+ };
+
+ postPatch = ''
+ substituteInPlace ./CMakeLists.txt \
+ --replace-fail "cmake_minimum_required (VERSION 3.0)" \
+ "cmake_minimum_required (VERSION 3.5)"
+ '';
+
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ nativeBuildInputs = [ cmake ];
+
+ cmakeFlags = [
+ (lib.cmakeBool "GGMORSE_BUILD_EXAMPLES" false)
+ ];
+
+ passthru.updateScript = nix-update-script {
+ extraArgs = [ "--version=branch" ];
+ };
+
+ meta = {
+ description = "Morse code decoding library";
+ homepage = "https://github.com/ggerganov/ggmorse";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.nekowinston ];
+ platforms = lib.platforms.unix;
+ };
+}
diff --git a/pkgs/by-name/gh/gh-dash/package.nix b/pkgs/by-name/gh/gh-dash/package.nix
index 95c5aa9d7abc..2a8ffea396f5 100644
--- a/pkgs/by-name/gh/gh-dash/package.nix
+++ b/pkgs/by-name/gh/gh-dash/package.nix
@@ -8,13 +8,13 @@
buildGoModule (finalAttrs: {
pname = "gh-dash";
- version = "4.25.0";
+ version = "4.25.2";
src = fetchFromGitHub {
owner = "dlvhdr";
repo = "gh-dash";
rev = "v${finalAttrs.version}";
- hash = "sha256-gdjP1jIYI84szuNhP7LgGRMXIPqrRwb8nRWB0BjQF+k=";
+ hash = "sha256-3iUBuMvA2Xh7UjTiFNEs3tuZMCnSt/bIhTSEDD92yCU=";
};
vendorHash = "sha256-Teu+8jiZE2gZ+0ErKsunhotY9W4Hjg6PAeFkFLgESIk=";
diff --git a/pkgs/by-name/gh/gh-gei/package.nix b/pkgs/by-name/gh/gh-gei/package.nix
index 99b5c929c083..789301891d6e 100644
--- a/pkgs/by-name/gh/gh-gei/package.nix
+++ b/pkgs/by-name/gh/gh-gei/package.nix
@@ -7,13 +7,13 @@
buildDotnetModule rec {
pname = "gh-gei";
- version = "1.30.2";
+ version = "1.30.3";
src = fetchFromGitHub {
owner = "github";
repo = "gh-gei";
rev = "v${version}";
- hash = "sha256-z3eBORwrccIgTijdHcK7en4DvRY0fE3807Amn0MCuA8=";
+ hash = "sha256-kWL/ZKBLCXzXXy4gVALfP275PUI2UPlM/WJVqQS+5ak=";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0_4xx;
diff --git a/pkgs/by-name/gi/git-imerge/package.nix b/pkgs/by-name/gi/git-imerge/package.nix
index 4dfc8f3dd6e6..ae949bde3a68 100644
--- a/pkgs/by-name/gi/git-imerge/package.nix
+++ b/pkgs/by-name/gi/git-imerge/package.nix
@@ -1,20 +1,24 @@
{
lib,
python3Packages,
- fetchPypi,
+ fetchFromGitHub,
installShellFiles,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "git-imerge";
version = "1.2.0";
- format = "setuptools";
+ pyproject = true;
- src = fetchPypi {
- inherit (finalAttrs) pname version;
- sha256 = "df5818f40164b916eb089a004a47e5b8febae2b4471a827e3aaa4ebec3831a3f";
+ src = fetchFromGitHub {
+ owner = "mhagger";
+ repo = "git-imerge";
+ tag = "v${finalAttrs.version}";
+ hash = "sha256-17xUe1N4igx5HOZBU+q7UQxkpHOFQozhR18hUYuPVuo=";
};
+ build-system = [ python3Packages.setuptools ];
+
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
diff --git a/pkgs/by-name/gi/git-mit/package.nix b/pkgs/by-name/gi/git-mit/package.nix
index 7b30aecb3479..635e1cf27b80 100644
--- a/pkgs/by-name/gi/git-mit/package.nix
+++ b/pkgs/by-name/gi/git-mit/package.nix
@@ -9,7 +9,7 @@
}:
let
- version = "6.5.2";
+ version = "6.5.3";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@@ -19,10 +19,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
tag = "v${version}";
- hash = "sha256-5tVNCvaNxW9Ko+x2GWi3fMpyuwxgjMNLTED6gvxagnI=";
+ hash = "sha256-vk0TxbvjjFqyisyeet2s3mp7+aPb99Lp0iLU59+pNG0=";
};
- cargoHash = "sha256-gSvFdvW+XW0MGFkwAkVrcC1ETjoGaFJxioD9ENEpml4=";
+ cargoHash = "sha256-54s4Jnc6C6ysQnQ4AyxxghbTVVkud4KrZ9wLZ83OZmQ=";
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/by-name/gi/git-repo/package.nix b/pkgs/by-name/gi/git-repo/package.nix
index 1229c78825b1..d28573c0448c 100644
--- a/pkgs/by-name/gi/git-repo/package.nix
+++ b/pkgs/by-name/gi/git-repo/package.nix
@@ -1,9 +1,8 @@
{
lib,
stdenv,
- fetchFromGitHub,
+ fetchFromGitiles,
makeWrapper,
- nix-update-script,
python3,
git,
gnupg,
@@ -13,13 +12,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "git-repo";
- version = "2.59";
+ version = "2.65";
- src = fetchFromGitHub {
- owner = "aosp-mirror";
- repo = "tools_repo";
+ src = fetchFromGitiles {
+ url = "https://android.googlesource.com/tools/repo";
rev = "v${finalAttrs.version}";
- hash = "sha256-5ffk5B4ZA/Wy2bQNahFaXPFRSZdKz5t6TaGbN00mfxo=";
+ hash = "sha256-ToJj5WS74vwCAX53UB5zgy1K54y1gNK+1d4qQLmp1L8=";
};
# Fix 'NameError: name 'ssl' is not defined'
@@ -57,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
- updateScript = nix-update-script { };
+ updateScript = ./update.sh;
};
meta = {
@@ -70,7 +68,10 @@ stdenv.mkDerivation (finalAttrs: {
'';
homepage = "https://android.googlesource.com/tools/repo";
license = lib.licenses.asl20;
- maintainers = with lib.maintainers; [ otavio ];
+ maintainers = with lib.maintainers; [
+ otavio
+ ungeskriptet
+ ];
platforms = lib.platforms.unix;
mainProgram = "repo";
};
diff --git a/pkgs/by-name/gi/git-repo/update.sh b/pkgs/by-name/gi/git-repo/update.sh
new file mode 100755
index 000000000000..3b1531b75b87
--- /dev/null
+++ b/pkgs/by-name/gi/git-repo/update.sh
@@ -0,0 +1,7 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts git
+set -euo pipefail
+latest_tag=$(list-git-tags --url="https://android.googlesource.com/tools/repo" | sort -V | tail -n1)
+latest_tag=${latest_tag##v}
+cd "$(git rev-parse --show-toplevel)"
+update-source-version git-repo "$latest_tag"
diff --git a/pkgs/by-name/gi/git-spice/package.nix b/pkgs/by-name/gi/git-spice/package.nix
index fa9e5daae8a0..60e201062113 100644
--- a/pkgs/by-name/gi/git-spice/package.nix
+++ b/pkgs/by-name/gi/git-spice/package.nix
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "git-spice";
- version = "0.30.1";
+ version = "0.31.0";
src = fetchFromGitHub {
owner = "abhinav";
repo = "git-spice";
tag = "v${finalAttrs.version}";
- hash = "sha256-zqHTbsK/vIeNKfvIH8funMLD0ehercVkufIYcRZ7VD0=";
+ hash = "sha256-3VHT9/oCQaySWPAfnZYRxSsKCz8S8As685V3wvpqip8=";
};
- vendorHash = "sha256-dCAgnfnwDudTUsQE/RapWslnz/MtefdlzqneRbWrLmc=";
+ vendorHash = "sha256-xcU0B+ju1f/JfNVKpXkIy5SO9rd3O9Nl0FizW3kVgI0=";
subPackages = [ "." ];
@@ -31,7 +31,6 @@ buildGoModule (finalAttrs: {
ldflags = [
"-s"
- "-w"
"-X=main._version=${finalAttrs.version}"
];
diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix
index 2d588493d898..bed8e47f0002 100644
--- a/pkgs/by-name/gi/gitu/package.nix
+++ b/pkgs/by-name/gi/gitu/package.nix
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gitu";
- version = "0.42.0";
+ version = "0.43.0";
src = fetchFromGitHub {
owner = "altsem";
repo = "gitu";
tag = "v${finalAttrs.version}";
- hash = "sha256-rEhAMikMCPtpKz7GAAFxzJYYshtEeeuawgagnD4IJhU=";
+ hash = "sha256-NpDTXTBHZs5o6HlOfpffOfo1S6Bw/oNxGuvRHzwv2II=";
};
- cargoHash = "sha256-LZegPuUOSxg3a7Gl6bNMEvpKlD4BcaYgs3mc5EwIkTE=";
+ cargoHash = "sha256-brGnoaaXTxGPHCAHh2i4NzUVxHySmT8H2jmC9le2v8Q=";
nativeBuildInputs = [
pkg-config
diff --git a/pkgs/by-name/go/go-judge/package.nix b/pkgs/by-name/go/go-judge/package.nix
index d63cd9f4983d..e3bca0300831 100644
--- a/pkgs/by-name/go/go-judge/package.nix
+++ b/pkgs/by-name/go/go-judge/package.nix
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "go-judge";
- version = "1.12.0";
+ version = "1.12.1";
src = fetchFromGitHub {
owner = "criyle";
repo = "go-judge";
rev = "v${finalAttrs.version}";
- hash = "sha256-JxYdoDSkzb+BM76m+qzdLM31ox9jqCm3LDrjTn6q1/E=";
+ hash = "sha256-QWLR0bIBgjqh75D0J7KEDjS+6rL5kV+fg01ThO6Cbq0=";
};
- vendorHash = "sha256-7DwEATr5AZGXHJXwDxjLpERquXFYm3AYjU/g3v7Xmlw=";
+ vendorHash = "sha256-i5RiLaALbHQhOSb143kyQQGu2maJIw2VS0JELmxbxM0=";
tags = [
"nomsgpack"
diff --git a/pkgs/by-name/go/goeland/package.nix b/pkgs/by-name/go/goeland/package.nix
index 8437a8412a21..4cc79004aea0 100644
--- a/pkgs/by-name/go/goeland/package.nix
+++ b/pkgs/by-name/go/goeland/package.nix
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "goeland";
- version = "0.25.0";
+ version = "0.26.0";
src = fetchFromGitHub {
owner = "slurdge";
repo = "goeland";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-5pUj7KgjvcA7xuKV7j9nLEih4ecrQjarddRVNszidfE=";
+ sha256 = "sha256-8vhcAzpgYDPHRuvBzeboGO09n+UCSCxNaJuooPnLBjo=";
};
vendorHash = "sha256-GOoeyh0ddtYiigavgjMNy8z6suTFtS9oswO9PAdagGE=";
diff --git a/pkgs/by-name/go/goldendict-ng/package.nix b/pkgs/by-name/go/goldendict-ng/package.nix
index f02b18b6aac3..099427df6359 100644
--- a/pkgs/by-name/go/goldendict-ng/package.nix
+++ b/pkgs/by-name/go/goldendict-ng/package.nix
@@ -23,13 +23,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "goldendict-ng";
- version = "26.6.1";
+ version = "26.6.2";
src = fetchFromGitHub {
owner = "xiaoyifang";
repo = "goldendict-ng";
tag = "v${finalAttrs.version}";
- hash = "sha256-iWKgOgTTkvrnphPhoWxY8ij+ClVVy3G84V+e+XcsoME=";
+ hash = "sha256-2K0I6uYJtqRw0JbvNbbmIjzxzn6l7tzDU1d9Lo49cYs=";
};
strictDeps = true;
diff --git a/pkgs/by-name/go/gomplate/package.nix b/pkgs/by-name/go/gomplate/package.nix
index 90997669c188..03bc1f9430c0 100644
--- a/pkgs/by-name/go/gomplate/package.nix
+++ b/pkgs/by-name/go/gomplate/package.nix
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "gomplate";
- version = "5.1.0";
+ version = "5.2.0";
src = fetchFromGitHub {
owner = "hairyhenderson";
repo = "gomplate";
tag = "v${finalAttrs.version}";
- hash = "sha256-wgRIwY3MqYbVU/k4BZWqdDcybSJwnCDFQZ6ybr2/tiM=";
+ hash = "sha256-rkQ8X3gb9McNxXsp5IwRUoesrDN99uo55Njm8LKGeI4=";
};
- vendorHash = "sha256-QXaXOEGUW1Wo6kD16nrNOn3MoZuJw8YNuJtGh0ffCgQ=";
+ vendorHash = "sha256-yy6+mbLy8HpLp6sPjf07S7ufrqLKmjzIA3NoeKUOeIc=";
ldflags = [
"-s"
diff --git a/pkgs/by-name/gr/grafana-image-renderer/package.nix b/pkgs/by-name/gr/grafana-image-renderer/package.nix
index ece809c2b84f..3cd9dc222c69 100644
--- a/pkgs/by-name/gr/grafana-image-renderer/package.nix
+++ b/pkgs/by-name/gr/grafana-image-renderer/package.nix
@@ -6,13 +6,13 @@
buildGoModule (finalAttrs: {
pname = "grafana-image-renderer";
- version = "5.9.0";
+ version = "5.9.1";
src = fetchFromGitHub {
owner = "grafana";
repo = "grafana-image-renderer";
tag = "v${finalAttrs.version}";
- hash = "sha256-nTYdSMNiNg97UEWQgVxi5umFU7XsKXp4QHjeVoo8L9M=";
+ hash = "sha256-ODH5u7Q+CIJKZQEKz2QswgHm+ZVzmiRmw9GVR47iooI=";
};
vendorHash = "sha256-QiseTdsFOBg3aDYpdmLHfXL9eFll6iJo4wSKwXvdGnM=";
diff --git a/pkgs/by-name/gr/graphite-cli/package.nix b/pkgs/by-name/gr/graphite-cli/package.nix
index c9fe9e7f899d..af2cc83f569d 100644
--- a/pkgs/by-name/gr/graphite-cli/package.nix
+++ b/pkgs/by-name/gr/graphite-cli/package.nix
@@ -76,9 +76,10 @@ let
dontConfigure = true;
dontBuild = true;
- # On Linux the binary is wrapped with buildFHSEnv; completions are
- # generated there. Here we only need to skip fixup to avoid patchelf/strip.
- dontFixup = stdenv.hostPlatform.isLinux;
+ # Skip fixup on all platforms: strip discards the vercel/pkg virtual
+ # filesystem appended to the binary (see the comment below), leaving a
+ # binary that fails at runtime with "Pkg: Error reading from file."
+ dontFixup = true;
installPhase = ''
runHook preInstall
@@ -86,7 +87,13 @@ let
runHook postInstall
'';
- postInstall = lib.optionalString stdenv.hostPlatform.isDarwin shellCompletions;
+ # gt tries to create ~/.config/graphite/aliases on startup and exits 1
+ # with no output when HOME is not writable, which would leave the
+ # completion files empty.
+ postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
+ export HOME=$(mktemp -d)
+ ${shellCompletions}
+ '';
};
in
# The binary is built with vercel/pkg, which appends a virtual filesystem to
diff --git a/pkgs/by-name/gr/graphviz/package.nix b/pkgs/by-name/gr/graphviz/package.nix
index f5686e0274d3..0ee2c6b0f129 100644
--- a/pkgs/by-name/gr/graphviz/package.nix
+++ b/pkgs/by-name/gr/graphviz/package.nix
@@ -22,6 +22,7 @@
libxrender,
python3,
withXorg ? true,
+ withQuartz ? false,
# for passthru.tests
exiv2,
@@ -75,7 +76,8 @@ stdenv.mkDerivation (finalAttrs: {
"--with-ltdl-lib=${libtool.lib}/lib"
"--with-ltdl-include=${libtool}/include"
(lib.withFeature withXorg "x")
- ];
+ ]
+ ++ optional withQuartz "--with-quartz";
enableParallelBuilding = true;
strictDeps = true;
diff --git a/pkgs/by-name/gr/grcov/package.nix b/pkgs/by-name/gr/grcov/package.nix
index 1444dea0bf22..b5e61a855989 100644
--- a/pkgs/by-name/gr/grcov/package.nix
+++ b/pkgs/by-name/gr/grcov/package.nix
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "grcov";
- version = "0.9.1";
+ version = "0.10.7";
src = fetchFromGitHub {
owner = "mozilla";
repo = "grcov";
tag = "v${finalAttrs.version}";
- hash = "sha256-e3RQn6wKvVm40UK8ZlgIi2gRS9eEFBnEXdmXtCgv0Go=";
+ hash = "sha256-64c8byxQDEE9eRS+YAd9BaGSjGm+cl2XTAy3l3Utrws=";
};
- cargoHash = "sha256-v4laGVbWmK8WFJXX5ChtViyKyMtmwpehSgNG6F31Mn0=";
+ cargoHash = "sha256-JTIYfAatMg9L597pRLywgCQmQO9sbuq/En0wNUx8QUo=";
# tests do not find grcov path correctly
checkFlags =
@@ -29,6 +29,10 @@ rustPlatform.buildRustPackage (finalAttrs: {
"test_integration_guess_single_file"
"test_integration_zip_dir"
"test_integration_zip_zip"
+ "test_llvm_aggregate_profraws"
+ "test_profdatas_to_lcov"
+ "test_profraws_to_lcov"
+ "test_wrong_binary_file"
];
in
builtins.map (x: "--skip=" + x) skipList;
diff --git a/pkgs/by-name/gr/grpcui/package.nix b/pkgs/by-name/gr/grpcui/package.nix
index 8cfb53958822..cfa0c99af2db 100644
--- a/pkgs/by-name/gr/grpcui/package.nix
+++ b/pkgs/by-name/gr/grpcui/package.nix
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "grpcui";
- version = "1.5.1";
+ version = "1.5.2";
src = fetchFromGitHub {
owner = "fullstorydev";
repo = "grpcui";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-mZeNK/NwN887TN4fnvGzrqwJCBYnYcuW/K+O0LgX0uo=";
+ sha256 = "sha256-qJ8X4l4Efww6fJ1Xr/MXn2Nr7O0zCmDTb0YAWGInVp4=";
};
- vendorHash = "sha256-y4OK610q+8m48M/HX3bXNV7YguoOaZKnCw+JnEvqbEI=";
+ vendorHash = "sha256-S6GeFwxyrlHzsXWz66jrNa+mtoACn7w2oY3M9XjPusk=";
doCheck = false;
diff --git a/pkgs/by-name/gt/gtg/package.nix b/pkgs/by-name/gt/gtg/package.nix
index aa61c9a14c47..42cff6a4fc98 100644
--- a/pkgs/by-name/gt/gtg/package.nix
+++ b/pkgs/by-name/gt/gtg/package.nix
@@ -20,13 +20,13 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "gtg";
- version = "0.6";
+ version = "0.6.1";
src = fetchFromGitHub {
owner = "getting-things-gnome";
repo = "gtg";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-O8qBD92P2g8QrBdMXa6j0Ozk+W80Ny5yk0KNTy7ekfE=";
+ sha256 = "sha256-Qojw9mJlPU234ijsCN92Gu/j2CyMVDvFFwzbYSYvMdU=";
};
patches = [
diff --git a/pkgs/by-name/ha/hamrs-pro/package.nix b/pkgs/by-name/ha/hamrs-pro/package.nix
index d13f584425ce..743efa9d5159 100644
--- a/pkgs/by-name/ha/hamrs-pro/package.nix
+++ b/pkgs/by-name/ha/hamrs-pro/package.nix
@@ -22,12 +22,6 @@ let
url = "https://hamrs-dist.s3.amazonaws.com/hamrs-pro-${version}-linux-arm64.AppImage";
hash = "sha256-5WUQBFyvMHZyyIH2aImCRUYdzou8BadaH/M4+5DeQdo=";
};
-
- x86_64-darwin = fetchurl {
- url = "https://hamrs-dist.s3.amazonaws.com/hamrs-pro-${version}-mac-x64.dmg";
- hash = "sha256-BboXYdKT10+SBGhlxW5t1zPZ+0BMC1gUjwTlkQU+/Bk=";
- };
-
aarch64-darwin = fetchurl {
url = "https://hamrs-dist.s3.amazonaws.com/hamrs-pro-${version}-mac-arm64.dmg";
hash = "sha256-/9UamFxEJ9NkswgsI8mcfher9nFpVt5Vk0QYFpRXRB4=";
@@ -51,7 +45,6 @@ let
"x86_64-linux"
"aarch64-linux"
"aarch64-darwin"
- "x86_64-darwin"
];
};
diff --git a/pkgs/by-name/ha/hamrs-pro/update.sh b/pkgs/by-name/ha/hamrs-pro/update.sh
index 7913ced30cbb..a12439b3a10e 100755
--- a/pkgs/by-name/ha/hamrs-pro/update.sh
+++ b/pkgs/by-name/ha/hamrs-pro/update.sh
@@ -17,7 +17,6 @@ update-source-version hamrs-pro $latestVersion || true
for system in \
x86_64-linux \
aarch64-linux \
- x86_64-darwin \
aarch64-darwin; do
hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 $(nix-prefetch-url $(nix-instantiate --eval -E "with import ./. {}; hamrs-pro.src.url" --system "$system" | tr -d '"')))
update-source-version hamrs-pro $latestVersion $hash --system=$system --ignore-same-version
diff --git a/pkgs/by-name/ha/hamrs/darwin.nix b/pkgs/by-name/ha/hamrs/darwin.nix
index fd8f413ba6d8..69e1c40da6fd 100644
--- a/pkgs/by-name/ha/hamrs/darwin.nix
+++ b/pkgs/by-name/ha/hamrs/darwin.nix
@@ -12,19 +12,12 @@
stdenvNoCC.mkDerivation (finalAttrs: {
inherit pname version;
- src =
- if stdenvNoCC.hostPlatform.isAarch64 then
- (fetchurl {
- url = "https://hamrs-releases.s3.us-east-2.amazonaws.com/${finalAttrs.version}/HAMRS-${finalAttrs.version}.dmg";
- hash = "sha256-IQ7r2OLwJW4auiNDddzZ99jXxrtPw3uYoGIUEHU1gtc=";
- })
- else
- (fetchurl {
- url = "https://hamrs-releases.s3.us-east-2.amazonaws.com/${finalAttrs.version}/HAMRS-${finalAttrs.version}-intel.dmg";
- hash = "sha256-bgWeIARE3gO5FA9MqidfXo1Wdn5wDUa/RNzZBxSKloM=";
- });
+ src = fetchurl {
+ url = "https://hamrs-releases.s3.us-east-2.amazonaws.com/${finalAttrs.version}/HAMRS-${finalAttrs.version}.dmg";
+ hash = "sha256-IQ7r2OLwJW4auiNDddzZ99jXxrtPw3uYoGIUEHU1gtc=";
+ };
- nativeBuildInputs = if stdenvNoCC.hostPlatform.isAarch64 then [ _7zz ] else [ undmg ];
+ nativeBuildInputs = [ _7zz ];
sourceRoot = ".";
diff --git a/pkgs/by-name/he/heptabase/package.nix b/pkgs/by-name/he/heptabase/package.nix
deleted file mode 100644
index 62519c6e81ca..000000000000
--- a/pkgs/by-name/he/heptabase/package.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- lib,
- appimageTools,
- fetchurl,
-}:
-let
- pname = "heptabase";
- version = "1.87.2";
- src = fetchurl {
- url = "https://github.com/heptameta/project-meta/releases/download/v${version}/Heptabase-${version}.AppImage";
- hash = "sha256-6O6ksa0mCUoAfXW8jzh1n7zAfLZTA45va9o6J2ghKgU=";
- };
-
- appimageContents = appimageTools.extractType2 { inherit pname version src; };
-in
-appimageTools.wrapType2 {
- inherit pname version src;
-
- extraInstallCommands = ''
- install -Dm444 ${appimageContents}/project-meta.desktop -T $out/share/applications/heptabase.desktop
- install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/0x0/apps/project-meta.png $out/share/icons/hicolor/512x512/apps/${pname}.png
-
- substituteInPlace $out/share/applications/heptabase.desktop \
- --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=heptabase %U' \
- --replace-fail 'Icon=project-meta' 'Icon=${pname}'
-
- '';
-
- meta = {
- changelog = "https://github.com/heptameta/project-meta/releases/tag/v${version}";
- description = "Visual note-taking tool for learning complex topics";
- homepage = "https://heptabase.com/";
- license = lib.licenses.unfree;
- maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
- mainProgram = "heptabase";
- platforms = [ "x86_64-linux" ];
- sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
- };
-}
diff --git a/pkgs/by-name/hm/hmcl/package.nix b/pkgs/by-name/hm/hmcl/package.nix
index 0d4a96882331..9068be750cf3 100644
--- a/pkgs/by-name/hm/hmcl/package.nix
+++ b/pkgs/by-name/hm/hmcl/package.nix
@@ -50,13 +50,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "hmcl";
- version = "3.15.2";
+ version = "3.15.3";
src = fetchurl {
# HMCL has built-in keys, such as the Microsoft OAuth secret and the CurseForge API key.
# See https://github.com/HMCL-dev/HMCL/blob/refs/tags/release-3.6.12/.github/workflows/gradle.yml#L26-L28
url = "https://github.com/HMCL-dev/HMCL/releases/download/v${finalAttrs.version}/HMCL-${finalAttrs.version}.jar";
- hash = "sha256-rT+RruLMz/DTlYSOMv4D6ZCOVt36iqyx42v8ea4XSdM=";
+ hash = "sha256-/7RLhSHCnxtKxmusjnrfUEweYXzOoKcQO3G9+loBofk=";
};
# - HMCL prompts users to download prebuilt Terracotta binary for
diff --git a/pkgs/by-name/hy/hyprlax/package.nix b/pkgs/by-name/hy/hyprlax/package.nix
index ff07b7a74fe0..268059d7d3a2 100644
--- a/pkgs/by-name/hy/hyprlax/package.nix
+++ b/pkgs/by-name/hy/hyprlax/package.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hyprlax";
- version = "2.2.4";
+ version = "2.2.5";
src = fetchFromGitHub {
owner = "sandwichfarm";
repo = "hyprlax";
tag = "v${finalAttrs.version}";
- hash = "sha256-dWWpnJtjis4S+PBKpUrWxkrRETUG42fuyuUaWKFwOao=";
+ hash = "sha256-pI+JEuUOuUh4ZBT4YhIxc6FU3rMwau6qacypDrQG+dg=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/ia/iamb/package.nix b/pkgs/by-name/ia/iamb/package.nix
index 8a15554b29cf..59f21eb62b36 100644
--- a/pkgs/by-name/ia/iamb/package.nix
+++ b/pkgs/by-name/ia/iamb/package.nix
@@ -6,6 +6,8 @@
writableTmpDirAsHomeHook,
versionCheckHook,
nix-update-script,
+ llvmPackages,
+ stdenv,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -27,8 +29,17 @@ rustPlatform.buildRustPackage (finalAttrs: {
nativeBuildInputs = [
installShellFiles
+ ]
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ # TODO: Remove once #536365 reaches this branch
+ llvmPackages.lld
];
+ env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
+ # TODO: Remove once #536365 reaches this branch
+ NIX_CFLAGS_LINK = "-fuse-ld=lld";
+ };
+
postInstall = ''
installManPage $src/docs/iamb.{1,5}
install -D $src/docs/iamb.svg -t $out/share/icons/hicolor/scalable/apps
diff --git a/pkgs/by-name/ig/igir/package.nix b/pkgs/by-name/ig/igir/package.nix
index ca52815c8e05..d0eab6a75ed9 100644
--- a/pkgs/by-name/ig/igir/package.nix
+++ b/pkgs/by-name/ig/igir/package.nix
@@ -18,16 +18,16 @@
buildNpmPackage rec {
pname = "igir";
- version = "5.2.1";
+ version = "5.3.0";
src = fetchFromGitHub {
owner = "emmercm";
repo = "igir";
rev = "v${version}";
- hash = "sha256-LWdJPweZ0BFIjdXHUZvJuk8oZb8JtuGo3LIJtdwdG70=";
+ hash = "sha256-qs6CVmBLn23BOjr+d4WZeROFxqKy9vWx8iUVKBicKdk=";
};
- npmDepsHash = "sha256-bRZlaRnPY8k2Xahb994GUYlROmR9ZQj2neEPVKDwv4g=";
+ npmDepsHash = "sha256-ruFssMRX7fzEI7lwEb/a+0lYso9I3CufLK9uVZiuhoU=";
# I have no clue why I have to do this
postPatch = ''
diff --git a/pkgs/by-name/im/imhex/package.nix b/pkgs/by-name/im/imhex/package.nix
index 7b9f98853290..0ce61eea2f86 100644
--- a/pkgs/by-name/im/imhex/package.nix
+++ b/pkgs/by-name/im/imhex/package.nix
@@ -23,6 +23,7 @@
nix-update-script,
autoPatchelfHook,
makeWrapper,
+ llvmPackages,
}:
let
@@ -61,7 +62,9 @@ stdenv.mkDerivation (finalAttrs: {
pkg-config
makeWrapper
]
- ++ lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
+ ++ lib.optional stdenv.hostPlatform.isLinux autoPatchelfHook
+ # TODO: Remove once #536365 reaches this branch
+ ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.lld;
buildInputs = [
capstone
@@ -103,7 +106,13 @@ stdenv.mkDerivation (finalAttrs: {
(lib.cmakeFeature "CMAKE_INSTALL_NAME_DIR" "@executable_path/../Frameworks")
];
- env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+ env = {
+ NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
+ }
+ // lib.optionalAttrs stdenv.hostPlatform.isDarwin {
+ # TODO: Remove once #536365 reaches this branch
+ NIX_CFLAGS_LINK = "-fuse-ld=lld";
+ };
# Comment out fixup_bundle in PostprocessBundle.cmake as we are not building a standalone application
postPatch = ''
diff --git a/pkgs/by-name/im/immich/package.nix b/pkgs/by-name/im/immich/package.nix
index 8012f5db51a7..c0e2725eaa57 100644
--- a/pkgs/by-name/im/immich/package.nix
+++ b/pkgs/by-name/im/immich/package.nix
@@ -77,14 +77,14 @@ let
# The geodata website is not versioned, so we use the internet archive
geodata =
let
- timestamp = "20260408011516";
+ timestamp = "20260710111330";
date =
"${lib.substring 0 4 timestamp}-${lib.substring 4 2 timestamp}-${lib.substring 6 2 timestamp}T"
+ "${lib.substring 8 2 timestamp}:${lib.substring 10 2 timestamp}:${lib.substring 12 2 timestamp}Z";
in
runCommand "immich-geodata"
{
- outputHash = "sha256-WSKaTn54+8ckXPsk3jsOJ4yCsO0jLKf3y+apqwNlHc4=";
+ outputHash = "sha256-Pf5u+bqzF2x1PECxKwZ6dfGiEj1YMlRejTcTI1amMvU=";
outputHashMode = "recursive";
nativeBuildInputs = [
cacert
diff --git a/pkgs/by-name/in/incus-ui-canonical/package.nix b/pkgs/by-name/in/incus-ui-canonical/package.nix
index e4e500e0ecbf..98e384369006 100644
--- a/pkgs/by-name/in/incus-ui-canonical/package.nix
+++ b/pkgs/by-name/in/incus-ui-canonical/package.nix
@@ -1,6 +1,6 @@
{
lib,
- stdenv,
+ stdenvNoCC,
fetchurl,
fetchFromGitHub,
fetchYarnDeps,
@@ -18,16 +18,16 @@ let
hash = "sha256-f0vd/Xp/kBbZkg6CBM4cZPlwg5WUL/zv3mCAEmugzCE=";
};
in
-stdenv.mkDerivation (finalAttrs: {
+stdenvNoCC.mkDerivation (finalAttrs: {
pname = "incus-ui-canonical";
- version = "0.21.3";
+ version = "0.21.4";
src = fetchFromGitHub {
owner = "zabbly";
repo = "incus-ui-canonical";
# only use tags prefixed by incus- they are the tested fork versions
tag = "incus-${finalAttrs.version}";
- hash = "sha256-fyeh7KX2Cvo2YmUNnmzeWkTGgGrJHhjbq39AmnwhgAs=";
+ hash = "sha256-EMf723WZKyVYDpvdmzjdp61rIZVsoj6gRMiMF323K/A=";
};
offlineCache = fetchYarnDeps {
diff --git a/pkgs/by-name/in/infer/package.nix b/pkgs/by-name/in/infer/package.nix
new file mode 100644
index 000000000000..938573476336
--- /dev/null
+++ b/pkgs/by-name/in/infer/package.nix
@@ -0,0 +1,249 @@
+{
+ fetchFromGitHub,
+ lib,
+ stdenv,
+
+ # nativeBuildInputs
+ autoconf,
+ automake,
+ cmake,
+ dune_3,
+ git,
+ makeWrapper,
+ ninja,
+ opam,
+ pkg-config,
+ perl,
+ which,
+
+ # buildInputs
+ gmp,
+ mpfr,
+ ocaml-ng,
+ sqlite,
+ zlib,
+
+ # Erlang
+ beamPackages,
+
+ # Java
+ jdk,
+
+ # LLVM
+ python3,
+
+ # Options
+ withErlang ? true,
+ withJava ? true,
+ withLLVM ? true,
+ withRust ? false,
+}:
+let
+ pname = "infer";
+ version = "1.3.0";
+ src = fetchFromGitHub {
+ owner = "facebook";
+ repo = pname;
+ tag = "v${version}";
+ hash = "sha256-Kq7sJVBqe4ei1HbZz8R+P4V6yxisxEmPVHjyVlpL1aw=";
+ };
+
+ # Pre-fetched LLVM source that facebook-clang-plugins would normally download
+ # They specify the version in `facebook-clang-plugins/clang/src/prepare_clang_src.sh`
+ # Please check that file and update the version as appropriate when updating
+ llvmSrc = fetchFromGitHub {
+ owner = "llvm";
+ repo = "llvm-project";
+ tag = "llvmorg-21.1.6";
+ hash = "sha256-mqZLJYDEs6FXAjbSOruR2ATZZxemNMagNG9SMjSWBFE=";
+ };
+
+ # We need to use 5.3 because stdcompat (a transitive ocaml dependency) is
+ # broken on 5.4
+ ocamlPackages = ocaml-ng.ocamlPackages_5_3.overrideScope (
+ self: super: {
+ # Newer ppxlib removed a function needed by 0.36
+ ppxlib = super.ppxlib.override { version = "0.34.0"; };
+ # Infer bundles charon 0.1.177; nixpkgs unstable has a newer incompatible
+ # version
+ charon = super.buildDunePackage {
+ pname = "charon";
+ version = "0.1";
+ src = "${src}/dependencies/charon";
+ propagatedBuildInputs = with self; [
+ easy_logging
+ name_matcher_parser
+ ppx_deriving
+ unionFind
+ visitors
+ yojson
+ ];
+ };
+ }
+ );
+
+ erlangDeps = with beamPackages; [
+ erlang
+ rebar3
+ ];
+ javaDeps = [ jdk ];
+in
+stdenv.mkDerivation {
+ inherit pname src version;
+
+ strictDeps = true;
+ __structuredAttrs = true;
+
+ nativeBuildInputs = [
+ autoconf
+ automake
+ cmake
+ dune_3
+ git
+ makeWrapper
+ ninja
+ opam
+ pkg-config
+ perl
+ which
+ ]
+ ++ (with ocamlPackages; [
+ atd
+ atdgen
+ ocaml
+ findlib
+ menhir
+ ocamlbuild
+ ])
+ ++ lib.optionals withErlang erlangDeps
+ ++ lib.optionals withJava javaDeps
+ ++ lib.optional withLLVM python3;
+
+ buildInputs = [
+ gmp
+ mpfr
+ sqlite
+ zlib
+ ]
+ ++ (with ocamlPackages; [
+ ansiterminal
+ atd
+ atdgen
+ base64
+ bheap
+ charon
+ cmdliner
+ containers
+ containers-data
+ core
+ ctypes
+ fmt
+ fpath
+ iter
+ javalib
+ memtrace
+ menhirLib
+ mtime
+ ocamlgraph
+ ounit
+ ounit2
+ parmap
+ ppx_blob
+ ppx_compare
+ ppx_enumerate
+ ppx_expect
+ ppx_fields_conv
+ ppx_show
+ ppx_yojson_conv
+ ppxlib
+ pyml
+ sawja
+ saturn
+ sedlex
+ spawn
+ ocaml_sqlite3
+ tdigest
+ xmlm
+ zarith
+ ])
+ ++ lib.optionals withErlang erlangDeps
+ ++ lib.optionals withJava javaDeps;
+
+ preConfigure = ''
+ patchShebangs .
+
+ ${lib.optionalString withLLVM
+ # sh
+ ''
+ # Link in the prefetched llvm source
+ mkdir -p facebook-clang-plugins/clang/src/download
+ ln -s ${llvmSrc} facebook-clang-plugins/clang/src/download/llvm-project
+ # Skip the download step in prepare_clang_src.sh
+ substituteInPlace facebook-clang-plugins/clang/src/prepare_clang_src.sh \
+ --replace-fail 'curl -L' 'echo "SKIPPED: curl" #' \
+ --replace-fail 'tar xf' 'echo "SKIPPED: tar" #'
+
+ # Runtimes and bindings fail to build, as it tries to build them using its
+ # newly built clang, but infer seems to work with them disabled.
+ # Tools are needed because the build requires llvm-config.
+ substituteInPlace facebook-clang-plugins/clang/setup.sh \
+ --replace-fail '-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind"' '-DLLVM_ENABLE_RUNTIMES=""'\
+ --replace-fail '-DLLVM_BUILD_DOCS=Off' '-DLLVM_BUILD_DOCS=Off -DLLVM_ENABLE_BINDINGS=Off' \
+ --replace-fail '-DLLVM_BUILD_TOOLS=Off' '-DLLVM_BUILD_TOOLS=On'
+ ''
+ }
+
+ # Remove deprecated -j-std atdgen flag, which is removed in current atdgen
+ find . -name "dune" -exec sed -i 's/-j-std//g' {} + 2>/dev/null || true
+
+ # Use nix-provided context.
+ substituteInPlace infer/dune-workspace.in \
+ --replace-fail '(context (opam (switch @OPAMSWITCH@) (name default) (merlin)))' '(context default)'
+
+ ./autogen.sh
+ '';
+
+ dontUseCmakeConfigure = true;
+
+ configureFlags = [
+ "--prefix=${placeholder "out"}"
+ ]
+ ++ [
+ "--disable-hack-analyzers" # No support on nixpkgs as of writing
+ "--disable-python-analyzers" # Needs python 3.10, which is not in nixpkgs
+ "--disable-swift-analyzers" # Does not want to build with the current package
+ ]
+ ++ lib.optional (!withErlang) "--disable-erlang-analyzers"
+ ++ lib.optional (!withJava) "--disable-java-analyzers"
+ ++ lib.optional (!withLLVM) "--disable-c-analyzers"
+ ++ lib.optional withRust "--enable-rust-analyzers";
+
+ buildFlags = [
+ # This cuts the build time in half
+ "CFLAGS=-O2"
+ "CXXFLAGS=-O2"
+ # Prevent ocaml warnings 11 and 55 from crashing the build
+ "OCAMLPARAM=_,w=-11-55"
+ ];
+
+ dontUseNinjaBuild = true;
+ dontUseNinjaInstall = true;
+
+ postInstall =
+ let
+ runtimeDeps = lib.optionals withErlang erlangDeps ++ lib.optionals withJava javaDeps;
+ in
+ lib.optionalString (runtimeDeps != [ ]) ''
+ wrapProgram "$out/bin/infer" \
+ --prefix PATH : "${lib.makeBinPath runtimeDeps}"
+ '';
+
+ meta = {
+ description = "Facebook's static analysis tool for Java, C++, Objective-C, and C.";
+ homepage = "https://fbinfer.com/";
+ license = lib.licenses.mit;
+ maintainers = [ lib.maintainers.kacper-uminski ];
+ platforms = lib.platforms.darwin ++ lib.platforms.linux;
+ mainProgram = "infer";
+ };
+}
diff --git a/pkgs/by-name/in/inmarsatc/package.nix b/pkgs/by-name/in/inmarsatc/package.nix
new file mode 100644
index 000000000000..c1ff54c4e6b3
--- /dev/null
+++ b/pkgs/by-name/in/inmarsatc/package.nix
@@ -0,0 +1,35 @@
+{
+ lib,
+ stdenv,
+ cmake,
+ fetchFromGitHub,
+ nix-update-script,
+}:
+stdenv.mkDerivation {
+ pname = "inmarsatc";
+ version = "0-unstable-2023-07-10";
+
+ src = fetchFromGitHub {
+ owner = "cropinghigh";
+ repo = "inmarsatc";
+ rev = "cda1242e79981d71cd8608e971c8dbc691942b10";
+ hash = "sha256-UCmdHR9bSr1x4G0OP7n+o6pdS1thTl9hzH7YMykSiGw=";
+ };
+
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ nativeBuildInputs = [ cmake ];
+
+ passthru.updateScript = nix-update-script {
+ extraArgs = [ "--version=branch" ];
+ };
+
+ meta = {
+ description = "C++ library with functions to receive Inmarsat-C signals";
+ homepage = "https://github.com/cropinghigh/inmarsatc";
+ license = lib.licenses.gpl3Only;
+ maintainers = [ lib.maintainers.nekowinston ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/pkgs/by-name/in/inngest/package.nix b/pkgs/by-name/in/inngest/package.nix
index f71572ad50b6..29db5cfa0bf7 100644
--- a/pkgs/by-name/in/inngest/package.nix
+++ b/pkgs/by-name/in/inngest/package.nix
@@ -10,14 +10,14 @@
testers,
}:
let
- version = "1.34.0";
+ version = "1.36.0";
websiteRev = "159c0ac611e85ec85ffe0a8c8bf2c4a0330bdb38";
src = fetchFromGitHub {
owner = "inngest";
repo = "inngest";
tag = "v${version}";
- hash = "sha256-DMJEhgKj2glNtJmsLc3oyDZr5H/COFLrcogcgaYiLjU=";
+ hash = "sha256-KyH9Bj3n7RwARDcb3l5nerYGIIk2mgXPZWLhyNMm+f0=";
};
website = fetchFromGitHub {
diff --git a/pkgs/by-name/in/insomnia/package.nix b/pkgs/by-name/in/insomnia/package.nix
index ae533545be65..002582e024f1 100644
--- a/pkgs/by-name/in/insomnia/package.nix
+++ b/pkgs/by-name/in/insomnia/package.nix
@@ -7,22 +7,22 @@
}:
let
pname = "insomnia";
- version = "12.2.0";
+ version = "13.0.0";
src =
fetchurl
{
aarch64-darwin = {
url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg";
- hash = "sha256-ISQVIhR5TWY/Xk6sXeL89/srxppqBS7wdoRINwuoQqg=";
+ hash = "sha256-sPl7KXC8Z13LFZvxuKg02iDbtrCxn//Yrr8AOOf3VD4=";
};
x86_64-darwin = {
url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.dmg";
- hash = "sha256-ISQVIhR5TWY/Xk6sXeL89/srxppqBS7wdoRINwuoQqg=";
+ hash = "sha256-sPl7KXC8Z13LFZvxuKg02iDbtrCxn//Yrr8AOOf3VD4=";
};
x86_64-linux = {
url = "https://github.com/Kong/insomnia/releases/download/core%40${version}/Insomnia.Core-${version}.AppImage";
- hash = "sha256-/0fJmbXhjrcVVSFvxd847mSKrzrZRK3Sqi6rjyaBOUw=";
+ hash = "sha256-PlcKBQnkmgU/SsLRKX7ohrGHm7B4hK9FMkplwlbFolI=";
};
}
.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
diff --git a/pkgs/by-name/ip/ip2unix/package.nix b/pkgs/by-name/ip/ip2unix/package.nix
index 78f9d591a9eb..5476d8ad43e7 100644
--- a/pkgs/by-name/ip/ip2unix/package.nix
+++ b/pkgs/by-name/ip/ip2unix/package.nix
@@ -2,13 +2,12 @@
lib,
stdenv,
fetchFromGitHub,
- fetchpatch,
meson,
ninja,
pkg-config,
yaml-cpp,
systemd,
- python3Packages,
+ python313Packages,
asciidoc,
libxslt,
docbook_xml_dtd_45,
@@ -39,8 +38,8 @@ stdenv.mkDerivation (finalAttrs: {
docbook_xsl
libxml2.bin
docbook5
- python3Packages.pytest
- python3Packages.pytest-timeout
+ python313Packages.pytest
+ python313Packages.pytest-timeout
systemd
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ];
diff --git a/pkgs/by-name/is/isolate/package.nix b/pkgs/by-name/is/isolate/package.nix
index 69891ad0a845..f06812ddb73d 100644
--- a/pkgs/by-name/is/isolate/package.nix
+++ b/pkgs/by-name/is/isolate/package.nix
@@ -8,17 +8,18 @@
systemdLibs,
installShellFiles,
nixosTests,
+ libseccomp,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "isolate";
- version = "2.3";
+ version = "2.5";
src = fetchFromGitHub {
owner = "ioi";
repo = "isolate";
rev = "v${finalAttrs.version}";
- hash = "sha256-z/23k6F9XHbJDFld9tjIafUZzbUDEWAnbLvAoaEAilQ=";
+ hash = "sha256-a6FQxyClE9cXB0wHV0Z4kjYY6S1+mUE4ReroOifNjKg=";
};
nativeBuildInputs = [
@@ -30,6 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
libcap.dev
systemdLibs.dev
+ libseccomp
];
patches = [
diff --git a/pkgs/by-name/it/itsycal/0001-Allow-running-from-the-Nix-store.patch b/pkgs/by-name/it/itsycal/0001-Allow-running-from-the-Nix-store.patch
new file mode 100644
index 000000000000..dc11f42f160d
--- /dev/null
+++ b/pkgs/by-name/it/itsycal/0001-Allow-running-from-the-Nix-store.patch
@@ -0,0 +1,29 @@
+From 9ce5e368c00ed887f6d2628d4e8eff664bff5522 Mon Sep 17 00:00:00 2001
+From: 4evy
+Date: Sat, 11 Jul 2026 01:12:36 +0300
+Subject: [PATCH 1/4] Allow running from the Nix store
+
+Upstream normally requires the bundle to live in /Applications because its
+Sparkle updater needs a stable, writable installation path. Nix applications
+instead live in the immutable Nix store and are updated by Nix.
+
+Use upstream's existing kAllowOutsideApplicationsFolder escape hatch as the
+registered default. This preserves upstream's check and keeps the downstream
+change to one explicit policy setting.
+---
+ Itsycal/AppDelegate.m | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Itsycal/AppDelegate.m b/Itsycal/AppDelegate.m
+index 5cc187a..ee256d9 100644
+--- a/Itsycal/AppDelegate.m
++++ b/Itsycal/AppDelegate.m
+@@ -42,6 +42,8 @@
+ kThemePreference: @0, // System=0, Light=1, Dark=2
+ kHideIcon: @(NO),
+ kShowLocation: @(NO),
++ // Nix installs the app in the immutable Nix store, not /Applications.
++ kAllowOutsideApplicationsFolder: @(YES),
+ kEnableTahoeMenuIcons: @(NO),
+ kDoNotDrawOutlineAroundCurrentMonth: @(NO)
+ }];
diff --git a/pkgs/by-name/it/itsycal/0002-Remove-self-update-controls-for-Nix-builds.patch b/pkgs/by-name/it/itsycal/0002-Remove-self-update-controls-for-Nix-builds.patch
new file mode 100644
index 000000000000..de244f092ff6
--- /dev/null
+++ b/pkgs/by-name/it/itsycal/0002-Remove-self-update-controls-for-Nix-builds.patch
@@ -0,0 +1,124 @@
+From f1474c9b296a3fbef30ca577dbd9a92224290b97 Mon Sep 17 00:00:00 2001
+From: 4evy
+Date: Sat, 11 Jul 2026 01:12:47 +0300
+Subject: [PATCH 2/4] Remove self-update controls for Nix builds
+
+Sparkle cannot replace an application inside the immutable Nix store. Leaving
+its menu item and preference checkbox backed by a no-op stub is misleading.
+
+Remove the updater object, imports, controls, action, and matching Tahoe menu
+symbol so the Nix build has no Sparkle runtime dependency or non-functional
+update UI.
+---
+ Itsycal/Base.lproj/MainMenu.xib | 1 -
+ Itsycal/PrefsGeneralVC.m | 11 ++---------
+ Itsycal/ViewController.m | 9 ---------
+ 3 files changed, 2 insertions(+), 19 deletions(-)
+
+diff --git a/Itsycal/Base.lproj/MainMenu.xib b/Itsycal/Base.lproj/MainMenu.xib
+index aa2067e..1a25048 100644
+--- a/Itsycal/Base.lproj/MainMenu.xib
++++ b/Itsycal/Base.lproj/MainMenu.xib
+@@ -89,6 +89,5 @@
+
+
+
+-
+
+
+diff --git a/Itsycal/PrefsGeneralVC.m b/Itsycal/PrefsGeneralVC.m
+index 7c19942..86f6be0 100644
+--- a/Itsycal/PrefsGeneralVC.m
++++ b/Itsycal/PrefsGeneralVC.m
+@@ -9,7 +9,6 @@
+ #import "MoVFLHelper.h"
+ #import "EventCenter.h"
+ #import "MASShortcut/Shortcut.h"
+-#import "Sparkle/SUUpdater.h"
+
+ static NSString * const kSourceCellId = @"SourceCell";
+ static NSString * const kCalendarCellId = @"CalendarCell";
+@@ -33,7 +32,6 @@ static NSString * const kCalendarCellId = @"CalendarCell";
+ {
+ NSTextField *_title;
+ NSButton *_login;
+- NSButton *_checkUpdates;
+ NSButton *_beepBeep;
+ NSPopUpButton *_firstDayPopup;
+ NSTableView *_calendarsTV;
+@@ -66,7 +64,6 @@ static NSString * const kCalendarCellId = @"CalendarCell";
+ // Checkboxes
+ _login = chkbx(NSLocalizedString(@"Launch at login", @""));
+ _login.action = @selector(launchAtLogin:);
+- _checkUpdates = chkbx(NSLocalizedString(@"Automatically check for updates", @""));
+ _beepBeep = chkbx(NSLocalizedString(@"Beep beep on the hour", @""));
+
+ // First day of week label
+@@ -130,10 +127,9 @@ static NSString * const kCalendarCellId = @"CalendarCell";
+ NSLocalizedString(@"31 days", @"")]];
+ [v addSubview:_agendaDaysPopup];
+
+- MoVFLHelper *vfl = [[MoVFLHelper alloc] initWithSuperview:v metrics:@{@"m": @20} views:NSDictionaryOfVariableBindings(_login, _checkUpdates, _beepBeep, firstDayLabel, _firstDayPopup, shortcutLabel, shortcutView, tvContainer, agendaDaysLabel, _agendaDaysPopup)];
+- [vfl :@"V:|-m-[_login]-[_checkUpdates]-[_beepBeep]-20-[_firstDayPopup]-20-[shortcutLabel]-3-[shortcutView(25)]-20-[tvContainer(170)]-[_agendaDaysPopup]-m-|"];
++ MoVFLHelper *vfl = [[MoVFLHelper alloc] initWithSuperview:v metrics:@{@"m": @20} views:NSDictionaryOfVariableBindings(_login, _beepBeep, firstDayLabel, _firstDayPopup, shortcutLabel, shortcutView, tvContainer, agendaDaysLabel, _agendaDaysPopup)];
++ [vfl :@"V:|-m-[_login]-[_beepBeep]-20-[_firstDayPopup]-20-[shortcutLabel]-3-[shortcutView(25)]-20-[tvContainer(170)]-[_agendaDaysPopup]-m-|"];
+ [vfl :@"H:|-m-[_login]-(>=m)-|"];
+- [vfl :@"H:|-m-[_checkUpdates]-(>=m)-|"];
+ [vfl :@"H:|-m-[_beepBeep]-(>=m)-|"];
+ [vfl :@"H:|-m-[firstDayLabel]-[_firstDayPopup]-(>=m)-|" :NSLayoutFormatAlignAllFirstBaseline];
+ [vfl :@"H:|-(>=m)-[shortcutLabel]-(>=m)-|"];
+@@ -144,9 +140,6 @@ static NSString * const kCalendarCellId = @"CalendarCell";
+ // Center shortcutLabel
+ [v addConstraint:[NSLayoutConstraint constraintWithItem:shortcutLabel attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:v attribute:NSLayoutAttributeCenterX multiplier:1 constant:0]];
+
+- // Binding for Sparkle automatic update checks
+- [_checkUpdates bind:@"value" toObject:[SUUpdater sharedUpdater] withKeyPath:@"automaticallyChecksForUpdates" options:@{NSContinuouslyUpdatesValueBindingOption: @(YES)}];
+-
+ // Binding for hourly beep
+ [_beepBeep bind:@"value" toObject:[NSUserDefaultsController sharedUserDefaultsController] withKeyPath:[@"values." stringByAppendingString:kBeepBeepOnTheHour] options:@{NSContinuouslyUpdatesValueBindingOption: @(YES)}];
+
+diff --git a/Itsycal/ViewController.m b/Itsycal/ViewController.m
+index 1d55c4f..0bd303b 100644
+--- a/Itsycal/ViewController.m
++++ b/Itsycal/ViewController.m
+@@ -21,7 +21,6 @@
+ #import "MoButton.h"
+ #import "MoVFLHelper.h"
+ #import "MoUtils.h"
+-#import "Sparkle/SUUpdater.h"
+
+ @implementation ViewController
+ {
+@@ -378,7 +377,6 @@
+ NSInteger i = 0;
+
+ [optMenu insertItemWithTitle:NSLocalizedString(@"About Itsycal", @"") action:@selector(showAbout:) keyEquivalent:@"" atIndex:i++];
+- [optMenu insertItemWithTitle:NSLocalizedString(@"Check for Updates…", @"") action:@selector(checkForUpdates:) keyEquivalent:@"" atIndex:i++];
+ [optMenu insertItem:[NSMenuItem separatorItem] atIndex:i++];
+ [optMenu insertItemWithTitle:NSLocalizedString(@"Go to Date…", @"") action:@selector(showDatePickerPopover:) keyEquivalent:@"T" atIndex:i++];
+ [optMenu insertItem:[NSMenuItem separatorItem] atIndex:i++];
+@@ -394,7 +392,6 @@
+ NSInteger index = 0;
+ NSArray *symbolNames = @[
+ @"info.circle",
+- @"arrow.trianglehead.2.clockwise",
+ @"21.calendar",
+ @"gear",
+ @"calendar.badge.clock",
+@@ -462,11 +459,6 @@
+ [self.prefsWC showWindow:self];
+ }
+
+-- (void)checkForUpdates:(id)sender
+-{
+- [[SUUpdater sharedUpdater] checkForUpdates:self];
+-}
+-
+ - (void)openDateAndTimePrefs:(id)sender
+ {
+ NSURL *url = nil;
+@@ -1514,4 +1506,3 @@
+ }
+
+ @end
+-
diff --git a/pkgs/by-name/it/itsycal/0003-Use-modern-ServiceManagement-login-items.patch b/pkgs/by-name/it/itsycal/0003-Use-modern-ServiceManagement-login-items.patch
new file mode 100644
index 000000000000..44a67ce1d791
--- /dev/null
+++ b/pkgs/by-name/it/itsycal/0003-Use-modern-ServiceManagement-login-items.patch
@@ -0,0 +1,116 @@
+From d3d2dd9ce8b566496503c38158199432a5ae87bb Mon Sep 17 00:00:00 2001
+From: 4evy
+Date: Sat, 11 Jul 2026 01:12:47 +0300
+Subject: [PATCH 3/4] Use modern ServiceManagement login items
+
+LSSharedFileList was deprecated in macOS 10.11 and its status lookup can fail
+when disconnected network volumes are present. Nixpkgs now targets macOS 14,
+so no legacy fallback is needed.
+
+Use SMAppService.mainAppService, available since macOS 13. Treat
+RequiresApproval as registered so users can still turn the pending login item
+off. The package signs the complete app bundle after fixup, as required by
+ServiceManagement.
+---
+ Itsycal/MoLoginItem.m | 58 +++++++---------------------------------
+ Itsycal/PrefsGeneralVC.m | 12 +--------
+ 2 files changed, 11 insertions(+), 59 deletions(-)
+
+diff --git a/Itsycal/MoLoginItem.m b/Itsycal/MoLoginItem.m
+index 7efa602..0dc4960 100644
+--- a/Itsycal/MoLoginItem.m
++++ b/Itsycal/MoLoginItem.m
+@@ -4,60 +4,22 @@
+ //
+
+ #import "MoLoginItem.h"
+-
+-// LSSharedFileList API was deprecated in macOS 10.11
+-#pragma clang diagnostic push
+-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
++#import
+
+ BOOL MOIsLoginItemEnabled(void)
+ {
+- BOOL isEnabled = NO;
+- NSString *appPath = [[NSBundle mainBundle] bundlePath];
+- LSSharedFileListRef loginItemsRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
+-
+- if (loginItemsRef) {
+- UInt32 seedValue;
+- NSArray *loginItems = CFBridgingRelease(LSSharedFileListCopySnapshot(loginItemsRef, &seedValue));
+- for (id item in loginItems) {
+- LSSharedFileListItemRef itemRef = (__bridge LSSharedFileListItemRef)item;
+- NSURL *pathURL = CFBridgingRelease(LSSharedFileListItemCopyResolvedURL(itemRef, 0, NULL));
+- if (pathURL && [pathURL.path hasPrefix:appPath]) {
+- isEnabled = YES;
+- break;
+- }
+- }
+- CFRelease(loginItemsRef);
+- }
+- return isEnabled;
++ SMAppServiceStatus status = SMAppService.mainAppService.status;
++ return status == SMAppServiceStatusEnabled || status == SMAppServiceStatusRequiresApproval;
+ }
+
+ void MOEnableLoginItem(BOOL enable)
+ {
+- NSString *appPath = [[NSBundle mainBundle] bundlePath];
+- LSSharedFileListRef loginItemsRef = LSSharedFileListCreate(NULL, kLSSharedFileListSessionLoginItems, NULL);
+-
+- if (loginItemsRef) {
+- if (enable) {
+- // We call LSSharedFileListInsertItemURL to insert the item at the bottom of Login Items list.
+- CFURLRef url = (__bridge CFURLRef)[NSURL fileURLWithPath:appPath];
+- LSSharedFileListItemRef item = LSSharedFileListInsertItemURL(loginItemsRef, kLSSharedFileListItemLast, NULL, NULL, url, NULL, NULL);
+- if (item != NULL) CFRelease(item);
+- }
+- else {
+- // Grab the contents of the shared file list (LSSharedFileListItemRef objects)
+- // and pop it in an array so we can iterate through it to find our item.
+- UInt32 seedValue;
+- NSArray *loginItems = CFBridgingRelease(LSSharedFileListCopySnapshot(loginItemsRef, &seedValue));
+- for (id item in loginItems) {
+- LSSharedFileListItemRef itemRef = (__bridge LSSharedFileListItemRef)item;
+- NSURL *pathURL = CFBridgingRelease(LSSharedFileListItemCopyResolvedURL(itemRef, 0, NULL));
+- if (pathURL && [pathURL.path hasPrefix:appPath]) {
+- LSSharedFileListItemRemove(loginItemsRef, itemRef); // Deleting the item
+- }
+- }
+- }
+- CFRelease(loginItemsRef);
++ SMAppService *service = SMAppService.mainAppService;
++ NSError *error = nil;
++ BOOL succeeded = enable
++ ? [service registerAndReturnError:&error]
++ : [service unregisterAndReturnError:&error];
++ if (!succeeded) {
++ NSLog(@"Unable to %@ launch at login: %@", enable ? @"enable" : @"disable", error);
+ }
+ }
+-
+-#pragma clang diagnostic pop
+diff --git a/Itsycal/PrefsGeneralVC.m b/Itsycal/PrefsGeneralVC.m
+index 86f6be0..ecfd30d 100644
+--- a/Itsycal/PrefsGeneralVC.m
++++ b/Itsycal/PrefsGeneralVC.m
+@@ -158,17 +158,7 @@ static NSString * const kCalendarCellId = @"CalendarCell";
+
+ _sourcesAndCalendars = [self.ec sourcesAndCalendars];
+
+- // The API used to check the login item's state (LSSharedFileList) causes
+- // errors for users who have network drives but are not connected to their
+- // network (github.com/sfsam/Itsycal/issues/15). Give them an option to
+- // disable this check.
+- if ([[NSUserDefaults standardUserDefaults] boolForKey:@"DoNotCheckLoginItemStatus"] == NO) {
+- _login.hidden = NO;
+- _login.state = MOIsLoginItemEnabled() ? NSControlStateValueOn : NSControlStateValueOff;
+- }
+- else {
+- _login.hidden = YES;
+- }
++ _login.state = MOIsLoginItemEnabled() ? NSControlStateValueOn : NSControlStateValueOff;
+
+ _calendarsTV.enabled = self.ec.calendarAccessGranted;
+ _agendaDaysPopup.enabled = self.ec.calendarAccessGranted;
diff --git a/pkgs/by-name/it/itsycal/0004-Use-APIs-available-on-the-Nixpkgs-macOS-baseline.patch b/pkgs/by-name/it/itsycal/0004-Use-APIs-available-on-the-Nixpkgs-macOS-baseline.patch
new file mode 100644
index 000000000000..21cd84f9f0e2
--- /dev/null
+++ b/pkgs/by-name/it/itsycal/0004-Use-APIs-available-on-the-Nixpkgs-macOS-baseline.patch
@@ -0,0 +1,90 @@
+From 6fb6ac13a8deee492449442e1ab3d7429aa9fff8 Mon Sep 17 00:00:00 2001
+From: 4evy
+Date: Sat, 11 Jul 2026 01:12:55 +0300
+Subject: [PATCH 4/4] Use APIs available on the Nixpkgs macOS baseline
+
+The package metadata and Mach-O deployment target are both macOS 14. Remove
+compatibility branches for older systems and use the corresponding current
+APIs:
+
+* request EventKit full access directly;
+* discover the calendar handler through NSWorkspace and
+ UniformTypeIdentifiers;
+* use the renamed CoreAudio main-element constant.
+---
+ Itsycal/EventCenter.m | 20 ++------------------
+ Itsycal/ViewController.m | 9 ++++-----
+ 2 files changed, 6 insertions(+), 23 deletions(-)
+
+diff --git a/Itsycal/EventCenter.m b/Itsycal/EventCenter.m
+index 148c631..3862630 100644
+--- a/Itsycal/EventCenter.m
++++ b/Itsycal/EventCenter.m
+@@ -59,15 +59,7 @@ static NSString *kSelectedCalendars = @"SelectedCalendars";
+ _queueIsol = dispatch_queue_create("com.mowglii.Itsycal.queueIsol", DISPATCH_QUEUE_SERIAL);
+ _queueIsol2 = dispatch_queue_create("com.mowglii.Itsycal.queueIsol2", DISPATCH_QUEUE_SERIAL);
+ _store = [EKEventStore new];
+-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 140000
+- if (@available(macOS 14.0, *)) {
+- [_store requestFullAccessToEventsWithCompletion:requestCompletionHandler];
+- } else {
+- [_store requestAccessToEntityType:EKEntityTypeEvent completion:requestCompletionHandler];
+- }
+-#else
+- [_store requestAccessToEntityType:EKEntityTypeEvent completion:requestCompletionHandler];
+-#endif
++ [_store requestFullAccessToEventsWithCompletion:requestCompletionHandler];
+
+ // Refetch everything when the event store has changed.
+ __weak __typeof(self) weakSelf = self;
+@@ -85,15 +77,7 @@ static NSString *kSelectedCalendars = @"SelectedCalendars";
+ #pragma mark - Public (main thread)
+
+ - (BOOL)calendarAccessGranted {
+-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 140000
+- if (@available(macOS 14.0, *)) {
+- return [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent] == EKAuthorizationStatusFullAccess;
+- } else {
+- return [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent] == EKAuthorizationStatusAuthorized;
+- }
+-#else
+- return [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent] == EKAuthorizationStatusAuthorized;
+-#endif
++ return [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent] == EKAuthorizationStatusFullAccess;
+ }
+
+ - (NSString *)defaultCalendarIdentifier {
+diff --git a/Itsycal/ViewController.m b/Itsycal/ViewController.m
+index 0bd303b..a887682 100644
+--- a/Itsycal/ViewController.m
++++ b/Itsycal/ViewController.m
+@@ -21,6 +21,7 @@
+ #import "MoButton.h"
+ #import "MoVFLHelper.h"
+ #import "MoUtils.h"
++#import
+
+ @implementation ViewController
+ {
+@@ -319,10 +320,8 @@
+ // Determine the default calendar app.
+ // See: support.busymac.com/help/21535-busycal-url-handler
+
+- CFStringRef strRef = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, CFSTR("ics"), kUTTypeData);
+- CFStringRef bundleID = LSCopyDefaultRoleHandlerForContentType(strRef, kLSRolesEditor);
+- CFRelease(strRef);
+- NSString *defaultCalendarAppBundleID = CFBridgingRelease(bundleID);
++ NSURL *defaultCalendarAppURL = [NSWorkspace.sharedWorkspace URLForApplicationToOpenContentType:UTTypeCalendarEvent];
++ NSString *defaultCalendarAppBundleID = [NSBundle bundleWithURL:defaultCalendarAppURL].bundleIdentifier;
+
+ // Use URL scheme to open BusyCal or Fantastical2 on the
+ // date selected in our calendar.
+@@ -1263,7 +1262,7 @@
+ AudioObjectPropertyAddress propertyAddress;
+ propertyAddress.mSelector = kAudioHardwarePropertyDefaultOutputDevice;
+ propertyAddress.mScope = kAudioObjectPropertyScopeGlobal;
+- propertyAddress.mElement = kAudioObjectPropertyElementMaster;
++ propertyAddress.mElement = kAudioObjectPropertyElementMain;
+
+ OSStatus result = AudioObjectGetPropertyData(kAudioObjectSystemObject, &propertyAddress, 0, NULL, &dataSize, &deviceID);
+
diff --git a/pkgs/by-name/it/itsycal/package.nix b/pkgs/by-name/it/itsycal/package.nix
index 18542c37f049..78b7fcb4bd51 100644
--- a/pkgs/by-name/it/itsycal/package.nix
+++ b/pkgs/by-name/it/itsycal/package.nix
@@ -1,42 +1,240 @@
{
lib,
- fetchzip,
- stdenvNoCC,
+ stdenv,
+ fetchFromGitHub,
+ actool,
+ ibtool,
+ lld,
+ makeWrapper,
+ rcodesign,
+ re-plistbuddy,
+ nix-update-script,
}:
-stdenvNoCC.mkDerivation (finalAttrs: {
+let
+ # Upstream ships MASShortcut only as a prebuilt framework. Build the
+ # maintained Rectangle fork instead; it adds F20 and macOS Tahoe fixes while
+ # retaining the API and bundle identity used by Itsycal.
+ masShortcutSrc = fetchFromGitHub {
+ owner = "rxhanson";
+ repo = "MASShortcut";
+ rev = "2f9fbb3f959b7a683c6faaf9638d22afad37a235";
+ hash = "sha256-EZLt7ph24L1wwFEMlltuPutId09RBug/y9OtDhixIig=";
+ };
+
+ masShortcutSources = [
+ "Model/MASShortcut.m"
+ "Model/MASShortcutValidator.m"
+ "Monitoring/MASHotKey.m"
+ "Monitoring/MASShortcutMonitor.m"
+ "UI/MASLocalization.m"
+ "UI/MASShortcutView.m"
+ "UI/MASShortcutView+Bindings.m"
+ "UI/MASShortcutViewButtonCell.m"
+ "User Defaults Storage/MASDictionaryTransformer.m"
+ "User Defaults Storage/MASShortcutBinder.m"
+ ];
+
+ masShortcutInfoPlist = lib.generators.toPlist { escape = true; } {
+ CFBundleDevelopmentRegion = "English";
+ CFBundleExecutable = "MASShortcut";
+ CFBundleIdentifier = "com.github.shpakovski.MASShortcut";
+ CFBundleInfoDictionaryVersion = "6.0";
+ CFBundleName = "MASShortcut";
+ CFBundlePackageType = "FMWK";
+ CFBundleShortVersionString = "2.4.0";
+ CFBundleVersion = "2.4.0";
+ NSHumanReadableCopyright = "Copyright © Vadim Shpakovski. All rights reserved.";
+ };
+in
+stdenv.mkDerivation (finalAttrs: {
pname = "itsycal";
version = "0.15.12";
- src = fetchzip {
- url = "https://itsycal.s3.amazonaws.com/Itsycal-${finalAttrs.version}.zip";
- hash = "sha256-2Xu1ZQnNl0o2/AYOIjxZPDnc0TxMXrqKej7CCZEVV9I=";
- stripRoot = false;
+ src = fetchFromGitHub {
+ owner = "sfsam";
+ repo = "Itsycal";
+ tag = finalAttrs.version;
+ hash = "sha256-K25oG8d+OauNHLkatLLskfcWCqOmM2WEw2Ygd3v1uqE=";
};
+ patches = [
+ # Use upstream's hidden escape hatch for installations outside /Applications.
+ ./0001-Allow-running-from-the-Nix-store.patch
+ # Nix owns updates, so remove the otherwise non-functional Sparkle UI.
+ ./0002-Remove-self-update-controls-for-Nix-builds.patch
+ # Replace the deprecated LSSharedFileList implementation with SMAppService.
+ ./0003-Use-modern-ServiceManagement-login-items.patch
+ # The Nixpkgs Darwin baseline is macOS 14; use its non-deprecated APIs.
+ ./0004-Use-APIs-available-on-the-Nixpkgs-macOS-baseline.patch
+ ];
+
+ strictDeps = true;
+
+ nativeBuildInputs = [
+ actool
+ ibtool
+ lld
+ makeWrapper
+ rcodesign
+ re-plistbuddy
+ ];
+
+ # The classic open-source ld64 crashes while linking MASShortcut on arm64.
+ # Keep lld until the cctools linker can link this framework reliably.
+ env.NIX_CFLAGS_LINK = "-fuse-ld=lld";
+
+ dontConfigure = true;
+
+ postPatch = ''
+ # Both upstream frameworks contain native code. MASShortcut is rebuilt
+ # below and Sparkle is removed by patch 0002, so make accidental reuse fail.
+ rm -rf Itsycal/_frameworks
+ '';
+
+ buildPhase = ''
+ runHook preBuild
+
+ buildDir="$PWD/build"
+ mkdir -p "$buildDir/module-cache"
+
+ # actool accepts one catalog, while upstream keeps images and colors in
+ # separate catalogs. Merge them without changing their contents.
+ cp -R Itsycal/Images.xcassets "$buildDir/Assets.xcassets"
+ cp -R Itsycal/Colors.xcassets/*.colorset "$buildDir/Assets.xcassets/"
+
+ # Compile .m -> .o; flags before --, sources after. Sets _objects array
+ compile_objc() {
+ local prefix="$1"; shift
+ local -a flags=()
+ while [[ "$1" != "--" ]]; do flags+=("$1"); shift; done; shift
+ _objects=()
+ for src in "$@"; do
+ local obj="$buildDir/''${prefix}_$(basename "$src" .m).o"
+ clang -fobjc-arc "''${flags[@]}" -c "$src" -o "$obj"
+ _objects+=("$obj")
+ done
+ }
+
+ link_dylib() {
+ local name="$1"; shift
+ clang -dynamiclib -fobjc-arc \
+ -install_name "@rpath/$name.framework/$name" "$@"
+ }
+
+ # Build MASShortcut as a real framework. The explicit source list avoids
+ # pulling its demo or test targets into the application.
+ masHeaders="$buildDir/MAS_headers/MASShortcut"
+ mkdir -p "$masHeaders"
+ cp ${masShortcutSrc}/Framework/include/*.h "$masHeaders/"
+
+ masSources=( ${
+ lib.escapeShellArgs (map (src: "${masShortcutSrc}/Framework/${src}") masShortcutSources)
+ } )
+ compile_objc mas -fmodules -fmodules-cache-path="$buildDir/module-cache" \
+ -I"$masHeaders" -include AppKit/AppKit.h -- "''${masSources[@]}"
+ link_dylib MASShortcut -framework AppKit -framework Carbon \
+ -compatibility_version 1 -current_version 2.4.0 \
+ -o "$buildDir/MASShortcut.dylib" "''${_objects[@]}"
+
+ # Itsycal
+ compile_objc app -fmodules -fmodules-cache-path="$buildDir/module-cache" \
+ -I"$buildDir/MAS_headers" -IItsycal -- Itsycal/*.m
+ clang -fobjc-arc \
+ -framework AppKit -framework EventKit -framework ScriptingBridge \
+ -framework Carbon -framework ServiceManagement -framework UniformTypeIdentifiers \
+ -Wl,-rpath,@executable_path/../Frameworks \
+ "$buildDir/MASShortcut.dylib" \
+ -o "$buildDir/Itsycal" "''${_objects[@]}"
+
+ runHook postBuild
+ '';
+
installPhase = ''
runHook preInstall
- mkdir -p "$out/Applications"
- cp -R Itsycal.app "$out/Applications/"
+ appDir="$out/Applications/Itsycal.app/Contents"
+ mkdir -p "$appDir"/{MacOS,Frameworks,Resources}
+
+ cp "$buildDir/Itsycal" "$appDir/MacOS/Itsycal"
+
+ # Assemble the framework bundle metadata normally generated by Xcode.
+ mkdir -p "$appDir/Frameworks/MASShortcut.framework/Resources"
+ cp "$buildDir/MASShortcut.dylib" "$appDir/Frameworks/MASShortcut.framework/MASShortcut"
+ cp -r ${masShortcutSrc}/Framework/Resources/*.lproj "$appDir/Frameworks/MASShortcut.framework/Resources/"
+ printf '%s' ${lib.escapeShellArg masShortcutInfoPlist} \
+ > "$appDir/Frameworks/MASShortcut.framework/Resources/Info.plist"
+
+ # Resources
+ ibtool --compile "$appDir/Resources/MainMenu.nib" Itsycal/Base.lproj/MainMenu.xib
+ actool --compile "$appDir/Resources" \
+ --platform macosx \
+ --minimum-deployment-target ${stdenv.hostPlatform.darwinMinVersion} \
+ --app-icon AppIcon \
+ --output-partial-info-plist "$buildDir/asset-info.plist" \
+ "$buildDir/Assets.xcassets"
+ cp Itsycal/beep.mp3 "$appDir/Resources/"
+ mkdir -p "$appDir/Resources/Fonts"
+ cp Itsycal/_fonts/Mow.otf "$appDir/Resources/Fonts/"
+ for lproj in Itsycal/*.lproj; do
+ mkdir -p "$appDir/Resources/$(basename "$lproj")"
+ cp "$lproj"/*.strings "$appDir/Resources/$(basename "$lproj")/" 2>/dev/null || true
+ done
+
+ # Resolve the Xcode variables in upstream's plist. Keeping that plist as
+ # the source of truth means new privacy and bundle metadata is preserved.
+ bundleVersion=$(sed -n 's/.*CURRENT_PROJECT_VERSION = \([0-9]*\);/\1/p' \
+ Itsycal.xcodeproj/project.pbxproj | head -1)
+ cp Itsycal/Info.plist "$appDir/Info.plist"
+ substituteInPlace "$appDir/Info.plist" \
+ --replace-fail '$(EXECUTABLE_NAME)' 'Itsycal' \
+ --replace-fail '$(PRODUCT_BUNDLE_IDENTIFIER)' 'com.mowglii.ItsycalApp' \
+ --replace-fail '$(PRODUCT_NAME)' 'Itsycal' \
+ --replace-fail '$(MARKETING_VERSION)' '${finalAttrs.version}' \
+ --replace-fail '$(CURRENT_PROJECT_VERSION)' "$bundleVersion" \
+ --replace-fail '$(MACOSX_DEPLOYMENT_TARGET)' '${stdenv.hostPlatform.darwinMinVersion}'
+
+ # Merge actool's icon metadata and remove the Sparkle configuration that
+ # no longer has a consumer in this immutable Nix build.
+ PlistBuddy -c 'Set :CFBundleIconFile AppIcon' \
+ -c 'Add :CFBundleIconName string AppIcon' \
+ -c 'Delete :SUAllowsAutomaticUpdates' \
+ -c 'Delete :SUEnableAutomaticChecks' \
+ -c 'Delete :SUFeedURL' \
+ -c 'Delete :SUPublicEDKey' \
+ -c 'Delete :SUScheduledCheckInterval' \
+ "$appDir/Info.plist"
+
+ makeWrapper "$out/Applications/Itsycal.app/Contents/MacOS/Itsycal" "$out/bin/itsycal"
runHook postInstall
'';
- passthru = {
- updateScript = ./update.sh;
+ # Signing only Mach-O files leaves app resources unsealed. Sign the complete
+ # bundle after fixup so ServiceManagement accepts it and nested code verifies.
+ postFixup = ''
+ rcodesign sign "$out/Applications/Itsycal.app"
+ '';
+
+ passthru.updateScript = nix-update-script {
+ # Ignore upstream's non-version "help" tag.
+ extraArgs = [ "--version-regex=^([0-9]+\\.[0-9]+\\.[0-9]+)$" ];
};
meta = {
changelog = "https://www.mowglii.com/itsycal/versionhistory.html";
description = "Tiny menu bar calendar";
homepage = "https://www.mowglii.com/itsycal/";
- license = lib.licenses.mit;
+ license = with lib.licenses; [
+ bsd2
+ mit
+ ];
+ mainProgram = "itsycal";
maintainers = with lib.maintainers; [
eclairevoyant
_4evy
];
platforms = lib.platforms.darwin;
- sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+ sourceProvenance = with lib.sourceTypes; [ fromSource ];
};
})
diff --git a/pkgs/by-name/it/itsycal/update.sh b/pkgs/by-name/it/itsycal/update.sh
deleted file mode 100755
index cd176cc46860..000000000000
--- a/pkgs/by-name/it/itsycal/update.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl xq-xml common-updater-scripts
-
-set -eu
-
-ROOT="$(dirname "$(readlink -f "$0")")"
-NIX_DRV="$ROOT/package.nix"
-if [ ! -f "$NIX_DRV" ]; then
- echo "ERROR: cannot find package.nix in $ROOT"
- exit 1
-fi
-
-LATEST_VERSION="$(curl -Ls https://www.mowglii.com/itsycal/versionhistory.html | xq -m -q 'h4' -a 'id' | head -n1)"
-
-if [ -z "$LATEST_VERSION" ]; then
- echo "ERROR: Failed to scrape the latest version."
- exit 1
-fi
-
-update-source-version itsycal "$LATEST_VERSION" --file="$NIX_DRV"
diff --git a/pkgs/by-name/je/jenkins/package.nix b/pkgs/by-name/je/jenkins/package.nix
index b6f35b371667..46338c62722f 100644
--- a/pkgs/by-name/je/jenkins/package.nix
+++ b/pkgs/by-name/je/jenkins/package.nix
@@ -18,11 +18,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "jenkins";
- version = "2.555.3";
+ version = "2.568.1";
src = fetchurl {
url = "https://get.jenkins.io/war-stable/${finalAttrs.version}/jenkins.war";
- hash = "sha256-XRmQXmwPI6/4n/AH3lVkuW4KBcE/TRqS0P3LabAzu5o=";
+ hash = "sha256-WPJPOWX773cIYp++FY1RvxOP/Vd8rbyGtGNn6K0L64M=";
};
nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/by-name/ka/kargo/package.nix b/pkgs/by-name/ka/kargo/package.nix
index aa0f33dc8aa7..ca3296212efd 100644
--- a/pkgs/by-name/ka/kargo/package.nix
+++ b/pkgs/by-name/ka/kargo/package.nix
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "kargo";
- version = "1.10.7";
+ version = "1.10.8";
src = fetchFromGitHub {
owner = "akuity";
repo = "kargo";
tag = "v${finalAttrs.version}";
- hash = "sha256-Gd/3bc0PhfitQyRaOPhg2BMhqJeipJbZGYGR5DQHHAc=";
+ hash = "sha256-MiNoh5YuywlNKvvNezMaMXOJVhf/IuYGe1NkwOyR7Oo=";
};
vendorHash = "sha256-tucXuZhcCVplFAmRzWJtxbBQccxiVTAheTA55wHMkyw=";
diff --git a/pkgs/by-name/ka/karmor/package.nix b/pkgs/by-name/ka/karmor/package.nix
index f76fa6e73a65..ff29f6d90369 100644
--- a/pkgs/by-name/ka/karmor/package.nix
+++ b/pkgs/by-name/ka/karmor/package.nix
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "karmor";
- version = "1.4.7";
+ version = "1.4.9";
src = fetchFromGitHub {
owner = "kubearmor";
repo = "kubearmor-client";
rev = "v${finalAttrs.version}";
- hash = "sha256-hohzVj2mlch6rSdjsCl+VcTnX9zvYnRrRM97LwbNeNw=";
+ hash = "sha256-iTXUb66B6ONeP7oz+vg2Zkte9OjQYrPffh+zanLWTO0=";
};
- vendorHash = "sha256-DrrLromAT0xSr3SUqWTM78oGXTy73VCD2DJlMwSEGEs=";
+ vendorHash = "sha256-LA2qKCWR5akyVmK0qzVS4rCX8WNPGXrqq1585xTDDrE=";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/by-name/ke/keka/package.nix b/pkgs/by-name/ke/keka/package.nix
index fcea35e15e49..2dbdb9d454bc 100644
--- a/pkgs/by-name/ke/keka/package.nix
+++ b/pkgs/by-name/ke/keka/package.nix
@@ -6,11 +6,11 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "keka";
- version = "1.6.0";
+ version = "1.6.7";
src = fetchzip {
url = "https://github.com/aonez/Keka/releases/download/v${finalAttrs.version}/Keka-${finalAttrs.version}.zip";
- hash = "sha256-E0KvDgjx86myZk5+QsydonDaT31CS+B1QGOUXCOaJxY=";
+ hash = "sha256-6zC8lQLkJ/Qppyo3XwK6fy4f/bLsIg0L+4GwFfiVlvg=";
};
nativeBuildInputs = [ makeWrapper ];
@@ -31,7 +31,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
homepage = "https://www.keka.io";
license = lib.licenses.unfree;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
- maintainers = with lib.maintainers; [ emilytrau ];
+ maintainers = with lib.maintainers; [
+ emilytrau
+ kinnrai
+ ];
platforms = lib.platforms.darwin;
};
})
diff --git a/pkgs/by-name/ki/kitty-bin/package.nix b/pkgs/by-name/ki/kitty-bin/package.nix
new file mode 100644
index 000000000000..f197b6819f5f
--- /dev/null
+++ b/pkgs/by-name/ki/kitty-bin/package.nix
@@ -0,0 +1,52 @@
+{
+ lib,
+ stdenvNoCC,
+ fetchurl,
+ _7zz,
+ nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "kitty-bin";
+ version = "0.47.4";
+
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ src = fetchurl {
+ url = "https://github.com/kovidgoyal/kitty/releases/download/v${finalAttrs.version}/kitty-${finalAttrs.version}.dmg";
+ hash = "sha256-tTubGKJ9U61Eol3Wd2/ejEdIe04QOsUNaCrx7o57d+0=";
+ };
+
+ # undmg can't read the APFS dmg; -snld keeps the .app's symlinks intact.
+ nativeBuildInputs = [ _7zz ];
+ sourceRoot = ".";
+ unpackCmd = "7zz x -snld $curSrc";
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/Applications" "$out/bin"
+ cp -R kitty.app "$out/Applications/kitty.app"
+ ln -s "$out/Applications/kitty.app/Contents/MacOS/kitty" "$out/bin/kitty"
+ ln -s "$out/Applications/kitty.app/Contents/MacOS/kitten" "$out/bin/kitten"
+
+ runHook postInstall
+ '';
+
+ # leave the signed bundle untouched so its signature stays valid.
+ dontFixup = true;
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ homepage = "https://github.com/kovidgoyal/kitty";
+ description = "Fast, feature-rich, GPU based terminal emulator (prebuilt signed macOS app)";
+ changelog = "https://github.com/kovidgoyal/kitty/blob/v${finalAttrs.version}/docs/changelog.rst";
+ license = lib.licenses.gpl3Only;
+ sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+ platforms = lib.platforms.darwin;
+ mainProgram = "kitty";
+ maintainers = with lib.maintainers; [ carlossless ];
+ };
+})
diff --git a/pkgs/by-name/ko/koffan/package.nix b/pkgs/by-name/ko/koffan/package.nix
index 98a67aeb14b0..9c64a542b05a 100644
--- a/pkgs/by-name/ko/koffan/package.nix
+++ b/pkgs/by-name/ko/koffan/package.nix
@@ -7,13 +7,13 @@
buildGoModule (finalAttrs: {
pname = "koffan";
- version = "2.12.0";
+ version = "2.12.2";
src = fetchFromGitHub {
owner = "PanSalut";
repo = "Koffan";
tag = "v${finalAttrs.version}";
- hash = "sha256-E4R2FrL6pqwz1yuF+0TuSIE33/ksrvE0U9XO4z11AfE=";
+ hash = "sha256-0fCKVExxsmqz8ndv26r7iJldcj6OnhiZ8SqPMhR8pHo=";
};
vendorHash = "sha256-BYehi5LQQ0MIsKG/fN3DHaQwKVmxUFrvWGrKZeKj+ow=";
diff --git a/pkgs/by-name/ko/komikku/package.nix b/pkgs/by-name/ko/komikku/package.nix
index 17e81f3c471d..c91f828342e0 100644
--- a/pkgs/by-name/ko/komikku/package.nix
+++ b/pkgs/by-name/ko/komikku/package.nix
@@ -24,14 +24,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "komikku";
- version = "50.8.0";
+ version = "50.9.0";
pyproject = false;
src = fetchFromCodeberg {
owner = "valos";
repo = "Komikku";
tag = "v${finalAttrs.version}";
- hash = "sha256-u10O0+Ty73ad4vB8BgQPsV1W8NJYvzU3wyAhqHtW9v0=";
+ hash = "sha256-fjAls3/ikNrQ1AgwUe9hFoQ48zv7UbGCUNB4dlmYM28=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/ku/kubedb-cli/package.nix b/pkgs/by-name/ku/kubedb-cli/package.nix
index 640af5bdb9ab..952ec48f9f23 100644
--- a/pkgs/by-name/ku/kubedb-cli/package.nix
+++ b/pkgs/by-name/ku/kubedb-cli/package.nix
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "kubedb-cli";
- version = "0.65.0";
+ version = "0.66.0";
src = fetchFromGitHub {
owner = "kubedb";
repo = "cli";
tag = "v${version}";
- hash = "sha256-DHICxjymoqmvEnff4ABVJSuCh8Ojx/RTxgUPlO94HLo=";
+ hash = "sha256-2JS+wvS+EBNrH+VGmfRp39sZjSBkTLX2iLuZuUQ3MZw=";
};
vendorHash = null;
diff --git a/pkgs/by-name/ku/kubernetes-controller-tools/package.nix b/pkgs/by-name/ku/kubernetes-controller-tools/package.nix
index a9d3c5586608..7fea26a4f7ac 100644
--- a/pkgs/by-name/ku/kubernetes-controller-tools/package.nix
+++ b/pkgs/by-name/ku/kubernetes-controller-tools/package.nix
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "controller-tools";
- version = "0.20.1";
+ version = "0.21.0";
src = fetchFromGitHub {
owner = "kubernetes-sigs";
repo = "controller-tools";
tag = "v${finalAttrs.version}";
- sha256 = "sha256-c1d7FlfGv7iGS+4GyhsO99OrCBIxO3M9r7jwYh7qs2o=";
+ sha256 = "sha256-4IkVnD87/sHZKixDaF9Qz95cdChPfOkEowBQwu7kq9Y=";
};
- vendorHash = "sha256-cFnUfcoLyFHg0JR6ix0AnpSHUGuNNVbKldKelvvMu/4=";
+ vendorHash = "sha256-LNjd0PDVa4GMY1rFJ5PFiWAEeA5MMraIIzZmYgkdgJc=";
ldflags = [
"-s"
diff --git a/pkgs/by-name/ku/kubeshark/package.nix b/pkgs/by-name/ku/kubeshark/package.nix
index bb8327f5db10..46ceb2439622 100644
--- a/pkgs/by-name/ku/kubeshark/package.nix
+++ b/pkgs/by-name/ku/kubeshark/package.nix
@@ -66,7 +66,7 @@ buildGoModule (finalAttrs: {
changelog = "https://github.com/kubeshark/kubeshark/releases/tag/v${finalAttrs.version}";
description = "API Traffic Viewer for Kubernetes";
mainProgram = "kubeshark";
- homepage = "https://kubeshark.co/";
+ homepage = "https://kubeshark.com/";
license = lib.licenses.asl20;
longDescription = ''
The API traffic viewer for Kubernetes providing real-time, protocol-aware visibility into Kubernetes’ internal network,
diff --git a/pkgs/by-name/la/lagrange/package.nix b/pkgs/by-name/la/lagrange/package.nix
index 5c8ae4a47f52..20c3e12b4195 100644
--- a/pkgs/by-name/la/lagrange/package.nix
+++ b/pkgs/by-name/la/lagrange/package.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Beautiful Gemini Client";
homepage = "https://gmi.skyjake.fi/lagrange/";
+ mainProgram = "lagrange";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ sikmir ];
platforms = lib.platforms.unix;
diff --git a/pkgs/by-name/la/lammps/package.nix b/pkgs/by-name/la/lammps/package.nix
index 40ed6f08f348..d25664c8f85e 100644
--- a/pkgs/by-name/la/lammps/package.nix
+++ b/pkgs/by-name/la/lammps/package.nix
@@ -8,6 +8,7 @@
blas,
lapack,
python3,
+ mpich,
cmake,
autoAddDriverRunpath,
pkg-config,
@@ -39,6 +40,7 @@
SRD = true;
REAXFF = true;
PYTHON = true;
+ MPIIO = true;
},
# Extra cmakeFlags to add as "-D${attr}=${value}"
extraCmakeFlags ? { },
@@ -71,7 +73,12 @@ stdenv.mkDerivation (finalAttrs: {
# GPU_API=cuda, and it doesn't users that don't enable the GPU package.
autoAddDriverRunpath
]
- ++ lib.optionals packages.PYTHON [ python3 ];
+ ++ lib.optionals packages.PYTHON [
+ python3
+ ]
+ ++ lib.optionals packages.MPIIO [
+ mpich
+ ];
passthru = {
inherit packages;
diff --git a/pkgs/by-name/le/leetgpu/package.nix b/pkgs/by-name/le/leetgpu/package.nix
index c1225e123892..78a13e1fffa3 100644
--- a/pkgs/by-name/le/leetgpu/package.nix
+++ b/pkgs/by-name/le/leetgpu/package.nix
@@ -26,11 +26,6 @@ let
url = "https://cli.leetgpu.com/dist/${version}/leetgpu-macos-arm64";
hash = "sha256-B1Sdyw+6fDBKS3PsINmiNA9PnOtEpDZiodFPsx+qk1Y=";
};
-
- x86_64-darwin = fetchurl {
- url = "https://cli.leetgpu.com/dist/${version}/leetgpu-macos-amd64";
- hash = "sha256-Iw2w0qDddM38OE37mVZ4krRTqjKGhXPxZSCav+oM1ac=";
- };
};
src = srcs.${stdenvNoCC.hostPlatform.system} or throwSystem;
diff --git a/pkgs/by-name/le/leetgpu/update.sh b/pkgs/by-name/le/leetgpu/update.sh
index 6a1f26c5d462..b30ac924cbe9 100755
--- a/pkgs/by-name/le/leetgpu/update.sh
+++ b/pkgs/by-name/le/leetgpu/update.sh
@@ -16,7 +16,6 @@ update-source-version leetgpu $latestVersion || true
for system in \
x86_64-linux \
aarch64-linux \
- x86_64-darwin \
aarch64-darwin; do
hash=$(nix store prefetch-file --json --hash-type sha256 \
$(nix-instantiate --eval --raw -E "with import ./. {}; leetgpu.src.url" --system "$system") | jq -r '.hash')
diff --git a/pkgs/by-name/li/libcpr/package.nix b/pkgs/by-name/li/libcpr/package.nix
index e55950be8b7b..82a38e7be001 100644
--- a/pkgs/by-name/li/libcpr/package.nix
+++ b/pkgs/by-name/li/libcpr/package.nix
@@ -9,7 +9,7 @@
}:
let
- version = "1.14.1";
+ version = "1.14.2";
in
stdenv.mkDerivation {
pname = "libcpr";
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
owner = "libcpr";
repo = "cpr";
rev = version;
- hash = "sha256-kwbkdAeTpkEJbzvqpUQx007ZIBtwqOPG8n41TvFxeiM=";
+ hash = "sha256-fglJNQzf+5c5nJysxqTxE4EWSQO0GVauLV8yLypQMPs=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/li/libhangul/package.nix b/pkgs/by-name/li/libhangul/package.nix
index e7630d33b024..caec4833b7df 100644
--- a/pkgs/by-name/li/libhangul/package.nix
+++ b/pkgs/by-name/li/libhangul/package.nix
@@ -1,29 +1,42 @@
{
lib,
stdenv,
- fetchurl,
+ fetchFromGitHub,
+ autoreconfHook,
+ pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libhangul";
- version = "0.1.0";
+ version = "0.2.0";
- src = fetchurl {
- url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/libhangul/libhangul-${finalAttrs.version}.tar.gz";
- sha256 = "0ni9b0v70wkm0116na7ghv03pgxsfpfszhgyj3hld3bxamfal1ar";
+ src = fetchFromGitHub {
+ owner = "libhangul";
+ repo = "libhangul";
+ hash = "sha256-1cTDsRJpT5TLdJN8D2LfOISWeAOlSO6zKZOaCrTxooM=";
+ tag = "libhangul-${finalAttrs.version}";
};
+ preAutoreconf = "./autogen.sh";
configureFlags = [
# detection doesn't work for cross builds
"ac_cv_func_realloc_0_nonnull=yes"
];
+ nativeBuildInputs = [
+ autoreconfHook
+ pkg-config
+ ];
+
meta = {
description = "Core algorithm library for Korean input routines";
mainProgram = "hangul";
- homepage = "https://github.com/choehwanjin/libhangul";
- license = lib.licenses.lgpl21;
- maintainers = [ lib.maintainers.ianwookim ];
+ homepage = "https://github.com/libhangul/libhangul";
+ license = lib.licenses.lgpl21Plus;
+ maintainers = with lib.maintainers; [
+ ianwookim
+ honnip
+ ];
platforms = lib.platforms.linux;
};
})
diff --git a/pkgs/by-name/li/liblouis/package.nix b/pkgs/by-name/li/liblouis/package.nix
index 082fa6ddfe50..6bfbfbdddd8c 100644
--- a/pkgs/by-name/li/liblouis/package.nix
+++ b/pkgs/by-name/li/liblouis/package.nix
@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "liblouis";
- version = "3.33.0";
+ version = "3.38.0";
outputs = [
"out"
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "liblouis";
repo = "liblouis";
rev = "v${finalAttrs.version}";
- hash = "sha256-+p/2eLbQ5aYtxQIkoHaVE1xDqstveedf+56aRNX9C7M=";
+ hash = "sha256-OmYMldo2id2HKAM0Hxi6r86khSUnzu22CkJhGBhaaL8=";
};
strictDeps = true;
@@ -63,7 +63,8 @@ stdenv.mkDerivation (finalAttrs: {
postPatch = ''
patchShebangs tests
- substituteInPlace python/louis/__init__.py.in --replace "###LIBLOUIS_SONAME###" "$out/lib/liblouis.so"
+ substituteInPlace python/louis/__init__.py.in \
+ --replace-fail "###LIBLOUIS_SONAME###" "$out/lib/liblouis.so"
'';
postInstall = ''
@@ -71,6 +72,12 @@ stdenv.mkDerivation (finalAttrs: {
python -m build --no-isolation --outdir dist/ --wheel
python -m installer --prefix $out dist/*.whl
popd
+
+ make install-html MAKEINFOFLAGS="--no-headers --no-split"
+ pushd doc
+ make liblouis.txt
+ popd
+ install -D -t "$doc/share/doc/liblouis" doc/liblouis.txt
'';
doCheck = true;
diff --git a/pkgs/by-name/li/libqalculate/package.nix b/pkgs/by-name/li/libqalculate/package.nix
index d4618b54cecb..0c6e356babd5 100644
--- a/pkgs/by-name/li/libqalculate/package.nix
+++ b/pkgs/by-name/li/libqalculate/package.nix
@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libqalculate";
- version = "5.11.0";
+ version = "5.12.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "libqalculate";
tag = "v${finalAttrs.version}";
- hash = "sha256-lwA2faLYUb02FL9lOX+vuv/8pfKbkHWRlS1VnrV+sk4=";
+ hash = "sha256-f9FzFcu2LtBM6B6apYo7uobeR5uZVb02FxX7Kng/rRI=";
};
outputs = [
diff --git a/pkgs/by-name/li/libvlcpp/package.nix b/pkgs/by-name/li/libvlcpp/package.nix
index 5aae8b619233..450acf0c48fd 100644
--- a/pkgs/by-name/li/libvlcpp/package.nix
+++ b/pkgs/by-name/li/libvlcpp/package.nix
@@ -2,26 +2,28 @@
lib,
stdenv,
fetchFromGitLab,
- autoreconfHook,
pkg-config,
libvlc,
+ meson,
+ ninja,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libvlcpp";
- version = "0.1.0-unstable-2024-02-04";
+ version = "0.1.0-unstable-2026-04-16";
src = fetchFromGitLab {
domain = "code.videolan.org";
owner = "videolan";
repo = "libvlcpp";
- rev = "44c1f48e56a66c3f418175af1e1ef3fd1ab1b118";
- hash = "sha256-nnS4DMz/2VciCrhOBGRb1+kDbxj+ZOnEtQmzs/TJ870=";
+ rev = "33214afee13df36dc46309ef5416d681b56db5b9";
+ hash = "sha256-PjJzFrvkmrTsBjzmEG6hNU8VzDlofQrdfTGFhxkVPWU=";
};
nativeBuildInputs = [
+ meson
+ ninja
pkg-config
- autoreconfHook
];
propagatedBuildInputs = [
diff --git a/pkgs/by-name/li/libvmi/package.nix b/pkgs/by-name/li/libvmi/package.nix
index 53680ff18971..1619409ed4d4 100644
--- a/pkgs/by-name/li/libvmi/package.nix
+++ b/pkgs/by-name/li/libvmi/package.nix
@@ -13,9 +13,6 @@
json_c,
libvirt,
- withVMIFS ? true,
- fuse,
-
legacyKVM ? false,
libkvmi,
@@ -67,13 +64,11 @@ stdenv.mkDerivation {
libvirt
]
++ lib.optionals xenSupport [ xen ]
- ++ lib.optionals (!legacyKVM) [ libkvmi ]
- ++ lib.optionals withVMIFS [ fuse ];
+ ++ lib.optionals (!legacyKVM) [ libkvmi ];
configureFlags =
lib.optionals (!xenSupport) [ "--disable-xen" ]
- ++ lib.optionals legacyKVM [ "--enable-kvm-legacy" ]
- ++ lib.optionals withVMIFS [ "--enable-vmifs" ];
+ ++ lib.optionals legacyKVM [ "--enable-kvm-legacy" ];
# libvmi uses dlopen() for the xen libraries, however autoPatchelfHook doesn't work here
postFixup = lib.optionalString xenSupport ''
diff --git a/pkgs/by-name/li/license-plist/package.nix b/pkgs/by-name/li/license-plist/package.nix
new file mode 100644
index 000000000000..95ade33eaca5
--- /dev/null
+++ b/pkgs/by-name/li/license-plist/package.nix
@@ -0,0 +1,46 @@
+{
+ lib,
+ stdenvNoCC,
+ fetchzip,
+ versionCheckHook,
+ nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "license-plist";
+ version = "3.27.7";
+
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ src = fetchzip {
+ url = "https://github.com/mono0926/LicensePlist/releases/download/${finalAttrs.version}/portable_licenseplist.zip";
+ hash = "sha256-Z8jDFRZj0s6X+edexNZ0Qx2qUC8Bm2GC9uOrKWbXtCI=";
+ stripRoot = false;
+ };
+
+ dontConfigure = true;
+ dontBuild = true;
+
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 license-plist $out/bin/license-plist
+ runHook postInstall
+ '';
+
+ doInstallCheck = true;
+ nativeInstallCheckInputs = [ versionCheckHook ];
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "License list generator for iOS application dependencies";
+ homepage = "https://github.com/mono0926/LicensePlist";
+ changelog = "https://github.com/mono0926/LicensePlist/releases/tag/${finalAttrs.version}";
+ license = lib.licenses.mit;
+ mainProgram = "license-plist";
+ maintainers = with lib.maintainers; [ jeremystucki ];
+ platforms = lib.platforms.darwin;
+ sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
+ };
+})
diff --git a/pkgs/by-name/li/lima/package.nix b/pkgs/by-name/li/lima/package.nix
index c998ae4731b6..8d4d63925e30 100644
--- a/pkgs/by-name/li/lima/package.nix
+++ b/pkgs/by-name/li/lima/package.nix
@@ -11,6 +11,7 @@
apple-sdk_15,
withAdditionalGuestAgents ? false,
lima-additional-guestagents,
+ llvmPackages,
writableTmpDirAsHomeHook,
versionCheckHook,
testers,
@@ -35,7 +36,16 @@ buildGoModule (finalAttrs: {
# For checkPhase, and installPhase(required to build completion)
writableTmpDirAsHomeHook
]
- ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.sigtool ];
+ ++ lib.optionals stdenv.hostPlatform.isDarwin [
+ darwin.sigtool
+ # TODO: Remove when NixOS/nixpkgs#536365 reaches master.
+ llvmPackages.lld
+ ];
+
+ # TODO: Remove when NixOS/nixpkgs#536365 reaches master.
+ env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
+ NIX_CFLAGS_LINK = "-fuse-ld=${lib.getExe' llvmPackages.lld "ld64.lld"}";
+ };
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ apple-sdk_15 ];
diff --git a/pkgs/by-name/li/linear/package.nix b/pkgs/by-name/li/linear/package.nix
index a0c8816a50bd..f8a2122dd09e 100644
--- a/pkgs/by-name/li/linear/package.nix
+++ b/pkgs/by-name/li/linear/package.nix
@@ -7,11 +7,11 @@
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "linear";
- version = "1.30.2";
+ version = "1.31.1";
src = fetchurl {
url = "https://releases.linear.app/Linear-${finalAttrs.version}-universal.dmg";
- hash = "sha256-udtN7sOnbT1B684q/JhPFGq8mYvhc5CbTxuJi6NYFac=";
+ hash = "sha256-haZz9RdbcQiFbCqdy/S25aCsFoSKn3dFAkYL8NgoTYw=";
};
strictDeps = true;
@@ -41,7 +41,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
description = "App to manage software development and track bugs";
homepage = "https://linear.app/";
license = lib.licenses.unfree;
- maintainers = with lib.maintainers; [ iniw ];
+ maintainers = with lib.maintainers; [
+ iniw
+ pradyuman
+ ];
platforms = lib.platforms.darwin;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
diff --git a/pkgs/by-name/li/linear/update.sh b/pkgs/by-name/li/linear/update.sh
index c6ee30c2ac3a..8a381a4bc560 100755
--- a/pkgs/by-name/li/linear/update.sh
+++ b/pkgs/by-name/li/linear/update.sh
@@ -1,18 +1,18 @@
#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p coreutils curl gnugrep common-updater-scripts
+#!nix-shell -i bash -p coreutils curl gnugrep jq common-updater-scripts
#shellcheck shell=bash
-set -eu -o pipefail
+set -euo pipefail
-source_url="https://releases.linear.app/mac"
-
-version="$(curl -L -I "$source_url" | grep -ioE 'filename="Linear-[0-9]+(\.[0-9]+)*-universal\.dmg"' | grep -oE '[0-9]+(\.[0-9]+)*')"
+releases_url="https://releases.linear.app"
+version_pattern='filename="Linear-\K[0-9]+(\.[0-9]+)*(?=-universal\.dmg")'
+version="$(curl -fsSLI "$releases_url/mac" | grep -ioP "$version_pattern")"
if [[ -z $version ]]; then
echo "Could not find the latest Linear version in release headers" >&2
exit 1
fi
-hash=$(nix --extra-experimental-features nix-command hash convert --to sri --hash-algo sha256 "$(nix-prefetch-url --type sha256 "https://releases.linear.app/Linear-${version}-universal.dmg")")
+hash="$(nix store prefetch-file --json "$releases_url/Linear-${version}-universal.dmg" | jq -r .hash)"
update-source-version linear "$version" "$hash" --ignore-same-version
diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix
index fccffd6d249f..65c77a6ce7ed 100644
--- a/pkgs/by-name/ll/llama-cpp/package.nix
+++ b/pkgs/by-name/ll/llama-cpp/package.nix
@@ -38,7 +38,6 @@
vulkanSupport ? false,
rpcSupport ? false,
openssl,
- llama-cpp,
shaderc,
vulkan-headers,
vulkan-loader,
@@ -190,9 +189,6 @@ effectiveStdenv.mkDerivation (finalAttrs: {
# upstream plans on adding targets at the cmakelevel, remove those
# additional steps after that
postInstall = ''
- # Match previous binary name for this package
- ln -sf $out/bin/llama-cli $out/bin/llama
-
mkdir -p $out/include
cp $src/include/llama.h $out/include/
diff --git a/pkgs/by-name/lm/lmmath/package.nix b/pkgs/by-name/lm/lmmath/package.nix
index 58db2e36c080..23288e21db1e 100644
--- a/pkgs/by-name/lm/lmmath/package.nix
+++ b/pkgs/by-name/lm/lmmath/package.nix
@@ -2,27 +2,22 @@
lib,
stdenvNoCC,
fetchzip,
+ installFonts,
}:
-stdenvNoCC.mkDerivation rec {
+stdenvNoCC.mkDerivation {
pname = "lmmath";
version = "1.959";
+ strictDeps = true;
+ __structuredAttrs = true;
+
src = fetchzip {
url = "https://www.gust.org.pl/projects/e-foundry/lm-math/download/latinmodern-math-1959.zip";
hash = "sha256-et/WMhfZZYgP0S7ZmI6MZK5owv9bSoMBXFX6yGSng5Y=";
};
- installPhase = ''
- runHook preInstall
-
- mkdir -p $out/share/fonts/opentype/
- mkdir -p $out/share/doc/latinmodern-math-${version}/
- cp otf/*.otf $out/share/fonts/opentype/
- cp doc/*.txt $out/share/doc/latinmodern-math-${version}/
-
- runHook postInstall
- '';
+ nativeBuildInputs = [ installFonts ];
meta = {
description = "Latin Modern Math (LM Math) font completes the modernization of the Computer Modern family of typefaces designed and programmed by Donald E. Knuth";
diff --git a/pkgs/by-name/lm/lmstudio/darwin.nix b/pkgs/by-name/lm/lmstudio/darwin.nix
index d857fb008c29..a2702a5e06d2 100644
--- a/pkgs/by-name/lm/lmstudio/darwin.nix
+++ b/pkgs/by-name/lm/lmstudio/darwin.nix
@@ -1,7 +1,6 @@
{
stdenv,
fetchurl,
- undmg,
darwin,
meta,
pname,
@@ -9,6 +8,7 @@
url,
hash,
passthru,
+ _7zz,
}:
stdenv.mkDerivation {
inherit meta pname version;
@@ -18,8 +18,8 @@ stdenv.mkDerivation {
};
nativeBuildInputs = [
- undmg
darwin.sigtool
+ _7zz
];
sourceRoot = ".";
@@ -50,22 +50,10 @@ stdenv.mkDerivation {
dontFixup = true;
# undmg doesn't support APFS and 7zz does break the xattr. Took that approach from https://github.com/NixOS/nixpkgs/blob/a3c6ed7ad2649c1a55ffd94f7747e3176053b833/pkgs/by-name/in/insomnia/package.nix#L52
- unpackCmd = ''
- echo "Creating temp directory"
- mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
- function finish {
- echo "Ejecting temp directory"
- /usr/bin/hdiutil detach $mnt -force
- rm -rf $mnt
- }
- # Detach volume when receiving SIG "0"
- trap finish EXIT
- # Mount DMG file
- echo "Mounting DMG file into \"$mnt\""
- /usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
- # Copy content to local dir for later use
- echo 'Copying extracted content into "sourceRoot"'
- cp -a $mnt/LM\ Studio.app $PWD/
+ # NOTE (djmaxus): even with hdiutil, a check `xattr -lr LM\ Studio.app` returns nothing,
+ # meaning that xattrs are lost anyway? So, I brought back simple 7zip unpacking
+ unpackPhase = ''
+ 7zz x -snld $src
'';
inherit passthru;
diff --git a/pkgs/by-name/ls/lstr/package.nix b/pkgs/by-name/ls/lstr/package.nix
index 4561ace0098c..97cb5094850a 100644
--- a/pkgs/by-name/ls/lstr/package.nix
+++ b/pkgs/by-name/ls/lstr/package.nix
@@ -11,16 +11,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lstr";
- version = "0.2.1";
+ version = "0.3.0";
src = fetchFromGitHub {
owner = "bgreenwell";
repo = "lstr";
tag = "v${finalAttrs.version}";
- hash = "sha256-uaefVDSTphboWW1BP2HkcuMiW87FmnVYxCthlrAKF5Y=";
+ hash = "sha256-lJ6BSvlJiyZUOoz0QuahIgZ6GZ9NDcmvvQ7MEd9c/7U=";
};
- cargoHash = "sha256-UVaqkNV1cNpbCNphk6YMqOz077xY9dUBgCGt7SLIH0U=";
+ cargoHash = "sha256-pRPcJwdhrQ+P70zaiuPCAI53lW+zEulqSrK5w8SCraQ=";
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/by-name/lu/lulu/package.nix b/pkgs/by-name/lu/lulu/package.nix
new file mode 100644
index 000000000000..6dc2ddbcd8a8
--- /dev/null
+++ b/pkgs/by-name/lu/lulu/package.nix
@@ -0,0 +1,52 @@
+{
+ lib,
+ stdenvNoCC,
+ fetchurl,
+ undmg,
+ nix-update-script,
+}:
+
+stdenvNoCC.mkDerivation (finalAttrs: {
+ pname = "lulu";
+ version = "4.3.1";
+
+ __structuredAttrs = true;
+ strictDeps = true;
+
+ src = fetchurl {
+ url = "https://github.com/objective-see/LuLu/releases/download/v${finalAttrs.version}/LuLu_${finalAttrs.version}.dmg";
+ hash = "sha256-zANmUn8fQSMpX9EzKaCAMaZgr9JWB23asD5gdDZc75M=";
+ };
+
+ nativeBuildInputs = [ undmg ];
+
+ unpackPhase = ''
+ runHook preUnpack
+ undmg "$src"
+ runHook postUnpack
+ '';
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p "$out/Applications"
+ cp -R LuLu.app "$out/Applications/LuLu.app"
+
+ runHook postInstall
+ '';
+
+ dontFixup = true; # Preserve upstream's notarized app bundle and system extension signature.
+
+ passthru.updateScript = nix-update-script { };
+
+ meta = {
+ description = "Free open-source macOS firewall that alerts you to outgoing network connections";
+ homepage = "https://objective-see.org/products/lulu.html";
+ changelog = "https://github.com/objective-see/LuLu/releases/tag/v${finalAttrs.version}";
+ license = lib.licenses.gpl3Plus;
+ mainProgram = "LuLu";
+ maintainers = with lib.maintainers; [ philocalyst ];
+ platforms = lib.platforms.darwin;
+ sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+ };
+})
diff --git a/pkgs/by-name/lu/lux-cli/package.nix b/pkgs/by-name/lu/lux-cli/package.nix
index ca1c4ef4c31b..7ee5ead54663 100644
--- a/pkgs/by-name/lu/lux-cli/package.nix
+++ b/pkgs/by-name/lu/lux-cli/package.nix
@@ -18,18 +18,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "lux-cli";
- version = "0.35.1";
+ version = "0.36.1";
src = fetchFromGitHub {
owner = "lumen-oss";
repo = "lux";
tag = "v${finalAttrs.version}";
- hash = "sha256-jbHub9/mTkWdg+oTu6jEaNbPLEaS0/f3TqxvymsDS3I=";
+ hash = "sha256-260gORAxU0l3gxv4ojUSmdNgHvdLpQNPdLkn8ze4HGA=";
};
buildAndTestSubdir = "lux-cli";
- cargoHash = "sha256-envh7C5D/38pDTUi08/9c6YaA9OlZ8Zg+IPLhtKZg6A=";
+ cargoHash = "sha256-P9XonyY+gC0ni8WqkMPWJW6AjU4EBB7BEjxZ3U/q2qM=";
nativeInstallCheckInputs = [
versionCheckHook
diff --git a/pkgs/by-name/ma/mas/package.nix b/pkgs/by-name/ma/mas/package.nix
index b9014aa454c1..1822215e189d 100644
--- a/pkgs/by-name/ma/mas/package.nix
+++ b/pkgs/by-name/ma/mas/package.nix
@@ -3,13 +3,15 @@
stdenvNoCC,
fetchurl,
installShellFiles,
+ jq,
libarchive,
p7zip,
versionCheckHook,
+ zsh,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "mas";
- version = "6.0.1";
+ version = "7.0.0";
__structuredAttrs = true;
@@ -20,11 +22,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
{
x86_64-darwin = {
arch = "x86_64";
- hash = "sha256-7+iDBr4GG5bdTuAlAmMQkEkIzVgLo2+DEdravClaLtQ=";
+ hash = "sha256-m8od4ftuoZyeC517fIUkkCDJ7WWp1DTC70CJai8zlfk=";
};
aarch64-darwin = {
arch = "arm64";
- hash = "sha256-BZ9UE8H28kjqiMNdLDUUyC9madR4rBV1mLUGyj6ol3Y=";
+ hash = "sha256-vCGKhUyF2eHJVJapayYoe7ZgVrlWiLkPkdBPpi7SG3U=";
};
}
.${stdenvNoCC.hostPlatform.system}
@@ -58,6 +60,11 @@ stdenvNoCC.mkDerivation (finalAttrs: {
runHook preInstall
installBin usr/local/opt/mas/bin/mas
+ install -D --mode=755 usr/local/opt/mas/libexec/bin/mas "$out/libexec/bin/mas"
+
+ substituteInPlace "$out/bin/mas" \
+ --replace-fail "#!/bin/zsh" "#!${lib.getExe zsh}" \
+ --replace-fail "/usr/bin/jq" "${lib.getExe jq}"
installManPage usr/local/opt/mas/share/man/man1/mas.1
installShellCompletion --bash usr/local/opt/mas/etc/bash_completion.d/mas
diff --git a/pkgs/by-name/ma/maskromtool/package.nix b/pkgs/by-name/ma/maskromtool/package.nix
index d3af7bd976d1..66b3e917a201 100644
--- a/pkgs/by-name/ma/maskromtool/package.nix
+++ b/pkgs/by-name/ma/maskromtool/package.nix
@@ -4,37 +4,60 @@
fetchFromGitHub,
cmake,
qt6,
+ yara-x,
+ replxx,
+ readline,
+ pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "maskromtool";
- version = "2024-08-18";
+ version = "2026-07-04";
src = fetchFromGitHub {
owner = "travisgoodspeed";
repo = "maskromtool";
rev = "v${finalAttrs.version}";
- hash = "sha256-iuCjAAVEKVwJuAgKITwkXGhKau2DVWhFQLPjp28tjIo=";
+ hash = "sha256-QO2s+nGmf0XTq+PRcIqjEeuc6djzQv8TcJjlYYs/X5c=";
+ fetchSubmodules = true;
};
+ postPatch = ''
+ # remove hardcoded PKG_CONFIG_PATH
+ substituteInPlace CMakeLists.txt \
+ --replace-fail \
+ 'set(ENV{PKG_CONFIG_PATH} "c:/lib/pkgconfig;/usr/local/lib64")' \
+ ""
+ '';
+
+ cmakeFlags = [
+ (lib.cmakeFeature "FETCHCONTENT_TRY_FIND_PACKAGE_MODE" "ALWAYS")
+ ];
+
buildInputs = [
qt6.qtbase
qt6.qtcharts
qt6.qttools
+ yara-x
+ replxx
+ readline
];
nativeBuildInputs = [
cmake
+ pkg-config
qt6.wrapQtAppsHook
];
meta = {
description = "CAD tool for extracting bits from Mask ROM photographs";
homepage = "https://github.com/travisgoodspeed/maskromtool";
+ changelog = "https://github.com/travisgoodspeed/maskromtool/releases/tag/v${finalAttrs.version}";
license = with lib.licenses; [
beerware
gpl1Plus
];
maintainers = with lib.maintainers; [ evanrichter ];
+ mainProgram = "maskromtool";
};
})
diff --git a/pkgs/by-name/ma/matrix-continuwuity/package.nix b/pkgs/by-name/ma/matrix-continuwuity/package.nix
index 6e7e99fcc997..9caad3ba2e9d 100644
--- a/pkgs/by-name/ma/matrix-continuwuity/package.nix
+++ b/pkgs/by-name/ma/matrix-continuwuity/package.nix
@@ -38,17 +38,17 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "matrix-continuwuity";
- version = "26.6.1";
+ version = "26.6.2";
src = fetchFromGitea {
domain = "forgejo.ellis.link";
owner = "continuwuation";
repo = "continuwuity";
tag = "v${finalAttrs.version}";
- hash = "sha256-sfUxhBPf0P46Xf0lcZFDj23cuZ9apJDyTQPa97jlcSY=";
+ hash = "sha256-GcCjJiUOGX+vF7R4IRgNQs8KpfVj+MXwnhofwSm6gpA=";
};
- cargoHash = "sha256-Qmw9Xum+Osu/4kbVqJP79gbtimpV2P7SkCMuQWyBYxg=";
+ cargoHash = "sha256-p1Bz7op/qPogBn8bj9pQ7KjRhH2kZao8o0LPqWH2ZYo=";
nativeBuildInputs = [
pkg-config
diff --git a/pkgs/by-name/ma/matrix-tuwunel/package.nix b/pkgs/by-name/ma/matrix-tuwunel/package.nix
index d041184d9ac9..17ff9947dc4a 100644
--- a/pkgs/by-name/ma/matrix-tuwunel/package.nix
+++ b/pkgs/by-name/ma/matrix-tuwunel/package.nix
@@ -88,16 +88,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "matrix-tuwunel";
- version = "1.8.0";
+ version = "1.8.1";
src = fetchFromGitHub {
owner = "matrix-construct";
repo = "tuwunel";
tag = "v${finalAttrs.version}";
- hash = "sha256-+VoJrUvjZOS3y59HbjHX0kwCT1AUvJo1jJQEC/OLYec=";
+ hash = "sha256-3qMVu+IQMzI4Jtfb8mJsuDAcd7Jb7XSU07RlvnH7vfc=";
};
- cargoHash = "sha256-906VroeI1ZjUokOWKNBcfgZLZhca87p7sQuYDwQmPDI=";
+ cargoHash = "sha256-VzmaQAsNORH8VxYSUgKeQSIgcCPnI9cAzu3K9ks7ODA=";
nativeBuildInputs = [
pkg-config
diff --git a/pkgs/by-name/mc/mcphost/package.nix b/pkgs/by-name/mc/mcphost/package.nix
deleted file mode 100644
index 2e13e24e199a..000000000000
--- a/pkgs/by-name/mc/mcphost/package.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- lib,
- buildGoModule,
- fetchFromGitHub,
-}:
-
-buildGoModule (finalAttrs: {
- pname = "mcphost";
- version = "0.34.0";
-
- src = fetchFromGitHub {
- owner = "mark3labs";
- repo = "mcphost";
- tag = "v${finalAttrs.version}";
- hash = "sha256-xqz6K0e/LSX77qpkmwmqgStPAfkkJdqKKDZOeYWnrRo=";
- };
-
- vendorHash = "sha256-mzrCIDMr1INzwqktZIc9m0SgynQC0FpyVlSlAba//sY=";
-
- doCheck = false;
-
- meta = {
- description = "CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP)";
- homepage = "https://github.com/mark3labs/mcphost";
- license = lib.licenses.mit;
- maintainers = [ ];
- mainProgram = "mcphost";
- };
-})
diff --git a/pkgs/by-name/me/mediawriter/package.nix b/pkgs/by-name/me/mediawriter/package.nix
index 83bf8aae2e98..4a1ac02fe0de 100644
--- a/pkgs/by-name/me/mediawriter/package.nix
+++ b/pkgs/by-name/me/mediawriter/package.nix
@@ -12,13 +12,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mediawriter";
- version = "5.3.1";
+ version = "5.3.2";
src = fetchFromGitHub {
owner = "FedoraQt";
repo = "MediaWriter";
tag = finalAttrs.version;
- hash = "sha256-INq07MdWLq5qwBNWrrBRmtIpxsmnHcqPEUyRkIl3Qa4=";
+ hash = "sha256-Xf8W6qGvFOeJ/mVBE/vnngJkieASMpas9M9o+VwY5pc=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/me/memtier-benchmark/package.nix b/pkgs/by-name/me/memtier-benchmark/package.nix
index ce04d0ecae9c..249091106d63 100644
--- a/pkgs/by-name/me/memtier-benchmark/package.nix
+++ b/pkgs/by-name/me/memtier-benchmark/package.nix
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "memtier-benchmark";
- version = "2.4.3";
+ version = "2.4.4";
src = fetchFromGitHub {
owner = "redis";
repo = "memtier_benchmark";
tag = finalAttrs.version;
- hash = "sha256-k2xhY4EsPVZIEGfdkDc/Mr3oJomNu2bhbn3MzCfOaDg=";
+ hash = "sha256-2r/8u+gbgN6zwOoVfA9QCAXeYOK15znq03b6OcS+FLM=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/me/mermaid-cli/package.nix b/pkgs/by-name/me/mermaid-cli/package.nix
index b1f24fc59e28..a8300fcdf519 100644
--- a/pkgs/by-name/me/mermaid-cli/package.nix
+++ b/pkgs/by-name/me/mermaid-cli/package.nix
@@ -7,7 +7,7 @@
nix-update-script,
}:
let
- version = "11.12.0";
+ version = "11.16.0";
in
buildNpmPackage {
pname = "mermaid-cli";
@@ -17,14 +17,14 @@ buildNpmPackage {
owner = "mermaid-js";
repo = "mermaid-cli";
rev = version;
- hash = "sha256-OpYq0nOYCGTorzDxybsEjJmhL646wMBbQw3eHVxTuqU=";
+ hash = "sha256-jK87Ffsv9qeh0UPJaLTuIJYbnR9HVqjm7hWrwUaP5zA=";
};
patches = [
./remove-puppeteer-from-dev-deps.patch # https://github.com/mermaid-js/mermaid-cli/issues/830
];
- npmDepsHash = "sha256-Ex+tEm13feR/Vru0CHlvM3xS5wgGlYyqANeIquvRHwM=";
+ npmDepsHash = "sha256-sOEDz8ZT2zF+TH+ZJhb+LSyyUF1HWVVLzCqtYtg7A0E=";
env = {
PUPPETEER_SKIP_DOWNLOAD = true;
diff --git a/pkgs/by-name/me/mermaid-cli/remove-puppeteer-from-dev-deps.patch b/pkgs/by-name/me/mermaid-cli/remove-puppeteer-from-dev-deps.patch
index 7c58948b97f6..1f9bbba9ba85 100644
--- a/pkgs/by-name/me/mermaid-cli/remove-puppeteer-from-dev-deps.patch
+++ b/pkgs/by-name/me/mermaid-cli/remove-puppeteer-from-dev-deps.patch
@@ -1,16 +1,11 @@
-Subject: [PATCH] remove pupperteer from dev dependencies
+Subject: [PATCH] remove puppeteer from dev dependencies
---
Index: package.json
-<+>UTF-8
===================================================================
diff --git a/package.json b/package.json
---- a/package.json (revision fa593dc39619f44b57a922927a66346248f31d7d)
-+++ b/package.json (date 1736721981718)
-@@ -45,7 +45,6 @@
- "@tsconfig/node18": "^18.2.4",
- "@types/node": "~18.19.31",
- "jest": "^30.0.5",
-- "puppeteer": "^23.1.1",
- "standard": "^17.0.0",
- "typescript": "^5.0.1-rc",
- "vite": "^6.0.2",
+--- a/package.json
++++ b/package.json
+@@ -47,3 +47,2 @@
+ "prettier": "^3.8.3",
+- "puppeteer": "^25.0.0",
+ "typescript": "^6.0.3",
diff --git a/pkgs/by-name/mi/microsoft-edge/update.py b/pkgs/by-name/mi/microsoft-edge/update.py
index d2298c382e6f..1e6419338fce 100755
--- a/pkgs/by-name/mi/microsoft-edge/update.py
+++ b/pkgs/by-name/mi/microsoft-edge/update.py
@@ -1,7 +1,7 @@
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p python3Packages.packaging python3Packages.python-debian common-updater-scripts
-import os
+import subprocess
from collections import OrderedDict
from os.path import abspath, dirname
from urllib import request
@@ -39,8 +39,8 @@ def write_expression():
version = Version.re_valid_version.match(latest["stable"]["Version"]).group(
"upstream_version"
)
- os.system(f'update-source-version microsoft-edge "{version}"')
- os.system(f'update-source-version msedgedriver "{version}"')
+ subprocess.run(["update-source-version", "microsoft-edge", version])
+ subprocess.run(["update-source-version", "msedgedriver", version])
write_expression()
diff --git a/pkgs/by-name/mi/miracle-wm/package.nix b/pkgs/by-name/mi/miracle-wm/package.nix
index 56c617c0768e..489f32863563 100644
--- a/pkgs/by-name/mi/miracle-wm/package.nix
+++ b/pkgs/by-name/mi/miracle-wm/package.nix
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitHub,
- fetchpatch,
gitUpdater,
nixosTests,
boost,
@@ -12,6 +11,8 @@
glib,
glm,
gtest,
+ gtk4,
+ gtk4-layer-shell,
json_c,
libevdev,
libglvnd,
@@ -29,31 +30,21 @@
wasmedge,
wayland,
wayland-scanner,
+ wrapGAppsHook4,
yaml-cpp,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "miracle-wm";
- version = "0.9.1";
+ version = "0.10.1";
src = fetchFromGitHub {
owner = "miracle-wm-org";
repo = "miracle-wm";
tag = "v${finalAttrs.version}";
- hash = "sha256-7JtdSopKBHfFK0KsV0+9OxrOx3vrSydmZSmAiBvKQiI=";
+ hash = "sha256-htFgvXYgxQXV2U3F+tXEoaTb0udc2H1aHsIg5E8nRL8=";
};
- patches = [
- (fetchpatch {
- name = "0001-miracle-wm-mir2.28.patch";
- url = "https://github.com/miracle-wm-org/miracle-wm/commit/0fcfb54c59327d0776f6e8074e885080731a95c4.patch";
- excludes = [
- ".github/workflows/test-deb-install.yml"
- ];
- hash = "sha256-HuXwPkM0whLFIy8HM6n9bG9I/DZOuzAajmDpJMZt9BQ=";
- })
- ];
-
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'DESTINATION lib' 'DESTINATION ''${CMAKE_INSTALL_LIBDIR}' \
@@ -67,12 +58,15 @@ stdenv.mkDerivation (finalAttrs: {
makeWrapper
pkg-config
wayland-scanner
+ wrapGAppsHook4
];
buildInputs = [
boost
glib
glm
+ gtk4
+ gtk4-layer-shell
json_c
libevdev
libglvnd
@@ -96,11 +90,15 @@ stdenv.mkDerivation (finalAttrs: {
checkInputs = [ gtest ];
+ # Manually wrapping the few binaries that needs it
+ dontWrapGApps = true;
+
cmakeFlags = [
+ (lib.cmakeBool "BUILD_DEBUG_OVERLAY" true)
+ (lib.cmakeBool "BUILD_ERROR_REPORTER" true)
(lib.cmakeBool "ENABLE_LTO" true)
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
- # https://github.com/miracle-wm-org/miracle-wm/issues/865
- (lib.cmakeBool "FEATURE_PLUGIN_SYSTEM" false)
+ (lib.cmakeBool "FEATURE_PLUGIN_SYSTEM" true)
(lib.cmakeBool "SYSTEMD_INTEGRATION" true)
(lib.cmakeBool "END_TO_END_TESTS" finalAttrs.finalPackage.doCheck)
];
@@ -119,6 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
postFixup = ''
patchShebangs $out/libexec/miracle-wm-session-setup
+
wrapProgram $out/libexec/miracle-wm-session-setup \
--prefix PATH : "$out/bin:${
lib.makeBinPath [
@@ -127,6 +126,9 @@ stdenv.mkDerivation (finalAttrs: {
systemd # systemctl
]
}"
+
+ wrapGApp $out/bin/miracle-wm-basic-error-reporter
+ wrapGApp $out/bin/miracle-wm-debug-overlay
'';
passthru = {
diff --git a/pkgs/by-name/mo/mole-cleaner/package.nix b/pkgs/by-name/mo/mole-cleaner/package.nix
new file mode 100644
index 000000000000..ad79f8ac2612
--- /dev/null
+++ b/pkgs/by-name/mo/mole-cleaner/package.nix
@@ -0,0 +1,97 @@
+{
+ lib,
+ buildGoModule,
+ fetchFromGitHub,
+ makeWrapper,
+ coreutils,
+ gnused,
+ gawk,
+ fd,
+ gitUpdater,
+ versionCheckHook,
+ writableTmpDirAsHomeHook,
+}:
+
+buildGoModule (finalAttrs: {
+ pname = "mole-cleaner";
+ version = "1.31.0";
+ __structuredAttrs = true;
+
+ src = fetchFromGitHub {
+ owner = "tw93";
+ repo = "Mole";
+ tag = "V${finalAttrs.version}";
+ hash = "sha256-dalmW3W/seGZreSWuYP7JN/nMUbs3WyDHzKU83EveeY=";
+ };
+
+ vendorHash = "sha256-LznLZ0NO8VBWP95ReAVORUMIDhh7/pgTY5mGNN2tND8=";
+
+ subPackages = [
+ "cmd/analyze"
+ "cmd/status"
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ nativeInstallCheckInputs = [
+ versionCheckHook
+ writableTmpDirAsHomeHook
+ coreutils
+ gnused
+ gawk
+ ];
+
+ postInstall = ''
+ install -Dm755 mole $out/libexec/mole/mole
+ install -Dm755 mo $out/libexec/mole/mo
+ cp -r bin lib $out/libexec/mole/
+
+ mv $out/bin/analyze $out/libexec/mole/bin/analyze-go
+ mv $out/bin/status $out/libexec/mole/bin/status-go
+
+ patchShebangs $out/libexec/mole
+
+ makeWrapper $out/libexec/mole/mole $out/bin/mole \
+ --prefix PATH : ${
+ lib.makeBinPath [
+ fd
+ coreutils
+ gnused
+ gawk
+ ]
+ }
+ makeWrapper $out/libexec/mole/mo $out/bin/mo \
+ --prefix PATH : ${
+ lib.makeBinPath [
+ fd
+ coreutils
+ gnused
+ gawk
+ ]
+ }
+ '';
+
+ doInstallCheck = true;
+ versionCheckKeepEnvironment = [ "HOME" ];
+ versionCheckProgramArg = "--version";
+ installCheckPhase = ''
+ runHook preInstallCheck
+ $out/bin/mole --help > /dev/null
+ $out/bin/mo --help > /dev/null
+ runHook postInstallCheck
+ '';
+
+ passthru.updateScript = gitUpdater { rev-prefix = "V"; };
+
+ meta = {
+ description = "CLI tool for cleaning and optimizing macOS systems";
+ homepage = "https://github.com/tw93/Mole";
+ changelog = "https://github.com/tw93/Mole/releases/tag/V${finalAttrs.version}";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ IanHollow ];
+ mainProgram = "mole";
+ platforms = lib.platforms.darwin;
+ };
+})
diff --git a/pkgs/by-name/mo/moon/package.nix b/pkgs/by-name/mo/moon/package.nix
index 42d00115174e..0c405a7c3b3b 100644
--- a/pkgs/by-name/mo/moon/package.nix
+++ b/pkgs/by-name/mo/moon/package.nix
@@ -5,6 +5,7 @@
fetchFromGitHub,
openssl,
pkg-config,
+ protobuf,
versionCheckHook,
nix-update-script,
installShellFiles,
@@ -14,16 +15,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "moon";
- version = "1.41.8";
+ version = "2.3.2";
src = fetchFromGitHub {
owner = "moonrepo";
repo = "moon";
tag = "v${finalAttrs.version}";
- hash = "sha256-KPK1XE18A8vh5FlGIPizxWmEVPkJHcy6fvtFsOQlhok=";
+ hash = "sha256-Nc3J6s6+Go73lOnveH7agT80y9PVqLZw+x22vvi2mcg=";
};
- cargoHash = "sha256-U3Hq5zy1dvG/sJA08bBi2mwMbTP2E5LLIpx0rMq2U1A=";
+ cargoHash = "sha256-+pmn9+7VNQyggoTmlhZ7s9vTnhSDWp5rqnFFbyLAfMk=";
env = {
RUSTFLAGS = "-C strip=symbols";
@@ -33,6 +34,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
buildInputs = [ openssl ];
nativeBuildInputs = [
pkg-config
+ protobuf
installShellFiles
writableTmpDirAsHomeHook
];
diff --git a/pkgs/by-name/mo/motus/package.nix b/pkgs/by-name/mo/motus/package.nix
index e9d99d833707..994896a26dcf 100644
--- a/pkgs/by-name/mo/motus/package.nix
+++ b/pkgs/by-name/mo/motus/package.nix
@@ -13,23 +13,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
__structuredAttrs = true;
pname = "motus";
- version = "0.4.0";
+ version = "0.5.0";
src = fetchFromGitHub {
owner = "oleiade";
repo = "motus";
tag = "v${finalAttrs.version}";
- hash = "sha256-lMNXg6YYTxAycxOiVtBGrSHpccLwerIQcY25K/NkqMo=";
+ hash = "sha256-7lFKlU9+/NvJi9NsVpve3IvzpS8OVHaH9cs/WRGjBV8=";
};
- cargoHash = "sha256-6MKEHnB2MJVB4cNvz3JYlhuzxhzsA+Pq5OkpLNoAEyU=";
-
- # The CLI crate version was not bumped to match the v0.4.0 release tag:
- # https://github.com/oleiade/motus/issues/58
- postPatch = ''
- substituteInPlace crates/motus-cli/src/main.rs \
- --replace-fail '#[command(version = "0.3.1")]' '#[command(version = "${finalAttrs.version}")]'
- '';
+ cargoHash = "sha256-0qK3omTkzVxkjFn2fIowl+sFmjF/hSHAROyge5CDdFg=";
buildInputs = lib.optionals (withClipboard && stdenv.hostPlatform.isLinux) [ libxcb ];
diff --git a/pkgs/by-name/mp/mpdris2-rs/package.nix b/pkgs/by-name/mp/mpdris2-rs/package.nix
index 2387720718ac..c48926b8b352 100644
--- a/pkgs/by-name/mp/mpdris2-rs/package.nix
+++ b/pkgs/by-name/mp/mpdris2-rs/package.nix
@@ -6,15 +6,15 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "mpdris2-rs";
- version = "1.1.1";
+ version = "1.1.2";
src = fetchFromGitHub {
owner = "szclsya";
repo = "mpdris2-rs";
tag = "v${finalAttrs.version}";
- hash = "sha256-oiyqK7vj41d9bsXBtenc477SOrVHRkXpFljkN8MjdQg=";
+ hash = "sha256-VcBmo8zpgxowAZyHpe5EVQ/e6zuCYw21Xws0Yf5EZEo=";
};
- cargoHash = "sha256-xdgUKU9YiaC3o1uH38ZjvQgR78B/1LqTPis4+XqinQ8=";
+ cargoHash = "sha256-1Syt8lP/3Efr1A/LuV+k6aMuxDg+AWDg4HPTDFP/UW0=";
postPatch = ''
substituteInPlace misc/mpdris2-rs.service --replace-fail "/usr/local" "$out"
diff --git a/pkgs/by-name/mp/mpv/scripts/thumbfast.nix b/pkgs/by-name/mp/mpv/scripts/thumbfast.nix
index 5dd0fc8c673c..3166faf04e7c 100644
--- a/pkgs/by-name/mp/mpv/scripts/thumbfast.nix
+++ b/pkgs/by-name/mp/mpv/scripts/thumbfast.nix
@@ -8,13 +8,13 @@
buildLua {
pname = "mpv-thumbfast";
- version = "0-unstable-2025-02-04";
+ version = "0-unstable-2026-06-28";
src = fetchFromGitHub {
owner = "po5";
repo = "thumbfast";
- rev = "9deb0733c4e36938cf90e42ddfb7a19a8b2f4641";
- hash = "sha256-avG1CRBrs0UM4HcFMUVAQyOtcIFkZ/H+PbjZJKU7o2A=";
+ rev = "0f711de3138c9bd6718209d819ac54022c23ded2";
+ hash = "sha256-LVeEtzOMVSgBqN9z6VQLZnxXfrOUoQPOWazVXmj3ZFY=";
};
passthru.updateScript = unstableGitUpdater { };
diff --git a/pkgs/by-name/mu/multipath-tools/package.nix b/pkgs/by-name/mu/multipath-tools/package.nix
index d4ac1953cdc3..3d0a8371226a 100644
--- a/pkgs/by-name/mu/multipath-tools/package.nix
+++ b/pkgs/by-name/mu/multipath-tools/package.nix
@@ -22,13 +22,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "multipath-tools";
- version = "0.14.1";
+ version = "0.14.3";
src = fetchFromGitHub {
owner = "opensvc";
repo = "multipath-tools";
tag = finalAttrs.version;
- hash = "sha256-fkpBvadQAR+oiFeyar7flwL8N69RoWhwOaiYSwYCbXs=";
+ hash = "sha256-uppx79+ZWazGM/QQ+8jeTogqXyHosiFfcnH2npiz7W0=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/my/mympd/package.nix b/pkgs/by-name/my/mympd/package.nix
index d5a48d238ffe..fe7cacc865d3 100644
--- a/pkgs/by-name/my/mympd/package.nix
+++ b/pkgs/by-name/my/mympd/package.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mympd";
- version = "25.2.2";
+ version = "25.3.0";
src = fetchFromGitHub {
owner = "jcorporation";
repo = "myMPD";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-WJU0bnjC78GlrTXBixz9/pLLxvJGTvwJfIcGuF329io=";
+ sha256 = "sha256-Mx+UURIJUpIZlLq0FFuvOoUzMHhHryfNxRpNWgrpHTM=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/ne/netwatch/package.nix b/pkgs/by-name/ne/netwatch/package.nix
index 6c5bb39fb92a..4a07ac765356 100644
--- a/pkgs/by-name/ne/netwatch/package.nix
+++ b/pkgs/by-name/ne/netwatch/package.nix
@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "netwatch-tui";
- version = "0.25.8";
+ version = "0.26.1";
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "matthart1983";
repo = "netwatch";
tag = "v${finalAttrs.version}";
- hash = "sha256-vKAadOd5H0nsHbYMFSfEBOwxjZn5Df0Zm8Jicz0hpgg=";
+ hash = "sha256-gJTJ8Fn/McFdzlITvSrmgnOKu2f+KOeA9KODkAljoV8=";
};
- cargoHash = "sha256-mpVa+iSDzPyWW3Q78ZroLW2BzO0suXG7Q6nJjjIgHqk=";
+ cargoHash = "sha256-brCc2FjS/GvjCxHZFLFZaSeTIukIAkfGl/gtpmhShls=";
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/by-name/ne/nexttrace/package.nix b/pkgs/by-name/ne/nexttrace/package.nix
index 80c9b402f2d8..00d5fec04e37 100644
--- a/pkgs/by-name/ne/nexttrace/package.nix
+++ b/pkgs/by-name/ne/nexttrace/package.nix
@@ -7,15 +7,15 @@
buildGoModule (finalAttrs: {
pname = "nexttrace";
- version = "1.7.0";
+ version = "1.7.1";
src = fetchFromGitHub {
owner = "nxtrace";
repo = "NTrace-core";
rev = "v${finalAttrs.version}";
- sha256 = "sha256-5J0P+HlfSt6wd/q7L/+6h7auQQBJkaA1NO053w32S8Y=";
+ sha256 = "sha256-yjG/nXnZs5ks80Q5Qq9TsN57nuSrPvp/jlYV3FXJqMk=";
};
- vendorHash = "sha256-9g0OZczhIhM96eYFyAMxajpIkRgNUkn6QUZtl3O/xSM=";
+ vendorHash = "sha256-u5UTl3zNlnv0qk/Z60h1csp44ypn1V6i/aAThtTn3eg=";
buildInputs = [ libpcap ];
diff --git a/pkgs/by-name/ne/nezha/package.nix b/pkgs/by-name/ne/nezha/package.nix
index 7515c28f10cd..691b09c2a228 100644
--- a/pkgs/by-name/ne/nezha/package.nix
+++ b/pkgs/by-name/ne/nezha/package.nix
@@ -49,13 +49,13 @@ let
in
buildGoModule (finalAttrs: {
pname = "nezha";
- version = "2.2.9";
+ version = "2.2.10";
src = fetchFromGitHub {
owner = "nezhahq";
repo = "nezha";
tag = "v${finalAttrs.version}";
- hash = "sha256-5Mg44BTSL8J/i6fchb/8T9MOugZ0fetgsmiiEOwpLNs=";
+ hash = "sha256-eAJj+R3tSaZNa7aSfwLg8fS9grbGJRoBUBXdQpncqdI=";
};
proxyVendor = true;
diff --git a/pkgs/by-name/ni/ni/package.nix b/pkgs/by-name/ni/ni/package.nix
index e885f5a3703b..7bf087a20c31 100644
--- a/pkgs/by-name/ni/ni/package.nix
+++ b/pkgs/by-name/ni/ni/package.nix
@@ -15,20 +15,20 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "ni";
- version = "30.1.0";
+ version = "30.2.0";
src = fetchFromGitHub {
owner = "antfu-collective";
repo = "ni";
tag = "v${finalAttrs.version}";
- hash = "sha256-mBKSnnmvlZOwU+6MQrg8S8iCea2PGAsHa+A4lseLYyw=";
+ hash = "sha256-H+gmiy+sHdiK5rRpOvkUe54kc/66J9eI9kIMfFcjTrg=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm;
fetcherVersion = 3;
- hash = "sha256-I/jf6nlsKQFrYLO15f+CWdPPdEpVDDMBQodLsbG4sqw=";
+ hash = "sha256-OxGdTKzGliGshBWlx+5rxVSN1QWTsQKHzJXynnlCUg0=";
};
nativeBuildInputs = [
diff --git a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py
index a0b9beabc617..9177b0ad5202 100644
--- a/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py
+++ b/pkgs/by-name/ni/nixos-render-docs/src/nixos_render_docs/manual.py
@@ -265,6 +265,8 @@ class HTMLParameters(NamedTuple):
sidebar_depth: int
media_dir: Path
sidebar_open: frozenset[str] = frozenset()
+ header: Path | None = None
+ no_navheader: bool = False
class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
_base_path: Path
@@ -344,7 +346,8 @@ class ManualHTMLRenderer(RendererMixin, HTMLRenderer):
if toc.next:
next_link = f''
next_a = f'Next'
- if toc.prev or toc.parent or toc.next:
+ # nav_header is not disabled
+ if not self._html_params.no_navheader and (toc.prev or toc.parent or toc.next):
nav_html = "\n".join([
'