Project import generated by Copybara.

GitOrigin-RevId: 20887e4bbfdae3aed6bfa1f53ddf138ee325515e
This commit is contained in:
Default email 2021-07-03 21:40:35 -05:00
parent a8ecef63af
commit b96e6f4393
307 changed files with 2443 additions and 1104 deletions

View file

@ -11,7 +11,7 @@ name: "Periodic Merges (24h)"
on:
schedule:
# * is a special character in YAML so you have to quote this string
# Merge every 6 hours
# Merge every 24 hours
- cron: '0 0 * * *'
jobs:

View file

@ -439,7 +439,7 @@ The following example shows which arguments are given to `buildPythonPackage` in
order to build [`datashape`](https://github.com/blaze/datashape).
```nix
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, dateutil, pytest }:
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, python-dateutil, pytest }:
buildPythonPackage rec {
pname = "datashape";
@ -451,7 +451,7 @@ buildPythonPackage rec {
};
checkInputs = [ pytest ];
propagatedBuildInputs = [ numpy multipledispatch dateutil ];
propagatedBuildInputs = [ numpy multipledispatch python-dateutil ];
meta = with lib; {
homepage = "https://github.com/ContinuumIO/datashape";
@ -463,7 +463,7 @@ buildPythonPackage rec {
```
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
`dateutil`. Furthermore, we have one `checkInputs`, i.e. `pytest`. `pytest` is a
`python-dateutil`. Furthermore, we have one `checkInputs`, i.e. `pytest`. `pytest` is a
test runner and is only used during the `checkPhase` and is therefore not added
to `propagatedBuildInputs`.

View file

@ -10644,6 +10644,12 @@
github = "totoroot";
githubId = 39650930;
};
ToxicFrog = {
email = "toxicfrog@ancilla.ca";
github = "ToxicFrog";
githubId = 90456;
name = "Rebecca (Bex) Kelly";
};
travisbhartwell = {
email = "nafai@travishartwell.net";
github = "travisbhartwell";

View file

@ -30,6 +30,12 @@ If NixOS fails to boot, there are a number of kernel command line parameters tha
: Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1).
In addition, these arguments are recognised by the live image only:
`live.nixos.passwd=password`
: Set the password for the `nixos` live user. This can be used for SSH access if there are issues using the terminal.
Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue".
If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If youre lucky, this will start rescue mode (described above). (Also note that since most units have a 90-second timeout before systemd gives up on them, the `agetty` login prompts should appear eventually unless something is very wrong.)

View file

@ -106,6 +106,23 @@
</listitem>
</varlistentry>
</variablelist>
<para>
In addition, these arguments are recognised by the live image only:
</para>
<variablelist>
<varlistentry>
<term>
<literal>live.nixos.passwd=password</literal>
</term>
<listitem>
<para>
Set the password for the <literal>nixos</literal> live user.
This can be used for SSH access if there are issues using the
terminal.
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Notice that for <literal>boot.shell_on_fail</literal>,
<literal>boot.debug1</literal>,

View file

@ -101,16 +101,18 @@
<listitem>
<para>
<link xlink:href="https://www.gnuradio.org/">GNURadio</link>
3.8 was
3.8 and 3.9 were
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
packaged, along with a rewrite to the Nix expressions,
allowing users to override the features upstream supports
selecting to compile or not to. Additionally, the attribute
<literal>gnuradio</literal> and <literal>gnuradio3_7</literal>
now point to an externally wrapped by default derivations,
that allow you to also add `extraPythonPackages` to the Python
interpreter used by GNURadio. Missing environmental variables
needed for operational GUI were also added
<literal>gnuradio</literal> (3.9),
<literal>gnuradio3_8</literal> and
<literal>gnuradio3_7</literal> now point to an externally
wrapped by default derivations, that allow you to also add
`extraPythonPackages` to the Python interpreter used by
GNURadio. Missing environmental variables needed for
operational GUI were also added
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
</para>
</listitem>
@ -1026,7 +1028,7 @@ self: super:
<para>
<link xlink:href="https://kodi.tv/">Kodi</link> has been
updated to version 19.1 &quot;Matrix&quot;. See the
<link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link>
<link xlink:href="https://kodi.tv/article/kodi-19-0-matrix-release">announcement</link>
for further details.
</para>
</listitem>

View file

@ -25,6 +25,15 @@
<section xml:id="sec-release-21.11-new-services">
<title>New Services</title>
<itemizedlist>
<listitem>
<para>
<link xlink:href="https://digint.ch/btrbk/index.html">btrbk</link>,
a backup tool for btrfs subvolumes, taking advantage of btrfs
specific capabilities to create atomic snapshots and transfer
them incrementally to your backup locations. Available as
<link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>.
</para>
</listitem>
<listitem>
<para>
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
@ -64,7 +73,7 @@
<listitem>
<para>
The <literal>staticjinja</literal> package has been upgraded
from 1.0.4 to 2.0.0
from 1.0.4 to 3.0.1
</para>
</listitem>
<listitem>
@ -339,6 +348,116 @@
release instead of the old 2.31.0 version.
</para>
</listitem>
<listitem>
<para>
The <literal>bitwarden_rs</literal> packages and modules were
renamed to <literal>vaultwarden</literal>
<link xlink:href="https://github.com/dani-garcia/vaultwarden/discussions/1642">following
upstream</link>. More specifically,
</para>
<itemizedlist>
<listitem>
<para>
<literal>pkgs.bitwarden_rs</literal>,
<literal>pkgs.bitwarden_rs-sqlite</literal>,
<literal>pkgs.bitwarden_rs-mysql</literal> and
<literal>pkgs.bitwarden_rs-postgresql</literal> were
renamed to <literal>pkgs.vaultwarden</literal>,
<literal>pkgs.vaultwarden-sqlite</literal>,
<literal>pkgs.vaultwarden-mysql</literal> and
<literal>pkgs.vaultwarden-postgresql</literal>,
respectively.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Old names are preserved as aliases for backwards
compatibility, but may be removed in the future.
</para>
</listitem>
<listitem>
<para>
The <literal>bitwarden_rs</literal> executable was
also renamed to <literal>vaultwarden</literal> in all
packages.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
<literal>pkgs.bitwarden_rs-vault</literal> was renamed to
<literal>pkgs.vaultwarden-vault</literal>.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
<literal>pkgs.bitwarden_rs-vault</literal> is
preserved as an alias for backwards compatibility, but
may be removed in the future.
</para>
</listitem>
<listitem>
<para>
The static files were moved from
<literal>/usr/share/bitwarden_rs</literal> to
<literal>/usr/share/vaultwarden</literal>.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
The <literal>services.bitwarden_rs</literal> config module
was renamed to <literal>services.vaultwarden</literal>.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
<literal>services.bitwarden_rs</literal> is preserved
as an alias for backwards compatibility, but may be
removed in the future.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
<literal>systemd.services.bitwarden_rs</literal>,
<literal>systemd.services.backup-bitwarden_rs</literal>
and <literal>systemd.timers.backup-bitwarden_rs</literal>
were renamed to
<literal>systemd.services.vaultwarden</literal>,
<literal>systemd.services.backup-vaultwarden</literal> and
<literal>systemd.timers.backup-vaultwarden</literal>,
respectively.
</para>
<itemizedlist spacing="compact">
<listitem>
<para>
Old names are preserved as aliases for backwards
compatibility, but may be removed in the future.
</para>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<para>
<literal>users.users.bitwarden_rs</literal> and
<literal>users.groups.bitwarden_rs</literal> were renamed
to <literal>users.users.vaultwarden</literal> and
<literal>users.groups.vaultwarden</literal>, respectively.
</para>
</listitem>
<listitem>
<para>
The data directory remains located at
<literal>/var/lib/bitwarden_rs</literal>, for backwards
compatibility.
</para>
</listitem>
</itemizedlist>
</listitem>
</itemizedlist>
</section>
<section xml:id="sec-release-21.11-notable-changes">

View file

@ -36,7 +36,7 @@ In addition to numerous new and upgraded packages, this release has the followin
The following new services were added since the last release:
- [GNURadio](https://www.gnuradio.org/) 3.8 was [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
- [GNURadio](https://www.gnuradio.org/) 3.8 and 3.9 were [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` (3.9), `gnuradio3_8` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
- [Keycloak](https://www.keycloak.org/), an open source identity and access management server with support for [OpenID Connect](https://openid.net/connect/), [OAUTH 2.0](https://oauth.net/2/) and [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
@ -300,7 +300,7 @@ When upgrading from a previous release, please be aware of the following incompa
Regarding the NixOS module, new options for HTTPS inspection have been added and `services.privoxy.extraConfig` has been replaced by the new [services.privoxy.settings](options.html#opt-services.privoxy.settings) (See [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) for the motivation).
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-190-matrix-release) for further details.
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-19-0-matrix-release) for further details.
- The `services.packagekit.backend` option has been removed as it only supported a single setting which would always be the default. Instead new [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant [services.packagekit.settings](options.html#opt-services.packagekit.settings) and [services.packagekit.vendorSettings](options.html#opt-services.packagekit.vendorSettings) options have been introduced.

View file

@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
## New Services {#sec-release-21.11-new-services}
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
@ -20,7 +22,7 @@ In addition to numerous new and upgraded packages, this release has the followin
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
- The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
@ -85,6 +87,32 @@ In addition to numerous new and upgraded packages, this release has the followin
* The `libwnck` package now defaults to the 3.x release instead of the
old 2.31.0 version.
* The `bitwarden_rs` packages and modules were renamed to `vaultwarden`
[following upstream](https://github.com/dani-garcia/vaultwarden/discussions/1642). More specifically,
* `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
`pkgs.bitwarden_rs-postgresql` were renamed to `pkgs.vaultwarden`, `pkgs.vaultwarden-sqlite`,
`pkgs.vaultwarden-mysql` and `pkgs.vaultwarden-postgresql`, respectively.
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
* The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
* `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
* `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
* The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
* The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
* `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
* `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
were renamed to `systemd.services.vaultwarden`, `systemd.services.backup-vaultwarden` and
`systemd.timers.backup-vaultwarden`, respectively.
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
* `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
`users.groups.vaultwarden`, respectively.
* The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
## Other Notable Changes {#sec-release-21.11-notable-changes}
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.

View file

@ -30,5 +30,16 @@ with lib;
# Add Memtest86+ to the CD.
boot.loader.grub.memtest86.enable = true;
boot.postBootCommands = ''
for o in $(</proc/cmdline); do
case "$o" in
live.nixos.passwd=*)
set -- $(IFS==; echo $o)
echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd
;;
esac
done
'';
system.stateVersion = mkDefault "18.03";
}

View file

@ -260,6 +260,7 @@
./services/backup/bacula.nix
./services/backup/borgbackup.nix
./services/backup/borgmatic.nix
./services/backup/btrbk.nix
./services/backup/duplicati.nix
./services/backup/duplicity.nix
./services/backup/mysql-backup.nix
@ -874,7 +875,6 @@
./services/search/hound.nix
./services/search/kibana.nix
./services/search/solr.nix
./services/security/bitwarden_rs/default.nix
./services/security/certmgr.nix
./services/security/cfssl.nix
./services/security/clamav.nix
@ -900,6 +900,7 @@
./services/security/torsocks.nix
./services/security/usbguard.nix
./services/security/vault.nix
./services/security/vaultwarden/default.nix
./services/security/yubikey-agent.nix
./services/system/cloud-init.nix
./services/system/dbus.nix

View file

@ -0,0 +1,220 @@
{ config, pkgs, lib, ... }:
let
cfg = config.services.btrbk;
sshEnabled = cfg.sshAccess != [ ];
serviceEnabled = cfg.instances != { };
attr2Lines = attr:
let
pairs = lib.attrsets.mapAttrsToList (name: value: { inherit name value; }) attr;
isSubsection = value:
if builtins.isAttrs value then true
else if builtins.isString value then false
else throw "invalid type in btrbk config ${builtins.typeOf value}";
sortedPairs = lib.lists.partition (x: isSubsection x.value) pairs;
in
lib.flatten (
# non subsections go first
(
map (pair: [ "${pair.name} ${pair.value}" ]) sortedPairs.wrong
)
++ # subsections go last
(
map
(
pair:
lib.mapAttrsToList
(
childname: value:
[ "${pair.name} ${childname}" ] ++ (map (x: " " + x) (attr2Lines value))
)
pair.value
)
sortedPairs.right
)
)
;
addDefaults = settings: { backend = "btrfs-progs-sudo"; } // settings;
mkConfigFile = settings: lib.concatStringsSep "\n" (attr2Lines (addDefaults settings));
mkTestedConfigFile = name: settings:
let
configFile = pkgs.writeText "btrbk-${name}.conf" (mkConfigFile settings);
in
pkgs.runCommand "btrbk-${name}-tested.conf" { } ''
mkdir foo
cp ${configFile} $out
if (set +o pipefail; ${pkgs.btrbk}/bin/btrbk -c $out ls foo 2>&1 | grep $out);
then
echo btrbk configuration is invalid
cat $out
exit 1
fi;
'';
in
{
options = {
services.btrbk = {
extraPackages = lib.mkOption {
description = "Extra packages for btrbk, like compression utilities for <literal>stream_compress</literal>";
type = lib.types.listOf lib.types.package;
default = [ ];
example = lib.literalExample "[ pkgs.xz ]";
};
niceness = lib.mkOption {
description = "Niceness for local instances of btrbk. Also applies to remote ones connecting via ssh when positive.";
type = lib.types.ints.between (-20) 19;
default = 10;
};
ioSchedulingClass = lib.mkOption {
description = "IO scheduling class for btrbk (see ionice(1) for a quick description). Applies to local instances, and remote ones connecting by ssh if set to idle.";
type = lib.types.enum [ "idle" "best-effort" "realtime" ];
default = "best-effort";
};
instances = lib.mkOption {
description = "Set of btrbk instances. The instance named <literal>btrbk</literal> is the default one.";
type = with lib.types;
attrsOf (
submodule {
options = {
onCalendar = lib.mkOption {
type = lib.types.str;
default = "daily";
description = "How often this btrbk instance is started. See systemd.time(7) for more information about the format.";
};
settings = lib.mkOption {
type = let t = lib.types.attrsOf (lib.types.either lib.types.str (t // { description = "instances of this type recursively"; })); in t;
default = { };
example = {
snapshot_preserve_min = "2d";
snapshot_preserve = "14d";
volume = {
"/mnt/btr_pool" = {
target = "/mnt/btr_backup/mylaptop";
subvolume = {
"rootfs" = { };
"home" = { snapshot_create = "always"; };
};
};
};
};
description = "configuration options for btrbk. Nested attrsets translate to subsections.";
};
};
}
);
default = { };
};
sshAccess = lib.mkOption {
description = "SSH keys that should be able to make or push snapshots on this system remotely with btrbk";
type = with lib.types; listOf (
submodule {
options = {
key = lib.mkOption {
type = str;
description = "SSH public key allowed to login as user <literal>btrbk</literal> to run remote backups.";
};
roles = lib.mkOption {
type = listOf (enum [ "info" "source" "target" "delete" "snapshot" "send" "receive" ]);
example = [ "source" "info" "send" ];
description = "What actions can be performed with this SSH key. See ssh_filter_btrbk(1) for details";
};
};
}
);
default = [ ];
};
};
};
config = lib.mkIf (sshEnabled || serviceEnabled) {
environment.systemPackages = [ pkgs.btrbk ] ++ cfg.extraPackages;
security.sudo.extraRules = [
{
users = [ "btrbk" ];
commands = [
{ command = "${pkgs.btrfs-progs}/bin/btrfs"; options = [ "NOPASSWD" ]; }
{ command = "${pkgs.coreutils}/bin/mkdir"; options = [ "NOPASSWD" ]; }
{ command = "${pkgs.coreutils}/bin/readlink"; options = [ "NOPASSWD" ]; }
# for ssh, they are not the same than the one hard coded in ${pkgs.btrbk}
{ command = "/run/current-system/bin/btrfs"; options = [ "NOPASSWD" ]; }
{ command = "/run/current-system/sw/bin/mkdir"; options = [ "NOPASSWD" ]; }
{ command = "/run/current-system/sw/bin/readlink"; options = [ "NOPASSWD" ]; }
];
}
];
users.users.btrbk = {
isSystemUser = true;
# ssh needs a home directory
home = "/var/lib/btrbk";
createHome = true;
shell = "${pkgs.bash}/bin/bash";
group = "btrbk";
openssh.authorizedKeys.keys = map
(
v:
let
options = lib.concatMapStringsSep " " (x: "--" + x) v.roles;
ioniceClass = {
"idle" = 3;
"best-effort" = 2;
"realtime" = 1;
}.${cfg.ioSchedulingClass};
in
''command="${pkgs.util-linux}/bin/ionice -t -c ${toString ioniceClass} ${lib.optionalString (cfg.niceness >= 1) "${pkgs.coreutils}/bin/nice -n ${toString cfg.niceness}"} ${pkgs.btrbk}/share/btrbk/scripts/ssh_filter_btrbk.sh --sudo ${options}" ${v.key}''
)
cfg.sshAccess;
};
users.groups.btrbk = { };
systemd.tmpfiles.rules = [
"d /var/lib/btrbk 0750 btrbk btrbk"
"d /var/lib/btrbk/.ssh 0700 btrbk btrbk"
"f /var/lib/btrbk/.ssh/config 0700 btrbk btrbk - StrictHostKeyChecking=accept-new"
];
environment.etc = lib.mapAttrs'
(
name: instance: {
name = "btrbk/${name}.conf";
value.source = mkTestedConfigFile name instance.settings;
}
)
cfg.instances;
systemd.services = lib.mapAttrs'
(
name: _: {
name = "btrbk-${name}";
value = {
description = "Takes BTRFS snapshots and maintains retention policies.";
unitConfig.Documentation = "man:btrbk(1)";
path = [ "/run/wrappers" ] ++ cfg.extraPackages;
serviceConfig = {
User = "btrbk";
Group = "btrbk";
Type = "oneshot";
ExecStart = "${pkgs.btrbk}/bin/btrbk -c /etc/btrbk/${name}.conf run";
Nice = cfg.niceness;
IOSchedulingClass = cfg.ioSchedulingClass;
StateDirectory = "btrbk";
};
};
}
)
cfg.instances;
systemd.timers = lib.mapAttrs'
(
name: instance: {
name = "btrbk-${name}";
value = {
description = "Timer to take BTRFS snapshots and maintain retention policies.";
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = instance.onCalendar;
AccuracySec = "10min";
Persistent = true;
};
};
}
)
cfg.instances;
};
}

View file

@ -16,6 +16,7 @@ ${lib.optionalString cfg.lt-cred-mech "lt-cred-mech"}
${lib.optionalString cfg.no-auth "no-auth"}
${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
${lib.optionalString (cfg.static-auth-secret-file != null) ("static-auth-secret=#static-auth-secret#")}
realm=${cfg.realm}
${lib.optionalString cfg.no-udp "no-udp"}
${lib.optionalString cfg.no-tcp "no-tcp"}
@ -182,6 +183,13 @@ in {
by a separate program, so this is why that other mode is 'dynamic'.
'';
};
static-auth-secret-file = mkOption {
type = types.nullOr types.str;
default = null;
description = ''
Path to the file containing the static authentication secret.
'';
};
realm = mkOption {
type = types.str;
default = config.networking.hostName;
@ -293,42 +301,63 @@ in {
};
};
config = mkIf cfg.enable {
users.users.turnserver =
{ uid = config.ids.uids.turnserver;
description = "coturn TURN server user";
};
users.groups.turnserver =
{ gid = config.ids.gids.turnserver;
members = [ "turnserver" ];
};
config = mkIf cfg.enable (mkMerge ([
{ assertions = [
{ assertion = cfg.static-auth-secret != null -> cfg.static-auth-secret-file == null ;
message = "static-auth-secret and static-auth-secret-file cannot be set at the same time";
}
];}
systemd.services.coturn = {
description = "coturn TURN server";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
{
users.users.turnserver =
{ uid = config.ids.uids.turnserver;
description = "coturn TURN server user";
};
users.groups.turnserver =
{ gid = config.ids.gids.turnserver;
members = [ "turnserver" ];
};
unitConfig = {
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
};
systemd.services.coturn = let
runConfig = "/run/coturn/turnserver.cfg";
in {
description = "coturn TURN server";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}";
RuntimeDirectory = "turnserver";
User = "turnserver";
Group = "turnserver";
AmbientCapabilities =
mkIf (
cfg.listening-port < 1024 ||
cfg.alt-listening-port < 1024 ||
cfg.tls-listening-port < 1024 ||
cfg.alt-tls-listening-port < 1024 ||
cfg.min-port < 1024
) "cap_net_bind_service";
Restart = "on-abort";
unitConfig = {
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
};
preStart = ''
cat ${configFile} > ${runConfig}
${optionalString (cfg.static-auth-secret-file != null) ''
STATIC_AUTH_SECRET="$(head -n1 ${cfg.static-auth-secret-file} || :)"
sed -e "s,#static-auth-secret#,$STATIC_AUTH_SECRET,g" \
-i ${runConfig}
'' }
chmod 640 ${runConfig}
'';
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${runConfig}";
RuntimeDirectory = "turnserver";
User = "turnserver";
Group = "turnserver";
AmbientCapabilities =
mkIf (
cfg.listening-port < 1024 ||
cfg.alt-listening-port < 1024 ||
cfg.tls-listening-port < 1024 ||
cfg.alt-tls-listening-port < 1024 ||
cfg.min-port < 1024
) "cap_net_bind_service";
Restart = "on-abort";
};
};
};
};
systemd.tmpfiles.rules = [
"d /run/coturn 0700 turnserver turnserver - -"
];
}]));
}

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash
# Based on: https://github.com/dani-garcia/bitwarden_rs/wiki/Backing-up-your-vault
# Based on: https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault
if ! mkdir -p "$BACKUP_FOLDER"; then
echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
exit 1

View file

@ -3,9 +3,9 @@
with lib;
let
cfg = config.services.bitwarden_rs;
user = config.users.users.bitwarden_rs.name;
group = config.users.groups.bitwarden_rs.name;
cfg = config.services.vaultwarden;
user = config.users.users.vaultwarden.name;
group = config.users.groups.vaultwarden.name;
# Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
nameToEnvVar = name:
@ -26,22 +26,26 @@ let
if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
) cfg.config));
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
WEB_VAULT_FOLDER = "${pkgs.bitwarden_rs-vault}/share/bitwarden_rs/vault";
WEB_VAULT_FOLDER = "${pkgs.vaultwarden-vault}/share/vaultwarden/vault";
} // configEnv;
configFile = pkgs.writeText "bitwarden_rs.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
configFile = pkgs.writeText "vaultwarden.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
bitwarden_rs = pkgs.bitwarden_rs.override { inherit (cfg) dbBackend; };
vaultwarden = pkgs.vaultwarden.override { inherit (cfg) dbBackend; };
in {
options.services.bitwarden_rs = with types; {
enable = mkEnableOption "bitwarden_rs";
imports = [
(mkRenamedOptionModule [ "services" "bitwarden_rs" ] [ "services" "vaultwarden" ])
];
options.services.vaultwarden = with types; {
enable = mkEnableOption "vaultwarden";
dbBackend = mkOption {
type = enum [ "sqlite" "mysql" "postgresql" ];
default = "sqlite";
description = ''
Which database backend bitwarden_rs will be using.
Which database backend vaultwarden will be using.
'';
};
@ -49,7 +53,7 @@ in {
type = nullOr str;
default = null;
description = ''
The directory under which bitwarden_rs will backup its persistent data.
The directory under which vaultwarden will backup its persistent data.
'';
};
@ -65,7 +69,7 @@ in {
}
'';
description = ''
The configuration of bitwarden_rs is done through environment variables,
The configuration of vaultwarden is done through environment variables,
therefore the names are converted from camel case (e.g. disable2FARemember)
to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
In this conversion digits (0-9) are handled just like upper case characters,
@ -75,17 +79,17 @@ in {
This allows working around any potential future conflicting naming conventions.
Based on the attributes passed to this config option an environment file will be generated
that is passed to bitwarden_rs's systemd service.
that is passed to vaultwarden's systemd service.
The available configuration options can be found in
<link xlink:href="https://github.com/dani-garcia/bitwarden_rs/blob/${bitwarden_rs.version}/.env.template">the environment template file</link>.
<link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
'';
};
environmentFile = mkOption {
type = with types; nullOr path;
default = null;
example = "/root/bitwarden_rs.env";
example = "/root/vaultwarden.env";
description = ''
Additional environment file as defined in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
@ -95,7 +99,7 @@ in {
may be passed to the service without adding them to the world-readable Nix store.
Note that this file needs to be available on the host on which
<literal>bitwarden_rs</literal> is running.
<literal>vaultwarden</literal> is running.
'';
};
};
@ -106,20 +110,21 @@ in {
message = "Backups for database backends other than sqlite will need customization";
} ];
users.users.bitwarden_rs = {
users.users.vaultwarden = {
inherit group;
isSystemUser = true;
};
users.groups.bitwarden_rs = { };
users.groups.vaultwarden = { };
systemd.services.bitwarden_rs = {
systemd.services.vaultwarden = {
aliases = [ "bitwarden_rs" ];
after = [ "network.target" ];
path = with pkgs; [ openssl ];
serviceConfig = {
User = user;
Group = group;
EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
ExecStart = "${vaultwarden}/bin/vaultwarden";
LimitNOFILE = "1048576";
PrivateTmp = "true";
PrivateDevices = "true";
@ -131,15 +136,16 @@ in {
wantedBy = [ "multi-user.target" ];
};
systemd.services.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
description = "Backup bitwarden_rs";
systemd.services.backup-vaultwarden = mkIf (cfg.backupDir != null) {
aliases = [ "backup-bitwarden_rs" ];
description = "Backup vaultwarden";
environment = {
DATA_FOLDER = "/var/lib/bitwarden_rs";
BACKUP_FOLDER = cfg.backupDir;
};
path = with pkgs; [ sqlite ];
serviceConfig = {
SyslogIdentifier = "backup-bitwarden_rs";
SyslogIdentifier = "backup-vaultwarden";
Type = "oneshot";
User = mkDefault user;
Group = mkDefault group;
@ -148,12 +154,13 @@ in {
wantedBy = [ "multi-user.target" ];
};
systemd.timers.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
description = "Backup bitwarden_rs on time";
systemd.timers.backup-vaultwarden = mkIf (cfg.backupDir != null) {
aliases = [ "backup-bitwarden_rs" ];
description = "Backup vaultwarden on time";
timerConfig = {
OnCalendar = mkDefault "23:00";
Persistent = "true";
Unit = "backup-bitwarden_rs.service";
Unit = "backup-vaultwarden.service";
};
wantedBy = [ "multi-user.target" ];
};

View file

@ -13,7 +13,7 @@ let
# !!! fix this
children = mapAttrs (childName: childConfig:
(import ../../../lib/eval-config.nix {
inherit baseModules specialArgs;
inherit lib baseModules specialArgs;
system = config.nixpkgs.initialSystem;
modules =
(optionals childConfig.inheritParentConfig modules)

View file

@ -42,12 +42,12 @@ in
bind = handleTest ./bind.nix {};
bitcoind = handleTest ./bitcoind.nix {};
bittorrent = handleTest ./bittorrent.nix {};
bitwarden = handleTest ./bitwarden.nix {};
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
boot-stage1 = handleTest ./boot-stage1.nix {};
borgbackup = handleTest ./borgbackup.nix {};
botamusique = handleTest ./botamusique.nix {};
btrbk = handleTest ./btrbk.nix {};
buildbot = handleTest ./buildbot.nix {};
buildkite-agents = handleTest ./buildkite-agents.nix {};
caddy = handleTest ./caddy.nix {};
@ -88,6 +88,7 @@ in
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
convos = handleTest ./convos.nix {};
corerad = handleTest ./corerad.nix {};
coturn = handleTest ./coturn.nix {};
couchdb = handleTest ./couchdb.nix {};
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
custom-ca = handleTest ./custom-ca.nix {};
@ -446,6 +447,7 @@ in
v2ray = handleTest ./v2ray.nix {};
vault = handleTest ./vault.nix {};
vault-postgresql = handleTest ./vault-postgresql.nix {};
vaultwarden = handleTest ./vaultwarden.nix {};
vector = handleTest ./vector.nix {};
victoriametrics = handleTest ./victoriametrics.nix {};
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};

View file

@ -0,0 +1,110 @@
import ./make-test-python.nix ({ pkgs, ... }:
let
privateKey = ''
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACBx8UB04Q6Q/fwDFjakHq904PYFzG9pU2TJ9KXpaPMcrwAAAJB+cF5HfnBe
RwAAAAtzc2gtZWQyNTUxOQAAACBx8UB04Q6Q/fwDFjakHq904PYFzG9pU2TJ9KXpaPMcrw
AAAEBN75NsJZSpt63faCuaD75Unko0JjlSDxMhYHAPJk2/xXHxQHThDpD9/AMWNqQer3Tg
9gXMb2lTZMn0pelo8xyvAAAADXJzY2h1ZXR6QGt1cnQ=
-----END OPENSSH PRIVATE KEY-----
'';
publicKey = ''
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHHxQHThDpD9/AMWNqQer3Tg9gXMb2lTZMn0pelo8xyv
'';
in
{
name = "btrbk";
meta = with pkgs.lib; {
maintainers = with maintainers; [ symphorien ];
};
nodes = {
archive = { ... }: {
environment.systemPackages = with pkgs; [ btrfs-progs ];
# note: this makes the privateKey world readable.
# don't do it with real ssh keys.
environment.etc."btrbk_key".text = privateKey;
services.btrbk = {
extraPackages = [ pkgs.lz4 ];
instances = {
remote = {
onCalendar = "minutely";
settings = {
ssh_identity = "/etc/btrbk_key";
ssh_user = "btrbk";
stream_compress = "lz4";
volume = {
"ssh://main/mnt" = {
target = "/mnt";
snapshot_dir = "btrbk/remote";
subvolume = "to_backup";
};
};
};
};
};
};
};
main = { ... }: {
environment.systemPackages = with pkgs; [ btrfs-progs ];
services.openssh = {
enable = true;
passwordAuthentication = false;
challengeResponseAuthentication = false;
};
services.btrbk = {
extraPackages = [ pkgs.lz4 ];
sshAccess = [
{
key = publicKey;
roles = [ "source" "send" "info" "delete" ];
}
];
instances = {
local = {
onCalendar = "minutely";
settings = {
volume = {
"/mnt" = {
snapshot_dir = "btrbk/local";
subvolume = "to_backup";
};
};
};
};
};
};
};
};
testScript = ''
start_all()
# create btrfs partition at /mnt
for machine in (archive, main):
machine.succeed("dd if=/dev/zero of=/data_fs bs=120M count=1")
machine.succeed("mkfs.btrfs /data_fs")
machine.succeed("mkdir /mnt")
machine.succeed("mount /data_fs /mnt")
# what to backup and where
main.succeed("btrfs subvolume create /mnt/to_backup")
main.succeed("mkdir -p /mnt/btrbk/{local,remote}")
# check that local snapshots work
with subtest("local"):
main.succeed("echo foo > /mnt/to_backup/bar")
main.wait_until_succeeds("cat /mnt/btrbk/local/*/bar | grep foo")
main.succeed("echo bar > /mnt/to_backup/bar")
main.succeed("cat /mnt/btrbk/local/*/bar | grep foo")
# check that btrfs send/receive works and ssh access works
with subtest("remote"):
archive.wait_until_succeeds("cat /mnt/*/bar | grep bar")
main.succeed("echo baz > /mnt/to_backup/bar")
archive.succeed("cat /mnt/*/bar | grep bar")
'';
})

View file

@ -0,0 +1,29 @@
import ./make-test-python.nix ({ ... }: {
name = "coturn";
nodes = {
default = {
services.coturn.enable = true;
};
secretsfile = {
boot.postBootCommands = ''
echo "some-very-secret-string" > /run/coturn-secret
'';
services.coturn = {
enable = true;
static-auth-secret-file = "/run/coturn-secret";
};
};
};
testScript =
''
start_all()
with subtest("by default works without configuration"):
default.wait_for_unit("coturn.service")
with subtest("works with static-auth-secret-file"):
secretsfile.wait_for_unit("coturn.service")
secretsfile.succeed("grep 'some-very-secret-string' /run/coturn/turnserver.cfg")
'';
})

View file

@ -4,7 +4,7 @@
}:
# These tests will:
# * Set up a bitwarden-rs server
# * Set up a vaultwarden server
# * Have Firefox use the web vault to create an account, log in, and save a password to the valut
# * Have the bw cli log in and read that password from the vault
#
@ -24,8 +24,8 @@ let
storedPassword = "seeeecret";
makeBitwardenTest = backend: makeTest {
name = "bitwarden_rs-${backend}";
makeVaultwardenTest = backend: makeTest {
name = "vaultwarden-${backend}";
meta = {
maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
};
@ -45,9 +45,9 @@ let
package = pkgs.mariadb;
};
services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
services.vaultwarden.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
systemd.services.bitwarden_rs.after = [ "mysql.service" ];
systemd.services.vaultwarden.after = [ "mysql.service" ];
};
postgresql = {
@ -60,9 +60,9 @@ let
'';
};
services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
services.vaultwarden.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
systemd.services.vaultwarden.after = [ "postgresql.service" ];
};
sqlite = { };
@ -71,7 +71,7 @@ let
mkMerge [
backendConfig.${backend}
{
services.bitwarden_rs = {
services.vaultwarden = {
enable = true;
dbBackend = backend;
config.rocketPort = 80;
@ -152,7 +152,7 @@ let
testScript = ''
start_all()
server.wait_for_unit("bitwarden_rs.service")
server.wait_for_unit("vaultwarden.service")
server.wait_for_open_port(80)
with subtest("configure the cli"):
@ -184,6 +184,6 @@ let
in
builtins.listToAttrs (
map
(backend: { name = backend; value = makeBitwardenTest backend; })
(backend: { name = backend; value = makeVaultwardenTest backend; })
backends
)

View file

@ -40,7 +40,7 @@ pythonPackages.buildPythonApplication rec {
propagatedBuildInputs = with pythonPackages; [
chromaprint
dateutil
python-dateutil
discid
fasteners
mutagen

View file

@ -1,8 +1,19 @@
{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
{ ripgrep
, git
, fzf
, makeWrapper
, vim_configurable
, vimPlugins
, fetchFromGitHub
, lib
, stdenv
, formats
, runCommand
, spacevim_config ? import ./init.nix
}:
let
format = formats.toml {};
format = formats.toml { };
vim-customized = vim_configurable.customize {
name = "vim";
# Not clear at the moment how to import plugins such that
@ -14,17 +25,18 @@ let
mkdir -p $out
cp ${format.generate "init.toml" spacevim_config} $out/init.toml
'';
in stdenv.mkDerivation rec {
in
stdenv.mkDerivation rec {
pname = "spacevim";
version = "1.6.0";
version = "1.7.0";
src = fetchFromGitHub {
owner = "SpaceVim";
repo = "SpaceVim";
rev = "v${version}";
sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
};
nativeBuildInputs = [ makeWrapper vim-customized];
nativeBuildInputs = [ makeWrapper vim-customized ];
buildInputs = [ vim-customized ];
buildPhase = ''

View file

@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
libLAS proj-datumgrid ]
++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
++ (with python2Packages; [ python python-dateutil wxPython30 numpy ]);
# On Darwin the installer tries to symlink the help files into a system
# directory

View file

@ -12,7 +12,7 @@ let
numpy
psycopg2
chardet
dateutil
python-dateutil
pyyaml
pytz
requests

View file

@ -7,12 +7,12 @@
}:
stdenv.mkDerivation rec {
version = "3.4.1";
version = "3.6.0";
pname = "darktable";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "sha256-f8P4UdqbzXxQU+zQnyGqPrYQO+mKbFj1IBC28iF0lB4=";
sha256 = "sha256:0f8aqwkgw4gs97b5i4ygiqk5zilwq7ax7zwdd31r72zk98cd1g46";
};
nativeBuildInputs = [ cmake ninja llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook ];

View file

@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
homepage = "https://about.draw.io/";
license = licenses.asl20;
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -55,7 +55,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
psutil
pyxdg
arrow
dateutil
python-dateutil
easygui
colour
pymediainfo

View file

@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
description = "Multi-platform password manager";
homepage = "https://1password.com/";
license = licenses.unfree;
maintainers = with maintainers; [ danieldk timstott savannidgerinel ];
maintainers = with maintainers; [ timstott savannidgerinel ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -77,7 +77,7 @@ mkDerivation rec {
cchardet
css-parser
cssselect
dateutil
python-dateutil
dnspython
feedparser
html2text

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "curaengine";
version = "4.9.1";
version = "4.10.0";
src = fetchFromGitHub {
owner = "Ultimaker";
repo = "CuraEngine";
rev = version;
sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
};
nativeBuildInputs = [ cmake ];

View file

@ -20,7 +20,7 @@ buildPythonApplication rec {
'';
propagatedBuildInputs = [
dateutil gflags httplib2 parsedatetime six vobject
python-dateutil gflags httplib2 parsedatetime six vobject
google-api-python-client oauth2client uritemplate
libnotify
];

View file

@ -2,13 +2,13 @@
mkDerivation rec {
pname = "gpxsee";
version = "9.1";
version = "9.2";
src = fetchFromGitHub {
owner = "tumic0";
repo = "GPXSee";
rev = version;
sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
sha256 = "sha256-pU02Eaq6tB7X6EPOo8YAyryJRbSV3KebQv8VELxXaBw=";
};
patches = (substituteAll {

View file

@ -2,13 +2,13 @@
buildGoModule rec {
pname = "hugo";
version = "0.84.3";
version = "0.84.4";
src = fetchFromGitHub {
owner = "gohugoio";
repo = pname;
rev = "v${version}";
sha256 = "sha256-3SbF4JsanNup0JmtEoZlyu3SvMn01r+nhnPgIi/W8pA=";
sha256 = "sha256-nD2UBDSDG6OFfUvDBXCfhOCiJyFMP2pDXSlIESaEfqE=";
};
vendorSha256 = "sha256-ImXTOtN6kQL7Q8IBlmK7+i47cWtyZT0xcnQdCw3NvWM=";

View file

@ -18,7 +18,7 @@ with python3.pkgs; buildPythonApplication rec {
click
click-log
configobj
dateutil
python-dateutil
icalendar
lxml
pkgs.vdirsyncer

View file

@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
homepage = "https://code-industry.net/free-pdf-editor/";
license = licenses.unfreeRedistributable;
platforms = with platforms; [ "x86_64-linux" ];
maintainers = with maintainers; [ cmcdragonkai flokli ];
broken = true;
maintainers = with maintainers; [ cmcdragonkai ];
};
}

View file

@ -0,0 +1,36 @@
{ stdenv
, lib
, fetchFromGitHub
, cmake
, pkg-config
, gtk3
, wrapGAppsHook
, jansson
, libgcrypt
, libzip
, libpng
, libcotp
, zbar
}:
stdenv.mkDerivation rec {
pname = "otpclient";
version = "2.4.4";
src = fetchFromGitHub {
owner = "paolostivanin";
repo = pname;
rev = "v${version}";
sha256 = "0zjvhcx9q8nsf97zikddxriky0kghi4j4i7312s94pl8c7kb4abr";
};
buildInputs = [ gtk3 jansson libgcrypt libzip libpng libcotp zbar ];
nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
meta = with lib; {
description = "Highly secure and easy to use OTP client written in C/GTK that supports both TOTP and HOTP";
homepage = "https://github.com/paolostivanin/OTPClient";
license = licenses.gpl3Only;
maintainers = with maintainers; [ alexbakker ];
};
}

View file

@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
pikepdf
img2pdf
setuptools
dateutil
python-dateutil
];
# incompatible with wrapGAppsHook

View file

@ -5,13 +5,13 @@
}:
let
version = "5.0.1";
version = "5.0.2";
subsurfaceSrc = (fetchFromGitHub {
owner = "Subsurface";
repo = "subsurface";
rev = "v${version}";
sha256 = "01r836ckvrmgprjf4cqxn2n3w5w4pa2fjrhspjndsspic8nwlrwg";
sha256 = "1yay06m8p9qp2ghrg8dxavdq55y09apcgdnb7rihgs3hq86k539n";
fetchSubmodules = true;
});

View file

@ -3,7 +3,7 @@
, buildPythonApplication
, click
, pyfiglet
, dateutil
, python-dateutil
, setuptools
}:
@ -18,7 +18,7 @@ buildPythonApplication rec {
owner = "trehn";
};
propagatedBuildInputs = [ dateutil click pyfiglet setuptools ];
propagatedBuildInputs = [ python-dateutil click pyfiglet setuptools ];
meta = with lib; {
description = "Starts a countdown to or from TIMESPEC";

View file

@ -2,7 +2,7 @@
, lib
, buildPythonApplication
, fetchFromGitHub
, dateutil
, python-dateutil
, pandas
, requests
, lxml
@ -36,7 +36,7 @@ buildPythonApplication rec {
propagatedBuildInputs = [
# from visidata/requirements.txt
# packages not (yet) present in nixpkgs are commented
dateutil
python-dateutil
pandas
requests
lxml

View file

@ -1,4 +1,4 @@
{ lib, fetchurl, buildPythonApplication, dateutil,
{ lib, fetchurl, buildPythonApplication, python-dateutil,
sqlalchemy, setproctitle, icalendar }:
buildPythonApplication rec {
@ -11,7 +11,7 @@ buildPythonApplication rec {
};
propagatedBuildInputs = [
dateutil
python-dateutil
sqlalchemy
setproctitle
icalendar

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "3proxy";
version = "0.9.3";
version = "0.9.4";
src = fetchFromGitHub {
owner = "z3APA3A";
repo = pname;
rev = version;
sha256 = "9aopwyz0U2bYTvx5YWLJo9EE8Xfb51IOguHRJodjpm8=";
sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc=";
};
makeFlags = [

View file

@ -90,11 +90,11 @@ in
stdenv.mkDerivation rec {
pname = "brave";
version = "1.26.67";
version = "1.26.74";
src = fetchurl {
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
sha256 = "Kg6ExXZYdSkyBoivu9h4blytHN9hOc4bUSuFR+1YZOY=";
sha256 = "ULmoUXyPWHCewK4FPP7SX1Ena6n0aM/EWR7ZnMN1ztY=";
};
dontConfigure = true;

View file

@ -62,7 +62,7 @@ mkChromiumDerivation (base: rec {
-e '/\[Desktop Entry\]/a\' \
-e 'StartupWMClass=chromium-browser' \
$out/share/applications/chromium-browser.desktop
'' + lib.optionalString (channel == "dev") ''
'' + lib.optionalString (channel != "stable") ''
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
'';

View file

@ -9,7 +9,7 @@ python3.pkgs.buildPythonApplication rec {
sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
};
propagatedBuildInputs = with python3.pkgs; [ dateutil tornado python-daemon boto3 ];
propagatedBuildInputs = with python3.pkgs; [ python-dateutil tornado python-daemon boto3 ];
# Requires tox, hadoop, and google cloud
doCheck = false;

View file

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "dnscontrol";
version = "3.10.0";
version = "3.10.1";
src = fetchFromGitHub {
owner = "StackExchange";
repo = pname;
rev = "v${version}";
sha256 = "sha256-22wYc6W4a5P9+JW7NW+s85IlQ+tfLhYzDarN6PGkFk4=";
sha256 = "sha256-fYQqH/J027XJPML/qKMpuu2Nxuvb0cyjOu2czLH8SoM=";
};
vendorSha256 = "sha256-TPvO/E/uOyVSMNRQ3zzt15+i0UK0uHvI4qM5PqmHY20=";
vendorSha256 = "sha256-225TR9jTZSGEJZz3csl/pR/v2unUK67l08x5ESQTJzA=";
subPackages = [ "." ];

View file

@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
propagatedBuildInputs = with python3.pkgs; [
beautifulsoup4
dateutil
python-dateutil
feedparser
html5lib
listparser

View file

@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
pynzb
pyparsing
PyRSS2Gen
dateutil
python-dateutil
pyyaml
rebulk
requests

View file

@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
pythonPath = with python3.pkgs; [
pygobject3
pycairo
dateutil
python-dateutil
praw
pillow
mistune

View file

@ -55,7 +55,7 @@ in {
sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
};
propagatedBuildInputs = with pythonPackages; [twisted dateutil];
propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
meta = with lib; {
description = "Some (mainly XMPP-related) additions to twisted";

View file

@ -1,7 +1,7 @@
{ mkDerivation, lib, fetchFromGitHub, callPackage
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
, dee, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
, tl-expected, hunspell, glibmm, webkitgtk
, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
# Transitive dependencies:
@ -23,7 +23,7 @@ let
tg_owt = callPackage ./tg_owt.nix {};
in mkDerivation rec {
pname = "telegram-desktop";
version = "2.8.3";
version = "2.8.4";
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
# Telegram-Desktop with submodules
@ -32,12 +32,10 @@ in mkDerivation rec {
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
sha256 = "1ywxsy3a99sdibipriblbzskmkqbnxwrz3lavfdr134wq8w8rjf7";
sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw=";
};
postPatch = ''
substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
--replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
substituteInPlace Telegram/CMakeLists.txt \
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
'';
@ -49,8 +47,8 @@ in mkDerivation rec {
nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
buildInputs = [
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
dee ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
tl-expected hunspell glibmm webkitgtk
libtgvoip rnnoise abseil-cpp extra-cmake-modules
tg_owt

View file

@ -10,7 +10,7 @@ mkDerivation rec {
owner = "haiwen";
repo = "seafile-client";
rev = "v${version}";
sha256 = "lhdKbR19ScNeezICf7vwZaeJikPjwbqrz42bo4lhxJs=";
sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
};
nativeBuildInputs = [ pkg-config cmake ];

View file

@ -1,5 +1,5 @@
{ lib, fetchFromGitHub, buildPythonApplication, fuse
, appdirs, colorama, dateutil, requests, requests_toolbelt
, appdirs, colorama, python-dateutil, requests, requests_toolbelt
, fusepy, sqlalchemy, setuptools }:
buildPythonApplication rec {
@ -15,7 +15,7 @@ buildPythonApplication rec {
sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp";
};
propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests
propagatedBuildInputs = [ appdirs colorama python-dateutil fusepy requests
requests_toolbelt setuptools sqlalchemy ];
makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];

View file

@ -1,6 +1,6 @@
{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
, gnome, buildPythonApplication, dateutil, pyinotify, pygobject3
, gnome, buildPythonApplication, python-dateutil, pyinotify, pygobject3
, bcrypt, gobject-introspection, gsettings-desktop-schemas
, pango, gdk-pixbuf, atk }:
@ -30,7 +30,7 @@ buildPythonApplication rec {
];
propagatedBuildInputs = [
dateutil pyinotify pygobject3 bcrypt
python-dateutil pyinotify pygobject3 bcrypt
];
patches = [

View file

@ -122,7 +122,7 @@ let
runtimePackages = with python.pkgs; [
dateparser
dateutil
python-dateutil
django
django-cors-headers
django-crispy-forms

View file

@ -122,7 +122,7 @@ python3Packages.buildPythonApplication rec {
openpaperwork-core
pypillowfight
pyxdg
dateutil
python-dateutil
setuptools
];

View file

@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
];
propagatedBuildInputs = with python3.pkgs; [
dateutil
python-dateutil
markdown2
matplotlib
numpy

View file

@ -123,7 +123,7 @@ in stdenv.mkDerivation {
description = "An office suite with a word processor, spreadsheet and presentation program";
homepage = "https://www.softmaker.com/";
license = licenses.unfree;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = [ "x86_64-linux" ];
};
}

View file

@ -5,11 +5,11 @@ let
in
stdenv.mkDerivation rec {
pname = "super-productivity";
version = "6.5.2";
version = "7.2.1";
src = fetchurl {
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
sha256 = "1ivl7chsv9axgk6nqkf580pav651hchi3di0mrp0pylpsqgk6f1f";
sha256 = "93eeb56fe923c48a9384cde0633e98a9d9dc5c0869fce63b9724ff74bb400049";
name = "${pname}-${version}.AppImage";
};

View file

@ -36,7 +36,7 @@ python3Packages.buildPythonApplication rec {
];
propagatedBuildInputs = with python3Packages; [
dateutil
python-dateutil
pygobject3
goocalendar
pycairo

View file

@ -35,10 +35,10 @@ in
stdenv.mkDerivation rec {
pname = "gwyddion";
version = "2.58";
version = "2.59";
src = fetchurl {
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
sha256 = "sha256-APMOJeZt/zp8JvXghKZ5lQFRKWO/4TVDORok8qAgEBk=";
};
nativeBuildInputs = [ pkg-config file ];

View file

@ -1,5 +1,5 @@
{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
, gtk3, libXtst, glib, zlib
, gtk3, libXtst, glib, zlib, wrapGAppsHook
}:
let
@ -25,7 +25,11 @@ in stdenv.mkDerivation rec {
sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gtk3 ];
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
dontWrapGApps = true;
phases = [ "installPhase" ];
@ -36,6 +40,9 @@ in stdenv.mkDerivation rec {
cp -r "$src" "$out/toolbox"
chmod -R +w "$out/toolbox"
fixupPhase
gappsWrapperArgsHook
patchelf \
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
"$out/toolbox/toolbox"
@ -52,7 +59,8 @@ in stdenv.mkDerivation rec {
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
--run "set -x; cd $out/toolbox" \
--add-flags "-data ~/.tla-toolbox" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \
"''${gappsWrapperArgs[@]}"
echo -e "\nCreating TLA Toolbox icons..."
pushd "$src"

View file

@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
let pp = python.pkgs; in ([
pp.numpy pp.scipy pp.scikitimage pp.h5py
pp.matplotlib pp.ipython pp.networkx pp.nose
pp.pandas pp.dateutil pp.protobuf pp.gflags
pp.pandas pp.python-dateutil pp.protobuf pp.gflags
pp.pyyaml pp.pillow pp.six
] ++ lib.optional leveldbSupport pp.leveldb)
);

View file

@ -9,14 +9,14 @@
buildPythonApplication rec {
pname = "glances";
version = "3.1.7";
version = "3.2.0";
disabled = isPyPy;
src = fetchFromGitHub {
owner = "nicolargo";
repo = "glances";
rev = "v${version}";
sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU=";
sha256 = "126xpx8i85giy3hkhqh0qcln9i1qj5bfciaqh9486rkl54xm8zsr";
};
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@ -48,7 +48,7 @@ buildPythonApplication rec {
meta = with lib; {
homepage = "https://nicolargo.github.io/glances/";
description = "Cross-platform curses-based monitoring tool";
changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
license = licenses.lgpl3Only;
maintainers = with maintainers; [ jonringer primeos koral ];
};

View file

@ -1,95 +1,158 @@
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
, re2Support ? true
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
, guiSupport ? false, tk ? null
, fullBuild ? false
, gitSupport ? fullBuild
, guiSupport ? fullBuild, tk
, highlightSupport ? fullBuild
, ApplicationServices
}:
let
inherit (python3Packages) docutils python fb-re2;
inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
in python3Packages.buildPythonApplication rec {
pname = "mercurial";
version = "5.8";
self = python3Packages.buildPythonApplication rec {
pname = "mercurial";
version = "5.8";
src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
};
patches = [
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
(fetchpatch {
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c365850b611490a5fdb235eb1cea310a542c2f84";
sha256 = "1gn3xvahbjdhbglffqpmj559w1bkqqsk70wqcanwv7nh972aqy9g";
})
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
(fetchpatch {
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c8f62920f07a40af3403ba9aefa1dac8a97d53ea";
sha256 = "1kw0xjg2c4jby0ncarjvpa5qafsyl1wzbk6jxls4hnxlxdl53nmn";
})
];
format = "other";
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
sourceRoot = "${pname}-${version}/rust";
} else null;
cargoRoot = if rustSupport then "rust" else null;
propagatedBuildInputs = lib.optional re2Support fb-re2
++ lib.optional gitSupport pygit2
++ lib.optional highlightSupport pygments;
nativeBuildInputs = [ makeWrapper gettext installShellFiles ]
++ lib.optionals rustSupport (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [ docutils ]
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
makeFlags = [ "PREFIX=$(out)" ]
++ lib.optional rustSupport "PURE=--rust";
postInstall = (lib.optionalString guiSupport ''
mkdir -p $out/etc/mercurial
cp contrib/hgk $out/bin
cat >> $out/etc/mercurial/hgrc << EOF
[extensions]
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
EOF
# setting HG so that hgk can be run itself as well (not only hg view)
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
--set HG $out/bin/hg
--prefix PATH : ${tk}/bin "
'') + ''
for i in $(cd $out/bin && ls); do
wrapProgram $out/bin/$i \
$WRAP_TK
done
# copy hgweb.cgi to allow use in apache
mkdir -p $out/share/cgi-bin
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
chmod u+x $out/share/cgi-bin/hgweb.cgi
installShellCompletion --cmd hg \
--bash contrib/bash_completion \
--zsh contrib/zsh_completion
'';
passthru.tests = {};
meta = with lib; {
inherit version;
description = "A fast, lightweight SCM system for very large distributed projects";
homepage = "https://www.mercurial-scm.org";
downloadPage = "https://www.mercurial-scm.org/release/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ eelco lukegb ];
updateWalker = true;
platforms = platforms.unix;
};
};
in
self.overridePythonAttrs (origAttrs: {
passthru = origAttrs.passthru // rec {
# withExtensions takes a function which takes the python packages set and
# returns a list of extensions to install.
#
# for instance: mercurial.withExtension (pm: [ pm.hg-evolve ])
withExtensions = f: let
python = self.python;
mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: {
meta = oldAttrs.meta // {
priority = 50;
};
});
plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ];
env = python.withPackages (ps: plugins);
in stdenv.mkDerivation {
pname = "${self.pname}-with-extensions";
patches = [
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
(fetchpatch {
url = "https://phab.mercurial-scm.org/file/data/l7p2r4zcctcr3pzlybv2/PHID-FILE-bwjzxlz6sbegk3s4irik/D10638.diff";
sha256 = "0mfi324is02l7cnd3j0gbmg5rpyyqn3afg3f73flnfwmz5njqa5f";
})
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
(fetchpatch {
url = "https://phab.mercurial-scm.org/file/data/v53nhburhtkhpccyecei/PHID-FILE-6v34oll6r2gkqo4ng5nt/D10639.diff";
sha256 = "0h5ilrd2x1789fr6sf4k1mcvxdh0xdyr94yawdacw87v3x12c8cb";
})
];
inherit (self) src version meta;
format = "other";
buildInputs = self.buildInputs ++ self.propagatedBuildInputs;
nativeBuildInputs = self.nativeBuildInputs;
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
phases = [ "installPhase" "installCheckPhase" ];
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
inherit src;
name = "${pname}-${version}";
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
sourceRoot = "${pname}-${version}/rust";
} else null;
cargoRoot = if rustSupport then "rust" else null;
installPhase = ''
runHook preInstall
propagatedBuildInputs = lib.optional re2Support fb-re2;
nativeBuildInputs = [ makeWrapper gettext ]
++ lib.optionals rustSupport (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [ docutils ]
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
mkdir -p $out/bin
makeFlags = [ "PREFIX=$(out)" ]
++ lib.optional rustSupport "PURE=--rust";
for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
for bin in $bindir/*; do
ln -s ${env}/bin/$(basename $bin) $out/bin/
done
done
postInstall = (lib.optionalString guiSupport ''
mkdir -p $out/etc/mercurial
cp contrib/hgk $out/bin
cat >> $out/etc/mercurial/hgrc << EOF
[extensions]
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
EOF
# setting HG so that hgk can be run itself as well (not only hg view)
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
--set HG $out/bin/hg
--prefix PATH : ${tk}/bin "
'') + ''
for i in $(cd $out/bin && ls); do
wrapProgram $out/bin/$i \
$WRAP_TK
done
ln -s ${self}/share $out/share
# copy hgweb.cgi to allow use in apache
mkdir -p $out/share/cgi-bin
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
chmod u+x $out/share/cgi-bin/hgweb.cgi
runHook postInstall
'';
# install bash/zsh completions
install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
'';
installCheckPhase = ''
runHook preInstallCheck
meta = with lib; {
inherit version;
description = "A fast, lightweight SCM system for very large distributed projects";
homepage = "https://www.mercurial-scm.org";
downloadPage = "https://www.mercurial-scm.org/release/";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ eelco lukegb ];
updateWalker = true;
platforms = platforms.unix;
};
}
$out/bin/hg help >/dev/null || exit 1
runHook postInstallCheck
'';
};
tests = origAttrs.passthru.tests // {
withExtensions = withExtensions (pm: [ pm.hg-evolve ]);
};
};
})

View file

@ -1,25 +1,16 @@
{ lib, fetchurl, python3Packages
, mercurial, qt5
}@args:
}:
let
tortoisehgSrc = fetchurl rec {
meta.name = "tortoisehg-${meta.version}";
meta.version = "5.6";
meta.version = "5.8";
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
sha256 = "154q7kyrdk045wx7rsblzx41k3wbvp2f40kzkxmiiaa5n35srsm3";
};
tortoiseMercurial = (mercurial.override {
rustSupport = false;
re2Support = lib.versionAtLeast tortoisehgSrc.meta.version "5.8";
}).overridePythonAttrs (old: rec {
inherit (tortoisehgSrc.meta) version;
src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
};
patches = [];
});
# Extension point for when thg's mercurial is lagging behind mainline.
tortoiseMercurial = mercurial;
in python3Packages.buildPythonApplication {
inherit (tortoisehgSrc.meta) name version;
@ -49,7 +40,7 @@ in python3Packages.buildPythonApplication {
meta = {
description = "Qt based graphical tool for working with Mercurial";
homepage = "https://tortoisehg.bitbucket.io/";
license = lib.licenses.gpl2;
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ danbst ];
};

View file

@ -72,6 +72,6 @@ in mkDerivation {
license = licenses.unfree;
homepage = "http://makemkv.com";
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ danieldk titanous ];
maintainers = with maintainers; [ titanous ];
};
}

View file

@ -1,4 +1,4 @@
{ lib, buildPythonApplication, fetchFromGitHub, pycurl, dateutil, configobj, sqlalchemy, sdnotify, flask }:
{ lib, buildPythonApplication, fetchFromGitHub, pycurl, python-dateutil, configobj, sqlalchemy, sdnotify, flask }:
buildPythonApplication rec {
pname = "pyca";
@ -13,7 +13,7 @@ buildPythonApplication rec {
propagatedBuildInputs = [
pycurl
dateutil
python-dateutil
configobj
sqlalchemy
sdnotify

View file

@ -39,7 +39,7 @@ python37Packages.buildPythonApplication rec {
cairocffi-xcffib
setuptools
setuptools-scm
dateutil
python-dateutil
dbus-python
mpd2
psutil

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub
, meson, ninja, pkg-config, scdoc
, meson, ninja, pkg-config, scdoc, wayland-scanner
, wayland, wayland-protocols, systemd
}:
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
--replace "version: '1.5'" "version: '${version}'"
'';
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
buildInputs = [ wayland wayland-protocols systemd ];
mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];

View file

@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub
, meson, ninja, pkg-config, scdoc
, meson, ninja, pkg-config, scdoc, wayland-scanner
, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
}:
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
--replace "version: '1.4'" "version: '${version}'"
'';
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
mesonFlags = [

View file

@ -117,7 +117,8 @@ rec {
--tmpdir=$TMPDIR \
--override-os ${os} \
--override-arch ${arch} \
copy "$sourceURL" "docker-archive://$out:$destNameTag"
copy "$sourceURL" "docker-archive://$out:$destNameTag" \
| cat # pipe through cat to force-disable progress bar
'';
# We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.

View file

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "5.000";
version = "6.000";
in
fetchzip rec {
name = "charis-sil-${version}";
@ -14,7 +14,7 @@ in
unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
'';
sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
sha256 = "sha256-eMmC893rI42qzZVCI17i9XSAbQzXCK2fHVe5Pf1/VnM=";
meta = with lib; {
homepage = "https://software.sil.org/charis";

View file

@ -1,7 +1,7 @@
{ lib, fetchzip }:
let
version = "4.47.0";
version = "4.49.1";
in fetchzip {
name = "terminus-font-ttf-${version}";
@ -18,7 +18,7 @@ in fetchzip {
install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
'';
sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
meta = with lib; {
description = "A clean fixed width TTF font";

View file

@ -38,6 +38,6 @@ stdenvNoCC.mkDerivation {
description = "A set of default and supplemental wallpapers for Fedora";
license = licenses.cc-by-sa-40;
platforms = platforms.unix;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
};
}

View file

@ -0,0 +1,66 @@
{ lib, stdenv, fetchFromGitHub, librime }:
stdenv.mkDerivation {
pname = "rime-data";
version = "0.38.20210628";
src = fetchFromGitHub {
owner = "rime";
repo = "plum";
rev = "0b835e347cad9c2d7038cfe82df5b5d1fe1c0327";
sha256 = "0mja4wyazxdc6fr7pzij5ah4rzwxv4s12s64vfn5ikx1ias1f8ib";
};
buildInputs = [ librime ];
buildFlags = [ "all" ];
makeFlags = [ "PREFIX=$(out)" ];
preBuild = import ./fetchSchema.nix fetchFromGitHub;
postPatch = ''
# Disable git operations.
sed -i /fetch_or_update_package$/d scripts/install-packages.sh
'';
meta = with lib; {
description = "Schema data of Rime Input Method Engine";
longDescription = ''
Rime-data provides schema data for Rime Input Method Engine.
'';
homepage = "https://rime.im";
license = with licenses; [
# rime-array
# rime-combo-pinyin
# rime-double-pinyin
# rime-middle-chinese
# rime-scj
# rime-soutzoe
# rime-stenotype
# rime-wugniu
gpl3Only
# plum
# rime-bopomofo
# rime-cangjie
# rime-emoji
# rime-essay
# rime-ipa
# rime-jyutping
# rime-luna-pinyin
# rime-prelude
# rime-quick
# rime-stroke
# rime-terra-pinyin
# rime-wubi
lgpl3Only
# rime-pinyin-simp
asl20
# rime-cantonese
cc-by-40
];
maintainers = [ maintainers.pengmeiyu ];
};
}

View file

@ -0,0 +1,137 @@
# Generated using generateFetchSchema.sh
fetchFromGitHub:
''
mkdir -p package/rime
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-array";
rev = "8514193da939bc8888ad6a744f5e5921d4baebc7";
sha256 = "1fy7pcq7d8m0wzkkhklmv6p370ms9lqc1zpndyy2xjamzrbb9l83";
}} package/rime/array
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-bopomofo";
rev = "c7618f4f5728e1634417e9d02ea50d82b71956ab";
sha256 = "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186";
}} package/rime/bopomofo
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-cangjie";
rev = "8dfad9e537f18821b71ba28773315d9c670ae245";
sha256 = "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby";
}} package/rime/cangjie
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-cantonese";
rev = "b6f800c74eb639816d56d0d5601aaa96c8963178";
sha256 = "1a4ksacbz8l30y3y5c017d0hzwik8knplglb3yswy7l4hsvaanyh";
}} package/rime/cantonese
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-combo-pinyin";
rev = "a84065a86b272c76215215bd6f03c506b6e7097c";
sha256 = "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87";
}} package/rime/combo-pinyin
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-double-pinyin";
rev = "69bf85d4dfe8bac139c36abbd68d530b8b6622ea";
sha256 = "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak";
}} package/rime/double-pinyin
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-emoji";
rev = "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1";
sha256 = "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122";
}} package/rime/emoji
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-essay";
rev = "9db2e77305e75798baf3ec8dcf1f82785b5e1be9";
sha256 = "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22";
}} package/rime/essay
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-ipa";
rev = "22b71710e029bcb412e9197192a638ab11bc2abf";
sha256 = "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k";
}} package/rime/ipa
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-jyutping";
rev = "1e24baa6998815c716c581effe8ec65ee87c4e8c";
sha256 = "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl";
}} package/rime/jyutping
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-luna-pinyin";
rev = "623adb022b094d540218b287c2e601509eee3347";
sha256 = "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz";
}} package/rime/luna-pinyin
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-middle-chinese";
rev = "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0";
sha256 = "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph";
}} package/rime/middle-chinese
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-pinyin-simp";
rev = "b0e84cda02c613ebdedc127a26131b3800f45a8e";
sha256 = "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094";
}} package/rime/pinyin-simp
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-prelude";
rev = "3de303ffaa731dba07b0462ce59f4767e1219ad2";
sha256 = "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p";
}} package/rime/prelude
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-quick";
rev = "3fe5911ba608cb2df1b6301b76ad1573bd482a76";
sha256 = "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9";
}} package/rime/quick
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-scj";
rev = "cab5a0858765eff0553dd685a2d61d5536e9149c";
sha256 = "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk";
}} package/rime/scj
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-soutzoe";
rev = "beeaeca72d8e17dfd1e9af58680439e9012987dc";
sha256 = "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc";
}} package/rime/soutzoe
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-stenotype";
rev = "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88";
sha256 = "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d";
}} package/rime/stenotype
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-stroke";
rev = "ea8576d1accd6fda339e96b415caadb56e2a07d1";
sha256 = "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r";
}} package/rime/stroke
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-terra-pinyin";
rev = "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b";
sha256 = "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads";
}} package/rime/terra-pinyin
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-wubi";
rev = "f1876f08f1d4a9696395be0070c0e8e4353c44cb";
sha256 = "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk";
}} package/rime/wubi
ln -sv ${fetchFromGitHub {
owner = "rime";
repo = "rime-wugniu";
rev = "abd1ee98efbf170258fcf43875c21a4259e00b61";
sha256 = "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq";
}} package/rime/wugniu
''

View file

@ -0,0 +1,43 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nix-prefetch-git -p jq
imlist=(
array
bopomofo
cangjie
cantonese
combo-pinyin
double-pinyin
emoji
essay
ipa
jyutping
luna-pinyin
middle-chinese
pinyin-simp
prelude
quick
scj
soutzoe
stenotype
stroke
terra-pinyin
wubi
wugniu
)
echo "# Generated using generateFetchSchema.sh"
echo "fetchFromGitHub:"
echo \'\'
echo "mkdir -p package/rime"
for im in ${imlist[@]}; do
tempFile=$(mktemp)
echo "ln -sv \${fetchFromGitHub {"
echo " owner = \"rime\";"
echo " repo = \"rime-$im\";"
nix-prefetch-git --quiet https://github.com/rime/rime-$im \
| jq '{ rev: .rev, sha256: .sha256 }' \
| jq -r 'to_entries | map(" \(.key) = \"\(.value)\";") | .[]'
echo "}} package/rime/$im"
done
echo \'\'

View file

@ -12,13 +12,13 @@
stdenv.mkDerivation rec {
pname = "bulky";
version = "1.6";
version = "1.7";
src = fetchFromGitHub {
owner = "linuxmint";
repo = "bulky";
rev = version;
sha256 = "sha256-cO6AhQ0g1N43du74fljfI1M68jb9N04FKUyzjbzC3K0=";
sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
};
nativeBuildInputs = [

View file

@ -339,8 +339,6 @@ lib.makeScope pkgs.newScope (self: with self; {
inherit (pkgs) gnome-user-docs; # added 2019-11-20
inherit (pkgs) gegl_0_4; # added 2019-10-31
inherit (pkgs) gjs; # added 2019-01-05
inherit (pkgs) yelp-tools; # added 2019-11-20

View file

@ -1,12 +1,12 @@
{ lib, buildRebar3, fetchFromGitHub }:
buildRebar3 rec {
name = "rebar3_nix";
version = "0.1.0";
version = "0.1.1";
src = fetchFromGitHub {
owner = "erlang-nix";
repo = name;
rev = "v${version}";
sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf";
sha256 = "10ijc06qvv5hqv0qy3w7mbv9pshdb8bvy0f3phr1vd5hksbk731y";
};
meta = {

View file

@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
homepage = "https://llvm.org/";
license = with licenses; [ ncsa ];
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
description = "ROCm fork of the LLVM Linker";
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
license = licenses.ncsa;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
description = "ROCm fork of the LLVM compiler infrastructure";
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
license = with licenses; [ ncsa ];
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -53,6 +53,7 @@ in
, enableParallelBuilding ? true
, maintainers ? null
, changelog ? null
, mainProgram ? null
, doCoverage ? false
, doHaddock ? !(ghc.isHaLVM or false)
, passthru ? {}
@ -666,6 +667,7 @@ stdenv.mkDerivation ({
// optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
// optionalAttrs (args ? badPlatforms) { inherit badPlatforms; }
// optionalAttrs (args ? changelog) { inherit changelog; }
// optionalAttrs (args ? mainProgram) { inherit mainProgram; }
;
}

View file

@ -85,6 +85,6 @@ in stdenv.mkDerivation rec {
changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
license = licenses.mit;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = with maintainers; [ danieldk Flakebi ];
maintainers = with maintainers; [ Flakebi ];
};
}

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "armadillo";
version = "10.5.2";
version = "10.5.3";
src = fetchurl {
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
sha256 = "sha256-Y/I87cVIpelASBblDPj4/MSSqxqtxsDO8wv8Kvzq2V8=";
sha256 = "sha256-5sUdjVKm94ucZFn2mGE1CT4O5wWmdDBxEPYXXyzV7jc=";
};
nativeBuildInputs = [ cmake ];

View file

@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "babl";
version = "0.1.86";
version = "0.1.88";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-Cz9ZUVmtGyFs1ynAUEw6X2z3gMZB9Nxj/BZPPAOCyPA=";
sha256 = "sha256-Tw1/SqoLsucl80mt97NRqVfZ+ybVVdmJWnr4FrQWcDk=";
};
nativeBuildInputs = [

View file

@ -5,13 +5,13 @@
stdenv.mkDerivation rec {
pname = "duckdb";
version = "0.2.2";
version = "0.2.7";
src = fetchFromGitHub {
owner = "cwida";
repo = "duckdb";
rev = "v${version}";
sha256 = "1pzz2zjzpvji5am21vd9kjxj0pnxsjmrsfqrym9h2rk2mi7p2cx8";
sha256 = "0cnqq2n1424fqg7gfyvrwkk6nvjal2fm5n08xc8q28ynyhq4sfmj";
};
nativeBuildInputs = [ cmake ];

View file

@ -4,6 +4,7 @@
, pkg-config
, meson
, ninja
, wayland-scanner
, libX11
, mesa
, libGL
@ -51,10 +52,15 @@ in stdenv.mkDerivation rec {
sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
meson
ninja
pkg-config
wayland-scanner
];
buildInputs = [

View file

@ -1,121 +0,0 @@
{ lib
, stdenv
, fetchurl
, pkg-config
, vala
, gobject-introspection
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, glib
, babl
, libpng
, cairo
, libjpeg
, librsvg
, lensfun
, libspiro
, maxflow
, netsurf
, pango
, poly2tri-c
, poppler
, bzip2
, json-glib
, gettext
, meson
, ninja
, libraw
, gexiv2
, libwebp
, luajit
, openexr
, OpenCL
, suitesparse
}:
stdenv.mkDerivation rec {
pname = "gegl";
version = "0.4.30";
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev";
src = fetchurl {
url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
};
nativeBuildInputs = [
pkg-config
gettext
meson
ninja
vala
gobject-introspection
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
];
buildInputs = [
libpng
cairo
libjpeg
librsvg
lensfun
libspiro
maxflow
netsurf.libnsgif
pango
poly2tri-c
poppler
bzip2
libraw
libwebp
gexiv2
luajit
openexr
suitesparse
] ++ lib.optional stdenv.isDarwin OpenCL;
# for gegl-4.0.pc
propagatedBuildInputs = [
glib
json-glib
babl
];
mesonFlags = [
"-Ddocs=true"
"-Dmrg=disabled" # not sure what that is
"-Dsdl2=disabled"
"-Dpygobject=disabled"
"-Dlibav=disabled"
"-Dlibv4l=disabled"
"-Dlibv4l2=disabled"
# Disabled due to multiple vulnerabilities, see
# https://github.com/NixOS/nixpkgs/pull/73586
"-Djasper=disabled"
];
# TODO: Fix missing math symbols in gegl seamless clone.
# It only appears when we use packaged poly2tri-c instead of vendored one.
NIX_CFLAGS_COMPILE = "-lm";
postPatch = ''
chmod +x tests/opencl/opencl_test.sh
patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
'';
# tests fail to connect to the com.apple.fonts daemon in sandboxed mode
doCheck = !stdenv.isDarwin;
meta = with lib; {
description = "Graph-based image processing framework";
homepage = "https://www.gegl.org";
license = licenses.lgpl3Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
};
}

View file

@ -1,43 +1,115 @@
{ lib, stdenv
{ lib
, stdenv
, fetchurl
, pkg-config
, vala
, gobject-introspection
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, glib
, babl
, libpng
, cairo
, libjpeg
, librsvg
, lensfun
, libspiro
, maxflow
, netsurf
, pango
, gtk2
, poly2tri-c
, poppler
, bzip2
, intltool
, libintl
, OpenGL ? null }:
, json-glib
, gettext
, meson
, ninja
, libraw
, gexiv2
, libwebp
, luajit
, openexr
, OpenCL
, suitesparse
}:
stdenv.mkDerivation rec {
pname = "gegl";
version = "0.2.0";
version = "0.4.30";
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev";
src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gegl/0.2/${pname}-${version}.tar.bz2";
sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426";
url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
};
patches = [( fetchurl {
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/"
+ "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9";
sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59";
name = "CVE-2012-4433.patch";
})];
nativeBuildInputs = [
pkg-config
gettext
meson
ninja
vala
gobject-introspection
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
];
# needs fonts otherwise don't know how to pass them
configureFlags = [ "--disable-docs" ];
buildInputs = [
libpng
cairo
libjpeg
librsvg
lensfun
libspiro
maxflow
netsurf.libnsgif
pango
poly2tri-c
poppler
bzip2
libraw
libwebp
gexiv2
luajit
openexr
suitesparse
] ++ lib.optional stdenv.isDarwin OpenCL;
buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk2 bzip2 intltool libintl ]
++ lib.optional stdenv.isDarwin OpenGL;
# for gegl-4.0.pc
propagatedBuildInputs = [
glib
json-glib
babl
];
nativeBuildInputs = [ pkg-config ];
mesonFlags = [
"-Ddocs=true"
"-Dmrg=disabled" # not sure what that is
"-Dsdl2=disabled"
"-Dpygobject=disabled"
"-Dlibav=disabled"
"-Dlibv4l=disabled"
"-Dlibv4l2=disabled"
# Disabled due to multiple vulnerabilities, see
# https://github.com/NixOS/nixpkgs/pull/73586
"-Djasper=disabled"
];
doCheck = false; # fails 3 out of 19 tests
# TODO: Fix missing math symbols in gegl seamless clone.
# It only appears when we use packaged poly2tri-c instead of vendored one.
NIX_CFLAGS_COMPILE = "-lm";
postPatch = ''
chmod +x tests/opencl/opencl_test.sh
patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
'';
# tests fail to connect to the com.apple.fonts daemon in sandboxed mode
doCheck = !stdenv.isDarwin;
meta = with lib; {
description = "Graph-based image processing framework";

View file

@ -0,0 +1,22 @@
{ stdenv, lib, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "libbaseencode";
version = "1.0.11";
src = fetchFromGitHub {
owner = "paolostivanin";
repo = pname;
rev = "v${version}";
sha256 = "1f52yh052z8k90d1ag6nk01p1gf4i1zxp1daw8mashs8avqr2m7g";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "Library written in C for encoding and decoding data using base32 or base64 (RFC-4648)";
homepage = "https://github.com/paolostivanin/libbaseencode";
license = licenses.asl20;
maintainers = with maintainers; [ alexbakker ];
};
}

View file

@ -0,0 +1,23 @@
{ stdenv, lib, fetchFromGitHub, cmake, pkg-config, libgcrypt, libbaseencode }:
stdenv.mkDerivation rec {
pname = "libcotp";
version = "1.2.3";
src = fetchFromGitHub {
owner = "paolostivanin";
repo = pname;
rev = "v${version}";
sha256 = "1qq4shwiz1if9vys052dnsbm4dfw1ynlj6nsb0v4zjly3ndspfsk";
};
buildInputs = [ libbaseencode libgcrypt ];
nativeBuildInputs = [ cmake pkg-config ];
meta = with lib; {
description = "C library that generates TOTP and HOTP";
homepage = "https://github.com/paolostivanin/libcotp";
license = licenses.asl20;
maintainers = with maintainers; [ alexbakker ];
};
}

View file

@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "libvmaf";
version = "2.1.1";
version = "2.2.0";
src = fetchFromGitHub {
owner = "netflix";
repo = "vmaf";
rev = "v${version}";
sha256 = "0dynk1pmsyf23vfxljaazqkr27vfrvhj3dyjzm06zxpzsn59aif3";
sha256 = "1jlmivmdzlhizljbmsvqqxnhjfyjh8zxyf5xv6j040vbfj4mf14f";
};
sourceRoot = "source/libvmaf";

View file

@ -8,13 +8,13 @@
stdenv.mkDerivation rec {
pname = "libxlsxwriter";
version = "1.0.6";
version = "1.0.8";
src = fetchFromGitHub {
owner = "jmcnamara";
repo = "libxlsxwriter";
rev = "RELEASE_${version}";
sha256 = "03fdcbm0xnkxwv6fir4yy4x9q2p5h08j099w9xh5gc2ni7ygjlyx";
sha256 = "1z9bkg0pfkzxbpj2rys4mx9wmcxyjjqsg0nbiaabsg455q00plki";
};
nativeBuildInputs = [

View file

@ -1,5 +1,5 @@
{
stdenv, lib, fetchFromGitHub,
stdenv, lib, fetchFromGitHub, symlinkJoin,
cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
glew, freeglut, # Only required on Linux
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ expat libyamlcpp ilmbase pystring ]
nativeBuildInputs = [ cmake (symlinkJoin { name = "expat"; paths = [ expat.out expat.dev ]; }) ];
buildInputs = [ expat.out libyamlcpp ilmbase pystring ]
++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]

View file

@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
description = "Radeon Open Compute common language runtime";
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
license = licenses.mit;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
# rocclr seems to have some AArch64 ifdefs, but does not seem
# to be supported yet by the build infrastructure. Recheck in
# the future.

View file

@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
description = "APIs for compiling and inspecting AMDGPU code objects";
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
license = licenses.ncsa;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

View file

@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
description = "Set of AMD-specific device-side language runtime libraries";
homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
license = licenses.ncsa;
maintainers = with maintainers; [ danieldk ];
maintainers = with maintainers; [ ];
platforms = platforms.linux;
};
}

Some files were not shown because too many files have changed in this diff Show more