Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2023-11-30 00:12:50 +00:00 committed by GitHub
commit 17a17db64f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
319 changed files with 9855 additions and 3140 deletions

View File

@ -24,7 +24,7 @@ For new packages please briefly describe the package or provide a link to its ho
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)
- [ ] Tested basic functionality of all binary files (usually in `./result/bin/`)
- [23.11 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) (or backporting [23.05 Release notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2305.section.md))
- [24.05 Release Notes](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2405.section.md) (or backporting [23.05](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2305.section.md) and [23.11](https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/release-notes/rl-2311.section.md) Release notes)
- [ ] (Package updates) Added a release notes entry if the change is major or breaking
- [ ] (Module updates) Added a release notes entry if the change is significant
- [ ] (Module addition) Added a release notes entry if adding a new NixOS module

View File

@ -20,11 +20,11 @@ jobs:
if: github.repository_owner == 'NixOS' && github.event.pull_request.merged == true && (github.event_name != 'labeled' || startsWith('backport', github.event.label.name))
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@v2.1.1
uses: korthout/backport-action@08bafb375e6e9a9a2b53a744b987e5d81a133191 # v2.1.1
with:
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: 'severity:\ssecurity'

View File

@ -18,9 +18,9 @@ jobs:
runs-on: ubuntu-latest
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v23
- uses: cachix/cachix-action@v12
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
- uses: cachix/cachix-action@6a9a34cdd93d0ae4b4b59fd678660efb08109f2f # v13
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci

View File

@ -49,7 +49,7 @@ jobs:
exit 1
fi
echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: ${{ env.mergedSha }}
@ -61,7 +61,7 @@ jobs:
echo "baseSha=$(git rev-parse HEAD^1)" >> "$GITHUB_ENV"
echo "headSha=$(git rev-parse HEAD^2)" >> "$GITHUB_ENV"
- uses: cachix/install-nix-action@v23
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
- name: Determining channel to use for dependencies
run: |
echo "Determining the preferred channel to use for PR base branch $GITHUB_BASE_REF"
@ -176,4 +176,3 @@ jobs:
} >> "$GITHUB_STEP_SUMMARY"
exit "$exitCode"

View File

@ -12,11 +12,11 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v23
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true

View File

@ -24,11 +24,11 @@ jobs:
- name: print list of changed files
run: |
cat "$HOME/changed_files"
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v23
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
with:
# nixpkgs commit is pinned so that it doesn't break
# editorconfig-checker 2.4.0

View File

@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-latest
if: "github.repository_owner == 'NixOS' && !contains(github.event.pull_request.title, '[skip treewide]')"
steps:
- uses: actions/labeler@v4
- uses: actions/labeler@ac9175f8a1f3625fd0d4fb234536d26811351594 # v4.3.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true

View File

@ -14,15 +14,15 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v23
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v12
- uses: cachix/cachix-action@6a9a34cdd93d0ae4b4b59fd678660efb08109f2f # v13
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci

View File

@ -15,15 +15,15 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'NixOS'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
# pull_request_target checks out the base branch by default
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- uses: cachix/install-nix-action@v23
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
with:
# explicitly enable sandbox
extra_nix_config: sandbox = true
- uses: cachix/cachix-action@v12
- uses: cachix/cachix-action@6a9a34cdd93d0ae4b4b59fd678660efb08109f2f # v13
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci

View File

@ -44,10 +44,10 @@ jobs:
into: staging-23.11
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@1.4.0
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0
with:
type: now
from_branch: ${{ matrix.pairs.from }}
@ -55,7 +55,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v3
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
if: ${{ failure() }}
with:
issue-number: 105153

View File

@ -38,10 +38,10 @@ jobs:
into: staging
name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: ${{ matrix.pairs.from }} → ${{ matrix.pairs.into }}
uses: devmasx/merge-branch@1.4.0
uses: devmasx/merge-branch@854d3ac71ed1e9deb668e0074781b81fdd6e771f # 1.4.0
with:
type: now
from_branch: ${{ matrix.pairs.from }}
@ -49,7 +49,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Comment on failure
uses: peter-evans/create-or-update-comment@v3
uses: peter-evans/create-or-update-comment@23ff15729ef2fc348714a3bb66d2f655ca9066f2 # v3.1.0
if: ${{ failure() }}
with:
issue-number: 105153

View File

@ -16,8 +16,8 @@ jobs:
if: github.repository_owner == 'NixOS' && github.ref == 'refs/heads/master' # ensure workflow_dispatch only runs on master
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v23
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- uses: cachix/install-nix-action@6a9a9e84a173d90b3ffb42c5ddaf9ea033fad011 # v24
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: setup
@ -46,7 +46,7 @@ jobs:
run: |
git clean -f
- name: create PR
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2
with:
body: |
Automatic update by [update-terraform-providers](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/update-terraform-providers.yml) action.

View File

