Project import generated by Copybara.
GitOrigin-RevId: 20887e4bbfdae3aed6bfa1f53ddf138ee325515e
This commit is contained in:
parent
a8ecef63af
commit
b96e6f4393
307 changed files with 2443 additions and 1104 deletions
|
@ -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:
|
||||
|
|
|
@ -439,7 +439,7 @@ The following example shows which arguments are given to `buildPythonPackage` in
|
|||
order to build [`datashape`](https://github.com/blaze/datashape).
|
||||
|
||||
```nix
|
||||
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, dateutil, pytest }:
|
||||
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, python-dateutil, pytest }:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "datashape";
|
||||
|
@ -451,7 +451,7 @@ buildPythonPackage rec {
|
|||
};
|
||||
|
||||
checkInputs = [ pytest ];
|
||||
propagatedBuildInputs = [ numpy multipledispatch dateutil ];
|
||||
propagatedBuildInputs = [ numpy multipledispatch python-dateutil ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/ContinuumIO/datashape";
|
||||
|
@ -463,7 +463,7 @@ buildPythonPackage rec {
|
|||
```
|
||||
|
||||
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
||||
`dateutil`. Furthermore, we have one `checkInputs`, i.e. `pytest`. `pytest` is a
|
||||
`python-dateutil`. Furthermore, we have one `checkInputs`, i.e. `pytest`. `pytest` is a
|
||||
test runner and is only used during the `checkPhase` and is therefore not added
|
||||
to `propagatedBuildInputs`.
|
||||
|
||||
|
|
|
@ -10644,6 +10644,12 @@
|
|||
github = "totoroot";
|
||||
githubId = 39650930;
|
||||
};
|
||||
ToxicFrog = {
|
||||
email = "toxicfrog@ancilla.ca";
|
||||
github = "ToxicFrog";
|
||||
githubId = 90456;
|
||||
name = "Rebecca (Bex) Kelly";
|
||||
};
|
||||
travisbhartwell = {
|
||||
email = "nafai@travishartwell.net";
|
||||
github = "travisbhartwell";
|
||||
|
|
|
@ -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
third_party/nixpkgs/nixos/modules/services/backup/btrbk.nix
vendored
Normal file
220
third_party/nixpkgs/nixos/modules/services/backup/btrbk.nix
vendored
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)
|
||||
|
|
|
@ -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
third_party/nixpkgs/nixos/tests/btrbk.nix
vendored
Normal file
110
third_party/nixpkgs/nixos/tests/btrbk.nix
vendored
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
third_party/nixpkgs/nixos/tests/coturn.nix
vendored
Normal file
29
third_party/nixpkgs/nixos/tests/coturn.nix
vendored
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
|
||||
)
|
|
@ -40,7 +40,7 @@ pythonPackages.buildPythonApplication rec {
|
|||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
chromaprint
|
||||
dateutil
|
||||
python-dateutil
|
||||
discid
|
||||
fasteners
|
||||
mutagen
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
|
||||
readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
|
||||
libLAS proj-datumgrid ]
|
||||
++ (with python2Packages; [ python dateutil wxPython30 numpy ]);
|
||||
++ (with python2Packages; [ python python-dateutil wxPython30 numpy ]);
|
||||
|
||||
# On Darwin the installer tries to symlink the help files into a system
|
||||
# directory
|
||||
|
|
|
@ -12,7 +12,7 @@ let
|
|||
numpy
|
||||
psycopg2
|
||||
chardet
|
||||
dateutil
|
||||
python-dateutil
|
||||
pyyaml
|
||||
pytz
|
||||
requests
|
||||
|
|
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
|
|||
psutil
|
||||
pyxdg
|
||||
arrow
|
||||
dateutil
|
||||
python-dateutil
|
||||
easygui
|
||||
colour
|
||||
pymediainfo
|
||||
|
|
|
@ -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" ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -77,7 +77,7 @@ mkDerivation rec {
|
|||
cchardet
|
||||
css-parser
|
||||
cssselect
|
||||
dateutil
|
||||
python-dateutil
|
||||
dnspython
|
||||
feedparser
|
||||
html2text
|
||||
|
|
|
@ -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 ];
|
||||
|
|
|
@ -20,7 +20,7 @@ buildPythonApplication rec {
|
|||
'';
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil gflags httplib2 parsedatetime six vobject
|
||||
python-dateutil gflags httplib2 parsedatetime six vobject
|
||||
google-api-python-client oauth2client uritemplate
|
||||
libnotify
|
||||
];
|
||||
|
|
|
@ -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=";
|
||||
|
|
|
@ -18,7 +18,7 @@ with python3.pkgs; buildPythonApplication rec {
|
|||
click
|
||||
click-log
|
||||
configobj
|
||||
dateutil
|
||||
python-dateutil
|
||||
icalendar
|
||||
lxml
|
||||
pkgs.vdirsyncer
|
||||
|
|
|
@ -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
third_party/nixpkgs/pkgs/applications/misc/otpclient/default.nix
vendored
Normal file
36
third_party/nixpkgs/pkgs/applications/misc/otpclient/default.nix
vendored
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 ];
|
||||
};
|
||||
}
|
|
@ -29,7 +29,7 @@ python3Packages.buildPythonApplication rec {
|
|||
pikepdf
|
||||
img2pdf
|
||||
setuptools
|
||||
dateutil
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
# incompatible with wrapGAppsHook
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "5.0.1";
|
||||
version = "5.0.2";
|
||||
|
||||
subsurfaceSrc = (fetchFromGitHub {
|
||||
owner = "Subsurface";
|
||||
repo = "subsurface";
|
||||
rev = "v${version}";
|
||||
sha256 = "01r836ckvrmgprjf4cqxn2n3w5w4pa2fjrhspjndsspic8nwlrwg";
|
||||
sha256 = "1yay06m8p9qp2ghrg8dxavdq55y09apcgdnb7rihgs3hq86k539n";
|
||||
fetchSubmodules = true;
|
||||
});
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
, buildPythonApplication
|
||||
, click
|
||||
, pyfiglet
|
||||
, dateutil
|
||||
, python-dateutil
|
||||
, setuptools
|
||||
}:
|
||||
|
||||
|
@ -18,7 +18,7 @@ buildPythonApplication rec {
|
|||
owner = "trehn";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ dateutil click pyfiglet setuptools ];
|
||||
propagatedBuildInputs = [ python-dateutil click pyfiglet setuptools ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Starts a countdown to or from TIMESPEC";
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
, lib
|
||||
, buildPythonApplication
|
||||
, fetchFromGitHub
|
||||
, dateutil
|
||||
, python-dateutil
|
||||
, pandas
|
||||
, requests
|
||||
, lxml
|
||||
|
@ -36,7 +36,7 @@ buildPythonApplication rec {
|
|||
propagatedBuildInputs = [
|
||||
# from visidata/requirements.txt
|
||||
# packages not (yet) present in nixpkgs are commented
|
||||
dateutil
|
||||
python-dateutil
|
||||
pandas
|
||||
requests
|
||||
lxml
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ lib, fetchurl, buildPythonApplication, dateutil,
|
||||
{ lib, fetchurl, buildPythonApplication, python-dateutil,
|
||||
sqlalchemy, setproctitle, icalendar }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
|
@ -11,7 +11,7 @@ buildPythonApplication rec {
|
|||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil
|
||||
python-dateutil
|
||||
sqlalchemy
|
||||
setproctitle
|
||||
icalendar
|
||||
|
|
|
@ -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/"
|
||||
'';
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [ dateutil tornado python-daemon boto3 ];
|
||||
propagatedBuildInputs = with python3.pkgs; [ python-dateutil tornado python-daemon boto3 ];
|
||||
|
||||
# Requires tox, hadoop, and google cloud
|
||||
doCheck = false;
|
||||
|
|
|
@ -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 = [ "." ];
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
beautifulsoup4
|
||||
dateutil
|
||||
python-dateutil
|
||||
feedparser
|
||||
html5lib
|
||||
listparser
|
||||
|
|
|
@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
|
|||
pynzb
|
||||
pyparsing
|
||||
PyRSS2Gen
|
||||
dateutil
|
||||
python-dateutil
|
||||
pyyaml
|
||||
rebulk
|
||||
requests
|
||||
|
|
|
@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
pythonPath = with python3.pkgs; [
|
||||
pygobject3
|
||||
pycairo
|
||||
dateutil
|
||||
python-dateutil
|
||||
praw
|
||||
pillow
|
||||
mistune
|
||||
|
|
|
@ -55,7 +55,7 @@ in {
|
|||
sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [twisted dateutil];
|
||||
propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Some (mainly XMPP-related) additions to twisted";
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -10,7 +10,7 @@ mkDerivation rec {
|
|||
owner = "haiwen";
|
||||
repo = "seafile-client";
|
||||
rev = "v${version}";
|
||||
sha256 = "lhdKbR19ScNeezICf7vwZaeJikPjwbqrz42bo4lhxJs=";
|
||||
sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config cmake ];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, fetchFromGitHub, buildPythonApplication, fuse
|
||||
, appdirs, colorama, dateutil, requests, requests_toolbelt
|
||||
, appdirs, colorama, python-dateutil, requests, requests_toolbelt
|
||||
, fusepy, sqlalchemy, setuptools }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
|
@ -15,7 +15,7 @@ buildPythonApplication rec {
|
|||
sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests
|
||||
propagatedBuildInputs = [ appdirs colorama python-dateutil fusepy requests
|
||||
requests_toolbelt setuptools sqlalchemy ];
|
||||
|
||||
makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
|
||||
, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
|
||||
, gnome, buildPythonApplication, dateutil, pyinotify, pygobject3
|
||||
, gnome, buildPythonApplication, python-dateutil, pyinotify, pygobject3
|
||||
, bcrypt, gobject-introspection, gsettings-desktop-schemas
|
||||
, pango, gdk-pixbuf, atk }:
|
||||
|
||||
|
@ -30,7 +30,7 @@ buildPythonApplication rec {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
dateutil pyinotify pygobject3 bcrypt
|
||||
python-dateutil pyinotify pygobject3 bcrypt
|
||||
];
|
||||
|
||||
patches = [
|
||||
|
|
|
@ -122,7 +122,7 @@ let
|
|||
|
||||
runtimePackages = with python.pkgs; [
|
||||
dateparser
|
||||
dateutil
|
||||
python-dateutil
|
||||
django
|
||||
django-cors-headers
|
||||
django-crispy-forms
|
||||
|
|
|
@ -122,7 +122,7 @@ python3Packages.buildPythonApplication rec {
|
|||
openpaperwork-core
|
||||
pypillowfight
|
||||
pyxdg
|
||||
dateutil
|
||||
python-dateutil
|
||||
setuptools
|
||||
];
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
dateutil
|
||||
python-dateutil
|
||||
markdown2
|
||||
matplotlib
|
||||
numpy
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ python3Packages.buildPythonApplication rec {
|
|||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
dateutil
|
||||
python-dateutil
|
||||
pygobject3
|
||||
goocalendar
|
||||
pycairo
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
|
|||
let pp = python.pkgs; in ([
|
||||
pp.numpy pp.scipy pp.scikitimage pp.h5py
|
||||
pp.matplotlib pp.ipython pp.networkx pp.nose
|
||||
pp.pandas pp.dateutil pp.protobuf pp.gflags
|
||||
pp.pandas pp.python-dateutil pp.protobuf pp.gflags
|
||||
pp.pyyaml pp.pillow pp.six
|
||||
] ++ lib.optional leveldbSupport pp.leveldb)
|
||||
);
|
||||
|
|
|
@ -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,4 +1,4 @@
|
|||
{ lib, buildPythonApplication, fetchFromGitHub, pycurl, dateutil, configobj, sqlalchemy, sdnotify, flask }:
|
||||
{ lib, buildPythonApplication, fetchFromGitHub, pycurl, python-dateutil, configobj, sqlalchemy, sdnotify, flask }:
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "pyca";
|
||||
|
@ -13,7 +13,7 @@ buildPythonApplication rec {
|
|||
|
||||
propagatedBuildInputs = [
|
||||
pycurl
|
||||
dateutil
|
||||
python-dateutil
|
||||
configobj
|
||||
sqlalchemy
|
||||
sdnotify
|
||||
|
|
|
@ -39,7 +39,7 @@ python37Packages.buildPythonApplication rec {
|
|||
cairocffi-xcffib
|
||||
setuptools
|
||||
setuptools-scm
|
||||
dateutil
|
||||
python-dateutil
|
||||
dbus-python
|
||||
mpd2
|
||||
psutil
|
||||
|
|
|
@ -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; [ ];
|
||||
};
|
||||
}
|
||||
|
|
66
third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix
vendored
Normal file
66
third_party/nixpkgs/pkgs/data/misc/rime-data/default.nix
vendored
Normal file
|
@ -0,0 +1,66 @@
|
|||
{ lib, stdenv, fetchFromGitHub, librime }:
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "rime-data";
|
||||
version = "0.38.20210628";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "plum";
|
||||
rev = "0b835e347cad9c2d7038cfe82df5b5d1fe1c0327";
|
||||
sha256 = "0mja4wyazxdc6fr7pzij5ah4rzwxv4s12s64vfn5ikx1ias1f8ib";
|
||||
};
|
||||
|
||||
buildInputs = [ librime ];
|
||||
|
||||
buildFlags = [ "all" ];
|
||||
makeFlags = [ "PREFIX=$(out)" ];
|
||||
|
||||
preBuild = import ./fetchSchema.nix fetchFromGitHub;
|
||||
|
||||
postPatch = ''
|
||||
# Disable git operations.
|
||||
sed -i /fetch_or_update_package$/d scripts/install-packages.sh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Schema data of Rime Input Method Engine";
|
||||
longDescription = ''
|
||||
Rime-data provides schema data for Rime Input Method Engine.
|
||||
'';
|
||||
homepage = "https://rime.im";
|
||||
license = with licenses; [
|
||||
# rime-array
|
||||
# rime-combo-pinyin
|
||||
# rime-double-pinyin
|
||||
# rime-middle-chinese
|
||||
# rime-scj
|
||||
# rime-soutzoe
|
||||
# rime-stenotype
|
||||
# rime-wugniu
|
||||
gpl3Only
|
||||
|
||||
# plum
|
||||
# rime-bopomofo
|
||||
# rime-cangjie
|
||||
# rime-emoji
|
||||
# rime-essay
|
||||
# rime-ipa
|
||||
# rime-jyutping
|
||||
# rime-luna-pinyin
|
||||
# rime-prelude
|
||||
# rime-quick
|
||||
# rime-stroke
|
||||
# rime-terra-pinyin
|
||||
# rime-wubi
|
||||
lgpl3Only
|
||||
|
||||
# rime-pinyin-simp
|
||||
asl20
|
||||
|
||||
# rime-cantonese
|
||||
cc-by-40
|
||||
];
|
||||
maintainers = [ maintainers.pengmeiyu ];
|
||||
};
|
||||
}
|
137
third_party/nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix
vendored
Normal file
137
third_party/nixpkgs/pkgs/data/misc/rime-data/fetchSchema.nix
vendored
Normal file
|
@ -0,0 +1,137 @@
|
|||
# Generated using generateFetchSchema.sh
|
||||
fetchFromGitHub:
|
||||
''
|
||||
mkdir -p package/rime
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-array";
|
||||
rev = "8514193da939bc8888ad6a744f5e5921d4baebc7";
|
||||
sha256 = "1fy7pcq7d8m0wzkkhklmv6p370ms9lqc1zpndyy2xjamzrbb9l83";
|
||||
}} package/rime/array
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-bopomofo";
|
||||
rev = "c7618f4f5728e1634417e9d02ea50d82b71956ab";
|
||||
sha256 = "0g77nv0jrwqnbqqna0ib0kqcy6l5zl62kh49ny67d6bjwnwz9186";
|
||||
}} package/rime/bopomofo
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-cangjie";
|
||||
rev = "8dfad9e537f18821b71ba28773315d9c670ae245";
|
||||
sha256 = "029kw9nx6x0acg4f0m8wj1ziqffffhy9yyj51nlx17cnia0qcrby";
|
||||
}} package/rime/cangjie
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-cantonese";
|
||||
rev = "b6f800c74eb639816d56d0d5601aaa96c8963178";
|
||||
sha256 = "1a4ksacbz8l30y3y5c017d0hzwik8knplglb3yswy7l4hsvaanyh";
|
||||
}} package/rime/cantonese
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-combo-pinyin";
|
||||
rev = "a84065a86b272c76215215bd6f03c506b6e7097c";
|
||||
sha256 = "1f0b4kakw0x26gmx7xi4f94nbjlb8lvi9bks4f92jswa045vnd87";
|
||||
}} package/rime/combo-pinyin
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-double-pinyin";
|
||||
rev = "69bf85d4dfe8bac139c36abbd68d530b8b6622ea";
|
||||
sha256 = "093wif5avvvw45fqbwj5wkbxrychy4pagl4mwsmbrayc8jkp69ak";
|
||||
}} package/rime/double-pinyin
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-emoji";
|
||||
rev = "4c8c51f4a3bc7298c99376eda9bbd86070fc4fa1";
|
||||
sha256 = "0175jqh210fncafqckr9zzaw55qpswmqjrykwms1apmc68l43122";
|
||||
}} package/rime/emoji
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-essay";
|
||||
rev = "9db2e77305e75798baf3ec8dcf1f82785b5e1be9";
|
||||
sha256 = "03ypkkaadd5qmyg26n24a66cll90xvcimgbmiyv4d33jradiqg22";
|
||||
}} package/rime/essay
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-ipa";
|
||||
rev = "22b71710e029bcb412e9197192a638ab11bc2abf";
|
||||
sha256 = "0zdk4f9qkfj3q5hmjnairj1lv6f6y27mic12k886n6sxywwbwr2k";
|
||||
}} package/rime/ipa
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-jyutping";
|
||||
rev = "1e24baa6998815c716c581effe8ec65ee87c4e8c";
|
||||
sha256 = "0s2rckpwlrm3n7w1csnqyi5p9mkpp3z87s7mrm2vc9sv06rpv7zl";
|
||||
}} package/rime/jyutping
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-luna-pinyin";
|
||||
rev = "623adb022b094d540218b287c2e601509eee3347";
|
||||
sha256 = "06pcwp09l5wkqv7792gbsl31xnlb3gr9q6bgbp94vvq6m2ycahqz";
|
||||
}} package/rime/luna-pinyin
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-middle-chinese";
|
||||
rev = "9fad7a7c0c26167d5e6e85db8df48a15c7f7d4f0";
|
||||
sha256 = "0a0bqrlzg0k692xblqnh1rh1fwwqqb205xwxlihgji85n8ibcgph";
|
||||
}} package/rime/middle-chinese
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-pinyin-simp";
|
||||
rev = "b0e84cda02c613ebdedc127a26131b3800f45a8e";
|
||||
sha256 = "05v804qr3a9xvjzp9yid7231fi2l2yrl47ybbvql61z9k36ab094";
|
||||
}} package/rime/pinyin-simp
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-prelude";
|
||||
rev = "3de303ffaa731dba07b0462ce59f4767e1219ad2";
|
||||
sha256 = "0g7a0bla58rh1v3md59k6adk185pilb4z8i2i0pqdl4nwqp40n2p";
|
||||
}} package/rime/prelude
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-quick";
|
||||
rev = "3fe5911ba608cb2df1b6301b76ad1573bd482a76";
|
||||
sha256 = "08bh87ym5qvw55lyw20l3m7jd4c2z5rvil8h5q8790r7z6j6ijy9";
|
||||
}} package/rime/quick
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-scj";
|
||||
rev = "cab5a0858765eff0553dd685a2d61d5536e9149c";
|
||||
sha256 = "0ard2bjp4896a8dimmcwyjwgmp9kl4rz92yc92jnd3y4rgwl6fvk";
|
||||
}} package/rime/scj
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-soutzoe";
|
||||
rev = "beeaeca72d8e17dfd1e9af58680439e9012987dc";
|
||||
sha256 = "0jyqx0q9s0qxn168l5n8zav8jcl2g5ppr7pa8jm1vwrllf20slcc";
|
||||
}} package/rime/soutzoe
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-stenotype";
|
||||
rev = "f3e9189d5ce33c55d3936cc58e39d0c88b3f0c88";
|
||||
sha256 = "0dl6px7lrh3xa87knjzwzdcwjj1k1dg4l72q7lb48an4s9f1cy5d";
|
||||
}} package/rime/stenotype
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-stroke";
|
||||
rev = "ea8576d1accd6fda339e96b415caadb56e2a07d1";
|
||||
sha256 = "07h6nq9867hjrd2v3h1pnr940sdrw4mqrzj43siz1rzjxz3s904r";
|
||||
}} package/rime/stroke
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-terra-pinyin";
|
||||
rev = "ce7b9249612f575d2f43d51fcacd31d1b4e0ef1b";
|
||||
sha256 = "0vm303f4lrdmdmif5klrp6w29vn9z2vzw33cw0y83pcnz39wiads";
|
||||
}} package/rime/terra-pinyin
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-wubi";
|
||||
rev = "f1876f08f1d4a9696395be0070c0e8e4353c44cb";
|
||||
sha256 = "1d9y9rqssacria9d0hla96czsqv2wkfm6z926m1x269ryv96zxvk";
|
||||
}} package/rime/wubi
|
||||
ln -sv ${fetchFromGitHub {
|
||||
owner = "rime";
|
||||
repo = "rime-wugniu";
|
||||
rev = "abd1ee98efbf170258fcf43875c21a4259e00b61";
|
||||
sha256 = "0qn54d3cclny106ixdw08r5n6wn52ffs1hgrma3k0j4pv0kr9nlq";
|
||||
}} package/rime/wugniu
|
||||
''
|
43
third_party/nixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh
vendored
Executable file
43
third_party/nixpkgs/pkgs/data/misc/rime-data/generateFetchSchema.sh
vendored
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p nix-prefetch-git -p jq
|
||||
|
||||
imlist=(
|
||||
array
|
||||
bopomofo
|
||||
cangjie
|
||||
cantonese
|
||||
combo-pinyin
|
||||
double-pinyin
|
||||
emoji
|
||||
essay
|
||||
ipa
|
||||
jyutping
|
||||
luna-pinyin
|
||||
middle-chinese
|
||||
pinyin-simp
|
||||
prelude
|
||||
quick
|
||||
scj
|
||||
soutzoe
|
||||
stenotype
|
||||
stroke
|
||||
terra-pinyin
|
||||
wubi
|
||||
wugniu
|
||||
)
|
||||
|
||||
echo "# Generated using generateFetchSchema.sh"
|
||||
echo "fetchFromGitHub:"
|
||||
echo \'\'
|
||||
echo "mkdir -p package/rime"
|
||||
for im in ${imlist[@]}; do
|
||||
tempFile=$(mktemp)
|
||||
echo "ln -sv \${fetchFromGitHub {"
|
||||
echo " owner = \"rime\";"
|
||||
echo " repo = \"rime-$im\";"
|
||||
nix-prefetch-git --quiet https://github.com/rime/rime-$im \
|
||||
| jq '{ rev: .rev, sha256: .sha256 }' \
|
||||
| jq -r 'to_entries | map(" \(.key) = \"\(.value)\";") | .[]'
|
||||
echo "}} package/rime/$im"
|
||||
done
|
||||
echo \'\'
|
|
@ -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; }
|
||||
;
|
||||
|
||||
}
|
||||
|
|
|
@ -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
third_party/nixpkgs/pkgs/development/libraries/libbaseencode/default.nix
vendored
Normal file
22
third_party/nixpkgs/pkgs/development/libraries/libbaseencode/default.nix
vendored
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
third_party/nixpkgs/pkgs/development/libraries/libcotp/default.nix
vendored
Normal file
23
third_party/nixpkgs/pkgs/development/libraries/libcotp/default.nix
vendored
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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue