Merge 657b33de3d into haskell-updates
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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`.
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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}" \
|
||||
|
||||
@@ -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
|
||||
''}
|
||||
|
||||
@@ -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 ];
|
||||
}
|
||||
@@ -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%";
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
|
||||
+2
-2
@@ -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 ];
|
||||
|
||||
+2
-2
@@ -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 ];
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -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 =
|
||||
|
||||
+26
@@ -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
|
||||
{
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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) (
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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" ];
|
||||
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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 ];
|
||||
}
|
||||
@@ -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
|
||||
]
|
||||
Executable
+16
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
0-unstable-2025-06-23
|
||||
@@ -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
|
||||
|
||||
@@ -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" ''
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
|
||||
@@ -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
@@ -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": {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = ''
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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=";
|
||||
|
||||
@@ -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 { };
|
||||
};
|
||||
|
||||
|
||||
@@ -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 ];
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user