Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2021-09-01 00:07:34 +00:00 committed by GitHub
commit 5f6b37f57e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
75 changed files with 1154 additions and 844 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -22,12 +22,15 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
glib
meson meson
ninja ninja
pkg-config pkg-config
]; ];
buildInputs = [
glib
];
propagatedBuildInputs = [ propagatedBuildInputs = [
libusb1 libusb1
]; ];

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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