@ -360,7 +360,7 @@ See [Nix Channel Status](https://status.nixos.org/) for the current channels and
Here's a brief overview of the main Git branches and what channels they're used for:
- `master`: The main branch, used for the unstable channels such as `nixpkgs-unstable`, `nixos-unstable` and `nixos-unstable-small`.
- `release-YY.MM` (e.g. `release-23.05`): The NixOS release branches, used for the stable channels such as `nixos-23.05`, `nixos-23.05-small` and `nixpkgs-23.05-darwin`.
- `release-YY.MM` (e.g. `release-23.11`): The NixOS release branches, used for the stable channels such as `nixos-23.11`, `nixos-23.11-small` and `nixpkgs-23.11-darwin`.
When a channel is updated, a corresponding Git branch is also updated to point to the corresponding commit.
So e.g. the [`nixpkgs-unstable` branch](https://github.com/nixos/nixpkgs/tree/nixpkgs-unstable) corresponds to the Git commit from the [`nixpkgs-unstable` channel](https://channels.nixos.org/nixpkgs-unstable).

View File

@ -51,9 +51,9 @@ Nixpkgs and NixOS are built and tested by our continuous integration
system, [Hydra](https://hydra.nixos.org/).
* [Continuous package builds for unstable/master](https://hydra.nixos.org/jobset/nixos/trunk-combined)
* [Continuous package builds for the NixOS 23.05 release](https://hydra.nixos.org/jobset/nixos/release-23.05)
* [Continuous package builds for the NixOS 23.11 release](https://hydra.nixos.org/jobset/nixos/release-23.11)
* [Tests for unstable/master](https://hydra.nixos.org/job/nixos/trunk-combined/tested#tabs-constituents)
* [Tests for the NixOS 23.05 release](https://hydra.nixos.org/job/nixos/release-23.05/tested#tabs-constituents)
* [Tests for the NixOS 23.11 release](https://hydra.nixos.org/job/nixos/release-23.11/tested#tabs-constituents)
Artifacts successfully built with Hydra are published to cache at
https://cache.nixos.org/. When successful build and test criteria are

View File

@ -1888,6 +1888,12 @@
githubId = 135230;
name = "Aycan iRiCAN";
};
ayes-web = {
email = "ayes2022@protonmail.com";
github = "ayes-web";
githubId = 52951851;
name = "ayes-web";
};
aynish = {
github = "Chickensoupwithrice";
githubId = 22575913;
@ -2667,6 +2673,13 @@
githubId = 1071610;
name = "Gunnar Nitsche";
};
brokenpip3 = {
email = "brokenpip3@gmail.com";
matrix = "@brokenpip3:matrix.org";
github = "brokenpip3";
githubId = 40476330;
name = "brokenpip3";
};
bryanasdev000 = {
email = "bryanasdev000@gmail.com";
matrix = "@bryanasdev000:matrix.org";
@ -3172,6 +3185,11 @@
githubId = 18648043;
name = "Daniel Cartwright";
};
chewblacka = {
github = "chewblacka";
githubId = 18430320;
name = "John Garcia";
};
Chili-Man = {
email = "dr.elhombrechile@gmail.com";
name = "Diego Rodriguez";
@ -7119,6 +7137,13 @@
githubId = 287769;
name = "Sergii Paryzhskyi";
};
heisfer = {
email = "heisfer@refract.dev";
github = "heisfer";
githubId = 28564678;
matrix = "@heisfer:matrix.org";
name = "Heisfer";
};
helium = {
email = "helium.dev@tuta.io";
github = "helium18";
@ -8414,11 +8439,6 @@
githubId = 31008330;
name = "Jann Marc Villablanca";
};
jgarcia = {
github = "chewblacka";
githubId = 18430320;
name = "John Garcia";
};
jgart = {
email = "jgart@dismail.de";
github = "jgarte";
@ -12740,6 +12760,13 @@
githubId = 1386642;
name = "Noah Brenowitz";
};
nbsp = {
email = "aoife@enby.space";
matrix = "@nbsp:enby.space";
github = "enbyspace";
githubId = 57151943;
name = "aoife cassidy";
};
ncfavier = {
email = "n@monade.li";
matrix = "@ncfavier:matrix.org";
@ -16354,13 +16381,6 @@
fingerprint = "7246 B6E1 ABB9 9A48 4395 FD11 DC26 B921 A9E9 DBDE";
}];
};
sfr = {
email = "sol@solfisher.com";
matrix = "@sfr:enby.space";
github = "solfisher";
githubId = 57151943;
name = "Sol Fisher Romanoff";
};
sfrijters = {
email = "sfrijters@gmail.com";
github = "SFrijters";
@ -18435,6 +18455,12 @@
githubId = 25440339;
name = "Tom Repetti";
};
trespaul = {
email = "paul@trespaul.com";
github = "trespaul";
githubId = 7453891;
name = "Paul Joubert";
};
trevdev = {
email = "trev@trevdev.ca";
matrix = "@trevdev:matrix.org";

View File

@ -37,6 +37,7 @@ of actions is always the same:
- Forget about the failed state of units (`systemctl reset-failed`)
- Reload systemd (`systemctl daemon-reload`)
- Reload systemd user instances (`systemctl --user daemon-reload`)
- Set up tmpfiles (`systemd-tmpfiles --create`)
- Reload units (`systemctl reload`)
- Restart units (`systemctl restart`)
- Start units (`systemctl start`)

View File

@ -6,7 +6,7 @@ expressions and associated binaries. The NixOS channels are updated
automatically from NixOS's Git repository after certain tests have
passed and all packages have been built. These channels are:
- *Stable channels*, such as [`nixos-23.05`](https://channels.nixos.org/nixos-23.05).
- *Stable channels*, such as [`nixos-23.11`](https://channels.nixos.org/nixos-23.11).
These only get conservative bug fixes and package upgrades. For
instance, a channel update may cause the Linux kernel on your system
to be upgraded from 4.19.34 to 4.19.38 (a minor bug fix), but not
@ -19,7 +19,7 @@ passed and all packages have been built. These channels are:
radical changes between channel updates. It's not recommended for
production systems.
- *Small channels*, such as [`nixos-23.05-small`](https://channels.nixos.org/nixos-23.05-small)
- *Small channels*, such as [`nixos-23.11-small`](https://channels.nixos.org/nixos-23.11-small)
or [`nixos-unstable-small`](https://channels.nixos.org/nixos-unstable-small).
These are identical to the stable and unstable channels described above,
except that they contain fewer binary packages. This means they get updated
@ -38,8 +38,8 @@ newest supported stable release.
When you first install NixOS, you're automatically subscribed to the
NixOS channel that corresponds to your installation source. For
instance, if you installed from a 23.05 ISO, you will be subscribed to
the `nixos-23.05` channel. To see which NixOS channel you're subscribed
instance, if you installed from a 23.11 ISO, you will be subscribed to
the `nixos-23.11` channel. To see which NixOS channel you're subscribed
to, run the following as root:
```ShellSession
@ -54,16 +54,16 @@ To switch to a different NixOS channel, do
```
(Be sure to include the `nixos` parameter at the end.) For instance, to
use the NixOS 23.05 stable channel:
use the NixOS 23.11 stable channel:
```ShellSession
# nix-channel --add https://channels.nixos.org/nixos-23.05 nixos
# nix-channel --add https://channels.nixos.org/nixos-23.11 nixos
```
If you have a server, you may want to use the "small" channel instead:
```ShellSession
# nix-channel --add https://channels.nixos.org/nixos-23.05-small nixos
# nix-channel --add https://channels.nixos.org/nixos-23.11-small nixos
```
And if you want to live on the bleeding edge:
@ -114,5 +114,5 @@ the new generation contains a different kernel, initrd or kernel
modules. You can also specify a channel explicitly, e.g.
```nix
system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.05";
system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
```

File diff suppressed because it is too large Load Diff

View File

@ -20,7 +20,8 @@ In addition to numerous new and upgraded packages, this release has the followin
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
- Create the first release note entry in this section!
- `mkosi` was updated to v19. Parts of the user interface have changed. Consult the
[release notes](https://github.com/systemd/mkosi/releases/tag/v19) for a list of changes.
## Other Notable Changes {#sec-release-24.05-notable-changes}

View File

@ -480,6 +480,7 @@
./services/desktops/telepathy.nix
./services/desktops/tumbler.nix
./services/desktops/zeitgeist.nix
./services/development/athens.nix
./services/development/blackfire.nix
./services/development/bloop.nix
./services/development/distccd.nix
@ -1539,9 +1540,10 @@
./virtualisation/waydroid.nix
./virtualisation/xe-guest-utilities.nix
./virtualisation/xen-dom0.nix
{ documentation.nixos.extraModules = [
./virtualisation/qemu-vm.nix
./image/repart.nix
{
documentation.nixos.extraModules = [
./virtualisation/qemu-vm.nix
./image/repart.nix
];
}
]

View File

@ -5,26 +5,39 @@
with lib;
let
cfg = config.programs.mininet;
cfg = config.programs.mininet;
generatedPath = with pkgs; makeSearchPath "bin" [
iperf ethtool iproute2 socat
telnet = pkgs.runCommand "inetutils-telnet"
{ }
''
mkdir -p $out/bin
ln -s ${pkgs.inetutils}/bin/telnet $out/bin
'';
generatedPath = with pkgs; makeSearchPath "bin" [
iperf
ethtool
iproute2
socat
# mn errors out without a telnet binary
# pkgs.inetutils brings an undesired ifconfig into PATH see #43105
nettools
telnet
];
pyEnv = pkgs.python.withPackages(ps: [ ps.mininet-python ]);
pyEnv = pkgs.python3.withPackages (ps: [ ps.mininet-python ]);
mnexecWrapped = pkgs.runCommand "mnexec-wrapper"
{ nativeBuildInputs = [ pkgs.makeWrapper pkgs.pythonPackages.wrapPython ]; }
{ nativeBuildInputs = [ pkgs.makeWrapper pkgs.python3Packages.wrapPython ]; }
''
makeWrapper ${pkgs.mininet}/bin/mnexec \
$out/bin/mnexec \
--prefix PATH : "${generatedPath}"
ln -s ${pyEnv}/bin/mn $out/bin/mn
# mn errors out without a telnet binary
# pkgs.inetutils brings an undesired ifconfig into PATH see #43105
ln -s ${pkgs.inetutils}/bin/telnet $out/bin/telnet
makeWrapper ${pyEnv}/bin/mn \
$out/bin/mn \
--prefix PYTHONPATH : "${pyEnv}/${pyEnv.sitePackages}" \
--prefix PATH : "${generatedPath}"
'';
in
{

View File

@ -0,0 +1,52 @@
# Athens {#module-athens}
*Source:* {file}`modules/services/development/athens.nix`
*Upstream documentation:* <https://docs.gomods.io/>
[Athens](https://github.com/gomods/athens)
is a Go module datastore and proxy
The main goal of Athens is providing a Go proxy (`$GOPROXY`) in regions without access to `https://proxy.golang.org` or to
improve the speed of Go module downloads for CI/CD systems.
## Configuring {#module-services-development-athens-configuring}
A complete list of options for the Athens module may be found
[here](#opt-services.athens.enable).
## Basic usage for a caching proxy configuration {#opt-services-development-athens-caching-proxy}
A very basic configuration for Athens that acts as a caching and forwarding HTTP proxy is:
```
{
services.athens = {
enable = true;
};
}
```
If you want to prevent Athens from writing to disk, you can instead configure it to cache modules only in memory:
```
{
services.athens = {
enable = true;
storageType = "memory";
};
}
```
To use the local proxy in Go builds, you can set the proxy as environment variable:
```
{
environment.variables = {
GOPROXY = "http://localhost:3000"
};
}
```
It is currently not possible to use the local proxy for builds done by the Nix daemon. This might be enabled
by experimental features, specifically [`configurable-impure-env`](https://nixos.org/manual/nix/unstable/contributing/experimental-features#xp-feature-configurable-impure-env),
in upcoming Nix versions.

View File

@ -0,0 +1,936 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.athens;
athensConfig = flip recursiveUpdate cfg.extraConfig (
{
GoBinary = "${cfg.goBinary}/bin/go";
GoEnv = cfg.goEnv;
GoBinaryEnvVars = lib.mapAttrsToList (k: v: "${k}=${v}") cfg.goBinaryEnvVars;
GoGetWorkers = cfg.goGetWorkers;
GoGetDir = cfg.goGetDir;
ProtocolWorkers = cfg.protocolWorkers;
LogLevel = cfg.logLevel;
CloudRuntime = cfg.cloudRuntime;
EnablePprof = cfg.enablePprof;
PprofPort = ":${toString cfg.pprofPort}";
FilterFile = cfg.filterFile;
RobotsFile = cfg.robotsFile;
Timeout = cfg.timeout;
StorageType = cfg.storageType;
TLSCertFile = cfg.tlsCertFile;
TLSKeyFile = cfg.tlsKeyFile;
Port = ":${toString cfg.port}";
UnixSocket = cfg.unixSocket;
GlobalEndpoint = cfg.globalEndpoint;
BasicAuthUser = cfg.basicAuthUser;
BasicAuthPass = cfg.basicAuthPass;
ForceSSL = cfg.forceSSL;
ValidatorHook = cfg.validatorHook;
PathPrefix = cfg.pathPrefix;
NETRCPath = cfg.netrcPath;
GithubToken = cfg.githubToken;
HGRCPath = cfg.hgrcPath;
TraceExporter = cfg.traceExporter;
StatsExporter = cfg.statsExporter;
SumDBs = cfg.sumDBs;
NoSumPatterns = cfg.noSumPatterns;
DownloadMode = cfg.downloadMode;
NetworkMode = cfg.networkMode;
DownloadURL = cfg.downloadURL;
SingleFlightType = cfg.singleFlightType;
IndexType = cfg.indexType;
ShutdownTimeout = cfg.shutdownTimeout;
SingleFlight = {
Etcd = {
Endpoints = builtins.concatStringsSep "," cfg.singleFlight.etcd.endpoints;
};
Redis = {
Endpoint = cfg.singleFlight.redis.endpoint;
Password = cfg.singleFlight.redis.password;
LockConfig = {
TTL = cfg.singleFlight.redis.lockConfig.ttl;
Timeout = cfg.singleFlight.redis.lockConfig.timeout;
MaxRetries = cfg.singleFlight.redis.lockConfig.maxRetries;
};
};
RedisSentinel = {
Endpoints = cfg.singleFlight.redisSentinel.endpoints;
MasterName = cfg.singleFlight.redisSentinel.masterName;
SentinelPassword = cfg.singleFlight.redisSentinel.sentinelPassword;
LockConfig = {
TTL = cfg.singleFlight.redisSentinel.lockConfig.ttl;
Timeout = cfg.singleFlight.redisSentinel.lockConfig.timeout;
MaxRetries = cfg.singleFlight.redisSentinel.lockConfig.maxRetries;
};
};
};
Storage = {
CDN = {
Endpoint = cfg.storage.cdn.endpoint;
};
Disk = {
RootPath = cfg.storage.disk.rootPath;
};
GCP = {
ProjectID = cfg.storage.gcp.projectID;
Bucket = cfg.storage.gcp.bucket;
JSONKey = cfg.storage.gcp.jsonKey;
};
Minio = {
Endpoint = cfg.storage.minio.endpoint;
Key = cfg.storage.minio.key;
Secret = cfg.storage.minio.secret;
EnableSSL = cfg.storage.minio.enableSSL;
Bucket = cfg.storage.minio.bucket;
region = cfg.storage.minio.region;
};
Mongo = {
URL = cfg.storage.mongo.url;
DefaultDBName = cfg.storage.mongo.defaultDBName;
CertPath = cfg.storage.mongo.certPath;
Insecure = cfg.storage.mongo.insecure;
};
S3 = {
Region = cfg.storage.s3.region;
Key = cfg.storage.s3.key;
Secret = cfg.storage.s3.secret;
Token = cfg.storage.s3.token;
Bucket = cfg.storage.s3.bucket;
ForcePathStyle = cfg.storage.s3.forcePathStyle;
UseDefaultConfiguration = cfg.storage.s3.useDefaultConfiguration;
CredentialsEndpoint = cfg.storage.s3.credentialsEndpoint;
AwsContainerCredentialsRelativeURI = cfg.storage.s3.awsContainerCredentialsRelativeURI;
Endpoint = cfg.storage.s3.endpoint;
};
AzureBlob = {
AccountName = cfg.storage.azureblob.accountName;
AccountKey = cfg.storage.azureblob.accountKey;
ContainerName = cfg.storage.azureblob.containerName;
};
External = {
URL = cfg.storage.external.url;
};
};
Index = {
MySQL = {
Protocol = cfg.index.mysql.protocol;
Host = cfg.index.mysql.host;
Port = cfg.index.mysql.port;
User = cfg.index.mysql.user;
Password = cfg.index.mysql.password;
Database = cfg.index.mysql.database;
Params = {
parseTime = cfg.index.mysql.params.parseTime;
timeout = cfg.index.mysql.params.timeout;
};
};
Postgres = {
Host = cfg.index.postgres.host;
Port = cfg.index.postgres.port;
User = cfg.index.postgres.user;
Password = cfg.index.postgres.password;
Database = cfg.index.postgres.database;
Params = {
connect_timeout = cfg.index.postgres.params.connect_timeout;
sslmode = cfg.index.postgres.params.sslmode;
};
};
};
}
);
configFile = pkgs.runCommandLocal "config.toml" { } ''
${pkgs.buildPackages.jq}/bin/jq 'del(..|nulls)' \
< ${pkgs.writeText "config.json" (builtins.toJSON athensConfig)} | \
${pkgs.buildPackages.remarshal}/bin/remarshal -if json -of toml \
> $out
'';
in
{
meta = {
maintainers = pkgs.athens.meta.maintainers;
doc = ./athens.md;
};
options.services.athens = {
enable = mkEnableOption (lib.mdDoc "Go module datastore and proxy");
package = mkOption {
default = pkgs.athens;
defaultText = literalExpression "pkgs.athens";
example = "pkgs.athens";
description = lib.mdDoc "Which athens derivation to use";
type = types.package;
};
goBinary = mkOption {
type = types.package;
default = pkgs.go;
defaultText = literalExpression "pkgs.go";
example = "pkgs.go_1_21";
description = lib.mdDoc ''
The Go package used by Athens at runtime.
Athens primarily runs two Go commands:
1. `go mod download -json <module>@<version>`
2. `go list -m -json <module>@latest`
'';
};
goEnv = mkOption {
type = types.enum [ "development" "production" ];
description = lib.mdDoc "Specifies the type of environment to run. One of 'development' or 'production'.";
default = "development";
example = "production";
};
goBinaryEnvVars = mkOption {
type = types.attrs;
description = lib.mdDoc "Environment variables to pass to the Go binary.";
example = ''
{ "GOPROXY" = "direct", "GODEBUG" = "true" }
'';
default = { };
};
goGetWorkers = mkOption {
type = types.int;
description = lib.mdDoc "Number of workers concurrently downloading modules.";
default = 10;
example = 32;
};
goGetDir = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''
Temporary directory that Athens will use to
fetch modules from VCS prior to persisting
them to a storage backend.
If the value is empty, Athens will use the
default OS temp directory.
'';
default = null;
example = "/tmp/athens";
};
protocolWorkers = mkOption {
type = types.int;
description = lib.mdDoc "Number of workers concurrently serving protocol paths.";
default = 30;
};
logLevel = mkOption {
type = types.nullOr (types.enum [ "panic" "fatal" "error" "warning" "info" "debug" "trace" ]);
description = lib.mdDoc ''
Log level for Athens.
Supports all logrus log levels (https://github.com/Sirupsen/logrus#level-logging)".
'';
default = "warning";
example = "debug";
};
cloudRuntime = mkOption {
type = types.enum [ "GCP" "none" ];
description = lib.mdDoc ''
Specifies the Cloud Provider on which the Proxy/registry is running.
'';
default = "none";
example = "GCP";
};
enablePprof = mkOption {
type = types.bool;
description = lib.mdDoc "Enable pprof endpoints.";
default = false;
};
pprofPort = mkOption {
type = types.port;
description = lib.mdDoc "Port number for pprof endpoints.";
default = 3301;
example = 443;
};
filterFile = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''Filename for the include exclude filter.'';
default = null;
example = literalExpression ''
pkgs.writeText "filterFile" '''
- github.com/azure
+ github.com/azure/azure-sdk-for-go
D golang.org/x/tools
'''
'';
};
robotsFile = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''Provides /robots.txt for net crawlers.'';
default = null;
example = literalExpression ''pkgs.writeText "robots.txt" "# my custom robots.txt ..."'';
};
timeout = mkOption {
type = types.int;
description = lib.mdDoc "Timeout for external network calls in seconds.";
default = 300;
example = 3;
};
storageType = mkOption {
type = types.enum [ "memory" "disk" "mongo" "gcp" "minio" "s3" "azureblob" "external" ];
description = lib.mdDoc "Specifies the type of storage backend to use.";
default = "disk";
};
tlsCertFile = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc "Path to the TLS certificate file.";
default = null;
example = "/etc/ssl/certs/athens.crt";
};
tlsKeyFile = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc "Path to the TLS key file.";
default = null;
example = "/etc/ssl/certs/athens.key";
};
port = mkOption {
type = types.port;
default = 3000;
description = lib.mdDoc ''
Port number Athens listens on.
'';
example = 443;
};
unixSocket = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''
Path to the unix socket file.
If set, Athens will listen on the unix socket instead of TCP socket.
'';
default = null;
example = "/run/athens.sock";
};
globalEndpoint = mkOption {
type = types.str;
description = lib.mdDoc ''
Endpoint for a package registry in case of a proxy cache miss.
'';
default = "";
example = "http://upstream-athens.example.com:3000";
};
basicAuthUser = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
Username for basic auth.
'';
default = null;
example = "user";
};
basicAuthPass = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
Password for basic auth. Warning: this is stored in plain text in the config file.
'';
default = null;
example = "swordfish";
};
forceSSL = mkOption {
type = types.bool;
description = lib.mdDoc ''
Force SSL redirects for incoming requests.
'';
default = false;
};
validatorHook = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
Endpoint to validate modules against.
Not used if empty.
'';
default = null;
example = "https://validation.example.com";
};
pathPrefix = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
Sets basepath for all routes.
'';
default = null;
example = "/athens";
};
netrcPath = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''
Path to the .netrc file.
'';
default = null;
example = "/home/user/.netrc";
};
githubToken = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
Creates .netrc file with the given token to be used for GitHub.
Warning: this is stored in plain text in the config file.
'';
default = null;
example = "ghp_1234567890";
};
hgrcPath = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc ''
Path to the .hgrc file.
'';
default = null;
example = "/home/user/.hgrc";
};
traceExporter = mkOption {
type = types.nullOr (types.enum [ "jaeger" "datadog" ]);
description = lib.mdDoc ''
Trace exporter to use.
'';
default = null;
};
traceExporterURL = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc ''
URL endpoint that traces will be sent to.
'';
default = null;
example = "http://localhost:14268";
};
statsExporter = mkOption {
type = types.nullOr (types.enum [ "prometheus" ]);
description = lib.mdDoc "Stats exporter to use.";
default = null;
};
sumDBs = mkOption {
type = types.listOf types.str;
description = lib.mdDoc ''
List of fully qualified URLs that Athens will proxy
that the go command can use a checksum verifier.
'';
default = [ "https://sum.golang.org" ];
};
noSumPatterns = mkOption {
type = types.listOf types.str;
description = lib.mdDoc ''
List of patterns that Athens sum db proxy will return a 403 for.
'';
default = [ ];
example = [ "github.com/mycompany/*" ];
};
downloadMode = mkOption {
type = types.oneOf [ (types.enum [ "sync" "async" "redirect" "async_redirect" "none" ]) (types.strMatching "^file:.*$|^custom:.*$") ];
description = lib.mdDoc ''
Defines how Athens behaves when a module@version
is not found in storage. There are 7 options:
1. "sync": download the module synchronously and
return the results to the client.
2. "async": return 404, but asynchronously store the module
in the storage backend.
3. "redirect": return a 301 redirect status to the client
with the base URL as the DownloadRedirectURL from below.
4. "async_redirect": same as option number 3 but it will
asynchronously store the module to the backend.
5. "none": return 404 if a module is not found and do nothing.
6. "file:<path>": will point to an HCL file that specifies
any of the 5 options above based on different import paths.
7. "custom:<base64-encoded-hcl>" is the same as option 6
but the file is fully encoded in the option. This is
useful for using an environment variable in serverless
deployments.
'';
default = "async_redirect";
};
networkMode = mkOption {
type = types.enum [ "strict" "offline" "fallback" ];
description = lib.mdDoc ''
Configures how Athens will return the results
of the /list endpoint as it can be assembled from both its own
storage and the upstream VCS.
Note, that for better error messaging, this would also affect how other
endpoints behave.
Modes:
1. strict: merge VCS versions with storage versions, but fail if either of them fails.
2. offline: only get storage versions, never reach out to VCS.
3. fallback: only return storage versions, if VCS fails. Note this means that you may
see inconsistent results since fallback mode does a best effort of giving you what's
available at the time of requesting versions.
'';
default = "strict";
};
downloadURL = mkOption {
type = types.str;
description = lib.mdDoc "URL used if DownloadMode is set to redirect.";
default = "https://proxy.golang.org";
};
singleFlightType = mkOption {
type = types.enum [ "memory" "etcd" "redis" "redis-sentinel" "gcp" "azureblob" ];
description = lib.mdDoc ''
Determines what mechanism Athens uses to manage concurrency flowing into the Athens backend.
'';
default = "memory";
};
indexType = mkOption {
type = types.enum [ "none" "memory" "mysql" "postgres" ];
description = lib.mdDoc ''
Type of index backend Athens will use.
'';
default = "none";
};
shutdownTimeout = mkOption {
type = types.int;
description = lib.mdDoc ''
Number of seconds to wait for the server to shutdown gracefully.
'';
default = 60;
example = 1;
};
singleFlight = {
etcd = {
endpoints = mkOption {
type = types.listOf types.str;
description = lib.mdDoc "URLs that determine all distributed etcd servers.";
default = [ ];
example = [ "localhost:2379" ];
};
};
redis = {
endpoint = mkOption {
type = types.str;
description = lib.mdDoc "URL of the redis server.";
default = "";
example = "localhost:6379";
};
password = mkOption {
type = types.str;
description = lib.mdDoc "Password for the redis server. Warning: this is stored in plain text in the config file.";
default = "";
example = "swordfish";
};
lockConfig = {
ttl = mkOption {
type = types.int;
description = lib.mdDoc "TTL for the lock in seconds.";
default = 900;
example = 1;
};
timeout = mkOption {
type = types.int;
description = lib.mdDoc "Timeout for the lock in seconds.";
default = 15;
example = 1;
};
maxRetries = mkOption {
type = types.int;
description = lib.mdDoc "Maximum number of retries for the lock.";
default = 10;
example = 1;
};
};
};
redisSentinel = {
endpoints = mkOption {
type = types.listOf types.str;
description = lib.mdDoc "URLs that determine all distributed redis servers.";
default = [ ];
example = [ "localhost:26379" ];
};
masterName = mkOption {
type = types.str;
description = lib.mdDoc "Name of the sentinel master server.";
default = "";
example = "redis-1";
};
sentinelPassword = mkOption {
type = types.str;
description = lib.mdDoc "Password for the sentinel server. Warning: this is stored in plain text in the config file.";
default = "";
example = "swordfish";
};
lockConfig = {
ttl = mkOption {
type = types.int;
description = lib.mdDoc "TTL for the lock in seconds.";
default = 900;
example = 1;
};
timeout = mkOption {
type = types.int;
description = lib.mdDoc "Timeout for the lock in seconds.";
default = 15;
example = 1;
};
maxRetries = mkOption {
type = types.int;
description = lib.mdDoc "Maximum number of retries for the lock.";
default = 10;
example = 1;
};
};
};
};
storage = {
cdn = {
endpoint = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "hostname of the CDN server.";
example = "cdn.example.com";
default = null;
};
};
disk = {
rootPath = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc "Athens disk root folder.";
default = "/var/lib/athens";
};
};
gcp = {
projectID = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "GCP project ID.";
example = "my-project";
default = null;
};
bucket = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "GCP backend storage bucket.";
example = "my-bucket";
default = null;
};
jsonKey = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Base64 encoded GCP service account key. Warning: this is stored in plain text in the config file.";
default = null;
};
};
minio = {
endpoint = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Endpoint of the minio storage backend.";
example = "minio.example.com:9001";
default = null;
};
key = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Access key id for the minio storage backend.";
example = "minio";
default = null;
};
secret = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Secret key for the minio storage backend. Warning: this is stored in plain text in the config file.";
example = "minio123";
default = null;
};
enableSSL = mkOption {
type = types.bool;
description = lib.mdDoc "Enable SSL for the minio storage backend.";
default = false;
};
bucket = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Bucket name for the minio storage backend.";
example = "gomods";
default = null;
};
region = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Region for the minio storage backend.";
example = "us-east-1";
default = null;
};
};
mongo = {
url = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "URL of the mongo database.";
example = "mongodb://localhost:27017";
default = null;
};
defaultDBName = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Name of the mongo database.";
example = "athens";
default = null;
};
certPath = mkOption {
type = types.nullOr types.path;
description = lib.mdDoc "Path to the certificate file for the mongo database.";
example = "/etc/ssl/mongo.pem";
default = null;
};
insecure = mkOption {
type = types.bool;
description = lib.mdDoc "Allow insecure connections to the mongo database.";
default = false;
};
};
s3 = {
region = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Region of the S3 storage backend.";
example = "eu-west-3";
default = null;
};
key = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Access key id for the S3 storage backend.";
example = "minio";
default = null;
};
secret = mkOption {
type = types.str;
description = lib.mdDoc "Secret key for the S3 storage backend. Warning: this is stored in plain text in the config file.";
default = "";
};
token = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Token for the S3 storage backend. Warning: this is stored in plain text in the config file.";
default = null;
};
bucket = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Bucket name for the S3 storage backend.";
example = "gomods";
default = null;
};
forcePathStyle = mkOption {
type = types.bool;
description = lib.mdDoc "Force path style for the S3 storage backend.";
default = false;
};
useDefaultConfiguration = mkOption {
type = types.bool;
description = lib.mdDoc "Use default configuration for the S3 storage backend.";
default = false;
};
credentialsEndpoint = mkOption {
type = types.str;
description = lib.mdDoc "Credentials endpoint for the S3 storage backend.";
default = "";
};
awsContainerCredentialsRelativeURI = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Container relative url (used by fargate).";
default = null;
};
endpoint = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Endpoint for the S3 storage backend.";
default = null;
};
};
azureblob = {
accountName = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Account name for the Azure Blob storage backend.";
default = null;
};
accountKey = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Account key for the Azure Blob storage backend. Warning: this is stored in plain text in the config file.";
default = null;
};
containerName = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Container name for the Azure Blob storage backend.";
default = null;
};
};
external = {
url = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "URL of the backend storage layer.";
example = "https://athens.example.com";
default = null;
};
};
};
index = {
mysql = {
protocol = mkOption {
type = types.str;
description = lib.mdDoc "Protocol for the MySQL database.";
default = "tcp";
};
host = mkOption {
type = types.str;
description = lib.mdDoc "Host for the MySQL database.";
default = "localhost";
};
port = mkOption {
type = types.int;
description = lib.mdDoc "Port for the MySQL database.";
default = 3306;
};
user = mkOption {
type = types.str;
description = lib.mdDoc "User for the MySQL database.";
default = "root";
};
password = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Password for the MySQL database. Warning: this is stored in plain text in the config file.";
default = null;
};
database = mkOption {
type = types.str;
description = lib.mdDoc "Database name for the MySQL database.";
default = "athens";
};
params = {
parseTime = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Parse time for the MySQL database.";
default = "true";
};
timeout = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Timeout for the MySQL database.";
default = "30s";
};
};
};
postgres = {
host = mkOption {
type = types.str;
description = lib.mdDoc "Host for the Postgres database.";
default = "localhost";
};
port = mkOption {
type = types.int;
description = lib.mdDoc "Port for the Postgres database.";
default = 5432;
};
user = mkOption {
type = types.str;
description = lib.mdDoc "User for the Postgres database.";
default = "postgres";
};
password = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Password for the Postgres database. Warning: this is stored in plain text in the config file.";
default = null;
};
database = mkOption {
type = types.str;
description = lib.mdDoc "Database name for the Postgres database.";
default = "athens";
};
params = {
connect_timeout = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "Connect timeout for the Postgres database.";
default = "30s";
};
sslmode = mkOption {
type = types.nullOr types.str;
description = lib.mdDoc "SSL mode for the Postgres database.";
default = "disable";
};
};
};
};
extraConfig = mkOption {
type = types.attrs;
description = lib.mdDoc ''
Extra configuration options for the athens config file.
'';
default = { };
};
};
config = mkIf cfg.enable {
systemd.services.athens = {
description = "Athens Go module proxy";
documentation = [ "https://docs.gomods.io" ];
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
serviceConfig = {
Restart = "on-abnormal";
Nice = 5;
ExecStart = ''${cfg.package}/bin/athens -config_file=${configFile}'';
KillMode = "mixed";
KillSignal = "SIGINT";
TimeoutStopSec = cfg.shutdownTimeout;
LimitNOFILE = 1048576;
LimitNPROC = 512;
DynamicUser = true;
PrivateTmp = true;
PrivateDevices = true;
ProtectHome = "read-only";
ProtectSystem = "full";
ReadWritePaths = mkIf (cfg.storage.disk.rootPath != null && (! hasPrefix "/var/lib/" cfg.storage.disk.rootPath)) [ cfg.storage.disk.rootPath ];
StateDirectory = mkIf (hasPrefix "/var/lib/" cfg.storage.disk.rootPath) [ (removePrefix "/var/lib/" cfg.storage.disk.rootPath) ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
NoNewPrivileges = true;
};
};
networking.firewall = {
allowedTCPPorts = optionals (cfg.unixSocket == null) [ cfg.port ]
++ optionals cfg.enablePprof [ cfg.pprofPort ];
};
};
}

