Merge staging-next into staging
This commit is contained in:
@@ -14702,6 +14702,13 @@
|
||||
githubId = 2422454;
|
||||
name = "Kai Wohlfahrt";
|
||||
};
|
||||
kxxt = {
|
||||
name = "kxxt";
|
||||
email = "rsworktech@outlook.com";
|
||||
matrix = "@kxxt:matrix.org";
|
||||
github = "kxxt";
|
||||
githubId = 18085551;
|
||||
};
|
||||
kyehn = {
|
||||
name = "kyehn";
|
||||
github = "kyehn";
|
||||
|
||||
@@ -225,6 +225,15 @@ See <https://github.com/NixOS/nixpkgs/issues/481673>.
|
||||
|
||||
- Wine has been updated to the 11.0 branch. Please check the [upstream announcement](https://gitlab.winehq.org/wine/wine/-/releases/wine-11.0) for more details.
|
||||
|
||||
- `security.acme` now defaults to a dynamic renewal duration, if
|
||||
[security.acme.defaults.validMinDays](#opt-security.acme.defaults.validMinDays)
|
||||
remains unset. This accomodates certificates with different ACME profile:
|
||||
- For certificates with a total validity at or above 10 days renewal will happen
|
||||
after two thirds of the lifetime has passed (e.g. a certificate valid for 90
|
||||
days renews once the validity falls below 30 days)
|
||||
- For shortlived certificates with a total validty below 10 days renewal
|
||||
will happen after half of the total lifetime has passed
|
||||
|
||||
- Cinnamon has been updated to 6.6, please check the [upstream announcement](https://www.linuxmint.com/rel_zena_whatsnew.php) for more details.
|
||||
|
||||
- Budgie has been updated to 10.10, please check the [upstream announcement](https://buddiesofbudgie.org/blog/budgie-10-10-released) for more details.
|
||||
|
||||
@@ -15,11 +15,33 @@ let
|
||||
numCerts = lib.length (builtins.attrNames cfg.certs);
|
||||
_24hSecs = 60 * 60 * 24;
|
||||
|
||||
# The placerholder email address used by lego in case none gets passed
|
||||
placeholderEmail = "noemail@example.com";
|
||||
|
||||
# Used to make unique paths for each cert/account config set
|
||||
mkHash = with builtins; val: lib.substring 0 20 (hashString "sha256" val);
|
||||
mkAccountHash = acmeServer: data: mkHash "${toString acmeServer} ${data.keyType} ${data.email}";
|
||||
mkAccountHash =
|
||||
acmeServer: data:
|
||||
mkHash (
|
||||
lib.concatStringsSep " " [
|
||||
(toString acmeServer)
|
||||
data.keyType
|
||||
(if (data.email != null) then data.email else placeholderEmail)
|
||||
]
|
||||
|
||||
);
|
||||
accountDirRoot = "/var/lib/acme/.lego/accounts/";
|
||||
|
||||
isIP =
|
||||
address:
|
||||
let
|
||||
isIPv6 = lib.length (lib.splitString ":" address) > 2;
|
||||
isIPv4 = (lib.match "^([0-9]+\\.){3}[0-9]+$" address) != null;
|
||||
in
|
||||
isIPv6 || isIPv4;
|
||||
|
||||
isDomainName = name: !isIP name;
|
||||
|
||||
# Lockdir is acme-setup.service's RuntimeDirectory.
|
||||
# Since that service is a oneshot with RemainAfterExit,
|
||||
# the folder will exist during all renewal services.
|
||||
@@ -263,6 +285,8 @@ let
|
||||
"--accept-tos" # Checking the option is covered by the assertions
|
||||
"--path"
|
||||
"."
|
||||
]
|
||||
++ lib.optionals (data.email != null) [
|
||||
"--email"
|
||||
data.email
|
||||
]
|
||||
@@ -389,10 +413,14 @@ let
|
||||
exit 0
|
||||
fi
|
||||
|
||||
minica \
|
||||
--ca-key ca/key.pem \
|
||||
--ca-cert ca/cert.pem \
|
||||
--domains ${lib.escapeShellArg (builtins.concatStringsSep "," ([ data.domain ] ++ extraDomains))}
|
||||
minica ${
|
||||
lib.cli.toCommandLineShellGNU { } {
|
||||
ca-key = "ca/key.pem";
|
||||
ca-cert = "ca/cert.pem";
|
||||
domains = lib.concatStringsSep "," (lib.filter isDomainName ([ data.domain ] ++ extraDomains));
|
||||
ip-addresses = lib.concatStringsSep "," (lib.filter isIP ([ data.domain ] ++ extraDomains));
|
||||
}
|
||||
}
|
||||
|
||||
# Create files to match directory layout for real certificates
|
||||
(
|
||||
@@ -523,20 +551,42 @@ let
|
||||
|
||||
[[ -e $pem ]]
|
||||
|
||||
expiration_line="$(
|
||||
set -euxo pipefail
|
||||
openssl x509 -noout -enddate <"$pem" \
|
||||
| grep notAfter \
|
||||
| sed -e 's/^notAfter=//'
|
||||
)"
|
||||
[[ -n "$expiration_line" ]]
|
||||
# Read certificate valid duration
|
||||
not_before=$(openssl x509 -in "$pem" -noout -startdate | cut -d= -f2)
|
||||
not_after=$(openssl x509 -in "$pem" -noout -enddate | cut -d= -f2)
|
||||
|
||||
expiration_date="$(date -d "$expiration_line" +%s)"
|
||||
now="$(date +%s)"
|
||||
expiration_s=$((expiration_date - now))
|
||||
expiration_days=$((expiration_s / (3600 * 24))) # rounds down
|
||||
# Convert timestamp to seconds since epoch
|
||||
not_before_epoch=$(date -d "$not_before" +%s)
|
||||
not_after_epoch=$(date -d "$not_after" +%s)
|
||||
now_epoch=$(date +%s)
|
||||
|
||||
[[ $expiration_days -gt ${toString data.validMinDays} ]]
|
||||
# Determine total and remaining duration
|
||||
total_duration=$((not_after_epoch - not_before_epoch))
|
||||
remaining_duration=$((not_after_epoch - now_epoch))
|
||||
|
||||
${
|
||||
if (data.validMinDays != null) then
|
||||
''
|
||||
# Convert to days and round down
|
||||
total_days=$((total_duration / 86400))
|
||||
remaining_days=$((remaining_duration / 86400))
|
||||
|
||||
[[ $remaining_days -gt ${toString data.validMinDays} ]]
|
||||
''
|
||||
else
|
||||
''
|
||||
# Recreate --dynamic logic from lego
|
||||
if (( total_duration < 864000 )); then
|
||||
# 1/2 for shortlived certificates with total lifetime < 10 days
|
||||
threshold=$(( total_duration / 2))
|
||||
else
|
||||
# 1/3 for longer validity durations with total lifetime >= 10 days
|
||||
threshold=$(( total_duration / 3))
|
||||
fi
|
||||
|
||||
[[ $remaining_duration -gt $threshold ]]
|
||||
''
|
||||
}
|
||||
}
|
||||
|
||||
echo '${domainHash}' > domainhash.txt
|
||||
@@ -544,13 +594,20 @@ let
|
||||
# Check if a new order is needed
|
||||
# We can only renew if the list of domains has not changed.
|
||||
# We also need an account key. Avoids #190493
|
||||
if cmp -s domainhash.txt certificates/domainhash.txt && [ -e '${certificateKey}' ] && [ -e 'certificates/${keyName}.crt' ] && [ -n "$(find accounts -name '${data.email}.key')" ]; then
|
||||
if cmp -s domainhash.txt certificates/domainhash.txt && [ -e '${certificateKey}' ] && \
|
||||
[ -e 'certificates/${keyName}.crt' ] && \
|
||||
[ -n "$(find accounts -name '${
|
||||
if (data.email != null) then data.email else placeholderEmail
|
||||
}.key')" ];
|
||||
then
|
||||
# Even if a cert is not expired, it may be revoked by the CA.
|
||||
# Try to renew, and silently fail if the cert is not expired.
|
||||
# Avoids #85794 and resolves #129838
|
||||
if ! lego ${renewOpts} --days ${toString data.validMinDays}; then
|
||||
if ! lego ${renewOpts} ${
|
||||
if data.validMinDays != null then "--days ${toString data.validMinDays}" else "--dynamic"
|
||||
}; then
|
||||
if is_expiration_skippable out/full.pem; then
|
||||
echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't within the coming ${toString data.validMinDays} days"
|
||||
echo 1>&2 "nixos-acme: Ignoring failed renewal because expiration isn't due yet"
|
||||
else
|
||||
# High number to avoid Systemd reserved codes.
|
||||
exit 11
|
||||
@@ -626,9 +683,15 @@ let
|
||||
|
||||
options = {
|
||||
validMinDays = lib.mkOption {
|
||||
type = lib.types.int;
|
||||
inherit (defaultAndText "validMinDays" 30) default defaultText;
|
||||
description = "Minimum remaining validity before renewal in days.";
|
||||
type = lib.types.nullOr lib.types.int;
|
||||
default = null;
|
||||
description = ''
|
||||
Minimum remaining validity before renewal in days.
|
||||
|
||||
If unset, the renewal time is calculated dynamically:
|
||||
- for regular certificates, renewal occurs when less than one-third of the lifetime remains
|
||||
- for short-lived certificates, renewal occurs when less than half of the lifetime remains
|
||||
'';
|
||||
};
|
||||
|
||||
renewInterval = lib.mkOption {
|
||||
@@ -1074,14 +1137,6 @@ in
|
||||
certs = lib.attrValues cfg.certs;
|
||||
in
|
||||
[
|
||||
{
|
||||
assertion = cfg.defaults.email != null || lib.all (certOpts: certOpts.email != null) certs;
|
||||
message = ''
|
||||
You must define `security.acme.certs.<name>.email` or
|
||||
`security.acme.defaults.email` to register with the CA. Note that using
|
||||
many different addresses for certs may trigger account rate limits.
|
||||
'';
|
||||
}
|
||||
{
|
||||
assertion = cfg.acceptTerms;
|
||||
message = ''
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
domain = "example.test";
|
||||
ip = "192.168.1.2";
|
||||
in
|
||||
{
|
||||
name = "http01-builtin";
|
||||
@@ -34,6 +34,7 @@ in
|
||||
environment.systemPackages = [ pkgs.openssl ];
|
||||
|
||||
security.acme.certs."${config.networking.fqdn}" = {
|
||||
extraDomainNames = [ ip ];
|
||||
listenHTTP = ":80";
|
||||
};
|
||||
|
||||
@@ -51,7 +52,14 @@ in
|
||||
};
|
||||
|
||||
accountchange.configuration = {
|
||||
security.acme.certs."${config.networking.fqdn}".email = "admin@example.test";
|
||||
# Providing an email address is optional
|
||||
security.acme.certs."${config.networking.fqdn}".email = null;
|
||||
};
|
||||
|
||||
emailplaceholder.configuration = {
|
||||
# but Lego will default to this email address, which should not
|
||||
# result in any change when configured
|
||||
security.acme.certs."${config.networking.fqdn}".email = "noemail@example.com";
|
||||
};
|
||||
|
||||
keytype.configuration = {
|
||||
@@ -124,6 +132,7 @@ in
|
||||
|
||||
[ alt_names ]
|
||||
DNS.1 = ${config.networking.fqdn}
|
||||
IP.1 = ${ip}
|
||||
'';
|
||||
csrData =
|
||||
pkgs.runCommand "csr-and-key"
|
||||
@@ -142,6 +151,7 @@ in
|
||||
security.acme.certs."${config.networking.fqdn}" = {
|
||||
csr = "${csrData}/request.csr";
|
||||
csrKey = "${csrData}/key.pem";
|
||||
extraDomainNames = lib.mkForce [ ];
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -154,10 +164,12 @@ in
|
||||
certName = nodes.builtin.networking.fqdn;
|
||||
caDomain = nodes.acme.test-support.acme.caDomain;
|
||||
in
|
||||
# python
|
||||
''
|
||||
${(import ./utils.nix).pythonUtils}
|
||||
|
||||
domain = "${domain}"
|
||||
ip = "${ip}"
|
||||
cert = "${certName}"
|
||||
cert2 = "builtin-2." + domain
|
||||
cert3 = "builtin-3." + domain
|
||||
@@ -173,6 +185,7 @@ in
|
||||
|
||||
check_issuer(builtin, cert, "pebble")
|
||||
check_domain(builtin, cert, cert)
|
||||
check_ip(builtin, cert, ip)
|
||||
|
||||
with subtest("Validate permissions"):
|
||||
check_permissions(builtin, cert, "acme")
|
||||
@@ -212,11 +225,23 @@ in
|
||||
hash_after = builtin.succeed(f"sha256sum /var/lib/acme/{cert}/cert.pem")
|
||||
# Has to do a full run to register account, which creates new certs.
|
||||
assert hash != hash_after, "Certificate was not renewed"
|
||||
hash = hash_after
|
||||
|
||||
builtin.succeed("systemctl stop renew-triggered.target")
|
||||
switch_to(builtin, "emailplaceholder")
|
||||
builtin.wait_for_unit("renew-triggered.target")
|
||||
|
||||
# Check that there are still two account directories
|
||||
builtin.succeed("test $(ls -1 /var/lib/acme/.lego/accounts | tee /dev/stderr | wc -l) -eq 2")
|
||||
hash_after = builtin.succeed(f"sha256sum /var/lib/acme/{cert}/cert.pem")
|
||||
assert hash == hash_after, "Implicit to explicit email placeholder renewed the certificate"
|
||||
|
||||
# Remove the new account directory
|
||||
builtin.succeed(
|
||||
"cd /var/lib/acme/.lego/accounts"
|
||||
" && ls -1 --sort=time | tee /dev/stderr | head -1 | xargs rm -rf"
|
||||
)
|
||||
|
||||
# old_hash will be used in the preservation tests later
|
||||
old_hash = hash_after
|
||||
|
||||
@@ -300,6 +325,7 @@ in
|
||||
builtin.wait_for_unit("renew-triggered.target")
|
||||
|
||||
check_issuer(builtin, cert, "pebble")
|
||||
check_ip(builtin, cert, ip)
|
||||
|
||||
with subtest("Generate self-signed certs"):
|
||||
acme.shutdown()
|
||||
|
||||
@@ -84,6 +84,11 @@ def check_domain(node, cert_name, domain, fail=False) -> None:
|
||||
cmd = f"openssl x509 -noout -checkhost '{domain}' -in /var/lib/acme/{cert_name}/cert.pem"
|
||||
run(node, cmd, fail=fail)
|
||||
|
||||
# Ensures the provided ip address matches with the given cert
|
||||
def check_ip(node, cert_name, ip_address, fail=False) -> None:
|
||||
cmd = f"openssl x509 -noout -checkip '{ip_address}' -in /var/lib/acme/{cert_name}/cert.pem"
|
||||
run(node, cmd, fail=fail)
|
||||
|
||||
# Ensures the required values for OCSP stapling are present
|
||||
# Pebble doesn't provide a full OCSP responder, so just checks the URL
|
||||
def check_stapling(node, cert_name, ca_domain, fail=False):
|
||||
|
||||
@@ -26,13 +26,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "snapcast";
|
||||
version = "0.34.0";
|
||||
version = "0.35.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "badaix";
|
||||
repo = "snapcast";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-BPsAGFLWUfONuyQ1pzsJzGV/Jlxv+4TkVT1KG7j8H0s=";
|
||||
hash = "sha256-kUw4yQpCxgjP4hH2Lpxc7l+ufhYSKs7xL80aJuPrqOo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -82,7 +82,7 @@ let
|
||||
neovimConfig =
|
||||
structuredConfigure:
|
||||
let
|
||||
module = import ./module.nix;
|
||||
module = import ./plugin-submodule.nix;
|
||||
# Generate init.vim configuration
|
||||
cfg = (
|
||||
lib.evalModules {
|
||||
@@ -97,6 +97,7 @@ let
|
||||
|
||||
checked_cfg = neovimConfig {
|
||||
inherit plugins;
|
||||
_file = "pkgs/applications/editors/neovim/plugin-submodule.nix";
|
||||
};
|
||||
|
||||
pluginsNormalized = checked_cfg.plugins;
|
||||
|
||||
@@ -21783,6 +21783,18 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
vim-syntax-shakespeare = buildVimPlugin {
|
||||
pname = "vim-syntax-shakespeare";
|
||||
version = "0-unstable-2018-06-25";
|
||||
src = fetchgit {
|
||||
url = "https://codeberg.org/pbrisbin/vim-syntax-shakespeare";
|
||||
rev = "2f4f61eae55b8f1319ce3a086baf9b5ab57743f3";
|
||||
hash = "sha256-sdCXJOvB+vJE0ir+qsT/u1cHNxrksMnqeQi4D/Vg6UA=";
|
||||
};
|
||||
meta.homepage = "https://codeberg.org/pbrisbin/vim-syntax-shakespeare";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
vim-tabby = buildVimPlugin {
|
||||
pname = "vim-tabby";
|
||||
version = "2.0.2-unstable-2025-01-13";
|
||||
|
||||
@@ -1673,6 +1673,7 @@ https://github.com/lambdalisue/vim-suda/,,
|
||||
https://github.com/tpope/vim-surround/,,
|
||||
https://github.com/evanleck/vim-svelte/,,
|
||||
https://github.com/machakann/vim-swap/,,
|
||||
https://codeberg.org/pbrisbin/vim-syntax-shakespeare,HEAD,
|
||||
https://github.com/TabbyML/vim-tabby/,HEAD,
|
||||
https://github.com/dhruvasagar/vim-table-mode/,,
|
||||
https://github.com/kana/vim-tabpagecd/,,
|
||||
|
||||
@@ -219,13 +219,13 @@
|
||||
"vendorHash": "sha256-6MKWpiDq4yI3mfIJyzEsWLa7gi0+DScI5jKcOcM6Qs0="
|
||||
},
|
||||
"cloudposse_utils": {
|
||||
"hash": "sha256-TcCDv6IB6Z4llvogKWasAK4u2NFsOG4UKAUERDH6SXg=",
|
||||
"hash": "sha256-Fjb+9NG+p+oTvKziRYHaNdAZaUv8Rs/FYLXmtwrfkOI=",
|
||||
"homepage": "https://registry.terraform.io/providers/cloudposse/utils",
|
||||
"owner": "cloudposse",
|
||||
"repo": "terraform-provider-utils",
|
||||
"rev": "v1.31.0",
|
||||
"rev": "v2.4.0",
|
||||
"spdx": "Apache-2.0",
|
||||
"vendorHash": "sha256-djz3kNV+13Sz9prRPhWaWi50hvYXq3I3cp4neLexeEs="
|
||||
"vendorHash": "sha256-LNsJygeBSpY4xawhWfIcYOB0TEVK4DMeyiSgyn8PJ2A="
|
||||
},
|
||||
"cloudscale-ch_cloudscale": {
|
||||
"hash": "sha256-r+0HrY+5ciNb3+JHV05ez/uPElbD7LcQqlUHWYp865Q=",
|
||||
@@ -679,13 +679,13 @@
|
||||
"vendorHash": "sha256-OvotUEh+P2b3ngaD/8lVbemnM3lrtwqduPXPjF/bqVA="
|
||||
},
|
||||
"hashicorp_vault": {
|
||||
"hash": "sha256-Rg18X+VFDA9p3Dx/fA/C982X4XEvSRPU0+Zkq8HWqas=",
|
||||
"hash": "sha256-e0BcPLQFUjdZPlKAnuxBB3se+MjDSj78KJy5zNlsHKA=",
|
||||
"homepage": "https://registry.terraform.io/providers/hashicorp/vault",
|
||||
"owner": "hashicorp",
|
||||
"repo": "terraform-provider-vault",
|
||||
"rev": "v5.7.0",
|
||||
"rev": "v5.8.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-XnyEPnB0995S7LzGAlkB/O3VKWXAm1rp9NQcDvIhRVw="
|
||||
"vendorHash": "sha256-XBXkDvblC/u3lYq/dfjm38Hw8uGwumz4ZAiG+kJkNUQ="
|
||||
},
|
||||
"hashicorp_vsphere": {
|
||||
"hash": "sha256-vRO6vxzi4d0hNc0MmQLhN7roONnsjxPBtFt0fyvxWd8=",
|
||||
@@ -1148,13 +1148,13 @@
|
||||
"vendorHash": null
|
||||
},
|
||||
"sacloud_sakuracloud": {
|
||||
"hash": "sha256-gcl4ClYxmZbACn8rmcZzn/XeYMeLAuhAr2IVuQRqXoQ=",
|
||||
"hash": "sha256-CVM56qxegsJrH+4SxHhfSR/iuXitgW0HCQH8l+Ay0G0=",
|
||||
"homepage": "https://registry.terraform.io/providers/sacloud/sakuracloud",
|
||||
"owner": "sacloud",
|
||||
"repo": "terraform-provider-sakuracloud",
|
||||
"rev": "v2.34.2",
|
||||
"rev": "v2.35.0",
|
||||
"spdx": "Apache-2.0",
|
||||
"vendorHash": "sha256-LQAEOSSqpR8ipYkL6dcJvJvgs17VOYRolYn7Qt4Oer4="
|
||||
"vendorHash": "sha256-SY13J+aguuOicQnNBgutjIGh0njrLubpNl0c0b4kNwo="
|
||||
},
|
||||
"sap-cloud-infrastructure_sci": {
|
||||
"hash": "sha256-m3degJZruqRkA/lSnNQrLfJIlpl5k8qCpbyIcsyV5/U=",
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "allure";
|
||||
version = "2.38.0";
|
||||
version = "2.38.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz";
|
||||
hash = "sha256-ApYPTQw0FONwkn7Sr2qyJBm3GoszkjnllJLpFcdXdMA=";
|
||||
hash = "sha256-y241mNyZsqiwvYgFeAgqxevq6bLiwKEdx1yFD7aXNr0=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -8,21 +8,24 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "antora";
|
||||
version = "3.1.9";
|
||||
version = "3.1.14";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "antora";
|
||||
repo = "antora";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-hkavYC2LO8NRIRwHNWIJLRDkVnhAB4Di3IqL8uGt+U8=";
|
||||
hash = "sha256-9x80aBm2ZBj389kX2wioe7BtaNjR7p9aEZg7o49v0vY=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-ngreuitwUcIDVF6vW7fZA1OaVxr9fv7s0IjCErXlcxg=";
|
||||
npmDepsHash = "sha256-s/f6/PxvSIlhFsCbsD25MPrk67vKXrnDqbfbW72Tr4I=";
|
||||
|
||||
# This is to stop tests from being ran, as some of them fail due to trying to query remote repositories
|
||||
# Also disable the postbuild lint step which tries to download @biomejs/biome at build time
|
||||
postPatch = ''
|
||||
substituteInPlace package.json --replace \
|
||||
substituteInPlace package.json --replace-warn \
|
||||
'"_mocha"' '""'
|
||||
substituteInPlace package.json --replace-warn \
|
||||
'"npm run lint"' '""'
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
ctags,
|
||||
fetchFromGitLab,
|
||||
slang,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "asciijump";
|
||||
version = "1.0.2_beta-12";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "salsa.debian.org";
|
||||
owner = "games-team";
|
||||
repo = "asciijump";
|
||||
tag = "debian/${finalAttrs.version}";
|
||||
hash = "sha256-fD/5tWg/GzSfVYvUWsz1FHXhLx9ud0JRMkM9NhVePdA=";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
for file in $(cat debian/patches/series); do
|
||||
echo "$file:"
|
||||
patch -p1 < debian/patches/$file
|
||||
done
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
enableParallelBuilding = true;
|
||||
|
||||
NIX_CFLAGS_COMPILE = [ "-fsigned-char" ];
|
||||
|
||||
nativeBuildInputs = [ ctags ];
|
||||
buildInputs = [ slang ];
|
||||
|
||||
postInstall = ''
|
||||
rm -rf $out/var
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Small and funny ASCII-art game about ski jumping";
|
||||
homepage = "https://salsa.debian.org/games-team/asciijump";
|
||||
changelog = "https://salsa.debian.org/games-team/asciijump/-/blob/${finalAttrs.src.tag}/debian/changelog";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
mainProgram = "asciijump";
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ Zaczero ];
|
||||
};
|
||||
})
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
buildGo125Module,
|
||||
buildGoModule,
|
||||
callPackage,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
@@ -19,7 +19,7 @@ let
|
||||
hash = "sha256-D1qI7TDJpSvtgpo1FsPZk6mpqRvRharFZ8soI7Mn3RE=";
|
||||
};
|
||||
in
|
||||
buildGo125Module (finalAttrs: {
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "caddy";
|
||||
inherit version;
|
||||
|
||||
|
||||
@@ -40,11 +40,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "calibre";
|
||||
version = "9.4.0";
|
||||
version = "9.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-3anPEeVB5C7RuS5ZCFMvow5WhkIopgCpxpmcstsIgX4=";
|
||||
hash = "sha256-NDz3SxR8GyJi/POdpgEJzRdYNVV88/NkHczrA0JylfM=";
|
||||
};
|
||||
|
||||
patches =
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
version = "0.11";
|
||||
version = "0.12";
|
||||
pname = "chibi-scheme";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ashinn";
|
||||
repo = "chibi-scheme";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-i+xiaYwM7a+0T824VSuh7UUNI6HV9KpqzQPE1WAZ+As=";
|
||||
sha256 = "sha256-TQT3/fZqgQP5UfCKN1ShvGgxdjfNdUWnpqdHKQMJHzY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -275,11 +275,11 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "claws-mail";
|
||||
version = "4.3.1";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://claws-mail.org/download.php?file=releases/claws-mail-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-2K3yEMdnq1glLfxas8aeYD1//bcoGh4zQNLYYGL0aKY=";
|
||||
hash = "sha256-A+BUnV8PzXpZgEGGUkEF0F67XlNNQqS4apqQ9ynKJVs=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
@@ -300,9 +300,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace configure.ac \
|
||||
--replace 'm4_esyscmd([./get-git-version])' '${finalAttrs.version}'
|
||||
--replace-fail 'm4_esyscmd([./get-git-version])' '${finalAttrs.version}'
|
||||
substituteInPlace src/procmime.c \
|
||||
--subst-var-by MIMEROOTDIR ${shared-mime-info}/share
|
||||
--subst-var-by MIMEROOTDIR ${shared-mime-info}/share
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "diffnav";
|
||||
version = "0.10.0";
|
||||
version = "0.11.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dlvhdr";
|
||||
repo = "diffnav";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hoikRqhVjbd7hH4H+f5OGq0KdIX1etAJhrRL+QsAkx8=";
|
||||
hash = "sha256-6VtAQzZNLQrf8QYVXxLUgb3F6xguFDbwaE9kahPhbSE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-VNpmcniSpeocl9B+aNwLh4XPyPnYC8SXowJPYWHyzWs=";
|
||||
vendorHash = "sha256-gmmckzR0D1oFuTG5TAb6gLMoNbcZl9EsjbFjhPfJqnQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gogup";
|
||||
version = "1.1.3";
|
||||
version = "1.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nao1215";
|
||||
repo = "gup";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-R/LTBvutafDTCY39FvUh0dXWwzRKywTlN2G+Qa/rbf8=";
|
||||
hash = "sha256-ptLWQdafFo1zpcgzW0c3C9t8MKquE+fEUEQehSqA2MY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-tFuZ30GjP2GpRjCUXJRexJYXUNDTNktBMKi7ntu3bWM=";
|
||||
vendorHash = "sha256-2iPRWNbhXiaj3jZjWQeEl/hieIzJ3ePYh75rMWDh/pc=";
|
||||
doCheck = false;
|
||||
|
||||
ldflags = [
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "google-guest-oslogin";
|
||||
version = "20250821.00";
|
||||
version = "20260214.00";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "GoogleCloudPlatform";
|
||||
repo = "guest-oslogin";
|
||||
rev = finalAttrs.version;
|
||||
sha256 = "sha256-dvLr3rOzHs5gRbllxqmnkLlHUFYv9Hm2vz6AkwZoZy4=";
|
||||
hash = "sha256-xMelRZ3OGQwZLOC03TjpUcXWqsViVWffIZcSVLz58S4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -40,6 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"MANDIR=$(out)/share/man"
|
||||
"SYSTEMDDIR=$(out)/etc/systemd/system"
|
||||
"PRESETDIR=$(out)/etc/systemd/system-preset"
|
||||
"GOOGLEUSERSDIR=$(out)/google-users.d" # A readme is installed to this directory
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "iwd";
|
||||
version = "3.11";
|
||||
version = "3.12";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-H8kyj5RTY20wwRUJIYJF8lIQ367biItJpHYZeMcNHSE=";
|
||||
hash = "sha256-78Zw/i2dXecvC+DDSunPlUzqJj0FFYf7Sm6iN5VXBbA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
buildGoModule,
|
||||
lib,
|
||||
stdenv,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
@@ -24,9 +25,12 @@ buildGoModule (finalAttrs: {
|
||||
|
||||
# Pass versioning information via ldflags
|
||||
ldflags = [
|
||||
"-X github.com/ory/kratos/driver/config.Version=${finalAttrs.version}"
|
||||
"-X github.com/ory/kratos/driver/config.Version=v${finalAttrs.version}"
|
||||
];
|
||||
|
||||
# large portion of tests fail due to:
|
||||
# provider.go:39: building the Go binary returned error: exit status 1
|
||||
# cannot find module providing package github.com/ory/x/jsonnetsecure/cmd: import lookup disabled by -mod=vendor
|
||||
doCheck = false;
|
||||
|
||||
preBuild = ''
|
||||
@@ -43,6 +47,10 @@ buildGoModule (finalAttrs: {
|
||||
substituteInPlace Makefile --replace-fail '/usr/bin/env bash' '${stdenv.shell}'
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = [ "version" ];
|
||||
|
||||
meta = {
|
||||
mainProgram = "kratos";
|
||||
description = "API-first Identity and User Management system that is built according to cloud architecture best practices";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"packageVersion": "148.0.2-2",
|
||||
"packageVersion": "148.0.2-3",
|
||||
"source": {
|
||||
"rev": "148.0.2-2",
|
||||
"hash": "sha256-vP2m9iewrQdPXIfTIl7d331AAJMo4Hz7BQCBJqI4FcQ="
|
||||
"rev": "148.0.2-3",
|
||||
"hash": "sha256-HPmzhmDvM3wccpKT9auKsV3w0tA9wQEs3sxFyBKCfqQ="
|
||||
},
|
||||
"firefox": {
|
||||
"version": "148.0.2",
|
||||
|
||||
@@ -39,13 +39,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "linyaps";
|
||||
version = "1.12.0";
|
||||
version = "1.12.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OpenAtom-Linyaps";
|
||||
repo = finalAttrs.pname;
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-5vbCic+kAa1c5Io92LyJ20y+/v3M3fKh+AHKaf7kP14=";
|
||||
hash = "sha256-hNXpJCz7px8uw2mbBhou3+Gb5InlMXJT2PjWmUycX5A=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "lldpd";
|
||||
version = "1.0.20";
|
||||
version = "1.0.21";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://media.luffy.cx/files/lldpd/lldpd-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-YbjLItSHnmj3glovuOHpKrtKukdzl3zwJYvDLtn1VFA=";
|
||||
hash = "sha256-WxsBBgeaB4W1XhvkXOxAtmtBd58+5vGo0tvXXTid8JE=";
|
||||
};
|
||||
|
||||
configureFlags = [
|
||||
|
||||
@@ -15,16 +15,16 @@ in
|
||||
buildGo126Module (finalAttrs: {
|
||||
pname = "mediamtx";
|
||||
# check for hls.js version updates in internal/servers/hls/hlsjsdownloader/VERSION
|
||||
version = "1.16.3";
|
||||
version = "1.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bluenviron";
|
||||
repo = "mediamtx";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-TjeNm6gfhw+5IWtlojdO24k/N8oDZddFgQY7/e+dlPY=";
|
||||
hash = "sha256-k+XpnoERFJdpjvyby6vvRyJst9nA2NDq3cMkGL7kRQE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-JHM7yNUaT1UjK0t97ppxW9dTAwcSdF8gmPat5+k3uzo=";
|
||||
vendorHash = "sha256-h3i9pSjCs4A2HBiVF8yz0BN6n9UmuOxNurPFlxFGxtw=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${hlsJs} internal/servers/hls/hls.min.js
|
||||
|
||||
@@ -8,18 +8,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "meilisearch";
|
||||
version = "1.38.2";
|
||||
version = "1.39.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "meilisearch";
|
||||
repo = "meilisearch";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-JzcAE3rZAWU83qinJONzWbWxakYy+kNtZFAUrUljXF4=";
|
||||
hash = "sha256-bgW/++VAnKzmUYm7A6JCzIBzXKlAgSMgxAseMfApce8=";
|
||||
};
|
||||
|
||||
cargoBuildFlags = [ "--package=meilisearch" ];
|
||||
|
||||
cargoHash = "sha256-M85fk7Lx91B9D8Wl+g0wbdr/P0dHKjiVCM2nSlB2yo0=";
|
||||
cargoHash = "sha256-IsrYJD/S5Or9AOa6+KtafRRCrCmFLdt68ysVIQQhJkE=";
|
||||
|
||||
# Default features include mini dashboard which downloads something from the internet.
|
||||
buildNoDefaultFeatures = true;
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "meme-suite";
|
||||
version = "5.5.8";
|
||||
version = "5.5.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://meme-suite.org/meme-software/${version}/meme-${version}.tar.gz";
|
||||
sha256 = "sha256-G0oXU3lcCbHUbebEo/BLM8G8w+QbvPTm4UIg6K12dDs=";
|
||||
sha256 = "sha256-BAb7ex3Cf2qrPW06KezfYXu92UZpDPqXyiEpvCEL/RI=";
|
||||
};
|
||||
|
||||
buildInputs = [ zlib ];
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
let
|
||||
pname = "mochi";
|
||||
version = "1.21.1";
|
||||
version = "1.21.3";
|
||||
|
||||
linux = appimageTools.wrapType2 rec {
|
||||
inherit pname version meta;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.mochi.cards/releases/Mochi-${version}.AppImage";
|
||||
hash = "sha256-JgKzq4iUqpFiB6TpC5Wv7vx+pjeqr9EzNwftiNjEl/I=";
|
||||
hash = "sha256-wJ08L5sWNgBhGyT5m9yVKWdZU8YGiCwhpJQ/3veMpsM=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
@@ -44,9 +44,9 @@ let
|
||||
url = "https://download.mochi.cards/releases/Mochi-${version}${lib.optionalString stdenv.hostPlatform.isAarch64 "-arm64"}.dmg";
|
||||
hash =
|
||||
if stdenv.hostPlatform.isAarch64 then
|
||||
"sha256-b6lANyQWbovy2XegEJ/cNFrhh3YA4G6jzl5rpexi0oQ="
|
||||
"sha256-BEMHe7MOHw2pj15GSYVXv99uNVpwH5zVRRF64Eh3glo="
|
||||
else
|
||||
"sha256-iHNBD8MDmH+OzM2xUVOErB3aPypFN0wCkLKgfSjzfSQ=";
|
||||
"sha256-Rup9V4YPoR/VuTTdg8lkLy/+gbHir1PwpC0FCBoJ7DQ=";
|
||||
};
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -11,16 +11,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "numr";
|
||||
version = "0.5.2";
|
||||
version = "0.5.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nasedkinpv";
|
||||
repo = "numr";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-/tVUISuNspIZTLQxWPq0RSF1wUOYG7wzsYbDAXWobdo=";
|
||||
hash = "sha256-dx5Ow+trL0/gVKj0IOAVwwgNMl4ZwF5K7MEi6fv/QYc=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-tmWK0pQN52Prk0sm8R7BnscucdhY4f7tF5YUbEDClYs=";
|
||||
cargoHash = "sha256-8illKr1unCiZRlcpuzBSCJ/H7HJPW2cHDLq1vF76vss=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -6,22 +6,28 @@
|
||||
|
||||
python3Packages.buildPythonPackage rec {
|
||||
pname = "overturemaps";
|
||||
version = "0.17.0";
|
||||
version = "0.19.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-s8/yV3eneSsQgK8vJqhEBoidgLurz84XgS7qiuLWOEQ=";
|
||||
hash = "sha256-y91x+S6YKBldy7OWIXCJQ5HuR3KrFRdfBkfMmkaeXy8=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [ poetry-core ];
|
||||
nativeBuildInputs = with python3Packages; [
|
||||
hatchling
|
||||
];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
click
|
||||
geopandas
|
||||
numpy
|
||||
pyarrow
|
||||
shapely
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "overturemaps" ];
|
||||
|
||||
meta = {
|
||||
description = "Official command-line tool of the Overture Maps Foundation";
|
||||
homepage = "https://overturemaps.org/";
|
||||
|
||||
@@ -10,17 +10,17 @@
|
||||
}:
|
||||
let
|
||||
pname = "proton-pass";
|
||||
version = "1.34.2";
|
||||
version = "1.35.0";
|
||||
|
||||
passthru = {
|
||||
sources = {
|
||||
"x86_64-linux" = fetchurl {
|
||||
url = "https://proton.me/download/pass/linux/x64/proton-pass_${version}_amd64.deb";
|
||||
hash = "sha256-i5QQ1uzQ2tSDX4I/APL60QcHh9Ovc7ciueRnz7cZUuE=";
|
||||
hash = "sha256-o85PSfZ0wN+QwjzKLb0/RThfTFsa9xY7r4YesLIWlPI=";
|
||||
};
|
||||
"aarch64-darwin" = fetchurl {
|
||||
url = "https://proton.me/download/pass/macos/ProtonPass_${version}.dmg";
|
||||
hash = "sha256-oo02IYOKZEsr0+4zimSFkutTGuS63ZvMZTeUTapZrVw=";
|
||||
hash = "sha256-zwV1jBbtplM7TdS1KkEi813Z2ex45z3BP2ZA72s6pxE=";
|
||||
};
|
||||
"x86_64-darwin" = passthru.sources."aarch64-darwin";
|
||||
};
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "rtk";
|
||||
version = "0.30.0";
|
||||
version = "0.31.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rtk-ai";
|
||||
repo = "rtk";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-aB9SWF9jYHeH3Apz5v4mQptLa6tS9cIfyfo6rHqsD8w=";
|
||||
hash = "sha256-p4OX3SSDGKlHVLIWhgKpcme449wOHbfWbc3mxlCkaMI=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
cargoHash = "sha256-0dpZRBPubzd2GuK02/jbNBWOR/TpFM5lVMucEii/JxM=";
|
||||
cargoHash = "sha256-37YHhccgPNUrlFh35CoQv2H+Y4e41ax0ZoIvrIC0o6I=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
|
||||
@@ -62,7 +62,7 @@ let
|
||||
stdenv.cc.cc
|
||||
stdenv.cc.libc
|
||||
];
|
||||
version = "1.511.5";
|
||||
version = "1.515.0";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "tana";
|
||||
@@ -70,7 +70,7 @@ stdenv.mkDerivation {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/tanainc/tana-desktop-releases/releases/download/v${version}/tana_${version}_amd64.deb";
|
||||
hash = "sha256-AUnA7Q7cq0z8TeTQF2/3aT6WHypZQ+7J9UjfkMJYnoA=";
|
||||
hash = "sha256-L6opOfwlcgADWbMibPtF4YijsFWroYL7alpvDHN5rtg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -8,15 +8,15 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (final: {
|
||||
pname = "tirith";
|
||||
version = "0.2.1";
|
||||
version = "0.2.8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sheeki03";
|
||||
repo = "tirith";
|
||||
tag = "v${final.version}";
|
||||
hash = "sha256-zm39lMApUtSrIcXZ7JGeR6ayqtg7dljfRGBYi8zH4UI=";
|
||||
hash = "sha256-Kd6Rr8x35COc9DA+zskxEPXwHupP9kGNyvKDPcwP09A=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-1363uY+um9U2zT2ss7Ysm8SOb2zf1SuRbc43P1bVlls=";
|
||||
cargoHash = "sha256-D4jN7M1tWW5s+VNJlMFb2EDQ3zdLDtBwuztNbrLMiCA=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "tracexec";
|
||||
version = "0.13.1";
|
||||
version = "0.17.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kxxt";
|
||||
repo = "tracexec";
|
||||
rev = "dbb9b733370f5200df2a0de7f007312c23431480";
|
||||
hash = "sha256-M2ZIfWupnFxQZvr5cl8V0xtLgh+xBcaHHVsHIoio7nI=";
|
||||
rev = "ecbda651a4006789debf565376cd6f37241dec3e";
|
||||
hash = "sha256-wP7jAGoWgvm3/4XBHr27MD8M9qwyVpuDVR96S8+I3eo=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-cyzSxibLw6sb0V3ueNcp55OhFQ5jUNJWcSF8uYnzG2M=";
|
||||
cargoHash = "sha256-kJrWAyRcU5eEfTwaAxcN6oE5KHgBdjznWeI21/3c/UE=";
|
||||
|
||||
hardeningDisable = [ "zerocallusedregs" ];
|
||||
|
||||
@@ -44,20 +44,18 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
cargoBuildFlags = [
|
||||
"--no-default-features"
|
||||
"--features=recommended"
|
||||
]
|
||||
# Remove RiscV64 specialisation when this is fixed:
|
||||
# * https://github.com/NixOS/nixpkgs/pull/310158#pullrequestreview-2046944158
|
||||
# * https://github.com/rust-vmm/seccompiler/pull/72
|
||||
++ lib.optional stdenv.hostPlatform.isRiscV64 "--no-default-features";
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
sed -i '1ino-clearly-defined = true' about.toml # disable network requests
|
||||
cargo about generate --config about.toml -o THIRD_PARTY_LICENSES.HTML about.hbs
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
"--skip=cli::test::log_mode_without_args_works" # `Permission denied` (needs `CAP_SYS_PTRACE`)
|
||||
];
|
||||
# tracexec uses $XDG_DATA_HOME/tracexec for storing temporary files and logs.
|
||||
# Set this directory to $TMPDIR because integration tests needs to access it.
|
||||
preCheck = ''
|
||||
export TRACEXEC_DATA="$TMPDIR"
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# Remove test binaries (e.g. `empty-argv`, `corrupted-envp`) and only retain `tracexec`
|
||||
@@ -77,6 +75,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
mainProgram = "tracexec";
|
||||
maintainers = with lib.maintainers; [
|
||||
fpletz
|
||||
kxxt
|
||||
nh2
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
|
||||
@@ -26,13 +26,13 @@ let
|
||||
in
|
||||
turingstdenv.mkDerivation (finalAttrs: {
|
||||
pname = "turingdb";
|
||||
version = "1.22";
|
||||
version = "1.23";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "turing-db";
|
||||
repo = "turingdb";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-gG3KzEC90nLbIisBt4xnHXtz6LesqJxaviIkTrcTMG0=";
|
||||
hash = "sha256-v9uZqgC4UT2EnBJ+SRr96TiWAPIy1v39GEa2vF9hLf4=";
|
||||
|
||||
fetchSubmodules = true;
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "url-parser";
|
||||
version = "2.1.14";
|
||||
version = "2.1.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thegeeklab";
|
||||
repo = "url-parser";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-jTytdeIAU59DjtFT2eOx9Tf1hZcWYRVOD577mAfx2Ag=";
|
||||
hash = "sha256-lWEzzCR4EuiaFJ4kAfzV0qZlGWVLCclXjwPm5ZEHZrM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-cs1dPW2AYdSM786Ei7Zle/audU2o866vDIhpOzWdMkI=";
|
||||
vendorHash = "sha256-Do+zP+dZQE0piuzAzbr0GN4Qw/JJQEhht6AOInFVi0A=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -7,27 +7,21 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "verifpal";
|
||||
version = "0.27.4";
|
||||
version = "0.31.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "symbolicsoft";
|
||||
repo = "verifpal";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-kBeQ7U97Ezj85A/FbNnE1dXR7VJzx0EUrDbzwOgKl8E=";
|
||||
hash = "sha256-k8SGCo36tk4Etg4jt0NDeEj1BmSYjaZZptNNnrOXs4E=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FvboLGdT+/W5on7NSzRp9QfV2peNVICypSFWAGFakLU=";
|
||||
vendorHash = "sha256-Vg375DBPvurRpwl918AGQU+wJGnB1tYisgch9FA+Y/g=";
|
||||
|
||||
nativeBuildInputs = [ pigeon ];
|
||||
|
||||
subPackages = [ "cmd/verifpal" ];
|
||||
|
||||
# goversioninfo is for Windows only and can be skipped during go generate
|
||||
preBuild = ''
|
||||
substituteInPlace cmd/verifpal/main.go --replace "go:generate goversioninfo" "(disabled goversioninfo)"
|
||||
go generate verifpal.com/cmd/verifpal
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://verifpal.com/";
|
||||
description = "Cryptographic protocol analysis for students and engineers";
|
||||
|
||||
@@ -50,7 +50,10 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
done
|
||||
'';
|
||||
|
||||
makeFlags = [ "HAVE_ICONV=1" ];
|
||||
makeFlags = [
|
||||
"HAVE_ICONV=1"
|
||||
"CONFIG_FILE=/etc/whois.conf"
|
||||
];
|
||||
buildFlags = [ "whois" ];
|
||||
|
||||
installTargets = [ "install-whois" ];
|
||||
|
||||
@@ -189,6 +189,29 @@ buildRedist (finalAttrs: {
|
||||
--replace-fail \
|
||||
"rsqrtf(float x);" \
|
||||
"rsqrtf(float x) noexcept (true);"
|
||||
|
||||
# math_functions.hpp has the same functions wrapped in __func__() macros.
|
||||
# These also need throw() annotations to match glibc 2.42's declarations.
|
||||
nixLog "Patching math_functions.hpp signatures to match glibc's ones"
|
||||
substituteInPlace "''${!outputInclude:?}/include/crt/math_functions.hpp" \
|
||||
--replace-fail \
|
||||
"__func__(double rsqrt(const double a))" \
|
||||
"__func__(double rsqrt(const double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(double sinpi(double a))" \
|
||||
"__func__(double sinpi(double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(double cospi(double a))" \
|
||||
"__func__(double cospi(double a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float rsqrtf(const float a))" \
|
||||
"__func__(float rsqrtf(const float a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float sinpif(const float a))" \
|
||||
"__func__(float sinpif(const float a) throw())" \
|
||||
--replace-fail \
|
||||
"__func__(float cospif(const float a))" \
|
||||
"__func__(float cospif(const float a) throw())"
|
||||
''
|
||||
);
|
||||
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "cymem";
|
||||
version = "2.0.13";
|
||||
version = "2.0.14";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "explosion";
|
||||
repo = "cymem";
|
||||
tag = "release-v${version}";
|
||||
hash = "sha256-n65tkACZi1G4qS/VQWB5ghopzCd5QHRyp9qit+yENIs=";
|
||||
hash = "sha256-pb7AWkCOLfoH2kLNNwIxxHyGsxCpq72Qzid4aCYu9XM=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -1,53 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
setuptools,
|
||||
click,
|
||||
fastapi,
|
||||
fetchFromGitHub,
|
||||
lib,
|
||||
lxml,
|
||||
httpx,
|
||||
h2,
|
||||
fake-useragent,
|
||||
mcp,
|
||||
primp,
|
||||
setuptools,
|
||||
uvicorn,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "ddgs";
|
||||
version = "9.10.0";
|
||||
version = "9.11.4";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deedy5";
|
||||
repo = "ddgs";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-NNXGvDGynu6QtVqxVr74b/qehQ7qhq1NiVxyuKw2C4w=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-+UefNpWKq1Rcm90M+hQavEORYZF4FWC1FzH7TfAH6WA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# We're removing the HTTP client primp below for security reasons,
|
||||
# but can use the already included httpx instead.
|
||||
# Note that while httpx is only used for HTTP/2 by upstream,
|
||||
# it can handle HTTP/1.1 just fine as well.
|
||||
./replace-primp.patch
|
||||
];
|
||||
|
||||
pythonRemoveDeps = [
|
||||
# primp requires a very outdated, potentially insecure version of boringssl
|
||||
"primp"
|
||||
];
|
||||
|
||||
build-system = [ setuptools ];
|
||||
|
||||
dependencies = [
|
||||
click
|
||||
lxml
|
||||
httpx
|
||||
h2
|
||||
fake-useragent
|
||||
]
|
||||
++ httpx.optional-dependencies.http2
|
||||
++ httpx.optional-dependencies.socks
|
||||
++ httpx.optional-dependencies.brotli;
|
||||
primp
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
api = [
|
||||
fastapi
|
||||
mcp
|
||||
uvicorn
|
||||
];
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ versionCheckHook ];
|
||||
versionCheckProgramArg = "version";
|
||||
@@ -55,11 +46,11 @@ buildPythonPackage rec {
|
||||
pythonImportsCheck = [ "ddgs" ];
|
||||
|
||||
meta = {
|
||||
description = "D.D.G.S. | Dux Distributed Global Search. A metasearch library that aggregates results from diverse web search services";
|
||||
description = "A metasearch library that aggregates results from diverse web search services";
|
||||
mainProgram = "ddgs";
|
||||
homepage = "https://github.com/deedy5/ddgs";
|
||||
changelog = "https://github.com/deedy5/ddgs/releases/tag/${src.tag}";
|
||||
changelog = "https://github.com/deedy5/ddgs/releases/tag/${finalAttrs.src.tag}";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ drawbu ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
diff --git a/ddgs/base.py b/ddgs/base.py
|
||||
index 11111acc7a..b71ee337d9 100644
|
||||
--- a/ddgs/base.py
|
||||
+++ b/ddgs/base.py
|
||||
@@ -9,7 +9,7 @@
|
||||
from lxml import html
|
||||
from lxml.etree import HTMLParser as LHTMLParser
|
||||
|
||||
-from .http_client import HttpClient
|
||||
+from .http_client2 import HttpClient2 as HttpClient
|
||||
from .results import BooksResult, ImagesResult, NewsResult, TextResult, VideosResult
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
diff --git a/ddgs/cli.py b/ddgs/cli.py
|
||||
index 36cf2f373c..7cf0b2f35d 100644
|
||||
--- a/ddgs/cli.py
|
||||
+++ b/ddgs/cli.py
|
||||
@@ -9,11 +9,11 @@
|
||||
from urllib.parse import unquote
|
||||
|
||||
import click
|
||||
-import primp
|
||||
|
||||
from . import __version__
|
||||
from .ddgs import DDGS
|
||||
from .utils import _expand_proxy_tb_alias
|
||||
+from .http_client2 import HttpClient2
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
|
||||
def _download_file(url: str, dir_path: str, filename: str, proxy: str | None, *, verify: bool) -> None:
|
||||
try:
|
||||
- resp = primp.Client(proxy=proxy, impersonate="random", impersonate_os="random", timeout=10, verify=verify).get(
|
||||
+ resp = HttpClient2(proxy=proxy, timeout=10, verify=verify).get(
|
||||
url,
|
||||
)
|
||||
if resp.status_code == 200:
|
||||
@@ -11,14 +11,14 @@
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "einx";
|
||||
version = "0.4.1";
|
||||
version = "0.4.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fferflo";
|
||||
repo = "einx";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-n+39RMmdMPsfSufa7rHas2cbRa0SQMTaU5oRksHlDr0=";
|
||||
hash = "sha256-dOwAcTs7e1BuqUFfqJGKsJhD8mxHTuctkgMH8H0gakA=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -2,20 +2,29 @@
|
||||
lib,
|
||||
buildPythonPackage,
|
||||
fetchPypi,
|
||||
setuptools,
|
||||
setuptools-scm,
|
||||
pytestCheckHook,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "escapism";
|
||||
version = "1.1.0";
|
||||
format = "setuptools";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-rdEw5IqFuxquo+dPsDH1AzxwVa7bOaMmX5I9X0DD+XQ=";
|
||||
inherit (finalAttrs) pname version;
|
||||
hash = "sha256-rdEw5IqFuxquo+dPsDH1AzxwVa7bOaMmX5I9X0DD+XQ=";
|
||||
};
|
||||
|
||||
# No tests distributed
|
||||
doCheck = false;
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Simple, generic API for escaping strings";
|
||||
@@ -23,4 +32,4 @@ buildPythonPackage rec {
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ bzizou ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -47,9 +47,6 @@ buildPythonPackage rec {
|
||||
onnxruntime
|
||||
];
|
||||
# onnxruntime-gpu = [ onnxruntime-gpu ];
|
||||
quality = [
|
||||
ruff
|
||||
];
|
||||
};
|
||||
|
||||
pythonImportsCheck = [ "optimum.onnxruntime" ];
|
||||
|
||||
@@ -15,14 +15,7 @@
|
||||
transformers,
|
||||
|
||||
# optional-dependencies
|
||||
diffusers,
|
||||
h5py,
|
||||
onnx,
|
||||
onnxruntime,
|
||||
protobuf,
|
||||
tensorflow,
|
||||
tf2onnx,
|
||||
timm,
|
||||
optimum-onnx,
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@@ -47,33 +40,16 @@ buildPythonPackage rec {
|
||||
packaging
|
||||
torch
|
||||
transformers
|
||||
]
|
||||
++ transformers.optional-dependencies.sentencepiece;
|
||||
];
|
||||
|
||||
optional-dependencies = {
|
||||
onnx = [
|
||||
optimum-onnx
|
||||
];
|
||||
onnxruntime = [
|
||||
onnx
|
||||
datasets
|
||||
protobuf
|
||||
onnxruntime
|
||||
];
|
||||
exporters = [
|
||||
onnx
|
||||
timm
|
||||
onnxruntime
|
||||
protobuf
|
||||
];
|
||||
exporters-tf = [
|
||||
onnx
|
||||
timm
|
||||
h5py
|
||||
tf2onnx
|
||||
onnxruntime
|
||||
numpy
|
||||
datasets
|
||||
tensorflow
|
||||
];
|
||||
diffusers = [ diffusers ];
|
||||
optimum-onnx
|
||||
]
|
||||
++ optimum-onnx.optional-dependencies.onnxruntime;
|
||||
intel = [
|
||||
# optimum-intel
|
||||
];
|
||||
@@ -90,7 +66,6 @@ buildPythonPackage rec {
|
||||
# optimum-graphcore
|
||||
];
|
||||
habana = [
|
||||
transformers
|
||||
# optimum-habana
|
||||
];
|
||||
neuron = [
|
||||
|
||||
+4156
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,61 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
buildPythonPackage,
|
||||
fetchFromGitHub,
|
||||
rustPlatform,
|
||||
libiconv,
|
||||
pytestCheckHook,
|
||||
pytest-asyncio,
|
||||
}:
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "primp";
|
||||
version = "1.1.3";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "deedy5";
|
||||
repo = "primp";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ahTIEStYQ5M7EYidQYpYEVbYwwFFRfBXErWOMDdgNnk=";
|
||||
};
|
||||
|
||||
# The Cargo.lock is not pushed upstream
|
||||
cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
|
||||
postPatch = ''
|
||||
cp ${./Cargo.lock} Cargo.lock
|
||||
'';
|
||||
|
||||
buildAndTestSubdir = "crates/primp-python";
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
rustPlatform.cargoSetupHook
|
||||
rustPlatform.maturinBuildHook
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
libiconv
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
pytest-asyncio
|
||||
];
|
||||
disabledTestPaths = [ "crates/primp-python/tests/test_impersonate.py" ];
|
||||
|
||||
# Tests crash with Abort trap: 6 on Darwin due to tokio runtime
|
||||
# initialization in PyInit_pyo3_async_runtimes being blocked by the sandbox.
|
||||
doCheck = !stdenv.isDarwin;
|
||||
|
||||
pythonImportsCheck = [ "primp" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/deedy5/primp/releases/tag/${finalAttrs.src.tag}";
|
||||
description = " HTTP client that can impersonate web browsers";
|
||||
homepage = "https://github.com/deedy5/primp";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ drawbu ];
|
||||
};
|
||||
})
|
||||
@@ -21,14 +21,14 @@
|
||||
|
||||
buildPythonPackage (finalAttrs: {
|
||||
pname = "pydantic-zarr";
|
||||
version = "0.9.1";
|
||||
version = "0.9.2";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zarr-developers";
|
||||
repo = "pydantic-zarr";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-rgtRN3EXSORa2g2a4aCZacCDLeWM6BosZe5XR0Pg6pU=";
|
||||
hash = "sha256-zwC1qds2/KbwdBvoB2Eep0nL+6WLZBNEtxgKmvrRYE4=";
|
||||
};
|
||||
|
||||
build-system = [
|
||||
|
||||
@@ -118,7 +118,7 @@ let
|
||||
|
||||
setBool = v: if v then "1" else "0";
|
||||
|
||||
# https://github.com/pytorch/pytorch/blob/v2.8.0/torch/utils/cpp_extension.py#L2411-L2414
|
||||
# https://github.com/pytorch/pytorch/blob/v2.10.0/torch/utils/cpp_extension.py#L2411-L2414
|
||||
supportedTorchCudaCapabilities =
|
||||
let
|
||||
real = [
|
||||
@@ -140,10 +140,9 @@ let
|
||||
"9.0"
|
||||
"9.0a"
|
||||
"10.0"
|
||||
"10.0"
|
||||
"10.0a"
|
||||
"10.1"
|
||||
"10.1a"
|
||||
"11.0"
|
||||
"11.0a"
|
||||
"10.3"
|
||||
"10.3a"
|
||||
"12.0"
|
||||
|
||||
@@ -15,14 +15,14 @@ let
|
||||
variants = {
|
||||
# ./update-xanmod.sh lts
|
||||
lts = {
|
||||
version = "6.18.18";
|
||||
hash = "sha256-ynfFioeCP2kvuCE6swH6OmqbfVDGBGEDfCJjaUfZ9g4=";
|
||||
version = "6.18.19";
|
||||
hash = "sha256-m0EYkUY4EfNaWKJ7XE+3CCcJubcZEBbkV8wumykZH+Y=";
|
||||
isLTS = true;
|
||||
};
|
||||
# ./update-xanmod.sh main
|
||||
main = {
|
||||
version = "6.19.8";
|
||||
hash = "sha256-Ay3tWPDz//Pnaam0EjqvVOM3zxSFTby0YxdWBW1a4es=";
|
||||
version = "6.19.9";
|
||||
hash = "sha256-O3R19FuTw2Q80I8HEJM3gzl/yWWF40TRZvMLUfI6N3Y=";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+47
-73
@@ -127,27 +127,23 @@ rec {
|
||||
|
||||
# Return a modified stdenv that builds static libraries instead of
|
||||
# shared libraries.
|
||||
makeStaticLibraries =
|
||||
stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (
|
||||
args:
|
||||
{
|
||||
dontDisableStatic = true;
|
||||
}
|
||||
// lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) {
|
||||
configureFlags = (args.configureFlags or [ ]) ++ [
|
||||
"--enable-static"
|
||||
"--disable-shared"
|
||||
];
|
||||
cmakeFlags = (args.cmakeFlags or [ ]) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ];
|
||||
mesonFlags = (args.mesonFlags or [ ]) ++ [
|
||||
"-Ddefault_library=static"
|
||||
"-Ddefault_both_libraries=static"
|
||||
];
|
||||
}
|
||||
);
|
||||
});
|
||||
makeStaticLibraries = overrideMkDerivationArgs (
|
||||
args:
|
||||
{
|
||||
dontDisableStatic = true;
|
||||
}
|
||||
// lib.optionalAttrs (!(args.dontAddStaticConfigureFlags or false)) {
|
||||
configureFlags = (args.configureFlags or [ ]) ++ [
|
||||
"--enable-static"
|
||||
"--disable-shared"
|
||||
];
|
||||
cmakeFlags = (args.cmakeFlags or [ ]) ++ [ "-DBUILD_SHARED_LIBS:BOOL=OFF" ];
|
||||
mesonFlags = (args.mesonFlags or [ ]) ++ [
|
||||
"-Ddefault_library=static"
|
||||
"-Ddefault_both_libraries=static"
|
||||
];
|
||||
}
|
||||
);
|
||||
|
||||
# Best effort static binaries. Will still be linked to libSystem,
|
||||
# but more portable than Nix store binaries.
|
||||
@@ -196,14 +192,10 @@ rec {
|
||||
Modify a stdenv so that all buildInputs are implicitly propagated to
|
||||
consuming derivations
|
||||
*/
|
||||
propagateBuildInputs =
|
||||
stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
|
||||
propagatedBuildInputs = (args.propagatedBuildInputs or [ ]) ++ (args.buildInputs or [ ]);
|
||||
buildInputs = [ ];
|
||||
});
|
||||
});
|
||||
propagateBuildInputs = overrideMkDerivationArgs (args: {
|
||||
propagatedBuildInputs = (args.propagatedBuildInputs or [ ]) ++ (args.buildInputs or [ ]);
|
||||
buildInputs = [ ];
|
||||
});
|
||||
|
||||
/*
|
||||
Modify a stdenv so that the specified attributes are added to
|
||||
@@ -215,11 +207,7 @@ rec {
|
||||
{ env.NIX_CFLAGS_COMPILE = "-O0"; }
|
||||
stdenv;
|
||||
*/
|
||||
addAttrsToDerivation =
|
||||
extraAttrs: stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (_: extraAttrs);
|
||||
});
|
||||
addAttrsToDerivation = extraAttrs: overrideMkDerivationArgs (_: extraAttrs);
|
||||
|
||||
/*
|
||||
Modify a stdenv so as to extend `mkDerivation`'s arguments.
|
||||
@@ -269,28 +257,20 @@ rec {
|
||||
binaries have debug info, and compiler optimisations are
|
||||
disabled.
|
||||
*/
|
||||
keepDebugInfo =
|
||||
stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
|
||||
dontStrip = true;
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -ggdb -Og";
|
||||
NIX_RUSTFLAGS = toString (args.env.NIX_RUSTFLAGS or "") + " -g -C opt-level=0 -C strip=none";
|
||||
};
|
||||
});
|
||||
});
|
||||
keepDebugInfo = overrideMkDerivationArgs (args: {
|
||||
dontStrip = true;
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -ggdb -Og";
|
||||
NIX_RUSTFLAGS = toString (args.env.NIX_RUSTFLAGS or "") + " -g -C opt-level=0 -C strip=none";
|
||||
};
|
||||
});
|
||||
|
||||
# Modify a stdenv so that it uses the Gold linker.
|
||||
useGoldLinker =
|
||||
stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_LINK = toString (args.env.NIX_CFLAGS_LINK or "") + " -fuse-ld=gold";
|
||||
};
|
||||
});
|
||||
});
|
||||
useGoldLinker = overrideMkDerivationArgs (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_LINK = toString (args.env.NIX_CFLAGS_LINK or "") + " -fuse-ld=gold";
|
||||
};
|
||||
});
|
||||
|
||||
/*
|
||||
Copy the libstdc++ from the model stdenv to the target stdenv.
|
||||
@@ -389,20 +369,16 @@ rec {
|
||||
|
||||
WARNING: this breaks purity!
|
||||
*/
|
||||
impureUseNativeOptimizations =
|
||||
stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -march=native";
|
||||
};
|
||||
impureUseNativeOptimizations = overrideMkDerivationArgs (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " -march=native";
|
||||
};
|
||||
|
||||
NIX_ENFORCE_NO_NATIVE = false;
|
||||
NIX_ENFORCE_NO_NATIVE = false;
|
||||
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
});
|
||||
});
|
||||
preferLocalBuild = true;
|
||||
allowSubstitutes = false;
|
||||
});
|
||||
|
||||
/*
|
||||
Modify a stdenv so that it builds binaries with the specified list of
|
||||
@@ -419,13 +395,11 @@ rec {
|
||||
];
|
||||
*/
|
||||
withCFlags =
|
||||
compilerFlags: stdenv:
|
||||
stdenv.override (old: {
|
||||
mkDerivationFromStdenv = extendMkDerivationArgs old (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " ${toString compilerFlags}";
|
||||
};
|
||||
});
|
||||
compilerFlags:
|
||||
overrideMkDerivationArgs (args: {
|
||||
env = (args.env or { }) // {
|
||||
NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " ${toString compilerFlags}";
|
||||
};
|
||||
});
|
||||
|
||||
withDefaultHardeningFlags =
|
||||
|
||||
@@ -23,13 +23,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "akku";
|
||||
version = "1.1.0-unstable-2025-11-08";
|
||||
version = "1.1.0-unstable-2026-01-09";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "akkuscm";
|
||||
repo = "akku";
|
||||
rev = "411b79ffb40f5ee3b50a72c5a2d5aea97f023c93";
|
||||
sha256 = "sha256-5e4W33EnKvUoLvTsmTPp3GFZsMZp0p3wDwpD9t3clCk=";
|
||||
rev = "5e57de0e144b283b74bc9b050a4aa6510a1cf28c";
|
||||
sha256 = "sha256-5Z2BBfmw3UQaky/7Y8q0Xa+mOxlpOZXQvsGxErmxZSk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -358,7 +358,6 @@ mapAliases {
|
||||
postgrest-py = postgrest; # added 2025-08-29
|
||||
powerlineMemSegment = throw "'powerlineMemSegment' has been renamed to/replaced by 'powerline-mem-segment'"; # Converted to throw 2025-10-29
|
||||
prayer-times-calculator = throw "'prayer-times-calculator' has been renamed to/replaced by 'prayer-times-calculator-offline'"; # Converted to throw 2025-10-29
|
||||
primp = throw "primp was removed as it required a very outdated version of boringssl"; # added 2025-10-20
|
||||
prometheus_client = throw "'prometheus_client' has been renamed to/replaced by 'prometheus-client'"; # Converted to throw 2025-10-29
|
||||
prompt_toolkit = throw "'prompt_toolkit' has been renamed to/replaced by 'prompt-toolkit'"; # Converted to throw 2025-10-29
|
||||
protonup = throw "'protonup' has been renamed to/replaced by 'protonup-ng'"; # Converted to throw 2025-10-29
|
||||
|
||||
@@ -12813,6 +12813,8 @@ self: super: with self; {
|
||||
|
||||
primer3 = callPackage ../development/python-modules/primer3 { };
|
||||
|
||||
primp = callPackage ../development/python-modules/primp { };
|
||||
|
||||
print-color = callPackage ../development/python-modules/print-color { };
|
||||
|
||||
priority = callPackage ../development/python-modules/priority { };
|
||||
|
||||
Reference in New Issue
Block a user