Merge branch 'master' into haskell-updates
This commit is contained in:
commit
0f1be08db8
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -22,7 +22,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 (or backporting 23.05 Release notes)](https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md#generating-2305-release-notes)
|
||||
- [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))
|
||||
- [ ] (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
|
||||
|
|
2
.github/workflows/backport.yml
vendored
2
.github/workflows/backport.yml
vendored
|
@ -24,7 +24,7 @@ jobs:
|
|||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
- name: Create backport PRs
|
||||
uses: korthout/backport-action@v1.2.0
|
||||
uses: korthout/backport-action@v1.3.1
|
||||
with:
|
||||
# Config README: https://github.com/korthout/backport-action#backport-action
|
||||
copy_labels_pattern: 'severity:\ssecurity'
|
||||
|
|
2
.github/workflows/basic-eval.yml
vendored
2
.github/workflows/basic-eval.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
|||
# we don't limit this action to only NixOS repo since the checks are cheap and useful developer feedback
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
- uses: cachix/cachix-action@v12
|
||||
with:
|
||||
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
|
||||
|
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
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@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
# explicitly enable sandbox
|
||||
extra_nix_config: sandbox = true
|
||||
|
|
21
.github/workflows/compare-manuals.sh
vendored
21
.github/workflows/compare-manuals.sh
vendored
|
@ -1,21 +0,0 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p html-tidy
|
||||
|
||||
set -euo pipefail
|
||||
shopt -s inherit_errexit
|
||||
|
||||
normalize() {
|
||||
tidy \
|
||||
--anchor-as-name no \
|
||||
--coerce-endtags no \
|
||||
--escape-scripts no \
|
||||
--fix-backslash no \
|
||||
--fix-style-tags no \
|
||||
--fix-uri no \
|
||||
--indent yes \
|
||||
--wrap 0 \
|
||||
< "$1" \
|
||||
2> /dev/null
|
||||
}
|
||||
|
||||
diff -U3 <(normalize "$1") <(normalize "$2")
|
2
.github/workflows/editorconfig.yml
vendored
2
.github/workflows/editorconfig.yml
vendored
|
@ -28,7 +28,7 @@ jobs:
|
|||
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@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
# nixpkgs commit is pinned so that it doesn't break
|
||||
# editorconfig-checker 2.4.0
|
||||
|
|
12
.github/workflows/manual-nixos.yml
vendored
12
.github/workflows/manual-nixos.yml
vendored
|
@ -18,7 +18,7 @@ jobs:
|
|||
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@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
# explicitly enable sandbox
|
||||
extra_nix_config: sandbox = true
|
||||
|
@ -27,13 +27,5 @@ jobs:
|
|||
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
|
||||
name: nixpkgs-ci
|
||||
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
||||
- name: Building NixOS manual with DocBook options
|
||||
- name: Building NixOS manual
|
||||
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux
|
||||
- name: Building NixOS manual with Markdown options
|
||||
run: |
|
||||
export NIX_PATH=nixpkgs=$(pwd)
|
||||
nix-build \
|
||||
--option restrict-eval true \
|
||||
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
|
||||
nixos/release.nix \
|
||||
-A manual.x86_64-linux
|
||||
|
|
2
.github/workflows/manual-nixpkgs.yml
vendored
2
.github/workflows/manual-nixpkgs.yml
vendored
|
@ -19,7 +19,7 @@ jobs:
|
|||
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@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
# explicitly enable sandbox
|
||||
extra_nix_config: sandbox = true
|
||||
|
|
64
.github/workflows/manual-rendering.yml
vendored
64
.github/workflows/manual-rendering.yml
vendored
|
@ -1,64 +0,0 @@
|
|||
name: "Check NixOS Manual DocBook rendering against MD rendering"
|
||||
|
||||
|
||||
on:
|
||||
schedule:
|
||||
# * is a special character in YAML so you have to quote this string
|
||||
# Check every 24 hours
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
check-rendering-equivalence:
|
||||
permissions:
|
||||
pull-requests: write # for peter-evans/create-or-update-comment to create or update comment
|
||||
if: github.repository_owner == 'NixOS'
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v21
|
||||
with:
|
||||
# explicitly enable sandbox
|
||||
extra_nix_config: sandbox = true
|
||||
- uses: cachix/cachix-action@v12
|
||||
with:
|
||||
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
|
||||
name: nixpkgs-ci
|
||||
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
|
||||
|
||||
- name: Build DocBook and MD manuals
|
||||
run: |
|
||||
export NIX_PATH=nixpkgs=$(pwd)
|
||||
nix-build \
|
||||
--option restrict-eval true \
|
||||
-o docbook nixos/release.nix \
|
||||
-A manual.x86_64-linux
|
||||
nix-build \
|
||||
--option restrict-eval true \
|
||||
--arg configuration '{ documentation.nixos.options.allowDocBook = false; }' \
|
||||
-o md nixos/release.nix \
|
||||
-A manual.x86_64-linux
|
||||
|
||||
- name: Compare DocBook and MD manuals
|
||||
id: check
|
||||
run: |
|
||||
export NIX_PATH=nixpkgs=$(pwd)
|
||||
.github/workflows/compare-manuals.sh \
|
||||
docbook/share/doc/nixos/options.html \
|
||||
md/share/doc/nixos/options.html
|
||||
|
||||
# if the manual can't be built we don't want to notify anyone.
|
||||
# while this may temporarily hide rendering failures it will be a lot
|
||||
# less noisy until all nixpkgs pull requests have stopped using
|
||||
# docbook for option docs.
|
||||
- name: Comment on failure
|
||||
uses: peter-evans/create-or-update-comment@v3
|
||||
if: ${{ failure() && steps.check.conclusion == 'failure' }}
|
||||
with:
|
||||
issue-number: 189318
|
||||
body: |
|
||||
Markdown and DocBook manuals do not agree.
|
||||
|
||||
Check https://github.com/NixOS/nixpkgs/actions/runs/${{ github.run_id }} for details.
|
|
@ -17,7 +17,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v21
|
||||
- uses: cachix/install-nix-action@v22
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixpkgs-unstable
|
||||
- name: setup
|
||||
|
|
|
@ -161,19 +161,6 @@ Anything that does not cause user or downstream dependency regressions can be ba
|
|||
- Services which require a client to be up-to-date regardless. (E.g. `spotify`, `steam`, or `discord`)
|
||||
- Security critical applications (E.g. `firefox`)
|
||||
|
||||
## Generating 23.11 Release Notes
|
||||
<!--
|
||||
note: title unchanged even though we don't need regeneration because extant
|
||||
PRs will link here. definitely change the title for 23.11 though.
|
||||
-->
|
||||
|
||||
Documentation in nixpkgs is transitioning to a markdown-centric workflow. In the past release notes required a translation step to convert from markdown to a compatible docbook document, but this is no longer necessary.
|
||||
|
||||
Steps for updating 23.11 Release notes:
|
||||
|
||||
1. Edit `nixos/doc/manual/release-notes/rl-2311.section.md` with the desired changes
|
||||
2. Commit changes to `rl-2311.section.md`.
|
||||
|
||||
## Reviewing contributions
|
||||
|
||||
See the nixpkgs manual for more details on how to [Review contributions](https://nixos.org/nixpkgs/manual/#chap-reviewing-contributions).
|
||||
|
|
|
@ -138,7 +138,7 @@ let
|
|||
mergeDefaultOption mergeOneOption mergeEqualOption mergeUniqueOption
|
||||
getValues getFiles
|
||||
optionAttrSetToDocList optionAttrSetToDocList'
|
||||
scrubOptionValue literalExpression literalExample literalDocBook
|
||||
scrubOptionValue literalExpression literalExample
|
||||
showOption showOptionWithDefLocs showFiles
|
||||
unknownModule mkOption mkPackageOption mkPackageOptionMD
|
||||
mdDoc literalMD;
|
||||
|
|
|
@ -98,6 +98,11 @@ in mkLicense lset) ({
|
|||
fullName = "Artistic License 1.0";
|
||||
};
|
||||
|
||||
artistic1-cl8 = {
|
||||
spdxId = "Artistic-1.0-cl8";
|
||||
fullName = "Artistic License 1.0 w/clause 8";
|
||||
};
|
||||
|
||||
artistic2 = {
|
||||
spdxId = "Artistic-2.0";
|
||||
fullName = "Artistic License 2.0";
|
||||
|
@ -295,11 +300,26 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
cc-by-sa-10 = {
|
||||
spdxId = "CC-BY-SA-1.0";
|
||||
fullName = "Creative Commons Attribution Share Alike 1.0";
|
||||
};
|
||||
|
||||
cc-by-sa-20 = {
|
||||
spdxId = "CC-BY-SA-2.0";
|
||||
fullName = "Creative Commons Attribution Share Alike 2.0";
|
||||
};
|
||||
|
||||
cc-by-sa-25 = {
|
||||
spdxId = "CC-BY-SA-2.5";
|
||||
fullName = "Creative Commons Attribution Share Alike 2.5";
|
||||
};
|
||||
|
||||
cc-by-10 = {
|
||||
spdxId = "CC-BY-1.0";
|
||||
fullName = "Creative Commons Attribution 1.0";
|
||||
};
|
||||
|
||||
cc-by-30 = {
|
||||
spdxId = "CC-BY-3.0";
|
||||
fullName = "Creative Commons Attribution 3.0";
|
||||
|
@ -486,6 +506,16 @@ in mkLicense lset) ({
|
|||
url = "http://www.schristiancollins.com/generaluser.php"; # license included in sources
|
||||
};
|
||||
|
||||
gfl = {
|
||||
fullName = "GUST Font License";
|
||||
url = "http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt";
|
||||
};
|
||||
|
||||
gfsl = {
|
||||
fullName = "GUST Font Source License";
|
||||
url = "http://www.gust.org.pl/fonts/licenses/GUST-FONT-SOURCE-LICENSE.txt";
|
||||
};
|
||||
|
||||
gpl1Only = {
|
||||
spdxId = "GPL-1.0-only";
|
||||
fullName = "GNU General Public License v1.0 only";
|
||||
|
@ -626,6 +656,11 @@ in mkLicense lset) ({
|
|||
free = false;
|
||||
};
|
||||
|
||||
knuth = {
|
||||
fullName = "Knuth CTAN License";
|
||||
spdxId = "Knuth-CTAN";
|
||||
};
|
||||
|
||||
lal12 = {
|
||||
spdxId = "LAL-1.2";
|
||||
fullName = "Licence Art Libre 1.2";
|
||||
|
@ -702,11 +737,21 @@ in mkLicense lset) ({
|
|||
url = "https://opensource.franz.com/preamble.html";
|
||||
};
|
||||
|
||||
lppl1 = {
|
||||
spdxId = "LPPL-1.0";
|
||||
fullName = "LaTeX Project Public License v1.0";
|
||||
};
|
||||
|
||||
lppl12 = {
|
||||
spdxId = "LPPL-1.2";
|
||||
fullName = "LaTeX Project Public License v1.2";
|
||||
};
|
||||
|
||||
lppl13a = {
|
||||
spdxId = "LPPL-1.3a";
|
||||
fullName = "LaTeX Project Public License v1.3a";
|
||||
};
|
||||
|
||||
lppl13c = {
|
||||
spdxId = "LPPL-1.3c";
|
||||
fullName = "LaTeX Project Public License v1.3c";
|
||||
|
|
|
@ -134,11 +134,6 @@ let
|
|||
${if prefix == []
|
||||
then null # unset => visible
|
||||
else "internal"} = true;
|
||||
# TODO: hidden during the markdown transition to not expose downstream
|
||||
# users of the docs infra to markdown if they're not ready for it.
|
||||
# we don't make this visible conditionally because it can impact
|
||||
# performance (https://github.com/NixOS/nixpkgs/pull/208407#issuecomment-1368246192)
|
||||
visible = false;
|
||||
# TODO: Change the type of this option to a submodule with a
|
||||
# freeformType, so that individual arguments can be documented
|
||||
# separately
|
||||
|
@ -1146,14 +1141,11 @@ let
|
|||
use = id;
|
||||
};
|
||||
|
||||
/* Transitional version of mkAliasOptionModule that uses MD docs. */
|
||||
mkAliasOptionModuleMD = from: to: doRename {
|
||||
inherit from to;
|
||||
visible = true;
|
||||
warn = false;
|
||||
use = id;
|
||||
markdown = true;
|
||||
};
|
||||
/* Transitional version of mkAliasOptionModule that uses MD docs.
|
||||
|
||||
This function is no longer necessary and merely an alias of `mkAliasOptionModule`.
|
||||
*/
|
||||
mkAliasOptionModuleMD = mkAliasOptionModule;
|
||||
|
||||
/* mkDerivedConfig : Option a -> (a -> Definition b) -> Definition b
|
||||
|
||||
|
@ -1175,7 +1167,7 @@ let
|
|||
(opt.highestPrio or defaultOverridePriority)
|
||||
(f opt.value);
|
||||
|
||||
doRename = { from, to, visible, warn, use, withPriority ? true, markdown ? false }:
|
||||
doRename = { from, to, visible, warn, use, withPriority ? true }:
|
||||
{ config, options, ... }:
|
||||
let
|
||||
fromOpt = getAttrFromPath from options;
|
||||
|
@ -1186,9 +1178,7 @@ let
|
|||
{
|
||||
options = setAttrByPath from (mkOption {
|
||||
inherit visible;
|
||||
description = if markdown
|
||||
then lib.mdDoc "Alias of {option}`${showOption to}`."
|
||||
else "Alias of <option>${showOption to}</option>.";
|
||||
description = "Alias of {option}`${showOption to}`.";
|
||||
apply = x: use (toOf config);
|
||||
} // optionalAttrs (toType != null) {
|
||||
type = toType;
|
||||
|
|
|
@ -100,10 +100,7 @@ rec {
|
|||
name: mkOption {
|
||||
default = false;
|
||||
example = true;
|
||||
description =
|
||||
if name ? _type && name._type == "mdDoc"
|
||||
then lib.mdDoc "Whether to enable ${name.text}."
|
||||
else "Whether to enable ${name}.";
|
||||
description = "Whether to enable ${name}.";
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
|
@ -185,10 +182,10 @@ rec {
|
|||
(if isList example then "pkgs." + concatStringsSep "." example else example);
|
||||
});
|
||||
|
||||
/* Like mkPackageOption, but emit an mdDoc description instead of DocBook. */
|
||||
mkPackageOptionMD = pkgs: name: extra:
|
||||
let option = mkPackageOption pkgs name extra;
|
||||
in option // { description = lib.mdDoc option.description; };
|
||||
/* Alias of mkPackageOption. Previously used to create options with markdown
|
||||
documentation, which is no longer required.
|
||||
*/
|
||||
mkPackageOptionMD = mkPackageOption;
|
||||
|
||||
/* This option accepts anything, but it does not produce any result.
|
||||
|
||||
|
@ -344,26 +341,12 @@ rec {
|
|||
if ! isString text then throw "literalExpression expects a string."
|
||||
else { _type = "literalExpression"; inherit text; };
|
||||
|
||||
literalExample = lib.warn "literalExample is deprecated, use literalExpression instead, or use literalDocBook for a non-Nix description." literalExpression;
|
||||
|
||||
|
||||
/* For use in the `defaultText` and `example` option attributes. Causes the
|
||||
given DocBook text to be inserted verbatim in the documentation, for when
|
||||
a `literalExpression` would be too hard to read.
|
||||
*/
|
||||
literalDocBook = text:
|
||||
if ! isString text then throw "literalDocBook expects a string."
|
||||
else
|
||||
lib.warnIf (lib.isInOldestRelease 2211)
|
||||
"literalDocBook is deprecated, use literalMD instead"
|
||||
{ _type = "literalDocBook"; inherit text; };
|
||||
literalExample = lib.warn "literalExample is deprecated, use literalExpression instead, or use literalMD for a non-Nix description." literalExpression;
|
||||
|
||||
/* Transition marker for documentation that's already migrated to markdown
|
||||
syntax.
|
||||
syntax. This is a no-op and no longer needed.
|
||||
*/
|
||||
mdDoc = text:
|
||||
if ! isString text then throw "mdDoc expects a string."
|
||||
else { _type = "mdDoc"; inherit text; };
|
||||
mdDoc = lib.id;
|
||||
|
||||
/* For use in the `defaultText` and `example` option attributes. Causes the
|
||||
given MD text to be inserted verbatim in the documentation, for when
|
||||
|
|
|
@ -18,6 +18,7 @@ rec {
|
|||
cascadelake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||
cooperlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||
tigerlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||
alderlake = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" "avx2" "fma" ];
|
||||
# x86_64 AMD
|
||||
btver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" ];
|
||||
btver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "aes" "avx" ];
|
||||
|
@ -28,6 +29,7 @@ rec {
|
|||
znver1 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
|
||||
znver2 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
|
||||
znver3 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "fma" ];
|
||||
znver4 = [ "sse3" "ssse3" "sse4_1" "sse4_2" "sse4a" "aes" "avx" "avx2" "avx512" "fma" ];
|
||||
# other
|
||||
armv5te = [ ];
|
||||
armv6 = [ ];
|
||||
|
@ -55,6 +57,8 @@ rec {
|
|||
cascadelake = [ "skylake-avx512" ] ++ inferiors.cannonlake;
|
||||
cooperlake = [ "cascadelake" ] ++ inferiors.cascadelake;
|
||||
tigerlake = [ "icelake-server" ] ++ inferiors.icelake-server;
|
||||
# CX16 does not exist on alderlake, while it does on nearly all other intel CPUs
|
||||
alderlake = [ ];
|
||||
|
||||
# x86_64 AMD
|
||||
# TODO: fill this (need testing)
|
||||
|
@ -86,6 +90,7 @@ rec {
|
|||
znver1 = [ "skylake" ] ++ inferiors.skylake;
|
||||
znver2 = [ "znver1" ] ++ inferiors.znver1;
|
||||
znver3 = [ "znver2" ] ++ inferiors.znver2;
|
||||
znver4 = [ "znver3" ] ++ inferiors.znver3;
|
||||
|
||||
# other
|
||||
armv5te = [ ];
|
||||
|
|
|
@ -226,8 +226,7 @@ rec {
|
|||
};
|
||||
wine = (pkgs.winePackagesFor "wine${toString final.parsed.cpu.bits}").minimal;
|
||||
in
|
||||
if final.parsed.kernel.name == pkgs.stdenv.hostPlatform.parsed.kernel.name &&
|
||||
pkgs.stdenv.hostPlatform.canExecute final
|
||||
if pkgs.stdenv.hostPlatform.canExecute final
|
||||
then "${pkgs.runtimeShell} -c '\"$@\"' --"
|
||||
else if final.isWindows
|
||||
then "${wine}/bin/wine${lib.optionalString (final.parsed.cpu.bits == 64) "64"}"
|
||||
|
|
|
@ -1957,6 +1957,16 @@
|
|||
fingerprint = "E9A3 7864 2165 28CE 507C CA82 72EA BF75 C331 CD25";
|
||||
}];
|
||||
};
|
||||
Benjamin-L = {
|
||||
name = "Benjamin Lee";
|
||||
email = "benjamin@computer.surgery";
|
||||
matrix = "@benjamin:computer.surgery";
|
||||
github = "Benjamin-L";
|
||||
githubId = 6504174;
|
||||
keys = [{
|
||||
fingerprint = "9D84 09A0 44FC 1EEB AE2D FA30 FB96 24E2 885D 55A4";
|
||||
}];
|
||||
};
|
||||
benkuhn = {
|
||||
email = "ben@ben-kuhn.com";
|
||||
github = "ben-kuhn";
|
||||
|
@ -5795,6 +5805,13 @@
|
|||
githubId = 48872998;
|
||||
name = "Seth";
|
||||
};
|
||||
getpsyched = {
|
||||
name = "Priyanshu Tripathi";
|
||||
email = "priyanshutr@proton.me";
|
||||
matrix = "@getpsyched:matrix.org";
|
||||
github = "getpsyched";
|
||||
githubId = 43472218;
|
||||
};
|
||||
gfrascadorio = {
|
||||
email = "gfrascadorio@tutanota.com";
|
||||
github = "gfrascadorio";
|
||||
|
@ -6623,6 +6640,11 @@
|
|||
fingerprint = "78C2 E81C 828A 420B 269A EBC1 49FA 39F8 A7F7 35F9";
|
||||
}];
|
||||
};
|
||||
hulr = {
|
||||
github = "hulr";
|
||||
githubId = 17255815;
|
||||
name = "hulr";
|
||||
};
|
||||
humancalico = {
|
||||
email = "humancalico@disroot.org";
|
||||
github = "humancalico";
|
||||
|
@ -7109,6 +7131,12 @@
|
|||
github = "j4m3s-s";
|
||||
githubId = 9413812;
|
||||
};
|
||||
jacfal = {
|
||||
name = "Jakub Pravda";
|
||||
email = "me@jakubpravda.net";
|
||||
github = "jakub-pravda";
|
||||
githubId = 16310411;
|
||||
};
|
||||
jacg = {
|
||||
name = "Jacek Generowicz";
|
||||
email = "jacg@my-post-office.net";
|
||||
|
@ -11852,7 +11880,7 @@
|
|||
name = "Kartik Gokte";
|
||||
};
|
||||
nullishamy = {
|
||||
email = "amy.codes@null.net";
|
||||
email = "spam@amyerskine.me";
|
||||
name = "nullishamy";
|
||||
github = "nullishamy";
|
||||
githubId = 99221043;
|
||||
|
@ -12050,6 +12078,15 @@
|
|||
github = "jackyliu16";
|
||||
githubId = 50787361;
|
||||
};
|
||||
onemoresuza = {
|
||||
name = "Coutinho de Souza";
|
||||
email = "dev@onemoresuza.mailer.me";
|
||||
github = "onemoresuza";
|
||||
githubId = 106456302;
|
||||
keys = [{
|
||||
fingerprint = "484F D3B8 BAD7 BF5D 8B68 2AEA A2ED 1159 935E 4D7E";
|
||||
}];
|
||||
};
|
||||
onixie = {
|
||||
email = "onixie@gmail.com";
|
||||
github = "onixie";
|
||||
|
@ -12614,6 +12651,12 @@
|
|||
githubId = 421510;
|
||||
name = "Noé Rubinstein";
|
||||
};
|
||||
pho = {
|
||||
email = "phofin@gmail.com";
|
||||
github = "pho";
|
||||
githubId = 88469;
|
||||
name = "Jaime Breva";
|
||||
};
|
||||
photex = {
|
||||
email = "photex@gmail.com";
|
||||
github = "photex";
|
||||
|
@ -13675,7 +13718,7 @@
|
|||
name = "Riley Inman";
|
||||
};
|
||||
riotbib = {
|
||||
email = "github-nix@lnrt.de";
|
||||
email = "lennart@cope.cool";
|
||||
github = "riotbib";
|
||||
githubId = 43172581;
|
||||
name = "Lennart Mühlenmeier";
|
||||
|
@ -14543,6 +14586,12 @@
|
|||
fingerprint = "A317 37B3 693C 921B 480C C629 4A2A AAA3 82F8 294C";
|
||||
}];
|
||||
};
|
||||
sestrella = {
|
||||
email = "sestrella.me@gmail.com";
|
||||
github = "sestrella";
|
||||
githubId = 2049686;
|
||||
name = "Sebastián Estrella";
|
||||
};
|
||||
seylerius = {
|
||||
name = "Sable Seyler";
|
||||
email = "sable@seyleri.us";
|
||||
|
@ -14767,6 +14816,12 @@
|
|||
githubId = 16090;
|
||||
name = "Yann Hodique";
|
||||
};
|
||||
sigmanificient = {
|
||||
email = "sigmanificient@gmail.com";
|
||||
github = "Sigmanificient";
|
||||
githubId = 53050011;
|
||||
name = "Yohann Boniface";
|
||||
};
|
||||
sikmir = {
|
||||
email = "sikmir@disroot.org";
|
||||
github = "sikmir";
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
, extraSources ? []
|
||||
, baseOptionsJSON ? null
|
||||
, warningsAreErrors ? true
|
||||
, allowDocBook ? true
|
||||
, prefix ? ../../..
|
||||
}:
|
||||
|
||||
|
@ -17,10 +16,6 @@ let
|
|||
|
||||
lib = pkgs.lib;
|
||||
|
||||
docbook_xsl_ns = pkgs.docbook-xsl-ns.override {
|
||||
withManOptDedupPatch = true;
|
||||
};
|
||||
|
||||
manpageUrls = pkgs.path + "/doc/manpage-urls.json";
|
||||
|
||||
# We need to strip references to /nix/store/* from options,
|
||||
|
@ -33,7 +28,7 @@ let
|
|||
stripAnyPrefixes = lib.flip (lib.foldr lib.removePrefix) prefixesToStrip;
|
||||
|
||||
optionsDoc = buildPackages.nixosOptionsDoc {
|
||||
inherit options revision baseOptionsJSON warningsAreErrors allowDocBook;
|
||||
inherit options revision baseOptionsJSON warningsAreErrors;
|
||||
transformOptions = opt: opt // {
|
||||
# Clean up declaration sites to not refer to the NixOS source tree.
|
||||
declarations = map stripAnyPrefixes opt.declarations;
|
||||
|
@ -68,73 +63,6 @@ let
|
|||
optionIdPrefix = "test-opt-";
|
||||
};
|
||||
|
||||
toc = builtins.toFile "toc.xml"
|
||||
''
|
||||
<toc role="chunk-toc">
|
||||
<d:tocentry xmlns:d="http://docbook.org/ns/docbook" linkend="book-nixos-manual"><?dbhtml filename="index.html"?>
|
||||
<d:tocentry linkend="ch-options"><?dbhtml filename="options.html"?></d:tocentry>
|
||||
<d:tocentry linkend="ch-release-notes"><?dbhtml filename="release-notes.html"?></d:tocentry>
|
||||
</d:tocentry>
|
||||
</toc>
|
||||
'';
|
||||
|
||||
manualXsltprocOptions = toString [
|
||||
"--param chapter.autolabel 0"
|
||||
"--param part.autolabel 0"
|
||||
"--param preface.autolabel 0"
|
||||
"--param reference.autolabel 0"
|
||||
"--param section.autolabel 0"
|
||||
"--stringparam html.stylesheet 'style.css overrides.css highlightjs/mono-blue.css'"
|
||||
"--stringparam html.script './highlightjs/highlight.pack.js ./highlightjs/loader.js'"
|
||||
"--param xref.with.number.and.title 0"
|
||||
"--param toc.section.depth 0"
|
||||
"--param generate.consistent.ids 1"
|
||||
"--stringparam admon.style ''"
|
||||
"--stringparam callout.graphics.extension .svg"
|
||||
"--stringparam current.docid manual"
|
||||
"--param chunk.section.depth 0"
|
||||
"--param chunk.first.sections 1"
|
||||
"--param use.id.as.filename 1"
|
||||
"--stringparam chunk.toc ${toc}"
|
||||
];
|
||||
|
||||
linterFunctions = ''
|
||||
# outputs the context of an xmllint error output
|
||||
# LEN lines around the failing line are printed
|
||||
function context {
|
||||
# length of context
|
||||
local LEN=6
|
||||
# lines to print before error line
|
||||
local BEFORE=4
|
||||
|
||||
# xmllint output lines are:
|
||||
# file.xml:1234: there was an error on line 1234
|
||||
while IFS=':' read -r file line rest; do
|
||||
echo
|
||||
if [[ -n "$rest" ]]; then
|
||||
echo "$file:$line:$rest"
|
||||
local FROM=$(($line>$BEFORE ? $line - $BEFORE : 1))
|
||||
# number lines & filter context
|
||||
nl --body-numbering=a "$file" | sed -n "$FROM,+$LEN p"
|
||||
else
|
||||
if [[ -n "$line" ]]; then
|
||||
echo "$file:$line"
|
||||
else
|
||||
echo "$file"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function lintrng {
|
||||
xmllint --debug --noout --nonet \
|
||||
--relaxng ${docbook5}/xml/rng/docbook/docbook.rng \
|
||||
"$1" \
|
||||
2>&1 | context 1>&2
|
||||
# ^ redirect assumes xmllint doesn’t print to stdout
|
||||
}
|
||||
'';
|
||||
|
||||
prepareManualFromMD = ''
|
||||
cp -r --no-preserve=all $inputs/* .
|
||||
|
||||
|
@ -154,61 +82,13 @@ let
|
|||
${testOptionsDoc.optionsJSON}/share/doc/nixos/options.json
|
||||
'';
|
||||
|
||||
manual-combined = runCommand "nixos-manual-combined"
|
||||
{ inputs = lib.sourceFilesBySuffices ./. [ ".xml" ".md" ];
|
||||
nativeBuildInputs = [ pkgs.nixos-render-docs pkgs.libxml2.bin pkgs.libxslt.bin ];
|
||||
meta.description = "The NixOS manual as plain docbook XML";
|
||||
}
|
||||
''
|
||||
${prepareManualFromMD}
|
||||
|
||||
nixos-render-docs -j $NIX_BUILD_CORES manual docbook \
|
||||
--manpage-urls ${manpageUrls} \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
./manual.md \
|
||||
./manual-combined-pre.xml
|
||||
|
||||
xsltproc \
|
||||
-o manual-combined.xml ${./../../lib/make-options-doc/postprocess-option-descriptions.xsl} \
|
||||
manual-combined-pre.xml
|
||||
|
||||
${linterFunctions}
|
||||
|
||||
mkdir $out
|
||||
cp manual-combined.xml $out/
|
||||
|
||||
lintrng $out/manual-combined.xml
|
||||
'';
|
||||
|
||||
manpages-combined = runCommand "nixos-manpages-combined.xml"
|
||||
{ nativeBuildInputs = [ buildPackages.libxml2.bin buildPackages.libxslt.bin ];
|
||||
meta.description = "The NixOS manpages as plain docbook XML";
|
||||
}
|
||||
''
|
||||
mkdir generated
|
||||
cp -prd ${./man-pages.xml} man-pages.xml
|
||||
ln -s ${optionsDoc.optionsDocBook} generated/options-db.xml
|
||||
|
||||
xmllint --xinclude --noxincludenode --output $out ./man-pages.xml
|
||||
|
||||
${linterFunctions}
|
||||
|
||||
lintrng $out
|
||||
'';
|
||||
|
||||
in rec {
|
||||
inherit (optionsDoc) optionsJSON optionsNix optionsDocBook optionsUsedDocbook;
|
||||
inherit (optionsDoc) optionsJSON optionsNix optionsDocBook;
|
||||
|
||||
# Generate the NixOS manual.
|
||||
manualHTML = runCommand "nixos-manual-html"
|
||||
{ nativeBuildInputs =
|
||||
if allowDocBook then [
|
||||
buildPackages.libxml2.bin
|
||||
buildPackages.libxslt.bin
|
||||
] else [
|
||||
buildPackages.nixos-render-docs
|
||||
];
|
||||
inputs = lib.optionals (! allowDocBook) (lib.sourceFilesBySuffices ./. [ ".md" ]);
|
||||
{ nativeBuildInputs = [ buildPackages.nixos-render-docs ];
|
||||
inputs = lib.sourceFilesBySuffices ./. [ ".md" ];
|
||||
meta.description = "The NixOS manual in HTML format";
|
||||
allowedReferences = ["out"];
|
||||
}
|
||||
|
@ -221,38 +101,21 @@ in rec {
|
|||
cp ${../../../doc/overrides.css} $dst/overrides.css
|
||||
cp -r ${pkgs.documentation-highlighter} $dst/highlightjs
|
||||
|
||||
${if allowDocBook then ''
|
||||
xsltproc \
|
||||
${manualXsltprocOptions} \
|
||||
--stringparam id.warnings "1" \
|
||||
--nonet --output $dst/ \
|
||||
${docbook_xsl_ns}/xml/xsl/docbook/xhtml/chunktoc.xsl \
|
||||
${manual-combined}/manual-combined.xml \
|
||||
|& tee xsltproc.out
|
||||
grep "^ID recommended on" xsltproc.out &>/dev/null && echo "error: some IDs are missing" && false
|
||||
rm xsltproc.out
|
||||
${prepareManualFromMD}
|
||||
|
||||
mkdir -p $dst/images/callouts
|
||||
cp ${docbook_xsl_ns}/xml/xsl/docbook/images/callouts/*.svg $dst/images/callouts/
|
||||
'' else ''
|
||||
${prepareManualFromMD}
|
||||
|
||||
# TODO generator is set like this because the docbook/md manual compare workflow will
|
||||
# trigger if it's different
|
||||
nixos-render-docs -j $NIX_BUILD_CORES manual html \
|
||||
--manpage-urls ${manpageUrls} \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
--generator "DocBook XSL Stylesheets V${docbook_xsl_ns.version}" \
|
||||
--stylesheet style.css \
|
||||
--stylesheet overrides.css \
|
||||
--stylesheet highlightjs/mono-blue.css \
|
||||
--script ./highlightjs/highlight.pack.js \
|
||||
--script ./highlightjs/loader.js \
|
||||
--toc-depth 1 \
|
||||
--chunk-toc-depth 1 \
|
||||
./manual.md \
|
||||
$dst/index.html
|
||||
''}
|
||||
nixos-render-docs -j $NIX_BUILD_CORES manual html \
|
||||
--manpage-urls ${manpageUrls} \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
--generator "nixos-render-docs ${lib.version}" \
|
||||
--stylesheet style.css \
|
||||
--stylesheet overrides.css \
|
||||
--stylesheet highlightjs/mono-blue.css \
|
||||
--script ./highlightjs/highlight.pack.js \
|
||||
--script ./highlightjs/loader.js \
|
||||
--toc-depth 1 \
|
||||
--chunk-toc-depth 1 \
|
||||
./manual.md \
|
||||
$dst/index.html
|
||||
|
||||
mkdir -p $out/nix-support
|
||||
echo "nix-build out $out" >> $out/nix-support/hydra-build-products
|
||||
|
@ -318,10 +181,6 @@ in rec {
|
|||
manpages = runCommand "nixos-manpages"
|
||||
{ nativeBuildInputs = [
|
||||
buildPackages.installShellFiles
|
||||
] ++ lib.optionals allowDocBook [
|
||||
buildPackages.libxml2.bin
|
||||
buildPackages.libxslt.bin
|
||||
] ++ lib.optionals (! allowDocBook) [
|
||||
buildPackages.nixos-render-docs
|
||||
];
|
||||
allowedReferences = ["out"];
|
||||
|
@ -330,24 +189,11 @@ in rec {
|
|||
# Generate manpages.
|
||||
mkdir -p $out/share/man/man8
|
||||
installManPage ${./manpages}/*
|
||||
${if allowDocBook
|
||||
then ''
|
||||
xsltproc --nonet \
|
||||
--maxdepth 6000 \
|
||||
--param man.output.in.separate.dir 1 \
|
||||
--param man.output.base.dir "'$out/share/man/'" \
|
||||
--param man.endnotes.are.numbered 0 \
|
||||
--param man.break.after.slash 1 \
|
||||
${docbook_xsl_ns}/xml/xsl/docbook/manpages/docbook.xsl \
|
||||
${manpages-combined}
|
||||
''
|
||||
else ''
|
||||
mkdir -p $out/share/man/man5
|
||||
nixos-render-docs -j $NIX_BUILD_CORES options manpage \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
${optionsJSON}/share/doc/nixos/options.json \
|
||||
$out/share/man/man5/configuration.nix.5
|
||||
''}
|
||||
mkdir -p $out/share/man/man5
|
||||
nixos-render-docs -j $NIX_BUILD_CORES options manpage \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
${optionsJSON}/share/doc/nixos/options.json \
|
||||
$out/share/man/man5/configuration.nix.5
|
||||
'';
|
||||
|
||||
}
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
<reference xmlns="http://docbook.org/ns/docbook"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
<title>NixOS Reference Pages</title>
|
||||
<info>
|
||||
<author>
|
||||
<personname><firstname>Eelco</firstname><surname>Dolstra</surname></personname>
|
||||
<contrib>Author</contrib>
|
||||
</author>
|
||||
<author>
|
||||
<personname><othername>The Nixpkgs/NixOS contributors</othername></personname>
|
||||
<contrib>Author</contrib>
|
||||
</author>
|
||||
<copyright><year>2007-2022</year><holder>Eelco Dolstra and the Nixpkgs/NixOS contributors</holder>
|
||||
</copyright>
|
||||
</info>
|
||||
<refentry>
|
||||
<refmeta>
|
||||
<refentrytitle><filename>configuration.nix</filename>
|
||||
</refentrytitle><manvolnum>5</manvolnum>
|
||||
<refmiscinfo class="source">NixOS</refmiscinfo>
|
||||
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname><filename>configuration.nix</filename></refname>
|
||||
<refpurpose>NixOS system configuration specification</refpurpose>
|
||||
</refnamediv>
|
||||
<refsection>
|
||||
<title>Description</title>
|
||||
<para>
|
||||
The file <filename>/etc/nixos/configuration.nix</filename> contains the
|
||||
declarative specification of your NixOS system configuration. The command
|
||||
<command>nixos-rebuild</command> takes this file and realises the system
|
||||
configuration specified therein.
|
||||
</para>
|
||||
</refsection>
|
||||
<refsection>
|
||||
<title>Options</title>
|
||||
<para>
|
||||
You can use the following options in <filename>configuration.nix</filename>.
|
||||
</para>
|
||||
<xi:include href="./generated/options-db.xml"
|
||||
xpointer="configuration-variable-list" />
|
||||
</refsection>
|
||||
</refentry>
|
||||
</reference>
|
|
@ -36,17 +36,44 @@
|
|||
|
||||
- `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities.
|
||||
|
||||
- The `vlock` program from the `kbd` package has been moved into its own package output and should now be referenced explicitly as `kbd.vlock` or replaced with an alternative such as the standalone `vlock` package or `physlock`.
|
||||
|
||||
- `fileSystems.<name>.autoFormat` now uses `systemd-makefs`, which does not accept formatting options. Therefore, `fileSystems.<name>.formatOptions` has been removed.
|
||||
|
||||
- `fileSystems.<name>.autoResize` now uses `systemd-growfs` to resize the file system online in stage 2. This means that `f2fs` and `ext2` can no longer be auto resized, while `xfs` and `btrfs` now can be.
|
||||
|
||||
- The following packages in `haskellPackages` have now a separate bin output: `cabal-fmt`, `calligraphy`, `eventlog2html`, `ghc-debug-brick`, `hindent`, `nixfmt`, `releaser`. This means you need to replace e.g. `"${pkgs.haskellPackages.nixfmt}/bin/nixfmt"` with `"${lib.getBin pkgs.haskellPackages.nixfmt}/bin/nixfmt"` or `"${lib.getExe pkgs.haskellPackages.nixfmt}"`. The binaries also won’t be in scope if you rely on them being installed e.g. via `ghcWithPackages`. `environment.packages` picks the `bin` output automatically, so for normal installation no intervention is required. Also, toplevel attributes like `pkgs.nixfmt` are not impacted negatively by this change.
|
||||
- `services.lemmy.settings.federation` was removed in 0.17.0 and no longer has any effect. To enable federation, the hostname must be set in the configuration file and then federation must be enabled in the admin web UI. See the [release notes](https://github.com/LemmyNet/lemmy/blob/c32585b03429f0f76d1e4ff738786321a0a9df98/RELEASES.md#upgrade-instructions) for more details.
|
||||
|
||||
- The following packages in `haskellPackages` have now a separate bin output: `cabal-fmt`, `calligraphy`, `eventlog2html`, `ghc-debug-brick`, `hindent`, `nixfmt`, `releaser`. This means you need to replace e.g. `"${pkgs.haskellPackages.nixfmt}/bin/nixfmt"` with `"${lib.getBin pkgs.haskellPackages.nixfmt}/bin/nixfmt"` or `"${lib.getExe pkgs.haskellPackages.nixfmt}"`. The binaries also won’t be in scope if you rely on them being installed e.g. via `ghcWithPackages`. `environment.packages` picks the `bin` output automatically, so for normal installation no intervention is required. Also, toplevel attributes like `pkgs.nixfmt` are not impacted negatively by this change.
|
||||
|
||||
## Other Notable Changes {#sec-release-23.11-notable-changes}
|
||||
|
||||
- The Cinnamon module now enables XDG desktop integration by default. If you are experiencing collisions related to xdg-desktop-portal-gtk you can safely remove `xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];` from your NixOS configuration.
|
||||
|
||||
- `fontconfig` now defaults to using greyscale antialiasing instead of subpixel antialiasing because of a [recommendation from one of the downstreams](https://gitlab.freedesktop.org/fontconfig/fontconfig/-/issues/337). You can change this value by configuring [](#opt-fonts.fontconfig.subpixel.rgba) accordingly.
|
||||
|
||||
- The latest available version of Nextcloud is v27 (available as `pkgs.nextcloud27`). The installation logic is as follows:
|
||||
- If [`services.nextcloud.package`](#opt-services.nextcloud.package) is specified explicitly, this package will be installed (**recommended**)
|
||||
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.11, `pkgs.nextcloud27` will be installed by default.
|
||||
- If [`system.stateVersion`](#opt-system.stateVersion) is >=23.05, `pkgs.nextcloud26` will be installed by default.
|
||||
- Please note that an upgrade from v25 (or older) to v27 directly is not possible. Please upgrade to `nextcloud26` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud26;`](options.html#opt-services.nextcloud.package).
|
||||
|
||||
- A new option was added to the virtualisation module that enables specifying explicitly named network interfaces in QEMU VMs. The existing `virtualisation.vlans` is still supported for cases where the name of the network interface is irrelevant.
|
||||
|
||||
- DocBook option documentation is no longer supported, all module documentation now uses markdown.
|
||||
|
||||
- `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts.<name>.listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details.
|
||||
|
||||
## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals}
|
||||
|
||||
- The `qemu-vm.nix` module by default now identifies block devices via
|
||||
persistent names available in `/dev/disk/by-*`. Because the rootDevice is
|
||||
identfied by its filesystem label, it needs to be formatted before the VM is
|
||||
started. The functionality of automatically formatting the rootDevice in the
|
||||
initrd is removed from the QEMU module. However, for tests that depend on
|
||||
this functionality, a test utility for the scripted initrd is added
|
||||
(`nixos/tests/common/auto-format-root-device.nix`). To use this in a NixOS
|
||||
test, import the module, e.g. `imports = [
|
||||
./common/auto-format-root-device.nix ];` When you use the systemd initrd, you
|
||||
can automatically format the root device by setting
|
||||
`virtualisation.fileSystems."/".autoFormat = true;`.
|
||||
|
|
|
@ -573,6 +573,7 @@ let format' = format; in let
|
|||
# In this throwaway resource, we only have /dev/vda, but the actual VM may refer to another disk for bootloader, e.g. /dev/vdb
|
||||
# Use this option to create a symlink from vda to any arbitrary device you want.
|
||||
${optionalString (config.boot.loader.grub.device != "/dev/vda") ''
|
||||
mkdir -p $(dirname ${config.boot.loader.grub.device})
|
||||
ln -s /dev/vda ${config.boot.loader.grub.device}
|
||||
''}
|
||||
|
||||
|
|
|
@ -39,12 +39,17 @@
|
|||
# allow docbook option docs if `true`. only markdown documentation is allowed when set to
|
||||
# `false`, and a different renderer may be used with different bugs and performance
|
||||
# characteristics but (hopefully) indistinguishable output.
|
||||
, allowDocBook ? true
|
||||
# deprecated since 23.11.
|
||||
# TODO remove in a while.
|
||||
, allowDocBook ? false
|
||||
# whether lib.mdDoc is required for descriptions to be read as markdown.
|
||||
# !!! when this is eventually flipped to true, `lib.doRename` should also default to emitting Markdown
|
||||
, markdownByDefault ? false
|
||||
# deprecated since 23.11.
|
||||
# TODO remove in a while.
|
||||
, markdownByDefault ? true
|
||||
}:
|
||||
|
||||
assert markdownByDefault && ! allowDocBook;
|
||||
|
||||
let
|
||||
rawOpts = lib.optionAttrSetToDocList options;
|
||||
transformedOpts = map transformOptions rawOpts;
|
||||
|
@ -134,10 +139,17 @@ in rec {
|
|||
TOUCH_IF_DB=$dst/.used-docbook \
|
||||
python ${./mergeJSON.py} \
|
||||
${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
|
||||
${if allowDocBook then "--warn-on-docbook" else "--error-on-docbook"} \
|
||||
$baseJSON $options \
|
||||
> $dst/options.json
|
||||
|
||||
if grep /nixpkgs/nixos/modules $dst/options.json; then
|
||||
echo "The manual appears to depend on the location of Nixpkgs, which is bad"
|
||||
echo "since this prevents sharing via the NixOS channel. This is typically"
|
||||
echo "caused by an option default that refers to a relative path (see above"
|
||||
echo "for hints about the offending path)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
brotli -9 < $dst/options.json > $dst/options.json.br
|
||||
|
||||
mkdir -p $out/nix-support
|
||||
|
@ -145,38 +157,19 @@ in rec {
|
|||
echo "file json-br $dst/options.json.br" >> $out/nix-support/hydra-build-products
|
||||
'';
|
||||
|
||||
optionsUsedDocbook = pkgs.runCommand "options-used-docbook" {} ''
|
||||
if [ -e ${optionsJSON}/share/doc/nixos/.used-docbook ]; then
|
||||
echo 1
|
||||
else
|
||||
echo 0
|
||||
fi >"$out"
|
||||
'';
|
||||
|
||||
optionsDocBook = pkgs.runCommand "options-docbook.xml" {
|
||||
nativeBuildInputs = [
|
||||
pkgs.nixos-render-docs
|
||||
];
|
||||
} ''
|
||||
nixos-render-docs -j $NIX_BUILD_CORES options docbook \
|
||||
--manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
--document-type ${lib.escapeShellArg documentType} \
|
||||
--varlist-id ${lib.escapeShellArg variablelistId} \
|
||||
--id-prefix ${lib.escapeShellArg optionIdPrefix} \
|
||||
${lib.optionalString markdownByDefault "--markdown-by-default"} \
|
||||
${optionsJSON}/share/doc/nixos/options.json \
|
||||
options.xml
|
||||
|
||||
if grep /nixpkgs/nixos/modules options.xml; then
|
||||
echo "The manual appears to depend on the location of Nixpkgs, which is bad"
|
||||
echo "since this prevents sharing via the NixOS channel. This is typically"
|
||||
echo "caused by an option default that refers to a relative path (see above"
|
||||
echo "for hints about the offending path)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${pkgs.libxslt.bin}/bin/xsltproc \
|
||||
-o "$out" ${./postprocess-option-descriptions.xsl} options.xml
|
||||
'';
|
||||
optionsDocBook = lib.warn "optionsDocBook is deprecated since 23.11 and will be removed in 24.05"
|
||||
(pkgs.runCommand "options-docbook.xml" {
|
||||
nativeBuildInputs = [
|
||||
pkgs.nixos-render-docs
|
||||
];
|
||||
} ''
|
||||
nixos-render-docs -j $NIX_BUILD_CORES options docbook \
|
||||
--manpage-urls ${pkgs.path + "/doc/manpage-urls.json"} \
|
||||
--revision ${lib.escapeShellArg revision} \
|
||||
--document-type ${lib.escapeShellArg documentType} \
|
||||
--varlist-id ${lib.escapeShellArg variablelistId} \
|
||||
--id-prefix ${lib.escapeShellArg optionIdPrefix} \
|
||||
${optionsJSON}/share/doc/nixos/options.json \
|
||||
"$out"
|
||||
'');
|
||||
}
|
||||
|
|
|
@ -43,19 +43,11 @@ def unpivot(options: Dict[Key, Option]) -> Dict[str, JSON]:
|
|||
return result
|
||||
|
||||
warningsAreErrors = False
|
||||
warnOnDocbook = False
|
||||
errorOnDocbook = False
|
||||
optOffset = 0
|
||||
for arg in sys.argv[1:]:
|
||||
if arg == "--warnings-are-errors":
|
||||
optOffset += 1
|
||||
warningsAreErrors = True
|
||||
if arg == "--warn-on-docbook":
|
||||
optOffset += 1
|
||||
warnOnDocbook = True
|
||||
elif arg == "--error-on-docbook":
|
||||
optOffset += 1
|
||||
errorOnDocbook = True
|
||||
|
||||
options = pivot(json.load(open(sys.argv[1 + optOffset], 'r')))
|
||||
overrides = pivot(json.load(open(sys.argv[2 + optOffset], 'r')))
|
||||
|
@ -84,38 +76,10 @@ for (k, v) in overrides.items():
|
|||
|
||||
severity = "error" if warningsAreErrors else "warning"
|
||||
|
||||
def is_docbook(o, key):
|
||||
val = o.get(key, {})
|
||||
if not isinstance(val, dict):
|
||||
return False
|
||||
return val.get('_type', '') == 'literalDocBook'
|
||||
|
||||
# check that every option has a description
|
||||
hasWarnings = False
|
||||
hasErrors = False
|
||||
hasDocBook = False
|
||||
for (k, v) in options.items():
|
||||
if warnOnDocbook or errorOnDocbook:
|
||||
kind = "error" if errorOnDocbook else "warning"
|
||||
if isinstance(v.value.get('description', {}), str):
|
||||
hasErrors |= errorOnDocbook
|
||||
hasDocBook = True
|
||||
print(
|
||||
f"\x1b[1;31m{kind}: option {v.name} description uses DocBook\x1b[0m",
|
||||
file=sys.stderr)
|
||||
elif is_docbook(v.value, 'defaultText'):
|
||||
hasErrors |= errorOnDocbook
|
||||
hasDocBook = True
|
||||
print(
|
||||
f"\x1b[1;31m{kind}: option {v.name} default uses DocBook\x1b[0m",
|
||||
file=sys.stderr)
|
||||
elif is_docbook(v.value, 'example'):
|
||||
hasErrors |= errorOnDocbook
|
||||
hasDocBook = True
|
||||
print(
|
||||
f"\x1b[1;31m{kind}: option {v.name} example uses DocBook\x1b[0m",
|
||||
file=sys.stderr)
|
||||
|
||||
if v.value.get('description', None) is None:
|
||||
hasWarnings = True
|
||||
print(f"\x1b[1;31m{severity}: option {v.name} has no description\x1b[0m", file=sys.stderr)
|
||||
|
@ -126,30 +90,6 @@ for (k, v) in options.items():
|
|||
f"\x1b[1;31m{severity}: option {v.name} has no type. Please specify a valid type, see " +
|
||||
"https://nixos.org/manual/nixos/stable/index.html#sec-option-types\x1b[0m", file=sys.stderr)
|
||||
|
||||
if hasDocBook:
|
||||
(why, what) = (
|
||||
("disallowed for in-tree modules", "contribution") if errorOnDocbook
|
||||
else ("deprecated for option documentation", "module")
|
||||
)
|
||||
print("Explanation: The documentation contains descriptions, examples, or defaults written in DocBook. " +
|
||||
"NixOS is in the process of migrating from DocBook to Markdown, and " +
|
||||
f"DocBook is {why}. To change your {what} to "+
|
||||
"use Markdown, apply mdDoc and literalMD and use the *MD variants of option creation " +
|
||||
"functions where they are available. For example:\n" +
|
||||
"\n" +
|
||||
" example.foo = mkOption {\n" +
|
||||
" description = lib.mdDoc ''your description'';\n" +
|
||||
" defaultText = lib.literalMD ''your description of default'';\n" +
|
||||
" };\n" +
|
||||
"\n" +
|
||||
" example.enable = mkEnableOption (lib.mdDoc ''your thing'');\n" +
|
||||
" example.package = mkPackageOptionMD pkgs \"your-package\" {};\n" +
|
||||
" imports = [ (mkAliasOptionModuleMD [ \"example\" \"args\" ] [ \"example\" \"settings\" ]) ];",
|
||||
file = sys.stderr)
|
||||
with open(os.getenv('TOUCH_IF_DB'), 'x'):
|
||||
# just make sure it exists
|
||||
pass
|
||||
|
||||
if hasErrors:
|
||||
sys.exit(1)
|
||||
if hasWarnings and warningsAreErrors:
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:str="http://exslt.org/strings"
|
||||
xmlns:exsl="http://exslt.org/common"
|
||||
xmlns:db="http://docbook.org/ns/docbook"
|
||||
xmlns:nixos="tag:nixos.org"
|
||||
extension-element-prefixes="str exsl">
|
||||
<xsl:output method='xml' encoding="UTF-8" />
|
||||
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="break-up-description">
|
||||
<xsl:param name="input" />
|
||||
<xsl:param name="buffer" />
|
||||
|
||||
<!-- Every time we have two newlines following each other, we want to
|
||||
break it into </para><para>. -->
|
||||
<xsl:variable name="parbreak" select="'

'" />
|
||||
|
||||
<!-- Similar to "(head:tail) = input" in Haskell. -->
|
||||
<xsl:variable name="head" select="$input[1]" />
|
||||
<xsl:variable name="tail" select="$input[position() > 1]" />
|
||||
|
||||
<xsl:choose>
|
||||
<xsl:when test="$head/self::text() and contains($head, $parbreak)">
|
||||
<!-- If the haystack provided to str:split() directly starts or
|
||||
ends with $parbreak, it doesn't generate a <token/> for that,
|
||||
so we are doing this here. -->
|
||||
<xsl:variable name="splitted-raw">
|
||||
<xsl:if test="starts-with($head, $parbreak)"><token /></xsl:if>
|
||||
<xsl:for-each select="str:split($head, $parbreak)">
|
||||
<token><xsl:value-of select="node()" /></token>
|
||||
</xsl:for-each>
|
||||
<!-- Something like ends-with($head, $parbreak), but there is
|
||||
no ends-with() in XSLT, so we need to use substring(). -->
|
||||
<xsl:if test="
|
||||
substring($head, string-length($head) -
|
||||
string-length($parbreak) + 1) = $parbreak
|
||||
"><token /></xsl:if>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="splitted"
|
||||
select="exsl:node-set($splitted-raw)/token" />
|
||||
<!-- The buffer we had so far didn't contain any text nodes that
|
||||
contain a $parbreak, so we can put the buffer along with the
|
||||
first token of $splitted into a para element. -->
|
||||
<para xmlns="http://docbook.org/ns/docbook">
|
||||
<xsl:apply-templates select="exsl:node-set($buffer)" />
|
||||
<xsl:apply-templates select="$splitted[1]/node()" />
|
||||
</para>
|
||||
<!-- We have already emitted the first splitted result, so the
|
||||
last result is going to be set as the new $buffer later
|
||||
because its contents may not be directly followed up by a
|
||||
$parbreak. -->
|
||||
<xsl:for-each select="$splitted[position() > 1
|
||||
and position() < last()]">
|
||||
<para xmlns="http://docbook.org/ns/docbook">
|
||||
<xsl:apply-templates select="node()" />
|
||||
</para>
|
||||
</xsl:for-each>
|
||||
<xsl:call-template name="break-up-description">
|
||||
<xsl:with-param name="input" select="$tail" />
|
||||
<xsl:with-param name="buffer" select="$splitted[last()]/node()" />
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- Either non-text node or one without $parbreak, which we just
|
||||
want to buffer and continue recursing. -->
|
||||
<xsl:when test="$input">
|
||||
<xsl:call-template name="break-up-description">
|
||||
<xsl:with-param name="input" select="$tail" />
|
||||
<!-- This essentially appends $head to $buffer. -->
|
||||
<xsl:with-param name="buffer">
|
||||
<xsl:if test="$buffer">
|
||||
<xsl:for-each select="exsl:node-set($buffer)">
|
||||
<xsl:apply-templates select="." />
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="$head" />
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:when>
|
||||
<!-- No more $input, just put the remaining $buffer in a para. -->
|
||||
<xsl:otherwise>
|
||||
<para xmlns="http://docbook.org/ns/docbook">
|
||||
<xsl:apply-templates select="exsl:node-set($buffer)" />
|
||||
</para>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="nixos:option-description">
|
||||
<xsl:choose>
|
||||
<!--
|
||||
Only process nodes that are comprised of a single <para/> element,
|
||||
because if that's not the case the description already contains
|
||||
</para><para> in between and we need no further processing.
|
||||
-->
|
||||
<xsl:when test="count(db:para) > 1">
|
||||
<xsl:apply-templates select="node()" />
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="break-up-description">
|
||||
<xsl:with-param name="input"
|
||||
select="exsl:node-set(db:para/node())" />
|
||||
</xsl:call-template>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
|
@ -514,7 +514,11 @@ class Machine:
|
|||
return "".join(output_buffer)
|
||||
|
||||
def execute(
|
||||
self, command: str, check_return: bool = True, timeout: Optional[int] = 900
|
||||
self,
|
||||
command: str,
|
||||
check_return: bool = True,
|
||||
check_output: bool = True,
|
||||
timeout: Optional[int] = 900,
|
||||
) -> Tuple[int, str]:
|
||||
self.run_callbacks()
|
||||
self.connect()
|
||||
|
@ -535,6 +539,9 @@ class Machine:
|
|||
assert self.shell
|
||||
self.shell.send(out_command.encode())
|
||||
|
||||
if not check_output:
|
||||
return (-2, "")
|
||||
|
||||
# Get the output
|
||||
output = base64.b64decode(self._next_newline_closed_block_from_shell())
|
||||
|
||||
|
|
|
@ -77,18 +77,6 @@ let
|
|||
<edit mode="append" name="autohint">
|
||||
${fcBool cfg.hinting.autohint}
|
||||
</edit>
|
||||
<edit mode="append" name="hintstyle">
|
||||
<const>${cfg.hinting.style}</const>
|
||||
</edit>
|
||||
<edit mode="append" name="antialias">
|
||||
${fcBool cfg.antialias}
|
||||
</edit>
|
||||
<edit mode="append" name="rgba">
|
||||
<const>${cfg.subpixel.rgba}</const>
|
||||
</edit>
|
||||
<edit mode="append" name="lcdfilter">
|
||||
<const>lcd${cfg.subpixel.lcdfilter}</const>
|
||||
</edit>
|
||||
</match>
|
||||
|
||||
</fontconfig>
|
||||
|
@ -177,6 +165,13 @@ let
|
|||
</fontconfig>
|
||||
'';
|
||||
|
||||
# Replace default linked config with a different variant
|
||||
replaceDefaultConfig = defaultConfig: newConfig: ''
|
||||
rm $dst/${defaultConfig}
|
||||
ln -s ${pkg.out}/share/fontconfig/conf.avail/${newConfig} \
|
||||
$dst/
|
||||
'';
|
||||
|
||||
# fontconfig configuration package
|
||||
confPkg = pkgs.runCommand "fontconfig-conf" {
|
||||
preferLocalBuild = true;
|
||||
|
@ -196,6 +191,26 @@ let
|
|||
ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
|
||||
$dst/
|
||||
|
||||
${optionalString (!cfg.antialias)
|
||||
(replaceDefaultConfig "10-yes-antialias.conf"
|
||||
"10-no-antialias.conf")
|
||||
}
|
||||
|
||||
${optionalString (cfg.hinting.style != "slight")
|
||||
(replaceDefaultConfig "10-hinting-slight.conf"
|
||||
"10-hinting-${cfg.hinting.style}.conf")
|
||||
}
|
||||
|
||||
${optionalString (cfg.subpixel.rgba != "none")
|
||||
(replaceDefaultConfig "10-sub-pixel-none.conf"
|
||||
"10-sub-pixel-${cfg.subpixel.rgba}.conf")
|
||||
}
|
||||
|
||||
${optionalString (cfg.subpixel.lcdfilter != "default")
|
||||
(replaceDefaultConfig "11-lcdfilter-default.conf"
|
||||
"11-lcdfilter-${cfg.subpixel.lcdfilter}.conf")
|
||||
}
|
||||
|
||||
# 00-nixos-cache.conf
|
||||
ln -s ${cacheConf} $dst/00-nixos-cache.conf
|
||||
|
||||
|
@ -367,17 +382,25 @@ in
|
|||
};
|
||||
|
||||
style = mkOption {
|
||||
type = types.enum [ "hintnone" "hintslight" "hintmedium" "hintfull" ];
|
||||
default = "hintslight";
|
||||
type = types.enum ["none" "slight" "medium" "full"];
|
||||
default = "slight";
|
||||
description = lib.mdDoc ''
|
||||
Hintstyle is the amount of font reshaping done to line up
|
||||
to the grid.
|
||||
|
||||
hintslight will make the font more fuzzy to line up to the grid
|
||||
but will be better in retaining font shape, while hintfull will
|
||||
be a crisp font that aligns well to the pixel grid but will lose
|
||||
a greater amount of font shape.
|
||||
slight will make the font more fuzzy to line up to the grid but
|
||||
will be better in retaining font shape, while full will be a
|
||||
crisp font that aligns well to the pixel grid but will lose a
|
||||
greater amount of font shape.
|
||||
'';
|
||||
apply =
|
||||
val:
|
||||
let
|
||||
from = "fonts.fontconfig.hinting.style";
|
||||
val' = lib.removePrefix "hint" val;
|
||||
warning = "The option `${from}` contains a deprecated value `${val}`. Use `${val'}` instead.";
|
||||
in
|
||||
lib.warnIf (lib.hasPrefix "hint" val) warning val';
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -394,7 +417,7 @@ in
|
|||
subpixel = {
|
||||
|
||||
rgba = mkOption {
|
||||
default = "rgb";
|
||||
default = "none";
|
||||
type = types.enum ["rgb" "bgr" "vrgb" "vbgr" "none"];
|
||||
description = lib.mdDoc ''
|
||||
Subpixel order. The overwhelming majority of displays are
|
||||
|
|
|
@ -39,7 +39,8 @@ with lib;
|
|||
graphviz = super.graphviz-nox;
|
||||
gst_all_1 = super.gst_all_1 // {
|
||||
gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
|
||||
gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableX11 = false; };
|
||||
gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableWayland = false; enableX11 = false; };
|
||||
gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableX11 = false; };
|
||||
};
|
||||
imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
|
||||
imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
|
||||
|
|
|
@ -107,7 +107,7 @@ let
|
|||
} >&2
|
||||
'';
|
||||
|
||||
inherit (cfg.nixos.options) warningsAreErrors allowDocBook;
|
||||
inherit (cfg.nixos.options) warningsAreErrors;
|
||||
};
|
||||
|
||||
|
||||
|
@ -160,6 +160,9 @@ in
|
|||
(mkRenamedOptionModule [ "programs" "info" "enable" ] [ "documentation" "info" "enable" ])
|
||||
(mkRenamedOptionModule [ "programs" "man" "enable" ] [ "documentation" "man" "enable" ])
|
||||
(mkRenamedOptionModule [ "services" "nixosManual" "enable" ] [ "documentation" "nixos" "enable" ])
|
||||
(mkRemovedOptionModule
|
||||
[ "documentation" "nixos" "options" "allowDocBook" ]
|
||||
"DocBook option documentation is no longer supported")
|
||||
];
|
||||
|
||||
options = {
|
||||
|
@ -264,23 +267,6 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
nixos.options.allowDocBook = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Whether to allow DocBook option docs. When set to `false` all option using
|
||||
DocBook documentation will cause a manual build error; additionally a new
|
||||
renderer may be used.
|
||||
|
||||
::: {.note}
|
||||
The `false` setting for this option is not yet fully supported. While it
|
||||
should work fine and produce the same output as the previous toolchain
|
||||
using DocBook it may not work in all circumstances. Whether markdown option
|
||||
documentation is allowed is independent of this option.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
nixos.options.warningsAreErrors = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -359,14 +345,6 @@ in
|
|||
(mkIf cfg.nixos.enable {
|
||||
system.build.manual = manual;
|
||||
|
||||
system.activationScripts.check-manual-docbook = ''
|
||||
if [[ $(cat ${manual.optionsUsedDocbook}) = 1 ]]; then
|
||||
echo -e "\e[31;1mwarning\e[0m: This configuration contains option documentation in docbook." \
|
||||
"Support for docbook is deprecated and will be removed after NixOS 23.05." \
|
||||
"See nix-store --read-log ${builtins.unsafeDiscardStringContext manual.optionsJSON.drvPath}"
|
||||
fi
|
||||
'';
|
||||
|
||||
environment.systemPackages = []
|
||||
++ optional cfg.man.enable manual.manpages
|
||||
++ optionals cfg.doc.enable [ manual.manualHTML nixos-help ];
|
||||
|
|
|
@ -13,16 +13,13 @@ let
|
|||
};
|
||||
|
||||
customEtc = {
|
||||
"fwupd/daemon.conf" = {
|
||||
source = format.generate "daemon.conf" {
|
||||
"fwupd/fwupd.conf" = {
|
||||
source = format.generate "fwupd.conf" {
|
||||
fwupd = cfg.daemonSettings;
|
||||
};
|
||||
};
|
||||
|
||||
"fwupd/uefi_capsule.conf" = {
|
||||
source = format.generate "uefi_capsule.conf" {
|
||||
uefi_capsule = cfg.uefiCapsuleSettings;
|
||||
};
|
||||
# fwupd tries to chmod the file if it doesn't have the right permissions
|
||||
mode = "0640";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -177,8 +177,7 @@ in
|
|||
description = lib.mdDoc "The email addresses of the public-inbox.";
|
||||
};
|
||||
options.url = mkOption {
|
||||
type = with types; nullOr str;
|
||||
default = null;
|
||||
type = types.nonEmptyStr;
|
||||
example = "https://example.org/lists/example-discuss";
|
||||
description = lib.mdDoc "URL where this inbox can be accessed over HTTP.";
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -159,6 +159,15 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
claimTokenFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = lib.mdDoc ''
|
||||
If set, automatically registers the agent using the given claim token
|
||||
file.
|
||||
'';
|
||||
};
|
||||
|
||||
enableAnalyticsReporting = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
|
@ -260,7 +269,25 @@ in {
|
|||
PrivateTmp = true;
|
||||
ProtectControlGroups = true;
|
||||
PrivateMounts = true;
|
||||
};
|
||||
} // (lib.optionalAttrs (cfg.claimTokenFile != null) {
|
||||
LoadCredential = [
|
||||
"netdata_claim_token:${cfg.claimTokenFile}"
|
||||
];
|
||||
|
||||
ExecStartPre = pkgs.writeShellScript "netdata-claim" ''
|
||||
set -euo pipefail
|
||||
|
||||
if [[ -f /var/lib/netdata/cloud.d/claimed_id ]]; then
|
||||
# Already registered
|
||||
exit
|
||||
fi
|
||||
|
||||
exec ${cfg.package}/bin/netdata-claim.sh \
|
||||
-token="$(< "$CREDENTIALS_DIRECTORY/netdata_claim_token")" \
|
||||
-url=https://app.netdata.cloud \
|
||||
-daemon-not-running
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
systemd.enableCgroupAccounting = true;
|
||||
|
|
|
@ -60,6 +60,7 @@ in {
|
|||
config.networking.resolvconf.package # for configuring DNS in some configs
|
||||
pkgs.procps # for collecting running services (opt-in feature)
|
||||
pkgs.glibc # for `getent` to look up user shells
|
||||
pkgs.kmod # required to pass tailscale's v6nat check
|
||||
];
|
||||
serviceConfig.Environment = [
|
||||
"PORT=${toString cfg.port}"
|
||||
|
|
|
@ -99,6 +99,7 @@ in {
|
|||
systemd.units."kmsconvt@.service".aliases = [ "autovt@.service" ];
|
||||
|
||||
systemd.services.systemd-vconsole-setup.enable = false;
|
||||
systemd.services.reload-systemd-vconsole-setup.enable = false;
|
||||
|
||||
services.kmscon.extraConfig =
|
||||
let
|
||||
|
|
|
@ -9,7 +9,17 @@ in {
|
|||
services.code-server = {
|
||||
enable = lib.mkEnableOption (lib.mdDoc "code-server");
|
||||
|
||||
package = lib.mkPackageOptionMD pkgs "code-server" { };
|
||||
package = lib.mkPackageOptionMD pkgs "code-server" {
|
||||
example = ''
|
||||
pkgs.vscode-with-extensions.override {
|
||||
vscode = pkgs.code-server;
|
||||
vscodeExtensions = with pkgs.vscode-extensions; [
|
||||
bbenoist.nix
|
||||
dracula-theme.theme-dracula
|
||||
];
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = lib.mkOption {
|
||||
default = [ ];
|
||||
|
|
|
@ -62,10 +62,6 @@ in
|
|||
description = lib.mdDoc "Port where lemmy should listen for incoming requests.";
|
||||
};
|
||||
|
||||
options.federation = {
|
||||
enabled = (mkEnableOption (lib.mdDoc "activitypub federation")) // { visible = false; };
|
||||
};
|
||||
|
||||
options.captcha = {
|
||||
enabled = mkOption {
|
||||
type = types.bool;
|
||||
|
@ -85,10 +81,6 @@ in
|
|||
|
||||
config =
|
||||
lib.mkIf cfg.enable {
|
||||
warnings = lib.optional (cfg.settings.federation.enabled) ''
|
||||
This option was removed in 0.17.0 and no longer has any effect.
|
||||
'';
|
||||
|
||||
services.lemmy.settings = (mapAttrs (name: mkDefault)
|
||||
{
|
||||
bind = "127.0.0.1";
|
||||
|
@ -194,10 +186,16 @@ in
|
|||
};
|
||||
};
|
||||
|
||||
assertions = [{
|
||||
assertion = cfg.database.createLocally -> cfg.settings.database.host == "localhost" || cfg.settings.database.host == "/run/postgresql";
|
||||
message = "if you want to create the database locally, you need to use a local database";
|
||||
}];
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.database.createLocally -> cfg.settings.database.host == "localhost" || cfg.settings.database.host == "/run/postgresql";
|
||||
message = "if you want to create the database locally, you need to use a local database";
|
||||
}
|
||||
{
|
||||
assertion = (!(hasAttrByPath ["federation"] cfg.settings)) && (!(hasAttrByPath ["federation" "enabled"] cfg.settings));
|
||||
message = "`services.lemmy.settings.federation` was removed in 0.17.0 and no longer has any effect";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services.lemmy = {
|
||||
description = "Lemmy server";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, pkgs, buildEnv, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
|
@ -261,6 +261,7 @@ in {
|
|||
StateDirectory = "netbox";
|
||||
StateDirectoryMode = "0750";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 30;
|
||||
};
|
||||
in {
|
||||
netbox-migration = {
|
||||
|
@ -276,13 +277,18 @@ in {
|
|||
ExecStart = ''
|
||||
${pkg}/bin/netbox migrate
|
||||
'';
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
|
||||
netbox = {
|
||||
description = "NetBox WSGI Service";
|
||||
documentation = [ "https://docs.netbox.dev/" ];
|
||||
|
||||
wantedBy = [ "netbox.target" ];
|
||||
after = [ "netbox-migration.service" ];
|
||||
|
||||
after = [ "network-online.target" "netbox-migration.service" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
preStart = ''
|
||||
${pkg}/bin/netbox trace_paths --no-input
|
||||
|
@ -290,9 +296,7 @@ in {
|
|||
${pkg}/bin/netbox remove_stale_contenttypes --no-input
|
||||
'';
|
||||
|
||||
environment = {
|
||||
PYTHONPATH = pkg.pythonPath;
|
||||
};
|
||||
environment.PYTHONPATH = pkg.pythonPath;
|
||||
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
ExecStart = ''
|
||||
|
@ -300,32 +304,37 @@ in {
|
|||
--bind ${cfg.listenAddress}:${toString cfg.port} \
|
||||
--pythonpath ${pkg}/opt/netbox/netbox
|
||||
'';
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
|
||||
netbox-rq = {
|
||||
description = "NetBox Request Queue Worker";
|
||||
documentation = [ "https://docs.netbox.dev/" ];
|
||||
|
||||
wantedBy = [ "netbox.target" ];
|
||||
after = [ "netbox.service" ];
|
||||
|
||||
environment = {
|
||||
PYTHONPATH = pkg.pythonPath;
|
||||
};
|
||||
environment.PYTHONPATH = pkg.pythonPath;
|
||||
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
ExecStart = ''
|
||||
${pkg}/bin/netbox rqworker high default low
|
||||
'';
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
|
||||
netbox-housekeeping = {
|
||||
description = "NetBox housekeeping job";
|
||||
after = [ "netbox.service" ];
|
||||
documentation = [ "https://docs.netbox.dev/" ];
|
||||
|
||||
environment = {
|
||||
PYTHONPATH = pkg.pythonPath;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
environment.PYTHONPATH = pkg.pythonPath;
|
||||
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
Type = "oneshot";
|
||||
|
@ -338,10 +347,17 @@ in {
|
|||
|
||||
systemd.timers.netbox-housekeeping = {
|
||||
description = "Run NetBox housekeeping job";
|
||||
wantedBy = [ "timers.target" ];
|
||||
documentation = [ "https://docs.netbox.dev/" ];
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
timerConfig = {
|
||||
OnCalendar = "daily";
|
||||
AccuracySec = "1h";
|
||||
Persistent = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ self-hostable cloud platform. The server setup can be automated using
|
|||
[services.nextcloud](#opt-services.nextcloud.enable). A
|
||||
desktop client is packaged at `pkgs.nextcloud-client`.
|
||||
|
||||
The current default by NixOS is `nextcloud26` which is also the latest
|
||||
The current default by NixOS is `nextcloud27` which is also the latest
|
||||
major version available.
|
||||
|
||||
## Basic usage {#module-services-nextcloud-basic-usage}
|
||||
|
|
|
@ -207,7 +207,7 @@ in {
|
|||
package = mkOption {
|
||||
type = types.package;
|
||||
description = lib.mdDoc "Which package to use for the Nextcloud instance.";
|
||||
relatedPackages = [ "nextcloud25" "nextcloud26" ];
|
||||
relatedPackages = [ "nextcloud25" "nextcloud26" "nextcloud27" ];
|
||||
};
|
||||
phpPackage = mkOption {
|
||||
type = types.package;
|
||||
|
@ -689,7 +689,7 @@ in {
|
|||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{ warnings = let
|
||||
latest = 26;
|
||||
latest = 27;
|
||||
upgradeWarning = major: nixos:
|
||||
''
|
||||
A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
|
||||
|
@ -708,10 +708,9 @@ in {
|
|||
Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
|
||||
Please migrate your configuration to config.services.nextcloud.poolSettings.
|
||||
'')
|
||||
++ (optional (versionOlder cfg.package.version "23") (upgradeWarning 22 "22.05"))
|
||||
++ (optional (versionOlder cfg.package.version "24") (upgradeWarning 23 "22.05"))
|
||||
++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11"))
|
||||
++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05"))
|
||||
++ (optional (versionOlder cfg.package.version "27") (upgradeWarning 26 "23.11"))
|
||||
++ (optional cfg.enableBrokenCiphersForSSE ''
|
||||
You're using PHP's openssl extension built against OpenSSL 1.1 for Nextcloud.
|
||||
This is only necessary if you're using Nextcloud's server-side encryption.
|
||||
|
@ -744,7 +743,8 @@ in {
|
|||
''
|
||||
else if versionOlder stateVersion "22.11" then nextcloud24
|
||||
else if versionOlder stateVersion "23.05" then nextcloud25
|
||||
else nextcloud26
|
||||
else if versionOlder stateVersion "23.11" then nextcloud26
|
||||
else nextcloud27
|
||||
);
|
||||
|
||||
services.nextcloud.phpPackage =
|
||||
|
@ -1065,10 +1065,8 @@ in {
|
|||
services.nextcloud = lib.mkIf cfg.configureRedis {
|
||||
caching.redis = true;
|
||||
extraOptions = {
|
||||
memcache = {
|
||||
distributed = ''\OC\Memcache\Redis'';
|
||||
locking = ''\OC\Memcache\Redis'';
|
||||
};
|
||||
"memcache.distributed" = ''\OC\Memcache\Redis'';
|
||||
"memcache.locking" = ''\OC\Memcache\Redis'';
|
||||
redis = {
|
||||
host = config.services.redis.servers.nextcloud.unixSocket;
|
||||
port = 0;
|
||||
|
|
|
@ -113,6 +113,7 @@ in
|
|||
|
||||
services.xserver.displayManager.sessionCommands = ''
|
||||
if test "$XDG_CURRENT_DESKTOP" = "Pantheon"; then
|
||||
true
|
||||
${concatMapStrings (p: ''
|
||||
if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
|
||||
export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
|
||||
|
|
|
@ -587,7 +587,7 @@ in
|
|||
# Some overrides to upstream units.
|
||||
systemd.services."systemd-backlight@".restartIfChanged = false;
|
||||
systemd.services."systemd-fsck@".restartIfChanged = false;
|
||||
systemd.services."systemd-fsck@".path = [ config.system.path ];
|
||||
systemd.services."systemd-fsck@".path = [ pkgs.util-linux ] ++ config.system.fsPackages;
|
||||
systemd.services."systemd-makefs@" = {
|
||||
restartIfChanged = false;
|
||||
path = [ pkgs.util-linux ] ++ config.system.fsPackages;
|
||||
|
|
|
@ -523,6 +523,15 @@ in
|
|||
assertion = cfgZfs.allowHibernation -> !cfgZfs.forceImportRoot && !cfgZfs.forceImportAll;
|
||||
message = "boot.zfs.allowHibernation while force importing is enabled will cause data corruption";
|
||||
}
|
||||
{
|
||||
assertion = !(elem "" allPools);
|
||||
message = ''
|
||||
Automatic pool detection found an empty pool name, which can't be used.
|
||||
Hint: for `fileSystems` entries with `fsType = zfs`, the `device` attribute
|
||||
should be a zfs dataset name, like `device = "pool/data/set"`.
|
||||
This error can be triggered by using an absolute path, such as `"/dev/disk/..."`.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
boot = {
|
||||
|
|
|
@ -81,25 +81,6 @@ let
|
|||
|
||||
drivesCmdLine = drives: concatStringsSep "\\\n " (imap1 driveCmdline drives);
|
||||
|
||||
|
||||
# Creates a device name from a 1-based a numerical index, e.g.
|
||||
# * `driveDeviceName 1` -> `/dev/vda`
|
||||
# * `driveDeviceName 2` -> `/dev/vdb`
|
||||
driveDeviceName = idx:
|
||||
let letter = elemAt lowerChars (idx - 1);
|
||||
in if cfg.qemu.diskInterface == "scsi" then
|
||||
"/dev/sd${letter}"
|
||||
else
|
||||
"/dev/vd${letter}";
|
||||
|
||||
lookupDriveDeviceName = driveName: driveList:
|
||||
(findSingle (drive: drive.name == driveName)
|
||||
(throw "Drive ${driveName} not found")
|
||||
(throw "Multiple drives named ${driveName}") driveList).device;
|
||||
|
||||
addDeviceNames =
|
||||
imap1 (idx: drive: drive // { device = driveDeviceName idx; });
|
||||
|
||||
# Shell script to start the VM.
|
||||
startVM =
|
||||
''
|
||||
|
@ -109,25 +90,41 @@ let
|
|||
|
||||
set -e
|
||||
|
||||
# Create an empty ext4 filesystem image. A filesystem image does not
|
||||
# contain a partition table but just a filesystem.
|
||||
createEmptyFilesystemImage() {
|
||||
local name=$1
|
||||
local size=$2
|
||||
local temp=$(mktemp)
|
||||
${qemu}/bin/qemu-img create -f raw "$temp" "$size"
|
||||
${pkgs.e2fsprogs}/bin/mkfs.ext4 -L ${rootFilesystemLabel} "$temp"
|
||||
${qemu}/bin/qemu-img convert -f raw -O qcow2 "$temp" "$name"
|
||||
rm "$temp"
|
||||
}
|
||||
|
||||
NIX_DISK_IMAGE=$(readlink -f "''${NIX_DISK_IMAGE:-${toString config.virtualisation.diskImage}}") || test -z "$NIX_DISK_IMAGE"
|
||||
|
||||
if test -n "$NIX_DISK_IMAGE" && ! test -e "$NIX_DISK_IMAGE"; then
|
||||
echo "Disk image do not exist, creating the virtualisation disk image..."
|
||||
# If we are using a bootloader and default filesystems layout.
|
||||
# We have to reuse the system image layout as a backing image format (CoW)
|
||||
# So we can write on the top of it.
|
||||
|
||||
# If we are not using the default FS layout, potentially, we are interested into
|
||||
# performing operations in postDeviceCommands or at early boot on the raw device.
|
||||
# We can still boot through QEMU direct kernel boot feature.
|
||||
${if (cfg.useBootLoader && cfg.useDefaultFilesystems) then ''
|
||||
# Create a writable qcow2 image using the systemImage as a backing
|
||||
# image.
|
||||
|
||||
# CoW prevent size to be attributed to an image.
|
||||
# FIXME: raise this issue to upstream.
|
||||
${qemu}/bin/qemu-img create \
|
||||
${concatStringsSep " \\\n" ([ "-f qcow2" ]
|
||||
++ optional (cfg.useBootLoader && cfg.useDefaultFilesystems) "-F qcow2 -b ${systemImage}/nixos.qcow2"
|
||||
++ optional (!(cfg.useBootLoader && cfg.useDefaultFilesystems)) "-o size=${toString config.virtualisation.diskSize}M"
|
||||
++ [ ''"$NIX_DISK_IMAGE"'' ])}
|
||||
# CoW prevent size to be attributed to an image.
|
||||
# FIXME: raise this issue to upstream.
|
||||
${qemu}/bin/qemu-img create \
|
||||
-f qcow2 \
|
||||
-b ${systemImage}/nixos.qcow2 \
|
||||
-F qcow2 \
|
||||
"$NIX_DISK_IMAGE"
|
||||
'' else if cfg.useDefaultFilesystems then ''
|
||||
createEmptyFilesystemImage "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M"
|
||||
'' else ''
|
||||
# Create an empty disk image without a filesystem.
|
||||
${qemu}/bin/qemu-img create -f qcow2 "$NIX_DISK_IMAGE" "${toString cfg.diskSize}M"
|
||||
''
|
||||
}
|
||||
echo "Virtualisation disk image created."
|
||||
fi
|
||||
|
||||
|
@ -148,6 +145,7 @@ let
|
|||
${pkgs.erofs-utils}/bin/mkfs.erofs \
|
||||
--force-uid=0 \
|
||||
--force-gid=0 \
|
||||
-L ${nixStoreFilesystemLabel} \
|
||||
-U eb176051-bd15-49b7-9e6b-462e0b467019 \
|
||||
-T 0 \
|
||||
--exclude-regex="$(
|
||||
|
@ -218,6 +216,19 @@ let
|
|||
|
||||
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; };
|
||||
|
||||
# Use well-defined and persistent filesystem labels to identify block devices.
|
||||
rootFilesystemLabel = "nixos";
|
||||
espFilesystemLabel = "ESP"; # Hard-coded by make-disk-image.nix
|
||||
nixStoreFilesystemLabel = "nix-store";
|
||||
|
||||
# The root drive is a raw disk which does not necessarily contain a
|
||||
# filesystem or partition table. It thus cannot be identified via the typical
|
||||
# persistent naming schemes (e.g. /dev/disk/by-{label, uuid, partlabel,
|
||||
# partuuid}. Instead, supply a well-defined and persistent serial attribute
|
||||
# via QEMU. Inside the running system, the disk can then be identified via
|
||||
# the /dev/disk/by-id scheme.
|
||||
rootDriveSerialAttr = "root";
|
||||
|
||||
# System image is akin to a complete NixOS install with
|
||||
# a boot partition and root partition.
|
||||
systemImage = import ../../lib/make-disk-image.nix {
|
||||
|
@ -225,6 +236,7 @@ let
|
|||
additionalPaths = [ regInfo ];
|
||||
format = "qcow2";
|
||||
onlyNixStore = false;
|
||||
label = rootFilesystemLabel;
|
||||
partitionTableType = selectPartitionTableLayout { inherit (cfg) useDefaultFilesystems useEFIBoot; };
|
||||
# Bootloader should be installed on the system image only if we are booting through bootloaders.
|
||||
# Though, if a user is not using our default filesystems, it is possible to not have any ESP
|
||||
|
@ -247,6 +259,7 @@ let
|
|||
additionalPaths = [ regInfo ];
|
||||
format = "qcow2";
|
||||
onlyNixStore = true;
|
||||
label = nixStoreFilesystemLabel;
|
||||
partitionTableType = "none";
|
||||
installBootLoader = false;
|
||||
touchEFIVars = false;
|
||||
|
@ -255,28 +268,6 @@ let
|
|||
copyChannel = false;
|
||||
};
|
||||
|
||||
bootConfiguration =
|
||||
if cfg.useDefaultFilesystems
|
||||
then
|
||||
if cfg.useBootLoader
|
||||
then
|
||||
if cfg.useEFIBoot then "efi_bootloading_with_default_fs"
|
||||
else "legacy_bootloading_with_default_fs"
|
||||
else
|
||||
if cfg.directBoot.enable then "direct_boot_with_default_fs"
|
||||
else "custom"
|
||||
else
|
||||
"custom";
|
||||
suggestedRootDevice = {
|
||||
"efi_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}2";
|
||||
"legacy_bootloading_with_default_fs" = "${cfg.bootLoaderDevice}1";
|
||||
"direct_boot_with_default_fs" = cfg.bootLoaderDevice;
|
||||
# This will enforce a NixOS module type checking error
|
||||
# to ask explicitly the user to set a rootDevice.
|
||||
# As it will look like `rootDevice = lib.mkDefault null;` after
|
||||
# all "computations".
|
||||
"custom" = null;
|
||||
}.${bootConfiguration};
|
||||
in
|
||||
|
||||
{
|
||||
|
@ -343,44 +334,39 @@ in
|
|||
virtualisation.bootLoaderDevice =
|
||||
mkOption {
|
||||
type = types.path;
|
||||
default = lookupDriveDeviceName "root" cfg.qemu.drives;
|
||||
defaultText = literalExpression ''lookupDriveDeviceName "root" cfg.qemu.drives'';
|
||||
example = "/dev/vda";
|
||||
default = "/dev/disk/by-id/virtio-${rootDriveSerialAttr}";
|
||||
defaultText = literalExpression ''/dev/disk/by-id/virtio-${rootDriveSerialAttr}'';
|
||||
example = "/dev/disk/by-id/virtio-boot-loader-device";
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
The disk to be used for the boot filesystem.
|
||||
By default, it is the same disk as the root filesystem.
|
||||
The path (inside th VM) to the device to boot from when legacy booting.
|
||||
'';
|
||||
};
|
||||
|
||||
virtualisation.bootPartition =
|
||||
mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = if cfg.useEFIBoot then "${cfg.bootLoaderDevice}1" else null;
|
||||
defaultText = literalExpression ''if cfg.useEFIBoot then "''${cfg.bootLoaderDevice}1" else null'';
|
||||
example = "/dev/vda1";
|
||||
default = if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null;
|
||||
defaultText = literalExpression ''if cfg.useEFIBoot then "/dev/disk/by-label/${espFilesystemLabel}" else null'';
|
||||
example = "/dev/disk/by-label/esp";
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
The boot partition to be used to mount /boot filesystem.
|
||||
In legacy boots, this should be null.
|
||||
By default, in EFI boot, it is the first partition of the boot device.
|
||||
The path (inside the VM) to the device containing the EFI System Partition (ESP).
|
||||
|
||||
If you are *not* booting from a UEFI firmware, this value is, by
|
||||
default, `null`. The ESP is mounted under `/boot`.
|
||||
'';
|
||||
};
|
||||
|
||||
virtualisation.rootDevice =
|
||||
mkOption {
|
||||
type = types.nullOr types.path;
|
||||
example = "/dev/vda2";
|
||||
default = "/dev/disk/by-label/${rootFilesystemLabel}";
|
||||
defaultText = literalExpression ''/dev/disk/by-label/${rootFilesystemLabel}'';
|
||||
example = "/dev/disk/by-label/nixos";
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
The disk or partition to be used for the root filesystem.
|
||||
By default (read the source code for more details):
|
||||
|
||||
- under EFI with a bootloader: 2nd partition of the boot disk
|
||||
- in legacy boot with a bootloader: 1st partition of the boot disk
|
||||
- in direct boot (i.e. without a bootloader): whole disk
|
||||
|
||||
In case you are not using a default boot device or a default filesystem, you have to set explicitly your root device.
|
||||
The path (inside the VM) to the device containing the root filesystem.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -711,7 +697,6 @@ in
|
|||
mkOption {
|
||||
type = types.listOf (types.submodule driveOpts);
|
||||
description = lib.mdDoc "Drives passed to qemu.";
|
||||
apply = addDeviceNames;
|
||||
};
|
||||
|
||||
diskInterface =
|
||||
|
@ -975,29 +960,11 @@ in
|
|||
# FIXME: make a sense of this mess wrt to multiple ESP present in the system, probably use boot.efiSysMountpoint?
|
||||
boot.loader.grub.device = mkVMOverride (if cfg.useEFIBoot then "nodev" else cfg.bootLoaderDevice);
|
||||
boot.loader.grub.gfxmodeBios = with cfg.resolution; "${toString x}x${toString y}";
|
||||
virtualisation.rootDevice = mkDefault suggestedRootDevice;
|
||||
|
||||
boot.initrd.kernelModules = optionals (cfg.useNixStoreImage && !cfg.writableStore) [ "erofs" ];
|
||||
|
||||
boot.loader.supportsInitrdSecrets = mkIf (!cfg.useBootLoader) (mkVMOverride false);
|
||||
|
||||
boot.initrd.extraUtilsCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable)
|
||||
''
|
||||
# We need mke2fs in the initrd.
|
||||
copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
|
||||
'';
|
||||
|
||||
boot.initrd.postDeviceCommands = lib.mkIf (cfg.useDefaultFilesystems && !config.boot.initrd.systemd.enable)
|
||||
''
|
||||
# If the disk image appears to be empty, run mke2fs to
|
||||
# initialise.
|
||||
FSTYPE=$(blkid -o value -s TYPE ${cfg.rootDevice} || true)
|
||||
PARTTYPE=$(blkid -o value -s PTTYPE ${cfg.rootDevice} || true)
|
||||
if test -z "$FSTYPE" -a -z "$PARTTYPE"; then
|
||||
mke2fs -t ext4 ${cfg.rootDevice}
|
||||
fi
|
||||
'';
|
||||
|
||||
boot.initrd.postMountCommands = lib.mkIf (!config.boot.initrd.systemd.enable)
|
||||
''
|
||||
# Mark this as a NixOS machine.
|
||||
|
@ -1112,6 +1079,7 @@ in
|
|||
driveExtraOpts.cache = "writeback";
|
||||
driveExtraOpts.werror = "report";
|
||||
deviceExtraOpts.bootindex = "1";
|
||||
deviceExtraOpts.serial = rootDriveSerialAttr;
|
||||
}])
|
||||
(mkIf cfg.useNixStoreImage [{
|
||||
name = "nix-store";
|
||||
|
@ -1154,7 +1122,6 @@ in
|
|||
} else {
|
||||
device = cfg.rootDevice;
|
||||
fsType = "ext4";
|
||||
autoFormat = true;
|
||||
});
|
||||
"/tmp" = lib.mkIf config.boot.tmp.useTmpfs {
|
||||
device = "tmpfs";
|
||||
|
@ -1164,7 +1131,7 @@ in
|
|||
options = [ "mode=1777" "strictatime" "nosuid" "nodev" "size=${toString config.boot.tmp.tmpfsSize}" ];
|
||||
};
|
||||
"/nix/${if cfg.writableStore then ".ro-store" else "store"}" = lib.mkIf cfg.useNixStoreImage {
|
||||
device = "${lookupDriveDeviceName "nix-store" cfg.qemu.drives}";
|
||||
device = "/dev/disk/by-label/${nixStoreFilesystemLabel}";
|
||||
neededForBoot = true;
|
||||
options = [ "ro" ];
|
||||
};
|
||||
|
@ -1174,7 +1141,7 @@ in
|
|||
neededForBoot = true;
|
||||
};
|
||||
"/boot" = lib.mkIf (cfg.useBootLoader && cfg.bootPartition != null) {
|
||||
device = cfg.bootPartition; # 1 for e.g. `vda1`, as created in `systemImage`
|
||||
device = cfg.bootPartition;
|
||||
fsType = "vfat";
|
||||
noCheck = true; # fsck fails on a r/o filesystem
|
||||
};
|
||||
|
|
|
@ -643,6 +643,7 @@ in {
|
|||
qemu-vm-restrictnetwork = handleTest ./qemu-vm-restrictnetwork.nix {};
|
||||
quorum = handleTest ./quorum.nix {};
|
||||
quake3 = handleTest ./quake3.nix {};
|
||||
qownnotes = handleTest ./qownnotes.nix {};
|
||||
rabbitmq = handleTest ./rabbitmq.nix {};
|
||||
radarr = handleTest ./radarr.nix {};
|
||||
radicale = handleTest ./radicale.nix {};
|
||||
|
|
29
nixos/tests/common/auto-format-root-device.nix
Normal file
29
nixos/tests/common/auto-format-root-device.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
# This is a test utility that automatically formats
|
||||
# `config.virtualisation.rootDevice` in the initrd.
|
||||
# Note that when you are using
|
||||
# `boot.initrd.systemd.enable = true`, you can use
|
||||
# `virtualisation.fileSystems."/".autoFormat = true;`
|
||||
# instead.
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
rootDevice = config.virtualisation.rootDevice;
|
||||
in
|
||||
{
|
||||
|
||||
boot.initrd.extraUtilsCommands = ''
|
||||
# We need mke2fs in the initrd.
|
||||
copy_bin_and_libs ${pkgs.e2fsprogs}/bin/mke2fs
|
||||
'';
|
||||
|
||||
boot.initrd.postDeviceCommands = ''
|
||||
# If the disk image appears to be empty, run mke2fs to
|
||||
# initialise.
|
||||
FSTYPE=$(blkid -o value -s TYPE ${rootDevice} || true)
|
||||
PARTTYPE=$(blkid -o value -s PTTYPE ${rootDevice} || true)
|
||||
if test -z "$FSTYPE" -a -z "$PARTTYPE"; then
|
||||
mke2fs -t ext4 ${rootDevice}
|
||||
fi
|
||||
'';
|
||||
}
|
|
@ -21,13 +21,17 @@ import ./make-test-python.nix {
|
|||
boot.initrd.systemd.enable = systemdStage1;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
testScript = { nodes, ...}:
|
||||
let
|
||||
rootDevice = nodes.machine.virtualisation.rootDevice;
|
||||
in
|
||||
''
|
||||
machine.wait_for_unit("default.target")
|
||||
|
||||
with subtest("root fs is fsckd"):
|
||||
machine.succeed("journalctl -b | grep '${if systemdStage1
|
||||
then "fsck.*vda.*clean"
|
||||
else "fsck.ext4.*/dev/vda"}'")
|
||||
then "fsck.*${builtins.baseNameOf rootDevice}.*clean"
|
||||
else "fsck.ext4.*${rootDevice}"}'")
|
||||
|
||||
with subtest("mnt fs is fsckd"):
|
||||
machine.succeed("journalctl -b | grep 'fsck.*vdb.*clean'")
|
||||
|
|
|
@ -50,6 +50,7 @@ in makeTest {
|
|||
imports = [
|
||||
../modules/profiles/installation-device.nix
|
||||
../modules/profiles/base.nix
|
||||
./common/auto-format-root-device.nix
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
|
|
|
@ -14,6 +14,8 @@ in {
|
|||
name = "initrd-luks-empty-passphrase";
|
||||
|
||||
nodes.machine = { pkgs, ... }: {
|
||||
imports = lib.optionals (!systemdStage1) [ ./common/auto-format-root-device.nix ];
|
||||
|
||||
virtualisation = {
|
||||
emptyDiskImages = [ 512 ];
|
||||
useBootLoader = true;
|
||||
|
@ -23,6 +25,7 @@ in {
|
|||
# the new root device is /dev/vdb
|
||||
# an empty 512MiB drive, containing no Nix store.
|
||||
mountHostNixStore = true;
|
||||
fileSystems."/".autoFormat = lib.mkIf systemdStage1 true;
|
||||
};
|
||||
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
|
|
@ -286,7 +286,7 @@ let
|
|||
makeTest {
|
||||
inherit enableOCR;
|
||||
name = "installer-" + name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
meta = {
|
||||
# put global maintainers here, individuals go into makeInstallerTest fkt call
|
||||
maintainers = (meta.maintainers or []);
|
||||
};
|
||||
|
@ -298,8 +298,13 @@ let
|
|||
../modules/profiles/installation-device.nix
|
||||
../modules/profiles/base.nix
|
||||
extraInstallerConfig
|
||||
./common/auto-format-root-device.nix
|
||||
];
|
||||
|
||||
# In systemdStage1, also automatically format the device backing the
|
||||
# root filesystem.
|
||||
virtualisation.fileSystems."/".autoFormat = systemdStage1;
|
||||
|
||||
# builds stuff in the VM, needs more juice
|
||||
virtualisation.diskSize = 8 * 1024;
|
||||
virtualisation.cores = 8;
|
||||
|
@ -335,9 +340,6 @@ let
|
|||
desktop-file-utils
|
||||
docbook5
|
||||
docbook_xsl_ns
|
||||
(docbook-xsl-ns.override {
|
||||
withManOptDedupPatch = true;
|
||||
})
|
||||
kbd.dev
|
||||
kmod.dev
|
||||
libarchive.dev
|
||||
|
|
|
@ -8,10 +8,6 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|||
node1 = { ... }: {
|
||||
virtualisation.vlans = [ ];
|
||||
virtualisation.memorySize = 4 * 1024;
|
||||
virtualisation.useBootLoader = true;
|
||||
virtualisation.useEFIBoot = true;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
node2 = { modulesPath, ... }: {
|
||||
|
@ -19,6 +15,8 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|||
environment.systemPackages = [ pkgs.hello ];
|
||||
imports = [
|
||||
"${modulesPath}/installer/netboot/netboot-minimal.nix"
|
||||
"${modulesPath}/testing/test-instrumentation.nix"
|
||||
"${modulesPath}/profiles/qemu-guest.nix"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
@ -39,7 +37,10 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
|||
# Kexec node1 to the toplevel of node2 via the kexec-boot script
|
||||
node1.succeed('touch /run/foo')
|
||||
node1.fail('hello')
|
||||
node1.execute('${nodes.node2.config.system.build.kexecTree}/kexec-boot', check_return=False)
|
||||
node1.execute('${nodes.node2.system.build.kexecTree}/kexec-boot', check_output=False)
|
||||
node1.connected = False
|
||||
node1.connect()
|
||||
node1.wait_for_unit("multi-user.target")
|
||||
node1.succeed('! test -e /run/foo')
|
||||
node1.succeed('hello')
|
||||
node1.succeed('[ "$(hostname)" = "node2" ]')
|
||||
|
|
|
@ -2,6 +2,8 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
|||
name = "luks";
|
||||
|
||||
nodes.machine = { pkgs, ... }: {
|
||||
imports = [ ./common/auto-format-root-device.nix ];
|
||||
|
||||
# Use systemd-boot
|
||||
virtualisation = {
|
||||
emptyDiskImages = [ 512 512 ];
|
||||
|
|
|
@ -26,4 +26,4 @@ foldl
|
|||
};
|
||||
})
|
||||
{ }
|
||||
[ 25 26 ]
|
||||
[ 25 26 27 ]
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import ../make-test-python.nix ({ pkgs, ...}: let
|
||||
args@{ nextcloudVersion ? 27, ... }:
|
||||
(import ../make-test-python.nix ({ pkgs, ...}: let
|
||||
username = "custom_admin_username";
|
||||
# This will be used both for redis and postgresql
|
||||
pass = "hunter2";
|
||||
|
@ -9,7 +10,7 @@ import ../make-test-python.nix ({ pkgs, ...}: let
|
|||
in {
|
||||
name = "nextcloud-with-declarative-redis";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ eqyiel ];
|
||||
maintainers = [ eqyiel ma27 ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
|
@ -22,6 +23,7 @@ in {
|
|||
services.nextcloud = {
|
||||
enable = true;
|
||||
hostName = "nextcloud";
|
||||
package = pkgs.${"nextcloud" + (toString nextcloudVersion)};
|
||||
caching = {
|
||||
apcu = false;
|
||||
redis = true;
|
||||
|
@ -40,20 +42,18 @@ in {
|
|||
secretFile = "/etc/nextcloud-secrets.json";
|
||||
|
||||
extraOptions.redis = {
|
||||
host = "/run/redis/redis.sock";
|
||||
port = 0;
|
||||
dbindex = 0;
|
||||
timeout = 1.5;
|
||||
# password handled via secretfile below
|
||||
};
|
||||
extraOptions.memcache = {
|
||||
local = "\OC\Memcache\Redis";
|
||||
locking = "\OC\Memcache\Redis";
|
||||
};
|
||||
configureRedis = true;
|
||||
};
|
||||
|
||||
services.redis.servers."nextcloud".enable = true;
|
||||
services.redis.servers."nextcloud".port = 6379;
|
||||
services.redis.servers."nextcloud" = {
|
||||
enable = true;
|
||||
port = 6379;
|
||||
requirePass = "secret";
|
||||
};
|
||||
|
||||
systemd.services.nextcloud-setup= {
|
||||
requires = ["postgresql.service"];
|
||||
|
@ -74,7 +74,7 @@ in {
|
|||
|
||||
# This file is meant to contain secret options which should
|
||||
# not go into the nix store. Here it is just used to set the
|
||||
# databyse type to postgres.
|
||||
# redis password.
|
||||
environment.etc."nextcloud-secrets.json".text = ''
|
||||
{
|
||||
"redis": {
|
||||
|
@ -117,6 +117,6 @@ in {
|
|||
)
|
||||
|
||||
# redis cache should not be empty
|
||||
nextcloud.fail("redis-cli KEYS * | grep -q 'empty array'")
|
||||
nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
|
||||
'';
|
||||
})
|
||||
})) args
|
||||
|
|
|
@ -89,5 +89,8 @@ in {
|
|||
"${withRcloneEnv} ${diffSharedFile}"
|
||||
)
|
||||
nextcloud.wait_until_succeeds("journalctl -u nextcloud-notify_push | grep -q \"Sending ping to ${adminuser}\"")
|
||||
|
||||
# redis cache should not be empty
|
||||
nextcloud.fail('test "[]" = "$(redis-cli --json KEYS "*")"')
|
||||
'';
|
||||
})) args
|
||||
|
|
70
nixos/tests/qownnotes.nix
Normal file
70
nixos/tests/qownnotes.nix
Normal file
|
@ -0,0 +1,70 @@
|
|||
import ./make-test-python.nix ({ lib, pkgs, ...} :
|
||||
|
||||
{
|
||||
name = "qownnotes";
|
||||
meta.maintainers = [ lib.maintainers.pbek ];
|
||||
|
||||
nodes.machine = { ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
test-support.displayManager.auto.user = "alice";
|
||||
environment.systemPackages = [
|
||||
pkgs.qownnotes
|
||||
pkgs.xdotool
|
||||
];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript = { nodes, ... }: let
|
||||
aliceDo = cmd: ''machine.succeed("su - alice -c '${cmd}' >&2 &");'';
|
||||
in ''
|
||||
with subtest("Ensure X starts"):
|
||||
start_all()
|
||||
machine.wait_for_x()
|
||||
|
||||
with subtest("Check QOwnNotes version on CLI"):
|
||||
${aliceDo "qownnotes --version"}
|
||||
|
||||
machine.wait_for_console_text("QOwnNotes ${pkgs.qownnotes.version}")
|
||||
|
||||
with subtest("Ensure QOwnNotes starts"):
|
||||
# start QOwnNotes window
|
||||
${aliceDo "qownnotes"}
|
||||
|
||||
machine.wait_for_text("Welcome to QOwnNotes")
|
||||
machine.screenshot("QOwnNotes-Welcome")
|
||||
|
||||
with subtest("Finish first-run wizard"):
|
||||
# The wizard should show up now
|
||||
machine.wait_for_text("Note folder")
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_console_text("Note path '/home/alice/Notes' was now created.")
|
||||
machine.wait_for_text("Panel layout")
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_text("Nextcloud")
|
||||
machine.send_key("ret")
|
||||
machine.wait_for_text("App metric")
|
||||
machine.send_key("ret")
|
||||
|
||||
# The main window should now show up
|
||||
machine.wait_for_text("QOwnNotes - ${pkgs.qownnotes.version}")
|
||||
machine.wait_for_open_port(22222)
|
||||
machine.wait_for_console_text("QOwnNotes server listening on port 22222")
|
||||
|
||||
machine.screenshot("QOwnNotes-DemoNote")
|
||||
|
||||
with subtest("Create a new note"):
|
||||
machine.send_key("ctrl-n")
|
||||
machine.sleep(1)
|
||||
machine.send_chars("This is a NixOS test!\n")
|
||||
machine.wait_for_text("This is a NixOS test!")
|
||||
|
||||
machine.screenshot("QOwnNotes-NewNote")
|
||||
'';
|
||||
})
|
|
@ -15,7 +15,7 @@ import ./make-test-python.nix ({ ... }:
|
|||
fsType = "btrfs";
|
||||
};
|
||||
};
|
||||
services.snapper.configs.home.subvolume = "/home";
|
||||
services.snapper.configs.home.SUBVOLUME = "/home";
|
||||
services.snapper.filters = "/nix";
|
||||
};
|
||||
|
||||
|
|
|
@ -258,7 +258,8 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
# See: [Firmware file size bug] in systemd/default.nix
|
||||
# Some UEFI firmwares fail on large reads. Now that systemd-boot loads initrd
|
||||
# itself, systems with such firmware won't boot without this fix
|
||||
uefiLargeFileWorkaround = makeTest {
|
||||
name = "uefi-large-file-workaround";
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
|||
};
|
||||
};
|
||||
virtualisation.rootDevice = "/dev/mapper/cryptroot";
|
||||
virtualisation.fileSystems."/".autoFormat = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -34,6 +34,7 @@ in {
|
|||
};
|
||||
};
|
||||
virtualisation.rootDevice = "/dev/mapper/cryptroot";
|
||||
virtualisation.fileSystems."/".autoFormat = true;
|
||||
boot.initrd.secrets."/etc/cryptroot.key" = keyfile;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -25,6 +25,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
|||
cryptroot2.device = "/dev/vdc";
|
||||
};
|
||||
virtualisation.rootDevice = "/dev/mapper/cryptroot";
|
||||
virtualisation.fileSystems."/".autoFormat = true;
|
||||
# test mounting device unlocked in initrd after switching root
|
||||
virtualisation.fileSystems."/cryptroot2".device = "/dev/mapper/cryptroot2";
|
||||
};
|
||||
|
|
|
@ -28,6 +28,7 @@ import ./make-test-python.nix ({ lib, pkgs, ... }: {
|
|||
};
|
||||
};
|
||||
virtualisation.rootDevice = "/dev/mapper/cryptroot";
|
||||
virtualisation.fileSystems."/".autoFormat = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@ import ./make-test-python.nix ({ lib, ... }: {
|
|||
|
||||
specialisation.encrypted-root.configuration = {
|
||||
virtualisation.rootDevice = "/dev/mapper/root";
|
||||
virtualisation.fileSystems."/".autoFormat = true;
|
||||
boot.initrd.luks.devices = lib.mkVMOverride {
|
||||
root.device = "/dev/vdb";
|
||||
};
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "eartag";
|
||||
version = "0.4.0";
|
||||
version = "0.4.1";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
|
@ -26,7 +26,7 @@ python3Packages.buildPythonApplication rec {
|
|||
owner = "knuxify";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-4Kk/+iQNRqba5W/AdPlZ17Siwyy+WQuRYCb7M68S71I=";
|
||||
sha256 = "sha256-awH+SA0xef1dMDqfLOg5htYH5ywWzK2xbWWSaan0aRg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "osdlyrics";
|
||||
version = "0.5.13";
|
||||
version = "0.5.14";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "osdlyrics";
|
||||
repo = "osdlyrics";
|
||||
rev = version;
|
||||
sha256 = "sha256-E4pVXopqQYJW+a5nUf9dMabxJ9nYPu3C2ti8LlY470c=";
|
||||
sha256 = "sha256-NVUQLmddXnpryt1AuHSwgPnWkgxWMBNJac09TJ12Yzo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "Subtitlr";
|
||||
version = "0.1.1";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yoanbernabeu";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-1EjOpWVTp7CqwqSJAhqicvY2crzw1n7Id+TIwYrSQAs=";
|
||||
hash = "sha256-PbeQzNkFj4eSg/zhk8bXij36DvJ9+g22kF5TqdX5O04=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-ZgJCk9vbbQ0dcYSdKm0Cbw2AmwjpMvGb5zJkgbD+xig=";
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, alsa-lib, libxmp, AudioUnit, CoreAudio }:
|
||||
{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, alsa-lib, libxmp, AudioUnit, CoreAudio }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "xmp";
|
||||
version = "4.1.0";
|
||||
version = "4.2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${pname}/${pname}-${version}.tar.gz";
|
||||
sha256 = "17i8fc7x7yn3z1x963xp9iv108gxfakxmdgmpv3mlm438w3n3g8x";
|
||||
src = fetchFromGitHub {
|
||||
owner = "libxmp";
|
||||
repo = "xmp-cli";
|
||||
rev = "${pname}-${version}";
|
||||
hash = "sha256-037k1rFjGR6XFtr08bzs4zVz+GyUGuuutuWFlNEuATA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
nativeBuildInputs = [ autoreconfHook pkg-config ];
|
||||
buildInputs = [ libxmp ]
|
||||
++ lib.optionals stdenv.isLinux [ alsa-lib ]
|
||||
++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio ];
|
||||
|
|
|
@ -85,7 +85,8 @@ let
|
|||
hash = "sha256-yfVzZV8G4AUDM8+yS9finzobpOb1PUEPgBWFhEY4nFQ=";
|
||||
};
|
||||
});
|
||||
in stdenv.mkDerivation rec {
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "zrythm";
|
||||
version = "1.0.0-beta.4.9.1";
|
||||
|
||||
|
@ -172,6 +173,8 @@ in stdenv.mkDerivation rec {
|
|||
# Zrythm uses meson to build, but requires cmake for dependency detection.
|
||||
dontUseCmakeConfigure = true;
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
mesonFlags = [
|
||||
"-Db_lto=false"
|
||||
"-Dcarla=enabled"
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "snarkos";
|
||||
version = "2.0.2";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "AleoHQ";
|
||||
repo = "snarkOS";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-sS8emB+uhWuoq5ISuT8FgSSzX7/WDoOY8hHzPE/EX3o=";
|
||||
sha256 = "sha256-ewWsiDyPaQ2GOMA31b1bc+wtRbkoWXyPzDhy0Qq2vKI=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-XS6dw6BIoJdigEso/J1dUaAp7AIAda3HrKnCoBynRv8=";
|
||||
cargoHash = "sha256-HD+oVwFMUK00GQbJCrvLC+VWJ9p1L3j2f8rpQUIDKf8=";
|
||||
|
||||
# buildAndTestSubdir = "cli";
|
||||
|
||||
|
|
|
@ -1,38 +1,75 @@
|
|||
{ lib, stdenv, fetchFromGitea, cmake, boost, miniupnpc, openssl, unbound
|
||||
, readline, libsodium, rapidjson
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, boost
|
||||
, libsodium
|
||||
, openssl
|
||||
, rapidjson
|
||||
, readline
|
||||
, unbound
|
||||
, zeromq
|
||||
, darwin
|
||||
}:
|
||||
|
||||
let
|
||||
# submodules
|
||||
miniupnp = fetchFromGitHub {
|
||||
owner = "miniupnp";
|
||||
repo = "miniupnp";
|
||||
rev = "miniupnpc_2_2_1";
|
||||
hash = "sha256-opd0hcZV+pjC3Mae3Yf6AR5fj6xVwGm9LuU5zEPxBKc=";
|
||||
};
|
||||
supercop = fetchFromGitHub {
|
||||
owner = "monero-project";
|
||||
repo = "supercop";
|
||||
rev = "633500ad8c8759995049ccd022107d1fa8a1bbc9";
|
||||
hash = "sha256-26UmESotSWnQ21VbAYEappLpkEMyl0jiuCaezRYd/sE=";
|
||||
};
|
||||
randomwow = fetchFromGitHub {
|
||||
owner = "wownero-project";
|
||||
repo = "RandomWOW";
|
||||
rev = "607bad48f3687c2490d90f8c55efa2dcd7cbc195";
|
||||
hash = "sha256-CJv96TbPv1k/C7MQWEntE6khIRX1iIEiF9wEdsQGiFQ=";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "wownero";
|
||||
version = "0.8.0.1";
|
||||
randomwowVersion = "1.1.7";
|
||||
version = "0.11.0.1";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "git.wownero.com";
|
||||
owner = "wownero";
|
||||
src = fetchFromGitHub {
|
||||
owner = "wownero-project";
|
||||
repo = "wownero";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-+cUdousEiZMNwqhTvjoqw/k21x3dg7Lhb/5KyNUGrjQ=";
|
||||
fetchSubmodules = false;
|
||||
hash = "sha256-zmGsSbPpVwL0AhCQkdMKORruM5kYrrLe/BYfMphph8c=";
|
||||
};
|
||||
|
||||
randomwow = fetchFromGitea {
|
||||
domain = "git.wownero.com";
|
||||
owner = "wownero";
|
||||
repo = "RandomWOW";
|
||||
rev = randomwowVersion;
|
||||
sha256 = "sha256-JzyRlHwM8rmJ5OaKHz+6vHGfpSz+X4zkFAKn4Jmo+EE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost miniupnpc openssl unbound rapidjson readline libsodium
|
||||
boost
|
||||
libsodium
|
||||
openssl
|
||||
rapidjson
|
||||
readline
|
||||
unbound
|
||||
zeromq
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
darwin.apple_sdk.frameworks.IOKit
|
||||
];
|
||||
|
||||
postUnpack = ''
|
||||
rm -r $sourceRoot/external/RandomWOW
|
||||
ln -s ${randomwow} $sourceRoot/external/RandomWOW
|
||||
rm -r $sourceRoot/external/miniupnp
|
||||
ln -s ${miniupnp} $sourceRoot/external/miniupnp
|
||||
|
||||
rm -r $sourceRoot/external/randomwow
|
||||
ln -s ${randomwow} $sourceRoot/external/randomwow
|
||||
|
||||
rm -r $sourceRoot/external/supercop
|
||||
ln -s ${supercop} $sourceRoot/external/supercop
|
||||
'';
|
||||
|
||||
cmakeFlags = [
|
||||
|
@ -52,9 +89,9 @@ stdenv.mkDerivation rec {
|
|||
signatures using different participants for the same tx outputs on
|
||||
opposing forks.
|
||||
'';
|
||||
homepage = "https://wownero.org/";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
homepage = "https://wownero.org/";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,19 +1,20 @@
|
|||
{ stdenv, lib, fetchFromGitHub, linux-pam }:
|
||||
{ stdenv, lib, fetchFromGitHub, git, linux-pam, libxcb }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ly";
|
||||
version = "0.2.1";
|
||||
version = "0.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cylgom";
|
||||
owner = "fairyglade";
|
||||
repo = "ly";
|
||||
rev = version;
|
||||
sha256 = "16gjcrd4a6i4x8q8iwlgdildm7cpdsja8z22pf2izdm6rwfki97d";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-78XD6DK9aQi8hITWJWnFZ3U9zWTcuw3vtRiU3Lhu7O4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildInputs = [ linux-pam ];
|
||||
makeFlags = [ "FLAGS=-Wno-error" ];
|
||||
hardeningDisable = [ "all" ];
|
||||
nativeBuildInputs = [ git ];
|
||||
buildInputs = [ libxcb linux-pam ];
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
|
@ -23,7 +24,8 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "TUI display manager";
|
||||
license = licenses.wtfpl;
|
||||
homepage = "https://github.com/cylgom/ly";
|
||||
homepage = "https://github.com/fairyglade/ly";
|
||||
maintainers = [ maintainers.vidister ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
35
pkgs/applications/editors/codux/default.nix
Normal file
35
pkgs/applications/editors/codux/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, appimageTools
|
||||
, fetchurl
|
||||
}:
|
||||
|
||||
let
|
||||
pname = "codux";
|
||||
version = "15.4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/wixplosives/codux-versions/releases/download/${version}/Codux-${version}.x86_64.AppImage";
|
||||
sha256 = "sha256-6XLKXw+e/310mCQxM/X/kzok562vGjEhmF1eLfakB4Q=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
||||
appimageTools.wrapType2 rec {
|
||||
inherit pname version src;
|
||||
|
||||
extraInstallCommands = ''
|
||||
mv $out/bin/${pname}-${version} $out/bin/${pname}
|
||||
install -m 444 -D ${appimageContents}/${pname}.desktop -t $out/share/applications
|
||||
cp -r ${appimageContents}/usr/share/icons $out/share
|
||||
substituteInPlace $out/share/applications/${pname}.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A visual IDE for React";
|
||||
homepage = "https://www.codux.com";
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ dit7ya ];
|
||||
};
|
||||
}
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
trivialBuild rec {
|
||||
pname = "ebuild-mode";
|
||||
version = "1.63";
|
||||
version = "1.64";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dev.gentoo.org/~ulm/emacs/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-Ar11zz0IVMu0g9+PN9dXvj8yeKnUGi8M+CTJfGP3bd4=";
|
||||
sha256 = "sha256-ewn8pFuuXrNzkh7UKWa71Tc3hGM11iqjU9AVNOKSHKA=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -18,17 +18,17 @@
|
|||
, fmt_8
|
||||
, nlohmann_json
|
||||
, yara
|
||||
, rsync
|
||||
}:
|
||||
|
||||
let
|
||||
# when bumping the version, check if imhex has gotten support for the capstone version in nixpkgs
|
||||
version = "1.27.1";
|
||||
version = "1.29.0";
|
||||
|
||||
patterns_src = fetchFromGitHub {
|
||||
owner = "WerWolv";
|
||||
repo = "ImHex-Patterns";
|
||||
rev = "ImHex-v${version}";
|
||||
hash = "sha256-7Aaj+W+zXjHO8A2gmWtp5Pa/i5Uk8lXzX2WHjPIPRZI=";
|
||||
hash = "sha256-lTTXu9RxoD582lXWI789gNcWvJmxmBIlBRIiyY3DseM=";
|
||||
};
|
||||
|
||||
in
|
||||
|
@ -41,10 +41,10 @@ stdenv.mkDerivation rec {
|
|||
owner = "WerWolv";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-meOx8SkufXbXuBIVefr/mO9fsUi3zeQmqmf86+aDMaI=";
|
||||
hash = "sha256-dghyv7rpqGs5dt51ziAaeb/Ba7rGEcJ54AYKRJ2xXuk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake llvm python3 perl pkg-config ];
|
||||
nativeBuildInputs = [ cmake llvm python3 perl pkg-config rsync ];
|
||||
|
||||
buildInputs = [
|
||||
capstone
|
||||
|
@ -63,8 +63,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
cmakeFlags = [
|
||||
"-DIMHEX_OFFLINE_BUILD=ON"
|
||||
# see comment at the top about our version of capstone
|
||||
"-DUSE_SYSTEM_CAPSTONE=OFF"
|
||||
"-DUSE_SYSTEM_CAPSTONE=ON"
|
||||
"-DUSE_SYSTEM_CURL=ON"
|
||||
"-DUSE_SYSTEM_FMT=ON"
|
||||
"-DUSE_SYSTEM_LLVM=ON"
|
||||
|
@ -72,11 +71,10 @@ stdenv.mkDerivation rec {
|
|||
"-DUSE_SYSTEM_YARA=ON"
|
||||
];
|
||||
|
||||
# rsync is used here so we can not copy the _schema.json files
|
||||
postInstall = ''
|
||||
mkdir -p $out/share/imhex
|
||||
for d in ${patterns_src}/{constants,encodings,includes,magic,patterns}; do
|
||||
cp -r $d $out/share/imhex/
|
||||
done
|
||||
rsync -av --exclude="*_schema.json" ${patterns_src}/{constants,encodings,includes,magic,patterns} $out/share/imhex
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -9,20 +9,20 @@
|
|||
, gtk3
|
||||
, gtksourceview
|
||||
, gtkspell3
|
||||
, webkitgtk
|
||||
, webkitgtk_4_1
|
||||
, pandoc
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "marker";
|
||||
version = "2020.04.04.2";
|
||||
version = "2023.05.02";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fabiocolacio";
|
||||
repo = "Marker";
|
||||
rev = version;
|
||||
fetchSubmodules = true;
|
||||
sha256 = "sha256-wLR1FQqlLA02ed/JoAcxRHhIVua1FibAee1PC2zOPOM=";
|
||||
sha256 = "sha256-HhDhigQ6Aqo8R57Yrf1i69sM0feABB9El5R5OpzOyB0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -37,14 +37,18 @@ stdenv.mkDerivation rec {
|
|||
gtk3
|
||||
gtksourceview
|
||||
gtkspell3
|
||||
webkitgtk
|
||||
webkitgtk_4_1
|
||||
pandoc
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
meson rewrite kwargs set project / version '${version}'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://fabiocolacio.github.io/Marker/";
|
||||
description = "Markdown editor for the Linux desktop";
|
||||
maintainers = with maintainers; [ trepetti ];
|
||||
description = "Markdown editor for the Linux desktop made with GTK3";
|
||||
maintainers = with maintainers; [ trepetti aleksana ];
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
changelog = "https://github.com/fabiocolacio/Marker/releases/tag/${version}";
|
||||
|
|
|
@ -11,9 +11,9 @@ in
|
|||
} {};
|
||||
|
||||
sublime4-dev = common {
|
||||
buildVersion = "4149";
|
||||
buildVersion = "4150";
|
||||
dev = true;
|
||||
x64sha256 = "heP37UBUNula8RV82tSXwKAYwi2DNubHASD2FcLRkjs=";
|
||||
aarch64sha256 = "u1KUI+st/+T9tNVh+u9+5ZSQIj26YyXGtQRrjB+paOQ=";
|
||||
x64sha256 = "6Kafp4MxmCn978SqjSY8qAT6Yc/7WC8U9jVkIUUmUHs=";
|
||||
aarch64sha256 = "dPxe2RLoMJS+rVtcVZZpMPQ5gfTEnW/INcnzYYeFEIQ=";
|
||||
} {};
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -27,23 +27,23 @@
|
|||
};
|
||||
arduino = buildGrammar {
|
||||
language = "arduino";
|
||||
version = "0.0.0+rev=833b53d";
|
||||
version = "0.0.0+rev=0804efc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-arduino";
|
||||
rev = "833b53df97143bc46e014608dee9f64f78d7473c";
|
||||
hash = "sha256-M3mAZ5CORunUEIxy4+yQ8qTSbpmEgEmHgTB98niTbXo=";
|
||||
rev = "0804efc41c42cf5b0a6ea8d500ea6f4e49a15ef6";
|
||||
hash = "sha256-oTraIxeZLLbnxatXEfxjK6pw17aplxhyUJpzld5m3cs=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
|
||||
};
|
||||
astro = buildGrammar {
|
||||
language = "astro";
|
||||
version = "0.0.0+rev=d111ae5";
|
||||
version = "0.0.0+rev=a4535d1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "virchau13";
|
||||
repo = "tree-sitter-astro";
|
||||
rev = "d111ae5ebbd30ffeaf58a3bebd2eb99682c0f6a3";
|
||||
hash = "sha256-hJqAyzKoT0uGfErhYEC5s4zEJDdlDc80HpgLhTnjBSg=";
|
||||
rev = "a4535d1530558866a543c1660c90c57fbf2fd709";
|
||||
hash = "sha256-ZWpxKAyja6bW2kNxalHOL2E+WFbEKc40dMGrB1Ihs6I=";
|
||||
};
|
||||
meta.homepage = "https://github.com/virchau13/tree-sitter-astro";
|
||||
};
|
||||
|
@ -126,23 +126,23 @@
|
|||
};
|
||||
c = buildGrammar {
|
||||
language = "c";
|
||||
version = "0.0.0+rev=0906255";
|
||||
version = "0.0.0+rev=f1b2a0b";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c";
|
||||
rev = "0906255f8de1d319b8ec682ac8c43e7d2524b4fa";
|
||||
hash = "sha256-p6k04hWIWawwd99+5OMohr9G2X1HLYJ0VClVsVADalE=";
|
||||
rev = "f1b2a0b2102ff001a4ed9a26cd9a9405d09c590c";
|
||||
hash = "sha256-35aKCSulI4Fi5Y8DMjCUSnUMvR6JdnVAF7dirVAWptM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||
};
|
||||
c_sharp = buildGrammar {
|
||||
language = "c_sharp";
|
||||
version = "0.0.0+rev=aaafc3d";
|
||||
version = "0.0.0+rev=03b9b62";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c-sharp";
|
||||
rev = "aaafc3d75f058ca5fe639b7ed5829964a3ca4575";
|
||||
hash = "sha256-rKP6KfNCkytcAXHVv3EtOQEuhY+dxawFEFQr7kjuA6I=";
|
||||
rev = "03b9b6272ef3df674f9c54507cc042412f257eed";
|
||||
hash = "sha256-LS+NJ+oQDQ78lu7ozCh/E5dQuDprtb3e73MrJutX8P0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
|
||||
};
|
||||
|
@ -181,34 +181,34 @@
|
|||
};
|
||||
cmake = buildGrammar {
|
||||
language = "cmake";
|
||||
version = "0.0.0+rev=399605a";
|
||||
version = "0.0.0+rev=24ed4fd";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uyha";
|
||||
repo = "tree-sitter-cmake";
|
||||
rev = "399605a02bcd5daa309ce63a6459c600dce3473f";
|
||||
hash = "sha256-7pzKyfR9RmfgzuX9/elUesmsdbLlwgrfiRP73YQu+gM=";
|
||||
rev = "24ed4fd565cd95fcba4f42e995cf186cab180ccb";
|
||||
hash = "sha256-0ixZL+Tpr8YLUvdGGBveI127DIOwkfqsq2D3xKLExck=";
|
||||
};
|
||||
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
|
||||
};
|
||||
comment = buildGrammar {
|
||||
language = "comment";
|
||||
version = "0.0.0+rev=94c99a6";
|
||||
version = "0.0.0+rev=fd1e102";
|
||||
src = fetchFromGitHub {
|
||||
owner = "stsewd";
|
||||
repo = "tree-sitter-comment";
|
||||
rev = "94c99a66bb5051d8321b5900aee92b76450c50ce";
|
||||
hash = "sha256-ma1LIiNuccXNftijehRzABVv7R3Jw9Wcjz0X2vGqaIc=";
|
||||
rev = "fd1e1026d1a33b996db91a01dafeeff0a41d536c";
|
||||
hash = "sha256-IsGvDejgdkgt4zu8VSy6i/tZNN9eyye3ewe901CvKw8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/stsewd/tree-sitter-comment";
|
||||
};
|
||||
commonlisp = buildGrammar {
|
||||
language = "commonlisp";
|
||||
version = "0.0.0+rev=7a61fd7";
|
||||
version = "0.0.0+rev=338db38";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-commonlisp";
|
||||
rev = "7a61fd78c1673da5c38b7bef56794f0ac6250e91";
|
||||
hash = "sha256-Rqv2ZcxtOBvoii+wO7LfwOztHmE8S/+Ia5SaKb8um7g=";
|
||||
rev = "338db38330f0d25cba8e2c6428240ebc5e020264";
|
||||
hash = "sha256-mTBxnj/kqrHx8q7cAKTjfD0FOyVKjDub01Y50DXXjg0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-commonlisp";
|
||||
};
|
||||
|
@ -225,12 +225,12 @@
|
|||
};
|
||||
corn = buildGrammar {
|
||||
language = "corn";
|
||||
version = "0.0.0+rev=6a6b0f4";
|
||||
version = "0.0.0+rev=604d73c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "jakestanger";
|
||||
repo = "tree-sitter-corn";
|
||||
rev = "6a6b0f4b1d564392c1b6a8ebcc27d94185f72ede";
|
||||
hash = "sha256-7sBdw8AsRvWo8iSALt9slO0HLVoLTPrU7Tt46mMPLoc=";
|
||||
rev = "604d73c38d4c28ca68e9e441ffd405d68cb63051";
|
||||
hash = "sha256-ewpLp+se6XTY8aRoz247YlouS1p/kaS7CqVFu412C+Q=";
|
||||
};
|
||||
meta.homepage = "https://github.com/jakestanger/tree-sitter-corn";
|
||||
};
|
||||
|
@ -247,12 +247,12 @@
|
|||
};
|
||||
cpp = buildGrammar {
|
||||
language = "cpp";
|
||||
version = "0.0.0+rev=4c917d5";
|
||||
version = "0.0.0+rev=d63acf7";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-cpp";
|
||||
rev = "4c917d560572dc2b3704b041715b2729fa199963";
|
||||
hash = "sha256-pBlhhUV1lN7wIP1E0vfzAcGGlGDnByp7pdKJzvn4/ts=";
|
||||
rev = "d63acf7c2ae9599a2f01c8e8beb7d333e54956e4";
|
||||
hash = "sha256-pZ0V7WqlLQbqHP4QAKB/hcUmweKkFcopish5lm6JOiM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
||||
};
|
||||
|
@ -269,12 +269,12 @@
|
|||
};
|
||||
cuda = buildGrammar {
|
||||
language = "cuda";
|
||||
version = "0.0.0+rev=32efc63";
|
||||
version = "0.0.0+rev=90446ed";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-cuda";
|
||||
rev = "32efc637d841d3adcebb182e4420bc1dd48dab9f";
|
||||
hash = "sha256-iD/cfP2pkHAZ207VEcronrbaBgHF13lyQjpkGOrmyEY=";
|
||||
rev = "90446edd3e2e1eed0cb77755a083d9ed91ddea63";
|
||||
hash = "sha256-jYD77AomQ4Wkhd6ZjcyCduFRbe2BhneuYQ9Dt/u73GI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||
};
|
||||
|
@ -303,12 +303,12 @@
|
|||
};
|
||||
dart = buildGrammar {
|
||||
language = "dart";
|
||||
version = "0.0.0+rev=9211496";
|
||||
version = "0.0.0+rev=e398400";
|
||||
src = fetchFromGitHub {
|
||||
owner = "UserNobody14";
|
||||
repo = "tree-sitter-dart";
|
||||
rev = "921149688d70f163d650f26c23f1bc42fac5d303";
|
||||
hash = "sha256-XO7nh8JcLJanuelDcLS28E/55CzPs2F+mL60NMdbDVs=";
|
||||
rev = "e398400a0b785af3cf571f5a57eccab242f0cdf9";
|
||||
hash = "sha256-+DFqJFR5raOnNG1oyGfO+tzpBXYBk0BBc8GbEkpEBhU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/UserNobody14/tree-sitter-dart";
|
||||
};
|
||||
|
@ -447,12 +447,12 @@
|
|||
};
|
||||
erlang = buildGrammar {
|
||||
language = "erlang";
|
||||
version = "0.0.0+rev=c431b0b";
|
||||
version = "0.0.0+rev=5dba13d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "WhatsApp";
|
||||
repo = "tree-sitter-erlang";
|
||||
rev = "c431b0b2d9228ed0869f7a6bb88fc9d2796d44b1";
|
||||
hash = "sha256-dawA0Iem7naBhEvrrvQwk+wNBDPflC1UmLVqewTiLlA=";
|
||||
rev = "5dba13dcd531c19bf99829e2e0bb31f2e08e16fe";
|
||||
hash = "sha256-FH8DNE03k95ZsRwaiXHkaU9/cdWrWALCEdChN5ZPdog=";
|
||||
};
|
||||
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
|
||||
};
|
||||
|
@ -733,12 +733,12 @@
|
|||
};
|
||||
haskell = buildGrammar {
|
||||
language = "haskell";
|
||||
version = "0.0.0+rev=e002d60";
|
||||
version = "0.0.0+rev=a75238f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-haskell";
|
||||
rev = "e002d60072c73ab09bafedc82d3e35a4349ca6c0";
|
||||
hash = "sha256-BHpZjxWARMiInJ3S7nhOcRflKK7oR6pM+CqJgUbK3aQ=";
|
||||
rev = "a75238fdefc2281cdba7dc4dca13f1d68a91f177";
|
||||
hash = "sha256-KCP6nP2AI6ZwuADSlWTP21I+U4aUr40/sYTn1FVqVMA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-haskell";
|
||||
};
|
||||
|
@ -1509,12 +1509,12 @@
|
|||
};
|
||||
racket = buildGrammar {
|
||||
language = "racket";
|
||||
version = "0.0.0+rev=0c8791f";
|
||||
version = "0.0.0+rev=2804e03";
|
||||
src = fetchFromGitHub {
|
||||
owner = "6cdh";
|
||||
repo = "tree-sitter-racket";
|
||||
rev = "0c8791fdfed9412ea44177f1108da618d8a0470f";
|
||||
hash = "sha256-rpDSlgRtBoQf2iOetyi8meqz0HfddCZalVHxnplR3iE=";
|
||||
rev = "2804e03223953dc4709f4c041b57b722095a0397";
|
||||
hash = "sha256-mPG0faYCxML1Ehu6bZS86rEV9Ys+tgwsGlNKgA4U3zQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
|
||||
};
|
||||
|
@ -1586,12 +1586,12 @@
|
|||
};
|
||||
ruby = buildGrammar {
|
||||
language = "ruby";
|
||||
version = "0.0.0+rev=2edbd43";
|
||||
version = "0.0.0+rev=f257f3f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-ruby";
|
||||
rev = "2edbd437ee901b8fa95861ec538e56efe3ebd127";
|
||||
hash = "sha256-VJQrAU1irsGN1/V7/fjDaIiSzunUGTs0imSHUHyWex4=";
|
||||
rev = "f257f3f57833d584050336921773738a3fd8ca22";
|
||||
hash = "sha256-0EaU9O67faGwtO1GIxjK4Uv1etd0p1vtfrVB3d6TDF8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-ruby";
|
||||
};
|
||||
|
@ -1608,12 +1608,12 @@
|
|||
};
|
||||
scala = buildGrammar {
|
||||
language = "scala";
|
||||
version = "0.0.0+rev=199cf06";
|
||||
version = "0.0.0+rev=a5c4c29";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-scala";
|
||||
rev = "199cf060eec9e0d427ae3c6fe46de2c830d0c1e9";
|
||||
hash = "sha256-s18lg8/ARxal2k3fSdVAPwso3uxTb5fy1L2LEnRsztY=";
|
||||
rev = "a5c4c29b95aca29dea71f34bf046ad0b36499045";
|
||||
hash = "sha256-R7503gLEWdktp/OKBc2hCAf6YzS4RInzYU99ohLJZ+g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-scala";
|
||||
};
|
||||
|
@ -1966,12 +1966,12 @@
|
|||
};
|
||||
v = buildGrammar {
|
||||
language = "v";
|
||||
version = "0.0.0+rev=234c102";
|
||||
version = "0.0.0+rev=519e0f6";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vlang";
|
||||
repo = "vls";
|
||||
rev = "234c1028883187c6b48e030780b7332229faefa3";
|
||||
hash = "sha256-4DqMn9rPTxOtQOfy8fy6R7z/+z50XnCLV0J/4QFrRz4=";
|
||||
rev = "519e0f64007a40852e59bb72ff1b6e2375068664";
|
||||
hash = "sha256-ps5VmLSDoc5PF/rGhNAmKkOBsuVxgjn+ZQTit8MGyvk=";
|
||||
};
|
||||
location = "tree_sitter_v";
|
||||
meta.homepage = "https://github.com/vlang/vls";
|
||||
|
@ -2000,12 +2000,12 @@
|
|||
};
|
||||
vhs = buildGrammar {
|
||||
language = "vhs";
|
||||
version = "0.0.0+rev=77fd8a8";
|
||||
version = "0.0.0+rev=fec6e98";
|
||||
src = fetchFromGitHub {
|
||||
owner = "charmbracelet";
|
||||
repo = "tree-sitter-vhs";
|
||||
rev = "77fd8a8fcc0b4788e0b1569b1a4fa070b36add28";
|
||||
hash = "sha256-6/Mg3oDjIzVnqbvZ8Q/HLyycGyHIBn3aBRcechWht/s=";
|
||||
rev = "fec6e981b7795b68262ddf229d73d2aa03a89b9a";
|
||||
hash = "sha256-vGRmIFWUXSG3uDpKPcxALndV7gWiQ2nG4BOGL05oZ6U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/charmbracelet/tree-sitter-vhs";
|
||||
};
|
||||
|
|
|
@ -799,6 +799,10 @@ self: super: {
|
|||
dependencies = with self; [ plenary-nvim ];
|
||||
});
|
||||
|
||||
nvim-coverage = super.nvim-coverage.overrideAttrs(old: {
|
||||
dependencies = with self; [ plenary-nvim ];
|
||||
});
|
||||
|
||||
nvim-dap-python = super.nvim-dap-python.overrideAttrs (old: {
|
||||
dependencies = with self; [ nvim-dap ];
|
||||
});
|
||||
|
@ -946,24 +950,18 @@ self: super: {
|
|||
|
||||
sniprun =
|
||||
let
|
||||
version = "1.3.3";
|
||||
version = "1.3.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "michaelb";
|
||||
repo = "sniprun";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-my06P2fqWjZAnxVjVzIV8q+FQOlxRLVZs3OZ0XBR6N0=";
|
||||
hash = "sha256-H1PmjiNyUp+fTDqnfppFii+aDh8gPD/ALHFNWVXch3w=";
|
||||
};
|
||||
sniprun-bin = rustPlatform.buildRustPackage {
|
||||
pname = "sniprun-bin";
|
||||
inherit version src;
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./sniprun/Cargo.lock;
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${./sniprun/Cargo.lock} Cargo.lock
|
||||
'';
|
||||
cargoHash = "sha256-WXhH0zqGj/D83AoEfs0kPqW7UXIAkURTJ+/BKbuUvss=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
|
|
@ -546,6 +546,7 @@ https://github.com/terrortylor/nvim-comment/,,
|
|||
https://github.com/hrsh7th/nvim-compe/,,
|
||||
https://github.com/roxma/nvim-completion-manager/,,
|
||||
https://github.com/klen/nvim-config-local/,,
|
||||
https://github.com/andythigpen/nvim-coverage/,HEAD,
|
||||
https://github.com/yamatsum/nvim-cursorline/,,
|
||||
https://github.com/mfussenegger/nvim-dap/,,
|
||||
https://github.com/leoluz/nvim-dap-go/,HEAD,
|
||||
|
@ -670,6 +671,7 @@ https://github.com/theprimeagen/refactoring.nvim/,,
|
|||
https://github.com/tversteeg/registers.nvim/,,
|
||||
https://github.com/filipdutescu/renamer.nvim/,,
|
||||
https://github.com/NTBBloodbath/rest.nvim/,,
|
||||
https://github.com/vim-scripts/restore_view.vim/,HEAD,restore-view-vim
|
||||
https://github.com/gu-fan/riv.vim/,,
|
||||
https://github.com/kevinhwang91/rnvimr/,,
|
||||
https://github.com/mfukar/robotframework-vim/,,
|
||||
|
@ -681,6 +683,7 @@ https://github.com/rust-lang/rust.vim/,,
|
|||
https://github.com/hauleth/sad.vim/,,
|
||||
https://github.com/vmware-archive/salt-vim/,,
|
||||
https://github.com/lewis6991/satellite.nvim/,HEAD,
|
||||
https://github.com/davidgranstrom/scnvim/,HEAD,
|
||||
https://github.com/tiagovla/scope.nvim/,HEAD,
|
||||
https://github.com/Xuyuanp/scrollbar.nvim/,,
|
||||
https://github.com/cakebaker/scss-syntax.vim/,,
|
||||
|
@ -1020,6 +1023,7 @@ https://github.com/ludovicchabant/vim-lawrencium/,,
|
|||
https://github.com/hecal3/vim-leader-guide/,,
|
||||
https://github.com/mk12/vim-lean/,,
|
||||
https://github.com/ledger/vim-ledger/,,
|
||||
https://github.com/reedes/vim-lexical/,HEAD,
|
||||
https://github.com/lfe-support/vim-lfe/,,
|
||||
https://github.com/josa42/vim-lightline-coc/,,
|
||||
https://github.com/tommcdo/vim-lion/,,
|
||||
|
@ -1131,6 +1135,7 @@ https://github.com/thinca/vim-scouter/,,
|
|||
https://github.com/tpope/vim-scriptease/,,
|
||||
https://github.com/inside/vim-search-pulse/,,
|
||||
https://github.com/tpope/vim-sensible/,,
|
||||
https://github.com/Konfekt/vim-sentence-chopper/,HEAD,
|
||||
https://github.com/guns/vim-sexp/,,
|
||||
https://github.com/tpope/vim-sexp-mappings-for-regular-people/,,
|
||||
https://github.com/itspriddle/vim-shellcheck/,,
|
||||
|
|
|
@ -651,15 +651,15 @@ let
|
|||
mktplcRef = {
|
||||
name = "ruff";
|
||||
publisher = "charliermarsh";
|
||||
version = "2023.16.0";
|
||||
sha256 = "sha256-MCRfG2CmGXLX15Qv/cxuH8VE1lJLPs4tXlCNnFqm5lc=";
|
||||
version = "2023.24.0";
|
||||
sha256 = "sha256-wwunbseX/VxoU8mRDankDim6PQy8uwEhLXR4RUVo7Xw=";
|
||||
};
|
||||
meta = {
|
||||
license = lib.licenses.mit;
|
||||
changelog = "https://github.com/charliermarsh/ruff-vscode/releases";
|
||||
changelog = "https://github.com/astral-sh/ruff-vscode/releases";
|
||||
description = "Ruff extension for Visual Studio Code";
|
||||
downloadPage = "https://marketplace.visualstudio.com/items?itemName=charliermarsh.ruff";
|
||||
homepage = "https://github.com/charliermarsh/ruff-vscode/";
|
||||
homepage = "https://github.com/astral-sh/ruff-vscode/";
|
||||
maintainers = [ lib.maintainers.azd325 ];
|
||||
};
|
||||
};
|
||||
|
@ -914,8 +914,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "composer-php-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
sha256 = "sha256-4SL7hPcnxN6Bq0Cclaszk2zlYF1xR2w/8zaJo16OT+U=";
|
||||
version = "1.34.13295";
|
||||
sha256 = "sha256-1gmw9GKG6ak/TIDq8aI63KmiHhup9EsCS583Oc6jQ0I=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.composer-php-vscode/changelog";
|
||||
|
@ -932,25 +932,25 @@ let
|
|||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
sha256 = "sha256-ccMkaXppkgdsN2XtSFaw85xLUCFMDF1z+XidP0KAHCA=";
|
||||
sha256 = "sha256-L56vG9U2fqtaZIXQ5xepwLibOs/WyHQj/t2EIY7ZXvM=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
sha256 = "17lsf736jagw2q6dwxvpj2dspiqrlyvmmhv6p6cf81vxijpgmq9d";
|
||||
sha256 = "0rx2dkaz0qpmck1k4hg0jpksixhwcrq0sndimx0f44jcnc7aby21";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
sha256 = "1cnfzzpikcsp1l1a8amim0fz5r1pkszn231cfl745ggiksbjyhsp";
|
||||
sha256 = "13swwh1br6ry64hlq1yjbrbq71vyg44h0pb907zdjabwim27y88x";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
sha256 = "0jli6l9qrssnpm5a3m1g7g1dw2i5bv9wxd0gqg6vda7dwfs2f494";
|
||||
sha256 = "0fsisxc3vcyqk634xbk2rdcw2g8ablv3n46y6bz20i0npa4clhpa";
|
||||
};
|
||||
};
|
||||
in {
|
||||
name = "phptools-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
version = "1.34.13295";
|
||||
} // sources.${stdenv.system};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -981,8 +981,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "profiler-php-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
sha256 = "sha256-P0lzZkCHtLHJI/gwB+wbrZPR3OOia5VxTMCC2ZQULBg=";
|
||||
version = "1.34.13295";
|
||||
sha256 = "sha256-ZGklnPnSaHCGCRukVHie5ShvX94rXp2z3e/5PP2dq7I=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.profiler-php-vscode/changelog";
|
||||
|
@ -1463,8 +1463,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "github";
|
||||
name = "codespaces";
|
||||
version = "1.14.7";
|
||||
sha256 = "pcZGMxTVnMeD6rnNV0d9Wysk6MrYiYcJ+byuH9VR0ds=";
|
||||
version = "1.14.8";
|
||||
sha256 = "sha256-kCgnOODT1KDi9PMWs3CATXESWoHnDRhCIZhEUSkm14o=";
|
||||
};
|
||||
meta = { license = lib.licenses.unfree; };
|
||||
};
|
||||
|
@ -1473,8 +1473,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "github";
|
||||
name = "copilot";
|
||||
version = "1.86.82";
|
||||
sha256 = "isaqjrAmu/08gnNKQPeMV4Xc8u0Hx8gB2c78WE54kYQ=";
|
||||
version = "1.89.156";
|
||||
sha256 = "sha256-BJnYd9D3bWrZI8UETnAua8ngVjZJ7EXB1UrZAjVnx1E=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitHub Copilot uses OpenAI Codex to suggest code and entire functions in real-time right from your editor.";
|
||||
|
@ -1489,8 +1489,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "github";
|
||||
name = "copilot-chat";
|
||||
version = "0.1.2023060101";
|
||||
sha256 = "sha256-g3UIcy2TpD3m8EamxneUXYAV/bbCPvPhOWdcuXPkK9g=";
|
||||
version = "0.3.2023061502";
|
||||
sha256 = "sha256-sUoKwlPDMz+iQbmIsD2JhyDwmUQzOyCHXaXCUaizQ7k=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitHub Copilot Chat is a companion extension to GitHub Copilot that houses experimental chat features";
|
||||
|
@ -1543,8 +1543,8 @@ let
|
|||
# the VSCode Marketplace and use a calver scheme. We should avoid
|
||||
# using preview versions, because they can require insider versions
|
||||
# of VS Code
|
||||
version = "0.64.0";
|
||||
sha256 = "tgQD3o5uMbWofVx7FPyWT1yaeu2e4aPxterN4yXA33U=";
|
||||
version = "0.66.0";
|
||||
sha256 = "sha256-rhAFNX+/BoKkQeFlVdoHzA8UmZeQofq7+UPooWleYVw=";
|
||||
};
|
||||
meta = { license = lib.licenses.mit; };
|
||||
};
|
||||
|
@ -2197,8 +2197,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "direnv";
|
||||
publisher = "mkhl";
|
||||
version = "0.12.0";
|
||||
sha256 = "sha256-UMGTWAiPAxSjy5ALUkijD0GE9TW37TZ3UvMmgFBNYsU=";
|
||||
version = "0.13.0";
|
||||
sha256 = "sha256-KdLJ7QTi9jz+JbbQuhXqyE3WV9oF+wyC/9ZJ/XTFOYc=";
|
||||
};
|
||||
meta = {
|
||||
description = "direnv support for Visual Studio Code";
|
||||
|
@ -3029,8 +3029,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "code-spell-checker";
|
||||
publisher = "streetsidesoftware";
|
||||
version = "2.20.4";
|
||||
sha256 = "sha256-GOXKXZPEynyqRUUY0pdNwt+141kJleg74IbCP4/34R8=";
|
||||
version = "2.20.5";
|
||||
sha256 = "sha256-IR/mwEmiSPN/ZRiazclRSOie9RAjdNM0zXexVzImOs8=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/streetsidesoftware.code-spell-checker/changelog";
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
From 4f64ad191ec79b9f40843f88e3ac5910720636da Mon Sep 17 00:00:00 2001
|
||||
From: Changsheng Wu <Congee@users.noreply.github.com>
|
||||
Date: Fri, 9 Jun 2023 15:41:53 -0400
|
||||
Subject: [PATCH] Update Cargo.toml
|
||||
|
||||
---
|
||||
adapter/Cargo.toml | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/adapter/Cargo.toml b/adapter/Cargo.toml
|
||||
index bc86723..f5f26ce 100644
|
||||
--- a/adapter/Cargo.toml
|
||||
+++ b/adapter/Cargo.toml
|
||||
@@ -39,7 +39,7 @@ winapi = { version = "0.3.8", features = ["std", "wincon", "namedpipeapi"] }
|
||||
winreg = "0.6.2"
|
||||
|
||||
[lib]
|
||||
-crate-type = ["staticlib"]
|
||||
+crate-type = ["dylib", "rlib"]
|
||||
|
||||
[[bin]]
|
||||
name = "codelldb"
|
|
@ -1,8 +1,7 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6ae4dfb..519f544 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -16,13 +16,6 @@ endif()
|
||||
@@ -16,13 +16,6 @@
|
||||
set(VERSION "${VERSION}${VERSION_SUFFIX}")
|
||||
message("Version ${VERSION}")
|
||||
|
||||
|
@ -16,11 +15,11 @@ index 6ae4dfb..519f544 100644
|
|||
if (CMAKE_SYSROOT)
|
||||
set(CMAKE_C_FLAGS "--sysroot=${CMAKE_SYSROOT} ${CMAKE_C_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "--sysroot=${CMAKE_SYSROOT} ${CMAKE_CXX_FLAGS}")
|
||||
@@ -93,16 +86,6 @@ configure_file(package.json ${CMAKE_CURRENT_BINARY_DIR}/package.json @ONLY)
|
||||
@@ -102,16 +95,6 @@
|
||||
configure_file(webpack.config.js ${CMAKE_CURRENT_BINARY_DIR}/webpack.config.js @ONLY)
|
||||
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
-# Run 'npm install'
|
||||
-# Install node_modules
|
||||
-execute_process(
|
||||
- COMMAND ${NPM} ci # like install, but actually respects package-lock file.
|
||||
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
|
@ -30,10 +29,10 @@ index 6ae4dfb..519f544 100644
|
|||
- message(FATAL_ERROR "npm intall failed: ${Result}")
|
||||
-endif()
|
||||
-
|
||||
# Copy it back, so we can commit the lock file.
|
||||
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/package-lock.json DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
@@ -154,6 +137,7 @@ add_custom_target(tests
|
||||
# Resolve $refs
|
||||
execute_process(
|
||||
COMMAND ${WithEnv} NODE_PATH=${CMAKE_CURRENT_BINARY_DIR}/node_modules node ${CMAKE_CURRENT_SOURCE_DIR}/tools/prep-package.js ${CMAKE_CURRENT_BINARY_DIR}/package.json ${CMAKE_CURRENT_BINARY_DIR}/package.json
|
||||
@@ -169,6 +152,7 @@
|
||||
|
||||
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_BINARY_DIR}/README.md)
|
||||
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/CHANGELOG.md ${CMAKE_CURRENT_BINARY_DIR}/CHANGELOG.md)
|
||||
|
@ -41,7 +40,7 @@ index 6ae4dfb..519f544 100644
|
|||
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/lldb.png ${CMAKE_CURRENT_BINARY_DIR}/images/lldb.png)
|
||||
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/user.svg ${CMAKE_CURRENT_BINARY_DIR}/images/user.svg)
|
||||
add_copy_file(PackageFiles ${CMAKE_CURRENT_SOURCE_DIR}/images/users.svg ${CMAKE_CURRENT_BINARY_DIR}/images/users.svg)
|
||||
@@ -170,6 +154,7 @@ add_custom_target(dev_debugging
|
||||
@@ -185,6 +169,7 @@
|
||||
set(PackagedFilesBootstrap
|
||||
README.md
|
||||
CHANGELOG.md
|
||||
|
@ -49,4 +48,3 @@ index 6ae4dfb..519f544 100644
|
|||
extension.js
|
||||
images/*
|
||||
syntaxes/*
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ assert lib.versionAtLeast python3.version "3.5";
|
|||
let
|
||||
publisher = "vadimcn";
|
||||
pname = "vscode-lldb";
|
||||
version = "1.9.1";
|
||||
version = "1.9.2";
|
||||
|
||||
vscodeExtUniqueId = "${publisher}.${pname}";
|
||||
vscodeExtPublisher = publisher;
|
||||
|
@ -15,7 +15,7 @@ let
|
|||
owner = "vadimcn";
|
||||
repo = "vscode-lldb";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-DqxdZtSW8TZaOFGXOZQ7a4tmgRj6iAWDppCNomdfVxY=";
|
||||
hash = "sha256-6QmYRlSv8jY3OE3RcYuZt+c3z6GhFc8ESETVfCfF5RI=";
|
||||
};
|
||||
|
||||
# need to build a custom version of lldb and llvm for enhanced rust support
|
||||
|
@ -25,7 +25,7 @@ let
|
|||
pname = "${pname}-adapter";
|
||||
inherit version src;
|
||||
|
||||
cargoSha256 = "sha256-+hfNkr9cZbOcWdWKUWUqDj9a0PKjKeApFXYZzS1XokE=";
|
||||
cargoHash = "sha256-Qq2igtH1XIB+NAEES6hdNZcMbEmaFN69qIJ+gTYupvQ=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
|
@ -38,6 +38,8 @@ let
|
|||
"--bin=codelldb"
|
||||
];
|
||||
|
||||
patches = [ ./adapter-output-shared_object.patch ];
|
||||
|
||||
# Tests are linked to liblldb but it is not available here.
|
||||
doCheck = false;
|
||||
};
|
||||
|
@ -46,7 +48,7 @@ let
|
|||
pname = "${pname}-node-deps";
|
||||
inherit version src;
|
||||
|
||||
npmDepsHash = "sha256-Cdlq1jxHSCfPjXhasClc6XzEUp3vlLgkStbhYtCyc7E=";
|
||||
npmDepsHash = "sha256-fMKGi+AJTMlWl7SQtZ21hUwOLgqlFYDhwLvEergQLfI=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
|
@ -82,12 +84,6 @@ in stdenv.mkDerivation {
|
|||
|
||||
patches = [ ./cmake-build-extension-only.patch ];
|
||||
|
||||
postPatch = ''
|
||||
# temporary patch for forgotten version updates
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "1.9.0" ${version}
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
cp -r ${nodeDeps}/lib/node_modules .
|
||||
'';
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell ../../update-shell.nix -i bash -p wget prefetch-npm-deps
|
||||
#! nix-shell ../../update-shell.nix -i bash -p nix-prefetch-github prefetch-npm-deps
|
||||
|
||||
set -eo pipefail
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
@ -18,7 +18,7 @@ version="$1"
|
|||
if [[ $# -ne 1 ]]; then
|
||||
# no version specified, find the newest one
|
||||
version=$(
|
||||
curl -s "https://api.github.com/repos/$owner/$repo/releases" |
|
||||
curl -sL "https://api.github.com/repos/$owner/$repo/releases" |
|
||||
jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output |
|
||||
sed 's/[\"v]//'
|
||||
)
|
||||
|
@ -29,19 +29,18 @@ if grep -q 'cargoSha256 = ""' ./default.nix; then
|
|||
fi
|
||||
if [[ "$version" == "$old_version" ]]; then
|
||||
echo "Up to date: $version"
|
||||
exit
|
||||
fi
|
||||
echo "$old_version -> $version"
|
||||
|
||||
# update hashes
|
||||
sed -E 's/\bversion = ".*?"/version = "'$version'"/' --in-place "$nixFile"
|
||||
srcHash=$(nix-prefetch fetchFromGitHub --owner vadimcn --repo vscode-lldb --rev "v$version")
|
||||
srcHash=$(nix-prefetch-github vadimcn vscode-lldb --rev "v$version" | jq --raw-output .sha256)
|
||||
sed -E 's#\bsha256 = ".*?"#sha256 = "'$srcHash'"#' --in-place "$nixFile"
|
||||
cargoHash=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).vscode-extensions.vadimcn.vscode-lldb.adapter.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
|
||||
sed -E 's#\bcargoSha256 = ".*?"#cargoSha256 = "'$cargoHash'"#' --in-place "$nixFile"
|
||||
|
||||
pushd $TMPDIR
|
||||
wget https://raw.githubusercontent.com/$owner/$repo/v${version}/package-lock.json
|
||||
curl -LO https://raw.githubusercontent.com/$owner/$repo/v${version}/package-lock.json
|
||||
npmDepsHash=$(prefetch-npm-deps ./package-lock.json)
|
||||
popd
|
||||
sed -E 's#\bnpmDepsHash = ".*?"#npmDepsHash = "'$npmDepsHash'"#' --in-place "$nixFile"
|
||||
|
|
|
@ -36,3 +36,5 @@ update_vscodium $VSCODIUM_VER darwin-x64 x86_64-darwin zip
|
|||
update_vscodium $VSCODIUM_VER linux-arm64 aarch64-linux tar.gz
|
||||
|
||||
update_vscodium $VSCODIUM_VER darwin-arm64 aarch64-darwin zip
|
||||
|
||||
update_vscodium $VSCODIUM_VER linux-armhf armv7l-linux tar.gz
|
||||
|
|
|
@ -24,21 +24,21 @@ let
|
|||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "10nanw9xbns3wkcy1vr0shqk2719cfql0aj0lxbza74mhm290izg";
|
||||
x86_64-darwin = "1rffjb8p4vjwgvzrzpwqs3mb2hsf9hdml0r8zhzrzxlvrzzkkfdi";
|
||||
aarch64-linux = "1fgvgma8s1y0fm3ynz9diz2plffmxjpgf0w2flnr5zr14yvzi072";
|
||||
aarch64-darwin = "071vr52mcc0wrqa90kimmpmyj91nxwhg3jkfwcdssw2cr7qpjw67";
|
||||
armv7l-linux = "0b4d70d9qxlafn2mmf7vnmg09gdmv3cr57f32nvsn361z18y7yi2";
|
||||
x86_64-linux = "0ykchyksfc7aqar2f691jva36v0syn575rj6hydws0y79pplvinh";
|
||||
x86_64-darwin = "1zayc6z4zfkjb238dx51b1f2s9clqzhxhvb91j5w0ayqk735bd5d";
|
||||
aarch64-linux = "1nbnprf6sjqqrw7qha0r6f78n7jjvhn8kv1wxh5pi535nlmxza14";
|
||||
aarch64-darwin = "0lijfhlbj0vsjd6kdfr0fmks2spjazrzwnlxxw0ka80psxghavs6";
|
||||
armv7l-linux = "0dhgb1lxq8r4fk6nkb14h986w3dj19llvjvn8jq4mxdbscnik2j5";
|
||||
}.${system} or throwSystem;
|
||||
in
|
||||
callPackage ./generic.nix rec {
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.79.1";
|
||||
version = "1.79.2";
|
||||
pname = "vscode";
|
||||
|
||||
# This is used for VS Code - Remote SSH test
|
||||
rev = "b380da4ef1ee00e224a15c1d4d9793e27c2b6302";
|
||||
rev = "695af097c7bd098fbf017ce3ac85e09bbc5dda06";
|
||||
|
||||
executableName = "code" + lib.optionalString isInsiders "-insiders";
|
||||
longName = "Visual Studio Code" + lib.optionalString isInsiders " - Insiders";
|
||||
|
@ -62,7 +62,7 @@ in
|
|||
src = fetchurl {
|
||||
name = "vscode-server-${rev}.tar.gz";
|
||||
url = "https://update.code.visualstudio.com/commit:${rev}/server-linux-x64/stable";
|
||||
sha256 = "0732wpl4fjknhn423k23zrcqz9psjj1iy8lqa0fc8970n1m7i58b";
|
||||
sha256 = "0xbc20vh6rj2g6wvw73k8wqm1lxwirph3swwilq5f9hmkzha1z7i";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -15,10 +15,11 @@ let
|
|||
archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
|
||||
|
||||
sha256 = {
|
||||
x86_64-linux = "0ymgy0xisfxqrrmwpy0ga2rhlzhxqq39ppjfawxaf0dfdnkhgkgr";
|
||||
x86_64-darwin = "1q5fg7cm8d4iwvx8b589aqby5vw1b66y85dxgrq6sapz9cg2pvhz";
|
||||
aarch64-linux = "13vdqbhap9qd96y5n0immlwr61v8f7yvbwc9m0qas06f30b71f3z";
|
||||
aarch64-darwin = "01dc7hv13ngr0xv2cmd2likmdc2gz0jbmgashmkm12gdrjp4q968";
|
||||
x86_64-linux = "1qwgdvsqwkbfxf9xdxfxfmf10xcxgik4v6s5djggq130mqvrnv7x";
|
||||
x86_64-darwin = "12cn369yi652fvk6lha5y6nglms2zqmvqsjwklj3dl0ms9329jzq";
|
||||
aarch64-linux = "1fxmbz3qv027spgh6j075s00r69hff1m4fqvs9p2axb5m7ikdp16";
|
||||
aarch64-darwin = "0g5ylxcn41x8ajl7lv3h2fkx52pkgmkw95malgh8h1y3rvg73a4n";
|
||||
armv7l-linux = "0m1v24gg2dy79hgrz37gysgrazg8vkr1gkp52j6m6y76vi0l8249";
|
||||
}.${system} or throwSystem;
|
||||
|
||||
sourceRoot = if stdenv.isDarwin then "" else ".";
|
||||
|
@ -28,7 +29,7 @@ in
|
|||
|
||||
# Please backport all compatible updates to the stable release.
|
||||
# This is important for the extension ecosystem.
|
||||
version = "1.78.2.23132";
|
||||
version = "1.79.2.23166";
|
||||
pname = "vscodium";
|
||||
|
||||
executableName = "codium";
|
||||
|
|
|
@ -43,6 +43,13 @@ stdenv.mkDerivation rec {
|
|||
gtk3
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/visualboyadvance-m/visualboyadvance-m/commit/1d7e8ae4edc53a3380dfea88329b8b8337db1c52.patch";
|
||||
sha256 = "sha256-SV1waz2JSKiM6itwkqwlE3aOZCcOl8iyBr06tyYlefo=";
|
||||
})
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_BUILD_TYPE='Release'"
|
||||
"-DENABLE_FFMPEG='true'"
|
||||
|
|
|
@ -27,13 +27,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "xemu";
|
||||
version = "0.7.92";
|
||||
version = "0.7.95";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xemu-project";
|
||||
repo = "xemu";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-wRGoeud4EY2N/seG0Kd7CJt1IkDdJMJwFwpQNoLOl2g=";
|
||||
hash = "sha256-JZEDVmW1Q+nAFv8oVaYl7w41Mvm+L/t8PamkkE1FaIk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
|
|||
|
||||
[[package]]
|
||||
name = "felix"
|
||||
version = "2.3.0"
|
||||
version = "2.4.0"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"content_inspector",
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "felix";
|
||||
version = "2.3.0";
|
||||
version = "2.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyoheiu";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-+8tYllK8UYW7hdA4qoH8Eiu6SbXvjRe4BFfEbwabuIY=";
|
||||
sha256 = "sha256-yaAjw0Ayg0FuR5GVpmjwA7P1KfWFkXP0YsjNLhSl1FI=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, perl # used to generate help tags
|
||||
, pkg-config
|
||||
, ncurses, libX11
|
||||
, util-linux, file, which, groff
|
||||
, file, which, groff
|
||||
|
||||
# adds support for handling removable media (vifm-media). Linux only!
|
||||
, mediaSupport ? false, python3 ? null, udisks2 ? null, lib ? null
|
||||
|
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
|
|||
};
|
||||
|
||||
nativeBuildInputs = [ perl pkg-config makeWrapper ];
|
||||
buildInputs = [ ncurses libX11 util-linux file which groff ];
|
||||
buildInputs = [ ncurses libX11 file which groff ];
|
||||
|
||||
postPatch = ''
|
||||
# Avoid '#!/usr/bin/env perl' references to build help.
|
||||
|
|
|
@ -15,13 +15,13 @@
|
|||
|
||||
buildDotnetModule rec {
|
||||
pname = "denaro";
|
||||
version = "2023.5.0";
|
||||
version = "2023.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NickvisionApps";
|
||||
repo = "Denaro";
|
||||
rev = version;
|
||||
hash = "sha256-kYN4Qm4xxOUkMi3twyVkT9PBnauDp7aenYy0YXzwKNA=";
|
||||
hash = "sha256-oLEk3xHDkz98wOMwqr+lLtsFmOJdyPYK1YAutegic7U=";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
|
|
1
pkgs/applications/finance/denaro/deps.nix
generated
1
pkgs/applications/finance/denaro/deps.nix
generated
|
@ -4,6 +4,7 @@
|
|||
{ fetchNuGet }: [
|
||||
(fetchNuGet { pname = "Cake.Tool"; version = "3.0.0"; sha256 = "0gjacqdgnh1d40sm9vrdb8vr6jv3vyh6j265gj1aaf9af2569637"; })
|
||||
(fetchNuGet { pname = "Docnet.Core"; version = "2.3.1"; sha256 = "03b39x0vlymdknwgwhsmnpw4gj3njmbl9pd57ls3rhfn9r832d44"; })
|
||||
(fetchNuGet { pname = "GetText.NET"; version = "1.8.7"; sha256 = "0djn5sc7p33ayjmxmxs4hqagh51bg70wqs6mwbhlhsrc67bvgj9a"; })
|
||||
(fetchNuGet { pname = "GirCore.Adw-1"; version = "0.3.0"; sha256 = "1bsjqxck58dff9hnw21cp3xk1afly8721sfsbnxcr5i39hlrbl37"; })
|
||||
(fetchNuGet { pname = "GirCore.Cairo-1.0"; version = "0.3.0"; sha256 = "1zb8ilgywpwgjrzrbdvzvy70f46fb05iy49592mkjg2lv24q5l3y"; })
|
||||
(fetchNuGet { pname = "GirCore.FreeType2-2.0"; version = "0.3.0"; sha256 = "1bc78409bdhfqqbirwr1lkzxl27adndv05q5fcm5sivmlzr7fbkm"; })
|
||||
|
|
|
@ -152,11 +152,11 @@ in mkDerivation rec {
|
|||
--prefix PATH : ${lib.makeBinPath [ grass ]}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "A Free and Open Source Geographic Information System";
|
||||
homepage = "https://www.qgis.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = with lib.platforms; linux;
|
||||
maintainers = with lib.maintainers; [ lsix sikmir willcohen ];
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; teams.geospatial.members ++ [ lsix ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -152,11 +152,11 @@ in mkDerivation rec {
|
|||
--prefix PATH : ${lib.makeBinPath [ grass ]}
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
description = "A Free and Open Source Geographic Information System";
|
||||
homepage = "https://www.qgis.org";
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = with lib.platforms; linux;
|
||||
maintainers = with lib.maintainers; [ lsix sikmir willcohen ];
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; teams.geospatial.members ++ [ lsix ];
|
||||
platforms = with platforms; linux;
|
||||
};
|
||||
}
|
||||
|
|
68
pkgs/applications/graphics/curv/default.nix
Normal file
68
pkgs/applications/graphics/curv/default.nix
Normal file
|
@ -0,0 +1,68 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, boost
|
||||
, eigen
|
||||
, glm
|
||||
, libGL
|
||||
, libpng
|
||||
, openexr
|
||||
, tbb
|
||||
, xorg
|
||||
, ilmbase
|
||||
, llvmPackages
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "curv";
|
||||
version = "0.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "curv3d";
|
||||
repo = "curv";
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-m4p5uxRk6kEJUilmbQ1zJcQDRvRCV7pkxnqupZJxyjo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
boost
|
||||
eigen
|
||||
glm
|
||||
libGL
|
||||
libpng
|
||||
openexr
|
||||
tbb
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXext
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
xorg.libXrandr
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
ilmbase
|
||||
llvmPackages.openmp
|
||||
];
|
||||
|
||||
# GPU tests do not work in sandbox, instead we do this for sanity
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
test "$($out/bin/curv -x 2 + 2)" -eq "4"
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A 2D and 3D geometric modelling programming language for creating art with maths";
|
||||
homepage = "https://github.com/curv3d/curv";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.all;
|
||||
broken = stdenv.isDarwin;
|
||||
maintainers = with maintainers; [ pbsds ];
|
||||
};
|
||||
}
|
|
@ -14,19 +14,19 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "drawio";
|
||||
version = "21.3.7";
|
||||
version = "21.4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jgraph";
|
||||
repo = "drawio-desktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-f8QQA8qehB7wYJRoKizPxewBTVV64kxaBg2oTTNelBU=";
|
||||
hash = "sha256-wiLeRku8/v7bB/Ml6rKPdZRtxJYFMAt3Xz9MixXhHnw=";
|
||||
};
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = src + "/yarn.lock";
|
||||
hash = "sha256-gLt6a2Kq1LIzFiSnqLKKFTg8sd3Wrqsdys23SCFcrQ0=";
|
||||
hash = "sha256-phB/KPIkgCJT4wEDmUWvaXj0ZPih0EQY40LbRfA58Ro=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -5,21 +5,15 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "feh";
|
||||
version = "3.9";
|
||||
version = "3.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "derf";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-rgNC4M1TJ5EPeWmVHVzgaxTGLY7CYQf7uOsOn5bkwKE=";
|
||||
hash = "sha256-9NJ6zgQHcFJPmRlqJuCMXcKjLvDPUG+QvKGTJlWvWK4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace test/feh.t \
|
||||
--replace "WARNING:" "WARNING: While loading" \
|
||||
--replace "Does not look like an image \(magic bytes missing\)" "Unknown error \(15\)"
|
||||
'';
|
||||
|
||||
outputs = [ "out" "man" "doc" ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue