Merge staging-next into staging

This commit is contained in:
nixpkgs-ci[bot]
2026-05-26 18:49:26 +00:00
committed by GitHub
121 changed files with 2496 additions and 1461 deletions
+1 -1
View File
@@ -232,7 +232,7 @@ The following is an example:
vyp
lblasc
];
license.fullName = "MIT/X11";
license = lib.licenses.mit;
};
};
}
+6
View File
@@ -4282,6 +4282,12 @@
{ fingerprint = "D088 A5AF C45B 78D1 CD4F 457C 6957 B3B6 46F2 BB4E"; }
];
};
c6rg0 = {
email = "c6rg0@protonmail.com";
github = "c6rg0";
githubId = 64259221;
name = "c6rg0";
};
caarlos0 = {
name = "Carlos A Becker";
email = "carlos@becker.software";
+6 -5
View File
@@ -23,7 +23,7 @@ in
enable = lib.mkEnableOption "TUN mode of Throne";
setuid = lib.mkEnableOption ''
setting suid bit for throne-core to run as root, which is less
setting suid bit for ThroneCore to run as root, which is less
secure than default setcap method but closer to upstream assumptions.
Enable this if you find the default setcap method configured in
this module doesn't work for you
@@ -36,8 +36,8 @@ in
environment.systemPackages = [ cfg.package ];
security.wrappers.throne-core = lib.mkIf cfg.tunMode.enable {
source = "${cfg.package}/share/throne/Core";
security.wrappers."ThroneCore" = lib.mkIf cfg.tunMode.enable {
source = "${cfg.package}/share/throne/ThroneCore";
owner = "root";
group = "root";
setuid = lib.mkIf cfg.tunMode.setuid true;
@@ -49,7 +49,7 @@ in
# avoid resolvectl password prompt popping up three times
# https://github.com/SagerNet/sing-tun/blob/0686f8c4f210f4e7039c352d42d762252f9d9cf5/tun_linux.go#L1062
# We use a hack here to determine whether the requested process is throne-core
# We use a hack here to determine whether the requested process is ThroneCore
# Detect whether its capabilities contain at least `net_admin` and `net_raw`.
# This does not reduce security, as we can already bypass `resolved` with them.
# Alternatives to consider:
@@ -61,7 +61,7 @@ in
# change its own cmdline. `/proc/<pid>/exe` is reliable but kernel forbids
# checking that entry of process from different users, and polkit runs `spawn`
# as an unprivileged user.
# 3. Put throne-core into a systemd service, and let polkit check service name.
# 3. Put ThroneCore into a systemd service, and let polkit check service name.
# This is the most secure and convenient way but requires heavy modification
# to Throne source code. Would be good to let upstream support that eventually.
security.polkit.extraConfig =
@@ -69,6 +69,7 @@ in
''
polkit.addRule(function(action, subject) {
const allowedActionIds = [
"org.freedesktop.resolve1.revert",
"org.freedesktop.resolve1.set-domains",
"org.freedesktop.resolve1.set-default-route",
"org.freedesktop.resolve1.set-dns-servers"
+122 -144
View File
@@ -245,156 +245,134 @@ in
};
###### implementation
config = lib.mkMerge [
{
warnings = lib.optional (wrappers != { } && !config.security.enableWrappers) ''
security.enableWrappers is set to false, but the following wrappers are still enabled and will be silently ignored: ${lib.concatStringsSep ", " (lib.attrNames wrappers)}. This might prevent fundamental functionalities, like PAM authentication. To avoid this warning, either set security.enableWrappers = true, or explicitly disable each wrapper with `enable = false`.
'';
assertions = [
{
assertion =
!(
!config.security.enableWrappers && lib.any (u: u.isNormalUser) (lib.attrValues config.users.users)
);
message = ''
security.enableWrappers is disabled but normal users are defined
(${
lib.concatStringsSep ", " (
lib.mapAttrsToList (n: _: n) (lib.filterAttrs (_: u: u.isNormalUser) config.users.users)
)
}). Without SUID wrappers, users cannot login. Either enable wrappers or remove all normal user accounts.
'';
}
];
}
(lib.mkIf config.security.enableWrappers {
assertions = lib.mapAttrsToList (name: opts: {
assertion = opts.setuid || opts.setgid -> opts.capabilities == "";
message = ''
The security.wrappers.${name} wrapper is not valid:
setuid/setgid and capabilities are mutually exclusive.
'';
}) wrappers;
config = lib.mkIf config.security.enableWrappers {
security.wrappers =
let
mkSetuidRoot = source: {
setuid = true;
owner = "root";
group = "root";
inherit source;
};
in
{
# These are mount related wrappers that require the +s permission.
mount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/mount";
umount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/umount";
assertions = lib.mapAttrsToList (name: opts: {
assertion = opts.setuid || opts.setgid -> opts.capabilities == "";
message = ''
The security.wrappers.${name} wrapper is not valid:
setuid/setgid and capabilities are mutually exclusive.
'';
}) wrappers;
security.wrappers =
let
mkSetuidRoot = source: {
setuid = true;
owner = "root";
group = "root";
inherit source;
};
# Make sure our wrapperDir exports to the PATH env variable when
# initializing the shell
environment.extraInit = ''
# Wrappers override other bin directories.
export PATH="${wrapperDir}:$PATH"
'';
security.apparmor.includes = lib.mapAttrs' (
wrapName: wrap:
lib.nameValuePair "nixos/security.wrappers/${wrapName}" ''
include "${
pkgs.apparmorRulesFromClosure { name = "security.wrappers.${wrapName}"; } [
(securityWrapper wrap.source)
]
}"
mrpx ${wrap.source},
''
) wrappers;
systemd.mounts = [
{
where = parentWrapperDir;
what = "tmpfs";
type = "tmpfs";
options = lib.concatStringsSep "," [
"nodev"
"mode=755"
"size=${config.security.wrapperDirSize}"
];
}
];
systemd.services.suid-sgid-wrappers = {
description = "Create SUID/SGID Wrappers";
wantedBy = [ "sysinit.target" ];
before = [
"sysinit.target"
"shutdown.target"
];
conflicts = [ "shutdown.target" ];
after = [ "systemd-sysusers.service" ];
unitConfig.DefaultDependencies = false;
unitConfig.RequiresMountsFor = [
"/nix/store"
"/run/wrappers"
];
serviceConfig.RestrictSUIDSGID = false;
serviceConfig.Type = "oneshot";
script = ''
chmod 755 "${parentWrapperDir}"
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" mkWrappedPrograms}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
in
{
# These are mount related wrappers that require the +s permission.
mount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/mount";
umount = mkSetuidRoot "${lib.getBin pkgs.util-linux}/bin/umount";
};
###### wrappers consistency checks
system.checks = lib.singleton (
pkgs.runCommand "ensure-all-wrappers-paths-exist"
{
preferLocalBuild = true;
}
''
# make sure we produce output
mkdir -p $out
# Make sure our wrapperDir exports to the PATH env variable when
# initializing the shell
environment.extraInit = ''
# Wrappers override other bin directories.
export PATH="${wrapperDir}:$PATH"
'';
echo -n "Checking that Nix store paths of all wrapped programs exist... "
security.apparmor.includes = lib.mapAttrs' (
wrapName: wrap:
lib.nameValuePair "nixos/security.wrappers/${wrapName}" ''
include "${
pkgs.apparmorRulesFromClosure { name = "security.wrappers.${wrapName}"; } [
(securityWrapper wrap.source)
]
}"
mrpx ${wrap.source},
''
) wrappers;
declare -A wrappers
${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "wrappers['${n}']='${v.source}'") wrappers)}
systemd.mounts = [
{
where = parentWrapperDir;
what = "tmpfs";
type = "tmpfs";
options = lib.concatStringsSep "," [
"nodev"
"mode=755"
"size=${config.security.wrapperDirSize}"
];
}
];
for name in "''${!wrappers[@]}"; do
path="''${wrappers[$name]}"
if [[ "$path" =~ /nix/store ]] && [ ! -e "$path" ]; then
test -t 1 && echo -ne '\033[1;31m'
echo "FAIL"
echo "The path $path does not exist!"
echo 'Please, check the value of `security.wrappers."'$name'".source`.'
test -t 1 && echo -ne '\033[0m'
exit 1
fi
done
systemd.services.suid-sgid-wrappers = {
description = "Create SUID/SGID Wrappers";
wantedBy = [ "sysinit.target" ];
before = [
"sysinit.target"
"shutdown.target"
];
conflicts = [ "shutdown.target" ];
after = [ "systemd-sysusers.service" ];
unitConfig.DefaultDependencies = false;
unitConfig.RequiresMountsFor = [
"/nix/store"
"/run/wrappers"
];
serviceConfig.RestrictSUIDSGID = false;
serviceConfig.Type = "oneshot";
script = ''
chmod 755 "${parentWrapperDir}"
echo "OK"
''
);
})
];
# We want to place the tmpdirs for the wrappers to the parent dir.
wrapperDir=$(mktemp --directory --tmpdir="${parentWrapperDir}" wrappers.XXXXXXXXXX)
chmod a+rx "$wrapperDir"
${lib.concatStringsSep "\n" mkWrappedPrograms}
if [ -L ${wrapperDir} ]; then
# Atomically replace the symlink
# See https://axialcorps.com/2013/07/03/atomically-replacing-files-and-directories/
old=$(readlink -f ${wrapperDir})
if [ -e "${wrapperDir}-tmp" ]; then
rm --force --recursive "${wrapperDir}-tmp"
fi
ln --symbolic --force --no-dereference "$wrapperDir" "${wrapperDir}-tmp"
mv --no-target-directory "${wrapperDir}-tmp" "${wrapperDir}"
rm --force --recursive "$old"
else
# For initial setup
ln --symbolic "$wrapperDir" "${wrapperDir}"
fi
'';
};
###### wrappers consistency checks
system.checks = lib.singleton (
pkgs.runCommand "ensure-all-wrappers-paths-exist"
{
preferLocalBuild = true;
}
''
# make sure we produce output
mkdir -p $out
echo -n "Checking that Nix store paths of all wrapped programs exist... "
declare -A wrappers
${lib.concatStringsSep "\n" (lib.mapAttrsToList (n: v: "wrappers['${n}']='${v.source}'") wrappers)}
for name in "''${!wrappers[@]}"; do
path="''${wrappers[$name]}"
if [[ "$path" =~ /nix/store ]] && [ ! -e "$path" ]; then
test -t 1 && echo -ne '\033[1;31m'
echo "FAIL"
echo "The path $path does not exist!"
echo 'Please, check the value of `security.wrappers."'$name'".source`.'
test -t 1 && echo -ne '\033[0m'
exit 1
fi
done
echo "OK"
''
);
};
}
@@ -607,14 +607,16 @@ in
boot.isNspawnContainer = true;
networking.hostName = mkDefault name;
networking.useDHCP = false;
networking.interfaces = lib.mkIf config.privateNetwork {
eth0.ipv4.addresses = lib.optional (config.localAddress != null) (
ipv4FromString config.localAddress
);
eth0.ipv6.addresses = lib.optional (config.localAddress6 != null) (
lib.network.ipv6.fromString config.localAddress6
);
};
networking.interfaces = lib.mkIf config.privateNetwork (
lib.mkMerge [
(lib.mkIf (config.localAddress != null) {
eth0.ipv4.addresses = [ (ipv4FromString config.localAddress) ];
})
(lib.mkIf (config.localAddress6 != null) {
eth0.ipv6.addresses = [ (lib.network.ipv6.fromString config.localAddress6) ];
})
]
);
assertions = [
{
assertion =
@@ -38,12 +38,12 @@
stdenv.mkDerivation (finalAttrs: {
pname = if withGui then "bitcoin-knots" else "bitcoind-knots";
version = "29.3.knots20260210";
version = "29.3.knots20260508";
src = fetchurl {
url = "https://bitcoinknots.org/files/29.x/${finalAttrs.version}/bitcoin-${finalAttrs.version}.tar.gz";
# hash retrieved from signed SHA256SUMS
hash = "sha256-CO87KbC6W+eMGyBipuwIxHndNqH4PS4PqbKk7JRdToo=";
hash = "sha256-jjrr2sqzL29rZdkMmKGIlSVToSpXfgtY0TUlv9Wd1jA=";
};
nativeBuildInputs = [
@@ -88,18 +88,18 @@ stdenv.mkDerivation (finalAttrs: {
publicKeys = fetchFromGitHub {
owner = "bitcoinknots";
repo = "guix.sigs";
rev = "e34c3262de92940f4dc35e67abed84499c670af2";
sha256 = "sha256-Zrhe7xK/7YnIfyXlMd/jpO6Ab1dNVK0S1vwdhhH3Xuc=";
rev = "15113e2fe61b31354a6bcc3fddd17f759ce20c4a";
sha256 = "sha256-snbs2j88k9CBdv8+s3GaFoIXyJRVWlKoxiKA8R6ek9Y=";
};
checksums = fetchurl {
url = "https://bitcoinknots.org/files/${majorVersion}.x/${finalAttrs.version}/SHA256SUMS";
hash = "sha256-fLqGSe8/s4Ikd991rW/z8CH7UMMjvOjTHqRBwEgSD/w=";
hash = "sha256-vFfeObwXowk143DSv9WZ++u+KA0fuHexFU1NizrCiV4=";
};
signatures = fetchurl {
url = "https://bitcoinknots.org/files/${majorVersion}.x/${finalAttrs.version}/SHA256SUMS.asc";
hash = "sha256-Z6TTVKxr30OO37ve+4MrZHolo46prUVCB25kK1jLlGk=";
hash = "sha256-8pVhrITphjs7rnJZrmxAU92GVgkjVPlkA54ne9iwiIs=";
};
verifyBuilderKeys =
@@ -151,6 +151,7 @@ stdenv.mkDerivation (finalAttrs: {
# building with db48 (for legacy wallet support) is broken on Darwin
(lib.cmakeBool "WITH_BDB" (withWallet && !stdenv.hostPlatform.isDarwin))
(lib.cmakeBool "WITH_USDT" enableTracing)
(lib.cmakeFeature "RDTS_CONSENT" "RUNTIME_WARN")
]
++ lib.optionals (!finalAttrs.doCheck) [
(lib.cmakeBool "BUILD_TESTS" false)
@@ -1748,6 +1748,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
black-metal-theme-neovim = buildVimPlugin {
pname = "black-metal-theme-neovim";
version = "2.0";
src = fetchFromGitHub {
owner = "metalelf0";
repo = "black-metal-theme-neovim";
tag = "2.0";
hash = "sha256-z+qJfvCIV5WEAvKIkttDKpfBDt1xDBkTYLk2EoZbnj8=";
};
meta.homepage = "https://github.com/metalelf0/black-metal-theme-neovim/";
meta.license = getLicenseFromSpdxId "Apache-2.0";
meta.hydraPlatforms = [ ];
};
blame-nvim = buildVimPlugin {
pname = "blame.nvim";
version = "0-unstable-2026-02-12";
@@ -5880,6 +5894,20 @@ final: prev: {
meta.hydraPlatforms = [ ];
};
filemention-nvim = buildVimPlugin {
pname = "filemention.nvim";
version = "0-unstable-2026-05-21";
src = fetchFromGitHub {
owner = "not-manu";
repo = "filemention.nvim";
rev = "6085f2c226834081638e1e8af1ced32c78eaf8b3";
hash = "sha256-igcHSzEQPyek4wsNZg+iZluBSSrRIImUxl2+MGmiLKU=";
};
meta.homepage = "https://github.com/not-manu/filemention.nvim/";
meta.license = getLicenseFromSpdxId "MIT";
meta.hydraPlatforms = [ ];
};
fine-cmdline-nvim = buildVimPlugin {
pname = "fine-cmdline.nvim";
version = "0-unstable-2026-03-19";
File diff suppressed because it is too large Load Diff
@@ -123,6 +123,7 @@ https://github.com/sontungexpt/better-diagnostic-virtual-text/,,
https://github.com/max397574/better-escape.nvim/,,
https://github.com/LunarVim/bigfile.nvim/,,
https://github.com/openembedded/bitbake/,,
https://github.com/metalelf0/black-metal-theme-neovim/,,
https://github.com/FabijanZulj/blame.nvim/,,
https://github.com/z4p5a9/blamer.nvim/,,
https://github.com/joelazar/blink-calc/,,
@@ -418,6 +419,7 @@ https://github.com/micampe/fennel.vim/,,
https://github.com/wincent/ferret/,,
https://github.com/bogado/file-line/,,
https://github.com/lewis6991/fileline.nvim/,,
https://github.com/not-manu/filemention.nvim/,,
https://github.com/VonHeikemen/fine-cmdline.nvim/,,
https://github.com/glacambre/firenvim/,,
https://github.com/andviro/flake8-vim/,,
+3 -3
View File
@@ -11,13 +11,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ast-grep";
version = "0.42.1";
version = "0.42.3";
src = fetchFromGitHub {
owner = "ast-grep";
repo = "ast-grep";
tag = finalAttrs.version;
hash = "sha256-TdVjoJmWZ76e9h+/z4/TlytJgwQpQu/esRuZg1sZw8A=";
hash = "sha256-CbZDibpdEMQayd9tzNTZRUmyx4/9K5VzhbqeFatOn+Q=";
};
# error: linker `aarch64-linux-gnu-gcc` not found
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
rm .cargo/config.toml
'';
cargoHash = "sha256-EokHEduK+8h+JzIKRRga+QXLkfC4CK+qyoIxMwD2OPI=";
cargoHash = "sha256-WhhSD2doqdwGnSKTVjnpjnuPep+4+nB2ZPiFFi8VbQQ=";
nativeBuildInputs = [ installShellFiles ];
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "auth0-cli";
version = "1.30.0";
version = "1.31.0";
src = fetchFromGitHub {
owner = "auth0";
repo = "auth0-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-Hl9uNYbyTtppZYxTnUirwckGrZbjdhY5IEBbXSFrNtw=";
hash = "sha256-6+AMU77eHYy0AwPsHt/tgtzTQkyPfvZZw1yzvWXQX0s=";
};
vendorHash = "sha256-ltVIGm1dDR9umWPM6c4XT9PbklZ20QQj6VTzQJ301A4=";
vendorHash = "sha256-MzvoHXO8gDIzNqhQGgDEd8xXWF7971JLTKWt8TCldKI=";
ldflags = [
"-s"
@@ -4,14 +4,22 @@
glib,
wrapGAppsHook3,
lndir,
atril,
caja,
caja-extensions,
engrampa,
extensions ? [ ],
useDefaultExtensions ? true,
}:
let
selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions [ caja-extensions ]);
selectedExtensions =
extensions
++ (lib.optionals useDefaultExtensions [
atril
caja-extensions
engrampa
]);
in
stdenv.mkDerivation {
pname = "${caja.pname}-with-extensions";
+4 -3
View File
@@ -27,14 +27,15 @@ buildNpmPackage rec {
nativeBuildInputs = [ copyDesktopItems ];
postBuild = ''
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
electron_dist="$(mktemp -d)"
cp -r ${electron.dist}/. "$electron_dist"
chmod -R u+w "$electron_dist"
npm exec electron-builder -- \
--dir \
-c.npmRebuild=true \
-c.asarUnpack="**/*.node" \
-c.electronDist=electron-dist \
-c.electronDist="$electron_dist" \
-c.electronVersion=${electron.version}
'';
+2 -2
View File
@@ -9,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "circumflex";
version = "4.1";
version = "4.1.1";
src = fetchFromGitHub {
owner = "bensadeh";
repo = "circumflex";
tag = finalAttrs.version;
hash = "sha256-JJgLRRE0Fh/oaZLZo0hLCfwUHJXBvXXfTNdmQMNUM7A=";
hash = "sha256-2eCxk5FynwKt0T9cseesre+dumy5K5uZZAt++R+aTxw=";
};
vendorHash = "sha256-in6yPiT/SqRaw6hFF2gCmBwGcJ315Qej3HuM7TF5MaE=";
+2 -2
View File
@@ -15,7 +15,7 @@
stdenv.mkDerivation rec {
pname = "codeql";
version = "2.25.4";
version = "2.25.5";
dontConfigure = true;
dontBuild = true;
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
src = fetchzip {
url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
hash = "sha256-YAFWw8Fb0B+O025TvwEiCZWsKXNZN7Fk+ai/eRmCSO0=";
hash = "sha256-pD8F2VoWQELKYP/fT2jKr0k4+mq0ZF7/fxyDdlG9JYA=";
};
nativeBuildInputs = [
@@ -9,13 +9,13 @@
}:
rustPlatform.buildRustPackage {
pname = "cosmic-ext-applet-sysinfo";
version = "0-unstable-2026-05-14";
version = "0-unstable-2026-05-20";
src = fetchFromGitHub {
owner = "cosmic-utils";
repo = "cosmic-ext-applet-sysinfo";
rev = "2e3f6ea5946ebbe06e4547a6eb48bed694b1721f";
hash = "sha256-8XmLFY17uuqzHZFs3L8c5robIIuHF1SKaiPhkoiO2TQ=";
rev = "b5ce695b1af0b4b61db1d71fd6999fc7ee65d4c0";
hash = "sha256-Cz2vnKKD4c7N2EsXD1YHibwIuizQi9GmhnIpZf9Mfec=";
};
cargoHash = "sha256-ogFEENZxj4ifLbqKL+gimcAMX1REp2oEohY0MqM6Jsg=";
+2 -22
View File
@@ -14,13 +14,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dcmtk";
version = "3.6.9";
version = "3.7.0";
src = fetchFromGitHub {
owner = "DCMTK";
repo = "dcmtk";
tag = "DCMTK-${finalAttrs.version}";
hash = "sha256-mdI/YqM38WhnCbsylIlmqLLWC5/QR+a8Wn9CNcN7KXU=";
hash = "sha256-JUF3IX0LOtpeAJPuTbAJo79sCuPuhh7KNIuQJfcFN/A=";
};
# The following patches are taken from the Debian package
@@ -38,26 +38,6 @@ stdenv.mkDerivation (finalAttrs: {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/remove_version.patch";
hash = "sha256-jcV2xQzKdNiBgcaFtaxdJpJCCSVOqGIsi/A4iqVM8U8=";
})
(fetchurl {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/0007-CVE-2024-47796.patch";
hash = "sha256-QYWgSbyIcOq3CVg2ynVSPCHBIrDj9uqX4ese1huoOoU=";
})
(fetchurl {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/0008-CVE-2024-52333.patch";
hash = "sha256-/4NdauuH0v6CPMh+duMM91wWfylp6l4L2LTO80dDh9g=";
})
(fetchurl {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/0009-CVE-2025-25475.patch";
hash = "sha256-ApuVw6aBoasuVlJ3fh/aufB2WRm2hFgLYCq1k3MPrsU=";
})
(fetchurl {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/0010-CVE-2025-25474.patch";
hash = "sha256-aX8em1o88ND4srsYkG696elPsAIlvkRRZMT8wzD2GdQ=";
})
(fetchurl {
url = "https://salsa.debian.org/med-team/dcmtk/-/raw/debian/3.6.9-4/debian/patches/0011-CVE-2025-25472.patch";
hash = "sha256-o3/PykJFbYlasAFgPNWp09hRuH183tQuvGuaOV4MOoo=";
})
];
nativeBuildInputs = [ cmake ];
+3 -3
View File
@@ -6,16 +6,16 @@
buildGoModule (finalAttrs: {
pname = "dcv";
version = "0.3.2";
version = "0.4.0";
src = fetchFromGitHub {
owner = "tokuhirom";
repo = "dcv";
tag = "v${finalAttrs.version}";
hash = "sha256-j2cr0GaOEHc1qlvlfYkP2ggcrbalKLdMnN54MFfrb5s=";
hash = "sha256-IQXhkTt0cFwg6dqTWEHNDHfDnOkI299CQgZWL63pRjU=";
};
vendorHash = "sha256-IHDrGT14wV5/36V/NhyeBEL3h9CGVpvlHqunF/Urw0E=";
vendorHash = "sha256-//pHi77wZjR3irLZTvyDVTPKe29pH/NiyEuBMkRj4nA=";
# Don't use the vendored dependencies as they are out of sync with go.mod
# Instead, let Go download dependencies through the module proxy
+14 -11
View File
@@ -5,7 +5,7 @@
gitUpdater,
makeBinaryWrapper,
pkg-config,
asciidoc,
asciidoctor,
libxslt,
docbook_xsl,
bash,
@@ -29,16 +29,17 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dracut";
version = "059";
version = "111";
src = fetchFromGitHub {
owner = "dracutdevs";
repo = "dracut";
rev = finalAttrs.version;
hash = "sha256-zSyC2SnSQkmS/mDpBXG2DtVVanRRI9COKQJqYZZCPJM=";
owner = "dracut-ng";
repo = "dracut-ng";
tag = finalAttrs.version;
hash = "sha256-2jdS7/LGuLSBBXv1R/o8yjgwdXl2l2wNbZWxq01wSb0";
};
strictDeps = true;
__structuredAttrs = true;
buildInputs = [
bash
@@ -48,16 +49,17 @@ stdenv.mkDerivation (finalAttrs: {
nativeBuildInputs = [
makeBinaryWrapper
pkg-config
asciidoc
asciidoctor
libxslt
docbook_xsl
];
postPatch = ''
substituteInPlace dracut.sh \
--replace 'dracutbasedir="$dracutsysrootdir"/usr/lib/dracut' 'dracutbasedir="$dracutsysrootdir"'"$out/lib/dracut"
--replace-fail "dracutbasedir=\"$""{dracutsysrootdir-}\"/usr/lib/dracut" \
"if [ -n \"$""{dracutsysrootdir:-}\" ]; then dracutbasedir=\"$""{dracutsysrootdir}/usr/lib/dracut\" ; else dracutbasedir=\"$out/lib/dracut\" ; fi"
substituteInPlace lsinitrd.sh \
--replace 'dracutbasedir=/usr/lib/dracut' "dracutbasedir=$out/lib/dracut"
--replace-fail 'dracutbasedir=/usr/lib/dracut' "dracutbasedir=$out/lib/dracut"
echo 'DRACUT_VERSION=${finalAttrs.version}' >dracut-version.sh
'';
@@ -110,10 +112,11 @@ stdenv.mkDerivation (finalAttrs: {
passthru.updateScript = gitUpdater { };
meta = {
homepage = "https://github.com/dracutdevs/dracut/wiki";
homepage = "https://dracut-ng.github.io/";
changelog = "https://github.com/dracut-ng/dracut/blob/${finalAttrs.src.tag}/NEWS.md";
description = "Event driven initramfs infrastructure";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
maintainers = with lib.maintainers; [ tbutter ];
platforms = lib.platforms.linux;
};
})
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "egctl";
version = "1.7.3";
version = "1.8.0";
src = fetchFromGitHub {
owner = "envoyproxy";
repo = "gateway";
tag = "v${finalAttrs.version}";
hash = "sha256-8cM8wA1XCHQ2OQn/CkeWML9aWEYX9Xv3XEpn+TPGbYA=";
hash = "sha256-KvXOLyMWtl4ycz6P4LQalODD95ptCY7tQtxtYG2x+28=";
};
vendorHash = "sha256-CwBaEt5BYwGVBdt/M/V1SM00MONifskQYfErVubFppY=";
vendorHash = "sha256-wiehH9qmDVLho+ZDQH5IbckO0LP3FLxHhYXBMA8aBjs=";
# Fix case-insensitive conflicts producing platform-dependent checksums
# https://github.com/microsoft/go-mssqldb/issues/234
proxyVendor = true;
+16 -6
View File
@@ -1,7 +1,9 @@
{
lib,
stdenv,
fetchurl,
fetchFromGitHub,
autoconf-archive,
autoreconfHook,
pkg-config,
gettext,
itstool,
@@ -10,8 +12,10 @@
gtk3,
hicolor-icon-theme,
json-glib,
mate-common,
mate-desktop,
wrapGAppsHook3,
yelp-tools,
gitUpdater,
# can be defaulted to true once switch to meson
withMagic ? stdenv.buildPlatform.canExecute stdenv.hostPlatform,
@@ -20,19 +24,26 @@
stdenv.mkDerivation (finalAttrs: {
pname = "engrampa";
version = "1.28.2";
version = "1.28.3";
src = fetchurl {
url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor finalAttrs.version}/engrampa-${finalAttrs.version}.tar.xz";
hash = "sha256-Hpl3wjdFv4hDo38xUXHZr5eBSglxrqw9d08BdlCsCe8=";
src = fetchFromGitHub {
owner = "mate-desktop";
repo = "engrampa";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-bmqCsbGz49wda1sMiAvG3XTGpFEwMvDx8ojuzxZ9MAI=";
};
nativeBuildInputs = [
autoconf-archive
autoreconfHook
pkg-config
gettext
itstool
libxml2 # for xmllint
mate-common # mate-common.m4 macros
wrapGAppsHook3
yelp-tools
];
buildInputs = [
@@ -56,7 +67,6 @@ stdenv.mkDerivation (finalAttrs: {
enableParallelBuilding = true;
passthru.updateScript = gitUpdater {
url = "https://git.mate-desktop.org/engrampa";
odd-unstable = true;
rev-prefix = "v";
};
+3 -8
View File
@@ -75,7 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
runHook postConfigure
'';
# electron builds must be writable to support electron fuses
preBuild = ''
# Validate electron version matches upstream package.json
if [ "`jq -r '.devDependencies.electron' < package.json | cut -d. -f1 | tr -d '^'`" != "${lib.versions.major electron.version}" ]
@@ -83,12 +82,8 @@ stdenv.mkDerivation (finalAttrs: {
echo "ERROR: electron version mismatch between package.json and nixpkgs"
exit 1
fi
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
cp -r ${electron.dist}/Electron.app .
chmod -R u+w Electron.app
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
# electron builds must be writable to support electron fuses
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
'';
@@ -103,7 +98,7 @@ stdenv.mkDerivation (finalAttrs: {
# can't run it via bunx / npx since fixupPhase was skipped for node_modules
node node_modules/electron-builder/out/cli/cli.js \
--dir \
-c.electronDist=${if stdenv.hostPlatform.isDarwin then "." else "electron-dist"} \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version} \
-c.npmRebuild=false
+2 -2
View File
@@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: {
# the Equicord repository. Dates as tags (and automatic releases) were the compromise
# we came to with upstream. Please do not change the version schema (e.g., to semver)
# unless upstream changes the tag schema from dates.
version = "2026-04-22";
version = "2026-05-26";
src = fetchFromGitHub {
owner = "Equicord";
repo = "Equicord";
tag = finalAttrs.version;
hash = "sha256-KhGSQTnpOWSvrsoghF/kpzUVdNTZUlzpsm6UikySRHY=";
hash = "sha256-m/BdSErumQrWCSyejRFm5HcSR4FwDS2JkAXvy9PejmI=";
};
pnpmDeps = fetchPnpmDeps {
+2 -2
View File
@@ -4,7 +4,7 @@
fetchurl,
autoreconfHook,
pkg-config,
fuse,
fuse3,
util-linux,
xxhash,
lz4,
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
zstd
libdeflate
]
++ lib.optionals fuseSupport [ fuse ]
++ lib.optionals fuseSupport [ fuse3 ]
++ lib.optionals selinuxSupport [ libselinux ];
configureFlags = [
+11 -14
View File
@@ -74,20 +74,17 @@ buildNpmPackage {
ln -s ${dart-sass}/bin/dart-sass "$dir"/sass
'';
postBuild =
lib.optionalString stdenv.hostPlatform.isDarwin ''
# electron-builder appears to build directly on top of Electron.app, by overwriting the files in the bundle.
cp -r ${electron.dist}/Electron.app ./
find ./Electron.app -name 'Info.plist' | xargs -d '\n' chmod +rw
''
+ ''
npm exec electron-builder -- \
--dir \
-c.electronDist=${if stdenv.hostPlatform.isDarwin then "./" else electron.dist} \
-c.electronVersion=${electron.version} \
-c.npmRebuild=false \
${lib.optionalString stdenv.hostPlatform.isDarwin "-c.mac.identity=null"}
'';
postBuild = ''
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
npm exec electron-builder -- \
--dir \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version} \
-c.npmRebuild=false \
${lib.optionalString stdenv.hostPlatform.isDarwin "-c.mac.identity=null"}
'';
installPhase = ''
runHook preInstall
+3 -3
View File
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "forgejo-mcp";
version = "2.22.0";
version = "2.24.2";
src = fetchFromCodeberg {
owner = "goern";
repo = "forgejo-mcp";
tag = "v${finalAttrs.version}";
hash = "sha256-115tjQoyM+0B92o02j9amkOG+fywspiZVvIgeoBFkxo=";
hash = "sha256-7TMfGP3XiJ+ktOhVOsf7t4eoukMs8UpZRNiXpRD6aDc=";
};
vendorHash = "sha256-5CV4drUaYKtZ/RoydAatblhsqU8VWYzYByjhcb9KZVY=";
vendorHash = "sha256-QDJRbF4mZzBv1vxvo1ZQJaUJayRHj1jMgjaRfAmLMik=";
ldflags = [
"-s"
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "gcx";
version = "0.2.14";
version = "0.2.16";
src = fetchFromGitHub {
owner = "grafana";
repo = "gcx";
tag = "v${finalAttrs.version}";
hash = "sha256-gN3l45wFpZSUnhprei/Ca1/4ptmOFtpNmNUpy6sn0aU=";
hash = "sha256-IQbtTEhHttJ/i8VOf6g+bulIzjltZDC6+VPjI+YdZjs=";
};
vendorHash = "sha256-uxFYKMJgAYlj43Uri6T6vaXsv/UmYk4zfCSkvu0A6RM=";
vendorHash = "sha256-DJmInygabXTK6mnDlugjAAz86HEBpfCm1HQOIsg3Q/Y=";
subPackages = [ "cmd/gcx" ];
+9 -24
View File
@@ -38,45 +38,27 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation (finalAttrs: {
pname = "giac${lib.optionalString enableGUI "-with-xcas"}";
version = "1.9.0-993"; # TODO try to remove preCheck phase on upgrade
version = "2.0.0-19"; # TODO try to remove preCheck phase on upgrade
src = fetchurl {
url = "https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/giac_${finalAttrs.version}.tar.gz";
sha256 = "sha256-pqytFWrSWfEwQqRdRbaigGCq68s8mdgj2j8M+kclslE=";
url = "https://www-fourier.univ-grenoble-alpes.fr/~parisse/debian/dists/stable/main/source/giac_${finalAttrs.version}.tar.gz";
hash = "sha256-7fuKV8xNlDyN9ha1+NNHUjFPhEP0NZ3thwRXL1kcA5E=";
};
patches = [
./remove-old-functional-patterns.patch
./fix-fltk-guard.patch
(fetchpatch {
name = "pari_2_15.patch";
url = "https://raw.githubusercontent.com/sagemath/sage/07a2afd65fb4b0a1c9cbc43ede7d4a18c921a000/build/pkgs/giac/patches/pari_2_15.patch";
sha256 = "sha256-Q3xBFED7XEAyNz6AHjzt63XtospmdGAIdS6iPq1C2UE=";
})
(fetchpatch {
name = "infinity.patch";
url = "https://github.com/geogebra/giac/commit/851c2cd91e879c79d6652f8a5d5bed03b65c6d39.patch";
sha256 = "sha256-WJRT2b8I9kgAkRuIugMiXoF4hT7yR7qyad8A6IspNTM=";
stripLen = 5;
extraPrefix = "/src/";
excludes = [ "src/kdisplay.cc" ];
})
# giac calls scanf/printf with non-constant first arguments, which
# the compiler rightfully warns about (with an error nowadays).
(fetchpatch {
name = "fix-string-compiler-error.patch";
url = "https://salsa.debian.org/science-team/giac/-/raw/9ca8dbf4bb16d9d96948aa4024326d32485d7917/debian/patches/fix-string-compiler-error.patch";
sha256 = "sha256-r+M+9MRPRqhHcdhYWI6inxyNvWbXUbBcPCeDY7aulvk=";
hash = "sha256-Q3xBFED7XEAyNz6AHjzt63XtospmdGAIdS6iPq1C2UE=";
})
# issue with include path precedence
(fetchpatch {
name = "fix_implicit_declaration.patch";
url = "https://salsa.debian.org/science-team/giac/-/raw/c05ae9b9e74d3c6ee6411d391071989426a76201/debian/patches/fix_implicit_declaration.patch";
sha256 = "sha256-ompUceYJLiL0ftfjBkIMcYvX1YqG2/XA7e1yDyFY0IY=";
hash = "sha256-ompUceYJLiL0ftfjBkIMcYvX1YqG2/XA7e1yDyFY0IY=";
})
]
++ lib.optionals (!enableGUI) [
@@ -85,7 +67,10 @@ stdenv.mkDerivation (finalAttrs: {
(fetchpatch {
name = "nofltk-check.patch";
url = "https://raw.githubusercontent.com/sagemath/sage/7553a3c8dfa7bcec07241a07e6a4e7dcf5bb4f26/build/pkgs/giac/patches/nofltk-check.patch";
sha256 = "sha256-nAl5q3ufLjK3X9s0qMlGNowdRRf3EaC24eVtJABzdXY=";
hash = "sha256-eA0S+pEgllv77+KIpMvZgjz99jlbnreVvtNqNXs2HvI=";
postFetch = ''
substituteInPlace "$out" --replace-quiet periode Periode
'';
})
];
@@ -1,294 +0,0 @@
From f1c5309d5b815acc2616cd9fbb5182b1e64d225f Mon Sep 17 00:00:00 2001
From: George Huebner <george@feyor.sh>
Date: Wed, 17 Jul 2024 18:12:36 -0500
Subject: [PATCH 1/4] remove old <functional> patterns
pointer_to_binary_function and ptr_fun are holdovers from pre c++11,
and can be replaced or entirely removed. This allows Giac to compile
with Clang 16>=.
---
src/all_global_var | 2 +-
src/gausspol.cc | 2 +-
src/gausspol.h | 2 +-
src/gen.cc | 2 +-
src/gen.h | 4 ++--
src/maple.cc | 2 +-
src/monomial.h | 16 ++++++++--------
src/plot.cc | 2 +-
src/poly.h | 17 +++++++++--------
src/solve.cc | 18 +++++++++---------
src/usual.cc | 2 +-
11 files changed, 35 insertions(+), 34 deletions(-)
diff --git a/src/all_global_var b/src/all_global_var
index 7d75d73..55f4782 100644
--- a/src/all_global_var
+++ b/src/all_global_var
@@ -16,7 +16,7 @@ Relatif a l'evaluation du tableur
// File Eqw.cc
vector<string> completion_tab;
// File alg_ext.cc
- rootmap symbolic_rootof_list(ptr_fun(islesscomplex));
+ rootmap symbolic_rootof_list(islesscomplex);
// File derive.cc
// File desolve.cc
identificateur laplace_var(" s");
diff --git a/src/gausspol.cc b/src/gausspol.cc
index 8fbd581..2f2121f 100644
--- a/src/gausspol.cc
+++ b/src/gausspol.cc
@@ -855,7 +855,7 @@ namespace giac {
std::vector< monomial<gen> >::const_iterator & itb_end,
std::vector< monomial<gen> > & new_coord,
bool (* is_strictly_greater)( const index_m &, const index_m &),
- const std::pointer_to_binary_function < const monomial<gen> &, const monomial<gen> &, bool> m_is_strictly_greater
+ const std::function<bool(const monomial<gen> &, const monomial<gen> &)> m_is_strictly_greater
) {
if (ita==ita_end || itb==itb_end){
new_coord.clear();
diff --git a/src/gausspol.h b/src/gausspol.h
index b5d214b..e6c7e0c 100644
--- a/src/gausspol.h
+++ b/src/gausspol.h
@@ -93,7 +93,7 @@ namespace giac {
std::vector< monomial<gen> >::const_iterator & itb_end,
std::vector< monomial<gen> > & new_coord,
bool (* is_strictly_greater)( const index_t &, const index_t &),
- const std::pointer_to_binary_function < const monomial<gen> &, const monomial<gen> &, bool> m_is_greater
+ const std::function<bool(const monomial<gen> &, const monomial<gen> &)> m_is_greater
) ;
void mulpoly(const polynome & th,const gen & fact,polynome & res);
polynome operator * (const polynome & th, const gen & fact) ;
diff --git a/src/gen.cc b/src/gen.cc
index 7d4874c..0b64afe 100644
--- a/src/gen.cc
+++ b/src/gen.cc
@@ -1126,7 +1126,7 @@ namespace giac {
#if 1 // def NSPIRE
g.__MAPptr = new ref_gen_map;
#else
- g.__MAPptr = new ref_gen_map(ptr_fun(islesscomplexthanf));
+ g.__MAPptr = new ref_gen_map(islesscomplexthanf);
#endif
#endif
g.type=_MAP;
diff --git a/src/gen.h b/src/gen.h
index 04d70af..496b25d 100644
--- a/src/gen.h
+++ b/src/gen.h
@@ -443,7 +443,7 @@ namespace giac {
};
typedef std::map<gen,gen,comparegen> gen_map;
#else
- typedef std::map<gen,gen,const std::pointer_to_binary_function < const gen &, const gen &, bool> > gen_map;
+ typedef std::map<gen,gen,const std::function<bool(const gen &, const gen &)> > gen_map;
#endif
struct ref_gen_map;
@@ -902,7 +902,7 @@ namespace giac {
#if 1 // def NSPIRE
ref_gen_map(): ref_count(1),m() {}
#else
- ref_gen_map(const std::pointer_to_binary_function < const gen &, const gen &, bool> & p): ref_count(1),m(p) {}
+ ref_gen_map(const std::function<bool(const gen &, const gen &)> & p): ref_count(1),m(p) {}
#endif
ref_gen_map(const gen_map & M):ref_count(1),m(M) {}
};
diff --git a/src/maple.cc b/src/maple.cc
index 3b33da8..d57a170 100644
--- a/src/maple.cc
+++ b/src/maple.cc
@@ -3626,7 +3626,7 @@ namespace giac {
#if 1 // def NSPIRE
gen_map m;
#else
- gen_map m(ptr_fun(islessthanf));
+ gen_map m(islessthanf);
#endif
int s=int(args.size());
vector<int> indexbegin,indexsize;
diff --git a/src/monomial.h b/src/monomial.h
index 6e606d0..637a76c 100644
--- a/src/monomial.h
+++ b/src/monomial.h
@@ -338,9 +338,9 @@ namespace giac {
template<class T> class sort_helper {
public:
- std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> strictly_greater ;
- sort_helper(const std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> is_strictly_greater):strictly_greater(is_strictly_greater) {};
- sort_helper():strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) {};
+ std::function<bool(const monomial<T> &, const monomial<T> &)> strictly_greater ;
+ sort_helper(const std::function<bool(const monomial<T> &, const monomial<T> &)> is_strictly_greater):strictly_greater(is_strictly_greater) {};
+ sort_helper():strictly_greater(m_lex_is_strictly_greater<T>) {};
bool operator () (const monomial<T> & a, const monomial<T> & b){ return strictly_greater(a,b);}
};
@@ -677,7 +677,7 @@ namespace giac {
typename std::vector< monomial<T> >::const_iterator & itb_end,
std::vector< monomial<T> > & new_coord,
bool (* is_strictly_greater)( const index_m &, const index_m &),
- const std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> m_is_strictly_greater
+ const std::function<bool(const monomial<T> &, const monomial<T> &)> m_is_strictly_greater
) {
if (ita==ita_end || itb==itb_end){
new_coord.clear();
@@ -726,8 +726,8 @@ namespace giac {
#endif
#ifndef NSPIRE
/* other algorithm using a map to avoid reserving too much space */
- typedef std::map< index_t,T,const std::pointer_to_binary_function < const index_m &, const index_m &, bool> > application;
- application produit(std::ptr_fun(is_strictly_greater));
+ typedef std::map< index_t,T,const std::function<bool(const index_m &, const index_m &)> > application;
+ application produit(is_strictly_greater);
// typedef std::map<index_t,T> application;
// application produit;
index_t somme(ita->index.size());
@@ -848,7 +848,7 @@ namespace giac {
typename std::vector< monomial<T> >::const_iterator a=v.begin(), a_end=v.end();
typename std::vector< monomial<T> >::const_iterator b=w.begin(), b_end=w.end();
std::vector< monomial<T> > res;
- Mul(a,a_end,b,b_end,res,i_lex_is_strictly_greater,std::ptr_fun< const monomial<T> &, const monomial<T> &, bool >((m_lex_is_strictly_greater<T>)));
+ Mul(a,a_end,b,b_end,res,i_lex_is_strictly_greater,m_lex_is_strictly_greater<T>);
return res ;
}
@@ -856,7 +856,7 @@ namespace giac {
std::vector< monomial<T> > & operator *= (std::vector< monomial<T> > & v,const std::vector< monomial<T> > & w){
typename std::vector< monomial<T> >::const_iterator a=v.begin(), a_end=v.end();
typename std::vector< monomial<T> >::const_iterator b=w.begin(), b_end=w.end();
- Mul(a,a_end,b,b_end,v,i_lex_is_strictly_greater,std::ptr_fun< const monomial<T> &, const monomial<T> &, bool >((m_lex_is_strictly_greater<T>)));
+ Mul(a,a_end,b,b_end,v,i_lex_is_strictly_greater,m_lex_is_strictly_greater<T>);
return v;
}
diff --git a/src/plot.cc b/src/plot.cc
index 288a1b5..ac85c9a 100755
--- a/src/plot.cc
+++ b/src/plot.cc
@@ -11886,7 +11886,7 @@ static vecteur densityscale(double xmin,double xmax,double ymin,double ymax,doub
#if 1 // def NSPIRE
gen_map m;
#else
- gen_map m(ptr_fun(islesscomplexthanf));
+ gen_map m(islesscomplexthanf);
#endif
int taille;
is >> taille;
diff --git a/src/poly.h b/src/poly.h
index 7d64e2c..d9ff991 100644
--- a/src/poly.h
+++ b/src/poly.h
@@ -40,23 +40,24 @@ namespace giac {
// T zero;
// functional object sorting function for monomial ordering
bool (* is_strictly_greater)( const index_m &, const index_m &);
- std::pointer_to_binary_function < const monomial<T> &, const monomial<T> &, bool> m_is_strictly_greater ;
+ std::function<bool(const monomial<T> &, const monomial<T> &)> m_is_strictly_greater ;
// constructors
tensor(const tensor<T> & t) : dim(t.dim), coord(t.coord), is_strictly_greater(t.is_strictly_greater), m_is_strictly_greater(t.m_is_strictly_greater) { }
tensor(const tensor<T> & t, const std::vector< monomial<T> > & v) : dim(t.dim), coord(v), is_strictly_greater(t.is_strictly_greater), m_is_strictly_greater(t.m_is_strictly_greater) { }
// warning: this constructor prohibits construction of tensor from a value
// of type T if this value is an int, except by using tensor<T>(T(int))
- tensor() : dim(0), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) { }
- explicit tensor(int d) : dim(d), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) { }
+ // DANGER
+ tensor() : dim(0), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(m_lex_is_strictly_greater<T>) { }
+ explicit tensor(int d) : dim(d), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(m_lex_is_strictly_greater<T>) { }
explicit tensor(int d,const tensor<T> & t) : dim(d),is_strictly_greater(t.is_strictly_greater), m_is_strictly_greater(t.m_is_strictly_greater) { }
- tensor(const monomial<T> & v) : dim(int(v.index.size())), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) {
+ tensor(const monomial<T> & v) : dim(int(v.index.size())), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(m_lex_is_strictly_greater<T>) {
coord.push_back(v);
}
- tensor(const T & v, int d) : dim(d), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) {
+ tensor(const T & v, int d) : dim(d), is_strictly_greater(i_lex_is_strictly_greater), m_is_strictly_greater(m_lex_is_strictly_greater<T>) {
if (!is_zero(v))
coord.push_back(monomial<T>(v,0,d));
}
- tensor(int d,const std::vector< monomial<T> > & c) : dim(d), coord(c), is_strictly_greater(i_lex_is_strictly_greater),m_is_strictly_greater(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>)) { }
+ tensor(int d,const std::vector< monomial<T> > & c) : dim(d), coord(c), is_strictly_greater(i_lex_is_strictly_greater),m_is_strictly_greater(m_lex_is_strictly_greater<T>) { }
~tensor() { coord.clear(); }
// member functions
// ordering monomials in the tensor
@@ -519,10 +520,10 @@ namespace giac {
template <class T>
void lexsort(std::vector < monomial<T> > & v){
#if 1 // def NSPIRE
- sort_helper<T> M(std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>));
+ sort_helper<T> M(m_lex_is_strictly_greater<T>);
sort(v.begin(),v.end(),M);
#else
- sort(v.begin(),v.end(),std::ptr_fun<const monomial<T> &, const monomial<T> &, bool>(m_lex_is_strictly_greater<T>));
+ sort(v.begin(),v.end(),m_lex_is_strictly_greater<T>);
#endif
}
diff --git a/src/solve.cc b/src/solve.cc
index 889f824..2a51ab8 100755
--- a/src/solve.cc
+++ b/src/solve.cc
@@ -8684,39 +8684,39 @@ namespace giac {
switch (order.val){
case _PLEX_ORDER:
p.is_strictly_greater=i_lex_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_lex_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_lex_is_strictly_greater<gen>;
break;
case _REVLEX_ORDER:
p.is_strictly_greater=i_total_revlex_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_total_revlex_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_total_revlex_is_strictly_greater<gen>;
break;
case _TDEG_ORDER:
p.is_strictly_greater=i_total_lex_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_total_lex_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_total_lex_is_strictly_greater<gen>;
break;
case _3VAR_ORDER:
p.is_strictly_greater=i_3var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_3var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_3var_is_strictly_greater<gen>;
break;
case _7VAR_ORDER:
p.is_strictly_greater=i_7var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_7var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_7var_is_strictly_greater<gen>;
break;
case _11VAR_ORDER:
p.is_strictly_greater=i_11var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_11var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_11var_is_strictly_greater<gen>;
break;
case _16VAR_ORDER:
p.is_strictly_greater=i_16var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_16var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_16var_is_strictly_greater<gen>;
break;
case _32VAR_ORDER:
p.is_strictly_greater=i_32var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_32var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_32var_is_strictly_greater<gen>;
break;
case _64VAR_ORDER:
p.is_strictly_greater=i_64var_is_strictly_greater;
- p.m_is_strictly_greater=std::ptr_fun(m_64var_is_strictly_greater<gen>);
+ p.m_is_strictly_greater=m_64var_is_strictly_greater<gen>;
break;
}
p.tsort();
diff --git a/src/usual.cc b/src/usual.cc
index fddede6..eb7ae5e 100755
--- a/src/usual.cc
+++ b/src/usual.cc
@@ -5950,7 +5950,7 @@ namespace giac {
#if 1 // def NSPIRE
gen_map m;
#else
- gen_map m(ptr_fun(islesscomplexthanf));
+ gen_map m(islesscomplexthanf);
#endif
for (;it!=itend;++it){
if (is_equal(*it) || it->is_symb_of_sommet(at_deuxpoints)){
--
2.44.1
@@ -8,16 +8,16 @@
buildGoModule (finalAttrs: {
pname = "github-mcp-server";
version = "1.0.4";
version = "1.0.5";
src = fetchFromGitHub {
owner = "github";
repo = "github-mcp-server";
tag = "v${finalAttrs.version}";
hash = "sha256-y6QGF2g9FhDxtWR//kaI5Xt2o+MwaNWCf2t0t61/vww=";
hash = "sha256-NVC6geIzaSyz1uTwTQO1awMBdVEuuQMB2csAfUjMvsw=";
};
vendorHash = "sha256-fVNMtCpodsr1Z9E21osHb+e63ZQqFKYwi4fz4OsTJe0=";
vendorHash = "sha256-+ybGV37fjJ5eZjxTb+SUnJ52J20XizJL8WjoM16Rabg=";
ldflags = [
"-s"
+3 -3
View File
@@ -18,16 +18,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "gitoxide";
version = "0.53.0";
version = "0.54.0";
src = fetchFromGitHub {
owner = "GitoxideLabs";
repo = "gitoxide";
tag = "v${finalAttrs.version}";
hash = "sha256-fg5Y2WYlDqcV2OIVHUWMMP2e/gz2FNBUd0AmZzKUVx8=";
hash = "sha256-MkOmxvACroJAB1nQZT1pcJ/Fn9gWNFwKiwVNb9iUlgY=";
};
cargoHash = "sha256-i48mE6PJTDeT+xOwljKxXZiSDvHPON+ysMptm8obIUU=";
cargoHash = "sha256-bYgGQa8Gym4dzkuTrOSu3NwUhYdZNtq7ACwVwhdKQRI=";
nativeBuildInputs = [
cmake
+4 -6
View File
@@ -64,19 +64,17 @@ stdenv.mkDerivation (finalAttrs: {
runHook postConfigure
'';
preBuild = lib.optionalString stdenv.hostPlatform.isLinux ''
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
'';
buildPhase = ''
runHook preBuild
bun run build -- --skipTypecheck
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
node node_modules/electron-builder/out/cli/cli.js \
--dir \
-c.electronDist="${if stdenv.hostPlatform.isLinux then "electron-dist" else electron.dist}" \
-c.electronDist=electron-dist \
-c.electronVersion="${electron.version}" \
-c.npmRebuild=false
+3 -3
View File
@@ -10,16 +10,16 @@
}:
buildGoModule (finalAttrs: {
pname = "guesswidth";
version = "0.4.0";
version = "0.5.0";
src = fetchFromGitHub {
owner = "noborus";
repo = "guesswidth";
tag = "v${finalAttrs.version}";
hash = "sha256-afZYegG4q+KmvNP2yy/HGvP4V1mpOUCxRLWLTUHAK0M=";
hash = "sha256-MbQBfwXdmcSU6F7M+Y70lGwBwhhJvRgtevco+UPt0Po=";
};
vendorHash = "sha256-IGb+fM3ZOlGrLGFSUeUhZ9wDMKOBofDBYByAQlvXY14=";
vendorHash = "sha256-/R/KUKQq52CnukJoQybSA4OkcHq/v8ICxxUqSc4ynEQ=";
ldflags = [
"-X github.com/noborus/guesswidth.version=v${finalAttrs.version}"
+3 -3
View File
@@ -16,16 +16,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "hyprwhspr-rs";
version = "0.3.27";
version = "0.3.28";
src = fetchFromGitHub {
owner = "better-slop";
repo = "hyprwhspr-rs";
tag = "v${finalAttrs.version}";
hash = "sha256-+A+AJUMSOXwpOI+bo/g55yfdhQazdSbmHookHXVL9Xk=";
hash = "sha256-2o/857vuKk4KzWUtzwkSuSwd4FGlQWstku/zXUCu+kw=";
};
cargoHash = "sha256-PA7lC6aQTEK566ADOIC+EvsPDYvjZRi8tc14EQ7gihE=";
cargoHash = "sha256-Pwp56bu/ajozNby+FrNrdPpSFPo/O0sWG4I7wFvPZyg=";
nativeBuildInputs = [
pkg-config
+4 -3
View File
@@ -34,12 +34,13 @@ buildNpmPackage (finalAttrs: {
};
postBuild = ''
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
electron_dist="$(mktemp -d)"
cp -r ${electron.dist}/. "$electron_dist"
chmod -R u+w "$electron_dist"
npm exec electron-builder -- \
--dir \
-c.electronDist=electron-dist \
-c.electronDist="$electron_dist" \
-c.electronVersion=${electron.version} \
--config electron-builder.config.js
'';
@@ -1,28 +1,36 @@
{
lib,
stdenv,
buildNpmPackage,
fetchFromGitHub,
copyDesktopItems,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
xcbuild,
libpng,
libx11,
libxi,
libxtst,
zlib,
electron,
electron_41,
}:
let
electron = electron_41;
in
buildNpmPackage rec {
pname = "jitsi-meet-electron";
version = "2025.2.0";
version = "2026.5.0";
src = fetchFromGitHub {
owner = "jitsi";
repo = "jitsi-meet-electron";
rev = "v${version}";
hash = "sha256-Pk62BpfXblRph3ktxy8eF9umRmPRZbZGjRWduy+3z+s=";
hash = "sha256-yeYDft2d2RHNXYrmnHlBzsZ43bvBgwwsqxQr/Q+/AuQ=";
};
nativeBuildInputs = [
@@ -30,6 +38,9 @@ buildNpmPackage rec {
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
xcbuild
];
# robotjs node-gyp dependencies
@@ -41,14 +52,12 @@ buildNpmPackage rec {
zlib
];
npmDepsHash = "sha256-TckV91RJo06OKb8nIvxBCxu28qyHtA/ACDshOlaCQxA=";
npmDepsHash = "sha256-5y7q6SnA9s85+HFOhqif1N8XRO7ekGJ4nfVbWZ/diuI=";
makeCacheWritable = true;
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
# disable code signing on Darwin
CSC_IDENTITY_AUTO_DISCOVERY = "false";
NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
};
@@ -66,6 +75,8 @@ buildNpmPackage rec {
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
export npm_config_nodedir=${electron.headers}
# npmRebuild is needed because robotjs won't be built on darwin otherwise
# asarUnpack makes sure to unwrap binaries so that nix can see the RPATH
npm exec electron-builder -- \
@@ -73,7 +84,8 @@ buildNpmPackage rec {
-c.npmRebuild=true \
-c.asarUnpack="**/*.node" \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version}
-c.electronVersion=${electron.version} \
-c.mac.identity=null
'';
installPhase = ''
+4 -4
View File
@@ -14,23 +14,23 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "kiro-cli";
version = "2.3.0";
version = "2.4.1";
src =
let
darwinDmg = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/Kiro%20CLI.dmg";
hash = "sha256-lHBlzPFeT9m54dbFBXm7l/bJIVcBJqodZ6xKD9XThJc=";
hash = "sha256-rJaKbNhNlSL3CfTRY4Fin5CUhrvjhOJrUuqGCTlRXkQ=";
};
in
{
x86_64-linux = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-x86_64-linux.tar.gz";
hash = "sha256-zLizK/0m9PdIzN4IMicq7/95lWahj7sdLzEEYpv/o+E=";
hash = "sha256-fXTKu1lO5hPZn1YwRkHI6B+edNatR4KJGqHXzi9Epa8=";
};
aarch64-linux = fetchurl {
url = "https://desktop-release.q.us-east-1.amazonaws.com/${finalAttrs.version}/kirocli-aarch64-linux.tar.gz";
hash = "sha256-B4NElbGE0M7P6eGrd90UYvoeqN1fEoe+2g1/M1wM3ZY=";
hash = "sha256-4/HJH3cHHX4Z3/P4eHfnWA6f43TAfAUiqQsZNIehRBY=";
};
x86_64-darwin = darwinDmg;
aarch64-darwin = darwinDmg;
+4 -4
View File
@@ -9,13 +9,13 @@
}:
let
version = "3.2.2";
version = "3.2.3";
src = fetchFromGitHub {
owner = "koka-lang";
repo = "koka";
rev = "v${version}";
hash = "sha256-k1N085NoAlxewAhg5UDMo7IUf2A6gCTc9k5MWMbU0d0=";
tag = "v${version}";
hash = "sha256-sbyiY5zZuVyul98y5xwfxp7kIzeojdJWxDf6zjWnLrI=";
fetchSubmodules = true;
};
@@ -68,7 +68,7 @@ haskellPackages.mkDerivation {
hashable
isocline
lens
lsp
lsp_2_8_0_0
mtl
network
network-simple
+3 -5
View File
@@ -7,16 +7,14 @@
}:
stdenv.mkDerivation rec {
version = "1.3.1";
version = "1.3.2";
pname = "libbraiding";
src = fetchFromGitHub {
owner = "miguelmarco";
repo = "libbraiding";
# version 1.3.1 contains a typo in configure.ac, fixed in the next commit.
# TODO: remove if on upgrade
rev = if version == "1.3.1" then "b174832026c2412baec83277c461e4df71d8525c" else version;
hash = "sha256-ar/EiaMZuQRa1lr0sZPLRuk5K00j63TqNf0q0iuiKjw=";
rev = version;
hash = "sha256-Vo4nwzChjrI4PeNB+adPwDeL3gb++DEc4isX4/iDHMc=";
};
nativeBuildInputs = [
+10 -1
View File
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
fetchpatch,
doCheck ? true, # test suite depends on dejagnu which cannot be used during bootstrapping
dejagnu,
@@ -16,7 +17,15 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-cvunkicD3fp6Ao1ROsFahcjVTI1n9V+lpIAohdxlIFY=";
};
patches = [ ];
patches = [
# Backport gcc-15 fix:
# https://github.com/libffi/libffi/pull/861
(fetchpatch {
name = "gcc-15.patch";
url = "https://github.com/libffi/libffi/commit/0859f8431242d5adff21420b9cab538d2af527b5.patch";
hash = "sha256-Py4ZAhVyXsfLxr4pnYAH7/lcsQOmpToFgvjQvLg9XVc=";
})
];
outputs = [
"out"
+2 -2
View File
@@ -26,13 +26,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libqalculate";
version = "5.10.0";
version = "5.11.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "libqalculate";
tag = "v${finalAttrs.version}";
hash = "sha256-s5K0VPpfx0/3lGgEKJDFXdPelidpqVTNpsDolEAmKvM=";
hash = "sha256-lwA2faLYUb02FL9lOX+vuv/8pfKbkHWRlS1VnrV+sk4=";
};
outputs = [
@@ -28,7 +28,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "libxfce4windowing";
version = "4.20.5";
version = "4.20.6";
outputs = [
"out"
@@ -40,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "xfce";
repo = "libxfce4windowing";
tag = "libxfce4windowing-${finalAttrs.version}";
hash = "sha256-TVu6S/Cip9IqniAvrTU5uSs7Dgm0WZNxjgB4vjHvBNU=";
hash = "sha256-lTOCvxUSo0CCok5nPCX7B6RqVoNMYcSb97alR+htBtY=";
};
patches = [
@@ -170,7 +170,7 @@ def commit_files(repo, message: str, files: list[Path]) -> None:
class LuaEditor(nixpkgs_plugin_update.Editor):
def create_parser(self):
parser = super().create_parser()
parser.set_defaults(proc=1)
parser.set_defaults(proc=1, update_only=None)
return parser
def get_current_plugins(self, _config: FetchConfig, _nixpkgs: str):
+3 -3
View File
@@ -9,16 +9,16 @@
}:
buildGoModule (finalAttrs: {
pname = "mdtsql";
version = "0.1.0";
version = "0.2.0";
src = fetchFromGitHub {
owner = "noborus";
repo = "mdtsql";
tag = "v${finalAttrs.version}";
hash = "sha256-D9suWLrVQOztz0rRjEo+pjxQlGWOOsk3EUbkN9yuriY=";
hash = "sha256-fmv8wJfeJ8Lz6Z5OxggrudUvyJaA+22tCs0x2Dvz+Bw=";
};
vendorHash = "sha256-psXnLMhrApyBjDY/S4WwIM1GLczyn4dUmX2fWSTq7mQ=";
vendorHash = "sha256-/FpbKpxTYiwWVDRxBn3GmPEhna/a+t4CuVq/bZmsb9w=";
nativeBuildInputs = [
installShellFiles
+5 -4
View File
@@ -86,8 +86,9 @@ stdenv.mkDerivation rec {
patchShebangs {node_modules,app/node_modules,backend/node_modules}
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
electron_dist="$(mktemp -d)"
cp -r ${electron.dist}/. "$electron_dist"
chmod -R u+w "$electron_dist"
runHook postConfigure
'';
@@ -98,7 +99,7 @@ stdenv.mkDerivation rec {
tsc && cd app && yarn --offline run build && cd ..
yarn --offline run electron-builder --dir \
-c.electronDist=electron-dist \
-c.electronDist="$electron_dist" \
-c.electronVersion=${electron.version}
runHook postBuild
@@ -143,7 +144,7 @@ stdenv.mkDerivation rec {
doCheck = true;
checkPhase = ''
export ELECTRON_OVERRIDE_DIST_PATH=electron-dist/
export ELECTRON_OVERRIDE_DIST_PATH="$electron_dist"
yarn test:app --offline
yarn test:backend --offline
@@ -0,0 +1,52 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
netbox,
pytestCheckHook,
python,
netbox-napalm-plugin,
pydriller,
}:
buildPythonPackage rec {
pname = "netbox-config-backup";
version = "2.2.2";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "DanSheps";
repo = "netbox-config-backup";
tag = "v${version}";
hash = "sha256-PT7/RCpB7SAinQ8McQV59b9ouqqUSoEqEj0ultL37cs=";
};
build-system = [ setuptools ];
pythonRemoveDeps = [ "uuid" ]; # python builtin
dependencies = [
netbox-napalm-plugin
pydriller
];
nativeCheckInputs = [ netbox ];
preFixup = ''
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
'';
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
pythonImportsCheck = [ "netbox_config_backup" ];
meta = {
description = "NetBox plugin for configuration backups using napalm";
homepage = "https://github.com/DanSheps/netbox-config-backup";
changelog = "https://github.com/DanSheps/netbox-config-backup/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ felbinger ];
};
}
@@ -0,0 +1,46 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
netbox,
pytestCheckHook,
python,
django-polymorphic,
}:
buildPythonPackage rec {
pname = "netbox-lifecycle";
version = "1.1.9";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "DanSheps";
repo = "netbox-lifecycle";
tag = "v${version}";
hash = "sha256-iCBlwhaf6IFdni7FQyRPtRJVwt04w0Jc4R0CeQlIWCY=";
};
build-system = [ setuptools ];
nativeCheckInputs = [ netbox ];
preFixup = ''
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
'';
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
pythonImportsCheck = [ "netbox_lifecycle" ];
dependencies = [ django-polymorphic ];
meta = {
description = "NetBox plugin for managing Hardware EOL/EOS, and Support Contracts";
homepage = "https://github.com/DanSheps/netbox-lifecycle";
changelog = "https://github.com/DanSheps/netbox-lifecycle/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ felbinger ];
};
}
@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
hatchling,
netbox,
pytestCheckHook,
python,
django-polymorphic,
}:
buildPythonPackage rec {
pname = "netbox-lists";
version = "4.0.4";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "devon-mar";
repo = "netbox-lists";
tag = "v${version}";
hash = "sha256-RRUuvoeB3xfqlZr1v1zpRdmVZK9av52ZsADOh9s4toQ=";
};
build-system = [ hatchling ];
nativeCheckInputs = [ netbox ];
preFixup = ''
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
'';
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
pythonImportsCheck = [ "netbox_lists" ];
meta = {
description = "NetBox plugin to generate IP and prefix lists. Integrates with Ansible, Terraform, Prometheus, Oxidized and more";
homepage = "https://github.com/devon-mar/netbox-lists";
changelog = "https://github.com/devon-mar/netbox-lists/releases/tag/${src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ felbinger ];
};
}
@@ -0,0 +1,44 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
setuptools,
netbox,
pytestCheckHook,
python,
django-polymorphic,
}:
buildPythonPackage rec {
pname = "netbox-security";
version = "1.4.5";
pyproject = true;
__structuredAttrs = true;
src = fetchFromGitHub {
owner = "andy-shady-org";
repo = "netbox-security";
tag = "v${version}";
hash = "sha256-DGiuQignYPSTFFm0RkDl5kwYQJNKbRdgdmIZ1DKXkGs=";
};
build-system = [ setuptools ];
nativeCheckInputs = [ netbox ];
preFixup = ''
export PYTHONPATH=${netbox}/opt/netbox/netbox:$PYTHONPATH
'';
dontUsePythonImportsCheck = python.pythonVersion != netbox.python.pythonVersion;
pythonImportsCheck = [ "netbox_security" ];
meta = {
description = "NetBox plugin covering various security and NAT related models";
homepage = "https://github.com/andy-shady-org/netbox-security";
changelog = "https://github.com/andy-shady-org/netbox-security/releases/tag/${src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ felbinger ];
};
}
+2 -2
View File
@@ -25,7 +25,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "nfs-ganesha";
version = "9.13";
version = "9.14";
outputs = [
"out"
@@ -37,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "nfs-ganesha";
repo = "nfs-ganesha";
tag = "V${finalAttrs.version}";
hash = "sha256-e6BDxb4Dt8xp9KdOcjxZKzRiKYPe+GP1UPvK/DAdX6M=";
hash = "sha256-aeZDXr6vUFyFhVQO31ttZ04W8KP8iKN0u17McULtQUM=";
};
patches = lib.optional useDbus ./allow-bypassing-dbus-pkg-config-test.patch;
+3 -3
View File
@@ -8,16 +8,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "nnd";
version = "0.74";
version = "0.77";
src = fetchFromGitHub {
owner = "al13n321";
repo = "nnd";
tag = "v${finalAttrs.version}";
hash = "sha256-IraVnIuW0AcYM/U1X57zsHQ9GOW2ZBo9coRA6AV5SWw=";
hash = "sha256-OUXI7MErvkGYmz3H14SOJNuqhdkC1Vk9kUZQ/mpdUPk=";
};
cargoHash = "sha256-WT2ikyeF4dRTQbCF4f5Caj8fVIRPmHLv72L5KDFJ7BM=";
cargoHash = "sha256-P3r1C+8iWGXp821xALhaJj0OHeG/lvDxxDwgs574c6Y=";
meta = {
description = "Debugger for Linux";
+2 -2
View File
@@ -8,12 +8,12 @@
stdenv.mkDerivation rec {
pname = "opengrok";
version = "1.14.11";
version = "1.14.12";
# binary distribution
src = fetchurl {
url = "https://github.com/oracle/opengrok/releases/download/${version}/${pname}-${version}.tar.gz";
hash = "sha256-05Aw44JmTHyy6JRWPk5+gv5BDN/W1ci0ddjPfvww0zI=";
hash = "sha256-D67KpbmuqInnfymNc9QvreTVjZmzNuxoswD/ZxTlHx8=";
};
nativeBuildInputs = [ makeWrapper ];
+11 -12
View File
@@ -47,18 +47,17 @@ stdenv.mkDerivation (finalAttrs: {
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
postBuild =
lib.optionalString stdenv.hostPlatform.isDarwin ''
cp -R ${electron.dist}/Electron.app Electron.app
chmod -R u+w Electron.app
''
+ ''
pnpm build
./node_modules/.bin/electron-builder \
--dir \
-c.electronDist=${if stdenv.hostPlatform.isDarwin then "." else electron.dist} \
-c.electronVersion=${electron.version}
'';
postBuild = ''
pnpm build
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
./node_modules/.bin/electron-builder \
--dir \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version}
'';
desktopItems = [
(makeDesktopItem {
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "pixi-pack";
version = "0.7.8";
version = "0.7.9";
src = fetchFromGitHub {
owner = "Quantco";
repo = "pixi-pack";
tag = "v${finalAttrs.version}";
hash = "sha256-/r1jiEH/6TKUA4WJBH+h7Ktn13Woqz36U+ARmWbCbrU=";
hash = "sha256-jCKlJPLlMrMByoVU1nzqccXBeyEi9CMjrWfL+ByqDhI=";
};
cargoHash = "sha256-etcfU+KU8y7KeWXRUXe+lig+9BxnZf1cGfS8WHxlbn0=";
cargoHash = "sha256-0f7IkYPQ1kIBC4aCyBU0Dpo936awol0eJNW6KcFQIAA=";
buildInputs = [ openssl ];
+3 -3
View File
@@ -14,16 +14,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "pixi";
version = "0.68.1";
version = "0.69.0";
src = fetchFromGitHub {
owner = "prefix-dev";
repo = "pixi";
tag = "v${finalAttrs.version}";
hash = "sha256-nh8F2MEmBjanpj05bugv8URjRwdNTHSHU0BPqj2mRKM=";
hash = "sha256-Rp7fXUq5c74AiRHxcFEvbcCYQC7dsCG0LB+j6uMkqwI=";
};
cargoHash = "sha256-UHih9R9VWxL7pSUOCGwiuPKTzI/FNukzNLLmZFo3bto=";
cargoHash = "sha256-0Z+VnexqN0ZOVMmxski3cRn2trMyk5DhKvXnh0l+K/g=";
nativeBuildInputs = [
pkg-config
+5 -5
View File
@@ -14,7 +14,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "proton-pass-cli";
version = "2.0.2";
version = "2.1.0";
src = finalAttrs.passthru.sources.${stdenv.hostPlatform.system};
@@ -46,19 +46,19 @@ stdenv.mkDerivation (finalAttrs: {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-aarch64";
hash = "sha256-C/2ZxNgnDOLCkTyTqCPGIKiXXjwvHOJNI05BcGy1z0c=";
hash = "sha256-5FQSl6Xqipm6MWq2kza2FVXSajX4xCB4gqaAed40NoI=";
};
"aarch64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-aarch64";
hash = "sha256-wSxTGtuCPU6uT25pBlxudnsQ7XEyihs/piWkiXrjs4w=";
hash = "sha256-4UgcR9yV/iQaQoQUFDRa+yzSCFIIk/SaPCOJdTgpMQI=";
};
"x86_64-darwin" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-macos-x86_64";
hash = "sha256-qXXKavGRd6LSdLeoIiwlENhOE9JS/ZxQv432flS0KBg=";
hash = "sha256-iT53cCskSY8+AvLXWQGcqFklQJJBO1d7AFMEIYEDllo=";
};
"x86_64-linux" = fetchurl {
url = "https://proton.me/download/pass-cli/${finalAttrs.version}/pass-cli-linux-x86_64";
hash = "sha256-/WClBB5kKnsRNe9oeMPXzjUjsIMhDqgQDu5cNwEBftk=";
hash = "sha256-WnddX4Ov+9jBvL8VF8ONGhV8FgEz5xNrANUxG6/oupM=";
};
};
updateScript = writeShellScript "update-proton-pass-cli" ''
+3 -3
View File
@@ -8,18 +8,18 @@
buildGoModule (finalAttrs: {
pname = "pv-migrate";
version = "3.3.0";
version = "3.4.0";
src = fetchFromGitHub {
owner = "utkuozdemir";
repo = "pv-migrate";
tag = "v${finalAttrs.version}";
sha256 = "sha256-ieE7kO/PA/2ZgvGbDhu1MzJTk5yvg2plKTyQe0Y/nb8=";
sha256 = "sha256-FJalS3cUaYFs1ChAH1JA6qrRYorDQaLvWzKIE21jYPs=";
};
subPackages = [ "cmd/pv-migrate" ];
vendorHash = "sha256-0KO5kIAP53VGau2M78PIMn6KCGAkymV7Y0msnlDjvjg=";
vendorHash = "sha256-KFcz6SAUIg8hi+Vo/Wf6jDF6QcZ5uNueee3sG9t2zyU=";
ldflags = [
"-s"
+2 -2
View File
@@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qalculate-gtk";
version = "5.10.0";
version = "5.11.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-gtk";
tag = "v${finalAttrs.version}";
hash = "sha256-JZfolSRLRLtv529f25lEPYOlz+y+EdRqKA0Y5d1dK3s=";
hash = "sha256-EVDbpE/T5EvKK/fTNSDbMFMQR+uamiXo7yjv9Se09w4=";
};
patches = [
+2 -2
View File
@@ -9,13 +9,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "qalculate-qt";
version = "5.10.0";
version = "5.11.0";
src = fetchFromGitHub {
owner = "qalculate";
repo = "qalculate-qt";
tag = "v${finalAttrs.version}";
hash = "sha256-OxcwEydEerYhFnJAeXbGW6SpjdEIAi7UOQu8958qQFs=";
hash = "sha256-5u/YA5/k7JQclIqJUKvzGEenEhndo52m23XlFjkhw78=";
};
nativeBuildInputs = with qt6; [
+8 -2
View File
@@ -9,6 +9,7 @@
makeWrapper,
enableCmount ? true,
fuse3,
macfuse-stubs,
librclone,
nix-update-script,
}:
@@ -38,9 +39,14 @@ buildGoModule (finalAttrs: {
makeWrapper
];
buildInputs = lib.optional enableCmount fuse3;
buildInputs = lib.optional enableCmount (
# cgofuse uses the fuse2 header locations on darwin
if stdenv.hostPlatform.isDarwin then (macfuse-stubs.override { isFuse3 = false; }) else fuse3
);
tags = [ "fuse3" ] ++ lib.optionals enableCmount [ "cmount" ];
tags =
lib.optionals (!stdenv.hostPlatform.isDarwin) [ "fuse3" ]
++ lib.optionals enableCmount [ "cmount" ];
ldflags = [
"-s"
+6 -14
View File
@@ -16,8 +16,6 @@
makeWrapper,
replaceVars,
vulkan-loader,
nixosTests,
}:
buildNpmPackage (finalAttrs: {
@@ -72,19 +70,13 @@ buildNpmPackage (finalAttrs: {
buildPhase = ''
runHook preBuild
# electronDist needs to be modifiable
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
''
# Electron builder complains about symlink in electron-dist
+ lib.optionalString stdenv.hostPlatform.isLinux ''
rm electron-dist/libvulkan.so.1
cp ${lib.getLib vulkan-loader}/lib/libvulkan.so.1 electron-dist
''
+ ''
electron_dist="$(mktemp -d)"
cp -r ${electron.dist}/. "$electron_dist"
chmod -R u+w "$electron_dist"
npm run build
npm exec electron-builder -- --dir \
-c.electronDist=electron-dist \
-c.electronDist="$electron_dist" \
-c.electronVersion=${electron.version}
runHook postBuild
@@ -123,7 +115,7 @@ buildNpmPackage (finalAttrs: {
doCheck = stdenv.hostPlatform.isLinux;
checkPhase = ''
runHook preCheck
export ELECTRON_OVERRIDE_DIST_PATH=electron-dist/
export ELECTRON_OVERRIDE_DIST_PATH="$electron_dist"
export PUPPETEER_EXECUTABLE_PATH=${chromium}/bin/chromium
export CHROME_BIN=${chromium}/bin/chromium
npm run test
@@ -0,0 +1,89 @@
diff --git a/src/sage/config.py.in b/src/sage/config.py.in
index 3a95538d313..f75e951f3b8 100644
--- a/src/sage/config.py.in
+++ b/src/sage/config.py.in
@@ -48,6 +48,11 @@ FOURTITWO_PPI = "@FOURTITWO_PPI@"
FOURTITWO_CIRCUITS = "@FOURTITWO_CIRCUITS@"
FOURTITWO_GROEBNER = "@FOURTITWO_GROEBNER@"
+# Colon-separated list of pkg-config modules to search for cblas functionality.
+# We hard-code it here as cblas because configure (build/pkgs/openblas/spkg-configure.m4)
+# always provides cblas.pc, if necessary by creating a facade pc file for a system BLAS.
+CBLAS_PC_MODULES = "cblas"
+
# for sage_setup.setenv
SAGE_ARCHFLAGS = "@SAGE_ARCHFLAGS@"
SAGE_PKG_CONFIG_PATH = "@SAGE_PKG_CONFIG_PATH@".replace("$SAGE_LOCAL", SAGE_LOCAL)
diff --git a/src/sage/env.py b/src/sage/env.py
index f6c198a8617..dc45d11fb46 100644
--- a/src/sage/env.py
+++ b/src/sage/env.py
@@ -218,6 +218,7 @@ FOURTITWO_RAYS = var("FOURTITWO_RAYS")
FOURTITWO_PPI = var("FOURTITWO_PPI")
FOURTITWO_CIRCUITS = var("FOURTITWO_CIRCUITS")
FOURTITWO_GROEBNER = var("FOURTITWO_GROEBNER")
+CBLAS_PC_MODULES = var("CBLAS_PC_MODULES", "cblas:openblas:blas")
ECL_CONFIG = var("ECL_CONFIG", "ecl-config")
NTL_INCDIR = var("NTL_INCDIR")
NTL_LIBDIR = var("NTL_LIBDIR")
@@ -322,8 +323,17 @@ def sage_include_directories(use_sources=False):
return dirs
+def get_cblas_pc_module_name() -> str:
+ """
+ Return the name of the BLAS libraries to be used.
+ """
+ import pkgconfig
+ cblas_pc_modules = CBLAS_PC_MODULES.split(':')
+ return next(blas_lib for blas_lib in cblas_pc_modules if pkgconfig.exists(blas_lib))
+
+
default_required_modules = ('fflas-ffpack', 'givaro', 'gsl', 'linbox', 'Singular',
- 'libpng', 'gdlib', 'm4ri', 'zlib', 'ecl')
+ 'libpng', 'gdlib', 'm4ri', 'zlib', 'cblas', 'ecl')
default_optional_modules = ('lapack',)
@@ -348,7 +358,7 @@ def cython_aliases(required_modules=None, optional_modules=None):
sage: cython_aliases()
{...}
sage: sorted(cython_aliases().keys())
- ['ECL_CFLAGS',
+ ['CBLAS_CFLAGS',
...,
'ZLIB_LIBRARIES']
sage: cython_aliases(required_modules=('module-that-is-assumed-to-not-exist'))
@@ -395,6 +405,8 @@ def cython_aliases(required_modules=None, optional_modules=None):
for lib, required in itertools.chain(((lib, True) for lib in required_modules),
((lib, False) for lib in optional_modules)):
var = lib.upper().replace("-", "") + "_"
+ if lib == 'cblas':
+ lib = get_cblas_pc_module_name()
if lib == 'zlib':
aliases[var + "CFLAGS"] = ""
try:
diff --git a/src/sage/misc/cython.py b/src/sage/misc/cython.py
index 6d30189ae89..830a744c1aa 100644
--- a/src/sage/misc/cython.py
+++ b/src/sage/misc/cython.py
@@ -50,12 +50,16 @@ def _standard_libs_libdirs_incdirs_aliases():
{...})
"""
aliases = cython_aliases()
- standard_libs = ["mpfr", "gmp", "gmpxx", "pari", "m", "ec", "gsl", "ntl"]
+ standard_libs = [
+ 'mpfr', 'gmp', 'gmpxx', 'pari', 'm',
+ 'ec', 'gsl',
+ ] + aliases["CBLAS_LIBRARIES"] + [
+ 'ntl']
standard_libdirs = []
if SAGE_LOCAL:
standard_libdirs.append(os.path.join(SAGE_LOCAL, "lib"))
- standard_libdirs.extend(aliases["NTL_LIBDIR"])
- standard_incdirs = [dir.as_posix() for dir in get_include_dirs()] + aliases["NTL_INCDIR"]
+ standard_libdirs.extend(aliases["CBLAS_LIBDIR"] + aliases["NTL_LIBDIR"])
+ standard_incdirs = [dir.as_posix() for dir in get_include_dirs()] + aliases["CBLAS_INCDIR"] + aliases["NTL_INCDIR"]
return standard_libs, standard_libdirs, standard_incdirs, aliases
################################################################
@@ -0,0 +1,14 @@
diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
index 62b2d3cb112..df4665982e8 100644
--- a/src/sage_docbuild/sphinxbuild.py
+++ b/src/sage_docbuild/sphinxbuild.py
@@ -107,7 +107,8 @@ class SageSphinxLogger():
re.compile('WARNING: Any IDs not assiend for figure node'),
re.compile('WARNING: .* is not referenced'),
re.compile('WARNING: Build finished'),
- re.compile('WARNING: rST localisation for language .* not found')
+ re.compile('WARNING: rST localisation for language .* not found'),
+ re.compile('WARNING: error while formatting arguments for .*')
)
# The warning "unknown config value 'multidoc_first_pass'..."
# should only appear when building the documentation for a
@@ -0,0 +1,129 @@
diff --git a/src/doc/en/reference/repl/meson.build b/src/doc/en/reference/repl/meson.build
index eb492404897..9b162becf3b 100644
--- a/src/doc/en/reference/repl/meson.build
+++ b/src/doc/en/reference/repl/meson.build
@@ -9,10 +9,3 @@ doc_sources = [
foreach file : doc_sources
doc_src += fs.copyfile(file)
endforeach
-
-doc_src_repl = custom_target(
- 'options',
- output: ['options.txt'],
- command: [py, src / 'sage' / 'cli', '--help'],
- capture: true,
-)
diff --git a/src/doc/meson.build b/src/doc/meson.build
index 1f33822cf5f..5ba1ab0397b 100644
--- a/src/doc/meson.build
+++ b/src/doc/meson.build
@@ -1,11 +1,21 @@
-if not get_option('build-docs')
- subdir_done()
-endif
-
-warning(
- 'Documentation building enabled, generating targets may be slow. To disable this, pass -Dbuild-docs=false.',
+project(
+ 'SageMath',
+ ['c', 'cpp', 'cython'],
+ version: '10.9',
+ license: 'GPL v3',
+ default_options: ['c_std=c17', 'cpp_std=c++17', 'python.install_env=auto'],
+ meson_version: '>=1.5',
)
+src = meson.current_source_dir()
+fs = import('fs')
+
+# Python module
+# https://mesonbuild.com/Python-module.html
+py_module = import('python')
+py = py_module.find_installation(pure: false)
+py_dep = py.dependency()
+
sphinx_check = py_module.find_installation(required: false, modules: ['sphinx'])
if not sphinx_check.found()
warning(
@@ -35,21 +45,17 @@ doc_bootstrap = custom_target(
'bootstrap',
output: ['autogen'],
command: [
- py,
- files('../../tools/bootstrap-docs.py'),
+ 'sage',
+ '-python',
+ files('bootstrap-docs.py'),
meson.current_build_dir(),
],
- env: {'SAGE_ROOT': root},
- # doc_src is not really a dependency of the bootstrap, but we want to make sure
- # that all the source files are present before running the actual doc build
- # so let's collect all source-related targets here.
- depends: doc_src,
)
references = run_command(
- py,
[
- src / 'build-docs.py',
+ 'sage',
+ '--docbuild',
'--no-prune-empty-dirs',
'--all-documents',
'reference',
@@ -71,10 +77,7 @@ foreach type : ['inventory', 'html', 'pdf']
short_ref = ref
endif
deps = []
- deps += doc_bootstrap
- if short_ref == 'repl'
- deps += doc_src_repl
- endif
+ deps += doc_bootstrap
if type == 'html' or type == 'pdf'
deps += reference_inventory
endif
@@ -93,8 +96,8 @@ foreach type : ['inventory', 'html', 'pdf']
'doc-' + type + '-reference-' + short_ref,
output: [type + short_ref],
command: [
- py,
- src / 'build-docs.py',
+ 'sage',
+ '--docbuild',
'--no-prune-empty-dirs',
'--no-pdf-links',
ref,
@@ -120,9 +123,9 @@ foreach type : ['inventory', 'html', 'pdf']
endforeach
other_documents = run_command(
- py,
[
- src / 'build-docs.py',
+ 'sage',
+ '--docbuild',
'--no-prune-empty-dirs',
'--all-documents',
'all',
@@ -140,8 +143,8 @@ foreach type : ['html', 'pdf']
'doc-' + type + '-other-' + short_doc,
output: [type + short_doc],
command: [
- py,
- src / 'build-docs.py',
+ 'sage',
+ '--docbuild',
'--no-prune-empty-dirs',
'--no-pdf-links',
doc,
diff --git a/src/meson.build b/src/meson.build
index 039cbbd1294..dfb82d980fb 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -309,4 +309,3 @@ src = meson.current_source_dir()
# Submodules
subdir('sage')
-subdir('doc')
@@ -1,30 +0,0 @@
diff --git a/src/sage_docbuild/builders.py b/src/sage_docbuild/builders.py
index 91035a01f1c..24f3d0c7c12 100644
--- a/src/sage_docbuild/builders.py
+++ b/src/sage_docbuild/builders.py
@@ -130,10 +130,9 @@ def builder_helper(type):
logger.debug(build_command)
# Run Sphinx with Sage's special logger
- sys.argv = ["sphinx-build"] + build_command.split()
- from .sphinxbuild import runsphinx
+ args = "python3 -um sage_docbuild.sphinxbuild -N".split() + build_command.split()
try:
- runsphinx()
+ subprocess.check_call(args)
except Exception:
if build_options.ABORT_ON_ERROR:
raise
diff --git a/src/sage_docbuild/sphinxbuild.py b/src/sage_docbuild/sphinxbuild.py
index 62b2d3cb112..aa7dc07741b 100644
--- a/src/sage_docbuild/sphinxbuild.py
+++ b/src/sage_docbuild/sphinxbuild.py
@@ -331,3 +331,8 @@ def runsphinx():
if not sys.warnoptions:
warnings.filters = original_filters[:]
+
+if __name__ == '__main__':
+ import sys
+ sys.argv[0] = "sphinx-build"
+ runsphinx()
@@ -0,0 +1,32 @@
diff --git a/src/sage/config.py.in b/src/sage/config.py.in
index 3a95538d313..cdd551122fc 100644
--- a/src/sage/config.py.in
+++ b/src/sage/config.py.in
@@ -4,6 +4,8 @@ import sage
VERSION = "@PACKAGE_VERSION@"
+SAGE_BUILD_SRC = "@EDITABLE_SRC@/src"
+
# The following must not be used during build to determine source or installation
# location of sagelib. See comments in SAGE_ROOT/src/Makefile.in
# These variables come first so that other substituted variable values can refer
diff --git a/src/sage/misc/sageinspect.py b/src/sage/misc/sageinspect.py
index c237af52c24..7a8e8291406 100644
--- a/src/sage/misc/sageinspect.py
+++ b/src/sage/misc/sageinspect.py
@@ -270,6 +270,14 @@ def _extract_embedded_position(docstring):
return None
raw_filename = res.group('FILENAME')
+
+ # remove SAGE_BUILD_SRC prefix to workaround
+ # https://github.com/cython/cython/pull/6755
+ from sage.config import SAGE_BUILD_SRC
+ from os.path import commonprefix, relpath
+ if commonprefix([raw_filename, SAGE_BUILD_SRC]) == SAGE_BUILD_SRC:
+ raw_filename = relpath(raw_filename, SAGE_BUILD_SRC)
+
filename = raw_filename
if not os.path.isabs(filename):
+53 -75
View File
@@ -7,6 +7,7 @@
env-locations,
gfortran,
ninja,
meson,
bash,
coreutils,
gnused,
@@ -66,6 +67,7 @@ let
pythonEnv
gfortran # for inline fortran
ninja # for inline fortran via numpy.f2py
meson # for inline fortran
stdenv.cc # for cython
bash
coreutils
@@ -129,84 +131,60 @@ writeTextFile rec {
m4ri
]
}'
export SAGE_ROOT='${sagelib.src}'
''
+
# TODO: is using pythonEnv instead of @sage-local@ here a good
# idea? there is a test in src/sage/env.py that checks if the values
# SAGE_ROOT and SAGE_LOCAL set here match the ones set in env.py.
# we fix up env.py's SAGE_ROOT in sage-src.nix (which does not
# have access to sage-with-env), but env.py autodetects
# SAGE_LOCAL to be pythonEnv.
# setting SAGE_LOCAL to pythonEnv also avoids having to create
# python3, ipython, ipython3 and jupyter symlinks in
# sage-with-env.nix.
''
export SAGE_LOCAL='${pythonEnv}'
export PATH="${runtimepath}:$PATH"
export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}"
export SAGE_DOC_SRC="''${SAGE_DOC_SRC_OVERRIDE:-${sagelib.src}/src/doc}"
export SAGE_SHARE='${sagelib}/share'
export SAGE_ENV_CONFIG_SOURCED=1 # sage-env complains if sage-env-config is not sourced beforehand
orig_path="$PATH"
export PATH='${runtimepath}'
# set locations of dependencies
. ${env-locations}/sage-env-locations
# set dependent vars, like JUPYTER_CONFIG_DIR
source "${sagelib.src}/src/bin/sage-env"
export PATH="$RUNTIMEPATH_PREFIX:${runtimepath}:$orig_path" # sage-env messes with PATH
# needed for cython
export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc'
export CXX='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++'
# cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
export LDFLAGS='${
lib.concatStringsSep " " (
map (pkg: "-L${pkg}/lib") [
flint
gap
glpk
gmp
mpfr
pari
zlib
eclib
gsl
ntl
sympow
]
)
}'
export CFLAGS='${
lib.concatStringsSep " " (
map (pkg: "-isystem ${pkg}/include") [
singular
gmp.dev
glpk
flint
gap
mpfr.dev
]
)
}'
export CXXFLAGS=$CFLAGS
export SAGE_LOGS="$TMPDIR/sage-logs"
export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}"
export SAGE_DOC_SRC="''${SAGE_DOC_SRC_OVERRIDE:-${sagelib.src}/src/doc}"
export SAGE_LIB='${sagelib}/${python3.sitePackages}'
# set locations of dependencies
. ${env-locations}/sage-env-locations
export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
# needed for cython
export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc'
export CXX='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++'
# cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar
export LDFLAGS='${
lib.concatStringsSep " " (
map (pkg: "-L${pkg}/lib") [
flint
gap
glpk
gmp
mpfr
pari
zlib
eclib
gsl
ntl
sympow
]
)
}'
export CFLAGS='${
lib.concatStringsSep " " (
map (pkg: "-isystem ${pkg}/include") [
singular
gmp.dev
glpk
flint
gap
mpfr.dev
]
)
}'
export CXXFLAGS=$CFLAGS
export SAGE_LIB='${sagelib}/${python3.sitePackages}'
export SAGE_EXTCODE='${sagelib.src}/src/sage/ext_data'
# for find_library
export DYLD_LIBRARY_PATH="${
lib.makeLibraryPath [
stdenv.cc.libc
singular
giac
gap
]
}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
'';
# for find_library
export DYLD_LIBRARY_PATH="${
lib.makeLibraryPath [
stdenv.cc.libc
singular
giac
gap
]
}''${DYLD_LIBRARY_PATH:+:}$DYLD_LIBRARY_PATH"
'';
}
+45 -72
View File
@@ -12,14 +12,14 @@
# all get the same sources with the same patches applied.
stdenv.mkDerivation rec {
version = "10.7";
version = "10.9";
pname = "sage-src";
src = fetchFromGitHub {
owner = "sagemath";
repo = "sage";
rev = version;
hash = "sha256-nYlBmKQ9TD5EAVvNwo8YzqAd5IUCpTU3kBTqUH21IxQ=";
hash = "sha256-8IBCQYdmL7ane7/WOoogArbwgqPDtL8ecz9GIzuEfOU=";
};
# contains essential files (e.g., setup.cfg) generated by the bootstrap script.
@@ -27,21 +27,39 @@ stdenv.mkDerivation rec {
configure-src = fetchurl {
# the hash below is the tagged commit's _parent_. it can also be found by looking for
# the "configure" asset at https://github.com/sagemath/sage/releases/tag/${version}
url = "mirror://sageupstream/configure/configure-858268b40010e5ed6da13488ad0f52cda4d1f70e.tar.gz";
hash = "sha256-TsVX+wUWr+keCXmGQp1OHGXgNc7luajyGxfTwduSEtc=";
url = "mirror://sageupstream/configure/configure-8592858fd4c0eb936cfa9ebf704d165f6b857617.tar.gz";
hash = "sha256-jakdc+4S/2uRooEaXMlNZpo01dVBumVp7HHHP4iZu0c=";
};
# Patches needed because of particularities of nix or the way this is packaged.
# The goal is to upstream all of them and get rid of this list.
nixPatches = [
# Parallelize docubuild using subprocesses, fixing an isolation issue. See
# https://groups.google.com/forum/#!topic/sage-packaging/YGOm8tkADrE
./patches/sphinx-docbuild-subprocesses.patch
# After updating smypow to (https://github.com/sagemath/sage/issues/3360)
# we can now set the cache dir to be within the .sage directory. This is
# not strictly necessary, but keeps us from littering in the user's HOME.
./patches/sympow-cache.patch
# MILD HACK: Turn src/doc/meson.build into a standalone project, so we can
# docbuild separately.
./patches/sagedoc-standalone-meson.patch
# Silence some warnings during docbuild. Imported from Arch.
./patches/sagedoc-silence-formatting-warnings.patch
# Workaround for https://github.com/cython/cython/pull/6755, adapted from Void. Can be removed after next Cython release.
./patches/workaround-cython-relpaths.patch
# Revert https://github.com/sagemath/sage/pull/40520. It causes
# "undefined symbol: cblas_ctrmv" errors.
./patches/revert-blas-mesonification.patch
# https://github.com/sagemath/sage/pull/41637 causes problems when
# docbuilding.
(fetchpatch2 {
url = "https://github.com/sagemath/sage/commit/854ea0e546ee24ff09072ee77550b944b54f697c.patch?full_index=1";
revert = true;
hash = "sha256-j5evAmOtKEG4OVFb/w/SVY2vvP5BSkqHBDmnroh8XY0=";
})
]
++ lib.optionals (stdenv.cc.isClang) [
# https://github.com/NixOS/nixpkgs/pull/264126
@@ -60,11 +78,11 @@ stdenv.mkDerivation rec {
# a more conservative version of https://github.com/sagemath/sage/pull/37951
./patches/gap-element-crash.patch
# https://github.com/sagemath/sage/pull/40895, landed in 10.8.beta6
# https://github.com/sagemath/sage/pull/42009, landed in 10.10.beta0
(fetchpatch2 {
name = "doctest-absolute-path.patch";
url = "https://github.com/sagemath/sage/commit/3a5904d43f552bf63ed1eed9154f87b1f0de53fb.patch?full_index=1";
hash = "sha256-rp+9d8Y6kifWzufE07GWU68txPn//w7uMn4LcpITaBs=";
name = "gap-root-paths.patch";
url = "https://github.com/sagemath/sage/commit/24c9605a770b2419cd401bf6c8780bb4be923244.patch?full_index=1";
hash = "sha256-68w2HWLR6mb13BWi5Fb6SfPAqPbdJrns0l5T6SoMqNI=";
})
];
@@ -75,63 +93,6 @@ stdenv.mkDerivation rec {
# should come from or be proposed to upstream. This list will probably never
# be empty since dependencies update all the time.
packageUpgradePatches = [
# https://github.com/sagemath/sage/pull/40919, landed in 10.8.beta8
(fetchpatch2 {
name = "gap-4.15.1-update.patch";
url = "https://github.com/sagemath/sage/commit/54d4ddb132cc71ef26b4db1f48afd6736d41cc63.patch?full_index=1";
hash = "sha256-PZyOXRsgcsPvgceGGZXet5URJgWiIlCfFx8tvwpLk5A=";
excludes = [ "src/doc/zh/constructions/rep_theory.rst" ];
})
# https://github.com/sagemath/sage/pull/41141, landed in 10.8.beta9
(fetchpatch2 {
name = "ipython-9_7_0-unicode_to_str.patch";
url = "https://github.com/sagemath/sage/commit/fa00696112fde95e0c4241ad6063936200ce6f68.patch?full_index=1";
hash = "sha256-eFDpNu/2gcQATELmQ7/VzXI35xIzaVrD8bhhJ57e2gc=";
})
# https://github.com/sagemath/sage/pull/41233, landed in 10.8.rc0
(fetchpatch2 {
name = "flint-3.4-update.patch";
url = "https://github.com/sagemath/sage/commit/9bd5304f1a222e215d7006a04854ff66616748bf.patch?full_index=1";
hash = "sha256-7bgouXV3pM20IX5PM24ZpJWOBlZjQksGtjopgouEbyg=";
})
# https://github.com/sagemath/sage/pull/41078, landed in 10.8.beta8
(fetchpatch2 {
name = "docutils-0.22-update.patch";
url = "https://github.com/sagemath/sage/commit/e206e205a6841cc5251dfb37fdd36ed29345fba4.patch?full_index=1";
hash = "sha256-Y8DqwGBkRnL+6ejZibCmkEJ7q/Qs0wD2KGmAefVdd94=";
})
# https://github.com/sagemath/sage/pull/41342, landed in 10.9.beta1
(fetchpatch2 {
name = "numpy-2.4-update.patch";
url = "https://github.com/sagemath/sage/commit/97ceea842a39fa2f2e9098daae2738a2f2765b9e.patch?full_index=1";
hash = "sha256-/Tk3tIy0syOjaNRMCyot6kma3jj4288QJ3zypS79jZo=";
})
# https://github.com/sagemath/sage/pull/41346, landed in 10.9.beta2
(fetchpatch2 {
name = "ipython-9.8-updte.patch";
url = "https://github.com/sagemath/sage/commit/380949e6eeda80cca6e5dd971e2c6f367647a863.patch?full_index=1";
hash = "sha256-e4zmgfHrenOixgbUS1uFHzftmwNGGoSb7yFhYmqT0yc=";
})
# https://github.com/sagemath/sage/pull/41395, landed in 10.9.beta2
(fetchpatch2 {
name = "pyparsing-3.3-update.patch";
url = "https://github.com/sagemath/sage/commit/1b5a5dd78b5dcb4b3c7d1f94461ddbc647c5679f.patch?full_index=1";
hash = "sha256-kFXg2O3IpwaOwAaNIy6Wscx8/XSDWXrqAXS2ZJgdqsg=";
})
# https://github.com/sagemath/sage/pull/41433, landed in 10.9.beta3
(fetchpatch2 {
name = "scipy-1.17-update.patch";
url = "https://github.com/sagemath/sage/commit/ff58afe27c80c067a8965e1d70966e25d0355aaf.patch?full_index=1";
hash = "sha256-gWoXwhUVXL2RSVLPRbxtlP0LCSEkJ9z1PJ1wKLXef1k=";
})
# https://github.com/sagemath/sage/pull/42089, landed in 10.10.beta0
(fetchpatch2 {
name = "flint-3.5.0-update.patch";
@@ -158,16 +119,28 @@ stdenv.mkDerivation rec {
"s|var(\"SAGE_ROOT\".*|var(\"SAGE_ROOT\", \"$out\")|" \
src/sage/env.py
# https://github.com/sagemath/sage/pull/40489 removed this file,
# but it seems like autogen/interpreters/internal/__init__.py
# was not fully adapted for that, and it causes fast_callable problems
touch src/sage/ext/all.py
# HACK: meson tries to run maxima at build time. that's not necessary
# because we ensure Sage will find all it needs at runtime.
sed -i 's/not is_windows/false/g' src/sage/meson.build
sed -i 's/if not maxima_present/if false/g' src/sage/libs/meson.build
sed -i '/SAGE_MAXIMA/d' src/sage/libs/meson.build
# sage --docbuild unsets JUPYTER_PATH, which breaks our docbuilding
# https://trac.sagemath.org/ticket/33650#comment:32
sed -i "/export JUPYTER_PATH/d" src/bin/sage
'';
buildPhase = "# do nothing";
buildPhase = ''
tar xzf ${configure-src}
rm configure
'';
installPhase = ''
cp -r . "$out"
tar xzf ${configure-src} -C "$out"
rm "$out/configure"
'';
}
+21 -5
View File
@@ -12,15 +12,31 @@ stdenv.mkDerivation rec {
strictDeps = true;
nativeBuildInputs = with python3.pkgs; [
meson-python
cython
sphinx
];
unpackPhase = ''
export SAGE_DOC_OVERRIDE="$PWD/share/doc/sage"
export SAGE_DOC_SRC_OVERRIDE="$PWD/docsrc"
cp -r "${src}/src/doc" "$SAGE_DOC_SRC_OVERRIDE"
chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE"
# Tools needed for meson to run the bootstrap script
cp -r "${src}/tools/bootstrap-docs.py" "$SAGE_DOC_SRC_OVERRIDE"
cp -r "${src}/build/sage_bootstrap" "$SAGE_DOC_SRC_OVERRIDE"
chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE/sage_bootstrap/env.py"
sed "/assert/d" "${src}/build/sage_bootstrap/env.py" > "$SAGE_DOC_SRC_OVERRIDE/sage_bootstrap/env.py"
'';
preBuild = ''
preConfigure = ''
cd docsrc
'';
buildPhase = ''
export SAGE_ROOT="${sage-with-env.env.lib.src}"
export PATH="${sage-with-env}/bin:$PATH"
export HOME="$TMPDIR/sage_home"
@@ -32,10 +48,10 @@ stdenv.mkDerivation rec {
# jupyter-sphinx calls the sagemath jupyter kernel during docbuild
export JUPYTER_PATH=${jupyter-kernel-specs}
# the Makefile tries to guess SAGE_DOC, but in a buggy way (changed in 10.8)
export SAGE_DOC="$SAGE_DOC_OVERRIDE"
cd docsrc
meson setup $SAGE_DOC_OVERRIDE
meson compile -C $SAGE_DOC_OVERRIDE
sage -advanced > $SAGE_DOC_OVERRIDE/en/reference/repl/options.txt
meson compile -C $SAGE_DOC_OVERRIDE doc-html
'';
enableParallelBuilding = true;
+9 -27
View File
@@ -9,6 +9,7 @@
perl,
pkg-config,
sage-setup,
sage-docbuild,
setuptools,
gd,
iml,
@@ -73,6 +74,7 @@
pplpy,
primecountpy,
ptyprocess,
pytest,
requests,
rpy2,
scipy,
@@ -103,10 +105,8 @@ buildPythonPackage rec {
pkg-config
sage-setup
setuptools
];
pythonRelaxDeps = [
"sphinx"
meson-python
cython
];
buildInputs = [
@@ -115,6 +115,8 @@ buildPythonPackage rec {
libpng
];
mesonFlags = [ "-Dbuild-docs=false" ];
env = lib.optionalAttrs stdenv.cc.isClang {
# code tries to assign a unsigned long to an int in an initialized list
# leading to this error.
@@ -175,7 +177,6 @@ buildPythonPackage rec {
lrcalc-python
matplotlib
memory-allocator
meson-python
mpmath
networkx
numpy
@@ -186,8 +187,10 @@ buildPythonPackage rec {
pplpy
primecountpy
ptyprocess
pytest
requests
rpy2
sage-docbuild
scipy
sphinx
sympy
@@ -195,28 +198,7 @@ buildPythonPackage rec {
];
preBuild = ''
export SAGE_ROOT="$PWD"
export SAGE_LOCAL="$SAGE_ROOT"
export SAGE_SHARE="$SAGE_LOCAL/share"
# set locations of dependencies (needed for nbextensions like threejs)
. ${env-locations}/sage-env-locations
export JUPYTER_PATH="$SAGE_LOCAL/jupyter"
export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH"
export SAGE_NUM_THREADS="$NIX_BUILD_CORES"
mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython"
mkdir -p "var/lib/sage/installed"
sed -i "/sage-conf/d" src/{setup.cfg,pyproject.toml,requirements.txt}
cd build/pkgs/sagelib/src
'';
postInstall = ''
rm -r "$out/${python.sitePackages}/sage/cython_debug"
patchShebangs src/sage_setup/autogen/interpreters/__main__.py
'';
doCheck = false; # we will run tests in sage-tests.nix
+2 -2
View File
@@ -10,13 +10,13 @@
}:
buildGoModule (finalAttrs: {
pname = "seanime";
version = "3.8.2";
version = "3.8.3";
src = fetchFromGitHub {
owner = "5rahim";
repo = "seanime";
tag = "v${finalAttrs.version}";
hash = "sha256-7wOmvOrs4/YiIjOGdp6pleUcUjNaXhZFvtwBTSn5BQI=";
hash = "sha256-jD18xNgSKitgRzUjwJA2q79Me/qZzFb+fSLdycmAld0=";
};
nativeBuildInputs = [
+4 -10
View File
@@ -5,7 +5,6 @@
fetchFromGitHub,
makeWrapper,
electron_40,
vulkan-loader,
makeDesktopItem,
copyDesktopItems,
commandLineArgs ? [ ],
@@ -67,17 +66,12 @@ buildNpmPackage (finalAttrs: {
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
''
# Electron builder complains about symlink in electron-dist
+ lib.optionalString stdenv.hostPlatform.isLinux ''
rm electron-dist/libvulkan.so.1
cp '${lib.getLib vulkan-loader}/lib/libvulkan.so.1' electron-dist
''
# Explicitly set identity to null to avoid signing on arm64 macs with newer electron-builder.
# See: https://github.com/electron-userland/electron-builder/pull/9007
+ ''
npm run electron:pack
# Explicitly set identity to null to avoid signing on arm64 macs with newer electron-builder.
# See: https://github.com/electron-userland/electron-builder/pull/9007
./node_modules/.bin/electron-builder \
--dir \
--config .electron-builder.config.mjs \
@@ -1,6 +1,7 @@
{
lib,
stdenv,
nodejs_22,
buildNpmPackage,
fetchFromGitHub,
electron,
@@ -32,6 +33,9 @@ buildNpmPackage {
pname = "sieve-editor-gui";
version = "0.6.1-unstable-2025-03-12";
# npm dependency install fails with nodejs_24: https://github.com/NixOS/nixpkgs/issues/474535
nodejs = nodejs_22;
src = fetchFromGitHub {
owner = "thsmi";
repo = "sieve";
+5 -5
View File
@@ -20,7 +20,7 @@
libinput,
gdk-pixbuf,
librsvg,
wlroots_0_19,
wlroots_0_20,
wayland-protocols,
libdrm,
evdev-proto,
@@ -36,7 +36,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "sway-unwrapped";
version = "1.11";
version = "1.12";
inherit
enableXWayland
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
owner = "swaywm";
repo = "sway";
rev = finalAttrs.version;
hash = "sha256-xMrexVDpgkGnvAAglshsh7HjvcbU2/Q6JLUd5J487qg=";
hash = "sha256-OcF7jOOHhFPhM5APn5riy8S5jsEr9jALCVh9nBtD7Nk=";
};
patches = [
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
librsvg
wayland-protocols
libdrm
(wlroots_0_19.override { inherit (finalAttrs) enableXWayland; })
(wlroots_0_20.override { inherit (finalAttrs) enableXWayland; })
]
++ lib.optionals stdenv.hostPlatform.isFreeBSD [
evdev-proto
@@ -139,7 +139,7 @@ stdenv.mkDerivation (finalAttrs: {
changelog = "https://github.com/swaywm/sway/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
platforms = lib.platforms.linux ++ lib.platforms.freebsd;
maintainers = [ ];
maintainers = with lib.maintainers; [ c6rg0 ];
mainProgram = "sway";
};
})
+3 -3
View File
@@ -12,20 +12,20 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "taze";
version = "19.11.0";
version = "19.13.0";
src = fetchFromGitHub {
owner = "antfu-collective";
repo = "taze";
tag = "v${finalAttrs.version}";
hash = "sha256-lWCfaIZF1g8tO+QKd5igxCI44OEiLk1cNS4MMtqGL4M=";
hash = "sha256-EUfZ8Qh/g4t5R5leMP67ReWapp5hkcjwt+0VLI+ezTs=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_9;
fetcherVersion = 3;
hash = "sha256-x9XPnvyrAmFqIMhjBFQYQE1qKDG6uxzd0NnxIjdOXio=";
hash = "sha256-4ZTdSEjxu6+q3LZ6bUykqsSEgzQAN/IGkPhpKx+DwDg=";
};
nativeBuildInputs = [
+4 -11
View File
@@ -10,7 +10,6 @@
makeWrapper,
nix-update-script,
versionCheckHook,
vulkan-loader,
which,
}:
@@ -46,21 +45,15 @@ buildNpmPackage rec {
buildPhase = ''
runHook preBuild
cp -r ${electron_41.dist} electron-dist
chmod -R u+w electron-dist
''
# Electron builder complains about symlink in electron-dist
+ lib.optionalString stdenv.hostPlatform.isLinux ''
rm electron-dist/libvulkan.so.1
cp ${lib.getLib vulkan-loader}/lib/libvulkan.so.1 electron-dist
''
+ ''
electron_dist="$(mktemp -d)"
cp -r ${electron_41.dist}/. "$electron_dist"
chmod -R u+w "$electron_dist"
npm exec electron-builder -- \
--dir \
-c.npmRebuild=true \
-c.asarUnpack="**/*.node" \
-c.electronDist=electron-dist \
-c.electronDist="$electron_dist" \
-c.electronVersion=${electron_41.version} \
-c.mac.identity=null
+2 -2
View File
@@ -24,14 +24,14 @@
stdenv.mkDerivation rec {
pname = "tev";
version = "2.12.0";
version = "2.12.1";
src = fetchFromGitHub {
owner = "Tom94";
repo = "tev";
tag = "v${version}";
fetchSubmodules = true;
hash = "sha256-MQb1G3l+mC50JIVj0rHget47hM6O+iywB7B1NvAa1WE=";
hash = "sha256-W/K70l4WXUyZUa1gVivr3y/CT4QYq12FuJqSLA2dyFU=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isLinux (
@@ -1,42 +1,40 @@
diff --git a/server.go b/server.go
index e2f2ab3..f81812f 100644
index 4499a6d..4c14d1a 100644
--- a/server.go
+++ b/server.go
@@ -16,6 +16,7 @@ import (
@@ -24,6 +24,7 @@ import (
"github.com/sagernet/sing-box/experimental/clashapi"
"github.com/sagernet/sing/common"
E "github.com/sagernet/sing/common/exceptions"
+ "golang.org/x/sys/unix"
"github.com/sagernet/sing/service"
"github.com/throneproj/clash2singbox/convert"
"github.com/throneproj/clash2singbox/model"
"github.com/throneproj/clash2singbox/model/clash"
@@ -349,12 +350,25 @@ func (s *server) CompileGeoSiteToSrs(in *gen.CompileGeoSiteToSrsRequest, out *ge
}
"github.com/xtls/xray-core/core"
)
@@ -462,6 +463,27 @@ func (s *server) IsPrivileged(ctx context.Context, _ *gen.EmptyReq) (*gen.IsPriv
}, nil
}
func (s *server) IsPrivileged(in *gen.EmptyReq, out *gen.IsPrivilegedResponse) error {
- if runtime.GOOS == "windows" {
- out.HasPrivilege = To(false)
- return nil
+ ret := false
+ if runtime.GOOS == "windows" || os.Geteuid() == 0 {
+ ret = true
+ } else if runtime.GOOS == "linux" {
+ if runtime.GOOS == "linux" {
+ caps := unix.CapUserHeader{
+ Version: unix.LINUX_CAPABILITY_VERSION_3,
+ Pid: 0, // current
+ }
+
+ var data [2]unix.CapUserData
+ err := unix.Capget(&caps, &data[0])
+
+ if err != nil {
+ ret = false
+ } else {
+ // CAP_NET_ADMIN = 12
+ ret = (data[0].Effective & (1 << unix.CAP_NET_ADMIN)) != 0
+ return &gen.IsPrivilegedResponse{
+ HasPrivilege: To(false),
+ }, nil
+ }
}
- out.HasPrivilege = To(os.Geteuid() == 0)
+ out.HasPrivilege = To(ret)
return nil
+
+ // CAP_NET_ADMIN = 12
+ return &gen.IsPrivilegedResponse{
+ HasPrivilege: To((data[0].Effective & (1 << unix.CAP_NET_ADMIN)) != 0),
+ }, nil
+ }
+
return &gen.IsPrivilegedResponse{HasPrivilege: To(os.Geteuid() == 0)}, nil
}
@@ -0,0 +1,24 @@
diff --git a/src/sys/linux/AutoRun.cpp b/src/sys/linux/AutoRun.cpp
index 1fafe35..fe04c75 100644
--- a/src/sys/linux/AutoRun.cpp
+++ b/src/sys/linux/AutoRun.cpp
@@ -31,18 +31,9 @@ void AutoRun_SetEnabled(bool enable) {
QString desktopFileLocation = userAutoStartPath + appName + QLatin1String(".desktop");
QStringList appCmdList;
- if (QProcessEnvironment::systemEnvironment().contains("APPIMAGE")) {
- appCmdList << QProcessEnvironment::systemEnvironment().value("APPIMAGE");
- } else {
- appCmdList << QApplication::applicationFilePath();
- }
-
+ appCmdList << "Throne";
appCmdList << "-tray";
- if (Configs::dataManager->settingsRepo->flag_use_appdata) {
- appCmdList << "-appdata";
- }
-
if (enable) {
if (!QDir().exists(userAutoStartPath) && !QDir().mkpath(userAutoStartPath)) {
// qCWarning(lcUtility) << "Could not create autostart folder"
@@ -1,42 +1,42 @@
diff --git a/src/global/Configs.cpp b/src/global/Configs.cpp
index e7bec9c..f0dfe53 100644
index 37b69be..2d458f3 100644
--- a/src/global/Configs.cpp
+++ b/src/global/Configs.cpp
@@ -404,6 +404,12 @@ namespace Configs {
// System Utils
@@ -45,6 +45,12 @@ namespace Configs {
}
QString FindCoreRealPath() {
+ // find in PATH first
+ QString path_for_nixos = QStandardPaths::findExecutable("throne-core");
+ QString path_for_nixos = QStandardPaths::findExecutable("ThroneCore");
+ if (!path_for_nixos.isEmpty()) {
+ return path_for_nixos;
+ }
+
auto fn = QApplication::applicationDirPath() + "/Core";
auto fn = QApplication::applicationDirPath() + "/ThroneCore";
#ifdef Q_OS_WIN
fn += ".exe";
diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp
index d31c311..ce4c357 100644
index 9acfee4..c0c313a 100644
--- a/src/ui/mainwindow.cpp
+++ b/src/ui/mainwindow.cpp
@@ -151,8 +151,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
Configs::dataStore->core_port = MkPort();
if (Configs::dataStore->core_port <= 0) Configs::dataStore->core_port = 19810;
@@ -163,8 +163,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
Configs::dataManager->settingsRepo->core_port = MkPort();
if (Configs::dataManager->settingsRepo->core_port <= 0) Configs::dataManager->settingsRepo->core_port = 19810;
- auto core_path = QApplication::applicationDirPath() + "/";
- core_path += "Core";
- core_path += "ThroneCore";
+ auto core_path = Configs::FindCoreRealPath();
QStringList args;
args.push_back("-port");
@@ -1045,6 +1044,15 @@ bool MainWindow::get_elevated_permissions(int reason) {
@@ -1296,6 +1295,15 @@ bool MainWindow::get_elevated_permissions(int reason) {
return true;
}
if (Configs::IsAdmin()) return true;
+ QMessageBox::critical(
+ GetMessageBoxParent(),
+ tr("Unable to elevate privileges when installed with Nix"),
+ tr("Due to the read-only property of Nix store, we cannot set suid for throne-core. If you are using NixOS, please install Throne via `programs.throne.enable` and then set the `programs.throne.tunMode.enable` option to elevate privileges."),
+ tr("Due to the read-only property of the Nix store, we cannot set suid for ThroneCore. If you are using NixOS, please install Throne via `programs.throne.enable` and then set the `programs.throne.tunMode.enable` option to elevate privileges."),
+ QMessageBox::Ok
+ );
+ return false;
+30 -23
View File
@@ -9,7 +9,7 @@
protobuf,
protoc-gen-go,
protorpc,
protoc-gen-go-grpc,
cmake,
copyDesktopItems,
@@ -19,23 +19,20 @@
# override if you want to have more up-to-date rulesets
throne-srslist ? fetchurl {
url = "https://raw.githubusercontent.com/throneproj/routeprofiles/0fca735ff2759422c407ac04fac819aef2fc88f9/srslist.h";
hash = "sha256-G2WUStxFtN0fbZm/KoD9ldUvkMWf9cDA+9fvYt8dcqo=";
url = "https://raw.githubusercontent.com/throneproj/routeprofiles/c637d0bb8a3707eb5e122c81753600d3e18a5969/srslist.h";
hash = "sha256-Kf3TAGXi7Y0PhWjdTOZdPUMlimszWkcrQw9zv8pb76s=";
},
}:
stdenv.mkDerivation (finalAttrs: {
pname = "throne";
version = "1.0.13";
version = "1.1.2";
src = fetchFromGitHub {
owner = "throneproj";
repo = "Throne";
# the release CI job was triggered on the xhttp branch (https://github.com/throneproj/Throne/actions/runs/20588046213),
# but the 1.0.13 tag was wrongly created on the dev branch
# we'll use the revision that was used for the job as well
rev = "3b737ec8cf29e03e4b7d5a09b1f502bdb8ef52e2";
hash = "sha256-OVgmhiKL4BaFYBeUqIX3LRNa54zq5oYyNMUYwKNvo1A=";
tag = finalAttrs.version;
hash = "sha256-gtbGKyEOTq+1IP7v4ZhVVohGQFlDtP7NbbhyFD2rCnA=";
};
strictDeps = true;
@@ -54,33 +51,36 @@ stdenv.mkDerivation (finalAttrs: {
env.INPUT_VERSION = finalAttrs.version;
cmakeFlags = [
# makes sure the app uses the user's config directory to store it's non-static content
# it's essentially the same as always setting the -appdata flag when running the program
(lib.cmakeBool "NKR_PACKAGE" true)
];
# suppress errors in 3rdparty/simple-protobuf
env.NIX_CFLAGS_COMPILE = "-Wno-error=maybe-uninitialized";
patches = [
# disable suid request as it cannot be applied to throne-core in nix store
# and prompt users to use NixOS module instead. And use throne-core from PATH
# disable suid request as it cannot be applied to ThroneCore in nix store
# and prompt users to use NixOS module instead. And use ThroneCore from PATH
# to make use of security wrappers
./nixos-disable-setuid-request.patch
# sets the Exec field of the auto-run .desktop file to use the Throne binary from PATH
./fix-autorun-desktop-exec.patch
];
preBuild = ''
ln -s ${throne-srslist} ./srslist.h
'';
# we'll wrap manually
dontWrapQtApps = true;
installPhase = ''
runHook preInstall
install -Dm755 Throne -t "$out/share/throne/"
install -Dm644 "$src/res/public/Throne.png" -t "$out/share/icons/hicolor/512x512/apps/"
mkdir -p "$out/bin"
ln -s "$out/share/throne/Throne" "$out/bin/"
makeQtWrapper "$out/share/throne/Throne" "$out/bin/Throne" \
--append-flag "-appdata" # use writable config dir
ln -s ${finalAttrs.passthru.core}/bin/Core "$out/share/throne/Core"
ln -s ${finalAttrs.passthru.core}/bin/ThroneCore "$out/share/throne/ThroneCore"
runHook postInstall
'';
@@ -108,18 +108,18 @@ stdenv.mkDerivation (finalAttrs: {
];
proxyVendor = true;
vendorHash = "sha256-cPo/2bUXEF9jomr0Pnty7ZutAaC0TFG397FSIqefrjw=";
vendorHash = "sha256-G0ev2my+sHQFYdmfkR2Zq3ujSeqi5fZ4BdrnUS8mfDE=";
nativeBuildInputs = [
protobuf
protoc-gen-go
protorpc
protoc-gen-go-grpc
];
# taken from script/build_go.sh
preBuild = ''
pushd gen
protoc -I . --go_out=. --protorpc_out=. libcore.proto
protoc -I . --go_out=. --go-grpc_out=. libcore.proto
popd
VERSION_SINGBOX=$(go list -m -f '{{.Version}}' github.com/sagernet/sing-box)
@@ -130,6 +130,9 @@ stdenv.mkDerivation (finalAttrs: {
ldflags = [
"-w"
"-s"
"-X"
"internal/godebug.defaultGODEBUG=multipathtcp=0"
"-checklinkname=0"
];
tags = [
@@ -140,10 +143,14 @@ stdenv.mkDerivation (finalAttrs: {
"with_utls"
"with_dhcp"
"with_tailscale"
"badlinkname"
"tfogo_checklinkname"
"with_naive_outbound"
"with_purego" # prebuilt .a files inside cronet-go are annoying to fix
];
};
# this tricks nix-update into also updating the vendorHash of throne-core
# this tricks nix-update into also updating the vendorHash of passthru.core
passthru.goModules = finalAttrs.passthru.core.goModules;
meta = {
+2 -2
View File
@@ -9,13 +9,13 @@
buildGoModule (finalAttrs: {
pname = "tmuxai";
version = "2.2.1";
version = "2.2.2";
src = fetchFromGitHub {
owner = "alvinunreal";
repo = "tmuxai";
tag = "v${finalAttrs.version}";
hash = "sha256-i0SML6CpFim+jMy6uOqZg1uhuy3ngYFscg2if8/3fOI=";
hash = "sha256-t0ToGlmeWIgbZokqewdlsj8Bm89yURFf/vVZ82OoxL4=";
};
vendorHash = "sha256-TlP5DlsPL46ityGhje/b8OHDHeWWCxu5K5iu3pyVxog=";
+3 -3
View File
@@ -9,16 +9,16 @@
buildGoModule (finalAttrs: {
pname = "trdsql";
version = "1.1.0";
version = "1.2.1";
src = fetchFromGitHub {
owner = "noborus";
repo = "trdsql";
tag = "v${finalAttrs.version}";
hash = "sha256-MkjQAOIXnydEmOFnnYrvE2TF2I0GqSrSRUAjd+/hHwc=";
hash = "sha256-gcEzOgoVhXJ5PqgQ9sV6dGiQlhk4cCpcPBBAKPoyNKg=";
};
vendorHash = "sha256-PoIa58vdDPYGL9mjEeudRYqPfvvr3W+fX5c+NgRIoLg=";
vendorHash = "sha256-1s2fQue0mLhJ9dKILrERa21Ut05/zVCwL2txZlqcCqE=";
ldflags = [
"-s"
+4 -4
View File
@@ -7,16 +7,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "uutils-acl";
version = "0.0.1-unstable-2026-05-12";
version = "0.0.1-unstable-2026-05-17";
src = fetchFromGitHub {
owner = "uutils";
repo = "acl";
rev = "a661fe211a2b6c1881e15bfabe0bd94488445302";
hash = "sha256-ixXevx72Sg7ExaID8pwUMzc4ujkFSy3qT73dLfJ62IU=";
rev = "8c23acae9473c2a6a425a95eda474cdec33fb9a4";
hash = "sha256-q1dMJMMhL7/vA1ffy4KBhoPx7BoZnnr7yxLc9XDOCak=";
};
cargoHash = "sha256-tz6gCpqlVjdJwzjHdL82V7cUm8Fz/WYCYCAVc16C1SA=";
cargoHash = "sha256-06gamu+PZK68QSA4vLYyjRS6ecO/ugjkmaHH2tipTl4=";
cargoBuildFlags = [ "--workspace" ];
+3 -8
View File
@@ -87,7 +87,6 @@ stdenv.mkDerivation (finalAttrs: {
ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
};
# electron builds must be writable
preBuild = ''
# Validate electron version matches upstream package.json
if [ "`jq -r '.devDependencies.electron' < package.json | cut -d. -f1 | tr -d '^'`" != "${lib.versions.major electron.version}" ]
@@ -95,12 +94,8 @@ stdenv.mkDerivation (finalAttrs: {
echo "ERROR: electron version mismatch between package.json and nixpkgs"
exit 1
fi
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
cp -r ${electron.dist}/Electron.app .
chmod -R u+w Electron.app
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
# electron builds must be writable
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
'';
@@ -112,7 +107,7 @@ stdenv.mkDerivation (finalAttrs: {
pnpm exec electron-builder \
--dir \
-c.asarUnpack="**/*.node" \
-c.electronDist=${if stdenv.hostPlatform.isDarwin then "." else "electron-dist"} \
-c.electronDist=electron-dist \
-c.electronVersion=${electron.version} \
${lib.optionalString stdenv.hostPlatform.isDarwin "-c.mac.identity=null"} # disable code signing on macos, https://github.com/electron-userland/electron-builder/blob/77f977435c99247d5db395895618b150f5006e8f/docs/code-signing.md#how-to-disable-code-signing-during-the-build-process-on-macos
+3 -3
View File
@@ -6,16 +6,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "viceroy";
version = "0.16.5";
version = "0.18.0";
src = fetchFromGitHub {
owner = "fastly";
repo = "viceroy";
rev = "v${finalAttrs.version}";
hash = "sha256-66wRKZgEPey8umpO/P9bFy6PIA6BwktDl39rKUlAFCU=";
hash = "sha256-WlxVXMUIby5qBsb6Uc8hiya0QJfEPKhqMSNW51JkTqs=";
};
cargoHash = "sha256-88+/musBwAafwJ4XguFUvhmo77HsZTkCdBk+h0436yE=";
cargoHash = "sha256-K2l53MZLwLoR2I7NdTOMTBppUoM4408UvaYX2m8RyiQ=";
cargoTestFlags = [
"--package"
+186 -186
View File
@@ -1,6 +1,6 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
version = 4
[[package]]
name = "adler"
@@ -36,9 +36,9 @@ dependencies = [
[[package]]
name = "autocfg"
version = "1.4.0"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "bit-vec"
@@ -54,21 +54,21 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
version = "2.6.0"
version = "2.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
[[package]]
name = "bumpalo"
version = "3.16.0"
version = "3.20.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb"
[[package]]
name = "bytemuck"
version = "1.20.0"
version = "1.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b37c88a63ffd85d15b406896cc343916d7cf57838a847b3a6f2ca5d39a5695a"
checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec"
[[package]]
name = "byteorder"
@@ -84,9 +84,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
name = "cfg-if"
version = "1.0.0"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "clap"
@@ -115,7 +115,7 @@ version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
dependencies = [
"cfg-if 1.0.0",
"cfg-if 1.0.4",
"wasm-bindgen",
]
@@ -132,18 +132,18 @@ dependencies = [
[[package]]
name = "crc32fast"
version = "1.4.2"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3"
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
dependencies = [
"cfg-if 1.0.0",
"cfg-if 1.0.4",
]
[[package]]
name = "crossbeam-deque"
version = "0.8.5"
version = "0.8.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
dependencies = [
"crossbeam-epoch",
"crossbeam-utils",
@@ -160,9 +160,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
version = "0.8.20"
version = "0.8.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]]
name = "deflate"
@@ -176,17 +176,17 @@ dependencies = [
[[package]]
name = "either"
version = "1.13.0"
version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
[[package]]
name = "fastrand"
version = "1.9.0"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
dependencies = [
"instant",
"getrandom",
]
[[package]]
@@ -200,6 +200,44 @@ dependencies = [
"smallvec",
]
[[package]]
name = "futures-core"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
[[package]]
name = "futures-task"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
[[package]]
name = "futures-util"
version = "0.3.32"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
dependencies = [
"futures-core",
"futures-task",
"pin-project-lite",
"slab",
]
[[package]]
name = "getrandom"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
dependencies = [
"cfg-if 1.0.4",
"js-sys",
"libc",
"r-efi",
"wasip2",
"wasm-bindgen",
]
[[package]]
name = "gif"
version = "0.11.4"
@@ -244,15 +282,6 @@ version = "1.0.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
[[package]]
name = "instant"
version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
dependencies = [
"cfg-if 1.0.0",
]
[[package]]
name = "itertools"
version = "0.8.2"
@@ -264,9 +293,9 @@ dependencies = [
[[package]]
name = "itoa"
version = "1.0.14"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674"
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jpeg-decoder"
@@ -279,41 +308,42 @@ dependencies = [
[[package]]
name = "js-sys"
version = "0.3.76"
version = "0.3.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7"
checksum = "67df7112613f8bfd9150013a0314e196f4800d3201ae742489d999db2f979f08"
dependencies = [
"cfg-if 1.0.4",
"futures-util",
"once_cell",
"wasm-bindgen",
]
[[package]]
name = "libc"
version = "0.2.168"
version = "0.2.186"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aaeb2981e0606ca11d79718f8bb01164f1d6ed75080182d3abf017e6d244b6d"
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "lock_api"
version = "0.4.12"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
dependencies = [
"autocfg",
"scopeguard",
]
[[package]]
name = "log"
version = "0.4.22"
version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "memchr"
version = "2.7.4"
version = "2.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
[[package]]
name = "memoffset"
@@ -385,15 +415,15 @@ dependencies = [
[[package]]
name = "once_cell"
version = "1.20.2"
version = "1.21.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
[[package]]
name = "parking_lot"
version = "0.12.3"
version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
dependencies = [
"lock_api",
"parking_lot_core",
@@ -401,17 +431,23 @@ dependencies = [
[[package]]
name = "parking_lot_core"
version = "0.9.10"
version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [
"cfg-if 1.0.0",
"cfg-if 1.0.4",
"libc",
"redox_syscall",
"smallvec",
"windows-targets",
"windows-link",
]
[[package]]
name = "pin-project-lite"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
[[package]]
name = "png"
version = "0.16.8"
@@ -426,9 +462,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.92"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
dependencies = [
"unicode-ident",
]
@@ -439,7 +475,7 @@ version = "0.19.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
dependencies = [
"cfg-if 1.0.0",
"cfg-if 1.0.4",
"indoc",
"libc",
"memoffset",
@@ -495,18 +531,24 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.37"
version = "1.0.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
dependencies = [
"proc-macro2",
]
[[package]]
name = "rayon"
version = "1.10.0"
name = "r-efi"
version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
[[package]]
name = "rayon"
version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
dependencies = [
"either",
"rayon-core",
@@ -514,9 +556,9 @@ dependencies = [
[[package]]
name = "rayon-core"
version = "1.12.1"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
@@ -524,11 +566,11 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.5.7"
version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f"
checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
dependencies = [
"bitflags 2.6.0",
"bitflags 2.11.1",
]
[[package]]
@@ -538,10 +580,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84348444bd7ad45729d0c49a4240d7cdc11c9d512c06c5ad1835c1ad4acda6db"
[[package]]
name = "ryu"
version = "1.0.18"
name = "rustversion"
version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
[[package]]
name = "scoped_threadpool"
@@ -557,41 +599,58 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
[[package]]
name = "serde"
version = "1.0.215"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f"
checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
dependencies = [
"serde_core",
"serde_derive",
]
[[package]]
name = "serde_core"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.215"
version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0"
checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.90",
"syn 2.0.117",
]
[[package]]
name = "serde_json"
version = "1.0.133"
version = "1.0.150"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fceb2473b9166b2294ef05efcb65a3db80803f0b03ef86a5fc88a2b85ee377"
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
"serde_core",
"zmij",
]
[[package]]
name = "smallvec"
version = "1.13.2"
name = "slab"
version = "0.4.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
[[package]]
name = "smallvec"
version = "1.15.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
[[package]]
name = "strsim"
@@ -612,9 +671,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.90"
version = "2.0.117"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31"
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
dependencies = [
"proc-macro2",
"quote",
@@ -649,9 +708,9 @@ dependencies = [
[[package]]
name = "unicode-ident"
version = "1.0.14"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
[[package]]
name = "unicode-width"
@@ -673,37 +732,24 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
[[package]]
name = "visioncortex"
version = "0.6.1"
version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "33121c7da0e55b7fc27f552a9168506d5ff049e0248e9395d88c51d6d7e9aca3"
checksum = "7c9a7e6cc136c7c79b4adbd311c46c323a19db7baf446822b5f90f84375934e3"
dependencies = [
"bit-vec",
"flo_curves",
"log",
"num-traits",
]
[[package]]
name = "visioncortex"
version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dbe154fc281d74b2322adc18de7f9bbb9c4318d58ef6c201007f3fd99df9fff"
dependencies = [
"bit-vec",
"flo_curves",
"log",
"num-traits",
]
[[package]]
name = "vtracer"
version = "0.6.4"
version = "0.6.12"
dependencies = [
"clap",
"fastrand",
"image",
"pyo3",
"visioncortex 0.8.8",
"visioncortex",
]
[[package]]
@@ -715,43 +761,40 @@ dependencies = [
"console_log",
"serde",
"serde_json",
"visioncortex 0.6.1",
"visioncortex",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "wasm-bindgen"
version = "0.2.99"
name = "wasip2"
version = "1.0.3+wasi-0.2.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396"
checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
dependencies = [
"cfg-if 1.0.0",
"once_cell",
"serde",
"serde_json",
"wasm-bindgen-macro",
"wit-bindgen",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.99"
name = "wasm-bindgen"
version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79"
checksum = "49ace1d07c165b0864824eee619580c4689389afa9dc9ed3a4c75040d82e6790"
dependencies = [
"bumpalo",
"log",
"proc-macro2",
"quote",
"syn 2.0.90",
"cfg-if 1.0.4",
"once_cell",
"rustversion",
"serde",
"serde_json",
"wasm-bindgen-macro",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.99"
version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe"
checksum = "8e68e6f4afd367a562002c05637acb8578ff2dea1943df76afb9e83d177c8578"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -759,28 +802,31 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.99"
version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
checksum = "d95a9ec35c64b2a7cb35d3fead40c4238d0940c86d107136999567a4703259f2"
dependencies = [
"bumpalo",
"proc-macro2",
"quote",
"syn 2.0.90",
"wasm-bindgen-backend",
"syn 2.0.117",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.99"
version = "0.2.121"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6"
checksum = "c4e0100b01e9f0d03189a92b96772a1fb998639d981193d7dbab487302513441"
dependencies = [
"unicode-ident",
]
[[package]]
name = "web-sys"
version = "0.3.76"
version = "0.3.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc"
checksum = "4b572dff8bcf38bad0fa19729c89bb5748b2b9b1d8be70cf90df697e3a8f32aa"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -788,9 +834,9 @@ dependencies = [
[[package]]
name = "weezl"
version = "0.1.8"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]]
name = "winapi"
@@ -815,65 +861,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "windows-targets"
version = "0.52.6"
name = "windows-link"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
name = "wit-bindgen"
version = "0.57.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
name = "zmij"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
+3 -3
View File
@@ -6,13 +6,13 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "vtracer";
version = "0.6.5";
version = "0.6.15";
src = fetchFromGitHub {
owner = "visioncortex";
repo = "vtracer";
rev = finalAttrs.version;
hash = "sha256-gU2LxUbgy2KgMCu7nyjfGkmBwnA9mjX4mUT9M9k1a4I=";
tag = finalAttrs.version;
hash = "sha256-A575QnbituecxIX0mm7bOMC+V8jeWB4j3A2iWgDKBts=";
};
cargoLock = {
+3 -3
View File
@@ -6,20 +6,20 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "wasm-tools";
version = "1.249.0";
version = "1.250.0";
src = fetchFromGitHub {
owner = "bytecodealliance";
repo = "wasm-tools";
tag = "v${finalAttrs.version}";
hash = "sha256-8YIFzaJ10ll4ESVsQWf3hRPBNpgBGFvEdDbwbJ7PsI4=";
hash = "sha256-YzALjnjsEHGufpTPV7XHVvNL3xU727eJoE6db9KjStc=";
fetchSubmodules = true;
};
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
auditable = false;
cargoHash = "sha256-CuSLE6AwslD0SWQALAY3TTuDCKAbl6w6l5x6CwXaqcM=";
cargoHash = "sha256-rHoLTljDw4mzZBrpSO600TN/DVr3JKPvYVdT1vC7ynw=";
cargoBuildFlags = [
"--package"
"wasm-tools"
+40 -17
View File
@@ -26,12 +26,26 @@
installShellFiles,
runCommand,
yadm,
}:
# Templates:
withAwk ? true,
withEsh ? true,
withJ2 ? true,
# Encryption:
withGpg ? true,
withOpenssl ? true,
}:
let
withTar = withGpg || withOpenssl;
in
resholve.mkDerivation (finalAttrs: {
pname = "yadm";
version = "3.5.0";
strictDeps = true;
__structuredAttrs = true;
nativeBuildInputs = [ installShellFiles ];
src = fetchFromGitHub {
@@ -62,32 +76,32 @@ resholve.mkDerivation (finalAttrs: {
scripts = [ "bin/yadm" ];
interpreter = "${bash}/bin/sh";
inputs = [
bash
coreutils
git
gnupg
openssl
gawk
# see head comment
# git-crypt
# transcrypt
j2cli
esh
bash
coreutils
gnutar
];
]
++ lib.optional withGpg gnupg
++ lib.optional withOpenssl openssl
++ lib.optional withAwk gawk
++ lib.optional withJ2 j2cli
++ lib.optional withEsh esh
++ lib.optional withTar gnutar;
fake = {
external = if stdenv.hostPlatform.isCygwin then [ ] else [ "cygpath" ];
external = lib.optional (!stdenv.hostPlatform.isCygwin) "cygpath" ++ lib.optional (!withTar) "tar";
};
fix = {
"$GPG_PROGRAM" = [ "gpg" ];
"$OPENSSL_PROGRAM" = [ "openssl" ];
"$GIT_PROGRAM" = [ "git" ];
"$AWK_PROGRAM" = [ "awk" ];
"$GPG_PROGRAM" = lib.optional withGpg "gpg";
"$OPENSSL_PROGRAM" = lib.optional withOpenssl "openssl";
"$AWK_PROGRAM" = lib.optional withAwk "awk";
# see head comment
# "$GIT_CRYPT_PROGRAM" = [ "git-crypt" ];
# "$TRANSCRYPT_PROGRAM" = [ "transcrypt" ];
"$J2CLI_PROGRAM" = [ "j2" ];
"$ESH_PROGRAM" = [ "esh" ];
"$J2CLI_PROGRAM" = lib.optional withJ2 "j2";
"$ESH_PROGRAM" = lib.optional withEsh "esh";
# not in nixpkgs (yet)
# "$ENVTPL_PROGRAM" = [ "envtpl" ];
# "$LSB_RELEASE_PROGRAM" = [ "lsb_release" ];
@@ -100,6 +114,12 @@ resholve.mkDerivation (finalAttrs: {
"$hook_command" = true; # ~git hooks?
"exec" = [ "$YADM_BOOTSTRAP" ]; # yadm bootstrap script
"$GPG_PROGRAM" = !withGpg;
"$OPENSSL_PROGRAM" = !withOpenssl;
"$AWK_PROGRAM" = !withAwk;
"$J2CLI_PROGRAM" = !withJ2;
"$ESH_PROGRAM" = !withEsh;
# not in nixpkgs
"$ENVTPL_PROGRAM" = true;
"$LSB_RELEASE_PROGRAM" = true;
@@ -135,7 +155,10 @@ resholve.mkDerivation (finalAttrs: {
'';
changelog = "https://github.com/yadm-dev/yadm/blob/${finalAttrs.version}/CHANGES";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ abathur ];
maintainers = with lib.maintainers; [
abathur
sandarukasa
];
platforms = lib.platforms.unix;
mainProgram = "yadm";
};
+10
View File
@@ -0,0 +1,10 @@
{
yadm,
}:
yadm.override {
withAwk = false;
withEsh = false;
withJ2 = false;
withGpg = false;
withOpenssl = false;
}
+6 -6
View File
@@ -54,25 +54,25 @@ let
# Zoom versions are released at different times per platform and often with different versions.
# We write them on three lines like this (rather than using {}) so that the updater script can
# find where to edit them.
versions.aarch64-darwin = "7.0.0.77593";
versions.x86_64-darwin = "7.0.0.77593";
versions.aarch64-darwin = "7.0.5.81138";
versions.x86_64-darwin = "7.0.5.81138";
# This is the fallback version so that evaluation can produce a meaningful result.
versions.x86_64-linux = "7.0.0.1666";
versions.x86_64-linux = "7.0.5.3034";
srcs = {
aarch64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
name = "zoomusInstallerFull.pkg";
hash = "sha256-YSUaM8YAJHigm4M9W34/bD164M8f/hbhtcmHyUwFN20=";
hash = "sha256-uFnwBVZn5iUTIHNYG2WqiULA8siGWJaqY0BcRCoU6gg=";
};
x86_64-darwin = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
hash = "sha256-jIKBCrnvF101WJm8Tcpi2R5jRsqRXH7NQVGkSTnAeMA=";
hash = "sha256-ZeTgrqkpYumSGlbv/O8/GKALns4bNaFJR3CgV4Mswb4=";
};
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
hash = "sha256-aPQ44znQfxcjGnUpON5RRj3+SG+IDaBa/s0khwj/AIo=";
hash = "sha256-eHJIkY1qRC7z3+k6AMog2wlby8Wgupy48A5O7UKRiVU=";
};
};
+2 -2
View File
@@ -54,8 +54,6 @@ buildPackages.stdenv.mkDerivation (finalAttrs: {
# thus probably intend to substitute it.
allowSubstitutes = true;
inherit docPackages;
passAsFile = [ "buildCommand" ];
buildCommand = ''
@@ -128,6 +126,8 @@ buildPackages.stdenv.mkDerivation (finalAttrs: {
passthru = {
isHaskellLibrary = false; # for the filter in ./with-packages-wrapper.nix
inherit docPackages;
# The path to the Hoogle database.
database = "${finalAttrs.finalPackage}/${databasePath}";
@@ -1008,15 +1008,15 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "fzf-lua";
version = "0.0.2648-1";
version = "0.0.2654-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/fzf-lua-0.0.2648-1.rockspec";
sha256 = "0lkn7j9mfpv5vagp7xilki05k0ymrg22j95s2g8plg1fhvcykxxw";
url = "mirror://luarocks/fzf-lua-0.0.2654-1.rockspec";
sha256 = "19msswvglynba5xy0f14xlcidjln6mphnrnydx9x7k03770qmbj9";
}).outPath;
src = fetchzip {
url = "https://github.com/ibhagwan/fzf-lua/archive/23f71140754b9162551dc8ccc1d6346e4275ecc2.zip";
sha256 = "0qw2chgv0zlwr524xi4ghxmfpn9nhxsbq7gga8i78sclsg7r8fhy";
url = "https://github.com/ibhagwan/fzf-lua/archive/fea9eedc6894c44d44cbb772a5cd11c93b82d7a1.zip";
sha256 = "09ayadlmdkljhcm5ncby8w6w8b1kfyhmw0bf3zhl6r8cfansixc2";
};
disabled = luaOlder "5.1";
@@ -1105,15 +1105,15 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "grug-far.nvim";
version = "1.6.69-1";
version = "1.6.70-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/grug-far.nvim-1.6.69-1.rockspec";
sha256 = "1fnk6s5kzq03ny3h18ap7454i2sv9c0ipbwl2zxhx1wkrpnbrnhy";
url = "mirror://luarocks/grug-far.nvim-1.6.70-1.rockspec";
sha256 = "06cb19vg9rj48idc22ncjabb1phhrbiklr42mazf5y91dd9w8b19";
}).outPath;
src = fetchzip {
url = "https://github.com/MagicDuck/grug-far.nvim/archive/a5875fde04e2940a5060f8df9c453bcfcfe0a5c0.zip";
sha256 = "0cygcm9giqxr701vn1dgq8bn3nvjnwl5f9shgxppdf5w9fw0l4bk";
url = "https://github.com/MagicDuck/grug-far.nvim/archive/5506c2f59dc9ab2ed6c233585412b24d31d51521.zip";
sha256 = "1n62s1z0r78snlravyh0k4kp5i7gsyi5p78fpgilgqaqs6s8my48";
};
disabled = luaOlder "5.1";
@@ -1707,17 +1707,17 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "lrexlib-gnu";
version = "2.9.2-1";
version = "2.9.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/lrexlib-gnu-2.9.2-1.rockspec";
sha256 = "14dp5lzpz2prvimpcbqjygbyh9h791h0ywjknj9wgrjjd62qsy6i";
url = "mirror://luarocks/lrexlib-gnu-2.9.3-1.rockspec";
sha256 = "1wn69qi1qfd3d13zrgw6xq7dwqks6kwj7s398kbgacq79ibv6js3";
}).outPath;
src = fetchFromGitHub {
owner = "rrthomas";
repo = "lrexlib";
tag = "rel-2-9-2";
hash = "sha256-DzNDve+xeKb+kAcW+o7GK/RsoDhaDAVAWAhgjISCyZc=";
tag = "rel-2-9-3";
hash = "sha256-7lybrMvNk2YhXish01PQlMpRVW+qlFj03RO33zmgGp4=";
};
disabled = luaOlder "5.1";
@@ -1743,17 +1743,17 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "lrexlib-oniguruma";
version = "2.9.2-1";
version = "2.9.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/lrexlib-oniguruma-2.9.2-1.rockspec";
sha256 = "13m2v6mmmlkf2bd1mnngg118s4ymrqs7n34la6hrb4m1x772adhd";
url = "mirror://luarocks/lrexlib-oniguruma-2.9.3-1.rockspec";
sha256 = "0zgpfnb7l018kh16xn836gwydhy0hpqzjchlbk0jhnjlzcvynidm";
}).outPath;
src = fetchFromGitHub {
owner = "rrthomas";
repo = "lrexlib";
tag = "rel-2-9-2";
hash = "sha256-DzNDve+xeKb+kAcW+o7GK/RsoDhaDAVAWAhgjISCyZc=";
tag = "rel-2-9-3";
hash = "sha256-7lybrMvNk2YhXish01PQlMpRVW+qlFj03RO33zmgGp4=";
};
disabled = luaOlder "5.1";
@@ -1780,17 +1780,17 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "lrexlib-pcre";
version = "2.9.2-1";
version = "2.9.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/lrexlib-pcre-2.9.2-1.rockspec";
sha256 = "1214ssm6apgprryqvijjjn82ikb27ylq94yijqf7qjyiy6pz7dc1";
url = "mirror://luarocks/lrexlib-pcre-2.9.3-1.rockspec";
sha256 = "1pwwzc12a6dl5i4i8gl5i0r8aabqfpmdfrlj0fkvj5v56v9bkw09";
}).outPath;
src = fetchFromGitHub {
owner = "rrthomas";
repo = "lrexlib";
tag = "rel-2-9-2";
hash = "sha256-DzNDve+xeKb+kAcW+o7GK/RsoDhaDAVAWAhgjISCyZc=";
tag = "rel-2-9-3";
hash = "sha256-7lybrMvNk2YhXish01PQlMpRVW+qlFj03RO33zmgGp4=";
};
disabled = luaOlder "5.1";
@@ -1816,17 +1816,17 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "lrexlib-pcre2";
version = "2.9.2-1";
version = "2.9.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/lrexlib-pcre2-2.9.2-1.rockspec";
sha256 = "181878m8gq9wl7c4h9rsq1iig70n9rmyfbj86swz1v4vi7s7ks9p";
url = "mirror://luarocks/lrexlib-pcre2-2.9.3-1.rockspec";
sha256 = "17y1zhjb5h1bdd4rdaycrnp3xwzm06y1179ga0wpcwvg0ybwmvfn";
}).outPath;
src = fetchFromGitHub {
owner = "rrthomas";
repo = "lrexlib";
rev = "rel-2-9-2";
hash = "sha256-DzNDve+xeKb+kAcW+o7GK/RsoDhaDAVAWAhgjISCyZc=";
tag = "rel-2-9-3";
hash = "sha256-7lybrMvNk2YhXish01PQlMpRVW+qlFj03RO33zmgGp4=";
};
disabled = luaOlder "5.1";
@@ -1853,17 +1853,17 @@ final: prev: {
}:
buildLuarocksPackage {
pname = "lrexlib-posix";
version = "2.9.2-1";
version = "2.9.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/lrexlib-posix-2.9.2-1.rockspec";
sha256 = "1i11cdvz09a3wjhfjgc88g0mdmdrk13fnhhgskzgm5cmhsdx4s0i";
url = "mirror://luarocks/lrexlib-posix-2.9.3-1.rockspec";
sha256 = "0s8w35x3jvhjn4znram93dj4kck95sv4zrlqcs6mqa4q70d5rl27";
}).outPath;
src = fetchFromGitHub {
owner = "rrthomas";
repo = "lrexlib";
tag = "rel-2-9-2";
hash = "sha256-DzNDve+xeKb+kAcW+o7GK/RsoDhaDAVAWAhgjISCyZc=";
tag = "rel-2-9-3";
hash = "sha256-7lybrMvNk2YhXish01PQlMpRVW+qlFj03RO33zmgGp4=";
};
disabled = luaOlder "5.1";
@@ -5046,23 +5046,21 @@ final: prev: {
fetchurl,
fetchzip,
luaOlder,
nvim-web-devicons,
}:
buildLuarocksPackage {
pname = "oil.nvim";
version = "2.15.0-1";
version = "2.16.0-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/oil.nvim-2.15.0-1.rockspec";
sha256 = "0xkych23rn6jpj4hbam1j7ca1gwb9z3lzfm7id3dvcqj8aysv77j";
url = "mirror://luarocks/oil.nvim-2.16.0-1.rockspec";
sha256 = "0gsdvzysvvb72z2bd5vcxpssgnb0q91y2z5nrzzafq7670xz49dp";
}).outPath;
src = fetchzip {
url = "https://github.com/stevearc/oil.nvim/archive/v2.15.0.zip";
sha256 = "0rrv7wg0nwfj5fd6byxs4np1p18xxdzyv11ba6vqqh3s6z0qwawc";
url = "https://github.com/stevearc/oil.nvim/archive/v2.16.0.zip";
sha256 = "0pipdvaxrkdyfbp66sgrc3ppy260m95am9zhi3m8n7lm1ivp6fzb";
};
disabled = luaOlder "5.1";
propagatedBuildInputs = [ nvim-web-devicons ];
meta = {
homepage = "https://github.com/stevearc/oil.nvim";
@@ -6066,40 +6064,6 @@ final: prev: {
}
) { };
tomlua = callPackage (
{
buildLuarocksPackage,
fetchurl,
fetchzip,
luaOlder,
}:
buildLuarocksPackage {
pname = "tomlua";
version = "1.1.5-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/tomlua-1.1.5-1.rockspec";
sha256 = "0xqxlw1pzvy63kw8d98nfh0k9269s4dg90md72m8kfcrj7isrb6m";
}).outPath;
src = fetchzip {
url = "https://github.com/BirdeeHub/tomlua/archive/v1.1.5.zip";
sha256 = "136jxj26dk3jl17dm86ifvfmpfbj0mf6yp2yy6i8g4xxfqs27n9q";
};
disabled = luaOlder "5.1";
meta = {
homepage = "https://github.com/BirdeeHub/tomlua";
maintainers = [ lib.maintainers.birdee ];
license = lib.licenses.mit;
description = "Speedy toml parsing for lua, implemented in C";
longDescription = ''
Speedy toml parsing for lua, implemented in C
for use in hot-path or startup-time parsing of toml files.'';
};
}
) { };
toml-edit = callPackage (
{
buildLuarocksPackage,
@@ -6136,6 +6100,40 @@ final: prev: {
}
) { };
tomlua = callPackage (
{
buildLuarocksPackage,
fetchurl,
fetchzip,
luaOlder,
}:
buildLuarocksPackage {
pname = "tomlua";
version = "1.2.3-1";
knownRockspec =
(fetchurl {
url = "mirror://luarocks/tomlua-1.2.3-1.rockspec";
sha256 = "0aqagzxnz58nzwx7h3igycvcraxs1h7hyl47d7sbb01kcclp5jr6";
}).outPath;
src = fetchzip {
url = "https://github.com/BirdeeHub/tomlua/archive/v1.2.3.zip";
sha256 = "04mg0m3qkr89la733rpzd8xrjq8ysrmjm7v8fid1r80cp1kbg9vf";
};
disabled = luaOlder "5.1";
meta = {
homepage = "https://github.com/BirdeeHub/tomlua";
maintainers = with lib.maintainers; [ birdee ];
license = lib.licenses.mit;
description = "Speedy toml parsing for lua, implemented in C";
longDescription = ''
Speedy toml parsing for lua, implemented in C
for use in hot-path or startup-time parsing of toml files.'';
};
}
) { };
tree-sitter-cli = callPackage (
{
buildLuarocksPackage,
@@ -30,6 +30,6 @@ buildLuarocksPackage rec {
homepage = "https://github.com/3rd/image.nvim";
description = "🖼 Bringing images to Neovim.";
maintainers = with lib.maintainers; [ SuperSandro2000 ];
license.fullName = "MIT";
license = lib.licenses.mit;
};
}
@@ -1,6 +1,7 @@
{
buildLuarocksPackage,
fetchurl,
lib,
luaAtLeast,
luaOlder,
luaposix,
@@ -39,7 +40,7 @@ buildLuarocksPackage {
meta = {
homepage = "https://pjb.com.au/comp/lua/readline.html";
description = "Interface to the readline library";
license.fullName = "MIT/X11";
license = lib.licenses.mit;
broken = (luaOlder "5.1") || (luaAtLeast "5.5");
};
}
@@ -287,8 +287,7 @@ rec {
postFixup = unresholved.postResholve;
# don't break the metadata...
meta = unresholved.meta;
inherit (unresholved) meta strictDeps __structuredAttrs;
};
};
}
@@ -4,6 +4,7 @@
aiofiles,
async-timeout,
buildPythonPackage,
setuptools,
cryptography,
fetchFromGitHub,
isPy3k,
@@ -15,21 +16,23 @@
rsa,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "adb-shell";
version = "0.4.4";
format = "setuptools";
pyproject = true;
disabled = !isPy3k;
src = fetchFromGitHub {
owner = "JeffLIrion";
repo = "adb_shell";
rev = "v${version}";
rev = "v${finalAttrs.version}";
hash = "sha256-pOkFUh3SEu/ch9R1lVoQn50nufQp8oI+D4/+Ybal5CA=";
};
propagatedBuildInputs = [
build-system = [ setuptools ];
dependencies = [
cryptography
pyasn1
rsa
@@ -50,7 +53,7 @@ buildPythonPackage rec {
pycryptodome
pytestCheckHook
]
++ lib.concatAttrValues optional-dependencies;
++ lib.concatAttrValues finalAttrs.optional-dependencies;
pythonImportsCheck = [ "adb_shell" ];
@@ -60,4 +63,4 @@ buildPythonPackage rec {
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ jamiemagee ];
};
}
})
@@ -11,13 +11,13 @@
buildPythonPackage rec {
pname = "azure-mgmt-recoveryservices";
version = "4.0.0";
version = "4.0.1";
pyproject = true;
src = fetchPypi {
pname = "azure_mgmt_recoveryservices";
inherit version;
hash = "sha256-oUKc/Sg6nJlQrBU0gvqcl0Fkb9INqKqcPIHnJceMXJ8=";
hash = "sha256-/9/yZ9sqYC6wMMCC9Tpd8YXIbqU8RG6meaEzYAJ4YGs=";
};
build-system = [ setuptools ];
@@ -13,14 +13,14 @@
buildPythonPackage rec {
pname = "cached-ipaddress";
version = "1.0.1";
version = "1.1.1";
pyproject = true;
src = fetchFromGitHub {
owner = "bdraco";
repo = "cached-ipaddress";
tag = "v${version}";
hash = "sha256-/bq9RZcC6VDK5JxT1QcAJpWNmioNqOearYc34KsCvHs=";
hash = "sha256-VIIcScaZwd5BAidgG30edYsAQaFnqxEQX+F/t+HR278=";
};
build-system = [

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