mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-02 04:50:21 +00:00
Compare commits
1 Commits
partition-
...
make-disk-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fc39343438 |
@@ -43,7 +43,6 @@ Below is a short excerpt of some points in there:
|
||||
* Not start with the package name.
|
||||
* More generally, it should not refer to the package name.
|
||||
* Not end with a period (or any punctuation for that matter).
|
||||
* Aim to inform while avoiding subjective language.
|
||||
* `meta.license` must be set and fit the upstream license.
|
||||
* If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`.
|
||||
* If in doubt, try to contact the upstream developers for clarification.
|
||||
|
||||
@@ -19,9 +19,6 @@ pandoc_flags = --extract-media=$(pandoc_media_dir) \
|
||||
.PHONY: all
|
||||
all: validate format out/html/index.html out/epub/manual.epub
|
||||
|
||||
.PHONY: render-md
|
||||
render-md: ${MD_TARGETS}
|
||||
|
||||
.PHONY: debug
|
||||
debug:
|
||||
nix-shell --run "xmloscopy --docbook5 ./manual.xml ./manual-full.xml"
|
||||
|
||||
@@ -20,10 +20,6 @@ in pkgs.stdenv.mkDerivation {
|
||||
ln -s ${doc-support} ./doc-support/result
|
||||
'';
|
||||
|
||||
preBuild = ''
|
||||
make -j$NIX_BUILD_CORES render-md
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
dest="$out/share/doc/nixpkgs"
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
|
||||
@@ -229,7 +229,7 @@ See `node2nix` [docs](https://github.com/svanderburg/node2nix) for more info.
|
||||
#### Pitfalls {#javascript-node2nix-pitfalls}
|
||||
|
||||
- If upstream package.json does not have a "version" attribute, `node2nix` will crash. You will need to add it like shown in [the package.json section](#javascript-upstream-package-json).
|
||||
- `node2nix` has some [bugs](https://github.com/svanderburg/node2nix/issues/238) related to working with lock files from NPM distributed with `nodejs_16`.
|
||||
- `node2nix` has some [bugs](https://github.com/svanderburg/node2nix/issues/238) related to working with lock files from NPM distributed with `nodejs-16_x`.
|
||||
- `node2nix` does not like missing packages from NPM. If you see something like `Cannot resolve version: vue-loader-v16@undefined` then you might want to try another tool. The package might have been pulled off of NPM.
|
||||
|
||||
### yarn2nix {#javascript-yarn2nix}
|
||||
|
||||
@@ -86,23 +86,6 @@ meta.platforms = lib.platforms.linux;
|
||||
|
||||
Attribute Set `lib.platforms` defines [various common lists](https://github.com/NixOS/nixpkgs/blob/master/lib/systems/doubles.nix) of platforms types.
|
||||
|
||||
### `badPlatforms` {#var-meta-badPlatforms}
|
||||
|
||||
The list of Nix [platform types](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/lib/meta.nix#L75-L81) on which the package is known not to be buildable.
|
||||
Hydra will never create prebuilt binaries for these platform types, even if they are in [`meta.platforms`](#var-meta-platforms).
|
||||
In general it is preferable to set `meta.platforms = lib.platforms.all` and then exclude any platforms on which the package is known not to build.
|
||||
For example, a package which requires dynamic linking and cannot be linked statically could use this:
|
||||
|
||||
```nix
|
||||
meta.platforms = lib.platforms.all;
|
||||
meta.badPlatforms = [ lib.systems.inspect.patterns.isStatic ];
|
||||
```
|
||||
|
||||
The [`lib.meta.availableOn`](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/lib/meta.nix#L95-L106) function can be used to test whether or not a package is available (i.e. buildable) on a given platform.
|
||||
Some packages use this to automatically detect the maximum set of features with which they can be built.
|
||||
For example, `systemd` [requires dynamic linking](https://github.com/systemd/systemd/issues/20600#issuecomment-912338965), and [has a `meta.badPlatforms` setting](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/pkgs/os-specific/linux/systemd/default.nix#L752) similar to the one above.
|
||||
Packages which can be built with or without `systemd` support will use `lib.meta.availableOn` to detect whether or not `systemd` is available on the [`hostPlatform`](#ssec-cross-platform-parameters) for which they are being built; if it is not available (e.g. due to a statically-linked host platform like `pkgsStatic`) this support will be disabled by default.
|
||||
|
||||
### `tests` {#var-meta-tests}
|
||||
|
||||
::: {.warning}
|
||||
@@ -190,7 +173,7 @@ To be effective, it must be presented directly to an evaluation process that han
|
||||
|
||||
### `hydraPlatforms` {#var-meta-hydraPlatforms}
|
||||
|
||||
The list of Nix platform types for which the [Hydra](https://github.com/nixos/hydra) [instance at `hydra.nixos.org`](https://nixos.org/hydra) will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of `meta.platforms`. Thus, the only reason to set `meta.hydraPlatforms` is if you want `hydra.nixos.org` to build the package on a subset of `meta.platforms`, or not at all, e.g.
|
||||
The list of Nix platform types for which the Hydra instance at `hydra.nixos.org` will build the package. (Hydra is the Nix-based continuous build system.) It defaults to the value of `meta.platforms`. Thus, the only reason to set `meta.hydraPlatforms` is if you want `hydra.nixos.org` to build the package on a subset of `meta.platforms`, or not at all, e.g.
|
||||
|
||||
```nix
|
||||
meta.platforms = lib.platforms.linux;
|
||||
@@ -199,26 +182,7 @@ meta.hydraPlatforms = [];
|
||||
|
||||
### `broken` {#var-meta-broken}
|
||||
|
||||
If set to `true`, the package is marked as "broken", meaning that it won’t show up in [search.nixos.org](https://search.nixos.org/packages), and cannot be built or installed unless the environment variable [`NIXPKGS_ALLOW_BROKEN`](#opt-allowBroken) is set.
|
||||
Such unconditionally-broken packages should be removed from Nixpkgs eventually unless they are fixed.
|
||||
|
||||
The value of this attribute can depend on a package's arguments, including `stdenv`.
|
||||
This means that `broken` can be used to express constraints, for example:
|
||||
|
||||
- Does not cross compile
|
||||
|
||||
```nix
|
||||
meta.broken = !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)
|
||||
```
|
||||
|
||||
- Broken if all of a certain set of its dependencies are broken
|
||||
|
||||
```nix
|
||||
meta.broken = lib.all (map (p: p.meta.broken) [ glibc musl ])
|
||||
```
|
||||
|
||||
This makes `broken` strictly more powerful than `meta.badPlatforms`.
|
||||
However `meta.availableOn` currently examines only `meta.platforms` and `meta.badPlatforms`, so `meta.broken` does not influence the default values for optional dependencies.
|
||||
If set to `true`, the package is marked as "broken", meaning that it won’t show up in `nix-env -qa`, and cannot be built or installed. Such packages should be removed from Nixpkgs eventually unless they are fixed.
|
||||
|
||||
## Licenses {#sec-meta-license}
|
||||
|
||||
|
||||
@@ -136,7 +136,6 @@ rec {
|
||||
else if final.isPower then "powerpc"
|
||||
else if final.isRiscV then "riscv"
|
||||
else if final.isS390 then "s390"
|
||||
else if final.isLoongArch64 then "loongarch"
|
||||
else final.parsed.cpu.name;
|
||||
|
||||
qemuArch =
|
||||
|
||||
@@ -26,7 +26,7 @@ let
|
||||
|
||||
# Linux
|
||||
"aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux"
|
||||
"armv7l-linux" "i686-linux" "loongarch64-linux" "m68k-linux" "microblaze-linux"
|
||||
"armv7l-linux" "i686-linux" "m68k-linux" "microblaze-linux"
|
||||
"microblazeel-linux" "mipsel-linux" "mips64el-linux" "powerpc64-linux"
|
||||
"powerpc64le-linux" "riscv32-linux" "riscv64-linux" "s390-linux"
|
||||
"s390x-linux" "x86_64-linux"
|
||||
@@ -86,7 +86,6 @@ in {
|
||||
m68k = filterDoubles predicates.isM68k;
|
||||
s390 = filterDoubles predicates.isS390;
|
||||
s390x = filterDoubles predicates.isS390x;
|
||||
loongarch64 = filterDoubles predicates.isLoongArch64;
|
||||
js = filterDoubles predicates.isJavaScript;
|
||||
|
||||
bigEndian = filterDoubles predicates.isBigEndian;
|
||||
|
||||
@@ -90,10 +90,6 @@ rec {
|
||||
config = "mipsel-unknown-linux-gnu";
|
||||
} // platforms.fuloong2f_n32;
|
||||
|
||||
loongarch64-linux = {
|
||||
config = "loongarch64-unknown-linux-gnu";
|
||||
};
|
||||
|
||||
# can execute on 32bit chip
|
||||
mips-linux-gnu = { config = "mips-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
|
||||
mipsel-linux-gnu = { config = "mipsel-unknown-linux-gnu"; } // platforms.gcc_mips32r2_o32;
|
||||
|
||||
@@ -9,14 +9,6 @@ let abis = lib.mapAttrs (_: abi: builtins.removeAttrs abi [ "assertions" ]) abis
|
||||
rec {
|
||||
# these patterns are to be matched against {host,build,target}Platform.parsed
|
||||
patterns = rec {
|
||||
# The patterns below are lists in sum-of-products form.
|
||||
#
|
||||
# Each attribute is list of product conditions; non-list values are treated
|
||||
# as a singleton list. If *any* product condition in the list matches then
|
||||
# the predicate matches. Each product condition is tested by
|
||||
# `lib.attrsets.matchAttrs`, which requires a match on *all* attributes of
|
||||
# the product.
|
||||
|
||||
isi686 = { cpu = cpuTypes.i686; };
|
||||
isx86_32 = { cpu = { family = "x86"; bits = 32; }; };
|
||||
isx86_64 = { cpu = { family = "x86"; bits = 64; }; };
|
||||
@@ -57,7 +49,6 @@ rec {
|
||||
isM68k = { cpu = { family = "m68k"; }; };
|
||||
isS390 = { cpu = { family = "s390"; }; };
|
||||
isS390x = { cpu = { family = "s390"; bits = 64; }; };
|
||||
isLoongArch64 = { cpu = { family = "loongarch"; bits = 64; }; };
|
||||
isJavaScript = { cpu = cpuTypes.javascript; };
|
||||
|
||||
is32bit = { cpu = { bits = 32; }; };
|
||||
|
||||
@@ -131,8 +131,6 @@ rec {
|
||||
|
||||
or1k = { bits = 32; significantByte = bigEndian; family = "or1k"; };
|
||||
|
||||
loongarch64 = { bits = 64; significantByte = littleEndian; family = "loongarch"; };
|
||||
|
||||
javascript = { bits = 32; significantByte = littleEndian; family = "javascript"; };
|
||||
};
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ with lib.systems.doubles; lib.runTests {
|
||||
testredox = mseteq redox [ "x86_64-redox" ];
|
||||
testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
|
||||
testillumos = mseteq illumos [ "x86_64-solaris" ];
|
||||
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" "loongarch64-linux" ];
|
||||
testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mips64el-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" "s390x-linux" "microblaze-linux" "microblazeel-linux" ];
|
||||
testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ];
|
||||
testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ];
|
||||
testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ];
|
||||
|
||||
@@ -1061,16 +1061,6 @@
|
||||
githubId = 1342360;
|
||||
name = "Andrew Morgan";
|
||||
};
|
||||
anpin = {
|
||||
email = "pavel@anpin.fyi";
|
||||
github = "anpin";
|
||||
githubId = 6060545;
|
||||
matrix = "@anpin:matrix.org";
|
||||
name = "Pavel Anpin";
|
||||
keys = [{
|
||||
fingerprint = "06E8 4FF6 0CCF 7AFD 5101 76C9 0FBC D3EE 6310 7407";
|
||||
}];
|
||||
};
|
||||
anpryl = {
|
||||
email = "anpryl@gmail.com";
|
||||
github = "anpryl";
|
||||
@@ -3314,12 +3304,9 @@
|
||||
}];
|
||||
};
|
||||
cyntheticfox = {
|
||||
email = "cyntheticfox@gh0st.sh";
|
||||
email = "houstdav000@gmail.com";
|
||||
github = "cyntheticfox";
|
||||
githubId = 17628961;
|
||||
keys = [{
|
||||
fingerprint = "73C1 C5DF 51E7 BB92 85E9 A262 5960 278C E235 F821";
|
||||
}];
|
||||
matrix = "@houstdav000:gh0st.ems.host";
|
||||
name = "Cynthia Fox";
|
||||
};
|
||||
@@ -4534,7 +4521,6 @@
|
||||
};
|
||||
elvishjerricco = {
|
||||
email = "elvishjerricco@gmail.com";
|
||||
matrix = "@elvishjerricco:matrix.org";
|
||||
github = "ElvishJerricco";
|
||||
githubId = 1365692;
|
||||
name = "Will Fancher";
|
||||
@@ -4859,7 +4845,7 @@
|
||||
name = "Eric Evenchick";
|
||||
};
|
||||
evenbrenden = {
|
||||
email = "packages@anythingexternal.com";
|
||||
email = "evenbrenden@gmail.com";
|
||||
github = "evenbrenden";
|
||||
githubId = 2512008;
|
||||
name = "Even Brenden";
|
||||
@@ -5149,12 +5135,6 @@
|
||||
github = "fkautz";
|
||||
githubId = 135706;
|
||||
};
|
||||
FlafyDev = {
|
||||
name = "Flafy Arazi";
|
||||
email = "flafyarazi@gmail.com";
|
||||
github = "FlafyDev";
|
||||
githubId = 44374434;
|
||||
};
|
||||
Flakebi = {
|
||||
email = "flakebi@t-online.de";
|
||||
github = "Flakebi";
|
||||
@@ -5177,13 +5157,6 @@
|
||||
githubId = 66178592;
|
||||
name = "Pavel Zolotarevskiy";
|
||||
};
|
||||
flexiondotorg = {
|
||||
name = "Martin Wimpress";
|
||||
email = "martin@wimpress.org";
|
||||
matrix = "@wimpress:matrix.org";
|
||||
github = "flexiondotorg";
|
||||
githubId = 304639;
|
||||
};
|
||||
fliegendewurst = {
|
||||
email = "arne.keller@posteo.de";
|
||||
github = "FliegendeWurst";
|
||||
@@ -5613,12 +5586,6 @@
|
||||
fingerprint = "D0CF 440A A703 E0F9 73CB A078 82BB 70D5 41AE 2DB4";
|
||||
}];
|
||||
};
|
||||
geri1701 = {
|
||||
email = "geri@sdf.org";
|
||||
github = "geri1701";
|
||||
githubId = 67984144;
|
||||
name = "Gerhard Schwanzer";
|
||||
};
|
||||
gerschtli = {
|
||||
email = "tobias.happ@gmx.de";
|
||||
github = "Gerschtli";
|
||||
@@ -6145,12 +6112,6 @@
|
||||
githubId = 2405974;
|
||||
name = "Sébastian Méric de Bellefon";
|
||||
};
|
||||
hellwolf = {
|
||||
email = "zhicheng.miao@gmail.com";
|
||||
github = "hellwolf";
|
||||
githubId = 186660;
|
||||
name = "Miao, ZhiCheng";
|
||||
};
|
||||
henkery = {
|
||||
email = "jim@reupload.nl";
|
||||
github = "henkery";
|
||||
@@ -11338,12 +11299,6 @@
|
||||
githubId = 3521180;
|
||||
name = "Tom Sydney Kerckhove";
|
||||
};
|
||||
NotAShelf = {
|
||||
name = "NotAShelf";
|
||||
email = "itsashelf@gmail.com";
|
||||
github = "NotAShelf";
|
||||
githubId = 62766066;
|
||||
};
|
||||
notbandali = {
|
||||
name = "Amin Bandali";
|
||||
email = "bandali@gnu.org";
|
||||
@@ -11828,12 +11783,6 @@
|
||||
githubId = 11016164;
|
||||
name = "Fedor Pakhomov";
|
||||
};
|
||||
pallix = {
|
||||
email = "pierre.allix.work@gmail.com";
|
||||
github = "pallix";
|
||||
githubId = 676838;
|
||||
name = "Pierre Allix";
|
||||
};
|
||||
paluh = {
|
||||
email = "paluho@gmail.com";
|
||||
github = "paluh";
|
||||
@@ -12022,12 +11971,6 @@
|
||||
githubId = 920910;
|
||||
name = "peelz";
|
||||
};
|
||||
pelme = {
|
||||
email = "andreas@pelme.se";
|
||||
github = "pelme";
|
||||
githubId = 20529;
|
||||
name = "Andreas Pelme";
|
||||
};
|
||||
penalty1083 = {
|
||||
email = "penalty1083@outlook.com";
|
||||
github = "penalty1083";
|
||||
@@ -14840,12 +14783,10 @@
|
||||
name = "Stijn DW";
|
||||
};
|
||||
StillerHarpo = {
|
||||
email = "engelflorian@posteo.de";
|
||||
email = "florianengel39@gmail.com";
|
||||
github = "StillerHarpo";
|
||||
githubId = 25526706;
|
||||
name = "Florian Engel";
|
||||
keys = [{ fingerprint = "4E2D9B26940E0DABF376B7AF76762421D45837DE"; }];
|
||||
matrix = "@qe7ftcyrpg:matrix.org";
|
||||
};
|
||||
stites = {
|
||||
email = "sam@stites.io";
|
||||
@@ -15267,12 +15208,6 @@
|
||||
githubId = 1755789;
|
||||
name = "Robert Irelan";
|
||||
};
|
||||
tennox = {
|
||||
email = "tennox+nix@txlab.io";
|
||||
github = "tennox";
|
||||
githubId = 2084639;
|
||||
name = "Manu";
|
||||
};
|
||||
teozkr = {
|
||||
email = "teo@nullable.se";
|
||||
github = "nightkr";
|
||||
|
||||
@@ -95,8 +95,6 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- [jellyseerr](https://github.com/Fallenbagel/jellyseerr), a web-based requests manager for Jellyfin, forked from Overseerr. Available as [services.jellyseerr](#opt-services.jellyseerr.enable).
|
||||
|
||||
- [stargazer](https://sr.ht/~zethra/stargazer/), a fast and easy to use Gemini server. Available as [services.stargazer](#opt-services.stargazer.enable).
|
||||
|
||||
- [photoprism](https://photoprism.app/), a AI-Powered Photos App for the Decentralized Web. Available as [services.photoprism](options.html#opt-services.photoprism.enable).
|
||||
|
||||
- [peroxide](https://github.com/ljanyst/peroxide), a fork of the official [ProtonMail bridge](https://github.com/ProtonMail/proton-bridge) that aims to be similar to [Hydroxide](https://github.com/emersion/hydroxide). Available as [services.peroxide](#opt-services.peroxide.enable).
|
||||
@@ -190,12 +188,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- Calling `makeSetupHook` without passing a `name` argument is deprecated.
|
||||
|
||||
- Top-level buildPlatform,hostPlatform,targetPlatform have been deprecated, use stdenv.X instead.
|
||||
|
||||
- `lib.systems.examples.ghcjs` and consequently `pkgsCross.ghcjs` now use the target triplet `javascript-unknown-ghcjs` instead of `js-unknown-ghcjs`. This has been done to match an [upstream decision](https://gitlab.haskell.org/ghc/ghc/-/commit/6636b670233522f01d002c9b97827d00289dbf5c) to follow Cabal's platform naming more closely. Nixpkgs will also reject `js` as an architecture name.
|
||||
|
||||
- `dokuwiki` has been updated from 2023-07-31a (Igor) to 2023-04-04 (Jack Jackrum), which has [completely removed](https://www.dokuwiki.org/changes#release_2023-04-04_jack_jackrum) the options to embed HTML and PHP for security reasons. The [htmlok plugin](https://www.dokuwiki.org/plugin:htmlok) can be used to regain this functionality.
|
||||
|
||||
- The old unsupported version 6.x of the ELK-stack and Elastic beats have been removed. Use OpenSearch instead.
|
||||
|
||||
- The `cosmoc` package has been removed. The upstream scripts in `cosmocc` should be used instead.
|
||||
@@ -235,8 +229,6 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
|
||||
- To enable the HTTP3 (QUIC) protocol for a nginx virtual host, set the `quic` attribute on it to true, e.g. `services.nginx.virtualHosts.<name>.quic = true;`.
|
||||
|
||||
- The default Asterisk package was changed to v20 from v19. Asterisk versions 16 and 19 have been dropped due to being EOL. You may need to update /var/lib/asterisk to match the template files in `${asterisk-20}/var/lib/asterisk`.
|
||||
|
||||
- conntrack helper autodetection has been removed from kernels 6.0 and up upstream, and an assertion was added to ensure things don't silently stop working. Migrate your configuration to assign helpers explicitly or use an older LTS kernel branch as a temporary workaround.
|
||||
|
||||
- The `services.pipewire.config` options have been removed, as they have basically never worked correctly. All behavior defined by the default configuration can be overridden with drop-in files as necessary - see [below](#sec-release-23.05-migration-pipewire) for details.
|
||||
@@ -256,8 +248,6 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
- The `pnpm` package has be updated to from version 7.29.1 to version 8.1.1 and Node.js 14 support has been discontinued (though, there are workarounds if Node.js 14 is still required)
|
||||
- Migration instructions: ["Before updating pnpm to v8 in your CI, regenerate your pnpm-lock.yaml. To upgrade your lockfile, run pnpm install and commit the changes. Existing dependencies will not be updated; however, due to configuration changes in pnpm v8, some missing peer dependencies may be added to the lockfile and some packages may get deduplicated. You can commit the new lockfile even before upgrading Node.js in the CI, as pnpm v7 already supports the new lockfile format."](https://github.com/pnpm/pnpm/releases/tag/v8.0.0)
|
||||
|
||||
- The `zplug` package changes its output path from `$out` to `$out/share/zplug`. Users should update their dependency on `${pkgs.zplug}/init.zsh` to `${pkgs.zplug}/share/zplug/init.zsh`.
|
||||
|
||||
## Other Notable Changes {#sec-release-23.05-notable-changes}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
@@ -309,10 +299,9 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||
`services.dnsmasq.extraConfig` will be deprecated when NixOS 22.11 reaches
|
||||
end of life.
|
||||
|
||||
- The `dokuwiki` service is now configured via `services.dokuwiki.sites.<name>.settings` attribute set; `extraConfig` has been removed.
|
||||
The `{aclUse,superUser,disableActions}` attributes have been renamed accordingly. `pluginsConfig` now only accepts an attribute set of booleans.
|
||||
Passing plain PHP is no longer possible.
|
||||
Same applies to `acl` which now also only accepts structured `settings`.
|
||||
- The `dokuwiki` service now takes configuration via the `services.dokuwiki.sites.<name>.settings` attribute set, `extraConfig` is deprecated and will be removed.
|
||||
The `{aclUse,superUser,disableActions}` attributes have been renamed, `pluginsConfig` now also accepts an attribute set of booleans, passing plain PHP is deprecated.
|
||||
Same applies to `acl` which now also accepts structured settings.
|
||||
|
||||
- The `zsh` package changes the way to set environment variables on NixOS systems where `programs.zsh.enable` equals `false`. It now sources `/etc/set-environment` when reading the system-level `zshenv` file. Before, it sourced `/etc/profile` when reading the system-level `zprofile` file.
|
||||
|
||||
|
||||
@@ -162,6 +162,12 @@ To solve this, you can run `fdisk -l $image` and generate `dd if=$image of=$imag
|
||||
# `installBootLoader` and `configFile`.
|
||||
onlyNixStore ? false
|
||||
|
||||
, # Ensure that no "new" Nix store is written to the root of the image
|
||||
# by symlinking the host Nix store.
|
||||
# This saves a lot of disk space if you don't need an isolated Nix store.
|
||||
# Incompatible with `additionalPaths`
|
||||
noNixStore ? true
|
||||
|
||||
, name ? "nixos-disk-image"
|
||||
|
||||
, # Disk image format, one of qcow2, qcow2-compressed, vdi, vpc, raw.
|
||||
@@ -198,8 +204,9 @@ assert (lib.assertMsg (fsType == "ext4" && deterministic -> rootFSUID != null) "
|
||||
# We use -E offset=X below, which is only supported by e2fsprogs
|
||||
assert (lib.assertMsg (partitionTableType != "none" -> fsType == "ext4") "to produce a partition table, we need to use -E offset flag which is support only for fsType = ext4");
|
||||
assert (lib.assertMsg (touchEFIVars -> partitionTableType == "hybrid" || partitionTableType == "efi" || partitionTableType == "legacy+gpt") "EFI variables can be used only with a partition table of type: hybrid, efi or legacy+gpt.");
|
||||
# If only Nix store image, then: contents must be empty, configFile must be unset, and we should no install bootloader.
|
||||
# If only Nix store image, then: contents must be empty, configFile must be unset, and we should no install bootloader.
|
||||
assert (lib.assertMsg (onlyNixStore -> contents == [] && configFile == null && !installBootLoader) "In a only Nix store image, the contents must be empty, no configuration must be provided and no bootloader should be installed.");
|
||||
assert (lib.assertMsg (noNixStore -> additionalPaths == []) "Without a Nix store in the rootfs, additional paths cannot be copied otherwise you would end up again with a Nix store.");
|
||||
# Either both or none of {user,group} need to be set
|
||||
assert (lib.assertMsg (lib.all
|
||||
(attrs: ((attrs.user or null) == null)
|
||||
@@ -422,6 +429,15 @@ let format' = format; in let
|
||||
export NIX_STATE_DIR=$TMPDIR/state
|
||||
nix-store --load-db < ${closureInfo}/registration
|
||||
|
||||
${optionalString noNixStore ''
|
||||
# Ensure host Nix store is available so that `nixos-install` performs
|
||||
# no extra operations.
|
||||
mkdir -p $root/nix
|
||||
# TODO: this needs to be made persistent or you need to run the nixos-install inside the namespace.
|
||||
# then, we need to unmount.
|
||||
unshare --mount --map-root-user mount --rbind ${builtins.storeDir} $root/nix
|
||||
''}
|
||||
|
||||
chmod 755 "$TMPDIR"
|
||||
echo "running nixos-install..."
|
||||
nixos-install --root $root --no-bootloader --no-root-passwd \
|
||||
|
||||
@@ -85,7 +85,12 @@ sub debug {
|
||||
|
||||
|
||||
# nixpkgs.system
|
||||
push @attrs, "nixpkgs.hostPlatform = lib.mkDefault \"@system@\";";
|
||||
my ($status, @systemLines) = runCommand("@nixInstantiate@ --impure --eval --expr builtins.currentSystem");
|
||||
if ($status != 0 || join("", @systemLines) =~ /error/) {
|
||||
die "Failed to retrieve current system type from nix.\n";
|
||||
}
|
||||
chomp(my $system = @systemLines[0]);
|
||||
push @attrs, "nixpkgs.hostPlatform = lib.mkDefault $system;";
|
||||
|
||||
|
||||
my $cpuinfo = read_file "/proc/cpuinfo";
|
||||
|
||||
@@ -34,7 +34,7 @@ let
|
||||
name = "nixos-generate-config";
|
||||
src = ./nixos-generate-config.pl;
|
||||
perl = "${pkgs.perl.withPackages (p: [ p.FileSlurp ])}/bin/perl";
|
||||
system = pkgs.stdenv.hostPlatform.system;
|
||||
nixInstantiate = "${pkgs.nix}/bin/nix-instantiate";
|
||||
detectvirt = "${config.systemd.package}/bin/systemd-detect-virt";
|
||||
btrfs = "${pkgs.btrfs-progs}/bin/btrfs";
|
||||
inherit (config.system.nixos-generate-config) configuration desktopConfiguration;
|
||||
|
||||
@@ -171,7 +171,6 @@
|
||||
./programs/fuse.nix
|
||||
./programs/fzf.nix
|
||||
./programs/gamemode.nix
|
||||
./programs/gamescope.nix
|
||||
./programs/geary.nix
|
||||
./programs/git.nix
|
||||
./programs/gnome-disks.nix
|
||||
@@ -1244,7 +1243,6 @@
|
||||
./services/web-servers/nginx/gitweb.nix
|
||||
./services/web-servers/phpfpm/default.nix
|
||||
./services/web-servers/pomerium.nix
|
||||
./services/web-servers/stargazer.nix
|
||||
./services/web-servers/tomcat.nix
|
||||
./services/web-servers/traefik.nix
|
||||
./services/web-servers/trafficserver/default.nix
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
{ config
|
||||
, lib
|
||||
, pkgs
|
||||
, ...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.programs.gamescope;
|
||||
|
||||
gamescope =
|
||||
let
|
||||
wrapperArgs =
|
||||
optional (cfg.args != [ ])
|
||||
''--add-flags "${toString cfg.args}"''
|
||||
++ builtins.attrValues (mapAttrs (var: val: "--set-default ${var} ${val}") cfg.env);
|
||||
in
|
||||
pkgs.runCommand "gamescope" { nativeBuildInputs = [ pkgs.makeBinaryWrapper ]; } ''
|
||||
mkdir -p $out/bin
|
||||
makeWrapper ${cfg.package}/bin/gamescope $out/bin/gamescope --inherit-argv0 \
|
||||
${toString wrapperArgs}
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.programs.gamescope = {
|
||||
enable = mkEnableOption (mdDoc "gamescope");
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.gamescope;
|
||||
defaultText = literalExpression "pkgs.gamescope";
|
||||
description = mdDoc ''
|
||||
The GameScope package to use.
|
||||
'';
|
||||
};
|
||||
|
||||
capSysNice = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = mdDoc ''
|
||||
Add cap_sys_nice capability to the GameScope
|
||||
binary so that it may renice itself.
|
||||
'';
|
||||
};
|
||||
|
||||
args = mkOption {
|
||||
type = types.listOf types.string;
|
||||
default = [ ];
|
||||
example = [ "--rt" "--prefer-vk-device 8086:9bc4" ];
|
||||
description = mdDoc ''
|
||||
Arguments passed to GameScope on startup.
|
||||
'';
|
||||
};
|
||||
|
||||
env = mkOption {
|
||||
type = types.attrsOf types.string;
|
||||
default = { };
|
||||
example = literalExpression ''
|
||||
# for Prime render offload on Nvidia laptops.
|
||||
# Also requires `hardware.nvidia.prime.offload.enable`.
|
||||
{
|
||||
__NV_PRIME_RENDER_OFFLOAD = "1";
|
||||
__VK_LAYER_NV_optimus = "NVIDIA_only";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
}
|
||||
'';
|
||||
description = mdDoc ''
|
||||
Default environment variables available to the GameScope process, overridable at runtime.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
security.wrappers = mkIf cfg.capSysNice {
|
||||
gamescope = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${gamescope}/bin/gamescope";
|
||||
capabilities = "cap_sys_nice+pie";
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = mkIf (!cfg.capSysNice) [ gamescope ];
|
||||
};
|
||||
|
||||
meta.maintainers = with maintainers; [ nrdxp ];
|
||||
}
|
||||
@@ -4,24 +4,6 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.programs.steam;
|
||||
gamescopeCfg = config.programs.gamescope;
|
||||
|
||||
steam-gamescope = let
|
||||
exports = builtins.attrValues (builtins.mapAttrs (n: v: "export ${n}=${v}") cfg.gamescopeSession.env);
|
||||
in
|
||||
pkgs.writeShellScriptBin "steam-gamescope" ''
|
||||
${builtins.concatStringsSep "\n" exports}
|
||||
gamescope --steam ${toString cfg.gamescopeSession.args} -- steam -tenfoot -pipewire-dmabuf
|
||||
'';
|
||||
|
||||
gamescopeSessionFile =
|
||||
(pkgs.writeTextDir "share/wayland-sessions/steam.desktop" ''
|
||||
[Desktop Entry]
|
||||
Name=Steam
|
||||
Comment=A digital distribution platform
|
||||
Exec=${steam-gamescope}/bin/steam-gamescope
|
||||
Type=Application
|
||||
'').overrideAttrs (_: { passthru.providedSessions = [ "steam" ]; });
|
||||
in {
|
||||
options.programs.steam = {
|
||||
enable = mkEnableOption (lib.mdDoc "steam");
|
||||
@@ -50,12 +32,6 @@ in {
|
||||
then [ package ] ++ extraPackages
|
||||
else [ package32 ] ++ extraPackages32;
|
||||
in prevLibs ++ additionalLibs;
|
||||
} // optionalAttrs (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice)
|
||||
{
|
||||
buildFHSEnv = pkgs.buildFHSEnv.override {
|
||||
# use the setuid wrapped bubblewrap
|
||||
bubblewrap = "${config.security.wrapperDir}/..";
|
||||
};
|
||||
});
|
||||
description = lib.mdDoc ''
|
||||
The Steam package to use. Additional libraries are added from the system
|
||||
@@ -81,31 +57,6 @@ in {
|
||||
Open ports in the firewall for Source Dedicated Server.
|
||||
'';
|
||||
};
|
||||
|
||||
gamescopeSession = mkOption {
|
||||
description = mdDoc "Run a GameScope driven Steam session from your display-manager";
|
||||
default = {};
|
||||
type = types.submodule {
|
||||
options = {
|
||||
enable = mkEnableOption (mdDoc "GameScope Session");
|
||||
args = mkOption {
|
||||
type = types.listOf types.string;
|
||||
default = [ ];
|
||||
description = mdDoc ''
|
||||
Arguments to be passed to GameScope for the session.
|
||||
'';
|
||||
};
|
||||
|
||||
env = mkOption {
|
||||
type = types.attrsOf types.string;
|
||||
default = { };
|
||||
description = mdDoc ''
|
||||
Environmental variables to be passed to GameScope for the session.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
@@ -115,19 +66,6 @@ in {
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
|
||||
security.wrappers = mkIf (cfg.gamescopeSession.enable && gamescopeCfg.capSysNice) {
|
||||
# needed or steam fails
|
||||
bwrap = {
|
||||
owner = "root";
|
||||
group = "root";
|
||||
source = "${pkgs.bubblewrap}/bin/bwrap";
|
||||
setuid = true;
|
||||
};
|
||||
};
|
||||
|
||||
programs.gamescope.enable = mkDefault cfg.gamescopeSession.enable;
|
||||
services.xserver.displayManager.sessionPackages = mkIf cfg.gamescopeSession.enable [ gamescopeSessionFile ];
|
||||
|
||||
# optionally enable 32bit pulseaudio support if pulseaudio is enabled
|
||||
hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
|
||||
|
||||
@@ -136,7 +74,7 @@ in {
|
||||
environment.systemPackages = [
|
||||
cfg.package
|
||||
cfg.package.run
|
||||
] ++ lib.optional cfg.gamescopeSession.enable steam-gamescope;
|
||||
];
|
||||
|
||||
networking.firewall = lib.mkMerge [
|
||||
(mkIf cfg.remotePlay.openFirewall {
|
||||
|
||||
@@ -487,7 +487,7 @@ let
|
||||
};
|
||||
|
||||
email = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
type = types.str;
|
||||
inherit (defaultAndText "email" null) default defaultText;
|
||||
description = lib.mdDoc ''
|
||||
Email address for account creation and correspondence from the CA.
|
||||
@@ -555,7 +555,7 @@ let
|
||||
};
|
||||
|
||||
credentialsFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
type = types.path;
|
||||
inherit (defaultAndText "credentialsFile" null) default defaultText;
|
||||
description = lib.mdDoc ''
|
||||
Path to an EnvironmentFile for the cert's service containing any required and
|
||||
|
||||
@@ -70,12 +70,7 @@ in
|
||||
};
|
||||
passwordFile = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc ''
|
||||
Password file for the postgresql connection.
|
||||
Must be formated according to PostgreSQL .pgpass standard (see https://www.postgresql.org/docs/current/libpq-pgpass.html)
|
||||
but only one line, no comments and readable by user `nginx`.
|
||||
Ignored if `database.host` is set to `localhost`, as peer authentication will be used.
|
||||
'';
|
||||
description = lib.mdDoc "Password file for the postgresql connection. Must be readable by user `nginx`. Ignored if `database.host` is set to `localhost`, as peer authentication will be used.";
|
||||
};
|
||||
dbname = mkOption {
|
||||
type = types.str;
|
||||
@@ -128,13 +123,7 @@ in
|
||||
environment.etc."roundcube/config.inc.php".text = ''
|
||||
<?php
|
||||
|
||||
${lib.optionalString (!localDB) ''
|
||||
$password = file('${cfg.database.passwordFile}')[0];
|
||||
$password = preg_split('~\\\\.(*SKIP)(*FAIL)|\:~s', $password);
|
||||
$password = end($password);
|
||||
$password = str_replace("\\:", ":", $password);
|
||||
$password = str_replace("\\\\", "\\", $password);
|
||||
''}
|
||||
${lib.optionalString (!localDB) "$password = file_get_contents('${cfg.database.passwordFile}');"}
|
||||
|
||||
$config = array();
|
||||
$config['db_dsnw'] = 'pgsql://${cfg.database.username}${lib.optionalString (!localDB) ":' . $password . '"}@${if localDB then "unix(/run/postgresql)" else cfg.database.host}/${cfg.database.dbname}';
|
||||
@@ -234,7 +223,6 @@ in
|
||||
path = [ config.services.postgresql.package ];
|
||||
})
|
||||
{
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
script = let
|
||||
psql = "${lib.optionalString (!localDB) "PGPASSFILE=${cfg.database.passwordFile}"} ${pkgs.postgresql}/bin/psql ${lib.optionalString (!localDB) "-h ${cfg.database.host} -U ${cfg.database.username} "} ${cfg.database.dbname}";
|
||||
|
||||
@@ -4,49 +4,6 @@ with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.bird-lg;
|
||||
|
||||
stringOrConcat = sep: v: if builtins.isString v then v else concatStringsSep sep v;
|
||||
|
||||
frontend_args = let
|
||||
fe = cfg.frontend;
|
||||
in {
|
||||
"--servers" = concatStringsSep "," fe.servers;
|
||||
"--domain" = fe.domain;
|
||||
"--listen" = fe.listenAddress;
|
||||
"--proxy-port" = fe.proxyPort;
|
||||
"--whois" = fe.whois;
|
||||
"--dns-interface" = fe.dnsInterface;
|
||||
"--bgpmap-info" = concatStringsSep "," cfg.frontend.bgpMapInfo;
|
||||
"--title-brand" = fe.titleBrand;
|
||||
"--navbar-brand" = fe.navbar.brand;
|
||||
"--navbar-brand-url" = fe.navbar.brandURL;
|
||||
"--navbar-all-servers" = fe.navbar.allServers;
|
||||
"--navbar-all-url" = fe.navbar.allServersURL;
|
||||
"--net-specific-mode" = fe.netSpecificMode;
|
||||
"--protocol-filter" = concatStringsSep "," cfg.frontend.protocolFilter;
|
||||
};
|
||||
|
||||
proxy_args = let
|
||||
px = cfg.proxy;
|
||||
in {
|
||||
"--allowed" = concatStringsSep "," px.allowedIPs;
|
||||
"--bird" = px.birdSocket;
|
||||
"--listen" = px.listenAddress;
|
||||
"--traceroute_bin" = px.traceroute.binary;
|
||||
"--traceroute_flags" = concatStringsSep " " px.traceroute.flags;
|
||||
"--traceroute_raw" = px.traceroute.rawOutput;
|
||||
};
|
||||
|
||||
mkArgValue = value:
|
||||
if isString value
|
||||
then escapeShellArg value
|
||||
else if isBool value
|
||||
then boolToString value
|
||||
else toString value;
|
||||
|
||||
filterNull = filterAttrs (_: v: v != "" && v != null && v != []);
|
||||
|
||||
argsAttrToList = args: mapAttrsToList (name: value: "${name} " + mkArgValue value ) (filterNull args);
|
||||
in
|
||||
{
|
||||
options = {
|
||||
@@ -87,12 +44,14 @@ in
|
||||
|
||||
domain = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "dn42.lantian.pub";
|
||||
description = lib.mdDoc "Server name domain suffixes.";
|
||||
};
|
||||
|
||||
servers = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
example = [ "gigsgigscloud" "hostdare" ];
|
||||
description = lib.mdDoc "Server name prefixes.";
|
||||
};
|
||||
@@ -175,14 +134,10 @@ in
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = with types; either lines (listOf str);
|
||||
default = [ ];
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = lib.mdDoc ''
|
||||
Extra parameters documented [here](https://github.com/xddxdd/bird-lg-go#frontend).
|
||||
|
||||
:::{.note}
|
||||
Passing lines (plain strings) is deprecated in favour of passing lists of strings.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -205,7 +160,8 @@ in
|
||||
|
||||
birdSocket = mkOption {
|
||||
type = types.str;
|
||||
default = "/var/run/bird/bird.ctl";
|
||||
default = "/run/bird.ctl";
|
||||
example = "/var/run/bird/bird.ctl";
|
||||
description = lib.mdDoc "Bird control socket path.";
|
||||
};
|
||||
|
||||
@@ -217,12 +173,6 @@ in
|
||||
description = lib.mdDoc "Traceroute's binary path.";
|
||||
};
|
||||
|
||||
flags = mkOption {
|
||||
type = with types; listOf str;
|
||||
default = [ ];
|
||||
description = lib.mdDoc "Flags for traceroute process";
|
||||
};
|
||||
|
||||
rawOutput = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@@ -231,14 +181,10 @@ in
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = with types; either lines (listOf str);
|
||||
default = [ ];
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = lib.mdDoc ''
|
||||
Extra parameters documented [here](https://github.com/xddxdd/bird-lg-go#proxy).
|
||||
|
||||
:::{.note}
|
||||
Passing lines (plain strings) is deprecated in favour of passing lists of strings.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -248,16 +194,6 @@ in
|
||||
###### implementation
|
||||
|
||||
config = {
|
||||
|
||||
warnings =
|
||||
lib.optional (cfg.frontend.enable && builtins.isString cfg.frontend.extraArgs) ''
|
||||
Passing strings to `services.bird-lg.frontend.extraOptions' is deprecated. Please pass a list of strings instead.
|
||||
''
|
||||
++ lib.optional (cfg.proxy.enable && builtins.isString cfg.proxy.extraArgs) ''
|
||||
Passing strings to `services.bird-lg.proxy.extraOptions' is deprecated. Please pass a list of strings instead.
|
||||
''
|
||||
;
|
||||
|
||||
systemd.services = {
|
||||
bird-lg-frontend = mkIf cfg.frontend.enable {
|
||||
enable = true;
|
||||
@@ -275,8 +211,23 @@ in
|
||||
};
|
||||
script = ''
|
||||
${cfg.package}/bin/frontend \
|
||||
${concatStringsSep " \\\n " (argsAttrToList frontend_args)} \
|
||||
${stringOrConcat " " cfg.frontend.extraArgs}
|
||||
--servers ${concatStringsSep "," cfg.frontend.servers } \
|
||||
--domain ${cfg.frontend.domain} \
|
||||
--listen ${cfg.frontend.listenAddress} \
|
||||
--proxy-port ${toString cfg.frontend.proxyPort} \
|
||||
--whois ${cfg.frontend.whois} \
|
||||
--dns-interface ${cfg.frontend.dnsInterface} \
|
||||
--bgpmap-info ${concatStringsSep "," cfg.frontend.bgpMapInfo } \
|
||||
--title-brand ${cfg.frontend.titleBrand} \
|
||||
--navbar-brand ${cfg.frontend.navbar.brand} \
|
||||
--navbar-brand-url ${cfg.frontend.navbar.brandURL} \
|
||||
--navbar-all-servers ${cfg.frontend.navbar.allServers} \
|
||||
--navbar-all-url ${cfg.frontend.navbar.allServersURL} \
|
||||
--net-specific-mode ${cfg.frontend.netSpecificMode} \
|
||||
--protocol-filter ${concatStringsSep "," cfg.frontend.protocolFilter } \
|
||||
--name-filter ${cfg.frontend.nameFilter} \
|
||||
--time-out ${toString cfg.frontend.timeout} \
|
||||
${cfg.frontend.extraArgs}
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -296,8 +247,12 @@ in
|
||||
};
|
||||
script = ''
|
||||
${cfg.package}/bin/proxy \
|
||||
${concatStringsSep " \\\n " (argsAttrToList proxy_args)} \
|
||||
${stringOrConcat " " cfg.proxy.extraArgs}
|
||||
--allowed ${concatStringsSep "," cfg.proxy.allowedIPs } \
|
||||
--bird ${cfg.proxy.birdSocket} \
|
||||
--listen ${cfg.proxy.listenAddress} \
|
||||
--traceroute_bin ${cfg.proxy.traceroute.binary}
|
||||
--traceroute_raw ${boolToString cfg.proxy.traceroute.rawOutput}
|
||||
${cfg.proxy.extraArgs}
|
||||
'';
|
||||
};
|
||||
};
|
||||
@@ -311,9 +266,4 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
e1mo
|
||||
tchekda
|
||||
];
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ in
|
||||
(filterAttrs (n: _: hasPrefix "consul.d/" n) config.environment.etc);
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "@${lib.getExe cfg.package} consul agent -config-dir /etc/consul.d"
|
||||
ExecStart = "@${cfg.package}/bin/consul consul agent -config-dir /etc/consul.d"
|
||||
+ concatMapStrings (n: " -config-file ${n}") configFiles;
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
PermissionsStartOnly = true;
|
||||
@@ -207,10 +207,10 @@ in
|
||||
Restart = "on-failure";
|
||||
TimeoutStartSec = "infinity";
|
||||
} // (optionalAttrs (cfg.leaveOnStop) {
|
||||
ExecStop = "${lib.getExe cfg.package} leave";
|
||||
ExecStop = "${cfg.package}/bin/consul leave";
|
||||
});
|
||||
|
||||
path = with pkgs; [ iproute2 gawk cfg.package ];
|
||||
path = with pkgs; [ iproute2 gnugrep gawk consul ];
|
||||
preStart = let
|
||||
family = if cfg.forceAddrFamily == "ipv6" then
|
||||
"-6"
|
||||
@@ -269,7 +269,7 @@ in
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = ''
|
||||
${lib.getExe cfg.alerts.package} start \
|
||||
${cfg.alerts.package}/bin/consul-alerts start \
|
||||
--alert-addr=${cfg.alerts.listenAddr} \
|
||||
--consul-addr=${cfg.alerts.consulAddr} \
|
||||
${optionalString cfg.alerts.watchChecks "--watch-checks"} \
|
||||
|
||||
@@ -10,7 +10,6 @@ let cfg = config.services.cloud-init;
|
||||
openssh
|
||||
shadow
|
||||
util-linux
|
||||
busybox
|
||||
] ++ optional cfg.btrfs.enable btrfs-progs
|
||||
++ optional cfg.ext4.enable e2fsprogs
|
||||
;
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
inherit (lib.options) showOption showFiles;
|
||||
|
||||
cfg = config.services.dokuwiki;
|
||||
eachSite = cfg.sites;
|
||||
user = "dokuwiki";
|
||||
@@ -65,6 +63,7 @@ let
|
||||
conf_gen = c: map (v: "$conf${v}") (mkPhpAttrVals c);
|
||||
in writePhpFile "local-${hostName}.php" ''
|
||||
${concatStringsSep "\n" (conf_gen cfg.mergedConfig)}
|
||||
${toString cfg.extraConfig}
|
||||
'';
|
||||
|
||||
dokuwikiPluginsLocalConfig = hostName: cfg: let
|
||||
@@ -91,13 +90,13 @@ let
|
||||
|
||||
page = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc "Page or namespace to restrict";
|
||||
description = "Page or namespace to restrict";
|
||||
example = "start";
|
||||
};
|
||||
|
||||
actor = mkOption {
|
||||
type = types.str;
|
||||
description = lib.mdDoc "User or group to restrict";
|
||||
description = "User or group to restrict";
|
||||
example = "@external";
|
||||
};
|
||||
|
||||
@@ -113,69 +112,38 @@ let
|
||||
in mkOption {
|
||||
type = types.enum ((attrValues available) ++ (attrNames available));
|
||||
apply = x: if isInt x then x else available.${x};
|
||||
description = lib.mdDoc ''
|
||||
description = ''
|
||||
Permission level to restrict the actor(s) to.
|
||||
See <https://www.dokuwiki.org/acl#background_info> for explanation
|
||||
'';
|
||||
example = "read";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
# The current implementations of `doRename`, `mkRenamedOptionModule` do not provide the full options path when used with submodules.
|
||||
# They would only show `settings.useacl' instead of `services.dokuwiki.sites."site1.local".settings.useacl'
|
||||
# The partial re-implementation of these functions is done to help users in debugging by showing the full path.
|
||||
mkRenamed = from: to: { config, options, name, ... }: let
|
||||
pathPrefix = [ "services" "dokuwiki" "sites" name ];
|
||||
fromPath = pathPrefix ++ from;
|
||||
fromOpt = getAttrFromPath from options;
|
||||
toOp = getAttrsFromPath to config;
|
||||
toPath = pathPrefix ++ to;
|
||||
in {
|
||||
options = setAttrByPath from (mkOption {
|
||||
visible = false;
|
||||
description = lib.mdDoc "Alias of {option}${showOption toPath}";
|
||||
apply = x: builtins.trace "Obsolete option `${showOption fromPath}' is used. It was renamed to ${showOption toPath}" toOp;
|
||||
});
|
||||
config = mkMerge [
|
||||
{
|
||||
warnings = optional fromOpt.isDefined
|
||||
"The option `${showOption fromPath}' defined in ${showFiles fromOpt.files} has been renamed to `${showOption toPath}'.";
|
||||
}
|
||||
(lib.modules.mkAliasAndWrapDefsWithPriority (setAttrByPath to) fromOpt)
|
||||
];
|
||||
};
|
||||
|
||||
siteOpts = { options, config, lib, name, ... }:
|
||||
siteOpts = { config, lib, name, ... }:
|
||||
{
|
||||
imports = [
|
||||
(mkRenamed [ "aclUse" ] [ "settings" "useacl" ])
|
||||
(mkRenamed [ "superUser" ] [ "settings" "superuser" ])
|
||||
(mkRenamed [ "disableActions" ] [ "settings" "disableactions" ])
|
||||
({ config, options, ... }: let
|
||||
showPath = suffix: lib.options.showOption ([ "services" "dokuwiki" "sites" name ] ++ suffix);
|
||||
replaceExtraConfig = "Please use `${showPath ["settings"]}' to pass structured settings instead.";
|
||||
ecOpt = options.extraConfig;
|
||||
ecPath = showPath [ "extraConfig" ];
|
||||
in {
|
||||
options.extraConfig = mkOption {
|
||||
visible = false;
|
||||
apply = x: throw "The option ${ecPath} can no longer be used since it's been removed.\n${replaceExtraConfig}";
|
||||
};
|
||||
config.assertions = [
|
||||
{
|
||||
assertion = !ecOpt.isDefined;
|
||||
message = "The option definition `${ecPath}' in ${showFiles ecOpt.files} no longer has any effect; please remove it.\n${replaceExtraConfig}";
|
||||
}
|
||||
{
|
||||
assertion = config.mergedConfig.useacl -> (config.acl != null || config.aclFile != null);
|
||||
message = "Either ${showPath [ "acl" ]} or ${showPath [ "aclFile" ]} is mandatory if ${showPath [ "settings" "useacl" ]} is true";
|
||||
}
|
||||
{
|
||||
assertion = config.usersFile != null -> config.mergedConfig.useacl != false;
|
||||
message = "${showPath [ "settings" "useacl" ]} is required when ${showPath [ "usersFile" ]} is set (Currently defiend as `${config.usersFile}' in ${showFiles options.usersFile.files}).";
|
||||
}
|
||||
];
|
||||
# NOTE: These will sadly not print the absolute argument path but only the name. Related to #96006
|
||||
(mkRenamedOptionModule [ "aclUse" ] [ "settings" "useacl" ] )
|
||||
(mkRenamedOptionModule [ "superUser" ] [ "settings" "superuser" ] )
|
||||
(mkRenamedOptionModule [ "disableActions" ] [ "settings" "disableactions" ] )
|
||||
({ config, options, name, ...}: {
|
||||
config.warnings =
|
||||
(optional (isString config.pluginsConfig) ''
|
||||
Passing plain strings to services.dokuwiki.sites.${name}.pluginsConfig has been deprecated and will not be continue to be supported in the future.
|
||||
Please pass structured settings instead.
|
||||
'')
|
||||
++ (optional (isString config.acl) ''
|
||||
Passing a plain string to services.dokuwiki.sites.${name}.acl has been deprecated and will not continue to be supported in the future.
|
||||
Please pass structured settings instead.
|
||||
'')
|
||||
++ (optional (config.extraConfig != null) ''
|
||||
services.dokuwiki.sites.${name}.extraConfig is deprecated and will be removed in the future.
|
||||
Please pass structured settings to services.dokuwiki.sites.${name}.settings instead.
|
||||
'')
|
||||
;
|
||||
})
|
||||
];
|
||||
|
||||
@@ -196,7 +164,7 @@ let
|
||||
};
|
||||
|
||||
acl = mkOption {
|
||||
type = with types; nullOr (listOf (submodule aclOpts));
|
||||
type = with types; nullOr (oneOf [ lines (listOf (submodule aclOpts)) ]);
|
||||
default = null;
|
||||
example = literalExpression ''
|
||||
[
|
||||
@@ -235,7 +203,7 @@ let
|
||||
};
|
||||
|
||||
pluginsConfig = mkOption {
|
||||
type = with types; attrsOf bool;
|
||||
type = with types; oneOf [lines (attrsOf bool)];
|
||||
default = {
|
||||
authad = false;
|
||||
authldap = false;
|
||||
@@ -402,21 +370,36 @@ let
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
# This Option is deprecated and only kept until sometime before 23.05 for compatibility reasons
|
||||
# FIXME (@e1mo): Actually remember removing this before 23.05.
|
||||
visible = false;
|
||||
type = types.nullOr types.lines;
|
||||
default = null;
|
||||
example = ''
|
||||
$conf['title'] = 'My Wiki';
|
||||
$conf['userewrite'] = 1;
|
||||
'';
|
||||
description = lib.mdDoc ''
|
||||
DokuWiki configuration. Refer to
|
||||
<https://www.dokuwiki.org/config>
|
||||
for details on supported values.
|
||||
|
||||
**Note**: Please pass Structured settings via
|
||||
`services.dokuwiki.sites.${name}.settings` instead.
|
||||
'';
|
||||
};
|
||||
|
||||
# Required for the mkRenamedOptionModule
|
||||
# TODO: Remove me once https://github.com/NixOS/nixpkgs/issues/96006 is fixed
|
||||
# or we don't have any more notes about the removal of extraConfig, ...
|
||||
# or the aclUse, ... options are removed.
|
||||
warnings = mkOption {
|
||||
type = types.listOf types.unspecified;
|
||||
default = [ ];
|
||||
visible = false;
|
||||
internal = true;
|
||||
};
|
||||
assertions = mkOption {
|
||||
type = types.listOf types.unspecified;
|
||||
default = [ ];
|
||||
visible = false;
|
||||
internal = true;
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
in
|
||||
@@ -452,7 +435,16 @@ in
|
||||
|
||||
warnings = flatten (mapAttrsToList (_: cfg: cfg.warnings) eachSite);
|
||||
|
||||
assertions = flatten (mapAttrsToList (_: cfg: cfg.assertions) eachSite);
|
||||
assertions = flatten (mapAttrsToList (hostName: cfg:
|
||||
[{
|
||||
assertion = cfg.mergedConfig.useacl -> (cfg.acl != null || cfg.aclFile != null);
|
||||
message = "Either services.dokuwiki.sites.${hostName}.acl or services.dokuwiki.sites.${hostName}.aclFile is mandatory if settings.useacl is true";
|
||||
}
|
||||
{
|
||||
assertion = cfg.usersFile != null -> cfg.mergedConfig.useacl != false;
|
||||
message = "services.dokuwiki.sites.${hostName}.settings.useacl must must be true if usersFile is not null";
|
||||
}
|
||||
]) eachSite);
|
||||
|
||||
services.phpfpm.pools = mapAttrs' (hostName: cfg: (
|
||||
nameValuePair "dokuwiki-${hostName}" {
|
||||
|
||||
@@ -156,8 +156,8 @@ in
|
||||
};
|
||||
|
||||
documentation = [
|
||||
"https://join-lemmy.org/docs/en/admins/from_scratch.html"
|
||||
"https://join-lemmy.org/docs/en/"
|
||||
"https://join-lemmy.org/docs/en/administration/from_scratch.html"
|
||||
"https://join-lemmy.org/docs"
|
||||
];
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
@@ -185,8 +185,8 @@ in
|
||||
};
|
||||
|
||||
documentation = [
|
||||
"https://join-lemmy.org/docs/en/admins/from_scratch.html"
|
||||
"https://join-lemmy.org/docs/en/"
|
||||
"https://join-lemmy.org/docs/en/administration/from_scratch.html"
|
||||
"https://join-lemmy.org/docs"
|
||||
];
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
@@ -429,7 +429,7 @@ in {
|
||||
|
||||
environment = env;
|
||||
|
||||
path = with pkgs; [ bashInteractive ffmpeg nodejs_16 openssl yarn python3 ];
|
||||
path = with pkgs; [ bashInteractive ffmpeg nodejs-16_x openssl yarn python3 ];
|
||||
|
||||
script = ''
|
||||
#!/bin/sh
|
||||
@@ -859,7 +859,7 @@ in {
|
||||
home = cfg.package;
|
||||
};
|
||||
})
|
||||
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package peertubeEnv peertubeCli pkgs.ffmpeg pkgs.nodejs_16 pkgs.yarn ])
|
||||
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package peertubeEnv peertubeCli pkgs.ffmpeg pkgs.nodejs-16_x pkgs.yarn ])
|
||||
(lib.mkIf cfg.redis.enableUnixSocket {${config.services.peertube.user}.extraGroups = [ "redis-peertube" ];})
|
||||
];
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ in {
|
||||
WorkingDirectory = "/var/lib/${cfg.stateDirectoryName}";
|
||||
DynamicUser = true;
|
||||
PrivateTmp = true;
|
||||
ExecStart = "${pkgs.nodejs_16}/bin/node ${pkgs.wiki-js}/server";
|
||||
ExecStart = "${pkgs.nodejs-16_x}/bin/node ${pkgs.wiki-js}/server";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -256,6 +256,8 @@ let
|
||||
|
||||
${proxyCachePathConfig}
|
||||
|
||||
${vhosts}
|
||||
|
||||
${optionalString cfg.statusPage ''
|
||||
server {
|
||||
listen ${toString cfg.defaultHTTPListenPort};
|
||||
@@ -273,8 +275,6 @@ let
|
||||
}
|
||||
''}
|
||||
|
||||
${vhosts}
|
||||
|
||||
${cfg.appendHttpConfig}
|
||||
}''}
|
||||
|
||||
|
||||
@@ -1,198 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.stargazer;
|
||||
routesFormat = pkgs.formats.ini { };
|
||||
globalFile = pkgs.writeText "global.ini" ''
|
||||
listen = ${concatStringsSep " " cfg.listen}
|
||||
connection-logging = ${boolToString cfg.connectionLogging}
|
||||
log-ip = ${boolToString cfg.ipLog}
|
||||
log-ip-partial = ${boolToString cfg.ipLogPartial}
|
||||
request-timeout = ${toString cfg.requestTimeout}
|
||||
response-timeout = ${toString cfg.responseTimeout}
|
||||
|
||||
[:tls]
|
||||
store = ${toString cfg.store}
|
||||
organization = ${cfg.certOrg}
|
||||
gen-certs = ${boolToString cfg.genCerts}
|
||||
regen-certs = ${boolToString cfg.regenCerts}
|
||||
${optionalString (cfg.certLifetime != "") "cert-lifetime = ${cfg.certLifetime}"}
|
||||
|
||||
'';
|
||||
routesFile = routesFormat.generate "router.ini" cfg.routes;
|
||||
configFile = pkgs.runCommand "config.ini" { } ''
|
||||
cat ${globalFile} ${routesFile} > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.stargazer = {
|
||||
enable = mkEnableOption (lib.mdDoc "Stargazer Gemini server");
|
||||
|
||||
listen = lib.mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ "0.0.0.0" ] ++ optional config.networking.enableIPv6 "[::0]";
|
||||
defaultText = literalExpression ''[ "0.0.0.0" ] ++ lib.optional config.networking.enableIPv6 "[::0]"'';
|
||||
example = literalExpression ''[ "10.0.0.12" "[2002:a00:1::]" ]'';
|
||||
description = lib.mdDoc ''
|
||||
Address and port to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
connectionLogging = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc "Whether or not to log connections to stdout.";
|
||||
};
|
||||
|
||||
ipLog = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Log client IP addresses in the connection log.";
|
||||
};
|
||||
|
||||
ipLogPartial = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = lib.mdDoc "Log partial client IP addresses in the connection log.";
|
||||
};
|
||||
|
||||
requestTimeout = lib.mkOption {
|
||||
type = types.int;
|
||||
default = 5;
|
||||
description = lib.mdDoc ''
|
||||
Number of seconds to wait for the client to send a complete
|
||||
request. Set to 0 to disable.
|
||||
'';
|
||||
};
|
||||
|
||||
responseTimeout = lib.mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description = lib.mdDoc ''
|
||||
Number of seconds to wait for the client to send a complete
|
||||
request and for stargazer to finish sending the response.
|
||||
Set to 0 to disable.
|
||||
'';
|
||||
};
|
||||
|
||||
store = lib.mkOption {
|
||||
type = types.path;
|
||||
default = /var/lib/gemini/certs;
|
||||
description = lib.mdDoc ''
|
||||
Path to the certificate store on disk. This should be a
|
||||
persistent directory writable by Stargazer.
|
||||
'';
|
||||
};
|
||||
|
||||
certOrg = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "stargazer";
|
||||
description = lib.mdDoc ''
|
||||
The name of the organization responsible for the X.509
|
||||
certificate's /O name.
|
||||
'';
|
||||
};
|
||||
|
||||
genCerts = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Set to false to disable automatic certificate generation.
|
||||
Use if you want to provide your own certs.
|
||||
'';
|
||||
};
|
||||
|
||||
regenCerts = lib.mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = lib.mdDoc ''
|
||||
Set to false to turn off automatic regeneration of expired certificates.
|
||||
Use if you want to provide your own certs.
|
||||
'';
|
||||
};
|
||||
|
||||
certLifetime = lib.mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = lib.mdDoc ''
|
||||
How long certs generated by Stargazer should live for.
|
||||
Certs live forever by default.
|
||||
'';
|
||||
example = literalExpression "\"1y\"";
|
||||
};
|
||||
|
||||
routes = lib.mkOption {
|
||||
type = routesFormat.type;
|
||||
default = { };
|
||||
description = lib.mdDoc ''
|
||||
Routes that Stargazer should server.
|
||||
|
||||
[Refer to upstream docs](https://git.sr.ht/~zethra/stargazer/tree/main/item/doc/stargazer.ini.5.txt)
|
||||
'';
|
||||
example = literalExpression ''
|
||||
{
|
||||
"example.com" = {
|
||||
root = "/srv/gemini/example.com";
|
||||
};
|
||||
"example.com:/man" = {
|
||||
root = "/cgi-bin";
|
||||
cgi = true;
|
||||
};
|
||||
"other.org~(.*)" = {
|
||||
redirect = "gemini://example.com";
|
||||
rewrite = "\1";
|
||||
};
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "stargazer";
|
||||
description = lib.mdDoc "User account under which stargazer runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "stargazer";
|
||||
description = lib.mdDoc "Group account under which stargazer runs.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.stargazer = {
|
||||
description = "Stargazer gemini server";
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.stargazer}/bin/stargazer ${configFile}";
|
||||
Restart = "always";
|
||||
# User and group
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
# Create default cert store
|
||||
system.activationScripts.makeStargazerCertDir =
|
||||
optionalAttrs (cfg.store == /var/lib/gemini/certs) ''
|
||||
mkdir -p /var/lib/gemini/certs
|
||||
chown -R ${cfg.user}:${cfg.group} /var/lib/gemini/certs
|
||||
'';
|
||||
|
||||
users.users = optionalAttrs (cfg.user == "stargazer") {
|
||||
stargazer = {
|
||||
group = cfg.group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = optionalAttrs (cfg.group == "stargazer") {
|
||||
stargazer = { };
|
||||
};
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ gaykitty ];
|
||||
}
|
||||
@@ -12,37 +12,10 @@ let
|
||||
inherit (cfg) extraGSettingsOverrides extraGSettingsOverridePackages;
|
||||
inherit nixos-background-dark nixos-background-light;
|
||||
};
|
||||
|
||||
nixos-background-info = pkgs.writeTextFile {
|
||||
name = "nixos-background-info";
|
||||
text = ''
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
|
||||
<wallpapers>
|
||||
<wallpaper deleted="false">
|
||||
<name>Nineish</name>
|
||||
<filename>${nixos-background-light.gnomeFilePath}</filename>
|
||||
<options>zoom</options>
|
||||
<shade_type>solid</shade_type>
|
||||
<pcolor>#d1dcf8</pcolor>
|
||||
<scolor>#e3ebfe</scolor>
|
||||
</wallpaper>
|
||||
<wallpaper deleted="false">
|
||||
<name>Nineish Dark Gray</name>
|
||||
<filename>${nixos-background-dark.gnomeFilePath}</filename>
|
||||
<options>zoom</options>
|
||||
<shade_type>solid</shade_type>
|
||||
<pcolor>#151515</pcolor>
|
||||
<scolor>#262626</scolor>
|
||||
</wallpaper>
|
||||
</wallpapers>
|
||||
'';
|
||||
destination = "/share/gnome-background-properties/nixos.xml";
|
||||
};
|
||||
in {
|
||||
options = {
|
||||
services.xserver.desktopManager.budgie = {
|
||||
enable = mkEnableOption (mdDoc "the Budgie desktop");
|
||||
enable = mkEnableOption (mdDoc "Budgie desktop");
|
||||
|
||||
sessionPath = mkOption {
|
||||
description = mdDoc "Additional list of packages to be added to the session search path. Useful for GSettings-conditional autostart.";
|
||||
@@ -62,12 +35,6 @@ in {
|
||||
type = with types; listOf path;
|
||||
default = [];
|
||||
};
|
||||
|
||||
extraPlugins = mkOption {
|
||||
description = mdDoc "Extra plugins for the Budgie desktop";
|
||||
type = with types; listOf package;
|
||||
default = [];
|
||||
};
|
||||
};
|
||||
|
||||
environment.budgie.excludePackages = mkOption {
|
||||
@@ -109,19 +76,16 @@ in {
|
||||
# Budgie Desktop.
|
||||
budgie.budgie-backgrounds
|
||||
budgie.budgie-control-center
|
||||
(budgie.budgie-desktop-with-plugins.override { plugins = cfg.extraPlugins; })
|
||||
budgie.budgie-desktop
|
||||
budgie.budgie-desktop-view
|
||||
budgie.budgie-screensaver
|
||||
|
||||
# Required by the Budgie Desktop session.
|
||||
(gnome.gnome-session.override { gnomeShellSupport = false; })
|
||||
(gnome.gnome-session.override {gnomeShellSupport = false;})
|
||||
|
||||
# Required by Budgie Menu.
|
||||
gnome-menus
|
||||
|
||||
# Required by Budgie Control Center.
|
||||
gnome.zenity
|
||||
|
||||
# Provides `gsettings`.
|
||||
glib
|
||||
|
||||
@@ -142,7 +106,6 @@ in {
|
||||
# Desktop themes.
|
||||
qogir-theme
|
||||
qogir-icon-theme
|
||||
nixos-background-info
|
||||
|
||||
# Default settings.
|
||||
nixos-gsettings-overrides
|
||||
|
||||
@@ -125,10 +125,6 @@ let
|
||||
magicOrExtension = ''\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00'';
|
||||
mask = ''\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'';
|
||||
};
|
||||
loongarch64-linux = {
|
||||
magicOrExtension = ''\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x02\x01'';
|
||||
mask = ''\xff\xff\xff\xff\xff\xff\xff\xfc\x00\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff'';
|
||||
};
|
||||
wasm32-wasi = {
|
||||
magicOrExtension = ''\x00asm'';
|
||||
mask = ''\xff\xff\xff\xff'';
|
||||
|
||||
@@ -55,6 +55,11 @@ let
|
||||
|
||||
};
|
||||
|
||||
selectPartitionTableLayout = { useEFIBoot, useDefaultFilesystems }:
|
||||
if useDefaultFilesystems then
|
||||
if useEFIBoot then "efi" else "legacy"
|
||||
else "none";
|
||||
|
||||
driveCmdline = idx: { file, driveExtraOpts, deviceExtraOpts, ... }:
|
||||
let
|
||||
drvId = "drive${toString idx}";
|
||||
@@ -208,8 +213,6 @@ let
|
||||
|
||||
regInfo = pkgs.closureInfo { rootPaths = config.virtualisation.additionalPaths; };
|
||||
|
||||
selectPartitionTableLayout = { useEFIBoot, useDefaultPartitionTable }: if useDefaultPartitionTable then (if useEFIBoot then "efi" else "legacy") else "none";
|
||||
|
||||
# System image is akin to a complete NixOS install with
|
||||
# a boot partition and root partition.
|
||||
systemImage = import ../../lib/make-disk-image.nix {
|
||||
@@ -217,7 +220,7 @@ let
|
||||
additionalPaths = [ regInfo ];
|
||||
format = "qcow2";
|
||||
onlyNixStore = false;
|
||||
partitionTableType = selectPartitionTableLayout { inherit (cfg) useDefaultPartitionTable useEFIBoot; };
|
||||
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
|
||||
# or a strange partition table that's incompatible with GRUB configuration.
|
||||
@@ -571,15 +574,12 @@ in
|
||||
virtualisation.writableStore =
|
||||
mkOption {
|
||||
type = types.bool;
|
||||
default = cfg.mountHostNixStore;
|
||||
defaultText = literalExpression "cfg.mountHostNixStore";
|
||||
default = true; # FIXME
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
If enabled, the Nix store in the VM is made writable by
|
||||
layering an overlay filesystem on top of the host's Nix
|
||||
store.
|
||||
|
||||
By default, this is enabled if you mount a host Nix store.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -713,21 +713,6 @@ in
|
||||
For applications which do a lot of reads from the store,
|
||||
this can drastically improve performance, but at the cost of
|
||||
disk space and image build time.
|
||||
|
||||
As an alternative, you can use a bootloader which will provide you
|
||||
with a full NixOS system image containing a Nix store and
|
||||
avoid mounting the host nix store through
|
||||
{option}`virtualisation.mountHostNixStore`.
|
||||
'';
|
||||
};
|
||||
|
||||
virtualisation.mountHostNixStore =
|
||||
mkOption {
|
||||
type = types.bool;
|
||||
default = !cfg.useNixStoreImage && !cfg.useBootLoader;
|
||||
defaultText = literalExpression "!cfg.useNixStoreImage && !cfg.useBootLoader";
|
||||
description = lib.mdDoc ''
|
||||
Mount the host Nix store as a 9p mount.
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -799,28 +784,13 @@ in
|
||||
default = true;
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
If enabled, the system disk of the virtual machine will be
|
||||
If enabled, the boot disk of the virtual machine will be
|
||||
formatted and mounted with the default filesystems for
|
||||
testing. Swap devices and LUKS will be disabled.
|
||||
|
||||
If disabled, a root filesystem has to be specified and
|
||||
formatted (for example in the initial ramdisk).
|
||||
'';
|
||||
};
|
||||
|
||||
virtualisation.useDefaultPartitionTable =
|
||||
mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description =
|
||||
lib.mdDoc ''
|
||||
If enabled, the partition table of the system disk for the virtual machine
|
||||
will be initialized according to your boot configuration.
|
||||
e.g. GPT for UEFI, MBR for BIOS.
|
||||
|
||||
If disabled, UEFI cannot be used as we have no way to determine if you are passing
|
||||
a GPT partition table for the bootloader installation phase.
|
||||
'';
|
||||
};
|
||||
|
||||
virtualisation.useSecureBoot =
|
||||
@@ -867,21 +837,6 @@ in
|
||||
The address must be in the default VLAN (10.0.2.0/24).
|
||||
'';
|
||||
}
|
||||
{ assertion = cfg.useDefaultFilesystems -> cfg.useDefaultPartitionTable;
|
||||
message =
|
||||
''
|
||||
You cannot use a non-default partition table with the default filesystems.
|
||||
'';
|
||||
}
|
||||
{
|
||||
assertion = !cfg.useDefaultPartitionTable -> !cfg.useEFIBoot;
|
||||
message =
|
||||
''
|
||||
You cannot use UEFI with a non-default partition table.
|
||||
This is a limitation of the NixOS module, please open an issue explaining your needs
|
||||
if you run into this.
|
||||
'';
|
||||
}
|
||||
]));
|
||||
|
||||
warnings =
|
||||
@@ -978,7 +933,7 @@ in
|
||||
virtualisation.additionalPaths = [ config.system.build.toplevel ];
|
||||
|
||||
virtualisation.sharedDirectories = {
|
||||
nix-store = mkIf cfg.mountHostNixStore {
|
||||
nix-store = mkIf (!cfg.useNixStoreImage) {
|
||||
source = builtins.storeDir;
|
||||
target = "/nix/store";
|
||||
};
|
||||
|
||||
@@ -634,7 +634,6 @@ in {
|
||||
smokeping = handleTest ./smokeping.nix {};
|
||||
snapcast = handleTest ./snapcast.nix {};
|
||||
snapper = handleTest ./snapper.nix {};
|
||||
snipe-it = runTest ./web-apps/snipe-it.nix;
|
||||
soapui = handleTest ./soapui.nix {};
|
||||
sogo = handleTest ./sogo.nix {};
|
||||
solanum = handleTest ./solanum.nix {};
|
||||
@@ -646,7 +645,6 @@ in {
|
||||
sslh = handleTest ./sslh.nix {};
|
||||
sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
|
||||
sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
|
||||
stargazer = runTest ./web-servers/stargazer.nix;
|
||||
starship = handleTest ./starship.nix {};
|
||||
step-ca = handleTestOn ["x86_64-linux"] ./step-ca.nix {};
|
||||
stratis = handleTest ./stratis {};
|
||||
@@ -714,7 +712,6 @@ in {
|
||||
tiddlywiki = handleTest ./tiddlywiki.nix {};
|
||||
tigervnc = handleTest ./tigervnc.nix {};
|
||||
timescaledb = handleTest ./timescaledb.nix {};
|
||||
promscale = handleTest ./promscale.nix {};
|
||||
timezone = handleTest ./timezone.nix {};
|
||||
tinc = handleTest ./tinc {};
|
||||
tinydns = handleTest ./tinydns.nix {};
|
||||
|
||||
@@ -20,12 +20,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
|
||||
};
|
||||
};
|
||||
|
||||
services.xserver.desktopManager.budgie = {
|
||||
enable = true;
|
||||
extraPlugins = [
|
||||
pkgs.budgie.budgie-analogue-clock-applet
|
||||
];
|
||||
};
|
||||
services.xserver.desktopManager.budgie.enable = true;
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }:
|
||||
|
||||
@@ -72,7 +72,6 @@ let
|
||||
|
||||
server.wait_for_unit("gitea.service")
|
||||
server.wait_for_open_port(3000)
|
||||
server.wait_for_open_port(22)
|
||||
server.succeed("curl --fail http://localhost:3000/")
|
||||
|
||||
server.succeed(
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
{ pkgs, makeInstalledTest, ... }:
|
||||
{ pkgs, lib, makeInstalledTest, ... }:
|
||||
|
||||
makeInstalledTest {
|
||||
tested = pkgs.pipewire;
|
||||
testConfig = {
|
||||
hardware.pulseaudio.enable = false;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
# mostly copied from ./timescaledb.nix which was copied from ./postgresql.nix
|
||||
# as it seemed unapproriate to test additional extensions for postgresql there.
|
||||
|
||||
{ system ? builtins.currentSystem
|
||||
, config ? { }
|
||||
, pkgs ? import ../.. { inherit system config; }
|
||||
}:
|
||||
|
||||
with import ../lib/testing-python.nix { inherit system pkgs; };
|
||||
with pkgs.lib;
|
||||
|
||||
let
|
||||
postgresql-versions = import ../../pkgs/servers/sql/postgresql pkgs;
|
||||
test-sql = pkgs.writeText "postgresql-test" ''
|
||||
CREATE USER promscale SUPERUSER PASSWORD 'promscale';
|
||||
CREATE DATABASE promscale OWNER promscale;
|
||||
'';
|
||||
|
||||
make-postgresql-test = postgresql-name: postgresql-package: makeTest {
|
||||
name = postgresql-name;
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ anpin ];
|
||||
};
|
||||
|
||||
nodes.machine = { config, pkgs, ... }:
|
||||
{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
package = postgresql-package;
|
||||
extraPlugins = with postgresql-package.pkgs; [
|
||||
timescaledb
|
||||
promscale_extension
|
||||
];
|
||||
settings = { shared_preload_libraries = "timescaledb, promscale"; };
|
||||
};
|
||||
environment.systemPackages = with pkgs; [ promscale ];
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
machine.wait_for_unit("postgresql")
|
||||
with subtest("Postgresql with extensions timescaledb and promscale is available just after unit start"):
|
||||
print(machine.succeed("sudo -u postgres psql -f ${test-sql}"))
|
||||
machine.succeed("sudo -u postgres psql promscale -c 'SHOW shared_preload_libraries;' | grep promscale")
|
||||
machine.succeed(
|
||||
"promscale --db.name promscale --db.password promscale --db.user promscale --db.ssl-mode allow --startup.install-extensions --startup.only"
|
||||
)
|
||||
machine.succeed("sudo -u postgres psql promscale -c 'SELECT ps_trace.get_trace_retention_period();' | grep '(1 row)'")
|
||||
machine.shutdown()
|
||||
'';
|
||||
};
|
||||
#version 15 is not supported yet
|
||||
applicablePostgresqlVersions = filterAttrs (_: value: versionAtLeast value.version "12" && !(versionAtLeast value.version "15")) postgresql-versions;
|
||||
in
|
||||
mapAttrs'
|
||||
(name: package: {
|
||||
inherit name;
|
||||
value = make-postgresql-test name package;
|
||||
})
|
||||
applicablePostgresqlVersions
|
||||
@@ -1,101 +0,0 @@
|
||||
/*
|
||||
Snipe-IT NixOS test
|
||||
|
||||
It covers the following scenario:
|
||||
- Installation
|
||||
- Backup and restore
|
||||
|
||||
Scenarios NOT covered by this test (but perhaps in the future):
|
||||
- Sending and receiving emails
|
||||
*/
|
||||
{ pkgs, ... }: let
|
||||
siteName = "NixOS Snipe-IT Test Instance";
|
||||
in {
|
||||
name = "snipe-it";
|
||||
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ yayayayaka ];
|
||||
|
||||
nodes = {
|
||||
snipeit = { ... }: {
|
||||
services.snipe-it = {
|
||||
enable = true;
|
||||
appKeyFile = toString (pkgs.writeText "snipe-it-app-key" "uTqGUN5GUmUrh/zSAYmhyzRk62pnpXICyXv9eeITI8k=");
|
||||
hostName = "localhost";
|
||||
database.createLocally = true;
|
||||
mail = {
|
||||
driver = "smtp";
|
||||
encryption = "tls";
|
||||
host = "localhost";
|
||||
port = 1025;
|
||||
from.name = "Snipe-IT NixOS test";
|
||||
from.address = "snipe-it@localhost";
|
||||
replyTo.address = "snipe-it@localhost";
|
||||
user = "snipe-it@localhost";
|
||||
passwordFile = toString (pkgs.writeText "snipe-it-mail-pass" "a-secure-mail-password");
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes }: let
|
||||
backupPath = "${nodes.snipeit.services.snipe-it.dataDir}/storage/app/backups";
|
||||
|
||||
# Snipe-IT has been installed successfully if the site name shows up on the login page
|
||||
checkLoginPage = { shouldSucceed ? true }: ''
|
||||
snipeit.${if shouldSucceed then "succeed" else "fail"}("""curl http://localhost/login | grep '${siteName}'""")
|
||||
'';
|
||||
in ''
|
||||
start_all()
|
||||
|
||||
snipeit.wait_for_unit("nginx.service")
|
||||
snipeit.wait_for_unit("snipe-it-setup.service")
|
||||
|
||||
# Create an admin user
|
||||
snipeit.succeed(
|
||||
"""
|
||||
snipe-it snipeit:create-admin \
|
||||
--username="admin" \
|
||||
--email="janedoe@localhost" \
|
||||
--password="extremesecurepassword" \
|
||||
--first_name="Jane" \
|
||||
--last_name="Doe"
|
||||
"""
|
||||
)
|
||||
|
||||
with subtest("Circumvent the pre-flight setup by just writing some settings into the database ourself"):
|
||||
snipeit.succeed(
|
||||
"""
|
||||
mysql -D ${nodes.snipeit.services.snipe-it.database.name} -e "INSERT INTO settings (id, user_id, site_name) VALUES ('1', '1', '${siteName}');"
|
||||
"""
|
||||
)
|
||||
|
||||
# Usually these are generated during the pre-flight setup
|
||||
snipeit.succeed("snipe-it passport:keys")
|
||||
|
||||
|
||||
# Login page should now contain the configured site name
|
||||
${checkLoginPage {}}
|
||||
|
||||
with subtest("Test Backup and restore"):
|
||||
snipeit.succeed("snipe-it snipeit:backup")
|
||||
|
||||
# One zip file should have been created
|
||||
snipeit.succeed("""[ "$(ls -1 "${backupPath}" | wc -l)" -eq 1 ]""")
|
||||
|
||||
# Purge the state
|
||||
snipeit.succeed("snipe-it migrate:fresh --force")
|
||||
|
||||
# Login page should disappear
|
||||
${checkLoginPage { shouldSucceed = false; }}
|
||||
|
||||
# Restore the state
|
||||
snipeit.succeed(
|
||||
"""
|
||||
snipe-it snipeit:restore --force $(find "${backupPath}/" -type f -name "*.zip")
|
||||
"""
|
||||
)
|
||||
|
||||
# Login page should be back again
|
||||
${checkLoginPage {}}
|
||||
'';
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "stargazer";
|
||||
meta = with lib.maintainers; { maintainers = [ gaykitty ]; };
|
||||
|
||||
nodes = {
|
||||
geminiserver = { pkgs, ... }: {
|
||||
services.stargazer = {
|
||||
enable = true;
|
||||
routes = {
|
||||
"localhost" = {
|
||||
root = toString (pkgs.writeTextDir "index.gmi" ''
|
||||
# Hello NixOS!
|
||||
'');
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = { nodes, ... }: ''
|
||||
geminiserver.wait_for_unit("stargazer")
|
||||
geminiserver.wait_for_open_port(1965)
|
||||
|
||||
with subtest("check is serving over gemini"):
|
||||
response = geminiserver.succeed("${pkgs.gmni}/bin/gmni -j once -i -N gemini://localhost:1965")
|
||||
print(response)
|
||||
assert "Hello NixOS!" in response
|
||||
'';
|
||||
}
|
||||
@@ -19,20 +19,20 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "amberol";
|
||||
version = "0.10.1";
|
||||
version = "unstable-2023-01-12";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-pvvpiZHp3Gj3rtjvlnfmC2E0mcmh0/poxidhJC8j4Cg=";
|
||||
rev = "0623386c813d0d68564002324958cef7217cec7f";
|
||||
hash = "sha256-nVL4ydTg4ncDCA9J9qWv+RPDC0Txr/qpo5XxIUiV0zQ=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
hash = "sha256-eb4vVgSAvR2LYVmZmdOIoXxJqFz6q78PIoQPVrOIffc=";
|
||||
hash = "sha256-E0ivUWD3jP/T1GOJ11grDwcF+m92I+W2a2HhZX1bCso=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -61,19 +61,17 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "audacity";
|
||||
version = "3.3.0";
|
||||
version = "3.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "Audacity-${version}";
|
||||
hash = "sha256-OQX3YFUdK9TR7ZuN2dZc6ZAWaqfftk5VH0qoOwbTAuM=";
|
||||
hash = "sha256-tMz55fZh+TfvLEyApDqC0QMd2hEQLJsNQ6y2Xy0xgaQ=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
mkdir src/private
|
||||
substituteInPlace scripts/build/macOS/fix_bundle.py \
|
||||
--replace "path.startswith('/usr/lib/')" "path.startswith('${builtins.storeDir}')"
|
||||
'' + lib.optionalString stdenv.isLinux ''
|
||||
substituteInPlace libraries/lib-files/FileNames.cpp \
|
||||
--replace /usr/include/linux/magic.h ${linuxHeaders}/include/linux/magic.h
|
||||
@@ -153,16 +151,13 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# RPATH of binary /nix/store/.../bin/... contains a forbidden reference to /build/
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=ON"
|
||||
|
||||
# Fix duplicate store paths
|
||||
"-DCMAKE_INSTALL_LIBDIR=lib"
|
||||
];
|
||||
|
||||
# [ 57%] Generating LightThemeAsCeeCode.h...
|
||||
# ../../utils/image-compiler: error while loading shared libraries:
|
||||
# lib-theme.so: cannot open shared object file: No such file or directory
|
||||
preBuild = ''
|
||||
export LD_LIBRARY_PATH=$PWD/Release/lib/audacity
|
||||
export LD_LIBRARY_PATH=$PWD/utils
|
||||
'';
|
||||
|
||||
doCheck = false; # Test fails
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
# output plugins
|
||||
, alsaSupport ? true, alsa-lib
|
||||
, pulseSupport ? config.pulseaudio or true, libpulseaudio
|
||||
, pipewireSupport ? true, pipewire
|
||||
# effect plugins
|
||||
, resamplerSupport ? true, libsamplerate
|
||||
, overloadSupport ? true, zlib
|
||||
@@ -41,7 +40,7 @@ assert gtk2Support || gtk3Support;
|
||||
let
|
||||
inherit (lib) optionals;
|
||||
|
||||
version = "1.9.5";
|
||||
version = "1.9.4";
|
||||
in clangStdenv.mkDerivation {
|
||||
pname = "deadbeef";
|
||||
inherit version;
|
||||
@@ -51,7 +50,7 @@ in clangStdenv.mkDerivation {
|
||||
repo = "deadbeef";
|
||||
fetchSubmodules = true;
|
||||
rev = version;
|
||||
hash = "sha256-dSSIaJxHYUVOmuJN2t5UZSC3ZP5732/qVXSZAuWYr0Q=";
|
||||
sha256 = "sha256-ow+Aw/lp+oe9GhbOWM7XcX/tJjfAAu7KOUY1us7+f84=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@@ -93,8 +92,6 @@ in clangStdenv.mkDerivation {
|
||||
alsa-lib
|
||||
] ++ optionals pulseSupport [
|
||||
libpulseaudio
|
||||
] ++ optionals pipewireSupport [
|
||||
pipewire
|
||||
] ++ optionals resamplerSupport [
|
||||
libsamplerate
|
||||
] ++ optionals overloadSupport [
|
||||
@@ -124,7 +121,6 @@ in clangStdenv.mkDerivation {
|
||||
meta = with lib; {
|
||||
description = "Ultimate Music Player for GNU/Linux";
|
||||
homepage = "http://deadbeef.sourceforge.net/";
|
||||
downloadPage = "https://github.com/DeaDBeeF-Player/deadbeef";
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
maintainers = [ maintainers.abbradar ];
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
let
|
||||
pname = "deadbeef-mpris2-plugin";
|
||||
version = "1.16";
|
||||
version = "1.14";
|
||||
in stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
@@ -17,7 +17,7 @@ in stdenv.mkDerivation {
|
||||
owner = "DeaDBeeF-Player";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-f6iHgwLdzQJJEquyuUQGWFfOfpjH/Hxh9IqQ5HkYrog=";
|
||||
sha256 = "sha256-w7ccIhcPjbjs18kb3ZdM9JtSail9ik3uyAc40T8lHho=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dragonfly-reverb";
|
||||
version = "3.2.10";
|
||||
version = "3.2.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "michaelwillis";
|
||||
repo = "dragonfly-reverb";
|
||||
rev = version;
|
||||
sha256 = "sha256-YXJ4U5J8Za+DlXvp6QduvCHIVC2eRJ3+I/KPihCaIoY=";
|
||||
sha256 = "sha256-Jz0t9IO3H+guL4NiETCBHSb4rxFTxZRHw2v20yS/wlk=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
{ stdenv, lib, fetchFromGitHub, buildPackages, pkg-config, cmake
|
||||
, alsa-lib, glib, libjack2, libsndfile, libpulseaudio
|
||||
, AppKit, AudioUnit, CoreAudio, CoreMIDI, CoreServices
|
||||
, AudioUnit, CoreAudio, CoreMIDI, CoreServices
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fluidsynth";
|
||||
version = "2.3.2";
|
||||
version = "2.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FluidSynth";
|
||||
repo = "fluidsynth";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BSJu3jB7b5G2ThXBUHUNnBGl55EXe3nIzdBdgfOWDSM=";
|
||||
sha256 = "05lr9f0q4x1kvgfa3xrfmagpwvijv9m1s316aa9figqlkcc5vv4k";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ buildPackages.stdenv.cc pkg-config cmake ];
|
||||
|
||||
buildInputs = [ glib libsndfile libjack2 ]
|
||||
++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio ]
|
||||
++ lib.optionals stdenv.isDarwin [ AppKit AudioUnit CoreAudio CoreMIDI CoreServices ];
|
||||
++ lib.optionals stdenv.isDarwin [ AudioUnit CoreAudio CoreMIDI CoreServices ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-Denable-framework=off"
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "mopidy-jellyfin";
|
||||
version = "1.0.4";
|
||||
version = "1.0.2";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-Jellyfin";
|
||||
sha256 = "ny0u6HdOlZCsmIzZuQ1rql+bvHU3xkh8IdwhJVHNH9c=";
|
||||
sha256 = "0j7v5xx3c401r5dw1sqm1n2263chjga1d3ml85rg79hjhhhacy75";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy python3Packages.unidecode python3Packages.websocket-client ];
|
||||
|
||||
@@ -2,15 +2,17 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "mopidy-somafm";
|
||||
version = "2.0.2";
|
||||
version = "2.0.0";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit version;
|
||||
pname = "Mopidy-SomaFM";
|
||||
sha256 = "DC0emxkoWfjGHih2C8nINBFByf521Xf+3Ks4JRxNPLM=";
|
||||
sha256 = "1j88rrliys8hqvnb35k1xqw88bvrllcb4rb53lgh82byhscsxlf3";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ mopidy ];
|
||||
propagatedBuildInputs = [
|
||||
mopidy
|
||||
];
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
||||
@@ -21,11 +21,11 @@ assert withConplay -> !libOnly;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "${lib.optionalString libOnly "lib"}mpg123";
|
||||
version = "1.31.3";
|
||||
version = "1.31.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/mpg123/mpg123-${version}.tar.bz2";
|
||||
hash = "sha256-HKd9Omml/4RbegU294P+5VThBBE5prl49q/hT1gUrRo=";
|
||||
sha256 = "sha256-sX8ikF4x9DtrQB399qce0Ru30Fb2jbRJ1wufmug5x94=";
|
||||
};
|
||||
|
||||
outputs = [ "out" ] ++ lib.optional withConplay "conplay";
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ocenaudio";
|
||||
version = "3.11.24";
|
||||
version = "3.11.22";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}";
|
||||
sha256 = "sha256-3NM2jw3XvzMxLpDQAR3LZzCJXwSnQXSDoN7IK4nr4wM=";
|
||||
sha256 = "sha256-mmPFASc2ARI1ht9SYhFsDjTkWfhxXdc2zEi5rvfanZc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "open-stage-control";
|
||||
version = "1.24.2";
|
||||
version = "1.23.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jean-emmanuel";
|
||||
repo = "open-stage-control";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-mM81u1irVfFFJUddOXKcs46tcGwVAcir+daKdkxFLsE=";
|
||||
hash = "sha256-5QMBJw6H9TmyoSMkG5rniq1BdVYuEtQsQF1GGBkxqMI=";
|
||||
};
|
||||
|
||||
# Remove some Electron stuff from package.json
|
||||
|
||||
@@ -25,13 +25,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "reaper";
|
||||
version = "6.79";
|
||||
version = "6.77";
|
||||
|
||||
src = fetchurl {
|
||||
url = url_for_platform version stdenv.hostPlatform.qemuArch;
|
||||
hash = {
|
||||
x86_64-linux = "sha256-Bpsc09y5R/zyVXiDAqRF6n09qKOrBTLjk84z+noeko0=";
|
||||
aarch64-linux = "sha256-jbyXXeVtFmt7xoIWd4YKFu4AUM6W9LzeIiGoGyaO2lU=";
|
||||
x86_64-linux = "sha256-1HQtmhcLV/yhrANy1wLM1ju3t9o/lnU1OaYxqe20UFc=";
|
||||
aarch64-linux = "sha256-17lBwadEDINoXd0yF/hCVFRGoWq6AuFUf4o+uPR6q60=";
|
||||
}.${stdenv.hostPlatform.system};
|
||||
};
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "SonyHeadphonesClient";
|
||||
version = "1.3.2";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Plutoberth";
|
||||
repo = "SonyHeadphonesClient";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vhI97KheKzr87exCh4xNN7NDefcagdMu1tWSt67vLiU=";
|
||||
hash = "sha256-0DQanrglJiGsN8qQ5KxkL8I+Fpt1abeeuKiM8v9GclM=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
, glib, pango, cairo, atk, gdk-pixbuf, gtk3, cups, nspr, nss, libpng, libnotify
|
||||
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg, curlWithGnuTls, zlib, gnome
|
||||
, at-spi2-atk, at-spi2-core, libpulseaudio, libdrm, mesa, libxkbcommon
|
||||
, pname, meta, harfbuzz
|
||||
, pname, meta
|
||||
# High-DPI support: Spotify's --force-device-scale-factor argument
|
||||
# not added if `null`, otherwise, should be a number.
|
||||
, deviceScaleFactor ? null
|
||||
@@ -14,14 +14,14 @@ let
|
||||
# If an update breaks things, one of those might have valuable info:
|
||||
# https://aur.archlinux.org/packages/spotify/
|
||||
# https://community.spotify.com/t5/Desktop-Linux
|
||||
version = "1.2.9.743.g85d9593d";
|
||||
version = "1.1.99.878.g1e4ccc6e";
|
||||
# To get the latest stable revision:
|
||||
# curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
|
||||
# To get general information:
|
||||
# curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
|
||||
# More examples of api usage:
|
||||
# https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
|
||||
rev = "64";
|
||||
rev = "62";
|
||||
|
||||
deps = [
|
||||
alsa-lib
|
||||
@@ -39,7 +39,6 @@ let
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
harfbuzz
|
||||
libdrm
|
||||
libgcrypt
|
||||
libnotify
|
||||
@@ -84,7 +83,7 @@ stdenv.mkDerivation {
|
||||
# https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
|
||||
src = fetchurl {
|
||||
url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
|
||||
sha512 = "5e8f4a1901c26e9bb5986e048226d8a15f5bc4c2acf16b20a404f228ef142e4d21c6a88a4a54c8d9e654ba5b15cb1fea1cdc50c21fbe8e3c374e241a44adf12d";
|
||||
sha512 = "339r2q13nnpwi7gjd1axc6z2gycfm9gwz3x9dnqyaqd1g3rw7nk6nfbp6bmpkr68lfq1jfgvqwnimcgs84rsi7nmgsiabv3cz0673wv";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ wrapGAppsHook makeShellWrapper squashfsTools ];
|
||||
|
||||
@@ -42,13 +42,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "strawberry";
|
||||
version = "1.0.17";
|
||||
version = "1.0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jonaski";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-Z2b3/pIdSmZUO724hkdn78YrVuRiXALbTOUs+KJMjvU=";
|
||||
hash = "sha256-P7M7UIRFr0pABNhb63pV3TqIdTP8Xox4f0BT2ii9rRE=";
|
||||
};
|
||||
|
||||
# the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
|
||||
|
||||
@@ -57,8 +57,6 @@ stdenv.mkDerivation rec {
|
||||
|
||||
patchShebangs compile-phazor.sh
|
||||
|
||||
substituteInPlace compile-phazor.sh --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
|
||||
|
||||
substituteInPlace extra/tauonmb.desktop --replace 'Exec=/opt/tauon-music-box/tauonmb.sh' 'Exec=${placeholder "out"}/bin/tauon'
|
||||
'';
|
||||
|
||||
@@ -97,6 +95,7 @@ stdenv.mkDerivation rec {
|
||||
natsort
|
||||
pillow
|
||||
plexapi
|
||||
pulsectl
|
||||
pycairo
|
||||
pychromecast
|
||||
pylast
|
||||
@@ -106,8 +105,7 @@ stdenv.mkDerivation rec {
|
||||
requests
|
||||
send2trash
|
||||
setproctitle
|
||||
] ++ lib.optional withDiscordRPC pypresence
|
||||
++ lib.optional stdenv.isLinux pulsectl;
|
||||
] ++ lib.optional withDiscordRPC pypresence;
|
||||
|
||||
makeWrapperArgs = [
|
||||
"--prefix PATH : ${lib.makeBinPath [ffmpeg]}"
|
||||
@@ -136,6 +134,6 @@ stdenv.mkDerivation rec {
|
||||
changelog = "https://github.com/Taiko2k/TauonMusicBox/releases/tag/v${version}";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ jansol ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,14 +10,22 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "termusic";
|
||||
version = "0.7.10";
|
||||
version = "0.7.9";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-m0hi5u4BcRcEDEpg1BoWXc25dfhD6+OJtqSZfSdV0HM=";
|
||||
hash = "sha256-ytAKINcZwLyHWbzShxfxRKx4BepM0G2BYdLgwR48g7w=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-A83gLsaPm6t4nm7DJfcp9z1huDU/Sfy9gunP8pzBiCA=";
|
||||
cargoHash = "sha256-yxFF5Yqj+xTB3FAJUtgcIeAEHR44JA1xONxGFdG0yS0=";
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-panic-when-XDG_AUDIO_DIR-not-set.patch";
|
||||
url = "https://github.com/tramhao/termusic/commit/b6006b22901f1f865a2e3acf7490fd3fa520ca5e.patch";
|
||||
hash = "sha256-1ukQ0y5IRdOndsryuqXI9/zyhCDQ5NIeTan4KCynAv0=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
, gdk-pixbuf
|
||||
, glib
|
||||
, gtk3
|
||||
, imagemagick
|
||||
, libappindicator-gtk3
|
||||
, libdbusmenu
|
||||
, libdrm
|
||||
@@ -36,11 +37,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tidal-hifi";
|
||||
version = "5.1.0";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${version}/tidal-hifi_${version}_amd64.deb";
|
||||
sha256 = "sha256-IaSgul2L0L343TVT3ujgBoMt6tITwjJaBNOVJPCBDtI=";
|
||||
sha256 = "sha256-6KlcxBV/zHN+ZnvIu1PcKNeS0u7LqhDqAjbXawT5Vv8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
|
||||
@@ -60,6 +61,7 @@ stdenv.mkDerivation rec {
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
imagemagick
|
||||
pango
|
||||
systemd
|
||||
mesa # for libgbm
|
||||
@@ -108,6 +110,12 @@ stdenv.mkDerivation rec {
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
substituteInPlace $out/share/applications/tidal-hifi.desktop \
|
||||
--replace "/opt/tidal-hifi/tidal-hifi" "tidal-hifi"
|
||||
|
||||
for size in 48 64 128 256 512; do
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps/
|
||||
convert $out/share/icons/hicolor/0x0/apps/tidal-hifi.png \
|
||||
-resize ''${size}x''${size} $out/share/icons/hicolor/''${size}x''${size}/apps/icon.png
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
|
||||
@@ -4,20 +4,19 @@
|
||||
, cmake
|
||||
, libsecret
|
||||
, qtkeychain
|
||||
, qttools
|
||||
, restic
|
||||
}:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "restique";
|
||||
version = "unstable-2022-11-29";
|
||||
version = "unstable-2021-05-03";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "git.srcbox.net";
|
||||
owner = "stefan";
|
||||
repo = "restique";
|
||||
rev = "906b0b1726c26988c910baea9665f540c37c99c4";
|
||||
hash = "sha256-EYoADtYX+gm8T3/3gxTtdFOFGJf2rXryiTu8NIO0Ez4=";
|
||||
rev = "f83ea63c2e2f2a41e845f54c7fe2c391a528a121";
|
||||
sha256 = "0j1qihv7hd90xkfm4ksv74q6m7cq781fbdnc3l4spcd7h2p8lh0z";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -27,7 +26,6 @@ mkDerivation rec {
|
||||
buildInputs = [
|
||||
libsecret
|
||||
qtkeychain
|
||||
qttools
|
||||
];
|
||||
|
||||
qtWrapperArgs = [
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "besu";
|
||||
version = "23.1.2";
|
||||
version = "22.10.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://hyperledger.jfrog.io/artifactory/${pname}-binaries/${pname}/${version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-PTpwmjqrmToIAbQSpHGddOMZ+ULdwT+w8ws8SlTRJTg=";
|
||||
sha256 = "sha256-chP5RFqEoZbpSuGHfG/bHlHTe/sZYV2gLvUSHU9A44w=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ergo";
|
||||
version = "5.0.9";
|
||||
version = "5.0.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
|
||||
sha256 = "sha256-EChnLRoInWFRuRMfnyRlZbZBWB6/QG9yRdwW9+IiMYc=";
|
||||
sha256 = "sha256-ZXLtlxxhM6yOwRRVkzaLk5sLfJbDrodI7kIX6ItOk5I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
pname = "erigon";
|
||||
version = "2.43.0";
|
||||
version = "2.42.0";
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version;
|
||||
@@ -11,11 +11,11 @@ buildGoModule {
|
||||
owner = "ledgerwatch";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-3o7vu2bA8lB1CiVaSF6YU9WjwNliQAK5AcGl82GCqFg=";
|
||||
sha256 = "sha256-M2u8/WKo1yZu27KjTJhJFqycCxCopJqtVQpIs9inswI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-JhMefeUxo9ksyCnNsLgAhGG0Ix7kxCA/cYyiELd0H64=";
|
||||
vendorSha256 = "sha256-Vyurf4wSN4zSDjcH8FC+OOiviiSjRVF4RId/eqFDd+c=";
|
||||
proxyVendor = true;
|
||||
|
||||
# Build errors in mdbx when format hardening is enabled:
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
let
|
||||
pname = "framesh";
|
||||
version = "0.6.2";
|
||||
version = "0.5.0-beta.22";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/floating/frame/releases/download/v${version}/Frame-${version}.AppImage";
|
||||
sha256 = "sha256-nN5+6SwfHcwhePlbsXjT3qNd/d6Xqnd85NVC8vw3ehk=";
|
||||
sha256 = "sha256-/y7Pf1ADtz0CBeKKCHtSPOYvU7HCpq7hM/J4Ddq1XiA=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
|
||||
let
|
||||
pname = "ledger-live-desktop";
|
||||
version = "2.57.0";
|
||||
version = "2.55.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
|
||||
hash = "sha256-fXvCj9eBEp/kGPSiNUdir19eU0x461KzXgl5YgeapHI=";
|
||||
hash = "sha256-N0BhbqZvZs3IP+jMxr85KlHs6I/fxWgoK884EKT9C9Y=";
|
||||
};
|
||||
|
||||
appimageContents = appimageTools.extractType2 {
|
||||
|
||||
1391
pkgs/applications/blockchains/lighthouse/Cargo.lock
generated
1391
pkgs/applications/blockchains/lighthouse/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,28 +1,26 @@
|
||||
{ clang
|
||||
, cmake
|
||||
, CoreFoundation
|
||||
, fetchFromGitHub
|
||||
, fetchurl
|
||||
, lib
|
||||
, lighthouse
|
||||
, nix-update-script
|
||||
, llvmPackages
|
||||
, nodePackages
|
||||
, perl
|
||||
, pkg-config
|
||||
, postgresql
|
||||
, protobuf
|
||||
, rustPlatform
|
||||
, Security
|
||||
, sqlite
|
||||
, CoreFoundation
|
||||
, stdenv
|
||||
, SystemConfiguration
|
||||
, testers
|
||||
, unzip
|
||||
, nix-update-script
|
||||
, SystemConfiguration
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "lighthouse";
|
||||
version = "4.1.0";
|
||||
version = "3.5.1";
|
||||
|
||||
# lighthouse/common/deposit_contract/build.rs
|
||||
depositContractSpecVersion = "0.12.1";
|
||||
@@ -32,23 +30,15 @@ rustPlatform.buildRustPackage rec {
|
||||
owner = "sigp";
|
||||
repo = "lighthouse";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-QVAFzV9sao8+eegI7bLfm+pPHyvDFhnADS80+nqqgtE=";
|
||||
hash = "sha256-oF32s1nfzEZbaNUi5sQSrotcyOSinULj/qrRQWdMXHg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./use-system-sqlite.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
cp ${./Cargo.lock} Cargo.lock
|
||||
'';
|
||||
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"amcl-0.3.0" = "sha256-Mj4dXTlGVSleFfuTKgVDQ7S3jANMsdtVE5L90WGxA4U=";
|
||||
"arbitrary-1.3.0" = "sha256-BMxcBfxBRf+Kb0Tz55jtFbwokSeD2GPtB+KV8Wbne0g=";
|
||||
"beacon-api-client-0.1.0" = "sha256-fI8qST6HZrchg7yr/nVtRNrsW3f5ONSX+mGRYW+iiqA=";
|
||||
"arbitrary-1.2.2" = "sha256-39ZefB5Xok28y8lIdKleILBv4aokY90eMOssxUtU7yA=";
|
||||
"beacon-api-client-0.1.0" = "sha256-vqTC7bKXgliN7qd5LstNM5O6jRnn4aV/paj88Mua+Bc=";
|
||||
"ethereum-consensus-0.1.1" = "sha256-aBrZ786Me0BWpnncxQc5MT3r+O0yLQhqGKFBiNTdqSA=";
|
||||
"libmdbx-0.1.4" = "sha256-NMsR/Wl1JIj+YFPyeMMkrJFfoS07iEAKEQawO89a+/Q=";
|
||||
"lmdb-rkv-0.14.0" = "sha256-sxmguwqqcyOlfXOZogVz1OLxfJPo+Q0+UjkROkbbOCk=";
|
||||
@@ -60,19 +50,11 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
buildFeatures = [ "modern" "gnosis" ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
cmake
|
||||
perl
|
||||
pkg-config
|
||||
protobuf
|
||||
];
|
||||
nativeBuildInputs = [ rustPlatform.bindgenHook cmake perl protobuf ];
|
||||
|
||||
buildInputs = [
|
||||
sqlite
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
CoreFoundation
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
CoreFoundation
|
||||
SystemConfiguration
|
||||
];
|
||||
|
||||
@@ -97,7 +79,7 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
checkFeatures = [ ];
|
||||
|
||||
# All of these tests require network access and/or docker
|
||||
# All of these tests require network access
|
||||
cargoTestFlags = [
|
||||
"--workspace"
|
||||
"--exclude beacon_node"
|
||||
@@ -106,7 +88,6 @@ rustPlatform.buildRustPackage rec {
|
||||
"--exclude lighthouse"
|
||||
"--exclude lighthouse_network"
|
||||
"--exclude slashing_protection"
|
||||
"--exclude watch"
|
||||
"--exclude web3signer_tests"
|
||||
];
|
||||
|
||||
@@ -114,7 +95,6 @@ rustPlatform.buildRustPackage rec {
|
||||
checkFlags = [
|
||||
"--skip service::tests::tests::test_dht_persistence"
|
||||
"--skip time::test::test_reinsertion_updates_timeout"
|
||||
|
||||
] ++ lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [
|
||||
"--skip subnet_service::tests::sync_committee_service::same_subscription_with_lower_until_epoch"
|
||||
"--skip subnet_service::tests::sync_committee_service::subscribe_and_unsubscribe"
|
||||
@@ -122,7 +102,6 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
nativeCheckInputs = [
|
||||
nodePackages.ganache
|
||||
postgresql
|
||||
];
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
diff --git a/consensus/types/Cargo.toml b/consensus/types/Cargo.toml
|
||||
index 46b88af66..c8c909234 100644
|
||||
--- a/consensus/types/Cargo.toml
|
||||
+++ b/consensus/types/Cargo.toml
|
||||
@@ -37,7 +37,7 @@ cached_tree_hash = { path = "../cached_tree_hash" }
|
||||
serde_yaml = "0.8.13"
|
||||
tempfile = "3.1.0"
|
||||
derivative = "2.1.1"
|
||||
-rusqlite = { version = "0.28.0", features = ["bundled"], optional = true }
|
||||
+rusqlite = { version = "0.28.0", optional = true }
|
||||
# The arbitrary dependency is enabled by default since Capella to avoid complexity introduced by
|
||||
# `AbstractExecPayload`
|
||||
arbitrary = { version = "1.0", features = ["derive"] }
|
||||
diff --git a/validator_client/slashing_protection/Cargo.toml b/validator_client/slashing_protection/Cargo.toml
|
||||
index 631e54dc4..dec95156b 100644
|
||||
--- a/validator_client/slashing_protection/Cargo.toml
|
||||
+++ b/validator_client/slashing_protection/Cargo.toml
|
||||
@@ -12,7 +12,7 @@ path = "tests/main.rs"
|
||||
[dependencies]
|
||||
tempfile = "3.1.0"
|
||||
types = { path = "../../consensus/types" }
|
||||
-rusqlite = { version = "0.28.0", features = ["bundled"] }
|
||||
+rusqlite = { version = "0.28.0" }
|
||||
r2d2 = "0.8.9"
|
||||
r2d2_sqlite = "0.21.0"
|
||||
serde = "1.0.116"
|
||||
@@ -38,13 +38,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cudatext";
|
||||
version = "1.192.0";
|
||||
version = "1.191.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alexey-T";
|
||||
repo = "CudaText";
|
||||
rev = version;
|
||||
hash = "sha256-uRw4IeTJz5K3EPgEAtvtG938LT0doHh49/y02XlMhzE=";
|
||||
hash = "sha256-wn2pSzz4w8tQjVFEIfR3/1ddeTjQBQaKl26SxXbOXG0=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
16
pkgs/applications/editors/cudatext/deps.json
generated
16
pkgs/applications/editors/cudatext/deps.json
generated
@@ -11,23 +11,23 @@
|
||||
},
|
||||
"ATFlatControls": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2023.04.26",
|
||||
"hash": "sha256-OQOIDK3DSWQeKMjHPbJzfB35v+FQXFaoOES0luKSMc0="
|
||||
"rev": "2023.03.22",
|
||||
"hash": "sha256-cUuoB9hPA04MmurtCbzkMuozc79Dj0rRnqE0ms2jJGs="
|
||||
},
|
||||
"ATSynEdit": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2023.04.26",
|
||||
"hash": "sha256-RD8ZmRy6jf6pUGPDI3Ft2LBYHXklxXlJXaLHjLv3usE="
|
||||
"rev": "2023.04.17",
|
||||
"hash": "sha256-QllXTq9BCKedt/Pv14qOn1UoxZ57qz76OyptnjT92hA="
|
||||
},
|
||||
"ATSynEdit_Cmp": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2023.04.26",
|
||||
"hash": "sha256-y5+NaTTSS6GI2gLOOewQnWzfAUB1reximvqnWjavORk="
|
||||
"rev": "2023.04.08",
|
||||
"hash": "sha256-xm2fMAm0DF0hILxBQ2m+OSodQQgl5a4rkW0pgTDjuoo="
|
||||
},
|
||||
"EControl": {
|
||||
"owner": "Alexey-T",
|
||||
"rev": "2023.04.18",
|
||||
"hash": "sha256-Eb8ynxZP3OQ7TGFZMbw8r0HXXvaoR6yotwnwK6nwZxg="
|
||||
"rev": "2023.04.17",
|
||||
"hash": "sha256-EdtrKYZTP+1MQU5fLO6vYoU3EjS91PaSQnIxtgAs7TI="
|
||||
},
|
||||
"ATSynEdit_Ex": {
|
||||
"owner": "Alexey-T",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
rev = "7e1e6a4c349e720d75c892cd7230b29c35148342";
|
||||
rev = "c5dc02f6bd47039c320083b3befac0e569c0efa4";
|
||||
python = python3.withPackages (ps: with ps; [
|
||||
epc
|
||||
orjson
|
||||
@@ -26,13 +26,13 @@ let
|
||||
in
|
||||
melpaBuild {
|
||||
pname = "lsp-bridge";
|
||||
version = "20230424.1642"; # 16:42 UTC
|
||||
version = "20230311.1648"; # 16:48 UTC
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "manateelazycat";
|
||||
repo = "lsp-bridge";
|
||||
inherit rev;
|
||||
sha256 = "sha256-e0XVQpsyjy8HeZN6kLRjnoTpyEefTqstsgydEKlEQ1c=";
|
||||
sha256 = "sha256-vbSVGPFBjAp4VRbJc6a2W0d2IqOusNa+rk4X6jRcjRI=";
|
||||
};
|
||||
|
||||
commit = rev;
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ldtk";
|
||||
version = "1.3.0";
|
||||
version = "1.2.5";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/deepnight/ldtk/releases/download/v${version}/ubuntu-distribution.zip";
|
||||
hash = "sha256-2gGxl6l7J/L0CfMJk6PVmc1ABQISzAnjKDJgnMyx2PM=";
|
||||
sha256 = "sha256-kx4GOENYYbS09HxAiCCvqm/ztc32sdB39W8uv6D+R+A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip makeWrapper copyDesktopItems appimage-run ];
|
||||
@@ -48,9 +48,8 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Modern, lightweight and efficient 2D level editor";
|
||||
homepage = "https://ldtk.io/";
|
||||
changelog = "https://github.com/deepnight/ldtk/releases/tag/v${version}";
|
||||
description = "Modern, lightweight and efficient 2D level editor";
|
||||
license = licenses.mit;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ felschr ];
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "orbiton";
|
||||
version = "2.61.0";
|
||||
version = "2.60.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "xyproto";
|
||||
repo = "orbiton";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-GknQXHwpdIRzSjIc1ITsoiaks4Vi5KmVqL7sHzmfnmQ=";
|
||||
hash = "sha256-uDxdv7HlswGsuM4UewZOO45/P9jIOo4bb0T1RrQqtpg=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
/*
|
||||
#!nix-shell -i node -p nodejs_18
|
||||
#!nix-shell -i node -p nodejs-18_x
|
||||
*/
|
||||
|
||||
import { promises as fs } from 'node:fs';
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{
|
||||
"version": "3.151.3",
|
||||
"version": "3.150.45",
|
||||
"appimage": {
|
||||
"x86_64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.151.3/standard-notes-3.151.3-linux-x86_64.AppImage",
|
||||
"hash": "sha512-Wk31nB9OjR8E3cPFfh4KpUqQxXsnerzDt5TgaExXW4OeWLftv3ejyf2ROWXAoqG/8K87OclbunCqS3b2g8hAjA=="
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.150.45/standard-notes-3.150.45-linux-x86_64.AppImage",
|
||||
"hash": "sha512-a1g+nOJJ1MSiCvguFAlAPhwyogAS6cwDD8Ou+P0lufLLG2HyLPdOEwVl8Nhqq4iaFFQoyY3FtKm+Sdpd3WJ72Q=="
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.151.3/standard-notes-3.151.3-linux-arm64.AppImage",
|
||||
"hash": "sha512-nPTpEJs978wxZjG1pN15ETgUBdGBzl574QHCQNo2ShYvhi9Uf38jCaGQIsY0d779eT8kSHuMBXoAiE/flxfWMQ=="
|
||||
"url": "https://github.com/standardnotes/app/releases/download/%40standardnotes/desktop%403.150.45/standard-notes-3.150.45-linux-arm64.AppImage",
|
||||
"hash": "sha512-ivnyuMhdBweRs+9Qkt4srm2JlMMxLFDbT0DBaeNCHVuyWM/13LRczIyto2tbPp9xC6DCJmGktjY3ZYsB3odftA=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,13 +19,13 @@ in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "tiled";
|
||||
version = "1.10.1";
|
||||
version = "1.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mapeditor";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-zrDka6yXJ++UuGFepn8glQ1r7ufBcjsnNZuH+jnkJw0=";
|
||||
sha256 = "sha256-y79trmkRrkOOP6p9VMjo/11IE22J3YJtnerBsVP9134=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config qbs wrapQtAppsHook ];
|
||||
|
||||
@@ -15,7 +15,7 @@ in
|
||||
stdenv.mkDerivation {
|
||||
pname = "vim";
|
||||
|
||||
inherit (common) version src postPatch hardeningDisable enableParallelBuilding enableParallelInstalling meta;
|
||||
inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
|
||||
|
||||
nativeBuildInputs = [ gettext pkg-config ];
|
||||
buildInputs = [ ncurses bash gawk ]
|
||||
@@ -50,15 +50,6 @@ stdenv.mkDerivation {
|
||||
ln -s $out/bin/vim $out/bin/vi
|
||||
mkdir -p $out/share/vim
|
||||
cp "${vimrc}" $out/share/vim/vimrc
|
||||
|
||||
# Prevent bugs in the upstream makefile from silently failing and missing outputs.
|
||||
# Some of those are build-time requirements for other packages.
|
||||
for tool in ex xxd vi view vimdiff; do
|
||||
if [ ! -e "$out/bin/$tool" ]; then
|
||||
echo "ERROR: install phase did not install '$tool'."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
__impureHostDeps = [ "/dev/ptmx" ];
|
||||
|
||||
@@ -13209,18 +13209,6 @@ final: prev:
|
||||
meta.homepage = "https://github.com/honza/vim-snippets/";
|
||||
};
|
||||
|
||||
vim-solarized8 = buildVimPluginFrom2Nix {
|
||||
pname = "vim-solarized8";
|
||||
version = "2023-02-25";
|
||||
src = fetchFromGitHub {
|
||||
owner = "lifepillar";
|
||||
repo = "vim-solarized8";
|
||||
rev = "bcd4e74e9850fd59ee0294a5c3ae958ed535cc52";
|
||||
sha256 = "00qhqy511wdcmlsglwhqsd6gffagjmdz0wl5627a3nwmxs8p45sa";
|
||||
};
|
||||
meta.homepage = "https://github.com/lifepillar/vim-solarized8/";
|
||||
};
|
||||
|
||||
vim-solidity = buildVimPluginFrom2Nix {
|
||||
pname = "vim-solidity";
|
||||
version = "2018-04-17";
|
||||
|
||||
@@ -1110,7 +1110,6 @@ https://github.com/justinmk/vim-sneak/,,
|
||||
https://github.com/garbas/vim-snipmate/,,
|
||||
https://github.com/honza/vim-snippets/,,
|
||||
https://github.com/jhradilek/vim-snippets/,,vim-docbk-snippets
|
||||
https://github.com/lifepillar/vim-solarized8/,HEAD,
|
||||
https://github.com/tomlion/vim-solidity/,,
|
||||
https://github.com/christoomey/vim-sort-motion/,,
|
||||
https://github.com/tpope/vim-speeddating/,,
|
||||
|
||||
@@ -19,9 +19,6 @@
|
||||
, alejandra
|
||||
, millet
|
||||
, shfmt
|
||||
, autoPatchelfHook
|
||||
, zlib
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -611,8 +608,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "chatgpt-reborn";
|
||||
publisher = "chris-hayes";
|
||||
version = "3.16.1";
|
||||
sha256 = "sha256-RVPA+O0QOtFArWzcuwXMZSpwB3zrPAzVCbEjOzUNH4I=";
|
||||
version = "3.11.2";
|
||||
sha256 = "sha256-YidcekYTgPYlzfmDHHAxywF+bJE8Da3pg/TCumK4Epo=";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -807,8 +804,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "composer-php-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
sha256 = "sha256-4SL7hPcnxN6Bq0Cclaszk2zlYF1xR2w/8zaJo16OT+U=";
|
||||
version = "1.33.12924";
|
||||
sha256 = "sha256-9Uz8B4qQ57gfETitzRAVEq/Ou/s3jOF/p2EyEDo1jP8=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.composer-php-vscode/changelog";
|
||||
@@ -821,44 +818,12 @@ let
|
||||
};
|
||||
|
||||
devsense.phptools-vscode = buildVscodeMarketplaceExtension {
|
||||
mktplcRef = let
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
sha256 = "sha256-ccMkaXppkgdsN2XtSFaw85xLUCFMDF1z+XidP0KAHCA=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
sha256 = "17lsf736jagw2q6dwxvpj2dspiqrlyvmmhv6p6cf81vxijpgmq9d";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
sha256 = "1cnfzzpikcsp1l1a8amim0fz5r1pkszn231cfl745ggiksbjyhsp";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
sha256 = "0jli6l9qrssnpm5a3m1g7g1dw2i5bv9wxd0gqg6vda7dwfs2f494";
|
||||
};
|
||||
};
|
||||
in {
|
||||
mktplcRef = {
|
||||
name = "phptools-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
} // sources.${stdenv.system};
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoPatchelfHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
zlib
|
||||
stdenv.cc.cc.lib
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
chmod +x $out/share/vscode/extensions/devsense.phptools-vscode/out/server/devsense.php.ls
|
||||
'';
|
||||
|
||||
version = "1.33.12924";
|
||||
sha256 = "sha256-ImaGkIe+MTO/utfVh3Giu0+jTSN0mmhgg6LvOod1suE=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.phptools-vscode/changelog";
|
||||
description = "A visual studio code extension for full development integration for the PHP language.";
|
||||
@@ -866,7 +831,6 @@ let
|
||||
homepage = "https://github.com/DEVSENSE/phptools-docs";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.drupol ];
|
||||
platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -874,8 +838,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "profiler-php-vscode";
|
||||
publisher = "devsense";
|
||||
version = "1.33.13032";
|
||||
sha256 = "sha256-P0lzZkCHtLHJI/gwB+wbrZPR3OOia5VxTMCC2ZQULBg=";
|
||||
version = "1.33.12924";
|
||||
sha256 = "sha256-6+spMS+oypq8KFW5vsoy0Cmn7RD5L1JQnHSyJAvYhTk=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DEVSENSE.profiler-php-vscode/changelog";
|
||||
@@ -1314,8 +1278,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "chatgpt-vscode";
|
||||
publisher = "genieai";
|
||||
version = "0.0.7";
|
||||
sha256 = "sha256-dWp9OYj9OCsNdZiYbgAWWo/OXMjBSlB7sIupdqnQTiU=";
|
||||
version = "0.0.3";
|
||||
sha256 = "sha256-eSRZ9AdXGqGLQw/jt8JCAsTmkvP0N1g5tFP7s1rBtjM=";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1349,8 +1313,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "github-vscode-theme";
|
||||
publisher = "github";
|
||||
version = "6.3.4";
|
||||
sha256 = "sha256-JbI0B7jxt/2pNg/hMjAE5pBBa3LbUdi+GF0iEZUDUDM=";
|
||||
version = "6.3.3";
|
||||
sha256 = "sha256-fN9ljeZlbbSNW9qggLEz5HOLZlPhHmTHNi1VsZo7Uxk=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitHub theme for VS Code";
|
||||
@@ -1366,8 +1330,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-github-actions";
|
||||
publisher = "github";
|
||||
version = "0.25.6";
|
||||
sha256 = "sha256-HRj/AQI9E6HDkZ2ok/h/+c9HHq1wVXQPAt5mb/Ij+BI=";
|
||||
version = "0.25.3";
|
||||
sha256 = "sha256-0Ag+xXVt+WBfN+7VmWILYU4RsVs+CBDBpMfUTczDCkI=";
|
||||
};
|
||||
meta = {
|
||||
description = "A Visual Studio Code extension for GitHub Actions workflows and runs for github.com hosted repositories";
|
||||
@@ -2270,8 +2234,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "typst-lsp";
|
||||
publisher = "nvarner";
|
||||
version = "0.4.1";
|
||||
sha256 = "sha256-NZejUb99JDcnqjihLTPkNzVCgpqDkbiwAySbBVZ0esY=";
|
||||
version = "0.3.0";
|
||||
sha256 = "sha256-ek5zXK4ecXwSPMJ4Ihy2l3PMxCdHwJN7dbwZfQVjNG8=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/nvarner.typst-lsp/changelog";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
{pkgs ? import <nixpkgs> {
|
||||
inherit system;
|
||||
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs_14"}:
|
||||
}, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-14_x"}:
|
||||
|
||||
let
|
||||
nodeEnv = import ./node-env.nix {
|
||||
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cemu";
|
||||
version = "2.0-36";
|
||||
version = "2.0-32";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cemu-project";
|
||||
repo = "Cemu";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RO8c9gLK00LLwDzcD8UOS3kh3kwTwFyrpuRlIXcInPo=";
|
||||
hash = "sha256-47uCGN1wFVx3ph/q3+BG+pwJ7nisbmRPUEatOIq0i9M=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@@ -86,12 +86,9 @@ stdenv.mkDerivation rec {
|
||||
"-DPORTABLE=OFF"
|
||||
];
|
||||
|
||||
preConfigure = with lib; let
|
||||
tag = last (splitString "-" version);
|
||||
in ''
|
||||
preConfigure = ''
|
||||
rm -rf dependencies/imgui
|
||||
ln -s ${imgui}/include/imgui dependencies/imgui
|
||||
sed 's/\(EMULATOR_VERSION_SUFFIX\).*experimental.*/\1 "-${tag} (experimental)"/' -i src/Common/version.h
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cen64";
|
||||
version = "unstable-2022-10-02";
|
||||
version = "unstable-2021-03-12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "n64dev";
|
||||
repo = "cen64";
|
||||
rev = "ee6db7d803a77b474e73992fdc25d76b9723d806";
|
||||
sha256 = "sha256-/CraSu/leNA0dl8NVgFjvKdOWrC9/namAz5NSxtPr+I=";
|
||||
rev = "1b31ca9b3c3bb783391ab9773bd26c50db2056a8";
|
||||
sha256 = "0x1fz3z4ffl5xssiyxnmbhpjlf0k0fxsqn4f2ikrn17742dx4c0z";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -29,13 +29,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "ryujinx";
|
||||
version = "1.1.733"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
version = "1.1.700"; # Based off of the official github actions builds: https://github.com/Ryujinx/Ryujinx/actions/workflows/release.yml
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ryujinx";
|
||||
repo = "Ryujinx";
|
||||
rev = "9f12e50a546b15533778ed0d8290202af91c10a2";
|
||||
sha256 = "1d1hg2sv0h56a56xnarcfp73df3rbw3iax85g258l6w2kxhkc42a";
|
||||
rev = "a1efd87c45027a347e91fd22d42f33c3eed89030";
|
||||
sha256 = "0ng8ph2sdlcrsy4nlyjhff2n0c76nzkakpnks7qrv6ljr911yck1";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_7_0;
|
||||
|
||||
14
pkgs/applications/emulators/ryujinx/deps.nix
generated
14
pkgs/applications/emulators/ryujinx/deps.nix
generated
@@ -20,7 +20,7 @@
|
||||
(fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
|
||||
(fetchNuGet { pname = "Concentus"; version = "1.1.7"; sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0"; })
|
||||
(fetchNuGet { pname = "DiscordRichPresence"; version = "1.1.3.18"; sha256 = "0p4bhaggjjfd4gl06yiphqgncxgcq2bws4sjkrw0n2ldf3hgrps3"; })
|
||||
(fetchNuGet { pname = "DynamicData"; version = "7.13.5"; sha256 = "088ry176ba314m4hc1vbcxisflqzs7p7vvn8vqzxy3kj1rimgfmf"; })
|
||||
(fetchNuGet { pname = "DynamicData"; version = "7.13.1"; sha256 = "0hy2ba2nkhgp23glkinhfx3v892fkkf4cr9m41daaahnl2r2l8y1"; })
|
||||
(fetchNuGet { pname = "ExCSS"; version = "4.1.4"; sha256 = "1y50xp6rihkydbf5l73mr3qq2rm6rdfjrzdw9h1dw9my230q5lpd"; })
|
||||
(fetchNuGet { pname = "Fizzler"; version = "1.2.1"; sha256 = "1w5jb1d0figbv68dydbnlcsfmqlc3sv9z1zxp7d79dg2dkarc4qm"; })
|
||||
(fetchNuGet { pname = "FluentAvaloniaUI"; version = "1.4.5"; sha256 = "1j5ivy83f13dgn09qrfkq44ijvh0m9rbdx8760g47di70c4lda7j"; })
|
||||
@@ -50,10 +50,10 @@
|
||||
(fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
|
||||
(fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
|
||||
(fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "6.0.0"; sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.29.0"; sha256 = "06sdjg78764ycaq3bd32daacd9pjsvkihdzrw8d1cnmk3c42kvq3"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.29.0"; sha256 = "0iydfzz4vzzpx24q8mgvc3n289s00inc19x6a0w2v378mx4jkfl0"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.29.0"; sha256 = "04vj5h638ljz2fylr2idgjbfq5lzbw79m5ixcj1ikl4ydl9jhp9p"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.29.0"; sha256 = "05crx7w79m3jxlbnfc2c8i63m5z6h28y04qv6sc84312rzi2yw8c"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "6.28.1"; sha256 = "0g5a5w34263psh90mp1403m9bh3pcfw6z29vlzdpllzbifk0licr"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "6.28.1"; sha256 = "1smsbv400nk4b6x1y9gsk60rlfjmrdvni26d1jnqsxpm1250zdvf"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.28.1"; sha256 = "15bq83wi4h8f1lqinijdqd7vg6n2v77hyza20mjqcp1h3hl2vj43"; })
|
||||
(fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.28.1"; sha256 = "0ckpjjdy2rv1z7ivqrkc7z16rcqygxzs0la80g8df68p4xxfa0c5"; })
|
||||
(fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "2.3.2"; sha256 = "115bm7dljchr7c02hiv1r3l21r22wpml1j26fyn2amaflaihpq4l"; })
|
||||
(fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.5.0"; sha256 = "00gz2i8kx4mlq1ywj3imvf7wc6qzh0bsnynhw06z0mgyha1a21jy"; })
|
||||
(fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
|
||||
@@ -177,7 +177,7 @@
|
||||
(fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.0.1"; sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh"; })
|
||||
(fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.0.1"; sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc"; })
|
||||
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.29.0"; sha256 = "09bpj7gginq25fiyq3za5i8wm482qbnx6qhm4dxb95jrl3mmb126"; })
|
||||
(fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "6.28.1"; sha256 = "0pn9bk0n15136z434x7yxikda5ggwjwka2c7k0qkprnkmk3yifcl"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
|
||||
(fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
|
||||
(fetchNuGet { pname = "System.IO.Compression"; version = "4.1.0"; sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji"; })
|
||||
@@ -189,7 +189,7 @@
|
||||
(fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
|
||||
(fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
|
||||
(fetchNuGet { pname = "System.Management"; version = "7.0.1"; sha256 = "02sca1yg3inkqsh1lsjrv5hn10ijp2rsbgh0k5cvnf5k54d422vj"; })
|
||||
(fetchNuGet { pname = "System.Management"; version = "7.0.0"; sha256 = "1x3xwjzkmlcrj6rl6f2y8lkkp1s8xkhwqlpqk9ylpwqz7w3mhis0"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
|
||||
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
|
||||
|
||||
@@ -371,7 +371,7 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
|
||||
|
||||
[[package]]
|
||||
name = "felix"
|
||||
version = "2.2.6"
|
||||
version = "2.2.5"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"content_inspector",
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "felix";
|
||||
version = "2.2.6";
|
||||
version = "2.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyoheiu";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-t/BCRKqCCXZ76bFYyblNnKHB9y0oJ6ajqsbdIGq/YVM=";
|
||||
sha256 = "sha256-qN/aOOiSj+HrjZQaDUkps0NORIdCBIevVjTYQm2G2Fg=";
|
||||
};
|
||||
|
||||
cargoLock = {
|
||||
|
||||
@@ -31,11 +31,11 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "saga";
|
||||
version = "9.0.1";
|
||||
version = "9.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/saga-gis/SAGA%20-%20${lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
|
||||
sha256 = "sha256-8S8Au+aLwl8X0GbqPPv2Q6EL98KSoT665aILc5vcbpA=";
|
||||
sha256 = "sha256-Yi0zYV6RnUy9mx7/jVBXa0POyTqisPqFEFH+BATn2YY=";
|
||||
};
|
||||
|
||||
sourceRoot = "saga-${version}/saga-gis";
|
||||
|
||||
@@ -47,13 +47,13 @@ in
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "imagemagick";
|
||||
version = "7.1.1-8";
|
||||
version = "7.1.1-7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ImageMagick";
|
||||
repo = "ImageMagick";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-2wAm2y8YQwhgsPNqxGGJ65emL/kMYoVvF2phZMXTpZc=";
|
||||
hash = "sha256-PeXWtD8AX9VEJruZu/TO1Bpaoa1XNKIFGfGK+TpQEMs=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
|
||||
|
||||
@@ -56,11 +56,11 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "digikam";
|
||||
version = "7.10.0";
|
||||
version = "7.9.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${version}/digiKam-${version}.tar.xz";
|
||||
sha256 = "sha256-o/MPAbfRttWFgivNXr+N9p4P8CRWOnJGLr+AadvaIuE=";
|
||||
sha256 = "sha256-w7gKvAkNo8u8QuZ6QDCA1/X+CnyYaYc1vaVWxgMUurQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
|
||||
|
||||
@@ -103,7 +103,6 @@ in mkDerivation rec {
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ fgaz ];
|
||||
platforms = platforms.unix;
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "f3d";
|
||||
version = "2.0.0";
|
||||
version = "1.3.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "f3d-app";
|
||||
repo = "f3d";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-od8Wu8+HyQb8qTA6C4kiw5hNI2WPBs/EMt321BJDZoc=";
|
||||
hash = "sha256-dOpiX7xJWDKHqPLGvlgv7NHgfzyeZhJd898+KzAmD4Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, rustPlatform
|
||||
, pkg-config
|
||||
, fontconfig
|
||||
, freetype
|
||||
, libclang
|
||||
}:
|
||||
let
|
||||
inherit (rustPlatform) buildRustPackage bindgenHook;
|
||||
|
||||
version = "0.2.7";
|
||||
in
|
||||
buildRustPackage {
|
||||
pname = "figma-agent";
|
||||
inherit version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "neetly";
|
||||
repo = "figma-agent-linux";
|
||||
rev = version;
|
||||
sha256 = "sha256-Cq1hWNwJLBY9Bb41WFJxnr9fcygFZ8eNsn5cPXmGTyw=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-Gc94Uk/Ikxjnb541flQL7AeblgU/yS6zQ/187ZGRYco=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
buildInputs = [
|
||||
fontconfig
|
||||
freetype
|
||||
bindgenHook
|
||||
];
|
||||
|
||||
LIBCLANG_PATH = "${libclang.lib}/lib";
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/neetly/figma-agent-linux";
|
||||
description = "Figma Agent for Linux (a.k.a. Font Helper)";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ercao ];
|
||||
};
|
||||
}
|
||||
@@ -39,7 +39,7 @@
|
||||
, soqt
|
||||
, spaceNavSupport ? stdenv.isLinux
|
||||
, swig
|
||||
, vtk
|
||||
, vtk_8
|
||||
, wrapQtAppsHook
|
||||
, wrapGAppsHook
|
||||
, xercesc
|
||||
@@ -97,7 +97,7 @@ mkDerivation rec {
|
||||
shiboken2
|
||||
soqt
|
||||
swig
|
||||
vtk
|
||||
vtk_8
|
||||
xercesc
|
||||
zlib
|
||||
] ++ lib.optionals spaceNavSupport [
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
, libheif
|
||||
, libgudev
|
||||
, openexr
|
||||
, desktopToDarwinBundle
|
||||
, AppKit
|
||||
, Cocoa
|
||||
, gtk-mac-integration-gtk2
|
||||
@@ -85,8 +84,6 @@ in stdenv.mkDerivation (finalAttrs: {
|
||||
gettext
|
||||
makeWrapper
|
||||
gtk-doc
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
desktopToDarwinBundle
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -1,17 +1,16 @@
|
||||
{ stdenv, lib, fetchFromGitHub
|
||||
, imagemagick, pkg-config, wayland, wayland-protocols
|
||||
, unstableGitUpdater
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "hello-wayland";
|
||||
version = "unstable-2023-04-23";
|
||||
version = "unstable-2023-03-16";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "emersion";
|
||||
repo = "hello-wayland";
|
||||
rev = "77e270c19672f3ad863e466093f429cde8eb1f16";
|
||||
sha256 = "NMQE2zU858b6OZhdS2oZnGvLK+eb7yU0nFaMAcpNw04=";
|
||||
rev = "f6a8203309977af03cda94765dd61367c189bea6";
|
||||
sha256 = "FNtc6OApW/epAFortvujNVWJJVI44IY+Pa0qU0QdecA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ imagemagick pkg-config ];
|
||||
@@ -24,8 +23,6 @@ stdenv.mkDerivation {
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
passthru.updateScript = unstableGitUpdater { };
|
||||
|
||||
meta = with lib; {
|
||||
description = "Hello world Wayland client";
|
||||
homepage = "https://github.com/emersion/hello-wayland";
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "komikku";
|
||||
version = "1.19.0";
|
||||
version = "1.18.0";
|
||||
|
||||
format = "other";
|
||||
|
||||
@@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
owner = "valos";
|
||||
repo = "Komikku";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-4XhcmK9Dgk82ExzugY4SGRfWYC+IgCAxWS+cBURgT2o=";
|
||||
hash = "sha256-suqoYV+YsbCB7sUNzds6OoEMH9KO3bt2udok6oXXyls=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "kphotoalbum";
|
||||
version = "5.10.0";
|
||||
version = "5.9.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-rdEXgg5hwu52XJit07AbrSw7kLDNK+IpbIwKCV/Lhp8=";
|
||||
hash = "sha256-kejzDYpBQEoGKgPzVcUVlGKmd1OoXx+W7t9p3MNNw/A=";
|
||||
};
|
||||
|
||||
# not sure if we really need phonon when we have vlc, but on KDE it's bound to
|
||||
|
||||
@@ -19,13 +19,13 @@ assert withOpenCL -> ocl-icd != null;
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "mandelbulber";
|
||||
version = "2.29";
|
||||
version = "2.28";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "buddhi1980";
|
||||
repo = "mandelbulber2";
|
||||
rev = version;
|
||||
sha256 = "sha256-PVyJnPPNehQ5qzhuoUsDRQ+V3azauEkIk26XfLZOmXg=";
|
||||
sha256 = "sha256-NrXfEUoTJSz8C6rNU+tSO4PUUo5YWP0bknzXQieOqDc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
892
pkgs/applications/graphics/rnote/Cargo.lock
generated
892
pkgs/applications/graphics/rnote/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,7 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, alsa-lib
|
||||
, appstream-glib
|
||||
, cmake
|
||||
@@ -23,24 +24,32 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rnote";
|
||||
version = "0.6.0";
|
||||
version = "0.5.18";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "flxzt";
|
||||
repo = "rnote";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-47mWlUXp62fMh5c13enFjmuMxzrmEZlwJFsZhYCB1Vs=";
|
||||
hash = "sha256-N07Y9kmGvMFS0Kq4i2CltJvNTuqbXausZZGjAQRDmNU=";
|
||||
};
|
||||
|
||||
cargoDeps = rustPlatform.importCargoLock {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"ink-stroke-modeler-rs-0.1.0" = "sha256-DrbFolHGL3ywk2p6Ly3x0vbjqxy1mXld+5CPrNlJfQM=";
|
||||
"librsvg-2.56.0" = "sha256-4poP7xsoylmnKaUWuJ0tnlgEMpw9iJrM3dvt4IaFi7w=";
|
||||
"piet-0.6.2" = "sha256-If0qiZkgXeLvsrECItV9/HmhTk1H52xmVO7cUsD9dcU=";
|
||||
"ink-stroke-modeler-rs-0.1.0" = "sha256-+R3T/9Ty+F6YxxtA0Un6UhFyKbGOvqBKwHt4WSHWhsk=";
|
||||
"librsvg-2.55.92" = "sha256-WVwxjjWR/TloSmyzH8Jo1mTjLHVifBw1Xn965wuoEDs=";
|
||||
"piet-0.6.2" = "sha256-76yeX0yQMC0hh6u2xT/kS/2fjs+GO+nCks2fnOImf0c=";
|
||||
};
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://github.com/flxzt/rnote/pull/569
|
||||
(fetchpatch {
|
||||
url = "https://github.com/flxzt/rnote/commit/8585b446c08b246f3d55359026415cb3d242d44e.patch";
|
||||
hash = "sha256-ePpTQ/3mzZTNjU9P4vTu9CM0vX8+r8b6njuj7hDgFCg=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib # For appstream-util
|
||||
cmake
|
||||
@@ -76,6 +85,7 @@ stdenv.mkDerivation rec {
|
||||
pushd build-aux
|
||||
chmod +x cargo_build.py meson_post_install.py
|
||||
patchShebangs cargo_build.py meson_post_install.py
|
||||
substituteInPlace meson_post_install.py --replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
|
||||
popd
|
||||
'';
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user