View File

@ -107,10 +107,10 @@ in
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectHostname = false; # breaks bwrap
ProtectKernelLogs = false; # breaks bwrap
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectKernelTunables = false; # breaks bwrap
ProtectProc = "invisible";
ProcSubset = "all"; # Using "pid" breaks bwrap
ProtectSystem = "strict";

View File

@ -128,8 +128,8 @@ in
};
banaction-allports = mkOption {
default = if config.networking.nftables.enable then "nftables-allport" else "iptables-allport";
defaultText = literalExpression ''if config.networking.nftables.enable then "nftables-allport" else "iptables-allport"'';
default = if config.networking.nftables.enable then "nftables-allports" else "iptables-allports";
defaultText = literalExpression ''if config.networking.nftables.enable then "nftables-allports" else "iptables-allports"'';
type = types.str;
description = lib.mdDoc ''
Default banning action (e.g. iptables, iptables-new, iptables-multiport,

View File

@ -72,11 +72,10 @@ in
"HOME" = "/var/lib/lanraragi";
};
preStart = ''
REDIS_PASS=${lib.optionalString (cfg.redis.passwordFile != null) "$(head -n1 ${cfg.redis.passwordFile})"}
cat > lrr.conf <<EOF
{
redis_address => "127.0.0.1:${toString cfg.redis.port}",
redis_password => "$REDIS_PASS",
redis_password => "${lib.optionalString (cfg.redis.passwordFile != null) ''$(head -n1 ${cfg.redis.passwordFile})''}",
redis_database => "0",
redis_database_minion => "1",
redis_database_config => "2",
@ -84,15 +83,9 @@ in
}
EOF
'' + lib.optionalString (cfg.passwordFile != null) ''
PASS_HASH=$(
PASS=$(head -n1 ${cfg.passwordFile}) ${cfg.package.perlEnv}/bin/perl -I${cfg.package}/share/lanraragi/lib -e \
'use LANraragi::Controller::Config; print LANraragi::Controller::Config::make_password_hash($ENV{PASS})' \
2>/dev/null
)
${lib.getExe pkgs.redis} -h 127.0.0.1 -p ${toString cfg.redis.port} -a "$REDIS_PASS" <<EOF
${lib.getExe pkgs.redis} -h 127.0.0.1 -p ${toString cfg.redis.port} ${lib.optionalString (cfg.redis.passwordFile != null) ''-a "$(head -n1 ${cfg.redis.passwordFile})"''}<<EOF
SELECT 2
HSET LRR_CONFIG password $PASS_HASH
HSET LRR_CONFIG password $(${cfg.package}/bin/helpers/lrr-make-password-hash $(head -n1 ${cfg.passwordFile}))
EOF
'';
};

