Merge 657b33de3d into haskell-updates

This commit is contained in:
nixpkgs-ci[bot]
2025-06-25 00:25:48 +00:00
committed by GitHub
365 changed files with 10030 additions and 5316 deletions
+1 -1
View File
@@ -49,7 +49,7 @@ jobs:
mergedSha: ${{ inputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
+2 -2
View File
@@ -59,7 +59,7 @@ jobs:
merged-as-untrusted: true
target-as-trusted: true
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
- uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16
with:
@@ -107,7 +107,7 @@ jobs:
name: Request
runs-on: ubuntu-24.04-arm
steps:
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR head.
# This is intentional, because we need to request the review of owners as declared in the base branch.
+3 -3
View File
@@ -46,7 +46,7 @@ jobs:
path: untrusted
- name: Install Nix
uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
@@ -166,7 +166,7 @@ jobs:
path: trusted
- name: Install Nix
uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
@@ -243,7 +243,7 @@ jobs:
merged-as-untrusted: true
- name: Install Nix
uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
+50 -11
View File
@@ -13,6 +13,9 @@ on:
headBranch:
required: true
type: string
secrets:
NIXPKGS_CI_APP_PRIVATE_KEY:
required: true
workflow_dispatch:
inputs:
updatedWithin:
@@ -28,6 +31,10 @@ concurrency:
# PR- and manually-triggered runs will be cancelled, but scheduled runs will be queued.
cancel-in-progress: ${{ github.event_name != 'schedule' }}
# This is used as fallback without app only.
# This happens when testing in forks without setting up that app.
# Labels will most likely not exist in forks, yet. For this case,
# we add the issues permission only here.
permissions:
issues: write # needed to create *new* labels
pull-requests: write
@@ -44,9 +51,20 @@ jobs:
- name: Install dependencies
run: npm install @actions/artifact bottleneck
# Use a GitHub App, because it has much higher rate limits: 12,500 instead of 5,000 req / hour.
- uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
if: vars.NIXPKGS_CI_APP_ID
id: app-token
with:
app-id: ${{ vars.NIXPKGS_CI_APP_ID }}
private-key: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
# No issues: write permission here, because labels in Nixpkgs should
# be created explicitly via the UI with color and description.
permission-pull-requests: write
- name: Log current API rate limits
env:
GH_TOKEN: ${{ github.token }}
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
run: gh api /rate_limit | jq
- name: Labels from API data and Eval results
@@ -54,6 +72,7 @@ jobs:
env:
UPDATED_WITHIN: ${{ inputs.updatedWithin }}
with:
github-token: ${{ steps.app-token.outputs.token || github.token }}
script: |
const Bottleneck = require('bottleneck')
const path = require('node:path')
@@ -74,15 +93,14 @@ jobs:
const allLimits = new Bottleneck({
// Avoid concurrent requests
maxConcurrent: 1,
// Hourly limit is at 5000, but other jobs need some, too!
// https://docs.github.com/en/rest/using-the-rest-api/rate-limits-for-the-rest-api
reservoir: 500,
reservoirRefreshAmount: 500,
reservoirRefreshInterval: 60 * 60 * 1000
// Will be updated with first `updateReservoir()` call below.
reservoir: 0
})
// Pause between mutative requests
const writeLimits = new Bottleneck({ minTime: 1000 }).chain(allLimits)
github.hook.wrap('request', async (request, options) => {
// Requests to the /rate_limit endpoint do not count against the rate limit.
if (options.url == '/rate_limit') return request(options)
stats.requests++
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(options.method))
return writeLimits.schedule(request.bind(null, options))
@@ -90,6 +108,26 @@ jobs:
return allLimits.schedule(request.bind(null, options))
})
async function updateReservoir() {
let response
try {
response = await github.rest.rateLimit.get()
} catch (err) {
core.error(`Failed updating reservoir:\n${err}`)
// Keep retrying on failed rate limit requests instead of exiting the script early.
return
}
// Always keep 1000 spare requests for other jobs to do their regular duty.
// They normally use below 100, so 1000 is *plenty* of room to work with.
const reservoir = Math.max(0, response.data.resources.core.remaining - 1000)
core.info(`Updating reservoir to: ${reservoir}`)
allLimits.updateSettings({ reservoir })
}
await updateReservoir()
// Update remaining requests every minute to account for other jobs running in parallel.
const reservoirUpdater = setInterval(updateReservoir, 60 * 1000)
process.on('uncaughtException', () => clearInterval(reservoirUpdater))
if (process.env.UPDATED_WITHIN && !/^\d+$/.test(process.env.UPDATED_WITHIN))
throw new Error('Please enter "updated within" as integer in hours.')
@@ -269,10 +307,11 @@ jobs:
.map(({ reason }) => core.setFailed(`${reason.message}\n${reason.cause.stack}`))
core.notice(`Processed ${stats.prs} PRs, made ${stats.requests + stats.artifacts} API requests and downloaded ${stats.artifacts} artifacts.`)
clearInterval(reservoirUpdater)
- name: Log current API rate limits
env:
GH_TOKEN: ${{ github.token }}
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
run: gh api /rate_limit | jq
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
@@ -281,7 +320,7 @@ jobs:
github.event_name == 'pull_request_target' &&
!contains(fromJSON(inputs.headBranch).type, 'development')
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token: ${{ steps.app-token.outputs.token }}
configuration-path: .github/labeler.yml # default
sync-labels: true
@@ -291,7 +330,7 @@ jobs:
github.event_name == 'pull_request_target' &&
!contains(fromJSON(inputs.headBranch).type, 'development')
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token: ${{ steps.app-token.outputs.token }}
configuration-path: .github/labeler-no-sync.yml
sync-labels: false
@@ -304,11 +343,11 @@ jobs:
github.event_name == 'pull_request_target' &&
contains(fromJSON(inputs.headBranch).type, 'development')
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token: ${{ steps.app-token.outputs.token }}
configuration-path: .github/labeler-development-branches.yml
sync-labels: true
- name: Log current API rate limits
env:
GH_TOKEN: ${{ github.token }}
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
run: gh api /rate_limit | jq
+3 -3
View File
@@ -29,7 +29,7 @@ jobs:
mergedSha: ${{ inputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
@@ -61,7 +61,7 @@ jobs:
mergedSha: ${{ inputs.mergedSha }}
merged-as-untrusted: true
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
@@ -86,7 +86,7 @@ jobs:
targetSha: ${{ inputs.targetSha }}
target-as-trusted: true
- uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
- uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
+2
View File
@@ -103,6 +103,8 @@ jobs:
permissions:
issues: write
pull-requests: write
secrets:
NIXPKGS_CI_APP_PRIVATE_KEY: ${{ secrets.NIXPKGS_CI_APP_PRIVATE_KEY }}
with:
headBranch: ${{ needs.prepare.outputs.headBranch }}
+1 -1
View File
@@ -35,7 +35,7 @@ jobs:
sparse-checkout: ci
- name: Install Nix
uses: cachix/install-nix-action@17fe5fb4a23ad6cbbe47d6b3f359611ad276644c # v31
uses: cachix/install-nix-action@f0fe604f8a612776892427721526b4c7cfb23aba # v31
with:
extra_nix_config: sandbox = true
+20
View File
@@ -11770,6 +11770,12 @@
githubId = 56772267;
name = "Jürgen Hahn";
};
jherland = {
email = "johan@herland.net";
github = "jherland";
githubId = 547031;
name = "Johan Herland";
};
jhh = {
email = "jeff@j3ff.io";
github = "jhh";
@@ -18330,6 +18336,15 @@
githubId = 22592293;
name = "Kartik Gokte";
};
nukdokplex = {
email = "nukdokplex@nukdokplex.ru";
github = "nukdokplex";
githubId = 25458915;
name = "Viktor Titov";
keys = [
{ fingerprint = "7CE2 4C42 942D 58EA 99F6 F00A A47E 7374 3EF6 FCC4"; }
];
};
nullcube = {
email = "nullcub3@gmail.com";
name = "NullCube";
@@ -27491,6 +27506,11 @@
github = "yanganto";
githubId = 10803111;
};
yannham = {
github = "yannham";
githubId = 6530104;
name = "Yann Hamdaoui";
};
yannickulrich = {
email = "yannick.ulrich@proton.me";
github = "yannickulrich";
@@ -45,6 +45,7 @@ lpeg,,,,,,vyp
lpeg_patterns,,,,,,
lpeglabel,,,,1.6.0,,
lrexlib-gnu,,,,,,
lrexlib-oniguruma,,,,,,junestepp
lrexlib-pcre,,,,,,vyp
lrexlib-posix,,,,,,
lsp-progress.nvim,,,,,,gepbird
1 name rockspec ref server version luaversion maintainers
45 lpeg_patterns
46 lpeglabel 1.6.0
47 lrexlib-gnu
48 lrexlib-oniguruma junestepp
49 lrexlib-pcre vyp
50 lrexlib-posix
51 lsp-progress.nvim gepbird
+1
View File
@@ -630,6 +630,7 @@ with lib.maintainers;
leona
theCapypara
thiagokokada
jamesward
];
shortName = "Jetbrains";
scope = "Maintainers of the Jetbrains IDEs in nixpkgs";
@@ -42,6 +42,8 @@
- [Szurubooru](https://github.com/rr-/szurubooru), an image board engine inspired by services such as Danbooru, dedicated for small and medium communities. Available as [services.szurubooru](#opt-services.szurubooru.enable).
- The [Neat IP Address Planner](https://spritelink.github.io/NIPAP/) (NIPAP) can now be enabled through [services.nipap.enable](#opt-services.nipap.enable).
- [nix-store-veritysetup](https://github.com/nikstur/nix-store-veritysetup-generator), a systemd generator to unlock the Nix Store as a dm-verity protected block device. Available as [boot.initrd.nix-store-veritysetup](options.html#opt-boot.initrd.nix-store-veritysetup.enable).
- [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable).
@@ -92,6 +94,8 @@
- `services.dnscrypt-proxy2` gains a `package` option to specify dnscrypt-proxy package to use.
- `services.gitea` supports sending notifications with sendmail again. To do this, activate the parameter `services.gitea.mailerUseSendmail` and configure SMTP server.
- `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask).
This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`.
+15 -6
View File
@@ -72,12 +72,21 @@ in
restartTriggers = [ config.environment.etc."sysctl.d/60-nixos.conf".source ];
};
# Hide kernel pointers (e.g. in /proc/modules) for unprivileged
# users as these make it easier to exploit kernel vulnerabilities.
boot.kernel.sysctl."kernel.kptr_restrict" = lib.mkDefault 1;
# NixOS wide defaults
boot.kernel.sysctl = {
# Hide kernel pointers (e.g. in /proc/modules) for unprivileged
# users as these make it easier to exploit kernel vulnerabilities.
"kernel.kptr_restrict" = lib.mkDefault 1;
# Improve compatibility with applications that allocate
# a lot of memory, like modern games
boot.kernel.sysctl."vm.max_map_count" = lib.mkDefault 1048576;
# Improve compatibility with applications that allocate
# a lot of memory, like modern games
"vm.max_map_count" = lib.mkDefault 1048576;
# The default max inotify watches is 8192.
# Nowadays most apps require a good number of inotify watches,
# the value below is used by default on several other distros.
"fs.inotify.max_user_instances" = lib.mkDefault 524288;
"fs.inotify.max_user_watches" = lib.mkDefault 524288;
};
};
}
@@ -1,8 +1,8 @@
{
x86_64-linux = "/nix/store/pfh6bq2wxbpp3xz5sinymmp44n505zh8-nix-2.28.3";
i686-linux = "/nix/store/nfxdfb9zcrm9sqkw8xhdqs7vcvrwp1k2-nix-2.28.3";
aarch64-linux = "/nix/store/7w6fj8s7h4pcmx38m1f51xd93ywizm4i-nix-2.28.3";
riscv64-linux = "/nix/store/nnynd5vfd6pf9jkp13bmj44rlrd61l3h-nix-riscv64-unknown-linux-gnu-2.28.3";
x86_64-darwin = "/nix/store/rdxbh5m09c9i2s7zkh7b8g6mnrpmaa19-nix-2.28.3";
aarch64-darwin = "/nix/store/wjrdsqbaial7pl9vfhqc7cpzd9lqcr6a-nix-2.28.3";
x86_64-linux = "/nix/store/gy397nw6h414f4l4vxny1wg8cn4i955d-nix-2.28.4";
i686-linux = "/nix/store/k192aqw8zh71zrli5abqd5wg01bqwmh9-nix-2.28.4";
aarch64-linux = "/nix/store/cp0bzvj8vf5y2z0nimq57crcq6h419fj-nix-2.28.4";
riscv64-linux = "/nix/store/zav2zzhxld8fqvj7hb5z83ggd3ij6888-nix-riscv64-unknown-linux-gnu-2.28.4";
x86_64-darwin = "/nix/store/gj4y690ligr5gawmpnkiw2qs087m068w-nix-2.28.4";
aarch64-darwin = "/nix/store/nb6nkjac7nj242j3m56pkdkbikfjw343-nix-2.28.4";
}
+1
View File
@@ -1618,6 +1618,7 @@
./services/web-apps/nextjs-ollama-llm-ui.nix
./services/web-apps/nexus.nix
./services/web-apps/nifi.nix
./services/web-apps/nipap.nix
./services/web-apps/node-red.nix
./services/web-apps/nostr-rs-relay.nix
./services/web-apps/ocis.nix
+30 -12
View File
@@ -366,6 +366,15 @@ in
description = "Path to a file containing the SMTP password.";
};
mailerUseSendmail = mkOption {
type = types.bool;
default = false;
description = ''
Use the operating system's sendmail command instead of SMTP.
Note: some sandbox settings will be disabled.
'';
};
metricsTokenFile = mkOption {
type = types.nullOr types.str;
default = null;
@@ -402,9 +411,11 @@ in
};
mailer = {
ENABLED = true;
MAILER_TYPE = "sendmail";
FROM = "do-not-reply@example.org";
SENDMAIL_PATH = "''${pkgs.system-sendmail}/bin/sendmail";
PROTOCOL = "smtp+starttls";
SMTP_ADDR = "smtp.example.org";
SMTP_PORT = "587";
FROM = "Gitea Service <do-not-reply@example.org>";
USER = "do-not-reply@example.org";
};
other = {
SHOW_FOOTER_VERSION = false;
@@ -652,9 +663,15 @@ in
})
]);
mailer = mkIf (cfg.mailerPasswordFile != null) {
PASSWD = "#mailerpass#";
};
mailer = mkMerge [
(mkIf (cfg.mailerPasswordFile != null) {
PASSWD = "#mailerpass#";
})
(mkIf cfg.mailerUseSendmail {
PROTOCOL = "sendmail";
SENDMAIL_PATH = "/run/wrappers/bin/sendmail";
})
];
metrics = mkIf (cfg.metricsTokenFile != null) {
TOKEN = "#metricstoken#";
@@ -867,18 +884,18 @@ in
cfg.repositoryRoot
cfg.stateDir
cfg.lfs.contentDir
];
] ++ optional cfg.mailerUseSendmail "/var/lib/postfix/queue/maildrop";
UMask = "0027";
# Capabilities
CapabilityBoundingSet = "";
# Security
NoNewPrivileges = true;
NoNewPrivileges = optional (!cfg.mailerUseSendmail) true;
# Sandboxing
ProtectSystem = "strict";
ProtectHome = true;
PrivateTmp = true;
PrivateDevices = true;
PrivateUsers = true;
PrivateUsers = optional (!cfg.mailerUseSendmail) true;
ProtectHostname = true;
ProtectClock = true;
ProtectKernelTunables = true;
@@ -889,7 +906,7 @@ in
"AF_UNIX"
"AF_INET"
"AF_INET6"
];
] ++ optional cfg.mailerUseSendmail "AF_NETLINK";
RestrictNamespaces = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
@@ -900,9 +917,9 @@ in
# System Call Filtering
SystemCallArchitectures = "native";
SystemCallFilter = [
"~@cpu-emulation @debug @keyring @mount @obsolete @privileged @setuid"
"~@cpu-emulation @debug @keyring @mount @obsolete @setuid"
"setrlimit"
];
] ++ optional (!cfg.mailerUseSendmail) "~@privileged";
};
environment = {
@@ -978,6 +995,7 @@ in
timerConfig.OnCalendar = cfg.dump.interval;
};
};
meta.maintainers = with lib.maintainers; [
ma27
techknowlogick
@@ -21,14 +21,6 @@ in
};
config = lib.mkIf cfg.enable {
# The default max inotify watches is 8192.
# Nowadays most apps require a good number of inotify watches,
# the value below is used by default on several other distros.
boot.kernel.sysctl = {
"fs.inotify.max_user_instances" = lib.mkDefault 524288;
"fs.inotify.max_user_watches" = lib.mkDefault 524288;
};
environment = {
# localectl looks into 00-keyboard.conf
etc."X11/xorg.conf.d/00-keyboard.conf".text = ''
+1 -1
View File
@@ -107,7 +107,7 @@ in
};
WASTEBIN_MAX_BODY_SIZE = mkOption {
default = 1024;
default = 1048576;
type = types.int;
description = "Number of bytes to accept for POST requests";
};
@@ -366,13 +366,11 @@ in
type = "rsa";
bits = 4096;
path = "/etc/ssh/ssh_host_rsa_key";
rounds = 100;
openSSHFormat = true;
}
{
type = "ed25519";
path = "/etc/ssh/ssh_host_ed25519_key";
rounds = 100;
comment = "key comment";
}
];
@@ -798,7 +796,6 @@ in
ssh-keygen \
-t "${k.type}" \
${lib.optionalString (k ? bits) "-b ${toString k.bits}"} \
${lib.optionalString (k ? rounds) "-a ${toString k.rounds}"} \
${lib.optionalString (k ? comment) "-C '${k.comment}'"} \
${lib.optionalString (k ? openSSHFormat && k.openSSHFormat) "-o"} \
-f "${k.path}" \
+1 -11
View File
@@ -128,23 +128,13 @@ in
};
config = mkIf cfg.enable {
assertions = [
{
assertion = cfg.insecure || (cfg.certFile != null && cfg.keyFile != null);
message = ''
Galene needs both certFile and keyFile defined for encryption, or
the insecure flag.
'';
}
];
systemd.services.galene = {
description = "galene";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
${optionalString (cfg.insecure != true) ''
${optionalString (cfg.insecure != true && cfg.certFile != null && cfg.keyFile != null) ''
install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.certFile} ${cfg.dataDir}/cert.pem
install -m 700 -o '${cfg.user}' -g '${cfg.group}' ${cfg.keyFile} ${cfg.dataDir}/key.pem
''}
+331
View File
@@ -0,0 +1,331 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.nipap;
iniFmt = pkgs.formats.ini { };
configFile = iniFmt.generate "nipap.conf" cfg.settings;
defaultUser = "nipap";
defaultAuthBackend = "local";
dataDir = "/var/lib/nipap";
defaultServiceConfig = {
WorkingDirectory = dataDir;
User = cfg.user;
Group = config.users.users."${cfg.user}".group;
Restart = "on-failure";
RestartSec = 30;
};
escapedHost = host: if lib.hasInfix ":" host then "[${host}]" else host;
in
{
options.services.nipap = {
enable = lib.mkEnableOption "global Neat IP Address Planner (NIPAP) configuration";
user = lib.mkOption {
type = lib.types.str;
description = "User to use for running NIPAP services.";
default = defaultUser;
};
settings = lib.mkOption {
description = ''
Configuration options to set in /etc/nipap/nipap.conf.
'';
default = { };
type = lib.types.submodule {
freeformType = iniFmt.type;
options = {
nipapd = {
listen = lib.mkOption {
type = lib.types.str;
default = "::1";
description = "IP address to bind nipapd to.";
};
port = lib.mkOption {
type = lib.types.port;
default = 1337;
description = "Port to bind nipapd to.";
};
foreground = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Remain in foreground rather than forking to background.";
};
debug = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable debug logging.";
};
db_host = lib.mkOption {
type = lib.types.str;
default = "";
description = "PostgreSQL host to connect to. Empty means use UNIX socket.";
};
db_name = lib.mkOption {
type = lib.types.str;
default = cfg.user;
defaultText = defaultUser;
description = "Name of database to use on PostgreSQL server.";
};
};
auth = {
default_backend = lib.mkOption {
type = lib.types.str;
default = defaultAuthBackend;
description = "Name of auth backend to use by default.";
};
auth_cache_timeout = lib.mkOption {
type = lib.types.int;
default = 3600;
description = "Seconds to store cached auth entries for.";
};
};
};
};
};
authBackendSettings = lib.mkOption {
description = ''
auth.backends options to set in /etc/nipap/nipap.conf.
'';
default = {
"${defaultAuthBackend}" = {
type = "SqliteAuth";
db_path = "${dataDir}/local_auth.db";
};
};
type = lib.types.submodule {
freeformType = iniFmt.type;
};
};
nipapd = {
enable = lib.mkEnableOption "nipapd server";
package = lib.mkPackageOption pkgs "nipap" { };
database.createLocally = lib.mkOption {
type = lib.types.bool;
default = true;
description = "Create a nipap database automatically.";
};
};
nipap-www = {
enable = lib.mkEnableOption "nipap-www server";
package = lib.mkPackageOption pkgs "nipap-www" { };
xmlrpcURIFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = "Path to file containing XMLRPC URI for use by web UI - this is a secret, since it contains auth credentials. If null, it will be initialized assuming that the auth database is local.";
};
workers = lib.mkOption {
type = lib.types.int;
default = 4;
description = "Number of worker processes for Gunicorn to fork.";
};
umask = lib.mkOption {
type = lib.types.str;
default = "0";
description = "umask for files written by Gunicorn, including UNIX socket.";
};
unixSocket = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = "Path to UNIX socket to bind to.";
example = "/run/nipap/nipap-www.sock";
};
host = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = "::";
description = "Host to bind to.";
};
port = lib.mkOption {
type = lib.types.nullOr lib.types.port;
default = 21337;
description = "Port to bind to.";
};
};
};
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
systemd.tmpfiles.rules = [
"d '${dataDir}' - ${cfg.user} ${config.users.users."${cfg.user}".group} - -"
];
environment.etc."nipap/nipap.conf" = {
source = configFile;
};
services.nipap.settings = lib.attrsets.mapAttrs' (name: value: {
name = "auth.backends.${name}";
inherit value;
}) cfg.authBackendSettings;
services.nipap.nipapd.enable = lib.mkDefault true;
services.nipap.nipap-www.enable = lib.mkDefault true;
environment.systemPackages = [
cfg.nipapd.package
];
}
(lib.mkIf (cfg.user == defaultUser) {
users.users."${defaultUser}" = {
isSystemUser = true;
group = defaultUser;
home = dataDir;
};
users.groups."${defaultUser}" = { };
})
(lib.mkIf (cfg.nipapd.enable && cfg.nipapd.database.createLocally) {
services.postgresql = {
enable = true;
extensions = ps: with ps; [ ip4r ];
ensureUsers = [
{
name = cfg.user;
}
];
ensureDatabases = [ cfg.settings.nipapd.db_name ];
};
systemd.services.postgresql.serviceConfig.ExecStartPost =
let
sqlFile = pkgs.writeText "nipapd-setup.sql" ''
CREATE EXTENSION IF NOT EXISTS ip4r;
ALTER SCHEMA public OWNER TO "${cfg.user}";
ALTER DATABASE "${cfg.settings.nipapd.db_name}" OWNER TO "${cfg.user}";
'';
in
[
''
${lib.getExe' config.services.postgresql.finalPackage "psql"} -d "${cfg.settings.nipapd.db_name}" -f "${sqlFile}"
''
];
})
(lib.mkIf cfg.nipapd.enable {
systemd.services.nipapd =
let
pkg = cfg.nipapd.package;
in
{
description = "Neat IP Address Planner";
after = [
"network.target"
"systemd-tmpfiles-setup.service"
] ++ lib.optional (cfg.settings.nipapd.db_host == "") "postgresql.service";
requires = lib.optional (cfg.settings.nipapd.db_host == "") "postgresql.service";
wantedBy = [ "multi-user.target" ];
preStart = lib.optionalString (cfg.settings.auth.default_backend == defaultAuthBackend) ''
# Create/upgrade local auth database
umask 077
${pkg}/bin/nipap-passwd create-database >/dev/null 2>&1
${pkg}/bin/nipap-passwd upgrade-database >/dev/null 2>&1
'';
serviceConfig = defaultServiceConfig // {
KillSignal = "SIGINT";
ExecStart = ''
${pkg}/bin/nipapd \
--auto-install-db \
--auto-upgrade-db \
--foreground \
--no-pid-file
'';
};
};
})
(lib.mkIf cfg.nipap-www.enable {
assertions = [
{
assertion =
cfg.nipap-www.xmlrpcURIFile == null -> cfg.settings.auth.default_backend == defaultAuthBackend;
message = "If no XMLRPC URI secret file is specified, then the default auth backend must be in use to automatically generate credentials.";
}
];
# Ensure that _something_ exists in the [www] group.
services.nipap.settings.www = lib.mkDefault { };
systemd.services.nipap-www =
let
pkg = cfg.nipap-www.package;
in
{
description = "Neat IP Address Planner web server";
after = [
"network.target"
"systemd-tmpfiles-setup.service"
] ++ lib.optional cfg.nipapd.enable "nipapd.service";
wantedBy = [ "multi-user.target" ];
environment = {
PYTHONPATH = pkg.pythonPath;
};
serviceConfig = defaultServiceConfig;
script =
let
bind =
if cfg.nipap-www.unixSocket != null then
"unix:${cfg.nipap-www.unixSocket}"
else
"${escapedHost cfg.nipap-www.host}:${toString cfg.nipap-www.port}";
generateXMLRPC = cfg.nipap-www.xmlrpcURIFile == null;
xmlrpcURIFile = if generateXMLRPC then "${dataDir}/www_xmlrpc_uri" else cfg.nipap-www.xmlrpcURIFile;
in
''
test -f "${dataDir}/www_secret" || {
umask 0077
${pkg.python}/bin/python -c "import secrets; print(secrets.token_hex())" > "${dataDir}/www_secret"
}
export FLASK_SECRET_KEY="$(cat "${dataDir}/www_secret")"
# Ensure that we have an XMLRPC URI.
${
if generateXMLRPC then
''
test -f "${dataDir}/www_xmlrpc_uri" || {
umask 0077
www_password="$(${pkg.python}/bin/python -c "import secrets; print(secrets.token_hex())")"
${cfg.nipapd.package}/bin/nipap-passwd add --username nipap-www --password "''${www_password}" --name "User account for the web UI" --trusted
echo "http://nipap-www@${defaultAuthBackend}:''${www_password}@${escapedHost cfg.settings.nipapd.listen}:${toString cfg.settings.nipapd.port}" > "${xmlrpcURIFile}"
}
''
else
""
}
export FLASK_XMLRPC_URI="$(cat "${xmlrpcURIFile}")"
exec "${pkg.gunicorn}/bin/gunicorn" \
--preload --workers ${toString cfg.nipap-www.workers} \
--pythonpath "${pkg}/${pkg.python.sitePackages}" \
--bind ${bind} --umask ${cfg.nipap-www.umask} \
"nipapwww:create_app()"
'';
};
})
]
);
meta.maintainers = with lib.maintainers; [ lukegb ];
}
+1 -1
View File
@@ -68,7 +68,7 @@ in
ManagedOOMMemoryPressure = "kill";
ManagedOOMMemoryPressureLimit = lib.mkDefault "80%";
};
systemd.slices."user-".sliceConfig = lib.mkIf cfg.enableUserSlices {
systemd.slices."user".sliceConfig = lib.mkIf cfg.enableUserSlices {
ManagedOOMMemoryPressure = "kill";
ManagedOOMMemoryPressureLimit = lib.mkDefault "80%";
};
+12 -7
View File
@@ -206,13 +206,18 @@ in
(lib.mkIf ((config.boot.initrd.supportedFilesystems.bcachefs or false) || (bootFs != { })) {
inherit assertions;
# chacha20 and poly1305 are required only for decryption attempts
boot.initrd.availableKernelModules = [
"bcachefs"
"sha256"
"chacha20"
"poly1305"
];
boot.initrd.availableKernelModules =
[
"bcachefs"
"sha256"
]
++ lib.optionals (config.boot.kernelPackages.kernel.kernelOlder "6.15") [
# chacha20 and poly1305 are required only for decryption attempts
# kernel 6.15 uses kernel api libraries for poly1305/chacha20: 4bf4b5046de0ef7f9dc50f3a9ef8a6dcda178a6d
# kernel 6.16 removes poly1305: ceef731b0e22df80a13d67773ae9afd55a971f9e
"poly1305"
"chacha20"
];
boot.initrd.systemd.extraBin = {
# do we need this? boot/systemd.nix:566 & boot/systemd/initrd.nix:357
"bcachefs" = "${pkgs.bcachefs-tools}/bin/bcachefs";
+4 -4
View File
@@ -8,7 +8,6 @@
let
cfg = config.virtualisation.waydroid;
kCfg = config.lib.kernelConfig;
kernelPackages = config.boot.kernelPackages;
waydroidGbinderConf = pkgs.writeText "waydroid.conf" ''
[Protocol]
/dev/binder = aidl2
@@ -26,6 +25,7 @@ in
options.virtualisation.waydroid = {
enable = lib.mkEnableOption "Waydroid";
package = lib.mkPackageOption pkgs "waydroid" { };
};
config = lib.mkIf cfg.enable {
@@ -49,7 +49,7 @@ in
environment.etc."gbinder.d/waydroid.conf".source = waydroidGbinderConf;
environment.systemPackages = with pkgs; [ waydroid ];
environment.systemPackages = [ cfg.package ];
networking.firewall.trustedInterfaces = [ "waydroid0" ];
@@ -63,7 +63,7 @@ in
serviceConfig = {
Type = "dbus";
UMask = "0022";
ExecStart = "${pkgs.waydroid}/bin/waydroid -w container start";
ExecStart = "${cfg.package}/bin/waydroid -w container start";
BusName = "id.waydro.Container";
};
};
@@ -72,7 +72,7 @@ in
"d /var/lib/misc 0755 root root -" # for dnsmasq.leases
];
services.dbus.packages = with pkgs; [ waydroid ];
services.dbus.packages = [ cfg.package ];
};
}
+1
View File
@@ -946,6 +946,7 @@ in
nginx-unix-socket = runTest ./nginx-unix-socket.nix;
nginx-variants = import ./nginx-variants.nix { inherit pkgs runTest; };
nifi = runTestOn [ "x86_64-linux" ] ./web-apps/nifi.nix;
nipap = runTest ./web-apps/nipap.nix;
nitter = runTest ./nitter.nix;
nix-config = runTest ./nix-config.nix;
nix-ld = runTest ./nix-ld.nix;
+69
View File
@@ -0,0 +1,69 @@
{ pkgs, lib, ... }:
let
nipapRc = pkgs.writeText "nipaprc" ''
[global]
hostname = [::1]
port = 1337
username = nixostest
password = nIx0st3st
default_vrf_rt = -
default_list_vrf_rt = all
'';
in
{
name = "lukegb";
meta.maintainers = [ lib.maintainers.lukegb ];
nodes.main =
{ ... }:
{
services.nipap = {
enable = true;
};
environment.systemPackages = [
pkgs.nipap-cli
];
};
testScript = ''
main.wait_for_unit("nipapd.service")
main.wait_for_unit("nipap-www.service")
# Make sure the web UI is up.
main.wait_for_open_port(21337)
main.succeed("curl -fvvv -Ls http://localhost:21337/ | grep 'NIPAP'")
# Check that none of the files we created in /var/lib/nipap are readable.
out = main.succeed("ls -l /var/lib/nipap")
bad_perms = False
for ln in out.split("\n"):
ln = ln.strip()
if not ln or ln.startswith('total '):
continue
if not ln.startswith('-rw------- '):
print(f"Bad file permissions: {ln}")
bad_perms = True
if bad_perms:
t.fail("One or more files were overly permissive.")
# Check we created a web-frontend user.
main.succeed("nipap-passwd list | grep nipap-www")
# Create a test user
main.succeed("nipap-passwd add -u nixostest -p nIx0st3st -n 'NixOS Test User'")
# Try to log in with it on the web frontend
main.succeed("curl -fvvv -Ls -b \"\" -d username=nixostest -d password=nIx0st3st http://localhost:21337/auth/login | grep 'PrefixListController'")
# Try to log in with it using the CLI
main.copy_from_host("${nipapRc}", "/root/.nipaprc")
main.succeed("chmod u=rw,go= /root/.nipaprc")
main.succeed("nipap address add prefix 192.0.2.0/24 type assignment description RFC1166")
main.succeed("nipap address add prefix 192.0.2.1/32 type host description 'test host'")
main.succeed("nipap address add prefix 2001:db8::/32 type reservation description RFC3849")
main.succeed("nipap address add prefix 2001:db8:f00f::/48 type assignment description 'eye pee vee six'")
main.succeed("nipap address add prefix 2001:db8:f00f:face:dead:beef:cafe:feed/128 type host description 'test host 2'")
'';
}
+1 -1
View File
@@ -576,7 +576,7 @@ If you do need to do create this sort of patch file, one way to do so is with gi
```ShellSession
$ git init
$ git add .
$ git add -A
```
3. Edit some files to make whatever changes need to be included in the patch.
+20 -12
View File
@@ -7,6 +7,7 @@
gettext,
gobject-introspection,
wrapGAppsHook3,
writableTmpDirAsHomeHook,
# runtime
adwaita-icon-theme,
@@ -43,10 +44,9 @@
python3,
xvfb-run,
}:
python3.pkgs.buildPythonApplication {
python3.pkgs.buildPythonApplication rec {
pname = "quodlibet${tag}";
version = "4.6.0-unstable-2024-08-08";
version = "4.7.1";
pyproject = true;
outputs = [
@@ -57,14 +57,21 @@ python3.pkgs.buildPythonApplication {
src = fetchFromGitHub {
owner = "quodlibet";
repo = "quodlibet";
rev = "3dcf31dfc8db9806d1f73a47fdabc950d35ded1d";
hash = "sha256-8qWuxTvMF6ksDkbZ6wRLPCJK1cSqgGMPac/ht6qVpnA=";
tag = "release-${version}";
hash = "sha256-xr3c1e4tjw2YHuKbvNeUPBIFdHEcpztqXjHVDSSxYlo=";
};
patches = [ ./fix-gdist-python-3.12.patch ];
# Fix "E ModuleNotFoundError: No module named 'distutils'" in Python 3.12 or newer
patches = [ ./fix-gdist-python-3.12-and-newer.patch ];
build-system = [ python3.pkgs.setuptools ];
postPatch = ''
# Fix "FileExistsError: File already exists: /nix/store/<...>-quodlibet-4.7.1/bin/quodlibet"
substituteInPlace pyproject.toml \
--replace-fail 'quodlibet = "quodlibet.main:main"' ""
'';
nativeBuildInputs =
[
gettext
@@ -118,7 +125,8 @@ python3.pkgs.buildPythonApplication {
++ lib.optionals withMusicBrainzNgs [ musicbrainzngs ]
++ lib.optionals withPahoMqtt [ paho-mqtt ]
++ lib.optionals withPypresence [ pypresence ]
++ lib.optionals withSoco [ soco ];
++ lib.optionals withSoco [ soco ]
++ lib.optionals (pythonAtLeast "3.13") [ standard-telnetlib ];
nativeCheckInputs =
[
@@ -127,6 +135,7 @@ python3.pkgs.buildPythonApplication {
glibcLocales
hicolor-icon-theme
xvfb-run
writableTmpDirAsHomeHook
]
++ (with python3.pkgs; [
polib
@@ -152,7 +161,6 @@ python3.pkgs.buildPythonApplication {
preCheck = ''
export GDK_PIXBUF_MODULE_FILE=${librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
export HOME=$(mktemp -d)
export XDG_DATA_DIRS="$out/share:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_ICON_DIRS:$XDG_DATA_DIRS"
'';
@@ -167,10 +175,10 @@ python3.pkgs.buildPythonApplication {
'';
preFixup = lib.optionalString (kakasi != null) ''
gappsWrapperArgs+=(--prefix PATH : ${kakasi}/bin)
gappsWrapperArgs+=(--prefix PATH : ${lib.getBin kakasi})
'';
meta = with lib; {
meta = {
description = "GTK-based audio player written in Python, using the Mutagen tagging library";
longDescription = ''
Quod Libet is a GTK-based audio player written in Python, using
@@ -186,8 +194,8 @@ python3.pkgs.buildPythonApplication {
& internet radio, and all major audio formats.
'';
homepage = "https://quodlibet.readthedocs.io/en/latest";
license = licenses.gpl2Plus;
maintainers = with maintainers; [
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [
coroa
pbogdan
];
@@ -16,8 +16,8 @@ let
inherit tiling_wm;
};
stableVersion = {
version = "2024.3.2.15"; # "Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1"
sha256Hash = "sha256-L8s8l1/Q4AJEGvdzTLLu9sRZlkNyRDMQvK8moZXOeIE=";
version = "2025.1.1.13"; # "Android Studio Narwhal | 2025.1.1"
sha256Hash = "sha256-MEUqYZd/Ny2spzFqbZ40j2H4Tg6pHQGWqkpRrVtbwO8=";
};
betaVersion = {
version = "2025.1.1.11"; # "Android Studio Narwhal | 2025.1.1 RC 1"
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
mktplcRef = {
name = "amazon-q-vscode";
publisher = "AmazonWebServices";
version = "1.75.0";
hash = "sha256-a6Hvk3q8nqHgjZujuEcJ6UlspJpXeLPNtFl0n1A+Wu0=";
version = "1.78.0";
hash = "sha256-SnvH4WQ9kp9nHJkrQGvWj91XpUI0raP2ud57WViZBG4=";
};
meta = {
@@ -1478,8 +1478,8 @@ let
mktplcRef = {
publisher = "discloud";
name = "discloud";
version = "2.22.50";
hash = "sha256-O9ourjcg4nwfXZOz9n1vgD6ufTkGYNDZrPLnqPUiCAc=";
version = "2.23.9";
hash = "sha256-1IwWaaSF3W5y8Cy/lpscbxGm7xyNGf8cAIu3zhTjWKU=";
};
meta = {
changelog = "https://marketplace.visualstudio.com/items/discloud.discloud/changelog";
@@ -2502,8 +2502,8 @@ let
mktplcRef = {
name = "ionic";
publisher = "ionic";
version = "1.104.0";
hash = "sha256-E3Hfs7YgZ4+eF0Pg7CI7fPFt6DEtFw0DdLq4BSY7vBQ=";
version = "1.105.0";
hash = "sha256-wUYX7TmCyzKGPnl7LycfxN5axCGzq/T2/+XnSdPJJEI=";
};
meta = {
description = "Official VSCode extension for Ionic and Capacitor development";
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "copilot-chat";
version = "0.28.0";
hash = "sha256-Pc04vtCSPlXALPnFtgQcEVa+exzfkYqFh/b8K3bUBJg=";
version = "0.28.2";
hash = "sha256-o6h9AOeBMRqVkhSgHUE2/vmsmJCXciY21mIQD7SUHOU=";
};
meta = {
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "github";
name = "copilot";
version = "1.335.0";
hash = "sha256-GqUegNF1XIpEaQy+0v+TTyIR+EPaeXKVpH4QnvxXt9c=";
version = "1.336.0";
hash = "sha256-7IiYfOX3Xl3cW5FcG+7FjGAmkw7Wa9802eguRmaFE5Y=";
};
meta = {
@@ -15,8 +15,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
mktplcRef = {
name = "python";
publisher = "ms-python";
version = "2025.6.1";
hash = "sha256-aCutbmWI68IRqAwztQ9USo996zWL29UO2eAC75b3/IY=";
version = "2025.8.0";
hash = "sha256-v+MjJmiFMStbVRmh1I7hJp1Fq262QwRyRt9m2f3yF0o=";
};
buildInputs = [ icu ];
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "windows-ai-studio";
publisher = "ms-windows-ai-studio";
version = "0.14.3";
hash = "sha256-0wXgHr5M/HEMFgZFQlwJ/WDJLJG+o0cPj4cxiQuTFE8=";
version = "0.14.4";
hash = "sha256-6QPDnfwXMVxC6qxeaAiTKeiuaxFyPNCFexEjgf5Emrg=";
};
meta = {
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
publisher = "RooVeterinaryInc";
name = "roo-cline";
version = "3.20.3";
hash = "sha256-YCO8TjUZ2IpjTkDYf/4wQgsqGEvn2bt4+yVwWlb2eUQ=";
version = "3.21.5";
hash = "sha256-g5CBUTjpgypibDBbH9kD9SQ6OGDemtch6fX9sWvxEno=";
};
passthru.updateScript = vscode-extension-update-script { };
@@ -144,6 +144,7 @@ stdenv.mkDerivation (
longName
tests
updateScript
vscodeVersion
;
fhs = fhs { };
fhsWithPackages = f: fhs { additionalPkgs = f; };
@@ -9,13 +9,13 @@
}:
mkLibretroCore {
core = "citra";
version = "0-unstable-2025-05-17";
version = "0-unstable-2025-06-22";
src = fetchFromGitHub {
owner = "libretro";
repo = "citra";
rev = "8e634afee9e870620b40efedaef77478cd1f3c99";
hash = "sha256-pf0fgamSg2OHxvft36+Y4wPF9hjyZOQXEtMWs0dkNRM=";
rev = "176214934cd46d6e072adcbda5f676bc4ca3162e";
hash = "sha256-cdBR64OBOGMy0ROR89mbKXC0xk+QkBHUKEkIn2czGiQ=";
fetchSubmodules = true;
};
@@ -5,13 +5,13 @@
}:
mkLibretroCore {
core = "gambatte";
version = "0-unstable-2025-06-13";
version = "0-unstable-2025-06-20";
src = fetchFromGitHub {
owner = "libretro";
repo = "gambatte-libretro";
rev = "811b1f7a56c16f8588caada36d7a3f9a56cb16d4";
hash = "sha256-pPLUvlwRoVMRcCGyxqot2QAanKmQWknk5uF4rRZ41zY=";
rev = "a693367ab1aea60266c7fa7c666b0779035d4745";
hash = "sha256-nQ/hh9EkcftcdV0MvPl3kRUGBxukOxbgLCM9786rtd4=";
};
meta = {
@@ -14,13 +14,13 @@
}:
mkLibretroCore {
core = "play";
version = "0-unstable-2025-06-13";
version = "0-unstable-2025-06-18";
src = fetchFromGitHub {
owner = "jpd002";
repo = "Play-";
rev = "011be1b24fcafd4e5c2262538bd37dfe42a2cd05";
hash = "sha256-fcIDh5ydfbwwdlP0KcGNekjUt+uiDe/spzPLOwvLeUI=";
rev = "ea544501ba7d06f53188939254f671055ceaeaba";
hash = "sha256-fGMFtjvqKCy7jd59Ky2pcLR5PANq1v9GT5tVB2iPXhk=";
fetchSubmodules = true;
};
@@ -2,6 +2,9 @@
lib,
stdenv,
fetchFromGitHub,
runCommand,
writableTmpDirAsHomeHook,
nix-update-script,
libpng,
gsl,
libsndfile,
@@ -15,15 +18,15 @@
assert withOpenCL -> opencl-clhpp != null;
assert withOpenCL -> ocl-icd != null;
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "mandelbulber";
version = "2.32";
version = "2.33";
src = fetchFromGitHub {
owner = "buddhi1980";
repo = "mandelbulber2";
rev = version;
sha256 = "sha256-amNNRuuk7qtcyXUVLEW71yEETExgKw48HeQQyxbi8BE=";
rev = finalAttrs.version;
sha256 = "sha256-3PPgH9E+k2DFm8ib1bmvTsllQ9kYi3oLDwPHcs1Otac=";
};
nativeBuildInputs = [
@@ -45,13 +48,25 @@ stdenv.mkDerivation rec {
ocl-icd
];
sourceRoot = "${src.name}/mandelbulber2";
sourceRoot = "${finalAttrs.src.name}/mandelbulber2";
qmakeFlags = [
"SHARED_PATH=${placeholder "out"}"
(if withOpenCL then "qmake/mandelbulber-opencl.pro" else "qmake/mandelbulber.pro")
];
passthru = {
tests = {
test = runCommand "mandelbulber2-test" {
nativeBuildInputs = [
finalAttrs.finalPackage
writableTmpDirAsHomeHook
];
} "mandelbulber2 --test && touch $out";
};
updateScript = nix-update-script { };
};
meta = with lib; {
description = "3D fractal rendering engine";
mainProgram = "mandelbulber2";
@@ -61,4 +76,4 @@ stdenv.mkDerivation rec {
platforms = platforms.linux;
maintainers = with maintainers; [ kovirobi ];
};
}
})
+3 -3
View File
@@ -13,7 +13,7 @@
with python3Packages;
mkDerivationWith buildPythonPackage rec {
pname = "plover";
version = "4.0.0.dev10";
version = "4.0.2";
meta = with lib; {
broken = stdenv.hostPlatform.isDarwin;
@@ -28,8 +28,8 @@
src = fetchFromGitHub {
owner = "openstenoproject";
repo = "plover";
rev = "v${version}";
sha256 = "sha256-oJ7+R3ZWhUbNTTAw1AfMg2ur8vW1XEbsa5FgSTam1Ns=";
tag = "v${version}";
sha256 = "sha256-VpQT25bl8yPG4J9IwLkhSkBt31Y8BgPJdwa88WlreA8=";
};
# I'm not sure why we don't find PyQt5 here but there's a similar
File diff suppressed because it is too large Load Diff
@@ -328,6 +328,12 @@ buildStdenv.mkDerivation {
# Fixed on Firefox 140
./build-fix-RELRHACK_LINKER-setting-when-linker-name-i.patch
]
++ lib.optionals (lib.versionOlder version "138") [
# https://bugzilla.mozilla.org/show_bug.cgi?id=1941479
# https://phabricator.services.mozilla.com/D240572
# Fixed on Firefox 138
./firefox-cannot-find-type-Allocator.patch
]
++ extraPatches;
postPatch =
@@ -0,0 +1,26 @@
From 518049ce568d01413eeda304e8e9c341ab8849f6 Mon Sep 17 00:00:00 2001
From: Mike Hommey <mh+mozilla@glandium.org>
Date: Thu, 6 Mar 2025 09:36:10 +0000
Subject: [PATCH] Bug 1941479 - Mark mozilla::SmallPointerArray_Element as
opaque. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D240572
---
layout/style/ServoBindings.toml | 1 +
1 file changed, 1 insertion(+)
diff --git a/layout/style/ServoBindings.toml b/layout/style/ServoBindings.toml
index 86c6c3026ce7..2b9a34a81a0f 100644
--- a/layout/style/ServoBindings.toml
+++ b/layout/style/ServoBindings.toml
@@ -301,6 +301,7 @@ opaque-types = [
"mozilla::dom::Touch",
"mozilla::dom::Sequence",
"mozilla::SmallPointerArray",
+ "mozilla::SmallPointerArray_Element",
"mozilla::dom::Optional",
"mozilla::dom::OwningNodeOrString_Value",
"mozilla::dom::Nullable",
--
2.49.0
@@ -9,11 +9,11 @@
buildMozillaMach rec {
pname = "firefox";
version = "128.11.0esr";
version = "128.12.0esr";
applicationName = "Firefox ESR";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "80af64c1dce6d7a25111480567a3251cc2d1edce00acc4d85bbaa44590f5bbf4c0716f9490c3ab8ef1e6fc2bbabb2379029c2dee51ce477933c7a5935092d279";
sha512 = "442d0b2b6ce02adcd878975f01e86548ca8fe93840185d77a1acb41ec99440c7abfdc8757e6f30d60593dcf2c7f50563b6ea6ccd4d239beea01305615b73c359";
};
meta = {
@@ -9,10 +9,10 @@
buildMozillaMach rec {
pname = "firefox";
version = "139.0.4";
version = "140.0";
src = fetchurl {
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
sha512 = "fa5ae798b0cd485e0a56b0c57ed7f33e0d0ef921302dc0169eac91926194abe2070beb54239c81924f819a60b589f305f923970d753c07ba50acc36e1a492db4";
sha512 = "ef209827a422bab443e2b6fc59ac16f0ad99293b3c8f10a978f222ac8da5ff568b2fadfb97784feeafa4a24883d44ea2f34b47b2bb19863a27e00d2d787b8ad3";
};
meta = {
@@ -9,7 +9,7 @@
(
(buildMozillaMach rec {
pname = "floorp";
packageVersion = "11.27.0";
packageVersion = "11.28.0";
applicationName = "Floorp";
binaryName = "floorp";
branding = "browser/branding/official";
@@ -24,7 +24,7 @@
repo = "Floorp";
fetchSubmodules = true;
rev = "v${packageVersion}";
hash = "sha256-lQ84NNWlu4hVKK/CDIDS5JKGdD4i7TTjv4x/dQhDJwo=";
hash = "sha256-2BSl7RHhqFAYSpshBYxuVWwLlVXdOT3xgH4tva5ShY4=";
};
extraConfigureFlags = [
@@ -22,13 +22,13 @@
buildGoModule (finalAttrs: {
pname = "kubernetes";
version = "1.33.1";
version = "1.33.2";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
tag = "v${finalAttrs.version}";
hash = "sha256-fPKLe1P2jsu6pOTqofFrk1048kPOx/mmXYm7/tBzM84=";
hash = "sha256-Ef/tpjM5RGQzO8rZxTad23DuM6VLlV3N54LOu7dtc6A=";
};
vendorHash = null;
@@ -426,13 +426,13 @@
"vendorHash": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw="
},
"equinix": {
"hash": "sha256-1/cKun6sywQeNE7utWoXt84B3kAk5YOmFTjCatwHrqE=",
"hash": "sha256-oKAfDSSY8Ys7wKHSDoFPOOrbXN4cOFq4HYinngjD5xY=",
"homepage": "https://registry.terraform.io/providers/equinix/equinix",
"owner": "equinix",
"repo": "terraform-provider-equinix",
"rev": "v3.9.0",
"rev": "v3.10.0",
"spdx": "MIT",
"vendorHash": "sha256-sjEgBLwk/dYUmq+kL0PtamEukXgC9rzeyTT87HK0Y8E="
"vendorHash": "sha256-kwrRbuMP57knT38w9SmrIs8bPmTaMeflqWb+4cFphew="
},
"exoscale": {
"hash": "sha256-RUO4Ge2z4e4N2FWiLtSNv/w2ivgOJVNYQCJvT8hN/8g=",
@@ -1138,13 +1138,13 @@
"vendorHash": null
},
"sakuracloud": {
"hash": "sha256-HGG6Tf1MR7V+AAo1ic9H1xWChSFiiEKfUN0D4QFUNfU=",
"hash": "sha256-vIP7hlPvx7o8/uXpg6TOEeoDL9FGaTBdXzziOyLrdGY=",
"homepage": "https://registry.terraform.io/providers/sacloud/sakuracloud",
"owner": "sacloud",
"repo": "terraform-provider-sakuracloud",
"rev": "v2.27.0",
"rev": "v2.28.0",
"spdx": "Apache-2.0",
"vendorHash": "sha256-dW3qlNRcmsuWidBYPmFpjBi2u+oT67UPJELAeALq1FY="
"vendorHash": "sha256-hJmMNxlhyzcnguLFJih/K1CSZHIOspTgCJ8nyVjT7mg="
},
"scaleway": {
"hash": "sha256-rAbCLMA4u+bOXbmGDdM5wHIzPytwuX8HTOUgYQwLAdg=",
@@ -1246,11 +1246,11 @@
"vendorHash": "sha256-Tft0YjNUtwDH0SliSseXHqMKB2yzQTsAG1Wfc5ihpvE="
},
"spotinst": {
"hash": "sha256-opJqvsqGqsFz2G+5T2JK1tpDxnFmMCxRVrUNYYnuN7s=",
"hash": "sha256-RdSjsqwvAbhSE/CEBlygjwRpwA5ybsr8pNxlX90Z5Mk=",
"homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
"owner": "spotinst",
"repo": "terraform-provider-spotinst",
"rev": "v1.220.2",
"rev": "v1.220.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-/UoLwkMCY4PsfNITOQBKWT9bKaReaIISqWyYiTS4/64="
},
@@ -10,16 +10,16 @@
buildGoModule rec {
pname = "discordo";
version = "0-unstable-2025-06-12";
version = "0-unstable-2025-06-21";
src = fetchFromGitHub {
owner = "ayn2op";
repo = pname;
rev = "ea5abfdcd67298086a6eb8fc84b7b622b6ab3496";
hash = "sha256-Srm1nEiY4DiZB2Ogj1jzvB+9pmJRcBYLvlikANa7FHM=";
rev = "635ac3678656f23e21de7b114b41cce4390b3386";
hash = "sha256-mM5JesCqzPkOp+u/oZABef/CNAwlGACNqmHr7YG0wD4=";
};
vendorHash = "sha256-4iBMRcnOWCGz6QkYY7mmgKFw6c5LR25sZaRVm7wreOM=";
vendorHash = "sha256-X1/NjLI16U9+UyXMDmogRfIvuYNmWgIJ40uYo7VeTP0=";
env.CGO_ENABLED = 0;
@@ -55,6 +55,7 @@
libsecret,
libcanberra-gtk3,
sane-backends,
fetchurl,
homepage,
version,
@@ -87,6 +88,14 @@ let
'';
};
libxml2' = libxml2.overrideAttrs rec {
version = "2.13.8";
src = fetchurl {
url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
hash = "sha256-J3KUyzMRmrcbK8gfL0Rem8lDW4k60VuyzSsOhZoO6Eo=";
};
};
in
stdenv.mkDerivation rec {
@@ -157,7 +166,7 @@ stdenv.mkDerivation rec {
libsecret
libsoup_2_4
libvorbis
libxml2
libxml2'
llvmPackages.libunwind
libgbm
nspr
@@ -28,16 +28,6 @@ let
# The latest versions can be found at https://www.citrix.com/downloads/workspace-app/linux/
# x86 is unsupported past 23.11, see https://docs.citrix.com/en-us/citrix-workspace-app-for-linux/deprecation
supportedVersions = lib.mapAttrs mkVersionInfo {
"23.09.0" = {
major = "23";
minor = "9";
patch = "0";
x64hash = "7b06339654aa27258d6dfa922828b43256e780b282d07109f452246c7aa27514";
x86hash = "95436fb289602cf31c65b7df89da145fc170233cb2e758a2f11116f15b57d382";
x64suffix = "24";
x86suffix = "24";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest9.html";
};
"23.11.0" = {
major = "23";
@@ -69,7 +59,7 @@ let
x86hash = "";
x64suffix = "76";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest1.html";
};
"24.08.0" = {
@@ -80,7 +70,7 @@ let
x86hash = "";
x64suffix = "98";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest-2408.html";
};
"24.11.0" = {
@@ -91,8 +81,9 @@ let
x86hash = "";
x64suffix = "85";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest13.html";
};
"25.03.0" = {
major = "25";
minor = "03";
@@ -101,9 +92,19 @@ let
x86hash = "";
x64suffix = "66";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
homepage = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest-2503.html";
};
"25.05.0" = {
major = "25";
minor = "05";
patch = "0";
x64hash = "0fwqsxggswms40b5k8saxpm1ghkxppl27x19w8jcslq1f0i1fwqx";
x86hash = "";
x64suffix = "44";
x86suffix = "";
homepage = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
};
};
# Retain attribute-names for abandoned versions of Citrix workspace to
@@ -114,6 +115,7 @@ let
unsupportedVersions = [
"23.02.0"
"23.07.0"
"23.09.0"
];
in
{
+2 -2
View File
@@ -19,11 +19,11 @@
stdenv.mkDerivation rec {
pname = "fldigi";
version = "4.2.06";
version = "4.2.07";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
hash = "sha256-Q2DeIl1vjP65u2pb5qxJLlJwLI9wT4dgnEUtO8sbbAg=";
hash = "sha256-9KpTh0fBqiVC901R1PdH2SEya32Ijl+jkxSSpFuhs6o=";
};
nativeBuildInputs = [ pkg-config ];
@@ -24,34 +24,19 @@
xvfb-run,
gitUpdater,
md4c,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "stellarium";
version = "25.1";
version = "25.2";
src = fetchFromGitHub {
owner = "Stellarium";
repo = "stellarium";
rev = "v${finalAttrs.version}";
hash = "sha256-rbnGSdzPuFdSqWPaKtF3n4oLZ9l+4jX7KtnmcrTvwbs=";
hash = "sha256-2QK9dHflCdmDrRXEHCBpuJR73jsMz9D9lJNa1pbfrTs=";
};
patches = [
# Patch from upstream to fix compilation with Qt 6.9
(fetchpatch {
url = "https://github.com/Stellarium/stellarium/commit/bbcd60ae52b6f1395ef2390a2d2ba9d0f98db548.patch";
hash = "sha256-9VaqLASxn1udUApDZRI5SCqCXNGOHUcdbM+pKhW8ZAg=";
})
# Upstream patch to support building with a locally provided md4c package
(fetchpatch {
url = "https://github.com/Stellarium/stellarium/commit/972c6ba72f575964fbf2049a22d51b4d1fd3983c.patch";
hash = "sha256-ef1Jw5NeT0KLVKQt7VcvQh83n2ujMFK+Nv0165ZQ2r8=";
})
];
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace CMakeLists.txt \
--replace-fail 'SET(CMAKE_INSTALL_PREFIX "''${PROJECT_BINARY_DIR}/Stellarium.app/Contents")' \
@@ -31,7 +31,7 @@ let
};
in
stdenv.mkDerivation rec {
version = "16.3.25";
version = "16.3.27";
pname = "jmol";
src =
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
in
fetchurl {
url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
hash = "sha256-y6IM2xRsueEZCuUtgZg9UnB7Ux4rd+63XJ9kOpMDjRE=";
hash = "sha256-VRyMMkSwdXX80DudS+4uCZBnxypgmR/75PyK/vEJyrs=";
};
patchPhase = ''
+2 -2
View File
@@ -47,7 +47,7 @@ assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation (finalAttrs: {
pname = "R";
version = "4.5.0";
version = "4.5.1";
src =
let
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
in
fetchurl {
url = "https://cran.r-project.org/src/base/R-${lib.versions.major version}/${pname}-${version}.tar.gz";
sha256 = "sha256-OzPqET4NHdyXk4dNWUnOwsc4b2bkq/sc75rsIoRsPOE=";
hash = "sha256-tCp5IUADhmRbEBBbkcaHKHh9tcTIPJ9sMKzc5jLhu3A=";
};
outputs = [
+6 -1
View File
@@ -1194,7 +1194,12 @@ rec {
// {
interpreter =
if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then
if libraries == [ ] then python.interpreter else (python.withPackages (ps: libraries)).interpreter
if libraries == [ ] then
python.interpreter
else if (lib.isFunction libraries) then
(python.withPackages libraries).interpreter
else
(python.withPackages (ps: libraries)).interpreter
else
python.interpreter;
check = optionalString (python.isPy3k && doCheck) (
+2 -2
View File
@@ -8,11 +8,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "allure";
version = "2.34.0";
version = "2.34.1";
src = fetchurl {
url = "https://github.com/allure-framework/allure2/releases/download/${finalAttrs.version}/allure-${finalAttrs.version}.tgz";
hash = "sha256-1R4x8LjUv4ZQXfFeJ1HkHml3sRLhb1tRV3UqApVEo7U=";
hash = "sha256-3xPFiDQp7dUEGiTW0HKolE5lJ00ddqRB/UXSWFURNJo=";
};
dontConfigure = true;
+2 -2
View File
@@ -6,13 +6,13 @@
}:
stdenvNoCC.mkDerivation rec {
pname = "app2unit";
version = "0.9.0";
version = "0.9.2";
src = fetchFromGitHub {
owner = "Vladimir-csp";
repo = "app2unit";
tag = "v${version}";
sha256 = "fw6Vh3Jyop95TQdOFrpspbauSfqMpd0BZkZVc1k6+K0=";
sha256 = "sha256-CwiB/Co75BbVXem2XD2i7kccgjcDk8a0lXCOoz0QVIc=";
};
installPhase = ''
@@ -1,15 +1,13 @@
{
lib,
fetchFromGitLab,
stdenv,
glib,
gtk3,
gobject-introspection,
meson,
ninja,
pkg-config,
gobject-introspection,
vala,
stdenv,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "appmenu-glib-translator";
@@ -19,7 +17,6 @@ stdenv.mkDerivation (finalAttrs: {
owner = "vala-panel-project";
repo = "vala-panel-appmenu";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-v5J3nwViNiSKRPdJr+lhNUdKaPG82fShPDlnmix5tlY=";
};
@@ -30,19 +27,15 @@ stdenv.mkDerivation (finalAttrs: {
ninja
pkg-config
wrapGAppsHook3
gobject-introspection
vala
];
buildInputs = [
glib
gobject-introspection
gtk3
];
propagatedBuildInputs = [ glib ];
meta = {
description = "GTK module that strips menus from all GTK programs, converts to MenuModel and sends to AppMenu";
homepage = "https://gitlab.com/vala-panel-project/vala-panel-appmenu/-/tree/${finalAttrs.version}/subprojects/appmenu-gtk-module";
description = "Library for translating from DBusMenu to GMenuModel";
homepage = "https://gitlab.com/vala-panel-project/vala-panel-appmenu/-/tree/${finalAttrs.version}/subprojects/appmenu-glib-translator";
license = lib.licenses.lgpl3Plus;
maintainers = with lib.maintainers; [ perchun ];
platforms = lib.platforms.linux;
+2 -2
View File
@@ -7,14 +7,14 @@
python3Packages.buildPythonApplication rec {
pname = "auto-editor";
version = "28.0.1";
version = "28.0.2";
pyproject = true;
src = fetchFromGitHub {
owner = "WyattBlue";
repo = "auto-editor";
tag = version;
hash = "sha256-n+9qesm2LCTXJ+X/hDaFQ5EjN+xfnLdl6G8+Qna/cyM=";
hash = "sha256-ozw5ZPvKP7aTBBItQKNx85hZ1T4IxX9NYCcNHC5UuuM=";
};
postPatch = ''
+3 -3
View File
@@ -7,19 +7,19 @@
buildGo123Module (finalAttrs: {
pname = "avalanchego";
version = "1.13.0";
version = "1.13.1";
src = fetchFromGitHub {
owner = "ava-labs";
repo = "avalanchego";
tag = "v${finalAttrs.version}";
hash = "sha256-t6KruPHt51wJ4aJaCG/8tuwKYtaifHvQ3z9oVknNS4E=";
hash = "sha256-AyYBPkMPwgbxgr5Q/mpAUpsXhQ9Y++91XkPHScZ1MtI=";
};
# https://github.com/golang/go/issues/57529
proxyVendor = true;
vendorHash = "sha256-iyx9k8mPPOwpHo9lEdNPf0sQHxbKbNTVLUZrPYY8dWM=";
vendorHash = "sha256-pMrkXv9vgED6e1qtgz+pJj3T0Nyemy0PKr8w7ZiKbgk=";
subPackages = [ "main" ];
+2 -2
View File
@@ -31,13 +31,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "avrdude";
version = "8.0";
version = "8.1";
src = fetchFromGitHub {
owner = "avrdudes";
repo = "avrdude";
rev = "v${finalAttrs.version}";
sha256 = "w58HVCvKuWpGJwllupbj7ndeq4iE9LPs/IjFSUN0DOU=";
sha256 = "sha256-i1q0NQKVd/wiOm1Amop3hW+FWuefFOQCCivuEtEH38k=";
};
nativeBuildInputs =
+11 -9
View File
@@ -4,8 +4,9 @@
fetchFromGitHub,
installShellFiles,
stdenv,
versionCheckHook,
writableTmpDirAsHomeHook,
nix-update-script,
testers,
}:
buildGoModule (finalAttrs: {
pname = "az-pim-cli";
@@ -43,14 +44,15 @@ buildGoModule (finalAttrs: {
--zsh <($out/bin/az-pim-cli completion zsh)
'';
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
command = "HOME=$TMPDIR az-pim-cli version";
package = finalAttrs.finalPackage;
version = "v${finalAttrs.version}";
};
};
doInstallCheck = true;
nativeInstallCheckInputs = [
writableTmpDirAsHomeHook
versionCheckHook
];
versionCheckProgramArg = "version";
versionCheckKeepEnvironment = [ "HOME" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "List and activate Azure Entra ID Privileged Identity Management roles from the CLI";
+29 -9
View File
@@ -2,23 +2,33 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch2,
python3Packages,
rsync,
versionCheckHook,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "barman";
version = "3.13.3";
version = "3.14.1";
pyproject = true;
src = fetchFromGitHub {
owner = "EnterpriseDB";
repo = "barman";
tag = "release/${version}";
hash = "sha256-ffedLH7b/Z1y+yL5EkFJIGdksQZEKc3uu3KOyNc2plw=";
hash = "sha256-Z3+PgUJcyG/M05hMmIhRr3HttzHUDx7BGIs44LA/qE4=";
};
patches = [ ./unwrap-subprocess.patch ];
patches = [
./unwrap-subprocess.patch
# fix building with Python 3.13
(fetchpatch2 {
url = "https://github.com/EnterpriseDB/barman/commit/931f997f1d73bbe360abbca737bea9ae93172989.patch?full_index=1";
hash = "sha256-0aqyjsEabxLf4dpC4DeepmypAl7QfCedh7vy98iVifU=";
})
];
build-system = with python3Packages; [
distutils
@@ -40,12 +50,13 @@ python3Packages.buildPythonApplication rec {
python-snappy
];
nativeCheckInputs = with python3Packages; [
mock
pytestCheckHook
nativeCheckInputs = [
python3Packages.lz4
python3Packages.mock
python3Packages.pytestCheckHook
python3Packages.zstandard
rsync
versionCheckHook
zstandard
lz4
];
disabledTests =
@@ -59,10 +70,19 @@ python3Packages.buildPythonApplication rec {
"test_get_file_mode"
];
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^release/(\\d+\\.\\d+\\.\\d+)$"
];
};
};
meta = {
description = "Backup and Recovery Manager for PostgreSQL";
homepage = "https://www.pgbarman.org/";
changelog = "https://github.com/EnterpriseDB/barman/blob/release/${src.tag}/NEWS";
changelog = "https://github.com/EnterpriseDB/barman/blob/${src.tag}/RELNOTES.md";
mainProgram = "barman";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ freezeboy ];
+75
View File
@@ -0,0 +1,75 @@
{
mkDerivation,
array,
base,
binary,
bitstring,
bytestring,
clock,
containers,
deepseq,
directory,
fetchzip,
filepath,
haskeline,
lib,
megaparsec,
mtl,
optparse-applicative,
process,
random,
time,
}:
mkDerivation {
pname = "bruijn";
version = "0.1.0.0";
src = fetchzip {
url = "https://github.com/marvinborner/bruijn/archive/d60ad52f135370635db3a2db3363005670af14b8.tar.gz";
sha256 = "182v56vc71467q8x7bp83ch6wp3kv5wgxrm53l2vvnvfqyqswpi2";
};
isLibrary = true;
isExecutable = true;
enableSeparateDataOutput = true;
libraryHaskellDepends = [
array
base
binary
bitstring
bytestring
clock
containers
deepseq
directory
filepath
haskeline
megaparsec
mtl
optparse-applicative
process
random
time
];
executableHaskellDepends = [
array
base
binary
bitstring
bytestring
clock
containers
deepseq
directory
filepath
haskeline
megaparsec
mtl
optparse-applicative
process
random
time
];
homepage = "https://github.com/githubuser/bruijn#readme";
license = lib.licenses.mit;
mainProgram = "bruijn";
maintainers = [ lib.maintainers.defelo ];
}
+25
View File
@@ -0,0 +1,25 @@
{
haskell,
haskellPackages,
lib,
}:
let
inherit (haskell.lib.compose) justStaticExecutables overrideCabal;
generated = haskellPackages.callPackage ./generated.nix { };
overrides = {
version = lib.fileContents ./version.txt;
passthru.updateScript = ./update.sh;
description = "Purely functional programming language based on lambda calculus and de Bruijn indices";
homepage = "https://bruijn.marvinborner.de/";
};
in
lib.pipe generated [
(overrideCabal overrides)
justStaticExecutables
]
+16
View File
@@ -0,0 +1,16 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p coreutils cabal2nix curl jq nixfmt-rfc-style
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
{ read -r rev; read -r committer_date; } \
< <(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sfL https://api.github.com/repos/marvinborner/bruijn/branches/main \
| jq -r '.commit | .sha, .commit.committer.date')
cabal2nix --maintainer defelo "https://github.com/marvinborner/bruijn/archive/${rev}.tar.gz" \
| nixfmt \
> generated.nix
echo "0-unstable-$(date -I --date="$committer_date")" > version.txt
+1
View File
@@ -0,0 +1 @@
0-unstable-2025-06-23
+19 -18
View File
@@ -34,26 +34,27 @@ python3Packages.buildPythonApplication rec {
setuptools-scm
];
dependencies = with python3Packages; [
click
dulwich
grpcio
jinja2
markupsafe
packaging
pluginbase
protobuf
psutil
pyroaring
requests
ruamel-yaml
ruamel-yaml-clib
tomlkit
ujson
];
dependencies =
[ buildbox ]
++ (with python3Packages; [
click
dulwich
grpcio
jinja2
markupsafe
packaging
pluginbase
protobuf
psutil
pyroaring
requests
ruamel-yaml
ruamel-yaml-clib
tomlkit
ujson
]);
buildInputs = [
buildbox
fuse3
lzip
patch
+5 -5
View File
@@ -17,7 +17,7 @@
}:
stdenvNoCC.mkDerivation rec {
version = "1.2.16";
version = "1.2.17";
pname = "bun";
src =
@@ -86,19 +86,19 @@ stdenvNoCC.mkDerivation rec {
sources = {
"aarch64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip";
hash = "sha256-IBaCFzMLDruOkUg25jqvVxQK/wz5VxYidlh8qwQS8X8=";
hash = "sha256-n1X9IT8vdo0C61uYhaqkSx4TB6aAwYYitXCVMCqTGvk=";
};
"aarch64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-aarch64.zip";
hash = "sha256-gKAkQ0q1sJjCWe5VsfWCgFkdHeKGxcZStjNkCoyZ5j4=";
hash = "sha256-oLmW9IyXe+tOh7CaRx3tfmPuXC+0tyeQx6tLrbwUfWs=";
};
"x86_64-darwin" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-x64-baseline.zip";
hash = "sha256-WPEJ8m81EF1RogdpAOLhdQamBY7lk6NMRZ3IeeUiHnQ=";
hash = "sha256-pUtqF3ilItj4z1fBgJWsp2QrAJz4FhPkiAX9gpVPsME=";
};
"x86_64-linux" = fetchurl {
url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-linux-x64.zip";
hash = "sha256-+DEdjXyqDZOMbEzs8KYA5enOTidaQR44oun4x30MEAI=";
hash = "sha256-YFQgcHRlO028IyDVph5mTktvQjee/BjWGBv/zAekMZM=";
};
};
updateScript = writeShellScript "update-bun" ''
+2 -2
View File
@@ -28,11 +28,11 @@
stdenv.mkDerivation rec {
pname = "cardinal";
version = "24.12";
version = "25.06";
src = fetchurl {
url = "https://github.com/DISTRHO/Cardinal/releases/download/${version}/cardinal+deps-${version}.tar.xz";
hash = "sha256-iXurkftPCfTL3a2zH1RSGIyMISFiUhDawyndNhY8Ynk=";
hash = "sha256-siZbbYrMGjhiof2M2ZBl2gekePuwsKvR8uZCdjyywiE=";
};
prePatch = ''
+3 -3
View File
@@ -9,15 +9,15 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-public-api";
version = "0.47.1";
version = "0.48.0";
src = fetchCrate {
inherit pname version;
hash = "sha256-xDMOrL9yyaEEwPhcrkPugVMTyKW4T6X1yE4tN9dmPas=";
hash = "sha256-QNv1aVdGZUSgiq4nJ5epuioZOJCKsss7GKYlsf98CJc=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-HhYGc0S/i6KWZsv4E1NTkZb+jdUkcKDP/c0hdVTHJXE=";
cargoHash = "sha256-XzMNQbDP1dCs1vCEGgOBLR0xw8RSXupMdX5V0SPtvy4=";
nativeBuildInputs = [ pkg-config ];
+3 -3
View File
@@ -10,15 +10,15 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-show-asm";
version = "0.2.49";
version = "0.2.50";
src = fetchCrate {
inherit pname version;
hash = "sha256-DH3jE7nGdwIQVHk80EsC4gYh5+wk6VMWS0d+jZYnX1I=";
hash = "sha256-BmRcaZKAWwRJQyVsymudDg6l7O9pcE2s+Y9VgaJ/Q48=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-R+I6EVzHvI1Et4nvxENc3IvfmSLr/g77x4wCMNb2R88=";
cargoHash = "sha256-+NOk3lzBsgPs1AIUfwWP4sOKSV3XPZsPxl0QNPXPgZQ=";
nativeBuildInputs = [
installShellFiles
+3 -3
View File
@@ -10,17 +10,17 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-tarpaulin";
version = "0.32.7";
version = "0.32.8";
src = fetchFromGitHub {
owner = "xd009642";
repo = "tarpaulin";
rev = version;
hash = "sha256-e7U9xhS703Ww9m0Ky1QRKgSmO0M15UR4if/ZdbLSiTs=";
hash = "sha256-DdDYTMtiHFrTnUihhZlHB9ZuuyXwGL8eQ4mqgsgPnsQ=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-neG0W3AxgQ2/F9y1e176DHsS247Fx4WcHykc6GdPZvc=";
cargoHash = "sha256-2VnQo+WSc/bMMnGXY+kyLh5P2a39S8KDirfqbLJRSu0=";
nativeBuildInputs = [
pkg-config
+3 -3
View File
@@ -6,17 +6,17 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-xwin";
version = "0.18.6";
version = "0.19.0";
src = fetchFromGitHub {
owner = "rust-cross";
repo = "cargo-xwin";
rev = "v${version}";
hash = "sha256-srPXWJAMc5IOLucGg0QNG23aqMABftQTM3PjcbZc8+A=";
hash = "sha256-uu3fKq6ZebDbTBpp5UaAOCWnaeJ0xRgVO+GNDHheKGA=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-1JJSK7Ss4o/Vk1mxQtNfTLOuA5fwfKpcv5MrsJEuXYU=";
cargoHash = "sha256-/u1qBe+eOAXqjgly62eFIglO3XuZd/f2w7DcHsqvZGA=";
meta = with lib; {
description = "Cross compile Cargo project to Windows MSVC target with ease";
+2 -2
View File
@@ -12,13 +12,13 @@
}:
stdenvNoCC.mkDerivation rec {
pname = "catppuccin-sddm";
version = "1.0.0";
version = "1.1.0";
src = fetchFromGitHub {
owner = "catppuccin";
repo = "sddm";
rev = "v${version}";
hash = "sha256-SdpkuonPLgCgajW99AzJaR8uvdCPi4MdIxS5eB+Q9WQ=";
hash = "sha256-mDOiIGcpIvl4d3Dtsb2AX/1OggFEJ+hAjCd2LH7lqv0=";
};
dontWrapQtApps = true;
+2 -2
View File
@@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "ceph-csi";
version = "3.14.0";
version = "3.14.1";
src = fetchFromGitHub {
owner = "ceph";
repo = "ceph-csi";
rev = "v${version}";
hash = "sha256-c6OaWDR38S0yl3pVN+DYjfg9oHqmVXljstmvBDmfOi8=";
hash = "sha256-WyWs5zrgU9//b2CeIKvgcE4jQDsfYQjo4UwYjpHyEeY=";
};
preConfigure = ''
+2 -2
View File
@@ -6,12 +6,12 @@
stdenv.mkDerivation rec {
pname = "ciao";
version = "1.24.0-m1";
version = "1.25.0-m1";
src = fetchFromGitHub {
owner = "ciao-lang";
repo = "ciao";
rev = "v${version}";
sha256 = "sha256-vjDiYL6yVfLo7NrVKdYRxMUrg7aqQHTezqNoDJcsEuI=";
sha256 = "sha256-jsHz50+R/bs19ees3kKYalYk72ET9eSAAUY7QogI0go=";
};
configurePhase = ''
+2 -2
View File
@@ -16,11 +16,11 @@
stdenv.mkDerivation rec {
pname = "cifs-utils";
version = "7.3";
version = "7.4";
src = fetchurl {
url = "https://download.samba.org/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2";
sha256 = "sha256-xOHrX0rYgNluFtlaHNvH7JeKtRxbbYogrgnaxjjzbdU=";
sha256 = "sha256-UzU9BcMLT8nawAao8MUFTN2KGDTBdjE8keRpQCXEuJE=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -7,16 +7,16 @@
buildGoModule rec {
pname = "circleci-cli";
version = "0.1.32367";
version = "0.1.32580";
src = fetchFromGitHub {
owner = "CircleCI-Public";
repo = "circleci-cli";
rev = "v${version}";
sha256 = "sha256-8phKDgZPMJlZryCAUy2Jtk2BdMbeCQ9RdhEfkN7MEWc=";
sha256 = "sha256-BeujMfaW5byZn25OpP1SbAuw0J9of6csw+LK9SVcu+A=";
};
vendorHash = "sha256-mMMZ0EntLT9YC0Q1ya/uTRA2cl95aqg/XBtLXC7ufqc=";
vendorHash = "sha256-RQK51VSag1AkJMa/rmWpSuuzhRqSG2a3+sNisp0q7lU=";
nativeBuildInputs = [ installShellFiles ];
+5 -4
View File
@@ -34,9 +34,8 @@ stdenv.mkDerivation rec {
};
patches = [
# Flaky test, remove this when https://github.com/Cisco-Talos/clamav/issues/343 is fixed
./remove-freshclam-test.patch
./sample-cofiguration-file-install-location.patch
./sample-configuration-file-install-location.patch
./use-non-existent-file-with-proper-permissions.patch
];
enableParallelBuilding = true;
@@ -69,7 +68,9 @@ stdenv.mkDerivation rec {
"-DAPP_CONFIG_DIRECTORY=/etc/clamav"
];
doCheck = true;
# Seems to only fail on x86_64-darwin with sandboxing
doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64);
__darwinAllowLocalNetworking = true;
checkInputs = [
python3.pkgs.pytest
@@ -1,20 +0,0 @@
diff --git a/unit_tests/CMakeLists.txt b/unit_tests/CMakeLists.txt
index 1460357ba..1194abc9d 100644
--- a/unit_tests/CMakeLists.txt
+++ b/unit_tests/CMakeLists.txt
@@ -371,15 +371,6 @@ if(ENABLE_APP)
set_property(TEST clamd_valgrind PROPERTY ENVIRONMENT ${ENVIRONMENT} VALGRIND=${Valgrind_EXECUTABLE})
endif()
- add_test(NAME freshclam COMMAND ${PythonTest_COMMAND};freshclam_test.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
- set_property(TEST freshclam PROPERTY ENVIRONMENT ${ENVIRONMENT})
- if(Valgrind_FOUND)
- add_test(NAME freshclam_valgrind COMMAND ${PythonTest_COMMAND};freshclam_test.py
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
- set_property(TEST freshclam_valgrind PROPERTY ENVIRONMENT ${ENVIRONMENT} VALGRIND=${Valgrind_EXECUTABLE})
- endif()
-
add_test(NAME sigtool COMMAND ${PythonTest_COMMAND};sigtool_test.py
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set_property(TEST sigtool PROPERTY ENVIRONMENT ${ENVIRONMENT})
@@ -0,0 +1,13 @@
diff --git a/unit_tests/check_clamd.c b/unit_tests/check_clamd.c
index 2f526709a..df67c36ed 100644
--- a/unit_tests/check_clamd.c
+++ b/unit_tests/check_clamd.c
@@ -144,7 +144,7 @@ static void conn_teardown(void)
#define CLEANREPLY CLEANFILE ": OK"
#define UNKNOWN_REPLY "UNKNOWN COMMAND"
-#define NONEXISTENT PATHSEP "nonexistentfilename"
+#define NONEXISTENT PATHSEP "tmp" PATHSEP "nonexistentfilename"
#define NONEXISTENT_REPLY NONEXISTENT ": File path check failure: No such file or directory. ERROR"
+4 -4
View File
@@ -6,13 +6,13 @@
"packages": {
"": {
"dependencies": {
"@anthropic-ai/claude-code": "^1.0.30"
"@anthropic-ai/claude-code": "^1.0.33"
}
},
"node_modules/@anthropic-ai/claude-code": {
"version": "1.0.30",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.30.tgz",
"integrity": "sha512-qIs92Cq3hFwn9/lZBta+wWJfGoQsrbFuiVm0bkurwGKxaJV69Ibr6hYfSU/lIKLcbvSygkZ/tWRxFQt44gnFhQ==",
"version": "1.0.33",
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.33.tgz",
"integrity": "sha512-rKQ1C0+iSV/bS4LVfyCt2FIkIc8MnFi5EbmRAXEunNkXLCQLHfXjsqx7cLOy7c11vZwGkyf/wEp5LwaDQHdjCQ==",
"hasInstallScript": true,
"license": "SEE LICENSE IN README.md",
"bin": {
+3 -3
View File
@@ -7,16 +7,16 @@
buildNpmPackage rec {
pname = "claude-code";
version = "1.0.30";
version = "1.0.33";
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
hash = "sha256-DwzSXpDrNV8FhfqrRQ3OK/LjmiXd+VHEW91jnyds2P4=";
hash = "sha256-AH/ZokL0Ktsx18DrpUKgYrZKdBnKo29jntwXUWspH8w=";
};
npmDepsHash = "sha256-M6H6A4i4JBqcFTG/ZkmxpINa4lw8sO5+iu2YcBqmvi4=";
npmDepsHash = "sha256-oHSePK/QiAHP+2Fn+yUf66TcRGCoZg3mrI4x7S/nbCc=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
+3 -3
View File
@@ -21,12 +21,12 @@
rustPlatform.buildRustPackage {
pname = "crosvm";
version = "0-unstable-2025-06-06";
version = "0-unstable-2025-06-17";
src = fetchgit {
url = "https://chromium.googlesource.com/chromiumos/platform/crosvm";
rev = "7083e31d219cdcd57866c70144e1b39ddc008f0f";
hash = "sha256-oZR4UcN8lDoqNoUFGLbIDDRO55noDX0xMWa8W0DbVl4=";
rev = "49e226a57f905b00e44a996c93d9a2439dcb86f3";
hash = "sha256-+HtF9nBv6unnrav5Z84xSOhK+RrlOFBHed6SiuHAcfs=";
fetchSubmodules = true;
};
+40 -4
View File
@@ -1,30 +1,66 @@
{
lib,
fetchzip,
fetchurl,
stdenv,
makeDesktopItem,
}:
stdenv.mkDerivation rec {
pname = "cyberchef";
let
icon = fetchurl {
url = "https://raw.githubusercontent.com/gchq/CyberChef/c57556f49f723863b9be15668fd240672cd15b09/src/web/static/images/cyberchef-512x512.png";
hash = "sha256-Lg9JbVHhdILdrRtxYFWSv9HNJUx98JOaTbs+IbS1eO0=";
};
desktopItem = (
makeDesktopItem {
name = "cyberchef";
desktopName = "Cyberchef";
exec = "cyberchef";
icon = "cyberchef";
comment = "Cyber Swiss Army Knife for encryption, encoding, compression and data analysis";
categories = [ "Development" ];
}
);
version = "10.19.4";
in
stdenv.mkDerivation {
pname = "cyberchef";
inherit version;
src = fetchzip {
url = "https://github.com/gchq/CyberChef/releases/download/v${version}/CyberChef_v${version}.zip";
sha256 = "sha256-eOMo7kdxC5HfmMrKUhGZU3vnBXibO2Fz1ftIS9RAbjY=";
hash = "sha256-eOMo7kdxC5HfmMrKUhGZU3vnBXibO2Fz1ftIS9RAbjY=";
stripRoot = false;
};
installPhase = ''
mkdir -p "$out/share/cyberchef"
mkdir -p "$out/bin"
mv "CyberChef_v${version}.html" index.html
mv * "$out/share/cyberchef"
cat <<INI > $out/bin/cyberchef
#!/bin/sh
xdg-open $out/share/cyberchef/index.html
INI
chmod +x $out/bin/cyberchef
install -m 444 -D ${icon} $out/share/icons/hicolor/512x512/apps/cyberchef.png
mkdir -p $out/share/applications/
cp ${desktopItem}/share/applications/*.desktop $out/share/applications/
'';
meta = {
description = "Cyber Swiss Army Knife for encryption, encoding, compression and data analysis";
homepage = "https://gchq.github.io/CyberChef";
changelog = "https://github.com/gchq/CyberChef/blob/v${version}/CHANGELOG.md";
maintainers = with lib.maintainers; [ sebastianblunt ];
maintainers = with lib.maintainers; [
sebastianblunt
aldenparker
];
license = lib.licenses.asl20;
platforms = lib.platforms.all;
};
+9 -6
View File
@@ -6,23 +6,26 @@
rustPlatform.buildRustPackage {
pname = "deploy-rs";
version = "0-unstable-2024-06-12";
version = "0-unstable-2025-06-05";
src = fetchFromGitHub {
owner = "serokell";
repo = "deploy-rs";
rev = "3867348fa92bc892eba5d9ddb2d7a97b9e127a8a";
hash = "sha256-FaGrf7qwZ99ehPJCAwgvNY5sLCqQ3GDiE/6uLhxxwSY=";
rev = "6bc76b872374845ba9d645a2f012b764fecd765f";
hash = "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-e+Exc0lEamAieZ7QHJBYvmnmM/9YHdLRD3La4U5FRMo=";
cargoHash = "sha256-9O93YTEz+e2oxenE0gwxsbz55clbKo9+37yVOqz7ErE=";
meta = {
description = "Multi-profile Nix-flake deploy tool";
homepage = "https://github.com/serokell/deploy-rs";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [ teutat3s ];
maintainers = with lib.maintainers; [
teutat3s
jk
];
teams = [ lib.teams.serokell ];
mainProgram = "deploy";
};
}
+3 -3
View File
@@ -27,16 +27,16 @@ assert lib.assertMsg (lib.elem true [
rustPlatform.buildRustPackage rec {
pname = "diesel-cli";
version = "2.2.10";
version = "2.2.11";
src = fetchCrate {
inherit version;
crateName = "diesel_cli";
hash = "sha256-ELl8jrTWu2pXn2+ZQh7Z/lrmxRCkCXCCXvXcAKF5IJg=";
hash = "sha256-utiIuifPxHjvC0TkY2XLeOlqReaal/4T4hrJ7tmQ27k=";
};
useFetchCargoVendor = true;
cargoHash = "sha256-uijO0eAc9U7T5SDh3iCr/wC257Q83VOJGop4KADGfgA=";
cargoHash = "sha256-QHcH0jgBAYtyYJoaBJW92HR5ZBgdMLupe5+l22Wpfjg=";
nativeBuildInputs = [
installShellFiles
+2 -2
View File
@@ -9,14 +9,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "dita-ot";
version = "4.3.2";
version = "4.3.3";
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ openjdk17 ];
src = fetchzip {
url = "https://github.com/dita-ot/dita-ot/releases/download/${finalAttrs.version}/dita-ot-${finalAttrs.version}.zip";
hash = "sha256-LmXkFuejnWQh0i1L0/GcD/NBNBCMKE5+7M7bUC0DLIg=";
hash = "sha256-67sJ/nDxjr2ekxd9rkENBLRpK08nqo02LRnWjtQZA5U=";
};
installPhase = ''
+2 -2
View File
@@ -6,13 +6,13 @@
buildGoModule rec {
pname = "dms";
version = "1.7.1";
version = "1.7.2";
src = fetchFromGitHub {
owner = "anacrolix";
repo = "dms";
tag = "v${version}";
hash = "sha256-dObY2MNrrQqn5i/y2LDlKvd9S04EArmsalIsfXsrth0=";
hash = "sha256-C1XcaPQp+T0scrCBsvqjJrmUR0N7mJOQC9Z2TxvtYc8=";
};
vendorHash = "sha256-f6Jl78ZPLD7Oq4Bq8MBQpHEKnBvpyTWZ9qHa1fGOlgA=";
+2 -2
View File
@@ -9,7 +9,7 @@
buildGoModule rec {
pname = "doctl";
version = "1.130.0";
version = "1.131.0";
vendorHash = null;
@@ -42,7 +42,7 @@ buildGoModule rec {
owner = "digitalocean";
repo = "doctl";
tag = "v${version}";
hash = "sha256-jFgcrJVUCs7RwrXczaKpvt/NjFIk0q26/n8SN8olSYE=";
hash = "sha256-bZpYojpNm9TPJOulxBgXJ0l/JAVxNakA6JifGOhX3BU=";
};
meta = {
+3 -3
View File
@@ -6,18 +6,18 @@
buildGoModule rec {
pname = "dolt";
version = "1.55.1";
version = "1.55.2";
src = fetchFromGitHub {
owner = "dolthub";
repo = "dolt";
rev = "v${version}";
sha256 = "sha256-XIvhfnjr8KJZDkx8L/eN+caiW8oXhxrMgEGcj1L3KnQ=";
sha256 = "sha256-smBb3QNsCipAKzR45bJk9GZZK02YiAkknC7YJBa02Mg=";
};
modRoot = "./go";
subPackages = [ "cmd/dolt" ];
vendorHash = "sha256-iC4NAeNe7/Uz79HWYsF35WoWi+RRcGKyhWc8efvVf4E=";
vendorHash = "sha256-/mh95CRtSK6eG/6CMiIYj/Qh7YgLutXNyG9/YTYtaPo=";
proxyVendor = true;
doCheck = false;
+2 -2
View File
@@ -10,13 +10,13 @@
buildGoModule rec {
pname = "doppler";
version = "3.75.0";
version = "3.75.1";
src = fetchFromGitHub {
owner = "dopplerhq";
repo = "cli";
rev = version;
hash = "sha256-hxCrAsie44jBNp7UtjTcJmjgNXUc9I/aIsq1UL/pbg8=";
hash = "sha256-YyhDvBgdcy3CtVpQj60XQ0aqE2zT1LV9QXQJiJvlaic=";
};
vendorHash = "sha256-tSRtgkDPvDlEfwuNhahvs3Pvt4h7QAJrJtb1XQXGaFM=";
+11 -11
View File
@@ -4,9 +4,9 @@
fetchFromGitHub,
rustPlatform,
installShellFiles,
testers,
writableTmpDirAsHomeHook,
versionCheckHook,
nix-update-script,
dprint,
}:
rustPlatform.buildRustPackage (finalAttrs: {
@@ -62,16 +62,16 @@ rustPlatform.buildRustPackage (finalAttrs: {
--fish <($out/bin/dprint completions fish)
'';
nativeInstallCheckInputs = [
writableTmpDirAsHomeHook
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/dprint";
versionCheckProgramArg = "--version";
versionCheckKeepEnvironment = [ "HOME" ];
passthru = {
tests.version = testers.testVersion {
inherit (finalAttrs) version;
package = dprint;
command = ''
DPRINT_CACHE_DIR="$(mktemp --directory)" dprint --version
'';
};
updateScript = nix-update-script { };
};
+2 -2
View File
@@ -13,11 +13,11 @@
stdenv.mkDerivation rec {
pname = "dump";
version = "0.4b48";
version = "0.4b51";
src = fetchurl {
url = "mirror://sourceforge/dump/dump-${version}.tar.gz";
sha256 = "sha256-qT6WPMIMXUfq2dedK0OeDV12gV7ewlFpEVUckOYOxRk=";
sha256 = "sha256-huaDpzNVNMkVzwpQUlPay/RrYiSnD79or3RgsWPkU+s=";
};
nativeBuildInputs = [ pkg-config ];
+119
View File
@@ -0,0 +1,119 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
qt5,
secp256k1,
}:
python3Packages.buildPythonApplication rec {
pname = "electron-cash";
version = "4.4.2";
pyproject = true;
src = fetchFromGitHub {
owner = "Electron-Cash";
repo = "Electron-Cash";
tag = version;
sha256 = "sha256-hqaPxetS6JONvlRMjNonXUGFpdmnuadD00gcPzY07x0=";
};
build-system = with python3Packages; [
cython
setuptools
];
dependencies = with python3Packages; [
# requirements
pyaes
ecdsa
requests
qrcode
protobuf
jsonrpclib-pelix
pysocks
qdarkstyle
python-dateutil
stem
certifi
pathvalidate
dnspython
bitcoinrpc
# requirements-binaries
pyqt5
psutil
pycryptodomex
cryptography
zxing-cpp
# requirements-hw
trezor
keepkey
btchip-python
hidapi
pyopenssl
pyscard
pysatochip
];
nativeBuildInputs = [ qt5.wrapQtAppsHook ];
buildInputs = [ ] ++ lib.optional stdenv.hostPlatform.isLinux qt5.qtwayland;
# 1. If secp256k1 wasn't added to the library path, the following warning is given:
#
# Electron Cash was unable to find the secp256k1 library on this system.
# Elliptic curve cryptography operations will be performed in slow
# Python-only mode.
#
# Upstream hardcoded `libsecp256k1.so.0` where we provides
# `libsecp256k1.so.5`. The only breaking change is the removal of two
# functions which seem not used by electron-cash.
# See: <https://github.com/Electron-Cash/Electron-Cash/issues/3009>
#
# 2. The code should be compatible with python-dateutil 2.10 which is the
# version we have in nixpkgs. Changelog:
# <https://dateutil.readthedocs.io/en/latest/changelog.html#version-2-9-0-post0-2024-03-01>
postPatch = ''
substituteInPlace setup.py \
--replace-fail "(share_dir" '("share"'
substituteInPlace electroncash/secp256k1.py \
--replace-fail "libsecp256k1.so.0" "${secp256k1}/lib/libsecp256k1.so.5"
substituteInPlace contrib/requirements/requirements.txt \
--replace-fail "python-dateutil<2.9" "python-dateutil<2.10"
'';
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
doInstallCheck = true;
installCheckPhase = ''
output="$($out/bin/electron-cash help 2>&1)"
if [[ "$output" == *"failed to load"* ]]; then
echo "$output"
echo "Forbidden text detected: failed to load"
exit 1
fi
'';
meta = {
description = "Bitcoin Cash SPV Wallet";
mainProgram = "electron-cash";
longDescription = ''
An easy-to-use Bitcoin Cash client featuring wallets generated from
mnemonic seeds (in addition to other, more advanced, wallet options)
and the ability to perform transactions without downloading a copy
of the blockchain.
'';
homepage = "https://www.electroncash.org/";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
nyanloutre
oxalica
];
license = lib.licenses.mit;
};
}

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