Merge master into haskell-updates
This commit is contained in:
commit
17a17db64f
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -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
|
||||
|
4
.github/workflows/backport.yml
vendored
4
.github/workflows/backport.yml
vendored
@ -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'
|
||||
|
6
.github/workflows/basic-eval.yml
vendored
6
.github/workflows/basic-eval.yml
vendored
@ -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
|
||||
|
5
.github/workflows/check-by-name.yml
vendored
5
.github/workflows/check-by-name.yml
vendored
@ -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"
|
||||
|
||||
|
@ -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
|
||||
|
4
.github/workflows/editorconfig.yml
vendored
4
.github/workflows/editorconfig.yml
vendored
@ -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
|
||||
|
2
.github/workflows/labels.yml
vendored
2
.github/workflows/labels.yml
vendored
@ -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
|
||||
|
6
.github/workflows/manual-nixos.yml
vendored
6
.github/workflows/manual-nixos.yml
vendored
@ -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
|
||||
|
6
.github/workflows/manual-nixpkgs.yml
vendored
6
.github/workflows/manual-nixpkgs.yml
vendored
@ -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
|
||||
|
6
.github/workflows/periodic-merge-24h.yml
vendored
6
.github/workflows/periodic-merge-24h.yml
vendored
@ -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
|
||||
|
6
.github/workflows/periodic-merge-6h.yml
vendored
6
.github/workflows/periodic-merge-6h.yml
vendored
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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).
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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`)
|
||||
|
@ -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
@ -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}
|
||||
|
||||
|
@ -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,7 +1540,8 @@
|
||||
./virtualisation/waydroid.nix
|
||||
./virtualisation/xe-guest-utilities.nix
|
||||
./virtualisation/xen-dom0.nix
|
||||
{ documentation.nixos.extraModules = [
|
||||
{
|
||||
documentation.nixos.extraModules = [
|
||||
./virtualisation/qemu-vm.nix
|
||||
./image/repart.nix
|
||||
];
|
||||
|
@ -7,24 +7,37 @@ with lib;
|
||||
let
|
||||
cfg = config.programs.mininet;
|
||||
|
||||
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
|
||||
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
|
||||
{
|
||||
|
52
nixos/modules/services/development/athens.md
Normal file
52
nixos/modules/services/development/athens.md
Normal 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.
|
936
nixos/modules/services/development/athens.nix
Normal file
936
nixos/modules/services/development/athens.nix
Normal 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 ];
|
||||
};
|
||||
};
|
||||
|
||||
}
|
@ -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";
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
'';
|
||||
};
|
||||
|
@ -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.
|
||||
|
@ -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";
|
||||
|
@ -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 ]")
|
||||
'';
|
||||
})
|
||||
|
||||
|
@ -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(
|
||||
|
@ -41,11 +41,14 @@ in {
|
||||
};
|
||||
secretFile = "/etc/nextcloud-secrets.json";
|
||||
|
||||
extraOptions.redis = {
|
||||
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})
|
||||
|
@ -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, ... }: {
|
||||
|
@ -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=";
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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; {
|
||||
|
@ -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 = ''
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
'';
|
||||
|
32
pkgs/applications/graphics/gscan2pdf/image-utf8-fix.patch
Normal file
32
pkgs/applications/graphics/gscan2pdf/image-utf8-fix.patch
Normal 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 ) );
|
@ -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 .
|
||||
|
@ -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
|
||||
|
1871
pkgs/applications/misc/done/Cargo.lock
generated
1871
pkgs/applications/misc/done/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -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/";
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -86,6 +86,5 @@ python3.pkgs.buildPythonApplication rec {
|
||||
homepage = "http://lostpackets.de/khal/";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ gebner ];
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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 = ''
|
||||
|
176
pkgs/applications/misc/pot/Cargo.lock
generated
176
pkgs/applications/misc/pot/Cargo.lock
generated
@ -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"
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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 { };
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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 = ''
|
||||
|
@ -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=";
|
||||
};
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
}
|
14
pkgs/applications/networking/cluster/k3s/1_28/versions.nix
Normal file
14
pkgs/applications/networking/cluster/k3s/1_28/versions.nix
Normal 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";
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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";
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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" ];
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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";
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
|
@ -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 .";
|
||||
|
@ -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 = ''
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
||||
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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";
|
||||
|
@ -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 ];
|
||||
|
||||
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
|
1108
pkgs/applications/virtualization/pods/Cargo.lock
generated
1108
pkgs/applications/virtualization/pods/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@ -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=";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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 ]
|
||||
|
@ -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 = [
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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; }
|
||||
)
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
37
pkgs/by-name/at/athens/package.nix
Normal file
37
pkgs/by-name/at/athens/package.nix
Normal 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;
|
||||
};
|
||||
}
|
27
pkgs/by-name/be/betula/package.nix
Normal file
27
pkgs/by-name/be/betula/package.nix
Normal 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 ];
|
||||
};
|
||||
}
|
38
pkgs/by-name/br/brill/package.nix
Normal file
38
pkgs/by-name/br/brill/package.nix
Normal 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 ];
|
||||
};
|
||||
})
|
29
pkgs/by-name/bu/bulloak/package.nix
Normal file
29
pkgs/by-name/bu/bulloak/package.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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 ];
|
||||
};
|
||||
|
||||
}
|
||||
|
33
pkgs/by-name/gc/gcli/package.nix
Normal file
33
pkgs/by-name/gc/gcli/package.nix
Normal 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 ];
|
||||
};
|
||||
}
|
@ -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\(.*\)"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
27
pkgs/by-name/kg/kgeotag/package.nix
Normal file
27
pkgs/by-name/kg/kgeotag/package.nix
Normal 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";
|
||||
};
|
||||
}
|
@ -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
Loading…
Reference in New Issue
Block a user