View File

@ -889,6 +889,10 @@ while (my $f = <$list_active_users>) {
close($list_active_users) || die("Unable to close the file handle to loginctl");
# Set the new tmpfiles
print STDERR "setting up tmpfiles\n";
system("$new_systemd/bin/systemd-tmpfiles", "--create", "--remove", "--exclude-prefix=/dev") == 0 or $res = 3;
# Before reloading we need to ensure that the units are still active. They may have been
# deactivated because one of their requirements got stopped. If they are inactive
# but should have been reloaded, the user probably expects them to be started.

View File

@ -150,12 +150,6 @@ in
"systemd-tmpfiles-setup.service"
];
# Allow systemd-tmpfiles to be restarted by switch-to-configuration.
systemd.services."systemd-tmpfiles-setup" = {
unitConfig.RefuseManualStop = "no";
restartTriggers = [ "${config.environment.etc."tmpfiles.d".source}" ];
};
environment.etc = {
"tmpfiles.d".source = (pkgs.symlinkJoin {
name = "tmpfiles.d";

View File

@ -10,19 +10,17 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
services.lanraragi = {
enable = true;
passwordFile = pkgs.writeText "lrr-test-pass" ''
ultra-secure-password
Ultra-secure-p@ssword-"with-spec1al\chars
'';
port = 4000;
redis = {
port = 4001;
passwordFile = pkgs.writeText "redis-lrr-test-pass" ''
still-a-very-secure-password
123-redis-PASS
'';
};
};
};
};
testScript = ''
@ -34,7 +32,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine2.wait_for_unit("lanraragi.service")
machine2.wait_until_succeeds("curl -f localhost:4000")
machine2.succeed("[ $(curl -o /dev/null -X post 'http://localhost:4000/login' --data-raw 'password=ultra-secure-password' -w '%{http_code}') -eq 302 ]")
machine2.succeed("[ $(curl -o /dev/null -X post 'http://localhost:4000/login' --data-raw 'password=Ultra-secure-p@ssword-\"with-spec1al\\chars' -w '%{http_code}') -eq 302 ]")
'';
})

View File

