Merge master into staging-nixos
This commit is contained in:
@@ -49,7 +49,7 @@ jobs:
|
||||
|
||||
- name: Create backport PRs
|
||||
id: backport
|
||||
uses: korthout/backport-action@d07416681cab29bf2661702f925f020aaa962997 # v3.4.1
|
||||
uses: korthout/backport-action@3634249d418881baa47fd6bae694506145f7a61b # v4.0.0
|
||||
with:
|
||||
# Config README: https://github.com/korthout/backport-action#backport-action
|
||||
copy_labels_pattern: 'severity:\ssecurity'
|
||||
|
||||
@@ -182,7 +182,7 @@ jobs:
|
||||
target-as-trusted-at: ${{ inputs.targetSha }}
|
||||
|
||||
- name: Download output paths and eval stats for all systems
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
pattern: ${{ inputs.artifact-prefix }}diff-*
|
||||
path: diff
|
||||
@@ -261,7 +261,7 @@ jobs:
|
||||
needs: [versions, eval]
|
||||
steps:
|
||||
- name: Download output paths and eval stats for all versions
|
||||
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6.0.0
|
||||
uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
|
||||
with:
|
||||
pattern: "*-diff-*"
|
||||
path: versions
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
echo "git-string=$name <$email>" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7.0.11
|
||||
uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # v8.0.0
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
add-paths: maintainers/github-teams.json
|
||||
|
||||
@@ -8630,6 +8630,9 @@
|
||||
githubId = 30697622;
|
||||
name = "Firelight Flagboy";
|
||||
keys = [
|
||||
{
|
||||
fingerprint = "A14B AC2E 1BDB 9035 F6A0 5741 6C0A B3D8 F176 0318";
|
||||
}
|
||||
{
|
||||
fingerprint = "D6E2 4BD5 680C 609D D146 99B4 4304 CE0B A5E8 67D1";
|
||||
}
|
||||
@@ -14208,6 +14211,13 @@
|
||||
githubId = 9920871;
|
||||
name = "Monotoko";
|
||||
};
|
||||
ktemkin = {
|
||||
email = "kate@ktemk.in";
|
||||
github = "ktemkin";
|
||||
githubId = 1298105;
|
||||
name = "Kate Temkin";
|
||||
matrix = "@ktemkin:katesiria.org";
|
||||
};
|
||||
ktf = {
|
||||
email = "giulio.eulisse@cern.ch";
|
||||
github = "ktf";
|
||||
|
||||
@@ -55,6 +55,8 @@ of pulling the upstream container image from Docker Hub. If you want the old beh
|
||||
|
||||
- The Bash implementation of the `nixos-rebuild` program is removed. All switchable systems now use the Python rewrite. Any prior usage of `system.rebuild.enableNg` must now be removed. If you have any outstanding issues with the new implementation, please open an issue on GitHub.
|
||||
|
||||
- `services.angrr` now uses TOML for configuration. Define policies with `services.angrr.settings` (generate TOML file) or point to a file using `services.angrr.configFile`. The legacy options `services.angrr.period`, `services.angrr.ownedOnly`, and `services.angrr.removeRoot` have been removed. See `man 5 angrr` and the description of `services.angrr.settings` options for examples and details.
|
||||
|
||||
- `services.pingvin-share` has been removed as the `pingvin-share.backend` package was broken and the project was archived upstream.
|
||||
|
||||
## Other Notable Changes {#sec-release-26.05-notable-changes}
|
||||
|
||||
@@ -371,13 +371,16 @@ in
|
||||
warnings =
|
||||
lib.optional
|
||||
(
|
||||
!(builtins.elem cfg.bind_to_address [
|
||||
"localhost"
|
||||
"127.0.0.1"
|
||||
])
|
||||
!(
|
||||
(builtins.elem cfg.settings.bind_to_address [
|
||||
"localhost"
|
||||
"127.0.0.1"
|
||||
])
|
||||
|| (lib.hasPrefix "/" cfg.settings.bind_to_address)
|
||||
)
|
||||
&& !cfg.openFirewall
|
||||
)
|
||||
"Using '${cfg.bind_to_address}' as services.mpd.settings.bind_to_address without enabling services.mpd.openFirewall, might prevent you from accessing MPD from other clients.";
|
||||
"Using '${cfg.settings.bind_to_address}' as services.mpd.settings.bind_to_address without enabling services.mpd.openFirewall, might prevent you from accessing MPD from other clients.";
|
||||
|
||||
# install mpd units
|
||||
systemd.packages = [ pkgs.mpd ];
|
||||
|
||||
@@ -8,36 +8,242 @@
|
||||
let
|
||||
cfg = config.services.angrr;
|
||||
direnvCfg = config.programs.direnv.angrr;
|
||||
toml = pkgs.formats.toml { };
|
||||
exampleSettings = {
|
||||
temporary-root-policies = {
|
||||
direnv = {
|
||||
path-regex = "/\\.direnv/";
|
||||
period = "14d";
|
||||
};
|
||||
result = {
|
||||
path-regex = "/result[^/]*$";
|
||||
period = "3d";
|
||||
};
|
||||
};
|
||||
profile-policies = {
|
||||
system = {
|
||||
profile-paths = [ "/nix/var/nix/profiles/system" ];
|
||||
keep-since = "14d";
|
||||
keep-latest-n = 5;
|
||||
keep-booted-system = true;
|
||||
keep-current-system = true;
|
||||
};
|
||||
user = {
|
||||
enable = false;
|
||||
profile-paths = [
|
||||
"~/.local/state/nix/profiles/profile"
|
||||
"/nix/var/nix/profiles/per-user/root/profile"
|
||||
];
|
||||
keep-since = "1d";
|
||||
keep-latest-n = 1;
|
||||
keep-booted-system = false;
|
||||
keep-current-system = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
settingsOptions = {
|
||||
freeformType = toml.type;
|
||||
options = {
|
||||
owned-only = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
enum [
|
||||
"auto"
|
||||
"true"
|
||||
"false"
|
||||
];
|
||||
default = "auto";
|
||||
description = ''
|
||||
Only monitors owned symbolic link target of GC roots.
|
||||
|
||||
- "auto": behaves like true for normal users, false for root.
|
||||
- "true": only monitor GC roots owned by the current user.
|
||||
- "false": monitor all GC roots.
|
||||
'';
|
||||
};
|
||||
temporary-root-policies = lib.mkOption {
|
||||
type = with lib.types; attrsOf (submodule temporaryRootPolicyOptions);
|
||||
default = { };
|
||||
description = ''
|
||||
Policies for temporary GC roots(e.g. result and direnv).
|
||||
'';
|
||||
};
|
||||
profile-policies = lib.mkOption {
|
||||
type = with lib.types; attrsOf (submodule profilePolicyOptions);
|
||||
default = { };
|
||||
description = ''
|
||||
Profile GC root policies.
|
||||
'';
|
||||
};
|
||||
touch = {
|
||||
project-globs = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [
|
||||
"!.git"
|
||||
];
|
||||
description = ''
|
||||
List of glob patterns to include or exclude files when touching GC roots.
|
||||
|
||||
Only applied when `angrr touch` is invoked with the `--project` flag.
|
||||
Patterns use an inverted gitignore-style semantics.
|
||||
See <https://docs.rs/ignore/latest/ignore/overrides/struct.OverrideBuilder.html#method.add>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
commonPolicyOptions = {
|
||||
options = {
|
||||
enable = lib.mkEnableOption "this angrr policy" // {
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
temporaryRootPolicyOptions = {
|
||||
freeformType = toml.type;
|
||||
imports = [ commonPolicyOptions ];
|
||||
options = {
|
||||
path-regex = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Regex pattern to match the GC root path.
|
||||
'';
|
||||
};
|
||||
period = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
Retention period for the GC roots matched by this policy.
|
||||
'';
|
||||
};
|
||||
priority = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
default = 100;
|
||||
description = ''
|
||||
Priority of this policy.
|
||||
|
||||
Lower number means higher priority, if multiple policies monitor the
|
||||
same path, the one with higher priority will be applied.
|
||||
'';
|
||||
};
|
||||
filter = lib.mkOption {
|
||||
type = with lib.types; nullOr (submodule filterOptions);
|
||||
default = null;
|
||||
description = ''
|
||||
External filter program to further filter GC roots matched by this policy.
|
||||
'';
|
||||
};
|
||||
ignore-prefixes = lib.mkOption {
|
||||
type = with lib.types; nullOr (listOf str);
|
||||
default = null;
|
||||
description = ''
|
||||
List of path prefixes to ignore.
|
||||
|
||||
If null is specified, angrr builtin settings will be used.
|
||||
'';
|
||||
};
|
||||
ignore-prefixes-in-home = lib.mkOption {
|
||||
type = with lib.types; nullOr (listOf str);
|
||||
default = null;
|
||||
description = ''
|
||||
Path prefixes to ignore under home directory.
|
||||
|
||||
If null is specified, angrr builtin settings will be used.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
profilePolicyOptions = {
|
||||
freeformType = toml.type;
|
||||
imports = [ commonPolicyOptions ];
|
||||
options = {
|
||||
profile-paths = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
description = ''
|
||||
Paths to the Nix profile.
|
||||
|
||||
When angrr runs in owned-only mode, and the option begins with `~`,
|
||||
it will be expanded to the home directory of the current user.
|
||||
|
||||
When angrr does not run in owned-only mode, and the option begins with `~`,
|
||||
it will be expanded to the home of all users discovered respectively.
|
||||
'';
|
||||
};
|
||||
keep-since = lib.mkOption {
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
Retention period for the GC roots in this profile.
|
||||
'';
|
||||
};
|
||||
keep-latest-n = lib.mkOption {
|
||||
type = with lib.types; nullOr int;
|
||||
default = null;
|
||||
description = ''
|
||||
Keep the latest N GC roots in this profile.
|
||||
'';
|
||||
};
|
||||
keep-current-system = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to keep the current system generation. Only useful for system profiles.
|
||||
'';
|
||||
};
|
||||
keep-booted-system = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to keep the last booted system generation. Only useful for system profiles.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
filterOptions = {
|
||||
freeformType = toml.type;
|
||||
options = {
|
||||
program = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = ''
|
||||
Path to the external filter program.
|
||||
'';
|
||||
};
|
||||
arguments = lib.mkOption {
|
||||
type = with lib.types; listOf str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra command-line arguments pass to the external filter program.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# toml.generate does not support null values, we need to filter them out first
|
||||
filteredSettings = lib.filterAttrsRecursive (name: value: value != null) cfg.settings;
|
||||
originalConfigFile = toml.generate "angrr.toml" filteredSettings;
|
||||
validatedConfigFile = pkgs.runCommand "angrr-config.toml" { } ''
|
||||
${lib.getExe cfg.package} validate --config "${originalConfigFile}" > $out
|
||||
'';
|
||||
|
||||
configFileMigrationMsg = ''
|
||||
This option has been removed since angrr 0.2.0.
|
||||
Please use `services.angrr.settings` to configure retention policies through configuration file.
|
||||
|
||||
See <https://github.com/linyinfeng/angrr/tree/main?tab=readme-ov-file#nixos-module-usage> for a configuration example.
|
||||
'';
|
||||
in
|
||||
{
|
||||
meta.maintainers = pkgs.angrr.meta.maintainers;
|
||||
imports = [
|
||||
(lib.mkRemovedOptionModule [ "services" "angrr" "period" ] configFileMigrationMsg)
|
||||
(lib.mkRemovedOptionModule [ "services" "angrr" "removeRoot" ] configFileMigrationMsg)
|
||||
(lib.mkRemovedOptionModule [ "services" "angrr" "ownedOnly" ] configFileMigrationMsg)
|
||||
];
|
||||
options = {
|
||||
services.angrr = {
|
||||
enable = lib.mkEnableOption "angrr";
|
||||
package = lib.mkPackageOption pkgs "angrr" { };
|
||||
period = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "7d";
|
||||
example = "2weeks";
|
||||
description = ''
|
||||
The retention period of auto GC roots.
|
||||
'';
|
||||
};
|
||||
removeRoot = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to pass the `--remove-root` option to angrr.
|
||||
'';
|
||||
};
|
||||
ownedOnly = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Control the `--remove-root=<true|false>` option of angrr.
|
||||
'';
|
||||
apply = b: if b then "true" else "false";
|
||||
};
|
||||
logLevel = lib.mkOption {
|
||||
type =
|
||||
with lib.types;
|
||||
@@ -61,10 +267,28 @@ in
|
||||
Extra command-line arguments pass to angrr.
|
||||
'';
|
||||
};
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule settingsOptions;
|
||||
example = exampleSettings;
|
||||
description = ''
|
||||
Global configuration for angrr in TOML format.
|
||||
'';
|
||||
};
|
||||
configFile = lib.mkOption {
|
||||
type = with lib.types; nullOr path;
|
||||
default = validatedConfigFile;
|
||||
defaultText = "TOML file generated from {option}`services.angrr.settings`";
|
||||
description = ''
|
||||
Path to the angrr configuration file in TOML format.
|
||||
|
||||
If not set, the configuration generated from {option}`services.angrr.settings` will be used.
|
||||
If specified, {option}`services.angrr.settings` will be ignored.
|
||||
'';
|
||||
};
|
||||
enableNixGcIntegration = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
description = ''
|
||||
Whether to enable nix-gc.service integration
|
||||
Whether to enable nix-gc.service integration.
|
||||
'';
|
||||
};
|
||||
timer = {
|
||||
@@ -107,16 +331,17 @@ in
|
||||
}
|
||||
|
||||
{
|
||||
environment.etc."angrr/config.toml".source = cfg.configFile;
|
||||
|
||||
systemd.services.angrr = {
|
||||
description = "Auto Nix GC Roots Retention";
|
||||
script = ''
|
||||
${lib.getExe cfg.package} run \
|
||||
--log-level "${cfg.logLevel}" \
|
||||
--period "${cfg.period}" \
|
||||
${lib.optionalString cfg.removeRoot "--remove-root"} \
|
||||
--owned-only="${cfg.ownedOnly}" \
|
||||
--no-prompt ${lib.escapeShellArgs cfg.extraArgs}
|
||||
--no-prompt \
|
||||
${lib.escapeShellArgs cfg.extraArgs}
|
||||
'';
|
||||
environment.ANGRR_LOG_STYLE = "systemd";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
};
|
||||
@@ -144,7 +369,7 @@ in
|
||||
(lib.mkIf (config.programs.direnv.enable && direnvCfg.enable) {
|
||||
environment.etc."direnv/lib/angrr.sh".source = "${cfg.package}/share/direnv/lib/angrr.sh";
|
||||
programs.direnv.direnvrcExtra = lib.mkIf direnvCfg.autoUse ''
|
||||
use angrr
|
||||
_angrr_auto_use "$@"
|
||||
'';
|
||||
})
|
||||
]
|
||||
|
||||
@@ -44,7 +44,7 @@ let
|
||||
external_port = 3000;
|
||||
internal_port = 3001;
|
||||
next_port = 3002;
|
||||
integration_port = 3004;
|
||||
integration_port = 3003;
|
||||
# needs to be set, otherwise this fails silently
|
||||
# see https://github.com/fosrl/newt/issues/37
|
||||
internal_hostname = "localhost";
|
||||
@@ -143,7 +143,7 @@ in
|
||||
gerbil = {
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
default = 3003;
|
||||
default = 3004;
|
||||
description = ''
|
||||
Specifies the port to listen on for Gerbil.
|
||||
'';
|
||||
|
||||
@@ -34,6 +34,8 @@ in
|
||||
This file must be readable both by nginx and by the onlyoffice
|
||||
documentserver. Since nginx is added to the onlyoffice group,
|
||||
you may want to make the file readable to the onlyoffice group.
|
||||
|
||||
NOTE: The file must be a valid nginx configuration file. The secret must not contain `$` characters, as they will be interpreted as variables by nginx.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# This module allows the test driver to connect to the virtual machine
|
||||
# via a root shell attached to port 514.
|
||||
# via a root shell attached to a virtio console.
|
||||
|
||||
{
|
||||
options,
|
||||
|
||||
+162
-10
@@ -1,11 +1,52 @@
|
||||
{ ... }:
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
drvForTest =
|
||||
name:
|
||||
pkgs.runCommand "angrr-test-${name}" { } ''
|
||||
mkdir --parents "$out"
|
||||
echo "${name}" >"$out/${name}"
|
||||
'';
|
||||
in
|
||||
{
|
||||
name = "angrr";
|
||||
nodes = {
|
||||
machine = {
|
||||
services.angrr = {
|
||||
enable = true;
|
||||
period = "7d";
|
||||
settings = {
|
||||
temporary-root-policies = {
|
||||
result = {
|
||||
path-regex = "/result[^/]*$";
|
||||
period = "7d";
|
||||
};
|
||||
direnv = {
|
||||
path-regex = "/\\.direnv/";
|
||||
period = "14d";
|
||||
};
|
||||
};
|
||||
profile-policies = {
|
||||
system = {
|
||||
profile-paths = [ "/nix/var/nix/profiles/system" ];
|
||||
keep-since = "7d"; # do not keep based on time
|
||||
keep-latest-n = 2; # keep latest
|
||||
keep-current-system = true;
|
||||
keep-booted-system = true;
|
||||
};
|
||||
user = {
|
||||
profile-paths = [
|
||||
"~/.local/state/nix/profiles/profile"
|
||||
"/nix/var/nix/profiles/per-user/root/profile"
|
||||
];
|
||||
# keep-since = "0d"; # do not keep based on time
|
||||
keep-latest-n = 2;
|
||||
};
|
||||
};
|
||||
touch = {
|
||||
project-globs = [
|
||||
"!result-glob-ignored"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
# `angrr.service` integrates to `nix-gc.service` by default
|
||||
nix.gc.automatic = true;
|
||||
@@ -19,7 +60,23 @@
|
||||
# Test direnv integration
|
||||
programs.direnv.enable = true;
|
||||
# Verbose logging for angrr in direnv
|
||||
environment.variables.ANGRR_DIRENV_LOG = "angrr=debug";
|
||||
environment.variables.ANGRR_DIRENV_LOG = "debug";
|
||||
|
||||
# Add some store paths to machine for test
|
||||
environment.etc."drvs-for-test".text = ''
|
||||
${drvForTest "drv1"}
|
||||
${drvForTest "drv2"}
|
||||
${drvForTest "drv3"}
|
||||
${drvForTest "drv4"}
|
||||
${drvForTest "drv5"}
|
||||
${drvForTest "drv6"}
|
||||
${drvForTest "drv7"}
|
||||
${drvForTest "drv8"}
|
||||
${drvForTest "fake-booted-system"}
|
||||
'';
|
||||
|
||||
# Unit start limit workaround
|
||||
systemd.services.angrr.unitConfig.StartLimitBurst = 10;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -51,7 +108,7 @@
|
||||
machine.succeed("touch /tmp/result-root-auto-gc-root-2 --no-dereference")
|
||||
machine.succeed("touch /tmp/result-user-auto-gc-root-2 --no-dereference")
|
||||
|
||||
machine.systemctl("start nix-gc.service")
|
||||
machine.systemctl("start angrr.service")
|
||||
# Only GC roots `-1` are removed
|
||||
machine.succeed("test ! -e /tmp/result-root-auto-gc-root-1")
|
||||
machine.succeed("readlink /tmp/result-root-auto-gc-root-2")
|
||||
@@ -60,7 +117,7 @@
|
||||
|
||||
# Change time again
|
||||
machine.succeed("date -s '8 days'")
|
||||
machine.systemctl("start nix-gc.service")
|
||||
machine.systemctl("start angrr.service")
|
||||
# All auto GC roots are removed
|
||||
machine.succeed("test ! -e /tmp/result-root-auto-gc-root-2")
|
||||
machine.succeed("test ! -e /tmp/result-user-auto-gc-root-2")
|
||||
@@ -69,20 +126,115 @@
|
||||
machine.succeed("mkdir /tmp/test-direnv")
|
||||
machine.succeed("echo >/tmp/test-direnv/.envrc") # Simply create an empty .envrc
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root")
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/result")
|
||||
machine.succeed("cd /tmp/test-direnv; direnv allow; direnv exec . true")
|
||||
|
||||
# The root will be removed if we does not use the direnv recently
|
||||
machine.succeed("date -s '8 days'")
|
||||
machine.systemctl("start nix-gc.service")
|
||||
machine.succeed("date -s '15 days'")
|
||||
machine.systemctl("start angrr.service")
|
||||
machine.succeed("test ! -e /tmp/test-direnv/.direnv/gc-root")
|
||||
machine.succeed("test ! -e /tmp/test-direnv/result")
|
||||
|
||||
# Recreate the root
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/.direnv/gc-root")
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/result")
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-direnv/result-glob-ignored")
|
||||
machine.succeed("nix build /run/current-system --out-link /tmp/test-outside-direnv/result")
|
||||
|
||||
# The root will not be remove if we use the direnv recently
|
||||
machine.succeed("date -s '15 days'")
|
||||
# test the case that $PWD is different from project root
|
||||
machine.succeed("cd /tmp; direnv exec /tmp/test-direnv true")
|
||||
machine.systemctl("start angrr.service")
|
||||
machine.succeed("readlink /tmp/test-direnv/.direnv/gc-root")
|
||||
machine.succeed("readlink /tmp/test-direnv/result")
|
||||
machine.succeed("test ! -e /tmp/test-direnv/result-glob-ignored")
|
||||
machine.succeed("test ! -e /tmp/test-outside-direnv/result")
|
||||
|
||||
# System profile policy test
|
||||
# Create a profile for test
|
||||
machine.succeed("mkdir /tmp/profile-test")
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv1"}") # generation 1
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv2"}") # generation 2
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv3"}") # generation 3
|
||||
machine.succeed("ln --symbolic --force --no-dereference ${drvForTest "fake-booted-system"} /run/booted-system")
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set /run/booted-system") # generation 4
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set /run/current-system") # generation 5
|
||||
machine.succeed("date -s '8 days'")
|
||||
machine.succeed("cd /tmp/test-direnv; direnv exec . true")
|
||||
machine.systemctl("start nix-gc.service")
|
||||
machine.succeed("readlink /tmp/test-direnv/.direnv/gc-root")
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv4"}") # generation 6
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv5"}") # generation 7
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv6"}") # generation 8
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv7"}") # generation 9
|
||||
machine.succeed("nix-env --profile /nix/var/nix/profiles/system --set ${drvForTest "drv8"}") # generation 10
|
||||
# Rollback to generation 2 to simulate current system
|
||||
for _ in range(0, 10 - 2):
|
||||
machine.succeed("nix-env --rollback --profile /nix/var/nix/profiles/system")
|
||||
|
||||
# Run policy
|
||||
machine.systemctl("start angrr.service")
|
||||
|
||||
# Test
|
||||
machine.succeed("sh -c 'test $(readlink /nix/var/nix/profiles/system) = system-2-link'")
|
||||
machine.succeed("test ! -e /nix/var/nix/profiles/system-1-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-2-link") # Keep since it is current generation
|
||||
machine.succeed("test ! -e /nix/var/nix/profiles/system-3-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-4-link") # Keep by keep-booted-system
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-5-link") # Keep by keep-current-system
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-6-link") # Keep by keep-since
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-7-link") # Keep by keep-since
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-8-link") # Keep by keep-since
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-9-link") # Keep by keep-latest-n
|
||||
machine.succeed("readlink /nix/var/nix/profiles/system-10-link") # Keep by keep-latest-n
|
||||
|
||||
# User profile policy test 1
|
||||
# Normal user
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv1"}'")
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv2"}'")
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv3"}'")
|
||||
# Root user
|
||||
machine.succeed("nix profile add ${drvForTest "drv1"}")
|
||||
machine.succeed("nix profile add ${drvForTest "drv2"}")
|
||||
machine.succeed("nix profile add ${drvForTest "drv3"}")
|
||||
|
||||
# Run policy
|
||||
machine.systemctl("start angrr.service")
|
||||
|
||||
# Test
|
||||
machine.succeed("sh -c 'test $(readlink ~normal/.local/state/nix/profiles/profile) = profile-3-link'")
|
||||
machine.succeed("test ! -e ~normal/.local/state/nix/profiles/profile-1-link")
|
||||
machine.succeed("readlink ~normal/.local/state/nix/profiles/profile-2-link") # Keep by keep-latest-n
|
||||
machine.succeed("readlink ~normal/.local/state/nix/profiles/profile-3-link") # Keep since it is current generation
|
||||
machine.succeed("sh -c 'test $(readlink /nix/var/nix/profiles/per-user/root/profile) = profile-3-link'")
|
||||
machine.succeed("test ! -e /nix/var/nix/profiles/per-user/root/profile-1-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-2-link") # Keep by keep-latest-n
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-3-link") # Keep since it is current generation
|
||||
|
||||
# User profile policy test 2
|
||||
# Create GC roots again
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv1"}'")
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv2"}'")
|
||||
machine.succeed("su normal --command 'nix profile add ${drvForTest "drv3"}'")
|
||||
machine.succeed("nix profile add ${drvForTest "drv1"}")
|
||||
machine.succeed("nix profile add ${drvForTest "drv2"}")
|
||||
machine.succeed("nix profile add ${drvForTest "drv3"}")
|
||||
|
||||
# Run policy in owned-only mode as normal user
|
||||
machine.succeed("su normal --command 'angrr run --no-prompt'")
|
||||
|
||||
# Test
|
||||
machine.succeed("sh -c 'test $(readlink ~normal/.local/state/nix/profiles/profile) = profile-6-link'")
|
||||
machine.succeed("test ! -e ~normal/.local/state/nix/profiles/profile-1-link")
|
||||
machine.succeed("test ! -e ~normal/.local/state/nix/profiles/profile-2-link")
|
||||
machine.succeed("test ! -e ~normal/.local/state/nix/profiles/profile-3-link")
|
||||
machine.succeed("test ! -e ~normal/.local/state/nix/profiles/profile-4-link")
|
||||
machine.succeed("readlink ~normal/.local/state/nix/profiles/profile-5-link") # Keep by keep-latest-n
|
||||
machine.succeed("readlink ~normal/.local/state/nix/profiles/profile-6-link") # Keep since it is current generation
|
||||
machine.succeed("sh -c 'test $(readlink /nix/var/nix/profiles/per-user/root/profile) = profile-6-link'")
|
||||
machine.succeed("test ! -e /nix/var/nix/profiles/per-user/root/profile-1-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-2-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-3-link")
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-4-link") # Not monitored
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-5-link") # Not monitored
|
||||
machine.succeed("readlink /nix/var/nix/profiles/per-user/root/profile-6-link") # Not monitored
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "timeshift";
|
||||
version = "25.12.0";
|
||||
version = "25.12.1";
|
||||
outputs = [
|
||||
"out"
|
||||
"man"
|
||||
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
owner = "linuxmint";
|
||||
repo = "timeshift";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-JAp1kZ8DBjhB6Xk4ZeL2ozJoTPPcu5gn7Fh+vbm+Zjg=";
|
||||
hash = "sha256-m+eSF+cALWSaNt/0V0XTrDZiocddsLqK1YDU7yBdXjw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.0.65";
|
||||
hash = "sha256-iudhgG4odEWW5mITOGC1dyHESyrncLXWMYCGZI77sh8=";
|
||||
version = "2.0.70";
|
||||
hash = "sha256-ed2oYB6G9EuSRqgt18W69JS73+uf6vqXtwQ1ZY+eWy8=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.fossil-scm.org/home/tarball/version-${finalAttrs.version}/fossil-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-1YVOgyNBDy/CeuVfrhE/D4LfQwv5uFfykoYwiZ3eFFY=";
|
||||
hash = "sha256-XzP5IKhlYi+ZBpWrKO7xc2Nb4i0ylYctd2aUG8S31DQ=";
|
||||
};
|
||||
|
||||
# required for build time tool `./tools/translate.c`
|
||||
|
||||
@@ -1,30 +1,33 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
nixosTests,
|
||||
testers,
|
||||
nix-update-script,
|
||||
go-md2man,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "angrr";
|
||||
version = "0.1.5";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linyinfeng";
|
||||
repo = "angrr";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-PT3oCNPRvEroyVNiICeO0hSHDzKUC6KcP9HnIw1kMQE=";
|
||||
hash = "sha256-Z+B0MO5ZoPJveO571mlzNVedBEac7P4RE7Cq8e/9bJk=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-lDOH4Ceap69fX6VWbgQoQfmYWZI+jPE0LJiXmqrTRn8=";
|
||||
cargoHash = "sha256-j36vyfIP63Qmd55vaVb9buqrCItXwFalelzU8BlKm9s=";
|
||||
|
||||
buildAndTestSubdir = "angrr";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
nativeBuildInputs = [
|
||||
go-md2man
|
||||
installShellFiles
|
||||
];
|
||||
postBuild = ''
|
||||
mkdir --parents build/{man-pages,shell-completions}
|
||||
cargo xtask man-pages --out build/man-pages
|
||||
@@ -50,7 +53,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Temporary GC Roots Cleaner";
|
||||
description = "Auto Nix GC Root Retention";
|
||||
homepage = "https://github.com/linyinfeng/angrr";
|
||||
license = [ lib.licenses.mit ];
|
||||
maintainers = with lib.maintainers; [ yinfeng ];
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "asleap";
|
||||
version = "0-unstable-2021-06-20";
|
||||
version = "0-unstable-2021-06-21";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zackw";
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cargo-shear";
|
||||
version = "1.7.2";
|
||||
version = "1.9.1";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "cargo-shear";
|
||||
version = finalAttrs.version;
|
||||
hash = "sha256-hZrqEbBcSSmvMRBn1V1L5Ow/drN1lAO5owu2reXrruA=";
|
||||
hash = "sha256-QRWYVmFCxntEFzC9iqEoZQ5sG57P2gpBUFu8A8aI+7g=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-UD0J6fofx24gqHVF/1X3RDChOSGpqfQ+37KZprZ8cIM=";
|
||||
cargoHash = "sha256-yMUdZCIJTWCvi+07a1Erj6SD7i34opnvZ2CZ027PWzU=";
|
||||
|
||||
env = {
|
||||
# https://github.com/Boshen/cargo-shear/blob/v1.6.2/src/lib.rs#L51-L54
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon-translations";
|
||||
version = "6.6.0";
|
||||
version = "6.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "cinnamon-translations";
|
||||
tag = version;
|
||||
hash = "sha256-+aqMXice5INNkqLmPc4hawlrc2jRnsGimDPZf28dUSE=";
|
||||
hash = "sha256-6y1zHKO/qpkAL5fs6QUjNJki16X+bxW/175Sz1PUPQw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
+2
-2
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "@anthropic-ai/claude-code",
|
||||
"version": "2.0.69",
|
||||
"version": "2.0.70",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@anthropic-ai/claude-code",
|
||||
"version": "2.0.69",
|
||||
"version": "2.0.70",
|
||||
"license": "SEE LICENSE IN README.md",
|
||||
"bin": {
|
||||
"claude": "cli.js"
|
||||
|
||||
@@ -11,14 +11,14 @@
|
||||
}:
|
||||
buildNpmPackage (finalAttrs: {
|
||||
pname = "claude-code";
|
||||
version = "2.0.69";
|
||||
version = "2.0.70";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz";
|
||||
hash = "sha256-iQ+iVv3sY0oxGCZuuatcl2LSWvBfqSA+/RmeFgiMDDY=";
|
||||
hash = "sha256-RTMhrFhbamO8Ow5iKd3IiLoKoLF5cz279ArjPZymE9o=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-jb6AWGbnW5n9P9V8crR25ql0gFsAFY0z0EBnWJodnd4=";
|
||||
npmDepsHash = "sha256-coTUQVOOT/jonVtnmY/zenv1PI93JFlpFEqlUlhssJM=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage {
|
||||
pname = "coc-rust-analyzer";
|
||||
version = "0-unstable-2025-12-02";
|
||||
version = "0-unstable-2025-12-15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fannheyward";
|
||||
repo = "coc-rust-analyzer";
|
||||
rev = "8f9ac44c8154b26f993e0e0ad4c5c55918f3661e";
|
||||
hash = "sha256-pmvgF5mHh8djzKFLlcRVOZjZ5e5kN1ymqthYuPPYgmA=";
|
||||
rev = "493f10d0537e82d49eb13aba5f9bc4973f92ed2c";
|
||||
hash = "sha256-MmoI4Bu883PNi6t6MBmMbEd+OTcN/dfOfsbJi2EsnzM=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-WOwCgsynYeINS39Lhahd++1qJwcFRUv0kENRO13mKio=";
|
||||
npmDepsHash = "sha256-Qksi1G4YeFU94mIccyMpphER9d/UiCOriqbe0w7LA6c=";
|
||||
|
||||
passthru.updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
|
||||
|
||||
|
||||
@@ -14,18 +14,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codex";
|
||||
version = "0.72.0";
|
||||
version = "0.73.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openai";
|
||||
repo = "codex";
|
||||
tag = "rust-v${finalAttrs.version}";
|
||||
hash = "sha256-rNol7k/CcAKJXZYsbORRqD+uJfN6TPfcEbkUXezpFkY=";
|
||||
hash = "sha256-6oVSscGpMcJGOJ90JuwmYe6HbFteoTdTPr2AGU84JzQ=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/codex-rs";
|
||||
|
||||
cargoHash = "sha256-ZTrG3m6fEwn5ifNFi1A57/sdUfIaEUXMjmoQ86kAxGM=";
|
||||
cargoHash = "sha256-MN977yTfdESey0CK8vOXMKjY9HSXqRy1LgK7IYjNz1k=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
python3,
|
||||
testers,
|
||||
cringify,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cringify";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sansyrox";
|
||||
repo = "cringify";
|
||||
rev = "857c2620ac9f1f53139d3a599e55679a75e77053";
|
||||
hash = "sha256-U0tKYFRZToMALSeItn9yia7Dl7omETDTkuRlWJ8EZEo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-VUMVul3P2GRwihTilVpcEb+A5pJaHxlzkwa3uq+pHtY=";
|
||||
|
||||
postPatch = ''
|
||||
# Upstream doesn't set the version string itself
|
||||
substituteInPlace src/main.rs --replace '0.0.1' ${version}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
|
||||
# No tests are present in the repository
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests.version = testers.testVersion { package = cringify; };
|
||||
|
||||
meta = {
|
||||
description = "Annoy your friends with the cringified text";
|
||||
homepage = "https://github.com/sansyrox/cringify";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "cringify";
|
||||
maintainers = with lib.maintainers; [ tomasajt ];
|
||||
};
|
||||
}
|
||||
@@ -6,7 +6,7 @@ index c99912738ec2..adeda1fe964e 100755
|
||||
#set -x
|
||||
## DO NOT CHANGE THIS FILE
|
||||
|
||||
-INSTALLDIR="/opt/mdyalog/19.0/64/unicode"
|
||||
-INSTALLDIR="/opt/mdyalog/20.0/64/unicode"
|
||||
+INSTALLDIR="@installdir@"
|
||||
EXE="dyalog"
|
||||
|
||||
|
||||
@@ -49,18 +49,49 @@ let
|
||||
or you can set the following nixpkgs config option:
|
||||
`config.dyalog.acceptLicense = true;`
|
||||
'';
|
||||
|
||||
inherit (stdenv.hostPlatform) system isAarch;
|
||||
|
||||
htmlRendererNotOnAarch = ''
|
||||
The HTMLRenderer is not currently supported on ${system}.
|
||||
https://docs.dyalog.com/20.0/release-notes/announcements/#new-linux-platform
|
||||
'';
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "dyalog";
|
||||
version = "19.0.50027";
|
||||
version = "20.0.52753";
|
||||
shortVersion = lib.versions.majorMinor finalAttrs.version;
|
||||
|
||||
passthru.sources =
|
||||
let
|
||||
fetchArtifact =
|
||||
{
|
||||
prefix,
|
||||
suffix,
|
||||
hash,
|
||||
}:
|
||||
fetchurl {
|
||||
url = "https://download.dyalog.com/download.php?file=${finalAttrs.shortVersion}/${prefix}_${finalAttrs.version}_${suffix}";
|
||||
inherit hash;
|
||||
};
|
||||
in
|
||||
{
|
||||
"x86_64-linux" = fetchArtifact {
|
||||
prefix = "linux_64";
|
||||
suffix = "unicode.x86_64.deb";
|
||||
hash = "sha256-g5bilV2y7luWRZ1RPxe74F2mAKVHpKcytWWrX8dCuF8=";
|
||||
};
|
||||
"aarch64-linux" = fetchArtifact {
|
||||
prefix = "linux_64";
|
||||
suffix = "unicode.aarch64.deb";
|
||||
hash = "sha256-DR7Kjqdp5BKW3XKUNYIdaUiR4Wd+sWkiSLtT5Ni1E4E=";
|
||||
};
|
||||
};
|
||||
|
||||
src =
|
||||
assert !acceptLicense -> throw licenseDisclaimer;
|
||||
fetchurl {
|
||||
url = "https://download.dyalog.com/download.php?file=${finalAttrs.shortVersion}/linux_64_${finalAttrs.version}_unicode.x86_64.deb";
|
||||
hash = "sha256-3uB102Hr0dmqAZj2ezLhsAdBotY24PWJfE7g5wSmKMA=";
|
||||
};
|
||||
assert htmlRendererSupport && isAarch -> throw htmlRendererNotOnAarch;
|
||||
finalAttrs.passthru.sources.${system};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional enableDocs "doc";
|
||||
|
||||
@@ -99,7 +130,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
cp aplkeys.sh default.dse dyalog dyalogc dyalog.rt dyalog.dcfg.template dyalog.ver.dcfg.template languagebar.json mapl StartupSession.aplf ${dyalogHome}
|
||||
|
||||
mkdir ${dyalogHome}/lib
|
||||
cp lib/{conga35_64.so,dyalog64.so,libconga35ssl64.so} ${dyalogHome}/lib
|
||||
cp lib/{conga36_64.so,dyalog64.so,libconga36ssl64.so} ${dyalogHome}/lib
|
||||
|
||||
# Only keep the most useful workspaces
|
||||
mkdir ${dyalogHome}/ws
|
||||
@@ -111,11 +142,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
+ lib.optionalString htmlRendererSupport ''
|
||||
cp -r locales ${dyalogHome}
|
||||
cp libcef.so libEGL.so libGLESv2.so libvk_swiftshader.so libvulkan.so.1 ${dyalogHome}
|
||||
cp chrome-sandbox icudtl.dat snapshot_blob.bin v8_context_snapshot.bin vk_swiftshader_icd.json *.pak ${dyalogHome}
|
||||
cp chrome-sandbox icudtl.dat v8_context_snapshot.bin vk_swiftshader_icd.json *.pak ${dyalogHome}
|
||||
cp lib/htmlrenderer.so ${dyalogHome}/lib
|
||||
''
|
||||
+ lib.optionalString sqaplSupport ''
|
||||
cp lib/cxdya65u64u.so ${dyalogHome}/lib
|
||||
cp lib/cxdya66u64u.so ${dyalogHome}/lib
|
||||
cp ws/sqapl.dws ${dyalogHome}/ws
|
||||
cp odbc.ini.sample sqapl.err sqapl.ini ${dyalogHome}
|
||||
''
|
||||
@@ -170,7 +201,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
tomasajt
|
||||
markus1189
|
||||
];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
platforms = lib.attrNames finalAttrs.passthru.sources;
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -36,13 +36,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "exaile";
|
||||
version = "4.2.0";
|
||||
version = "4.2.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "exaile";
|
||||
repo = "exaile";
|
||||
rev = version;
|
||||
sha256 = "sha256-33lUlJ7H7lmty46GLzGkIUpgbWIv2EqEcPIzKt87dis=";
|
||||
sha256 = "sha256-eH7JhoGd5jiaye8ZLx836tgEXsRpEd3D3z6gvnVrbIs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "folder-color-switcher";
|
||||
version = "1.6.9";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "folder-color-switcher";
|
||||
# They don't really do tags, this is just a named commit.
|
||||
rev = "fefe156e336d2a0bbfe1ca61cf4e6873c74ae405";
|
||||
hash = "sha256-KL3ipzZiHEj+jwAmbIOCeSBOwm3bMpJf4PVhGS+Xx24=";
|
||||
rev = "c528788f05697d1e176df4f869d64bcebbab1528";
|
||||
hash = "sha256-RSIiNjoU2Qk+0ACirUeo+VSfpjQ8NNJqmKKASD7RZXs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "gitui";
|
||||
version = "0.27.0";
|
||||
version = "0.28.0";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
inherit pname version;
|
||||
@@ -22,10 +22,10 @@ rustPlatform.buildRustPackage {
|
||||
owner = "extrawurst";
|
||||
repo = "gitui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-jKJ1XnF6S7clyFGN2o3bHnYpC4ckl/lNXscmf6GRLbI=";
|
||||
hash = "sha256-B3Cdhhu8ECfpc57TKe6u08Q/Kl4JzUlzw4vtJJ1YAUQ=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-Le/dD8bTd5boz1IeEq4ItJZYC3MRW8uiT/3Zy1yv5L0=";
|
||||
cargoHash = "sha256-dq5F7NJ0XcJ9x6hVWOboQQn8Liw8n8vkFgQSmTYIkSw=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
@@ -40,16 +40,6 @@ rustPlatform.buildRustPackage {
|
||||
libiconv
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fixes the build for rust 1.89
|
||||
# Upstream PR: https://github.com/gitui-org/gitui/pull/2663
|
||||
# TOREMOVE for gitui > 0.27.0
|
||||
(fetchpatch {
|
||||
url = "https://github.com/gitui-org/gitui/commit/950e703cab1dd37e3d02e7316ec99cc0dc70513c.patch";
|
||||
sha256 = "sha256-KDgOPLKGuJaF0Nc6rw9FPFmcI07I8Gyp/KNX8x6+2xw=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# The cargo config overrides linkers for some targets, breaking the build
|
||||
# on e.g. `aarch64-linux`. These overrides are not required in the Nix
|
||||
|
||||
@@ -29,11 +29,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnome-network-displays";
|
||||
version = "0.97.0";
|
||||
version = "0.98.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-network-displays/${lib.versions.majorMinor finalAttrs.version}/gnome-network-displays-${finalAttrs.version}.tar.xz";
|
||||
sha256 = "sha256-zexoyPmzJrqu5UU3Sowrk8qRnkj0uKQkYcsOsjmNqyc=";
|
||||
sha256 = "sha256-3M42vuzgtTFFQJBswGn4KP5XtSWuv0LlhREFiHxiu2c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "gnome-online-accounts-gtk";
|
||||
version = "3.50.8";
|
||||
version = "3.50.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xapp-project";
|
||||
repo = "gnome-online-accounts-gtk";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-DcW88Zx8uoxOL+2mV7uBIsnmQEuy02tbAO1ljf0ZigQ=";
|
||||
hash = "sha256-X7/TfY4Amei/CYO+FaXoSb48Y3/mQwduw40rTl6pN50=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
}:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "handheld-daemon";
|
||||
version = "4.1.1";
|
||||
version = "4.1.5";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hhd-dev";
|
||||
repo = "hhd";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Lh9rilpdx+njikVDftFAeA5HWgWQwgfnzocT/nSO2NU=";
|
||||
hash = "sha256-hjqlaJ4mJ1s9ivN4vTzeOXK4GuBi8799DlSZimWaMFg=";
|
||||
};
|
||||
|
||||
# Handheld-daemon runs some selinux-related utils which are not in nixpkgs.
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "hypnotix";
|
||||
version = "5.4";
|
||||
version = "5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "hypnotix";
|
||||
tag = version;
|
||||
hash = "sha256-aLcuRg6I1PaHBKyHMEV+TYOM82wb1hPVzMuF0SZixs8=";
|
||||
hash = "sha256-/bFqPar/Ey48e+KG1EN0IuTF4HX+2jeMcFkqcEcOKMs=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchgit,
|
||||
fetchurl,
|
||||
fftw,
|
||||
gtk2,
|
||||
lv2,
|
||||
@@ -15,10 +15,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ir.lv2";
|
||||
version = "1.4.0";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.hq.sig7.se/ir.lv2.git";
|
||||
rev = "1d4a4f9b1aad6223d541ebb0c16d85d527478222";
|
||||
hash = "sha256-6/KpwM/aHMNvtpf3/BJQjGe1kRZx3NFmV8F6r/bPkII=";
|
||||
# https://github.com/NixOS/nixpkgs/issues/463147#issuecomment-3658352031
|
||||
src = fetchurl {
|
||||
url = "https://web.archive.org/web/20251216014553/https://git.hq.sig7.se/ir.lv2.git/snapshot/1d4a4f9b1aad6223d541ebb0c16d85d527478222.tar.gz";
|
||||
hash = "sha256-lTzj4tf7jNOKnvcZzEbzPqg4aPgXcbCVwIHoV+5G+hU=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -49,6 +49,5 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
license = lib.licenses.gpl2;
|
||||
maintainers = [ lib.maintainers.magnetophon ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "convert4chan";
|
||||
};
|
||||
})
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
gccStdenv,
|
||||
fetchFromGitHub,
|
||||
fetchurl,
|
||||
fetchpatch2,
|
||||
|
||||
fmt,
|
||||
nlohmann_json,
|
||||
@@ -52,6 +53,14 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256:1r33jj8yipxjgiarddcxr1yc5kmn98rwrjl9qxfx0fzn1bsg04q5";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch2 {
|
||||
name = "blob-tree-add-hash.patch";
|
||||
url = "https://github.com/just-buildsystem/justbuild/commit/c54a46de7df0c6b26b7d8f4a10d380103da634fb.patch?full_index=1";
|
||||
hash = "sha256-hAi4YJmNAwfSl2SWjVCWBhk7VbQeNN1JhmHS9dy2GdU=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
# Tools for the bootstrap process
|
||||
jq
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
desktop-file-utils,
|
||||
fetchFromGitHub,
|
||||
gettext,
|
||||
gtk4,
|
||||
lib,
|
||||
libadwaita,
|
||||
libportal-gtk4,
|
||||
meson,
|
||||
ninja,
|
||||
pkg-config,
|
||||
stdenv,
|
||||
wrapGAppsHook4,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kasasa";
|
||||
version = "1.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "KelvinNovais";
|
||||
repo = "Kasasa";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-y5Ml5kHKk5f1RcRKdvS/9JO0dIWpotU1qtjjmpDJ1f4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook4
|
||||
desktop-file-utils
|
||||
gettext
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
libportal-gtk4
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Snip and pin useful information to a small floating window";
|
||||
longDescription = ''
|
||||
Clip and pin what's important to a small floating window, so you don't
|
||||
have to switch between windows or workspaces repeatedly. The window can
|
||||
become miniaturized or have its opacity reduced, in order to not block
|
||||
what's behind it.
|
||||
'';
|
||||
homepage = "https://github.com/KelvinNovais/Kasasa";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
mainProgram = "kasasa";
|
||||
maintainers = with lib.maintainers; [ yajo ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -23,13 +23,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "lightdm-slick-greeter";
|
||||
version = "2.2.4";
|
||||
version = "2.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "slick-greeter";
|
||||
rev = version;
|
||||
hash = "sha256-Kq5FcippvMyxxA56uH41UdOCrP2wSuw0Tyv1OFxKD5Q=";
|
||||
hash = "sha256-soXhVpzO4bJfZ5EV6uEDJOhwV9HJDfxUIuHi9AxaE0A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
From 3795c48b607f4fe98062e5a4a19310899398be42 Mon Sep 17 00:00:00 2001
|
||||
From: Florian Stecker <oss@florianstecker.net>
|
||||
Date: Thu, 12 Jun 2025 23:47:31 -0400
|
||||
Subject: [PATCH] Compatibility with libmupdf 1.26
|
||||
|
||||
---
|
||||
link.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/link.c b/link.c
|
||||
index ff635b2..9134726 100644
|
||||
--- a/link.c
|
||||
+++ b/link.c
|
||||
@@ -2560,8 +2560,8 @@ ML (getfileannot (value ptr_v, value n_v))
|
||||
pdf_obj *fs = pdf_dict_get (state.ctx,
|
||||
pdf_annot_obj (state.ctx, slink->u.annot),
|
||||
PDF_NAME (FS));
|
||||
- pdf_embedded_file_params file_params;
|
||||
- pdf_get_embedded_file_params (state.ctx, fs, &file_params);
|
||||
- ret_v = caml_copy_string (file_params.filename);
|
||||
+ pdf_filespec_params params;
|
||||
+ pdf_get_filespec_params (state.ctx, fs, ¶ms);
|
||||
+ ret_v = caml_copy_string (params.filename);
|
||||
|
||||
unlock (__func__);
|
||||
@@ -35,6 +35,11 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-B/jKvBtBwMOErUVmGFGXXIT8FzMl1DFidfDCHIH41TU=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Compatibility with mupdf 1.26
|
||||
./mupdf-1.26.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i "2d;s/ver=.*/ver=${version}/" build.bash
|
||||
'';
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "luau-lsp";
|
||||
version = "1.57.1";
|
||||
version = "1.58.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JohnnyMorganz";
|
||||
repo = "luau-lsp";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-onL/Iqk6nZClEHqam7wOAb69lO7h92Ox5iCVeuFn/LE=";
|
||||
hash = "sha256-6+GVyUSDsv9INoivIsiO+eoBZvueLeDGA/9Lc2l7xRk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -138,13 +138,13 @@ in
|
||||
goBuild (finalAttrs: {
|
||||
pname = "ollama";
|
||||
# don't forget to invalidate all hashes each update
|
||||
version = "0.13.3";
|
||||
version = "0.13.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ollama";
|
||||
repo = "ollama";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-DsAgosnvkyGFPKSjjnE9dZ37CfqAIlvodpVjHLihX2A=";
|
||||
hash = "sha256-EljxxaD8TTs3JaZrgEnR5hCw7S7MVmVB3M4fI/yADeQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-NM0vtue0MFrAJCjmpYJ/rPEDWBxWCzBrWDb0MVOhY+Q=";
|
||||
|
||||
@@ -41,12 +41,6 @@ let
|
||||
# prevent scons from leaking in the default python version
|
||||
scons' = scons.override { inherit python3Packages; };
|
||||
|
||||
tbbbind_version = "2_5";
|
||||
tbbbind = fetchurl {
|
||||
url = "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/tbbbind_${tbbbind_version}_static_lin_v4.tgz";
|
||||
hash = "sha256-Tr8wJGUweV8Gb7lhbmcHxrF756ZdKdNRi1eKdp3VTuo=";
|
||||
};
|
||||
|
||||
python = python3Packages.python.withPackages (
|
||||
ps: with ps; [
|
||||
cython
|
||||
@@ -101,14 +95,6 @@ stdenv.mkDerivation rec {
|
||||
cudaPackages.cuda_nvcc
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p temp/tbbbind_${tbbbind_version}
|
||||
pushd temp/tbbbind_${tbbbind_version}
|
||||
bsdtar -xf ${tbbbind}
|
||||
echo "${tbbbind.url}" > ie_dependency.info
|
||||
popd
|
||||
'';
|
||||
|
||||
dontUseSconsCheck = true;
|
||||
dontUseSconsBuild = true;
|
||||
dontUseSconsInstall = true;
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pix";
|
||||
version = "3.4.8";
|
||||
version = "3.4.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "pix";
|
||||
rev = version;
|
||||
hash = "sha256-zK02qhTGuYgZWHkJ6c3EVinUcojNEWwecvPjblECLkw=";
|
||||
hash = "sha256-cuNggVsNNqACWttPy1Tt8MfPFQKiuYhaMnh8TTHCi74=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
copyDesktopItems,
|
||||
}:
|
||||
let
|
||||
version = "2.65.1";
|
||||
version = "2.65.2";
|
||||
in
|
||||
python3Packages.buildPythonApplication rec {
|
||||
inherit version;
|
||||
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
|
||||
owner = "pyfa-org";
|
||||
repo = "Pyfa";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-s53EkXPySdijmkb32VZs44Fuy+lckBu9RxMfPVe0mag=";
|
||||
hash = "sha256-W3HQ6x9WXYXCczVj+3MBhEnkoDgJUJ6oZal1N4iDjdg=";
|
||||
};
|
||||
|
||||
desktopItems = [
|
||||
|
||||
@@ -2,9 +2,17 @@
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
imagemagick,
|
||||
installShellFiles,
|
||||
nix-update-script,
|
||||
|
||||
imagemagick,
|
||||
colorz,
|
||||
|
||||
withColorthief ? false,
|
||||
withColorz ? false,
|
||||
withFastColorthief ? false,
|
||||
withHaishoku ? false,
|
||||
withModernColorthief ? false,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
@@ -23,11 +31,22 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
dependencies =
|
||||
lib.optionals withColorthief optional-dependencies.colorthief
|
||||
++ lib.optionals withColorz optional-dependencies.colorz
|
||||
++ lib.optionals withFastColorthief optional-dependencies.fast-colorthief
|
||||
++ lib.optionals withHaishoku optional-dependencies.haishoku
|
||||
++ lib.optionals withModernColorthief optional-dependencies.modern_colorthief;
|
||||
|
||||
nativeCheckInputs = [
|
||||
python3.pkgs.pytestCheckHook
|
||||
imagemagick
|
||||
];
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--prefix PATH : ${lib.makeBinPath ([ imagemagick ] ++ lib.optional withColorz colorz)}"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
installManPage data/man/man1/wal.1
|
||||
'';
|
||||
@@ -43,11 +62,13 @@ python3.pkgs.buildPythonApplication rec {
|
||||
colorz = [ colorz ];
|
||||
fast-colorthief = [ fast-colorthief ];
|
||||
haishoku = [ haishoku ];
|
||||
modern_colorthief = [ modern-colorthief ];
|
||||
all = [
|
||||
colorthief
|
||||
colorz
|
||||
ast-colorthief
|
||||
fast-colorthief
|
||||
haishoku
|
||||
modern-colorthief
|
||||
];
|
||||
};
|
||||
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "renovate";
|
||||
version = "42.24.0";
|
||||
version = "42.57.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "renovatebot";
|
||||
repo = "renovate";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-TGk8/qr213jEPpsJM091G7LvUc/UNKB9DnVg5j0C6uw=";
|
||||
hash = "sha256-IMUnOk4D0CDKgrkM9geyaj80Pir6pORlWUPW2UIoKOM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pnpmDeps = pnpm_10.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
fetcherVersion = 2;
|
||||
hash = "sha256-cUpMiCM6fv8n/tMQJ8UHNaP48MNdc7VD+Q+ka+CQ3EE=";
|
||||
hash = "sha256-WTShVxWhdAPbITBaSw6BrqSwSJ9pc2imB+ovjhTT6qY=";
|
||||
};
|
||||
|
||||
env.COREPACK_ENABLE_STRICT = 0;
|
||||
|
||||
@@ -51,7 +51,7 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
meta = {
|
||||
description = "Implementation of the Stateless OpenPGP Command Line Interface using Sequoia";
|
||||
homepage = "https://docs.sequoia-pgp.org/sqop/";
|
||||
homepage = "https://gitlab.com/sequoia-pgp/sequoia-sop";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ doronbehar ];
|
||||
mainProgram = "sqop";
|
||||
|
||||
@@ -65,13 +65,13 @@ in
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "servo";
|
||||
version = "0.0.2";
|
||||
version = "0.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "servo";
|
||||
repo = "servo";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-mhZaAyLznchFUd9f2HqD7th3RDO2inH6U3L5PcZLPFA=";
|
||||
hash = "sha256-XMDt3q3LgKtGCgwuf/+0ZF2EfkUENM+mp4icZAyqGiw=";
|
||||
# Breaks reproducibility depending on whether the picked commit
|
||||
# has other ref-names or not, which may change over time, i.e. with
|
||||
# "ref-names: HEAD -> main" as long this commit is the branch HEAD
|
||||
@@ -81,7 +81,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
'';
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jrspfHjJgNAzuCtFqOE7dwgMN02NwVkCOisYAOE8CrU=";
|
||||
cargoHash = "sha256-FR9/5aZ7e2ekYYCFQMr55JXuJScqjDKb4o+w6nNr4yo=";
|
||||
|
||||
# set `HOME` to a temp dir for write access
|
||||
# Fix invalid option errors during linking (https://github.com/mozilla/nixpkgs-mozilla/commit/c72ff151a3e25f14182569679ed4cd22ef352328)
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "simplotask";
|
||||
version = "1.19.1";
|
||||
version = "1.19.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "umputun";
|
||||
repo = "spot";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-Zu7GkvNVhf6TeZg2AVH8GTi5ORK5aUspSvB1ThOBwTo=";
|
||||
hash = "sha256-UFuHcva5+0KMaIas6N+Ny1Ego6ZI+J8gd+91EisRlXM=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "steam-devices-udev-rules";
|
||||
version = "1.0.0.61-unstable-2025-10-18";
|
||||
version = "1.0.0.61-unstable-2025-12-16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ValveSoftware";
|
||||
repo = "steam-devices";
|
||||
rev = "4d7e6c1d8c54ec10fdb29daca679307ac5194825";
|
||||
hash = "sha256-KzDzZ03g1xil4G6yw67KGEHnWIWg6VZIkMy8n/kSgMs=";
|
||||
rev = "daf01bc7e1e3d65987ab0f6e2c93707170a686b3";
|
||||
hash = "sha256-3eYZzn4b4RMCa6r1a1fFQohNNb4+5HfRtz8AaLDcoHs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -41,6 +41,9 @@ stdenvNoCC.mkDerivation {
|
||||
homepage = "https://github.com/ValveSoftware/steam-devices";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ azuwis ];
|
||||
maintainers = with lib.maintainers; [
|
||||
azuwis
|
||||
yuannan
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "teams-for-linux";
|
||||
version = "2.6.18";
|
||||
version = "2.6.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "IsmaelMartinez";
|
||||
repo = "teams-for-linux";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-hIFr+lJrM3FaCKQhUBzD8kzKaF1ZouCp+QLa558b35s=";
|
||||
hash = "sha256-LWoMMfvIZ0+t1kzhv9uOLj7kTTFp3gzHOT1j+wYN1mM=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-brru6gsHwu2wS1Qe2AjjMW9QOVYd2HBUzUvSl1EJ87M=";
|
||||
npmDepsHash = "sha256-Bc/l8cKxN/wc4SVDJw0E32W2pErBuHIOopYfqSaLuyo=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "tun2proxy";
|
||||
version = "0.7.17";
|
||||
version = "0.7.18";
|
||||
|
||||
src = fetchCrate {
|
||||
pname = "tun2proxy";
|
||||
inherit (finalAttrs) version;
|
||||
hash = "sha256-QcXFDR5JbjGX2KjGBD2Wd5eSFVTxfXUkSCWhV5QO+r4=";
|
||||
hash = "sha256-abgknJuP0p5QS2iTyix0Uq6xiQkeTGK+M/weIHoZNgI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jzUL342AOgaWnS1NBbI/WMXiGHht+eva3yGVlAQeJfo=";
|
||||
cargoHash = "sha256-8DGlQCXXrq5s0TkqpWhgb2Gw1ve8LCxT0KNzZLvd0zY=";
|
||||
|
||||
env.GIT_HASH = "000000000000000000000000000000000000000000000000000";
|
||||
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "ty";
|
||||
version = "0.0.1-alpha.34";
|
||||
version = "0.0.1-alpha.35";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "astral-sh";
|
||||
repo = "ty";
|
||||
tag = finalAttrs.version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-sRr11P9m/dTAlQ2+B5fY02B8nX7Vzk7gp1iqEh/fuMI=";
|
||||
hash = "sha256-dx6zZnThnkQHQbi5SXkKCnpkfw2kcrRDg0QEvb4WBqk=";
|
||||
};
|
||||
|
||||
# For Darwin platforms, remove the integration test for file notifications,
|
||||
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
cargoBuildFlags = [ "--package=ty" ];
|
||||
|
||||
cargoHash = "sha256-db45h6I5tCcPMbPGa/dV3eJ9CxCwnGShmHdg92AUhv0=";
|
||||
cargoHash = "sha256-nsrSAYRr80O0gNSzlV+IwD7tFbKogiimOfH3/O1Sqrk=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
||||
@@ -42,13 +42,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "warpinator";
|
||||
version = "2.0.1";
|
||||
version = "2.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "warpinator";
|
||||
rev = version;
|
||||
hash = "sha256-HfOxEVzMmZ7lqT6M3sT5FxynqKFQHHmzvHA4Wu4NPr8=";
|
||||
hash = "sha256-bVK60fSIWp02qrKCJ68awyPcZhMTW5bjRPI7YHmmScc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -57,11 +57,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "webex";
|
||||
version = "45.10.0.33234";
|
||||
version = "45.10.1.33646";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20251014140645/Webex_ubuntu.7z";
|
||||
sha256 = "126ac38dbf659d26c213a9ccd5930f6a88d1aa90fd9de90cba74b2f2bfbe7793";
|
||||
url = "https://binaries.webex.com/WebexDesktop-Ubuntu-Gold/20251205014600/Webex_ubuntu.7z";
|
||||
sha256 = "59894d56ed2d55df1ca908d8b6993c208d685f6e77b8c315e370471e616cfd8d";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xapp";
|
||||
version = "3.2.0";
|
||||
version = "3.2.1";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
||||
owner = "linuxmint";
|
||||
repo = "xapp";
|
||||
rev = version;
|
||||
hash = "sha256-jO1FyJfAg/kZExAS6gT0u15ans8cDsXfBE5V+w2fQXU=";
|
||||
hash = "sha256-Uc3vMcWVzT0N9FCDxxI2e4yk1fg6FJiC7XXpY80mV0c=";
|
||||
};
|
||||
|
||||
# Recommended by upstream, which enables the build of xapp-debug.
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xed-editor";
|
||||
version = "3.8.6";
|
||||
version = "3.8.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "xed";
|
||||
rev = version;
|
||||
hash = "sha256-CeKgJg9pyQdnpatdlgqviLnzNv9JCVDm+bFv56trrT8=";
|
||||
hash = "sha256-Vl2yf4PlREvyAY/lRP+nB47GEuuyYeLnBARKhDEfG4M=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -37,13 +37,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xreader";
|
||||
version = "4.6.0";
|
||||
version = "4.6.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "xreader";
|
||||
rev = version;
|
||||
hash = "sha256-cp/pZ42AS98AD78BVMeY3SHQHkYA2h4o0kddr/H+kUA=";
|
||||
hash = "sha256-+T89KxGTGycN1pnXBxJY15ViRvwJbM2adZVUTTSG3VQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xviewer";
|
||||
version = "3.4.14";
|
||||
version = "3.4.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "xviewer";
|
||||
rev = version;
|
||||
hash = "sha256-2UWe9c9JkNhJyukDp+NTG/bvbMuwSyLBkk2wWvPbxRk=";
|
||||
hash = "sha256-fAB7nbkGx6aNKwRA01013hAiGJ8pEovI0WClOqT0D10=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# Yepkit YKUSH3.
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f11b", MODE="0666"
|
||||
|
||||
# Yepkit YKUSH2.
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="efed", MODE="0666"
|
||||
|
||||
# Yepkit YKUSHXs
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f0cd", MODE="0666"
|
||||
|
||||
# Yepkit YKUSH(1).
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="f2f7", MODE="0666"
|
||||
|
||||
# Yepkit YKUSH-legacy.
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="0042", MODE="0666"
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
libusb1,
|
||||
runCommand,
|
||||
versionCheckHook,
|
||||
}:
|
||||
stdenv.mkDerivation (final: {
|
||||
pname = "ykushcmd";
|
||||
version = "1.2.5";
|
||||
|
||||
buildInputs = [ libusb1 ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yepkit";
|
||||
repo = "ykush";
|
||||
tag = "${final.version}";
|
||||
hash = "sha256-FbqlXh8A5hzpthBE3jZ1LLOMs4WcEGke3sOZi9vmZF8=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -D bin/ykushcmd $out/bin/ykushcmd
|
||||
install -Dm444 ${./99-ykush.rules} $out/lib/udev/rules.d/99_ykush.rules
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
passthru.tests = {
|
||||
# We can't run any actual tests without hardware, but we can at least check the binary.
|
||||
run-only = runCommand "${final.pname}-test" ''
|
||||
${final}/bin/ykushcmd -h | grep YKUSHCMD
|
||||
'';
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Control utility for YepKit USB hubs";
|
||||
longDescription = ''
|
||||
controls the features of YepKit USB hubs, allowing one to arbitrarily
|
||||
turn ports on and off and otherwise control the hub.
|
||||
'';
|
||||
homepage = "https://github.com/Yepkit/ykush";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
aiyion
|
||||
ktemkin
|
||||
];
|
||||
mainProgram = "ykushcmd";
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -5,16 +5,16 @@
|
||||
}:
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "zeno";
|
||||
version = "2.0.18";
|
||||
version = "2.0.19";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "internetarchive";
|
||||
repo = "Zeno";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-8SSQwJgKGMnGoorDunPmxQNxiBsE1b1R4OJAv85x3MM=";
|
||||
hash = "sha256-6Or+DREyqljXTUJn5+NrFH2YktOUafHMx5jAL02Tm+4=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-Zi7wmT72f8KJHkysGg8rWTUk8iMjlYDGeZUFvKmtQtk=";
|
||||
vendorHash = "sha256-J9ufthZuIULHXkgHj80fDa68fiFJkGSXkhyiPpDYPJU=";
|
||||
|
||||
env.CGO_ENABLED = true;
|
||||
ldFlags = [
|
||||
|
||||
@@ -6,24 +6,27 @@
|
||||
ninja,
|
||||
pkg-config,
|
||||
vala,
|
||||
wrapGAppsHook4,
|
||||
wrapGAppsHook3,
|
||||
gdk-pixbuf,
|
||||
glib,
|
||||
granite7,
|
||||
gtk4,
|
||||
libportal,
|
||||
granite,
|
||||
gtk3,
|
||||
libhandy,
|
||||
nix-update-script,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "elementary-screenshot";
|
||||
version = "8.0.3";
|
||||
# nixpkgs-update: no auto update
|
||||
# We disabled x-d-p-pantheon due to https://github.com/elementary/portals/issues/157
|
||||
# so hold back this before the issue is fixed since later versions enforce using portals.
|
||||
version = "8.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "elementary";
|
||||
repo = "screenshot";
|
||||
rev = version;
|
||||
hash = "sha256-nEJCyQs77zcUb9mc2dUBbZP3zWdPFHTOORROe3u6sSA=";
|
||||
hash = "sha256-z7FP+OZYF/9YLXYCQF/ElihKjKHVfeHc38RHdPb2aIE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -31,15 +34,15 @@ stdenv.mkDerivation rec {
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
wrapGAppsHook3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
glib
|
||||
granite7
|
||||
gtk4
|
||||
libportal
|
||||
granite
|
||||
gtk3
|
||||
libhandy
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -185,11 +185,12 @@ buildPythonPackage rec {
|
||||
disabledTests = [
|
||||
# timeout
|
||||
"test_build_error_logging"
|
||||
"test_performance_mifs_bus_params"
|
||||
"test_resistor"
|
||||
"test_reserved_attrs"
|
||||
"test_examples_build"
|
||||
"test_net_names_deterministic"
|
||||
"test_performance_mifs_bus_params"
|
||||
"test_regression_rp2040_usb_diffpair"
|
||||
"test_reserved_attrs"
|
||||
"test_resistor"
|
||||
# requires internet
|
||||
"test_simple_pick"
|
||||
"test_simple_negative_pick"
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "awkward-cpp";
|
||||
version = "50";
|
||||
version = "51";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "awkward_cpp";
|
||||
inherit version;
|
||||
hash = "sha256-JktvtOgqzBBXtbL/DTP6vDYQMlKOIzgVzSIkxtvJbY4=";
|
||||
hash = "sha256-jHTo+fslAXZtGw+fLrh3fjhEEdM1NKj6Zn1WWZIjoEs=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "awkward";
|
||||
version = "2.8.10";
|
||||
version = "2.8.11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scikit-hep";
|
||||
repo = "awkward";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-zECnqZapgvB9ngkoAwEDFMyebFbE0iJ7Yo/5iLcmRXs=";
|
||||
hash = "sha256-76DeL/KIna8Hd9eukCzuRXKO+awkbpc4trCeKTSfGmA=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "compit-inext-api";
|
||||
version = "0.3.1";
|
||||
version = "0.3.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Przemko92";
|
||||
repo = "compit-inext-api";
|
||||
tag = version;
|
||||
hash = "sha256-Wx3V0AdxNGLdCIl4G7FlfzeDSirRPnxgQ9Fbp5cRjFw=";
|
||||
hash = "sha256-J3V7ahETbCTJW/6jYvF9BbuIffVvbMH329nO1bmVKEw=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
@@ -2,33 +2,28 @@
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
buildPythonPackage,
|
||||
unittestCheckHook,
|
||||
mock,
|
||||
pytestCheckHook,
|
||||
setuptools,
|
||||
typing-extensions,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cron-descriptor";
|
||||
version = "1.4.5";
|
||||
version = "2.0.6";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Salamek";
|
||||
repo = "cron-descriptor";
|
||||
tag = version;
|
||||
hash = "sha256-ElYma6RH2u1faIgOvGpMQA26dSIibWcO4mWU6NAA5PQ=";
|
||||
hash = "sha256-f7TQ3wvcHrzefZowUvxl1T0LCGeCnvpPI/IZn4XcDa4=";
|
||||
};
|
||||
|
||||
# remove tests_require, as we don't do linting anyways
|
||||
postPatch = ''
|
||||
sed -i "/'pep8\|flake8\|pep8-naming',/d" setup.py
|
||||
'';
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
nativeCheckInputs = [
|
||||
mock
|
||||
unittestCheckHook
|
||||
pytestCheckHook
|
||||
typing-extensions
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "cron_descriptor" ];
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
cmake,
|
||||
nix-update-script,
|
||||
|
||||
numpy,
|
||||
pillow,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fast-colorthief";
|
||||
version = "0.0.5";
|
||||
pyproject = true;
|
||||
|
||||
# No tags on github
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-yUO1vnOt2NPyldPjFMn0jbhVX8zHcKsJ2IFVugYBZa4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 2.8.12)" \
|
||||
"cmake_minimum_required(VERSION 3.10)"
|
||||
substituteInPlace pybind11/CMakeLists.txt --replace-fail \
|
||||
"cmake_minimum_required(VERSION 3.4)" \
|
||||
"cmake_minimum_required(VERSION 3.10)"
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
cmake
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
pillow
|
||||
numpy
|
||||
];
|
||||
|
||||
# return to project root to locate pyproject.toml for build
|
||||
preBuild = "cd ..";
|
||||
|
||||
pythonImportsCheck = [ "fast_colorthief" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Selection of most dominant colors in image using Modified Median Cut Quantization";
|
||||
homepage = "https://github.com/bedapisl/fast-colorthief";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ moraxyc ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
nix-update-script,
|
||||
|
||||
pillow,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "haishoku";
|
||||
version = "1.1.8";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "LanceGin";
|
||||
repo = "haishoku";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-LSoZopCaM5vbknGS9gG13OZIgghgqJvPtktUkBCH04Q=";
|
||||
};
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [ pillow ];
|
||||
|
||||
# no test
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "haishoku" ];
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = {
|
||||
description = "Development tool for grabbing the dominant color or representative color palette from an image";
|
||||
homepage = "https://github.com/LanceGin/haishoku";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ moraxyc ];
|
||||
};
|
||||
}
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lance-namespace";
|
||||
version = "0.2.1";
|
||||
version = "0.3.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lancedb";
|
||||
repo = "lance-namespace";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-1SCsKjFd//1y28eR5MC2/M7cIMTRa083iDyuvWxLekw=";
|
||||
hash = "sha256-tBInz9BEl6u7E8cAmtlHBqIG65kifPR+iv5/jNV3204=";
|
||||
};
|
||||
|
||||
sourceRoot = "${src.name}/python/lance_namespace_urllib3_client";
|
||||
|
||||
+27
-2
@@ -201,7 +201,7 @@ class Repo:
|
||||
return f"""fetchgit {{
|
||||
url = "{self.uri}";
|
||||
rev = "{plugin.commit}";
|
||||
sha256 = "{plugin.sha256}";
|
||||
hash = "{plugin.to_sri_hash()}";
|
||||
}}"""
|
||||
|
||||
|
||||
@@ -288,6 +288,14 @@ class RepoGitHub(Repo):
|
||||
@retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
|
||||
def get_latest_tag(self) -> str | None:
|
||||
try:
|
||||
if not self.token or self.token == "":
|
||||
log.info(
|
||||
"No GitHub token available for %s/%s, using git ls-remote fallback",
|
||||
self.owner,
|
||||
self.repo,
|
||||
)
|
||||
return super().get_latest_tag()
|
||||
|
||||
# FIXME: This fetches all tags. We need to find a way to check if a tag exists in
|
||||
# an ancestor of the default branch.
|
||||
query = """
|
||||
@@ -428,7 +436,7 @@ class RepoGitHub(Repo):
|
||||
owner = "{self.owner}";
|
||||
repo = "{self.repo}";
|
||||
rev = "{plugin.commit}";
|
||||
sha256 = "{plugin.sha256}";{submodule_attr}
|
||||
hash = "{plugin.to_sri_hash()}";{submodule_attr}
|
||||
}}"""
|
||||
|
||||
|
||||
@@ -483,6 +491,23 @@ class Plugin:
|
||||
def normalized_name(self) -> str:
|
||||
return self.name.replace(".", "-")
|
||||
|
||||
def to_sri_hash(self) -> str:
|
||||
if self.sha256.startswith("sha256-"):
|
||||
return self.sha256
|
||||
|
||||
cmd = [
|
||||
"nix",
|
||||
"hash",
|
||||
"convert",
|
||||
"--hash-algo",
|
||||
"sha256",
|
||||
"--to",
|
||||
"sri",
|
||||
self.sha256,
|
||||
]
|
||||
result = subprocess.check_output(cmd, stderr=subprocess.DEVNULL)
|
||||
return result.decode("utf-8").strip()
|
||||
|
||||
@property
|
||||
def version(self) -> str:
|
||||
assert self.date is not None
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyicu";
|
||||
version = "2.15.2";
|
||||
version = "2.15.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitLab {
|
||||
@@ -20,7 +20,7 @@ buildPythonPackage rec {
|
||||
owner = "main";
|
||||
repo = "pyicu";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-Div3c4Lk9VTV1HrmvYKDn1a7moDNjG4OHA9Kv3+niKs=";
|
||||
hash = "sha256-vbrl6n7X85sQIdgj+Z0Xr6x/L8roK5Z/mNj53zyWQGs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -43,6 +43,7 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
pythonRelaxDeps = [
|
||||
"hidapi"
|
||||
"pyusb"
|
||||
];
|
||||
|
||||
|
||||
@@ -37,14 +37,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "textual";
|
||||
version = "6.9.0";
|
||||
version = "6.10.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Textualize";
|
||||
repo = "textual";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-ZuQFsxTYFjmPeSspjqElr+PNX77Gq5gC4dceKWIx0h0=";
|
||||
hash = "sha256-LtOlo3Pya+JCRxHJwo6NY8dcfhJP2O5MdD2DNEETvHE=";
|
||||
};
|
||||
|
||||
build-system = [ poetry-core ];
|
||||
|
||||
@@ -465,6 +465,7 @@ mapAliases {
|
||||
cpp-ipfs-api = throw "'cpp-ipfs-api' has been renamed to/replaced by 'cpp-ipfs-http-client'"; # Converted to throw 2025-10-27
|
||||
cpr = warnAlias "'cpr' has been renamed to/replaced by 'libcpr'" libcpr; # Added 2025-11-17
|
||||
create-cycle-app = throw "'create-cycle-app' has been removed because it is unmaintained and has issues installing with recent nodejs versions."; # Added 2025-11-01
|
||||
cringify = throw "'cringify' has been removed as it is unmaintained"; # Added 2025-12-16
|
||||
crispyDoom = throw "'crispyDoom' has been renamed to/replaced by 'crispy-doom'"; # Converted to throw 2025-10-27
|
||||
critcl = throw "'critcl' has been renamed to/replaced by 'tclPackages.critcl'"; # Converted to throw 2025-10-27
|
||||
cromite = throw "'cromite' has been removed from nixpkgs due to it not being maintained"; # Added 2025-06-12
|
||||
|
||||
@@ -13457,8 +13457,6 @@ with pkgs;
|
||||
cairo = cairo.override { x11Support = true; };
|
||||
};
|
||||
|
||||
# this is a wrapper for kicad.base and kicad.libraries
|
||||
kicad = callPackage ../applications/science/electronics/kicad { };
|
||||
# this is the same but without the (sizable) 3D models library
|
||||
kicad-small = kicad.override {
|
||||
pname = "kicad-small";
|
||||
@@ -13487,7 +13485,7 @@ with pkgs;
|
||||
with3d = false;
|
||||
};
|
||||
|
||||
kicadAddons = recurseIntoAttrs (callPackage ../applications/science/electronics/kicad/addons { });
|
||||
kicadAddons = recurseIntoAttrs (callPackage ../by-name/ki/kicad/addons/package.nix { });
|
||||
|
||||
librepcb = qt6Packages.callPackage ../applications/science/electronics/librepcb { };
|
||||
|
||||
|
||||
@@ -5208,6 +5208,8 @@ self: super: with self; {
|
||||
|
||||
fast-array-utils = callPackage ../development/python-modules/fast-array-utils { };
|
||||
|
||||
fast-colorthief = callPackage ../development/python-modules/fast-colorthief { };
|
||||
|
||||
fast-histogram = callPackage ../development/python-modules/fast-histogram { };
|
||||
|
||||
fast-query-parsers = callPackage ../development/python-modules/fast-query-parsers { };
|
||||
@@ -6676,6 +6678,8 @@ self: super: with self; {
|
||||
|
||||
hacking = callPackage ../development/python-modules/hacking { };
|
||||
|
||||
haishoku = callPackage ../development/python-modules/haishoku { };
|
||||
|
||||
hakuin = callPackage ../development/python-modules/hakuin { };
|
||||
|
||||
halide =
|
||||
|
||||
Reference in New Issue
Block a user