Merge master into haskell-updates
This commit is contained in:
commit
015c6d73ad
2
.github/workflows/periodic-merge-24h.yml
vendored
2
.github/workflows/periodic-merge-24h.yml
vendored
|
@ -11,7 +11,7 @@ name: "Periodic Merges (24h)"
|
|||
on:
|
||||
schedule:
|
||||
# * is a special character in YAML so you have to quote this string
|
||||
# Merge every 6 hours
|
||||
# Merge every 24 hours
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
|
|
|
@ -4061,6 +4061,12 @@
|
|||
github = "gytis-ivaskevicius";
|
||||
githubId = 23264966;
|
||||
};
|
||||
hagl = {
|
||||
email = "harald@glie.be";
|
||||
github = "hagl";
|
||||
githubId = 1162118;
|
||||
name = "Harald Gliebe";
|
||||
};
|
||||
hakuch = {
|
||||
email = "hakuch@gmail.com";
|
||||
github = "hakuch";
|
||||
|
@ -10638,6 +10644,12 @@
|
|||
github = "totoroot";
|
||||
githubId = 39650930;
|
||||
};
|
||||
ToxicFrog = {
|
||||
email = "toxicfrog@ancilla.ca";
|
||||
github = "ToxicFrog";
|
||||
githubId = 90456;
|
||||
name = "Rebecca (Bex) Kelly";
|
||||
};
|
||||
travisbhartwell = {
|
||||
email = "nafai@travishartwell.net";
|
||||
github = "travisbhartwell";
|
||||
|
|
|
@ -30,6 +30,12 @@ If NixOS fails to boot, there are a number of kernel command line parameters tha
|
|||
|
||||
: Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1).
|
||||
|
||||
In addition, these arguments are recognised by the live image only:
|
||||
|
||||
`live.nixos.passwd=password`
|
||||
|
||||
: Set the password for the `nixos` live user. This can be used for SSH access if there are issues using the terminal.
|
||||
|
||||
Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue".
|
||||
|
||||
If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If you’re 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.)
|
||||
|
|
|
@ -106,6 +106,23 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
In addition, these arguments are recognised by the live image only:
|
||||
</para>
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>
|
||||
<literal>live.nixos.passwd=password</literal>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
Set the password for the <literal>nixos</literal> live user.
|
||||
This can be used for SSH access if there are issues using the
|
||||
terminal.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
<para>
|
||||
Notice that for <literal>boot.shell_on_fail</literal>,
|
||||
<literal>boot.debug1</literal>,
|
||||
|
|
|
@ -101,16 +101,18 @@
|
|||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://www.gnuradio.org/">GNURadio</link>
|
||||
3.8 was
|
||||
3.8 and 3.9 were
|
||||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
|
||||
packaged, along with a rewrite to the Nix expressions,
|
||||
allowing users to override the features upstream supports
|
||||
selecting to compile or not to. Additionally, the attribute
|
||||
<literal>gnuradio</literal> and <literal>gnuradio3_7</literal>
|
||||
now point to an externally wrapped by default derivations,
|
||||
that allow you to also add `extraPythonPackages` to the Python
|
||||
interpreter used by GNURadio. Missing environmental variables
|
||||
needed for operational GUI were also added
|
||||
<literal>gnuradio</literal> (3.9),
|
||||
<literal>gnuradio3_8</literal> and
|
||||
<literal>gnuradio3_7</literal> now point to an externally
|
||||
wrapped by default derivations, that allow you to also add
|
||||
`extraPythonPackages` to the Python interpreter used by
|
||||
GNURadio. Missing environmental variables needed for
|
||||
operational GUI were also added
|
||||
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
|
||||
</para>
|
||||
</listitem>
|
||||
|
@ -1026,7 +1028,7 @@ self: super:
|
|||
<para>
|
||||
<link xlink:href="https://kodi.tv/">Kodi</link> has been
|
||||
updated to version 19.1 "Matrix". See the
|
||||
<link xlink:href="https://kodi.tv/article/kodi-190-matrix-release">announcement</link>
|
||||
<link xlink:href="https://kodi.tv/article/kodi-19-0-matrix-release">announcement</link>
|
||||
for further details.
|
||||
</para>
|
||||
</listitem>
|
||||
|
|
|
@ -25,6 +25,15 @@
|
|||
<section xml:id="sec-release-21.11-new-services">
|
||||
<title>New Services</title>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://digint.ch/btrbk/index.html">btrbk</link>,
|
||||
a backup tool for btrfs subvolumes, taking advantage of btrfs
|
||||
specific capabilities to create atomic snapshots and transfer
|
||||
them incrementally to your backup locations. Available as
|
||||
<link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
|
||||
|
@ -64,7 +73,7 @@
|
|||
<listitem>
|
||||
<para>
|
||||
The <literal>staticjinja</literal> package has been upgraded
|
||||
from 1.0.4 to 2.0.0
|
||||
from 1.0.4 to 3.0.1
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
|
@ -339,6 +348,116 @@
|
|||
release instead of the old 2.31.0 version.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>bitwarden_rs</literal> packages and modules were
|
||||
renamed to <literal>vaultwarden</literal>
|
||||
<link xlink:href="https://github.com/dani-garcia/vaultwarden/discussions/1642">following
|
||||
upstream</link>. More specifically,
|
||||
</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.bitwarden_rs</literal>,
|
||||
<literal>pkgs.bitwarden_rs-sqlite</literal>,
|
||||
<literal>pkgs.bitwarden_rs-mysql</literal> and
|
||||
<literal>pkgs.bitwarden_rs-postgresql</literal> were
|
||||
renamed to <literal>pkgs.vaultwarden</literal>,
|
||||
<literal>pkgs.vaultwarden-sqlite</literal>,
|
||||
<literal>pkgs.vaultwarden-mysql</literal> and
|
||||
<literal>pkgs.vaultwarden-postgresql</literal>,
|
||||
respectively.
|
||||
</para>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
Old names are preserved as aliases for backwards
|
||||
compatibility, but may be removed in the future.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>bitwarden_rs</literal> executable was
|
||||
also renamed to <literal>vaultwarden</literal> in all
|
||||
packages.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.bitwarden_rs-vault</literal> was renamed to
|
||||
<literal>pkgs.vaultwarden-vault</literal>.
|
||||
</para>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>pkgs.bitwarden_rs-vault</literal> is
|
||||
preserved as an alias for backwards compatibility, but
|
||||
may be removed in the future.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The static files were moved from
|
||||
<literal>/usr/share/bitwarden_rs</literal> to
|
||||
<literal>/usr/share/vaultwarden</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>services.bitwarden_rs</literal> config module
|
||||
was renamed to <literal>services.vaultwarden</literal>.
|
||||
</para>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>services.bitwarden_rs</literal> is preserved
|
||||
as an alias for backwards compatibility, but may be
|
||||
removed in the future.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>systemd.services.bitwarden_rs</literal>,
|
||||
<literal>systemd.services.backup-bitwarden_rs</literal>
|
||||
and <literal>systemd.timers.backup-bitwarden_rs</literal>
|
||||
were renamed to
|
||||
<literal>systemd.services.vaultwarden</literal>,
|
||||
<literal>systemd.services.backup-vaultwarden</literal> and
|
||||
<literal>systemd.timers.backup-vaultwarden</literal>,
|
||||
respectively.
|
||||
</para>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
Old names are preserved as aliases for backwards
|
||||
compatibility, but may be removed in the future.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<literal>users.users.bitwarden_rs</literal> and
|
||||
<literal>users.groups.bitwarden_rs</literal> were renamed
|
||||
to <literal>users.users.vaultwarden</literal> and
|
||||
<literal>users.groups.vaultwarden</literal>, respectively.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The data directory remains located at
|
||||
<literal>/var/lib/bitwarden_rs</literal>, for backwards
|
||||
compatibility.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
<section xml:id="sec-release-21.11-notable-changes">
|
||||
|
|
|
@ -36,7 +36,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
The following new services were added since the last release:
|
||||
|
||||
- [GNURadio](https://www.gnuradio.org/) 3.8 was [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
|
||||
- [GNURadio](https://www.gnuradio.org/) 3.8 and 3.9 were [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` (3.9), `gnuradio3_8` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
|
||||
|
||||
- [Keycloak](https://www.keycloak.org/), an open source identity and access management server with support for [OpenID Connect](https://openid.net/connect/), [OAUTH 2.0](https://oauth.net/2/) and [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
|
||||
|
||||
|
@ -300,7 +300,7 @@ When upgrading from a previous release, please be aware of the following incompa
|
|||
|
||||
Regarding the NixOS module, new options for HTTPS inspection have been added and `services.privoxy.extraConfig` has been replaced by the new [services.privoxy.settings](options.html#opt-services.privoxy.settings) (See [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) for the motivation).
|
||||
|
||||
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-190-matrix-release) for further details.
|
||||
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-19-0-matrix-release) for further details.
|
||||
|
||||
- The `services.packagekit.backend` option has been removed as it only supported a single setting which would always be the default. Instead new [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant [services.packagekit.settings](options.html#opt-services.packagekit.settings) and [services.packagekit.vendorSettings](options.html#opt-services.packagekit.vendorSettings) options have been introduced.
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
## New Services {#sec-release-21.11-new-services}
|
||||
|
||||
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
|
||||
|
||||
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
||||
|
||||
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
|
||||
|
@ -20,7 +22,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
||||
|
||||
- The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
|
||||
- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1
|
||||
|
||||
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
||||
|
||||
|
@ -85,6 +87,32 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
* The `libwnck` package now defaults to the 3.x release instead of the
|
||||
old 2.31.0 version.
|
||||
|
||||
* The `bitwarden_rs` packages and modules were renamed to `vaultwarden`
|
||||
[following upstream](https://github.com/dani-garcia/vaultwarden/discussions/1642). More specifically,
|
||||
|
||||
* `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
|
||||
`pkgs.bitwarden_rs-postgresql` were renamed to `pkgs.vaultwarden`, `pkgs.vaultwarden-sqlite`,
|
||||
`pkgs.vaultwarden-mysql` and `pkgs.vaultwarden-postgresql`, respectively.
|
||||
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
|
||||
* The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
|
||||
|
||||
* `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
|
||||
* `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
|
||||
* The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
|
||||
|
||||
* The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
|
||||
* `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
|
||||
|
||||
* `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
|
||||
were renamed to `systemd.services.vaultwarden`, `systemd.services.backup-vaultwarden` and
|
||||
`systemd.timers.backup-vaultwarden`, respectively.
|
||||
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
|
||||
|
||||
* `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
|
||||
`users.groups.vaultwarden`, respectively.
|
||||
|
||||
* The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
|
||||
|
||||
## Other Notable Changes {#sec-release-21.11-notable-changes}
|
||||
|
||||
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
|
||||
|
|
|
@ -30,5 +30,16 @@ with lib;
|
|||
# Add Memtest86+ to the CD.
|
||||
boot.loader.grub.memtest86.enable = true;
|
||||
|
||||
boot.postBootCommands = ''
|
||||
for o in $(</proc/cmdline); do
|
||||
case "$o" in
|
||||
live.nixos.passwd=*)
|
||||
set -- $(IFS==; echo $o)
|
||||
echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd
|
||||
;;
|
||||
esac
|
||||
done
|
||||
'';
|
||||
|
||||
system.stateVersion = mkDefault "18.03";
|
||||
}
|
||||
|
|
|
@ -260,6 +260,7 @@
|
|||
./services/backup/bacula.nix
|
||||
./services/backup/borgbackup.nix
|
||||
./services/backup/borgmatic.nix
|
||||
./services/backup/btrbk.nix
|
||||
./services/backup/duplicati.nix
|
||||
./services/backup/duplicity.nix
|
||||
./services/backup/mysql-backup.nix
|
||||
|
@ -874,7 +875,6 @@
|
|||
./services/search/hound.nix
|
||||
./services/search/kibana.nix
|
||||
./services/search/solr.nix
|
||||
./services/security/bitwarden_rs/default.nix
|
||||
./services/security/certmgr.nix
|
||||
./services/security/cfssl.nix
|
||||
./services/security/clamav.nix
|
||||
|
@ -900,6 +900,7 @@
|
|||
./services/security/torsocks.nix
|
||||
./services/security/usbguard.nix
|
||||
./services/security/vault.nix
|
||||
./services/security/vaultwarden/default.nix
|
||||
./services/security/yubikey-agent.nix
|
||||
./services/system/cloud-init.nix
|
||||
./services/system/dbus.nix
|
||||
|
|
220
nixos/modules/services/backup/btrbk.nix
Normal file
220
nixos/modules/services/backup/btrbk.nix
Normal 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;
|
||||
};
|
||||
|
||||
}
|
|
@ -16,6 +16,7 @@ ${lib.optionalString cfg.lt-cred-mech "lt-cred-mech"}
|
|||
${lib.optionalString cfg.no-auth "no-auth"}
|
||||
${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
|
||||
${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
|
||||
${lib.optionalString (cfg.static-auth-secret-file != null) ("static-auth-secret=#static-auth-secret#")}
|
||||
realm=${cfg.realm}
|
||||
${lib.optionalString cfg.no-udp "no-udp"}
|
||||
${lib.optionalString cfg.no-tcp "no-tcp"}
|
||||
|
@ -182,6 +183,13 @@ in {
|
|||
by a separate program, so this is why that other mode is 'dynamic'.
|
||||
'';
|
||||
};
|
||||
static-auth-secret-file = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to the file containing the static authentication secret.
|
||||
'';
|
||||
};
|
||||
realm = mkOption {
|
||||
type = types.str;
|
||||
default = config.networking.hostName;
|
||||
|
@ -293,42 +301,63 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.users.turnserver =
|
||||
{ uid = config.ids.uids.turnserver;
|
||||
description = "coturn TURN server user";
|
||||
};
|
||||
users.groups.turnserver =
|
||||
{ gid = config.ids.gids.turnserver;
|
||||
members = [ "turnserver" ];
|
||||
};
|
||||
config = mkIf cfg.enable (mkMerge ([
|
||||
{ assertions = [
|
||||
{ assertion = cfg.static-auth-secret != null -> cfg.static-auth-secret-file == null ;
|
||||
message = "static-auth-secret and static-auth-secret-file cannot be set at the same time";
|
||||
}
|
||||
];}
|
||||
|
||||
systemd.services.coturn = {
|
||||
description = "coturn TURN server";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
{
|
||||
users.users.turnserver =
|
||||
{ uid = config.ids.uids.turnserver;
|
||||
description = "coturn TURN server user";
|
||||
};
|
||||
users.groups.turnserver =
|
||||
{ gid = config.ids.gids.turnserver;
|
||||
members = [ "turnserver" ];
|
||||
};
|
||||
|
||||
unitConfig = {
|
||||
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
|
||||
};
|
||||
systemd.services.coturn = let
|
||||
runConfig = "/run/coturn/turnserver.cfg";
|
||||
in {
|
||||
description = "coturn TURN server";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}";
|
||||
RuntimeDirectory = "turnserver";
|
||||
User = "turnserver";
|
||||
Group = "turnserver";
|
||||
AmbientCapabilities =
|
||||
mkIf (
|
||||
cfg.listening-port < 1024 ||
|
||||
cfg.alt-listening-port < 1024 ||
|
||||
cfg.tls-listening-port < 1024 ||
|
||||
cfg.alt-tls-listening-port < 1024 ||
|
||||
cfg.min-port < 1024
|
||||
) "cap_net_bind_service";
|
||||
Restart = "on-abort";
|
||||
unitConfig = {
|
||||
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
|
||||
};
|
||||
|
||||
preStart = ''
|
||||
cat ${configFile} > ${runConfig}
|
||||
${optionalString (cfg.static-auth-secret-file != null) ''
|
||||
STATIC_AUTH_SECRET="$(head -n1 ${cfg.static-auth-secret-file} || :)"
|
||||
sed -e "s,#static-auth-secret#,$STATIC_AUTH_SECRET,g" \
|
||||
-i ${runConfig}
|
||||
'' }
|
||||
chmod 640 ${runConfig}
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${runConfig}";
|
||||
RuntimeDirectory = "turnserver";
|
||||
User = "turnserver";
|
||||
Group = "turnserver";
|
||||
AmbientCapabilities =
|
||||
mkIf (
|
||||
cfg.listening-port < 1024 ||
|
||||
cfg.alt-listening-port < 1024 ||
|
||||
cfg.tls-listening-port < 1024 ||
|
||||
cfg.alt-tls-listening-port < 1024 ||
|
||||
cfg.min-port < 1024
|
||||
) "cap_net_bind_service";
|
||||
Restart = "on-abort";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /run/coturn 0700 turnserver turnserver - -"
|
||||
];
|
||||
}]));
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Based on: https://github.com/dani-garcia/bitwarden_rs/wiki/Backing-up-your-vault
|
||||
# Based on: https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault
|
||||
if ! mkdir -p "$BACKUP_FOLDER"; then
|
||||
echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
|
||||
exit 1
|
|
@ -3,9 +3,9 @@
|
|||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.bitwarden_rs;
|
||||
user = config.users.users.bitwarden_rs.name;
|
||||
group = config.users.groups.bitwarden_rs.name;
|
||||
cfg = config.services.vaultwarden;
|
||||
user = config.users.users.vaultwarden.name;
|
||||
group = config.users.groups.vaultwarden.name;
|
||||
|
||||
# Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
||||
nameToEnvVar = name:
|
||||
|
@ -26,22 +26,26 @@ let
|
|||
if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
|
||||
) cfg.config));
|
||||
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
|
||||
WEB_VAULT_FOLDER = "${pkgs.bitwarden_rs-vault}/share/bitwarden_rs/vault";
|
||||
WEB_VAULT_FOLDER = "${pkgs.vaultwarden-vault}/share/vaultwarden/vault";
|
||||
} // configEnv;
|
||||
|
||||
configFile = pkgs.writeText "bitwarden_rs.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
|
||||
configFile = pkgs.writeText "vaultwarden.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
|
||||
|
||||
bitwarden_rs = pkgs.bitwarden_rs.override { inherit (cfg) dbBackend; };
|
||||
vaultwarden = pkgs.vaultwarden.override { inherit (cfg) dbBackend; };
|
||||
|
||||
in {
|
||||
options.services.bitwarden_rs = with types; {
|
||||
enable = mkEnableOption "bitwarden_rs";
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "bitwarden_rs" ] [ "services" "vaultwarden" ])
|
||||
];
|
||||
|
||||
options.services.vaultwarden = with types; {
|
||||
enable = mkEnableOption "vaultwarden";
|
||||
|
||||
dbBackend = mkOption {
|
||||
type = enum [ "sqlite" "mysql" "postgresql" ];
|
||||
default = "sqlite";
|
||||
description = ''
|
||||
Which database backend bitwarden_rs will be using.
|
||||
Which database backend vaultwarden will be using.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -49,7 +53,7 @@ in {
|
|||
type = nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
The directory under which bitwarden_rs will backup its persistent data.
|
||||
The directory under which vaultwarden will backup its persistent data.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -65,7 +69,7 @@ in {
|
|||
}
|
||||
'';
|
||||
description = ''
|
||||
The configuration of bitwarden_rs is done through environment variables,
|
||||
The configuration of vaultwarden is done through environment variables,
|
||||
therefore the names are converted from camel case (e.g. disable2FARemember)
|
||||
to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
||||
In this conversion digits (0-9) are handled just like upper case characters,
|
||||
|
@ -75,17 +79,17 @@ in {
|
|||
This allows working around any potential future conflicting naming conventions.
|
||||
|
||||
Based on the attributes passed to this config option an environment file will be generated
|
||||
that is passed to bitwarden_rs's systemd service.
|
||||
that is passed to vaultwarden's systemd service.
|
||||
|
||||
The available configuration options can be found in
|
||||
<link xlink:href="https://github.com/dani-garcia/bitwarden_rs/blob/${bitwarden_rs.version}/.env.template">the environment template file</link>.
|
||||
<link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
|
||||
'';
|
||||
};
|
||||
|
||||
environmentFile = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
example = "/root/bitwarden_rs.env";
|
||||
example = "/root/vaultwarden.env";
|
||||
description = ''
|
||||
Additional environment file as defined in <citerefentry>
|
||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
||||
|
@ -95,7 +99,7 @@ in {
|
|||
may be passed to the service without adding them to the world-readable Nix store.
|
||||
|
||||
Note that this file needs to be available on the host on which
|
||||
<literal>bitwarden_rs</literal> is running.
|
||||
<literal>vaultwarden</literal> is running.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
@ -106,20 +110,21 @@ in {
|
|||
message = "Backups for database backends other than sqlite will need customization";
|
||||
} ];
|
||||
|
||||
users.users.bitwarden_rs = {
|
||||
users.users.vaultwarden = {
|
||||
inherit group;
|
||||
isSystemUser = true;
|
||||
};
|
||||
users.groups.bitwarden_rs = { };
|
||||
users.groups.vaultwarden = { };
|
||||
|
||||
systemd.services.bitwarden_rs = {
|
||||
systemd.services.vaultwarden = {
|
||||
aliases = [ "bitwarden_rs" ];
|
||||
after = [ "network.target" ];
|
||||
path = with pkgs; [ openssl ];
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
Group = group;
|
||||
EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||
ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
|
||||
ExecStart = "${vaultwarden}/bin/vaultwarden";
|
||||
LimitNOFILE = "1048576";
|
||||
PrivateTmp = "true";
|
||||
PrivateDevices = "true";
|
||||
|
@ -131,15 +136,16 @@ in {
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
systemd.services.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
|
||||
description = "Backup bitwarden_rs";
|
||||
systemd.services.backup-vaultwarden = mkIf (cfg.backupDir != null) {
|
||||
aliases = [ "backup-bitwarden_rs" ];
|
||||
description = "Backup vaultwarden";
|
||||
environment = {
|
||||
DATA_FOLDER = "/var/lib/bitwarden_rs";
|
||||
BACKUP_FOLDER = cfg.backupDir;
|
||||
};
|
||||
path = with pkgs; [ sqlite ];
|
||||
serviceConfig = {
|
||||
SyslogIdentifier = "backup-bitwarden_rs";
|
||||
SyslogIdentifier = "backup-vaultwarden";
|
||||
Type = "oneshot";
|
||||
User = mkDefault user;
|
||||
Group = mkDefault group;
|
||||
|
@ -148,12 +154,13 @@ in {
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
systemd.timers.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
|
||||
description = "Backup bitwarden_rs on time";
|
||||
systemd.timers.backup-vaultwarden = mkIf (cfg.backupDir != null) {
|
||||
aliases = [ "backup-bitwarden_rs" ];
|
||||
description = "Backup vaultwarden on time";
|
||||
timerConfig = {
|
||||
OnCalendar = mkDefault "23:00";
|
||||
Persistent = "true";
|
||||
Unit = "backup-bitwarden_rs.service";
|
||||
Unit = "backup-vaultwarden.service";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
|
@ -13,7 +13,7 @@ let
|
|||
# !!! fix this
|
||||
children = mapAttrs (childName: childConfig:
|
||||
(import ../../../lib/eval-config.nix {
|
||||
inherit baseModules specialArgs;
|
||||
inherit lib baseModules specialArgs;
|
||||
system = config.nixpkgs.initialSystem;
|
||||
modules =
|
||||
(optionals childConfig.inheritParentConfig modules)
|
||||
|
|
|
@ -621,6 +621,8 @@ in
|
|||
Whether to allow TRIM requests to the underlying device. This option
|
||||
has security implications; please read the LUKS documentation before
|
||||
activating it.
|
||||
This option is incompatible with authenticated encryption (dm-crypt
|
||||
stacked over dm-integrity).
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -42,12 +42,12 @@ in
|
|||
bind = handleTest ./bind.nix {};
|
||||
bitcoind = handleTest ./bitcoind.nix {};
|
||||
bittorrent = handleTest ./bittorrent.nix {};
|
||||
bitwarden = handleTest ./bitwarden.nix {};
|
||||
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
|
||||
boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
|
||||
boot-stage1 = handleTest ./boot-stage1.nix {};
|
||||
borgbackup = handleTest ./borgbackup.nix {};
|
||||
botamusique = handleTest ./botamusique.nix {};
|
||||
btrbk = handleTest ./btrbk.nix {};
|
||||
buildbot = handleTest ./buildbot.nix {};
|
||||
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
||||
caddy = handleTest ./caddy.nix {};
|
||||
|
@ -88,6 +88,7 @@ in
|
|||
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
||||
convos = handleTest ./convos.nix {};
|
||||
corerad = handleTest ./corerad.nix {};
|
||||
coturn = handleTest ./coturn.nix {};
|
||||
couchdb = handleTest ./couchdb.nix {};
|
||||
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
|
||||
custom-ca = handleTest ./custom-ca.nix {};
|
||||
|
@ -446,6 +447,7 @@ in
|
|||
v2ray = handleTest ./v2ray.nix {};
|
||||
vault = handleTest ./vault.nix {};
|
||||
vault-postgresql = handleTest ./vault-postgresql.nix {};
|
||||
vaultwarden = handleTest ./vaultwarden.nix {};
|
||||
vector = handleTest ./vector.nix {};
|
||||
victoriametrics = handleTest ./victoriametrics.nix {};
|
||||
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
||||
|
|
110
nixos/tests/btrbk.nix
Normal file
110
nixos/tests/btrbk.nix
Normal 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
29
nixos/tests/coturn.nix
Normal 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")
|
||||
'';
|
||||
})
|
|
@ -4,7 +4,7 @@
|
|||
}:
|
||||
|
||||
# These tests will:
|
||||
# * Set up a bitwarden-rs server
|
||||
# * Set up a vaultwarden server
|
||||
# * Have Firefox use the web vault to create an account, log in, and save a password to the valut
|
||||
# * Have the bw cli log in and read that password from the vault
|
||||
#
|
||||
|
@ -24,8 +24,8 @@ let
|
|||
|
||||
storedPassword = "seeeecret";
|
||||
|
||||
makeBitwardenTest = backend: makeTest {
|
||||
name = "bitwarden_rs-${backend}";
|
||||
makeVaultwardenTest = backend: makeTest {
|
||||
name = "vaultwarden-${backend}";
|
||||
meta = {
|
||||
maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
|
||||
};
|
||||
|
@ -45,9 +45,9 @@ let
|
|||
package = pkgs.mariadb;
|
||||
};
|
||||
|
||||
services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||
services.vaultwarden.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||
|
||||
systemd.services.bitwarden_rs.after = [ "mysql.service" ];
|
||||
systemd.services.vaultwarden.after = [ "mysql.service" ];
|
||||
};
|
||||
|
||||
postgresql = {
|
||||
|
@ -60,9 +60,9 @@ let
|
|||
'';
|
||||
};
|
||||
|
||||
services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||
services.vaultwarden.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||
|
||||
systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
|
||||
systemd.services.vaultwarden.after = [ "postgresql.service" ];
|
||||
};
|
||||
|
||||
sqlite = { };
|
||||
|
@ -71,7 +71,7 @@ let
|
|||
mkMerge [
|
||||
backendConfig.${backend}
|
||||
{
|
||||
services.bitwarden_rs = {
|
||||
services.vaultwarden = {
|
||||
enable = true;
|
||||
dbBackend = backend;
|
||||
config.rocketPort = 80;
|
||||
|
@ -152,7 +152,7 @@ let
|
|||
|
||||
testScript = ''
|
||||
start_all()
|
||||
server.wait_for_unit("bitwarden_rs.service")
|
||||
server.wait_for_unit("vaultwarden.service")
|
||||
server.wait_for_open_port(80)
|
||||
|
||||
with subtest("configure the cli"):
|
||||
|
@ -184,6 +184,6 @@ let
|
|||
in
|
||||
builtins.listToAttrs (
|
||||
map
|
||||
(backend: { name = backend; value = makeBitwardenTest backend; })
|
||||
(backend: { name = backend; value = makeVaultwardenTest backend; })
|
||||
backends
|
||||
)
|
|
@ -255,12 +255,12 @@ in
|
|||
|
||||
datagrip = buildDataGrip rec {
|
||||
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";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
|
||||
sha256 = "1znb4m7sv7xqi1mq3yw0m51m06wfwmhhxmvck0xkv8s0cfg18qim"; /* updated by script */
|
||||
sha256 = "0lhi3vwhwb359va4sa17y071i03l4mfwqpsp7haqxjf900dcld7d"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-datagrip";
|
||||
update-channel = "DataGrip RELEASE";
|
||||
|
@ -268,12 +268,12 @@ in
|
|||
|
||||
goland = buildGoland rec {
|
||||
name = "goland-${version}";
|
||||
version = "2021.1.2"; /* updated by script */
|
||||
version = "2021.1.3"; /* updated by script */
|
||||
description = "Up and Coming Go IDE";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/go/${name}.tar.gz";
|
||||
sha256 = "0g20r7yn4r2h08wv3i8bnnma8x4jljixsbmfml8kixk0pzfhv4px"; /* updated by script */
|
||||
sha256 = "0xy9k90v3kcm9sj48l809qn0vws4ygsxxyqwsg6y9a3r1raqgqxd"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-goland";
|
||||
update-channel = "GoLand RELEASE";
|
||||
|
@ -281,12 +281,12 @@ in
|
|||
|
||||
idea-community = buildIdea rec {
|
||||
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";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
|
||||
sha256 = "03i5f6p0abr9yfs9fg90fg7hb1a7zar9q4d4iiag30cmndwpslg2"; /* updated by script */
|
||||
sha256 = "1phpfa9i3k7g92ankmibp53c1469ifnb12g6s8gklln7v7xxakmi"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-idea-ce";
|
||||
update-channel = "IntelliJ IDEA RELEASE";
|
||||
|
@ -294,12 +294,12 @@ in
|
|||
|
||||
idea-ultimate = buildIdea rec {
|
||||
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";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
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";
|
||||
update-channel = "IntelliJ IDEA RELEASE";
|
||||
|
@ -320,12 +320,12 @@ in
|
|||
|
||||
phpstorm = buildPhpStorm rec {
|
||||
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";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
|
||||
sha256 = "05hjv1nz1b82bkakadjvsy23v0qv8fyni6h31lcg9198h1890f7v"; /* updated by script */
|
||||
sha256 = "0p9a8l2bpjm25x4af1hlqhmw5xsirsfajznd6y723yqmjy8hs46l"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-phpstorm";
|
||||
update-channel = "PhpStorm RELEASE";
|
||||
|
@ -333,12 +333,12 @@ in
|
|||
|
||||
pycharm-community = buildPycharm rec {
|
||||
name = "pycharm-community-${version}";
|
||||
version = "2021.1.2"; /* updated by script */
|
||||
version = "2021.1.3"; /* updated by script */
|
||||
description = "PyCharm Community Edition";
|
||||
license = lib.licenses.asl20;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "0sp7w1xrl0y36dai08kqfd0jk06yr7jdbaf1a9f3fgxp5pmspxp1"; /* updated by script */
|
||||
sha256 = "0c03grsrjydb6jcnbq1qi4158c14vni3znr7vysnbvldi8al6w8m"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm-ce";
|
||||
update-channel = "PyCharm RELEASE";
|
||||
|
@ -346,12 +346,12 @@ in
|
|||
|
||||
pycharm-professional = buildPycharm rec {
|
||||
name = "pycharm-professional-${version}";
|
||||
version = "2021.1.2"; /* updated by script */
|
||||
version = "2021.1.3"; /* updated by script */
|
||||
description = "PyCharm Professional Edition";
|
||||
license = lib.licenses.unfree;
|
||||
src = fetchurl {
|
||||
url = "https://download.jetbrains.com/python/${name}.tar.gz";
|
||||
sha256 = "0ny7rbl8g5azpqnlcq8l6bwh6hrp8rgp06lf4a8gdr9rpvw9xsqb"; /* updated by script */
|
||||
sha256 = "01nwc9nprlyrwyij98px915w66g6vxbznsmmmg56rv3rvjvjp7yl"; /* updated by script */
|
||||
};
|
||||
wmClass = "jetbrains-pycharm";
|
||||
update-channel = "PyCharm RELEASE";
|
||||
|
|
|
@ -14,7 +14,7 @@ sub semantic_less {
|
|||
}
|
||||
|
||||
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 = {};
|
||||
for my $ch (@channels) {
|
||||
my ($id) = $ch =~ /^<channel id="[^"]+" name="([^"]+)"/;
|
||||
|
|
|
@ -1,8 +1,19 @@
|
|||
{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
|
||||
, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
|
||||
{ ripgrep
|
||||
, git
|
||||
, fzf
|
||||
, makeWrapper
|
||||
, vim_configurable
|
||||
, vimPlugins
|
||||
, fetchFromGitHub
|
||||
, lib
|
||||
, stdenv
|
||||
, formats
|
||||
, runCommand
|
||||
, spacevim_config ? import ./init.nix
|
||||
}:
|
||||
|
||||
let
|
||||
format = formats.toml {};
|
||||
format = formats.toml { };
|
||||
vim-customized = vim_configurable.customize {
|
||||
name = "vim";
|
||||
# Not clear at the moment how to import plugins such that
|
||||
|
@ -14,17 +25,18 @@ let
|
|||
mkdir -p $out
|
||||
cp ${format.generate "init.toml" spacevim_config} $out/init.toml
|
||||
'';
|
||||
in stdenv.mkDerivation rec {
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "spacevim";
|
||||
version = "1.6.0";
|
||||
version = "1.7.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "SpaceVim";
|
||||
repo = "SpaceVim";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
|
||||
sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper vim-customized];
|
||||
nativeBuildInputs = [ makeWrapper vim-customized ];
|
||||
buildInputs = [ vim-customized ];
|
||||
|
||||
buildPhase = ''
|
||||
|
|
|
@ -7,12 +7,12 @@
|
|||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.4.1";
|
||||
version = "3.6.0";
|
||||
pname = "darktable";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
|
||||
sha256 = "sha256-f8P4UdqbzXxQU+zQnyGqPrYQO+mKbFj1IBC28iF0lB4=";
|
||||
sha256 = "sha256:0f8aqwkgw4gs97b5i4ygiqk5zilwq7ax7zwdd31r72zk98cd1g46";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ninja llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook ];
|
||||
|
|
|
@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://about.draw.io/";
|
||||
license = licenses.asl20;
|
||||
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Multi-platform password manager";
|
||||
homepage = "https://1password.com/";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ danieldk timstott savannidgerinel ];
|
||||
maintainers = with maintainers; [ timstott savannidgerinel ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "curaengine";
|
||||
version = "4.9.1";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Ultimaker";
|
||||
repo = "CuraEngine";
|
||||
rev = version;
|
||||
sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
|
||||
sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
mkDerivation rec {
|
||||
pname = "gpxsee";
|
||||
version = "9.1";
|
||||
version = "9.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tumic0";
|
||||
repo = "GPXSee";
|
||||
rev = version;
|
||||
sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
|
||||
sha256 = "sha256-pU02Eaq6tB7X6EPOo8YAyryJRbSV3KebQv8VELxXaBw=";
|
||||
};
|
||||
|
||||
patches = (substituteAll {
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "hugo";
|
||||
version = "0.84.3";
|
||||
version = "0.84.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gohugoio";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-3SbF4JsanNup0JmtEoZlyu3SvMn01r+nhnPgIi/W8pA=";
|
||||
sha256 = "sha256-nD2UBDSDG6OFfUvDBXCfhOCiJyFMP2pDXSlIESaEfqE=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-ImXTOtN6kQL7Q8IBlmK7+i47cWtyZT0xcnQdCw3NvWM=";
|
||||
|
|
|
@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
|
|||
homepage = "https://code-industry.net/free-pdf-editor/";
|
||||
license = licenses.unfreeRedistributable;
|
||||
platforms = with platforms; [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ cmcdragonkai flokli ];
|
||||
broken = true;
|
||||
maintainers = with maintainers; [ cmcdragonkai ];
|
||||
};
|
||||
}
|
||||
|
|
36
pkgs/applications/misc/otpclient/default.nix
Normal file
36
pkgs/applications/misc/otpclient/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "3proxy";
|
||||
version = "0.9.3";
|
||||
version = "0.9.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "z3APA3A";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "9aopwyz0U2bYTvx5YWLJo9EE8Xfb51IOguHRJodjpm8=";
|
||||
sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc=";
|
||||
};
|
||||
|
||||
makeFlags = [
|
||||
|
|
|
@ -90,11 +90,11 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "brave";
|
||||
version = "1.26.67";
|
||||
version = "1.26.74";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||
sha256 = "Kg6ExXZYdSkyBoivu9h4blytHN9hOc4bUSuFR+1YZOY=";
|
||||
sha256 = "ULmoUXyPWHCewK4FPP7SX1Ena6n0aM/EWR7ZnMN1ztY=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
|
|
@ -62,7 +62,7 @@ mkChromiumDerivation (base: rec {
|
|||
-e '/\[Desktop Entry\]/a\' \
|
||||
-e 'StartupWMClass=chromium-browser' \
|
||||
$out/share/applications/chromium-browser.desktop
|
||||
'' + lib.optionalString (channel == "dev") ''
|
||||
'' + lib.optionalString (channel != "stable") ''
|
||||
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
|
||||
'';
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "dnscontrol";
|
||||
version = "3.10.0";
|
||||
version = "3.10.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "StackExchange";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-22wYc6W4a5P9+JW7NW+s85IlQ+tfLhYzDarN6PGkFk4=";
|
||||
sha256 = "sha256-fYQqH/J027XJPML/qKMpuu2Nxuvb0cyjOu2czLH8SoM=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-TPvO/E/uOyVSMNRQ3zzt15+i0UK0uHvI4qM5PqmHY20=";
|
||||
vendorSha256 = "sha256-225TR9jTZSGEJZz3csl/pR/v2unUK67l08x5ESQTJzA=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ mkDerivation, lib, fetchFromGitHub, callPackage
|
||||
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
|
||||
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
|
||||
, dee, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
|
||||
, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
|
||||
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
|
||||
, tl-expected, hunspell, glibmm, webkitgtk
|
||||
, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
|
||||
# Transitive dependencies:
|
||||
|
@ -23,7 +23,7 @@ let
|
|||
tg_owt = callPackage ./tg_owt.nix {};
|
||||
in mkDerivation rec {
|
||||
pname = "telegram-desktop";
|
||||
version = "2.8.3";
|
||||
version = "2.8.4";
|
||||
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
||||
|
||||
# Telegram-Desktop with submodules
|
||||
|
@ -32,12 +32,10 @@ in mkDerivation rec {
|
|||
repo = "tdesktop";
|
||||
rev = "v${version}";
|
||||
fetchSubmodules = true;
|
||||
sha256 = "1ywxsy3a99sdibipriblbzskmkqbnxwrz3lavfdr134wq8w8rjf7";
|
||||
sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
|
||||
--replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
|
||||
substituteInPlace Telegram/CMakeLists.txt \
|
||||
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
|
||||
'';
|
||||
|
@ -49,8 +47,8 @@ in mkDerivation rec {
|
|||
nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
|
||||
|
||||
buildInputs = [
|
||||
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
|
||||
dee ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
|
||||
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
|
||||
ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
|
||||
tl-expected hunspell glibmm webkitgtk
|
||||
libtgvoip rnnoise abseil-cpp extra-cmake-modules
|
||||
tg_owt
|
||||
|
|
|
@ -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
|
||||
, withShibboleth ? true, qtwebengine }:
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "seafile-client";
|
||||
version = "8.0.1";
|
||||
version = "8.0.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "haiwen";
|
||||
repo = "seafile-client";
|
||||
rev = "b4b944921c7efef13a93d693c45c997943899dec";
|
||||
sha256 = "2vV+6ZXjVg81JVLfWeD0UK+RdmpBxBU2Ozx790WFSyw=";
|
||||
rev = "v${version}";
|
||||
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 ];
|
||||
buildInputs = [ qtbase qttools seafile-shared jansson libsearpc ]
|
||||
++ lib.optional withShibboleth qtwebengine;
|
||||
|
|
|
@ -123,7 +123,7 @@ in stdenv.mkDerivation {
|
|||
description = "An office suite with a word processor, spreadsheet and presentation program";
|
||||
homepage = "https://www.softmaker.com/";
|
||||
license = licenses.unfree;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,11 +5,11 @@ let
|
|||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "super-productivity";
|
||||
version = "6.5.2";
|
||||
version = "7.2.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
|
||||
sha256 = "1ivl7chsv9axgk6nqkf580pav651hchi3di0mrp0pylpsqgk6f1f";
|
||||
sha256 = "93eeb56fe923c48a9384cde0633e98a9d9dc5c0869fce63b9724ff74bb400049";
|
||||
name = "${pname}-${version}.AppImage";
|
||||
};
|
||||
|
||||
|
|
|
@ -35,10 +35,10 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gwyddion";
|
||||
version = "2.58";
|
||||
version = "2.59";
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
|
||||
sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
|
||||
sha256 = "sha256-APMOJeZt/zp8JvXghKZ5lQFRKWO/4TVDORok8qAgEBk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config file ];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
|
||||
, gtk3, libXtst, glib, zlib
|
||||
, gtk3, libXtst, glib, zlib, wrapGAppsHook
|
||||
}:
|
||||
|
||||
let
|
||||
|
@ -25,7 +25,11 @@ in stdenv.mkDerivation rec {
|
|||
sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ gtk3 ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
|
@ -36,6 +40,9 @@ in stdenv.mkDerivation rec {
|
|||
cp -r "$src" "$out/toolbox"
|
||||
chmod -R +w "$out/toolbox"
|
||||
|
||||
fixupPhase
|
||||
gappsWrapperArgsHook
|
||||
|
||||
patchelf \
|
||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||
"$out/toolbox/toolbox"
|
||||
|
@ -52,7 +59,8 @@ in stdenv.mkDerivation rec {
|
|||
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
|
||||
--run "set -x; cd $out/toolbox" \
|
||||
--add-flags "-data ~/.tla-toolbox" \
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
|
||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
|
||||
echo -e "\nCreating TLA Toolbox icons..."
|
||||
pushd "$src"
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "glances";
|
||||
version = "3.1.7";
|
||||
version = "3.2.0";
|
||||
disabled = isPyPy;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nicolargo";
|
||||
repo = "glances";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU=";
|
||||
sha256 = "126xpx8i85giy3hkhqh0qcln9i1qj5bfciaqh9486rkl54xm8zsr";
|
||||
};
|
||||
|
||||
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
|
||||
|
@ -48,7 +48,7 @@ buildPythonApplication rec {
|
|||
meta = with lib; {
|
||||
homepage = "https://nicolargo.github.io/glances/";
|
||||
description = "Cross-platform curses-based monitoring tool";
|
||||
changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
|
||||
changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
|
||||
license = licenses.lgpl3Only;
|
||||
maintainers = with maintainers; [ jonringer primeos koral ];
|
||||
};
|
||||
|
|
|
@ -1,95 +1,158 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
|
||||
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
|
||||
, re2Support ? true
|
||||
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
|
||||
, guiSupport ? false, tk ? null
|
||||
, fullBuild ? false
|
||||
, gitSupport ? fullBuild
|
||||
, guiSupport ? fullBuild, tk
|
||||
, highlightSupport ? fullBuild
|
||||
, ApplicationServices
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (python3Packages) docutils python fb-re2;
|
||||
inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
|
||||
|
||||
in python3Packages.buildPythonApplication rec {
|
||||
pname = "mercurial";
|
||||
version = "5.8";
|
||||
self = python3Packages.buildPythonApplication rec {
|
||||
pname = "mercurial";
|
||||
version = "5.8";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
|
||||
(fetchpatch {
|
||||
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c365850b611490a5fdb235eb1cea310a542c2f84";
|
||||
sha256 = "1gn3xvahbjdhbglffqpmj559w1bkqqsk70wqcanwv7nh972aqy9g";
|
||||
})
|
||||
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
|
||||
(fetchpatch {
|
||||
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c8f62920f07a40af3403ba9aefa1dac8a97d53ea";
|
||||
sha256 = "1kw0xjg2c4jby0ncarjvpa5qafsyl1wzbk6jxls4hnxlxdl53nmn";
|
||||
})
|
||||
];
|
||||
|
||||
format = "other";
|
||||
|
||||
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
|
||||
|
||||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
|
||||
sourceRoot = "${pname}-${version}/rust";
|
||||
} else null;
|
||||
cargoRoot = if rustSupport then "rust" else null;
|
||||
|
||||
propagatedBuildInputs = lib.optional re2Support fb-re2
|
||||
++ lib.optional gitSupport pygit2
|
||||
++ lib.optional highlightSupport pygments;
|
||||
nativeBuildInputs = [ makeWrapper gettext installShellFiles ]
|
||||
++ lib.optionals rustSupport (with rustPlatform; [
|
||||
cargoSetupHook
|
||||
rust.cargo
|
||||
rust.rustc
|
||||
]);
|
||||
buildInputs = [ docutils ]
|
||||
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ]
|
||||
++ lib.optional rustSupport "PURE=--rust";
|
||||
|
||||
postInstall = (lib.optionalString guiSupport ''
|
||||
mkdir -p $out/etc/mercurial
|
||||
cp contrib/hgk $out/bin
|
||||
cat >> $out/etc/mercurial/hgrc << EOF
|
||||
[extensions]
|
||||
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
|
||||
EOF
|
||||
# setting HG so that hgk can be run itself as well (not only hg view)
|
||||
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
|
||||
--set HG $out/bin/hg
|
||||
--prefix PATH : ${tk}/bin "
|
||||
'') + ''
|
||||
for i in $(cd $out/bin && ls); do
|
||||
wrapProgram $out/bin/$i \
|
||||
$WRAP_TK
|
||||
done
|
||||
|
||||
# copy hgweb.cgi to allow use in apache
|
||||
mkdir -p $out/share/cgi-bin
|
||||
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
||||
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
||||
|
||||
installShellCompletion --cmd hg \
|
||||
--bash contrib/bash_completion \
|
||||
--zsh contrib/zsh_completion
|
||||
'';
|
||||
|
||||
passthru.tests = {};
|
||||
|
||||
meta = with lib; {
|
||||
inherit version;
|
||||
description = "A fast, lightweight SCM system for very large distributed projects";
|
||||
homepage = "https://www.mercurial-scm.org";
|
||||
downloadPage = "https://www.mercurial-scm.org/release/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ eelco lukegb ];
|
||||
updateWalker = true;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
};
|
||||
in
|
||||
self.overridePythonAttrs (origAttrs: {
|
||||
passthru = origAttrs.passthru // rec {
|
||||
# withExtensions takes a function which takes the python packages set and
|
||||
# returns a list of extensions to install.
|
||||
#
|
||||
# for instance: mercurial.withExtension (pm: [ pm.hg-evolve ])
|
||||
withExtensions = f: let
|
||||
python = self.python;
|
||||
mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: {
|
||||
meta = oldAttrs.meta // {
|
||||
priority = 50;
|
||||
};
|
||||
});
|
||||
plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ];
|
||||
env = python.withPackages (ps: plugins);
|
||||
in stdenv.mkDerivation {
|
||||
pname = "${self.pname}-with-extensions";
|
||||
|
||||
patches = [
|
||||
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
|
||||
(fetchpatch {
|
||||
url = "https://phab.mercurial-scm.org/file/data/l7p2r4zcctcr3pzlybv2/PHID-FILE-bwjzxlz6sbegk3s4irik/D10638.diff";
|
||||
sha256 = "0mfi324is02l7cnd3j0gbmg5rpyyqn3afg3f73flnfwmz5njqa5f";
|
||||
})
|
||||
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
|
||||
(fetchpatch {
|
||||
url = "https://phab.mercurial-scm.org/file/data/v53nhburhtkhpccyecei/PHID-FILE-6v34oll6r2gkqo4ng5nt/D10639.diff";
|
||||
sha256 = "0h5ilrd2x1789fr6sf4k1mcvxdh0xdyr94yawdacw87v3x12c8cb";
|
||||
})
|
||||
];
|
||||
inherit (self) src version meta;
|
||||
|
||||
format = "other";
|
||||
buildInputs = self.buildInputs ++ self.propagatedBuildInputs;
|
||||
nativeBuildInputs = self.nativeBuildInputs;
|
||||
|
||||
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
|
||||
phases = [ "installPhase" "installCheckPhase" ];
|
||||
|
||||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||
inherit src;
|
||||
name = "${pname}-${version}";
|
||||
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
|
||||
sourceRoot = "${pname}-${version}/rust";
|
||||
} else null;
|
||||
cargoRoot = if rustSupport then "rust" else null;
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
propagatedBuildInputs = lib.optional re2Support fb-re2;
|
||||
nativeBuildInputs = [ makeWrapper gettext ]
|
||||
++ lib.optionals rustSupport (with rustPlatform; [
|
||||
cargoSetupHook
|
||||
rust.cargo
|
||||
rust.rustc
|
||||
]);
|
||||
buildInputs = [ docutils ]
|
||||
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
|
||||
mkdir -p $out/bin
|
||||
|
||||
makeFlags = [ "PREFIX=$(out)" ]
|
||||
++ lib.optional rustSupport "PURE=--rust";
|
||||
for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
|
||||
for bin in $bindir/*; do
|
||||
ln -s ${env}/bin/$(basename $bin) $out/bin/
|
||||
done
|
||||
done
|
||||
|
||||
postInstall = (lib.optionalString guiSupport ''
|
||||
mkdir -p $out/etc/mercurial
|
||||
cp contrib/hgk $out/bin
|
||||
cat >> $out/etc/mercurial/hgrc << EOF
|
||||
[extensions]
|
||||
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
|
||||
EOF
|
||||
# setting HG so that hgk can be run itself as well (not only hg view)
|
||||
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
|
||||
--set HG $out/bin/hg
|
||||
--prefix PATH : ${tk}/bin "
|
||||
'') + ''
|
||||
for i in $(cd $out/bin && ls); do
|
||||
wrapProgram $out/bin/$i \
|
||||
$WRAP_TK
|
||||
done
|
||||
ln -s ${self}/share $out/share
|
||||
|
||||
# copy hgweb.cgi to allow use in apache
|
||||
mkdir -p $out/share/cgi-bin
|
||||
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
||||
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# install bash/zsh completions
|
||||
install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
|
||||
install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
|
||||
'';
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
meta = with lib; {
|
||||
inherit version;
|
||||
description = "A fast, lightweight SCM system for very large distributed projects";
|
||||
homepage = "https://www.mercurial-scm.org";
|
||||
downloadPage = "https://www.mercurial-scm.org/release/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ eelco lukegb ];
|
||||
updateWalker = true;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
$out/bin/hg help >/dev/null || exit 1
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
};
|
||||
|
||||
tests = origAttrs.passthru.tests // {
|
||||
withExtensions = withExtensions (pm: [ pm.hg-evolve ]);
|
||||
};
|
||||
};
|
||||
})
|
||||
|
|
|
@ -1,25 +1,16 @@
|
|||
{ lib, fetchurl, python3Packages
|
||||
, mercurial, qt5
|
||||
}@args:
|
||||
}:
|
||||
let
|
||||
tortoisehgSrc = fetchurl rec {
|
||||
meta.name = "tortoisehg-${meta.version}";
|
||||
meta.version = "5.6";
|
||||
meta.version = "5.8";
|
||||
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
|
||||
sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
|
||||
sha256 = "154q7kyrdk045wx7rsblzx41k3wbvp2f40kzkxmiiaa5n35srsm3";
|
||||
};
|
||||
|
||||
tortoiseMercurial = (mercurial.override {
|
||||
rustSupport = false;
|
||||
re2Support = lib.versionAtLeast tortoisehgSrc.meta.version "5.8";
|
||||
}).overridePythonAttrs (old: rec {
|
||||
inherit (tortoisehgSrc.meta) version;
|
||||
src = fetchurl {
|
||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||
sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
|
||||
};
|
||||
patches = [];
|
||||
});
|
||||
# Extension point for when thg's mercurial is lagging behind mainline.
|
||||
tortoiseMercurial = mercurial;
|
||||
|
||||
in python3Packages.buildPythonApplication {
|
||||
inherit (tortoisehgSrc.meta) name version;
|
||||
|
@ -49,7 +40,7 @@ in python3Packages.buildPythonApplication {
|
|||
meta = {
|
||||
description = "Qt based graphical tool for working with Mercurial";
|
||||
homepage = "https://tortoisehg.bitbucket.io/";
|
||||
license = lib.licenses.gpl2;
|
||||
license = lib.licenses.gpl2Only;
|
||||
platforms = lib.platforms.linux;
|
||||
maintainers = with lib.maintainers; [ danbst ];
|
||||
};
|
||||
|
|
|
@ -72,6 +72,6 @@ in mkDerivation {
|
|||
license = licenses.unfree;
|
||||
homepage = "http://makemkv.com";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = with maintainers; [ danieldk titanous ];
|
||||
maintainers = with maintainers; [ titanous ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, scdoc
|
||||
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||
, wayland, wayland-protocols, systemd
|
||||
}:
|
||||
|
||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
--replace "version: '1.5'" "version: '${version}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||
buildInputs = [ wayland wayland-protocols systemd ];
|
||||
|
||||
mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub
|
||||
, meson, ninja, pkg-config, scdoc
|
||||
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||
, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
|
||||
}:
|
||||
|
||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
--replace "version: '1.4'" "version: '${version}'"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
||||
|
||||
mesonFlags = [
|
||||
|
|
|
@ -117,7 +117,8 @@ rec {
|
|||
--tmpdir=$TMPDIR \
|
||||
--override-os ${os} \
|
||||
--override-arch ${arch} \
|
||||
copy "$sourceURL" "docker-archive://$out:$destNameTag"
|
||||
copy "$sourceURL" "docker-archive://$out:$destNameTag" \
|
||||
| cat # pipe through cat to force-disable progress bar
|
||||
'';
|
||||
|
||||
# We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, fetchzip }:
|
||||
|
||||
let
|
||||
version = "5.000";
|
||||
version = "6.000";
|
||||
in
|
||||
fetchzip rec {
|
||||
name = "charis-sil-${version}";
|
||||
|
@ -14,7 +14,7 @@ in
|
|||
unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
|
||||
'';
|
||||
|
||||
sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
|
||||
sha256 = "sha256-eMmC893rI42qzZVCI17i9XSAbQzXCK2fHVe5Pf1/VnM=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://software.sil.org/charis";
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, fetchzip }:
|
||||
|
||||
let
|
||||
version = "4.47.0";
|
||||
version = "4.49.1";
|
||||
in fetchzip {
|
||||
name = "terminus-font-ttf-${version}";
|
||||
|
||||
|
@ -18,7 +18,7 @@ in fetchzip {
|
|||
install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
|
||||
'';
|
||||
|
||||
sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
|
||||
sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "A clean fixed width TTF font";
|
||||
|
|
|
@ -38,6 +38,6 @@ stdenvNoCC.mkDerivation {
|
|||
description = "A set of default and supplemental wallpapers for Fedora";
|
||||
license = licenses.cc-by-sa-40;
|
||||
platforms = platforms.unix;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -12,13 +12,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bulky";
|
||||
version = "1.6";
|
||||
version = "1.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "bulky";
|
||||
rev = version;
|
||||
sha256 = "sha256-cO6AhQ0g1N43du74fljfI1M68jb9N04FKUyzjbzC3K0=";
|
||||
sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -339,8 +339,6 @@ lib.makeScope pkgs.newScope (self: with self; {
|
|||
|
||||
inherit (pkgs) gnome-user-docs; # added 2019-11-20
|
||||
|
||||
inherit (pkgs) gegl_0_4; # added 2019-10-31
|
||||
|
||||
inherit (pkgs) gjs; # added 2019-01-05
|
||||
|
||||
inherit (pkgs) yelp-tools; # added 2019-11-20
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{ lib, buildRebar3, fetchFromGitHub }:
|
||||
buildRebar3 rec {
|
||||
name = "rebar3_nix";
|
||||
version = "0.1.0";
|
||||
version = "0.1.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "erlang-nix";
|
||||
repo = name;
|
||||
rev = "v${version}";
|
||||
sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf";
|
||||
sha256 = "10ijc06qvv5hqv0qy3w7mbv9pshdb8bvy0f3phr1vd5hksbk731y";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
|
|||
description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
|
||||
homepage = "https://llvm.org/";
|
||||
license = with licenses; [ ncsa ];
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
|||
description = "ROCm fork of the LLVM Linker";
|
||||
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
||||
license = licenses.ncsa;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
|
|||
description = "ROCm fork of the LLVM compiler infrastructure";
|
||||
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
||||
license = with licenses; [ ncsa ];
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ in
|
|||
, enableParallelBuilding ? true
|
||||
, maintainers ? null
|
||||
, changelog ? null
|
||||
, mainProgram ? null
|
||||
, doCoverage ? false
|
||||
, doHaddock ? !(ghc.isHaLVM or false)
|
||||
, passthru ? {}
|
||||
|
@ -666,6 +667,7 @@ stdenv.mkDerivation ({
|
|||
// optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
|
||||
// optionalAttrs (args ? badPlatforms) { inherit badPlatforms; }
|
||||
// optionalAttrs (args ? changelog) { inherit changelog; }
|
||||
// optionalAttrs (args ? mainProgram) { inherit mainProgram; }
|
||||
;
|
||||
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "alda";
|
||||
version = "1.4.4";
|
||||
version = "1.5.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
|
||||
sha256 = "sha256-zIq8coSh4B9VGrixkQfhySK7qhlFG2p7O0suvbiScKY=";
|
||||
sha256 = "sha256-OHbOsgYN87ThU7EgjCgxADnOv32qIi+7XwDwcW0dmV0=";
|
||||
};
|
||||
|
||||
dontUnpack = true;
|
||||
|
|
|
@ -85,6 +85,6 @@ in stdenv.mkDerivation rec {
|
|||
changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
|
||||
license = licenses.mit;
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
maintainers = with maintainers; [ danieldk Flakebi ];
|
||||
maintainers = with maintainers; [ Flakebi ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "armadillo";
|
||||
version = "10.5.2";
|
||||
version = "10.5.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||
sha256 = "sha256-Y/I87cVIpelASBblDPj4/MSSqxqtxsDO8wv8Kvzq2V8=";
|
||||
sha256 = "sha256-5sUdjVKm94ucZFn2mGE1CT4O5wWmdDBxEPYXXyzV7jc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -10,13 +10,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "babl";
|
||||
version = "0.1.86";
|
||||
version = "0.1.88";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-Cz9ZUVmtGyFs1ynAUEw6X2z3gMZB9Nxj/BZPPAOCyPA=";
|
||||
sha256 = "sha256-Tw1/SqoLsucl80mt97NRqVfZ+ybVVdmJWnr4FrQWcDk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "duckdb";
|
||||
version = "0.2.2";
|
||||
version = "0.2.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cwida";
|
||||
repo = "duckdb";
|
||||
rev = "v${version}";
|
||||
sha256 = "1pzz2zjzpvji5am21vd9kjxj0pnxsjmrsfqrym9h2rk2mi7p2cx8";
|
||||
sha256 = "0cnqq2n1424fqg7gfyvrwkk6nvjal2fm5n08xc8q28ynyhq4sfmj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, wayland-scanner
|
||||
, libX11
|
||||
, mesa
|
||||
, libGL
|
||||
|
@ -51,10 +52,15 @@ in stdenv.mkDerivation rec {
|
|||
sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
|
||||
};
|
||||
|
||||
depsBuildBuild = [
|
||||
pkg-config
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wayland-scanner
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -1,43 +1,115 @@
|
|||
{ lib, stdenv
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, vala
|
||||
, gobject-introspection
|
||||
, gtk-doc
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_43
|
||||
, glib
|
||||
, babl
|
||||
, libpng
|
||||
, cairo
|
||||
, libjpeg
|
||||
, librsvg
|
||||
, lensfun
|
||||
, libspiro
|
||||
, maxflow
|
||||
, netsurf
|
||||
, pango
|
||||
, gtk2
|
||||
, poly2tri-c
|
||||
, poppler
|
||||
, bzip2
|
||||
, intltool
|
||||
, libintl
|
||||
, OpenGL ? null }:
|
||||
, json-glib
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, libraw
|
||||
, gexiv2
|
||||
, libwebp
|
||||
, luajit
|
||||
, openexr
|
||||
, OpenCL
|
||||
, suitesparse
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gegl";
|
||||
version = "0.2.0";
|
||||
version = "0.4.30";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
outputBin = "dev";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://ftp.gtk.org/pub/gegl/0.2/${pname}-${version}.tar.bz2";
|
||||
sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426";
|
||||
url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
|
||||
};
|
||||
|
||||
patches = [( fetchurl {
|
||||
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/"
|
||||
+ "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9";
|
||||
sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59";
|
||||
name = "CVE-2012-4433.patch";
|
||||
})];
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
vala
|
||||
gobject-introspection
|
||||
gtk-doc
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_43
|
||||
];
|
||||
|
||||
# needs fonts otherwise don't know how to pass them
|
||||
configureFlags = [ "--disable-docs" ];
|
||||
buildInputs = [
|
||||
libpng
|
||||
cairo
|
||||
libjpeg
|
||||
librsvg
|
||||
lensfun
|
||||
libspiro
|
||||
maxflow
|
||||
netsurf.libnsgif
|
||||
pango
|
||||
poly2tri-c
|
||||
poppler
|
||||
bzip2
|
||||
libraw
|
||||
libwebp
|
||||
gexiv2
|
||||
luajit
|
||||
openexr
|
||||
suitesparse
|
||||
] ++ lib.optional stdenv.isDarwin OpenCL;
|
||||
|
||||
buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk2 bzip2 intltool libintl ]
|
||||
++ lib.optional stdenv.isDarwin OpenGL;
|
||||
# for gegl-4.0.pc
|
||||
propagatedBuildInputs = [
|
||||
glib
|
||||
json-glib
|
||||
babl
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
mesonFlags = [
|
||||
"-Ddocs=true"
|
||||
"-Dmrg=disabled" # not sure what that is
|
||||
"-Dsdl2=disabled"
|
||||
"-Dpygobject=disabled"
|
||||
"-Dlibav=disabled"
|
||||
"-Dlibv4l=disabled"
|
||||
"-Dlibv4l2=disabled"
|
||||
# Disabled due to multiple vulnerabilities, see
|
||||
# https://github.com/NixOS/nixpkgs/pull/73586
|
||||
"-Djasper=disabled"
|
||||
];
|
||||
|
||||
doCheck = false; # fails 3 out of 19 tests
|
||||
# TODO: Fix missing math symbols in gegl seamless clone.
|
||||
# It only appears when we use packaged poly2tri-c instead of vendored one.
|
||||
NIX_CFLAGS_COMPILE = "-lm";
|
||||
|
||||
postPatch = ''
|
||||
chmod +x tests/opencl/opencl_test.sh
|
||||
patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
|
||||
'';
|
||||
|
||||
# tests fail to connect to the com.apple.fonts daemon in sandboxed mode
|
||||
doCheck = !stdenv.isDarwin;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Graph-based image processing framework";
|
||||
|
|
22
pkgs/development/libraries/libbaseencode/default.nix
Normal file
22
pkgs/development/libraries/libbaseencode/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
23
pkgs/development/libraries/libcotp/default.nix
Normal file
23
pkgs/development/libraries/libcotp/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
34
pkgs/development/libraries/libliftoff/default.nix
Normal file
34
pkgs/development/libraries/libliftoff/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libvmaf";
|
||||
version = "2.1.1";
|
||||
version = "2.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "netflix";
|
||||
repo = "vmaf";
|
||||
rev = "v${version}";
|
||||
sha256 = "0dynk1pmsyf23vfxljaazqkr27vfrvhj3dyjzm06zxpzsn59aif3";
|
||||
sha256 = "1jlmivmdzlhizljbmsvqqxnhjfyjh8zxyf5xv6j040vbfj4mf14f";
|
||||
};
|
||||
|
||||
sourceRoot = "source/libvmaf";
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "libxlsxwriter";
|
||||
version = "1.0.6";
|
||||
version = "1.0.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jmcnamara";
|
||||
repo = "libxlsxwriter";
|
||||
rev = "RELEASE_${version}";
|
||||
sha256 = "03fdcbm0xnkxwv6fir4yy4x9q2p5h08j099w9xh5gc2ni7ygjlyx";
|
||||
sha256 = "1z9bkg0pfkzxbpj2rys4mx9wmcxyjjqsg0nbiaabsg455q00plki";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
stdenv, lib, fetchFromGitHub,
|
||||
stdenv, lib, fetchFromGitHub, symlinkJoin,
|
||||
cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
|
||||
|
||||
glew, freeglut, # Only required on Linux
|
||||
|
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
buildInputs = [ expat libyamlcpp ilmbase pystring ]
|
||||
nativeBuildInputs = [ cmake (symlinkJoin { name = "expat"; paths = [ expat.out expat.dev ]; }) ];
|
||||
buildInputs = [ expat.out libyamlcpp ilmbase pystring ]
|
||||
++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
|
||||
++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]
|
||||
|
|
|
@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Radeon Open Compute common language runtime";
|
||||
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
# rocclr seems to have some AArch64 ifdefs, but does not seem
|
||||
# to be supported yet by the build infrastructure. Recheck in
|
||||
# the future.
|
||||
|
|
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
|||
description = "APIs for compiling and inspecting AMDGPU code objects";
|
||||
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
|
||||
license = licenses.ncsa;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
|||
description = "Set of AMD-specific device-side language runtime libraries";
|
||||
homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
|
||||
license = licenses.ncsa;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||
meta = with lib; {
|
||||
description = "OpenCL ICD definition for AMD GPUs using the ROCm stack";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ stdenv.mkDerivation rec {
|
|||
description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
|
||||
homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
|
||||
license = with licenses; [ asl20 mit ];
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -43,6 +43,6 @@ stdenv.mkDerivation rec {
|
|||
description = "Platform runtime for ROCm";
|
||||
homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
|
||||
license = with licenses; [ ncsa ];
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
|
|||
description = "Radeon open compute thunk interface";
|
||||
homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface";
|
||||
license = with licenses; [ bsd2 mit ];
|
||||
maintainers = with maintainers; [ danieldk ];
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
|
|||
# $out for the library and $examples for the example programs (in examples):
|
||||
outputs = [ "out" "examples" ];
|
||||
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
, "indium"
|
||||
, "insect"
|
||||
, "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"
|
||||
, "javascript-typescript-langserver"
|
||||
, "joplin"
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
|
||||
buildDunePackage rec {
|
||||
pname = "alcotest";
|
||||
version = "1.2.3";
|
||||
version = "1.3.0";
|
||||
|
||||
useDune2 = true;
|
||||
|
||||
src = fetchurl {
|
||||
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 ];
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
{ lib, buildDunePackage, alcotest, logs, ocaml_lwt }:
|
||||
{ lib, buildDunePackage, alcotest, logs, ocaml_lwt, fmt
|
||||
, re, cmdliner
|
||||
}:
|
||||
|
||||
buildDunePackage {
|
||||
pname = "alcotest-lwt";
|
||||
|
||||
inherit (alcotest) version src useDune2;
|
||||
|
||||
propagatedBuildInputs = [ alcotest logs ocaml_lwt ];
|
||||
propagatedBuildInputs = [ alcotest logs ocaml_lwt fmt ];
|
||||
|
||||
doCheck = true;
|
||||
checkInputs = [ re cmdliner ];
|
||||
|
||||
meta = alcotest.meta // {
|
||||
description = "Lwt-based helpers for Alcotest";
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bashlex";
|
||||
version = "0.14";
|
||||
version = "0.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "idank";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "070spmbf53y18miky5chgky4x5h8kp9czkp7dm173klv9pi2cn0k";
|
||||
sha256 = "sha256-kKVorAIKlyC9vUzLOlaZ/JrG1kBBRIvLwBmHNj9nx84=";
|
||||
};
|
||||
|
||||
checkInputs = [ nose ];
|
||||
|
@ -29,9 +29,11 @@ buildPythonPackage rec {
|
|||
${python.interpreter} -m nose --with-doctest
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [ "bashlex" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python parser for bash";
|
||||
license = licenses.gpl3;
|
||||
license = licenses.gpl3Plus;
|
||||
homepage = "https://github.com/idank/bashlex";
|
||||
maintainers = with maintainers; [ multun ];
|
||||
};
|
||||
|
|
|
@ -8,12 +8,12 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "bugsnag";
|
||||
version = "4.0.3";
|
||||
version = "4.1.0";
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0b70bc95e4e4f98b2eef7a3dadfdc50c1a40da7f50446adf43be05574a4b9f7c";
|
||||
sha256 = "sha256-3L1ZzZ7eomzJLvtlGK7YOi81b4G/1azHML/iAvsnwcE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ six webob ];
|
||||
|
|
|
@ -1,25 +1,45 @@
|
|||
{ buildPythonPackage
|
||||
, enum34
|
||||
, fetchPypi
|
||||
, fetchFromGitHub
|
||||
, flit-core
|
||||
, isPy27
|
||||
, lib
|
||||
, pathlib
|
||||
, pyyaml
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "confuse";
|
||||
version = "1.4.0";
|
||||
version = "1.5.0";
|
||||
format = "flit";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-kvwEUcbiwnMqw2PQ9Z1+pgir3b7QYt2o6Y6ajJhs5GQ=";
|
||||
src = fetchFromGitHub {
|
||||
owner = "beetbox";
|
||||
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; {
|
||||
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";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ lovesegfault ];
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
{ lib, buildPythonPackage, fetchFromGitHub }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "2.0.1";
|
||||
version = "2.2.post0";
|
||||
pname = "crc32c";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ICRAR";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0vyac7pchh083h5qdjwhhacfq77frkrq1bjzsn51qv1vwcdrpnrf";
|
||||
sha256 = "sha256-0FgNOVpgJTxRALuufZ7Dt1TwuX+zqw35yCq8kmq4RTc=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, fetchpatch
|
||||
, isPy3k
|
||||
, pytestCheckHook
|
||||
, sphinx
|
||||
|
@ -10,31 +9,19 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "curio";
|
||||
version = "1.4";
|
||||
version = "1.5";
|
||||
disabled = !isPy3k;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "57edce81c837f3c2cf42fbb346dee26e537d1659e6605269fb13bd179e068744";
|
||||
sha256 = "sha256-rwghLlkLt9qOTMOcQgEnEUlNwg1iLxYhVbopbMLjvBA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix the flaky test due to slow moving time on Apple Silicon chips.
|
||||
# Remove when https://github.com/dabeaz/curio/pull/339 is in the next release.
|
||||
(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=";
|
||||
})
|
||||
checkInputs = [
|
||||
pytestCheckHook
|
||||
sphinx
|
||||
];
|
||||
|
||||
disabled = !isPy3k;
|
||||
|
||||
checkInputs = [ pytestCheckHook sphinx ];
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
disabledTests = [
|
||||
|
@ -46,9 +33,11 @@ buildPythonPackage rec {
|
|||
"test_unix_ssl_server" # socket bind error on hydra when built with other packages
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "curio" ];
|
||||
|
||||
meta = with lib; {
|
||||
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;
|
||||
maintainers = [ maintainers.marsam ];
|
||||
};
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "cvxpy";
|
||||
version = "1.1.12";
|
||||
version = "1.1.13";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-tJnr+uT8ZF6VI2IVc//LHFtoVKG1wM4dZqippFhgWAc=";
|
||||
sha256 = "012avhf0a8n9xyy4g3xcr5z8z2a3m6rnqic6gfs9fq6p9bkq3ix9";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -42,8 +42,10 @@ buildPythonPackage rec {
|
|||
'';
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
pytestFlagsArray = [ "./cvxpy" ];
|
||||
# Disable the slowest benchmarking tests, cuts test time in half
|
||||
|
||||
# Disable the slowest benchmarking tests, cuts test time in half
|
||||
disabledTests = [
|
||||
"test_tv_inpainting"
|
||||
"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
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "cvxpy" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A domain-specific language for modeling convex optimization problems in Python";
|
||||
homepage = "https://www.cvxpy.org/";
|
||||
|
|
|
@ -20,14 +20,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dask";
|
||||
version = "2021.06.1";
|
||||
version = "2021.06.2";
|
||||
disabled = pythonOlder "3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dask";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-wrUqLSmlKhd0NSjWBwbow8aX53ZBTgl2n4lEmvxC3bs=";
|
||||
sha256 = "sha256-qvfjdijzlqaJQrDztRAVr5PudTaVd3WOTBid2ElZQgg=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "2.0";
|
||||
version = "2.0.1";
|
||||
pname = "dbutils";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "DBUtils";
|
||||
sha256 = "131ifm2c2a7bipij597i8fvjka0dk2qv1xr2ghcvbc30jlkvag2g";
|
||||
sha256 = "sha256-Vw590TbBMRb+74vKGGCeP2a4ZoqcPV8hCdh0TERE2GE=";
|
||||
};
|
||||
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "deezer-python";
|
||||
version = "2.2.4";
|
||||
version = "2.3.0";
|
||||
disabled = pythonOlder "3.6";
|
||||
format = "pyproject";
|
||||
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "browniebroke";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "11gqmyf350256gbppak2qv20lg2bmszand4kmks93wphq5yp2iiy";
|
||||
sha256 = "sha256-pRYC0kJHJ5SKgDdGS1KkQEbv+DkF9oPw/A1GnB0AwfQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "devolo-home-control-api";
|
||||
version = "0.17.3";
|
||||
version = "0.17.4";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "2Fake";
|
||||
repo = "devolo_home_control_api";
|
||||
rev = "v${version}";
|
||||
sha256 = "1h7admqb1l28sxwhhkkhw0sfzgpn8zpczvmi3h28f68csflkv379";
|
||||
sha256 = "sha256-N/48Q2IEL194vCzrPPuy+mRNejXfkoXy2t2oe0Y6ug4=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dicom2nifti";
|
||||
version = "2.2.12";
|
||||
version = "2.3.0";
|
||||
disabled = isPy27;
|
||||
|
||||
# no tests in PyPI dist
|
||||
|
@ -21,7 +21,7 @@ buildPythonPackage rec {
|
|||
owner = "icometrix";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0ddzaw0yasyi2wsh7a6r73cdcmdfbb0nh0k0n4yxp9vnkw1ag5z4";
|
||||
sha256 = "sha256-QSu9CGXFjDpI25Cy6QSbrwiQ2bwsVezCUxSovRLs6AI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ nibabel numpy pydicom scipy setuptools ];
|
||||
|
|
57
pkgs/development/python-modules/diff-cover/default.nix
Normal file
57
pkgs/development/python-modules/diff-cover/default.nix
Normal 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 ];
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
, dask
|
||||
, msgpack
|
||||
, psutil
|
||||
, six
|
||||
, sortedcontainers
|
||||
, tblib
|
||||
, toolz
|
||||
|
@ -20,27 +19,39 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "distributed";
|
||||
version = "2021.6.1";
|
||||
version = "2021.6.2";
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
# get full repository need conftest.py to run tests
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-Z79h/WAio5diX2myChx8HPAWe2RB4Ajw7Ybch4XUYFc=";
|
||||
sha256 = "sha256-19ESqGqwSdzvo7If0brqQhKiwD0iwkvVWtONIaf10Ug=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
click cloudpickle dask msgpack psutil six
|
||||
sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh
|
||||
bokeh
|
||||
click
|
||||
cloudpickle
|
||||
dask
|
||||
mpi4py
|
||||
msgpack
|
||||
psutil
|
||||
pyyaml
|
||||
sortedcontainers
|
||||
tblib
|
||||
toolz
|
||||
tornado
|
||||
zict
|
||||
];
|
||||
|
||||
# when tested random tests would fail and not repeatably
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "distributed" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Distributed computation in Python.";
|
||||
homepage = "https://distributed.readthedocs.io/en/latest/";
|
||||
description = "Distributed computation in Python";
|
||||
homepage = "https://distributed.readthedocs.io/";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.x86; # fails on aarch64
|
||||
maintainers = with maintainers; [ teh costrouc ];
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "Django";
|
||||
version = "3.2.4";
|
||||
version = "3.2.5";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "15pjwyvrx4n8gi8n51b14wp54bg4jqapr25p52597zn6ikdxijb6";
|
||||
sha256 = "1kam3301jl53vm0mhflwwsqy5d7kb5dksmjanlaj7v7xakm5z81x";
|
||||
};
|
||||
|
||||
patches = lib.optional withGdal
|
||||
|
|
|
@ -7,16 +7,18 @@
|
|||
, astropy
|
||||
, pytestCheckHook
|
||||
, pytest-doctestplus
|
||||
, pythonOlder
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "drms";
|
||||
version = "0.6.0";
|
||||
version = "0.6.2";
|
||||
format = "pyproject";
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "74efb903f42647ea536de0c5aea4f9a81efe027c95055ec4e72ef62479a04c89";
|
||||
sha256 = "sha256-Id8rPK8qq71gHn5DKnEi7Lp081GFbcFtGU+v89Vlt9o=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -31,10 +33,12 @@ buildPythonPackage rec {
|
|||
pytest-doctestplus
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "drms" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Access HMI, AIA and MDI data with Python";
|
||||
homepage = "https://github.com/sunpy/drms";
|
||||
license = licenses.mit;
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ costrouc ];
|
||||
};
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue