Merge master into haskell-updates
This commit is contained in:
commit
5f6b37f57e
@ -68,27 +68,107 @@ Erlang.mk functions similarly to Rebar3, except we use `buildErlangMk` instead o
|
|||||||
|
|
||||||
`mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
|
`mixRelease` is used to make a release in the mix sense. Dependencies will need to be fetched with `fetchMixDeps` and passed to it.
|
||||||
|
|
||||||
#### mixRelease - Elixir Phoenix example {#mixrelease---elixir-phoenix-example}
|
#### mixRelease - Elixir Phoenix example {#mix-release-elixir-phoenix-example}
|
||||||
|
|
||||||
Here is how your `default.nix` file would look.
|
there are 3 steps, frontend dependencies (javascript), backend dependencies (elixir) and the final derivation that puts both of those together
|
||||||
|
|
||||||
|
##### mixRelease - Frontend dependencies (javascript) {#mix-release-javascript-deps}
|
||||||
|
|
||||||
|
for phoenix projects, inside of nixpkgs you can either use yarn2nix (mkYarnModule) or node2nix. An example with yarn2nix can be found [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/web-apps/plausible/default.nix#L39). An example with node2nix will follow. To package something outside of nixpkgs, you have alternatives like [npmlock2nix](https://github.com/nix-community/npmlock2nix) or [nix-npm-buildpackage](https://github.com/serokell/nix-npm-buildpackage)
|
||||||
|
|
||||||
|
##### mixRelease - backend dependencies (mix) {#mix-release-mix-deps}
|
||||||
|
|
||||||
|
There are 2 ways to package backend dependencies. With mix2nix and with a fixed-output-derivation (FOD).
|
||||||
|
|
||||||
|
###### mix2nix {#mix2nix}
|
||||||
|
|
||||||
|
mix2nix is a cli tool available in nixpkgs. it will generate a nix expression from a mix.lock file. It is quite standard in the 2nix tool series.
|
||||||
|
|
||||||
|
Note that currently mix2nix can't handle git dependencies inside the mix.lock file. If you have git dependencies, you can either add them manually (see [example](https://github.com/NixOS/nixpkgs/blob/master/pkgs/servers/pleroma/default.nix#L20)) or use the FOD method.
|
||||||
|
|
||||||
|
The advantage of using mix2nix is that nix will know your whole dependency graph. On a dependency update, this won't trigger a full rebuild and download of all the dependencies, where FOD will do so.
|
||||||
|
|
||||||
|
practical steps:
|
||||||
|
|
||||||
|
- run `mix2nix > mix_deps.nix` in the upstream repo.
|
||||||
|
- pass `mixNixDeps = with pkgs; import ./mix_deps.nix { inherit lib beamPackages; };` as an argument to mixRelease.
|
||||||
|
|
||||||
|
If there are git depencencies.
|
||||||
|
|
||||||
|
- You'll need to fix the version artificially in mix.exs and regenerate the mix.lock with fixed version (on upstream). This will enable you to run `mix2nix > mix_deps.nix`.
|
||||||
|
- From the mix_deps.nix file, remove the dependencies that had git versions and pass them as an override to the import function.
|
||||||
|
|
||||||
|
```nix
|
||||||
|
mixNixDeps = import ./mix.nix {
|
||||||
|
inherit beamPackages lib;
|
||||||
|
overrides = (final: prev: {
|
||||||
|
# mix2nix does not support git dependencies yet,
|
||||||
|
# so we need to add them manually
|
||||||
|
prometheus_ex = beamPackages.buildMix rec {
|
||||||
|
name = "prometheus_ex";
|
||||||
|
version = "3.0.5";
|
||||||
|
|
||||||
|
# Change the argument src with the git src that you actually need
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "git.pleroma.social";
|
||||||
|
group = "pleroma";
|
||||||
|
owner = "elixir-libraries";
|
||||||
|
repo = "prometheus.ex";
|
||||||
|
rev = "a4e9beb3c1c479d14b352fd9d6dd7b1f6d7deee5";
|
||||||
|
sha256 = "1v0q4bi7sb253i8q016l7gwlv5562wk5zy3l2sa446csvsacnpjk";
|
||||||
|
};
|
||||||
|
# you can re-use the same beamDeps argument as generated
|
||||||
|
beamDeps = with final; [ prometheus ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
You will need to run the build process once to fix the sha256 to correspond to your new git src.
|
||||||
|
|
||||||
|
###### FOD {#fixed-output-derivation}
|
||||||
|
|
||||||
|
A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [elixir_ls](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/beam-modules/elixir_ls.nix) for a usage example of FOD.
|
||||||
|
|
||||||
|
Practical steps
|
||||||
|
|
||||||
|
- start with the following argument to mixRelease
|
||||||
|
|
||||||
|
```nix
|
||||||
|
mixFodDeps = fetchMixDeps {
|
||||||
|
pname = "mix-deps-${pname}";
|
||||||
|
inherit src version;
|
||||||
|
sha256 = lib.fakeSha256;
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
The first build will complain about the sha256 value, you can replace with the suggested value after that.
|
||||||
|
|
||||||
|
Note that if after you've replaced the value, nix suggests another sha256, then mix is not fetching the dependencies reproducibly. An FOD will not work in that case and you will have to use mix2nix.
|
||||||
|
|
||||||
|
##### mixRelease - example {#mix-release-example}
|
||||||
|
|
||||||
|
Here is how your `default.nix` file would look for a phoenix project.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
with import <nixpkgs> { };
|
with import <nixpkgs> { };
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# beam.interpreters.erlangR23 is available if you need a particular version
|
||||||
packages = beam.packagesWith beam.interpreters.erlang;
|
packages = beam.packagesWith beam.interpreters.erlang;
|
||||||
|
|
||||||
|
pname = "your_project";
|
||||||
|
version = "0.0.1";
|
||||||
|
|
||||||
src = builtins.fetchgit {
|
src = builtins.fetchgit {
|
||||||
url = "ssh://git@github.com/your_id/your_repo";
|
url = "ssh://git@github.com/your_id/your_repo";
|
||||||
rev = "replace_with_your_commit";
|
rev = "replace_with_your_commit";
|
||||||
};
|
};
|
||||||
|
|
||||||
pname = "your_project";
|
# if using mix2nix you can use the mixNixDeps attribute
|
||||||
version = "0.0.1";
|
|
||||||
mixEnv = "prod";
|
|
||||||
|
|
||||||
mixFodDeps = packages.fetchMixDeps {
|
mixFodDeps = packages.fetchMixDeps {
|
||||||
pname = "mix-deps-${pname}";
|
pname = "mix-deps-${pname}";
|
||||||
inherit src mixEnv version;
|
inherit src version;
|
||||||
# nix will complain and tell you the right value to replace this with
|
# nix will complain and tell you the right value to replace this with
|
||||||
sha256 = lib.fakeSha256;
|
sha256 = lib.fakeSha256;
|
||||||
# if you have build time environment variables add them here
|
# if you have build time environment variables add them here
|
||||||
@ -97,45 +177,19 @@ let
|
|||||||
|
|
||||||
nodeDependencies = (pkgs.callPackage ./assets/default.nix { }).shell.nodeDependencies;
|
nodeDependencies = (pkgs.callPackage ./assets/default.nix { }).shell.nodeDependencies;
|
||||||
|
|
||||||
frontEndFiles = stdenvNoCC.mkDerivation {
|
|
||||||
pname = "frontend-${pname}";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ nodejs ];
|
|
||||||
|
|
||||||
inherit version src;
|
|
||||||
|
|
||||||
buildPhase = ''
|
|
||||||
cp -r ./assets $TEMPDIR
|
|
||||||
|
|
||||||
mkdir -p $TEMPDIR/assets/node_modules/.cache
|
|
||||||
cp -r ${nodeDependencies}/lib/node_modules $TEMPDIR/assets
|
|
||||||
export PATH="${nodeDependencies}/bin:$PATH"
|
|
||||||
|
|
||||||
cd $TEMPDIR/assets
|
|
||||||
webpack --config ./webpack.config.js
|
|
||||||
cd ..
|
|
||||||
'';
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
cp -r ./priv/static $out/
|
|
||||||
'';
|
|
||||||
|
|
||||||
outputHashAlgo = "sha256";
|
|
||||||
outputHashMode = "recursive";
|
|
||||||
# nix will complain and tell you the right value to replace this with
|
|
||||||
outputHash = lib.fakeSha256;
|
|
||||||
|
|
||||||
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
in packages.mixRelease {
|
in packages.mixRelease {
|
||||||
inherit src pname version mixEnv mixFodDeps;
|
inherit src pname version mixFodDeps;
|
||||||
# if you have build time environment variables add them here
|
# if you have build time environment variables add them here
|
||||||
MY_ENV_VAR="my_value";
|
MY_ENV_VAR="my_value";
|
||||||
preInstall = ''
|
|
||||||
mkdir -p ./priv/static
|
postBuild = ''
|
||||||
cp -r ${frontEndFiles} ./priv/static
|
ln -sf ${nodeDependencies}/lib/node_modules assets/node_modules
|
||||||
|
npm run deploy --prefix ./assets
|
||||||
|
|
||||||
|
# for external task you need a workaround for the no deps check flag
|
||||||
|
# https://github.com/phoenixframework/phoenix/issues/2690
|
||||||
|
mix do deps.loadpaths --no-deps-check, phx.digest
|
||||||
|
mix phx.digest --no-deps-check
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -165,6 +219,8 @@ in
|
|||||||
systemd.services.${release_name} = {
|
systemd.services.${release_name} = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network.target" "postgresql.service" ];
|
after = [ "network.target" "postgresql.service" ];
|
||||||
|
# note that if you are connecting to a postgres instance on a different host
|
||||||
|
# postgresql.service should not be included in the requires.
|
||||||
requires = [ "network-online.target" "postgresql.service" ];
|
requires = [ "network-online.target" "postgresql.service" ];
|
||||||
description = "my app";
|
description = "my app";
|
||||||
environment = {
|
environment = {
|
||||||
@ -201,6 +257,7 @@ in
|
|||||||
path = [ pkgs.bash ];
|
path = [ pkgs.bash ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# in case you have migration scripts or you want to use a remote shell
|
||||||
environment.systemPackages = [ release ];
|
environment.systemPackages = [ release ];
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -215,16 +272,11 @@ Usually, we need to create a `shell.nix` file and do our development inside of t
|
|||||||
{ pkgs ? import <nixpkgs> {} }:
|
{ pkgs ? import <nixpkgs> {} }:
|
||||||
|
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
elixir = beam.packages.erlangR24.elixir_1_12;
|
||||||
elixir = beam.packages.erlangR22.elixir_1_9;
|
|
||||||
|
|
||||||
in
|
in
|
||||||
mkShell {
|
mkShell {
|
||||||
buildInputs = [ elixir ];
|
buildInputs = [ elixir ];
|
||||||
|
|
||||||
ERL_INCLUDE_PATH="${erlang}/lib/erlang/usr/include";
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -264,6 +316,7 @@ let
|
|||||||
# TODO: not sure how to make hex available without installing it afterwards.
|
# TODO: not sure how to make hex available without installing it afterwards.
|
||||||
mix local.hex --if-missing
|
mix local.hex --if-missing
|
||||||
export LANG=en_US.UTF-8
|
export LANG=en_US.UTF-8
|
||||||
|
# keep your shell history in iex
|
||||||
export ERL_AFLAGS="-kernel shell_history enabled"
|
export ERL_AFLAGS="-kernel shell_history enabled"
|
||||||
|
|
||||||
# postges related
|
# postges related
|
||||||
|
@ -7445,6 +7445,16 @@
|
|||||||
name = "Maxim Schuwalow";
|
name = "Maxim Schuwalow";
|
||||||
email = "maxim.schuwalow@gmail.com";
|
email = "maxim.schuwalow@gmail.com";
|
||||||
};
|
};
|
||||||
|
msfjarvis = {
|
||||||
|
github = "msfjarvis";
|
||||||
|
githubId = 3348378;
|
||||||
|
name = "Harsh Shandilya";
|
||||||
|
email = "nixos@msfjarvis.dev";
|
||||||
|
keys = [{
|
||||||
|
longkeyid = "rsa4096/0xB7843F823355E9B9";
|
||||||
|
fingerprint = "8F87 050B 0F9C B841 1515 7399 B784 3F82 3355 E9B9";
|
||||||
|
}];
|
||||||
|
};
|
||||||
msiedlarek = {
|
msiedlarek = {
|
||||||
email = "mikolaj@siedlarek.pl";
|
email = "mikolaj@siedlarek.pl";
|
||||||
github = "msiedlarek";
|
github = "msiedlarek";
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
kOps now defaults to 1.21.0, which uses containerd as the
|
kOps now defaults to 1.21.1, which uses containerd as the
|
||||||
default runtime.
|
default runtime.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -7,7 +7,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||||||
## Highlights {#sec-release-21.11-highlights}
|
## Highlights {#sec-release-21.11-highlights}
|
||||||
|
|
||||||
- PHP now defaults to PHP 8.0, updated from 7.4.
|
- PHP now defaults to PHP 8.0, updated from 7.4.
|
||||||
- kOps now defaults to 1.21.0, which uses containerd as the default runtime.
|
|
||||||
|
- kOps now defaults to 1.21.1, which uses containerd as the default runtime.
|
||||||
|
|
||||||
- `python3` now defaults to Python 3.9, updated from Python 3.8.
|
- `python3` now defaults to Python 3.9, updated from Python 3.8.
|
||||||
|
|
||||||
|
@ -143,6 +143,15 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
hardware.nvidia.nvidiaSettings = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
Whether to add nvidia-settings, NVIDIA's GUI configuration tool, to
|
||||||
|
systemPackages.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
hardware.nvidia.nvidiaPersistenced = mkOption {
|
hardware.nvidia.nvidiaPersistenced = mkOption {
|
||||||
default = false;
|
default = false;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
@ -279,7 +288,8 @@ in
|
|||||||
hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
|
hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
|
||||||
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
|
hardware.opengl.extraPackages32 = optional offloadCfg.enable nvidia_x11.lib32;
|
||||||
|
|
||||||
environment.systemPackages = [ nvidia_x11.bin nvidia_x11.settings ]
|
environment.systemPackages = [ nvidia_x11.bin ]
|
||||||
|
++ optionals nvidiaSettings [ nvidia_x11.settings ]
|
||||||
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
|
++ optionals nvidiaPersistencedEnabled [ nvidia_x11.persistenced ];
|
||||||
|
|
||||||
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
|
systemd.packages = optional cfg.powerManagement.enable nvidia_x11.out;
|
||||||
|
@ -14,9 +14,6 @@ in {
|
|||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Open ports in the firewall for the bridge.
|
Open ports in the firewall for the bridge.
|
||||||
|
|
||||||
UDP: 9003
|
|
||||||
TCP: 9100 - 9200
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
@ -54,10 +51,15 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.openFirewall {
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
allowedTCPPortRanges = [
|
allowedTCPPortRanges = [{ from = 9100; to = 9200; }];
|
||||||
{ from = 9100; to = 9200; }
|
|
||||||
];
|
|
||||||
allowedUDPPorts = [ 9003 ];
|
allowedUDPPorts = [ 9003 ];
|
||||||
|
extraCommands = ''
|
||||||
|
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
|
||||||
|
iptables -A INPUT -d 224.0.0.0/4 -j ACCEPT
|
||||||
|
iptables -A INPUT -s 240.0.0.0/5 -j ACCEPT
|
||||||
|
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
|
||||||
|
iptables -A INPUT -m pkttype --pkt-type broadcast -j ACCEPT
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,9 +14,6 @@ in {
|
|||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = ''
|
||||||
Open ports in the firewall for the server.
|
Open ports in the firewall for the server.
|
||||||
|
|
||||||
UDP: 9003
|
|
||||||
TCP: 9100 - 9200
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
@ -54,10 +51,15 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.openFirewall {
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
allowedTCPPortRanges = [
|
allowedTCPPortRanges = [{ from = 9100; to = 9200; }];
|
||||||
{ from = 9100; to = 9200; }
|
|
||||||
];
|
|
||||||
allowedUDPPorts = [ 9003 ];
|
allowedUDPPorts = [ 9003 ];
|
||||||
|
extraCommands = ''
|
||||||
|
iptables -A INPUT -s 224.0.0.0/4 -j ACCEPT
|
||||||
|
iptables -A INPUT -d 224.0.0.0/4 -j ACCEPT
|
||||||
|
iptables -A INPUT -s 240.0.0.0/5 -j ACCEPT
|
||||||
|
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
|
||||||
|
iptables -A INPUT -m pkttype --pkt-type broadcast -j ACCEPT
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,36 +5,41 @@ let
|
|||||||
opt = options.services.ipfs;
|
opt = options.services.ipfs;
|
||||||
|
|
||||||
ipfsFlags = toString ([
|
ipfsFlags = toString ([
|
||||||
(optionalString cfg.autoMount "--mount")
|
(optionalString cfg.autoMount "--mount")
|
||||||
(optionalString cfg.enableGC "--enable-gc")
|
(optionalString cfg.enableGC "--enable-gc")
|
||||||
(optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false")
|
(optionalString (cfg.serviceFdlimit != null) "--manage-fdlimit=false")
|
||||||
(optionalString (cfg.defaultMode == "offline") "--offline")
|
(optionalString (cfg.defaultMode == "offline") "--offline")
|
||||||
(optionalString (cfg.defaultMode == "norouting") "--routing=none")
|
(optionalString (cfg.defaultMode == "norouting") "--routing=none")
|
||||||
] ++ cfg.extraFlags);
|
] ++ cfg.extraFlags);
|
||||||
|
|
||||||
splitMulitaddr = addrRaw: lib.tail (lib.splitString "/" addrRaw);
|
splitMulitaddr = addrRaw: lib.tail (lib.splitString "/" addrRaw);
|
||||||
|
|
||||||
multiaddrToListenStream = addrRaw: let
|
multiaddrToListenStream = addrRaw:
|
||||||
|
let
|
||||||
addr = splitMulitaddr addrRaw;
|
addr = splitMulitaddr addrRaw;
|
||||||
s = builtins.elemAt addr;
|
s = builtins.elemAt addr;
|
||||||
in if s 0 == "ip4" && s 2 == "tcp"
|
in
|
||||||
then "${s 1}:${s 3}"
|
if s 0 == "ip4" && s 2 == "tcp"
|
||||||
|
then "${s 1}:${s 3}"
|
||||||
else if s 0 == "ip6" && s 2 == "tcp"
|
else if s 0 == "ip6" && s 2 == "tcp"
|
||||||
then "[${s 1}]:${s 3}"
|
then "[${s 1}]:${s 3}"
|
||||||
else if s 0 == "unix"
|
else if s 0 == "unix"
|
||||||
then "/${lib.concatStringsSep "/" (lib.tail addr)}"
|
then "/${lib.concatStringsSep "/" (lib.tail addr)}"
|
||||||
else null; # not valid for listen stream, skip
|
else null; # not valid for listen stream, skip
|
||||||
|
|
||||||
multiaddrToListenDatagram = addrRaw: let
|
multiaddrToListenDatagram = addrRaw:
|
||||||
|
let
|
||||||
addr = splitMulitaddr addrRaw;
|
addr = splitMulitaddr addrRaw;
|
||||||
s = builtins.elemAt addr;
|
s = builtins.elemAt addr;
|
||||||
in if s 0 == "ip4" && s 2 == "udp"
|
in
|
||||||
then "${s 1}:${s 3}"
|
if s 0 == "ip4" && s 2 == "udp"
|
||||||
|
then "${s 1}:${s 3}"
|
||||||
else if s 0 == "ip6" && s 2 == "udp"
|
else if s 0 == "ip6" && s 2 == "udp"
|
||||||
then "[${s 1}]:${s 3}"
|
then "[${s 1}]:${s 3}"
|
||||||
else null; # not valid for listen datagram, skip
|
else null; # not valid for listen datagram, skip
|
||||||
|
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
@ -65,9 +70,10 @@ in {
|
|||||||
|
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = if versionAtLeast config.system.stateVersion "17.09"
|
default =
|
||||||
then "/var/lib/ipfs"
|
if versionAtLeast config.system.stateVersion "17.09"
|
||||||
else "/var/lib/ipfs/.ipfs";
|
then "/var/lib/ipfs"
|
||||||
|
else "/var/lib/ipfs/.ipfs";
|
||||||
description = "The data dir for IPFS";
|
description = "The data dir for IPFS";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -83,6 +89,12 @@ in {
|
|||||||
description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
|
description = "Whether IPFS should try to mount /ipfs and /ipns at startup.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
autoMigrate = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = true;
|
||||||
|
description = "Whether IPFS should try to run the fs-repo-migration at startup.";
|
||||||
|
};
|
||||||
|
|
||||||
ipfsMountDir = mkOption {
|
ipfsMountDir = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "/ipfs";
|
default = "/ipfs";
|
||||||
@ -137,7 +149,7 @@ in {
|
|||||||
These are applied last, so may override configuration set by other options in this module.
|
These are applied last, so may override configuration set by other options in this module.
|
||||||
Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default!
|
Keep in mind that this configuration is stateful; i.e., unsetting anything in here does not reset the value to the default!
|
||||||
'';
|
'';
|
||||||
default = {};
|
default = { };
|
||||||
example = {
|
example = {
|
||||||
Datastore.StorageMax = "100GB";
|
Datastore.StorageMax = "100GB";
|
||||||
Discovery.MDNS.Enabled = false;
|
Discovery.MDNS.Enabled = false;
|
||||||
@ -153,7 +165,7 @@ in {
|
|||||||
extraFlags = mkOption {
|
extraFlags = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description = "Extra flags passed to the IPFS daemon";
|
description = "Extra flags passed to the IPFS daemon";
|
||||||
default = [];
|
default = [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
localDiscovery = mkOption {
|
localDiscovery = mkOption {
|
||||||
@ -168,7 +180,7 @@ in {
|
|||||||
type = types.nullOr types.int;
|
type = types.nullOr types.int;
|
||||||
default = null;
|
default = null;
|
||||||
description = "The fdlimit for the IPFS systemd unit or <literal>null</literal> to have the daemon attempt to manage it";
|
description = "The fdlimit for the IPFS systemd unit or <literal>null</literal> to have the daemon attempt to manage it";
|
||||||
example = 64*1024;
|
example = 64 * 1024;
|
||||||
};
|
};
|
||||||
|
|
||||||
startWhenNeeded = mkOption {
|
startWhenNeeded = mkOption {
|
||||||
@ -186,6 +198,9 @@ in {
|
|||||||
environment.systemPackages = [ cfg.package ];
|
environment.systemPackages = [ cfg.package ];
|
||||||
environment.variables.IPFS_PATH = cfg.dataDir;
|
environment.variables.IPFS_PATH = cfg.dataDir;
|
||||||
|
|
||||||
|
# https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size
|
||||||
|
boot.kernel.sysctl."net.core.rmem_max" = mkDefault 2500000;
|
||||||
|
|
||||||
programs.fuse = mkIf cfg.autoMount {
|
programs.fuse = mkIf cfg.autoMount {
|
||||||
userAllowOther = true;
|
userAllowOther = true;
|
||||||
};
|
};
|
||||||
@ -234,25 +249,28 @@ in {
|
|||||||
ipfs --offline config Mounts.FuseAllowOther --json true
|
ipfs --offline config Mounts.FuseAllowOther --json true
|
||||||
ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
|
ipfs --offline config Mounts.IPFS ${cfg.ipfsMountDir}
|
||||||
ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
|
ipfs --offline config Mounts.IPNS ${cfg.ipnsMountDir}
|
||||||
|
'' + optionalString cfg.autoMigrate ''
|
||||||
|
${pkgs.ipfs-migrator}/bin/fs-repo-migrations -y
|
||||||
'' + concatStringsSep "\n" (collect
|
'' + concatStringsSep "\n" (collect
|
||||||
isString
|
isString
|
||||||
(mapAttrsRecursive
|
(mapAttrsRecursive
|
||||||
(path: value:
|
(path: value:
|
||||||
# Using heredoc below so that the value is never improperly quoted
|
# Using heredoc below so that the value is never improperly quoted
|
||||||
''
|
''
|
||||||
read value <<EOF
|
read value <<EOF
|
||||||
${builtins.toJSON value}
|
${builtins.toJSON value}
|
||||||
EOF
|
EOF
|
||||||
ipfs --offline config --json "${concatStringsSep "." path}" "$value"
|
ipfs --offline config --json "${concatStringsSep "." path}" "$value"
|
||||||
'')
|
'')
|
||||||
({ Addresses.API = cfg.apiAddress;
|
({
|
||||||
Addresses.Gateway = cfg.gatewayAddress;
|
Addresses.API = cfg.apiAddress;
|
||||||
Addresses.Swarm = cfg.swarmAddress;
|
Addresses.Gateway = cfg.gatewayAddress;
|
||||||
} //
|
Addresses.Swarm = cfg.swarmAddress;
|
||||||
cfg.extraConfig))
|
} //
|
||||||
);
|
cfg.extraConfig))
|
||||||
|
);
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = ["" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}"];
|
ExecStart = [ "" "${cfg.package}/bin/ipfs daemon ${ipfsFlags}" ];
|
||||||
User = cfg.user;
|
User = cfg.user;
|
||||||
Group = cfg.group;
|
Group = cfg.group;
|
||||||
} // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
|
} // optionalAttrs (cfg.serviceFdlimit != null) { LimitNOFILE = cfg.serviceFdlimit; };
|
||||||
@ -263,12 +281,16 @@ in {
|
|||||||
systemd.sockets.ipfs-gateway = {
|
systemd.sockets.ipfs-gateway = {
|
||||||
wantedBy = [ "sockets.target" ];
|
wantedBy = [ "sockets.target" ];
|
||||||
socketConfig = {
|
socketConfig = {
|
||||||
ListenStream = let
|
ListenStream =
|
||||||
|
let
|
||||||
fromCfg = multiaddrToListenStream cfg.gatewayAddress;
|
fromCfg = multiaddrToListenStream cfg.gatewayAddress;
|
||||||
in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
in
|
||||||
ListenDatagram = let
|
[ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||||
|
ListenDatagram =
|
||||||
|
let
|
||||||
fromCfg = multiaddrToListenDatagram cfg.gatewayAddress;
|
fromCfg = multiaddrToListenDatagram cfg.gatewayAddress;
|
||||||
in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
in
|
||||||
|
[ "" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -276,9 +298,11 @@ in {
|
|||||||
wantedBy = [ "sockets.target" ];
|
wantedBy = [ "sockets.target" ];
|
||||||
# We also include "%t/ipfs.sock" because there is no way to put the "%t"
|
# We also include "%t/ipfs.sock" because there is no way to put the "%t"
|
||||||
# in the multiaddr.
|
# in the multiaddr.
|
||||||
socketConfig.ListenStream = let
|
socketConfig.ListenStream =
|
||||||
|
let
|
||||||
fromCfg = multiaddrToListenStream cfg.apiAddress;
|
fromCfg = multiaddrToListenStream cfg.apiAddress;
|
||||||
in [ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
|
in
|
||||||
|
[ "" "%t/ipfs.sock" ] ++ lib.optional (fromCfg != null) fromCfg;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -37,7 +37,7 @@ let
|
|||||||
do sleep 1; done
|
do sleep 1; done
|
||||||
|
|
||||||
curl() {
|
curl() {
|
||||||
${pkgs.curl}/bin/curl -sS -H "X-API-Key: $api_key" \
|
${pkgs.curl}/bin/curl -sSLk -H "X-API-Key: $api_key" \
|
||||||
--retry 1000 --retry-delay 1 --retry-all-errors \
|
--retry 1000 --retry-delay 1 --retry-all-errors \
|
||||||
"$@"
|
"$@"
|
||||||
}
|
}
|
||||||
|
@ -84,47 +84,93 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="module-services-nextcloud-pitfalls-during-upgrade">
|
<section xml:id="module-services-nextcloud-pitfalls-during-upgrade">
|
||||||
<title>Pitfalls</title>
|
<title>Common problems</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
|
<title>General notes</title>
|
||||||
|
<para>
|
||||||
|
Unfortunately Nextcloud appears to be very stateful when it comes to
|
||||||
|
managing its own configuration. The config file lives in the home directory
|
||||||
|
of the <literal>nextcloud</literal> user (by default
|
||||||
|
<literal>/var/lib/nextcloud/config/config.php</literal>) and is also used to
|
||||||
|
track several states of the application (e.g., whether installed or not).
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
<para>
|
||||||
|
All configuration parameters are also stored in
|
||||||
|
<filename>/var/lib/nextcloud/config/override.config.php</filename> which is generated by
|
||||||
|
the module and linked from the store to ensure that all values from
|
||||||
|
<filename>config.php</filename> can be modified by the module.
|
||||||
|
However <filename>config.php</filename> manages the application's state and shouldn't be
|
||||||
|
touched manually because of that.
|
||||||
|
</para>
|
||||||
|
<warning>
|
||||||
|
<para>Don't delete <filename>config.php</filename>! This file
|
||||||
|
tracks the application's state and a deletion can cause unwanted
|
||||||
|
side-effects!</para>
|
||||||
|
</warning>
|
||||||
|
|
||||||
<para>
|
<warning>
|
||||||
Unfortunately Nextcloud appears to be very stateful when it comes to
|
<para>Don't rerun <literal>nextcloud-occ
|
||||||
managing its own configuration. The config file lives in the home directory
|
maintenance:install</literal>! This command tries to install the application
|
||||||
of the <literal>nextcloud</literal> user (by default
|
and can cause unwanted side-effects!</para>
|
||||||
<literal>/var/lib/nextcloud/config/config.php</literal>) and is also used to
|
</warning>
|
||||||
track several states of the application (e.g. whether installed or not).
|
</listitem>
|
||||||
</para>
|
<listitem>
|
||||||
|
<formalpara>
|
||||||
<para>
|
<title>Multiple version upgrades</title>
|
||||||
All configuration parameters are also stored in
|
<para>
|
||||||
<literal>/var/lib/nextcloud/config/override.config.php</literal> which is generated by
|
Nextcloud doesn't allow to move more than one major-version forward. E.g., if you're on
|
||||||
the module and linked from the store to ensure that all values from <literal>config.php</literal>
|
<literal>v16</literal>, you cannot upgrade to <literal>v18</literal>, you need to upgrade to
|
||||||
can be modified by the module.
|
<literal>v17</literal> first. This is ensured automatically as long as the
|
||||||
However <literal>config.php</literal> manages the application's state and shouldn't be touched
|
<link linkend="opt-system.stateVersion">stateVersion</link> is declared properly. In that case
|
||||||
manually because of that.
|
the oldest version available (one major behind the one from the previous NixOS
|
||||||
</para>
|
release) will be selected by default and the module will generate a warning that reminds
|
||||||
|
the user to upgrade to latest Nextcloud <emphasis>after</emphasis> that deploy.
|
||||||
<warning>
|
</para>
|
||||||
<para>Don't delete <literal>config.php</literal>! This file
|
</formalpara>
|
||||||
tracks the application's state and a deletion can cause unwanted
|
</listitem>
|
||||||
side-effects!</para>
|
<listitem>
|
||||||
</warning>
|
<formalpara>
|
||||||
|
<title><literal>Error: Command "upgrade" is not defined.</literal></title>
|
||||||
<warning>
|
<para>
|
||||||
<para>Don't rerun <literal>nextcloud-occ
|
This error usually occurs if the initial installation
|
||||||
maintenance:install</literal>! This command tries to install the application
|
(<command>nextcloud-occ maintenance:install</command>) has failed. After that, the application
|
||||||
and can cause unwanted side-effects!</para>
|
is not installed, but the upgrade is attempted to be executed. Further context can
|
||||||
</warning>
|
be found in <link xlink:href="https://github.com/NixOS/nixpkgs/issues/111175">NixOS/nixpkgs#111175</link>.
|
||||||
|
</para>
|
||||||
<para>
|
</formalpara>
|
||||||
Nextcloud doesn't allow to move more than one major-version forward. If you're e.g. on
|
<para>
|
||||||
<literal>v16</literal>, you cannot upgrade to <literal>v18</literal>, you need to upgrade to
|
First of all, it makes sense to find out what went wrong by looking at the logs
|
||||||
<literal>v17</literal> first. This is ensured automatically as long as the
|
of the installation via <command>journalctl -u nextcloud-setup</command> and try to fix
|
||||||
<link linkend="opt-system.stateVersion">stateVersion</link> is declared properly. In that case
|
the underlying issue.
|
||||||
the oldest version available (one major behind the one from the previous NixOS
|
</para>
|
||||||
release) will be selected by default and the module will generate a warning that reminds
|
<itemizedlist>
|
||||||
the user to upgrade to latest Nextcloud <emphasis>after</emphasis> that deploy.
|
<listitem>
|
||||||
</para>
|
<para>
|
||||||
|
If this occurs on an <emphasis>existing</emphasis> setup, this is most likely because
|
||||||
|
the maintenance mode is active. It can be deactivated by running
|
||||||
|
<command>nextcloud-occ maintenance:mode --off</command>. It's advisable though to
|
||||||
|
check the logs first on why the maintenance mode was activated.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<warning><para>Only perform the following measures on
|
||||||
|
<emphasis>freshly installed instances!</emphasis></para></warning>
|
||||||
|
<para>
|
||||||
|
A re-run of the installer can be forced by <emphasis>deleting</emphasis>
|
||||||
|
<filename>/var/lib/nextcloud/config/config.php</filename>. This is the only time
|
||||||
|
advisable because the fresh install doesn't have any state that can be lost.
|
||||||
|
In case that doesn't help, an entire re-creation can be forced via
|
||||||
|
<command>rm -rf ~nextcloud/</command>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section xml:id="module-services-nextcloud-httpd">
|
<section xml:id="module-services-nextcloud-httpd">
|
||||||
|
@ -1,25 +1,17 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, ncurses, asciidoc, docbook_xsl, libxslt, pkg-config }:
|
{ lib, stdenv, fetchFromGitHub }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "kakoune-unwrapped";
|
pname = "kakoune-unwrapped";
|
||||||
version = "2020.09.01";
|
version = "2021.08.28";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = "kakoune";
|
repo = "kakoune";
|
||||||
owner = "mawww";
|
owner = "mawww";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
|
sha256 = "13kc68vkrzg89khir6ayyxgbnmz16dhippcnw09hhzxivf5ayzpy";
|
||||||
};
|
};
|
||||||
nativeBuildInputs = [ pkg-config ];
|
makeFlags = [ "debug=no" "PREFIX=${placeholder "out"}" ];
|
||||||
buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
|
|
||||||
makeFlags = [ "debug=no" ];
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
export PREFIX=$out
|
|
||||||
cd src
|
|
||||||
sed -ie 's#--no-xmllint#--no-xmllint --xsltproc-opts="--nonet"#g' Makefile
|
|
||||||
'';
|
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export version="v${version}"
|
export version="v${version}"
|
||||||
|
@ -23,7 +23,7 @@ mkDerivation rec {
|
|||||||
owner = "openstreetmap";
|
owner = "openstreetmap";
|
||||||
repo = "merkaartor";
|
repo = "merkaartor";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-Gx+gnVbSY8JnG03kO5vVQNlSZRl/hrKTdDbh7lyIMbA=";
|
sha256 = "sha256-I3QNCXzwhEFa8aOdwl3UJV8MLZ9caN9wuaaVrGFRvbQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake qttools ];
|
nativeBuildInputs = [ qmake qttools ];
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -7,10 +7,10 @@ in
|
|||||||
rec {
|
rec {
|
||||||
firefox = common rec {
|
firefox = common rec {
|
||||||
pname = "firefox";
|
pname = "firefox";
|
||||||
version = "91.0.1";
|
version = "91.0.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||||
sha512 = "9388789bfe3dca596542b082d0eca7b1a6d1bbbf69eb97cc445f563d1a5ff0c9b530f3be02ee290805e311b0fcb392a4f5341e9f256d9764a787b43b232bdf67";
|
sha512 = "82084799524db6661d97d9942a01ca9edec2fae6b503c9dd2d79fca78bfef4ee0a888e5f5cf4cfa2b91d9c9392658bb8218bae2b9bec0fbcacfe73a174a4dbe7";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -65,8 +65,8 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
kops_1_21 = mkKops rec {
|
kops_1_21 = mkKops rec {
|
||||||
version = "1.21.0";
|
version = "1.21.1";
|
||||||
sha256 = "sha256-T2i3qpg3GC7yaYCGrN1V5XXrUyT+Ce9Q4aV00gQJ7gM=";
|
sha256 = "sha256-/C/fllgfAovHuyGRY+LM09bsUpYdA8zDw1w0b9HnlBc=";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,6 @@
|
|||||||
|
|
||||||
callPackage ./generic.nix {
|
callPackage ./generic.nix {
|
||||||
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
inherit buildGoPackage nvidia_x11 nvidiaGpuSupport;
|
||||||
version = "1.0.9";
|
version = "1.0.10";
|
||||||
sha256 = "0ml6l5xq1310ib5zqfdwlxmsmhpc5ybd05z7pc6zgxbma1brxdv4";
|
sha256 = "1yd4j35dmxzg9qapqyq3g3hnhxi5c4f57q43xbim8255bjyn94f0";
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
callPackage ./genericModule.nix {
|
callPackage ./genericModule.nix {
|
||||||
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
|
inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
|
||||||
version = "1.1.3";
|
version = "1.1.4";
|
||||||
sha256 = "0jpc8ff56k9q2kv9l86y3p8h3gqbvx6amvs0cw8sp4i7dqd2ihz2";
|
sha256 = "182f3sxw751s8qg16vbssplhl92i9gshgzvflwwvnxraz2795y7l";
|
||||||
vendorSha256 = "0az4gr7292lfr5wrwbkdknrigqm15lkbnf5mh517hl3yzv4pb8yr";
|
vendorSha256 = "1nddknnsvb05sapbj1c52cv2fmibvdg48f88malxqblzw33wfziq";
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"name": "element-desktop",
|
"name": "element-desktop",
|
||||||
"productName": "Element",
|
"productName": "Element",
|
||||||
"main": "lib/electron-main.js",
|
"main": "lib/electron-main.js",
|
||||||
"version": "1.8.1",
|
"version": "1.8.2",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "Element",
|
"author": "Element",
|
||||||
"repository": {
|
"repository": {
|
||||||
@ -57,7 +57,7 @@
|
|||||||
"allchange": "^1.0.0",
|
"allchange": "^1.0.0",
|
||||||
"asar": "^2.0.1",
|
"asar": "^2.0.1",
|
||||||
"chokidar": "^3.5.2",
|
"chokidar": "^3.5.2",
|
||||||
"electron": "^13.1.7",
|
"electron": "^13.1.9",
|
||||||
"electron-builder": "22.11.4",
|
"electron-builder": "22.11.4",
|
||||||
"electron-builder-squirrel-windows": "22.11.4",
|
"electron-builder-squirrel-windows": "22.11.4",
|
||||||
"electron-devtools-installer": "^3.1.1",
|
"electron-devtools-installer": "^3.1.1",
|
||||||
@ -83,7 +83,7 @@
|
|||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "im.riot.app",
|
"appId": "im.riot.app",
|
||||||
"electronVersion": "13.1.6",
|
"electronVersion": "13.1.9",
|
||||||
"files": [
|
"files": [
|
||||||
"package.json",
|
"package.json",
|
||||||
{
|
{
|
||||||
|
@ -2002,11 +2002,11 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "electron___electron_13.1.7.tgz";
|
name = "electron___electron_13.1.9.tgz";
|
||||||
path = fetchurl {
|
path = fetchurl {
|
||||||
name = "electron___electron_13.1.7.tgz";
|
name = "electron___electron_13.1.9.tgz";
|
||||||
url = "https://registry.yarnpkg.com/electron/-/electron-13.1.7.tgz";
|
url = "https://registry.yarnpkg.com/electron/-/electron-13.1.9.tgz";
|
||||||
sha1 = "7e17f5c93a8d182a2a486884fed3dc34ab101be9";
|
sha1 = "668e2632b81e9fa21edfd32876282d3e2ff7fd76";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
@ -19,12 +19,12 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
executableName = "element-desktop";
|
executableName = "element-desktop";
|
||||||
version = "1.8.1";
|
version = "1.8.2";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "vector-im";
|
owner = "vector-im";
|
||||||
repo = "element-desktop";
|
repo = "element-desktop";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-FIKbyfnRuHBbmtjwxNC//n5UiGTCQNr+PeiZEi3+RGI=";
|
sha256 = "sha256-6DPMfx3LF45YWn2do02zDMLYZGBgBrOMJx3XBAO0ZyM=";
|
||||||
};
|
};
|
||||||
electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
|
electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron";
|
||||||
in
|
in
|
||||||
|
@ -12,11 +12,11 @@ let
|
|||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "element-web";
|
pname = "element-web";
|
||||||
version = "1.8.1";
|
version = "1.8.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
|
url = "https://github.com/vector-im/element-web/releases/download/v${version}/element-v${version}.tar.gz";
|
||||||
sha256 = "sha256-C2oWYpPxMeSgGKyjUe6Ih13ggZliN4bmAX5cakzW1u8=";
|
sha256 = "sha256-SgVxYPmdgFn6Nll1a6b1Sn2H5I0Vkjorn3gA9d5FamQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ lib, stdenv, fetchurl, dpkg
|
{ lib, stdenv, fetchurl, dpkg
|
||||||
, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome
|
, alsa-lib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, glibc, gnome2, gnome
|
||||||
, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
|
, gtk3, libappindicator-gtk3, libnotify, libpulseaudio, libsecret, libv4l, nspr, nss, pango, systemd, wrapGAppsHook, xorg
|
||||||
, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon }:
|
, at-spi2-atk, libuuid, at-spi2-core, libdrm, mesa, libxkbcommon, libxshmfence }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
|
# Please keep the version x.y.0.z and do not update to x.y.76.z because the
|
||||||
# source of the latter disappears much faster.
|
# source of the latter disappears much faster.
|
||||||
version = "8.69.0.77";
|
version = "8.75.0.140";
|
||||||
|
|
||||||
rpath = lib.makeLibraryPath [
|
rpath = lib.makeLibraryPath [
|
||||||
alsa-lib
|
alsa-lib
|
||||||
@ -45,6 +45,7 @@ let
|
|||||||
libdrm
|
libdrm
|
||||||
mesa
|
mesa
|
||||||
libxkbcommon
|
libxkbcommon
|
||||||
|
libxshmfence
|
||||||
xorg.libxkbfile
|
xorg.libxkbfile
|
||||||
xorg.libX11
|
xorg.libX11
|
||||||
xorg.libXcomposite
|
xorg.libXcomposite
|
||||||
@ -68,7 +69,7 @@ let
|
|||||||
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
"https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||||
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
"https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
|
||||||
];
|
];
|
||||||
sha256 = "PaqlPp+BRS0cH7XI4x1/5HqYti63rQThmTtPaghIQH0=";
|
sha256 = "sha256-z3xsl53CSJthSd/BMbMD7RdYQ4z9oI/Rb9jUvd82H4E=";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
|
||||||
@ -121,7 +122,7 @@ in stdenv.mkDerivation {
|
|||||||
description = "Linux client for skype";
|
description = "Linux client for skype";
|
||||||
homepage = "https://www.skype.com";
|
homepage = "https://www.skype.com";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = with lib.maintainers; [ panaeon jraygauthier ];
|
maintainers = with maintainers; [ panaeon jraygauthier ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
, lib
|
, lib
|
||||||
, fetchurl
|
, fetchurl
|
||||||
# Alphabetic ordering below
|
# Alphabetic ordering below
|
||||||
, alsa-lib
|
, alsa-lib
|
||||||
, at-spi2-atk
|
, at-spi2-atk
|
||||||
, atk
|
, atk
|
||||||
@ -59,7 +59,7 @@ let
|
|||||||
let
|
let
|
||||||
version = "v20201206-cjk";
|
version = "v20201206-cjk";
|
||||||
in
|
in
|
||||||
"https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
|
"https://github.com/googlefonts/noto-cjk/raw/${version}/NotoSansCJKsc-Regular.otf";
|
||||||
sha256 = "sha256-aJXSVNJ+p6wMAislXUn4JQilLhimNSedbc9nAuPVxo4=";
|
sha256 = "sha256-aJXSVNJ+p6wMAislXUn4JQilLhimNSedbc9nAuPVxo4=";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -70,13 +70,14 @@ let
|
|||||||
pulseaudio
|
pulseaudio
|
||||||
];
|
];
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
pname = "onlyoffice-desktopeditors";
|
pname = "onlyoffice-desktopeditors";
|
||||||
version = "6.2.0";
|
version = "6.3.1";
|
||||||
minor = null;
|
minor = null;
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_amd64.deb";
|
url = "https://github.com/ONLYOFFICE/DesktopEditors/releases/download/v${version}/onlyoffice-desktopeditors_amd64.deb";
|
||||||
sha256 = "sha256-nKmWxaVVul/rGDIh3u9zCpKu7U0nmrntFFf96xQyzdg=";
|
sha256 = "sha256-WCjCljA7yB7Zm/I4rDZnfgaUQpDUKwbUvL7hkIG8cVM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -160,6 +161,8 @@ in stdenv.mkDerivation rec {
|
|||||||
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
|
gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "${runtimeLibs}" )
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru.updateScript = ./update.sh;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
|
description = "Office suite that combines text, spreadsheet and presentation editors allowing to create, view and edit local documents";
|
||||||
homepage = "https://www.onlyoffice.com/";
|
homepage = "https://www.onlyoffice.com/";
|
||||||
|
5
pkgs/applications/office/onlyoffice-bin/update.sh
Normal file
5
pkgs/applications/office/onlyoffice-bin/update.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env nix-shell
|
||||||
|
#!nix-shell -i bash -p curl jq common-updater-scripts
|
||||||
|
|
||||||
|
version="$(curl -sL "https://api.github.com/repos/ONLYOFFICE/DesktopEditors/releases?per_page=1" | jq -r ".[0].tag_name" | sed 's/^v//')"
|
||||||
|
update-source-version onlyoffice-bin "$version"
|
@ -13,19 +13,41 @@ let
|
|||||||
# Fetch a diff between `base` and `rev` on sage's git server.
|
# Fetch a diff between `base` and `rev` on sage's git server.
|
||||||
# Used to fetch trac tickets by setting the `base` to the last release and the
|
# Used to fetch trac tickets by setting the `base` to the last release and the
|
||||||
# `rev` to the last commit of the ticket.
|
# `rev` to the last commit of the ticket.
|
||||||
fetchSageDiff = { base, name, rev, sha256, ...}@args: (
|
fetchSageDiff = { base, name, rev, sha256, squashed ? false, ...}@args: (
|
||||||
fetchpatch ({
|
fetchpatch ({
|
||||||
inherit name sha256;
|
inherit name sha256;
|
||||||
|
|
||||||
# We used to use
|
# There are three places to get changes from:
|
||||||
# "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}"
|
#
|
||||||
# but the former way does not squash multiple patches together.
|
# 1) From Sage's Trac. Contains all release tags (like "9.4") and all developer
|
||||||
url = "https://github.com/sagemath/sage/compare/${base}...${rev}.diff";
|
# branches (wip patches from tickets), but exports each commit as a separate
|
||||||
|
# patch, so merge commits can lead to conflicts. Used if squashed == false.
|
||||||
|
#
|
||||||
|
# 2) From GitHub's sagemath/sage repo. This lets us use a GH feature that allows
|
||||||
|
# us to choose between a .patch file, with one patch per commit, or a .diff file,
|
||||||
|
# which squashes all commits into a single diff. This is used if squashed ==
|
||||||
|
# true. This repo has all release tags. However, it has no developer branches, so
|
||||||
|
# this option can't be used if a change wasn't yet shipped in a (possibly beta)
|
||||||
|
# release.
|
||||||
|
#
|
||||||
|
# 3) From GitHub's sagemath/sagetrac-mirror repo. Mirrors all developer branches,
|
||||||
|
# but has no release tags. The only use case not covered by 1 or 2 is when we need
|
||||||
|
# to apply a patch from an open ticket that contains merge commits.
|
||||||
|
#
|
||||||
|
# Item 3 could cover all use cases if the sagemath/sagetrack-mirror repo had
|
||||||
|
# release tags, but it requires a sha instead of a release number in "base", which
|
||||||
|
# is inconvenient.
|
||||||
|
urls = if squashed
|
||||||
|
then [
|
||||||
|
"https://github.com/sagemath/sage/compare/${base}...${rev}.diff"
|
||||||
|
"https://github.com/sagemath/sagetrac-mirror/compare/${base}...${rev}.diff"
|
||||||
|
]
|
||||||
|
else [ "https://git.sagemath.org/sage.git/patch?id2=${base}&id=${rev}" ];
|
||||||
|
|
||||||
# We don't care about sage's own build system (which builds all its dependencies).
|
# We don't care about sage's own build system (which builds all its dependencies).
|
||||||
# Exclude build system changes to avoid conflicts.
|
# Exclude build system changes to avoid conflicts.
|
||||||
excludes = [ "build/*" ];
|
excludes = [ "build/*" ];
|
||||||
} // builtins.removeAttrs args [ "rev" "base" "sha256" ])
|
} // builtins.removeAttrs args [ "rev" "base" "sha256" "squashed" ])
|
||||||
);
|
);
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -80,6 +102,14 @@ stdenv.mkDerivation rec {
|
|||||||
# now set the cache dir to be within the .sage directory. This is not
|
# now set the cache dir to be within the .sage directory. This is not
|
||||||
# strictly necessary, but keeps us from littering in the user's HOME.
|
# strictly necessary, but keeps us from littering in the user's HOME.
|
||||||
./patches/sympow-cache.patch
|
./patches/sympow-cache.patch
|
||||||
|
|
||||||
|
# https://trac.sagemath.org/ticket/32305
|
||||||
|
(fetchSageDiff {
|
||||||
|
base = "9.4";
|
||||||
|
name = "networkx-2.6-upgrade.patch";
|
||||||
|
rev = "9808325853ba9eb035115e5b056305a1c9d362a0";
|
||||||
|
sha256 = "sha256-gJSqycCtbAVr5qnVEbHFUvIuTOvaxFIeffpzd6nH4DE=";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
|
||||||
|
@ -2,9 +2,13 @@
|
|||||||
|
|
||||||
, coreutils
|
, coreutils
|
||||||
, git
|
, git
|
||||||
|
, libiconv
|
||||||
, ncurses
|
, ncurses
|
||||||
, rustPlatform
|
, rustPlatform
|
||||||
, sqlite
|
, sqlite
|
||||||
|
, stdenv
|
||||||
|
, Security
|
||||||
|
, SystemConfiguration
|
||||||
}:
|
}:
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
@ -33,6 +37,10 @@ rustPlatform.buildRustPackage rec {
|
|||||||
buildInputs = [
|
buildInputs = [
|
||||||
ncurses
|
ncurses
|
||||||
sqlite
|
sqlite
|
||||||
|
] ++ lib.optionals (stdenv.isDarwin) [
|
||||||
|
Security
|
||||||
|
SystemConfiguration
|
||||||
|
libiconv
|
||||||
];
|
];
|
||||||
|
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
@ -44,6 +52,6 @@ rustPlatform.buildRustPackage rec {
|
|||||||
description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
|
description = "A suite of tools to help you visualize, navigate, manipulate, and repair your commit history";
|
||||||
homepage = "https://github.com/arxanas/git-branchless";
|
homepage = "https://github.com/arxanas/git-branchless";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
maintainers = with maintainers; [ nh2 ];
|
maintainers = with maintainers; [ msfjarvis nh2 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,29 +1,51 @@
|
|||||||
{ lib, stdenv, fetchurl, libX11, xorgproto }:
|
{ autoreconfHook
|
||||||
|
, docbook_xml_dtd_44
|
||||||
|
, docbook-xsl-ns
|
||||||
|
, fetchFromGitHub
|
||||||
|
, lib
|
||||||
|
, libX11
|
||||||
|
, libXpm
|
||||||
|
, libxslt
|
||||||
|
, stdenv
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "stalonetray";
|
pname = "stalonetray";
|
||||||
version = "0.8.3";
|
version = "0.8.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchFromGitHub {
|
||||||
url = "mirror://sourceforge/stalonetray/${pname}-${version}.tar.bz2";
|
owner = "kolbusa";
|
||||||
sha256 = "0k7xnpdb6dvx25d67v0crlr32cdnzykdsi9j889njiididc8lm1n";
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-grxPqSYPLUstLIOKqzMActaSQ2ftYrjbalfR4HcPDRY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libX11 xorgproto ];
|
preConfigure =
|
||||||
|
let
|
||||||
|
db_root = "${docbook-xsl-ns}/share/xml/docbook-xsl-ns";
|
||||||
|
ac_str = "AC_SUBST(DOCBOOK_ROOT)";
|
||||||
|
ac_str_sub = "DOCBOOK_ROOT=${db_root}; ${ac_str}";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
substituteInPlace configure.ac --replace '${ac_str}' '${ac_str_sub}'
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
docbook-xsl-ns
|
||||||
|
docbook_xml_dtd_44
|
||||||
|
libX11
|
||||||
|
libXpm
|
||||||
|
libxslt
|
||||||
|
];
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Stand alone tray";
|
description = "Stand alone tray";
|
||||||
homepage = "http://stalonetray.sourceforge.net";
|
homepage = "https://github.com/kolbusa/stalonetray";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2Only;
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ raskin ];
|
maintainers = with maintainers; [ raskin ];
|
||||||
};
|
};
|
||||||
|
|
||||||
passthru = {
|
|
||||||
updateInfo = {
|
|
||||||
downloadPage = "https://sourceforge.net/projects/stalonetray/files/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -1,67 +1,46 @@
|
|||||||
{ lib, stdenv
|
{ lib
|
||||||
|
, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
|
||||||
, autoconf
|
, autoconf
|
||||||
, automake
|
, automake
|
||||||
, fontconfig
|
, fontconfig
|
||||||
, gmp-static
|
|
||||||
, gperf
|
|
||||||
, libX11
|
, libX11
|
||||||
, libpoly
|
|
||||||
, perl
|
, perl
|
||||||
, flex
|
, flex
|
||||||
, bison
|
, bison
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, itktcl
|
|
||||||
, incrtcl
|
|
||||||
, tcl
|
, tcl
|
||||||
, tk
|
, tk
|
||||||
, verilog
|
|
||||||
, xorg
|
, xorg
|
||||||
, yices
|
, yices
|
||||||
, zlib
|
, zlib
|
||||||
, ghc
|
, ghc
|
||||||
}:
|
, gmp-static
|
||||||
|
, verilog
|
||||||
|
, asciidoctor
|
||||||
|
, tex }:
|
||||||
|
|
||||||
let
|
let
|
||||||
ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb split ]));
|
ghcWithPackages = ghc.withPackages (g: (with g; [ old-time regex-compat syb split ]));
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
pname = "bluespec";
|
pname = "bluespec";
|
||||||
version = "unstable-2021.03.29";
|
version = "2021.07";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "B-Lang-org";
|
owner = "B-Lang-org";
|
||||||
repo = "bsc";
|
repo = "bsc";
|
||||||
rev = "00185f7960bd1bd5554a1167be9f37e1f18ac454";
|
rev = version;
|
||||||
sha256 = "1bcdhql4cla137d8xr8m2h21dyxv0jpjpalpr5mgj2jxqfsmkbrn";
|
sha256 = "0gw8wyp65lpkyfhv3laazz9qypdl8qkp1j7cqp0gv11592a9p5qw";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
|
# https://github.com/B-Lang-org/bsc/pull/278
|
||||||
patches = [ ./libstp_stub_makefile.patch ];
|
patches = [ ./libstp_stub_makefile.patch ];
|
||||||
|
|
||||||
buildInputs = yices.buildInputs ++ [
|
|
||||||
zlib
|
|
||||||
tcl tk
|
|
||||||
libX11 # tcltk
|
|
||||||
xorg.libXft
|
|
||||||
fontconfig
|
|
||||||
];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
automake autoconf
|
|
||||||
perl
|
|
||||||
flex
|
|
||||||
bison
|
|
||||||
pkg-config
|
|
||||||
ghcWithPackages
|
|
||||||
];
|
|
||||||
|
|
||||||
checkInputs = [
|
|
||||||
verilog
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
|
mkdir -p $sourceRoot/src/vendor/yices/v2.6/yices2
|
||||||
# XXX: only works because yices.src isn't a tarball.
|
# XXX: only works because yices.src isn't a tarball.
|
||||||
@ -79,25 +58,65 @@ in stdenv.mkDerivation rec {
|
|||||||
substituteInPlace src/comp/Makefile \
|
substituteInPlace src/comp/Makefile \
|
||||||
--replace 'BINDDIR' 'BINDIR' \
|
--replace 'BINDDIR' 'BINDIR' \
|
||||||
--replace 'install-bsc install-bluetcl' 'install-bsc install-bluetcl $(UTILEXES) install-utils'
|
--replace 'install-bsc install-bluetcl' 'install-bsc install-bluetcl $(UTILEXES) install-utils'
|
||||||
|
|
||||||
# allow running bsc to bootstrap
|
# allow running bsc to bootstrap
|
||||||
export LD_LIBRARY_PATH=/build/source/inst/lib/SAT
|
export LD_LIBRARY_PATH=$PWD/inst/lib/SAT
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
buildInputs = yices.buildInputs ++ [
|
||||||
|
fontconfig
|
||||||
|
libX11 # tcltk
|
||||||
|
tcl
|
||||||
|
tk
|
||||||
|
xorg.libXft
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
automake
|
||||||
|
autoconf
|
||||||
|
asciidoctor
|
||||||
|
bison
|
||||||
|
flex
|
||||||
|
ghcWithPackages
|
||||||
|
perl
|
||||||
|
pkg-config
|
||||||
|
tex
|
||||||
|
];
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
|
"release"
|
||||||
"NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices.src instead of the subrepo)
|
"NO_DEPS_CHECKS=1" # skip the subrepo check (this deriviation uses yices.src instead of the subrepo)
|
||||||
"NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
|
"NOGIT=1" # https://github.com/B-Lang-org/bsc/issues/12
|
||||||
"LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
|
"LDCONFIG=ldconfig" # https://github.com/B-Lang-org/bsc/pull/43
|
||||||
"STP_STUB=1"
|
"STP_STUB=1"
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = "mv inst $out";
|
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
gmp-static
|
||||||
|
verilog
|
||||||
|
];
|
||||||
|
|
||||||
|
checkTarget = "check-smoke";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
mv inst/bin $out
|
||||||
|
mv inst/lib $out
|
||||||
|
|
||||||
|
# fragile, I know..
|
||||||
|
mkdir -p $doc/share/doc/bsc
|
||||||
|
mv inst/README $doc/share/doc/bsc
|
||||||
|
mv inst/ReleaseNotes.* $doc/share/doc/bsc
|
||||||
|
mv inst/doc/*.pdf $doc/share/doc/bsc
|
||||||
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Toolchain for the Bluespec Hardware Definition Language";
|
description = "Toolchain for the Bluespec Hardware Definition Language";
|
||||||
homepage = "https://github.com/B-Lang-org/bsc";
|
homepage = "https://github.com/B-Lang-org/bsc";
|
||||||
license = lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
# darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
|
# darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
|
||||||
# aarch64 fails, as GHC fails with "ghc: could not execute: opt"
|
# aarch64 fails, as GHC fails with "ghc: could not execute: opt"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenv, fetchurl, meson, ninja, pkg-config, gettext, vala, glib, liboauth, gtk3
|
{ lib, stdenv, fetchurl, fetchpatch, meson, ninja, pkg-config, gettext, vala, glib, liboauth, gtk3
|
||||||
, gtk-doc, docbook_xsl, docbook_xml_dtd_43
|
, gtk-doc, docbook_xsl, docbook_xml_dtd_43
|
||||||
, libxml2, gnome, gobject-introspection, libsoup, totem-pl-parser }:
|
, libxml2, gnome, gobject-introspection, libsoup, totem-pl-parser }:
|
||||||
|
|
||||||
@ -16,6 +16,14 @@ in stdenv.mkDerivation rec {
|
|||||||
sha256 = "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i";
|
sha256 = "0ywjvh7xw4ql1q4fvl0q5n06n08pga1g1nc9l7c3x5214gr3fj6i";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
(fetchpatch {
|
||||||
|
name = "CVE-2021-39365.patch";
|
||||||
|
url = "https://gitlab.gnome.org/GNOME/grilo/-/commit/cd2472e506dafb1bb8ae510e34ad4797f63e263e.patch";
|
||||||
|
sha256 = "1i1p21vlms43iawg4dl1dibnpsbnkx27kcfvllnx76q07bfrpwzm";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
|
@ -5,20 +5,17 @@
|
|||||||
boost,
|
boost,
|
||||||
xercesc,
|
xercesc,
|
||||||
icu,
|
icu,
|
||||||
|
|
||||||
dos2unix,
|
|
||||||
fetchpatch,
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libe57format";
|
pname = "libe57format";
|
||||||
version = "2.1";
|
version = "2.2.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "asmaloney";
|
owner = "asmaloney";
|
||||||
repo = "libE57Format";
|
repo = "libE57Format";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "05z955q68wjbd9gc5fw32nqg69xc82n2x75j5vchxzkgnn3adcpi";
|
sha256 = "15l23spjvak5h3n7aj3ggy0c3cwcg8mvnc9jlbd9yc2ra43bx7bp";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
@ -36,31 +33,6 @@ stdenv.mkDerivation rec {
|
|||||||
xercesc
|
xercesc
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: Remove CMake patching when https://github.com/asmaloney/libE57Format/pull/60 is available.
|
|
||||||
|
|
||||||
# GNU patch cannot patch `CMakeLists.txt` that has CRLF endings,
|
|
||||||
# see https://unix.stackexchange.com/questions/239364/how-to-fix-hunk-1-failed-at-1-different-line-endings-message/243748#243748
|
|
||||||
# so convert it first.
|
|
||||||
prePatch = ''
|
|
||||||
${dos2unix}/bin/dos2unix CMakeLists.txt
|
|
||||||
'';
|
|
||||||
patches = [
|
|
||||||
(fetchpatch {
|
|
||||||
name = "libE57Format-cmake-Fix-config-filename.patch";
|
|
||||||
url = "https://github.com/asmaloney/libE57Format/commit/279d8d6b60ee65fb276cdbeed74ac58770a286f9.patch";
|
|
||||||
sha256 = "0fbf92hs1c7yl169i7zlbaj9yhrd1yg3pjf0wsqjlh8mr5m6rp14";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
# It appears that while the patch has
|
|
||||||
# diff --git a/cmake/E57Format-config.cmake b/cmake/e57format-config.cmake
|
|
||||||
# similarity index 100%
|
|
||||||
# rename from cmake/E57Format-config.cmake
|
|
||||||
# rename to cmake/e57format-config.cmake
|
|
||||||
# GNU patch doesn't interpret that.
|
|
||||||
postPatch = ''
|
|
||||||
mv cmake/E57Format-config.cmake cmake/e57format-config.cmake
|
|
||||||
'';
|
|
||||||
|
|
||||||
# The build system by default builds ONLY static libraries, and with
|
# The build system by default builds ONLY static libraries, and with
|
||||||
# `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
|
# `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
|
||||||
# https://github.com/asmaloney/libE57Format/issues/48
|
# https://github.com/asmaloney/libE57Format/issues/48
|
||||||
@ -79,7 +51,7 @@ stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Library for reading & writing the E57 file format (fork of E57RefImpl)";
|
description = "Library for reading & writing the E57 file format";
|
||||||
homepage = "https://github.com/asmaloney/libE57Format";
|
homepage = "https://github.com/asmaloney/libE57Format";
|
||||||
license = licenses.boost;
|
license = licenses.boost;
|
||||||
maintainers = with maintainers; [ chpatrick nh2 ];
|
maintainers = with maintainers; [ chpatrick nh2 ];
|
||||||
|
@ -127,6 +127,8 @@ let
|
|||||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
inherit callPackage qtCompatVersion qtModule srcs;
|
||||||
|
|
||||||
mkDerivationWith =
|
mkDerivationWith =
|
||||||
import ../mkDerivation.nix
|
import ../mkDerivation.nix
|
||||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||||
|
@ -139,6 +139,8 @@ let
|
|||||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
inherit callPackage qtCompatVersion qtModule srcs;
|
||||||
|
|
||||||
mkDerivationWith =
|
mkDerivationWith =
|
||||||
import ../mkDerivation.nix
|
import ../mkDerivation.nix
|
||||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||||
|
@ -165,6 +165,8 @@ let
|
|||||||
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
|
||||||
in {
|
in {
|
||||||
|
|
||||||
|
inherit callPackage qtCompatVersion qtModule srcs;
|
||||||
|
|
||||||
mkDerivationWith =
|
mkDerivationWith =
|
||||||
import ../mkDerivation.nix
|
import ../mkDerivation.nix
|
||||||
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
{ inherit lib; inherit debug; inherit (self) wrapQtAppsHook; };
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "tclap";
|
pname = "tclap";
|
||||||
version = "1.2.3";
|
version = "1.2.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/tclap/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/tclap/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-GefbUoFUDxVDSHcLw6dIRXX09Umu+OAKq8yUs5X3c8k=";
|
sha256 = "sha256-Y0xbWduxzLydal9t5JSiV+KaP1nctvwwRF/zm0UYhXQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -22,12 +22,15 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
glib
|
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
];
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glib
|
||||||
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
libusb1
|
libusb1
|
||||||
];
|
];
|
||||||
|
@ -56,5 +56,8 @@ stdenv.mkDerivation {
|
|||||||
platforms = ocaml.meta.platforms or [];
|
platforms = ocaml.meta.platforms or [];
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = [ maintainers.vbgl ];
|
maintainers = [ maintainers.vbgl ];
|
||||||
|
# See https://github.com/dbuenzli/uunf/issues/15#issuecomment-903151264
|
||||||
|
broken = lib.versions.majorMinor ocaml.version == "4.08"
|
||||||
|
&& stdenv.hostPlatform.isAarch64;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "coqpit";
|
pname = "coqpit";
|
||||||
version = "0.0.10";
|
version = "0.0.13";
|
||||||
format = "setuptools";
|
format = "setuptools";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "coqui-ai";
|
owner = "coqui-ai";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1gcj5sffcmlvhhk6wbvmxppjpckb90q1avc07jbnb1vvrb2h9lr0";
|
sha256 = "sha256-YzCO/i0SMyXRAgiZ8Y97bHHuGFeSF8GqUjvNoHLwXZQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
|
@ -9,13 +9,13 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "karton-dashboard";
|
pname = "karton-dashboard";
|
||||||
version = "1.2.0";
|
version = "1.2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "CERT-Polska";
|
owner = "CERT-Polska";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0qygv9lkd1jad5b4l0zz6hsi7m8q0fmpwaa6hpp7p9x6ql7gnyl8";
|
sha256 = "sha256-C1wtpHyuTlNS6Se1rR0RGUl3xht4aphAtddKlIsOAkI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pg8000";
|
pname = "pg8000";
|
||||||
version = "1.21.0";
|
version = "1.21.1";
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1msj0vk14fbsis8yfk0my1ygpcli9jz3ivwdi9k6ii5i6330i4f9";
|
sha256 = "sha256-HMvuyTtw4uhTLfOr3caQXHghkJyW3Oqu91G1fFKRhpo=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
@ -8,14 +8,14 @@
|
|||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pyupgrade";
|
pname = "pyupgrade";
|
||||||
version = "2.24.0";
|
version = "2.25.0";
|
||||||
disabled = pythonOlder "3.6";
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "asottile";
|
owner = "asottile";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-vWju0D5O3RtDiv9uYQqd9kEwTIcV9QTHYXM/icB/rM0=";
|
sha256 = "0mbx5gv6ns896mxzml8q9r9dn5wvnrb7gc5iw49fdwbb0yw9yhyx";
|
||||||
};
|
};
|
||||||
|
|
||||||
checkInputs = [ pytestCheckHook ];
|
checkInputs = [ pytestCheckHook ];
|
||||||
|
@ -2,23 +2,32 @@
|
|||||||
, asn1crypto
|
, asn1crypto
|
||||||
, buildPythonPackage
|
, buildPythonPackage
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
|
, pytest-mock
|
||||||
, pytestCheckHook
|
, pytestCheckHook
|
||||||
|
, pythonOlder
|
||||||
}:
|
}:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "scramp";
|
pname = "scramp";
|
||||||
version = "1.4.0";
|
version = "1.4.1";
|
||||||
|
|
||||||
|
disabled = pythonOlder "3.6";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tlocke";
|
owner = "tlocke";
|
||||||
repo = "scramp";
|
repo = "scramp";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-aXuRIW/3qBzan8z3EzSSxqaZfa3WnPhlviNa2ugIjik=";
|
sha256 = "sha256-HEt2QxNHX9Oqx+o0++ZtS61SVHra3nLAqv7NbQWVV+E=";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ asn1crypto ];
|
propagatedBuildInputs = [
|
||||||
|
asn1crypto
|
||||||
|
];
|
||||||
|
|
||||||
checkInputs = [ pytestCheckHook ];
|
checkInputs = [
|
||||||
|
pytest-mock
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
pythonImportsCheck = [ "scramp" ];
|
pythonImportsCheck = [ "scramp" ];
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "jenkins";
|
pname = "jenkins";
|
||||||
version = "2.289.3";
|
version = "2.303.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
|
url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
|
||||||
sha256 = "11wb4kqy1hja2fgnqsr6p0khdyvinclprxz9z5m58czrsllzsvcr";
|
sha256 = "0rf06axz1hxssg942w2g66avak30jy6rfdwxynhriqv3vrf17bja";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, installShellFiles
|
|
||||||
, python3
|
, python3
|
||||||
}:
|
}:
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "flawfinder";
|
pname = "flawfinder";
|
||||||
version = "2.0.18";
|
version = "2.0.19";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://dwheeler.com/flawfinder/flawfinder-${version}.tar.gz";
|
url = "https://dwheeler.com/flawfinder/flawfinder-${version}.tar.gz";
|
||||||
sha256 = "1hk2y13fd2a5gf42a1hk45hw6pbls715wi9k1yh3c3wyhvbyylba";
|
sha256 = "sha256-/lUJgdNwq/oKKWcTRswLA4Ipqb2QsjnqsPAfEiEt9hg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Project is using a combination of bash/Python for the tests
|
# Project is using a combination of bash/Python for the tests
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "cargo-expand";
|
pname = "cargo-expand";
|
||||||
version = "1.0.8";
|
version = "1.0.9";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "dtolnay";
|
owner = "dtolnay";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-UkNO2uNiyN6xB74dNMiWZUCH6qq6P6u95wTq8xRvxsQ=";
|
sha256 = "sha256-wDuCmiQzyY/Ydr67fYb0yZaSWvuYwW91j0CoqbUFFpg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "sha256-JTjPdTG8KGYVkiCkTqRiJyTpm7OpZkbW10EKSp9lLJ4=";
|
cargoSha256 = "sha256-5KCGXJzk5VStby/JzjXJvDSrhFlB8YJHMcQNL8GxkLI=";
|
||||||
|
|
||||||
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
buildInputs = lib.optional stdenv.isDarwin libiconv;
|
||||||
|
|
||||||
|
@ -3,15 +3,23 @@
|
|||||||
let
|
let
|
||||||
pname = "anki-bin";
|
pname = "anki-bin";
|
||||||
# Update hashes for both Linux and Darwin!
|
# Update hashes for both Linux and Darwin!
|
||||||
version = "2.1.46";
|
version = "2.1.47";
|
||||||
|
|
||||||
|
sources = {
|
||||||
|
linux = fetchurl {
|
||||||
|
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
|
||||||
|
sha256 = "sha256-cObvjXeDUDslfAhMOrlqyjidri6N7xLR2+LRz3hTdfg=";
|
||||||
|
};
|
||||||
|
darwin = fetchurl {
|
||||||
|
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
|
||||||
|
sha256 = "sha256-TwYrI9gSabJ5icOsygtEJRymkrSgCD8jDXMtpaJXgWg=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
unpacked = stdenv.mkDerivation {
|
unpacked = stdenv.mkDerivation {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
|
||||||
src = fetchurl {
|
src = sources.linux;
|
||||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-linux.tar.bz2";
|
|
||||||
sha256 = "1jzpf42fqhfbjr95k7bpsnf34sfinamp6v828y0sapa4gzfvwkkz";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
@ -32,6 +40,8 @@ let
|
|||||||
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
platforms = [ "x86_64-linux" "x86_64-darwin" ];
|
||||||
maintainers = with maintainers; [ atemu ];
|
maintainers = with maintainers; [ atemu ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
passthru = { inherit sources; };
|
||||||
in
|
in
|
||||||
|
|
||||||
if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
|
if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
|
||||||
@ -51,14 +61,11 @@ if stdenv.isLinux then buildFHSUserEnv (appimageTools.defaultFhsEnvArgs // {
|
|||||||
$out/share/
|
$out/share/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
inherit meta;
|
inherit meta passthru;
|
||||||
}) else stdenv.mkDerivation {
|
}) else stdenv.mkDerivation {
|
||||||
inherit pname version;
|
inherit pname version passthru;
|
||||||
|
|
||||||
src = fetchurl {
|
src = sources.darwin;
|
||||||
url = "https://github.com/ankitects/anki/releases/download/${version}/anki-${version}-mac.dmg";
|
|
||||||
sha256 = "003cmh5qdj5mkrpm51n0is872faj99dqfkaaxyyrn6x03s36l17y";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ undmg ];
|
nativeBuildInputs = [ undmg ];
|
||||||
sourceRoot = ".";
|
sourceRoot = ".";
|
||||||
|
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
|
|||||||
--replace depmod \#
|
--replace depmod \#
|
||||||
'';
|
'';
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = kernel.makeFlags ++ [
|
||||||
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
"KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||||
"KVER=${kernel.modDirVersion}"
|
"KVER=${kernel.modDirVersion}"
|
||||||
"KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
|
"KERNEL_MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
|
||||||
|
@ -17,10 +17,8 @@ buildPhase() {
|
|||||||
# Create the module.
|
# Create the module.
|
||||||
echo "Building linux driver against kernel: $kernel";
|
echo "Building linux driver against kernel: $kernel";
|
||||||
cd kernel
|
cd kernel
|
||||||
sysSrc=$(echo $kernel/lib/modules/$kernelVersion/source)
|
|
||||||
sysOut=$(echo $kernel/lib/modules/$kernelVersion/build)
|
|
||||||
unset src # used by the nv makefile
|
unset src # used by the nv makefile
|
||||||
make IGNORE_PREEMPT_RT_PRESENCE=1 NV_BUILD_SUPPORTS_HMM=1 SYSSRC=$sysSrc SYSOUT=$sysOut module -j$NIX_BUILD_CORES
|
make $makeFlags -j $NIX_BUILD_CORES module
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
fi
|
fi
|
||||||
|
@ -75,6 +75,13 @@ let
|
|||||||
kernel = if libsOnly then null else kernel.dev;
|
kernel = if libsOnly then null else kernel.dev;
|
||||||
kernelVersion = if libsOnly then null else kernel.modDirVersion;
|
kernelVersion = if libsOnly then null else kernel.modDirVersion;
|
||||||
|
|
||||||
|
makeFlags = optionals (!libsOnly) (kernel.makeFlags ++ [
|
||||||
|
"IGNORE_PREEMPT_RT_PRESENCE=1"
|
||||||
|
"NV_BUILD_SUPPORTS_HMM=1"
|
||||||
|
"SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
|
||||||
|
"SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
|
||||||
|
]);
|
||||||
|
|
||||||
hardeningDisable = [ "pic" "format" ];
|
hardeningDisable = [ "pic" "format" ];
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ m4 ];
|
nativeBuildInputs = [ m4 ];
|
||||||
buildInputs = [ libtirpc ];
|
buildInputs = [ libtirpc ];
|
||||||
|
|
||||||
|
inherit (nvidia_x11) makeFlags;
|
||||||
|
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
|
@ -24,7 +24,7 @@ let
|
|||||||
cd src/libXNVCtrl
|
cd src/libXNVCtrl
|
||||||
'';
|
'';
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = nvidia_x11.makeFlags ++ [
|
||||||
"OUTPUTDIR=." # src/libXNVCtrl
|
"OUTPUTDIR=." # src/libXNVCtrl
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ stdenv.mkDerivation {
|
|||||||
++ lib.optionals withGtk3 [ gtk3 librsvg wrapGAppsHook ];
|
++ lib.optionals withGtk3 [ gtk3 librsvg wrapGAppsHook ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
makeFlags = [ "NV_USE_BUNDLED_LIBJANSSON=0" ];
|
makeFlags = nvidia_x11.makeFlags ++ [ "NV_USE_BUNDLED_LIBJANSSON=0" ];
|
||||||
installFlags = [ "PREFIX=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
postPatch = lib.optionalString nvidia_x11.useProfiles ''
|
postPatch = lib.optionalString nvidia_x11.useProfiles ''
|
||||||
@ -61,7 +61,7 @@ stdenv.mkDerivation {
|
|||||||
preBuild = ''
|
preBuild = ''
|
||||||
if [ -e src/libXNVCtrl/libXNVCtrl.a ]; then
|
if [ -e src/libXNVCtrl/libXNVCtrl.a ]; then
|
||||||
( cd src/libXNVCtrl
|
( cd src/libXNVCtrl
|
||||||
make
|
make $makeFlags
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
@ -34,7 +34,7 @@ stdenv.mkDerivation {
|
|||||||
license = with licenses; [ bsd3 gpl2Only ];
|
license = with licenses; [ bsd3 gpl2Only ];
|
||||||
maintainers = with maintainers; [ tvorog ];
|
maintainers = with maintainers; [ tvorog ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
broken = kernel.kernelOlder "4.14";
|
broken = kernel.kernelOlder "4.14" || kernel.kernelAtLeast "5.14";
|
||||||
priority = -1;
|
priority = -1;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.isc;
|
license = licenses.isc;
|
||||||
maintainers = with maintainers; [ flokli hexa ];
|
maintainers = with maintainers; [ flokli hexa ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
broken = kernel.kernelAtLeast "5.14";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -210,13 +210,14 @@ in {
|
|||||||
|
|
||||||
zfsUnstable = common {
|
zfsUnstable = common {
|
||||||
# check the release notes for compatible kernels
|
# check the release notes for compatible kernels
|
||||||
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.14";
|
kernelCompatible = kernel.kernelAtLeast "3.10" && kernel.kernelOlder "5.15";
|
||||||
latestCompatibleLinuxPackages = linuxPackages_5_13;
|
latestCompatibleLinuxPackages = linuxPackages_5_13;
|
||||||
|
|
||||||
# this package should point to a version / git revision compatible with the latest kernel release
|
# this package should point to a version / git revision compatible with the latest kernel release
|
||||||
version = "2.1.0";
|
version = "unstable-2021-08-30";
|
||||||
|
rev = "3b89d9518df2c7fd747e349873a3d4d498beb20e";
|
||||||
|
|
||||||
sha256 = "sha256-YdY4SStXZGBBdAHdM3R/unco7ztxI3s0/buPSNSeh5o=";
|
sha256 = "sha256-wVbjpVrPQmhJmMqdGUf0IwlCIoOsT7Zfj5lxSKcOsgg=";
|
||||||
|
|
||||||
isUnstable = true;
|
isUnstable = true;
|
||||||
};
|
};
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "caddy";
|
pname = "caddy";
|
||||||
version = "2.4.3";
|
version = "2.4.4";
|
||||||
|
|
||||||
subPackages = [ "cmd/caddy" ];
|
subPackages = [ "cmd/caddy" ];
|
||||||
|
|
||||||
@ -10,10 +10,10 @@ buildGoModule rec {
|
|||||||
owner = "caddyserver";
|
owner = "caddyserver";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-Z3BVx7gCkls5Hy+H6lA3DOBequRutwa2F34FDt9n+8I=";
|
sha256 = "sha256-POdDORICDE49BQ5LLTs4GTb1VoSXZD4K4MpRkVoj+AY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-Zwpakw/vyDVngc1Bn+RdRPECNweruwGxsT4dfvMELkQ=";
|
vendorSha256 = "sha256-JAQaxEmdX0fpDahe55pEKnUW64k8JjrytkBrXpQJz3I=";
|
||||||
|
|
||||||
passthru.tests = { inherit (nixosTests) caddy; };
|
passthru.tests = { inherit (nixosTests) caddy; };
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@ let
|
|||||||
in
|
in
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "matrix-synapse";
|
pname = "matrix-synapse";
|
||||||
version = "1.41.0";
|
version = "1.41.1";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "sha256-KLsTr8dKp8k7TcrC598ApDib7P0m9evmfdl8jbsZLdc=";
|
sha256 = "1vaym6mxnwg2xdqjcigi2sb0kkdi0ly5d5ghakfsysxcfn08d1z8";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -54,8 +54,8 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
nextcloud22 = generic {
|
nextcloud22 = generic {
|
||||||
version = "22.1.0";
|
version = "22.1.1";
|
||||||
sha256 = "sha256-SCCAj3mRRoU2BOH6J9fykkSQGKRNxzv5KKl7AgKDGLo=";
|
sha256 = "sha256-5VtuuXf7U5CB4zp9jxluOEMOszfMdr8DeaZjpJf73ls=";
|
||||||
};
|
};
|
||||||
# tip: get she sha with:
|
# tip: get she sha with:
|
||||||
# curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
|
# curl 'https://download.nextcloud.com/server/releases/nextcloud-${version}.tar.bz2.sha256'
|
||||||
|
@ -12,16 +12,16 @@
|
|||||||
# server, and the FHS userenv and corresponding NixOS module should
|
# server, and the FHS userenv and corresponding NixOS module should
|
||||||
# automatically pick up the changes.
|
# automatically pick up the changes.
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.24.0.4930-ab6e1a058";
|
version = "1.24.1.4931-1a38e63c6";
|
||||||
pname = "plexmediaserver";
|
pname = "plexmediaserver";
|
||||||
|
|
||||||
# Fetch the source
|
# Fetch the source
|
||||||
src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
|
src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
|
||||||
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
|
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
|
||||||
sha256 = "0fhbm2ykk2nx1j619kpzgw32rgbh2snh8g25m7k42cpmg4a3zz4m";
|
sha256 = "1vsg90rlhynfk8wlbf080fv9wah7w8244pl878hjbi6yrjmz2s7g";
|
||||||
} else fetchurl {
|
} else fetchurl {
|
||||||
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
|
url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
|
||||||
sha256 = "0h1vk8ads1jrb5adcpfrz1qdf60jw4wiss9zzcyamfry1ir94n3r";
|
sha256 = "08xai0jcpmj1hwkkkgc87v9xwszd5bvwhn36kp6v73jnv1l5cmqb";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "basedb" ];
|
outputs = [ "out" "basedb" ];
|
||||||
|
@ -5,15 +5,15 @@
|
|||||||
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
|
, git, nix, nixfmt, jq, coreutils, gnused, curl, cacert }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2021-08-18";
|
version = "2021-08-27";
|
||||||
pname = "oh-my-zsh";
|
pname = "oh-my-zsh";
|
||||||
rev = "cbb534267aca09fd123635fc39a7d00c0e21a5f7";
|
rev = "190325049ef93731ab28295dbedf36d44ab33d7a";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
inherit rev;
|
inherit rev;
|
||||||
owner = "ohmyzsh";
|
owner = "ohmyzsh";
|
||||||
repo = "ohmyzsh";
|
repo = "ohmyzsh";
|
||||||
sha256 = "LbgqdIGVvcTUSDVSyH8uJmfuT0ymJvf04AL91HjNWwQ=";
|
sha256 = "x+cGlYjTgs7Esb4NNSBcKhoDb1SuEQxONt/sSHeVj0M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -16,20 +16,22 @@
|
|||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "tts";
|
pname = "tts";
|
||||||
version = "0.2.0";
|
version = "0.2.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "coqui-ai";
|
owner = "coqui-ai";
|
||||||
repo = "TTS";
|
repo = "TTS";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-FlxR1bPkUZT3SPuWiK0oAuI9dKfurEZurB0NhyDgOyY=";
|
sha256 = "sha256-7YMNxZ15qQowEE0tE6x/LbtirNGp7h9OLyS1JSl9x2A=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i -e 's!librosa==[^"]*!librosa!' requirements.txt
|
sed -i requirements.txt \
|
||||||
sed -i -e 's!numba==[^"]*!numba!' requirements.txt
|
-e 's!librosa==[^"]*!librosa!' \
|
||||||
sed -i -e 's!numpy==[^"]*!numpy!' requirements.txt
|
-e 's!mecab-python3==[^"]*!mecab-python3!' \
|
||||||
sed -i -e 's!umap-learn==[^"]*!umap-learn!' requirements.txt
|
-e 's!numba==[^"]*!numba!' \
|
||||||
|
-e 's!numpy==[^"]*!numpy!' \
|
||||||
|
-e 's!umap-learn==[^"]*!umap-learn!'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = with python3.pkgs; [
|
nativeBuildInputs = with python3.pkgs; [
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "duplicati";
|
pname = "duplicati";
|
||||||
version = "2.0.6.1";
|
version = "2.0.6.3";
|
||||||
channel = "beta";
|
channel = "beta";
|
||||||
build_date = "2021-05-03";
|
build_date = "2021-06-17";
|
||||||
|
|
||||||
src = fetchzip {
|
src = fetchzip {
|
||||||
url = "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip";
|
url = "https://github.com/duplicati/duplicati/releases/download/v${version}-${version}_${channel}_${build_date}/duplicati-${version}_${channel}_${build_date}.zip";
|
||||||
sha256 = "09537hswpicsx47vfdm78j3h7vvjd7nqjd2461jrln57nl7v7dac";
|
sha256 = "sha256-usMwlmer6rLgP46wGVkaAIocUW4MjuEpVWdX7rRcghg=";
|
||||||
stripRoot = false;
|
stripRoot = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "tar2ext4";
|
pname = "tar2ext4";
|
||||||
version = "0.8.20";
|
version = "0.8.21";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "microsoft";
|
owner = "microsoft";
|
||||||
repo = "hcsshim";
|
repo = "hcsshim";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-X7JsUFL9NkNT7ihE5olrqMUP8RnoVC10KLrQeT/OU3o=";
|
sha256 = "sha256-oYCL6agif/BklMY5/ub6PExS6D/ZlTxi1QaabMOsEfw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "source/cmd/tar2ext4";
|
sourceRoot = "source/cmd/tar2ext4";
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
{ lib, stdenv, fetchurl, fetchpatch
|
{ lib, stdenv, fetchurl, fetchpatch
|
||||||
, cmake, perl, go
|
, cmake, perl, go, python3
|
||||||
, protobuf, zlib, gtest, brotli, lz4, zstd, libusb1, pcre2, fmt_7
|
, protobuf, zlib, gtest, brotli, lz4, zstd, libusb1, pcre2, fmt_7
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
pythonEnv = python3.withPackages(ps: [ ps.protobuf ]);
|
||||||
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "android-tools";
|
pname = "android-tools";
|
||||||
version = "31.0.2";
|
version = "31.0.2";
|
||||||
@ -23,8 +27,13 @@ stdenv.mkDerivation rec {
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i -E "0,/import api_pb2/ s//from google.protobuf import api_pb2/" vendor/avb/aftltool.py
|
||||||
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake perl go ];
|
nativeBuildInputs = [ cmake perl go ];
|
||||||
buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 fmt_7 ];
|
buildInputs = [ protobuf zlib gtest brotli lz4 zstd libusb1 pcre2 fmt_7 ];
|
||||||
|
propagatedBuildInputs = [ pythonEnv ];
|
||||||
|
|
||||||
# Don't try to fetch any Go modules via the network:
|
# Don't try to fetch any Go modules via the network:
|
||||||
GOFLAGS = [ "-mod=vendor" ];
|
GOFLAGS = [ "-mod=vendor" ];
|
||||||
@ -33,6 +42,12 @@ stdenv.mkDerivation rec {
|
|||||||
export GOCACHE=$TMPDIR/go-cache
|
export GOCACHE=$TMPDIR/go-cache
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
install -Dm755 ../vendor/avb/aftltool.py -t $out/bin
|
||||||
|
install -Dm755 ../vendor/avb/avbtool.py -t $out/bin
|
||||||
|
install -Dm755 ../vendor/mkbootimg/mkbootimg.py $out/bin/mkbootimg
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Android SDK platform tools";
|
description = "Android SDK platform tools";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -24,54 +24,55 @@ let
|
|||||||
x86_64-linux = "sha256-jiV2yGPwPgZ5plo3ftImVDLSOsk/XBzFkeeALSObLhU=";
|
x86_64-linux = "sha256-jiV2yGPwPgZ5plo3ftImVDLSOsk/XBzFkeeALSObLhU=";
|
||||||
x86_64-darwin = "sha256-UYG+GGr23eAc2GgNX/mXaGU0WKMjiQMPpD1wUvAVz0A=";
|
x86_64-darwin = "sha256-UYG+GGr23eAc2GgNX/mXaGU0WKMjiQMPpD1wUvAVz0A=";
|
||||||
};
|
};
|
||||||
|
this = stdenv.mkDerivation rec {
|
||||||
|
version = elk7Version;
|
||||||
|
pname = "logstash${optionalString (!enableUnfree) "-oss"}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}-${plat}-${arch}.tar.gz";
|
||||||
|
sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
||||||
|
};
|
||||||
|
|
||||||
|
dontBuild = true;
|
||||||
|
dontPatchELF = true;
|
||||||
|
dontStrip = true;
|
||||||
|
dontPatchShebangs = true;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
jre
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
mkdir -p $out
|
||||||
|
cp -r {Gemfile*,modules,vendor,lib,bin,config,data,logstash-core,logstash-core-plugin-api} $out
|
||||||
|
|
||||||
|
patchShebangs $out/bin/logstash
|
||||||
|
patchShebangs $out/bin/logstash-plugin
|
||||||
|
|
||||||
|
wrapProgram $out/bin/logstash \
|
||||||
|
--set JAVA_HOME "${jre}"
|
||||||
|
|
||||||
|
wrapProgram $out/bin/logstash-plugin \
|
||||||
|
--set JAVA_HOME "${jre}"
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
|
||||||
|
homepage = "https://www.elastic.co/products/logstash";
|
||||||
|
license = if enableUnfree then licenses.elastic else licenses.asl20;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
maintainers = with maintainers; [ wjlroe offline basvandijk ];
|
||||||
|
};
|
||||||
|
passthru.tests =
|
||||||
|
optionalAttrs (!enableUnfree) (
|
||||||
|
assert this.drvPath == nixosTests.elk.ELK-7.elkPackages.logstash.drvPath;
|
||||||
|
{
|
||||||
|
elk = nixosTests.elk.ELK-7;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
this
|
||||||
version = elk7Version;
|
|
||||||
pname = "logstash${optionalString (!enableUnfree) "-oss"}";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://artifacts.elastic.co/downloads/logstash/${pname}-${version}-${plat}-${arch}.tar.gz";
|
|
||||||
sha256 = shas.${stdenv.hostPlatform.system} or (throw "Unknown architecture");
|
|
||||||
};
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
dontPatchELF = true;
|
|
||||||
dontStrip = true;
|
|
||||||
dontPatchShebangs = true;
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
makeWrapper
|
|
||||||
jre
|
|
||||||
];
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
runHook preInstall
|
|
||||||
mkdir -p $out
|
|
||||||
cp -r {Gemfile*,modules,vendor,lib,bin,config,data,logstash-core,logstash-core-plugin-api} $out
|
|
||||||
|
|
||||||
patchShebangs $out/bin/logstash
|
|
||||||
patchShebangs $out/bin/logstash-plugin
|
|
||||||
|
|
||||||
wrapProgram $out/bin/logstash \
|
|
||||||
--set JAVA_HOME "${jre}"
|
|
||||||
|
|
||||||
wrapProgram $out/bin/logstash-plugin \
|
|
||||||
--set JAVA_HOME "${jre}"
|
|
||||||
runHook postInstall
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Logstash is a data pipeline that helps you process logs and other event data from a variety of systems";
|
|
||||||
homepage = "https://www.elastic.co/products/logstash";
|
|
||||||
license = if enableUnfree then licenses.elastic else licenses.asl20;
|
|
||||||
platforms = platforms.unix;
|
|
||||||
maintainers = with maintainers; [ wjlroe offline basvandijk ];
|
|
||||||
};
|
|
||||||
passthru.tests =
|
|
||||||
optionalAttrs (!enableUnfree) (
|
|
||||||
assert this.drvPath == nixosTests.elk.ELK-7.elkPackages.logstash.drvPath;
|
|
||||||
{
|
|
||||||
elk = nixosTests.elk.ELK-7;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pspg";
|
pname = "pspg";
|
||||||
version = "4.5.0";
|
version = "5.3.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "okbob";
|
owner = "okbob";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-RWezBNqjKybMtfpxPhDg2ysb4ksKphTPdTNTwCe4pas=";
|
sha256 = "sha256-wju69kC6koYy2yABjx7/rWsuJXV1vjwSBztNlu13TJs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
@ -25,11 +25,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "network-manager-applet";
|
pname = "network-manager-applet";
|
||||||
version = "1.22.0";
|
version = "1.24.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "sha256-xw2AtI1AqcuZ7JZ8xDifZ+fwMBUopp1IFXIEEzGmRr4=";
|
sha256 = "sha256-ufS8pdA1Jxjge3OF+xlam7yP1oa3lZt0E3hU1SqrnFg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
|
@ -1,17 +1,40 @@
|
|||||||
{ lib, fetchFromGitHub, python2Packages,
|
{ lib
|
||||||
asciidoc, cacert, libxml2, libxslt, docbook_xsl }:
|
, fetchFromGitHub
|
||||||
|
, python2Packages
|
||||||
|
, asciidoc
|
||||||
|
, cacert
|
||||||
|
, docbook_xsl
|
||||||
|
, installShellFiles
|
||||||
|
, libxml2
|
||||||
|
, libxslt
|
||||||
|
}:
|
||||||
|
|
||||||
python2Packages.buildPythonApplication rec {
|
python2Packages.buildPythonApplication rec {
|
||||||
version = "7.3.3";
|
version = "7.3.4";
|
||||||
pname = "offlineimap";
|
pname = "offlineimap";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "OfflineIMAP";
|
owner = "OfflineIMAP";
|
||||||
repo = "offlineimap";
|
repo = "offlineimap";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1gg8ry67i20qapj4z20am9bm67m2q28kixcj7ja75m897vhzarnq";
|
sha256 = "sha256-sra2H0+5+LAIU3+uJnii+AYA05nuDyKVMW97rbaFOfI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
asciidoc
|
||||||
|
docbook_xsl
|
||||||
|
installShellFiles
|
||||||
|
libxml2
|
||||||
|
libxslt
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python2Packages; [
|
||||||
|
six
|
||||||
|
kerberos
|
||||||
|
rfc6555
|
||||||
|
pysocks
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
# Skip xmllint to stop failures due to no network access
|
# Skip xmllint to stop failures due to no network access
|
||||||
sed -i docs/Makefile -e "s|a2x -v -d |a2x -L -v -d |"
|
sed -i docs/Makefile -e "s|a2x -v -d |a2x -L -v -d |"
|
||||||
@ -20,21 +43,19 @@ python2Packages.buildPythonApplication rec {
|
|||||||
sed -i offlineimap/utils/distro.py -e '/def get_os_sslcertfile():/a\ \ \ \ return "${cacert}/etc/ssl/certs/ca-bundle.crt"'
|
sed -i offlineimap/utils/distro.py -e '/def get_os_sslcertfile():/a\ \ \ \ return "${cacert}/etc/ssl/certs/ca-bundle.crt"'
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
nativeBuildInputs = [ asciidoc libxml2 libxslt docbook_xsl ];
|
|
||||||
propagatedBuildInputs = with python2Packages; [ six kerberos rfc6555 pysocks ];
|
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
make -C docs man
|
make -C docs man
|
||||||
install -D -m 644 docs/offlineimap.1 ''${!outputMan}/share/man/man1/offlineimap.1
|
installManPage docs/offlineimap.1
|
||||||
install -D -m 644 docs/offlineimapui.7 ''${!outputMan}/share/man/man7/offlineimapui.7
|
installManPage docs/offlineimapui.7
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
# Test requires credentials
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
description = "Synchronize emails between two repositories, so that you can read the same mailbox from multiple computers";
|
description = "Synchronize emails between two repositories, so that you can read the same mailbox from multiple computers";
|
||||||
homepage = "http://offlineimap.org";
|
homepage = "http://offlineimap.org";
|
||||||
license = lib.licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with lib.maintainers; [ endocrimes ];
|
maintainers = with maintainers; [ endocrimes ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,11 +6,11 @@ in
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "spoofer";
|
pname = "spoofer";
|
||||||
version = "1.4.6";
|
version = "1.4.7";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.caida.org/projects/spoofer/downloads/${pname}-${version}.tar.gz";
|
url = "https://www.caida.org/projects/spoofer/downloads/${pname}-${version}.tar.gz";
|
||||||
sha256 = "sha256-+4FNC+rMxIoVXlW7HnBXUg0P4FhNvMTAqJ9c7lXQ6vE=";
|
sha256 = "sha256-6ov1dZbxmBRIhfIzUaxiaHUeiU6SbNKhiQX1W4lmhD8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
@ -1,30 +1,52 @@
|
|||||||
{ lib, stdenv, fetchFromGitHub, openssl, libpcap }:
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, autoreconfHook
|
||||||
|
, fetchFromGitHub
|
||||||
|
, json_c
|
||||||
|
, libnet
|
||||||
|
, libpcap
|
||||||
|
, openssl
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ssldump";
|
pname = "ssldump";
|
||||||
version = "1.1";
|
version = "1.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "adulau";
|
owner = "adulau";
|
||||||
repo = "ssldump";
|
repo = "ssldump";
|
||||||
rev = "7491b9851505acff95b2c68097e9b9f630d418dc";
|
rev = "v${version}";
|
||||||
sha256 = "1j3rln86khdnc98v50hclvqaq83a24c1rfzbcbajkbfpr4yxpnpd";
|
sha256 = "1xnlfqsl93nxbcv4x4xsgxa6mnhcx37hijrpdb7vzla6q7xvg8qr";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libpcap openssl ];
|
nativeBuildInputs = [
|
||||||
|
autoreconfHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
json_c
|
||||||
|
libnet
|
||||||
|
libpcap
|
||||||
|
openssl
|
||||||
|
];
|
||||||
|
|
||||||
prePatch = ''
|
prePatch = ''
|
||||||
sed -i -e 's|#include.*net/bpf.h|#include <pcap/bpf.h>|' \
|
sed -i -e 's|#include.*net/bpf.h|#include <pcap/bpf.h>|' \
|
||||||
base/pcap-snoop.c
|
base/pcap-snoop.c
|
||||||
'';
|
'';
|
||||||
configureFlags = [ "--with-pcap-lib=${libpcap}/lib"
|
|
||||||
"--with-pcap-inc=${libpcap}/include"
|
configureFlags = [
|
||||||
"--with-openssl-lib=${openssl}/lib"
|
"--with-pcap-lib=${libpcap}/lib"
|
||||||
"--with-openssl-inc=${openssl}/include" ];
|
"--with-pcap-inc=${libpcap}/include"
|
||||||
meta = {
|
"--with-openssl-lib=${openssl}/lib"
|
||||||
|
"--with-openssl-inc=${openssl}/include"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
description = "An SSLv3/TLS network protocol analyzer";
|
description = "An SSLv3/TLS network protocol analyzer";
|
||||||
homepage = "http://ssldump.sourceforge.net";
|
homepage = "http://ssldump.sourceforge.net";
|
||||||
license = "BSD-style";
|
license = "BSD-style";
|
||||||
maintainers = with lib.maintainers; [ aycanirican ];
|
maintainers = with maintainers; [ aycanirican ];
|
||||||
platforms = lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
# https://github.com/NixOS/nixpkgs/pull/119942
|
# https://github.com/NixOS/nixpkgs/pull/119942
|
||||||
nixos-install-tools,
|
nixos-install-tools,
|
||||||
runCommand,
|
runCommand,
|
||||||
|
nixosTests,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (nixos {}) config;
|
inherit (nixos {}) config;
|
||||||
@ -40,6 +41,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
passthru.tests = {
|
passthru.tests = {
|
||||||
|
nixos-tests = lib.recurseIntoAttrs nixosTests.installer;
|
||||||
nixos-install-help = runCommand "test-nixos-install-help" {
|
nixos-install-help = runCommand "test-nixos-install-help" {
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
man
|
man
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "hashcat";
|
pname = "hashcat";
|
||||||
version = "6.2.3";
|
version = "6.2.4";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
|
url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
|
||||||
sha256 = "sha256-wL4cZpPuHzXHvvH3m/njCpVPcX70LQDjd4eq7/MnHlE=";
|
sha256 = "sha256-kCA5b/kzaT4xC0ebZB6G8Xg9mBnWDR2Qd1KtjSSmDDE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
@ -102,7 +102,7 @@ rustPlatform.buildRustPackage rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A cool new OpenPGP implementation";
|
description = "A cool new OpenPGP implementation";
|
||||||
homepage = "https://sequoia-pgp.org/";
|
homepage = "https://sequoia-pgp.org/";
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ minijackson doronbehar ];
|
maintainers = with maintainers; [ minijackson doronbehar ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,26 +1,26 @@
|
|||||||
{ lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc }:
|
{ lib, stdenv, fetchurl, unzip, makeWrapper, gawk, glibc }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "1.8.1";
|
version = "1.8.2";
|
||||||
|
|
||||||
sources = let
|
sources = let
|
||||||
base = "https://releases.hashicorp.com/vault/${version}";
|
base = "https://releases.hashicorp.com/vault/${version}";
|
||||||
in {
|
in {
|
||||||
x86_64-linux = fetchurl {
|
x86_64-linux = fetchurl {
|
||||||
url = "${base}/vault_${version}_linux_amd64.zip";
|
url = "${base}/vault_${version}_linux_amd64.zip";
|
||||||
sha256 = "sha256-u0EfK7rXnC5PBkDx09XvUOK9p9T0CHWlaRfJX/eDwts=";
|
sha256 = "sha256-10ck1swivx4cfFGQCbAXaAms9vHCDuVhB94Mq1TNhGM=";
|
||||||
};
|
};
|
||||||
i686-linux = fetchurl {
|
i686-linux = fetchurl {
|
||||||
url = "${base}/vault_${version}_linux_386.zip";
|
url = "${base}/vault_${version}_linux_386.zip";
|
||||||
sha256 = "11khjx5lrb7zmrahkniqwn4ad98yjy2fm0miz63nzpq85c0yrjdn";
|
sha256 = "0v8l056xs88mjpcfpi9k8chv0zk7lf80gkj580z3d37h2yr2b1gg";
|
||||||
};
|
};
|
||||||
x86_64-darwin = fetchurl {
|
x86_64-darwin = fetchurl {
|
||||||
url = "${base}/vault_${version}_darwin_amd64.zip";
|
url = "${base}/vault_${version}_darwin_amd64.zip";
|
||||||
sha256 = "02gqavhg3pk6jkdmn1yp9pl3pv4ni2sg56q218gs8gbbypj22wpq";
|
sha256 = "1xabbndnx85zbhbwid30q0jii41hmwwlqrxz4a0rllqshvmq4fg3";
|
||||||
};
|
};
|
||||||
aarch64-linux = fetchurl {
|
aarch64-linux = fetchurl {
|
||||||
url = "${base}/vault_${version}_linux_arm64.zip";
|
url = "${base}/vault_${version}_linux_arm64.zip";
|
||||||
sha256 = "0500nc8v7hwnrckz4fkf5fpqcg3i45q25lz4lghzkcabnss4qand";
|
sha256 = "00p2540bdhw46licab401vbwdyvp1hkngssx6nh99igj14sl60qa";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "stress-ng";
|
pname = "stress-ng";
|
||||||
version = "0.12.11";
|
version = "0.13.00";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
|
url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "sha256-lxOTB1Mhwkw9V2ms+rtwWRHR9BHO1ZN7fP6lhSjBtOY=";
|
sha256 = "sha256-HO/kowV8FSKxRuYvYbgM5uLpnaLYXr4lvAP8RSKOWM0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -5255,7 +5255,9 @@ with pkgs;
|
|||||||
|
|
||||||
git-big-picture = callPackage ../applications/version-management/git-and-tools/git-big-picture { };
|
git-big-picture = callPackage ../applications/version-management/git-and-tools/git-big-picture { };
|
||||||
|
|
||||||
git-branchless = callPackage ../applications/version-management/git-and-tools/git-branchless { };
|
git-branchless = callPackage ../applications/version-management/git-and-tools/git-branchless {
|
||||||
|
inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
|
||||||
|
};
|
||||||
|
|
||||||
inherit (haskellPackages) git-brunch;
|
inherit (haskellPackages) git-brunch;
|
||||||
|
|
||||||
@ -10818,6 +10820,7 @@ with pkgs;
|
|||||||
|
|
||||||
bluespec = callPackage ../development/compilers/bluespec {
|
bluespec = callPackage ../development/compilers/bluespec {
|
||||||
gmp-static = gmp.override { withStatic = true; };
|
gmp-static = gmp.override { withStatic = true; };
|
||||||
|
tex = texlive.combined.scheme-full;
|
||||||
};
|
};
|
||||||
|
|
||||||
cakelisp = callPackage ../development/compilers/cakelisp { };
|
cakelisp = callPackage ../development/compilers/cakelisp { };
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
# Utility functions, could just import but passing in for efficiency
|
# Utility functions, could just import but passing in for efficiency
|
||||||
lib
|
lib
|
||||||
|
|
||||||
, # Use to reevaluate Nixpkgs; a dirty hack that should be removed
|
, # Use to reevaluate Nixpkgs
|
||||||
nixpkgsFun
|
nixpkgsFun
|
||||||
|
|
||||||
## Other parameters
|
## Other parameters
|
||||||
@ -218,7 +218,7 @@ let
|
|||||||
appendOverlays = extraOverlays:
|
appendOverlays = extraOverlays:
|
||||||
if extraOverlays == []
|
if extraOverlays == []
|
||||||
then self
|
then self
|
||||||
else import ./stage.nix (args // { overlays = args.overlays ++ extraOverlays; });
|
else nixpkgsFun { overlays = args.overlays ++ extraOverlays; };
|
||||||
|
|
||||||
# NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB
|
# NOTE: each call to extend causes a full nixpkgs rebuild, adding ~130MB
|
||||||
# of allocations. DO NOT USE THIS IN NIXPKGS.
|
# of allocations. DO NOT USE THIS IN NIXPKGS.
|
||||||
|
Loading…
Reference in New Issue
Block a user