@ -1,31 +1,15 @@
import ../make-test-python.nix ({ pkgs, ... } : let
ca_key = mailerCerts.ca.key;
ca_pem = mailerCerts.ca.cert;
runWithOpenSSL = file: cmd: pkgs.runCommand file {
buildInputs = [ pkgs.openssl ];
} cmd;
ca_key = runWithOpenSSL "ca-key.pem" "openssl genrsa -out $out 2048";
ca_pem = runWithOpenSSL "ca.pem" ''
openssl req \
-x509 -new -nodes -key ${ca_key} \
-days 10000 -out $out -subj "/CN=snakeoil-ca"
bundle = pkgs.runCommand "bundle" {
nativeBuildInputs = [ pkgs.minica ];
} ''
minica -ca-cert ${ca_pem} -ca-key ${ca_key} \
-domains localhost
install -Dm444 -t $out localhost/{key,cert}.pem
'';
key = runWithOpenSSL "matrix_key.pem" "openssl genrsa -out $out 2048";
csr = runWithOpenSSL "matrix.csr" ''
openssl req \
-new -key ${key} \
-out $out -subj "/CN=localhost" \
'';
cert = runWithOpenSSL "matrix_cert.pem" ''
openssl x509 \
-req -in ${csr} \
-CA ${ca_pem} -CAkey ${ca_key} \
-CAcreateserial -out $out \
-days 365
'';
mailerCerts = import ../common/acme/server/snakeoil-certs.nix;
mailerDomain = mailerCerts.domain;
@ -82,8 +66,8 @@ in {
host = "localhost";
port = config.services.redis.servers.matrix-synapse.port;
};
tls_certificate_path = "${cert}";
tls_private_key_path = "${key}";
tls_certificate_path = "${bundle}/cert.pem";
tls_private_key_path = "${bundle}/key.pem";
registration_shared_secret = registrationSharedSecret;
public_baseurl = "https://example.com";
email = {
@ -203,8 +187,8 @@ in {
settings = {
inherit listeners;
database.name = "sqlite3";
tls_certificate_path = "${cert}";
tls_private_key_path = "${key}";
tls_certificate_path = "${bundle}/cert.pem";
tls_private_key_path = "${bundle}/key.pem";
};
};
};
@ -222,7 +206,7 @@ in {
"journalctl -u matrix-synapse.service | grep -q 'Connected to redis'"
)
serverpostgres.require_unit_state("postgresql.service")
serverpostgres.succeed("register_new_matrix_user -u ${testUser} -p ${testPassword} -a -k ${registrationSharedSecret} https://localhost:8448/")
serverpostgres.succeed("REQUESTS_CA_BUNDLE=${ca_pem} register_new_matrix_user -u ${testUser} -p ${testPassword} -a -k ${registrationSharedSecret} https://localhost:8448/")
serverpostgres.succeed("obtain-token-and-register-email")
serversqlite.wait_for_unit("matrix-synapse.service")
serversqlite.wait_until_succeeds(

View File

@ -41,10 +41,13 @@ in {
};
secretFile = "/etc/nextcloud-secrets.json";
extraOptions.redis = {
dbindex = 0;
timeout = 1.5;
# password handled via secretfile below
extraOptions = {
allow_local_remote_servers = true;
redis = {
dbindex = 0;
timeout = 1.5;
# password handled via secretfile below
};
};
configureRedis = true;
};
@ -62,6 +65,7 @@ in {
services.postgresql = {
enable = true;
package = pkgs.postgresql_14;
};
systemd.services.postgresql.postStart = pkgs.lib.mkAfter ''
password=$(cat ${passFile})

View File

@ -1,4 +1,6 @@
{ pkgs, ... }:
{ pkgs
, testers
, ... }:
let
inherit (pkgs) lib;
@ -19,7 +21,7 @@ let
passthru.override = args': testsForPackage (args // args');
};
testLegacyNetwork = { nixopsPkg, ... }: pkgs.nixosTest ({
testLegacyNetwork = { nixopsPkg, ... }: testers.nixosTest ({
name = "nixops-legacy-network";
nodes = {
deployer = { config, lib, nodes, pkgs, ... }: {

View File

@ -11,12 +11,12 @@
stdenv.mkDerivation rec {
pname = "alsa-scarlett-gui";
version = "unstable-2022-08-11";
version = "0.3.2";
src = fetchFromGitHub {
owner = "geoffreybennett";
repo = pname;
rev = "65c0f6aa432501355803a823be1d3f8aafe907a8";
rev = version;
sha256 = "sha256-wzBOPTs8PTHzu5RpKwKhx552E7QnDx2Zn4OFaes8Q2I=";
};

View File

@ -21,13 +21,13 @@
stdenv.mkDerivation rec {
pname = "sonobus";
version = "1.6.2";
version = "1.7.0";
src = fetchFromGitHub {
owner = "sonosaurus";
repo = "sonobus";
rev = version;
sha256 = "sha256-/Pb+PYmoCYA6Qcy/tR1Ejyt+rZ3pfJeWV4j7bQWYE58=";
sha256 = "sha256-zOPQK5X1E6t53DOjV7qSelyep4+m9aL4tRHqwyeuFQA=";
fetchSubmodules = true;
};

View File

@ -671,12 +671,12 @@ rec {
srcFeature = fetchurl {
url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.feature_${version}.jar";
sha1 = "c8fb6c4aab32db13db0bd81c1a148032667fff31";
hash = "sha256-iKe7oOPjy6th0HmKt6NXexOHN60EDpQe1r+n6K+uoyw=";
};
srcPlugin = fetchurl {
url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse_${version}.jar";
sha1 = "0c80c2e228a07f18efab1c56ea026448eda70c06";
hash = "sha256-lhwFwdMDwCIUrQjdWfe5ZSutCIsKtZSBT6FWthUipdk=";
};
meta = with lib; {
@ -695,12 +695,12 @@ rec {
srcFeature = fetchurl {
url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/features/org.apache.ivyde.eclipse.resolvevisualizer.feature_${version}.jar";
sha1 = "fb1941eaa2c0de54259de01b0da6d5a6b4a2cab1";
hash = "sha256-PSH5NtE7hN2hHoHUhVK1CLkHN7YSDdTTqBP7711X4rU=";
};
srcPlugin = fetchurl {
url = "https://downloads.apache.org/ant/ivyde/updatesite/ivyde-${version}/plugins/org.apache.ivyde.eclipse.resolvevisualizer_${version}.jar";
sha1 = "225e0c8ccb010d622c159560638578c2fc51a67e";
hash = "sha256-qjTvn1j7viSfzLkWnYjyS9Pj2ExqsiFGLzot3+oB0Tw=";
};
meta = with lib; {

View File

@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub }:
{ lib, stdenv, fetchFromGitHub, fetchpatch }:
stdenv.mkDerivation rec {
pname = "kakoune-unwrapped";
@ -9,6 +9,18 @@ stdenv.mkDerivation rec {
rev = "v${version}";
sha256 = "sha256-RR3kw39vEjsg+6cIY6cK2i3ecGHlr1yzuBKaDtGlOGo=";
};
patches = [
# Use explicit target types for gather calls to bypass clang regression
#
# Since clang-16 there has been a regression in the P0522R0 support.
# (Bug report at https://github.com/llvm/llvm-project/issue/63281)
#
# Closes mawww/kakoune#4892
(fetchpatch {
url = "https://github.com/mawww/kakoune/commit/7577fa1b668ea81eb9b7b9af690a4161187129dd.patch";
hash = "sha256-M0jKaEDhkpvX+n7k8Jf2lWaRNy8bqZ1kRHR4eG4npss=";
})
];
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
preConfigure = ''

View File

@ -4,13 +4,13 @@
buildGoModule rec {
pname = "orbiton";
version = "2.65.2";
version = "2.65.6";
src = fetchFromGitHub {
owner = "xyproto";
repo = "orbiton";
rev = "v${version}";
hash = "sha256-wuRbn3zQlyqba21tKLVCRfs8QgreWQ+FBFDw6myoYbk=";
hash = "sha256-HJ1smXLycxcII6FjvXCvxipm7G+2SVweOMPwJ3aJxMg=";
};
vendorHash = null;

View File

@ -1,8 +1,8 @@
{ lib, fetchurl, perlPackages, wrapGAppsHook,
{ lib, fetchurl, perlPackages, wrapGAppsHook, fetchpatch,
# libs
librsvg, sane-backends, sane-frontends,
# runtime dependencies
imagemagick, libtiff, djvulibre, poppler_utils, ghostscript, unpaper, pdftk,
imagemagick, libtiff_4_5, djvulibre, poppler_utils, ghostscript, unpaper, pdftk,
# test dependencies
xvfb-run, liberation_ttf, file, tesseract }:
@ -17,6 +17,17 @@ perlPackages.buildPerlPackage rec {
hash = "sha256-NGz6DUa7TdChpgwmD9pcGdvYr3R+Ft3jPPSJpybCW4Q=";
};
patches = [
# fixes warnings during tests. See https://sourceforge.net/p/gscan2pdf/bugs/421
(fetchpatch {
name = "0001-Remove-given-and-when-keywords-and-operator.patch";
url = "https://sourceforge.net/p/gscan2pdf/bugs/_discuss/thread/602a7cedfd/1ea4/attachment/0001-Remove-given-and-when-keywords-and-operator.patch";
hash = "sha256-JtrHUkfEKnDhWfEVdIdYVlr5b/xChTzsrrPmruLaJ5M=";
})
# fixes an error with utf8 file names. See https://sourceforge.net/p/gscan2pdf/bugs/400
./image-utf8-fix.patch
];
nativeBuildInputs = [ wrapGAppsHook ];
buildInputs =
@ -71,7 +82,7 @@ perlPackages.buildPerlPackage rec {
wrapProgram "$out/bin/gscan2pdf" \
--prefix PATH : "${sane-backends}/bin" \
--prefix PATH : "${imagemagick}/bin" \
--prefix PATH : "${libtiff}/bin" \
--prefix PATH : "${libtiff_4_5}/bin" \
--prefix PATH : "${djvulibre}/bin" \
--prefix PATH : "${poppler_utils}/bin" \
--prefix PATH : "${ghostscript}/bin" \
@ -87,7 +98,10 @@ perlPackages.buildPerlPackage rec {
nativeCheckInputs = [
imagemagick
libtiff
# Needs older libtiff version, because it stopped packageing tools like
# tiff2pdf and others in version 4.6. These tools are necessary for gscan2pdf.
# See commit f57a4b0ac1b954eec0c8def2a99e2a464ac6ff7a for in-depth explanation.
libtiff_4_5
djvulibre
poppler_utils
ghostscript
@ -130,12 +144,6 @@ perlPackages.buildPerlPackage rec {
# Non-zero wait status: 139
rm t/0601_Dialog_Scan.t
# Disable a test which failed due to convert returning an exit value of 1
# convert: negative or zero image size `/build/KL5kTVnNCi/YfgegFM53e.pnm' @ error/resize.c/ResizeImage/3743.
# *** unhandled exception in callback:
# *** "convert" unexpectedly returned exit value 1 at t/357_unpaper_rtl.t line 63.
rm t/357_unpaper_rtl.t
xvfb-run -s '-screen 0 800x600x24' \
make test
'';

View File

@ -0,0 +1,32 @@
diff --git a/bin/gscan2pdf b/bin/gscan2pdf
index e075b0f2..ff124522 100755
--- a/bin/gscan2pdf
+++ b/bin/gscan2pdf
@@ -3434,9 +3434,11 @@ sub save_image {
if ( @{$list_of_pages} > 1 ) {
my $w = length scalar @{$list_of_pages};
for ( 1 .. @{$list_of_pages} ) {
+ _utf8_on($filename);
my $current_filename =
sprintf "${filename}_%0${w}d.$SETTING{'image type'}",
$_;
+ _utf8_off($filename);
if ( -f $current_filename ) {
my $text = sprintf __('This operation would overwrite %s'),
$current_filename;
@@ -3450,11 +3452,15 @@ sub save_image {
return;
}
}
+ _utf8_on($filename);
$filename = "${filename}_%0${w}d.$SETTING{'image type'}";
+ _utf8_off($filename);
}
else {
if ( $filename !~ /[.]$SETTING{'image type'}$/ixsm ) {
+ _utf8_on($filename);
$filename = "$filename.$SETTING{'image type'}";
+ _utf8_off($filename);
return if ( file_exists( $file_chooser, $filename ) );
}
return if ( file_writable( $file_chooser, $filename ) );

View File

@ -11,6 +11,7 @@
, gimpSupport ? false
, gimp
, nix-update-script
, fetchpatch
}:
stdenv.mkDerivation rec {
@ -25,6 +26,13 @@ stdenv.mkDerivation rec {
hash = "sha256-oOg94nUsT9LLKnHocY0S5g02Y9a1UazzZAjpEI/s+yM=";
};
patches = [
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/xsane/raw/rawhide/f/xsane-0.998-libpng.patch";
hash = "sha256-0z292+Waa2g0PCQpUebdWprl9VDyBOY0XgqMJaIcRb8=";
})
];
preConfigure = ''
sed -e '/SANE_CAP_ALWAYS_SETTABLE/d' -i src/xsane-back-gtk.c
chmod a+rX -R .

View File

@ -5,13 +5,13 @@
appimageTools.wrapAppImage rec {
pname = "bazecor";
version = "1.3.6";
version = "1.3.8";
src = appimageTools.extract {
inherit pname version;
src = fetchurl {
url = "https://github.com/Dygmalab/Bazecor/releases/download/v.${version}/Bazecor-${version}-x64.AppImage";
hash = "sha256-Mz7T/AAlyfMzdfy/ZV4AEP3ClTolwr2pPzkSCPL66/w=";
url = "https://github.com/Dygmalab/Bazecor/releases/download/v${version}/Bazecor-${version}-x64.AppImage";
hash = "sha256-SwlSH5z0p9ZVoDQzj4GxO3g/iHG8zQZndE4TmqdMtZQ=";
};
# Workaround for https://github.com/Dygmalab/Bazecor/issues/370
@ -26,7 +26,7 @@ appimageTools.wrapAppImage rec {
# also make sure to update the udev rules in ./10-dygma.rules; most recently
# taken from
# https://github.com/Dygmalab/Bazecor/blob/v1.3.6/src/main/utils/udev.ts#L6
# https://github.com/Dygmalab/Bazecor/blob/v1.3.8/src/main/utils/udev.ts#L6
extraPkgs = p: (appimageTools.defaultFhsEnvArgs.multiPkgs p) ++ [
p.glib

File diff suppressed because it is too large Load Diff

View File

@ -12,20 +12,22 @@
, gdk-pixbuf
, gtk4
, libadwaita
, libsecret
, openssl
, sqlite
, darwin
, gettext
}:
stdenv.mkDerivation rec {
pname = "done";
version = "0.1.7";
version = "0.2.0";
src = fetchFromGitHub {
owner = "done-devs";
repo = "done";
rev = "v${version}";
hash = "sha256-MLCb96jr3YWODZ6xh4fcyFnL5RjFDcEjHKnDD8Gysy8=";
hash = "sha256-97bWBayEyhCMjTxxxFVdO8V2pBZuVzss1Tp9/TnfDB0=";
};
cargoDeps = rustPlatform.importCargoLock {
@ -51,12 +53,19 @@ stdenv.mkDerivation rec {
gdk-pixbuf
gtk4
libadwaita
libsecret
openssl
sqlite
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Foundation
darwin.apple_sdk.frameworks.AppKit
];
env = lib.optionalAttrs stdenv.isDarwin {
GETTEXT_DIR = gettext;
# Work around https://github.com/NixOS/nixpkgs/issues/166205.
NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}";
};
meta = with lib; {
description = "The ultimate task management solution for seamless organization and efficiency";
homepage = "https://done.edfloreshz.dev/";

View File

@ -13,20 +13,23 @@
, desktop-file-utils
, glib
, pkg-config
, libportal-gtk4
, blueprint-compiler
}:
stdenv.mkDerivation rec {
pname = "flowtime";
version = "3.1";
version = "6.1";
src = fetchFromGitHub {
owner = "Diego-Ivan";
repo = "Flowtime";
rev = "v${version}";
hash = "sha256-aXGdHFj9P8+33VuR8YBi+YYN/vBn94drmtKzNDc4SAY=";
hash = "sha256-wTqHTkt1O3Da2fzxf6DiQjrqOt65ZEhLOkGK5C6HzIk=";
};
nativeBuildInputs = [
blueprint-compiler
desktop-file-utils
glib
gobject-introspection
@ -41,6 +44,7 @@ stdenv.mkDerivation rec {
libadwaita
libxml2
libgee
libportal-gtk4
] ++ (with gst_all_1; [
gstreamer
gst-plugins-base
@ -51,6 +55,6 @@ stdenv.mkDerivation rec {
description = "Get what motivates you done, without losing concentration";
homepage = "https://github.com/Diego-Ivan/Flowtime";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ foo-dogsquared ];
maintainers = with maintainers; [ foo-dogsquared pokon548 ];
};
}

View File

@ -49,7 +49,7 @@ perlPackages.buildPerlPackage rec {
license = licenses.gpl3Plus;
homepage = "https://github.com/get-iplayer/get_iplayer";
platforms = platforms.all;
maintainers = with maintainers; [ rika jgarcia ];
maintainers = with maintainers; [ rika chewblacka ];
};
}

View File

@ -1,4 +1,4 @@
{ lib, stdenv
{ lib
, meson
, ninja
, pkg-config
@ -12,11 +12,12 @@
, gobject-introspection
, desktop-file-utils
, appstream-glib
, libadwaita }:
, libadwaita
}:
python3Packages.buildPythonApplication rec {
pname = "gnome-secrets";
version = "7.2";
version = "8.0";
format = "other";
src = fetchFromGitLab {
@ -24,7 +25,7 @@ python3Packages.buildPythonApplication rec {
owner = "World";
repo = "secrets";
rev = version;
hash = "sha256-CE0iuXYHBhu07mjfXCnAPZQUD1Wy95L+tvBT+uepbrk=";
hash = "sha256-SEPQjl6hd8IBs0c0LBEYaqn2n8CGQmYSEMJp5yoL/PA=";
};
nativeBuildInputs = [
@ -67,5 +68,6 @@ python3Packages.buildPythonApplication rec {
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ mvnetbiz ];
mainProgram = "secrets";
};
}

View File

@ -86,6 +86,5 @@ python3.pkgs.buildPythonApplication rec {
homepage = "http://lostpackets.de/khal/";
license = licenses.mit;
maintainers = with maintainers; [ gebner ];
broken = stdenv.isDarwin;
};
}

View File

@ -29,7 +29,11 @@ stdenv.mkDerivation rec {
buildInputs = [ zlib ];
configureFlags = [ "--enable-doxygen" ];
configureFlags = [
"--enable-doxygen"
] ++ lib.optionals stdenv.cc.isClang [
"CFLAGS=-Wno-error=strict-prototypes"
];
postInstall = ''
# remove useless man pages about directories

View File

@ -1,12 +1,12 @@
{ lib, stdenv, makeDesktopItem, fetchurl, jdk19, wrapGAppsHook, glib }:
{ lib, stdenv, makeDesktopItem, fetchurl, jdk21, wrapGAppsHook, glib }:
stdenv.mkDerivation rec {
pname = "pdfsam-basic";
version = "5.0.3";
version = "5.2.0";
src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
hash = "sha256-NST5d5dzO26ifKStbgD7qNbumUMQhfUFNE472LR1z5k=";
hash = "sha256-Q1387Su6bmBkXvcrTgWtYZb9z/pKHiOTfUkUNHN8ItY=";
};
unpackPhase = ''
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ glib ];
preFixup = ''
gappsWrapperArgs+=(--set JAVA_HOME "${jdk19}" --set PDFSAM_JAVA_PATH "${jdk19}")
gappsWrapperArgs+=(--set JAVA_HOME "${jdk21}" --set PDFSAM_JAVA_PATH "${jdk21}")
'';
installPhase = ''

View File

@ -629,6 +629,15 @@ dependencies = [
"winapi",
]
[[package]]
name = "cmake"
version = "0.1.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
dependencies = [
"cc",
]
[[package]]
name = "cocoa"
version = "0.24.1"
@ -697,6 +706,12 @@ dependencies = [
"crossbeam-utils",
]
[[package]]
name = "const-cstr"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6"
[[package]]
name = "const-oid"
version = "0.9.5"
@ -790,6 +805,18 @@ dependencies = [
"libc",
]
[[package]]
name = "core-text"
version = "19.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25"
dependencies = [
"core-foundation",
"core-graphics 0.22.3",
"foreign-types 0.3.2",
"libc",
]
[[package]]
name = "cpufeatures"
version = "0.2.9"
@ -1137,6 +1164,15 @@ dependencies = [
"xcb",
]
[[package]]
name = "dlib"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
dependencies = [
"libloading 0.8.1",
]
[[package]]
name = "dotenvy"
version = "0.15.7"
@ -1170,6 +1206,18 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
[[package]]
name = "dwrote"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b"
dependencies = [
"lazy_static",
"libc",
"winapi",
"wio",
]
[[package]]
name = "either"
version = "1.9.0"
@ -1388,6 +1436,12 @@ dependencies = [
"miniz_oxide",
]
[[package]]
name = "float-ord"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e"
[[package]]
name = "flume"
version = "0.11.0"
@ -1405,6 +1459,31 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "font-kit"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5"
dependencies = [
"bitflags 1.3.2",
"byteorder",
"core-foundation",
"core-graphics 0.22.3",
"core-text",
"dirs-next",
"dwrote",
"float-ord",
"freetype",
"lazy_static",
"libc",
"log",
"pathfinder_geometry",
"pathfinder_simd",
"walkdir",
"winapi",
"yeslogic-fontconfig-sys",
]
[[package]]
name = "foreign-types"
version = "0.3.2"
@ -1466,6 +1545,27 @@ dependencies = [
"num",
]
[[package]]
name = "freetype"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6"
dependencies = [
"freetype-sys",
"libc",
]
[[package]]
name = "freetype-sys"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a"
dependencies = [
"cmake",
"libc",
"pkg-config",
]
[[package]]
name = "fsevent-sys"
version = "4.1.0"
@ -2595,6 +2695,7 @@ dependencies = [
"include_dir",
"itertools 0.10.5",
"lingua-arabic-language-model",
"lingua-bokmal-language-model",
"lingua-chinese-language-model",
"lingua-english-language-model",
"lingua-french-language-model",
@ -2606,6 +2707,8 @@ dependencies = [
"lingua-korean-language-model",
"lingua-malay-language-model",
"lingua-mongolian-language-model",
"lingua-nynorsk-language-model",
"lingua-persian-language-model",
"lingua-portuguese-language-model",
"lingua-russian-language-model",
"lingua-spanish-language-model",
@ -2633,6 +2736,15 @@ dependencies = [
"include_dir",
]
[[package]]
name = "lingua-bokmal-language-model"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a9215ee6bbe6d37222dc5dbd9d1577389810011cb8afbef6155e71a11fa5cb9"
dependencies = [
"include_dir",
]
[[package]]
name = "lingua-chinese-language-model"
version = "1.1.0"
@ -2732,6 +2844,24 @@ dependencies = [
"include_dir",
]
[[package]]
name = "lingua-nynorsk-language-model"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "db00b13561df244acb76927677200ff399b02d8c9b160d25a38320ef3361cfa9"
dependencies = [
"include_dir",
]
[[package]]
name = "lingua-persian-language-model"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "043ba9b4ac7df99acaa1cd9f5925d6fc9b0fe850d3891bbeb91b27ed94f266c4"
dependencies = [
"include_dir",
]
[[package]]
name = "lingua-portuguese-language-model"
version = "1.1.0"
@ -3532,6 +3662,25 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
[[package]]
name = "pathfinder_geometry"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3"
dependencies = [
"log",
"pathfinder_simd",
]
[[package]]
name = "pathfinder_simd"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0444332826c70dc47be74a7c6a5fc44e23a7905ad6858d4162b658320455ef93"
dependencies = [
"rustc_version",
]
[[package]]
name = "pbkdf2"
version = "0.11.0"
@ -3777,6 +3926,7 @@ dependencies = [
"arboard",
"base64 0.21.4",
"dirs 5.0.1",
"font-kit",
"image",
"libloader",
"libloading 0.8.1",
@ -4331,12 +4481,13 @@ dependencies = [
[[package]]
name = "selection"
version = "1.0.0"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09de39c8f10d37a7b9c2a9cb224dbe4535525cbe17ccf37c21419123ab54a197"
checksum = "ae9d5f752403a8ef95d55c47c297541c3c12e90bf8bdaf82287527ff9f373cb6"
dependencies = [
"arboard",
"enigo",
"log",
"windows 0.44.0",
"wl-clipboard-rs",
"x11-clipboard",
@ -6617,6 +6768,15 @@ dependencies = [
"windows-sys 0.48.0",
]
[[package]]
name = "wio"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5"
dependencies = [
"winapi",
]
[[package]]
name = "wl-clipboard-rs"
version = "0.7.0"
@ -6761,6 +6921,18 @@ version = "0.8.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a"
[[package]]
name = "yeslogic-fontconfig-sys"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386"
dependencies = [
"const-cstr",
"dlib",
"once_cell",
"pkg-config",
]
[[package]]
name = "zbus"
version = "3.14.1"

View File

@ -19,17 +19,18 @@
, libsoup
, openssl
, xdotool
, cacert
}:
stdenv.mkDerivation rec {
pname = "pot";
version = "2.6.6";
version = "2.7.0";
src = fetchFromGitHub {
owner = "pot-app";
repo = "pot-desktop";
rev = version;
hash = "sha256-ZpN+SgBq2vA2p4MjrT07j22VB67FdiXIIl9puGiGJA4=";
hash = "sha256-ODqMbyL6Zda/cY5Lgijaj9Pr5aozQDgzHlS89q4rA4w=";
};
sourceRoot = "${src.name}/src-tauri";
@ -47,6 +48,7 @@ stdenv.mkDerivation rec {
jq
moreutils
nodePackages.pnpm
cacert
];
installPhase = ''
@ -66,7 +68,7 @@ stdenv.mkDerivation rec {
dontFixup = true;
outputHashMode = "recursive";
outputHash = "sha256-PqdwoGPsu1j4sDTvBAguDhB2v1yaNWybluLiN37SDa4=";
outputHash = "sha256-xl1dSrJ7o0Xn4QB2tRBB6U8gUItltxTE+hyEJ1GIw1k=";
};
cargoDeps = rustPlatform.importCargoLock {

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "pueue";
version = "3.3.1";
version = "3.3.2";
src = fetchFromGitHub {
owner = "Nukesor";
repo = "pueue";
rev = "v${version}";
hash = "sha256-EDd8SChQ8Vh2uNSZq5mrWdsLNT0KC4IMA7e3BPk6p04=";
hash = "sha256-m819IxJjUjRJvKRUdqwq/iOq6zznbM8/iZsplkAk0F0=";
};
cargoHash = "sha256-H4Oyn2cLyj/RNkiMQMzbHjhs1AJIcmSkZOO83ETByWk=";
cargoHash = "sha256-tUuo3vRnWNR5xlt9DbnHtfZqs0mGfMu4sZ7GrT1q6v4=";
nativeBuildInputs = [
installShellFiles

View File

@ -6,11 +6,11 @@ stdenv.mkDerivation (finalAttrs: let
in
{
pname = "remnote";
version = "1.12.64";
version = "1.13.0";
src = fetchurl {
url = "https://download.remnote.io/remnote-desktop/RemNote-${version}.AppImage";
hash = "sha256-Pvz3bBpv4wN2NXxuKNNraCuOqvvtYOyg5PTSwMpL3cw=";
hash = "sha256-ovM7MnRqzy/mgz+h87hqIuvquODIfmxjdJG1NZYobbk=";
};
appexec = appimageTools.wrapType2 {
inherit pname version src;
@ -44,7 +44,7 @@ in
meta = with lib; {
description = "A note-taking application focused on learning and productivity";
homepage = "https://remnote.com/";
maintainers = with maintainers; [ max-niederman jgarcia ];
maintainers = with maintainers; [ max-niederman chewblacka ];
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
mainProgram = "remnote";

View File

@ -10,7 +10,7 @@
rustPlatform.buildRustPackage rec {
pname = "shavee";
version = "0.5.1";
version = "0.7.3";
src = fetchFromGitHub {
owner = "ashuio";
@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
hash = "sha256-41wJ3QBZdmCl7v/6JetXhzH2zF7tsKYMKZY1cKhByX8=";
};
cargoHash = "sha256-iNGn5KknSNgazFSu6Nur7AkKVb6qKMxuFwTdCz5djWU=";
cargoHash = "sha256-tnIqhZpqdy8pV4L6KF5v19ufpWRpMX5gTPlWWbwB3RU=";
nativeBuildInputs = [
pkg-config

View File

@ -27,12 +27,12 @@
stdenv.mkDerivation rec {
pname = "tuba";
version = "0.4.1";
version = "0.5.0";
src = fetchFromGitHub {
owner = "GeopJr";
repo = "Tuba";
rev = "v${version}";
hash = "sha256-1XbgsdIcnlXJtNEzDgEfHVJHF9naz3HplCPc2cKFUWw=";
hash = "sha256-m38ur7IxQsI46iMpveEXW3OZONbTI7xNq96XSocxxbs=";
};
nativeBuildInputs = [
@ -67,6 +67,8 @@ stdenv.mkDerivation rec {
gst-plugins-bad
]);
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=int-conversion";
passthru = {
updateScript = nix-update-script { };
};

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "tui-journal";
version = "0.5.0";
version = "0.5.1";
src = fetchFromGitHub {
owner = "AmmarAbouZor";
repo = "tui-journal";
rev = "v${version}";
hash = "sha256-uZR09KNj/a1jmouU6Cjnxxkqc8urfZCYDQWhMon6n9E=";
hash = "sha256-uZjepaNFZCjCOnLwATP6fqza7p+Fvu/8egPRXgTkzDs=";
};
cargoHash = "sha256-gmoFN/Jw6mZuSbdD/E7qcnkZKDVujRVgpM9Uvc76z3s=";
cargoHash = "sha256-MFo5e2tmhYvSUgrAA8RS4MnEXMvrY7xGiVrsT+2NWsk=";
nativeBuildInputs = [
pkg-config

View File

@ -1,4 +1,4 @@
{ channel, version, revision, sha256 }:
{ channel, version, revision, hash }:
{ stdenv
, fetchurl
@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://packages.microsoft.com/repos/edge/pool/main/m/${baseName}-${channel}/${baseName}-${channel}_${version}-${revision}_amd64.deb";
inherit sha256;
inherit hash;
};
nativeBuildInputs = [
@ -128,13 +128,13 @@ stdenv.mkDerivation rec {
--set-rpath "${libPath.libGLESv2}" \
opt/microsoft/${shortName}/libGLESv2.so
patchelf \
--set-rpath "${libPath.libsmartscreenn}" \
opt/microsoft/${shortName}/libsmartscreenn.so
patchelf \
--set-rpath "${libPath.liboneauth}" \
opt/microsoft/${shortName}/liboneauth.so
'' + lib.optionalString (lib.versionOlder version "120") ''
patchelf \
--set-rpath "${libPath.libsmartscreenn}" \
opt/microsoft/${shortName}/libsmartscreenn.so
'';
installPhase = ''

View File

@ -1,20 +1,20 @@
{
stable = import ./browser.nix {
channel = "stable";
version = "119.0.2151.44";
version = "119.0.2151.72";
revision = "1";
sha256 = "sha256-QY9Dk4tcpuNJGVcAcaIaVXAT95K87rK7ZQo7COMDpVU=";
hash = "sha256-thBx/+6thNXXKppA11IOG5EiMx7pA9FA3vSkwa9+F0o=";
};
beta = import ./browser.nix {
channel = "beta";
version = "119.0.2151.44";
version = "120.0.2210.22";
revision = "1";
sha256 = "sha256-aLiitzCoMvJH2xAfo9bO7lEPMqKlb++BdJkrWx61SMc=";
hash = "sha256-GayVVZbtGLQmmXu+k4wdsD+rPwGiSPHnQwzVYyKWhHM=";
};
dev = import ./browser.nix {
channel = "dev";
version = "120.0.2186.2";
version = "121.0.2220.3";
revision = "1";
sha256 = "sha256-L/rtOddk4bt8ffkRnq0BYcVjrSb7RmDaay85S5vixSM=";
hash = "sha256-M3r+SLp3lQ7oWDYoM7aNZDC5wbMxFZggsu0Iuyyw/cw=";
};
}

View File

@ -52,7 +52,7 @@ def nix_expressions(latest: dict[str, Packages]):
channel = "{channel}";
version = "{version}";
revision = "{revision}";
sha256 = "{sri}";
hash = "{sri}";
}};'''
)
channel_strs.append(channel_str)

View File

@ -8,16 +8,16 @@
buildGoModule rec {
pname = "helmfile";
version = "0.158.1";
version = "0.159.0";
src = fetchFromGitHub {
owner = "helmfile";
repo = "helmfile";
rev = "v${version}";
sha256 = "sha256-ohf8MUUTZ3YNon12QpSRE80RaHvWsbrZk/slgEVbgoo=";
sha256 = "sha256-7RFDa8Yw2tPjVvJLVPb7VbDNhrHNxzqmE0uogm7X/HY=";
};
vendorHash = "sha256-rA8egwzvvhArQboWpH2ZZTSJGTyzHUIl6aLusPfr8tw=";
vendorHash = "sha256-kVr6h5u71RimRER6tNxZUewSqqjaAPptriD5bfsE85U=";
doCheck = false;

View File

@ -1,10 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-21.2.1+up21.2.0.tgz";
sha256 = "05j3vyikb7g2z2i07rij9h4ki5lb2hb2rynpiqfd4l1y5qm0qhw9";
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-25.0.2+up25.0.0.tgz";
sha256 = "0jygzsn5pxzf7423x5iqfffgx5xvm7c7hfck46y7vpv1fdkiipcq";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-21.2.1+up21.2.0.tgz";
sha256 = "0gvz0yzph2893scd0q10b938yc7f36b3zqs57pkjgqqpl1d0nwhg";
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-25.0.2+up25.0.0.tgz";
sha256 = "1g9n19lnqdkmbbr3rnbwc854awha0kqqfwyxanyx1lg5ww8ldp89";
};
}

View File

@ -1,14 +1,14 @@
{
k3sVersion = "1.27.6+k3s1";
k3sCommit = "bd04941a294793ec92e8703d5e5da14107902e88";
k3sRepoSha256 = "04chr8gp0yprihigy1yzhvi2baby053fav384gq0sjq6bkp3fzd8";
k3sVendorHash = "sha256-LH9OsBK0Pq/NGEHprbIgYKQsslYdR3i4LYVvo5P0K+8=";
k3sVersion = "1.27.7+k3s2";
k3sCommit = "575bce7689f4be112bd0099362fb8d5f2e39398e";
k3sRepoSha256 = "1k8hmxdc45pxwkpkq3y1jpx1ybv1h9y4sk7zb09y0487jqqgd15f";
k3sVendorHash = "sha256-IqnBau4uBIN8ccnoX1P3ud8ZoMR3BjhchLU32tq0YWQ=";
chartVersions = import ./chart-versions.nix;
k3sRootVersion = "0.12.2";
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
k3sCNIVersion = "1.3.0-k3s1";
k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
containerdVersion = "1.7.6-k3s1.27";
containerdSha256 = "1kzjqw56pcdpsqdkw2k5a3pnpf8n93dh4jc2yybgqz3nyj4fw0a8";
containerdVersion = "1.7.7-k3s1.27";
containerdSha256 = "1v1hzjcd8ym3nf7bb88z4n8q1g7gawrkp0j82ah80ars40mifhan";
criCtlVersion = "1.26.0-rc.0-k3s1";
}

View File

@ -0,0 +1,10 @@
{
traefik-crd = {
url = "https://k3s.io/k3s-charts/assets/traefik-crd/traefik-crd-25.0.2+up25.0.0.tgz";
sha256 = "0jygzsn5pxzf7423x5iqfffgx5xvm7c7hfck46y7vpv1fdkiipcq";
};
traefik = {
url = "https://k3s.io/k3s-charts/assets/traefik/traefik-25.0.2+up25.0.0.tgz";
sha256 = "1g9n19lnqdkmbbr3rnbwc854awha0kqqfwyxanyx1lg5ww8ldp89";
};
}

View File

@ -0,0 +1,14 @@
{
k3sVersion = "1.28.3+k3s2";
k3sCommit = "bbafb86e91ae3682a1811119d136203957df9061";
k3sRepoSha256 = "0vbkz8p6bf32lg4n3p5prbghi0wm30nsj6wfmyqacxzzmllqynyk";
k3sVendorHash = "sha256-DHj2rFc/ZX22uvr3HuZr0EvM2gbZSndPtNa5FYqv08o=";
chartVersions = import ./chart-versions.nix;
k3sRootVersion = "0.12.2";
k3sRootSha256 = "1gjynvr350qni5mskgm7pcc7alss4gms4jmkiv453vs8mmma9c9k";
k3sCNIVersion = "1.3.0-k3s1";
k3sCNISha256 = "0zma9g4wvdnhs9igs03xlx15bk2nq56j73zns9xgqmfiixd9c9av";
containerdVersion = "1.7.7-k3s1";
containerdSha256 = "08dxafbac31s0gx3yaj1d53l0lznpj0hw05kiqx23k8ck303q4xj";
criCtlVersion = "1.26.0-rc.0-k3s1";
}

View File

@ -20,4 +20,9 @@ in
k3s_1_27 = common ((import ./1_27/versions.nix) // {
updateScript = [ ./update-script.sh "27" ];
}) extraArgs;
# 1_28 can be built with the same builder as 1_26
k3s_1_28 = common ((import ./1_28/versions.nix) // {
updateScript = [ ./update-script.sh "28" ];
}) extraArgs;
}

View File

@ -14,15 +14,15 @@
let
package = buildGoModule rec {
pname = "opentofu";
version = "1.6.0-alpha5";
version = "1.6.0-beta1";
src = fetchFromGitHub {
owner = "opentofu";
repo = "opentofu";
rev = "v${version}";
hash = "sha256-nkDDq9/ruiSvACw997DgnswwTVzCaZ5K9oT2bKrBYWA=";
hash = "sha256-bOZzMraJ1Bc5CauYkJLH4riCOhAbZlXh9TdBjJsp4Ds=";
};
vendorHash = "sha256-mUakrS3d4UXA5XKyuiIUbGsCAiUMwVbYr8UWOyAtA8Y=";
vendorHash = "sha256-T67VFtAsw6Dn+Ma0znwaa53GvzmrNLFoU17rCeJehKw=";
ldflags = [ "-s" "-w" ];
postConfigure = ''
@ -58,6 +58,7 @@ let
license = licenses.mpl20;
maintainers = with maintainers; [
gmemstr
nickcao
];
mainProgram = "tofu";
};

View File

@ -167,9 +167,9 @@ rec {
mkTerraform = attrs: pluggable (generic attrs);
terraform_1 = mkTerraform {
version = "1.6.4";
hash = "sha256-kA0H+JxyMV6RKRr20enTOzfwj2Lk2IP4vivfHv02+w8=";
vendorHash = "sha256-cxnvEwtZLXYZzCITJgYk8hDRndLLC8YTD+RvgcNska0=";
version = "1.6.5";
hash = "sha256-TJKs7pWoLFIeov/ERgPqZxPtbjSAHrHI2wrSEXUAS1A=";
vendorHash = "sha256-QHfCGlgOv4v3MzUs4JxIHytcyymUYmnk4Z0smgak1Mg=";
patches = [ ./provider-path-0_15.patch ];
passthru = {
inherit plugins;

View File

@ -5,16 +5,16 @@
buildGoModule rec {
pname = "terragrunt";
version = "0.53.6";
version = "0.53.8";
src = fetchFromGitHub {
owner = "gruntwork-io";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-v8e23jzSUHLJwg67Ype+kCM3g/ZyxiSd8cLuywqZj3Y=";
hash = "sha256-qjtyzwcpkZ1+jfwbpYGEXPLeh5+7iNNRRmn8VvZBIEo=";
};
vendorHash = "sha256-h1rDXxvPhQfGUpxOmnksy3l8kMq93nxOQ9adJFyZnOY=";
vendorHash = "sha256-Eu4BOi9ClzNps20OT4L/AXxKZ5zL9ipSmfDunO6CxNs=";
doCheck = false;

View File

@ -2,14 +2,14 @@
buildGoModule rec {
pname = "velero";
version = "1.12.1";
version = "1.12.2";
src = fetchFromGitHub {
owner = "vmware-tanzu";
repo = "velero";
rev = "v${version}";
sha256 = "sha256-qa/Ic3qi+CAW9h4W2G8x6UdxPC2SkrMLMJEcxN7eDGY=";
sha256 = "sha256-i0nMr/DXoFLAXZd4YmWhmkuFczFAf2RPq2Cw1lUqJ68=";
};
ldflags = [
@ -20,7 +20,7 @@ buildGoModule rec {
"-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=none"
];
vendorHash = "sha256-TisGl0kM4vMVh9vk6/mRVOaRm9yoTwKkPedTPqdySDY=";
vendorHash = "sha256-kPs7N3N7E1IiBqBIYFwXlNIrGtFnaRJiTFR4eCOc1mo=";
excludedPackages = [ "issue-template-gen" "release-tools" "v1" "velero-restic-restore-helper" ];

View File

@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
description = "Open-source alternative of Discord desktop's \"app.asar\".";
homepage = "https://openasar.dev";
license = licenses.mit;
maintainers = with maintainers; [ pedrohlc ];
maintainers = with maintainers; [ ];
platforms = nodejs.meta.platforms;
};
}

View File

@ -21,11 +21,11 @@
python3.pkgs.buildPythonApplication rec {
pname = "gajim";
version = "1.8.3";
version = "1.8.4";
src = fetchurl {
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
hash = "sha256-yyIs8TT6tNrqycgmYJVHdCQwUX5NlR2IHTW+Q+J9CIQ=";
hash = "sha256-WPzth7HOAbPVJpvN8zSZJGUzsBtACNlwHrHhDPlOScU=";
};
format = "pyproject";

View File

@ -30,13 +30,13 @@ stdenv.mkDerivation rec {
pname = "qbittorrent"
+ lib.optionalString (guiSupport && qtVersion == "5") "-qt5"
+ lib.optionalString (!guiSupport) "-nox";
version = "4.6.1";
version = "4.6.2";
src = fetchFromGitHub {
owner = "qbittorrent";
repo = "qBittorrent";
rev = "release-${version}";
hash = "sha256-XpPRiWC4HO8t++Fv4Que6TjwSs+go0K/bJWzmGkbLOY=";
hash = "sha256-+leX0T+yJUG6F7WbHa3nCexQZmd7RRfK8Uc+suMJ+vI=";
};
nativeBuildInputs = [

View File

@ -3,10 +3,10 @@
stdenv.mkDerivation rec {
pname = "homebank";
version = "5.7.1";
version = "5.7.2";
src = fetchurl {
url = "http://homebank.free.fr/public/sources/homebank-${version}.tar.gz";
hash = "sha256-fwqSnXde7yalqfKfo8AT8+762/aYLMCGp8dd3bm09Ck=";
url = "https://www.gethomebank.org/public/sources/homebank-${version}.tar.gz";
hash = "sha256-Mx1++I2Q8/NMpmEPfxjonpNUQ7GLCRqH2blL11Vjme8=";
};
nativeBuildInputs = [ pkg-config wrapGAppsHook intltool ];
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Free, easy, personal accounting for everyone";
homepage = "http://homebank.free.fr/";
homepage = "https://www.gethomebank.org";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ pSub ];
platforms = platforms.linux ++ platforms.darwin;

View File

@ -21,14 +21,14 @@
stdenv.mkDerivation rec {
pname = "wpsoffice";
version = "11.1.0.11708";
version = "11.1.0.11711";
src = if useChineseVersion then fetchurl {
url = "https://wps-linux-personal.wpscdn.cn/wps/download/ep/Linux2019/${lib.last (lib.splitString "." version)}/wps-office_${version}_amd64.deb";
hash = "sha256-GcWRrJ0I1Q6D2VK6YsPmd5Uir5LcIBFJa1amV2sUurk=";
hash = "sha256-JHSTZZnOZoTpj8zF4C5PmjTkftEdxbeaqweY3ITiJto=";
} else fetchurl {
url = "https://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/${lib.last (lib.splitString "." version)}/wps-office_${version}.XA_amd64.deb";
hash = "sha256-J40/wrmMz/r4eb2X/rbxWn04UcSsag7SO3aSqBLFSN4=";
hash = "sha256-2apkSE/8Wm6/OQ4x5n1PE1emhovqOgD0NVTY5QZZTYA=";
};
unpackCmd = "dpkg -x $src .";

View File

@ -8,13 +8,13 @@
stdenvNoCC.mkDerivation rec {
pname = "cloudlog";
version = "2.5.1";
version = "2.5.2";
src = fetchFromGitHub {
owner = "magicbug";
repo = "Cloudlog";
rev = version;
hash = "sha256-wFtMMphHz8JBX4hpgD85wn4G7Qs4/nwRcrW12A1tQm4=";
hash = "sha256-0l4/isk2DKZ0HBxeuUN+RqB3o/3fWdhFSFCnQ2OiO6Y=";
};
postPatch = ''

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "surelog";
version = "1.76";
version = "1.80";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-Vg9NZrgzFRVIsEbZQe8DItDhFOVG1XZoQWBrLzVNwLU=";
hash = "sha256-jpt/5h0HnkiJowyVDoMSyiuL6/dokB4xg1sdyctHrDs=";
fetchSubmodules = false; # we use all dependencies from nix
};

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "UHDM";
# When updating this package, also consider updating science/logic/surelog
version = "1.77";
version = "1.80";
src = fetchFromGitHub {
owner = "chipsalliance";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-JKhpcPG4hWlcn2C+Wlx7yNIMXXurAMxLSK4xWN2akMQ=";
hash = "sha256-/aWiN+DPlIjI89u5kx6QoyrGD4DOJTHXxIZ0qHJNDls=";
fetchSubmodules = false; # we use all dependencies from nix
};

View File

@ -77,7 +77,7 @@ callPackage real-drv {
homepage = "http://www.wolfram.com/mathematica/";
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ herberteuler ];
maintainers = with maintainers; [ herberteuler rafaelrc ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -158,9 +158,10 @@ in stdenv.mkDerivation {
# Remove PATH restriction, root and avahi daemon checks, and hostname call
sed -i '
s/^PATH=/# &/
s/^\s*PATH=/# &/
s/isRoot="false"/# &/
s/^checkAvahiDaemon$/# &/
s/^\s*checkAvahiDaemon$/:/
s/^\s*installBundledInstall$/:/
s/`hostname`/""/
' MathInstaller

View File

@ -7,6 +7,20 @@
*/
let versions = [
{
version = "13.3.1";
lang = "en";
language = "English";
sha256 = "sha256-0+mYVGiF4Qn3eiLIoINSHVIqT8GtlBPFRYIOF+nHyQo=";
installer = "Mathematica_13.3.1_LINUX.sh";
}
{
version = "13.3.1";
lang = "en";
language = "English";
sha256 = "sha256-03R4s05fmTcZnlZIMSI6xlLER58MIoccoCr27F8BXOk=";
installer = "Mathematica_13.3.1_BNDL_LINUX.sh";
}
{
version = "13.3.0";
lang = "en";

View File

@ -10,7 +10,7 @@
}:
let
version = "5.12.176";
version = "5.12.177";
in
rustPlatform.buildRustPackage {
pname = "git-mit";
@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
owner = "PurpleBooth";
repo = "git-mit";
rev = "v${version}";
hash = "sha256-ABuOlPwv/mT/zMLcbJS4P+cOGn6hPTxTQEABVUEEX9A=";
hash = "sha256-cg0fRHaDd0l5a8aKZwG6BbwVz47P0SMc4MdV6KmafZ8=";
};
cargoHash = "sha256-X03HqxxxKI3TTuTBjJQAA2aMT96Iq2v8Dn+1qtu5aFM=";
cargoHash = "sha256-AfBSnqUpuJFwE5OTX6aDH+arD+mjyoIjdNTpN98dxjw=";
nativeBuildInputs = [ pkg-config ];

View File

@ -33,6 +33,6 @@ stdenv.mkDerivation {
homepage = "http://myrepos.branchable.com/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ antono henrytill ];
maintainers = with lib.maintainers; [ antono ];
};
}

View File

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "ddev";
version = "1.22.4";
version = "1.22.5";
src = fetchFromGitHub {
owner = "ddev";
repo = "ddev";
rev = "v${version}";
hash = "sha256-ml7SrUmpZubKeDChmNOCHzboR/OBQsr6R8H9peqABek=";
hash = "sha256-s4uRS/BIRjVVN3u+ocy2RcwSnvJLtWpkvxtvgumuWtk=";
};
vendorHash = null;

File diff suppressed because it is too large Load Diff

View File

@ -19,19 +19,26 @@
stdenv.mkDerivation rec {
pname = "pods";
version = "1.2.3";
version = "2.0.0";
src = fetchFromGitHub {
owner = "marhkb";
repo = pname;
rev = "v${version}";
sha256 = "sha256-1NeIrEr6judTR5zHhhboUncx953hEjIl0qVaWkMVNiU=";
sha256 = "sha256-jSN4WmyzYARhDkwAtTYD4iXNTM1QQbAAwQ/ICHg7k3k=";
};
cargoDeps = rustPlatform.importCargoLock {
lockFile = ./Cargo.lock;
outputHashes = {
"ashpd-0.6.0" = "sha256-kLacOwMZ4MQlFYCx5J4kI4J+a9fVRF5Ii/AkWOL/TNQ=";
"cairo-rs-0.19.0" = "sha256-8s+ngacR7d2wb1FKYf0pycxMQbgW63zMKpMgaUs2e+c=";
"gdk4-0.8.0" = "sha256-o9HC4VX6ntPk0JXAX5Whhu0qlUdpPky/1PNrRd9zjdk=";
"libadwaita-0.6.0" = "sha256-3Kge7SIE+vex/uOIt7hjmU68jidkBjrW96o24hu3e/U=";
"libpanel-0.3.0" = "sha256-LA8ynd+7imEdQwvLslmKw+pPNbAEle9fZ2sFuyRY/jU=";
"podman-api-0.10.0" = "sha256-nbxK/U5G+PlbytpHdr63x/C69hBgedPXBFfgdzT9fdc=";
"sourceview5-0.8.0" = "sha256-+f+mm682H4eRC7Xzx5wukecDZq+hMpJQ3+3xHzG00Go=";
"vte4-0.8.0" = "sha256-KZBpfSAngbp5czAXdKA7Au5uYqs2L5MyNsnXcBH77lo=";
};
};

View File

@ -53,11 +53,11 @@ stdenv.mkDerivation (finalAttrs: {
+ lib.optionalString hostCpuOnly "-host-cpu-only"
+ lib.optionalString nixosTestRunner "-for-vm-tests"
+ lib.optionalString toolsOnly "-utils";
version = "8.1.2";
version = "8.1.3";
src = fetchurl {
url = "https://download.qemu.org/qemu-${finalAttrs.version}.tar.xz";
hash = "sha256-VBUmp2RXbrSU0v9exGrrJT5i6ikDXRwjwKivTmzU8Ic=";
hash = "sha256-Q8wXaAQQVYb3T5A5jzTp+FeH3/QA07ZA2B93efviZbs=";
};
depsBuildBuild = [ buildPackages.stdenv.cc ]

View File

@ -15,13 +15,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "hyprpaper";
version = "0.4.0";
version = "0.5.0";
src = fetchFromGitHub {
owner = "hyprwm";
repo = finalAttrs.pname;
rev = "v${finalAttrs.version}";
hash = "sha256-V5ulB9CkGh1ghiC4BKvRdoYKZzpaiOKzAOUmJIFkgM0=";
hash = "sha256-tcHtiyDtLky3lBk5cTmpHRSSbo1IjqOwf+q6Lofz5qM=";
};
nativeBuildInputs = [

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "i3-auto-layout";
version = "0.2";
version = "unstable-2022-05-29";
src = fetchFromGitHub {
owner = "chmln";
repo = pname;
rev = "v${version}";
sha256 = "0ps08lga6qkgc8cgf5cx2lgwlqcnd2yazphh9xd2fznnzrllfxxz";
rev = "9e41eb3891991c35b7d35c9558e788899519a983";
sha256 = "sha256-gpVYVyh+2y4Tttvw1SuCf7mx/nxR330Ob2R4UmHZSJs=";
};
cargoSha256 = "1i01kqvsykanzs7pi94gab9k2dqg1ki40mmjrwa22n0ypkbnvsmx";
cargoSha256 = "sha256-OxQ7S+Sqc3aRH53Bs53Y+EKOYFgboGOBsQ7KJgICcGo=";
# Currently no tests are implemented, so we avoid building the package twice
doCheck = false;
@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
description = "Automatic, optimal tiling for i3wm";
homepage = "https://github.com/chmln/i3-auto-layout";
license = licenses.mit;
maintainers = with maintainers; [ mephistophiles ];
maintainers = with maintainers; [ mephistophiles perstark ];
platforms = platforms.linux;
};
}

View File

@ -30,5 +30,5 @@ let
}) // passthruAttrs // { inherit name; };
in
fetcher fetcherArgs // { meta.homepage = "${protocol}://${domain}/${slug}/"; inherit rev; }
fetcher fetcherArgs // { meta.homepage = "${protocol}://${domain}/${slug}/"; inherit rev owner repo; }
)

View File

@ -66,8 +66,8 @@ for module in $rootModules; do
fi
done
mkdir -p $out/lib/firmware
for module in $(cat closure); do
cd "$firmware"
for module in $(< ~-/closure); do
# for builtin modules, modinfo will reply with a wrong output looking like:
# $ modinfo -F firmware unix
# name: unix
@ -78,16 +78,15 @@ for module in $(cat closure); do
#
# For now, the workaround is just to filter out the extraneous lines out
# of its output.
for i in $(modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:'); do
mkdir -p "$out/lib/firmware/$(dirname "$i")"
modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:' | while read -r i; do
echo "firmware for $module: $i"
for name in "$i" "$i.xz" ""; do
[ -z "$name" ] && echo "WARNING: missing firmware $i for module $module"
if cp "$firmware/lib/firmware/$name" "$out/lib/firmware/$name" 2>/dev/null; then
if cp -v --parents --no-preserve=mode lib/firmware/$name "$out" 2>/dev/null; then
break
fi
done
done
done || :
done
# copy module ordering hints for depmod

View File

@ -11,9 +11,16 @@
# $ echo 'self: super: super.prefer-remote-fetch self super' > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix
#
self: super: {
fetchurl = args: super.fetchurl ({ preferLocalBuild = false; } // args);
binary-cache = args: super.binary-cache ({ preferLocalBuild = false; } // args);
buildenv = args: super.buildenv ({ preferLocalBuild = false; } // args);
fetchfossil = args: super.fetchfossil ({ preferLocalBuild = false; } // args);
fetchdocker = args: super.fetchdocker ({ preferLocalBuild = false; } // args);
fetchgit = args: super.fetchgit ({ preferLocalBuild = false; } // args);
fetchgx = args: super.fetchgx ({ preferLocalBuild = false; } // args);
fetchhg = args: super.fetchhg ({ preferLocalBuild = false; } // args);
fetchsvn = args: super.fetchsvn ({ preferLocalBuild = false; } // args);
fetchipfs = args: super.fetchipfs ({ preferLocalBuild = false; } // args);
fetchrepoproject = args: super.fetchrepoproject ({ preferLocalBuild = false; } // args);
fetchs3 = args: super.fetchs3 ({ preferLocalBuild = false; } // args);
fetchsvn = args: super.fetchsvn ({ preferLocalBuild = false; } // args);
fetchurl = args: super.fetchurl ({ preferLocalBuild = false; } // args);
}

View File

@ -0,0 +1,37 @@
{ lib
, fetchFromGitHub
, buildGo121Module
}:
buildGo121Module rec {
pname = "athens";
version = "0.12.1";
src = fetchFromGitHub {
owner = "gomods";
repo = pname;
rev = "v${version}";
hash = "sha256-m75Ut1UVwz7uWneBwPxUL7aPOXIpy6YPqIXMwczHOpY=";
};
vendorHash = "sha256-zK4EE242Gbgew33oxAUNxylKdhRdPhqP0Hrpu4sYiFg=";
CGO_ENABLED = "0";
ldflags = [ "-s" "-w" "-buildid=" "-X github.com/gomods/athens/pkg/build.version=${version}" ];
flags = [ "-trimpath" ];
subPackages = [ "cmd/proxy" ];
postInstall = ''
mv $out/bin/proxy $out/bin/athens
'';
meta = with lib; {
description = "A Go module datastore and proxy";
homepage = "https://github.com/gomods/athens";
changelog = "https://github.com/gomods/athens/releases/tag/v${version}";
license = licenses.mit;
mainProgram = "athens";
maintainers = with maintainers; [ katexochen malt3 ];
platforms = platforms.unix;
};
}

View File

@ -0,0 +1,27 @@
{ lib
, fetchFromSourcehut
, buildGoModule
}: buildGoModule rec {
pname = "betula";
version = "1.1.0";
src = fetchFromSourcehut {
owner = "~bouncepaw";
repo = "betula";
rev = "v${version}";
hash = "sha256-MH6YeWG94YVBgx5Es3oMJ9A/hAPPBXpAcIdCJV3HX78=";
};
vendorHash = "sha256-wiMIhoSO7nignNWY16OpDYZCguRbcEwwO/HggKSC5jM=";
CGO_ENABLED = 1;
# These tests use internet, so are failing in Nix build.
# See also: https://todo.sr.ht/~bouncepaw/betula/91
checkFlags = "-skip=TestTitles|TestHEntries";
meta = with lib; {
description = "Single-user self-hosted bookmarking software";
homepage = "https://betula.mycorrhiza.wiki/";
license = licenses.agpl3Only;
maintainers = with maintainers; [ GoldsteinE ];
};
}

View File

@ -0,0 +1,38 @@
{ lib, stdenvNoCC, fetchzip }:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "brill";
version = "4.000.073";
src = fetchzip {
url = "https://brill.com/fileasset/The_Brill_Typeface_Package_v_4_0.zip";
hash = "sha256-ugmEIkeBzD/4C9wkVfbctEtnzI8Kw+YD6KGcbk4BAf4=";
stripRoot = false;
};
installPhase = with finalAttrs; ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/truetype
install -Dm644 *agreement.pdf -t $out/share/licenses/${pname}
install -Dm644 *use.pdf -t $out/share/doc/${pname}
runHook postInstall
'';
meta = with lib; {
description = "The in-house serif typeface for the publishing house Brill, designed by John Hudson; free for non-commercial use";
longDescription = ''
Brill has a neo-classical design geared towards optimum legibility.
According to designer John Hudson (Tiro Typeworks):
the mostly vertical contrast axis and expansion stroke model of the Brill types were chosen because they favour the mirrored letters of the International Phonetic Association alphabet. There is an inherent stability in this style that makes it more easily adaptable to a wide variety of shapes than, for instance, a renaissance style type with an oblique axis and broad-nib modelling.
Technically, the Brill fonts have to be able to legibly display any combination of the supported characters that might be encountered in text, including sequences of combining diacritic marks above and below letters, and to be able to do so in typographically sophisticated ways involving smallcaps etc. The OpenType Layout programming in the fonts includes smart contextual rules affecting the shape, spacing and mark positioning of characters. The idea is that users will be able to throw pretty much any text at these fonts and get back a legible and aesthetically pleasing display.
'';
homepage = "https://brill.com/page/BrillFont/brill-typeface";
downloadPage = "https://brill.com/page/419382";
license = licenses.unfree;
platforms = platforms.all;
maintainers = with maintainers; [ trespaul ];
};
})

View File

@ -0,0 +1,29 @@
{ lib
, fetchFromGitHub
, rustPlatform
}:
rustPlatform.buildRustPackage rec {
pname = "bulloak";
version = "0.5.4";
src = fetchFromGitHub {
owner = "alexfertel";
repo = "bulloak";
rev = "v${version}";
hash = "sha256-lUTMQMBqCezuUsfvuYSCBFsokoY3bPoJDGWL90EjVqY=";
};
cargoHash = "sha256-LH96e/dBbv4J7g7wzh3/vL+PzZn779zUMBgio6w3rJw=";
# tests run in CI on the source repo
doCheck = false;
meta = with lib; {
description = "A Solidity test generator based on the Branching Tree Technique";
homepage = "https://github.com/alexfertel/bulloak";
license = with licenses; [ mit asl20 ];
mainProgram = "bulloak";
maintainers = with maintainers; [ beeb ];
};
}

View File

@ -69,7 +69,7 @@ perlPackages.buildPerlPackage rec {
license = licenses.gpl1Plus;
homepage = "https://github.com/dave-theunsub/clamtk";
platforms = platforms.linux;
maintainers = with maintainers; [ jgarcia ShamrockLee ];
maintainers = with maintainers; [ chewblacka ShamrockLee ];
};
}

View File

@ -0,0 +1,33 @@
{ lib
, fetchFromGitHub
, stdenv
, curl
, autoreconfHook
, pkg-config
, byacc
, flex
}:
stdenv.mkDerivation rec {
pname = "gcli";
version = "2.0.0";
src = fetchFromGitHub {
owner = "herrhotzenplotz";
repo = "gcli";
rev = version;
hash = "sha256-ry+T39gFVPfHazAbv97UFpMIH1Dbbw6tZwsn9V4uRec=";
};
nativeBuildInputs = [ autoreconfHook pkg-config byacc flex ];
buildInputs = [ curl ];
meta = with lib; {
description = "Portable Git(Hub|Lab|ea) CLI tool";
homepage = "https://herrhotzenplotz.de/gcli/";
changelog = "https://github.com/herrhotzenplotz/gcli/releases/tag/${version}";
license = licenses.bsd2;
mainProgram = "gcli";
maintainers = with maintainers; [ kenran ];
};
}

View File

@ -16,16 +16,16 @@
buildGoModule rec {
pname = "incus-unwrapped";
version = "0.2";
version = "0.3.0";
src = fetchFromGitHub {
owner = "lxc";
repo = "incus";
rev = "refs/tags/incus-${version}";
hash = "sha256-WhprzGzTeB8sEMMTYN5j1Zrwg0GiGLlXTqCkcPq0XVo=";
rev = "refs/tags/v${version}";
hash = "sha256-oPBrIN4XUc9GnBszEWAAnEcNahV4hfB48XSKvkpq5Kk=";
};
vendorHash = "sha256-4fxQHtvRULTyKJTGdo42qwWQUSIWqbqOO1Wf8daBP/s=";
vendorHash = "sha256-TwrHWjBd6Hn7CQMxFhHobopeefCvYeDz8fAPYmTKV9M=";
postPatch = ''
substituteInPlace internal/usbid/load.go \
@ -36,6 +36,7 @@ buildGoModule rec {
"cmd/incus-agent"
"cmd/incus-migrate"
"cmd/lxd-to-incus"
"test/mini-oidc"
];
nativeBuildInputs = [
@ -84,7 +85,7 @@ buildGoModule rec {
updateScript = nix-update-script {
extraArgs = [
"-vr" "incus-\(.*\)"
"-vr" "v\(.*\)"
];
};
};

View File

@ -0,0 +1,27 @@
{ cmake, extra-cmake-modules, fetchFromGitLab, lib, libsForQt5 }:
libsForQt5.mkDerivation rec {
pname = "kgeotag";
version = "1.4.0";
src = fetchFromGitLab {
domain = "invent.kde.org";
repo = "kgeotag";
owner = "graphics";
rev = "v${version}";
hash = "sha256-az/kXEhD/RGfxOMiLEcb651WVPcyBSa8B2sWOF7bz8E=";
};
nativeBuildInputs = [ cmake extra-cmake-modules ];
buildInputs = [ libsForQt5.libkexiv2 libsForQt5.marble ];
meta = with lib; {
homepage = "https://kgeotag.kde.org/";
description = "A stand-alone photo geotagging program";
changelog = "https://invent.kde.org/graphics/kgeotag/-/blob/master/CHANGELOG.rst";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ cimm ];
mainProgram = "kgeotag";
};
}

View File

@ -1,34 +0,0 @@
diff --git a/lib/LANraragi.pm b/lib/LANraragi.pm
index e6b833c4..d677030b 100644
--- a/lib/LANraragi.pm
+++ b/lib/LANraragi.pm
@@ -144,8 +144,13 @@ sub startup {
shutdown_from_pid( get_temp . "/minion.pid" );
my $miniondb = $self->LRR_CONF->get_redisad . "/" . $self->LRR_CONF->get_miniondb;
+ my $redispassword = $self->LRR_CONF->get_redispassword;
+
+ # If the password is non-empty, add the required delimiters
+ if ($redispassword) { $redispassword = "x:" . $redispassword . "@"; }
+
say "Minion will use the Redis database at $miniondb";
- $self->plugin( 'Minion' => { Redis => "redis://$miniondb" } );
+ $self->plugin( 'Minion' => { Redis => "redis://$redispassword$miniondb" } );
$self->LRR_LOGGER->info("Successfully connected to Minion database.");
$self->minion->missing_after(5); # Clean up older workers after 5 seconds of unavailability
diff --git a/lib/LANraragi/Model/Config.pm b/lib/LANraragi/Model/Config.pm
index f52056d4..63e1f5d3 100644
--- a/lib/LANraragi/Model/Config.pm
+++ b/lib/LANraragi/Model/Config.pm
@@ -42,8 +42,8 @@ sub get_minion {
my $miniondb = get_redisad . "/" . get_miniondb;
my $password = get_redispassword;
- # If the password is non-empty, add the required @
- if ($password) { $password = $password . "@"; }
+ # If the password is non-empty, add the required delimiters
+ if ($password) { $password = "x:" . $password . "@"; }
return Minion->new( Redis => "redis://$password$miniondb" );
}

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