Merge branch 'master' into staging
This commit is contained in:
commit
ef935fa101
|
@ -64,13 +64,18 @@
|
||||||
/pkgs/development/haskell-modules/generic-builder.nix @peti @ryantm @basvandijk
|
/pkgs/development/haskell-modules/generic-builder.nix @peti @ryantm @basvandijk
|
||||||
/pkgs/development/haskell-modules/hoogle.nix @peti @ryantm @basvandijk
|
/pkgs/development/haskell-modules/hoogle.nix @peti @ryantm @basvandijk
|
||||||
|
|
||||||
|
# Perl
|
||||||
|
/pkgs/development/interpreters/perl @volth
|
||||||
|
/pkgs/top-level/perl-packages.nix @volth
|
||||||
|
/pkgs/development/perl-modules @volth
|
||||||
|
|
||||||
# R
|
# R
|
||||||
/pkgs/applications/science/math/R @peti
|
/pkgs/applications/science/math/R @peti
|
||||||
/pkgs/development/r-modules @peti
|
/pkgs/development/r-modules @peti
|
||||||
|
|
||||||
# Ruby
|
# Ruby
|
||||||
/pkgs/development/interpreters/ruby @zimbatm
|
/pkgs/development/interpreters/ruby @alyssais @zimbatm
|
||||||
/pkgs/development/ruby-modules @zimbatm
|
/pkgs/development/ruby-modules @alyssais @zimbatm
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
/pkgs/development/compilers/rust @Mic92 @LnL7
|
/pkgs/development/compilers/rust @Mic92 @LnL7
|
||||||
|
|
|
@ -484,10 +484,12 @@ and in this case the `python35` interpreter is automatically used.
|
||||||
### Interpreters
|
### Interpreters
|
||||||
|
|
||||||
Versions 2.7, 3.5, 3.6 and 3.7 of the CPython interpreter are available as
|
Versions 2.7, 3.5, 3.6 and 3.7 of the CPython interpreter are available as
|
||||||
respectively `python27`, `python35`, `python36`, and `python37`. The PyPy
|
respectively `python27`, `python35`, `python36` and `python37`. The aliases
|
||||||
interpreter is available as `pypy`. The aliases `python2` and `python3`
|
`python2` and `python3` correspond to respectively `python27` and
|
||||||
correspond to respectively `python27` and `python37`. The default interpreter,
|
`python37`. The default interpreter, `python`, maps to `python2`. The PyPy
|
||||||
`python`, maps to `python2`. The Nix expressions for the interpreters can be
|
interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
|
||||||
|
`pypy3`, with aliases `pypy2` mapping to `pypy27` and `pypy` mapping to
|
||||||
|
`pypy2`. The Nix expressions for the interpreters can be
|
||||||
found in `pkgs/development/interpreters/python`.
|
found in `pkgs/development/interpreters/python`.
|
||||||
|
|
||||||
All packages depending on any Python interpreter get appended
|
All packages depending on any Python interpreter get appended
|
||||||
|
@ -1102,7 +1104,7 @@ on `numpy` will be built with `mkl`.
|
||||||
The following is an overlay that configures `numpy` to use `mkl`:
|
The following is an overlay that configures `numpy` to use `mkl`:
|
||||||
```nix
|
```nix
|
||||||
self: super: {
|
self: super: {
|
||||||
python36 = super.python36.override {
|
python37 = super.python37.override {
|
||||||
packageOverrides = python-self: python-super: {
|
packageOverrides = python-self: python-super: {
|
||||||
numpy = python-super.numpy.override {
|
numpy = python-super.numpy.override {
|
||||||
blas = super.pkgs.mkl;
|
blas = super.pkgs.mkl;
|
||||||
|
@ -1112,6 +1114,15 @@ self: super: {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`mkl` requires an `openmp` implementation when running with multiple processors.
|
||||||
|
By default, `mkl` will use Intel's `iomp` implementation if no other is
|
||||||
|
specified, but this is a runtime-only dependency and binary compatible with the
|
||||||
|
LLVM implementation. To use that one instead, Intel recommends users set it with
|
||||||
|
`LD_PRELOAD`.
|
||||||
|
|
||||||
|
Note that `mkl` is only available on `x86_64-{linux,darwin}` platforms;
|
||||||
|
moreover, Hydra is not building and distributing pre-compiled binaries using it.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
### Contributing guidelines
|
### Contributing guidelines
|
||||||
|
|
|
@ -256,6 +256,11 @@
|
||||||
github = "AndrewMorsillo";
|
github = "AndrewMorsillo";
|
||||||
name = "Andrew Morsillo";
|
name = "Andrew Morsillo";
|
||||||
};
|
};
|
||||||
|
andersk = {
|
||||||
|
email = "andersk@mit.edu";
|
||||||
|
github = "andersk";
|
||||||
|
name = "Anders Kaseorg";
|
||||||
|
};
|
||||||
AndersonTorres = {
|
AndersonTorres = {
|
||||||
email = "torres.anderson.85@protonmail.com";
|
email = "torres.anderson.85@protonmail.com";
|
||||||
github = "AndersonTorres";
|
github = "AndersonTorres";
|
||||||
|
@ -1324,6 +1329,11 @@
|
||||||
github = "ellis";
|
github = "ellis";
|
||||||
name = "Ellis Whitehead";
|
name = "Ellis Whitehead";
|
||||||
};
|
};
|
||||||
|
elohmeier = {
|
||||||
|
email = "elo-nixos@nerdworks.de";
|
||||||
|
github = "elohmeier";
|
||||||
|
name = "Enno Lohmeier";
|
||||||
|
};
|
||||||
elseym = {
|
elseym = {
|
||||||
email = "elseym@me.com";
|
email = "elseym@me.com";
|
||||||
github = "elseym";
|
github = "elseym";
|
||||||
|
|
|
@ -43,6 +43,15 @@
|
||||||
<literal>./programs/nm-applet.nix</literal>
|
<literal>./programs/nm-applet.nix</literal>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
There is a new <varname>security.googleOsLogin</varname> module for using
|
||||||
|
<link xlink:href="https://cloud.google.com/compute/docs/instances/managing-instance-access">OS Login</link>
|
||||||
|
to manage SSH access to Google Compute Engine instances, which supersedes
|
||||||
|
the imperative and broken <literal>google-accounts-daemon</literal> used
|
||||||
|
in <literal>nixos/modules/virtualisation/google-compute-config.nix</literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -318,6 +327,22 @@
|
||||||
case.
|
case.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The <literal>pam_unix</literal> account module is now loaded with its
|
||||||
|
control field set to <literal>required</literal> instead of
|
||||||
|
<literal>sufficient</literal>, so that later pam account modules that
|
||||||
|
might do more extensive checks are being executed.
|
||||||
|
Previously, the whole account module verification was exited prematurely
|
||||||
|
in case a nss module provided the account name to
|
||||||
|
<literal>pam_unix</literal>.
|
||||||
|
The LDAP and SSSD NixOS modules already add their NSS modules when
|
||||||
|
enabled. In case your setup breaks due to some later pam account module
|
||||||
|
previosuly shadowed, or failing NSS lookups, please file a bug. You can
|
||||||
|
get back the old behaviour by manually setting
|
||||||
|
<literal><![CDATA[security.pam.services.<name?>.text]]></literal>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ in rec {
|
||||||
|
|
||||||
vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
|
vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
|
||||||
|
|
||||||
ocrProg = tesseract_4.override { enableLanguages = [ "eng" ]; };
|
ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
|
||||||
|
|
||||||
imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
|
imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,8 @@ rec {
|
||||||
|| elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
|
|| elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
|
||||||
|
|
||||||
# Check whenever `b` depends on `a` as a fileSystem
|
# Check whenever `b` depends on `a` as a fileSystem
|
||||||
# FIXME: it's incorrect to simply use hasPrefix here: "/dev/a" is not a parent of "/dev/ab"
|
fsBefore = a: b: a.mountPoint == b.device
|
||||||
fsBefore = a: b: ((any (x: elem x [ "bind" "move" ]) b.options) && (a.mountPoint == b.device))
|
|| hasPrefix "${a.mountPoint}${optionalString (!(hasSuffix "/" a.mountPoint)) "/"}" b.mountPoint;
|
||||||
|| (hasPrefix a.mountPoint b.mountPoint);
|
|
||||||
|
|
||||||
# Escape a path according to the systemd rules, e.g. /dev/xyzzy
|
# Escape a path according to the systemd rules, e.g. /dev/xyzzy
|
||||||
# becomes dev-xyzzy. FIXME: slow.
|
# becomes dev-xyzzy. FIXME: slow.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Configuration for the Name Service Switch (/etc/nsswitch.conf).
|
# Configuration for the Name Service Switch (/etc/nsswitch.conf).
|
||||||
|
|
||||||
{ config, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@ let
|
||||||
ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch);
|
ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch);
|
||||||
sssd = canLoadExternalModules && config.services.sssd.enable;
|
sssd = canLoadExternalModules && config.services.sssd.enable;
|
||||||
resolved = canLoadExternalModules && config.services.resolved.enable;
|
resolved = canLoadExternalModules && config.services.resolved.enable;
|
||||||
|
googleOsLogin = canLoadExternalModules && config.security.googleOsLogin.enable;
|
||||||
|
|
||||||
hostArray = [ "files" ]
|
hostArray = [ "files" ]
|
||||||
++ optional mymachines "mymachines"
|
++ optional mymachines "mymachines"
|
||||||
|
@ -29,6 +30,7 @@ let
|
||||||
++ optional sssd "sss"
|
++ optional sssd "sss"
|
||||||
++ optional ldap "ldap"
|
++ optional ldap "ldap"
|
||||||
++ optional mymachines "mymachines"
|
++ optional mymachines "mymachines"
|
||||||
|
++ optional googleOsLogin "cache_oslogin oslogin"
|
||||||
++ [ "systemd" ];
|
++ [ "systemd" ];
|
||||||
|
|
||||||
shadowArray = [ "files" ]
|
shadowArray = [ "files" ]
|
||||||
|
@ -97,7 +99,7 @@ in {
|
||||||
# configured IP addresses, or ::1 and 127.0.0.2 as
|
# configured IP addresses, or ::1 and 127.0.0.2 as
|
||||||
# fallbacks. Systemd also provides nss-mymachines to return IP
|
# fallbacks. Systemd also provides nss-mymachines to return IP
|
||||||
# addresses of local containers.
|
# addresses of local containers.
|
||||||
system.nssModules = optionals canLoadExternalModules [ config.systemd.package.out ];
|
system.nssModules = (optionals canLoadExternalModules [ config.systemd.package.out ])
|
||||||
|
++ optional googleOsLogin pkgs.google-compute-engine-oslogin.out;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,6 +154,7 @@
|
||||||
./security/chromium-suid-sandbox.nix
|
./security/chromium-suid-sandbox.nix
|
||||||
./security/dhparams.nix
|
./security/dhparams.nix
|
||||||
./security/duosec.nix
|
./security/duosec.nix
|
||||||
|
./security/google_oslogin.nix
|
||||||
./security/hidepid.nix
|
./security/hidepid.nix
|
||||||
./security/lock-kernel-modules.nix
|
./security/lock-kernel-modules.nix
|
||||||
./security/misc.nix
|
./security/misc.nix
|
||||||
|
@ -303,6 +304,7 @@
|
||||||
./services/hardware/usbmuxd.nix
|
./services/hardware/usbmuxd.nix
|
||||||
./services/hardware/thermald.nix
|
./services/hardware/thermald.nix
|
||||||
./services/hardware/undervolt.nix
|
./services/hardware/undervolt.nix
|
||||||
|
./services/hardware/vdr.nix
|
||||||
./services/logging/SystemdJournal2Gelf.nix
|
./services/logging/SystemdJournal2Gelf.nix
|
||||||
./services/logging/awstats.nix
|
./services/logging/awstats.nix
|
||||||
./services/logging/fluentd.nix
|
./services/logging/fluentd.nix
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.security.googleOsLogin;
|
||||||
|
package = pkgs.google-compute-engine-oslogin;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
security.googleOsLogin.enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to enable Google OS Login
|
||||||
|
|
||||||
|
The OS Login package enables the following components:
|
||||||
|
AuthorizedKeysCommand to query valid SSH keys from the user's OS Login
|
||||||
|
profile during ssh authentication phase.
|
||||||
|
NSS Module to provide user and group information
|
||||||
|
PAM Module for the sshd service, providing authorization and
|
||||||
|
authentication support, allowing the system to use data stored in
|
||||||
|
Google Cloud IAM permissions to control both, the ability to log into
|
||||||
|
an instance, and to perform operations as root (sudo).
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
security.pam.services.sshd = {
|
||||||
|
makeHomeDir = true;
|
||||||
|
googleOsLoginAccountVerification = true;
|
||||||
|
# disabled for now: googleOsLoginAuthentication = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
#includedir /run/google-sudoers.d
|
||||||
|
'';
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /run/google-sudoers.d 750 root root -"
|
||||||
|
"d /var/google-users.d 750 root root -"
|
||||||
|
];
|
||||||
|
|
||||||
|
# enable the nss module, so user lookups etc. work
|
||||||
|
system.nssModules = [ package ];
|
||||||
|
|
||||||
|
# Ugly: sshd refuses to start if a store path is given because /nix/store is group-writable.
|
||||||
|
# So indirect by a symlink.
|
||||||
|
environment.etc."ssh/authorized_keys_command_google_oslogin" = {
|
||||||
|
mode = "0755";
|
||||||
|
text = ''
|
||||||
|
#!/bin/sh
|
||||||
|
exec ${package}/bin/google_authorized_keys "$@"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
services.openssh.extraConfig = ''
|
||||||
|
AuthorizedKeysCommand /etc/ssh/authorized_keys_command_google_oslogin %u
|
||||||
|
AuthorizedKeysCommandUser nobody
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -77,6 +77,30 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
googleOsLoginAccountVerification = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
If set, will use the Google OS Login PAM modules
|
||||||
|
(<literal>pam_oslogin_login</literal>,
|
||||||
|
<literal>pam_oslogin_admin</literal>) to verify possible OS Login
|
||||||
|
users and set sudoers configuration accordingly.
|
||||||
|
This only makes sense to enable for the <literal>sshd</literal> PAM
|
||||||
|
service.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
googleOsLoginAuthentication = mkOption {
|
||||||
|
default = false;
|
||||||
|
type = types.bool;
|
||||||
|
description = ''
|
||||||
|
If set, will use the <literal>pam_oslogin_login</literal>'s user
|
||||||
|
authentication methods to authenticate users using 2FA.
|
||||||
|
This only makes sense to enable for the <literal>sshd</literal> PAM
|
||||||
|
service.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
fprintAuth = mkOption {
|
fprintAuth = mkOption {
|
||||||
default = config.services.fprintd.enable;
|
default = config.services.fprintd.enable;
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -269,7 +293,7 @@ let
|
||||||
text = mkDefault
|
text = mkDefault
|
||||||
(''
|
(''
|
||||||
# Account management.
|
# Account management.
|
||||||
account ${if cfg.sssdStrictAccess then "required" else "sufficient"} pam_unix.so
|
account required pam_unix.so
|
||||||
${optionalString use_ldap
|
${optionalString use_ldap
|
||||||
"account sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
|
"account sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
|
||||||
${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false)
|
${optionalString (config.services.sssd.enable && cfg.sssdStrictAccess==false)
|
||||||
|
@ -278,8 +302,14 @@ let
|
||||||
"account [default=bad success=ok user_unknown=ignore] ${pkgs.sssd}/lib/security/pam_sss.so"}
|
"account [default=bad success=ok user_unknown=ignore] ${pkgs.sssd}/lib/security/pam_sss.so"}
|
||||||
${optionalString config.krb5.enable
|
${optionalString config.krb5.enable
|
||||||
"account sufficient ${pam_krb5}/lib/security/pam_krb5.so"}
|
"account sufficient ${pam_krb5}/lib/security/pam_krb5.so"}
|
||||||
|
${optionalString cfg.googleOsLoginAccountVerification ''
|
||||||
|
account [success=ok ignore=ignore default=die] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so
|
||||||
|
account [success=ok default=ignore] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_admin.so
|
||||||
|
''}
|
||||||
|
|
||||||
# Authentication management.
|
# Authentication management.
|
||||||
|
${optionalString cfg.googleOsLoginAuthentication
|
||||||
|
"auth [success=done perm_denied=bad default=ignore] ${pkgs.google-compute-engine-oslogin}/lib/pam_oslogin_login.so"}
|
||||||
${optionalString cfg.rootOK
|
${optionalString cfg.rootOK
|
||||||
"auth sufficient pam_rootok.so"}
|
"auth sufficient pam_rootok.so"}
|
||||||
${optionalString cfg.requireWheel
|
${optionalString cfg.requireWheel
|
||||||
|
|
|
@ -43,6 +43,7 @@ in
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
default = pkgs.aerospike;
|
default = pkgs.aerospike;
|
||||||
|
defaultText = "pkgs.aerospike";
|
||||||
type = types.package;
|
type = types.package;
|
||||||
description = "Which Aerospike derivation to use";
|
description = "Which Aerospike derivation to use";
|
||||||
};
|
};
|
||||||
|
|
|
@ -70,6 +70,11 @@ with lib;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [ pkgs.clickhouse ];
|
||||||
|
|
||||||
|
# startup requires a `/etc/localtime` which only if exists if `time.timeZone != null`
|
||||||
|
time.timeZone = mkDefault "UTC";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.vdr;
|
||||||
|
libDir = "/var/lib/vdr";
|
||||||
|
in {
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.vdr = {
|
||||||
|
enable = mkEnableOption "enable VDR. Please put config into ${libDir}.";
|
||||||
|
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.vdr;
|
||||||
|
defaultText = "pkgs.vdr";
|
||||||
|
example = literalExample "pkgs.wrapVdr.override { plugins = with pkgs.vdrPlugins; [ hello ]; }";
|
||||||
|
description = "Package to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
videoDir = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/srv/vdr/video";
|
||||||
|
description = "Recording directory";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraArguments = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
description = "Additional command line arguments to pass to VDR.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${cfg.videoDir} 0755 vdr vdr -"
|
||||||
|
"Z ${cfg.videoDir} - vdr vdr -"
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.services.vdr = {
|
||||||
|
description = "VDR";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''
|
||||||
|
${cfg.package}/bin/vdr \
|
||||||
|
--video="${cfg.videoDir}" \
|
||||||
|
--config="${libDir}" \
|
||||||
|
${escapeShellArgs cfg.extraArguments}
|
||||||
|
'';
|
||||||
|
User = "vdr";
|
||||||
|
CacheDirectory = "vdr";
|
||||||
|
StateDirectory = "vdr";
|
||||||
|
Restart = "on-failure";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.vdr = {
|
||||||
|
group = "vdr";
|
||||||
|
home = libDir;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.vdr = {};
|
||||||
|
};
|
||||||
|
}
|
|
@ -74,7 +74,7 @@ in {
|
||||||
|
|
||||||
services.ipfs = {
|
services.ipfs = {
|
||||||
|
|
||||||
enable = mkEnableOption "Interplanetary File System";
|
enable = mkEnableOption "Interplanetary File System (WARNING: may cause severe network degredation)";
|
||||||
|
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
|
|
@ -27,7 +27,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
arguments = mkOption {
|
arguments = mkOption {
|
||||||
default = "-v -d pulse";
|
default = "-v pulse";
|
||||||
description = ''
|
description = ''
|
||||||
Arguments to pass to the daemon. Defaults to a local pulseaudio
|
Arguments to pass to the daemon. Defaults to a local pulseaudio
|
||||||
server.
|
server.
|
||||||
|
|
|
@ -194,9 +194,12 @@ let
|
||||||
${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
|
${xorg.lndir}/bin/lndir ${pkg}/share/xsessions $out/share/xsessions
|
||||||
'') cfg.displayManager.extraSessionFilePackages}
|
'') cfg.displayManager.extraSessionFilePackages}
|
||||||
|
|
||||||
mkdir -p "$out/share/wayland-sessions"
|
|
||||||
${concatMapStrings (pkg: ''
|
${concatMapStrings (pkg: ''
|
||||||
${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
|
if test -d ${pkg}/share/wayland-sessions; then
|
||||||
|
mkdir -p "$out/share/wayland-sessions"
|
||||||
|
${xorg.lndir}/bin/lndir ${pkg}/share/wayland-sessions $out/share/wayland-sessions
|
||||||
|
fi
|
||||||
'') cfg.displayManager.extraSessionFilePackages}
|
'') cfg.displayManager.extraSessionFilePackages}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -65,33 +65,7 @@ in
|
||||||
# GC has 1460 MTU
|
# GC has 1460 MTU
|
||||||
networking.interfaces.eth0.mtu = 1460;
|
networking.interfaces.eth0.mtu = 1460;
|
||||||
|
|
||||||
# allow the google-accounts-daemon to manage users
|
security.googleOsLogin.enable = true;
|
||||||
users.mutableUsers = true;
|
|
||||||
# and allow users to sudo without password
|
|
||||||
security.sudo.enable = true;
|
|
||||||
security.sudo.extraConfig = ''
|
|
||||||
%google-sudoers ALL=(ALL:ALL) NOPASSWD:ALL
|
|
||||||
'';
|
|
||||||
|
|
||||||
# NOTE: google-accounts tries to write to /etc/sudoers.d but the folder doesn't exist
|
|
||||||
# FIXME: not such file or directory on dynamic SSH provisioning
|
|
||||||
systemd.services.google-accounts-daemon = {
|
|
||||||
description = "Google Compute Engine Accounts Daemon";
|
|
||||||
# This daemon creates dynamic users
|
|
||||||
enable = config.users.mutableUsers;
|
|
||||||
after = [
|
|
||||||
"network.target"
|
|
||||||
"google-instance-setup.service"
|
|
||||||
"google-network-setup.service"
|
|
||||||
];
|
|
||||||
requires = ["network.target"];
|
|
||||||
wantedBy = ["multi-user.target"];
|
|
||||||
path = with pkgs; [ shadow ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
ExecStart = "${gce}/bin/google_accounts_daemon --debug";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.google-clock-skew-daemon = {
|
systemd.services.google-clock-skew-daemon = {
|
||||||
description = "Google Compute Engine Clock Skew Daemon";
|
description = "Google Compute Engine Clock Skew Daemon";
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
||||||
, stableBranch ? false
|
, stableBranch ? false
|
||||||
, supportedSystems ? [ "x86_64-linux" ]
|
, supportedSystems ? [ "x86_64-linux" ]
|
||||||
, limitedSupportedSystems ? [ "i686-linux" ]
|
, limitedSupportedSystems ? [ "i686-linux" "aarch64-linux" ]
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -46,16 +46,20 @@ in rec {
|
||||||
};
|
};
|
||||||
constituents =
|
constituents =
|
||||||
let
|
let
|
||||||
all = x: map (system: x.${system}) supportedSystems;
|
# Except for the given systems, return the system-specific constituent
|
||||||
|
except = systems: x: map (system: x.${system}) (pkgs.lib.subtractLists systems supportedSystems);
|
||||||
|
all = x: except [] x;
|
||||||
in [
|
in [
|
||||||
nixos.channel
|
nixos.channel
|
||||||
(all nixos.dummy)
|
(all nixos.dummy)
|
||||||
(all nixos.manual)
|
(all nixos.manual)
|
||||||
|
|
||||||
nixos.iso_minimal.x86_64-linux or []
|
|
||||||
nixos.iso_minimal.i686-linux or []
|
|
||||||
nixos.iso_graphical.x86_64-linux or []
|
nixos.iso_graphical.x86_64-linux or []
|
||||||
|
nixos.iso_minimal.aarch64-linux or []
|
||||||
|
nixos.iso_minimal.i686-linux or []
|
||||||
|
nixos.iso_minimal.x86_64-linux or []
|
||||||
nixos.ova.x86_64-linux or []
|
nixos.ova.x86_64-linux or []
|
||||||
|
nixos.sd_image.aarch64-linux or []
|
||||||
|
|
||||||
#(all nixos.tests.containers)
|
#(all nixos.tests.containers)
|
||||||
(all nixos.tests.containers-imperative)
|
(all nixos.tests.containers-imperative)
|
||||||
|
@ -63,24 +67,24 @@ in rec {
|
||||||
nixos.tests.chromium.x86_64-linux or []
|
nixos.tests.chromium.x86_64-linux or []
|
||||||
(all nixos.tests.firefox)
|
(all nixos.tests.firefox)
|
||||||
(all nixos.tests.firewall)
|
(all nixos.tests.firewall)
|
||||||
(all nixos.tests.gnome3)
|
(except ["aarch64-linux"] nixos.tests.gnome3)
|
||||||
nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only
|
nixos.tests.installer.zfsroot.x86_64-linux or [] # ZFS is 64bit only
|
||||||
(all nixos.tests.installer.lvm)
|
(except ["aarch64-linux"] nixos.tests.installer.lvm)
|
||||||
(all nixos.tests.installer.luksroot)
|
(except ["aarch64-linux"] nixos.tests.installer.luksroot)
|
||||||
(all nixos.tests.installer.separateBoot)
|
(except ["aarch64-linux"] nixos.tests.installer.separateBoot)
|
||||||
(all nixos.tests.installer.separateBootFat)
|
(except ["aarch64-linux"] nixos.tests.installer.separateBootFat)
|
||||||
(all nixos.tests.installer.simple)
|
(except ["aarch64-linux"] nixos.tests.installer.simple)
|
||||||
(all nixos.tests.installer.simpleLabels)
|
(except ["aarch64-linux"] nixos.tests.installer.simpleLabels)
|
||||||
(all nixos.tests.installer.simpleProvided)
|
(except ["aarch64-linux"] nixos.tests.installer.simpleProvided)
|
||||||
(all nixos.tests.installer.simpleUefiSystemdBoot)
|
(except ["aarch64-linux"] nixos.tests.installer.simpleUefiSystemdBoot)
|
||||||
(all nixos.tests.installer.swraid)
|
(except ["aarch64-linux"] nixos.tests.installer.swraid)
|
||||||
(all nixos.tests.installer.btrfsSimple)
|
(except ["aarch64-linux"] nixos.tests.installer.btrfsSimple)
|
||||||
(all nixos.tests.installer.btrfsSubvols)
|
(except ["aarch64-linux"] nixos.tests.installer.btrfsSubvols)
|
||||||
(all nixos.tests.installer.btrfsSubvolDefault)
|
(except ["aarch64-linux"] nixos.tests.installer.btrfsSubvolDefault)
|
||||||
(all nixos.tests.boot.biosCdrom)
|
(except ["aarch64-linux"] nixos.tests.boot.biosCdrom)
|
||||||
#(all nixos.tests.boot.biosUsb) # disabled due to issue #15690
|
#(except ["aarch64-linux"] nixos.tests.boot.biosUsb) # disabled due to issue #15690
|
||||||
(all nixos.tests.boot.uefiCdrom)
|
(except ["aarch64-linux"] nixos.tests.boot.uefiCdrom)
|
||||||
(all nixos.tests.boot.uefiUsb)
|
(except ["aarch64-linux"] nixos.tests.boot.uefiUsb)
|
||||||
(all nixos.tests.boot-stage1)
|
(all nixos.tests.boot-stage1)
|
||||||
(all nixos.tests.hibernate)
|
(all nixos.tests.hibernate)
|
||||||
nixos.tests.docker.x86_64-linux or []
|
nixos.tests.docker.x86_64-linux or []
|
||||||
|
@ -132,7 +136,8 @@ in rec {
|
||||||
|
|
||||||
nixpkgs.tarball
|
nixpkgs.tarball
|
||||||
(all allSupportedNixpkgs.emacs)
|
(all allSupportedNixpkgs.emacs)
|
||||||
(all allSupportedNixpkgs.jdk)
|
# The currently available aarch64 JDK is unfree
|
||||||
|
(except ["aarch64-linux"] allSupportedNixpkgs.jdk)
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ in rec {
|
||||||
|
|
||||||
# A variant with a more recent (but possibly less stable) kernel
|
# A variant with a more recent (but possibly less stable) kernel
|
||||||
# that might support more hardware.
|
# that might support more hardware.
|
||||||
iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
|
iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeIso {
|
||||||
module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix;
|
module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix;
|
||||||
type = "minimal-new-kernel";
|
type = "minimal-new-kernel";
|
||||||
inherit system;
|
inherit system;
|
||||||
|
@ -273,7 +273,7 @@ in rec {
|
||||||
{ services.httpd.enable = true;
|
{ services.httpd.enable = true;
|
||||||
services.httpd.adminAddr = "foo@example.org";
|
services.httpd.adminAddr = "foo@example.org";
|
||||||
services.postgresql.enable = true;
|
services.postgresql.enable = true;
|
||||||
services.postgresql.package = pkgs.postgresql_9_3;
|
services.postgresql.package = pkgs.postgresql;
|
||||||
environment.systemPackages = [ pkgs.php ];
|
environment.systemPackages = [ pkgs.php ];
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -39,6 +39,7 @@ in
|
||||||
cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
|
cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
|
||||||
chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
|
chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
|
||||||
cjdns = handleTest ./cjdns.nix {};
|
cjdns = handleTest ./cjdns.nix {};
|
||||||
|
clickhouse = handleTest ./clickhouse.nix {};
|
||||||
cloud-init = handleTest ./cloud-init.nix {};
|
cloud-init = handleTest ./cloud-init.nix {};
|
||||||
codimd = handleTest ./codimd.nix {};
|
codimd = handleTest ./codimd.nix {};
|
||||||
containers-bridge = handleTest ./containers-bridge.nix {};
|
containers-bridge = handleTest ./containers-bridge.nix {};
|
||||||
|
@ -80,6 +81,7 @@ in
|
||||||
gitlab = handleTest ./gitlab.nix {};
|
gitlab = handleTest ./gitlab.nix {};
|
||||||
gitolite = handleTest ./gitolite.nix {};
|
gitolite = handleTest ./gitolite.nix {};
|
||||||
gjs = handleTest ./gjs.nix {};
|
gjs = handleTest ./gjs.nix {};
|
||||||
|
google-oslogin = handleTest ./google-oslogin {};
|
||||||
gnome3 = handleTestOn ["x86_64-linux"] ./gnome3.nix {}; # libsmbios is unsupported on aarch64
|
gnome3 = handleTestOn ["x86_64-linux"] ./gnome3.nix {}; # libsmbios is unsupported on aarch64
|
||||||
gnome3-gdm = handleTestOn ["x86_64-linux"] ./gnome3-gdm.nix {}; # libsmbios is unsupported on aarch64
|
gnome3-gdm = handleTestOn ["x86_64-linux"] ./gnome3-gdm.nix {}; # libsmbios is unsupported on aarch64
|
||||||
gocd-agent = handleTest ./gocd-agent.nix {};
|
gocd-agent = handleTest ./gocd-agent.nix {};
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import ./make-test.nix ({ pkgs, ... }: {
|
||||||
|
name = "clickhouse";
|
||||||
|
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ma27 ];
|
||||||
|
|
||||||
|
machine = {
|
||||||
|
services.clickhouse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript =
|
||||||
|
let
|
||||||
|
# work around quote/substitution complexity by Nix, Perl, bash and SQL.
|
||||||
|
tableDDL = pkgs.writeText "ddl.sql" "CREATE TABLE `demo` (`value` FixedString(10)) engine = MergeTree PARTITION BY value ORDER BY tuple();";
|
||||||
|
insertQuery = pkgs.writeText "insert.sql" "INSERT INTO `demo` (`value`) VALUES ('foo');";
|
||||||
|
selectQuery = pkgs.writeText "select.sql" "SELECT * from `demo`";
|
||||||
|
in
|
||||||
|
''
|
||||||
|
$machine->start();
|
||||||
|
$machine->waitForUnit("clickhouse.service");
|
||||||
|
$machine->waitForOpenPort(9000);
|
||||||
|
|
||||||
|
$machine->succeed("cat ${tableDDL} | clickhouse-client");
|
||||||
|
$machine->succeed("cat ${insertQuery} | clickhouse-client");
|
||||||
|
$machine->succeed("cat ${selectQuery} | clickhouse-client | grep foo");
|
||||||
|
'';
|
||||||
|
})
|
|
@ -0,0 +1,52 @@
|
||||||
|
import ../make-test.nix ({ pkgs, ... } :
|
||||||
|
let
|
||||||
|
inherit (import ./../ssh-keys.nix pkgs)
|
||||||
|
snakeOilPrivateKey snakeOilPublicKey;
|
||||||
|
in {
|
||||||
|
name = "google-oslogin";
|
||||||
|
meta = with pkgs.stdenv.lib.maintainers; {
|
||||||
|
maintainers = [ adisbladis flokli ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nodes = {
|
||||||
|
# the server provides both the the mocked google metadata server and the ssh server
|
||||||
|
server = (import ./server.nix pkgs);
|
||||||
|
|
||||||
|
client = { ... }: {};
|
||||||
|
};
|
||||||
|
testScript = ''
|
||||||
|
startAll;
|
||||||
|
|
||||||
|
$server->waitForUnit("mock-google-metadata.service");
|
||||||
|
$server->waitForOpenPort(80);
|
||||||
|
|
||||||
|
# mockserver should return a non-expired ssh key for both mockuser and mockadmin
|
||||||
|
$server->succeed('${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockuser | grep -q "${snakeOilPublicKey}"');
|
||||||
|
$server->succeed('${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"');
|
||||||
|
|
||||||
|
# install snakeoil ssh key on the client
|
||||||
|
$client->succeed("mkdir -p ~/.ssh");
|
||||||
|
$client->succeed("cat ${snakeOilPrivateKey} > ~/.ssh/id_snakeoil");
|
||||||
|
$client->succeed("chmod 600 ~/.ssh/id_snakeoil");
|
||||||
|
|
||||||
|
$client->waitForUnit("network.target");
|
||||||
|
$server->waitForUnit("sshd.service");
|
||||||
|
|
||||||
|
# we should not be able to connect as non-existing user
|
||||||
|
$client->fail("ssh -o User=ghost -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
|
||||||
|
|
||||||
|
# we should be able to connect as mockuser
|
||||||
|
$client->succeed("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
|
||||||
|
# but we shouldn't be able to sudo
|
||||||
|
$client->fail("ssh -o User=mockuser -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
|
||||||
|
|
||||||
|
# we should also be able to log in as mockadmin
|
||||||
|
$client->succeed("ssh -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil 'true'");
|
||||||
|
# pam_oslogin_admin.so should now have generated a sudoers file
|
||||||
|
$server->succeed("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'");
|
||||||
|
|
||||||
|
# and we should be able to sudo
|
||||||
|
$client->succeed("ssh -o User=mockadmin -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no server -i ~/.ssh/id_snakeoil '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'");
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
inherit (import ./../ssh-keys.nix pkgs)
|
||||||
|
snakeOilPrivateKey snakeOilPublicKey;
|
||||||
|
in {
|
||||||
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
|
|
||||||
|
systemd.services.mock-google-metadata = {
|
||||||
|
description = "Mock Google metadata service";
|
||||||
|
serviceConfig.Type = "simple";
|
||||||
|
serviceConfig.ExecStart = "${pkgs.python3}/bin/python ${./server.py}";
|
||||||
|
environment = {
|
||||||
|
SNAKEOIL_PUBLIC_KEY = snakeOilPublicKey;
|
||||||
|
};
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openssh.enable = true;
|
||||||
|
services.openssh.challengeResponseAuthentication = false;
|
||||||
|
services.openssh.passwordAuthentication = false;
|
||||||
|
|
||||||
|
security.googleOsLogin.enable = true;
|
||||||
|
|
||||||
|
# Mock google service
|
||||||
|
networking.extraHosts = ''
|
||||||
|
127.0.0.1 metadata.google.internal
|
||||||
|
'';
|
||||||
|
}
|
|
@ -0,0 +1,96 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import hashlib
|
||||||
|
import base64
|
||||||
|
|
||||||
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||||
|
from typing import Dict
|
||||||
|
|
||||||
|
SNAKEOIL_PUBLIC_KEY = os.environ['SNAKEOIL_PUBLIC_KEY']
|
||||||
|
|
||||||
|
|
||||||
|
def w(msg):
|
||||||
|
sys.stderr.write(f"{msg}\n")
|
||||||
|
sys.stderr.flush()
|
||||||
|
|
||||||
|
|
||||||
|
def gen_fingerprint(pubkey):
|
||||||
|
decoded_key = base64.b64decode(pubkey.encode("ascii").split()[1])
|
||||||
|
return hashlib.sha256(decoded_key).hexdigest()
|
||||||
|
|
||||||
|
def gen_email(username):
|
||||||
|
"""username seems to be a 21 characters long number string, so mimic that in a reproducible way"""
|
||||||
|
return str(int(hashlib.sha256(username.encode()).hexdigest(), 16))[0:21]
|
||||||
|
|
||||||
|
def gen_mockuser(username: str, uid: str, gid: str, home_directory: str, snakeoil_pubkey: str) -> Dict:
|
||||||
|
snakeoil_pubkey_fingerprint = gen_fingerprint(snakeoil_pubkey)
|
||||||
|
# seems to be a 21 characters long numberstring, so mimic that in a reproducible way
|
||||||
|
email = gen_email(username)
|
||||||
|
return {
|
||||||
|
"loginProfiles": [
|
||||||
|
{
|
||||||
|
"name": email,
|
||||||
|
"posixAccounts": [
|
||||||
|
{
|
||||||
|
"primary": True,
|
||||||
|
"username": username,
|
||||||
|
"uid": uid,
|
||||||
|
"gid": gid,
|
||||||
|
"homeDirectory": home_directory,
|
||||||
|
"operatingSystemType": "LINUX"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"sshPublicKeys": {
|
||||||
|
snakeoil_pubkey_fingerprint: {
|
||||||
|
"key": snakeoil_pubkey,
|
||||||
|
"expirationTimeUsec": str((time.time() + 600) * 1000000), # 10 minutes in the future
|
||||||
|
"fingerprint": snakeoil_pubkey_fingerprint
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ReqHandler(BaseHTTPRequestHandler):
|
||||||
|
def _send_json_ok(self, data):
|
||||||
|
self.send_response(200)
|
||||||
|
self.send_header('Content-type', 'application/json')
|
||||||
|
self.end_headers()
|
||||||
|
out = json.dumps(data).encode()
|
||||||
|
w(out)
|
||||||
|
self.wfile.write(out)
|
||||||
|
|
||||||
|
def do_GET(self):
|
||||||
|
p = str(self.path)
|
||||||
|
# mockuser and mockadmin are allowed to login, both use the same snakeoil public key
|
||||||
|
if p == '/computeMetadata/v1/oslogin/users?username=mockuser' \
|
||||||
|
or p == '/computeMetadata/v1/oslogin/users?uid=1009719690':
|
||||||
|
self._send_json_ok(gen_mockuser(username='mockuser', uid='1009719690', gid='1009719690',
|
||||||
|
home_directory='/home/mockuser', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY))
|
||||||
|
elif p == '/computeMetadata/v1/oslogin/users?username=mockadmin' \
|
||||||
|
or p == '/computeMetadata/v1/oslogin/users?uid=1009719691':
|
||||||
|
self._send_json_ok(gen_mockuser(username='mockadmin', uid='1009719691', gid='1009719691',
|
||||||
|
home_directory='/home/mockadmin', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY))
|
||||||
|
|
||||||
|
# mockuser is allowed to login
|
||||||
|
elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockuser')}&policy=login":
|
||||||
|
self._send_json_ok({'success': True})
|
||||||
|
|
||||||
|
# mockadmin may also become root
|
||||||
|
elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=login" or p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=adminLogin":
|
||||||
|
self._send_json_ok({'success': True})
|
||||||
|
else:
|
||||||
|
sys.stderr.write(f"Unhandled path: {p}\n")
|
||||||
|
sys.stderr.flush()
|
||||||
|
self.send_response(501)
|
||||||
|
self.end_headers()
|
||||||
|
self.wfile.write(b'')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
s = HTTPServer(('0.0.0.0', 80), ReqHandler)
|
||||||
|
s.serve_forever()
|
|
@ -4,6 +4,7 @@ let
|
||||||
configDir = "/var/lib/foobar";
|
configDir = "/var/lib/foobar";
|
||||||
apiPassword = "some_secret";
|
apiPassword = "some_secret";
|
||||||
mqttPassword = "another_secret";
|
mqttPassword = "another_secret";
|
||||||
|
hassCli = "hass-cli --server http://hass:8123 --password '${apiPassword}'";
|
||||||
|
|
||||||
in {
|
in {
|
||||||
name = "home-assistant";
|
name = "home-assistant";
|
||||||
|
@ -16,7 +17,7 @@ in {
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
mosquitto
|
mosquitto home-assistant-cli
|
||||||
];
|
];
|
||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
inherit configDir;
|
inherit configDir;
|
||||||
|
@ -71,6 +72,11 @@ in {
|
||||||
$hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light");
|
$hass->waitUntilSucceeds("mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light");
|
||||||
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'");
|
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"on\"'");
|
||||||
|
|
||||||
|
# Toggle a binary sensor using hass-cli
|
||||||
|
$hass->succeed("${hassCli} entity get binary_sensor.mqtt_binary_sensor | grep -qF '\"state\": \"on\"'");
|
||||||
|
$hass->succeed("${hassCli} entity edit binary_sensor.mqtt_binary_sensor --json='{\"state\": \"off\"}'");
|
||||||
|
$hass->succeed("curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}' | grep -qF '\"state\": \"off\"'");
|
||||||
|
|
||||||
# Print log to ease debugging
|
# Print log to ease debugging
|
||||||
my $log = $hass->succeed("cat ${configDir}/home-assistant.log");
|
my $log = $hass->succeed("cat ${configDir}/home-assistant.log");
|
||||||
print "\n### home-assistant.log ###\n";
|
print "\n### home-assistant.log ###\n";
|
||||||
|
|
|
@ -21,5 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
maintainers = [ maintainers.goibhniu ];
|
maintainers = [ maintainers.goibhniu ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
# Build uses `-msse` and `-mfpmath=sse`
|
||||||
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,5 +20,7 @@ stdenv.mkDerivation rec {
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
maintainers = [ maintainers.magnetophon ];
|
maintainers = [ maintainers.magnetophon ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
# Build uses `-msse` and `-mfpmath=sse`
|
||||||
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, alsaLib ? null, fftwFloat, fltk13
|
{ stdenv, fetchFromGitHub, cmake, pkgconfig, alsaLib ? null, fftwFloat, fltk13
|
||||||
, fluidsynth ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
|
, fluidsynth_1 ? null, lame ? null, libgig ? null, libjack2 ? null, libpulseaudio ? null
|
||||||
, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
|
, libsamplerate, libsoundio ? null, libsndfile, libvorbis ? null, portaudio ? null
|
||||||
, qtbase, qtx11extras, qttools, SDL ? null }:
|
, qtbase, qtx11extras, qttools, SDL ? null }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lmms-${version}";
|
name = "lmms-${version}";
|
||||||
version = "1.2.0-rc6";
|
version = "1.2.0-rc7";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "LMMS";
|
owner = "LMMS";
|
||||||
repo = "lmms";
|
repo = "lmms";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1pqir5srfrknfd8nmbz565ymq18ffw8d8k9pbmzggaxvlcr12b25";
|
sha256 = "1hshzf2sbdfw37y9rz1ksgvn81kp2n23dp74lsaasc2n7wzjwdis";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
alsaLib
|
alsaLib
|
||||||
fftwFloat
|
fftwFloat
|
||||||
fltk13
|
fltk13
|
||||||
fluidsynth
|
fluidsynth_1
|
||||||
lame
|
lame
|
||||||
libgig
|
libgig
|
||||||
libjack2
|
libjack2
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
python3.pkgs.buildPythonApplication rec {
|
python3.pkgs.buildPythonApplication rec {
|
||||||
pname = "lollypop";
|
pname = "lollypop";
|
||||||
version = "0.9.611";
|
version = "0.9.906";
|
||||||
|
|
||||||
format = "other";
|
format = "other";
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
url = "https://gitlab.gnome.org/World/lollypop";
|
url = "https://gitlab.gnome.org/World/lollypop";
|
||||||
rev = "refs/tags/${version}";
|
rev = "refs/tags/${version}";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
sha256 = "1k78a26sld0xd14c9hr4qv8c7qaq1m8zqk1mzrh4pl7ysqqg9p20";
|
sha256 = "1blfq3vdzs3ji3sr1z6dn5c2f8w93zv2k7aa5xpfpfnds4zfd3q6";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = with python3.pkgs; [
|
nativeBuildInputs = with python3.pkgs; [
|
||||||
|
|
|
@ -29,11 +29,11 @@
|
||||||
# handle that.
|
# handle that.
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "qmmp-1.2.4";
|
name = "qmmp-1.2.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
|
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
|
||||||
sha256 = "0rmfd6h0186b6n4g079d8kshdmp3k5n8w06a1l41m4p3fgq08j92";
|
sha256 = "1xs8kg65088yzdhdkymmknkp1s4adzv095f5jhjvy62s8ymyjvnx";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
|
, liblo, liblrdf, libsamplerate, libsndfile, lirc ? null, qtbase }:
|
||||||
|
|
||||||
stdenv.mkDerivation (rec {
|
stdenv.mkDerivation (rec {
|
||||||
version = "18.06";
|
version = "18.12";
|
||||||
name = "rosegarden-${version}";
|
name = "rosegarden-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
|
url = "mirror://sourceforge/rosegarden/${name}.tar.bz2";
|
||||||
sha256 = "04qc80sqb2ji42pq3mayhvqqn39hlxzymsywpbpzfpchr19chxx7";
|
sha256 = "15i9fm0vkn3wsgahaxqi1j5zs0wc0j3wdwml0x49084gk2p328vb";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
|
|
@ -3,13 +3,13 @@
|
||||||
|
|
||||||
python2.pkgs.buildPythonApplication rec {
|
python2.pkgs.buildPythonApplication rec {
|
||||||
name = "whipper-${version}";
|
name = "whipper-${version}";
|
||||||
version = "0.7.2";
|
version = "0.7.3";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "whipper-team";
|
owner = "whipper-team";
|
||||||
repo = "whipper";
|
repo = "whipper";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "17cn11c6c62pfhhp6vcslxpanb0czh2xbxq1g6wd7bpmgw38yd8v";
|
sha256 = "0ypbgc458i7yvbyvg6wg6agz5yzlwm1v6zw7fmyq9h59xsv27mpr";
|
||||||
};
|
};
|
||||||
|
|
||||||
pythonPath = with python2.pkgs; [
|
pythonPath = with python2.pkgs; [
|
||||||
|
|
|
@ -13,14 +13,14 @@ let
|
||||||
sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r";
|
sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r";
|
||||||
};
|
};
|
||||||
betaVersion = {
|
betaVersion = {
|
||||||
version = "3.3.0.18"; # "Android Studio 3.3 RC 2"
|
version = "3.3.0.19"; # "Android Studio 3.3 RC 3"
|
||||||
build = "182.5160847";
|
build = "182.5183351";
|
||||||
sha256Hash = "05rjwvcph0wx0p0hai5z6n9lnyhk3i5yvbvhr51jc8s3k3b6jyi5";
|
sha256Hash = "1rql4kxjic4qjcd8zssw2mmi55cxpzd0wp5g0kzwk5wybsfdcqhy";
|
||||||
};
|
};
|
||||||
latestVersion = { # canary & dev
|
latestVersion = { # canary & dev
|
||||||
version = "3.4.0.7"; # "Android Studio 3.4 Canary 8"
|
version = "3.4.0.8"; # "Android Studio 3.4 Canary 9"
|
||||||
build = "183.5173923";
|
build = "183.5186062";
|
||||||
sha256Hash = "0bf96c9db15rw1k1znz6yxhbrn9q990zy3pkq0nsirnqfpgllvpi";
|
sha256Hash = "04i7ys0qzj3039h41q4na6737gl55wpp6hiwfas2h6zwvj25a9z9";
|
||||||
};
|
};
|
||||||
in rec {
|
in rec {
|
||||||
# Old alias
|
# Old alias
|
||||||
|
|
|
@ -39,10 +39,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ada-mode";
|
pname = "ada-mode";
|
||||||
ename = "ada-mode";
|
ename = "ada-mode";
|
||||||
version = "5.3.2";
|
version = "6.0.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ada-mode-5.3.2.tar";
|
url = "https://elpa.gnu.org/packages/ada-mode-6.0.1.tar";
|
||||||
sha256 = "1ayp4y8q201fny2far9p2ziji968f2svr7apvfrlwnnpkk3w9lif";
|
sha256 = "12ryblyqnhqibaffibs7qq3xq9rf5d4y9dishq82pbbh9y8s17hj";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs wisi ];
|
packageRequires = [ cl-lib emacs wisi ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -478,10 +478,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "company";
|
pname = "company";
|
||||||
ename = "company";
|
ename = "company";
|
||||||
version = "0.9.7";
|
version = "0.9.9";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/company-0.9.7.tar";
|
url = "https://elpa.gnu.org/packages/company-0.9.9.tar";
|
||||||
sha256 = "17p61yzbgymr46y6vbz7pfvydp5hfkqckbwficwkpz0nq8gcklhs";
|
sha256 = "1qinkz8gwgc27p3p3c9kddrrwx0jb4w0vgx7jq8fwpfj1n92m1rv";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -711,16 +711,16 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
diff-hl = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
diff-hl = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "diff-hl";
|
pname = "diff-hl";
|
||||||
ename = "diff-hl";
|
ename = "diff-hl";
|
||||||
version = "1.8.4";
|
version = "1.8.5";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/diff-hl-1.8.4.tar";
|
url = "https://elpa.gnu.org/packages/diff-hl-1.8.5.tar";
|
||||||
sha256 = "0axhidc3cym7a2x4rpxf4745qss9s9ajyg4s9h5b4zn7v7fyp71n";
|
sha256 = "1vxc7z7c2qs0mx7l5sa4sybi5qbzv0s79flj74p1ynw8dl3qxg3d";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib ];
|
packageRequires = [ cl-lib emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://elpa.gnu.org/packages/diff-hl.html";
|
homepage = "https://elpa.gnu.org/packages/diff-hl.html";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
|
@ -835,10 +835,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ebdb";
|
pname = "ebdb";
|
||||||
ename = "ebdb";
|
ename = "ebdb";
|
||||||
version = "0.6";
|
version = "0.6.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ebdb-0.6.tar";
|
url = "https://elpa.gnu.org/packages/ebdb-0.6.2.tar";
|
||||||
sha256 = "1zj8jvq5l4wlk4734i3isxi4barpivarq2f9kqzkfia7mcspxav8";
|
sha256 = "1b37962mvm80vk5sdk9kfvvxsxn83z5z6zvm20m9997ggl5dv4dz";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs seq ];
|
packageRequires = [ cl-lib emacs seq ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -891,16 +891,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
eglot = callPackage ({ elpaBuild, emacs, fetchurl, jsonrpc, lib }:
|
eglot = callPackage ({ elpaBuild
|
||||||
|
, emacs
|
||||||
|
, fetchurl
|
||||||
|
, flymake ? null
|
||||||
|
, jsonrpc
|
||||||
|
, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "eglot";
|
pname = "eglot";
|
||||||
ename = "eglot";
|
ename = "eglot";
|
||||||
version = "1.1";
|
version = "1.3";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/eglot-1.1.tar";
|
url = "https://elpa.gnu.org/packages/eglot-1.3.tar";
|
||||||
sha256 = "01h4wh87lrd9l50y20gjjkgg760v8ixvbcb3q8jykl29989zw62y";
|
sha256 = "0hndqabxvrq4ak5kx2xlds5pkayi2bfd1f1xk8aidzk5i70f7yry";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs jsonrpc ];
|
packageRequires = [ emacs flymake jsonrpc ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://elpa.gnu.org/packages/eglot.html";
|
homepage = "https://elpa.gnu.org/packages/eglot.html";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
|
@ -915,10 +920,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "el-search";
|
pname = "el-search";
|
||||||
ename = "el-search";
|
ename = "el-search";
|
||||||
version = "1.7.15";
|
version = "1.8.7";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/el-search-1.7.15.tar";
|
url = "https://elpa.gnu.org/packages/el-search-1.8.7.tar";
|
||||||
sha256 = "000z8vllz53vmfblsrxjm2nc4h9lcyxw8xxqfxxyl99zhfiikjai";
|
sha256 = "0jlalcz8hppra2chmppd6b2g5dz8w6yscqylkx28pd7wy6aadx1r";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-print emacs stream ];
|
packageRequires = [ cl-print emacs stream ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1032,10 +1037,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "exwm";
|
pname = "exwm";
|
||||||
ename = "exwm";
|
ename = "exwm";
|
||||||
version = "0.20";
|
version = "0.21";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/exwm-0.20.tar";
|
url = "https://elpa.gnu.org/packages/exwm-0.21.tar";
|
||||||
sha256 = "0nhhzbkm0mkj7sd1dy2c19cmn56gyaj9nl8kgy86h4fp63hjaz04";
|
sha256 = "07ng1pgsnc3isfsyzh2gfc7391p9il8lb5xqf1z6yqn20w7k6xzj";
|
||||||
};
|
};
|
||||||
packageRequires = [ xelb ];
|
packageRequires = [ xelb ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1088,6 +1093,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
flymake = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "flymake";
|
||||||
|
ename = "flymake";
|
||||||
|
version = "1.0.3";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/flymake-1.0.3.el";
|
||||||
|
sha256 = "1algny2zhcl4vc7kp5czcqvxzpgqfjnz2rnkv26r0ylxig3s98v7";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/flymake.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
fountain-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
fountain-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "fountain-mode";
|
pname = "fountain-mode";
|
||||||
|
@ -1197,10 +1217,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "gnorb";
|
pname = "gnorb";
|
||||||
ename = "gnorb";
|
ename = "gnorb";
|
||||||
version = "1.6.0";
|
version = "1.6.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/gnorb-1.6.0.tar";
|
url = "https://elpa.gnu.org/packages/gnorb-1.6.1.tar";
|
||||||
sha256 = "0nssrnrf083mw7kllp0hkxdkklvildzmslcs1r3zf2hnl1ggfs8y";
|
sha256 = "0n4460hsmcc3l0y3nb3fysvh33cjwgv0a3mkc26xcx8v85zl7m63";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib ];
|
packageRequires = [ cl-lib ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1232,10 +1252,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "gnus-mock";
|
pname = "gnus-mock";
|
||||||
ename = "gnus-mock";
|
ename = "gnus-mock";
|
||||||
version = "0.3.0";
|
version = "0.4.0";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/gnus-mock-0.3.0.tar";
|
url = "https://elpa.gnu.org/packages/gnus-mock-0.4.0.tar";
|
||||||
sha256 = "02z3f8njwv480fff57dbrf7nhmwbgm4apzicnzwmip5j4a6w5q0n";
|
sha256 = "058bd4f8za9bxayrd2j5b05qvk8lxxm8mmfwxb73d7k15z3z3l3s";
|
||||||
};
|
};
|
||||||
packageRequires = [];
|
packageRequires = [];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1243,6 +1263,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
gpastel = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "gpastel";
|
||||||
|
ename = "gpastel";
|
||||||
|
version = "0.3.0";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/gpastel-0.3.0.el";
|
||||||
|
sha256 = "0426y55f7mbfbyjhl2bn0c2cn57jd4d8xvzri2pbqakff8ij470a";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/gpastel.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
heap = callPackage ({ elpaBuild, fetchurl, lib }:
|
heap = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "heap";
|
pname = "heap";
|
||||||
|
@ -1459,10 +1494,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "jsonrpc";
|
pname = "jsonrpc";
|
||||||
ename = "jsonrpc";
|
ename = "jsonrpc";
|
||||||
version = "1.0.6";
|
version = "1.0.7";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/jsonrpc-1.0.6.el";
|
url = "https://elpa.gnu.org/packages/jsonrpc-1.0.7.el";
|
||||||
sha256 = "13a19smz8cksv6fgcyxb111csvagkp07z5nl4imyp5b23asgl70p";
|
sha256 = "19z35gjphl4mlgpznfhlccgipnmbb3c1dvax48f4hw8qwksfcac1";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1858,10 +1893,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "nhexl-mode";
|
pname = "nhexl-mode";
|
||||||
ename = "nhexl-mode";
|
ename = "nhexl-mode";
|
||||||
version = "1.0";
|
version = "1.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/nhexl-mode-1.0.el";
|
url = "https://elpa.gnu.org/packages/nhexl-mode-1.2.el";
|
||||||
sha256 = "1bf0jfim41m08ac4p4zxjj6qqw7f86gwiwyvfjg68n2nzbzgz1i9";
|
sha256 = "031h22p564qdvr9khs05qcba06pmsk68cr7zyc7c04hfr3y3ziaf";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs ];
|
packageRequires = [ cl-lib emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1989,6 +2024,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
org-edna = callPackage ({ elpaBuild, emacs, fetchurl, lib, org, seq }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "org-edna";
|
||||||
|
ename = "org-edna";
|
||||||
|
version = "1.0.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/org-edna-1.0.1.tar";
|
||||||
|
sha256 = "0xzyzx3pq1q6d66qcqx38pgxzn160y9yrzpy0ka8ap5xsm7ngn7m";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs org seq ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/org-edna.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
orgalist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
orgalist = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "orgalist";
|
pname = "orgalist";
|
||||||
|
@ -2113,10 +2163,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "posframe";
|
pname = "posframe";
|
||||||
ename = "posframe";
|
ename = "posframe";
|
||||||
version = "0.3.0";
|
version = "0.4.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/posframe-0.3.0.el";
|
url = "https://elpa.gnu.org/packages/posframe-0.4.2.el";
|
||||||
sha256 = "0q74lwklr29c50qgaqly48nj7f49kgxiv70lsvhdy8cg2v082v8k";
|
sha256 = "1h8vvxvsg41vc1nnglqjs2q0k1yzfsn72skga9s76qa3zxmx6kds";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -2522,10 +2572,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "ssh-deploy";
|
pname = "ssh-deploy";
|
||||||
ename = "ssh-deploy";
|
ename = "ssh-deploy";
|
||||||
version = "2.0";
|
version = "3.0";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/ssh-deploy-2.0.tar";
|
url = "https://elpa.gnu.org/packages/ssh-deploy-3.0.tar";
|
||||||
sha256 = "0mrgnandnqk25bx3x2a7hdw7pmjiq24w2lad7l2xqaqpwb8r6wgj";
|
sha256 = "0lv9qwm1dhcd2l2mnhjfpqsz6xx0wabjg5j5sm3425fjsaqws6m7";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -2552,10 +2602,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "svg";
|
pname = "svg";
|
||||||
ename = "svg";
|
ename = "svg";
|
||||||
version = "0.1";
|
version = "0.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/svg-0.1.el";
|
url = "https://elpa.gnu.org/packages/svg-0.2.el";
|
||||||
sha256 = "0v27casnjvjjaalmrbw494sk0zciws037cn6cmcc6rnhj30lzbv5";
|
sha256 = "14yfi27v3zdzh1chcjiq4l63iwh0vd99wv1z4w7agr33540jybc5";
|
||||||
};
|
};
|
||||||
packageRequires = [ emacs ];
|
packageRequires = [ emacs ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -2578,6 +2628,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
system-packages = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "system-packages";
|
||||||
|
ename = "system-packages";
|
||||||
|
version = "1.0.10";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/system-packages-1.0.10.tar";
|
||||||
|
sha256 = "1vwf2j0fxrsqmrgc7x5nkkg0vlhwgxppc4w7kb5is6dgrssskpb5";
|
||||||
|
};
|
||||||
|
packageRequires = [ emacs ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/system-packages.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
tNFA = callPackage ({ elpaBuild, fetchurl, lib, queue }:
|
tNFA = callPackage ({ elpaBuild, fetchurl, lib, queue }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "tNFA";
|
pname = "tNFA";
|
||||||
|
@ -2767,6 +2832,21 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
|
vcl-mode = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||||
|
elpaBuild {
|
||||||
|
pname = "vcl-mode";
|
||||||
|
ename = "vcl-mode";
|
||||||
|
version = "1.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://elpa.gnu.org/packages/vcl-mode-1.1.el";
|
||||||
|
sha256 = "1r70pmvr95k5f2xphvhliqvyh7al0qabm7wvkamximcssvs38q1h";
|
||||||
|
};
|
||||||
|
packageRequires = [];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://elpa.gnu.org/packages/vcl-mode.html";
|
||||||
|
license = lib.licenses.free;
|
||||||
|
};
|
||||||
|
}) {};
|
||||||
vdiff = callPackage ({ elpaBuild, emacs, fetchurl, hydra, lib }:
|
vdiff = callPackage ({ elpaBuild, emacs, fetchurl, hydra, lib }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "vdiff";
|
pname = "vdiff";
|
||||||
|
@ -2932,16 +3012,16 @@
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
};
|
};
|
||||||
}) {};
|
}) {};
|
||||||
wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib }:
|
wisi = callPackage ({ cl-lib ? null, elpaBuild, emacs, fetchurl, lib, seq }:
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "wisi";
|
pname = "wisi";
|
||||||
ename = "wisi";
|
ename = "wisi";
|
||||||
version = "1.1.6";
|
version = "2.0.1";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/wisi-1.1.6.tar";
|
url = "https://elpa.gnu.org/packages/wisi-2.0.1.tar";
|
||||||
sha256 = "0p7hm9l4gbp50rmpqna6jnc1pss2axdd6m6hk9ik4afbz0knzwnk";
|
sha256 = "1h0g6y33jrafcabgyi7j700hpv4p56v84c2mlqb334k1g9rq3709";
|
||||||
};
|
};
|
||||||
packageRequires = [ cl-lib emacs ];
|
packageRequires = [ cl-lib emacs seq ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://elpa.gnu.org/packages/wisi.html";
|
homepage = "https://elpa.gnu.org/packages/wisi.html";
|
||||||
license = lib.licenses.free;
|
license = lib.licenses.free;
|
||||||
|
@ -2966,10 +3046,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "xclip";
|
pname = "xclip";
|
||||||
ename = "xclip";
|
ename = "xclip";
|
||||||
version = "1.5";
|
version = "1.7";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/xclip-1.5.el";
|
url = "https://elpa.gnu.org/packages/xclip-1.7.el";
|
||||||
sha256 = "1fyqyi0672igjn53xlaj8hzbymkw08pk6wj58ndbrnm410g0h0i9";
|
sha256 = "0jpy3zzbyb16vqa9l6m45crzlypwvscvs76h8lci7kvp91kq954r";
|
||||||
};
|
};
|
||||||
packageRequires = [];
|
packageRequires = [];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -3044,10 +3124,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "zones";
|
pname = "zones";
|
||||||
ename = "zones";
|
ename = "zones";
|
||||||
version = "2018.11.13";
|
version = "2018.11.21";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://elpa.gnu.org/packages/zones-2018.11.13.el";
|
url = "https://elpa.gnu.org/packages/zones-2018.11.21.el";
|
||||||
sha256 = "0716m9s5qjp5w3gdlx0p53qrfylw6mhdmic88qmsndmhkijsrax4";
|
sha256 = "0s68mnynjd08gyga7xdnb0zy3irsxl1jryidpcrkzg821vfrk11i";
|
||||||
};
|
};
|
||||||
packageRequires = [];
|
packageRequires = [];
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "org";
|
pname = "org";
|
||||||
ename = "org";
|
ename = "org";
|
||||||
version = "20181119";
|
version = "20181217";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://orgmode.org/elpa/org-20181119.tar";
|
url = "http://orgmode.org/elpa/org-20181217.tar";
|
||||||
sha256 = "0li6mx0kv70js3mlw7wxk1yi8kgc3nxnb87kdb7jy68xh4lsila7";
|
sha256 = "0j301z0429dnk1d3bn7524y848vp9il41sxpm9z9hs7gpzfdcw28";
|
||||||
};
|
};
|
||||||
packageRequires = [];
|
packageRequires = [];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -19,10 +19,10 @@
|
||||||
elpaBuild {
|
elpaBuild {
|
||||||
pname = "org-plus-contrib";
|
pname = "org-plus-contrib";
|
||||||
ename = "org-plus-contrib";
|
ename = "org-plus-contrib";
|
||||||
version = "20181119";
|
version = "20181217";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://orgmode.org/elpa/org-plus-contrib-20181119.tar";
|
url = "http://orgmode.org/elpa/org-plus-contrib-20181217.tar";
|
||||||
sha256 = "0dz0vn2xyidifrwrd604yknyq843i31jcc8qgsi6wib29rh7zzpa";
|
sha256 = "1p7v9246zxkp68kc63550x3w7pmhx1drgj20wmddhvs0bqd3k3ap";
|
||||||
};
|
};
|
||||||
packageRequires = [];
|
packageRequires = [];
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, qmake, pkgconfig, qtwebkit, hunspell }:
|
{ stdenv, fetchFromGitHub, qmake, pkgconfig, qttools, qtwebkit, hunspell }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ghostwriter";
|
pname = "ghostwriter";
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1pqlr08z5syqcq5p282asxwzrrm7c1w94baxyb467swh8yp3fj5m";
|
sha256 = "1pqlr08z5syqcq5p282asxwzrrm7c1w94baxyb467swh8yp3fj5m";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ qmake pkgconfig ];
|
nativeBuildInputs = [ qmake pkgconfig qttools ];
|
||||||
|
|
||||||
buildInputs = [ qtwebkit hunspell ];
|
buildInputs = [ qtwebkit hunspell ];
|
||||||
|
|
||||||
|
|
|
@ -31,14 +31,14 @@
|
||||||
, wrapGAppsHook
|
, wrapGAppsHook
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
version = "3.30.0";
|
version = "3.30.2";
|
||||||
pname = "gnome-builder";
|
pname = "gnome-builder";
|
||||||
in stdenv.mkDerivation {
|
in stdenv.mkDerivation {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "1pshzpjy9rk6gijlm97s316aihykzxrmb07vilp17q5857passak";
|
sha256 = "05yax7iv9g831xvw9xdc01qc0l7qpmh6rfd692x8cbg76hljxdrr";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
pname = "manuskript";
|
pname = "manuskript";
|
||||||
version = "0.3.0";
|
version = "0.8.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
repo = pname;
|
repo = pname;
|
||||||
owner = "olivierkes";
|
owner = "olivierkes";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0bqxc4a8kyi6xz1zs0dp85wxl9h4v8lzc6073bbcsn1zg4y59ys7";
|
sha256 = "0vqz02p3m9n4hk2jplnklr9s6niqdm5iykab6nblqdm4plb04c34";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
|
|
@ -4,14 +4,14 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "5.4";
|
version = "5.5";
|
||||||
name = "rawtherapee-" + version;
|
name = "rawtherapee-" + version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Beep6581";
|
owner = "Beep6581";
|
||||||
repo = "RawTherapee";
|
repo = "RawTherapee";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1h2x5biqsb4kfwsffqkyk8ky22qv2a0cjs1s445x9farcr3kwk99";
|
sha256 = "13clnx7rwkfa7wxgsim1xdx2pd7gwmmdad1m8a3fvywr20ml8xzk";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
|
nativeBuildInputs = [ cmake pkgconfig wrapGAppsHook ];
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
{ stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, pkgconfig
|
|
||||||
, leptonica, libpng, libtiff, icu, pango, opencl-headers
|
|
||||||
|
|
||||||
# Supported list of languages or `null' for all available languages
|
|
||||||
, enableLanguages ? null
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
name = "tesseract-${version}";
|
|
||||||
version = "4.0.0";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "tesseract-ocr";
|
|
||||||
repo = "tesseract";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "1b5fi2vibc4kk9b30kkk4ais4bw8fbbv24bzr5709194hb81cav8";
|
|
||||||
};
|
|
||||||
|
|
||||||
tessdata = fetchFromGitHub {
|
|
||||||
owner = "tesseract-ocr";
|
|
||||||
repo = "tessdata";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "1chw1ya5zf8aaj2ixr9x013x7vwwwjjmx6f2ag0d6i14lypygy28";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig autoreconfHook autoconf-archive ];
|
|
||||||
buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
|
|
||||||
|
|
||||||
# Copy the .traineddata files of the languages specified in enableLanguages
|
|
||||||
# into `$out/share/tessdata' and check afterwards if copying was successful.
|
|
||||||
postInstall = let
|
|
||||||
mkArg = lang: "-iname ${stdenv.lib.escapeShellArg "${lang}.traineddata"}";
|
|
||||||
mkFindArgs = stdenv.lib.concatMapStringsSep " -o " mkArg;
|
|
||||||
findLangArgs = if enableLanguages != null
|
|
||||||
then "\\( ${mkFindArgs enableLanguages} \\)"
|
|
||||||
else "-iname '*.traineddata'";
|
|
||||||
in ''
|
|
||||||
numLangs="$(find "$tessdata" -mindepth 1 -maxdepth 1 -type f \
|
|
||||||
${findLangArgs} -exec cp -t "$out/share/tessdata" {} + -print | wc -l)"
|
|
||||||
|
|
||||||
${if enableLanguages != null then ''
|
|
||||||
expected=${toString (builtins.length enableLanguages)}
|
|
||||||
'' else ''
|
|
||||||
expected="$(ls -1 "$tessdata/"*.traineddata | wc -l)"
|
|
||||||
''}
|
|
||||||
|
|
||||||
if [ "$numLangs" -ne "$expected" ]; then
|
|
||||||
echo "Expected $expected languages, but $numLangs" \
|
|
||||||
"were copied to \`$out/share/tessdata'" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "OCR engine";
|
|
||||||
homepage = https://github.com/tesseract-ocr/tesseract;
|
|
||||||
license = stdenv.lib.licenses.asl20;
|
|
||||||
maintainers = with stdenv.lib.maintainers; [viric];
|
|
||||||
platforms = with stdenv.lib.platforms; linux;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,67 +1,18 @@
|
||||||
{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
|
{ callPackage, lowPrio }:
|
||||||
, leptonica, libpng, libtiff, icu, pango, opencl-headers
|
|
||||||
# Supported list of languages or `null' for all available languages
|
|
||||||
, enableLanguages ? null
|
|
||||||
# if you want just a specific list of languages, optionally specify a hash
|
|
||||||
# to make tessdata a fixed output derivation.
|
|
||||||
, enableLanguagesHash ? (if enableLanguages == null # all languages
|
|
||||||
then "1h48xfzabhn0ldbx5ib67cp9607pr0zpblsy8z6fs4knn0zznfnw"
|
|
||||||
else null)
|
|
||||||
}:
|
|
||||||
|
|
||||||
let tessdata = stdenv.mkDerivation ({
|
let
|
||||||
name = "tessdata";
|
base3 = callPackage ./tesseract3.nix {};
|
||||||
src = fetchFromGitHub {
|
base4 = callPackage ./tesseract4.nix {};
|
||||||
owner = "tesseract-ocr";
|
languages = callPackage ./languages.nix {};
|
||||||
repo = "tessdata";
|
|
||||||
rev = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d";
|
|
||||||
# when updating don't forget to update the default value fo enableLanguagesHash
|
|
||||||
sha256 = "1v4b63v5nzcxr2y3635r19l7lj5smjmc9vfk0wmxlryxncb4vpg7";
|
|
||||||
};
|
|
||||||
buildCommand = ''
|
|
||||||
cd $src;
|
|
||||||
for lang in ${if enableLanguages==null then "*.traineddata" else stdenv.lib.concatMapStringsSep " " (x: x+".traineddata") enableLanguages} ; do
|
|
||||||
install -Dt $out/share/tessdata $src/$lang ;
|
|
||||||
done;
|
|
||||||
'';
|
|
||||||
preferLocalBuild = true;
|
|
||||||
} // (stdenv.lib.optionalAttrs (enableLanguagesHash != null) {
|
|
||||||
# when a hash is given, we make this a fixed output derivation.
|
|
||||||
outputHashMode = "recursive";
|
|
||||||
outputHashAlgo = "sha256";
|
|
||||||
outputHash = enableLanguagesHash;
|
|
||||||
}));
|
|
||||||
in
|
in
|
||||||
|
{
|
||||||
stdenv.mkDerivation rec {
|
tesseract3 = callPackage ./wrapper.nix {
|
||||||
name = "tesseract-${version}";
|
tesseractBase = base3;
|
||||||
version = "3.05.00";
|
languages = languages.v3;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "tesseract-ocr";
|
|
||||||
repo = "tesseract";
|
|
||||||
rev = version;
|
|
||||||
sha256 = "11wrpcfl118wxsv2c3w2scznwb48c4547qml42s2bpdz079g8y30";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
tesseract4 = lowPrio (callPackage ./wrapper.nix {
|
||||||
|
tesseractBase = base4;
|
||||||
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
languages = languages.v4;
|
||||||
buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
|
});
|
||||||
|
|
||||||
LIBLEPT_HEADERSDIR = "${leptonica}/include";
|
|
||||||
|
|
||||||
postInstall = ''
|
|
||||||
for i in ${tessdata}/share/tessdata/*; do
|
|
||||||
ln -s $i $out/share/tessdata;
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "OCR engine";
|
|
||||||
homepage = https://github.com/tesseract-ocr/tesseract;
|
|
||||||
license = stdenv.lib.licenses.asl20;
|
|
||||||
maintainers = with stdenv.lib.maintainers; [viric];
|
|
||||||
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Usage:
|
||||||
|
# ./fetch-language-hashes <tessdataRev> [<language code>…]
|
||||||
|
#
|
||||||
|
# Fetches all languages if no language codes are given.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# ./fetch-language-hashes 4.0.0 eng spa
|
||||||
|
#
|
||||||
|
# Output:
|
||||||
|
# eng = "0iy0...";
|
||||||
|
# spa = "15kw...";
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
(( $# >= 1 )) || exit 1
|
||||||
|
tessdataRev=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
if (( $# > 0 )); then
|
||||||
|
langCodes="$@"
|
||||||
|
else
|
||||||
|
repoPage=$(curl -fs https://github.com/tesseract-ocr/tessdata/tree/$tessdataRev || {
|
||||||
|
>&2 echo "Invalid tessdataRev: $tessdataRev"
|
||||||
|
exit 1
|
||||||
|
})
|
||||||
|
langCodes=$(echo $(echo "$repoPage" | grep -ohP "(?<=/)[^/]+?(?=\.traineddata)" | sort))
|
||||||
|
fi
|
||||||
|
|
||||||
|
for lang in $langCodes; do
|
||||||
|
url=https://github.com/tesseract-ocr/tessdata/raw/$tessdataRev/$lang.traineddata
|
||||||
|
hash=$(nix-prefetch-url $url 2>/dev/null)
|
||||||
|
echo "$lang = \"$hash\";"
|
||||||
|
done
|
|
@ -0,0 +1,289 @@
|
||||||
|
{ stdenv, lib, fetchurl, fetchFromGitHub }:
|
||||||
|
|
||||||
|
rec {
|
||||||
|
makeLanguages = { tessdataRev, tessdata ? null, all ? null, languages ? {} }:
|
||||||
|
let
|
||||||
|
tessdataSrc = fetchFromGitHub {
|
||||||
|
owner = "tesseract-ocr";
|
||||||
|
repo = "tessdata";
|
||||||
|
rev = tessdataRev;
|
||||||
|
sha256 = tessdata;
|
||||||
|
};
|
||||||
|
|
||||||
|
languageFile = lang: sha256: fetchurl {
|
||||||
|
url = "https://github.com/tesseract-ocr/tessdata/raw/${tessdataRev}/${lang}.traineddata";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# Use a simple fixed-output derivation for all languages to increase nix eval performance
|
||||||
|
all = stdenv.mkDerivation {
|
||||||
|
name = "all";
|
||||||
|
buildCommand = ''
|
||||||
|
mkdir $out
|
||||||
|
cd ${tessdataSrc}
|
||||||
|
cp *.traineddata $out
|
||||||
|
'';
|
||||||
|
outputHashMode = "recursive";
|
||||||
|
outputHashAlgo = "sha256";
|
||||||
|
outputHash = all;
|
||||||
|
};
|
||||||
|
} // (lib.mapAttrs languageFile languages);
|
||||||
|
|
||||||
|
v3 = makeLanguages {
|
||||||
|
tessdataRev = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d";
|
||||||
|
tessdata = "1v4b63v5nzcxr2y3635r19l7lj5smjmc9vfk0wmxlryxncb4vpg7";
|
||||||
|
all = "0yj6h9n6h0kzzcqsn3z87vsi8pa60szp0yiayb0znd0v9my0dqhn";
|
||||||
|
|
||||||
|
# Run `./fetch-language-hashes <tessdataRev>` to generate these hashes
|
||||||
|
languages = {
|
||||||
|
afr = "15dsnzy4i9ai26ilm73gkfj4ck039raa88i6w443c4b1fnay2akf";
|
||||||
|
amh = "1wbcsdq3svxga3j1alk61xs72a9fhsfsyjxhp3cwxfaqfhrzg7h4";
|
||||||
|
ara = "0nk495gki6jbbnwcl2ybsx4nd02d6qykcjncq0d2g8pbgapqmj91";
|
||||||
|
asm = "0c3wq15yphq7x74s2sn3f90k6z1cf5j7ic62z0dynidrv99bddfh";
|
||||||
|
aze = "0pz073hxqkx1a1cshlgg5k11lj73s52sdxa7k3020drc314lhaxw";
|
||||||
|
aze_cyrl = "0djbfgx28ykcjsn2p0766qrmj256g7vhc7valc3ivsva8b906lxq";
|
||||||
|
bel = "04zqy8vik0fcakq6apfp8wjhkkhlg0yn9kmag1lk7s8fy9ax3ws2";
|
||||||
|
ben = "0q7812kn5xjm47hcgdcg911lhbgqr7hbvqckfxxm8qw0yjx2cy0m";
|
||||||
|
bod = "0rwq7539zzfs8xs0bf1535z1cwkm0yk1ni25f5gjav7nm6qpiaan";
|
||||||
|
bos = "1qr04dj7lx347gxpin5nfprbggmxq2mwx8kf3pcc3vb5x3pa57g4";
|
||||||
|
bul = "0cyyqgi3i4y9bfzwls0lwljzgd0r8ayfqb4bbvdh4qmbni9x42ya";
|
||||||
|
cat = "0kgw8f5pdw9lfbn6cfp5n1s0j8pj3418yx6rsbagzcf1gr36gbr9";
|
||||||
|
ceb = "1g1n4np4vhar7wfwx2km5k6kldb600rrl7npfbf75229rar068f1";
|
||||||
|
ces = "0zxkkyhpd74i6321nv86pkjb0k7p9cp6m174rbn42nl7jz6qxib0";
|
||||||
|
chi_sim = "0k250xr0gk9yh22yqxd0zpxdsrqfzs164kdv5n9rxx1g996yffij";
|
||||||
|
chi_tra = "03nxqpd546p0gwfj6pqzbdbv5zjpdddzlpa10xn4nvmks1mmckbp";
|
||||||
|
chr = "1k1sg3hap0kd5aa36ysvmhp7r3fynxf0f7lzz814h6p3g250zclb";
|
||||||
|
cym = "0d6wbf9cmrrzf66mhcckwdfy3xh2i38r0by9nk6isw9rl7bf7j07";
|
||||||
|
dan = "1s1yj56rpzmif3ir3qs4iab744cgpflk7y8812z2665bh61illpr";
|
||||||
|
dan_frak = "1bxi53ymib5g0139vfd2pflh7nl5925vqznq3sfgaqx7gdx630vi";
|
||||||
|
deu = "0fna7fqk1a8ivd7q2k38vx37qm3vbn183zh4z5zfqb4pgqmb8znb";
|
||||||
|
deu_frak = "1y4krkvarg7jxhcq49fgybg4phbn58y9c0z2bm8mnp28jkih1cnb";
|
||||||
|
dzo = "1fcz0imi7zxi99762pxfcm5iz2jcbqj3s742magka4ihrxnz07xm";
|
||||||
|
ell = "0r0f71jy4y29bg055qvvy93wchi3lh08zz0k9c8l7466b03yvq5v";
|
||||||
|
eng = "0vghah8kqcv0n5fnjb88w6siz156ysrc41fckw3f2y8c3sgmqlf0";
|
||||||
|
enm = "10y61xv3w1ypgqz5rgb22y5hh1i4zx03cwiqw21ifqvg4xdrln46";
|
||||||
|
epo = "1y5lh55mbcx33cm7qlf1dcah8ffycxmlcpzjzx9r6ij14fdd4964";
|
||||||
|
equ = "1nqrd0a9jqqh6byy8snfhad1hisrc92dcx44wsy7v4nf40j3mx1s";
|
||||||
|
est = "12ll8lq1hjcsq9hh93020w78r7f1rcxcwlvrjqw8j5p3k9jg5a4g";
|
||||||
|
eus = "034s9mp7lw1a4yvf2cmbbj2fbqbaq6xnjqh30yn0wq0c0jck96nw";
|
||||||
|
fas = "0m61p4byc0kzf75cdn6g18s8hcg9r8ifs34wr85lbsb65kil4ijx";
|
||||||
|
fin = "1wac333k0lcd5jwprzg99b10bq8sdc96b9d6275kg9imyqjwcc7q";
|
||||||
|
fra = "1ax7i0nw1lwkz4sbrvn4z0lcrcai77ymdpla7qk7yij6s4xb5bw6";
|
||||||
|
frk = "16nmr71p93724vk1x5mq4r8vxpwnm448p6dwqv8scg8asch1cidp";
|
||||||
|
frm = "00yz3hz7wcralq8wbx1ap4c6b37ac6vnz5bgmxmgdx0kqzibiddn";
|
||||||
|
gle = "1n8z8kmn5m628rlzgz5v0iw6h46aalflq5asa1wj5rygx1y2azpa";
|
||||||
|
glg = "0fdniayplc3iwmlmvhblarh1gm97dp8rqhhkb8b0clwfd9cj342z";
|
||||||
|
grc = "04r2193qcxqyab5998xn8bf7197wiccmjm7iakij8d0c7l61dnxb";
|
||||||
|
guj = "0dp8mlxmf0x9wb8dg0c508sdwz03icq94z8ji8jhwgdqgv8hw1al";
|
||||||
|
hat = "0793mmlxbb09c8103jhdvlczz647nyn4ykkgd3gwgavncmjh72v8";
|
||||||
|
heb = "16za9ff1i3ya6hz75l9v3v7j4039kscxxw21g3i2w5p9zn52hyag";
|
||||||
|
hin = "1vnn5wpc724kgib8jbx0kpnnp4al60ivqir72gnbyh6cpnflb6bf";
|
||||||
|
hrv = "15rqd6xiv2bdmalb5s6rxvw0yk6w9agn9fli3bvi703q6vpj2yn3";
|
||||||
|
hun = "19zzwdxwi3h3vdsgr271i1m87gfpdirk6b1ljw2j8qmfilp4sw56";
|
||||||
|
iku = "1v1yvc1194qycjgb4ihh5hpj6472nlbp66dii183514g2dh9x0db";
|
||||||
|
ind = "120d4b41wvsgcd1sgy2mp78i9hvi7w03a63078dz1yds0yqdwf1p";
|
||||||
|
isl = "003ngk8dfv6dglkq8pmi6jsglrfkc65js5ywh3vvkg7qfqf6qsxz";
|
||||||
|
ita = "1lxklk3zc3x3k8yfpp6ygyv7fndgs57dfasc97rh8782ds16wkjs";
|
||||||
|
ita_old = "188gby1y51pa1ycyc8y17d16hs5w27yl5ch7xzni98bdjkwbkl1z";
|
||||||
|
jav = "1fjyjznjchls5ifbnx2b9xagisgxvgj9lsf39rr9d87sbzdbbwbp";
|
||||||
|
jpn = "1wmayj8wh3pfwznjhalad2qzv38mhrzw2sxl71mycvzvpdy9ag1w";
|
||||||
|
kan = "0hak4953whw9vd9dzl0hq076kzb19kk45kmfxk03af4k6gb206vg";
|
||||||
|
kat = "16k0057cvvdc6snm5svhdv3cr7cw71g74yy8215njjbsi838imi3";
|
||||||
|
kat_old = "02gl755d38plyvzwfjqxvjgfqkbjs9rvzx33qfhm2zvmgbwrfrfh";
|
||||||
|
kaz = "0hc36w7zz5waycsk220v0r83sg991gd5f5r937mvz44viql80sgm";
|
||||||
|
khm = "1gb2nv5qdq5fz9w9xq4fj68p46b62sd1m986ra5qbnskxqizr12s";
|
||||||
|
kir = "1b1ing6qqi8qqfh4xpk76rp4gxp69wdjdl5m777ayx3v02d7nhh3";
|
||||||
|
kor = "1rldj6f8h1nn5wpx57b0ci7p0fnivnwzgaf0d3576xls26z2wcgv";
|
||||||
|
kur = "1cp2pfd6g662gvxi7ywkxfbfq1lwbis888bf1gg8ynzy342mx1ic";
|
||||||
|
lao = "03bdaxakmxpbbr9vsnbzzfksvm6js0l5i0ijwl71piqyxqjj1gxf";
|
||||||
|
lat = "1q7v7drnwpna9k2l79jbdlxiv1j617rqzjc9d48h3lfrma5z97sj";
|
||||||
|
lav = "0fxzyvw7n67rmw2irvlghkf1bii4w47200zv26p0v3a9dwvhc7sg";
|
||||||
|
lit = "0f00ggjjqrl94kwwjmjqwajyfprsml0br8vhn2gvn11gaxvm52hm";
|
||||||
|
mal = "1i83plhin3m6sq8p92vzlyng5z59gvvqypyh7rnmvdmm9rranx8a";
|
||||||
|
mar = "0ay7q53yl3709crvn5l9c9jx7hw6m5d3x2crmvnvczsh83ayfdik";
|
||||||
|
mkd = "1q1wadcr4j1dzssyyqz43qmizc6vfqkbivr6xi2p7p4h9rl11x73";
|
||||||
|
mlt = "1qp4v6habak1l7xrw322wglvjjndrfp4j7bj8d4npwbzk1sh4s0h";
|
||||||
|
msa = "048p6mkx9zr40s9s5vbi0gnizhvqwn0g8i1hf1l8db7igbax5xyj";
|
||||||
|
mya = "17nyr5bd42kzvid3421n3mwckd49vzrjhjahd8rnfsmbsy1x382l";
|
||||||
|
nep = "154375r32sdmvcnp1ckvgbp3wxvb2xiiypb8bxbsvrabrz4wzjqc";
|
||||||
|
nld = "1clwbky71zkz55zd3f8r9hj8fhpnbkply80p1js4fvs7x12r715x";
|
||||||
|
nor = "1ynvrz6s0vmlq1xkjd8k2w6bx8770x6v29qgx83d4nl17ngjd459";
|
||||||
|
ori = "0dsakc8gnwhs6z5kxc2wdkbn31gkkiqk5vriw0swghychp164aac";
|
||||||
|
osd = "1zq0dfliavglmix7zzrqdxz1w01rm1f1x1352bqn8xf4zivdbxcw";
|
||||||
|
pan = "1fwdpwkydfmr6drwgkqzn89z12r2rdm02a75vvdxhxg2a9yiwmbv";
|
||||||
|
pol = "155z870ygzws476kp7qpzi8jcjcv3jb5px8rbzhnag1fklqr48hx";
|
||||||
|
por = "1814cff2rffpzlg4hyyrjzpf5ps2i95rmpa4c8ikblbvrlcv97q8";
|
||||||
|
pus = "1iz5nn1zfvn1l9gb1jriwx991d2hwwc7x4k1nvzjlwpzscplx25b";
|
||||||
|
ron = "11lr80zhvnnngvwwk01z1d3prfpbh3qbwpl1nl5fp7h09d6n3wzl";
|
||||||
|
rus = "1d6a8lg4bmd3np16jds1py3qpkaq4ahnhwghd5r0159y0jpxq00q";
|
||||||
|
san = "169f4ajgwn99yfdfrlwfvdgvv1abal7fpdp31sknvq8l7w2sak3g";
|
||||||
|
sin = "1411g18r6f6j6f4n0sn7ajgs4gkplb892s6ak0hi9nyyxwv3r1gm";
|
||||||
|
slk = "0bxfbrg1nf6px0xzkh6ihdi71fmr1rxxs99qb191k7pm16x2lpds";
|
||||||
|
slk_frak = "0zyqnn1y5cyx1y7wzgw743k4584ljl0rhvk2q1ni6jnjx9ciwzqy";
|
||||||
|
slv = "1kjn9m9hbwp0m0p2v8c3skpzr6f8x42hz8x48zl22550a7hq8n1h";
|
||||||
|
spa = "1npgl8ylvfm60hd4214z8a3lriy1hckhijschrbjpzmwdfcqafgj";
|
||||||
|
spa_old = "0w4ivkv8flyn7bjlyjcrcrdnslkvrrfs7l33mvird1jhhkyqd8sx";
|
||||||
|
sqi = "15wzvh6qm3yx7yf0k5j7g1imsaqxvq7r2xh6a0xgmkqbyypbbkdf";
|
||||||
|
srp = "05blqriv30x02c80ds3x7zhw0y21nc6lkqlv5jwgwnjgw4yfpgrm";
|
||||||
|
srp_latn = "0ss8s3q60aq8sd2a3sbnzvp13qqarxnjw4hij8hd9ab5gsjw0nwr";
|
||||||
|
swa = "1pwwhx7ldq21cv06cchws8gvwsmkwn5sjcy9z3nk3nbp9qjsf44f";
|
||||||
|
swe = "0l10iyn2cr7ibgk0akmpg8725mpwpydawgv3s77izsw7y6xhfr1a";
|
||||||
|
syr = "08bxil13wyp5h4hvbxjcys7ypgqgg46rrp653m7gyv5q94ycjgb0";
|
||||||
|
tam = "1g155kyba2wjfgzgy48g6yd2csinwbfjdi5r7vw0wm3dh1z39dvz";
|
||||||
|
tel = "0fydrcb54b6mmqazb337x4s36i2a64sb4xm7y7g3nqqmk9afsipv";
|
||||||
|
tgk = "0f6j37friywj7y132fv0jm6aj4sx8f0b7brspj3pbjqqpi4v5ws0";
|
||||||
|
tgl = "0f1r0gicif57qhyw8xaa1sqgny720q3z5cpd5srrn9i6fihaz577";
|
||||||
|
tha = "1y2hw55jfpidk95y8qbsiczgg2r2khabac97s1y3gl0v93a44jna";
|
||||||
|
tir = "1y7iryhjr83ca4yh5jjz7qlnrx4kbrp0a0p650whjvk2gnv8m98h";
|
||||||
|
tur = "0xqnq99b2jb4v74bj95py6wmg14dm31zp5s3l48dmcv6zdgcxg2w";
|
||||||
|
uig = "1sdddr15zlb33kd1d7hzi5lfd15bfhqn105d7x6snfpqp7vq4bxv";
|
||||||
|
ukr = "0cdwjnfnnmzz7jdn49l96vqgaimclfxcxaw09cm63f5my382r2rg";
|
||||||
|
urd = "10xcn1zs2lfswp5yai0ckyg7js587qhr5cf7qib3i35qjbw7nc18";
|
||||||
|
uzb = "1jkkd5j6vsx5jv5gwprbfwg1vwh714prm8j446wzvp74brmk949l";
|
||||||
|
uzb_cyrl = "1kdia38rgm2qd3ly80a412jyagxxryr09h1nz2d0iw71bmfn4855";
|
||||||
|
vie = "1ja18jxxaw282y4jljxpjf1gj15il61vc2ykpfy22vn88wvydxff";
|
||||||
|
yid = "1jddd0g8mm5v00z5kb8rbpfs7ppzgq9kzm1xlhhvv960yfdbi6fd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
v4 = makeLanguages {
|
||||||
|
tessdataRev = "4.0.0";
|
||||||
|
tessdata = "1chw1ya5zf8aaj2ixr9x013x7vwwwjjmx6f2ag0d6i14lypygy28";
|
||||||
|
all = "0dqgkp369rcvq72yhgnzj1pj8yrv7kqzc7y6sqs7nzcq7l5qazlg";
|
||||||
|
|
||||||
|
# Run `./fetch-language-hashes <tessdataRev>` to generate these hashes
|
||||||
|
languages = {
|
||||||
|
afr = "1a9f8pnrspfmcq9gpjnxn2kkhjlsmh912bnpx671fjizxpmiri2y";
|
||||||
|
amh = "0m1vdyxjx57kmf2qra0p31k509y1cqn4pyckzw00i5n3wx11d2j0";
|
||||||
|
ara = "0nswl6n0s94g900j5k1gwzp7m140c0yd9a2fdb2lzhdvg1krf190";
|
||||||
|
asm = "025d9vrjcrwyd6cc6hrw1x8xqhicgrb9wpvhhmlw71ql04dadslf";
|
||||||
|
aze = "01shcs78a6xn3my8p3y42x1c9f5hzfn83w2n2nwpffbgz4y2nsgf";
|
||||||
|
aze_cyrl = "1sbd89i5r7rnkjh2in8j0plrxnfiill9jl8pr68iw77ghih6q1vg";
|
||||||
|
bel = "0dhyymsxcyzwal8474q7ag3m2akv0b92hkdz7rka5z1cxry1cn8c";
|
||||||
|
ben = "0a7q9414k3frn37x2qcglz722ysg2iivj6kqaaa0ik7z14ibc8v0";
|
||||||
|
bod = "0rh7x54nlh6ir6ldccj8hi7g8hwlp13r3fkljw8gndvhwmgfkkar";
|
||||||
|
bos = "1szym4n605hlx12a9vpz4jjs76jscajh22rgkqwbv4qdsl0gi3nd";
|
||||||
|
bre = "070f4c84iznblsw4jkwpzh9dss8nfb678160szm5r8dlv2yinrrk";
|
||||||
|
bul = "03bg2yw79lg8rl43y9288313jrfh0h69vl4s4cmlgbmnbx8pvxwj";
|
||||||
|
cat = "19xs691aj8yy2ff07c3gzm07zicd5ha0gmcjxjh9pknqf2gfy7qv";
|
||||||
|
ceb = "1896vn41hqc4anm6hjvrnn022i0p8pmhwsp5rv9w2cvr6738l79r";
|
||||||
|
ces = "0fh2g47msfr91285rnccxcmcshihm126sqy496s4vrr0vk8ix1nf";
|
||||||
|
chi_sim = "0qxkvbpm5l7gzsshnn72wfx473pprf5nmw8hd4i4x2qxnfddh1gw";
|
||||||
|
chi_sim_vert = "1f75pzvxbda82vxa2zb1z9b9f13sh81kzaw45vg5118ncsklj8w7";
|
||||||
|
chi_tra = "056vjws1fir1v5iv44pzykkxs5q1dbb2j8blhj47i53w1zf6g42m";
|
||||||
|
chi_tra_vert = "10c9cdycg1a5kwlgg60sh8yp07w2fl4whinpxfhlzrzs56allql4";
|
||||||
|
chr = "19qq8a6c27973djsc4xpcklis92r58x21fg4mz5azdyka5i1n46l";
|
||||||
|
cos = "0z9kx1hw8h5n00pcahxla808wya50wrkk8cz7x676pd93ibyrlyx";
|
||||||
|
cym = "13pk9cpf43xxqbz3blfz2av2yd1ma6ds6jbdiqw8anhhj7l9ch2d";
|
||||||
|
dan = "1jirmahxvyyswhhyzhinvcqaycz7m3ixchqrj3lgfcdi3anvabr2";
|
||||||
|
dan_frak = "17wcgdqxmbzn7qchnx5gsa05aj4wmhbwk43w173bl3wr6h5ylmh0";
|
||||||
|
deu = "194rqsg4nlycca9bg2fqf15xgcl110rxp182l7dbjfjhar4knsw9";
|
||||||
|
deu_frak = "12hhhp32f15c7fw2jp05mwim9ps14kmamhh6vmalvm7r2033vbm7";
|
||||||
|
div = "09mm9r5hxhsc4qpyg10ym9mc2kdpawx8zk0aiv1xpgd35rzpyz41";
|
||||||
|
dzo = "1zk7crgcazgqy5zmslp6iw4jws07nja31qdxx0rpzhn3c0bjgw1b";
|
||||||
|
ell = "1hhym18a9411953j47xjk47jx9ij9xi2qwlx05c93zl41528nsqg";
|
||||||
|
eng = "0iy07z182lwhqfa0q288ha691scpsry330aynaizn68wcmywk86s";
|
||||||
|
enm = "1dhr1qvil38bil43wk5ci645sbm3my2y9y7qlcbnwz2p4pflayvm";
|
||||||
|
epo = "1jig4db7050vww32vxsqyig3j1b0vgz9ipxbsw0jpkjia84k44n9";
|
||||||
|
equ = "02qwg6s1z7pynwm0p6dvpwi04ivfkr1s7qgssbla1dx7v0ih6rlg";
|
||||||
|
est = "1jxygahy6by7fbirbmjmd68k6560q1a3h5mvpzdx15h5fw0q58gl";
|
||||||
|
eus = "0cai7nm7si8680avrrls8bf9ski980rvsj560fh9y6n9rz7mh9mp";
|
||||||
|
fao = "1n3434jf18bzakbylzyg3jaw2ad4h376g56dsql32bgh2yvyww8a";
|
||||||
|
fas = "17wjkfka9725rz32clgqgk9msmbz4axs59vz30jmhhxyrkliafqb";
|
||||||
|
fil = "0p713k8g27df9z384ns111xqxii5kq20m8brflsmd3yckw1mibhz";
|
||||||
|
fin = "1wc3y9nnm7rb2c2c5fkj7cv7jb27jlkb2bh0g8kaz57h6imfmb2g";
|
||||||
|
fra = "04qrfvi6irlaahh1pgn5azyfhbhavm12yyybza8603alf8firh7a";
|
||||||
|
frk = "05cqmxxxjqdl5hjyzi6dpmixnjpd6f3jr6741yapdmnxvkzxkiyp";
|
||||||
|
frm = "0a86yy6hd0lvlbzvnzjmyapzc0rn7mnkdadqycd65bw1b714cvy2";
|
||||||
|
fry = "0i84r8g9hlkr9nlhypl4lq6ncrhbcpskqkdcijgk88c2fdknh57h";
|
||||||
|
gla = "17idyhb505waz9dnb8dsk54faw7y0xvvb12yw71k0skq3i90akar";
|
||||||
|
gle = "1q87h5zzcva54pg364d3hl6q9hdlydlyj1qmq8n5k7hqk11msxmk";
|
||||||
|
glg = "01xssz1rhpy3a0sm4i43nba61wc2srz6wv327vdw1kg8ijm0s0g4";
|
||||||
|
grc = "00x0s3smx4wg5h12y2b9al0j2jk1y3f0yy2x6f2qf7ps831drgyl";
|
||||||
|
guj = "028v4fgn0zi2044vk6j2rlqklc9i0kj22s52vhifmx1g02kz9154";
|
||||||
|
hat = "1bca516pr2cnyjlwycc7pr6gfmdjb8565hp06pw9nwpr20ry0hss";
|
||||||
|
heb = "1qfkffjh29b21frs0mv6llsrchixl5kjkpj1if7fq816g9mym9kx";
|
||||||
|
hin = "1rkfam5c6qil2590lfffzndhq3bncdgf4ij0cyjcglgyljgx0xnc";
|
||||||
|
hrv = "0da7b6mk0rwc9zlbqkycwjpddp3qpy07l643i00ia5a1zq35fmgp";
|
||||||
|
hun = "0w2s4mn9p74zqzmp9hh2017zgsh5v43k4lid4pv29f4b0y5gj9xi";
|
||||||
|
hye = "0ifzm875wlbjh4vkpmj1n6f14m8i174413l6pc6i44y4p5fpgxrf";
|
||||||
|
iku = "19arnv82xbxhbcy8pf9fv1sl5zc5707mk34nh7w46dlz86qkidmn";
|
||||||
|
ind = "1d421hizwni4m6sr4f3nqqpr1g744hzn0krk130m7x8mhzgamba5";
|
||||||
|
isl = "1hjjw8k2r9qa990ziq5wxr36kyf16mnmrqfmq5vbcjprka9h08pq";
|
||||||
|
ita = "1qyrvlf7pjxzyb29sc7aq3gq61bww14sijka44scxggfw7134l3r";
|
||||||
|
ita_old = "1pf8461jbj0vpyry0b54crmkf2bk9mh4klxvmj09jvf0aq2vm9s6";
|
||||||
|
jav = "18vvbyimj0y462amjmwvqa6h9n8l122j9v0w3hfp63hlxpfprm0m";
|
||||||
|
jpn = "16hma9w32vdh41ihymp894jza72b0d235hwriv18r78j5n86nhbg";
|
||||||
|
jpn_vert = "0yca09l9sbpfjgb2slnpb9q7qd7vz3a1wb6bkln30d3nl0d9r1rn";
|
||||||
|
kan = "0lcmx37rjfxkbhhbrld1ndmkwkm9w9b3pzxhas0cv5dqsx2f84jd";
|
||||||
|
kat = "1b164bgwa7bbvw4177h8fxfh0fbh4bycfl9pkaa184dpjpaiqpia";
|
||||||
|
kat_old = "1mgff7sh93hdp3wh0ckikdggrdgf0syp75s39pickpbkp9ic41ai";
|
||||||
|
kaz = "0h37y0kb5lwsp5zpl7bvxg3ryqldl5hxfnardliwgyqgnag951vi";
|
||||||
|
khm = "0m7x1fynr18sid2kjjw8xa9ika0a0fc6a6hvc7ihizi47893hdfb";
|
||||||
|
kir = "09kxwqpqf6kxjii07qlqsiii83zk12rszp88xnzzjp8rjsnk78s3";
|
||||||
|
kor = "0nsr43fwrp9876ia1fc0zcviv2n8hw16n0wfh158vhygwglvy84m";
|
||||||
|
kor_vert = "1wmvdznmikk9fq7wdffvn22scxmcl26vjh26jhicqwxpc7kg4bh8";
|
||||||
|
kur = "0gbsf3ny3n5mgb30v54bz3crgnimdpg19jn633pbpzryzg3xhd25";
|
||||||
|
kur_ara = "1sbj0cczhi9q119fbzpi0m6zr9kjp3k76bv9w8szkv1wc5y4fng6";
|
||||||
|
lao = "1gvxlg8bw3a4c9izg3c2a2yl7q6rsy7z9y64axdw9a04pz2ndbl5";
|
||||||
|
lat = "0b7an3q3xrf9c55bhiqqh7l45ga88l0kwvkp1akmlr98piach3vr";
|
||||||
|
lav = "0fqsmy47cygamddxyjfrdgkfa9bvmrvf4csvppnkdvfzy6iiv0c2";
|
||||||
|
lit = "0wjgbkwc3bf5khdqali7ylnhhs4xvpx19m3zx2y9s27v2wjbb6kv";
|
||||||
|
ltz = "02zdxbniiqfl87fzsiaaqgldqfsv15z5hja1xhxnqpl0nds7shfc";
|
||||||
|
mal = "0a41ifz8i6lj2ywxjkwvymxzxahkz2cjv4apbrawdj1h42bn7frd";
|
||||||
|
mar = "00swhlh9bckvmlxanfmlw5j4n9qqhggl84bsq0827bmijsqwnl44";
|
||||||
|
mkd = "1bqfiwxlzfpz4fs4z5ci2wbv01qhrcayk1inmk3dxq7dsywx1ajg";
|
||||||
|
mlt = "1rmmga2aw88hr7q7cfr5cvhnsgnf1mi069d5k7z66zp4vzbl4zyz";
|
||||||
|
mon = "1jksvcavn9plsmjdmhg40mwq5rlvrd1b9gvghdjg7zkf6qqqynlh";
|
||||||
|
mri = "0jlfawx20s5clsnk82ndy3v2zidh4cfh4acrh8nindk21xmiwh5i";
|
||||||
|
msa = "0m7zs8anaa3l4z5f3xvbhs4syp41dp4all2yfpi1plyr0hy784an";
|
||||||
|
mya = "0hljm5haadlr4k5rhw4mvhkygcnrr709rvl7amz7av3nskmi8mb1";
|
||||||
|
nep = "1dhy0m2h6xfgwibf92iwxsn926dmrhfvkg9rafkdaqcr4pq6w563";
|
||||||
|
nld = "0bspf5bv1s7qzm6k4aqbpq91zvk4kxxhx5zv08w91xfsa1zpdxmi";
|
||||||
|
nor = "08majhc9m0fjvac50yq52ia2af9kscclimwkv403klnj4kgf8ndq";
|
||||||
|
oci = "1mzrw9gsdjrd1xj3zv7l5gzgjq5jrygxf8cfkz20d9lls0wj1xdv";
|
||||||
|
ori = "1sh42mjzb1hv6l6lljp3wifjmz7wrv818f9f16m8qjikwqxm0s78";
|
||||||
|
osd = "03mvfk1q1xp1klpf4bwna903rnp51bkqr3gl5hvxybvrc3l2m7z1";
|
||||||
|
pan = "0165kr94p6x5yxzs4p8sfppvg9cywp65ps0xaym5rqz9iashz32h";
|
||||||
|
pol = "0g0b71ms6ddgykmkna4mlavgzgmh9vj6s62fi8l4ja93nfpr37hp";
|
||||||
|
por = "132jbhzmcsq8skanm15bw2niyx9xpbrqr411wn7w9r5i3cvnlv01";
|
||||||
|
pus = "0iiglnkn478al11avigsav625pn7ifscycnxpj6fg8835vjww3xr";
|
||||||
|
que = "01vkmfi9idjwskv5pllmrxpil0v5h7f7rzv5viclxrzkmbvrz9b5";
|
||||||
|
ron = "0ag6vs0cn3sryavs1mfrallgdgi4h28114g7m61rhlhq0z484g0m";
|
||||||
|
rus = "1hippm3w5d73sh50r136x0xff2p6x128ry2x4fywf6xdpv1f46v8";
|
||||||
|
san = "1qlpqkr5c5wqcf1bvlipy72advqnvd4wm61vghmrj2sda8mx87sx";
|
||||||
|
sin = "097d2s4ma0zsq0ab5qs1ylgl9l5phw91fnpsvb7vjmz2mw3ic964";
|
||||||
|
slk = "0c97pp5iffhdzyma605x8q3rx1qq9pq2h6cai1kppaj92rz3ji9k";
|
||||||
|
slk_frak = "16ivsam1g18zlpw6pgidvzwb7h8rvw1s10nigs6yfwir8hjxsgki";
|
||||||
|
slv = "0644jlm55p0dg4zchgrashmbv36zb4x649ckmf2jkbss8bzx7wsf";
|
||||||
|
snd = "1i2mfi4414l3v9nznjy7959y2jcr8ymvf6w8zpyrw6nad4d1aak7";
|
||||||
|
spa = "15kwvr7cpcnlxm1ja1yyc022dmsd04gmk7h1p0df12aicsscn3qb";
|
||||||
|
spa_old = "1jq80c4mi3rmwnfhb3mbaaq0ci101mgbibkji9ala4l5dkcwjra3";
|
||||||
|
sqi = "19cvvixhz9906p4c9i2grpr386rbp5alp4fp14xm9nd81bmq4701";
|
||||||
|
srp = "1jd25n13h6vxsa3gzbj6q6mdh02rjl4qrd1bffr5psp33asqvw0l";
|
||||||
|
srp_latn = "1k7577mn3z0bm5ma9d8l14sn5wpvw50hq1nxwbc36yn3a5b3mhiz";
|
||||||
|
sun = "0lvlaw3jfvr7b5v09669kq8mm19jdsk9g5h09jsa2gr6fvsq11pa";
|
||||||
|
swa = "0qy9qc5pa1dzzqrh1z40gk845z1r4d2smywnzydknbb3n240lhz0";
|
||||||
|
swe = "1y56r7bgzw0pqkdylbah07r1f0v03sblkggiql8x5200rhaxvqi4";
|
||||||
|
syr = "1vfj5fsiv170jghryrxwyz0i9mdsaki1kglxrklkb2caal9kwy38";
|
||||||
|
tam = "0rhhdbnp0a2hpg00vpc0xyxcl2w36i1kn63mrvwx1f9q7m3y1fmf";
|
||||||
|
tat = "0a74rp8pyp4yivv2xcy2m8xgwch8scr3wmk1fzniwzf43fsrqp76";
|
||||||
|
tel = "0gcq8hxhxvilyh7x7kiikq07hllqysc8sfyr88gvpj4xi092h2bx";
|
||||||
|
tgk = "1458gk0k6gk49n8lr6fj7l7cwkhxn0lrhybzq10zl1ly7yzjhf67";
|
||||||
|
tgl = "12yscwckdy3l21mvsrj1021gxw2isjrg369r08rsf7lh96wn4wkn";
|
||||||
|
tha = "01f0j7gsc5slxaaql1gqbhk4wlwaxc29dlmfxwjzikxc46gjl0w8";
|
||||||
|
tir = "1q6w48b1jchv55713pq20inzjjdymh32fw8wxfaj1qi7bjqfb9fk";
|
||||||
|
ton = "06g60ga8rys8jaimqrvd4svh40qs1nz4bszdnf2hdv05ibryibdq";
|
||||||
|
tur = "0g9g1wvibp61qbriy8ys948yfkl88xk9g8f93bnq8w8dx029b6s8";
|
||||||
|
uig = "09sajx21lw3a3ph62dyqr10pjaq2mij10sdhkhvvjiydk34dn548";
|
||||||
|
ukr = "14q8ls8gkrg7c9pc6qzm6yf5ady3i3303vs1hz4d2idcl6yry334";
|
||||||
|
urd = "15vszhqraxqdcng1069p6i4xq3ck3904q207nkbap6dfpcpjig40";
|
||||||
|
uzb = "03hyw0vavmjirqs4wkd5r85g91w2avsyl14z624fhm3gc66pqg7n";
|
||||||
|
uzb_cyrl = "1433lrrp2lfgb1k0a4sc20b35b2jcl8f1z92vm2936y7w04xpaq7";
|
||||||
|
vie = "02k40d3wji74d1jgvkr3zrn9gpzlmp0lqhrrdmc48r2sgvnrnk8n";
|
||||||
|
yid = "0xnbvi04xv1qapqg72wa3bjwbw51pkdnyncjpjp37vn6dzh04l0z";
|
||||||
|
yor = "07w3aci52ng6i6nyp97q5zb2dqlj08w6im90y1h691qah1x44zlv";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook, pkgconfig
|
||||||
|
, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "tesseract-${version}";
|
||||||
|
version = "3.05.00";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "tesseract-ocr";
|
||||||
|
repo = "tesseract";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "11wrpcfl118wxsv2c3w2scznwb48c4547qml42s2bpdz079g8y30";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||||
|
buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
|
||||||
|
|
||||||
|
LIBLEPT_HEADERSDIR = "${leptonica}/include";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "OCR engine";
|
||||||
|
homepage = https://github.com/tesseract-ocr/tesseract;
|
||||||
|
license = stdenv.lib.licenses.asl20;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ viric earvstedt ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ stdenv, fetchFromGitHub, autoreconfHook, autoconf-archive, pkgconfig
|
||||||
|
, leptonica, libpng, libtiff, icu, pango, opencl-headers }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "tesseract-${version}";
|
||||||
|
version = "4.0.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "tesseract-ocr";
|
||||||
|
repo = "tesseract";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "1b5fi2vibc4kk9b30kkk4ais4bw8fbbv24bzr5709194hb81cav8";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig autoreconfHook autoconf-archive ];
|
||||||
|
buildInputs = [ leptonica libpng libtiff icu pango opencl-headers ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "OCR engine";
|
||||||
|
homepage = https://github.com/tesseract-ocr/tesseract;
|
||||||
|
license = stdenv.lib.licenses.asl20;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ viric earvstedt ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux ++ darwin;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
{ stdenv, makeWrapper, tesseractBase, languages
|
||||||
|
|
||||||
|
# A list of languages like [ "eng" "spa" … ] or `null` for all available languages
|
||||||
|
, enableLanguages ? null
|
||||||
|
|
||||||
|
# A list of files or a directory containing files
|
||||||
|
, tessdata ? (if enableLanguages == null then languages.all
|
||||||
|
else map (lang: languages.${lang}) enableLanguages)
|
||||||
|
|
||||||
|
# This argument is obsolete
|
||||||
|
, enableLanguagesHash ? null
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
passthru = { inherit tesseractBase languages tessdata; };
|
||||||
|
|
||||||
|
tesseractWithData = tesseractBase.overrideAttrs (_: {
|
||||||
|
inherit tesseractBase tessdata;
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
buildCommand = ''
|
||||||
|
makeWrapper {$tesseractBase,$out}/bin/tesseract --set-default TESSDATA_PREFIX $out/share/tessdata
|
||||||
|
|
||||||
|
# Recursively link include, share
|
||||||
|
cp -rs --no-preserve=mode $tesseractBase/{include,share} $out
|
||||||
|
|
||||||
|
cp -r --no-preserve=mode $tesseractBase/lib $out
|
||||||
|
# Fixup the store paths in lib so that the tessdata from this derivation is used.
|
||||||
|
if (( ''${#tesseractBase} != ''${#out} )); then
|
||||||
|
echo "Can't replace store paths due to differing lengths"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
find $out/lib -type f -exec sed -i "s|$tesseractBase|$out|g" {} \;
|
||||||
|
|
||||||
|
if [[ -d "$tessdata" ]]; then
|
||||||
|
ln -s $tessdata/* $out/share/tessdata
|
||||||
|
else
|
||||||
|
for lang in $tessdata; do
|
||||||
|
ln -s $lang $out/share/tessdata/''${lang#/nix/store*-}
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -e $out/share/tessdata/eng.traineddata ]]; then
|
||||||
|
# This is a bug in Tesseract's internal tessdata discovery mechanism
|
||||||
|
echo "eng.traineddata must be present in tessdata for Tesseract to work"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
tesseract = (if enableLanguages == [] then tesseractBase else tesseractWithData) // passthru;
|
||||||
|
in
|
||||||
|
if enableLanguagesHash == null then
|
||||||
|
tesseract
|
||||||
|
else
|
||||||
|
stdenv.lib.warn "Argument `enableLanguagesHash` is obsolete and can be removed."
|
||||||
|
tesseract
|
|
@ -1,24 +1,22 @@
|
||||||
{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase,
|
{ mkDerivation, lib, fetchFromGitHub, makeWrapper, qtbase,
|
||||||
qtdeclarative, qtsvg, qtx11extras, muparser, cmake, python3 }:
|
qtdeclarative, qtsvg, qtx11extras, muparser, cmake, python3,
|
||||||
|
qtcharts }:
|
||||||
|
|
||||||
let
|
|
||||||
pname = "albert";
|
|
||||||
version = "0.14.22";
|
|
||||||
in
|
|
||||||
mkDerivation rec {
|
mkDerivation rec {
|
||||||
name = "${pname}-${version}";
|
pname = "albert";
|
||||||
|
version = "0.15.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "albertlauncher";
|
owner = "albertlauncher";
|
||||||
repo = "albert";
|
repo = "albert";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0i9kss5szirmd0pzw3cm692kl9rhkan1zfywfqrjdf3i3b6914sg";
|
sha256 = "063z9yq6bsxcsqsw1n93ks5dzhzv6i252mjz1d5mxhxvgmqlfk0v";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake makeWrapper ];
|
nativeBuildInputs = [ cmake makeWrapper ];
|
||||||
|
|
||||||
buildInputs = [ qtbase qtdeclarative qtsvg qtx11extras muparser python3 ];
|
buildInputs = [ qtbase qtdeclarative qtsvg qtx11extras muparser python3 qtcharts ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
|
|
@ -6,13 +6,13 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.3.40";
|
version = "1.3.41";
|
||||||
pname = "flrig";
|
pname = "flrig";
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/fldigi/${name}.tar.gz";
|
url = "mirror://sourceforge/fldigi/${name}.tar.gz";
|
||||||
sha256 = "1wr7bb2577gha7y3a8m5w60m4xdv8m0199cj2c6349sgbds373w9";
|
sha256 = "0vh14azg3pppyg3fb7kf6q3ighw1ka9m60jf2dzsd77f4hidhqx4";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
{ stdenv
|
||||||
|
, fetchFromGitLab
|
||||||
|
, pkgconfig
|
||||||
|
, autoconf
|
||||||
|
, automake
|
||||||
|
, libtool
|
||||||
|
, mm-common
|
||||||
|
, intltool
|
||||||
|
, itstool
|
||||||
|
, doxygen
|
||||||
|
, graphviz
|
||||||
|
, makeFontsConf
|
||||||
|
, freefont_ttf
|
||||||
|
, boost
|
||||||
|
, libxmlxx3
|
||||||
|
, libxslt
|
||||||
|
, libgdamm
|
||||||
|
, libarchive
|
||||||
|
, libepc
|
||||||
|
, python3
|
||||||
|
, ncurses
|
||||||
|
, glibmm
|
||||||
|
, gtk3
|
||||||
|
, openssl
|
||||||
|
, gtkmm3
|
||||||
|
, goocanvasmm2
|
||||||
|
, evince
|
||||||
|
, isocodes
|
||||||
|
, gtksourceviewmm4
|
||||||
|
, postgresql
|
||||||
|
, gnome3
|
||||||
|
, gobject-introspection
|
||||||
|
, wrapGAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
gda = libgdamm.override {
|
||||||
|
mysqlSupport = true;
|
||||||
|
postgresSupport = true;
|
||||||
|
};
|
||||||
|
python = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
|
||||||
|
sphinx-build = python3.pkgs.sphinx.overrideAttrs (super: {
|
||||||
|
postFixup = super.postFixup or "" + ''
|
||||||
|
# Do not propagate Python
|
||||||
|
rm $out/nix-support/propagated-build-inputs
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
boost_python = boost.override { enablePython = true; inherit python; };
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "glom";
|
||||||
|
version = "unstable-2018-12-16";
|
||||||
|
|
||||||
|
outputs = [ "out" "lib" "dev" "doc" "devdoc" ];
|
||||||
|
|
||||||
|
src = fetchFromGitLab {
|
||||||
|
domain = "gitlab.gnome.org";
|
||||||
|
owner = "GNOME";
|
||||||
|
repo = pname;
|
||||||
|
rev = "fa5ff04f209f35bf3e97bc1c3eb1d1138d6172ce";
|
||||||
|
sha256 = "145hnk96xa4v35i3a3mbf3fnx4nlk8cksc0qhm7nrh8cnnrbdfgn";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgconfig
|
||||||
|
autoconf
|
||||||
|
automake
|
||||||
|
libtool
|
||||||
|
mm-common
|
||||||
|
intltool
|
||||||
|
gnome3.yelp-tools
|
||||||
|
itstool
|
||||||
|
doxygen
|
||||||
|
graphviz
|
||||||
|
sphinx-build
|
||||||
|
wrapGAppsHook
|
||||||
|
gobject-introspection # for setup hook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost_python
|
||||||
|
glibmm
|
||||||
|
gtk3
|
||||||
|
openssl
|
||||||
|
libxmlxx3
|
||||||
|
libxslt
|
||||||
|
gda
|
||||||
|
libarchive
|
||||||
|
libepc
|
||||||
|
python
|
||||||
|
ncurses # for python
|
||||||
|
gtkmm3
|
||||||
|
goocanvasmm2
|
||||||
|
evince
|
||||||
|
isocodes
|
||||||
|
python3.pkgs.pygobject3
|
||||||
|
gtksourceviewmm4
|
||||||
|
postgresql # for pg_config
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-boost-python=boost_python${stdenv.lib.versions.major python3.version}${stdenv.lib.versions.minor python3.version}"
|
||||||
|
];
|
||||||
|
|
||||||
|
makeFlags = [
|
||||||
|
"libdocdir=${placeholder "doc"}/share/doc/$(book_name)"
|
||||||
|
"devhelpdir=${placeholder "devdoc"}/share/devhelp/books/$(book_name)"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Fontconfig error: Cannot load default config file
|
||||||
|
FONTCONFIG_FILE = makeFontsConf {
|
||||||
|
fontDirectories = [ freefont_ttf ];
|
||||||
|
};
|
||||||
|
|
||||||
|
preFixup = ''
|
||||||
|
gappsWrapperArgs+=(
|
||||||
|
--prefix PYTHONPATH : "${placeholder "out"}/${python3.sitePackages}"
|
||||||
|
--set PYTHONHOME "${python}"
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "An easy-to-use database designer and user interface";
|
||||||
|
homepage = http://www.glom.org/;
|
||||||
|
license = [ licenses.lgpl2 licenses.gpl2 ];
|
||||||
|
maintainers = gnome3.maintainers;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -75,19 +75,21 @@ stdenv.mkDerivation rec {
|
||||||
cp ${src}/leptonica_mod/* src/
|
cp ${src}/leptonica_mod/* src/
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
tesseract_modded = tesseract.overrideAttrs (attrs: {
|
tesseract_modded = tesseract.override {
|
||||||
prePatch = ''
|
tesseractBase = tesseract.tesseractBase.overrideAttrs (_: {
|
||||||
cp ${src}/tesseract_mod/{ambigs.cpp,ccutil.h,ccutil.cpp} ccutil/
|
prePatch = ''
|
||||||
cp ${src}/tesseract_mod/dawg.cpp api/
|
cp ${src}/tesseract_mod/{ambigs.cpp,ccutil.h,ccutil.cpp} ccutil/
|
||||||
cp ${src}/tesseract_mod/{imagedata.cpp,tessdatamanager.cpp} ccstruct/
|
cp ${src}/tesseract_mod/dawg.cpp api/
|
||||||
cp ${src}/tesseract_mod/openclwrapper.h opencl/
|
cp ${src}/tesseract_mod/{imagedata.cpp,tessdatamanager.cpp} ccstruct/
|
||||||
cp ${src}/tesseract_mod/{tessedit.cpp,thresholder.cpp} ccmain/
|
cp ${src}/tesseract_mod/openclwrapper.h opencl/
|
||||||
cp ${src}/tesseract_mod/tess_lang_mod_edge.h cube/
|
cp ${src}/tesseract_mod/{tessedit.cpp,thresholder.cpp} ccmain/
|
||||||
cp ${src}/tesseract_mod/tesscapi.cpp api/
|
cp ${src}/tesseract_mod/tess_lang_mod_edge.h cube/
|
||||||
cp ${src}/include_mod/{tesseract.h,leptonica.h} api/
|
cp ${src}/tesseract_mod/tesscapi.cpp api/
|
||||||
'';
|
cp ${src}/include_mod/{tesseract.h,leptonica.h} api/
|
||||||
patches = [ ./tesseract.patch ];
|
'';
|
||||||
});
|
patches = [ ./tesseract.patch ];
|
||||||
|
});
|
||||||
|
};
|
||||||
in
|
in
|
||||||
[ zlib libpng ] ++
|
[ zlib libpng ] ++
|
||||||
optional enableGSL gsl ++
|
optional enableGSL gsl ++
|
||||||
|
|
|
@ -1,33 +1,36 @@
|
||||||
{ stdenv, lib, makeWrapper, fetchgit, pkgconfig, ninja, ocaml, findlib, mupdf
|
{ stdenv, lib, substituteAll, makeWrapper, fetchgit, ocaml, mupdf, libX11,
|
||||||
, gtk3, openjpeg, jbig2dec, mujs, xsel, openssl, freetype, ncurses }:
|
libGLU_combined, freetype, xclip }:
|
||||||
|
|
||||||
assert lib.versionAtLeast (lib.getVersion ocaml) "4.02";
|
assert lib.versionAtLeast (lib.getVersion ocaml) "4.07";
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "llpp-${version}";
|
name = "llpp-${version}";
|
||||||
version = "2018-03-02";
|
version = "30";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "git://repo.or.cz/llpp.git";
|
url = "git://repo.or.cz/llpp.git";
|
||||||
rev = "0ab1fbbf142b6df6d6bae782e3af2ec50f32dec9";
|
rev = "v${version}";
|
||||||
sha256 = "1h0hrmxwm7ripgp051788p8ad0q38dc9nvjx87mdwlkwk9qc0dis";
|
sha256 = "0iilpzf12hs0zky58j55l4y5dvzv7fc53nsrg324n9vka92mppvd";
|
||||||
fetchSubmodules = false;
|
fetchSubmodules = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig makeWrapper ninja ];
|
patches = (substituteAll {
|
||||||
buildInputs = [ ocaml findlib mupdf gtk3 jbig2dec openjpeg mujs openssl freetype ncurses ];
|
inherit version;
|
||||||
|
src = ./fix-build-bash.patch;
|
||||||
|
});
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
buildInputs = [ ocaml mupdf libX11 libGLU_combined freetype ];
|
||||||
|
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
sed -i -e 's+ocamlc --version+ocamlc -version+' build.sh
|
mkdir -p build/mupdf/thirdparty
|
||||||
sed -i -e 's+-I \$srcdir/mupdf/include -I \$srcdir/mupdf/thirdparty/freetype/include+-I ${freetype.dev}/include+' build.sh
|
ln -s ${freetype.dev} build/mupdf/thirdparty/freetype
|
||||||
sed -i -e 's+-lmupdf +-lfreetype -lz -lharfbuzz -ljbig2dec -lopenjp2 -ljpeg -lmupdf +' build.sh
|
|
||||||
sed -i -e 's+-L\$srcdir/mupdf/build/native ++' build.sh
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
sh ./build.sh build
|
bash ./build.bash build
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -35,14 +38,14 @@ stdenv.mkDerivation rec {
|
||||||
install build/llpp $out/bin
|
install build/llpp $out/bin
|
||||||
wrapProgram $out/bin/llpp \
|
wrapProgram $out/bin/llpp \
|
||||||
--prefix CAML_LD_LIBRARY_PATH ":" "$out/lib" \
|
--prefix CAML_LD_LIBRARY_PATH ":" "$out/lib" \
|
||||||
--prefix PATH ":" "${xsel}/bin"
|
--prefix PATH ":" "${xclip}/bin"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://repo.or.cz/w/llpp.git;
|
homepage = https://repo.or.cz/w/llpp.git;
|
||||||
description = "A MuPDF based PDF pager written in OCaml";
|
description = "A MuPDF based PDF pager written in OCaml";
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = with maintainers; [ pSub ];
|
maintainers = with maintainers; [ pSub enzime ];
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,88 @@
|
||||||
|
From cccadedfbcb6764a38382154838113a6b2fd4dee Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Hoang <enzime@users.noreply.github.com>
|
||||||
|
Date: Mon, 10 Dec 2018 15:08:01 +1100
|
||||||
|
Subject: [PATCH] Patch build.bash for nixpkgs
|
||||||
|
|
||||||
|
---
|
||||||
|
build.bash | 37 ++-----------------------------------
|
||||||
|
1 file changed, 2 insertions(+), 35 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/build.bash b/build.bash
|
||||||
|
index 1588011..72117d9 100755
|
||||||
|
--- a/build.bash
|
||||||
|
+++ b/build.bash
|
||||||
|
@@ -29,7 +29,6 @@ srcd="$(dirname $0)"
|
||||||
|
mudir=$outd/mupdf
|
||||||
|
muinc="-I $mudir/include -I $mudir/thirdparty/freetype/include"
|
||||||
|
|
||||||
|
-test -d "$mudir" || die muPDF not found, consult $(dirname $0)/BUILDING
|
||||||
|
|
||||||
|
mkdir -p $outd/{$wsid,lablGL}
|
||||||
|
:>$outd/ordered
|
||||||
|
@@ -39,12 +38,6 @@ isfresh() { test -r "$1.past" && . "$1.past" && test "$k" = "$2"; }
|
||||||
|
mbt=native
|
||||||
|
mulibs="$mudir/build/$mbt/libmupdf.a" # $mudir/build/$mbt/libmupdf-third.a
|
||||||
|
|
||||||
|
-keycmd="(cd $mudir && git describe --tags --dirty); digest $mulibs"
|
||||||
|
-isfresh "$mulibs" "$(eval $keycmd)" || (
|
||||||
|
- make -C "$mudir" build=$mbt -j $mjobs libs
|
||||||
|
- echo "k='$(eval $keycmd)'" >$mudir/build/$mbt/libmupdf.a.past
|
||||||
|
-) && vecho "fresh mupdf"
|
||||||
|
-
|
||||||
|
oincs() {
|
||||||
|
local i=
|
||||||
|
local incs1=
|
||||||
|
@@ -90,32 +83,6 @@ mflags() {
|
||||||
|
}
|
||||||
|
|
||||||
|
overs="$(ocamlc -vnum 2>/dev/null)" || overs=""
|
||||||
|
-test "$overs" = "4.07.0" || {
|
||||||
|
- url=https://caml.inria.fr/pub/distrib/ocaml-4.07/ocaml-4.07.0.tar.xz
|
||||||
|
- txz=$outd/$(basename $url)
|
||||||
|
- isfresh $txz $url || {
|
||||||
|
- executable_p() { command -v "$1" >/dev/null 2>&1; }
|
||||||
|
- if executable_p wget; then dl() { wget -q "$1" -O "$2"; }
|
||||||
|
- elif executable_p curl; then dl() { curl -L "$1" -o "$2"; }
|
||||||
|
- else die "no program to fetch remote urls found"
|
||||||
|
- fi
|
||||||
|
- dl $url $txz
|
||||||
|
- echo "k=$url" >$txz.past
|
||||||
|
- } && vecho "fresh $txz"
|
||||||
|
- absprefix=$(cd $outd &>/dev/null; pwd -P)
|
||||||
|
- export PATH=$absprefix/bin:$PATH
|
||||||
|
- isfresh $absprefix/bin/ocamlc "$url" || (
|
||||||
|
- tar xf $txz -C $outd
|
||||||
|
- bn=$(basename $url)
|
||||||
|
- cd $outd/${bn%.tar.xz}
|
||||||
|
- ./configure -prefix $absprefix \
|
||||||
|
- -no-graph -no-debugger -no-ocamldoc -no-native-compiler
|
||||||
|
- make -j $mjobs world
|
||||||
|
- make install
|
||||||
|
- echo "k='$url'" >$absprefix/bin/ocamlc.past
|
||||||
|
- ) && vecho "fresh ocamlc"
|
||||||
|
- overs=$(ocamlc -vnum 2>/dev/null)
|
||||||
|
-}
|
||||||
|
|
||||||
|
bocaml1() {
|
||||||
|
grep -q "$3" $outd/ordered || {
|
||||||
|
@@ -224,7 +191,7 @@ bobjc() {
|
||||||
|
} && vecho "fresh $o"
|
||||||
|
}
|
||||||
|
|
||||||
|
-ver=$(cd $srcd && git describe --tags --dirty) || ver=unknown
|
||||||
|
+ver=@version@
|
||||||
|
|
||||||
|
cmd="(. $srcd/genconfstr.sh >$outd/confstruct.ml)"
|
||||||
|
keycmd="digest $srcd/genconfstr.sh $outd/confstruct.ml"
|
||||||
|
@@ -278,7 +245,7 @@ for m in ml_gl ml_glarray ml_raw; do
|
||||||
|
done
|
||||||
|
|
||||||
|
libs="str.cma unix.cma"
|
||||||
|
-clibs="-L$mudir/build/$mbt -lmupdf -lmupdf-third -lpthread"
|
||||||
|
+clibs="-lmupdf -lfreetype -lpthread"
|
||||||
|
if $darwin; then
|
||||||
|
mcomp=$(ocamlc -config | grep bytecomp_c_co | { read _ c; echo $c; })
|
||||||
|
clibs="$clibs -framework Cocoa -framework OpenGL"
|
||||||
|
--
|
||||||
|
2.19.2
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pgmanage-${version}";
|
name = "pgmanage-${version}";
|
||||||
version = "10.3.1";
|
version = "11.0.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "pgManage";
|
owner = "pgManage";
|
||||||
repo = "pgManage";
|
repo = "pgManage";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0ym1arla9wfkmr5n6h6dfyd680vlnng5s5j5nyxi2gl2wxqqhxzz";
|
sha256 = "1a1dbc32b3y0ph8ydf800h6pz7dg6g1gxgid4gffk7k58xj0c5yf";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
patchPhase = ''
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.2.12";
|
version = "4.3.3";
|
||||||
|
|
||||||
binpath = stdenv.lib.makeBinPath
|
binpath = stdenv.lib.makeBinPath
|
||||||
[ cabextract
|
[ cabextract
|
||||||
|
@ -55,7 +55,7 @@ in stdenv.mkDerivation {
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
|
url = "https://www.playonlinux.com/script_files/PlayOnLinux/${version}/PlayOnLinux_${version}.tar.gz";
|
||||||
sha256 = "03k8v9dknc5hfrfzqw1nkpifz7wkixv3mvjl1vnp4fx8rj2xrjrq";
|
sha256 = "117xivwa87i2w66klplmwd5q7pfxcbrj2rjm11wl8iy5h3xpqkak";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "qmapshack-${version}";
|
name = "qmapshack-${version}";
|
||||||
version = "1.12.0";
|
version = "1.12.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://bitbucket.org/maproom/qmapshack/downloads/${name}.tar.gz";
|
url = "https://bitbucket.org/maproom/qmapshack/downloads/${name}.tar.gz";
|
||||||
sha256 = "0d5p60kq9pa2hfql4nr8p42n88lr42jrsryrsllvaj45b8b6kvih";
|
sha256 = "1d6n7xk0ksxb1fw43s5lb08vgxf6h93k3rb401cbka1inpyf2232";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
|
|
|
@ -19,7 +19,7 @@ in stdenv.mkDerivation {
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake pkgconfig ];
|
nativeBuildInputs = [ cmake pkgconfig ];
|
||||||
buildInputs = [ libusb ncurses numpy swig2 python ];
|
buildInputs = [ libusb ncurses numpy swig2 python makeWrapper ];
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DCMAKE_BUILD_TYPE=Release"
|
"-DCMAKE_BUILD_TYPE=Release"
|
||||||
|
@ -33,8 +33,8 @@ in stdenv.mkDerivation {
|
||||||
done
|
done
|
||||||
|
|
||||||
# Needed for at least the remote plugin server
|
# Needed for at least the remote plugin server
|
||||||
for file in out/bin/*; do
|
for file in $out/bin/*; do
|
||||||
${makeWrapper}/bin/wrapProgram "$file" \
|
wrapProgram "$file" \
|
||||||
--prefix SOAPY_SDR_PLUGIN_PATH : ${lib.makeSearchPath "lib/SoapySDR/modules0.6" extraPackages}
|
--prefix SOAPY_SDR_PLUGIN_PATH : ${lib.makeSearchPath "lib/SoapySDR/modules0.6" extraPackages}
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# This file is autogenerated from update.sh in the same directory.
|
# This file is autogenerated from update.sh in the same directory.
|
||||||
{
|
{
|
||||||
beta = {
|
beta = {
|
||||||
sha256 = "03ddfxxzh8pxil9n28y8nkzl8x0kb5bzzjy4mihg448dflh3anq2";
|
sha256 = "1xcdbf5yia3xm0kil0gyd1mlj3m902w1px3lzpdqv31mr2lzaz08";
|
||||||
sha256bin64 = "147lh1way8db0j0m6wbpfzmfsvvlsjb29cjgf7s9hljb00wqv6ay";
|
sha256bin64 = "0pcbz3201nyl07psdxwphb3z9shqj4crj16f97xclyvjnwpl1jnp";
|
||||||
version = "71.0.3578.80";
|
version = "72.0.3626.28";
|
||||||
};
|
};
|
||||||
dev = {
|
dev = {
|
||||||
sha256 = "0whw1kq5gd07k061ycfdn7bygahbl6zqa54wkz2lqh73yknbbnj4";
|
sha256 = "1vlpcafg3xx6bpnf74xs6ifqjbpb5bpxp10r55w4784yr57pmhq3";
|
||||||
sha256bin64 = "0hlfzzf7kx90jw0zin685c4haiv262hf9a4sj6fmb2yhj21hbp87";
|
sha256bin64 = "02y974zbxy1gbiv9q8hp7nfl0l5frn35ggmgc44g90pbry48h8rg";
|
||||||
version = "72.0.3622.0";
|
version = "73.0.3642.0";
|
||||||
};
|
};
|
||||||
stable = {
|
stable = {
|
||||||
sha256 = "03ddfxxzh8pxil9n28y8nkzl8x0kb5bzzjy4mihg448dflh3anq2";
|
sha256 = "0icxdg4fvz30jzq0xvl11zlwc9anb3lr9lb8sn1lqxr513isjmhw";
|
||||||
sha256bin64 = "1rnw3whn2aaxxb4w3s2nf0wb91qjrq099550j42wig7xa71j6rz4";
|
sha256bin64 = "07kiqx5bpk54il0ynxl61bs5yscxb470q2bw3sx6cxjbhmnvbcn2";
|
||||||
version = "71.0.3578.80";
|
version = "71.0.3578.98";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,54 +1,31 @@
|
||||||
{ stdenv, fetchurl, cmake, pkgconfig, intltool, vala_0_34, wrapGAppsHook
|
{ stdenv, fetchurl, cmake, ninja, pkgconfig, intltool, vala, wrapGAppsHook
|
||||||
, gtk3, webkitgtk, librsvg, libnotify, sqlite
|
, gtk3, webkitgtk, sqlite, gsettings-desktop-schemas, libsoup, glib-networking, gnome3
|
||||||
, glib-networking, gsettings-desktop-schemas, libsoup, pcre, gnome3
|
|
||||||
, libxcb, libpthreadstubs, libXdmcp, libxkbcommon, epoxy, at-spi2-core
|
|
||||||
, zeitgeistSupport ? false, zeitgeist ? null
|
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert zeitgeistSupport -> zeitgeist != null;
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "midori-${version}";
|
pname = "midori";
|
||||||
version = "0.5.11";
|
version = "7";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/midori-browser/core/releases/download/v${version}/midori-v${version}.0.tar.gz";
|
||||||
|
sha256 = "0ffdnjp55s0ci737vlhxikb2nihghwlb6mjcjzpgpnzi47vjqnwh";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
pkgconfig cmake ninja intltool vala wrapGAppsHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gtk3 webkitgtk sqlite gsettings-desktop-schemas gnome3.gcr
|
||||||
|
(libsoup.override { gnomeSupport = true; }) gnome3.libpeas
|
||||||
|
glib-networking
|
||||||
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Lightweight WebKitGTK+ web browser";
|
description = "Lightweight WebKitGTK+ web browser";
|
||||||
homepage = http://midori-browser.org;
|
homepage = https://www.midori-browser.org/;
|
||||||
license = with licenses; [ lgpl21Plus ];
|
license = with licenses; [ lgpl21Plus ];
|
||||||
platforms = with platforms; linux;
|
platforms = with platforms; linux;
|
||||||
maintainers = with maintainers; [ raskin ramkromberg ];
|
maintainers = with maintainers; [ raskin ramkromberg ];
|
||||||
};
|
};
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
urls = [
|
|
||||||
"${meta.homepage}/downloads/midori_${version}_all_.tar.bz2"
|
|
||||||
"http://mirrors-ru.go-parts.com/blfs/conglomeration/midori/midori_${version}_all_.tar.bz2"
|
|
||||||
];
|
|
||||||
name = "midori_${version}_all_.tar.bz2";
|
|
||||||
sha256 = "0gcwqkcyliqz10i33ww3wl02mmfnl7jzl2d493l4l53ipsb1l6cn";
|
|
||||||
};
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
pkgconfig wrapGAppsHook cmake intltool vala_0_34
|
|
||||||
];
|
|
||||||
|
|
||||||
buildInputs = [
|
|
||||||
gtk3 webkitgtk librsvg libnotify sqlite gsettings-desktop-schemas pcre gnome3.gcr
|
|
||||||
libxcb libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core
|
|
||||||
(libsoup.override {gnomeSupport = true;})
|
|
||||||
] ++ stdenv.lib.optionals zeitgeistSupport [
|
|
||||||
zeitgeist
|
|
||||||
];
|
|
||||||
|
|
||||||
cmakeFlags = [
|
|
||||||
"-DUSE_ZEITGEIST=${if zeitgeistSupport then "ON" else "OFF"}"
|
|
||||||
"-DHALF_BRO_INCOM_WEBKIT2=ON"
|
|
||||||
"-DUSE_GTK3=1"
|
|
||||||
];
|
|
||||||
|
|
||||||
NIX_LDFLAGS="-lX11";
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" --prefix GIO_EXTRA_MODULES : "${glib-networking.out}/lib/gio/modules")
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,20 +10,14 @@
|
||||||
assert withMediaPlayback -> gst_all_1 != null;
|
assert withMediaPlayback -> gst_all_1 != null;
|
||||||
|
|
||||||
let
|
let
|
||||||
pdfjs = stdenv.mkDerivation rec {
|
pdfjs = let
|
||||||
name = "pdfjs-${version}";
|
|
||||||
version = "1.10.100";
|
version = "1.10.100";
|
||||||
|
in
|
||||||
src = fetchzip {
|
fetchzip rec {
|
||||||
url = "https://github.com/mozilla/pdf.js/releases/download/${version}/${name}-dist.zip";
|
name = "pdfjs-${version}";
|
||||||
sha256 = "04df4cf6i6chnggfjn6m1z9vb89f01a0l9fj5rk21yr9iirq9rkq";
|
url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
|
||||||
stripRoot = false;
|
sha256 = "04df4cf6i6chnggfjn6m1z9vb89f01a0l9fj5rk21yr9iirq9rkq";
|
||||||
};
|
stripRoot = false;
|
||||||
|
|
||||||
buildCommand = ''
|
|
||||||
mkdir $out
|
|
||||||
cp -r $src $out
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
in python3Packages.buildPythonApplication rec {
|
in python3Packages.buildPythonApplication rec {
|
||||||
|
|
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
installFlags = [ "PREFIX=/" "DESTDIR=$(out)" ];
|
installFlags = [ "PREFIX=$(out)" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A simple web browser based on WebKit/GTK+";
|
description = "A simple web browser based on WebKit/GTK+";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ stdenv, fetchFromGitHub, go, removeReferencesTo }:
|
{ stdenv, fetchFromGitHub, buildGoPackage }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
buildGoPackage rec {
|
||||||
name = "cni-${version}";
|
name = "cni-${version}";
|
||||||
version = "0.6.0";
|
version = "0.6.0";
|
||||||
|
|
||||||
|
@ -11,29 +11,23 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "00ajs2r5r2z3l0vqwxrcwhjfc9px12qbcv5vnvs2mdipvvls1y2y";
|
sha256 = "00ajs2r5r2z3l0vqwxrcwhjfc9px12qbcv5vnvs2mdipvvls1y2y";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ removeReferencesTo go ];
|
goPackagePath = "github.com/containernetworking/cni";
|
||||||
|
|
||||||
GOCACHE = "off";
|
|
||||||
|
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
|
cd "go/src/${goPackagePath}"
|
||||||
patchShebangs build.sh
|
patchShebangs build.sh
|
||||||
./build.sh
|
./build.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
install -Dm555 bin/cnitool $bin/bin/cnitool
|
||||||
mv bin/cnitool $out/bin
|
|
||||||
'';
|
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "Container Network Interface - networking for Linux containers";
|
description = "Container Network Interface - networking for Linux containers";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
homepage = https://github.com/containernetworking/cni;
|
homepage = https://github.com/containernetworking/cni;
|
||||||
maintainers = with maintainers; [offline];
|
maintainers = with maintainers; [ offline vdemeester ];
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,9 @@ python3Packages.buildPythonApplication rec {
|
||||||
# Requires tox, hadoop, and google cloud
|
# Requires tox, hadoop, and google cloud
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
|
# This enables accessing modules stored in cwd
|
||||||
|
makeWrapperArgs = ["--prefix PYTHONPATH . :"];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = https://github.com/spotify/luigi;
|
homepage = https://github.com/spotify/luigi;
|
||||||
description = "Python package that helps you build complex pipelines of batch jobs";
|
description = "Python package that helps you build complex pipelines of batch jobs";
|
||||||
|
|
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
name = "pig-0.16.0";
|
name = "pig-0.17.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://apache/pig/${name}/${name}.tar.gz";
|
url = "mirror://apache/pig/${name}/${name}.tar.gz";
|
||||||
sha256 = "0p79grz5islnq195lv7pqdxb5l3v4y0k0w63602827qs70zpr508";
|
sha256 = "1wwpg0w47f49rnivn2d26vrxgyfl9gpqx3vmzbl5lhx6x5l3fqbd";
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://pig.apache.org/;
|
homepage = https://pig.apache.org/;
|
||||||
description = "High-level language for Apache Hadoop";
|
description = "High-level language for Apache Hadoop";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "terragrunt-${version}";
|
name = "terragrunt-${version}";
|
||||||
version = "0.17.3";
|
version = "0.17.4";
|
||||||
|
|
||||||
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
goPackagePath = "github.com/gruntwork-io/terragrunt";
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ buildGoPackage rec {
|
||||||
owner = "gruntwork-io";
|
owner = "gruntwork-io";
|
||||||
repo = "terragrunt";
|
repo = "terragrunt";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1b0fwql9nr00qpvcbsbdymxf1wrgr590gkms7yz3yirb4xfl3gl3";
|
sha256 = "13hlv0ydmv8gpzgg6bfr7rp89xfw1bkgd0j684armw8zq29cmv3a";
|
||||||
};
|
};
|
||||||
|
|
||||||
goDeps = ./deps.nix;
|
goDeps = ./deps.nix;
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{ lib, python
|
{ lib, python36 }:
|
||||||
, delugeSupport ? true, deluge ? null
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert delugeSupport -> deluge != null;
|
|
||||||
|
|
||||||
# Flexget have been a trouble maker in the past,
|
# Flexget have been a trouble maker in the past,
|
||||||
# if you see flexget breaking when updating packages, don't worry.
|
# if you see flexget breaking when updating packages, don't worry.
|
||||||
|
@ -10,17 +6,9 @@ assert delugeSupport -> deluge != null;
|
||||||
# -- Mic92
|
# -- Mic92
|
||||||
|
|
||||||
let
|
let
|
||||||
python' = python.override { inherit packageOverrides; };
|
python' = python36.override { inherit packageOverrides; };
|
||||||
|
|
||||||
packageOverrides = self: super: {
|
packageOverrides = self: super: {
|
||||||
sqlalchemy = super.sqlalchemy.overridePythonAttrs (old: rec {
|
|
||||||
version = "1.2.6";
|
|
||||||
src = old.src.override {
|
|
||||||
inherit version;
|
|
||||||
sha256 = "1nwylglh256mbwwnng6n6bzgxshyz18j12hw76sghbprp74hrc3w";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
guessit = super.guessit.overridePythonAttrs (old: rec {
|
guessit = super.guessit.overridePythonAttrs (old: rec {
|
||||||
version = "3.0.3";
|
version = "3.0.3";
|
||||||
src = old.src.override {
|
src = old.src.override {
|
||||||
|
@ -36,14 +24,16 @@ with python'.pkgs;
|
||||||
|
|
||||||
buildPythonApplication rec {
|
buildPythonApplication rec {
|
||||||
pname = "FlexGet";
|
pname = "FlexGet";
|
||||||
version = "2.17.14";
|
version = "2.17.20";
|
||||||
|
|
||||||
src = fetchPypi {
|
src = fetchPypi {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1wh12nspjzsgb0a7qp67s4k8wssbhhf500s8x8mx2smb1mgy4xzz";
|
sha256 = "a09ef9482ed54f7e96eb8b4d08c59687c5c43a3341c9d2675383693e6c3681c3";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
# build for the correct python version
|
||||||
|
substituteInPlace setup.cfg --replace $'[bdist_wheel]\npython-tag = py27' ""
|
||||||
# remove dependency constraints
|
# remove dependency constraints
|
||||||
sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt
|
sed 's/==\([0-9]\.\?\)\+//' -i requirements.txt
|
||||||
'';
|
'';
|
||||||
|
@ -52,25 +42,20 @@ buildPythonApplication rec {
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
|
# See https://github.com/Flexget/Flexget/blob/master/requirements.in
|
||||||
feedparser sqlalchemy pyyaml
|
feedparser sqlalchemy pyyaml
|
||||||
chardet beautifulsoup4 html5lib
|
beautifulsoup4 html5lib
|
||||||
PyRSS2Gen pynzb rpyc jinja2
|
PyRSS2Gen pynzb rpyc jinja2
|
||||||
jsonschema requests dateutil
|
requests dateutil jsonschema
|
||||||
pathpy guessit APScheduler
|
pathpy guessit APScheduler
|
||||||
terminaltables colorclass
|
terminaltables colorclass
|
||||||
cherrypy flask flask-restful
|
cherrypy flask flask-restful
|
||||||
flask-restplus flask-compress
|
flask-restplus flask-compress
|
||||||
flask_login flask-cors safe
|
flask_login flask-cors
|
||||||
pyparsing future zxcvbn-python
|
pyparsing zxcvbn-python future
|
||||||
werkzeug tempora cheroot rebulk
|
# Optional requirements
|
||||||
portend transmissionrpc aniso8601
|
deluge-client
|
||||||
babelfish certifi click futures
|
] ++ lib.optional (pythonOlder "3.4") pathlib;
|
||||||
idna itsdangerous markupsafe
|
|
||||||
plumbum pytz six tzlocal urllib3
|
|
||||||
webencodings werkzeug zxcvbn-python
|
|
||||||
backports_functools_lru_cache
|
|
||||||
] ++ lib.optional (pythonOlder "3.4") pathlib
|
|
||||||
++ lib.optional delugeSupport deluge;
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = https://flexget.com/;
|
homepage = https://flexget.com/;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ stable, branch, version, sha256Hash }:
|
{ stable, branch, version, sha256Hash }:
|
||||||
|
|
||||||
{ stdenv, python3Packages, fetchFromGitHub, fetchurl }:
|
{ stdenv, python36Packages, fetchFromGitHub, fetchurl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
pythonPackages = python3Packages;
|
pythonPackages = python36Packages;
|
||||||
async-timeout = (stdenv.lib.overrideDerivation pythonPackages.async-timeout
|
async-timeout = pythonPackages.async-timeout.overrideAttrs
|
||||||
(oldAttrs:
|
(oldAttrs:
|
||||||
rec {
|
rec {
|
||||||
pname = "async-timeout";
|
pname = "async-timeout";
|
||||||
|
@ -13,8 +13,8 @@ let
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
sha256 = "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0";
|
sha256 = "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0";
|
||||||
};
|
};
|
||||||
}));
|
});
|
||||||
aiohttp = (stdenv.lib.overrideDerivation pythonPackages.aiohttp
|
aiohttp = pythonPackages.aiohttp.overrideAttrs
|
||||||
(oldAttrs:
|
(oldAttrs:
|
||||||
rec {
|
rec {
|
||||||
pname = "aiohttp";
|
pname = "aiohttp";
|
||||||
|
@ -24,10 +24,9 @@ let
|
||||||
sha256 = "8adda6583ba438a4c70693374e10b60168663ffa6564c5c75d3c7a9055290964";
|
sha256 = "8adda6583ba438a4c70693374e10b60168663ffa6564c5c75d3c7a9055290964";
|
||||||
};
|
};
|
||||||
propagatedBuildInputs = [ async-timeout ]
|
propagatedBuildInputs = [ async-timeout ]
|
||||||
++ (with pythonPackages; [ attrs chardet multidict yarl ])
|
++ (with pythonPackages; [ attrs chardet multidict yarl idna-ssl ]);
|
||||||
++ stdenv.lib.optional (pythonPackages.pythonOlder "3.7") pythonPackages.idna-ssl;
|
});
|
||||||
}));
|
aiohttp-cors = pythonPackages.aiohttp-cors.overrideAttrs
|
||||||
aiohttp-cors = (stdenv.lib.overrideDerivation pythonPackages.aiohttp-cors
|
|
||||||
(oldAttrs:
|
(oldAttrs:
|
||||||
rec {
|
rec {
|
||||||
pname = "aiohttp-cors";
|
pname = "aiohttp-cors";
|
||||||
|
@ -41,7 +40,7 @@ let
|
||||||
++ stdenv.lib.optional
|
++ stdenv.lib.optional
|
||||||
(pythonPackages.pythonOlder "3.5")
|
(pythonPackages.pythonOlder "3.5")
|
||||||
pythonPackages.typing;
|
pythonPackages.typing;
|
||||||
}));
|
});
|
||||||
in pythonPackages.buildPythonPackage rec {
|
in pythonPackages.buildPythonPackage rec {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
pname = "gns3-server";
|
pname = "gns3-server";
|
||||||
|
@ -57,7 +56,7 @@ in pythonPackages.buildPythonPackage rec {
|
||||||
++ (with pythonPackages; [
|
++ (with pythonPackages; [
|
||||||
yarl aiohttp multidict
|
yarl aiohttp multidict
|
||||||
jinja2 psutil zipstream raven jsonschema typing
|
jinja2 psutil zipstream raven jsonschema typing
|
||||||
prompt_toolkit
|
(pythonPackages.callPackage ../../../development/python-modules/prompt_toolkit/1.nix {})
|
||||||
]);
|
]);
|
||||||
|
|
||||||
# Requires network access
|
# Requires network access
|
||||||
|
|
|
@ -13,9 +13,10 @@ stdenv.mkDerivation {
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
};
|
};
|
||||||
|
|
||||||
makeFlags = "PURPLE_LIBDIR=lib PURPLE_DATADIR=share/data DESTDIR=$$out";
|
makeFlags = [
|
||||||
preInstall = "mkdir -p \$out/share";
|
"PURPLE_LIBDIR=${placeholder "out"}/lib"
|
||||||
postInstall = "ln -s \$out/lib/purple-2 \$out/share/pidgin-msn-pecan";
|
"PURPLE_DATADIR=${placeholder "out"}/share/data"
|
||||||
|
];
|
||||||
|
|
||||||
buildInputs = [pidgin];
|
buildInputs = [pidgin];
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,13 +15,16 @@ stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ pidgin ];
|
buildInputs = [ pidgin ];
|
||||||
|
|
||||||
preConfigure = ''
|
postPatch = ''
|
||||||
sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile
|
sed -i 's|-I/usr/include/libpurple|$(shell pkg-config --cflags purple)|' Makefile
|
||||||
export DESTDIR=$out
|
|
||||||
export LIBDIR=/lib
|
|
||||||
export DATADIR=/share
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
makeFlags = [
|
||||||
|
"DESTDIR=/"
|
||||||
|
"LIBDIR=${placeholder "out"}/lib"
|
||||||
|
"DATADIR=${placeholder "out"}/share"
|
||||||
|
];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://github.com/dreadatour/pidgin-mra;
|
homepage = https://github.com/dreadatour/pidgin-mra;
|
||||||
description = "Mail.ru Agent plugin for Pidgin / libpurple";
|
description = "Mail.ru Agent plugin for Pidgin / libpurple";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, pidgin, unzip, glib, json-glib, nss, nspr, libgnome-keyring } :
|
{ stdenv, fetchFromGitHub, pidgin, glib, json-glib, nss, nspr, libgnome-keyring } :
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pidgin-opensteamworks-${version}";
|
name = "pidgin-opensteamworks-${version}";
|
||||||
|
@ -13,12 +13,11 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
preConfigure = "cd steam-mobile";
|
preConfigure = "cd steam-mobile";
|
||||||
installFlags = [
|
installFlags = [
|
||||||
"DESTDIR=$(out)"
|
"PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
|
||||||
"PLUGIN_DIR_PURPLE=/lib/purple-2"
|
"DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
|
||||||
"DATA_ROOT_DIR_PURPLE=/share"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [ pidgin unzip glib json-glib nss nspr libgnome-keyring ];
|
buildInputs = [ pidgin glib json-glib nss nspr libgnome-keyring ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/EionRobb/pidgin-opensteamworks;
|
homepage = https://github.com/EionRobb/pidgin-opensteamworks;
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "pidgin-skypeweb-${version}";
|
name = "pidgin-skypeweb-${version}";
|
||||||
version = "1.2.2";
|
version = "1.5";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "EionRobb";
|
owner = "EionRobb";
|
||||||
repo = "skype4pidgin";
|
repo = "skype4pidgin";
|
||||||
rev = "${version}";
|
rev = version;
|
||||||
sha256 = "1lxpz316jmns6i143v4j6sd6k0a4a54alw08rvwjckf2rig57lj2";
|
sha256 = "1bd9gd36yhrbrww0dvai9rnzxxj1c9sb4003c72wg27w12y47xfv";
|
||||||
};
|
};
|
||||||
|
|
||||||
setSourceRoot = ''
|
setSourceRoot = ''
|
||||||
|
@ -18,13 +18,8 @@ stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ pidgin json-glib ];
|
buildInputs = [ pidgin json-glib ];
|
||||||
|
|
||||||
makeFlags = [
|
PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
|
||||||
"PLUGIN_DIR_PURPLE=/lib/pidgin/"
|
PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
|
||||||
"DATA_ROOT_DIR_PURPLE=/share"
|
|
||||||
"DESTDIR=$(out)"
|
|
||||||
];
|
|
||||||
|
|
||||||
postInstall = "ln -s \$out/lib/pidgin \$out/share/pidgin-skypeweb";
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/EionRobb/skype4pidgin;
|
homepage = https://github.com/EionRobb/skype4pidgin;
|
||||||
|
|
|
@ -14,12 +14,8 @@ stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ pidgin json-glib ];
|
buildInputs = [ pidgin json-glib ];
|
||||||
|
|
||||||
makeFlags = [
|
PKG_CONFIG_PURPLE_PLUGINDIR = "${placeholder "out"}/lib/purple-2";
|
||||||
"DESTDIR=$(out)"
|
PKG_CONFIG_PURPLE_DATADIR = "${placeholder "out"}/share";
|
||||||
];
|
|
||||||
|
|
||||||
PKG_CONFIG_PURPLE_PLUGINDIR = "/lib/purple-2";
|
|
||||||
PKG_CONFIG_PURPLE_DATADIR = "/share";
|
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://github.com/EionRobb/purple-discord;
|
homepage = https://github.com/EionRobb/purple-discord;
|
||||||
|
|
|
@ -18,9 +18,8 @@ stdenv.mkDerivation rec {
|
||||||
hardeningDisable = [ "fortify" ]; # upstream compiles with -O0
|
hardeningDisable = [ "fortify" ]; # upstream compiles with -O0
|
||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
"DESTDIR=$(out)"
|
"PLUGIN_DIR_PURPLE=${placeholder "out"}/lib/purple-2"
|
||||||
"PLUGIN_DIR_PURPLE=/lib/pidgin/"
|
"DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
|
||||||
"DATA_ROOT_DIR_PURPLE=/share"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
let configFile = writeText "riot-config.json" conf; in
|
let configFile = writeText "riot-config.json" conf; in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name= "riot-web-${version}";
|
name= "riot-web-${version}";
|
||||||
version = "0.17.6";
|
version = "0.17.8";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||||
sha256 = "1y38fq0r9cxmazh9rjc5qy7fzwy81ad35k538d6rsfwz1y88ipdm";
|
sha256 = "0610h307q0zlyd0l7afrb8jv1r9gy9gc07zkjn33jpycwmpbwxbz";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
|
|
@ -4,8 +4,8 @@ let
|
||||||
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
|
mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
|
||||||
stableVersion = {
|
stableVersion = {
|
||||||
stable = true;
|
stable = true;
|
||||||
version = "1.5.2";
|
version = "1.5.4";
|
||||||
sha256Hash = "0kg1xw1b4zj5a2yf6x5r7wrpl7w0fs52s58w606n9gyx7kdcgkj8";
|
sha256Hash = "0a52m5qkvk01yl3za3k7pccjrqkr8gbxqnj5lnhh1im1pdxqwh4m";
|
||||||
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
|
# svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
|
||||||
archPatchesRevision = "415526";
|
archPatchesRevision = "415526";
|
||||||
archPatchesHash = "1lfzws90ab0vajhm5r64gyyqqc1g6a2ay0a1vkp0ah1iw5jh11ik";
|
archPatchesHash = "1lfzws90ab0vajhm5r64gyyqqc1g6a2ay0a1vkp0ah1iw5jh11ik";
|
||||||
|
|
|
@ -29,7 +29,9 @@ mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: libtgvoip.patch no-gtk2.patch
|
# TODO: libtgvoip.patch no-gtk2.patch
|
||||||
patches = [ "${archPatches}/tdesktop.patch" ]
|
patches = [
|
||||||
|
"${archPatches}/tdesktop.patch"
|
||||||
|
]
|
||||||
# TODO: Only required to work around a compiler bug.
|
# TODO: Only required to work around a compiler bug.
|
||||||
# This should be fixed in GCC 7.3.1 (or later?)
|
# This should be fixed in GCC 7.3.1 (or later?)
|
||||||
++ [ ./fix-internal-compiler-error.patch ];
|
++ [ ./fix-internal-compiler-error.patch ];
|
||||||
|
|
|
@ -2,13 +2,13 @@
|
||||||
|
|
||||||
python3Packages.buildPythonApplication rec {
|
python3Packages.buildPythonApplication rec {
|
||||||
name = "syncplay-${version}";
|
name = "syncplay-${version}";
|
||||||
version = "1.6.0";
|
version = "1.6.1";
|
||||||
|
|
||||||
format = "other";
|
format = "other";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = https://github.com/Syncplay/syncplay/archive/v1.6.0.tar.gz;
|
url = https://github.com/Syncplay/syncplay/archive/v1.6.1.tar.gz;
|
||||||
sha256 = "19x7b694p8b3qp578qk8q4g0pybhfjd4zk8rgrggz40s1yyfnwy5";
|
sha256 = "15rhbc3r7l012d330hb64p8bhcpy4ydy89iv34c34a1r554b8k97";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [ pyside twisted ];
|
propagatedBuildInputs = with python3Packages; [ pyside twisted ];
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
let
|
let
|
||||||
common = { stname, target, postInstall ? "" }:
|
common = { stname, target, postInstall ? "" }:
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
version = "0.14.52";
|
version = "0.14.54";
|
||||||
name = "${stname}-${version}";
|
name = "${stname}-${version}";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "syncthing";
|
owner = "syncthing";
|
||||||
repo = "syncthing";
|
repo = "syncthing";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1qzzbqfyjqlgzysyf6dr0xsm3gn35irmllxjjd94v169swvkk5kd";
|
sha256 = "0l73ka71l6gxv46wmlyzj8zhfpfj3vf6nv6x3x0z25ymr3wa2fza";
|
||||||
};
|
};
|
||||||
|
|
||||||
goPackagePath = "github.com/syncthing/syncthing";
|
goPackagePath = "github.com/syncthing/syncthing";
|
||||||
|
|
|
@ -5,33 +5,23 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (pythonPackages) python pygobject3;
|
inherit (pythonPackages) python pygobject3;
|
||||||
isopub = fetchurl { url = http://www.oasis-open.org/docbook/xml/4.5/ent/isopub.ent; sha256 = "073l492jz70chcadr2p7ssx7gz5hd731s2cazhxx4r845kilyr77"; };
|
|
||||||
isonum = fetchurl { url = http://www.oasis-open.org/docbook/xml/4.5/ent/isonum.ent; sha256 = "04b62dw2g3cj9i4vn9xyrsrlz8fpmmijq98dm0nrkky31bwbbrs3"; };
|
|
||||||
isogrk1 = fetchurl { url = http://www.oasis-open.org/docbook/xml/4.5/ent/isogrk1.ent; sha256 = "04b23anhs5wr62n4rgsjirzvw7rpjcsf8smz4ffzaqh3b0vw90vm"; };
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "gnumeric-1.12.43";
|
pname = "gnumeric";
|
||||||
|
version = "1.12.44";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/gnumeric/1.12/${name}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "87c9abd6260cf29401fa1e0fcce374e8c7bcd1986608e4049f6037c9d32b5fd5";
|
sha256 = "0147962c6ybdsj57rz95nla0rls7g545wc2n7pz59zmzyd5pksk0";
|
||||||
};
|
};
|
||||||
|
|
||||||
configureFlags = [ "--disable-component" ];
|
configureFlags = [ "--disable-component" ];
|
||||||
|
|
||||||
prePatch = ''
|
nativeBuildInputs = [ pkgconfig intltool bison itstool makeWrapper ];
|
||||||
substituteInPlace doc/C/gnumeric.xml \
|
|
||||||
--replace http://www.oasis-open.org/docbook/xml/4.5/ent/isopub.ent ${isopub} \
|
|
||||||
--replace http://www.oasis-open.org/docbook/xml/4.5/ent/isonum.ent ${isonum} \
|
|
||||||
--replace http://www.oasis-open.org/docbook/xml/4.5/ent/isogrk1.ent ${isogrk1}
|
|
||||||
'';
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
|
||||||
|
|
||||||
# ToDo: optional libgda, introspection?
|
# ToDo: optional libgda, introspection?
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
intltool bison
|
goffice gtk3 gnome3.defaultIconTheme
|
||||||
goffice gtk3 makeWrapper gnome3.defaultIconTheme
|
python pygobject3
|
||||||
python pygobject3 itstool
|
|
||||||
] ++ (with perlPackages; [ perl XMLParser ]);
|
] ++ (with perlPackages; [ perl XMLParser ]);
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -44,6 +34,12 @@ in stdenv.mkDerivation rec {
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
updateScript = gnome3.updateScript {
|
||||||
|
packageName = pname;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "The GNOME Office Spreadsheet";
|
description = "The GNOME Office Spreadsheet";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = stdenv.lib.licenses.gpl2Plus;
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
|
|
||||||
python2Packages.buildPythonApplication rec {
|
python2Packages.buildPythonApplication rec {
|
||||||
name = "zim-${version}";
|
name = "zim-${version}";
|
||||||
version = "0.68";
|
version = "0.69";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
|
url = "http://zim-wiki.org/downloads/${name}.tar.gz";
|
||||||
sha256 = "05fzb24a2s3pm89zb6gwa48wb925an5i652klx8yk9pn23h1h5fr";
|
sha256 = "1j04l1914iw87b0jd3r1czrh0q491fdgbqbi0biacxiri5q0i6a1";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = with python2Packages; [ pyGtkGlade pyxdg pygobject2 ];
|
propagatedBuildInputs = with python2Packages; [ pyGtkGlade pyxdg pygobject2 ];
|
||||||
|
@ -42,5 +42,6 @@ python2Packages.buildPythonApplication rec {
|
||||||
homepage = http://zim-wiki.org;
|
homepage = http://zim-wiki.org;
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ pSub ];
|
maintainers = with maintainers; [ pSub ];
|
||||||
|
broken = stdenv.isDarwin; # https://github.com/NixOS/nixpkgs/pull/52658#issuecomment-449565790
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "picard-tools-${version}";
|
name = "picard-tools-${version}";
|
||||||
version = "2.18.17";
|
version = "2.18.20";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
|
||||||
sha256 = "0ks7ymrjfya5h77hp0bqyipzdri0kf97c8wks32nvwkj821687zm";
|
sha256 = "0dx6fxn6d7mawkah242fdi9wm8pdzmm4m004fb9ak2fsvrs2m5pk";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
{ stdenv, fetchFromGitHub, pkgconfig, cmake, autoreconfHook,
|
||||||
|
glib, libzip, boost, fftw, qtbase,
|
||||||
|
libusb, makeWrapper, libsigrok4dsl, libsigrokdecode4dsl
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "dsview-${version}";
|
||||||
|
|
||||||
|
version = "0.99";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "DreamSourceLab";
|
||||||
|
repo = "DSView";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "189i3baqgn8k3aypalayss0g489xi0an9hmvyggvxmgg1cvcwka2";
|
||||||
|
};
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
export sourceRoot=$sourceRoot/DSView
|
||||||
|
'';
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# Fix absolute install paths
|
||||||
|
./install.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
boost fftw qtbase libusb libzip libsigrokdecode4dsl libsigrok4dsl
|
||||||
|
];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postFixup = ''
|
||||||
|
wrapProgram $out/bin/DSView --suffix QT_PLUGIN_PATH : \
|
||||||
|
${qtbase.bin}/${qtbase.qtPluginPrefix}
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A GUI program for supporting various instruments from DreamSourceLab, including logic analyzer, oscilloscope, etc";
|
||||||
|
homepage = http://www.dreamsourcelab.com/;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.bachp ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index c1c33e1..208a184 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -403,8 +403,8 @@ install(DIRECTORY res DESTINATION share/${PROJECT_NAME})
|
||||||
|
install(FILES icons/logo.png DESTINATION share/${PROJECT_NAME} RENAME logo.png)
|
||||||
|
install(FILES ../NEWS DESTINATION share/${PROJECT_NAME} RENAME NEWS)
|
||||||
|
install(FILES ../ug.pdf DESTINATION share/${PROJECT_NAME} RENAME ug.pdf)
|
||||||
|
-install(FILES DreamSourceLab.rules DESTINATION /etc/udev/rules.d/)
|
||||||
|
-install(FILES DSView.desktop DESTINATION /usr/share/applications/)
|
||||||
|
+install(FILES DreamSourceLab.rules DESTINATION etc/udev/rules.d/)
|
||||||
|
+install(FILES DSView.desktop DESTINATION share/applications/)
|
||||||
|
|
||||||
|
#===============================================================================
|
||||||
|
#= Packaging (handled by CPack)
|
|
@ -0,0 +1,28 @@
|
||||||
|
{ stdenv, pkgconfig, autoreconfHook,
|
||||||
|
glib, libzip, libserialport, check, libusb, libftdi,
|
||||||
|
systemd, alsaLib, dsview
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
inherit (dsview) version src;
|
||||||
|
|
||||||
|
name = "libsigrok4dsl-${version}";
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
export sourceRoot=$sourceRoot/libsigrok4DSL
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
glib libzip libserialport libusb libftdi systemd check alsaLib
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A fork of the sigrok library for usage with DSView";
|
||||||
|
homepage = http://www.dreamsourcelab.com/;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.bachp ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ stdenv, pkgconfig, autoreconfHook,
|
||||||
|
glib, check, python3, dsview
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
inherit (dsview) version src;
|
||||||
|
|
||||||
|
name = "libsigrokdecode4dsl-${version}";
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
export sourceRoot=$sourceRoot/libsigrokdecode4DSL
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
python3 glib check
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A fork of the sigrokdecode library for usage with DSView";
|
||||||
|
homepage = http://www.dreamsourcelab.com/;
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = [ maintainers.bachp ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "verilator-${version}";
|
name = "verilator-${version}";
|
||||||
version = "4.006";
|
version = "4.008";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.veripool.org/ftp/${name}.tgz";
|
url = "https://www.veripool.org/ftp/${name}.tgz";
|
||||||
sha256 = "0vnybpknf4llw3fw800ffiqj89ilbq06j8b2x4syj2gsrlnjvp1i";
|
sha256 = "1b0cj7bb2a3hrfaziix7p9idcpbygapdl0nrfr3pbdxxsgnzdknm";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
|
@ -44,5 +44,7 @@ stdenv.mkDerivation rec {
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
homepage = http://alviano.net/software/maxino/;
|
homepage = http://alviano.net/software/maxino/;
|
||||||
|
# See pkgs/applications/science/logic/glucose/default.nix
|
||||||
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,5 +46,8 @@ stdenv.mkDerivation rec {
|
||||||
license = stdenv.lib.licenses.mit;
|
license = stdenv.lib.licenses.mit;
|
||||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
|
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
# See pkgs/applications/science/logic/glucose/default.nix
|
||||||
|
# (The error is different due to glucose-fenv.patch, but the same)
|
||||||
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,5 +23,7 @@ stdenv.mkDerivation rec {
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = with maintainers; [ gebner ];
|
maintainers = with maintainers; [ gebner ];
|
||||||
|
# Build uses _FPU_EXTENDED macro
|
||||||
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,11 +8,11 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "R-3.5.1";
|
name = "R-3.5.2";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://cran.r-project.org/src/base/R-3/${name}.tar.gz";
|
url = "https://cran.r-project.org/src/base/R-3/${name}.tar.gz";
|
||||||
sha256 = "0463bff5eea0f3d93fa071f79c18d0993878fd4f2e18ae6cf22c1639d11457ed";
|
sha256 = "0qjvdic1qd5vndc4f0wjndpm0x18lbvbcc8nkix8saqgy8y8qgg5";
|
||||||
};
|
};
|
||||||
|
|
||||||
dontUseImakeConfigure = true;
|
dontUseImakeConfigure = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg }:
|
{ stdenv, lib, fetchFromGitHub, makeWrapper, git, gnupg, gawk }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.2.4";
|
version = "0.2.4";
|
||||||
|
@ -20,7 +20,7 @@ in stdenv.mkDerivation {
|
||||||
install -D git-secret $out/bin/git-secret
|
install -D git-secret $out/bin/git-secret
|
||||||
|
|
||||||
wrapProgram $out/bin/git-secret \
|
wrapProgram $out/bin/git-secret \
|
||||||
--prefix PATH : "${lib.makeBinPath [ git gnupg ]}"
|
--prefix PATH : "${lib.makeBinPath [ git gnupg gawk ]}"
|
||||||
|
|
||||||
mkdir $out/share
|
mkdir $out/share
|
||||||
cp -r man $out/share
|
cp -r man $out/share
|
||||||
|
|
|
@ -4,13 +4,13 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "git-repo-${version}";
|
name = "git-repo-${version}";
|
||||||
version = "1.13.0";
|
version = "1.13.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "android";
|
owner = "android";
|
||||||
repo = "tools_repo";
|
repo = "tools_repo";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0078nyz2j3ci9rs0h104xh046n0mcls3xcw5mysi2r7453xj8fkn";
|
sha256 = "09p0xv8x7mkmibri7rcl1k4dwh2gj3c7dipkrwrsir6hrwsispd1";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
|
@ -7,13 +7,13 @@ with stdenv.lib;
|
||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "gitea-${version}";
|
name = "gitea-${version}";
|
||||||
version = "1.6.0";
|
version = "1.6.2";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "go-gitea";
|
owner = "go-gitea";
|
||||||
repo = "gitea";
|
repo = "gitea";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "01nqf8pnpa0n72brqh499z15rys6f0ck7l2cnpbiqgg3kir8b21p";
|
sha256 = "1ijxpihdg8k6gs1xpim0iviqakvjadjzp0a5ki2czykilnyg8y85";
|
||||||
# Required to generate the same checksum on MacOS due to unicode encoding differences
|
# Required to generate the same checksum on MacOS due to unicode encoding differences
|
||||||
# More information: https://github.com/NixOS/nixpkgs/pull/48128
|
# More information: https://github.com/NixOS/nixpkgs/pull/48128
|
||||||
extraPostFetch = ''
|
extraPostFetch = ''
|
||||||
|
@ -33,7 +33,12 @@ buildGoPackage rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
buildFlags = optionalString sqliteSupport "-tags sqlite";
|
buildFlags = optional sqliteSupport "-tags sqlite";
|
||||||
|
buildFlagsArray = ''
|
||||||
|
-ldflags=
|
||||||
|
-X=main.Version=${version}
|
||||||
|
${optionalString sqliteSupport "-X=main.Tags=sqlite"}
|
||||||
|
'';
|
||||||
|
|
||||||
outputs = [ "bin" "out" "data" ];
|
outputs = [ "bin" "out" "data" ];
|
||||||
|
|
||||||
|
|
|
@ -49,8 +49,9 @@ in python2Packages.buildPythonApplication {
|
||||||
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
cp -v hgweb.cgi contrib/hgweb.wsgi $out/share/cgi-bin
|
||||||
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
chmod u+x $out/share/cgi-bin/hgweb.cgi
|
||||||
|
|
||||||
# install bash completion
|
# install bash/zsh completions
|
||||||
install -D -v contrib/bash_completion $out/share/bash-completion/completions/mercurial
|
install -v -m644 -D contrib/bash_completion $out/share/bash-completion/completions/_hg
|
||||||
|
install -v -m644 -D contrib/zsh_completion $out/share/zsh/site-functions/_hg
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
|
|
@ -2,11 +2,11 @@
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "src-${version}";
|
name = "src-${version}";
|
||||||
version = "1.18";
|
version = "1.22";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
|
url = "http://www.catb.org/~esr/src/${name}.tar.gz";
|
||||||
sha256 = "0n0skhvya8w2az45h2gsafxy8m2mvqas64nrgxifcmrzfv0rf26c";
|
sha256 = "0xvfg3aikr2jh09vjvxsha7day5br88chvirncr59ad40da1fils";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ python rcs git makeWrapper ];
|
buildInputs = [ python rcs git makeWrapper ];
|
||||||
|
|
|
@ -0,0 +1,78 @@
|
||||||
|
{ stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
|
||||||
|
, gettext, ncurses, systemd, perl
|
||||||
|
, enableSystemd ? true
|
||||||
|
, enableBidi ? true
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
|
||||||
|
version = "2.4.0";
|
||||||
|
|
||||||
|
name = "vdr-${version}";
|
||||||
|
|
||||||
|
mkPlugin = name: stdenv.mkDerivation {
|
||||||
|
name = "vdr-${name}-${version}";
|
||||||
|
inherit (vdr) src;
|
||||||
|
buildInputs = [ vdr ];
|
||||||
|
preConfigure = "cd PLUGINS/src/${name}";
|
||||||
|
installFlags = [ "DESTDIR=$(out)" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
vdr = stdenv.mkDerivation {
|
||||||
|
|
||||||
|
inherit name;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "ftp://ftp.tvdr.de/vdr/${name}.tar.bz2";
|
||||||
|
sha256 = "1klcgy9kr7n6z8d2c77j63bl8hvhx5qnqppg73f77004hzz4kbwk";
|
||||||
|
};
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
postPatch = "substituteInPlace Makefile --replace libsystemd-daemon libsystemd";
|
||||||
|
|
||||||
|
buildInputs = [ fontconfig libjpeg libcap freetype ]
|
||||||
|
++ stdenv.lib.optional enableSystemd systemd
|
||||||
|
++ stdenv.lib.optional enableBidi fribidi;
|
||||||
|
|
||||||
|
buildFlags = [ "vdr" "i18n" ]
|
||||||
|
++ stdenv.lib.optional enableSystemd "SDNOTIFY=1"
|
||||||
|
++ stdenv.lib.optional enableBidi "BIDI=1";
|
||||||
|
|
||||||
|
nativeBuildInputs = [ perl ];
|
||||||
|
|
||||||
|
# plugins uses the same build environment as vdr
|
||||||
|
propagatedNativeBuildInputs = [ pkgconfig gettext ];
|
||||||
|
|
||||||
|
installFlags = [
|
||||||
|
"DESTDIR=$(out)"
|
||||||
|
"PREFIX=" # needs to be empty, otherwise plugins try to install at same prefix
|
||||||
|
];
|
||||||
|
|
||||||
|
installTargets = [ "install-pc" "install-bin" "install-doc" "install-i18n"
|
||||||
|
"install-includes" ];
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mkdir -p $out/lib/vdr # only needed if vdr is started without any plugin
|
||||||
|
mkdir -p $out/share/vdr/conf
|
||||||
|
cp *.conf $out/share/vdr/conf
|
||||||
|
'';
|
||||||
|
|
||||||
|
outputs = [ "out" "dev" "man" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://www.tvdr.de/;
|
||||||
|
description = "Video Disc Recorder";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
in vdr // {
|
||||||
|
plugins = {
|
||||||
|
skincurses = (mkPlugin "skincurses").overrideAttrs(
|
||||||
|
oldAttr: { buildInputs = oldAttr.buildInputs ++ [ ncurses ]; });
|
||||||
|
} // (stdenv.lib.genAttrs [
|
||||||
|
"epgtableid0" "hello" "osddemo" "pictures" "servicedemo" "status" "svdrpdemo"
|
||||||
|
] mkPlugin);
|
||||||
|
}
|
|
@ -0,0 +1,318 @@
|
||||||
|
{ stdenv, fetchurl, fetchgit, vdr, ffmpeg_2, alsaLib, fetchFromGitHub
|
||||||
|
, libvdpau, libxcb, xcbutilwm, graphicsmagick, libav, pcre, xorgserver, ffmpeg
|
||||||
|
, libiconv, boost, libgcrypt, perl, utillinux, groff, libva, xorg }:
|
||||||
|
{
|
||||||
|
femon = stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "vdr-femon-2.4.0";
|
||||||
|
|
||||||
|
buildInputs = [ vdr ];
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/${name}.tgz";
|
||||||
|
sha256 = "1hra1xslj8s68zbyr8zdqp8yap0aj1p6rxyc6cwy1j122kwcnapp";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = "substituteInPlace Makefile --replace /bin/true true";
|
||||||
|
|
||||||
|
makeFlags = [ "DESTDIR=$(out)" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://www.saunalahti.fi/~rahrenbe/vdr/femon/;
|
||||||
|
description = "DVB Frontend Status Monitor plugin for VDR";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
vaapidevice = stdenv.mkDerivation {
|
||||||
|
|
||||||
|
name = "vdr-vaapidevice-0.7.0";
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
vdr libxcb xcbutilwm ffmpeg
|
||||||
|
alsaLib
|
||||||
|
libvdpau # vdpau
|
||||||
|
libva # va-api
|
||||||
|
] ++ (with xorg; [ libxcb libX11 ]);
|
||||||
|
|
||||||
|
makeFlags = [ "DESTDIR=$(out)" ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace softhddev.c --replace /usr/bin/X ${xorgserver}/bin/X
|
||||||
|
'';
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pesintta";
|
||||||
|
repo = "vdr-plugin-vaapidevice";
|
||||||
|
sha256 = "072y61fpkh3i2dragg0nsd4g3malgwxkwpdrb1ykdljyzf52s5hs";
|
||||||
|
rev = "c99afc23a53e6d91f9afaa99af59b30e68e626a8";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/pesintta/vdr-plugin-vaapidevice;
|
||||||
|
description = "VDR SoftHDDevice Plug-in (with VA-API VPP additions)";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
markad = stdenv.mkDerivation rec {
|
||||||
|
name = "vdr-markad-2017-03-13";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://projects.vdr-developer.org/vdr-plugin-markad.git";
|
||||||
|
sha256 = "0jvy70r8bcmbs7zdqilfz019z5xkz5c6rs57h1dsgv8v6x86c2i4";
|
||||||
|
rev = "ea2e182ec798375f3830f8b794e7408576f139ad";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ vdr libav ];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace command/Makefile --replace '$(DESTDIR)/usr' '$(DESTDIR)'
|
||||||
|
|
||||||
|
substituteInPlace plugin/markad.cpp \
|
||||||
|
--replace "/usr/bin" "$out/bin" \
|
||||||
|
--replace "/var/lib/markad" "$out/var/lib/markad"
|
||||||
|
|
||||||
|
substituteInPlace command/markad-standalone.cpp \
|
||||||
|
--replace "/var/lib/markad" "$out/var/lib/markad"
|
||||||
|
'';
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
mkdir -p $out/lib/vdr
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildFlags = [
|
||||||
|
"DESTDIR=$(out)"
|
||||||
|
"LIBDIR=$(out)/lib/vdr"
|
||||||
|
"VDRDIR=${vdr.dev}/include/vdr"
|
||||||
|
"LOCALEDIR=$(DESTDIR)/share/locale"
|
||||||
|
];
|
||||||
|
|
||||||
|
installFlags = buildFlags;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://projects.vdr-developer.org/projects/plg-markad;
|
||||||
|
description = "Ein Programm zum automatischen Setzen von Schnittmarken bei Werbeeinblendungen während einer Sendung.";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
epgsearch = stdenv.mkDerivation rec {
|
||||||
|
pname = "vdr-epgsearch";
|
||||||
|
version = "2.4.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/vdr-plugin-epgsearch-${version}.tar.bz2";
|
||||||
|
sha256 = "0xfgn17vicyjwdf0rbkrik4q16mnfi305d4wmi8f0qk825pa0z3y";
|
||||||
|
};
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
for f in *.sh; do
|
||||||
|
patchShebangs "$f"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
perl # for pod2man and pos2html
|
||||||
|
utillinux
|
||||||
|
groff
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
vdr
|
||||||
|
pcre
|
||||||
|
];
|
||||||
|
|
||||||
|
buildFlags = [
|
||||||
|
"SENDMAIL="
|
||||||
|
"REGEXLIB=pcre"
|
||||||
|
];
|
||||||
|
|
||||||
|
installFlags = [
|
||||||
|
"DESTDIR=$(out)"
|
||||||
|
];
|
||||||
|
|
||||||
|
outputs = [ "out" "man" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://winni.vdr-developer.org/epgsearch;
|
||||||
|
description = "Searchtimer and replacement of the VDR program menu";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
vnsiserver = let
|
||||||
|
name = "vnsiserver";
|
||||||
|
version = "1.8.0";
|
||||||
|
in stdenv.mkDerivation {
|
||||||
|
name = "vdr-${name}-${version}";
|
||||||
|
|
||||||
|
buildInputs = [ vdr ];
|
||||||
|
|
||||||
|
installFlags = [ "DESTDIR=$(out)" ];
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
repo = "vdr-plugin-${name}";
|
||||||
|
owner = "FernetMenta";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "0n7idpxqx7ayd63scl6xwdx828ik4kb2mwz0c30cfjnmnxxd45lw";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/FernetMenta/vdr-plugin-vnsiserver;
|
||||||
|
description = "VDR plugin to handle KODI clients.";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
text2skin = stdenv.mkDerivation rec {
|
||||||
|
name = "vdr-text2skin-1.3.4-20170702";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://projects.vdr-developer.org/vdr-plugin-text2skin.git";
|
||||||
|
sha256 = "19hkwmaw6nwak38bv6cm2vcjjkf4w5yjyxb98qq6zfjjh5wq54aa";
|
||||||
|
rev = "8f7954da2488ced734c30e7c2704b92a44e6e1ad";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ vdr graphicsmagick ];
|
||||||
|
|
||||||
|
buildFlags = [
|
||||||
|
"DESTDIR=$(out)"
|
||||||
|
"IMAGELIB=graphicsmagic"
|
||||||
|
"VDRDIR=${vdr.dev}/include/vdr"
|
||||||
|
"LOCALEDIR=$(DESTDIR)/share/locale"
|
||||||
|
"LIBDIR=$(DESTDIR)/lib/vdr"
|
||||||
|
];
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
mkdir -p $out/lib/vdr
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ":";
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://projects.vdr-developer.org/projects/plg-text2skin;
|
||||||
|
description = "VDR Text2Skin Plugin";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fritzbox = let
|
||||||
|
libconvpp = stdenv.mkDerivation {
|
||||||
|
name = "jowi24-libconv++-20130216";
|
||||||
|
propagatedBuildInputs = [ libiconv ];
|
||||||
|
CXXFLAGS = "-std=gnu++11 -Os";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jowi24";
|
||||||
|
repo = "libconvpp";
|
||||||
|
rev = "90769b2216bc66c5ea5e41a929236c20d367c63b";
|
||||||
|
sha256 = "0bf0dwxrzd42l84p8nxcsjdk1gvzlhad93nsbn97z6kr61n4cr33";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib $out/include/libconv++
|
||||||
|
cp source.a $out/lib/libconv++.a
|
||||||
|
cp *.h $out/include/libconv++
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
liblogpp = stdenv.mkDerivation {
|
||||||
|
name = "jowi24-liblogpp-20130216";
|
||||||
|
CXXFLAGS = "-std=gnu++11 -Os";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jowi24";
|
||||||
|
repo = "liblogpp";
|
||||||
|
rev = "eee4046d2ae440974bcc8ceec00b069f0a2c62b9";
|
||||||
|
sha256 = "01aqvwmwh5kk3mncqpim8llwha9gj5qq0c4cvqfn4h8wqi3d9l3p";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib $out/include/liblog++
|
||||||
|
cp source.a $out/lib/liblog++.a
|
||||||
|
cp *.h $out/include/liblog++
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
libnetpp = stdenv.mkDerivation {
|
||||||
|
name = "jowi24-libnet++-20180628";
|
||||||
|
CXXFLAGS = "-std=gnu++11 -Os";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jowi24";
|
||||||
|
repo = "libnetpp";
|
||||||
|
rev = "212847f0efaeffee8422059b8e202d844174aaf3";
|
||||||
|
sha256 = "0vjl6ld6aj25rzxm26yjv3h2gy7gp7qnbinpw6sf1shg2xim9x0b";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib $out/include/libnet++
|
||||||
|
cp source.a $out/lib/libnet++.a
|
||||||
|
cp *.h $out/include/libnet++
|
||||||
|
'';
|
||||||
|
buildInputs = [ boost liblogpp libconvpp ];
|
||||||
|
};
|
||||||
|
|
||||||
|
libfritzpp = stdenv.mkDerivation {
|
||||||
|
name = "jowi24-libfritzpp-20131201";
|
||||||
|
CXXFLAGS = "-std=gnu++11 -Os";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jowi24";
|
||||||
|
repo = "libfritzpp";
|
||||||
|
rev = "ca19013c9451cbac7a90155b486ea9959ced0f67";
|
||||||
|
sha256 = "0jk93zm3qzl9z96gfs6xl1c8ip8lckgbzibf7jay7dbgkg9kyjfg";
|
||||||
|
};
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib $out/include/libfritz++
|
||||||
|
cp source.a $out/lib/libfritz++.a
|
||||||
|
cp *.h $out/include/libfritz++
|
||||||
|
'';
|
||||||
|
propagatedBuildInputs = [ libgcrypt ];
|
||||||
|
buildInputs = [ boost liblogpp libconvpp libnetpp ];
|
||||||
|
};
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "vdr-fritzbox";
|
||||||
|
|
||||||
|
version = "1.5.3";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jowi24";
|
||||||
|
repo = "vdr-fritz";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "0wab1kyma9jzhm6j33cv9hd2a5d1334ghgdi2051nmr1bdcfcsw8";
|
||||||
|
};
|
||||||
|
|
||||||
|
postUnpack = ''
|
||||||
|
cp ${libfritzpp}/lib/* $sourceRoot/libfritz++
|
||||||
|
cp ${liblogpp}/lib/* $sourceRoot/liblog++
|
||||||
|
cp ${libnetpp}/lib/* $sourceRoot/libnet++
|
||||||
|
cp ${libconvpp}/lib/* $sourceRoot/libconv++
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [ vdr boost libconvpp libfritzpp libnetpp liblogpp ];
|
||||||
|
|
||||||
|
installFlags = [ "DESTDIR=$(out)" ];
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = https://github.com/jowi24/vdr-fritz;
|
||||||
|
description = "A plugin for VDR to access AVMs Fritz Box routers";
|
||||||
|
maintainers = [ maintainers.ck3d ];
|
||||||
|
license = licenses.gpl2;
|
||||||
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
{ symlinkJoin, lib, makeWrapper, vdr, plugins ? [] }:
|
||||||
|
symlinkJoin {
|
||||||
|
|
||||||
|
name = "vdr-with-plugins-${(builtins.parseDrvName vdr.name).version}";
|
||||||
|
|
||||||
|
paths = [ vdr ] ++ plugins;
|
||||||
|
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
postBuild = ''
|
||||||
|
wrapProgram $out/bin/vdr --add-flags "-L $out/lib/vdr --localedir=$out/share/locale"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with vdr.meta; {
|
||||||
|
inherit license homepage;
|
||||||
|
description = description
|
||||||
|
+ " (with plugins: "
|
||||||
|
+ lib.concatStrings (lib.intersperse ", " (map (x: ""+x.name) plugins))
|
||||||
|
+ ")";
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
{ fetchurl, stdenv }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "0.12.0";
|
||||||
|
baseurl = "https://github.com/firecracker-microvm/firecracker/releases/download";
|
||||||
|
|
||||||
|
fetchbin = name: sha256: fetchurl {
|
||||||
|
url = "${baseurl}/v${version}/${name}-v${version}";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
firecracker-bin = fetchbin "firecracker" "0jk9w5kagqp3w668c1x0g4yyahmy7696pm0bkhv066rrdpcqpw66";
|
||||||
|
jailer-bin = fetchbin "jailer" "1fcxzpnapnccklgbi4bis3f6c9fki2daxvzg9l7433vfqz2zbyjl";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "firecracker-${version}";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
srcs = [ firecracker-bin jailer-bin ];
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
install -D ${firecracker-bin} $out/bin/firecracker
|
||||||
|
install -D ${jailer-bin} $out/bin/jailer
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Secure, fast, minimal micro-container virtualization";
|
||||||
|
homepage = http://firecracker-microvm.io;
|
||||||
|
license = licenses.asl20;
|
||||||
|
platforms = [ "x86_64-linux" ];
|
||||||
|
maintainers = with maintainers; [ thoughtpolice ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,9 +1,9 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, removeReferencesTo, go-md2man
|
{ stdenv, lib, fetchFromGitHub, buildGoPackage, go-md2man
|
||||||
, go, pkgconfig, libapparmor, apparmor-parser, libseccomp }:
|
, pkgconfig, libapparmor, apparmor-parser, libseccomp, which }:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
buildGoPackage rec {
|
||||||
name = "runc-${version}";
|
name = "runc-${version}";
|
||||||
version = "1.0.0-rc6";
|
version = "1.0.0-rc6";
|
||||||
|
|
||||||
|
@ -14,32 +14,26 @@ stdenv.mkDerivation rec {
|
||||||
sha256 = "1jwacb8xnmx5fr86gximhbl9dlbdwj3rpf27hav9q1si86w5pb1j";
|
sha256 = "1jwacb8xnmx5fr86gximhbl9dlbdwj3rpf27hav9q1si86w5pb1j";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "man" ];
|
goPackagePath = "github.com/opencontainers/runc";
|
||||||
|
outputs = [ "bin" "out" "man" ];
|
||||||
|
|
||||||
hardeningDisable = ["fortify"];
|
hardeningDisable = ["fortify"];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig ];
|
||||||
buildInputs = [ removeReferencesTo go-md2man go libseccomp libapparmor apparmor-parser ];
|
buildInputs = [ go-md2man libseccomp libapparmor apparmor-parser which ];
|
||||||
|
|
||||||
makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor'';
|
makeFlags = ''BUILDTAGS+=seccomp BUILDTAGS+=apparmor'';
|
||||||
|
|
||||||
preConfigure = ''
|
buildPhase = ''
|
||||||
# Extract the source
|
cd go/src/${goPackagePath}
|
||||||
cd "$NIX_BUILD_TOP"
|
|
||||||
mkdir -p "go/src/github.com/opencontainers"
|
|
||||||
mv "$sourceRoot" "go/src/github.com/opencontainers/runc"
|
|
||||||
export GOPATH=$NIX_BUILD_TOP/go:$GOPATH
|
|
||||||
'';
|
|
||||||
|
|
||||||
preBuild = ''
|
|
||||||
cd go/src/github.com/opencontainers/runc
|
|
||||||
patchShebangs .
|
patchShebangs .
|
||||||
substituteInPlace libcontainer/apparmor/apparmor.go \
|
substituteInPlace libcontainer/apparmor/apparmor.go \
|
||||||
--replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
|
--replace /sbin/apparmor_parser ${apparmor-parser}/bin/apparmor_parser
|
||||||
|
make ${makeFlags} runc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
install -Dm755 runc $out/bin/runc
|
install -Dm755 runc $bin/bin/runc
|
||||||
|
|
||||||
# Include contributed man pages
|
# Include contributed man pages
|
||||||
man/md2man-all.sh -q
|
man/md2man-all.sh -q
|
||||||
|
@ -55,10 +49,6 @@ stdenv.mkDerivation rec {
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
|
||||||
find $out/bin -type f -exec remove-references-to -t ${go} '{}' +
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://runc.io/;
|
homepage = https://runc.io/;
|
||||||
description = "A CLI tool for spawning and running containers according to the OCI specification";
|
description = "A CLI tool for spawning and running containers according to the OCI specification";
|
||||||
|
|
|
@ -9,23 +9,22 @@ in
|
||||||
|
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
name = "dwm-status-${version}";
|
name = "dwm-status-${version}";
|
||||||
version = "1.4.1";
|
version = "1.5.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Gerschtli";
|
owner = "Gerschtli";
|
||||||
repo = "dwm-status";
|
repo = "dwm-status";
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "054lwgqpx3kbrnlsqbnd8fxsawvw3nl702pf56c7dcm4sfws15nl";
|
sha256 = "0mfzpyacd7i6ipbjwyl1zc0x3lnz0f4qqzsmsb07p047z95mw4v6";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper pkgconfig ];
|
nativeBuildInputs = [ makeWrapper pkgconfig ];
|
||||||
buildInputs = [ dbus gdk_pixbuf libnotify xorg.libX11 ];
|
buildInputs = [ dbus gdk_pixbuf libnotify xorg.libX11 ];
|
||||||
|
|
||||||
cargoSha256 = "0wbbbk99hxxlrkm389iqni9aqvw2laarwk6hhwsr4ph3y278qhi8";
|
cargoSha256 = "1cngcacsbzijs55k4kz8fidki3p8jblk3v5s21hjsn4glzjdbkmm";
|
||||||
|
|
||||||
postInstall = lib.optionalString enableAlsaUtils ''
|
postInstall = lib.optionalString enableAlsaUtils ''
|
||||||
wrapProgram $out/bin/dwm-status \
|
wrapProgram $out/bin/dwm-status --prefix "PATH" : "${binPath}"
|
||||||
--prefix "PATH" : "${binPath}"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue