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:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
# * is a special character in YAML so you have to quote this string
|
# * is a special character in YAML so you have to quote this string
|
||||||
# Merge every 6 hours
|
# Merge every 24 hours
|
||||||
- cron: '0 0 * * *'
|
- cron: '0 0 * * *'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
@ -439,7 +439,7 @@ The following example shows which arguments are given to `buildPythonPackage` in
|
||||||
order to build [`datashape`](https://github.com/blaze/datashape).
|
order to build [`datashape`](https://github.com/blaze/datashape).
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, dateutil, pytest }:
|
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, python-dateutil, pytest }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "datashape";
|
pname = "datashape";
|
||||||
|
@ -451,7 +451,7 @@ buildPythonPackage rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
checkInputs = [ pytest ];
|
checkInputs = [ pytest ];
|
||||||
propagatedBuildInputs = [ numpy multipledispatch dateutil ];
|
propagatedBuildInputs = [ numpy multipledispatch python-dateutil ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/ContinuumIO/datashape";
|
homepage = "https://github.com/ContinuumIO/datashape";
|
||||||
|
@ -463,7 +463,7 @@ buildPythonPackage rec {
|
||||||
```
|
```
|
||||||
|
|
||||||
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
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
|
test runner and is only used during the `checkPhase` and is therefore not added
|
||||||
to `propagatedBuildInputs`.
|
to `propagatedBuildInputs`.
|
||||||
|
|
||||||
|
|
|
@ -10644,6 +10644,12 @@
|
||||||
github = "totoroot";
|
github = "totoroot";
|
||||||
githubId = 39650930;
|
githubId = 39650930;
|
||||||
};
|
};
|
||||||
|
ToxicFrog = {
|
||||||
|
email = "toxicfrog@ancilla.ca";
|
||||||
|
github = "ToxicFrog";
|
||||||
|
githubId = 90456;
|
||||||
|
name = "Rebecca (Bex) Kelly";
|
||||||
|
};
|
||||||
travisbhartwell = {
|
travisbhartwell = {
|
||||||
email = "nafai@travishartwell.net";
|
email = "nafai@travishartwell.net";
|
||||||
github = "travisbhartwell";
|
github = "travisbhartwell";
|
||||||
|
|
|
@ -30,6 +30,12 @@ If NixOS fails to boot, there are a number of kernel command line parameters tha
|
||||||
|
|
||||||
: Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1).
|
: Make systemd very verbose and send log messages to the console instead of the journal. For more parameters recognised by systemd, see systemd(1).
|
||||||
|
|
||||||
|
In addition, these arguments are recognised by the live image only:
|
||||||
|
|
||||||
|
`live.nixos.passwd=password`
|
||||||
|
|
||||||
|
: Set the password for the `nixos` live user. This can be used for SSH access if there are issues using the terminal.
|
||||||
|
|
||||||
Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue".
|
Notice that for `boot.shell_on_fail`, `boot.debug1`, `boot.debug1devices`, and `boot.debug1mounts`, if you did **not** select "start the new shell as pid 1", and you `exit` from the new shell, boot will proceed normally from the point where it failed, as if you'd chosen "ignore the error and continue".
|
||||||
|
|
||||||
If no login prompts or X11 login screens appear (e.g. due to hanging dependencies), you can press Alt+ArrowUp. If 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.)
|
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>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
<para>
|
||||||
|
In addition, these arguments are recognised by the live image only:
|
||||||
|
</para>
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>
|
||||||
|
<literal>live.nixos.passwd=password</literal>
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Set the password for the <literal>nixos</literal> live user.
|
||||||
|
This can be used for SSH access if there are issues using the
|
||||||
|
terminal.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
<para>
|
<para>
|
||||||
Notice that for <literal>boot.shell_on_fail</literal>,
|
Notice that for <literal>boot.shell_on_fail</literal>,
|
||||||
<literal>boot.debug1</literal>,
|
<literal>boot.debug1</literal>,
|
||||||
|
|
|
@ -101,16 +101,18 @@
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://www.gnuradio.org/">GNURadio</link>
|
<link xlink:href="https://www.gnuradio.org/">GNURadio</link>
|
||||||
3.8 was
|
3.8 and 3.9 were
|
||||||
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
|
<link xlink:href="https://github.com/NixOS/nixpkgs/issues/82263">finally</link>
|
||||||
packaged, along with a rewrite to the Nix expressions,
|
packaged, along with a rewrite to the Nix expressions,
|
||||||
allowing users to override the features upstream supports
|
allowing users to override the features upstream supports
|
||||||
selecting to compile or not to. Additionally, the attribute
|
selecting to compile or not to. Additionally, the attribute
|
||||||
<literal>gnuradio</literal> and <literal>gnuradio3_7</literal>
|
<literal>gnuradio</literal> (3.9),
|
||||||
now point to an externally wrapped by default derivations,
|
<literal>gnuradio3_8</literal> and
|
||||||
that allow you to also add `extraPythonPackages` to the Python
|
<literal>gnuradio3_7</literal> now point to an externally
|
||||||
interpreter used by GNURadio. Missing environmental variables
|
wrapped by default derivations, that allow you to also add
|
||||||
needed for operational GUI were also added
|
`extraPythonPackages` to the Python interpreter used by
|
||||||
|
GNURadio. Missing environmental variables needed for
|
||||||
|
operational GUI were also added
|
||||||
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
|
(<link xlink:href="https://github.com/NixOS/nixpkgs/issues/75478">#75478</link>).
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -1026,7 +1028,7 @@ self: super:
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://kodi.tv/">Kodi</link> has been
|
<link xlink:href="https://kodi.tv/">Kodi</link> has been
|
||||||
updated to version 19.1 "Matrix". See the
|
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.
|
for further details.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
|
@ -25,6 +25,15 @@
|
||||||
<section xml:id="sec-release-21.11-new-services">
|
<section xml:id="sec-release-21.11-new-services">
|
||||||
<title>New Services</title>
|
<title>New Services</title>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<link xlink:href="https://digint.ch/btrbk/index.html">btrbk</link>,
|
||||||
|
a backup tool for btrfs subvolumes, taking advantage of btrfs
|
||||||
|
specific capabilities to create atomic snapshots and transfer
|
||||||
|
them incrementally to your backup locations. Available as
|
||||||
|
<link xlink:href="options.html#opt-services.brtbk.instances">services.btrbk</link>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
|
<link xlink:href="https://github.com/maxmind/geoipupdate">geoipupdate</link>,
|
||||||
|
@ -64,7 +73,7 @@
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <literal>staticjinja</literal> package has been upgraded
|
The <literal>staticjinja</literal> package has been upgraded
|
||||||
from 1.0.4 to 2.0.0
|
from 1.0.4 to 3.0.1
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -339,6 +348,116 @@
|
||||||
release instead of the old 2.31.0 version.
|
release instead of the old 2.31.0 version.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>bitwarden_rs</literal> packages and modules were
|
||||||
|
renamed to <literal>vaultwarden</literal>
|
||||||
|
<link xlink:href="https://github.com/dani-garcia/vaultwarden/discussions/1642">following
|
||||||
|
upstream</link>. More specifically,
|
||||||
|
</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>pkgs.bitwarden_rs</literal>,
|
||||||
|
<literal>pkgs.bitwarden_rs-sqlite</literal>,
|
||||||
|
<literal>pkgs.bitwarden_rs-mysql</literal> and
|
||||||
|
<literal>pkgs.bitwarden_rs-postgresql</literal> were
|
||||||
|
renamed to <literal>pkgs.vaultwarden</literal>,
|
||||||
|
<literal>pkgs.vaultwarden-sqlite</literal>,
|
||||||
|
<literal>pkgs.vaultwarden-mysql</literal> and
|
||||||
|
<literal>pkgs.vaultwarden-postgresql</literal>,
|
||||||
|
respectively.
|
||||||
|
</para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Old names are preserved as aliases for backwards
|
||||||
|
compatibility, but may be removed in the future.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>bitwarden_rs</literal> executable was
|
||||||
|
also renamed to <literal>vaultwarden</literal> in all
|
||||||
|
packages.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>pkgs.bitwarden_rs-vault</literal> was renamed to
|
||||||
|
<literal>pkgs.vaultwarden-vault</literal>.
|
||||||
|
</para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>pkgs.bitwarden_rs-vault</literal> is
|
||||||
|
preserved as an alias for backwards compatibility, but
|
||||||
|
may be removed in the future.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The static files were moved from
|
||||||
|
<literal>/usr/share/bitwarden_rs</literal> to
|
||||||
|
<literal>/usr/share/vaultwarden</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>services.bitwarden_rs</literal> config module
|
||||||
|
was renamed to <literal>services.vaultwarden</literal>.
|
||||||
|
</para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>services.bitwarden_rs</literal> is preserved
|
||||||
|
as an alias for backwards compatibility, but may be
|
||||||
|
removed in the future.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>systemd.services.bitwarden_rs</literal>,
|
||||||
|
<literal>systemd.services.backup-bitwarden_rs</literal>
|
||||||
|
and <literal>systemd.timers.backup-bitwarden_rs</literal>
|
||||||
|
were renamed to
|
||||||
|
<literal>systemd.services.vaultwarden</literal>,
|
||||||
|
<literal>systemd.services.backup-vaultwarden</literal> and
|
||||||
|
<literal>systemd.timers.backup-vaultwarden</literal>,
|
||||||
|
respectively.
|
||||||
|
</para>
|
||||||
|
<itemizedlist spacing="compact">
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Old names are preserved as aliases for backwards
|
||||||
|
compatibility, but may be removed in the future.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<literal>users.users.bitwarden_rs</literal> and
|
||||||
|
<literal>users.groups.bitwarden_rs</literal> were renamed
|
||||||
|
to <literal>users.users.vaultwarden</literal> and
|
||||||
|
<literal>users.groups.vaultwarden</literal>, respectively.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The data directory remains located at
|
||||||
|
<literal>/var/lib/bitwarden_rs</literal>, for backwards
|
||||||
|
compatibility.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
<section xml:id="sec-release-21.11-notable-changes">
|
<section xml:id="sec-release-21.11-notable-changes">
|
||||||
|
|
|
@ -36,7 +36,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
The following new services were added since the last release:
|
The following new services were added since the last release:
|
||||||
|
|
||||||
- [GNURadio](https://www.gnuradio.org/) 3.8 was [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
|
- [GNURadio](https://www.gnuradio.org/) 3.8 and 3.9 were [finally](https://github.com/NixOS/nixpkgs/issues/82263) packaged, along with a rewrite to the Nix expressions, allowing users to override the features upstream supports selecting to compile or not to. Additionally, the attribute `gnuradio` (3.9), `gnuradio3_8` and `gnuradio3_7` now point to an externally wrapped by default derivations, that allow you to also add \`extraPythonPackages\` to the Python interpreter used by GNURadio. Missing environmental variables needed for operational GUI were also added ([\#75478](https://github.com/NixOS/nixpkgs/issues/75478)).
|
||||||
|
|
||||||
- [Keycloak](https://www.keycloak.org/), an open source identity and access management server with support for [OpenID Connect](https://openid.net/connect/), [OAUTH 2.0](https://oauth.net/2/) and [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
|
- [Keycloak](https://www.keycloak.org/), an open source identity and access management server with support for [OpenID Connect](https://openid.net/connect/), [OAUTH 2.0](https://oauth.net/2/) and [SAML 2.0](https://en.wikipedia.org/wiki/SAML_2.0).
|
||||||
|
|
||||||
|
@ -300,7 +300,7 @@ When upgrading from a previous release, please be aware of the following incompa
|
||||||
|
|
||||||
Regarding the NixOS module, new options for HTTPS inspection have been added and `services.privoxy.extraConfig` has been replaced by the new [services.privoxy.settings](options.html#opt-services.privoxy.settings) (See [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) for the motivation).
|
Regarding the NixOS module, new options for HTTPS inspection have been added and `services.privoxy.extraConfig` has been replaced by the new [services.privoxy.settings](options.html#opt-services.privoxy.settings) (See [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) for the motivation).
|
||||||
|
|
||||||
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-190-matrix-release) for further details.
|
- [Kodi](https://kodi.tv/) has been updated to version 19.1 \"Matrix\". See the [announcement](https://kodi.tv/article/kodi-19-0-matrix-release) for further details.
|
||||||
|
|
||||||
- The `services.packagekit.backend` option has been removed as it only supported a single setting which would always be the default. Instead new [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant [services.packagekit.settings](options.html#opt-services.packagekit.settings) and [services.packagekit.vendorSettings](options.html#opt-services.packagekit.vendorSettings) options have been introduced.
|
- The `services.packagekit.backend` option has been removed as it only supported a single setting which would always be the default. Instead new [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant [services.packagekit.settings](options.html#opt-services.packagekit.settings) and [services.packagekit.vendorSettings](options.html#opt-services.packagekit.vendorSettings) options have been introduced.
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
## New Services {#sec-release-21.11-new-services}
|
## New Services {#sec-release-21.11-new-services}
|
||||||
|
|
||||||
|
- [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
|
||||||
|
|
||||||
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
- [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP database updater from MaxMind. Available as [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
||||||
|
|
||||||
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
|
- [sourcehut](https://sr.ht), a collection of tools useful for software development. Available as [services.sourcehut](options.html#opt-services.sourcehut.enable).
|
||||||
|
@ -20,7 +22,7 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
|
|
||||||
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
## Backward Incompatibilities {#sec-release-21.11-incompatibilities}
|
||||||
|
|
||||||
- The `staticjinja` package has been upgraded from 1.0.4 to 2.0.0
|
- The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1
|
||||||
|
|
||||||
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
- `services.geoip-updater` was broken and has been replaced by [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
|
||||||
|
|
||||||
|
@ -85,6 +87,32 @@ In addition to numerous new and upgraded packages, this release has the followin
|
||||||
* The `libwnck` package now defaults to the 3.x release instead of the
|
* The `libwnck` package now defaults to the 3.x release instead of the
|
||||||
old 2.31.0 version.
|
old 2.31.0 version.
|
||||||
|
|
||||||
|
* The `bitwarden_rs` packages and modules were renamed to `vaultwarden`
|
||||||
|
[following upstream](https://github.com/dani-garcia/vaultwarden/discussions/1642). More specifically,
|
||||||
|
|
||||||
|
* `pkgs.bitwarden_rs`, `pkgs.bitwarden_rs-sqlite`, `pkgs.bitwarden_rs-mysql` and
|
||||||
|
`pkgs.bitwarden_rs-postgresql` were renamed to `pkgs.vaultwarden`, `pkgs.vaultwarden-sqlite`,
|
||||||
|
`pkgs.vaultwarden-mysql` and `pkgs.vaultwarden-postgresql`, respectively.
|
||||||
|
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
|
||||||
|
* The `bitwarden_rs` executable was also renamed to `vaultwarden` in all packages.
|
||||||
|
|
||||||
|
* `pkgs.bitwarden_rs-vault` was renamed to `pkgs.vaultwarden-vault`.
|
||||||
|
* `pkgs.bitwarden_rs-vault` is preserved as an alias for backwards compatibility, but may be removed in the future.
|
||||||
|
* The static files were moved from `/usr/share/bitwarden_rs` to `/usr/share/vaultwarden`.
|
||||||
|
|
||||||
|
* The `services.bitwarden_rs` config module was renamed to `services.vaultwarden`.
|
||||||
|
* `services.bitwarden_rs` is preserved as an alias for backwards compatibility, but may be removed in the future.
|
||||||
|
|
||||||
|
* `systemd.services.bitwarden_rs`, `systemd.services.backup-bitwarden_rs` and `systemd.timers.backup-bitwarden_rs`
|
||||||
|
were renamed to `systemd.services.vaultwarden`, `systemd.services.backup-vaultwarden` and
|
||||||
|
`systemd.timers.backup-vaultwarden`, respectively.
|
||||||
|
* Old names are preserved as aliases for backwards compatibility, but may be removed in the future.
|
||||||
|
|
||||||
|
* `users.users.bitwarden_rs` and `users.groups.bitwarden_rs` were renamed to `users.users.vaultwarden` and
|
||||||
|
`users.groups.vaultwarden`, respectively.
|
||||||
|
|
||||||
|
* The data directory remains located at `/var/lib/bitwarden_rs`, for backwards compatibility.
|
||||||
|
|
||||||
## Other Notable Changes {#sec-release-21.11-notable-changes}
|
## Other Notable Changes {#sec-release-21.11-notable-changes}
|
||||||
|
|
||||||
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
|
- The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets.
|
||||||
|
|
|
@ -30,5 +30,16 @@ with lib;
|
||||||
# Add Memtest86+ to the CD.
|
# Add Memtest86+ to the CD.
|
||||||
boot.loader.grub.memtest86.enable = true;
|
boot.loader.grub.memtest86.enable = true;
|
||||||
|
|
||||||
|
boot.postBootCommands = ''
|
||||||
|
for o in $(</proc/cmdline); do
|
||||||
|
case "$o" in
|
||||||
|
live.nixos.passwd=*)
|
||||||
|
set -- $(IFS==; echo $o)
|
||||||
|
echo "nixos:$2" | ${pkgs.shadow}/bin/chpasswd
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
system.stateVersion = mkDefault "18.03";
|
system.stateVersion = mkDefault "18.03";
|
||||||
}
|
}
|
||||||
|
|
|
@ -260,6 +260,7 @@
|
||||||
./services/backup/bacula.nix
|
./services/backup/bacula.nix
|
||||||
./services/backup/borgbackup.nix
|
./services/backup/borgbackup.nix
|
||||||
./services/backup/borgmatic.nix
|
./services/backup/borgmatic.nix
|
||||||
|
./services/backup/btrbk.nix
|
||||||
./services/backup/duplicati.nix
|
./services/backup/duplicati.nix
|
||||||
./services/backup/duplicity.nix
|
./services/backup/duplicity.nix
|
||||||
./services/backup/mysql-backup.nix
|
./services/backup/mysql-backup.nix
|
||||||
|
@ -874,7 +875,6 @@
|
||||||
./services/search/hound.nix
|
./services/search/hound.nix
|
||||||
./services/search/kibana.nix
|
./services/search/kibana.nix
|
||||||
./services/search/solr.nix
|
./services/search/solr.nix
|
||||||
./services/security/bitwarden_rs/default.nix
|
|
||||||
./services/security/certmgr.nix
|
./services/security/certmgr.nix
|
||||||
./services/security/cfssl.nix
|
./services/security/cfssl.nix
|
||||||
./services/security/clamav.nix
|
./services/security/clamav.nix
|
||||||
|
@ -900,6 +900,7 @@
|
||||||
./services/security/torsocks.nix
|
./services/security/torsocks.nix
|
||||||
./services/security/usbguard.nix
|
./services/security/usbguard.nix
|
||||||
./services/security/vault.nix
|
./services/security/vault.nix
|
||||||
|
./services/security/vaultwarden/default.nix
|
||||||
./services/security/yubikey-agent.nix
|
./services/security/yubikey-agent.nix
|
||||||
./services/system/cloud-init.nix
|
./services/system/cloud-init.nix
|
||||||
./services/system/dbus.nix
|
./services/system/dbus.nix
|
||||||
|
|
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.no-auth "no-auth"}
|
||||||
${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
|
${lib.optionalString cfg.use-auth-secret "use-auth-secret"}
|
||||||
${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
|
${lib.optionalString (cfg.static-auth-secret != null) ("static-auth-secret=${cfg.static-auth-secret}")}
|
||||||
|
${lib.optionalString (cfg.static-auth-secret-file != null) ("static-auth-secret=#static-auth-secret#")}
|
||||||
realm=${cfg.realm}
|
realm=${cfg.realm}
|
||||||
${lib.optionalString cfg.no-udp "no-udp"}
|
${lib.optionalString cfg.no-udp "no-udp"}
|
||||||
${lib.optionalString cfg.no-tcp "no-tcp"}
|
${lib.optionalString cfg.no-tcp "no-tcp"}
|
||||||
|
@ -182,6 +183,13 @@ in {
|
||||||
by a separate program, so this is why that other mode is 'dynamic'.
|
by a separate program, so this is why that other mode is 'dynamic'.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
static-auth-secret-file = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = ''
|
||||||
|
Path to the file containing the static authentication secret.
|
||||||
|
'';
|
||||||
|
};
|
||||||
realm = mkOption {
|
realm = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = config.networking.hostName;
|
default = config.networking.hostName;
|
||||||
|
@ -293,42 +301,63 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable (mkMerge ([
|
||||||
users.users.turnserver =
|
{ assertions = [
|
||||||
{ uid = config.ids.uids.turnserver;
|
{ assertion = cfg.static-auth-secret != null -> cfg.static-auth-secret-file == null ;
|
||||||
description = "coturn TURN server user";
|
message = "static-auth-secret and static-auth-secret-file cannot be set at the same time";
|
||||||
};
|
}
|
||||||
users.groups.turnserver =
|
];}
|
||||||
{ gid = config.ids.gids.turnserver;
|
|
||||||
members = [ "turnserver" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.coturn = {
|
{
|
||||||
description = "coturn TURN server";
|
users.users.turnserver =
|
||||||
after = [ "network-online.target" ];
|
{ uid = config.ids.uids.turnserver;
|
||||||
wants = [ "network-online.target" ];
|
description = "coturn TURN server user";
|
||||||
wantedBy = [ "multi-user.target" ];
|
};
|
||||||
|
users.groups.turnserver =
|
||||||
|
{ gid = config.ids.gids.turnserver;
|
||||||
|
members = [ "turnserver" ];
|
||||||
|
};
|
||||||
|
|
||||||
unitConfig = {
|
systemd.services.coturn = let
|
||||||
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
|
runConfig = "/run/coturn/turnserver.cfg";
|
||||||
};
|
in {
|
||||||
|
description = "coturn TURN server";
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
serviceConfig = {
|
unitConfig = {
|
||||||
Type = "simple";
|
Documentation = "man:coturn(1) man:turnadmin(1) man:turnserver(1)";
|
||||||
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${configFile}";
|
};
|
||||||
RuntimeDirectory = "turnserver";
|
|
||||||
User = "turnserver";
|
preStart = ''
|
||||||
Group = "turnserver";
|
cat ${configFile} > ${runConfig}
|
||||||
AmbientCapabilities =
|
${optionalString (cfg.static-auth-secret-file != null) ''
|
||||||
mkIf (
|
STATIC_AUTH_SECRET="$(head -n1 ${cfg.static-auth-secret-file} || :)"
|
||||||
cfg.listening-port < 1024 ||
|
sed -e "s,#static-auth-secret#,$STATIC_AUTH_SECRET,g" \
|
||||||
cfg.alt-listening-port < 1024 ||
|
-i ${runConfig}
|
||||||
cfg.tls-listening-port < 1024 ||
|
'' }
|
||||||
cfg.alt-tls-listening-port < 1024 ||
|
chmod 640 ${runConfig}
|
||||||
cfg.min-port < 1024
|
'';
|
||||||
) "cap_net_bind_service";
|
serviceConfig = {
|
||||||
Restart = "on-abort";
|
Type = "simple";
|
||||||
|
ExecStart = "${pkgs.coturn}/bin/turnserver -c ${runConfig}";
|
||||||
|
RuntimeDirectory = "turnserver";
|
||||||
|
User = "turnserver";
|
||||||
|
Group = "turnserver";
|
||||||
|
AmbientCapabilities =
|
||||||
|
mkIf (
|
||||||
|
cfg.listening-port < 1024 ||
|
||||||
|
cfg.alt-listening-port < 1024 ||
|
||||||
|
cfg.tls-listening-port < 1024 ||
|
||||||
|
cfg.alt-tls-listening-port < 1024 ||
|
||||||
|
cfg.min-port < 1024
|
||||||
|
) "cap_net_bind_service";
|
||||||
|
Restart = "on-abort";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
systemd.tmpfiles.rules = [
|
||||||
};
|
"d /run/coturn 0700 turnserver turnserver - -"
|
||||||
|
];
|
||||||
|
}]));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Based on: https://github.com/dani-garcia/bitwarden_rs/wiki/Backing-up-your-vault
|
# Based on: https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault
|
||||||
if ! mkdir -p "$BACKUP_FOLDER"; then
|
if ! mkdir -p "$BACKUP_FOLDER"; then
|
||||||
echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
|
echo "Could not create backup folder '$BACKUP_FOLDER'" >&2
|
||||||
exit 1
|
exit 1
|
|
@ -3,9 +3,9 @@
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.services.bitwarden_rs;
|
cfg = config.services.vaultwarden;
|
||||||
user = config.users.users.bitwarden_rs.name;
|
user = config.users.users.vaultwarden.name;
|
||||||
group = config.users.groups.bitwarden_rs.name;
|
group = config.users.groups.vaultwarden.name;
|
||||||
|
|
||||||
# Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
# Convert name from camel case (e.g. disable2FARemember) to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
||||||
nameToEnvVar = name:
|
nameToEnvVar = name:
|
||||||
|
@ -26,22 +26,26 @@ let
|
||||||
if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
|
if value != null then [ (nameValuePair (nameToEnvVar name) (if isBool value then boolToString value else toString value)) ] else []
|
||||||
) cfg.config));
|
) cfg.config));
|
||||||
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
|
in { DATA_FOLDER = "/var/lib/bitwarden_rs"; } // optionalAttrs (!(configEnv ? WEB_VAULT_ENABLED) || configEnv.WEB_VAULT_ENABLED == "true") {
|
||||||
WEB_VAULT_FOLDER = "${pkgs.bitwarden_rs-vault}/share/bitwarden_rs/vault";
|
WEB_VAULT_FOLDER = "${pkgs.vaultwarden-vault}/share/vaultwarden/vault";
|
||||||
} // configEnv;
|
} // configEnv;
|
||||||
|
|
||||||
configFile = pkgs.writeText "bitwarden_rs.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
|
configFile = pkgs.writeText "vaultwarden.env" (concatStrings (mapAttrsToList (name: value: "${name}=${value}\n") configEnv));
|
||||||
|
|
||||||
bitwarden_rs = pkgs.bitwarden_rs.override { inherit (cfg) dbBackend; };
|
vaultwarden = pkgs.vaultwarden.override { inherit (cfg) dbBackend; };
|
||||||
|
|
||||||
in {
|
in {
|
||||||
options.services.bitwarden_rs = with types; {
|
imports = [
|
||||||
enable = mkEnableOption "bitwarden_rs";
|
(mkRenamedOptionModule [ "services" "bitwarden_rs" ] [ "services" "vaultwarden" ])
|
||||||
|
];
|
||||||
|
|
||||||
|
options.services.vaultwarden = with types; {
|
||||||
|
enable = mkEnableOption "vaultwarden";
|
||||||
|
|
||||||
dbBackend = mkOption {
|
dbBackend = mkOption {
|
||||||
type = enum [ "sqlite" "mysql" "postgresql" ];
|
type = enum [ "sqlite" "mysql" "postgresql" ];
|
||||||
default = "sqlite";
|
default = "sqlite";
|
||||||
description = ''
|
description = ''
|
||||||
Which database backend bitwarden_rs will be using.
|
Which database backend vaultwarden will be using.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,7 +53,7 @@ in {
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = ''
|
||||||
The directory under which bitwarden_rs will backup its persistent data.
|
The directory under which vaultwarden will backup its persistent data.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -65,7 +69,7 @@ in {
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = ''
|
||||||
The configuration of bitwarden_rs is done through environment variables,
|
The configuration of vaultwarden is done through environment variables,
|
||||||
therefore the names are converted from camel case (e.g. disable2FARemember)
|
therefore the names are converted from camel case (e.g. disable2FARemember)
|
||||||
to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
|
||||||
In this conversion digits (0-9) are handled just like upper case characters,
|
In this conversion digits (0-9) are handled just like upper case characters,
|
||||||
|
@ -75,17 +79,17 @@ in {
|
||||||
This allows working around any potential future conflicting naming conventions.
|
This allows working around any potential future conflicting naming conventions.
|
||||||
|
|
||||||
Based on the attributes passed to this config option an environment file will be generated
|
Based on the attributes passed to this config option an environment file will be generated
|
||||||
that is passed to bitwarden_rs's systemd service.
|
that is passed to vaultwarden's systemd service.
|
||||||
|
|
||||||
The available configuration options can be found in
|
The available configuration options can be found in
|
||||||
<link xlink:href="https://github.com/dani-garcia/bitwarden_rs/blob/${bitwarden_rs.version}/.env.template">the environment template file</link>.
|
<link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
environmentFile = mkOption {
|
environmentFile = mkOption {
|
||||||
type = with types; nullOr path;
|
type = with types; nullOr path;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/root/bitwarden_rs.env";
|
example = "/root/vaultwarden.env";
|
||||||
description = ''
|
description = ''
|
||||||
Additional environment file as defined in <citerefentry>
|
Additional environment file as defined in <citerefentry>
|
||||||
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
<refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
|
||||||
|
@ -95,7 +99,7 @@ in {
|
||||||
may be passed to the service without adding them to the world-readable Nix store.
|
may be passed to the service without adding them to the world-readable Nix store.
|
||||||
|
|
||||||
Note that this file needs to be available on the host on which
|
Note that this file needs to be available on the host on which
|
||||||
<literal>bitwarden_rs</literal> is running.
|
<literal>vaultwarden</literal> is running.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -106,20 +110,21 @@ in {
|
||||||
message = "Backups for database backends other than sqlite will need customization";
|
message = "Backups for database backends other than sqlite will need customization";
|
||||||
} ];
|
} ];
|
||||||
|
|
||||||
users.users.bitwarden_rs = {
|
users.users.vaultwarden = {
|
||||||
inherit group;
|
inherit group;
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
};
|
};
|
||||||
users.groups.bitwarden_rs = { };
|
users.groups.vaultwarden = { };
|
||||||
|
|
||||||
systemd.services.bitwarden_rs = {
|
systemd.services.vaultwarden = {
|
||||||
|
aliases = [ "bitwarden_rs" ];
|
||||||
after = [ "network.target" ];
|
after = [ "network.target" ];
|
||||||
path = with pkgs; [ openssl ];
|
path = with pkgs; [ openssl ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = user;
|
User = user;
|
||||||
Group = group;
|
Group = group;
|
||||||
EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
|
EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
|
||||||
ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
|
ExecStart = "${vaultwarden}/bin/vaultwarden";
|
||||||
LimitNOFILE = "1048576";
|
LimitNOFILE = "1048576";
|
||||||
PrivateTmp = "true";
|
PrivateTmp = "true";
|
||||||
PrivateDevices = "true";
|
PrivateDevices = "true";
|
||||||
|
@ -131,15 +136,16 @@ in {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
|
systemd.services.backup-vaultwarden = mkIf (cfg.backupDir != null) {
|
||||||
description = "Backup bitwarden_rs";
|
aliases = [ "backup-bitwarden_rs" ];
|
||||||
|
description = "Backup vaultwarden";
|
||||||
environment = {
|
environment = {
|
||||||
DATA_FOLDER = "/var/lib/bitwarden_rs";
|
DATA_FOLDER = "/var/lib/bitwarden_rs";
|
||||||
BACKUP_FOLDER = cfg.backupDir;
|
BACKUP_FOLDER = cfg.backupDir;
|
||||||
};
|
};
|
||||||
path = with pkgs; [ sqlite ];
|
path = with pkgs; [ sqlite ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
SyslogIdentifier = "backup-bitwarden_rs";
|
SyslogIdentifier = "backup-vaultwarden";
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
User = mkDefault user;
|
User = mkDefault user;
|
||||||
Group = mkDefault group;
|
Group = mkDefault group;
|
||||||
|
@ -148,12 +154,13 @@ in {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.timers.backup-bitwarden_rs = mkIf (cfg.backupDir != null) {
|
systemd.timers.backup-vaultwarden = mkIf (cfg.backupDir != null) {
|
||||||
description = "Backup bitwarden_rs on time";
|
aliases = [ "backup-bitwarden_rs" ];
|
||||||
|
description = "Backup vaultwarden on time";
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = mkDefault "23:00";
|
OnCalendar = mkDefault "23:00";
|
||||||
Persistent = "true";
|
Persistent = "true";
|
||||||
Unit = "backup-bitwarden_rs.service";
|
Unit = "backup-vaultwarden.service";
|
||||||
};
|
};
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
};
|
};
|
|
@ -13,7 +13,7 @@ let
|
||||||
# !!! fix this
|
# !!! fix this
|
||||||
children = mapAttrs (childName: childConfig:
|
children = mapAttrs (childName: childConfig:
|
||||||
(import ../../../lib/eval-config.nix {
|
(import ../../../lib/eval-config.nix {
|
||||||
inherit baseModules specialArgs;
|
inherit lib baseModules specialArgs;
|
||||||
system = config.nixpkgs.initialSystem;
|
system = config.nixpkgs.initialSystem;
|
||||||
modules =
|
modules =
|
||||||
(optionals childConfig.inheritParentConfig modules)
|
(optionals childConfig.inheritParentConfig modules)
|
||||||
|
|
|
@ -42,12 +42,12 @@ in
|
||||||
bind = handleTest ./bind.nix {};
|
bind = handleTest ./bind.nix {};
|
||||||
bitcoind = handleTest ./bitcoind.nix {};
|
bitcoind = handleTest ./bitcoind.nix {};
|
||||||
bittorrent = handleTest ./bittorrent.nix {};
|
bittorrent = handleTest ./bittorrent.nix {};
|
||||||
bitwarden = handleTest ./bitwarden.nix {};
|
|
||||||
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
|
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
|
||||||
boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
|
boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
|
||||||
boot-stage1 = handleTest ./boot-stage1.nix {};
|
boot-stage1 = handleTest ./boot-stage1.nix {};
|
||||||
borgbackup = handleTest ./borgbackup.nix {};
|
borgbackup = handleTest ./borgbackup.nix {};
|
||||||
botamusique = handleTest ./botamusique.nix {};
|
botamusique = handleTest ./botamusique.nix {};
|
||||||
|
btrbk = handleTest ./btrbk.nix {};
|
||||||
buildbot = handleTest ./buildbot.nix {};
|
buildbot = handleTest ./buildbot.nix {};
|
||||||
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
buildkite-agents = handleTest ./buildkite-agents.nix {};
|
||||||
caddy = handleTest ./caddy.nix {};
|
caddy = handleTest ./caddy.nix {};
|
||||||
|
@ -88,6 +88,7 @@ in
|
||||||
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
containers-tmpfs = handleTest ./containers-tmpfs.nix {};
|
||||||
convos = handleTest ./convos.nix {};
|
convos = handleTest ./convos.nix {};
|
||||||
corerad = handleTest ./corerad.nix {};
|
corerad = handleTest ./corerad.nix {};
|
||||||
|
coturn = handleTest ./coturn.nix {};
|
||||||
couchdb = handleTest ./couchdb.nix {};
|
couchdb = handleTest ./couchdb.nix {};
|
||||||
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
|
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
|
||||||
custom-ca = handleTest ./custom-ca.nix {};
|
custom-ca = handleTest ./custom-ca.nix {};
|
||||||
|
@ -446,6 +447,7 @@ in
|
||||||
v2ray = handleTest ./v2ray.nix {};
|
v2ray = handleTest ./v2ray.nix {};
|
||||||
vault = handleTest ./vault.nix {};
|
vault = handleTest ./vault.nix {};
|
||||||
vault-postgresql = handleTest ./vault-postgresql.nix {};
|
vault-postgresql = handleTest ./vault-postgresql.nix {};
|
||||||
|
vaultwarden = handleTest ./vaultwarden.nix {};
|
||||||
vector = handleTest ./vector.nix {};
|
vector = handleTest ./vector.nix {};
|
||||||
victoriametrics = handleTest ./victoriametrics.nix {};
|
victoriametrics = handleTest ./victoriametrics.nix {};
|
||||||
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
|
||||||
|
|
110
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:
|
# These tests will:
|
||||||
# * Set up a bitwarden-rs server
|
# * Set up a vaultwarden server
|
||||||
# * Have Firefox use the web vault to create an account, log in, and save a password to the valut
|
# * Have Firefox use the web vault to create an account, log in, and save a password to the valut
|
||||||
# * Have the bw cli log in and read that password from the vault
|
# * Have the bw cli log in and read that password from the vault
|
||||||
#
|
#
|
||||||
|
@ -24,8 +24,8 @@ let
|
||||||
|
|
||||||
storedPassword = "seeeecret";
|
storedPassword = "seeeecret";
|
||||||
|
|
||||||
makeBitwardenTest = backend: makeTest {
|
makeVaultwardenTest = backend: makeTest {
|
||||||
name = "bitwarden_rs-${backend}";
|
name = "vaultwarden-${backend}";
|
||||||
meta = {
|
meta = {
|
||||||
maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
|
maintainers = with pkgs.lib.maintainers; [ jjjollyjim ];
|
||||||
};
|
};
|
||||||
|
@ -45,9 +45,9 @@ let
|
||||||
package = pkgs.mariadb;
|
package = pkgs.mariadb;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
services.vaultwarden.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||||
|
|
||||||
systemd.services.bitwarden_rs.after = [ "mysql.service" ];
|
systemd.services.vaultwarden.after = [ "mysql.service" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
postgresql = {
|
postgresql = {
|
||||||
|
@ -60,9 +60,9 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
services.vaultwarden.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
|
||||||
|
|
||||||
systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
|
systemd.services.vaultwarden.after = [ "postgresql.service" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
sqlite = { };
|
sqlite = { };
|
||||||
|
@ -71,7 +71,7 @@ let
|
||||||
mkMerge [
|
mkMerge [
|
||||||
backendConfig.${backend}
|
backendConfig.${backend}
|
||||||
{
|
{
|
||||||
services.bitwarden_rs = {
|
services.vaultwarden = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dbBackend = backend;
|
dbBackend = backend;
|
||||||
config.rocketPort = 80;
|
config.rocketPort = 80;
|
||||||
|
@ -152,7 +152,7 @@ let
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
start_all()
|
start_all()
|
||||||
server.wait_for_unit("bitwarden_rs.service")
|
server.wait_for_unit("vaultwarden.service")
|
||||||
server.wait_for_open_port(80)
|
server.wait_for_open_port(80)
|
||||||
|
|
||||||
with subtest("configure the cli"):
|
with subtest("configure the cli"):
|
||||||
|
@ -184,6 +184,6 @@ let
|
||||||
in
|
in
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
map
|
map
|
||||||
(backend: { name = backend; value = makeBitwardenTest backend; })
|
(backend: { name = backend; value = makeVaultwardenTest backend; })
|
||||||
backends
|
backends
|
||||||
)
|
)
|
|
@ -40,7 +40,7 @@ pythonPackages.buildPythonApplication rec {
|
||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
chromaprint
|
chromaprint
|
||||||
dateutil
|
python-dateutil
|
||||||
discid
|
discid
|
||||||
fasteners
|
fasteners
|
||||||
mutagen
|
mutagen
|
||||||
|
|
|
@ -1,8 +1,19 @@
|
||||||
{ ripgrep, git, fzf, makeWrapper, vim_configurable, vimPlugins, fetchFromGitHub
|
{ ripgrep
|
||||||
, lib, stdenv, formats, runCommand, spacevim_config ? import ./init.nix }:
|
, git
|
||||||
|
, fzf
|
||||||
|
, makeWrapper
|
||||||
|
, vim_configurable
|
||||||
|
, vimPlugins
|
||||||
|
, fetchFromGitHub
|
||||||
|
, lib
|
||||||
|
, stdenv
|
||||||
|
, formats
|
||||||
|
, runCommand
|
||||||
|
, spacevim_config ? import ./init.nix
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
format = formats.toml {};
|
format = formats.toml { };
|
||||||
vim-customized = vim_configurable.customize {
|
vim-customized = vim_configurable.customize {
|
||||||
name = "vim";
|
name = "vim";
|
||||||
# Not clear at the moment how to import plugins such that
|
# Not clear at the moment how to import plugins such that
|
||||||
|
@ -14,17 +25,18 @@ let
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp ${format.generate "init.toml" spacevim_config} $out/init.toml
|
cp ${format.generate "init.toml" spacevim_config} $out/init.toml
|
||||||
'';
|
'';
|
||||||
in stdenv.mkDerivation rec {
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
pname = "spacevim";
|
pname = "spacevim";
|
||||||
version = "1.6.0";
|
version = "1.7.0";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "SpaceVim";
|
owner = "SpaceVim";
|
||||||
repo = "SpaceVim";
|
repo = "SpaceVim";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-QQdtjEdbuzmf0Rw+u2ZltLihnJt8LqkfTrLDWLAnCLE=";
|
sha256 = "sha256-TmfPeaGkH1Wq2b5lB29PUYDVddJVN3mBuPAmu9EtiGY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper vim-customized];
|
nativeBuildInputs = [ makeWrapper vim-customized ];
|
||||||
buildInputs = [ vim-customized ];
|
buildInputs = [ vim-customized ];
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
|
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
|
buildInputs = [ flex bison zlib proj gdal libtiff libpng fftw sqlite cairo proj
|
||||||
readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
|
readline ffmpeg_3 makeWrapper wxGTK30 netcdf geos postgresql libmysqlclient blas
|
||||||
libLAS proj-datumgrid ]
|
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
|
# On Darwin the installer tries to symlink the help files into a system
|
||||||
# directory
|
# directory
|
||||||
|
|
|
@ -12,7 +12,7 @@ let
|
||||||
numpy
|
numpy
|
||||||
psycopg2
|
psycopg2
|
||||||
chardet
|
chardet
|
||||||
dateutil
|
python-dateutil
|
||||||
pyyaml
|
pyyaml
|
||||||
pytz
|
pytz
|
||||||
requests
|
requests
|
||||||
|
|
|
@ -7,12 +7,12 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "3.4.1";
|
version = "3.6.0";
|
||||||
pname = "darktable";
|
pname = "darktable";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
|
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
|
||||||
sha256 = "sha256-f8P4UdqbzXxQU+zQnyGqPrYQO+mKbFj1IBC28iF0lB4=";
|
sha256 = "sha256:0f8aqwkgw4gs97b5i4ygiqk5zilwq7ax7zwdd31r72zk98cd1g46";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ninja llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook ];
|
nativeBuildInputs = [ cmake ninja llvm pkg-config intltool perl desktop-file-utils wrapGAppsHook ];
|
||||||
|
|
|
@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://about.draw.io/";
|
homepage = "https://about.draw.io/";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
|
changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ mkDerivationWith python3Packages.buildPythonApplication rec {
|
||||||
psutil
|
psutil
|
||||||
pyxdg
|
pyxdg
|
||||||
arrow
|
arrow
|
||||||
dateutil
|
python-dateutil
|
||||||
easygui
|
easygui
|
||||||
colour
|
colour
|
||||||
pymediainfo
|
pymediainfo
|
||||||
|
|
|
@ -107,7 +107,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "Multi-platform password manager";
|
description = "Multi-platform password manager";
|
||||||
homepage = "https://1password.com/";
|
homepage = "https://1password.com/";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = with maintainers; [ danieldk timstott savannidgerinel ];
|
maintainers = with maintainers; [ timstott savannidgerinel ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ mkDerivation rec {
|
||||||
cchardet
|
cchardet
|
||||||
css-parser
|
css-parser
|
||||||
cssselect
|
cssselect
|
||||||
dateutil
|
python-dateutil
|
||||||
dnspython
|
dnspython
|
||||||
feedparser
|
feedparser
|
||||||
html2text
|
html2text
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "curaengine";
|
pname = "curaengine";
|
||||||
version = "4.9.1";
|
version = "4.10.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Ultimaker";
|
owner = "Ultimaker";
|
||||||
repo = "CuraEngine";
|
repo = "CuraEngine";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-1hCjtnI1EnfyQ0QfU8qZoSLIjE5pyDYpu8H4J91cWYM=";
|
sha256 = "sha256-t5i6s0KKcaoMqzDxZ6JL1NyKP33uxWdmyziK3xh8q88=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -20,7 +20,7 @@ buildPythonApplication rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
dateutil gflags httplib2 parsedatetime six vobject
|
python-dateutil gflags httplib2 parsedatetime six vobject
|
||||||
google-api-python-client oauth2client uritemplate
|
google-api-python-client oauth2client uritemplate
|
||||||
libnotify
|
libnotify
|
||||||
];
|
];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
pname = "gpxsee";
|
pname = "gpxsee";
|
||||||
version = "9.1";
|
version = "9.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "tumic0";
|
owner = "tumic0";
|
||||||
repo = "GPXSee";
|
repo = "GPXSee";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-szq1i2/NEtMK4paSkxtkKXc8yY8qGj2U/p6CzNIecAY=";
|
sha256 = "sha256-pU02Eaq6tB7X6EPOo8YAyryJRbSV3KebQv8VELxXaBw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = (substituteAll {
|
patches = (substituteAll {
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "hugo";
|
pname = "hugo";
|
||||||
version = "0.84.3";
|
version = "0.84.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gohugoio";
|
owner = "gohugoio";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-3SbF4JsanNup0JmtEoZlyu3SvMn01r+nhnPgIi/W8pA=";
|
sha256 = "sha256-nD2UBDSDG6OFfUvDBXCfhOCiJyFMP2pDXSlIESaEfqE=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-ImXTOtN6kQL7Q8IBlmK7+i47cWtyZT0xcnQdCw3NvWM=";
|
vendorSha256 = "sha256-ImXTOtN6kQL7Q8IBlmK7+i47cWtyZT0xcnQdCw3NvWM=";
|
||||||
|
|
|
@ -18,7 +18,7 @@ with python3.pkgs; buildPythonApplication rec {
|
||||||
click
|
click
|
||||||
click-log
|
click-log
|
||||||
configobj
|
configobj
|
||||||
dateutil
|
python-dateutil
|
||||||
icalendar
|
icalendar
|
||||||
lxml
|
lxml
|
||||||
pkgs.vdirsyncer
|
pkgs.vdirsyncer
|
||||||
|
|
|
@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
|
||||||
homepage = "https://code-industry.net/free-pdf-editor/";
|
homepage = "https://code-industry.net/free-pdf-editor/";
|
||||||
license = licenses.unfreeRedistributable;
|
license = licenses.unfreeRedistributable;
|
||||||
platforms = with platforms; [ "x86_64-linux" ];
|
platforms = with platforms; [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ cmcdragonkai flokli ];
|
broken = true;
|
||||||
|
maintainers = with maintainers; [ cmcdragonkai ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
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
|
pikepdf
|
||||||
img2pdf
|
img2pdf
|
||||||
setuptools
|
setuptools
|
||||||
dateutil
|
python-dateutil
|
||||||
];
|
];
|
||||||
|
|
||||||
# incompatible with wrapGAppsHook
|
# incompatible with wrapGAppsHook
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.0.1";
|
version = "5.0.2";
|
||||||
|
|
||||||
subsurfaceSrc = (fetchFromGitHub {
|
subsurfaceSrc = (fetchFromGitHub {
|
||||||
owner = "Subsurface";
|
owner = "Subsurface";
|
||||||
repo = "subsurface";
|
repo = "subsurface";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "01r836ckvrmgprjf4cqxn2n3w5w4pa2fjrhspjndsspic8nwlrwg";
|
sha256 = "1yay06m8p9qp2ghrg8dxavdq55y09apcgdnb7rihgs3hq86k539n";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
, buildPythonApplication
|
, buildPythonApplication
|
||||||
, click
|
, click
|
||||||
, pyfiglet
|
, pyfiglet
|
||||||
, dateutil
|
, python-dateutil
|
||||||
, setuptools
|
, setuptools
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ buildPythonApplication rec {
|
||||||
owner = "trehn";
|
owner = "trehn";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ dateutil click pyfiglet setuptools ];
|
propagatedBuildInputs = [ python-dateutil click pyfiglet setuptools ];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Starts a countdown to or from TIMESPEC";
|
description = "Starts a countdown to or from TIMESPEC";
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, lib
|
, lib
|
||||||
, buildPythonApplication
|
, buildPythonApplication
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, dateutil
|
, python-dateutil
|
||||||
, pandas
|
, pandas
|
||||||
, requests
|
, requests
|
||||||
, lxml
|
, lxml
|
||||||
|
@ -36,7 +36,7 @@ buildPythonApplication rec {
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
# from visidata/requirements.txt
|
# from visidata/requirements.txt
|
||||||
# packages not (yet) present in nixpkgs are commented
|
# packages not (yet) present in nixpkgs are commented
|
||||||
dateutil
|
python-dateutil
|
||||||
pandas
|
pandas
|
||||||
requests
|
requests
|
||||||
lxml
|
lxml
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ lib, fetchurl, buildPythonApplication, dateutil,
|
{ lib, fetchurl, buildPythonApplication, python-dateutil,
|
||||||
sqlalchemy, setproctitle, icalendar }:
|
sqlalchemy, setproctitle, icalendar }:
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
|
@ -11,7 +11,7 @@ buildPythonApplication rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
dateutil
|
python-dateutil
|
||||||
sqlalchemy
|
sqlalchemy
|
||||||
setproctitle
|
setproctitle
|
||||||
icalendar
|
icalendar
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "3proxy";
|
pname = "3proxy";
|
||||||
version = "0.9.3";
|
version = "0.9.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "z3APA3A";
|
owner = "z3APA3A";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "9aopwyz0U2bYTvx5YWLJo9EE8Xfb51IOguHRJodjpm8=";
|
sha256 = "sha256-4bLlQ/ULvpjs6fr19yBBln5mRRc+yj+zVLiTs1e/Ypc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
|
|
|
@ -90,11 +90,11 @@ in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "brave";
|
pname = "brave";
|
||||||
version = "1.26.67";
|
version = "1.26.74";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
|
||||||
sha256 = "Kg6ExXZYdSkyBoivu9h4blytHN9hOc4bUSuFR+1YZOY=";
|
sha256 = "ULmoUXyPWHCewK4FPP7SX1Ena6n0aM/EWR7ZnMN1ztY=";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
|
|
|
@ -62,7 +62,7 @@ mkChromiumDerivation (base: rec {
|
||||||
-e '/\[Desktop Entry\]/a\' \
|
-e '/\[Desktop Entry\]/a\' \
|
||||||
-e 'StartupWMClass=chromium-browser' \
|
-e 'StartupWMClass=chromium-browser' \
|
||||||
$out/share/applications/chromium-browser.desktop
|
$out/share/applications/chromium-browser.desktop
|
||||||
'' + lib.optionalString (channel == "dev") ''
|
'' + lib.optionalString (channel != "stable") ''
|
||||||
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
|
cp -v "$buildPath/crashpad_handler" "$libExecPath/"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
|
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
|
# Requires tox, hadoop, and google cloud
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "dnscontrol";
|
pname = "dnscontrol";
|
||||||
version = "3.10.0";
|
version = "3.10.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "StackExchange";
|
owner = "StackExchange";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-22wYc6W4a5P9+JW7NW+s85IlQ+tfLhYzDarN6PGkFk4=";
|
sha256 = "sha256-fYQqH/J027XJPML/qKMpuu2Nxuvb0cyjOu2czLH8SoM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-TPvO/E/uOyVSMNRQ3zzt15+i0UK0uHvI4qM5PqmHY20=";
|
vendorSha256 = "sha256-225TR9jTZSGEJZz3csl/pR/v2unUK67l08x5ESQTJzA=";
|
||||||
|
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
beautifulsoup4
|
beautifulsoup4
|
||||||
dateutil
|
python-dateutil
|
||||||
feedparser
|
feedparser
|
||||||
html5lib
|
html5lib
|
||||||
listparser
|
listparser
|
||||||
|
|
|
@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
pynzb
|
pynzb
|
||||||
pyparsing
|
pyparsing
|
||||||
PyRSS2Gen
|
PyRSS2Gen
|
||||||
dateutil
|
python-dateutil
|
||||||
pyyaml
|
pyyaml
|
||||||
rebulk
|
rebulk
|
||||||
requests
|
requests
|
||||||
|
|
|
@ -48,7 +48,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
pythonPath = with python3.pkgs; [
|
pythonPath = with python3.pkgs; [
|
||||||
pygobject3
|
pygobject3
|
||||||
pycairo
|
pycairo
|
||||||
dateutil
|
python-dateutil
|
||||||
praw
|
praw
|
||||||
pillow
|
pillow
|
||||||
mistune
|
mistune
|
||||||
|
|
|
@ -55,7 +55,7 @@ in {
|
||||||
sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
|
sha256 = "0rnshrzw8605x05mpd8ndrx3ri8h6cx713mp8sl4f04f4gcrz8ml";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with pythonPackages; [twisted dateutil];
|
propagatedBuildInputs = with pythonPackages; [twisted python-dateutil];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Some (mainly XMPP-related) additions to twisted";
|
description = "Some (mainly XMPP-related) additions to twisted";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ mkDerivation, lib, fetchFromGitHub, callPackage
|
{ mkDerivation, lib, fetchFromGitHub, callPackage
|
||||||
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
|
, pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook, removeReferencesTo
|
||||||
, qtbase, qtimageformats, gtk3, libsForQt5, enchant2, lz4, xxHash
|
, qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash
|
||||||
, dee, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
|
, ffmpeg, openalSoft, minizip, libopus, alsa-lib, libpulseaudio, range-v3
|
||||||
, tl-expected, hunspell, glibmm, webkitgtk
|
, tl-expected, hunspell, glibmm, webkitgtk
|
||||||
, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
|
, libtgvoip, rnnoise, abseil-cpp, extra-cmake-modules
|
||||||
# Transitive dependencies:
|
# Transitive dependencies:
|
||||||
|
@ -23,7 +23,7 @@ let
|
||||||
tg_owt = callPackage ./tg_owt.nix {};
|
tg_owt = callPackage ./tg_owt.nix {};
|
||||||
in mkDerivation rec {
|
in mkDerivation rec {
|
||||||
pname = "telegram-desktop";
|
pname = "telegram-desktop";
|
||||||
version = "2.8.3";
|
version = "2.8.4";
|
||||||
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
# Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
|
||||||
|
|
||||||
# Telegram-Desktop with submodules
|
# Telegram-Desktop with submodules
|
||||||
|
@ -32,12 +32,10 @@ in mkDerivation rec {
|
||||||
repo = "tdesktop";
|
repo = "tdesktop";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
sha256 = "1ywxsy3a99sdibipriblbzskmkqbnxwrz3lavfdr134wq8w8rjf7";
|
sha256 = "sha256-IN3GQgdNM66/GxKa5EGKB/LIkgBxS8Y4mkPBaSEphmw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace Telegram/lib_spellcheck/spellcheck/platform/linux/linux_enchant.cpp \
|
|
||||||
--replace '"libenchant-2.so.2"' '"${enchant2}/lib/libenchant-2.so.2"'
|
|
||||||
substituteInPlace Telegram/CMakeLists.txt \
|
substituteInPlace Telegram/CMakeLists.txt \
|
||||||
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
|
--replace '"''${TDESKTOP_LAUNCHER_BASENAME}.appdata.xml"' '"''${TDESKTOP_LAUNCHER_BASENAME}.metainfo.xml"'
|
||||||
'';
|
'';
|
||||||
|
@ -49,8 +47,8 @@ in mkDerivation rec {
|
||||||
nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
|
nativeBuildInputs = [ pkg-config cmake ninja python3 wrapGAppsHook wrapQtAppsHook removeReferencesTo ];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu enchant2 lz4 xxHash
|
qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash
|
||||||
dee ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
|
ffmpeg openalSoft minizip libopus alsa-lib libpulseaudio range-v3
|
||||||
tl-expected hunspell glibmm webkitgtk
|
tl-expected hunspell glibmm webkitgtk
|
||||||
libtgvoip rnnoise abseil-cpp extra-cmake-modules
|
libtgvoip rnnoise abseil-cpp extra-cmake-modules
|
||||||
tg_owt
|
tg_owt
|
||||||
|
|
|
@ -10,7 +10,7 @@ mkDerivation rec {
|
||||||
owner = "haiwen";
|
owner = "haiwen";
|
||||||
repo = "seafile-client";
|
repo = "seafile-client";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "lhdKbR19ScNeezICf7vwZaeJikPjwbqrz42bo4lhxJs=";
|
sha256 = "cG3OSqRhYnxlzfauQia6pM/1gu+iE5mtHTGk3kGMFH0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config cmake ];
|
nativeBuildInputs = [ pkg-config cmake ];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, fetchFromGitHub, buildPythonApplication, fuse
|
{ lib, fetchFromGitHub, buildPythonApplication, fuse
|
||||||
, appdirs, colorama, dateutil, requests, requests_toolbelt
|
, appdirs, colorama, python-dateutil, requests, requests_toolbelt
|
||||||
, fusepy, sqlalchemy, setuptools }:
|
, fusepy, sqlalchemy, setuptools }:
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
|
@ -15,7 +15,7 @@ buildPythonApplication rec {
|
||||||
sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp";
|
sha256 = "0a0fr632l24a3jmgla3b1vcm50ayfa9hdbp677ch1chwj5dq4zfp";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ appdirs colorama dateutil fusepy requests
|
propagatedBuildInputs = [ appdirs colorama python-dateutil fusepy requests
|
||||||
requests_toolbelt setuptools sqlalchemy ];
|
requests_toolbelt setuptools sqlalchemy ];
|
||||||
|
|
||||||
makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];
|
makeWrapperArgs = [ "--prefix LIBFUSE_PATH : ${fuse}/lib/libfuse.so" ];
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
|
{ lib, fetchFromGitHub, fetchpatch, libnotify, librsvg, killall
|
||||||
, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
|
, gtk3, libappindicator-gtk3, substituteAll, syncthing, wrapGAppsHook
|
||||||
, gnome, buildPythonApplication, dateutil, pyinotify, pygobject3
|
, gnome, buildPythonApplication, python-dateutil, pyinotify, pygobject3
|
||||||
, bcrypt, gobject-introspection, gsettings-desktop-schemas
|
, bcrypt, gobject-introspection, gsettings-desktop-schemas
|
||||||
, pango, gdk-pixbuf, atk }:
|
, pango, gdk-pixbuf, atk }:
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
dateutil pyinotify pygobject3 bcrypt
|
python-dateutil pyinotify pygobject3 bcrypt
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
|
|
@ -122,7 +122,7 @@ let
|
||||||
|
|
||||||
runtimePackages = with python.pkgs; [
|
runtimePackages = with python.pkgs; [
|
||||||
dateparser
|
dateparser
|
||||||
dateutil
|
python-dateutil
|
||||||
django
|
django
|
||||||
django-cors-headers
|
django-cors-headers
|
||||||
django-crispy-forms
|
django-crispy-forms
|
||||||
|
|
|
@ -122,7 +122,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
openpaperwork-core
|
openpaperwork-core
|
||||||
pypillowfight
|
pypillowfight
|
||||||
pyxdg
|
pyxdg
|
||||||
dateutil
|
python-dateutil
|
||||||
setuptools
|
setuptools
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python3.pkgs; [
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
dateutil
|
python-dateutil
|
||||||
markdown2
|
markdown2
|
||||||
matplotlib
|
matplotlib
|
||||||
numpy
|
numpy
|
||||||
|
|
|
@ -123,7 +123,7 @@ in stdenv.mkDerivation {
|
||||||
description = "An office suite with a word processor, spreadsheet and presentation program";
|
description = "An office suite with a word processor, spreadsheet and presentation program";
|
||||||
homepage = "https://www.softmaker.com/";
|
homepage = "https://www.softmaker.com/";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,11 @@ let
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "super-productivity";
|
pname = "super-productivity";
|
||||||
version = "6.5.2";
|
version = "7.2.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
|
url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
|
||||||
sha256 = "1ivl7chsv9axgk6nqkf580pav651hchi3di0mrp0pylpsqgk6f1f";
|
sha256 = "93eeb56fe923c48a9384cde0633e98a9d9dc5c0869fce63b9724ff74bb400049";
|
||||||
name = "${pname}-${version}.AppImage";
|
name = "${pname}-${version}.AppImage";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ python3Packages.buildPythonApplication rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [
|
propagatedBuildInputs = with python3Packages; [
|
||||||
dateutil
|
python-dateutil
|
||||||
pygobject3
|
pygobject3
|
||||||
goocalendar
|
goocalendar
|
||||||
pycairo
|
pycairo
|
||||||
|
|
|
@ -35,10 +35,10 @@ in
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gwyddion";
|
pname = "gwyddion";
|
||||||
version = "2.58";
|
version = "2.59";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
|
url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
|
||||||
sha256 = "sha256-0xNnzYkuW3nEsO2o+0WEA+Z71XWoq6FYXm342OWO9Sw=";
|
sha256 = "sha256-APMOJeZt/zp8JvXghKZ5lQFRKWO/4TVDORok8qAgEBk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config file ];
|
nativeBuildInputs = [ pkg-config file ];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
|
{ lib, fetchzip, makeWrapper, makeDesktopItem, stdenv
|
||||||
, gtk3, libXtst, glib, zlib
|
, gtk3, libXtst, glib, zlib, wrapGAppsHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -25,7 +25,11 @@ in stdenv.mkDerivation rec {
|
||||||
sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
|
sha256 = "02a2y2mkfab5cczw8g604m61h4xr0apir49zbd1aq6mmgcgngw80";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
buildInputs = [ gtk3 ];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
|
||||||
|
|
||||||
|
dontWrapGApps = true;
|
||||||
|
|
||||||
phases = [ "installPhase" ];
|
phases = [ "installPhase" ];
|
||||||
|
|
||||||
|
@ -36,6 +40,9 @@ in stdenv.mkDerivation rec {
|
||||||
cp -r "$src" "$out/toolbox"
|
cp -r "$src" "$out/toolbox"
|
||||||
chmod -R +w "$out/toolbox"
|
chmod -R +w "$out/toolbox"
|
||||||
|
|
||||||
|
fixupPhase
|
||||||
|
gappsWrapperArgsHook
|
||||||
|
|
||||||
patchelf \
|
patchelf \
|
||||||
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
||||||
"$out/toolbox/toolbox"
|
"$out/toolbox/toolbox"
|
||||||
|
@ -52,7 +59,8 @@ in stdenv.mkDerivation rec {
|
||||||
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
|
makeWrapper $out/toolbox/toolbox $out/bin/tla-toolbox \
|
||||||
--run "set -x; cd $out/toolbox" \
|
--run "set -x; cd $out/toolbox" \
|
||||||
--add-flags "-data ~/.tla-toolbox" \
|
--add-flags "-data ~/.tla-toolbox" \
|
||||||
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}"
|
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ gtk3 libXtst glib zlib ]}" \
|
||||||
|
"''${gappsWrapperArgs[@]}"
|
||||||
|
|
||||||
echo -e "\nCreating TLA Toolbox icons..."
|
echo -e "\nCreating TLA Toolbox icons..."
|
||||||
pushd "$src"
|
pushd "$src"
|
||||||
|
|
|
@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
|
||||||
let pp = python.pkgs; in ([
|
let pp = python.pkgs; in ([
|
||||||
pp.numpy pp.scipy pp.scikitimage pp.h5py
|
pp.numpy pp.scipy pp.scikitimage pp.h5py
|
||||||
pp.matplotlib pp.ipython pp.networkx pp.nose
|
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
|
pp.pyyaml pp.pillow pp.six
|
||||||
] ++ lib.optional leveldbSupport pp.leveldb)
|
] ++ lib.optional leveldbSupport pp.leveldb)
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,14 +9,14 @@
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "glances";
|
pname = "glances";
|
||||||
version = "3.1.7";
|
version = "3.2.0";
|
||||||
disabled = isPyPy;
|
disabled = isPyPy;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "nicolargo";
|
owner = "nicolargo";
|
||||||
repo = "glances";
|
repo = "glances";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU=";
|
sha256 = "126xpx8i85giy3hkhqh0qcln9i1qj5bfciaqh9486rkl54xm8zsr";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
|
# Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
|
||||||
|
@ -48,7 +48,7 @@ buildPythonApplication rec {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://nicolargo.github.io/glances/";
|
homepage = "https://nicolargo.github.io/glances/";
|
||||||
description = "Cross-platform curses-based monitoring tool";
|
description = "Cross-platform curses-based monitoring tool";
|
||||||
changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}";
|
changelog = "https://github.com/nicolargo/glances/blob/v${version}/NEWS.rst";
|
||||||
license = licenses.lgpl3Only;
|
license = licenses.lgpl3Only;
|
||||||
maintainers = with maintainers; [ jonringer primeos koral ];
|
maintainers = with maintainers; [ jonringer primeos koral ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,95 +1,158 @@
|
||||||
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext
|
{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
|
||||||
, re2Support ? true
|
, re2Support ? true
|
||||||
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
|
, rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
|
||||||
, guiSupport ? false, tk ? null
|
, fullBuild ? false
|
||||||
|
, gitSupport ? fullBuild
|
||||||
|
, guiSupport ? fullBuild, tk
|
||||||
|
, highlightSupport ? fullBuild
|
||||||
, ApplicationServices
|
, ApplicationServices
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (python3Packages) docutils python fb-re2;
|
inherit (python3Packages) docutils python fb-re2 pygit2 pygments;
|
||||||
|
|
||||||
in python3Packages.buildPythonApplication rec {
|
self = python3Packages.buildPythonApplication rec {
|
||||||
pname = "mercurial";
|
pname = "mercurial";
|
||||||
version = "5.8";
|
version = "5.8";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
||||||
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
|
sha256 = "17rhlmmkqz5ll3k68jfzpcifg3nndbcbc2nx7kw8xn3qcj7nlpgw";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c365850b611490a5fdb235eb1cea310a542c2f84";
|
||||||
|
sha256 = "1gn3xvahbjdhbglffqpmj559w1bkqqsk70wqcanwv7nh972aqy9g";
|
||||||
|
})
|
||||||
|
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://www.mercurial-scm.org/repo/hg/raw-rev/c8f62920f07a40af3403ba9aefa1dac8a97d53ea";
|
||||||
|
sha256 = "1kw0xjg2c4jby0ncarjvpa5qafsyl1wzbk6jxls4hnxlxdl53nmn";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
format = "other";
|
||||||
|
|
||||||
|
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
|
||||||
|
|
||||||
|
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
||||||
|
inherit src;
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
|
||||||
|
sourceRoot = "${pname}-${version}/rust";
|
||||||
|
} else null;
|
||||||
|
cargoRoot = if rustSupport then "rust" else null;
|
||||||
|
|
||||||
|
propagatedBuildInputs = lib.optional re2Support fb-re2
|
||||||
|
++ lib.optional gitSupport pygit2
|
||||||
|
++ lib.optional highlightSupport pygments;
|
||||||
|
nativeBuildInputs = [ makeWrapper gettext installShellFiles ]
|
||||||
|
++ lib.optionals rustSupport (with rustPlatform; [
|
||||||
|
cargoSetupHook
|
||||||
|
rust.cargo
|
||||||
|
rust.rustc
|
||||||
|
]);
|
||||||
|
buildInputs = [ docutils ]
|
||||||
|
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
|
||||||
|
|
||||||
|
makeFlags = [ "PREFIX=$(out)" ]
|
||||||
|
++ lib.optional rustSupport "PURE=--rust";
|
||||||
|
|
||||||
|
postInstall = (lib.optionalString guiSupport ''
|
||||||
|
mkdir -p $out/etc/mercurial
|
||||||
|
cp contrib/hgk $out/bin
|
||||||
|
cat >> $out/etc/mercurial/hgrc << EOF
|
||||||
|
[extensions]
|
||||||
|
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
|
||||||
|
EOF
|
||||||
|
# setting HG so that hgk can be run itself as well (not only hg view)
|
||||||
|
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
|
||||||
|
--set HG $out/bin/hg
|
||||||
|
--prefix PATH : ${tk}/bin "
|
||||||
|
'') + ''
|
||||||
|
for i in $(cd $out/bin && ls); do
|
||||||
|
wrapProgram $out/bin/$i \
|
||||||
|
$WRAP_TK
|
||||||
|
done
|
||||||
|
|
||||||
|
# copy hgweb.cgi to allow use in apache
|
||||||
|
mkdir -p $out/share/cgi-bin
|
||||||
|
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
||||||
|
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
||||||
|
|
||||||
|
installShellCompletion --cmd hg \
|
||||||
|
--bash contrib/bash_completion \
|
||||||
|
--zsh contrib/zsh_completion
|
||||||
|
'';
|
||||||
|
|
||||||
|
passthru.tests = {};
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
inherit version;
|
||||||
|
description = "A fast, lightweight SCM system for very large distributed projects";
|
||||||
|
homepage = "https://www.mercurial-scm.org";
|
||||||
|
downloadPage = "https://www.mercurial-scm.org/release/";
|
||||||
|
license = licenses.gpl2Plus;
|
||||||
|
maintainers = with maintainers; [ eelco lukegb ];
|
||||||
|
updateWalker = true;
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
self.overridePythonAttrs (origAttrs: {
|
||||||
|
passthru = origAttrs.passthru // rec {
|
||||||
|
# withExtensions takes a function which takes the python packages set and
|
||||||
|
# returns a list of extensions to install.
|
||||||
|
#
|
||||||
|
# for instance: mercurial.withExtension (pm: [ pm.hg-evolve ])
|
||||||
|
withExtensions = f: let
|
||||||
|
python = self.python;
|
||||||
|
mercurialHighPrio = ps: (ps.toPythonModule self).overrideAttrs (oldAttrs: {
|
||||||
|
meta = oldAttrs.meta // {
|
||||||
|
priority = 50;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
plugins = (f python.pkgs) ++ [ (mercurialHighPrio python.pkgs) ];
|
||||||
|
env = python.withPackages (ps: plugins);
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
pname = "${self.pname}-with-extensions";
|
||||||
|
|
||||||
patches = [
|
inherit (self) src version meta;
|
||||||
# https://phab.mercurial-scm.org/D10638, needed for below patch to apply
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://phab.mercurial-scm.org/file/data/l7p2r4zcctcr3pzlybv2/PHID-FILE-bwjzxlz6sbegk3s4irik/D10638.diff";
|
|
||||||
sha256 = "0mfi324is02l7cnd3j0gbmg5rpyyqn3afg3f73flnfwmz5njqa5f";
|
|
||||||
})
|
|
||||||
# https://phab.mercurial-scm.org/D10639, fixes https://bz.mercurial-scm.org/show_bug.cgi?id=6514
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://phab.mercurial-scm.org/file/data/v53nhburhtkhpccyecei/PHID-FILE-6v34oll6r2gkqo4ng5nt/D10639.diff";
|
|
||||||
sha256 = "0h5ilrd2x1789fr6sf4k1mcvxdh0xdyr94yawdacw87v3x12c8cb";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
format = "other";
|
buildInputs = self.buildInputs ++ self.propagatedBuildInputs;
|
||||||
|
nativeBuildInputs = self.nativeBuildInputs;
|
||||||
|
|
||||||
passthru = { inherit python; }; # pass it so that the same version can be used in hg2git
|
phases = [ "installPhase" "installCheckPhase" ];
|
||||||
|
|
||||||
cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
|
installPhase = ''
|
||||||
inherit src;
|
runHook preInstall
|
||||||
name = "${pname}-${version}";
|
|
||||||
sha256 = "1kc2giqvfwsdl5fb0qmz96ws1gdrs3skfdzvpiif2i8f7r4nqlhd";
|
|
||||||
sourceRoot = "${pname}-${version}/rust";
|
|
||||||
} else null;
|
|
||||||
cargoRoot = if rustSupport then "rust" else null;
|
|
||||||
|
|
||||||
propagatedBuildInputs = lib.optional re2Support fb-re2;
|
mkdir -p $out/bin
|
||||||
nativeBuildInputs = [ makeWrapper gettext ]
|
|
||||||
++ lib.optionals rustSupport (with rustPlatform; [
|
|
||||||
cargoSetupHook
|
|
||||||
rust.cargo
|
|
||||||
rust.rustc
|
|
||||||
]);
|
|
||||||
buildInputs = [ docutils ]
|
|
||||||
++ lib.optionals stdenv.isDarwin [ ApplicationServices ];
|
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=$(out)" ]
|
for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
|
||||||
++ lib.optional rustSupport "PURE=--rust";
|
for bin in $bindir/*; do
|
||||||
|
ln -s ${env}/bin/$(basename $bin) $out/bin/
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
postInstall = (lib.optionalString guiSupport ''
|
ln -s ${self}/share $out/share
|
||||||
mkdir -p $out/etc/mercurial
|
|
||||||
cp contrib/hgk $out/bin
|
|
||||||
cat >> $out/etc/mercurial/hgrc << EOF
|
|
||||||
[extensions]
|
|
||||||
hgk=$out/lib/${python.libPrefix}/site-packages/hgext/hgk.py
|
|
||||||
EOF
|
|
||||||
# setting HG so that hgk can be run itself as well (not only hg view)
|
|
||||||
WRAP_TK=" --set TK_LIBRARY ${tk}/lib/${tk.libPrefix}
|
|
||||||
--set HG $out/bin/hg
|
|
||||||
--prefix PATH : ${tk}/bin "
|
|
||||||
'') + ''
|
|
||||||
for i in $(cd $out/bin && ls); do
|
|
||||||
wrapProgram $out/bin/$i \
|
|
||||||
$WRAP_TK
|
|
||||||
done
|
|
||||||
|
|
||||||
# copy hgweb.cgi to allow use in apache
|
runHook postInstall
|
||||||
mkdir -p $out/share/cgi-bin
|
'';
|
||||||
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
|
||||||
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
|
||||||
|
|
||||||
# install bash/zsh completions
|
installCheckPhase = ''
|
||||||
install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
|
runHook preInstallCheck
|
||||||
install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
$out/bin/hg help >/dev/null || exit 1
|
||||||
inherit version;
|
|
||||||
description = "A fast, lightweight SCM system for very large distributed projects";
|
runHook postInstallCheck
|
||||||
homepage = "https://www.mercurial-scm.org";
|
'';
|
||||||
downloadPage = "https://www.mercurial-scm.org/release/";
|
};
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
maintainers = with maintainers; [ eelco lukegb ];
|
tests = origAttrs.passthru.tests // {
|
||||||
updateWalker = true;
|
withExtensions = withExtensions (pm: [ pm.hg-evolve ]);
|
||||||
platforms = platforms.unix;
|
};
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
|
|
|
@ -1,25 +1,16 @@
|
||||||
{ lib, fetchurl, python3Packages
|
{ lib, fetchurl, python3Packages
|
||||||
, mercurial, qt5
|
, mercurial, qt5
|
||||||
}@args:
|
}:
|
||||||
let
|
let
|
||||||
tortoisehgSrc = fetchurl rec {
|
tortoisehgSrc = fetchurl rec {
|
||||||
meta.name = "tortoisehg-${meta.version}";
|
meta.name = "tortoisehg-${meta.version}";
|
||||||
meta.version = "5.6";
|
meta.version = "5.8";
|
||||||
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
|
url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${meta.version}.tar.gz";
|
||||||
sha256 = "031bafj88wggpvw0lgvl0djhlbhs9nls9vzwvni8yn0m0bgzc9gr";
|
sha256 = "154q7kyrdk045wx7rsblzx41k3wbvp2f40kzkxmiiaa5n35srsm3";
|
||||||
};
|
};
|
||||||
|
|
||||||
tortoiseMercurial = (mercurial.override {
|
# Extension point for when thg's mercurial is lagging behind mainline.
|
||||||
rustSupport = false;
|
tortoiseMercurial = mercurial;
|
||||||
re2Support = lib.versionAtLeast tortoisehgSrc.meta.version "5.8";
|
|
||||||
}).overridePythonAttrs (old: rec {
|
|
||||||
inherit (tortoisehgSrc.meta) version;
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
|
|
||||||
sha256 = "1hk2y30zzdnlv8f71kabvh0xi9c7qhp28ksh20vpd0r712sv79yz";
|
|
||||||
};
|
|
||||||
patches = [];
|
|
||||||
});
|
|
||||||
|
|
||||||
in python3Packages.buildPythonApplication {
|
in python3Packages.buildPythonApplication {
|
||||||
inherit (tortoisehgSrc.meta) name version;
|
inherit (tortoisehgSrc.meta) name version;
|
||||||
|
@ -49,7 +40,7 @@ in python3Packages.buildPythonApplication {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Qt based graphical tool for working with Mercurial";
|
description = "Qt based graphical tool for working with Mercurial";
|
||||||
homepage = "https://tortoisehg.bitbucket.io/";
|
homepage = "https://tortoisehg.bitbucket.io/";
|
||||||
license = lib.licenses.gpl2;
|
license = lib.licenses.gpl2Only;
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
maintainers = with lib.maintainers; [ danbst ];
|
maintainers = with lib.maintainers; [ danbst ];
|
||||||
};
|
};
|
||||||
|
|
|
@ -72,6 +72,6 @@ in mkDerivation {
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
homepage = "http://makemkv.com";
|
homepage = "http://makemkv.com";
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
maintainers = with maintainers; [ danieldk titanous ];
|
maintainers = with maintainers; [ titanous ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
buildPythonApplication rec {
|
||||||
pname = "pyca";
|
pname = "pyca";
|
||||||
|
@ -13,7 +13,7 @@ buildPythonApplication rec {
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
pycurl
|
pycurl
|
||||||
dateutil
|
python-dateutil
|
||||||
configobj
|
configobj
|
||||||
sqlalchemy
|
sqlalchemy
|
||||||
sdnotify
|
sdnotify
|
||||||
|
|
|
@ -39,7 +39,7 @@ python37Packages.buildPythonApplication rec {
|
||||||
cairocffi-xcffib
|
cairocffi-xcffib
|
||||||
setuptools
|
setuptools
|
||||||
setuptools-scm
|
setuptools-scm
|
||||||
dateutil
|
python-dateutil
|
||||||
dbus-python
|
dbus-python
|
||||||
mpd2
|
mpd2
|
||||||
psutil
|
psutil
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchFromGitHub
|
{ lib, stdenv, fetchFromGitHub
|
||||||
, meson, ninja, pkg-config, scdoc
|
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||||
, wayland, wayland-protocols, systemd
|
, wayland, wayland-protocols, systemd
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
--replace "version: '1.5'" "version: '${version}'"
|
--replace "version: '1.5'" "version: '${version}'"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
|
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||||
buildInputs = [ wayland wayland-protocols systemd ];
|
buildInputs = [ wayland wayland-protocols systemd ];
|
||||||
|
|
||||||
mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];
|
mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=enabled" ];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ lib, stdenv, fetchFromGitHub
|
{ lib, stdenv, fetchFromGitHub
|
||||||
, meson, ninja, pkg-config, scdoc
|
, meson, ninja, pkg-config, scdoc, wayland-scanner
|
||||||
, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
|
, wayland, wayland-protocols, libxkbcommon, cairo, gdk-pixbuf, pam
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
--replace "version: '1.4'" "version: '${version}'"
|
--replace "version: '1.4'" "version: '${version}'"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
|
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-scanner ];
|
||||||
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
buildInputs = [ wayland wayland-protocols libxkbcommon cairo gdk-pixbuf pam ];
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
|
|
|
@ -117,7 +117,8 @@ rec {
|
||||||
--tmpdir=$TMPDIR \
|
--tmpdir=$TMPDIR \
|
||||||
--override-os ${os} \
|
--override-os ${os} \
|
||||||
--override-arch ${arch} \
|
--override-arch ${arch} \
|
||||||
copy "$sourceURL" "docker-archive://$out:$destNameTag"
|
copy "$sourceURL" "docker-archive://$out:$destNameTag" \
|
||||||
|
| cat # pipe through cat to force-disable progress bar
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
|
# We need to sum layer.tar, not a directory, hence tarsum instead of nix-hash.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, fetchzip }:
|
{ lib, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.000";
|
version = "6.000";
|
||||||
in
|
in
|
||||||
fetchzip rec {
|
fetchzip rec {
|
||||||
name = "charis-sil-${version}";
|
name = "charis-sil-${version}";
|
||||||
|
@ -14,7 +14,7 @@ in
|
||||||
unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
|
unzip -j $downloadedFile \*OFL.txt \*OFL-FAQ.txt \*README.txt \*FONTLOG.txt -d "$out/share/doc/${name}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "1a220s8n0flvcdkazqf5g10v6r55s2an308slvvarynpj6l7x27n";
|
sha256 = "sha256-eMmC893rI42qzZVCI17i9XSAbQzXCK2fHVe5Pf1/VnM=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://software.sil.org/charis";
|
homepage = "https://software.sil.org/charis";
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ lib, fetchzip }:
|
{ lib, fetchzip }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.47.0";
|
version = "4.49.1";
|
||||||
in fetchzip {
|
in fetchzip {
|
||||||
name = "terminus-font-ttf-${version}";
|
name = "terminus-font-ttf-${version}";
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ in fetchzip {
|
||||||
install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
|
install -Dm 644 COPYING "$out/share/doc/terminus-font-ttf/COPYING"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
sha256 = "1mnx3vlnl0r15yzsa4zb9qqab4hpi603gdwhlbw960wg03i3xn8z";
|
sha256 = "sha256-UaTnCamIRN/3xZsYt5nYzvykXQ3ri94a047sWOJ2RfU=";
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A clean fixed width TTF font";
|
description = "A clean fixed width TTF font";
|
||||||
|
|
|
@ -38,6 +38,6 @@ stdenvNoCC.mkDerivation {
|
||||||
description = "A set of default and supplemental wallpapers for Fedora";
|
description = "A set of default and supplemental wallpapers for Fedora";
|
||||||
license = licenses.cc-by-sa-40;
|
license = licenses.cc-by-sa-40;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bulky";
|
pname = "bulky";
|
||||||
version = "1.6";
|
version = "1.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "linuxmint";
|
owner = "linuxmint";
|
||||||
repo = "bulky";
|
repo = "bulky";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "sha256-cO6AhQ0g1N43du74fljfI1M68jb9N04FKUyzjbzC3K0=";
|
sha256 = "sha256-+3OoeuGuyiHWlUrxm5A7CmNR+ijxdlmecmvqk+i+h08=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -339,8 +339,6 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||||
|
|
||||||
inherit (pkgs) gnome-user-docs; # added 2019-11-20
|
inherit (pkgs) gnome-user-docs; # added 2019-11-20
|
||||||
|
|
||||||
inherit (pkgs) gegl_0_4; # added 2019-10-31
|
|
||||||
|
|
||||||
inherit (pkgs) gjs; # added 2019-01-05
|
inherit (pkgs) gjs; # added 2019-01-05
|
||||||
|
|
||||||
inherit (pkgs) yelp-tools; # added 2019-11-20
|
inherit (pkgs) yelp-tools; # added 2019-11-20
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ lib, buildRebar3, fetchFromGitHub }:
|
{ lib, buildRebar3, fetchFromGitHub }:
|
||||||
buildRebar3 rec {
|
buildRebar3 rec {
|
||||||
name = "rebar3_nix";
|
name = "rebar3_nix";
|
||||||
version = "0.1.0";
|
version = "0.1.1";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "erlang-nix";
|
owner = "erlang-nix";
|
||||||
repo = name;
|
repo = name;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "17w8m4aqqgvhpx3xyc7x2qzsrd3ybzc83ay50zs1gyd1b8csh2wf";
|
sha256 = "10ijc06qvv5hqv0qy3w7mbv9pshdb8bvy0f3phr1vd5hksbk731y";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
|
description = "ROCm fork of the clang C/C++/Objective-C/Objective-C++ LLVM compiler frontend";
|
||||||
homepage = "https://llvm.org/";
|
homepage = "https://llvm.org/";
|
||||||
license = with licenses; [ ncsa ];
|
license = with licenses; [ ncsa ];
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "ROCm fork of the LLVM Linker";
|
description = "ROCm fork of the LLVM Linker";
|
||||||
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
||||||
license = licenses.ncsa;
|
license = licenses.ncsa;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
|
||||||
description = "ROCm fork of the LLVM compiler infrastructure";
|
description = "ROCm fork of the LLVM compiler infrastructure";
|
||||||
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
homepage = "https://github.com/RadeonOpenCompute/llvm-project";
|
||||||
license = with licenses; [ ncsa ];
|
license = with licenses; [ ncsa ];
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,6 +53,7 @@ in
|
||||||
, enableParallelBuilding ? true
|
, enableParallelBuilding ? true
|
||||||
, maintainers ? null
|
, maintainers ? null
|
||||||
, changelog ? null
|
, changelog ? null
|
||||||
|
, mainProgram ? null
|
||||||
, doCoverage ? false
|
, doCoverage ? false
|
||||||
, doHaddock ? !(ghc.isHaLVM or false)
|
, doHaddock ? !(ghc.isHaLVM or false)
|
||||||
, passthru ? {}
|
, passthru ? {}
|
||||||
|
@ -666,6 +667,7 @@ stdenv.mkDerivation ({
|
||||||
// optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
|
// optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
|
||||||
// optionalAttrs (args ? badPlatforms) { inherit badPlatforms; }
|
// optionalAttrs (args ? badPlatforms) { inherit badPlatforms; }
|
||||||
// optionalAttrs (args ? changelog) { inherit changelog; }
|
// optionalAttrs (args ? changelog) { inherit changelog; }
|
||||||
|
// optionalAttrs (args ? mainProgram) { inherit mainProgram; }
|
||||||
;
|
;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,6 @@ in stdenv.mkDerivation rec {
|
||||||
changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
|
changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||||
maintainers = with maintainers; [ danieldk Flakebi ];
|
maintainers = with maintainers; [ Flakebi ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "armadillo";
|
pname = "armadillo";
|
||||||
version = "10.5.2";
|
version = "10.5.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
|
||||||
sha256 = "sha256-Y/I87cVIpelASBblDPj4/MSSqxqtxsDO8wv8Kvzq2V8=";
|
sha256 = "sha256-5sUdjVKm94ucZFn2mGE1CT4O5wWmdDBxEPYXXyzV7jc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -10,13 +10,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "babl";
|
pname = "babl";
|
||||||
version = "0.1.86";
|
version = "0.1.88";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "https://download.gimp.org/pub/babl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "sha256-Cz9ZUVmtGyFs1ynAUEw6X2z3gMZB9Nxj/BZPPAOCyPA=";
|
sha256 = "sha256-Tw1/SqoLsucl80mt97NRqVfZ+ybVVdmJWnr4FrQWcDk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "duckdb";
|
pname = "duckdb";
|
||||||
version = "0.2.2";
|
version = "0.2.7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "cwida";
|
owner = "cwida";
|
||||||
repo = "duckdb";
|
repo = "duckdb";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1pzz2zjzpvji5am21vd9kjxj0pnxsjmrsfqrym9h2rk2mi7p2cx8";
|
sha256 = "0cnqq2n1424fqg7gfyvrwkk6nvjal2fm5n08xc8q28ynyhq4sfmj";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, meson
|
, meson
|
||||||
, ninja
|
, ninja
|
||||||
|
, wayland-scanner
|
||||||
, libX11
|
, libX11
|
||||||
, mesa
|
, mesa
|
||||||
, libGL
|
, libGL
|
||||||
|
@ -51,10 +52,15 @@ in stdenv.mkDerivation rec {
|
||||||
sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
|
sha256 = "1n9lg8hpjgxlf7dpddkjhbslsfd0symla2wk6jjmnl9n9jv2gmzk";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
depsBuildBuild = [
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson
|
meson
|
||||||
ninja
|
ninja
|
||||||
pkg-config
|
pkg-config
|
||||||
|
wayland-scanner
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -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
|
, fetchurl
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
, vala
|
||||||
|
, gobject-introspection
|
||||||
|
, gtk-doc
|
||||||
|
, docbook-xsl-nons
|
||||||
|
, docbook_xml_dtd_43
|
||||||
|
, glib
|
||||||
, babl
|
, babl
|
||||||
, libpng
|
, libpng
|
||||||
, cairo
|
, cairo
|
||||||
, libjpeg
|
, libjpeg
|
||||||
, librsvg
|
, librsvg
|
||||||
|
, lensfun
|
||||||
|
, libspiro
|
||||||
|
, maxflow
|
||||||
|
, netsurf
|
||||||
, pango
|
, pango
|
||||||
, gtk2
|
, poly2tri-c
|
||||||
|
, poppler
|
||||||
, bzip2
|
, bzip2
|
||||||
, intltool
|
, json-glib
|
||||||
, libintl
|
, gettext
|
||||||
, OpenGL ? null }:
|
, meson
|
||||||
|
, ninja
|
||||||
|
, libraw
|
||||||
|
, gexiv2
|
||||||
|
, libwebp
|
||||||
|
, luajit
|
||||||
|
, openexr
|
||||||
|
, OpenCL
|
||||||
|
, suitesparse
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gegl";
|
pname = "gegl";
|
||||||
version = "0.2.0";
|
version = "0.4.30";
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" "devdoc" ];
|
||||||
|
outputBin = "dev";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "ftp://ftp.gtk.org/pub/gegl/0.2/${pname}-${version}.tar.bz2";
|
url = "https://download.gimp.org/pub/gegl/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "df2e6a0d9499afcbc4f9029c18d9d1e0dd5e8710a75e17c9b1d9a6480dd8d426";
|
sha256 = "sha256-wRJ4LPQJaWniMhfM36vkIoTjXVQ1/wxD1A5McPrsqN0=";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [( fetchurl {
|
nativeBuildInputs = [
|
||||||
url = "https://projects.archlinux.org/svntogit/packages.git/plain/trunk/"
|
pkg-config
|
||||||
+ "gegl-0.2.0-CVE-2012-4433.patch?h=packages/gegl&id=57a60fbda5d7bbbd1cc4767cb0724baa80c5e3e9";
|
gettext
|
||||||
sha256 = "0p8mxj3w09nn1cc6cbxrd9hx742c5y27903i608wx6ja3kdjis59";
|
meson
|
||||||
name = "CVE-2012-4433.patch";
|
ninja
|
||||||
})];
|
vala
|
||||||
|
gobject-introspection
|
||||||
|
gtk-doc
|
||||||
|
docbook-xsl-nons
|
||||||
|
docbook_xml_dtd_43
|
||||||
|
];
|
||||||
|
|
||||||
# needs fonts otherwise don't know how to pass them
|
buildInputs = [
|
||||||
configureFlags = [ "--disable-docs" ];
|
libpng
|
||||||
|
cairo
|
||||||
|
libjpeg
|
||||||
|
librsvg
|
||||||
|
lensfun
|
||||||
|
libspiro
|
||||||
|
maxflow
|
||||||
|
netsurf.libnsgif
|
||||||
|
pango
|
||||||
|
poly2tri-c
|
||||||
|
poppler
|
||||||
|
bzip2
|
||||||
|
libraw
|
||||||
|
libwebp
|
||||||
|
gexiv2
|
||||||
|
luajit
|
||||||
|
openexr
|
||||||
|
suitesparse
|
||||||
|
] ++ lib.optional stdenv.isDarwin OpenCL;
|
||||||
|
|
||||||
buildInputs = [ babl libpng cairo libjpeg librsvg pango gtk2 bzip2 intltool libintl ]
|
# for gegl-4.0.pc
|
||||||
++ lib.optional stdenv.isDarwin OpenGL;
|
propagatedBuildInputs = [
|
||||||
|
glib
|
||||||
|
json-glib
|
||||||
|
babl
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
mesonFlags = [
|
||||||
|
"-Ddocs=true"
|
||||||
|
"-Dmrg=disabled" # not sure what that is
|
||||||
|
"-Dsdl2=disabled"
|
||||||
|
"-Dpygobject=disabled"
|
||||||
|
"-Dlibav=disabled"
|
||||||
|
"-Dlibv4l=disabled"
|
||||||
|
"-Dlibv4l2=disabled"
|
||||||
|
# Disabled due to multiple vulnerabilities, see
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/73586
|
||||||
|
"-Djasper=disabled"
|
||||||
|
];
|
||||||
|
|
||||||
doCheck = false; # fails 3 out of 19 tests
|
# TODO: Fix missing math symbols in gegl seamless clone.
|
||||||
|
# It only appears when we use packaged poly2tri-c instead of vendored one.
|
||||||
|
NIX_CFLAGS_COMPILE = "-lm";
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
chmod +x tests/opencl/opencl_test.sh
|
||||||
|
patchShebangs tests/ff-load-save/tests_ff_load_save.sh tests/opencl/opencl_test.sh tools/xml_insert.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
# tests fail to connect to the com.apple.fonts daemon in sandboxed mode
|
||||||
|
doCheck = !stdenv.isDarwin;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Graph-based image processing framework";
|
description = "Graph-based image processing framework";
|
||||||
|
|
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 {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libvmaf";
|
pname = "libvmaf";
|
||||||
version = "2.1.1";
|
version = "2.2.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "netflix";
|
owner = "netflix";
|
||||||
repo = "vmaf";
|
repo = "vmaf";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0dynk1pmsyf23vfxljaazqkr27vfrvhj3dyjzm06zxpzsn59aif3";
|
sha256 = "1jlmivmdzlhizljbmsvqqxnhjfyjh8zxyf5xv6j040vbfj4mf14f";
|
||||||
};
|
};
|
||||||
|
|
||||||
sourceRoot = "source/libvmaf";
|
sourceRoot = "source/libvmaf";
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libxlsxwriter";
|
pname = "libxlsxwriter";
|
||||||
version = "1.0.6";
|
version = "1.0.8";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jmcnamara";
|
owner = "jmcnamara";
|
||||||
repo = "libxlsxwriter";
|
repo = "libxlsxwriter";
|
||||||
rev = "RELEASE_${version}";
|
rev = "RELEASE_${version}";
|
||||||
sha256 = "03fdcbm0xnkxwv6fir4yy4x9q2p5h08j099w9xh5gc2ni7ygjlyx";
|
sha256 = "1z9bkg0pfkzxbpj2rys4mx9wmcxyjjqsg0nbiaabsg455q00plki";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
stdenv, lib, fetchFromGitHub,
|
stdenv, lib, fetchFromGitHub, symlinkJoin,
|
||||||
cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
|
cmake, expat, libyamlcpp, ilmbase, pystring, # Base dependencies
|
||||||
|
|
||||||
glew, freeglut, # Only required on Linux
|
glew, freeglut, # Only required on Linux
|
||||||
|
@ -25,8 +25,8 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
|
sha256 = "194j9jp5c8ws0fryiz936wyinphnpzwpqnzvw9ryx6rbiwrba487";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake (symlinkJoin { name = "expat"; paths = [ expat.out expat.dev ]; }) ];
|
||||||
buildInputs = [ expat libyamlcpp ilmbase pystring ]
|
buildInputs = [ expat.out libyamlcpp ilmbase pystring ]
|
||||||
++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
|
++ lib.optionals stdenv.hostPlatform.isLinux [ glew freeglut ]
|
||||||
++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
|
++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon GLUT Cocoa ]
|
||||||
++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]
|
++ lib.optionals pythonBindings [ python3Packages.python python3Packages.pybind11 ]
|
||||||
|
|
|
@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "Radeon Open Compute common language runtime";
|
description = "Radeon Open Compute common language runtime";
|
||||||
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
|
homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
# rocclr seems to have some AArch64 ifdefs, but does not seem
|
# rocclr seems to have some AArch64 ifdefs, but does not seem
|
||||||
# to be supported yet by the build infrastructure. Recheck in
|
# to be supported yet by the build infrastructure. Recheck in
|
||||||
# the future.
|
# the future.
|
||||||
|
|
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "APIs for compiling and inspecting AMDGPU code objects";
|
description = "APIs for compiling and inspecting AMDGPU code objects";
|
||||||
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
|
homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
|
||||||
license = licenses.ncsa;
|
license = licenses.ncsa;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
|
||||||
description = "Set of AMD-specific device-side language runtime libraries";
|
description = "Set of AMD-specific device-side language runtime libraries";
|
||||||
homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
|
homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
|
||||||
license = licenses.ncsa;
|
license = licenses.ncsa;
|
||||||
maintainers = with maintainers; [ danieldk ];
|
maintainers = with maintainers; [ ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue