Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2021-07-04 00:05:27 +00:00 committed by GitHub
commit 015c6d73ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
187 changed files with 2098 additions and 898 deletions

View File

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

View File

@ -4061,6 +4061,12 @@
github = "gytis-ivaskevicius"; github = "gytis-ivaskevicius";
githubId = 23264966; githubId = 23264966;
}; };
hagl = {
email = "harald@glie.be";
github = "hagl";
githubId = 1162118;
name = "Harald Gliebe";
};
hakuch = { hakuch = {
email = "hakuch@gmail.com"; email = "hakuch@gmail.com";
github = "hakuch"; github = "hakuch";
@ -10638,6 +10644,12 @@
github = "totoroot"; github = "totoroot";
githubId = 39650930; githubId = 39650930;
}; };
ToxicFrog = {
email = "toxicfrog@ancilla.ca";
github = "ToxicFrog";
githubId = 90456;
name = "Rebecca (Bex) Kelly";
};
travisbhartwell = { travisbhartwell = {
email = "nafai@travishartwell.net"; email = "nafai@travishartwell.net";
github = "travisbhartwell"; 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). : 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". 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.) 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> </listitem>
</varlistentry> </varlistentry>
</variablelist> </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> <para>
Notice that for <literal>boot.shell_on_fail</literal>, Notice that for <literal>boot.shell_on_fail</literal>,
<literal>boot.debug1</literal>, <literal>boot.debug1</literal>,

View File

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

View File

@ -25,6 +25,15 @@
<section xml:id="sec-release-21.11-new-services"> <section xml:id="sec-release-21.11-new-services">
<title>New Services</title> <title>New Services</title>
<itemizedlist> <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> <listitem>
<para> <para>
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>, <link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
@ -64,7 +73,7 @@
<listitem> <listitem>
<para> <para>
The <literal>staticjinja</literal> package has been upgraded 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> </para>
</listitem> </listitem>
<listitem> <listitem>
@ -339,6 +348,116 @@
release instead of the old 2.31.0 version. release instead of the old 2.31.0 version.
</para> </para>
</listitem> </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> </itemizedlist>
</section> </section>
<section xml:id="sec-release-21.11-notable-changes"> <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: 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). - [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). 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. - 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} ## 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). - [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). - [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} ## 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). - `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 * The `libwnck` package now defaults to the 3.x release instead of the
old 2.31.0 version. 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} ## 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. - 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. # Add Memtest86+ to the CD.
boot.loader.grub.memtest86.enable = true; 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"; system.stateVersion = mkDefault "18.03";
} }

View File

@ -260,6 +260,7 @@
./services/backup/bacula.nix ./services/backup/bacula.nix
./services/backup/borgbackup.nix ./services/backup/borgbackup.nix
./services/backup/borgmatic.nix ./services/backup/borgmatic.nix
./services/backup/btrbk.nix
./services/backup/duplicati.nix ./services/backup/duplicati.nix
./services/backup/duplicity.nix ./services/backup/duplicity.nix
./services/backup/mysql-backup.nix ./services/backup/mysql-backup.nix
@ -874,7 +875,6 @@
./services/search/hound.nix ./services/search/hound.nix
./services/search/kibana.nix ./services/search/kibana.nix
./services/search/solr.nix ./services/search/solr.nix
./services/security/bitwarden_rs/default.nix
./services/security/certmgr.nix ./services/security/certmgr.nix
./services/security/cfssl.nix ./services/security/cfssl.nix
./services/security/clamav.nix ./services/security/clamav.nix
@ -900,6 +900,7 @@
./services/security/torsocks.nix ./services/security/torsocks.nix
./services/security/usbguard.nix ./services/security/usbguard.nix
./services/security/vault.nix ./services/security/vault.nix
./services/security/vaultwarden/default.nix
./services/security/yubikey-agent.nix ./services/security/yubikey-agent.nix
./services/system/cloud-init.nix ./services/system/cloud-init.nix
./services/system/dbus.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.no-auth "no-auth"}
${lib.optionalString cfg.use-auth-secret "use-auth-secret"} ${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 != 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} realm=${cfg.realm}
${lib.optionalString cfg.no-udp "no-udp"} ${lib.optionalString cfg.no-udp "no-udp"}
${lib.optionalString cfg.no-tcp "no-tcp"} ${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'. 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 { realm = mkOption {
type = types.str; type = types.str;
default = config.networking.hostName; default = config.networking.hostName;
@ -293,42 +301,63 @@ in {
}; };
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable (mkMerge ([
users.users.turnserver = { assertions = [
{ uid = config.ids.uids.turnserver; { assertion = cfg.static-auth-secret != null -> cfg.static-auth-secret-file == null ;
description = "coturn TURN server user"; message = "static-auth-secret and static-auth-secret-file cannot be set at the same time";
}; }
users.groups.turnserver = ];}
{ gid = config.ids.gids.turnserver;
members = [ "turnserver" ];
};
systemd.services.coturn = { {
description = "coturn TURN server"; users.users.turnserver =
after = [ "network-online.target" ]; { uid = config.ids.uids.turnserver;
wants = [ "network-online.target" ]; description = "coturn TURN server user";
wantedBy = [ "multi-user.target" ]; };
users.groups.turnserver =
{ gid = config.ids.gids.turnserver;
members = [ "turnserver" ];
};
unitConfig = { systemd.services.coturn = let
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)"; runConfig = "/run/coturn/turnserver.cfg";
}; in {
description = "coturn TURN server";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = { unitConfig = {
Type = "simple"; Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}"; };
RuntimeDirectory = "turnserver";
User = "turnserver"; preStart = ''
Group = "turnserver"; cat ${configFile} > ${runConfig}
AmbientCapabilities = ${optionalString (cfg.static-auth-secret-file != null) ''
mkIf ( STATIC_AUTH_SECRET="$(head -n1 ${cfg.static-auth-secret-file} || :)"
cfg.listening-port < 1024 || sed -e "s,#static-auth-secret#,$STATIC_AUTH_SECRET,g" \
cfg.alt-listening-port < 1024 || -i ${runConfig}
cfg.tls-listening-port < 1024 || '' }
cfg.alt-tls-listening-port < 1024 || chmod 640 ${runConfig}
cfg.min-port < 1024 '';
) "cap_net_bind_service"; serviceConfig = {
Restart = "on-abort"; 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 #!/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 if ! mkdir -p "$BACKUP_FOLDER"; then
echo "Could not create backup folder '$BACKUP_FOLDER'" >&2 echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
exit 1 exit 1

View File

@ -3,9 +3,9 @@
with lib; with lib;
let let
cfg = config.services.bitwarden_rs; cfg = config.services.vaultwarden;
user = config.users.users.bitwarden_rs.name; user = config.users.users.vaultwarden.name;
group = config.users.groups.bitwarden_rs.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). # Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
nameToEnvVar = name: nameToEnvVar = name:
@ -26,22 +26,26 @@ let
if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else [] if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
) cfg.config)); ) cfg.config));
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") { 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; } // 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 { in {
options.services.bitwarden_rs = with types; { imports = [
enable = mkEnableOption "bitwarden_rs"; (mkRenamedOptionModule [ "services" "bitwarden_rs" ] [ "services" "vaultwarden" ])
];
options.services.vaultwarden = with types; {
enable = mkEnableOption "vaultwarden";
dbBackend = mkOption { dbBackend = mkOption {
type = enum [ "sqlite" "mysql" "postgresql" ]; type = enum [ "sqlite" "mysql" "postgresql" ];
default = "sqlite"; default = "sqlite";
description = '' description = ''
Which database backend bitwarden_rs will be using. Which database backend vaultwarden will be using.
''; '';
}; };
@ -49,7 +53,7 @@ in {
type = nullOr str; type = nullOr str;
default = null; default = null;
description = '' 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 = '' 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) therefore the names are converted from camel case (e.g. disable2FARemember)
to upper case snake case (e.g. DISABLE_2FA_REMEMBER). to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
In this conversion digits (0-9) are handled just like upper case characters, 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. 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 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 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 { environmentFile = mkOption {
type = with types; nullOr path; type = with types; nullOr path;
default = null; default = null;
example = "/root/bitwarden_rs.env"; example = "/root/vaultwarden.env";
description = '' description = ''
Additional environment file as defined in <citerefentry> Additional environment file as defined in <citerefentry>
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum> <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. 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 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"; message = "Backups for database backends other than sqlite will need customization";
} ]; } ];
users.users.bitwarden_rs = { users.users.vaultwarden = {
inherit group; inherit group;
isSystemUser = true; isSystemUser = true;
}; };
users.groups.bitwarden_rs = { }; users.groups.vaultwarden = { };
systemd.services.bitwarden_rs = { systemd.services.vaultwarden = {
aliases = [ "bitwarden_rs" ];
after = [ "network.target" ]; after = [ "network.target" ];
path = with pkgs; [ openssl ]; path = with pkgs; [ openssl ];
serviceConfig = { serviceConfig = {
User = user; User = user;
Group = group; Group = group;
EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile; EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
ExecStart = "${bitwarden_rs}/bin/bitwarden_rs"; ExecStart = "${vaultwarden}/bin/vaultwarden";
LimitNOFILE = "1048576"; LimitNOFILE = "1048576";
PrivateTmp = "true"; PrivateTmp = "true";
PrivateDevices = "true"; PrivateDevices = "true";
@ -131,15 +136,16 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
}; };
systemd.services.backup-bitwarden_rs = mkIf (cfg.backupDir != null) { systemd.services.backup-vaultwarden = mkIf (cfg.backupDir != null) {
description = "Backup bitwarden_rs"; aliases = [ "backup-bitwarden_rs" ];
description = "Backup vaultwarden";
environment = { environment = {
DATA_FOLDER = "/var/lib/bitwarden_rs"; DATA_FOLDER = "/var/lib/bitwarden_rs";
BACKUP_FOLDER = cfg.backupDir; BACKUP_FOLDER = cfg.backupDir;
}; };
path = with pkgs; [ sqlite ]; path = with pkgs; [ sqlite ];
serviceConfig = { serviceConfig = {
SyslogIdentifier = "backup-bitwarden_rs"; SyslogIdentifier = "backup-vaultwarden";
Type = "oneshot"; Type = "oneshot";
User = mkDefault user; User = mkDefault user;
Group = mkDefault group; Group = mkDefault group;
@ -148,12 +154,13 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
}; };
systemd.timers.backup-bitwarden_rs = mkIf (cfg.backupDir != null) { systemd.timers.backup-vaultwarden = mkIf (cfg.backupDir != null) {
description = "Backup bitwarden_rs on time"; aliases = [ "backup-bitwarden_rs" ];
description = "Backup vaultwarden on time";
timerConfig = { timerConfig = {
OnCalendar = mkDefault "23:00"; OnCalendar = mkDefault "23:00";
Persistent = "true"; Persistent = "true";
Unit = "backup-bitwarden_rs.service"; Unit = "backup-vaultwarden.service";
}; };
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
}; };

View File

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

View File

@ -621,6 +621,8 @@ in
Whether to allow TRIM requests to the underlying device. This option Whether to allow TRIM requests to the underlying device. This option
has security implications; please read the LUKS documentation before has security implications; please read the LUKS documentation before
activating it. activating it.
This option is incompatible with authenticated encryption (dm-crypt
stacked over dm-integrity).
''; '';
}; };

View File

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

110
nixos/tests/btrbk.nix Normal file
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")
'';
})

29
nixos/tests/coturn.nix Normal file
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: # 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 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 # * Have the bw cli log in and read that password from the vault
# #
@ -24,8 +24,8 @@ let
storedPassword = "seeeecret"; storedPassword = "seeeecret";
makeBitwardenTest = backend: makeTest { makeVaultwardenTest = backend: makeTest {
name = "bitwarden_rs-${backend}"; name = "vaultwarden-${backend}";
meta = { meta = {
maintainers = with pkgs.lib.maintainers; [ jjjollyjim ]; maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
}; };
@ -45,9 +45,9 @@ let
package = pkgs.mariadb; 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 = { 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 = { }; sqlite = { };
@ -71,7 +71,7 @@ let
mkMerge [ mkMerge [
backendConfig.${backend} backendConfig.${backend}
{ {
services.bitwarden_rs = { services.vaultwarden = {
enable = true; enable = true;
dbBackend = backend; dbBackend = backend;
config.rocketPort = 80; config.rocketPort = 80;
@ -152,7 +152,7 @@ let
testScript = '' testScript = ''
start_all() start_all()
server.wait_for_unit("bitwarden_rs.service") server.wait_for_unit("vaultwarden.service")
server.wait_for_open_port(80) server.wait_for_open_port(80)
with subtest("configure the cli"): with subtest("configure the cli"):
@ -184,6 +184,6 @@ let
in in
builtins.listToAttrs ( builtins.listToAttrs (
map map
(backend: { name = backend; value = makeBitwardenTest backend; }) (backend: { name = backend; value = makeVaultwardenTest backend; })
backends backends
) )

View File

@ -255,12 +255,12 @@ in
datagrip = buildDataGrip rec { datagrip = buildDataGrip rec {
name = "datagrip-${version}"; name = "datagrip-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "Your Swiss Army Knife for Databases and SQL"; description = "Your Swiss Army Knife for Databases and SQL";
license = lib.licenses.unfree; license = lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
sha256 = "1znb4m7sv7xqi1mq3yw0m51m06wfwmhhxmvck0xkv8s0cfg18qim"; /* updated by script */ sha256 = "0lhi3vwhwb359va4sa17y071i03l4mfwqpsp7haqxjf900dcld7d"; /* updated by script */
}; };
wmClass = "jetbrains-datagrip"; wmClass = "jetbrains-datagrip";
update-channel = "DataGrip RELEASE"; update-channel = "DataGrip RELEASE";
@ -268,12 +268,12 @@ in
goland = buildGoland rec { goland = buildGoland rec {
name = "goland-${version}"; name = "goland-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "Up and Coming Go IDE"; description = "Up and Coming Go IDE";
license = lib.licenses.unfree; license = lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/go/${name}.tar.gz"; url = "https://download.jetbrains.com/go/${name}.tar.gz";
sha256 = "0g20r7yn4r2h08wv3i8bnnma8x4jljixsbmfml8kixk0pzfhv4px"; /* updated by script */ sha256 = "0xy9k90v3kcm9sj48l809qn0vws4ygsxxyqwsg6y9a3r1raqgqxd"; /* updated by script */
}; };
wmClass = "jetbrains-goland"; wmClass = "jetbrains-goland";
update-channel = "GoLand RELEASE"; update-channel = "GoLand RELEASE";
@ -281,12 +281,12 @@ in
idea-community = buildIdea rec { idea-community = buildIdea rec {
name = "idea-community-${version}"; name = "idea-community-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
license = lib.licenses.asl20; license = lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
sha256 = "03i5f6p0abr9yfs9fg90fg7hb1a7zar9q4d4iiag30cmndwpslg2"; /* updated by script */ sha256 = "1phpfa9i3k7g92ankmibp53c1469ifnb12g6s8gklln7v7xxakmi"; /* updated by script */
}; };
wmClass = "jetbrains-idea-ce"; wmClass = "jetbrains-idea-ce";
update-channel = "IntelliJ IDEA RELEASE"; update-channel = "IntelliJ IDEA RELEASE";
@ -294,12 +294,12 @@ in
idea-ultimate = buildIdea rec { idea-ultimate = buildIdea rec {
name = "idea-ultimate-${version}"; name = "idea-ultimate-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
license = lib.licenses.unfree; license = lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz"; url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
sha256 = "0mw4acaik1bkr7gqbwgs3i8f8px8zw95hm1zxgd5gd5kh88n17x5"; /* updated by script */ sha256 = "13c7a96zbw05w1gy4ds4wzac853hdlnbflww2xaz60jnr1k24gnp"; /* updated by script */
}; };
wmClass = "jetbrains-idea"; wmClass = "jetbrains-idea";
update-channel = "IntelliJ IDEA RELEASE"; update-channel = "IntelliJ IDEA RELEASE";
@ -320,12 +320,12 @@ in
phpstorm = buildPhpStorm rec { phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}"; name = "phpstorm-${version}";
version = "2021.1.3"; /* updated by script */ version = "2021.1.4"; /* updated by script */
description = "Professional IDE for Web and PHP developers"; description = "Professional IDE for Web and PHP developers";
license = lib.licenses.unfree; license = lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "05hjv1nz1b82bkakadjvsy23v0qv8fyni6h31lcg9198h1890f7v"; /* updated by script */ sha256 = "0p9a8l2bpjm25x4af1hlqhmw5xsirsfajznd6y723yqmjy8hs46l"; /* updated by script */
}; };
wmClass = "jetbrains-phpstorm"; wmClass = "jetbrains-phpstorm";
update-channel = "PhpStorm RELEASE"; update-channel = "PhpStorm RELEASE";
@ -333,12 +333,12 @@ in
pycharm-community = buildPycharm rec { pycharm-community = buildPycharm rec {
name = "pycharm-community-${version}"; name = "pycharm-community-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "PyCharm Community Edition"; description = "PyCharm Community Edition";
license = lib.licenses.asl20; license = lib.licenses.asl20;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0sp7w1xrl0y36dai08kqfd0jk06yr7jdbaf1a9f3fgxp5pmspxp1"; /* updated by script */ sha256 = "0c03grsrjydb6jcnbq1qi4158c14vni3znr7vysnbvldi8al6w8m"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm-ce"; wmClass = "jetbrains-pycharm-ce";
update-channel = "PyCharm RELEASE"; update-channel = "PyCharm RELEASE";
@ -346,12 +346,12 @@ in
pycharm-professional = buildPycharm rec { pycharm-professional = buildPycharm rec {
name = "pycharm-professional-${version}"; name = "pycharm-professional-${version}";
version = "2021.1.2"; /* updated by script */ version = "2021.1.3"; /* updated by script */
description = "PyCharm Professional Edition"; description = "PyCharm Professional Edition";
license = lib.licenses.unfree; license = lib.licenses.unfree;
src = fetchurl { src = fetchurl {
url = "https://download.jetbrains.com/python/${name}.tar.gz"; url = "https://download.jetbrains.com/python/${name}.tar.gz";
sha256 = "0ny7rbl8g5azpqnlcq8l6bwh6hrp8rgp06lf4a8gdr9rpvw9xsqb"; /* updated by script */ sha256 = "01nwc9nprlyrwyij98px915w66g6vxbznsmmmg56rv3rvjvjp7yl"; /* updated by script */
}; };
wmClass = "jetbrains-pycharm"; wmClass = "jetbrains-pycharm";
update-channel = "PyCharm RELEASE"; update-channel = "PyCharm RELEASE";

View File

@ -14,7 +14,7 @@ sub semantic_less {
} }
sub get_latest_versions { sub get_latest_versions {
my @channels = get("http://www.jetbrains.com/updates/updates.xml") =~ /(<channel .+?<\/channel>)/gs; my @channels = get("https://www.jetbrains.com/updates/updates.xml") =~ /(<channel .+?<\/channel>)/gs;
my %h = {}; my %h = {};
for my $ch (@channels) { for my $ch (@channels) {
my ($id) = $ch =~ /^<channel id="[^"]+" name="([^"]+)"/; my ($id) = $ch =~ /^<channel id="[^"]+" name="([^"]+)"/;

View File

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

View File

@ -7,12 +7,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "3.4.1"; version = "3.6.0";
pname = "darktable"; pname = "darktable";
src = fetchurl { src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz"; 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 ]; 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/"; homepage = "https://about.draw.io/";
license = licenses.asl20; license = licenses.asl20;
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}"; changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
platforms = [ "x86_64-linux" ]; platforms = [ "x86_64-linux" ];
}; };
} }

View File

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

View File

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

View File

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

View File

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

View File

@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
homepage = "https://code-industry.net/free-pdf-editor/"; homepage = "https://code-industry.net/free-pdf-editor/";
license = licenses.unfreeRedistributable; license = licenses.unfreeRedistributable;
platforms = with platforms; [ "x86_64-linux" ]; 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

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

View File

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

View File

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

View File

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "dnscontrol"; pname = "dnscontrol";
version = "3.10.0"; version = "3.10.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "StackExchange"; owner = "StackExchange";
repo = pname; repo = pname;
rev = "v${version}"; 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 = [ "." ]; subPackages = [ "." ];

View File

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

View File

@ -1,27 +1,18 @@
{ mkDerivation, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, qtbase, qttools { mkDerivation, lib, fetchFromGitHub, pkg-config, cmake, qtbase, qttools
, seafile-shared, jansson, libsearpc , seafile-shared, jansson, libsearpc
, withShibboleth ? true, qtwebengine }: , withShibboleth ? true, qtwebengine }:
mkDerivation rec { mkDerivation rec {
pname = "seafile-client"; pname = "seafile-client";
version = "8.0.1"; version = "8.0.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "haiwen"; owner = "haiwen";
repo = "seafile-client"; repo = "seafile-client";
rev = "b4b944921c7efef13a93d693c45c997943899dec"; rev = "v${version}";
sha256 = "2vV+6ZXjVg81JVLfWeD0UK+RdmpBxBU2Ozx790WFSyw="; sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
}; };
patches = [
# Fix compilation failure with "error: template with C linkage", fixes #122505
(fetchpatch {
url = "https://aur.archlinux.org/cgit/aur.git/plain/fix_build_with_glib2.diff?h=seafile-client&id=7be253aaa2bdb6771721f45aa08bc875c8001c5a";
name = "fix_build_with_glib2.diff";
sha256 = "0hl7rcqfr8k62c1pr133bp3j63b905izaaggmgvr1af4jibal05v";
})
];
nativeBuildInputs = [ pkg-config cmake ]; nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ] buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
++ lib.optional withShibboleth qtwebengine; ++ lib.optional withShibboleth qtwebengine;

View File

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

View File

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

View File

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

View File

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

View File

@ -9,14 +9,14 @@
buildPythonApplication rec { buildPythonApplication rec {
pname = "glances"; pname = "glances";
version = "3.1.7"; version = "3.2.0";
disabled = isPyPy; disabled = isPyPy;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nicolargo"; owner = "nicolargo";
repo = "glances"; repo = "glances";
rev = "v${version}"; 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): # 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; { meta = with lib; {
homepage = "https://nicolargo.github.io/glances/"; homepage = "https://nicolargo.github.io/glances/";
description = "Cross-platform curses-based monitoring tool"; 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; license = licenses.lgpl3Only;
maintainers = with maintainers; [ jonringer primeos koral ]; 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 , re2Support ? true
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform , rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
, guiSupport ? false, tk ? null , fullBuild ? false
, gitSupport ? fullBuild
, guiSupport ? fullBuild, tk
, highlightSupport ? fullBuild
, ApplicationServices , ApplicationServices
}: }:
let let
inherit (python3Packages) docutils python fb-re2; inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
in python3Packages.buildPythonApplication rec { self = python3Packages.buildPythonApplication rec {
pname = "mercurial"; pname = "mercurial";
version = "5.8"; version = "5.8";
src = fetchurl { src = fetchurl {
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz"; url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw"; 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 = [ inherit (self) src version meta;
# 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";
})
];
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 { installPhase = ''
inherit src; runHook preInstall
name = "${pname}-${version}";
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
sourceRoot = "${pname}-${version}/rust";
} else null;
cargoRoot = if rustSupport then "rust" else null;
propagatedBuildInputs = lib.optional re2Support fb-re2; mkdir -p $out/bin
nativeBuildInputs = [ makeWrapper gettext ]
++ lib.optionals rustSupport (with rustPlatform; [
cargoSetupHook
rust.cargo
rust.rustc
]);
buildInputs = [ docutils ]
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
makeFlags = [ "PREFIX=$(out)" ] for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
++ lib.optional rustSupport "PURE=--rust"; for bin in $bindir/*; do
ln -s ${env}/bin/$(basename $bin) $out/bin/
done
done
postInstall = (lib.optionalString guiSupport '' ln -s ${self}/share $out/share
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 runHook postInstall
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
# install bash/zsh completions installCheckPhase = ''
install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg runHook preInstallCheck
install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
'';
meta = with lib; { $out/bin/hg help >/dev/null || exit 1
inherit version;
description = "A fast, lightweight SCM system for very large distributed projects"; runHook postInstallCheck
homepage = "https://www.mercurial-scm.org"; '';
downloadPage = "https://www.mercurial-scm.org/release/"; };
license = licenses.gpl2Plus;
maintainers = with maintainers; [ eelco lukegb ]; tests = origAttrs.passthru.tests // {
updateWalker = true; withExtensions = withExtensions (pm: [ pm.hg-evolve ]);
platforms = platforms.unix; };
}; };
} })

View File

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

View File

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

View File

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

View File

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

View File

@ -117,7 +117,8 @@ rec {
--tmpdir=$TMPDIR \ --tmpdir=$TMPDIR \
--override-os ${os} \ --override-os ${os} \
--override-arch ${arch} \ --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. # We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.

View File

@ -1,7 +1,7 @@
{ lib, fetchzip }: { lib, fetchzip }:
let let
version = "5.000"; version = "6.000";
in in
fetchzip rec { fetchzip rec {
name = "charis-sil-${version}"; 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}" 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; { meta = with lib; {
homepage = "https://software.sil.org/charis"; homepage = "https://software.sil.org/charis";

View File

@ -1,7 +1,7 @@
{ lib, fetchzip }: { lib, fetchzip }:
let let
version = "4.47.0"; version = "4.49.1";
in fetchzip { in fetchzip {
name = "terminus-font-ttf-${version}"; name = "terminus-font-ttf-${version}";
@ -18,7 +18,7 @@ in fetchzip {
install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING" install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
''; '';
sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z"; sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
meta = with lib; { meta = with lib; {
description = "A clean fixed width TTF font"; 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"; description = "A set of default and supplemental wallpapers for Fedora";
license = licenses.cc-by-sa-40; license = licenses.cc-by-sa-40;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
}; };
} }

View File

@ -12,13 +12,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bulky"; pname = "bulky";
version = "1.6"; version = "1.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "linuxmint"; owner = "linuxmint";
repo = "bulky"; repo = "bulky";
rev = version; rev = version;
sha256 = "sha256-cO6AhQ0g1N43du74fljfI1M68jb9N04FKUyzjbzC3K0="; sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
}; };
nativeBuildInputs = [ 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) 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) gjs; # added 2019-01-05
inherit (pkgs) yelp-tools; # added 2019-11-20 inherit (pkgs) yelp-tools; # added 2019-11-20

View File

@ -1,12 +1,12 @@
{ lib, buildRebar3, fetchFromGitHub }: { lib, buildRebar3, fetchFromGitHub }:
buildRebar3 rec { buildRebar3 rec {
name = "rebar3_nix"; name = "rebar3_nix";
version = "0.1.0"; version = "0.1.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "erlang-nix"; owner = "erlang-nix";
repo = name; repo = name;
rev = "v${version}"; rev = "v${version}";
sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf"; sha256 = "10ijc06qvv5hqv0qy3w7mbv9pshdb8bvy0f3phr1vd5hksbk731y";
}; };
meta = { 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"; description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
homepage = "https://llvm.org/"; homepage = "https://llvm.org/";
license = with licenses; [ ncsa ]; license = with licenses; [ ncsa ];
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

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

View File

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

View File

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

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "alda"; pname = "alda";
version = "1.4.4"; version = "1.5.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/alda-lang/alda/releases/download/${version}/alda"; url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
sha256 = "sha256-zIq8coSh4B9VGrixkQfhySK7qhlFG2p7O0suvbiScKY="; sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0=";
}; };
dontUnpack = true; dontUnpack = true;

View File

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

View File

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

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "babl"; pname = "babl";
version = "0.1.86"; version = "0.1.88";
outputs = [ "out" "dev" ]; outputs = [ "out" "dev" ];
src = fetchurl { src = fetchurl {
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; 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 = [ nativeBuildInputs = [

View File

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

View File

@ -4,6 +4,7 @@
, pkg-config , pkg-config
, meson , meson
, ninja , ninja
, wayland-scanner
, libX11 , libX11
, mesa , mesa
, libGL , libGL
@ -51,10 +52,15 @@ in stdenv.mkDerivation rec {
sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk"; sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
}; };
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [ nativeBuildInputs = [
meson meson
ninja ninja
pkg-config pkg-config
wayland-scanner
]; ];
buildInputs = [ 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 , fetchurl
, pkg-config , pkg-config
, vala
, gobject-introspection
, gtk-doc
, docbook-xsl-nons
, docbook_xml_dtd_43
, glib
, babl , babl
, libpng , libpng
, cairo , cairo
, libjpeg , libjpeg
, librsvg , librsvg
, lensfun
, libspiro
, maxflow
, netsurf
, pango , pango
, gtk2 , poly2tri-c
, poppler
, bzip2 , bzip2
, intltool , json-glib
, libintl , gettext
, OpenGL ? null }: , meson
, ninja
, libraw
, gexiv2
, libwebp
, luajit
, openexr
, OpenCL
, suitesparse
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gegl"; pname = "gegl";
version = "0.2.0"; version = "0.4.30";
outputs = [ "out" "dev" "devdoc" ];
outputBin = "dev";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.gtk.org/pub/gegl/0.2/${pname}-${version}.tar.bz2"; url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426"; sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
}; };
patches = [( fetchurl { nativeBuildInputs = [
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/" pkg-config
+ "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9"; gettext
sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59"; meson
name = "CVE-2012-4433.patch"; ninja
})]; vala
gobject-introspection
gtk-doc
docbook-xsl-nons
docbook_xml_dtd_43
];
# needs fonts otherwise don't know how to pass them buildInputs = [
configureFlags = [ "--disable-docs" ]; 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 ] # for gegl-4.0.pc
++ lib.optional stdenv.isDarwin OpenGL; 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; { meta = with lib; {
description = "Graph-based image processing framework"; 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

@ -0,0 +1,34 @@
{ lib, stdenv, fetchFromGitHub
, meson, pkg-config, ninja
, libdrm
}:
stdenv.mkDerivation rec {
pname = "libliftoff";
version = "0.1.0";
src = fetchFromGitHub {
owner = "emersion";
repo = pname;
rev = "v${version}";
sha256 = "1s53jsll3c7272bhmh4jr6k5m1nvn8i1ld704qmzsm852ilmgrla";
};
nativeBuildInputs = [ meson pkg-config ninja ];
buildInputs = [ libdrm ];
meta = with lib; {
description = "A lightweight KMS plane library";
longDescription = ''
libliftoff eases the use of KMS planes from userspace without standing in
your way. Users create "virtual planes" called layers, set KMS properties
on them, and libliftoff will pick planes for these layers if possible.
'';
inherit (src.meta) homepage;
changelog = "https://github.com/emersion/libliftoff/releases/tag/v${version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos ];
};
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
meta = with lib; { meta = with lib; {
description = "OpenCL ICD definition for AMD GPUs using the ROCm stack"; description = "OpenCL ICD definition for AMD GPUs using the ROCm stack";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
description = "OpenCL runtime for AMD GPUs, part of the ROCm stack"; description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime"; homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
license = with licenses; [ asl20 mit ]; license = with licenses; [ asl20 mit ];
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
description = "Platform runtime for ROCm"; description = "Platform runtime for ROCm";
homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime"; homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
license = with licenses; [ ncsa ]; license = with licenses; [ ncsa ];
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
}; };
} }

View File

@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
description = "Radeon open compute thunk interface"; description = "Radeon open compute thunk interface";
homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface"; homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface";
license = with licenses; [ bsd2 mit ]; license = with licenses; [ bsd2 mit ];
maintainers = with maintainers; [ danieldk ]; maintainers = with maintainers; [ ];
}; };
} }

View File

@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
# $out for the library and $examples for the example programs (in examples): # $out for the library and $examples for the example programs (in examples):
outputs = [ "out" "examples" ]; outputs = [ "out" "examples" ];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]; nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
buildInputs = [ buildInputs = [

View File

@ -126,7 +126,7 @@
, "indium" , "indium"
, "insect" , "insect"
, "ionic" , "ionic"
, {"iosevka": "https://github.com/be5invis/Iosevka/archive/v7.0.4.tar.gz"} , {"iosevka": "https://github.com/be5invis/Iosevka/archive/v7.2.4.tar.gz"}
, "jake" , "jake"
, "javascript-typescript-langserver" , "javascript-typescript-langserver"
, "joplin" , "joplin"

View File

@ -4,13 +4,13 @@
buildDunePackage rec { buildDunePackage rec {
pname = "alcotest"; pname = "alcotest";
version = "1.2.3"; version = "1.3.0";
useDune2 = true; useDune2 = true;
src = fetchurl { src = fetchurl {
url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-mirage-${version}.tbz"; url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-mirage-${version}.tbz";
sha256 = "1bmjcivbmd4vib15v4chycgd1gl8js9dk94vzxkdg06zxqd4hp08"; sha256 = "sha256-efnevbyolTdNb91zr4pHDcvgaLQQSD01wEu2zMM+iaw=";
}; };
propagatedBuildInputs = [ astring cmdliner fmt uuidm re stdlib-shims uutf ]; propagatedBuildInputs = [ astring cmdliner fmt uuidm re stdlib-shims uutf ];

View File

@ -1,13 +1,16 @@
{ lib, buildDunePackage, alcotest, logs, ocaml_lwt }: { lib, buildDunePackage, alcotest, logs, ocaml_lwt, fmt
, re, cmdliner
}:
buildDunePackage { buildDunePackage {
pname = "alcotest-lwt"; pname = "alcotest-lwt";
inherit (alcotest) version src useDune2; inherit (alcotest) version src useDune2;
propagatedBuildInputs = [ alcotest logs ocaml_lwt ]; propagatedBuildInputs = [ alcotest logs ocaml_lwt fmt ];
doCheck = true; doCheck = true;
checkInputs = [ re cmdliner ];
meta = alcotest.meta // { meta = alcotest.meta // {
description = "Lwt-based helpers for Alcotest"; description = "Lwt-based helpers for Alcotest";

View File

@ -8,13 +8,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "bashlex"; pname = "bashlex";
version = "0.14"; version = "0.15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "idank"; owner = "idank";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "070spmbf53y18miky5chgky4x5h8kp9czkp7dm173klv9pi2cn0k"; sha256 = "sha256-kKVorAIKlyC9vUzLOlaZ/JrG1kBBRIvLwBmHNj9nx84=";
}; };
checkInputs = [ nose ]; checkInputs = [ nose ];
@ -29,9 +29,11 @@ buildPythonPackage rec {
${python.interpreter} -m nose --with-doctest ${python.interpreter} -m nose --with-doctest
''; '';
pythonImportsCheck = [ "bashlex" ];
meta = with lib; { meta = with lib; {
description = "Python parser for bash"; description = "Python parser for bash";
license = licenses.gpl3; license = licenses.gpl3Plus;
homepage = "https://github.com/idank/bashlex"; homepage = "https://github.com/idank/bashlex";
maintainers = with maintainers; [ multun ]; maintainers = with maintainers; [ multun ];
}; };

View File

@ -8,12 +8,12 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "bugsnag"; pname = "bugsnag";
version = "4.0.3"; version = "4.1.0";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "0b70bc95e4e4f98b2eef7a3dadfdc50c1a40da7f50446adf43be05574a4b9f7c"; sha256 = "sha256-3L1ZzZ7eomzJLvtlGK7YOi81b4G/1azHML/iAvsnwcE=";
}; };
propagatedBuildInputs = [ six webob ]; propagatedBuildInputs = [ six webob ];

View File

@ -1,25 +1,45 @@
{ buildPythonPackage { buildPythonPackage
, enum34 , enum34
, fetchPypi , fetchFromGitHub
, flit-core
, isPy27 , isPy27
, lib , lib
, pathlib , pathlib
, pyyaml , pyyaml
, pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "confuse"; pname = "confuse";
version = "1.4.0"; version = "1.5.0";
format = "flit";
src = fetchPypi { src = fetchFromGitHub {
inherit pname version; owner = "beetbox";
sha256 = "sha256-kvwEUcbiwnMqw2PQ9Z1+pgir3b7QYt2o6Y6ajJhs5GQ="; repo = pname;
rev = "v${version}";
sha256 = "1kvilxhjifvz6ra64jadf9jiwphrah5rcb9ryq0v7w1dywgn4qp7";
}; };
propagatedBuildInputs = [ pyyaml ] ++ lib.optionals isPy27 [ enum34 pathlib ] ; nativeBuildInputs = [
flit-core
];
propagatedBuildInputs = [
pyyaml
] ++ lib.optionals isPy27 [
enum34
pathlib
] ;
checkInputs = [
pytestCheckHook
];
pythonImportsCheck = [ "confuse" ];
meta = with lib; { meta = with lib; {
description = "Confuse is a configuration library for Python that uses YAML."; description = "Python configuration library for Python that uses YAML";
homepage = "https://github.com/beetbox/confuse"; homepage = "https://github.com/beetbox/confuse";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ lovesegfault ]; maintainers = with maintainers; [ lovesegfault ];

View File

@ -1,14 +1,14 @@
{ lib, buildPythonPackage, fetchFromGitHub }: { lib, buildPythonPackage, fetchFromGitHub }:
buildPythonPackage rec { buildPythonPackage rec {
version = "2.0.1"; version = "2.2.post0";
pname = "crc32c"; pname = "crc32c";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ICRAR"; owner = "ICRAR";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "0vyac7pchh083h5qdjwhhacfq77frkrq1bjzsn51qv1vwcdrpnrf"; sha256 = "sha256-0FgNOVpgJTxRALuufZ7Dt1TwuX+zqw35yCq8kmq4RTc=";
}; };
meta = { meta = {

View File

@ -1,7 +1,6 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, fetchPypi , fetchPypi
, fetchpatch
, isPy3k , isPy3k
, pytestCheckHook , pytestCheckHook
, sphinx , sphinx
@ -10,31 +9,19 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "curio"; pname = "curio";
version = "1.4"; version = "1.5";
disabled = !isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "57edce81c837f3c2cf42fbb346dee26e537d1659e6605269fb13bd179e068744"; sha256 = "sha256-rwghLlkLt9qOTMOcQgEnEUlNwg1iLxYhVbopbMLjvBA=";
}; };
patches = [ checkInputs = [
# Fix the flaky test due to slow moving time on Apple Silicon chips. pytestCheckHook
# Remove when https://github.com/dabeaz/curio/pull/339 is in the next release. sphinx
(fetchpatch {
url = "https://github.com/dabeaz/curio/commit/132376724bbfaa0a52d3d63d0791aa4ac1eb6f5f.patch";
sha256 = "sha256-AxO0xRcR9l9/NKEJFwyZIoYcyZxpqOhpdNaeaYokVb4=";
})
# Same as above
(fetchpatch {
url = "https://github.com/dabeaz/curio/commit/8ac2f12a2cdacbc750b01fc7459cee8879bc1ee3.patch";
sha256 = "sha256-2Si3fuDLrI09QuzJd1TrE0QY02G9e9m+1eHFTB/MrWU=";
})
]; ];
disabled = !isPy3k;
checkInputs = [ pytestCheckHook sphinx ];
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
disabledTests = [ disabledTests = [
@ -46,9 +33,11 @@ buildPythonPackage rec {
"test_unix_ssl_server" # socket bind error on hydra when built with other packages "test_unix_ssl_server" # socket bind error on hydra when built with other packages
]; ];
pythonImportsCheck = [ "curio" ];
meta = with lib; { meta = with lib; {
homepage = "https://github.com/dabeaz/curio"; homepage = "https://github.com/dabeaz/curio";
description = "Library for performing concurrent I/O with coroutines in Python 3"; description = "Library for performing concurrent I/O with coroutines in Python";
license = licenses.bsd3; license = licenses.bsd3;
maintainers = [ maintainers.marsam ]; maintainers = [ maintainers.marsam ];
}; };

View File

@ -16,14 +16,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "cvxpy"; pname = "cvxpy";
version = "1.1.12"; version = "1.1.13";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-tJnr+uT8ZF6VI2IVc//LHFtoVKG1wM4dZqippFhgWAc="; sha256 = "012avhf0a8n9xyy4g3xcr5z8z2a3m6rnqic6gfs9fq6p9bkq3ix9";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -42,8 +42,10 @@ buildPythonPackage rec {
''; '';
checkInputs = [ pytestCheckHook ]; checkInputs = [ pytestCheckHook ];
pytestFlagsArray = [ "./cvxpy" ]; pytestFlagsArray = [ "./cvxpy" ];
# Disable the slowest benchmarking tests, cuts test time in half
# Disable the slowest benchmarking tests, cuts test time in half
disabledTests = [ disabledTests = [
"test_tv_inpainting" "test_tv_inpainting"
"test_diffcp_sdp_example" "test_diffcp_sdp_example"
@ -51,6 +53,8 @@ buildPythonPackage rec {
"test_ecos_bb_mi_lp_2" # https://github.com/cvxgrp/cvxpy/issues/1241#issuecomment-780912155 "test_ecos_bb_mi_lp_2" # https://github.com/cvxgrp/cvxpy/issues/1241#issuecomment-780912155
]; ];
pythonImportsCheck = [ "cvxpy" ];
meta = with lib; { meta = with lib; {
description = "A domain-specific language for modeling convex optimization problems in Python"; description = "A domain-specific language for modeling convex optimization problems in Python";
homepage = "https://www.cvxpy.org/"; homepage = "https://www.cvxpy.org/";

View File

@ -20,14 +20,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dask"; pname = "dask";
version = "2021.06.1"; version = "2021.06.2";
disabled = pythonOlder "3.5"; disabled = pythonOlder "3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dask"; owner = "dask";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "sha256-wrUqLSmlKhd0NSjWBwbow8aX53ZBTgl2n4lEmvxC3bs="; sha256 = "sha256-qvfjdijzlqaJQrDztRAVr5PudTaVd3WOTBid2ElZQgg=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -1,13 +1,13 @@
{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }: { lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
buildPythonPackage rec { buildPythonPackage rec {
version = "2.0"; version = "2.0.1";
pname = "dbutils"; pname = "dbutils";
src = fetchPypi { src = fetchPypi {
inherit version; inherit version;
pname = "DBUtils"; pname = "DBUtils";
sha256 = "131ifm2c2a7bipij597i8fvjka0dk2qv1xr2ghcvbc30jlkvag2g"; sha256 = "sha256-Vw590TbBMRb+74vKGGCeP2a4ZoqcPV8hCdh0TERE2GE=";
}; };
checkInputs = [ pytestCheckHook ]; checkInputs = [ pytestCheckHook ];

View File

@ -12,7 +12,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "deezer-python"; pname = "deezer-python";
version = "2.2.4"; version = "2.3.0";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
format = "pyproject"; format = "pyproject";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "browniebroke"; owner = "browniebroke";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "11gqmyf350256gbppak2qv20lg2bmszand4kmks93wphq5yp2iiy"; sha256 = "sha256-pRYC0kJHJ5SKgDdGS1KkQEbv+DkF9oPw/A1GnB0AwfQ=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View File

@ -12,14 +12,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "devolo-home-control-api"; pname = "devolo-home-control-api";
version = "0.17.3"; version = "0.17.4";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "2Fake"; owner = "2Fake";
repo = "devolo_home_control_api"; repo = "devolo_home_control_api";
rev = "v${version}"; rev = "v${version}";
sha256 = "1h7admqb1l28sxwhhkkhw0sfzgpn8zpczvmi3h28f68csflkv379"; sha256 = "sha256-N/48Q2IEL194vCzrPPuy+mRNejXfkoXy2t2oe0Y6ug4=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View File

@ -1,52 +0,0 @@
{ lib
, fetchPypi
, buildPythonPackage
, pymatgen
, marshmallow
, pyyaml
, pygmo
, pandas
, scipy
, numpy
, scikit-learn
, lammps-cython
, pymatgen-lammps
, pytestrunner
, isPy3k
}:
buildPythonPackage rec {
pname = "dftfit";
version = "0.5.1";
disabled = (!isPy3k);
src = fetchPypi {
inherit pname version;
sha256 = "4dcbde48948835dcf2d49d6628c9df5747a8ec505d517e374b8d6c7fe95892df";
};
buildInputs = [ pytestrunner ];
propagatedBuildInputs = [
pymatgen
marshmallow
pyyaml
pygmo
pandas
scipy
numpy
scikit-learn
lammps-cython
pymatgen-lammps
];
# tests require git lfs download. and is quite large so skip tests
doCheck = false;
pythonImportsCheck = [ "dftfit" ];
meta = {
description = "Ab-Initio Molecular Dynamics Potential Development";
homepage = "https://gitlab.com/costrouc/dftfit";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ costrouc ];
};
}

View File

@ -13,7 +13,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dicom2nifti"; pname = "dicom2nifti";
version = "2.2.12"; version = "2.3.0";
disabled = isPy27; disabled = isPy27;
# no tests in PyPI dist # no tests in PyPI dist
@ -21,7 +21,7 @@ buildPythonPackage rec {
owner = "icometrix"; owner = "icometrix";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4"; sha256 = "sha256-QSu9CGXFjDpI25Cy6QSbrwiQ2bwsVezCUxSovRLs6AI=";
}; };
propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ]; propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];

View File

@ -0,0 +1,57 @@
{ lib
, buildPythonPackage
, chardet
, fetchPypi
, inflect
, jinja2
, jinja2_pluralize
, pycodestyle
, pyflakes
, pygments
, pylint
, pytest-mock
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "diff-cover";
version = "5.4.0";
disabled = pythonOlder "3.6";
src = fetchPypi {
pname = "diff_cover";
inherit version;
sha256 = "sha256-4iQ9/QcXh/lW8HE6wFZWc6Y57xhAEWu2TQnIUZJNAMs=";
};
propagatedBuildInputs = [
chardet
inflect
jinja2
jinja2_pluralize
pygments
];
checkInputs = [
pycodestyle
pyflakes
pylint
pytest-mock
pytestCheckHook
];
disabledTests = [
"added_file_pylint_console"
"file_does_not_exist"
];
pythonImportsCheck = [ "diff_cover" ];
meta = with lib; {
description = "Automatically find diff lines that need test coverage";
homepage = "https://github.com/Bachmann1234/diff-cover";
license = licenses.asl20;
maintainers = with maintainers; [ dzabraev ];
};
}

View File

@ -1,46 +0,0 @@
{ lib, buildPythonPackage, fetchPypi
, chardet
, inflect
, jinja2
, jinja2_pluralize
, pygments
, six
# test dependencies
, coverage
, mock
, nose
, pycodestyle
, pyflakes
, pylint
, pytest
}:
buildPythonPackage rec {
pname = "diff_cover";
version = "5.2.0";
preCheck = ''
export LC_ALL=en_US.UTF-8;
'';
src = fetchPypi {
inherit pname version;
sha256 = "a1cd54232d2e48bd4c1eabc96cfe4a8727a9a92fd2556b52ff8f65bb8adf8768";
};
propagatedBuildInputs = [ chardet jinja2 jinja2_pluralize pygments six inflect ];
checkInputs = [ mock coverage pytest nose pylint pyflakes pycodestyle ];
# ignore tests which try to write files
checkPhase = ''
pytest -k 'not added_file_pylint_console and not file_does_not_exist'
'';
meta = with lib; {
description = "Automatically find diff lines that need test coverage";
homepage = "https://github.com/Bachmann1234/diff-cover";
license = licenses.asl20;
maintainers = with maintainers; [ dzabraev ];
};
}

View File

@ -6,7 +6,6 @@
, dask , dask
, msgpack , msgpack
, psutil , psutil
, six
, sortedcontainers , sortedcontainers
, tblib , tblib
, toolz , toolz
@ -20,27 +19,39 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "distributed"; pname = "distributed";
version = "2021.6.1"; version = "2021.6.2";
disabled = pythonOlder "3.6"; disabled = pythonOlder "3.6";
# get full repository need conftest.py to run tests # get full repository need conftest.py to run tests
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "sha256-Z79h/WAio5diX2myChx8HPAWe2RB4Ajw7Ybch4XUYFc="; sha256 = "sha256-19ESqGqwSdzvo7If0brqQhKiwD0iwkvVWtONIaf10Ug=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
click cloudpickle dask msgpack psutil six bokeh
sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh click
cloudpickle
dask
mpi4py
msgpack
psutil
pyyaml
sortedcontainers
tblib
toolz
tornado
zict
]; ];
# when tested random tests would fail and not repeatably # when tested random tests would fail and not repeatably
doCheck = false; doCheck = false;
pythonImportsCheck = [ "distributed" ]; pythonImportsCheck = [ "distributed" ];
meta = with lib; { meta = with lib; {
description = "Distributed computation in Python."; description = "Distributed computation in Python";
homepage = "https://distributed.readthedocs.io/en/latest/"; homepage = "https://distributed.readthedocs.io/";
license = licenses.bsd3; license = licenses.bsd3;
platforms = platforms.x86; # fails on aarch64 platforms = platforms.x86; # fails on aarch64
maintainers = with maintainers; [ teh costrouc ]; maintainers = with maintainers; [ teh costrouc ];

View File

@ -13,13 +13,13 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "Django"; pname = "Django";
version = "3.2.4"; version = "3.2.5";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6"; sha256 = "1kam3301jl53vm0mhflwwsqy5d7kb5dksmjanlaj7v7xakm5z81x";
}; };
patches = lib.optional withGdal patches = lib.optional withGdal

View File

@ -7,16 +7,18 @@
, astropy , astropy
, pytestCheckHook , pytestCheckHook
, pytest-doctestplus , pytest-doctestplus
, pythonOlder
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "drms"; pname = "drms";
version = "0.6.0"; version = "0.6.2";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "74efb903f42647ea536de0c5aea4f9a81efe027c95055ec4e72ef62479a04c89"; sha256 = "sha256-Id8rPK8qq71gHn5DKnEi7Lp081GFbcFtGU+v89Vlt9o=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -31,10 +33,12 @@ buildPythonPackage rec {
pytest-doctestplus pytest-doctestplus
]; ];
pythonImportsCheck = [ "drms" ];
meta = with lib; { meta = with lib; {
description = "Access HMI, AIA and MDI data with Python"; description = "Access HMI, AIA and MDI data with Python";
homepage = "https://github.com/sunpy/drms"; homepage = "https://github.com/sunpy/drms";
license = licenses.mit; license = licenses.bsd2;
maintainers = [ maintainers.costrouc ]; maintainers = with maintainers; [ costrouc ];
}; };
} }

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