Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-03-23 00:26:59 +00:00
committed by GitHub
126 changed files with 2021 additions and 6135 deletions
+6
View File
@@ -165,6 +165,10 @@
- The `programs.captive-browser` module no longer falls back on a setcap wrapper around udhcpc to discover your network's DNS server due to [GHSA-wc3r-c66x-8xmc](https://github.com/NixOS/nixpkgs/security/advisories/GHSA-wc3r-c66x-8xmc) (CVE-2026-25740). If you're using this module, you must either configure `programs.captive-browser.dhcp-dns` manually or enable one of NetworkManager, dhcpcd, or systemd-networkd.
- NetBox was updated to `>= 4.5.5`. Have a look at the breaking changes
of the [4.5 release](https://github.com/netbox-community/netbox/releases/tag/v4.5.0),
make the required changes to your database, if needed, then upgrade by setting `services.netbox.package = pkgs.netbox_4_5;` in your configuration.
- The `services.yggdrasil` module has been refactored with the following breaking changes:
- The `services.yggdrasil.configFile` option has been removed. Configuration should now be specified directly via `services.yggdrasil.settings`.
- The `services.yggdrasil.persistentKeys` option has been removed. To maintain persistent keys and IPv6 addresses across reboots, use `services.yggdrasil.settings.PrivateKeyPath` to securely load your private key from a file via systemd credentials. The private key must be in PEM format (PKCS #8).
@@ -219,6 +223,8 @@
- `services.taskchampion-sync-server` module have been added an option `services.taskchampion-sync-server.dynamicUser` to use systemd's DynamicUser feature. This is enabled by default when stateVersion is at least 26.05, and disabled otherwise. If you need this feature, you need to set `services.taskchampion-sync-server.dynamicUser` to `true` and migrate `/var/lib/taskchampion-sync-server` to `/var/lib/private/taskchampion-sync-server`.
- The default packages in `services.jenkins.packages` have been dropped, since not every Jenkins installation needs any package at all. It's more reasonable to leave it empty and let users configure what they need.
## Other Notable Changes {#sec-nixpkgs-release-26.05-notable-changes}
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -24,7 +24,6 @@ profiles/clone-config.section.md
profiles/demo.section.md
profiles/docker-container.section.md
profiles/graphical.section.md
profiles/hardened.section.md
profiles/headless.section.md
profiles/installation-device.section.md
profiles/perlless.section.md
@@ -1,20 +0,0 @@
# Hardened {#sec-profile-hardened}
A profile with most (vanilla) hardening options enabled by default,
potentially at the cost of stability, features and performance.
This includes a hardened kernel, and limiting the system information
available to processes through the `/sys` and
`/proc` filesystems. It also disables the User Namespaces
feature of the kernel, which stops Nix from being able to build anything
(this particular setting can be overridden via
[](#opt-security.allowUserNamespaces)). See the
[profile source](https://github.com/nixos/nixpkgs/tree/master/nixos/modules/profiles/hardened.nix)
for further detail on which settings are altered.
::: {.warning}
This profile enables options that are known to affect system
stability. If you experience any stability issues when using the
profile, try disabling it. If you report an issue and use this
profile, always mention that you do.
:::
+2 -1
View File
@@ -1728,7 +1728,8 @@
"sec-profile-graphical": [
"index.html#sec-profile-graphical"
],
"sec-profile-hardened": [
"sec-release-26.05-incompatibilities-profiles-hardened-removed": [
"release-notes.html#sec-release-26.05-incompatibilities-profiles-hardened-removed",
"index.html#sec-profile-hardened"
],
"sec-profile-headless": [
@@ -88,6 +88,12 @@
- `opentrack`, `slushload`, `synthesia`, `vtfedit`, `winbox`, `wineasio`, and `yabridge` use wineWow64Packages instead of wineWowPackages as wine versions >= 11.0 have deprecated wineWowPackages. As such, the prefixes for these packages are NOT backwards compatible and need to be regenerated with potential for data loss.
- []{#sec-release-26.05-incompatibilities-profiles-hardened-removed} `profiles/hardened` has been removed, because:
- It lacks a consistent and transparent baseline or standard,
- It may introduce unexpected breakage or degrade performance without clear benefit,
- It is difficult to manage user expectations, especially since the implications of enabling it are not always obvious,
- and as multiple contributors have noted, it is often more of a “grab bag” of settings than a cohesive security policy.
- `services.crabfit` was removed because its upstream packages are unmaintained and insecure.
- `sing-box` has been updated to 1.13.0, which has removed some deprecated options. See [upstream documentation](https://sing-box.sagernet.org/configuration/) for details and migration options.
+8 -133
View File
@@ -1,136 +1,11 @@
# A profile with most (vanilla) hardening options enabled by default,
# potentially at the cost of stability, features and performance.
#
# This profile enables options that are known to affect system
# stability. If you experience any stability issues when using the
# profile, try disabling it. If you report an issue and use this
# profile, always mention that you do.
# This profile included most standard hardening options enabled by default,
# which may have impacted system stability, feature availability, and performance.
{ lib, ... }:
{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
mkDefault
mkOverride
mkEnableOption
mkIf
maintainers
;
in
{
options.profiles.hardened = mkEnableOption "hardened" // {
default = true;
example = false;
};
config = mkIf config.profiles.hardened {
meta = {
maintainers = [
maintainers.emily
];
};
boot.kernelPackages = mkDefault pkgs.linuxKernel.packages.linux_hardened;
nix.settings.allowed-users = mkDefault [ "@users" ];
environment.memoryAllocator.provider = mkDefault "scudo";
environment.variables.SCUDO_OPTIONS = mkDefault "zero_contents=true";
security.lockKernelModules = mkDefault true;
security.protectKernelImage = mkDefault true;
security.allowSimultaneousMultithreading = mkDefault false;
security.forcePageTableIsolation = mkDefault true;
# This is required by podman to run containers in rootless mode.
security.unprivilegedUsernsClone = mkDefault config.virtualisation.containers.enable;
security.virtualisation.flushL1DataCache = mkDefault "always";
security.apparmor.enable = mkDefault true;
security.apparmor.killUnconfinedConfinables = mkDefault true;
boot.kernelParams = [
# Don't merge slabs
"slab_nomerge"
# Overwrite free'd pages
"page_poison=1"
# Enable page allocator randomization
"page_alloc.shuffle=1"
# Disable debugfs
"debugfs=off"
];
boot.blacklistedKernelModules = [
# Obscure network protocols
"ax25"
"netrom"
"rose"
# Old or rare or insufficiently audited filesystems
"adfs"
"affs"
"bfs"
"befs"
"cramfs"
"efs"
"erofs"
"exofs"
"freevxfs"
"f2fs"
"hfs"
"hpfs"
"jfs"
"minix"
"nilfs2"
"ntfs"
"omfs"
"qnx4"
"qnx6"
"sysv"
"ufs"
];
# Hide kptrs even for processes with CAP_SYSLOG
boot.kernel.sysctl."kernel.kptr_restrict" = mkOverride 500 2;
# Disable bpf() JIT (to eliminate spray attacks)
boot.kernel.sysctl."net.core.bpf_jit_enable" = mkDefault false;
# Disable ftrace debugging
boot.kernel.sysctl."kernel.ftrace_enabled" = mkDefault false;
# Enable strict reverse path filtering (that is, do not attempt to route
# packets that "obviously" do not belong to the iface's network; dropped
# packets are logged as martians).
boot.kernel.sysctl."net.ipv4.conf.all.log_martians" = mkDefault true;
boot.kernel.sysctl."net.ipv4.conf.all.rp_filter" = mkDefault "1";
boot.kernel.sysctl."net.ipv4.conf.default.log_martians" = mkDefault true;
boot.kernel.sysctl."net.ipv4.conf.default.rp_filter" = mkDefault "1";
# Ignore broadcast ICMP (mitigate SMURF)
boot.kernel.sysctl."net.ipv4.icmp_echo_ignore_broadcasts" = mkDefault true;
# Ignore incoming ICMP redirects (note: default is needed to ensure that the
# setting is applied to interfaces added after the sysctls are set)
boot.kernel.sysctl."net.ipv4.conf.all.accept_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv4.conf.all.secure_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv4.conf.default.accept_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv4.conf.default.secure_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv6.conf.all.accept_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv6.conf.default.accept_redirects" = mkDefault false;
# Ignore outgoing ICMP redirects (this is ipv4 only)
boot.kernel.sysctl."net.ipv4.conf.all.send_redirects" = mkDefault false;
boot.kernel.sysctl."net.ipv4.conf.default.send_redirects" = mkDefault false;
};
imports = [
(lib.mkRemovedOptionModule [ "profiles" "hardened" ] ''
The hardened profile has been removed, see the backward incompatibilities section of the 26.05 release notes for more information.
'')
];
}
@@ -86,14 +86,16 @@ in
javaPackage = lib.mkPackageOption pkgs "jdk25" { };
packages = lib.mkOption {
default = [
pkgs.stdenv
pkgs.git
pkgs.jdk25
config.programs.ssh.package
pkgs.nix
];
defaultText = lib.literalExpression "[ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ]";
default = [ ];
example = lib.literalExpression ''
[
pkgs.stdenv
pkgs.git
pkgs.jdk25
config.programs.ssh.package
pkgs.nix
]
'';
type = lib.types.listOf lib.types.package;
description = ''
Packages to add to PATH for the jenkins process.
+32 -8
View File
@@ -119,11 +119,11 @@ in
package = lib.mkOption {
type = lib.types.package;
default =
if lib.versionAtLeast config.system.stateVersion "25.11" then pkgs.netbox_4_4 else pkgs.netbox_4_2;
if lib.versionAtLeast config.system.stateVersion "26.05" then pkgs.netbox_4_5 else pkgs.netbox_4_4;
defaultText = lib.literalExpression ''
if lib.versionAtLeast config.system.stateVersion "25.11"
then pkgs.netbox_4_4
else pkgs.netbox_4_2;
if lib.versionAtLeast config.system.stateVersion "26.05"
then pkgs.netbox_4_5
else pkgs.netbox_4_4;
'';
description = ''
NetBox package to use.
@@ -165,6 +165,15 @@ in
'';
};
apiTokenPeppersFile = lib.mkOption {
type = with lib.types; nullOr path;
description = ''
Path to a file containing the API_TOKEN_PEPPER that will be configured for the pepper_id with the id 1.
This is required for netbox >= 4.5. For generating this pepper,
[consider using `$INSTALL_ROOT/netbox/generate_secret_key.py`](https://netboxlabs.com/docs/netbox/configuration/required-parameters/#api_token_peppers)
'';
};
extraConfig = lib.mkOption {
type = lib.types.lines;
default = "";
@@ -237,10 +246,12 @@ in
GIT_PATH = "${pkgs.gitMinimal}/bin/git";
DATABASE = {
NAME = "netbox";
USER = "netbox";
HOST = "/run/postgresql";
DATABASES = {
"default" = {
NAME = "netbox";
USER = "netbox";
HOST = "/run/postgresql";
};
};
# Redis database settings. Redis is used for caching and for queuing
@@ -283,6 +294,12 @@ in
with open("${cfg.secretKeyFile}", "r") as file:
SECRET_KEY = file.readline()
''
+ (lib.optionalString (cfg.apiTokenPeppersFile != null) ''
with open("${cfg.apiTokenPeppersFile}", "r") as pepper_file:
API_TOKEN_PEPPERS = {
1: pepper_file.readline(),
};
'')
+ (lib.optionalString (cfg.keycloakClientSecret != null) ''
with open("${cfg.keycloakClientSecret}", "r") as file:
SOCIAL_AUTH_KEYCLOAK_SECRET = file.readline()
@@ -446,5 +463,12 @@ in
};
users.groups.netbox = { };
users.groups."${config.services.redis.servers.netbox.user}".members = [ "netbox" ];
assertions = [
{
assertion = (lib.versionAtLeast cfg.package.version "4.5") -> (cfg.apiTokenPeppersFile != null);
message = "NetBox 4.5 or newer require setting `services.netbox.apiTokenPeppersFile`";
}
];
};
}
+1 -3
View File
@@ -701,7 +701,6 @@ in
package = pkgs.hadoop_3_3;
};
haproxy = runTest ./haproxy.nix;
hardened = runTest ./hardened.nix;
harmonia = runTest ./harmonia.nix;
haste-server = runTest ./haste-server.nix;
hbase2 = runTest {
@@ -1054,9 +1053,8 @@ in
neo4j = runTest ./neo4j.nix;
netbird = runTest ./netbird.nix;
netbox-upgrade = runTest ./web-apps/netbox-upgrade.nix;
netbox_4_2 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_2; };
netbox_4_3 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_3; };
netbox_4_4 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_4; };
netbox_4_5 = handleTest ./web-apps/netbox/default.nix { netbox = pkgs.netbox_4_5; };
netdata = runTest ./netdata.nix;
networking.networkd = handleTest ./networking/networkd-and-scripted.nix { networkd = true; };
networking.networkmanager = handleTest ./networking/networkmanager.nix { };
-113
View File
@@ -1,113 +0,0 @@
{ pkgs, ... }:
{
name = "hardened";
meta = {
maintainers = [ ];
};
nodes.machine =
{
lib,
pkgs,
config,
...
}:
{
users.users.alice = {
isNormalUser = true;
extraGroups = [ "proc" ];
};
users.users.sybil = {
isNormalUser = true;
group = "wheel";
};
imports = [ ../modules/profiles/hardened.nix ];
environment.memoryAllocator.provider = "graphene-hardened";
nix.settings.sandbox = false;
virtualisation.emptyDiskImages = [
{
size = 4096;
driveConfig.deviceExtraOpts.serial = "deferred";
}
];
virtualisation.fileSystems = {
"/deferred" = {
device = "/dev/disk/by-id/virtio-deferred";
fsType = "vfat";
autoFormat = true;
options = [ "noauto" ];
};
};
boot.extraModulePackages = pkgs.lib.optional (pkgs.lib.versionOlder config.boot.kernelPackages.kernel.version "5.6") config.boot.kernelPackages.wireguard;
boot.kernelModules = [ "wireguard" ];
};
testScript =
let
hardened-malloc-tests = pkgs.graphene-hardened-malloc.ld-preload-tests;
in
''
machine.wait_for_unit("multi-user.target")
with subtest("AppArmor profiles are loaded"):
machine.succeed("systemctl status apparmor.service")
# AppArmor securityfs
with subtest("AppArmor securityfs is mounted"):
machine.succeed("mountpoint -q /sys/kernel/security")
machine.succeed("cat /sys/kernel/security/apparmor/profiles")
# Test loading out-of-tree modules
with subtest("Out-of-tree modules can be loaded"):
machine.succeed("grep -Fq wireguard /proc/modules")
# Test kernel module hardening
with subtest("No more kernel modules can be loaded"):
# note: this better a be module we normally wouldn't load ...
machine.wait_for_unit("disable-kernel-module-loading.service")
machine.fail("modprobe dccp")
# Test userns
with subtest("User namespaces are restricted"):
machine.succeed("unshare --user true")
machine.fail("su -l alice -c 'unshare --user true'")
# Test dmesg restriction
with subtest("Regular users cannot access dmesg"):
machine.fail("su -l alice -c dmesg")
# Test access to kcore
with subtest("Kcore is inaccessible as root"):
machine.fail("cat /proc/kcore")
# Test deferred mount
with subtest("Deferred mounts work"):
machine.fail("mountpoint -q /deferred") # was deferred
machine.systemctl("start deferred.mount")
machine.succeed("mountpoint -q /deferred") # now mounted
# Test Nix dæmon usage
with subtest("nix-daemon cannot be used by all users"):
machine.fail("su -l nobody -s /bin/sh -c 'nix --extra-experimental-features nix-command ping-store'")
machine.succeed("su -l alice -c 'nix --extra-experimental-features nix-command ping-store'")
# Test kernel image protection
with subtest("The kernel image is protected"):
machine.fail("systemctl hibernate")
machine.fail("systemctl kexec")
with subtest("The hardened memory allocator works"):
machine.succeed("${hardened-malloc-tests}/bin/run-tests")
'';
}
+1
View File
@@ -13,6 +13,7 @@ in
testing.makeTest {
name = "initrd-secrets-changing";
meta.broken = pkgs.stdenv.hostPlatform.isAarch64;
nodes.machine =
{ ... }:
+3 -2
View File
@@ -2,8 +2,9 @@
{
name = "optee";
meta = with pkgs.lib.maintainers; {
maintainers = [ jmbaur ];
meta = {
maintainers = with lib.maintainers; [ jmbaur ];
broken = pkgs.stdenv.hostPlatform.isAarch64;
};
nodes.machine =
+1
View File
@@ -31,6 +31,7 @@ let
name = "pulseaudio${lib.optionalString fullVersion "Full"}${lib.optionalString systemWide "-systemWide"}";
meta = {
maintainers = pkgs.pulseaudio.meta.maintainers;
broken = pkgs.stdenv.hostPlatform.isAarch64;
};
nodes.machine =
@@ -14,6 +14,7 @@ in
name = "systemd-initrd-luks-unl0kr";
meta = {
maintainers = [ ];
broken = pkgs.stdenv.hostPlatform.isAarch64;
};
# TODO: Fix OCR: #302965
+5 -2
View File
@@ -1,7 +1,7 @@
{ lib, pkgs, ... }:
let
oldNetbox = "netbox_4_3";
newNetbox = "netbox_4_4";
oldNetbox = "netbox_4_4";
newNetbox = "netbox_4_5";
apiVersion =
version:
@@ -38,6 +38,9 @@ in
secretKeyFile = pkgs.writeText "secret" ''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
'';
apiTokenPeppersFile = pkgs.writeText "pepper" ''
kp7ht*76fiQAhUi5dHfASLlYUE_S^gI^(7J^K5M!LfoH@vl&b_
'';
};
services.nginx = {
+28 -2
View File
@@ -37,6 +37,10 @@ import ../../make-test-python.nix (
secretKeyFile = pkgs.writeText "secret" ''
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
'';
# Value from https://netbox.readthedocs.io/en/feature/configuration/required-parameters/#api_token_peppers
apiTokenPeppersFile = pkgs.writeText "pepper" ''
kp7ht*76fiQAhUi5dHfASLlYUE_S^gI^(7J^K5M!LfoH@vl&b_
'';
enableLdap = true;
ldapConfigPath = pkgs.writeText "ldap_config.py" ''
@@ -155,10 +159,32 @@ import ../../make-test-python.nix (
u.set_password('netbox')
u.save()
'';
createToken = pkgs.writeText "create-token-v2.py" ''
from users.models import Token, User
from users.choices import TokenVersionChoices
u = User.objects.first()
t = Token.objects.create(user=u, token="0123456789abcdef0123456789abcdef01234567", version=TokenVersionChoices.V2)
print(t.get_auth_header_prefix())
'';
netboxVersion = netbox.version;
in
builtins.replaceStrings
[ "\${changePassword}" "\${testUser}" "\${testPassword}" "\${testGroup}" ]
[ "${changePassword}" "${testUser}" "${testPassword}" "${testGroup}" ]
[
"\${changePassword}"
"\${testUser}"
"\${testPassword}"
"\${testGroup}"
"\${createToken}"
"\${netboxVersion}"
]
[
"${changePassword}"
"${testUser}"
"${testPassword}"
"${testGroup}"
"${createToken}"
"${netboxVersion}"
]
(lib.readFile "${./testScript.py}");
}
)
+36 -23
View File
@@ -73,18 +73,7 @@ with subtest("Superuser can be created"):
"netbox-manage createsuperuser --noinput --username netbox --email netbox@example.com"
)
# Django doesn't have a "clean" way of inputting the password from the command line
machine.succeed("cat '${changePassword}' | netbox-manage shell")
machine.wait_for_unit("network.target")
with subtest("Home screen loads from nginx"):
machine.succeed(
"curl -sSfL http://localhost | grep '<title>Home | NetBox</title>'"
)
with subtest("Staticfiles can be fetched"):
machine.succeed("curl -sSfL http://localhost/static/netbox.js")
machine.succeed("curl -sSfL http://localhost/static/docs/")
machine.succeed("cat '${changePassword}' | netbox-manage shell --interface python")
def login(username: str, password: str):
encoded_data = json.dumps({"username": username, "password": password})
@@ -101,8 +90,29 @@ def login(username: str, password: str):
)
return result["key"]
with subtest("Can login"):
auth_token = login("netbox", "netbox")
netbox_version = "${netboxVersion}"
if compare(netbox_version, '4.5.2') < 0:
with subtest("Can login"):
auth_token = login("netbox", "netbox")
else:
with subtest("Superusertoken can be created"):
full_token = "0123456789abcdef0123456789abcdef01234567"
stdout = machine.succeed("cat ${createToken} | netbox-manage shell")
token_prefix = stdout.split(r"Bearer ")[-1].lstrip().rstrip()
auth_token = f"{token_prefix}{full_token}"
machine.wait_for_unit("network.target")
with subtest("Home screen loads from nginx"):
machine.succeed(
"curl -sSfL http://localhost | grep '<title>Home | NetBox</title>'"
)
with subtest("Staticfiles can be fetched"):
machine.succeed("curl -sSfL http://localhost/static/netbox.js")
machine.succeed("curl -sSfL http://localhost/static/docs/")
def get(uri: str):
return json.loads(
@@ -144,8 +154,8 @@ def post(uri: str, data: Dict[str, Any]):
def patch(uri: str, data: Dict[str, Any]):
return data_request(uri, "PATCH", data)
# Retrieve netbox version
netbox_version = get("/status/")["netbox-version"]
with subtest("Can retrieve netbox version"):
assert netbox_version == get("/status/")["netbox-version"]
with subtest("Can create objects"):
result = post("/dcim/sites/", {"name": "Test site", "slug": "test-site"})
@@ -263,12 +273,15 @@ if compare(netbox_version, '4.2.0') < 0:
assert result["data"]["prefix_list"][0]["prefix"] == test_objects["prefixes"]["v4-with-updated-desc"]["prefix"]
assert int(result["data"]["prefix_list"][0]["site"]["id"]) == int(test_objects["prefixes"]["v4-with-updated-desc"]["scope"]["id"])
with subtest("Can login with LDAP"):
machine.wait_for_unit("openldap.service")
login("alice", "${testPassword}")
# With 4.5.2 and higher, obtaining a session cookie or token without supplying
# proper CSRF tokens on the frontend /login/ endpoint is no longer possible
if compare(netbox_version, '4.5.2') < 0:
with subtest("Can login with LDAP"):
machine.wait_for_unit("openldap.service")
login("alice", "${testPassword}")
with subtest("Can associate LDAP groups"):
result = get("/users/users/?username=${testUser}")
with subtest("Can associate LDAP groups"):
result = get("/users/users/?username=${testUser}")
assert result["count"] == 1
assert any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"])
assert result["count"] == 1
assert any(group["name"] == "${testGroup}" for group in result["results"][0]["groups"])
@@ -11,18 +11,18 @@
vimUtils,
}:
let
version = "1001eb8-unstable-2026-03-13";
version = "0.4.3-nightly.dd56a3a-unstable-2026-03-20";
src = fetchFromGitHub {
owner = "dmtrKovalenko";
repo = "fff.nvim";
rev = "fcdf4a9172fba824ca6834731b93b74eba51d1c3";
hash = "sha256-AYxWrqru0/HCrfTXRqTExiOT6mNzNMk+pT6APRs0BUM=";
rev = "dd56a3a8a8a5a85522badaf6485f28c8f7a7c840";
hash = "sha256-F9fnjCwBEJfuK0TuRr7XjMcacMep5K0SuzGft2IFXtQ=";
};
fff-nvim-lib = rustPlatform.buildRustPackage {
pname = "fff-nvim-lib";
inherit version src;
cargoHash = "sha256-nXtJPE6HNZx5Ra4CwYi/f4EWww//1XwsiwtRG77RPJk=";
cargoHash = "sha256-Xhn+EpVF7XQOgHQpmoHHrZ/swi2xgdEFYh8D6mYJMSc=";
nativeBuildInputs = [
pkg-config
@@ -40,8 +40,6 @@ let
];
env = {
RUSTC_BOOTSTRAP = 1; # We need rust unstable features
OPENSSL_NO_VENDOR = true;
# Allow undefined symbols on Darwin - they will be provided by Neovim's LuaJIT runtime
@@ -88,7 +88,10 @@ stdenv.mkDerivation (finalAttrs: {
'';
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
updateScript = gitUpdater {
rev-prefix = "v";
allowedVersions = "\\.[02468]$";
};
tests.hello = runCommand "box64-test-hello" { nativeBuildInputs = [ finalAttrs.finalPackage ]; } ''
BOX64_LOG=1 box64 ${lib.getExe hello-x86_64} --version 2>&1 | tee $out
'';
@@ -391,11 +391,11 @@
"vendorHash": null
},
"f5networks_bigip": {
"hash": "sha256-aUf9eRpfxzdpz6Lv36xWxSW++tSMxYvqy9xtkko/bfc=",
"hash": "sha256-L/qV8Ff5UhRs6r+jadBUkofLcxggBq96gCpkk0Tv3k8=",
"homepage": "https://registry.terraform.io/providers/F5Networks/bigip",
"owner": "F5Networks",
"repo": "terraform-provider-bigip",
"rev": "v1.25.0",
"rev": "v1.25.1",
"spdx": "MPL-2.0",
"vendorHash": null
},
+3 -1
View File
@@ -28,7 +28,9 @@ stdenv.mkDerivation (finalAttrs: {
strictDeps = true;
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = [ "-fsigned-char" ];
env.NIX_CFLAGS_COMPILE = toString [
"-fsigned-char"
];
nativeBuildInputs = [ ctags ];
buildInputs = [ slang ];
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "awsbck";
version = "1.0.2";
version = "1.0.3";
src = fetchFromGitHub {
owner = "beeb";
repo = "awsbck";
rev = "v${finalAttrs.version}";
hash = "sha256-DU806u9MsZHB+7LmjMgrkaHG+Hi4BJ9OGKkIdDGOhz8=";
hash = "sha256-DZ2k0fwEyfeP24maTuxG2vmQaZuQ4LJo0KaKFTUDSYM=";
};
cargoHash = "sha256-kgPpT79XSMGtnPkl4xrX3sddJQHcNSZlNmCcrxKqzuk=";
cargoHash = "sha256-wydSzfb8GAJYJPNtSyYBUHtN3+9jsGINSex2F3ILQKI=";
# tests run in CI on the source repo
doCheck = false;
+6 -3
View File
@@ -8,7 +8,7 @@
wayland,
openssl,
squashfsTools,
makeWrapper,
makeBinaryWrapper,
versionCheckHook,
nix-update-script,
}:
@@ -28,7 +28,9 @@ rustPlatform.buildRustPackage (finalAttrs: {
nativeBuildInputs = [
pkg-config
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isLinux [
makeBinaryWrapper
];
buildInputs = lib.optionals stdenv.hostPlatform.isLinux [
@@ -37,7 +39,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
openssl
];
postFixup = ''
# squashfs tools are needed to build appimages for Linux
postFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
wrapProgram $out/bin/cargo-bundle \
--prefix PATH : ${lib.makeBinPath [ squashfsTools ]}
'';
+3 -3
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "clairvoyant";
version = "3.1.10";
version = "3.1.12";
src = fetchFromGitHub {
owner = "cassidyjames";
repo = "clairvoyant";
rev = finalAttrs.version;
hash = "sha256-CSORiNPqzliIpslV28NRPs/+bc9iblsLTPOm1WxxTjc=";
hash = "sha256-3TdtSa8RQkeUvw+oesHruyy7S/WnsX7FXWnDLowbEkg=";
};
nativeBuildInputs = [
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
description = "Ask questions, get psychic answers";
homepage = "https://github.com/cassidyjames/clairvoyant";
license = lib.licenses.gpl3Plus;
mainProgram = "com.github.cassidyjames.clairvoyant";
mainProgram = "com.cassidyjames.clairvoyant";
teams = [ lib.teams.gnome-circle ];
};
})
@@ -5,23 +5,23 @@
}:
buildNpmPackage (finalAttrs: {
pname = "claude-code-acp";
version = "0.16.1";
pname = "claude-agent-acp";
version = "0.21.0";
src = fetchFromGitHub {
owner = "zed-industries";
repo = "claude-code-acp";
repo = "claude-agent-acp";
tag = "v${finalAttrs.version}";
hash = "sha256-/HeAz0jdXhLhYGcwTgthrE7cGjKjro30GQUmAn4egXs=";
hash = "sha256-6c6bHuso3diW5ZfHiM2xcxGDTNG0LIL0TZd0MFVpW/E=";
};
npmDepsHash = "sha256-poTtwIIPHcgQ2uyIUIWVOpHbdDIzVgympa7aHtuSMok=";
npmDepsHash = "sha256-UtiIcjgNCYMFrRpO5AlUbOyutJ3ipwIbcpMi2BqawEk=";
meta = {
description = "ACP-compatible coding agent powered by the Claude Code SDK";
homepage = "https://github.com/zed-industries/claude-code-acp";
description = "ACP-compatible coding agent powered by the Claude Agent SDK";
homepage = "https://github.com/zed-industries/claude-agent-acp";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ storopoli ];
mainProgram = "claude-code-acp";
mainProgram = "claude-agent-acp";
};
})
+9 -5
View File
@@ -5,6 +5,7 @@
buildGoModule,
fetchFromGitHub,
installShellFiles,
krunkit,
lima-full,
makeWrapper,
procps,
@@ -60,11 +61,14 @@ buildGoModule (finalAttrs: {
postInstall = ''
wrapProgram $out/bin/colima \
--prefix PATH : ${
lib.makeBinPath [
# Suppress warning on `colima start`: https://github.com/abiosoft/colima/issues/1333
lima-full
qemu
]
lib.makeBinPath (
[
# Suppress warning on `colima start`: https://github.com/abiosoft/colima/issues/1333
lima-full
qemu
]
++ lib.optional (lib.meta.availableOn stdenv.hostPlatform krunkit) krunkit
)
}
installShellCompletion --cmd colima \
@@ -0,0 +1,19 @@
commit a1f0a46b4932ed1c98ceb872e6b346b370f1b638
Author: Patrick Chilton <chpatrick@gmail.com>
Date: Wed Mar 18 15:59:05 2026 +0100
Disambiguate ceres::GradientChecker constructor
diff --git a/src/colmap/estimators/cost_functions/reprojection_error_test.cc b/src/colmap/estimators/cost_functions/reprojection_error_test.cc
index 25e6ffdc..7a1e4777 100644
--- a/src/colmap/estimators/cost_functions/reprojection_error_test.cc
+++ b/src/colmap/estimators/cost_functions/reprojection_error_test.cc
@@ -106,7 +106,7 @@ TEST(ReprojErrorCostFunctor, AnalyticalVersusAutoDiff) {
ceres::NumericDiffOptions numeric_diff_options;
ceres::GradientChecker gradient_checker(
- analytical_cost_function.get(), nullptr, numeric_diff_options);
+ analytical_cost_function.get(), static_cast<const std::vector<const ceres::Manifold*>*>(nullptr), numeric_diff_options);
ceres::GradientChecker::ProbeResults results;
EXPECT_TRUE(
gradient_checker.Probe(parameter_blocks.data(), kEps, &results));
File diff suppressed because it is too large Load Diff
+15 -7
View File
@@ -15,6 +15,8 @@
cgal,
gmp,
mpfr,
suitesparse,
onnxruntime,
poselib,
lz4,
autoAddDriverRunpath,
@@ -52,6 +54,8 @@ let
mpfr
lz4
qt5.qtbase
suitesparse
onnxruntime
]
++ lib.optionals cudaSupport [
cudatoolkit
@@ -63,26 +67,30 @@ let
inherit (cudaPackages) cudatoolkit;
in
stdenv'.mkDerivation {
version = "unstable-3.12.5-openimageio";
version = "4.0.2";
pname = "colmap";
src = fetchFromGitHub {
owner = "colmap";
repo = "colmap";
rev = "f8edccaa36909713b9d3930e1ca65cb364a38b26";
hash = "sha256-0lD7ywM48ODe11u9D3XSk9btqQ4gs/APBFf9IyiXe6g=";
rev = "d927f7e518fc20afa33390712c4cc20d85b730b8";
hash = "sha256-+cPkksfCLyEo7A70nuRWnOBEkhx8BFevQ9XWTipEkpM=";
};
# TODO: remove this when https://github.com/colmap/colmap/pull/3459 is in a release
# This was produced with:
# git diff f8edccaa36909713b9d3930e1ca65cb364a38b26 e40c0730020938587c9d4eb7634cbff93cbc2f81
patches = [ ./openimageio.patch ];
patches = [
./suitesparse-no-include-subdir.patch
# Remove when https://github.com/colmap/colmap/pull/4265 is merged
./disambiguate-gradientchecker.patch
];
cmakeFlags = [
(lib.cmakeBool "DOWNLOAD_ENABLED" false)
(lib.cmakeBool "UNINSTALL_ENABLED" false)
(lib.cmakeBool "FETCH_POSELIB" false)
(lib.cmakeBool "FETCH_FAISS" false)
(lib.cmakeBool "FETCH_ONNX" false)
(lib.cmakeBool "TESTS_ENABLED" true)
(lib.cmakeFeature "CHOLMOD_INCLUDE_DIR_HINTS" "${suitesparse.dev}/include")
(lib.cmakeFeature "CHOLMOD_LIBRARY_DIR_HINTS" "${suitesparse}/lib")
]
++ lib.optionals cudaSupport [
(lib.cmakeBool "CUDA_ENABLED" cudaSupport)
@@ -0,0 +1,22 @@
diff --git a/cmake/FindCHOLMOD.cmake b/cmake/FindCHOLMOD.cmake
index a5daf0e3..b0f13e3e 100644
--- a/cmake/FindCHOLMOD.cmake
+++ b/cmake/FindCHOLMOD.cmake
@@ -57,7 +57,7 @@ if(TARGET CHOLMOD::CHOLMOD)
else()
find_path(CHOLMOD_INCLUDE_DIRS
NAMES
- suitesparse/cholmod.h
+ cholmod.h
PATHS
${CHOLMOD_INCLUDE_DIR_HINTS}
/usr/include
@@ -89,7 +89,7 @@ else()
add_library(CHOLMOD::CHOLMOD INTERFACE IMPORTED)
target_include_directories(
- CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_INCLUDE_DIRS}/suitesparse)
+ CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_INCLUDE_DIRS})
target_link_libraries(
CHOLMOD::CHOLMOD INTERFACE ${CHOLMOD_LIBRARIES})
endif()
+2 -2
View File
@@ -21,13 +21,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "commit";
version = "4.4";
version = "4.5";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "Commit";
tag = "v${finalAttrs.version}";
hash = "sha256-ACgt1xZTiHYiCTUvfQ+KP5TYm8tMimGizK1dn9UXzao=";
hash = "sha256-PyxByqvTK/B5Kr+uRZTZxsHcfhLqAjZrJ0/hW7m8zVQ=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -22,14 +22,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "curtail";
version = "1.15.0";
version = "1.15.1";
pyproject = false;
src = fetchFromGitHub {
owner = "Huluti";
repo = "Curtail";
tag = finalAttrs.version;
hash = "sha256-1X3isnhl5Lw+iVLM2WdZEaKphLiikBtg5QlSxgQHqy8=";
hash = "sha256-NPLixVrlM8i+AWcQ/poYGfBn0t8HOTUTryJf3VXy3lM=";
};
nativeBuildInputs = [
+3
View File
@@ -25,6 +25,9 @@ buildGoModule (finalAttrs: {
# we have no bash at the moment for windows
env.BASH_PATH = lib.optionalString (!stdenv.hostPlatform.isWindows) "${bash}/bin/bash";
# Build a static executable to avoid environment runtime impurities
env.CGO_ENABLED = 0;
# replace the build phase to use the GNUMakefile instead
buildPhase = ''
make BASH_PATH=$BASH_PATH
@@ -7,16 +7,16 @@
buildGoModule (finalAttrs: {
pname = "docker-credential-env";
version = "1.6.0";
version = "1.6.1";
src = fetchFromGitHub {
owner = "isometry";
repo = "docker-credential-env";
tag = "v${finalAttrs.version}";
hash = "sha256-PnLylYDuDg+FSZ4CUSoQ5gMk4p08FP4OKBxkeIMa+tY=";
hash = "sha256-EqSlbgGOuGQ2Y7aZ4MqUBgWK0aVI7Afi/KAxfdVu0zE=";
};
vendorHash = "sha256-uALgz1TXTIk8UlxTaqYOXvCg9121hMIFfJoYC0jxohk=";
vendorHash = "sha256-JTrFRpRjdLXKTvj7I2KYcIsFfuWLHPnjKV+3Q6b6DDs=";
ldflags =
let
+8 -5
View File
@@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "dotenvx";
version = "1.51.4";
version = "1.57.2";
src = fetchFromGitHub {
owner = "dotenvx";
repo = "dotenvx";
tag = "v${version}";
hash = "sha256-+tPN1ZLYWJ0WHQN7uRYMK13XTTEJy63gOpetiQZjtqY=";
hash = "sha256-OJYE1oK2AJV1zHh1eIx1pdH5N9PQN9n559B+qk2BcXo=";
};
npmDepsHash = "sha256-K75er2hcfWiWDlKAU9BWyZ/peO9LoB5DLBz9vIBnn10=";
npmDepsHash = "sha256-sCwQ43CC9N9FLI7gHY3n80Tjg+lKKc0bqDcw7r2ZC10=";
dontNpmBuild = true;
@@ -30,11 +30,14 @@ buildNpmPackage rec {
};
meta = {
description = "Better dotenvfrom the creator of `dotenv";
description = "Better dotenvfrom the creator of `dotenv`";
homepage = "https://github.com/dotenvx/dotenvx";
changelog = "https://github.com/dotenvx/dotenvx/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ natsukium ];
maintainers = with lib.maintainers; [
natsukium
kaynetik
];
mainProgram = "dotenvx";
};
}
+2 -2
View File
@@ -19,14 +19,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "elastic";
version = "0.1.9";
version = "1.0.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "elastic";
rev = finalAttrs.version;
hash = "sha256-jK9RcZ5U1Dwkpu1mlfq/l4347eRCd3Y/KDYYIIkGytk=";
hash = "sha256-ydRKkVYQ1f6Jlymej1Wzoppo6E0FEUvIfrfnDqLRcPY=";
};
nativeBuildInputs = [
@@ -18,6 +18,7 @@
asar,
copyDesktopItems,
darwin,
actool,
}:
let
@@ -58,6 +59,7 @@ stdenv.mkDerivation (
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.autoSignDarwinBinariesHook
actool
];
inherit seshat;
@@ -163,6 +165,10 @@ stdenv.mkDerivation (
})
];
stripDebugList = lib.optionals stdenv.hostPlatform.isDarwin [
"Applications/Element.app/Contents/MacOS"
];
passthru = {
# run with: nix-shell ./maintainers/scripts/update.nix --argstr package element-desktop
updateScript = ./update.sh;
+3 -3
View File
@@ -7,17 +7,17 @@
buildGoModule rec {
pname = "etcd";
version = "3.4.39";
version = "3.4.42";
src = fetchFromGitHub {
owner = "etcd-io";
repo = "etcd";
rev = "v${version}";
hash = "sha256-S1aNEd7pPgSu8vFhXIYFjEvfBG3OtmuKCvD5Zgj0m30=";
hash = "sha256-Ue5Mcksy3LiXLaVdxNz83V9qrxQfzxL5kw4rZobYcvY=";
};
proxyVendor = true;
vendorHash = "sha256-CqeSRyWDw1nCKlAI46iJXT5XjI3elxufx87QIlHwp1w=";
vendorHash = "sha256-DqKVZ4Z2RMRwi4Z/6Rh3SE6NSyuHePSYrIM7sPyPC74=";
preBuild = ''
go mod tidy
+5 -5
View File
@@ -8,11 +8,11 @@
}:
let
version = "3.5.27";
etcdSrcHash = "sha256-ne0uKpS7KQL/Efi5sMdnD8PQl5phDivBEM1PrsSxVf4=";
etcdServerVendorHash = "sha256-6vu0ttbes5uN+m/tW/zuPZgyc1z+VcNpoJauykxBUUY=";
etcdUtlVendorHash = "sha256-Z8Rc19p5Sigg71/r9yURE6LNHqHjah3b/ZfxI0nH4qc=";
etcdCtlVendorHash = "sha256-uAo50jN69YKuW3NCRtc9HE8AnqKWtZQ+sJvwgw1BJj0=";
version = "3.5.28";
etcdSrcHash = "sha256-D4c+YfNQATW8/9m/5edPKtG9qQa8MxpbpDTCZY6cvA4=";
etcdServerVendorHash = "sha256-IiGoG/5HJBZXhWhluK1uQVOXRk2I4VDokT7EcjhEnWU=";
etcdUtlVendorHash = "sha256-mUzwpxAsUhXdK70BwtjWJqjzLpDnNFNXW6tHP81c72w=";
etcdCtlVendorHash = "sha256-Bn3mirDqs9enpNTlp65YWiQRKpc+B6wD33b0xkaqSKE=";
src = fetchFromGitHub {
owner = "etcd-io";
+5 -5
View File
@@ -11,11 +11,11 @@
}:
let
version = "3.6.8";
etcdSrcHash = "sha256-dNoQ+KKHZoi9GAqjyKPOpEJUwN6FID1tKfMiMknG7Dc=";
etcdCtlVendorHash = "sha256-lxFvpEGsp/HS0p54JrjBps7C/c7QR2QFQXU81sO9cPU=";
etcdUtlVendorHash = "sha256-6vzClDji9O2SGnKL3lsv3AUbCt/BicsDy1sPeuPdGXk=";
etcdServerVendorHash = "sha256-4vz63r05uZOzFQYA9jz9HLsQEDFL30cOETmV/AZanmY=";
version = "3.6.9";
etcdSrcHash = "sha256-6rNCfjfs/lwiF3rnq5IM8ohW8Gz9r6gFHhIu9kvJ8VA=";
etcdCtlVendorHash = "sha256-yUA28nP5ueJz/b7spbg1mFRs2doBIyVNuZMCMlf//AE=";
etcdUtlVendorHash = "sha256-E3AVaUVulVKWGRbj/v2owbqkIfvxo/5naN1sNd96z+s=";
etcdServerVendorHash = "sha256-HtAsmsdjBbqls0S80E08PZcZYFlfpKUYrgJunRFP8Gc=";
src = applyPatches {
src = fetchFromGitHub {
+8 -8
View File
@@ -3,9 +3,11 @@
stdenv,
alsa-lib,
appstream-glib,
blueprint-compiler,
cargo,
desktop-file-utils,
fetchFromGitHub,
json-glib,
glib,
gtk4,
libadwaita,
@@ -16,27 +18,24 @@
rustPlatform,
rustc,
wrapGAppsHook4,
vala,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "exercise-timer";
version = "1.8.5";
version = "1.9.1";
src = fetchFromGitHub {
owner = "mfep";
repo = "exercise-timer";
tag = "v${finalAttrs.version}";
hash = "sha256-yparZ9XmHkjwvgpnERpi8hvRXdb8R+kAyFOFl+exXb4=";
hash = "sha256-81bGX5Oa5z5AbtYDzPcSyFsz0/zWcDw/Ky9n+EfnZNo=";
fetchLFS = true;
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-JObzeiQHEGIDjOung3o8dpaXVcOoJS2v1hyrcS1fqcI=";
};
nativeBuildInputs = [
appstream-glib
blueprint-compiler
cargo
desktop-file-utils
glib
@@ -44,13 +43,14 @@ stdenv.mkDerivation (finalAttrs: {
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook4
vala
];
buildInputs = [
alsa-lib
json-glib
libadwaita
];
@@ -6,29 +6,36 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "faraday-agent-dispatcher";
version = "3.4.2";
version = "3.9.1";
pyproject = true;
src = fetchFromGitHub {
owner = "infobyte";
repo = "faraday_agent_dispatcher";
tag = finalAttrs.version;
hash = "sha256-Qr3ZGU4y7f6yHD78ecdv7a6IBFDpT+/4Yez0n/MenN0=";
hash = "sha256-uf1oXE8pFvIPTDgcHXRbZDz8NZn9NecPe1eYuYhb1Xw=";
};
postPatch = ''
substituteInPlace setup.py \
--replace-fail '"pytest-runner",' ""
'';
--replace-fail '"pytest-runner",' "" '';
pythonRelaxDeps = [
"python-socketio"
];
pythonRemoveDeps = [
"python-owasp-zap-v2.4"
];
build-system = with python3.pkgs; [
setuptools-scm
];
nativeBuildInputs = [
python3.pkgs.python-owasp-zap-v2-4
];
dependencies = with python3.pkgs; [
aiohttp
click
@@ -42,6 +49,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
python-socketio
pyyaml
requests
requests-ratelimiter
syslog-rfc5424-formatter
websockets
];
+2 -2
View File
@@ -6,14 +6,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "getmail6";
version = "6.19.10";
version = "6.19.12";
pyproject = true;
src = fetchFromGitHub {
owner = "getmail6";
repo = "getmail6";
tag = "v${finalAttrs.version}";
hash = "sha256-W9B6+riHsE5Hu2J8QnhPKhpRlXsQyg3ThP4ADp/0UhI=";
hash = "sha256-E+S6p12eqVDkzTv6RdeBpUJqPd4a4LMVoGaYOr2XKVo=";
};
build-system = with python3.pkgs; [
@@ -8,17 +8,17 @@
buildGoModule (finalAttrs: {
pname = "gitea-actions-runner";
version = "0.2.13";
version = "0.3.0";
src = fetchFromGitea {
domain = "gitea.com";
owner = "gitea";
repo = "act_runner";
rev = "v${finalAttrs.version}";
hash = "sha256-S0pZddExNw4RQvigWJh4r1CPDS+eOCa1n/8278J3wR4=";
hash = "sha256-D2b0m3XEEEugjnrEzpYGxwD8hzpoPzIW9lNrCbgmKVc=";
};
vendorHash = "sha256-F+rFv0s/GBY3InWiofk3MCADfyauAmL/TpilWhZB5vE=";
vendorHash = "sha256-EqU+YJrwKtA9LHa7DkRJ6er5GNocR8Gbhjjx72mPhqE=";
ldflags = [
"-s"
+2 -2
View File
@@ -23,14 +23,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "gnome-decoder";
version = "0.8.0";
version = "0.8.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "decoder";
tag = finalAttrs.version;
hash = "sha256-O+DXfR9nZ0iz9IX/SZVX6ESI/vRa4ErEPxdgqSyOye0=";
hash = "sha256-g3ztQ+wiCDY19bc2/IABzXGSQrZltQgrTZ7rSI0RyFs=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
+2 -2
View File
@@ -19,7 +19,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "gnome-graphs";
version = "1.8.4";
version = "1.8.7";
pyproject = false;
src = fetchFromGitLab {
@@ -27,7 +27,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "World";
repo = "Graphs";
rev = "v${finalAttrs.version}";
hash = "sha256-up4Hv2gndekDQzEnf7kkskDyRGJ/mqEji7dsuLgnUVI=";
hash = "sha256-nMcpsYW8/WdCKmHnsObAWhDeo7+1vqBGTTXteh6jBus=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -23,7 +23,7 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "gnome-secrets";
version = "12.0";
version = "12.3";
pyproject = false;
src = fetchFromGitLab {
@@ -31,7 +31,7 @@ python3Packages.buildPythonApplication (finalAttrs: {
owner = "World";
repo = "secrets";
tag = finalAttrs.version;
hash = "sha256-U+ez/rhaXROcLdXhFY992YzIRBCkR05hxkAYbWIpa/A=";
hash = "sha256-ypkzswfX/qdVtMja2oky8Gein2BO1gzDvjbtcd3Javc=";
};
postPatch = ''
+3 -3
View File
@@ -8,18 +8,18 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "harper";
version = "1.10.0";
version = "1.12.0";
src = fetchFromGitHub {
owner = "Automattic";
repo = "harper";
rev = "v${finalAttrs.version}";
hash = "sha256-QI9uwrYhXUle6ZeGb1J9A7D1mqRM8Pb62Sk93M8zrS4=";
hash = "sha256-PIUrOwKiLZyeHceOUK7gSylhO815gyj7/XERGGGYAsA=";
};
buildAndTestSubdir = "harper-ls";
cargoHash = "sha256-zPi3HhYJzPy/x/7/8LxuOGgCkwlC2qMfKWsuiPLHGOQ=";
cargoHash = "sha256-79wUwINGkhHSmb+0Mq+x+evZNLfhNtWoRgoJHhIlw90=";
passthru.updateScript = nix-update-script { };
+3 -3
View File
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "heatseeker";
version = "1.10.0";
version = "1.10.1";
src = fetchFromGitHub {
owner = "rschmitt";
repo = "heatseeker";
tag = "v${finalAttrs.version}";
hash = "sha256-Hfx2QTfSJ6lh/K3ZdJzXqgxGOVbC2i2ZqZKH8Wtj/6k=";
hash = "sha256-yIFMwC7W/vn7HOAJ1+HGFzPq4k+KF7mqua0XZteDBRg=";
};
cargoHash = "sha256-8ZrPHm+W4lxVzupgeLcCQmpNRJS3aEaSWWKPkGVZVTg=";
cargoHash = "sha256-qBTHNArPgf/qrce6hP3GJ1f9NcJ5OmSokCs5IVtyJQQ=";
# https://github.com/rschmitt/heatseeker/issues/42
# I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
+2 -2
View File
@@ -16,14 +16,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "hydrus";
version = "662";
version = "663";
pyproject = false;
src = fetchFromGitHub {
owner = "hydrusnetwork";
repo = "hydrus";
tag = "v${finalAttrs.version}";
hash = "sha256-p5yIZlnS5EWkJYvDfyjdebEKRv/u9rLXH3g4G1esn+A=";
hash = "sha256-xIQx3aCLbFtdiugLDZsZpsv6TOUj84f6U+80rDZ9mZk=";
};
nativeBuildInputs = [
+5 -3
View File
@@ -12,6 +12,7 @@
gtk4,
lcms,
libadwaita,
libglycin-gtk4,
libseccomp,
libwebp,
meson,
@@ -26,19 +27,19 @@
stdenv.mkDerivation (finalAttrs: {
pname = "identity";
version = "25.03";
version = "25.10.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "YaLTeR";
repo = "identity";
tag = "v${finalAttrs.version}";
hash = "sha256-JZyhT220ARZ2rX0CZYeFkHx8i9ops7TcfGje0NKebnU=";
hash = "sha256-ThccOze4BkqAprk1Yt+Ughts0DFbBwLDYd4iE8ZMwxo=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
hash = "sha256-RCSTxtHXkLsH8smGp2XzQeV9SSpLx5llrFg3cgIsWKY=";
hash = "sha256-Do+20wh9F8xE+fA9Sg+8uyRojOF7Ih4taL/pZszU6xc=";
};
strictDeps = true;
@@ -69,6 +70,7 @@ stdenv.mkDerivation (finalAttrs: {
gtk4
lcms
libadwaita
libglycin-gtk4
libseccomp
libwebp
];
+2 -2
View File
@@ -20,7 +20,7 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "iotas";
version = "0.12.5";
version = "0.12.7";
pyproject = false;
src = fetchFromGitLab {
@@ -28,7 +28,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
owner = "World";
repo = "iotas";
tag = finalAttrs.version;
hash = "sha256-qbUI2hkW3rRiiBWFADuB9KFMf6Maw+WAkdy6dTE+Yo0=";
hash = "sha256-LA00Szhjk/tzGnzDGm65SCgH6l2fk+8+p4PhIpB7T1I=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -19,13 +19,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "junction";
version = "1.9";
version = "1.12";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "junction";
tag = "v${finalAttrs.version}";
hash = "sha256-gnFig8C46x73gAUl9VVx3Y3hrhEVeP/DvaYHYuv9RTg=";
hash = "sha256-sl/NeElAp/SWHp0BdXycrZYCgm4I4MFx/uHnQf78H8g=";
fetchSubmodules = true;
};
+3 -2
View File
@@ -24,14 +24,14 @@
python3.pkgs.buildPythonApplication (finalAttrs: {
pname = "komikku";
version = "1.103.0";
version = "1.105.0";
pyproject = false;
src = fetchFromCodeberg {
owner = "valos";
repo = "Komikku";
tag = "v${finalAttrs.version}";
hash = "sha256-1RYuaVIdiADAmbzXG8vi1eNoDh8yBL3aVfBsMiGd3h4=";
hash = "sha256-Zd+YUFnklu6JbytT/oS8hUU+IcqMfF4f/u6OKmg8uT4=";
};
nativeBuildInputs = [
@@ -62,6 +62,7 @@ python3.pkgs.buildPythonApplication (finalAttrs: {
dateparser
ebooklib
emoji
jxlpy
keyring
lxml
natsort
+2 -2
View File
@@ -22,13 +22,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lagrange";
version = "1.19.4";
version = "1.20.2";
src = fetchFromGitHub {
owner = "skyjake";
repo = "lagrange";
tag = "v${finalAttrs.version}";
hash = "sha256-o8BDreuQbPrGuSV7k4OVy4XmMSSEXrdNzEzUXM6hMyA=";
hash = "sha256-Rin9frCxY7vMJQbErtR7pXss2GciL4LbXg+BFHFNjn4=";
};
nativeBuildInputs = [
@@ -0,0 +1,201 @@
From de01c862388005ad142f38a7066593fe59a56fce Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Wed, 11 Mar 2026 18:55:19 +0100
Subject: [PATCH] Clean up declarations/definitions & usage of 0 argument
functions
This project doesn't enforce a C standard to use, so the compiler's default C standard is used.
GCC 15's default C standard is C23, which has removed support for treating a function with an empty parameter list
as a function that accepts some vague amount of arguments.
() is now treated the same as (void). This was already the intended meaning of such declarations, but
to have the same behaviour on previous C standards, let's be explicit about the void part.
Since the amount of arguments must now be exactly 0, clean up some calls in tests/check_signon.c that
relied on the previous meaning of () and passed 2 NULLs to such functions.
---
libsignon-glib/signon-auth-service.c | 2 +-
libsignon-glib/signon-auth-service.h | 2 +-
libsignon-glib/signon-auth-session.c | 2 +-
libsignon-glib/signon-identity-info.c | 2 +-
libsignon-glib/signon-identity-info.h | 2 +-
libsignon-glib/signon-identity.c | 4 ++--
libsignon-glib/signon-identity.h | 2 +-
libsignon-glib/signon-proxy.c | 4 ++--
tests/check_signon.c | 10 +++++-----
9 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/libsignon-glib/signon-auth-service.c b/libsignon-glib/signon-auth-service.c
index 785ce05..e06de60 100644
--- a/libsignon-glib/signon-auth-service.c
+++ b/libsignon-glib/signon-auth-service.c
@@ -138,7 +138,7 @@ _signon_auth_service_finish_query_mechanisms (GObject *source_object,
* Returns: an instance of an #SignonAuthService.
*/
SignonAuthService *
-signon_auth_service_new ()
+signon_auth_service_new (void)
{
return g_object_new (SIGNON_TYPE_AUTH_SERVICE, NULL);
}
diff --git a/libsignon-glib/signon-auth-service.h b/libsignon-glib/signon-auth-service.h
index 1deb7e0..d6492ad 100644
--- a/libsignon-glib/signon-auth-service.h
+++ b/libsignon-glib/signon-auth-service.h
@@ -34,7 +34,7 @@ G_BEGIN_DECLS
#define SIGNON_TYPE_AUTH_SERVICE signon_auth_service_get_type ()
G_DECLARE_FINAL_TYPE (SignonAuthService, signon_auth_service, SIGNON, AUTH_SERVICE, GObject)
-SignonAuthService *signon_auth_service_new ();
+SignonAuthService *signon_auth_service_new (void);
void signon_auth_service_get_methods (SignonAuthService *auth_service,
GCancellable *cancellable,
diff --git a/libsignon-glib/signon-auth-session.c b/libsignon-glib/signon-auth-session.c
index c308017..ba1ce7d 100644
--- a/libsignon-glib/signon-auth-session.c
+++ b/libsignon-glib/signon-auth-session.c
@@ -232,7 +232,7 @@ destroy_proxy (SignonAuthSession *self)
}
static GQuark
-auth_session_object_quark ()
+auth_session_object_quark (void)
{
static GQuark quark = 0;
diff --git a/libsignon-glib/signon-identity-info.c b/libsignon-glib/signon-identity-info.c
index 8adfa9b..4af58c8 100644
--- a/libsignon-glib/signon-identity-info.c
+++ b/libsignon-glib/signon-identity-info.c
@@ -277,7 +277,7 @@ signon_identity_info_to_variant (const SignonIdentityInfo *self)
*
* Returns: a new #SignonIdentityInfo item.
*/
-SignonIdentityInfo *signon_identity_info_new ()
+SignonIdentityInfo *signon_identity_info_new (void)
{
SignonIdentityInfo *info = g_slice_new0 (SignonIdentityInfo);
info->methods = g_hash_table_new_full (g_str_hash, g_str_equal,
diff --git a/libsignon-glib/signon-identity-info.h b/libsignon-glib/signon-identity-info.h
index 7305f50..ed60b48 100644
--- a/libsignon-glib/signon-identity-info.h
+++ b/libsignon-glib/signon-identity-info.h
@@ -55,7 +55,7 @@ typedef enum {
GType signon_identity_info_get_type (void) G_GNUC_CONST;
-SignonIdentityInfo *signon_identity_info_new ();
+SignonIdentityInfo *signon_identity_info_new (void);
void signon_identity_info_free (SignonIdentityInfo *info);
SignonIdentityInfo *signon_identity_info_copy (const SignonIdentityInfo *other);
diff --git a/libsignon-glib/signon-identity.c b/libsignon-glib/signon-identity.c
index eb58a45..647b364 100644
--- a/libsignon-glib/signon-identity.c
+++ b/libsignon-glib/signon-identity.c
@@ -130,7 +130,7 @@ static void identity_process_updated (SignonIdentity *self);
static void identity_process_removed (SignonIdentity *self);
static GQuark
-identity_object_quark ()
+identity_object_quark (void)
{
static GQuark quark = 0;
@@ -576,7 +576,7 @@ signon_identity_new_from_db (guint32 id)
* Returns: an instance of an #SignonIdentity.
*/
SignonIdentity*
-signon_identity_new ()
+signon_identity_new (void)
{
SignonIdentity *identity;
diff --git a/libsignon-glib/signon-identity.h b/libsignon-glib/signon-identity.h
index f366f8a..f42a8e8 100644
--- a/libsignon-glib/signon-identity.h
+++ b/libsignon-glib/signon-identity.h
@@ -36,7 +36,7 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (SignonIdentity, signon_identity, SIGNON, IDENTITY, GObject)
SignonIdentity *signon_identity_new_from_db (guint32 id);
-SignonIdentity *signon_identity_new ();
+SignonIdentity *signon_identity_new (void);
guint32 signon_identity_get_id (SignonIdentity *identity);
diff --git a/libsignon-glib/signon-proxy.c b/libsignon-glib/signon-proxy.c
index f37d5c1..4f01443 100644
--- a/libsignon-glib/signon-proxy.c
+++ b/libsignon-glib/signon-proxy.c
@@ -46,7 +46,7 @@ signon_proxy_default_init (SignonProxyInterface *iface)
}
static GQuark
-_signon_proxy_ready_quark()
+_signon_proxy_ready_quark (void)
{
static GQuark quark = 0;
@@ -57,7 +57,7 @@ _signon_proxy_ready_quark()
}
static GQuark
-_signon_proxy_error_quark()
+_signon_proxy_error_quark (void)
{
static GQuark quark = 0;
diff --git a/tests/check_signon.c b/tests/check_signon.c
index 3e1e758..405582e 100644
--- a/tests/check_signon.c
+++ b/tests/check_signon.c
@@ -388,7 +388,7 @@ START_TEST(test_auth_session_creation)
const gchar *method = NULL;
g_debug("%s", G_STRFUNC);
- SignonIdentity *idty = signon_identity_new(NULL, NULL);
+ SignonIdentity *idty = signon_identity_new();
fail_unless (idty != NULL, "Cannot create Identity object");
SignonAuthSession *auth_session = signon_identity_create_session(idty,
@@ -442,7 +442,7 @@ START_TEST(test_auth_session_process_async)
gboolean ok;
g_debug("%s", G_STRFUNC);
- SignonIdentity *idty = signon_identity_new(NULL, NULL);
+ SignonIdentity *idty = signon_identity_new();
fail_unless (idty != NULL, "Cannot create Identity object");
SignonAuthSession *auth_session = signon_identity_create_session(idty,
@@ -751,7 +751,7 @@ new_identity()
GList *acl = g_list_append (NULL, signon_security_context_new_from_values ("*", "*"));
guint id = 0;
- identity = signon_identity_new(NULL, NULL);
+ identity = signon_identity_new();
fail_unless (SIGNON_IS_IDENTITY (identity));
SignonIdentityInfo *info = signon_identity_info_new ();
@@ -864,7 +864,7 @@ static void store_credentials_identity_cb (GObject *source_object,
START_TEST(test_store_credentials_identity)
{
g_debug("%s", G_STRFUNC);
- SignonIdentity *idty = signon_identity_new(NULL, NULL);
+ SignonIdentity *idty = signon_identity_new();
fail_unless (idty != NULL);
fail_unless (SIGNON_IS_IDENTITY (idty),
"Failed to initialize the Identity.");
@@ -911,7 +911,7 @@ START_TEST(test_verify_secret_identity)
GList *acl = g_list_append (NULL, signon_security_context_new_from_values ("*", "*"));
g_debug("%s", G_STRFUNC);
- SignonIdentity *idty = signon_identity_new(NULL, NULL);
+ SignonIdentity *idty = signon_identity_new();
fail_unless (idty != NULL);
fail_unless (SIGNON_IS_IDENTITY (idty),
"Failed to initialize the Identity.");
--
2.51.2
@@ -35,6 +35,11 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
patches = [
# Remove when https://gitlab.com/accounts-sso/libsignon-glib/-/merge_requests/23 merged & in release
./1001-Clean-up-declarations-definitions-usage-of-0-argument-functions.patch
];
nativeBuildInputs = [
check
docbook_xml_dtd_412
+6 -6
View File
@@ -7,12 +7,12 @@
let
pname = "lmstudio";
version_aarch64-linux = "0.4.5-2";
hash_aarch64-linux = "sha256-BeF9FNMde9RW2icdq07zkWQafge7ViWKvR+xupRIdjE=";
version_aarch64-darwin = "0.4.6-1";
hash_aarch64-darwin = "sha256-CpeBUXpBAOJPEZAb3neY5pWRSGNcy4Usgsm6qyI5PVA=";
version_x86_64-linux = "0.4.6-1";
hash_x86_64-linux = "sha256-FHZ64zmnqHrQyX4ift/lVUzW+HiCVkXpWVa4hkssX/k=";
version_aarch64-linux = "0.4.7-4";
hash_aarch64-linux = "sha256-4gGg8CULPhAw1ZytaHmJNBqNyVVNO2LV+tm3AUi2sJo=";
version_aarch64-darwin = "0.4.7-4";
hash_aarch64-darwin = "sha256-V0m5oK+HCBaZPr6tAJVa98jb3IEPWs6ccAa/1GXsgy8=";
version_x86_64-linux = "0.4.7-4";
hash_x86_64-linux = "sha256-2dSgBr2B+PIUi/YCBmXDWXQWEEId6Qymh1JQuAPG/xU=";
meta = {
description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
+1 -1
View File
@@ -3,7 +3,7 @@
set -euo pipefail
for system in "aarch64-darwin darwin/arm64" "x86_64-linux linux/x64"; do
for system in "aarch64-darwin darwin/arm64" "x86_64-linux linux/x64" "aarch64-linux linux/arm64"; do
# shellcheck disable=SC2086
set -- ${system} # split string into variables $1 and $2
+3 -2
View File
@@ -18,11 +18,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lorem";
version = "1.5";
version = "1.6";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World/design";
group = "World";
owner = "design";
repo = "lorem";
rev = finalAttrs.version;
hash = "sha256-q6gpxxNebf2G/lT5wWXT/lVp3zR8QLWB8/sdK+wLTJ8=";
@@ -13,13 +13,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "lxqt-panel-profiles";
version = "1.3";
version = "1.4.1";
src = fetchFromCodeberg {
owner = "MrReplikant";
repo = "lxqt-panel-profiles";
rev = "v${finalAttrs.version}";
hash = "sha256-mI/Rg3YeK64R3cCn+xz4+CHZldGteZ4Id4h/YUcreW4=";
hash = "sha256-JDDscKjRbqQXinEwlrwYNwzzuLm9aokNAu8sZY7hGQk=";
};
postPatch = ''
+1 -3
View File
@@ -26,11 +26,9 @@ python3Packages.buildPythonApplication (finalAttrs: {
];
nativeCheckInputs = with python3Packages; [
anthropic
pytestCheckHook
pytest-asyncio
pytest-cov
python-dotenv
pytest-cov-stub
];
disabledTestPaths = [
+1 -21
View File
@@ -44,9 +44,8 @@ python3Packages.buildPythonApplication (finalAttrs: {
sourceRoot = "multiqc";
nativeBuildInputs = with python3Packages; [
build-system = with python3Packages; [
setuptools
wheel
];
dependencies = with python3Packages; [
@@ -78,25 +77,6 @@ python3Packages.buildPythonApplication (finalAttrs: {
jsonschema
];
optional-dependencies = {
dev = with python3Packages; [
pre-commit-hooks
pdoc3
pytest
pytest-cov
pytest-xdist
syrupy
pygithub
mypy
types-pyyaml
types-tqdm
types-requests
types-markdown
types-beautifulsoup4
types-pillow
];
};
# Some tests run subprocess.run() with "multiqc"
preCheck = ''
chmod -R u+w ../test-data
+3 -3
View File
@@ -10,16 +10,16 @@
buildGoModule (finalAttrs: {
pname = "myks";
version = "5.10.0";
version = "5.11.0";
src = fetchFromGitHub {
owner = "mykso";
repo = "myks";
tag = "v${finalAttrs.version}";
hash = "sha256-9Fw3q2/mard/dbbnz6GzQeiroTlkiRwdwvC7aBh5HXA=";
hash = "sha256-5uQiTv+UxCPCetkXvG8fBHL+WsUatNJKv2AUbnqE/Do=";
};
vendorHash = "sha256-XMGcLYMZiCB98U5+aB/O4f5knAp46UkrH4teCPZk/bM=";
vendorHash = "sha256-z1vUeKf22MjGwheDSu/jYCKpJRclrhgKOEN8A9onrAM=";
subPackages = ".";
+11 -20
View File
@@ -31,13 +31,13 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "net-cpp";
version = "3.2.0";
version = "3.2.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lib-cpp/net-cpp";
rev = finalAttrs.version;
hash = "sha256-JfVSAwBWtHw7a0CtY5C1xuxThO3FbS4MgNuIO1CGuts=";
tag = finalAttrs.version;
hash = "sha256-1rUPdN62u4eYtrXgoVaeSHro4gnAfFAl1brt+tE45oE=";
};
outputs = [
@@ -47,26 +47,14 @@ stdenv.mkDerivation (finalAttrs: {
];
patches = [
# Remove when version > 3.2.0
# Remove when version > 3.2.1
(fetchpatch {
name = "0001-net-cpp-fix-compatibility-with-Boost-1.88.patch";
url = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/commit/9ff8651b11eb9dc0f64147001e10a57d1546a626.patch";
hash = "sha256-IEa3nhnv0oa5WmhIDG3OMrZmmoAZFeedAzKXAKVTIQg=";
name = "0001-net-cpp-Look-for-python3-executable-at-configure-time-instead-of-hardcoding-a-path.patch";
url = "https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/commit/811da28f36f34cc2ea32dc96b2c65932d4f954b0.patch";
hash = "sha256-CC7fEuRNuf5TNEfhFJr9VLWFWfTnFtIvSTUoCcwGe68=";
})
];
postPatch =
# https://gitlab.com/ubports/development/core/lib-cpp/net-cpp/-/merge_requests/22, too basic to bother with fetchpatch
''
substituteInPlace src/CMakeLists.txt \
--replace-fail 'find_package(Boost COMPONENTS system' 'find_package(Boost COMPONENTS'
''
+ lib.optionalString finalAttrs.finalPackage.doCheck ''
# Use wrapped python. Removing just the /usr/bin doesn't seem to work?
substituteInPlace tests/httpbin.h.in \
--replace '/usr/bin/python3' '${lib.getExe pythonEnv}'
'';
strictDeps = true;
nativeBuildInputs = [
@@ -107,7 +95,10 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelChecking = false;
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
versionCheck = true;
};
updateScript = gitUpdater { };
};
-132
View File
@@ -1,132 +0,0 @@
{
lib,
fetchFromGitHub,
python3,
plugins ? _ps: [ ],
nixosTests,
nix-update-script,
}:
let
py = python3.override {
packageOverrides = _final: prev: { django = prev.django_5; };
};
extraBuildInputs = plugins py.pkgs;
in
py.pkgs.buildPythonApplication rec {
pname = "netbox";
version = "4.2.9";
pyproject = false;
src = fetchFromGitHub {
owner = "netbox-community";
repo = "netbox";
tag = "v${version}";
hash = "sha256-uVe4YTZoxRMBfvItFa9SMHu4AaVvygfAg9GDB115TFc=";
};
patches = [
./custom-static-root.patch
];
propagatedBuildInputs =
(
with py.pkgs;
[
django
django-cors-headers
django-debug-toolbar
django-filter
django-graphiql-debug-toolbar
django-htmx
django-mptt
django-pglocks
django-prometheus
django-redis
django-rq
django-tables2
django-taggit
django-timezone-field
djangorestframework
drf-spectacular
drf-spectacular-sidecar
feedparser
jinja2
markdown
netaddr
nh3
pillow
psycopg
psycopg.optional-dependencies.c
psycopg.optional-dependencies.pool
pyyaml
requests
social-auth-core
social-auth-app-django
strawberry-graphql
strawberry-django
svgwrite
tablib
# Optional dependencies, kept here for backward compatibility
# for the S3 data source backend
boto3
# for Git data source backend
dulwich
# for error reporting
sentry-sdk
]
++ social-auth-core.passthru.optional-dependencies.openidconnect
)
++ extraBuildInputs;
buildInputs = with py.pkgs; [
mkdocs-material
mkdocs-material-extensions
mkdocstrings
mkdocstrings-python
];
nativeBuildInputs = [ py.pkgs.mkdocs ];
postBuild = ''
PYTHONPATH=$PYTHONPATH:netbox/
python -m mkdocs build
'';
installPhase = ''
mkdir -p $out/opt/netbox
cp -r . $out/opt/netbox
chmod +x $out/opt/netbox/netbox/manage.py
makeWrapper $out/opt/netbox/netbox/manage.py $out/bin/netbox \
--prefix PYTHONPATH : "$PYTHONPATH"
'';
passthru = {
python = python3;
# PYTHONPATH of all dependencies used by the package
pythonPath = py.pkgs.makePythonPath propagatedBuildInputs;
inherit (py.pkgs) gunicorn;
tests = {
netbox = nixosTests.netbox_4_2;
inherit (nixosTests) netbox-upgrade;
};
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/netbox-community/netbox";
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
mainProgram = "netbox";
license = lib.licenses.asl20;
knownVulnerabilities = [
"Netbox Version ${version} is EOL; please upgrade by following the current release notes instructions"
];
maintainers = with lib.maintainers; [
minijackson
raitobezarius
];
};
}
@@ -1,13 +0,0 @@
diff --git a/netbox/netbox/settings.py b/netbox/netbox/settings.py
index 2de06dd10..00406af48 100644
--- a/netbox/netbox/settings.py
+++ b/netbox/netbox/settings.py
@@ -410,7 +412,7 @@ USE_X_FORWARDED_HOST = True
X_FRAME_OPTIONS = 'SAMEORIGIN'
# Static files (CSS, JavaScript, Images)
-STATIC_ROOT = BASE_DIR + '/static'
+STATIC_ROOT = getattr(configuration, 'STATIC_ROOT', os.path.join(BASE_DIR, 'static')).rstrip('/')
STATIC_URL = f'/{BASE_PATH}static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'project-static', 'dist'),
+4 -1
View File
@@ -111,7 +111,7 @@ py.pkgs.buildPythonApplication rec {
pythonPath = py.pkgs.makePythonPath dependencies;
inherit (py.pkgs) gunicorn;
tests = {
netbox = nixosTests.netbox_4_3;
netbox = nixosTests.netbox_4_4;
inherit (nixosTests) netbox-upgrade;
};
updateScript = nix-update-script { };
@@ -123,6 +123,9 @@ py.pkgs.buildPythonApplication rec {
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
mainProgram = "netbox";
license = lib.licenses.asl20;
knownVulnerabilities = [
"Netbox Version ${version} is EOL; please upgrade by following the current release notes instructions"
];
maintainers = with lib.maintainers; [
minijackson
raitobezarius
@@ -16,14 +16,14 @@ let
in
py.pkgs.buildPythonApplication rec {
pname = "netbox";
version = "4.3.7";
version = "4.5.5";
pyproject = false;
src = fetchFromGitHub {
owner = "netbox-community";
repo = "netbox";
tag = "v${version}";
hash = "sha256-xVOP1D3C12M0M8oTrCA0M17NLuor+46UwiaKymSAVJM=";
hash = "sha256-he+WNbzIZSc2q97YjnAKHeFR0MDZCkDuAF/mfgAZuU4=";
};
patches = [
@@ -34,6 +34,7 @@ py.pkgs.buildPythonApplication rec {
(
with py.pkgs;
[
colorama
django
django-cors-headers
django-debug-toolbar
@@ -63,6 +64,7 @@ py.pkgs.buildPythonApplication rec {
requests
social-auth-core
social-auth-app-django
sorl-thumbnail
strawberry-graphql
strawberry-django
svgwrite
@@ -109,7 +111,7 @@ py.pkgs.buildPythonApplication rec {
pythonPath = py.pkgs.makePythonPath dependencies;
inherit (py.pkgs) gunicorn;
tests = {
netbox = nixosTests.netbox_4_3;
netbox = nixosTests.netbox_4_5;
inherit (nixosTests) netbox-upgrade;
};
updateScript = nix-update-script { };
@@ -121,9 +123,6 @@ py.pkgs.buildPythonApplication rec {
description = "IP address management (IPAM) and data center infrastructure management (DCIM) tool";
mainProgram = "netbox";
license = lib.licenses.asl20;
knownVulnerabilities = [
"Netbox Version ${version} is EOL; please upgrade by following the current release notes instructions"
];
maintainers = with lib.maintainers; [
minijackson
raitobezarius
+3 -3
View File
@@ -7,16 +7,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "nixpkgs-vet";
version = "0.1.4";
version = "0.2.0";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nixpkgs-vet";
tag = finalAttrs.version;
hash = "sha256-J61eOTeDMHt9f1XmKVrEMAFUgwHGmMxDoSyY3v72QVY=";
hash = "sha256-TxQkD9jPoONec87qGXOIQNh+lZ7kyFM6q1RtlgxEqy4=";
};
cargoHash = "sha256-H2JAIMJeVqp8xq75eLEBKiK2pBrgC7vgXXlqbrSUifE=";
cargoHash = "sha256-Wx8AwgUENVbxv9GgB/DTH5aGIRznAslABjxRu/X0l2s=";
doCheck = false;
@@ -22,9 +22,9 @@ let
phome = "$out/lib/olympus";
# The following variables are to be updated by the update script.
version = "26.02.04.03";
buildId = "5468"; # IMPORTANT: This line is matched with regex in update.sh.
rev = "f11768c2d470d0357a7e07cd3a031b081a6593ab";
version = "26.03.21.03";
buildId = "5526"; # IMPORTANT: This line is matched with regex in update.sh.
rev = "cd3c4695cf4be1f1aa59211fcc183f603e6c6343";
in
buildDotnetModule {
pname = "olympus-unwrapped";
@@ -37,7 +37,7 @@ buildDotnetModule {
owner = "EverestAPI";
repo = "Olympus";
fetchSubmodules = true; # Required. See upstream's README.
hash = "sha256-38Rjii6+3DDvNcQQFuTAxY4Wh214QbE6q8yFLNUnAbc=";
hash = "sha256-pKKVdCkeqTIFH0iqpko5LuDj9qqLubD+cltkwo86bXg=";
};
nativeBuildInputs = [
+81
View File
@@ -0,0 +1,81 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
nodejs_20,
pnpm_9,
fetchPnpmDeps,
pnpmConfigHook,
makeWrapper,
installShellFiles,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "openspec";
version = "1.2.0";
src = fetchFromGitHub {
owner = "Fission-AI";
repo = "OpenSpec";
tag = "v${finalAttrs.version}";
hash = "sha256-DIMMOEVQ2FQj48WAF4S1IhxX5ChrFZll51CZ3bZNGHE=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_9;
fetcherVersion = 3;
hash = "sha256-9s2kdvd7svK4hofnD66HkDc86WTQeayfF5y7L2dmjNg=";
};
nativeBuildInputs = [
nodejs_20
pnpmConfigHook
pnpm_9
makeWrapper
installShellFiles
];
buildPhase = ''
runHook preBuild
pnpm run build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/lib/openspec
substituteInPlace bin/openspec.js \
--replace '#!/usr/bin/env node' '#!${nodejs_20}/bin/node' \
--replace "../dist" "$out/lib/openspec/dist"
install -Dm755 bin/openspec.js $out/bin/openspec
cp -r dist $out/lib/openspec/
cp -r schemas $out/lib/openspec/
cp package.json $out/lib/openspec/
cp -r node_modules $out/lib/openspec/
runHook postInstall
'';
postInstall = lib.optionalString (stdenvNoCC.buildPlatform.canExecute stdenvNoCC.hostPlatform) ''
installShellCompletion --cmd openspec \
--bash <($out/bin/openspec completion generate bash) \
--fish <($out/bin/openspec completion generate fish) \
--zsh <($out/bin/openspec completion generate zsh)
'';
meta = {
description = "AI-native system for spec-driven development";
homepage = "https://github.com/Fission-AI/OpenSpec";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ superherointj ];
platforms = lib.platforms.all;
mainProgram = "openspec";
};
})
+2 -2
View File
@@ -29,13 +29,13 @@
lndir,
}:
let
version = "2.20.11";
version = "2.20.13";
src = fetchFromGitHub {
owner = "paperless-ngx";
repo = "paperless-ngx";
tag = "v${version}";
hash = "sha256-Bn5k6h80nSNxWYsIpqVLXp+udzxDCY8f/jbgDvyATM0=";
hash = "sha256-Oh0iFcGWsiPe7xCHw1+9z3BuWikEshVDLWeBPHrEJA0=";
};
python = python3.override {
@@ -2,7 +2,6 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
testers,
boost,
@@ -18,13 +17,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "persistent-cache-cpp";
version = "1.0.9";
version = "1.0.10";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/lib-cpp/persistent-cache-cpp";
rev = finalAttrs.version;
hash = "sha256-1ETr4b0HEJIM6a4ObtKWtxn0y4gQy9fzBjE4QhMPGqU=";
tag = finalAttrs.version;
hash = "sha256-siZb9D6ZGdKjlxJEgguPi9ZemWS0zY/7RwafWY6u67I=";
};
outputs = [
@@ -33,15 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
"doc"
];
patches = [
# Remove when version > 1.0.9
(fetchpatch {
name = "0001-persistent-cache-cpp-Fix-compatibility-with-Boost-1.89.patch";
url = "https://gitlab.com/ubports/development/core/lib-cpp/persistent-cache-cpp/-/commit/121397b58bdb2d6750a41bec0cf1676e4e9b8cf5.patch";
hash = "sha256-QKPf5E49NNZ+rzCCknJNQjcd/bEgHuh23RBM892Xz1o=";
})
];
postPatch = ''
# Wrong concatenation
substituteInPlace data/libpersistent-cache-cpp.pc.in \
@@ -86,7 +76,10 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
versionCheck = true;
};
updateScript = gitUpdater { };
};
+4
View File
@@ -34,6 +34,10 @@ stdenv.mkDerivation (finalAttrs: {
"-DPICO_SDK_PATH=${pico-sdk}/lib/pico-sdk"
];
postInstall = ''
install -Dm444 ../udev/60-picotool.rules -t $out/etc/udev/rules.d
'';
nativeInstallCheckInputs = [
versionCheckHook
];
@@ -7,13 +7,13 @@
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "plasmusic-toolbar";
version = "3.7.0";
version = "4.0.0";
src = fetchFromGitHub {
owner = "ccatterina";
repo = "plasmusic-toolbar";
tag = "v${finalAttrs.version}";
hash = "sha256-yCsNvco01dy72f8g1+BCYXo1yx/ERdfggLYchj/UXcw=";
hash = "sha256-yT3Ftwy30ixFmGhvof49FIOCH97rT03zNL8V2uweyOQ=";
};
installPhase = ''
+5 -5
View File
@@ -31,7 +31,7 @@ let
in
stdenv.mkDerivation rec {
pname = "powershell";
version = "7.5.5";
version = "7.6.0";
src =
passthru.sources.${stdenv.hostPlatform.system}
@@ -96,19 +96,19 @@ stdenv.mkDerivation rec {
sources = {
aarch64-darwin = fetchurl {
url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-arm64.tar.gz";
hash = "sha256-2/P90/s2Dro1lYD9xyI9Z5oV+UhNLxY/qwdCJ3mkf1I=";
hash = "sha256-u1LbkOlk7guR6T9VmzUIeMayfBL9UYMNjsoXk3Erljk=";
};
aarch64-linux = fetchurl {
url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-arm64.tar.gz";
hash = "sha256-4i4PAFthzjul5ImHAPacPgbdov3gcfOCqxVnDWjw5Kc=";
hash = "sha256-3d91ZPs7UtwmvlWA/FtOCOs/plsJRIiq5tSzytX+pGA=";
};
x86_64-darwin = fetchurl {
url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-osx-x64.tar.gz";
hash = "sha256-JIKb2lh+o5DAJ1qYHeX/nSWV8nPklI2eaediwtTnenk=";
hash = "sha256-fGJ5z+rQYyRFGhD/dBiDCGyaAPAkuuqSS7nTwQb+DII=";
};
x86_64-linux = fetchurl {
url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-linux-x64.tar.gz";
hash = "sha256-OaYvRmlW42Bq7mY37Q0HNcHtJ2Eqdt6XOxEVMN3/Lnc=";
hash = "sha256-BFF0cs9X1/nL2TiX2pvtRnxzymBjwp12VevCCqHWAj8=";
};
};
tests.version = testers.testVersion {
+46
View File
@@ -0,0 +1,46 @@
{
lib,
meta,
stdenvNoCC,
_7zz,
fetchurl,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "proton-vpn";
version = "6.4.0";
src = fetchurl {
url = "https://github.com/ProtonVPN/ios-mac-app/releases/download/mac%2F${finalAttrs.version}/ProtonVPN_mac_v${finalAttrs.version}.dmg";
hash = "sha256-F5NS7NNqxNJcl7gFaqWtWxBxBbV6Btp7cyyDpegEGLQ=";
};
sourceRoot = ".";
nativeBuildInputs = [ _7zz ];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications
cp -R ./ProtonVPN/ProtonVPN.app $out/Applications
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"mac/(.*)"
];
};
meta = meta // {
changelog = "https://github.com/ProtonVPN/ios-mac-app/releases/tag/mac%2F${finalAttrs.version}";
platforms = [
"x86_64-darwin"
"aarch64-darwin"
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
})
@@ -1,5 +1,6 @@
{
lib,
meta,
python3Packages,
fetchFromGitHub,
gobject-introspection,
@@ -7,11 +8,12 @@
libayatana-appindicator,
libnotify,
wrapGAppsHook4,
writableTmpDirAsHomeHook,
nix-update-script,
withIndicator ? true,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "protonvpn-gui";
pname = "proton-vpn";
version = "4.15.0";
pyproject = true;
@@ -69,31 +71,26 @@ python3Packages.buildPythonApplication (finalAttrs: {
'';
preCheck = ''
# Needed for Permission denied: '/homeless-shelter'
export HOME=$(mktemp -d)
export XDG_RUNTIME_DIR=$(mktemp -d)
'';
nativeCheckInputs = with python3Packages; [
nativeCheckInputs = [
writableTmpDirAsHomeHook
]
++ (with python3Packages; [
pytestCheckHook
pytest-cov-stub
];
]);
disabledTestPaths = [
# Segmentation fault during widgets tests
"tests/unit/widgets"
];
meta = {
description = "Proton VPN GTK app for Linux";
homepage = "https://github.com/ProtonVPN/proton-vpn-gtk-app";
license = lib.licenses.gpl3Plus;
passthru.updateScript = nix-update-script { };
meta = meta // {
platforms = lib.platforms.linux;
mainProgram = "protonvpn-app";
maintainers = with lib.maintainers; [
anthonyroussel
sebtm
rapiteanu
];
};
})
+22
View File
@@ -0,0 +1,22 @@
{
lib,
stdenv,
callPackage,
}:
let
meta = {
description = "Official Proton VPN client";
homepage = "https://protonvpn.com/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
anthonyroussel
delafthi
rapiteanu
sebtm
];
};
in
if stdenv.hostPlatform.isDarwin then
callPackage ./darwin.nix { inherit meta; }
else
callPackage ./linux.nix { inherit meta; }
+3 -3
View File
@@ -11,13 +11,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "SDL_net";
version = "1.2.8-unstable-2025-04-21";
version = "1.2.8-unstable-2026-03-17";
src = fetchFromGitHub {
owner = "libsdl-org";
repo = "SDL_net";
rev = "e2e041b81747bc01b2c5fb3757a082e525e5d25b";
hash = "sha256-Nk1OoCIrHMABHuPrJHMlLyyR73px/Xikgz40RpDfonw=";
rev = "cd5a2ebdea1a15b27f503cc7ffdcaf056d047b73";
hash = "sha256-z3bJYf3PzS0ydoeL0Ay0HOZ9ImKZMyLbVZhD+u5BD6w=";
};
nativeBuildInputs = [
+7 -3
View File
@@ -20,27 +20,29 @@
rustc,
sqlite,
wrapGAppsHook4,
libglycin-gtk4,
libshumate,
libseccomp,
libxml2,
lcms2,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "shortwave";
version = "5.0.0";
version = "5.1.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "Shortwave";
rev = version;
sha256 = "sha256-MbkfbpX2av/o+wC1pORHfaLXnchEIFmhQ5mqPuMElak=";
hash = "sha256-MiaozChp5QF/Q0fCTCgnyGJLyIftTkMAbmfRQ/73QP8=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-DBWg9Xss1ChbPyI3MiN7eTXhSUG37ZaYS/HFxou9d/w=";
hash = "sha256-v6aphHunZrXPiuKRFT+EcWJySmQOOT433ST+m8j1z4w=";
};
nativeBuildInputs = [
@@ -63,10 +65,12 @@ stdenv.mkDerivation rec {
glib
gtk4
libadwaita
libglycin-gtk4
openssl
sqlite
libshumate
libseccomp
libxml2
lcms2
]
++ (with gst_all_1; [
@@ -1,27 +1,30 @@
{
lib,
stdenv,
stdenvNoCC,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "generaluser";
version = "2.0.2-unstable-2025-04-21";
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "soundfont-generaluser-gs";
version = "2.0.3";
src = fetchFromGitHub {
owner = "mrbumpy409";
repo = "GeneralUser-GS";
rev = "74d4cfe4042a61ddab17d4f86dbccd9d2570eb2a";
hash = "sha256-I27l8F/BFAo6YSNbtAV14AKVsPIJTHFG2eGudseWmjo=";
rev = "6f2014e815237de02e26e793f8c66c796ba66db5";
hash = "sha256-/nWcvaAcXDSd/6HapDEa7rDmQD2Q1w6iYsbckh2vnek=";
};
installPhase = ''
runHook preInstall
install -Dm644 $src/GeneralUser-GS.sf2 $out/share/soundfonts/GeneralUser-GS.sf2
install -Dm444 GeneralUser-GS.sf2 $out/share/soundfonts/GeneralUser-GS.sf2
runHook postInstall
'';
meta = {
changelog = "https://github.com/mrbumpy409/GeneralUser-GS/blob/main/documentation/CHANGELOG.md";
description = "General MIDI SoundFont with a low memory footprint";
homepage = "https://www.schristiancollins.com/generaluser.php";
license = lib.licenses.generaluser;
+3 -3
View File
@@ -20,19 +20,19 @@
stdenv.mkDerivation (finalAttrs: {
pname = "switcheroo";
version = "2.2.0";
version = "2.5.2";
src = fetchFromGitLab {
owner = "adhami3310";
repo = "Switcheroo";
rev = "v${finalAttrs.version}";
hash = "sha256-AwecOA8HWGimhQyCEG3Z3hhwa9RVWssykUXsdvqqs9U=";
hash = "sha256-1SMFkzSH8ekJeP0VOPKxkvUNMh/wRzj31PIy6h051Ng=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
src = finalAttrs.src;
name = "switcheroo-${finalAttrs.version}";
hash = "sha256-Ose1gx6vwKZCdtMDkyM9Y+f6wt7VDKTI3Wc7kep1428=";
hash = "sha256-QHdzLlmYCktQCUGZhIcuPhmR4rMUDeneptTdyPrwh1E=";
};
nativeBuildInputs = [
+2 -2
View File
@@ -27,13 +27,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tangram";
version = "3.4";
version = "3.5";
src = fetchFromGitHub {
owner = "sonnyp";
repo = "Tangram";
tag = "v${finalAttrs.version}";
hash = "sha256-NTTunlWeS44iUxrfvjwB4NBbYjojVP2SxLDvh+aXvOA=";
hash = "sha256-aK/oavYQJJYQaQ+PjxSDjSSvEaYz3G8aGXLdumOEXgk=";
fetchSubmodules = true;
};
+2 -2
View File
@@ -13,14 +13,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "the-foundation";
version = "1.11.0";
version = "1.12.0";
src = fetchFromGitea {
domain = "git.skyjake.fi";
owner = "skyjake";
repo = "the_Foundation";
rev = "v${finalAttrs.version}";
hash = "sha256-71MYOlCVkYOFB9byYaNmy31NfnssmGwB0lusjOpE2Ts=";
hash = "sha256-dAeeeu0nWS/Tz4/t/s9xKcx2io5FGooHhWiK12GHJpQ=";
};
nativeBuildInputs = [
+37
View File
@@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
rustPlatform,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "thumper";
version = "0.2.1";
src = fetchFromGitHub {
owner = "kaaveland";
repo = "thumper";
tag = "${finalAttrs.version}";
hash = "sha256-+W4dBtvqCobxeFa+Zux1/dYVQoO17SscYR8FoAS7KLM=";
};
cargoHash = "sha256-m8B0+w0BddK8wQgaFfVUUPYdSDvqfs++A0a0WTIF5Qo=";
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Tool to sync files from a local folder into a folder in a BunnyCDN Storage Zone";
homepage = "https://github.com/kaaveland/thumper";
changelog = "https://github.com/kaaveland/thumper/releases/tag/${finalAttrs.version}";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [ stv0g ];
platforms = lib.platforms.all;
mainProgram = "thumper";
};
})
+4 -4
View File
@@ -10,14 +10,14 @@ let
platform =
if stdenvNoCC.hostPlatform.isDarwin then "universal-macos" else stdenvNoCC.hostPlatform.system;
hash = builtins.getAttr platform {
"universal-macos" = "sha256-yUiw0y2unr65LUkin0NvdzjCer5YilmRPCmpdoLqWlU=";
"x86_64-linux" = "sha256-GgmjNac0Y+8z45+6er8UvmZ74I0i92Yamkei0D66q+k=";
"aarch64-linux" = "sha256-zh0qTdvifjjCSyIyIUYrqE6RZ23sln0AZAC2Te1ZWRY=";
"universal-macos" = "sha256-ByZdWkpVsrwbgC43WgDGMvw53IVX4y+dOeZweqavVmY=";
"x86_64-linux" = "sha256-zwsoyTbSt2bVZ/Qquu60dnqUzzW81fV8NuOfZB4o4/I=";
"aarch64-linux" = "sha256-/2LjENxaD4iJUCaCRKpMl22WO1KMtLHP181yZCK8fqA=";
};
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "tigerbeetle";
version = "0.16.76";
version = "0.16.77";
src = fetchzip {
url = "https://github.com/tigerbeetle/tigerbeetle/releases/download/${finalAttrs.version}/tigerbeetle-${platform}.zip";
+7 -4
View File
@@ -10,13 +10,13 @@
tcl.mkTclDerivation {
pname = "tkgl";
version = "1.2.1-unstable-2025-06-01";
version = "1.2.1-unstable-2026-01-07";
src = fetchFromGitHub {
owner = "3-manifolds";
repo = "TkGL";
rev = "45bf16e6c28a070c70fc9a0eb8c47a0b6ff8a2e3";
hash = "sha256-AA5LZGhMTWmTZqI/wtycUYLsUe9BwO3voGMS7vGlCM0=";
rev = "e47636bc56f02ddca503f98abc65e31a0f0f0a7c";
hash = "sha256-Y5NIKWUjbtVn9qiVzc8TsKCm4M3KbNPiBjVTBWf7ALA=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
@@ -46,6 +46,9 @@ tcl.mkTclDerivation {
description = "OpenGL drawing surface for Tk 8 and 9";
homepage = "https://github.com/3-manifolds/TkGL";
license = lib.licenses.tcltk;
maintainers = with lib.maintainers; [ noiioiu ];
maintainers = with lib.maintainers; [
noiioiu
alejo7797
];
};
}
+6 -4
View File
@@ -8,6 +8,7 @@
freetype,
libglvnd,
curl,
fontconfig,
libxcursor,
libxinerama,
libxrandr,
@@ -17,21 +18,21 @@
stdenv.mkDerivation rec {
pname = "tonelib-gfx";
version = "4.8.7";
version = "4.9.0";
# It's hard to find out when a release happens and what version that release is,
# without visiting the site directly.
#
# The following command can retrieve the latest released version.
# curl --silent https://tonelib.net/downloads.html | \
# grep -P 'ToneLib GFX</h3' -A3 | \
# grep -P '>ToneLib GFX<' -A3 | \
# sed -nE 's/^.*Version: ([0-9.]+).*/\1/p'
#
# The following command gives us the URL for the latest release without intermediate redirects.
# curl --head 'https://www.tonelib.net/download.php?id=gfx&os=lnx'
src = fetchurl {
url = "https://tonelib.vip/download/24-10-24/ToneLib-GFX-amd64.deb";
hash = "sha256-2ao6tTRbPMpE2Y/7/gwQN3G5Z6Uu+SQel9o1ejwD9v4=";
url = "https://tonelib.vip/download/25-11-10/ToneLib-GFX-amd64.deb";
hash = "sha256-WL9kV50R5AGG57I5IkNz7EKd4NPlf0iO+QiE8k+E26Q=";
};
nativeBuildInputs = [
@@ -49,6 +50,7 @@ stdenv.mkDerivation rec {
runtimeDependencies = map lib.getLib [
curl
fontconfig
libxcursor
libxinerama
libxrandr
+119 -120
View File
@@ -20,158 +20,157 @@
python3Packages,
vala,
wrapGAppsHook3,
writableTmpDirAsHomeHook,
}:
let
self = python3Packages.buildPythonApplication rec {
pname = "click";
version = "0.5.2";
pyproject = false;
python3Packages.buildPythonApplication (finalAttrs: {
pname = "click";
version = "0.5.2";
pyproject = false;
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/click";
rev = version;
hash = "sha256-AV3n6tghvpV/6Ew6Lokf8QAGBIMbHFAnp6G4pefVn+8=";
};
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/click";
tag = finalAttrs.version;
hash = "sha256-AV3n6tghvpV/6Ew6Lokf8QAGBIMbHFAnp6G4pefVn+8=";
};
patches = [
# Remove when version > 0.5.2
(fetchpatch {
name = "0001-click-fix-Wimplicit-function-declaration.patch";
url = "https://gitlab.com/ubports/development/core/click/-/commit/8f654978a12e6f9a0b6ff64296ec5565e3ff5cd0.patch";
hash = "sha256-kio+DdtuagUNYEosyQY3q3H+dJM3cLQRW9wUKUcpUTY=";
})
patches = [
# Remove when version > 0.5.2
(fetchpatch {
name = "0001-click-fix-Wimplicit-function-declaration.patch";
url = "https://gitlab.com/ubports/development/core/click/-/commit/8f654978a12e6f9a0b6ff64296ec5565e3ff5cd0.patch";
hash = "sha256-kio+DdtuagUNYEosyQY3q3H+dJM3cLQRW9wUKUcpUTY=";
})
# Remove when version > 0.5.2
(fetchpatch {
name = "0002-click-Add-uid_t-and-gid_t-to-the-ctypes-_typemap.patch";
url = "https://gitlab.com/ubports/development/core/click/-/commit/cbcd23b08b02fa122434e1edd69c2b3dcb6a8793.patch";
hash = "sha256-QaWRhxO61wAzULVqPLdJrLuBCr3+NhKmQlEPuYq843I=";
})
];
# Remove when version > 0.5.2
(fetchpatch {
name = "0002-click-Add-uid_t-and-gid_t-to-the-ctypes-_typemap.patch";
url = "https://gitlab.com/ubports/development/core/click/-/commit/cbcd23b08b02fa122434e1edd69c2b3dcb6a8793.patch";
hash = "sha256-QaWRhxO61wAzULVqPLdJrLuBCr3+NhKmQlEPuYq843I=";
})
];
postPatch = ''
# These should be proper Requires, using the header needs their headers
postPatch =
# These should be proper Requires, using the header needs their headers
''
substituteInPlace lib/click/click-*.pc.in \
--replace-fail 'Requires.private' 'Requires'
# Don't completely override PKG_CONFIG_PATH
''
# Don't completely override PKG_CONFIG_PATH
+ ''
substituteInPlace click_package/tests/Makefile.am \
--replace-fail 'PKG_CONFIG_PATH=$(top_builddir)/lib/click' 'PKG_CONFIG_PATH=$(top_builddir)/lib/click:$(PKG_CONFIG_PATH)'
''
+ ''
patchShebangs bin/click
'';
strictDeps = true;
strictDeps = true;
pkgsBuildBuild = [
pkg-config
];
pkgsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
autoreconfHook
dbus-test-runner # Always checking for this
getopt
gobject-introspection
perl
pkg-config
vala
wrapGAppsHook3
];
nativeBuildInputs = [
autoreconfHook
dbus-test-runner # Always checking for this
getopt
gobject-introspection
perl
pkg-config
vala
wrapGAppsHook3
];
buildInputs = [
glib
json-glib
libgee
properties-cpp
];
buildInputs = [
glib
json-glib
libgee
properties-cpp
];
propagatedBuildInputs = with python3Packages; [
python-debian
chardet
pygobject3
setuptools
];
propagatedBuildInputs = with python3Packages; [
python-debian
chardet
pygobject3
setuptools
];
nativeCheckInputs = [
dbus
dpkg
python3Packages.unittestCheckHook
];
nativeCheckInputs = [
dbus
dpkg
python3Packages.unittestCheckHook
writableTmpDirAsHomeHook
];
checkInputs = with python3Packages; [
python-apt
six
];
checkInputs = with python3Packages; [
python-apt
six
];
preConfigure = ''
export click_cv_perl_vendorlib=$out/${perl.libPrefix}
export PYTHON_INSTALL_FLAGS="--prefix=$out"
'';
preConfigure = ''
export click_cv_perl_vendorlib=$out/${perl.libPrefix}
export PYTHON_INSTALL_FLAGS="--prefix=$out"
'';
configureFlags = [
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
];
configureFlags = [
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user"
];
enableParallelBuilding = true;
enableParallelBuilding = true;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
disabledTestPaths = [
# From apt: Unable to determine a suitable packaging system type
"click_package/tests/integration/test_signatures.py"
"click_package/tests/test_build.py"
"click_package/tests/test_install.py"
"click_package/tests/test_scripts.py"
];
disabledTestPaths = [
# From apt: Unable to determine a suitable packaging system type
"click_package/tests/integration/test_signatures.py"
"click_package/tests/test_build.py"
"click_package/tests/test_install.py"
"click_package/tests/test_scripts.py"
];
preCheck = ''
export HOME=$TMP
# tests recompile some files for loaded predefines, doesn't use any optimisation level for it
# makes test output harder to read, so make the warning go away
preCheck =
# tests recompile some files for loaded predefines, doesn't use any optimisation level for it
# makes test output harder to read, so make the warning go away
''
export NIX_CFLAGS_COMPILE+=" -U_FORTIFY_SOURCE"
# Haven'tbeen able to get them excluded via disabledTest{s,Paths}, just deleting them
''
# Haven't been able to get them excluded via disabledTest{s,Paths}, just deleting them
+ ''
for path in $disabledTestPaths; do
rm -v $path
done
'';
preFixup = ''
makeWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "$out/lib"
)
'';
preFixup = ''
makeWrapperArgs+=(
--prefix LD_LIBRARY_PATH : "$out/lib"
)
'';
passthru = {
updateScript = gitUpdater { };
};
meta = {
description = "Tool to build click packages, mainly used for Ubuntu Touch";
homepage = "https://gitlab.com/ubports/development/core/click";
changelog = "https://gitlab.com/ubports/development/core/click/-/blob/${version}/ChangeLog";
license = lib.licenses.gpl3Only;
mainProgram = "click";
maintainers = with lib.maintainers; [
ilyakooo0
];
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"click-0.4"
];
};
};
in
self
// {
passthru = self.passthru // {
passthru = {
tests.pkg-config = testers.hasPkgConfigModules {
package = self;
package = finalAttrs.finalPackage;
versionCheck = true;
};
updateScript = gitUpdater { };
};
}
meta = {
description = "Tool to build click packages, mainly used for Ubuntu Touch";
homepage = "https://gitlab.com/ubports/development/core/click";
changelog = "https://gitlab.com/ubports/development/core/click/-/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
mainProgram = "click";
maintainers = with lib.maintainers; [
ilyakooo0
];
teams = [ lib.teams.lomiri ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"click-0.4"
];
};
})
@@ -8,16 +8,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "warmup-s3-archives";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitLab {
owner = "philipmw";
repo = "warmup-s3-archives";
tag = "v${finalAttrs.version}";
hash = "sha256-TJluuylxxFc66NidXCHxZdQN2VNv2QjFodUDXIQolZQ=";
hash = "sha256-0moqSc87B3LFL7P5qoSqvdkf+RwLbiWkzGhjR2jgTR4=";
};
cargoHash = "sha256-cPjjSYDsMsZO3Wj9wbAhSACbJGDINrE70cj+Lj4QYQE=";
cargoHash = "sha256-sWSsxGj8+tSNs2JlhDZt+ulo89rPqZM8FjHpbUdeC5w=";
passthru.updateScript = nix-update-script { };
+3 -2
View File
@@ -1,4 +1,5 @@
{
"media_scanner": "sha256-vlHsSmw0/bVDSwB/jwdj/flfcizDjYKHOItOb/jWQGM=",
"open_filex": "sha256-dKLOmk+C9Rzw0wq18I5hkR2T4VcdmT4coimmgF+GzV8="
"media_scanner": "sha256-FD8sYQpL5/fe1MyYUEyOSe9Wxh7RN5Z8xcaIAh3lxK4=",
"open_filex": "sha256-dKLOmk+C9Rzw0wq18I5hkR2T4VcdmT4coimmgF+GzV8=",
"share_handler": "sha256-iLYzYkc82kU0+a97r3neUNDfVYW+0GhYbT9HtBwBEOE="
}
+35 -8
View File
@@ -1,29 +1,56 @@
{
lib,
flutter338,
flutter341,
fetchFromGitHub,
cmake,
copyDesktopItems,
makeDesktopItem,
libx11,
libxcursor,
libxinerama,
libxi,
libxext,
libxrandr,
libxtst,
sqlite,
}:
flutter338.buildFlutterApplication rec {
flutter341.buildFlutterApplication (finalAttrs: {
pname = "windsend";
version = "1.6.0";
version = "1.7.0";
src = fetchFromGitHub {
owner = "doraemonkeys";
repo = "WindSend";
tag = "v${version}";
hash = "sha256-KCtYV7z+QqufXiHzuEoX8XVIPfNPBdp0F1FLiPq+PDM=";
tag = "v${finalAttrs.version}";
hash = "sha256-zpbCtiGPjGLkcZ98uN0y0modMnhucV4g4Sc9P6cRPIw=";
};
pubspecLock = lib.importJSON ./pubspec.lock.json;
gitHashes = lib.importJSON ./git-hashes.json;
sourceRoot = "${src.name}/flutter/wind_send";
sourceRoot = "${finalAttrs.src.name}/flutter/wind_send";
nativeBuildInputs = [ copyDesktopItems ];
nativeBuildInputs = [
cmake
copyDesktopItems
];
buildInputs = [
libx11
libxcursor
libxrandr
libxinerama
libxi
libxext
libxtst
sqlite
];
dontUseCmakeConfigure = true;
env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
desktopItems = [
(makeDesktopItem {
@@ -48,4 +75,4 @@ flutter338.buildFlutterApplication rec {
maintainers = [ ];
platforms = lib.platforms.linux;
};
}
})
+410 -69
View File
@@ -4,11 +4,11 @@
"dependency": "transitive",
"description": {
"name": "_fe_analyzer_shared",
"sha256": "c209688d9f5a5f26b2fb47a188131a6fb9e876ae9e47af3737c0b4f58a93470d",
"sha256": "8d7ff3948166b8ec5da0fbb5962000926b8e02f2ed9b3e51d1738905fbd4c98d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "91.0.0"
"version": "93.0.0"
},
"accessing_security_scoped_resource": {
"dependency": "transitive",
@@ -24,21 +24,21 @@
"dependency": "transitive",
"description": {
"name": "analyzer",
"sha256": "f51c8499b35f9b26820cfe914828a6a98a94efd5cc78b37bb7d03debae3a1d08",
"sha256": "de7148ed2fcec579b19f122c1800933dfa028f6d9fd38a152b04b1516cec120b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.4.1"
"version": "10.0.1"
},
"archive": {
"dependency": "transitive",
"description": {
"name": "archive",
"sha256": "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd",
"sha256": "a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.7"
"version": "4.0.9"
},
"args": {
"dependency": "transitive",
@@ -80,16 +80,96 @@
"source": "hosted",
"version": "2.1.2"
},
"build": {
"dependency": "transitive",
"description": {
"name": "build",
"sha256": "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.4"
},
"build_config": {
"dependency": "transitive",
"description": {
"name": "build_config",
"sha256": "4070d2a59f8eec34c97c86ceb44403834899075f66e8a9d59706f8e7834f6f71",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.3.0"
},
"build_daemon": {
"dependency": "transitive",
"description": {
"name": "build_daemon",
"sha256": "bf05f6e12cfea92d3c09308d7bcdab1906cd8a179b023269eed00c071004b957",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.1"
},
"build_runner": {
"dependency": "direct dev",
"description": {
"name": "build_runner",
"sha256": "7981eb922842c77033026eb4341d5af651562008cdb116bdfa31fc46516b6462",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.12.2"
},
"built_collection": {
"dependency": "transitive",
"description": {
"name": "built_collection",
"sha256": "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.1.1"
},
"built_value": {
"dependency": "transitive",
"description": {
"name": "built_value",
"sha256": "6ae8a6435a8c6520c7077b107e77f1fb4ba7009633259a4d49a8afd8e7efc5e9",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.12.4"
},
"characters": {
"dependency": "transitive",
"description": {
"name": "characters",
"sha256": "f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803",
"sha256": "faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.1"
},
"charcode": {
"dependency": "transitive",
"description": {
"name": "charcode",
"sha256": "fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.4.0"
},
"checked_yaml": {
"dependency": "transitive",
"description": {
"name": "checked_yaml",
"sha256": "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.0.4"
},
"cli_config": {
"dependency": "transitive",
"description": {
@@ -100,6 +180,26 @@
"source": "hosted",
"version": "0.2.0"
},
"cli_util": {
"dependency": "transitive",
"description": {
"name": "cli_util",
"sha256": "ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.4.2"
},
"clipshare_clipboard_listener": {
"dependency": "direct main",
"description": {
"name": "clipshare_clipboard_listener",
"sha256": "0f4927b147846a19616e7c8289c1e86fd383ee78c52a0d15ddb4ff0971ea400b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.2.10"
},
"clock": {
"dependency": "transitive",
"description": {
@@ -110,6 +210,26 @@
"source": "hosted",
"version": "1.1.2"
},
"code_assets": {
"dependency": "transitive",
"description": {
"name": "code_assets",
"sha256": "83ccdaa064c980b5596c35dd64a8d3ecc68620174ab9b90b6343b753aa721687",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.0"
},
"code_builder": {
"dependency": "transitive",
"description": {
"name": "code_builder",
"sha256": "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.11.1"
},
"collection": {
"dependency": "direct main",
"description": {
@@ -134,11 +254,11 @@
"dependency": "direct main",
"description": {
"name": "cookie_jar",
"sha256": "a6ac027d3ed6ed756bfce8f3ff60cb479e266f3b0fdabd6242b804b6765e52de",
"sha256": "963da02c1ef64cb5ac20de948c9e5940aa351f1e34a12b1d327c83d85b7e8fff",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.8"
"version": "4.0.9"
},
"coverage": {
"dependency": "transitive",
@@ -154,11 +274,11 @@
"dependency": "transitive",
"description": {
"name": "cross_file",
"sha256": "701dcfc06da0882883a2657c445103380e53e647060ad8d9dfb710c100996608",
"sha256": "28bb3ae56f117b5aec029d702a90f57d285cd975c3c5c281eaca38dbc47c5937",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.3.5+1"
"version": "0.3.5+2"
},
"crypto": {
"dependency": "direct main",
@@ -210,15 +330,25 @@
"source": "hosted",
"version": "4.0.1"
},
"dart_style": {
"dependency": "transitive",
"description": {
"name": "dart_style",
"sha256": "29f7ecc274a86d32920b1d9cfc7502fa87220da41ec60b55f329559d5732e2b2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.1.7"
},
"dbus": {
"dependency": "transitive",
"description": {
"name": "dbus",
"sha256": "79e0c23480ff85dc68de79e2cd6334add97e48f7f4865d17686dd6ea81a47e8c",
"sha256": "d0c98dcd4f5169878b6cf8f6e0a52403a9dff371a3e2f019697accbf6f44a270",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.11"
"version": "0.7.12"
},
"device_info_plus": {
"dependency": "direct main",
@@ -244,31 +374,51 @@
"dependency": "direct main",
"description": {
"name": "dio",
"sha256": "d90ee57923d1828ac14e492ca49440f65477f4bb1263575900be731a3dac66a9",
"sha256": "aff32c08f92787a557dd5c0145ac91536481831a01b4648136373cddb0e64f8c",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "5.9.0"
"version": "5.9.2"
},
"dio_cookie_manager": {
"dependency": "direct main",
"description": {
"name": "dio_cookie_manager",
"sha256": "d39c16abcc711c871b7b29bd51c6b5f3059ef39503916c6a9df7e22c4fc595e0",
"sha256": "0db1a7b997a0455e488ac35744c68eed3f2a4280d3ab531835a65641b0a08744",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.3.0"
"version": "3.4.0"
},
"dio_web_adapter": {
"dependency": "transitive",
"description": {
"name": "dio_web_adapter",
"sha256": "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78",
"sha256": "2f9e64323a7c3c7ef69567d5c800424a11f8337b8b228bad02524c9fb3c1f340",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
"version": "2.1.2"
},
"drift": {
"dependency": "direct main",
"description": {
"name": "drift",
"sha256": "61f876c0291b194980bafd203f48e85d5fb04e4a7334367d1a89f44004dbcb83",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.32.0"
},
"drift_dev": {
"dependency": "direct dev",
"description": {
"name": "drift_dev",
"sha256": "d687e955cc4b1706ad49b3860fcc1045c09bbf1d84c3c7383615f7f9c3320aa2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.32.0"
},
"fake_async": {
"dependency": "transitive",
@@ -294,11 +444,11 @@
"dependency": "transitive",
"description": {
"name": "ffi",
"sha256": "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418",
"sha256": "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.4"
"version": "2.2.0"
},
"file": {
"dependency": "transitive",
@@ -314,11 +464,11 @@
"dependency": "direct main",
"description": {
"name": "file_picker",
"sha256": "7872545770c277236fd32b022767576c562ba28366204ff1a5628853cf8f2200",
"sha256": "57d9a1dd5063f85fa3107fb42d1faffda52fdc948cefd5fe5ea85267a5fc7343",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "10.3.7"
"version": "10.3.10"
},
"file_selector": {
"dependency": "transitive",
@@ -416,6 +566,66 @@
"source": "sdk",
"version": "0.0.0"
},
"flutter_image_compress": {
"dependency": "direct main",
"description": {
"name": "flutter_image_compress",
"sha256": "51d23be39efc2185e72e290042a0da41aed70b14ef97db362a6b5368d0523b27",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.0"
},
"flutter_image_compress_common": {
"dependency": "transitive",
"description": {
"name": "flutter_image_compress_common",
"sha256": "c5c5d50c15e97dd7dc72ff96bd7077b9f791932f2076c5c5b6c43f2c88607bfb",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.6"
},
"flutter_image_compress_macos": {
"dependency": "transitive",
"description": {
"name": "flutter_image_compress_macos",
"sha256": "20019719b71b743aba0ef874ed29c50747461e5e8438980dfa5c2031898f7337",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.3"
},
"flutter_image_compress_ohos": {
"dependency": "transitive",
"description": {
"name": "flutter_image_compress_ohos",
"sha256": "e76b92bbc830ee08f5b05962fc78a532011fcd2041f620b5400a593e96da3f51",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.0.3"
},
"flutter_image_compress_platform_interface": {
"dependency": "transitive",
"description": {
"name": "flutter_image_compress_platform_interface",
"sha256": "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.5"
},
"flutter_image_compress_web": {
"dependency": "transitive",
"description": {
"name": "flutter_image_compress_web",
"sha256": "b9b141ac7c686a2ce7bb9a98176321e1182c9074650e47bb140741a44b6f5a96",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.1.5"
},
"flutter_lints": {
"dependency": "direct dev",
"description": {
@@ -468,11 +678,11 @@
"dependency": "direct main",
"description": {
"name": "fluttertoast",
"sha256": "90778fe0497fe3a09166e8cf2e0867310ff434b794526589e77ec03cf08ba8e8",
"sha256": "144ddd74d49c865eba47abe31cbc746c7b311c82d6c32e571fd73c4264b740e2",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "8.2.14"
"version": "9.0.0"
},
"frontend_server_client": {
"dependency": "transitive",
@@ -494,6 +704,26 @@
"source": "hosted",
"version": "2.1.3"
},
"graphs": {
"dependency": "transitive",
"description": {
"name": "graphs",
"sha256": "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.3.2"
},
"hooks": {
"dependency": "transitive",
"description": {
"name": "hooks",
"sha256": "e79ed1e8e1929bc6ecb6ec85f0cb519c887aa5b423705ded0d0f2d9226def388",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.0.2"
},
"http": {
"dependency": "transitive",
"description": {
@@ -524,6 +754,26 @@
"source": "hosted",
"version": "4.1.2"
},
"image": {
"dependency": "direct main",
"description": {
"name": "image",
"sha256": "f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.8.0"
},
"image_gallery_saver_plus": {
"dependency": "direct main",
"description": {
"name": "image_gallery_saver_plus",
"sha256": "199b9e24f8d85e98f11e3d35571ab68ae50626ad40e2bb85c84383f69a6950ad",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.0.1"
},
"intl": {
"dependency": "direct main",
"description": {
@@ -588,11 +838,11 @@
"dependency": "transitive",
"description": {
"name": "json_annotation",
"sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1",
"sha256": "cb09e7dac6210041fad964ed7fbee004f14258b4eca4040f72d1234062ace4c8",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.9.0"
"version": "4.11.0"
},
"leak_tracker": {
"dependency": "transitive",
@@ -638,11 +888,11 @@
"dependency": "transitive",
"description": {
"name": "lints",
"sha256": "a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0",
"sha256": "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.0.0"
"version": "6.1.0"
},
"logger": {
"dependency": "direct main",
@@ -678,32 +928,32 @@
"dependency": "transitive",
"description": {
"name": "matcher",
"sha256": "dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2",
"sha256": "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.12.17"
"version": "0.12.18"
},
"material_color_utilities": {
"dependency": "transitive",
"description": {
"name": "material_color_utilities",
"sha256": "f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec",
"sha256": "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.11.1"
"version": "0.13.0"
},
"media_scanner": {
"dependency": "direct main",
"description": {
"path": ".",
"ref": "master",
"resolved-ref": "1b34bda70b6620c3195e58ce9d4e88bbc92784cf",
"resolved-ref": "cc5b816fe0108009ef5b8616cecb8ad05ab3b147",
"url": "https://github.com/Lzyct/media_scanner"
},
"source": "git",
"version": "2.2.0"
"version": "2.2.1"
},
"meta": {
"dependency": "transitive",
@@ -725,15 +975,25 @@
"source": "hosted",
"version": "2.0.0"
},
"native_toolchain_c": {
"dependency": "transitive",
"description": {
"name": "native_toolchain_c",
"sha256": "92b2ca62c8bd2b8d2f267cdfccf9bfbdb7322f778f8f91b3ce5b5cda23a3899f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.17.5"
},
"network_info_plus": {
"dependency": "direct main",
"description": {
"name": "network_info_plus",
"sha256": "f926b2ba86aa0086a0dfbb9e5072089bc213d854135c1712f1d29fc89ba3c877",
"sha256": "2866dadcbee2709e20d67737a1556f5675b8b0cdcf2c1659ba74bc21bffede4f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.1.4"
"version": "7.0.0"
},
"network_info_plus_platform_interface": {
"dependency": "transitive",
@@ -765,6 +1025,16 @@
"source": "hosted",
"version": "2.0.2"
},
"objective_c": {
"dependency": "transitive",
"description": {
"name": "objective_c",
"sha256": "100a1c87616ab6ed41ec263b083c0ef3261ee6cd1dc3b0f35f8ddfa4f996fe52",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "9.3.0"
},
"open_filex": {
"dependency": "direct main",
"description": {
@@ -820,11 +1090,11 @@
"dependency": "transitive",
"description": {
"name": "path_provider_foundation",
"sha256": "6d13aece7b3f5c5a9731eaf553ff9dcbc2eff41087fd2df587fd0fed9a3eb0c4",
"sha256": "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.5.1"
"version": "2.6.0"
},
"path_provider_linux": {
"dependency": "transitive",
@@ -920,11 +1190,11 @@
"dependency": "transitive",
"description": {
"name": "petitparser",
"sha256": "1a97266a94f7350d30ae522c0af07890c70b8e62c71e8e3920d1db4d23c057d1",
"sha256": "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "7.0.1"
"version": "7.0.2"
},
"pixel_snap": {
"dependency": "transitive",
@@ -980,11 +1250,11 @@
"dependency": "transitive",
"description": {
"name": "posix",
"sha256": "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61",
"sha256": "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.0.3"
"version": "6.5.0"
},
"pub_semver": {
"dependency": "transitive",
@@ -996,6 +1266,26 @@
"source": "hosted",
"version": "2.2.0"
},
"pubspec_parse": {
"dependency": "transitive",
"description": {
"name": "pubspec_parse",
"sha256": "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.5.0"
},
"recase": {
"dependency": "transitive",
"description": {
"name": "recase",
"sha256": "e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.1.0"
},
"saf_stream": {
"dependency": "direct main",
"description": {
@@ -1019,11 +1309,12 @@
"share_handler": {
"dependency": "direct main",
"description": {
"name": "share_handler",
"sha256": "0a6d007f0e44fbee27164adcd159ecbc88238864313f4e5c58161cae2180328d",
"url": "https://pub.dev"
"path": "share_handler",
"ref": "main",
"resolved-ref": "b30d993620fe6dc3f3d5a1a1b55cf8bcc96e3995",
"url": "https://github.com/doraemonkeys/share_handler"
},
"source": "hosted",
"source": "git",
"version": "0.0.25"
},
"share_handler_android": {
@@ -1060,11 +1351,11 @@
"dependency": "direct main",
"description": {
"name": "share_plus",
"sha256": "d7dc0630a923883c6328ca31b89aa682bacbf2f8304162d29f7c6aaff03a27a1",
"sha256": "14c8860d4de93d3a7e53af51bff479598c4e999605290756bbbe45cf65b37840",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "11.1.0"
"version": "12.0.1"
},
"share_plus_platform_interface": {
"dependency": "transitive",
@@ -1090,11 +1381,11 @@
"dependency": "transitive",
"description": {
"name": "shared_preferences_android",
"sha256": "83af5c682796c0f7719c2bbf74792d113e40ae97981b8f266fa84574573556bc",
"sha256": "8374d6200ab33ac99031a852eba4c8eb2170c4bf20778b3e2c9eccb45384fb41",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.18"
"version": "2.4.21"
},
"shared_preferences_foundation": {
"dependency": "transitive",
@@ -1192,6 +1483,16 @@
"source": "sdk",
"version": "0.0.0"
},
"source_gen": {
"dependency": "transitive",
"description": {
"name": "source_gen",
"sha256": "adc962c96fffb2de1728ef396a995aaedcafbe635abdca13d2a987ce17e57751",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.2.1"
},
"source_map_stack_trace": {
"dependency": "transitive",
"description": {
@@ -1216,11 +1517,41 @@
"dependency": "transitive",
"description": {
"name": "source_span",
"sha256": "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c",
"sha256": "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.10.1"
"version": "1.10.2"
},
"sqlite3": {
"dependency": "transitive",
"description": {
"name": "sqlite3",
"sha256": "caa693ad15a587a2b4fde093b728131a1827903872171089dedb16f7665d3a91",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "3.2.0"
},
"sqlite3_flutter_libs": {
"dependency": "direct main",
"description": {
"name": "sqlite3_flutter_libs",
"sha256": "eeb9e3a45207649076b808f8a5a74d68770d0b7f26ccef6d5f43106eee5375ad",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.5.42"
},
"sqlparser": {
"dependency": "transitive",
"description": {
"name": "sqlparser",
"sha256": "faebfaa581dde5b6b55c499f41532c4883943162ebc12d7138c70cfcead733dc",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.44.2"
},
"stack_trace": {
"dependency": "transitive",
@@ -1242,6 +1573,16 @@
"source": "hosted",
"version": "2.1.4"
},
"stream_transform": {
"dependency": "transitive",
"description": {
"name": "stream_transform",
"sha256": "ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.1.1"
},
"string_scanner": {
"dependency": "transitive",
"description": {
@@ -1286,31 +1627,31 @@
"dependency": "direct dev",
"description": {
"name": "test",
"sha256": "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7",
"sha256": "54c516bbb7cee2754d327ad4fca637f78abfc3cbcc5ace83b3eda117e42cd71a",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.26.3"
"version": "1.29.0"
},
"test_api": {
"dependency": "transitive",
"description": {
"name": "test_api",
"sha256": "ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55",
"sha256": "93167629bfc610f71560ab9312acdda4959de4df6fac7492c89ff0d3886f6636",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.7.7"
"version": "0.7.9"
},
"test_core": {
"dependency": "transitive",
"description": {
"name": "test_core",
"sha256": "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0",
"sha256": "394f07d21f0f2255ec9e3989f21e54d3c7dc0e6e9dbce160e5a9c1a6be0e2943",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "0.6.12"
"version": "0.6.15"
},
"typed_data": {
"dependency": "transitive",
@@ -1356,11 +1697,11 @@
"dependency": "transitive",
"description": {
"name": "url_launcher_ios",
"sha256": "cfde38aa257dae62ffe79c87fab20165dfdf6988c1d31b58ebf59b9106062aad",
"sha256": "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "6.3.6"
"version": "6.4.1"
},
"url_launcher_linux": {
"dependency": "transitive",
@@ -1396,11 +1737,11 @@
"dependency": "transitive",
"description": {
"name": "url_launcher_web",
"sha256": "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2",
"sha256": "d0412fcf4c6b31ecfdb7762359b7206ffba3bbffd396c6d9f9c4616ece476c1f",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "2.4.1"
"version": "2.4.2"
},
"url_launcher_windows": {
"dependency": "transitive",
@@ -1416,11 +1757,11 @@
"dependency": "transitive",
"description": {
"name": "uuid",
"sha256": "a11b666489b1954e01d992f3d601b1804a33937b5a8fe677bd26b8a9f96f96e8",
"sha256": "1fef9e8e11e2991bb773070d4656b7bd5d850967a2456cfc83cf47925ba79489",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "4.5.2"
"version": "4.5.3"
},
"vector_math": {
"dependency": "transitive",
@@ -1446,11 +1787,11 @@
"dependency": "transitive",
"description": {
"name": "watcher",
"sha256": "592ab6e2892f67760543fb712ff0177f4ec76c031f02f5b4ff8d3fc5eb9fb61a",
"sha256": "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635",
"url": "https://pub.dev"
},
"source": "hosted",
"version": "1.1.4"
"version": "1.2.1"
},
"web": {
"dependency": "transitive",
@@ -1544,7 +1885,7 @@
}
},
"sdks": {
"dart": ">=3.10.1 <4.0.0",
"flutter": ">=3.38.0"
"dart": ">=3.10.3 <4.0.0",
"flutter": ">=3.38.4"
}
}
+3 -3
View File
@@ -9,16 +9,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wttrbar";
version = "0.14.3";
version = "0.14.4";
src = fetchFromGitHub {
owner = "bjesus";
repo = "wttrbar";
tag = finalAttrs.version;
hash = "sha256-MNELUtk3pXw0vcA8I1zUXl6BhojEcIoOUX4G2d4QIMI=";
hash = "sha256-pQIUliT9RktaC7E+r7Im6bJv6LxCH6wNLo1Nlz4Oeyc=";
};
cargoHash = "sha256-V+XsePgv6Ss6TC/Ej2hQkfj7hdjTNV0V4QNynMRZ24I=";
cargoHash = "sha256-T+IWMqe+AZmYhXf9bhpTdCGkg25fcUjQazQhs9fH5Vw=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl ];
+31
View File
@@ -0,0 +1,31 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "xre";
version = "0.1.1";
src = fetchFromGitHub {
owner = "wfxr";
repo = "xre";
tag = "v${finalAttrs.version}";
hash = "sha256-auK7A99QdIJehj0tsM2WH/QEcNktZddoG86zwXD4g4Q=";
};
cargoHash = "sha256-ZgPMMUc5nGJMDY3q3n+37Nv0kjRIARooHG2RxWI3o88=";
meta = {
description = "Fast regex extraction tool with pattern matching, replacement, and configurable sorting";
homepage = "https://github.com/wfxr/xre";
changelog = "https://github.com/wfxr/xre/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = with lib.licenses; [
asl20
mit
];
maintainers = with lib.maintainers; [ doronbehar ];
mainProgram = "xre";
};
})
@@ -7,12 +7,12 @@
{ version, src, ... }:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "sqlite3";
inherit version src;
inherit (src) passthru;
setupHook = writeScript "${pname}-setup-hook" ''
setupHook = writeScript "${finalAttrs.pname}-setup-hook" ''
sqliteFixupHook() {
runtimeDependencies+=('${lib.getLib sqlite}')
}
@@ -20,12 +20,16 @@ stdenv.mkDerivation rec {
preFixupHooks+=(sqliteFixupHook)
'';
postPatch = lib.optionalString (lib.versionAtLeast version "3.2.0") ''
substituteInPlace lib/src/hook/description.dart \
--replace-fail "return PrecompiledFromGithubAssets(LibraryType.sqlite3);" "return LookupSystem('sqlite3');"
'';
installPhase = ''
runHook preInstall
mkdir -p "$out"
ln -s '${src}'/* "$out"
cp --recursive . "$out"
runHook postInstall
'';
}
})
+130 -126
View File
@@ -57,144 +57,148 @@ let
lib.path.removePrefix root path;
in
writeScript "update-dotnet-vmr.sh" ''
#! ${nix}/bin/nix-shell
#! nix-shell -i ${runtimeShell} --pure ${drv} --keep UPDATE_NIX_ATTR_PATH
set -euo pipefail
writeScript "update-dotnet-vmr.sh" (
''
#! ${nix}/bin/nix-shell
#! nix-shell -i ${runtimeShell} --pure ${drv} --keep UPDATE_NIX_ATTR_PATH
set -euo pipefail
tag=''${1-}
tag=''${1-}
if [[ -n $tag ]]; then
query=$(cat <<EOF
map(
select(
(.tag_name == "$tag"))) |
first
EOF
)
else
query=$(cat <<EOF
map(
select(
${lib.optionalString (!allowPrerelease) ".prerelease == false and"}
.draft == false and
(.tag_name | startswith("v${sdkVersionPrefix}")))) |
first
EOF
)
fi
query="$query "$(cat <<EOF
| (
.tag_name,
(.assets |
.[] |
select(.name == "release.json") |
.browser_download_url),
(.assets |
.[] |
select(.name | endswith(".tar.gz.sig")) |
.browser_download_url))
EOF
)
(
curl -fsSL https://api.github.com/repos/dotnet/dotnet/releases | \
jq -er "$query" \
) | (
read tagName
read releaseUrl
read sigUrl
# TMPDIR might be really long, which breaks gpg
tmp="$(TMPDIR=/tmp mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
cd "$tmp"
curl -fsSL "$releaseUrl" -o release.json
if [[ -z $tag && "$tagName" == "${tag}" ]]; then
>&2 echo "release is already $tagName"
exit
fi
tarballUrl=https://github.com/dotnet/dotnet/archive/refs/tags/$tagName.tar.gz
mapfile -t prefetch < <(nix-prefetch-url --print-path "$tarballUrl")
tarballHash=$(nix-hash --to-sri --type sha256 "''${prefetch[0]}")
tarball=''${prefetch[1]}
# recent dotnet 10 releases don't have a signature for the github tarball
if [[ ! $sigUrl = */dotnet-source-* ]]; then
curl -fssL "$sigUrl" -o release.sig
(
export GNUPGHOME=$PWD/.gnupg
mkdir -m 700 -p $GNUPGHOME
trap 'gpgconf --kill all' EXIT
gpg --no-autostart --batch --import ${releaseKey}
gpg --no-autostart --batch --verify release.sig "$tarball"
if [[ -n $tag ]]; then
query=$(cat <<EOF
map(
select(
(.tag_name == "$tag"))) |
first
EOF
)
fi
else
query=$(cat <<EOF
map(
select(
${lib.optionalString (!allowPrerelease) ".prerelease == false and"}
.draft == false and
(.tag_name | startswith("v${sdkVersionPrefix}")))) |
first
EOF
)
fi
tar --strip-components=1 --no-wildcards-match-slash --wildcards -xzf "$tarball" \*/eng/Versions.props \*/global.json \*/prep\*.sh
artifactsVersion=$(xq -r '.Project.PropertyGroup |
map(select(.PrivateSourceBuiltArtifactsVersion))
| .[] | .PrivateSourceBuiltArtifactsVersion' eng/Versions.props)
query="$query "$(cat <<EOF
| (
.tag_name,
(.assets |
.[] |
select(.name == "release.json") |
.browser_download_url),
(.assets |
.[] |
select(.name | endswith(".tar.gz.sig")) |
.browser_download_url))
EOF
)
if [[ "$artifactsVersion" != "" ]]; then
artifactVar=$(grep ^defaultArtifactsRid= prep-source-build.sh)
eval "$artifactVar"
(
curl -fsSL https://api.github.com/repos/dotnet/dotnet/releases | \
jq -er "$query" \
) | (
read tagName
read releaseUrl
read sigUrl
artifactsFile=Private.SourceBuilt.Artifacts.$artifactsVersion.$defaultArtifactsRid.tar.gz
artifactsUrl=https://builds.dotnet.microsoft.com/${
if lib.versionAtLeast channel "10" then "dotnet/source-build" else "source-built-artifacts/assets"
}/$artifactsFile
# TMPDIR might be really long, which breaks gpg
tmp="$(TMPDIR=/tmp mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
curl -fsSL "$artifactsUrl" --head || {
[[ $? == 22 ]]
artifactsUrl=https://ci.dot.net/public/source-build/$artifactsFile
}
else
artifactsUrl=$(xq -r '.Project.PropertyGroup |
map(select(.PrivateSourceBuiltArtifactsUrl))
| .[] | .PrivateSourceBuiltArtifactsUrl' eng/Versions.props)
artifactsUrl="''${artifactsUrl/dotnetcli.azureedge.net/builds.dotnet.microsoft.com}"
fi
cd "$tmp"
artifactsHash=$(nix-prefetch-url "$artifactsUrl")
artifactsHash=$(nix-hash --to-sri --type sha256 "$artifactsHash")
curl -fsSL "$releaseUrl" -o release.json
sdkVersion=$(jq -er .tools.dotnet global.json)
if [[ -z $tag && "$tagName" == "${tag}" ]]; then
>&2 echo "release is already $tagName"
exit
fi
# below needs to be run in nixpkgs because toOutputPath uses relative paths
cd -
tarballUrl=https://github.com/dotnet/dotnet/archive/refs/tags/$tagName.tar.gz
cp "$tmp"/release.json "${toOutputPath releaseManifestFile}"
mapfile -t prefetch < <(nix-prefetch-url --print-path "$tarballUrl")
tarballHash=$(nix-hash --to-sri --type sha256 "''${prefetch[0]}")
tarball=''${prefetch[1]}
jq --null-input \
--arg _0 "$tarballHash" \
--arg _1 "$artifactsUrl" \
--arg _2 "$artifactsHash" \
'{
"tarballHash": $_0,
"artifactsUrl": $_1,
"artifactsHash": $_2,
}' > "${toOutputPath releaseInfoFile}"
# recent dotnet 10 releases don't have a signature for the github tarball
if [[ ! $sigUrl = */dotnet-source-* ]]; then
curl -fssL "$sigUrl" -o release.sig
updateSDK() {
${lib.escapeShellArg (toOutputPath ./update.sh)} \
-o ${lib.escapeShellArg (toOutputPath bootstrapSdkFile)} --sdk "$1" >&2
}
(
export GNUPGHOME=$PWD/.gnupg
mkdir -m 700 -p $GNUPGHOME
trap 'gpgconf --kill all' EXIT
gpg --no-autostart --batch --import ${releaseKey}
gpg --no-autostart --batch --verify release.sig "$tarball"
)
fi
updateSDK "$sdkVersion" || if [[ $? == 2 ]]; then
>&2 echo "WARNING: bootstrap sdk missing, attempting to bootstrap with self"
updateSDK "$(jq -er .sdkVersion "$tmp"/release.json)"
else
exit 1
fi
tar --strip-components=1 --no-wildcards-match-slash --wildcards -xzf "$tarball" \*/eng/Versions.props \*/global.json \*/prep\*.sh
artifactsVersion=$(xq -r '.Project.PropertyGroup |
map(select(.PrivateSourceBuiltArtifactsVersion))
| .[] | .PrivateSourceBuiltArtifactsVersion' eng/Versions.props)
$(nix-build -A $UPDATE_NIX_ATTR_PATH.fetch-deps --no-out-link) >&2
)
''
if [[ "$artifactsVersion" != "" ]]; then
artifactVar=$(grep ^defaultArtifactsRid= prep-source-build.sh)
eval "$artifactVar"
artifactsFile=Private.SourceBuilt.Artifacts.$artifactsVersion.$defaultArtifactsRid.tar.gz
artifactsUrl=https://builds.dotnet.microsoft.com/${
if lib.versionAtLeast channel "10" then "dotnet/source-build" else "source-built-artifacts/assets"
}/$artifactsFile
curl -fsSL "$artifactsUrl" --head || {
[[ $? == 22 ]]
artifactsUrl=https://ci.dot.net/public/source-build/$artifactsFile
}
else
artifactsUrl=$(xq -r '.Project.PropertyGroup |
map(select(.PrivateSourceBuiltArtifactsUrl))
| .[] | .PrivateSourceBuiltArtifactsUrl' eng/Versions.props)
artifactsUrl="''${artifactsUrl/dotnetcli.azureedge.net/builds.dotnet.microsoft.com}"
fi
artifactsHash=$(nix-prefetch-url "$artifactsUrl")
artifactsHash=$(nix-hash --to-sri --type sha256 "$artifactsHash")
sdkVersion=$(jq -er .tools.dotnet global.json)
# below needs to be run in nixpkgs because toOutputPath uses relative paths
cd -
cp "$tmp"/release.json "${toOutputPath releaseManifestFile}"
jq --null-input \
--arg _0 "$tarballHash" \
--arg _1 "$artifactsUrl" \
--arg _2 "$artifactsHash" \
'{
"tarballHash": $_0,
"artifactsUrl": $_1,
"artifactsHash": $_2,
}' > "${toOutputPath releaseInfoFile}"
''
+ lib.optionalString (bootstrapSdkFile != null) ''
updateSDK() {
${lib.escapeShellArg (toOutputPath ./update.sh)} \
-o ${lib.escapeShellArg (toOutputPath bootstrapSdkFile)} --sdk "$1" >&2
}
updateSDK "$sdkVersion" || if [[ $? == 2 ]]; then
>&2 echo "WARNING: bootstrap sdk missing, attempting to bootstrap with self"
updateSDK "$(jq -er .sdkVersion "$tmp"/release.json)"
else
exit 1
fi
''
+ ''
$(nix-build -A $UPDATE_NIX_ATTR_PATH.fetch-deps --no-out-link) >&2
)
''
)

Some files were not shown because too many files have changed in this diff Show More