Compare commits

..

1 Commits

Author SHA1 Message Date
Raito Bezarius
fc39343438 nixos/lib/make-disk-image: introduce noNixStore option
Sometimes, we want to use the host nix store for everything because it's
more convenient.

To do so, we need to "not install" the nix store in the target disk
image.

We trick nixos-install by mount binding the host nix store into the
$root/nix folder and letting Nix do the idempotency thing.
2023-04-23 23:48:35 +02:00
1095 changed files with 14746 additions and 30176 deletions

View File

@@ -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.

View File

@@ -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"

View File

@@ -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")"

View File

@@ -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}

View File

@@ -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}

View File

@@ -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 =

View File

@@ -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;

View File

@@ -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;

View File

@@ -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; }; };

View File

@@ -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"; };
};

View File

@@ -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" ];

View File

@@ -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";

View File

@@ -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.

View 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 \

View File

@@ -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";

View File

@@ -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;

View File

@@ -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

View File

@@ -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 ];
}

View File

@@ -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 {

View File

@@ -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

View File

@@ -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}";

View File

@@ -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
];
}

View File

@@ -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"} \

View File

@@ -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
;

View File

@@ -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}" {

View File

@@ -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" ];

View File

@@ -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" ];})
];

View File

@@ -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";
};
};
};

View File

@@ -256,6 +256,8 @@ let
${proxyCachePathConfig}
${vhosts}
${optionalString cfg.statusPage ''
server {
listen ${toString cfg.defaultHTTPListenPort};
@@ -273,8 +275,6 @@ let
}
''}
${vhosts}
${cfg.appendHttpConfig}
}''}

View File

@@ -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 ];
}

View File

@@ -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

View File

@@ -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'';

View File

@@ -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";
};

View File

@@ -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 {};

View File

@@ -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, ... }:

View File

@@ -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(

View File

@@ -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;
};
};
}

View File

@@ -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

View File

@@ -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 {}}
'';
}

View File

@@ -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
'';
}

View File

@@ -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 = ''

View File

@@ -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

View File

@@ -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 ];

View File

@@ -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 = [

View File

@@ -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;
};

View File

@@ -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"

View File

@@ -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 ];

View File

@@ -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;

View File

@@ -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";

View File

@@ -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 = [

View File

@@ -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

View File

@@ -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};
};

View File

@@ -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;
};

View File

@@ -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 ];

View File

@@ -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

View File

@@ -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;
};
}

View File

@@ -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

View File

@@ -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; {

View File

@@ -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 = [

View File

@@ -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 ];

View File

@@ -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 ];

View File

@@ -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:

View File

@@ -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 {

View File

@@ -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 {

File diff suppressed because it is too large Load Diff

View File

@@ -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 = {

View File

@@ -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"

View File

@@ -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 = ''

View File

@@ -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",

View File

@@ -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;

View File

@@ -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 ];

View File

@@ -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;

View File

@@ -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';

View File

@@ -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=="
}
}
}

View File

@@ -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 ];

View File

@@ -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" ];

View File

@@ -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";

View File

@@ -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/,,

View File

@@ -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";

View File

@@ -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 {

View File

@@ -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 = ''

View File

@@ -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 ];

View File

@@ -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;

View File

@@ -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"; })

View File

@@ -371,7 +371,7 @@ checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
[[package]]
name = "felix"
version = "2.2.6"
version = "2.2.5"
dependencies = [
"chrono",
"content_inspector",

View File

@@ -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 = {

View File

@@ -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";

View File

@@ -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

View File

@@ -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 ];

View File

@@ -103,7 +103,6 @@ in mkDerivation rec {
license = licenses.gpl3;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.unix;
broken = stdenv.isDarwin;
};
}

View File

@@ -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 ];

View File

@@ -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 ];
};
}

View File

@@ -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 [

View File

@@ -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 = [

View File

@@ -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";

View File

@@ -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 = [

View File

@@ -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

View File

@@ -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 = [

File diff suppressed because it is too large Load Diff

View File

@@ -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