mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 01:43:15 +00:00
Merge master into staging-next
This commit is contained in:
commit
de419917a3
@ -64,9 +64,6 @@ When the `Cargo.lock`, provided by upstream, is not in sync with the
|
||||
added in `cargoPatches` will also be prepended to the patches in `patches` at
|
||||
build-time.
|
||||
|
||||
To install crates with nix there is also an experimental project called
|
||||
[nixcrates](https://github.com/fractalide/nixcrates).
|
||||
|
||||
## Compiling Rust crates using Nix instead of Cargo
|
||||
|
||||
### Simple operation
|
||||
|
@ -435,12 +435,15 @@ rec {
|
||||
useful for deep-overriding.
|
||||
|
||||
Example:
|
||||
x = { a = { b = 4; c = 3; }; }
|
||||
overrideExisting x { a = { b = 6; d = 2; }; }
|
||||
=> { a = { b = 6; d = 2; }; }
|
||||
overrideExisting {} { a = 1; }
|
||||
=> {}
|
||||
overrideExisting { b = 2; } { a = 1; }
|
||||
=> { b = 2; }
|
||||
overrideExisting { a = 3; b = 2; } { a = 1; }
|
||||
=> { a = 1; b = 2; }
|
||||
*/
|
||||
overrideExisting = old: new:
|
||||
old // listToAttrs (map (attr: nameValuePair attr (attrByPath [attr] old.${attr} new)) (attrNames old));
|
||||
mapAttrs (name: value: new.${name} or value) old;
|
||||
|
||||
/* Get a package output.
|
||||
If no output is found, fallback to `.out` and then to the default.
|
||||
|
@ -48,7 +48,7 @@ rec {
|
||||
armv7a-android-prebuilt = rec {
|
||||
config = "armv7a-unknown-linux-androideabi";
|
||||
sdkVer = "24";
|
||||
ndkVer = "17";
|
||||
ndkVer = "17c";
|
||||
platform = platforms.armv7a-android;
|
||||
useAndroidPrebuilt = true;
|
||||
};
|
||||
@ -56,7 +56,7 @@ rec {
|
||||
aarch64-android-prebuilt = rec {
|
||||
config = "aarch64-unknown-linux-android";
|
||||
sdkVer = "24";
|
||||
ndkVer = "17";
|
||||
ndkVer = "17c";
|
||||
platform = platforms.aarch64-multiplatform;
|
||||
useAndroidPrebuilt = true;
|
||||
};
|
||||
|
7
lib/tests/check-eval.nix
Normal file
7
lib/tests/check-eval.nix
Normal file
@ -0,0 +1,7 @@
|
||||
# Throws an error if any of our lib tests fail.
|
||||
|
||||
let tests = [ "misc" "systems" ];
|
||||
all = builtins.concatLists (map (f: import (./. + "/${f}.nix")) tests);
|
||||
in if all == []
|
||||
then null
|
||||
else throw (builtins.toJSON all)
|
@ -236,6 +236,20 @@ runTests {
|
||||
};
|
||||
};
|
||||
|
||||
testOverrideExistingEmpty = {
|
||||
expr = overrideExisting {} { a = 1; };
|
||||
expected = {};
|
||||
};
|
||||
|
||||
testOverrideExistingDisjoint = {
|
||||
expr = overrideExisting { b = 2; } { a = 1; };
|
||||
expected = { b = 2; };
|
||||
};
|
||||
|
||||
testOverrideExistingOverride = {
|
||||
expr = overrideExisting { a = 3; b = 2; } { a = 1; };
|
||||
expected = { a = 1; b = 2; };
|
||||
};
|
||||
|
||||
# GENERATORS
|
||||
# these tests assume attributes are converted to lists
|
||||
|
@ -227,7 +227,7 @@
|
||||
name = "Andrew Morsillo";
|
||||
};
|
||||
AndersonTorres = {
|
||||
email = "torres.anderson.85@gmail.com";
|
||||
email = "torres.anderson.85@protonmail.com";
|
||||
github = "AndersonTorres";
|
||||
name = "Anderson Torres";
|
||||
};
|
||||
|
@ -19,6 +19,7 @@ starting VDE switch for network 1
|
||||
> startAll
|
||||
> testScript
|
||||
> $machine->succeed("touch /tmp/foo")
|
||||
> print($machine->succeed("pwd"), "\n") # Show stdout of command
|
||||
</screen>
|
||||
The function <command>testScript</command> executes the entire test script
|
||||
and drops you back into the test driver command line upon its completion.
|
||||
@ -33,8 +34,11 @@ $ nix-build nixos/tests/login.nix -A driver
|
||||
$ ./result/bin/nixos-run-vms
|
||||
</screen>
|
||||
The script <command>nixos-run-vms</command> starts the virtual machines
|
||||
defined by test. The root file system of the VMs is created on the fly and
|
||||
kept across VM restarts in
|
||||
<filename>./</filename><varname>hostname</varname><filename>.qcow2</filename>.
|
||||
defined by test.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The machine state is kept across VM restarts in
|
||||
<filename>/tmp/vm-state-</filename><varname>machinename</varname>.
|
||||
</para>
|
||||
</section>
|
||||
|
@ -108,7 +108,7 @@ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/virtualis
|
||||
<programlisting>
|
||||
$machine->start;
|
||||
$machine->waitForUnit("default.target");
|
||||
$machine->succeed("uname") =~ /Linux/;
|
||||
die unless $machine->succeed("uname") =~ /Linux/;
|
||||
</programlisting>
|
||||
The first line is actually unnecessary; machines are implicitly started when
|
||||
you first execute an action on them (such as <literal>waitForUnit</literal>
|
||||
|
@ -451,6 +451,14 @@ inherit (pkgs.nixos {
|
||||
deprecated. Use <literal>networking.networkmanager.dns</literal> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The Kubernetes package has been bumped to major version 1.11.
|
||||
Please consult the
|
||||
<link xlink:href="https://github.com/kubernetes/kubernetes/blob/release-1.11/CHANGELOG-1.11.md">release notes</link>
|
||||
for details on new features and api changes.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The option
|
||||
|
@ -329,6 +329,7 @@
|
||||
# kvm = 302; # unused
|
||||
# render = 303; # unused
|
||||
zeronet = 304;
|
||||
lirc = 305;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -618,6 +619,7 @@
|
||||
kvm = 302; # default udev rules from systemd requires these
|
||||
render = 303; # default udev rules from systemd requires these
|
||||
zeronet = 304;
|
||||
lirc = 305;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -272,6 +272,7 @@
|
||||
./services/hardware/interception-tools.nix
|
||||
./services/hardware/irqbalance.nix
|
||||
./services/hardware/lcd.nix
|
||||
./services/hardware/lirc.nix
|
||||
./services/hardware/nvidia-optimus.nix
|
||||
./services/hardware/pcscd.nix
|
||||
./services/hardware/pommed.nix
|
||||
@ -496,6 +497,7 @@
|
||||
./services/networking/dnsdist.nix
|
||||
./services/networking/dnsmasq.nix
|
||||
./services/networking/ejabberd.nix
|
||||
./services/networking/epmd.nix
|
||||
./services/networking/fakeroute.nix
|
||||
./services/networking/ferm.nix
|
||||
./services/networking/firefox/sync-server.nix
|
||||
@ -556,6 +558,7 @@
|
||||
./services/networking/nsd.nix
|
||||
./services/networking/ntopng.nix
|
||||
./services/networking/ntpd.nix
|
||||
./services/networking/nullidentdmod.nix
|
||||
./services/networking/nylon.nix
|
||||
./services/networking/ocserv.nix
|
||||
./services/networking/oidentd.nix
|
||||
@ -680,6 +683,7 @@
|
||||
./services/web-apps/atlassian/confluence.nix
|
||||
./services/web-apps/atlassian/crowd.nix
|
||||
./services/web-apps/atlassian/jira.nix
|
||||
./services/web-apps/codimd.nix
|
||||
./services/web-apps/frab.nix
|
||||
./services/web-apps/mattermost.nix
|
||||
./services/web-apps/nexus.nix
|
||||
|
85
nixos/modules/services/hardware/lirc.nix
Normal file
85
nixos/modules/services/hardware/lirc.nix
Normal file
@ -0,0 +1,85 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.lirc;
|
||||
in {
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
services.lirc = {
|
||||
|
||||
enable = mkEnableOption "LIRC daemon";
|
||||
|
||||
options = mkOption {
|
||||
type = types.lines;
|
||||
example = ''
|
||||
[lircd]
|
||||
nodaemon = False
|
||||
'';
|
||||
description = "LIRC default options descriped in man:lircd(8) (<filename>lirc_options.conf</filename>)";
|
||||
};
|
||||
|
||||
configs = mkOption {
|
||||
type = types.listOf types.lines;
|
||||
description = "Configurations for lircd to load, see man:lircd.conf(5) for details (<filename>lircd.conf</filename>)";
|
||||
};
|
||||
|
||||
extraArguments = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = "Extra arguments to lircd.";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
# Note: LIRC executables raises a warning, if lirc_options.conf do not exists
|
||||
environment.etc."lirc/lirc_options.conf".text = cfg.options;
|
||||
|
||||
environment.systemPackages = [ pkgs.lirc ];
|
||||
|
||||
systemd.sockets.lircd = {
|
||||
description = "LIRC daemon socket";
|
||||
wantedBy = [ "sockets.target" ];
|
||||
socketConfig = {
|
||||
ListenStream = "/run/lirc/lircd";
|
||||
SocketUser = "lirc";
|
||||
SocketMode = "0660";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.lircd = let
|
||||
configFile = pkgs.writeText "lircd.conf" (builtins.concatStringsSep "\n" cfg.configs);
|
||||
in {
|
||||
description = "LIRC daemon service";
|
||||
after = [ "network.target" ];
|
||||
|
||||
unitConfig.Documentation = [ "man:lircd(8)" ];
|
||||
|
||||
serviceConfig = {
|
||||
RuntimeDirectory = "lirc";
|
||||
ExecStart = ''
|
||||
${pkgs.lirc}/bin/lircd --nodaemon \
|
||||
${escapeShellArgs cfg.extraArguments} \
|
||||
${configFile}
|
||||
'';
|
||||
User = "lirc";
|
||||
};
|
||||
};
|
||||
|
||||
users.users.lirc = {
|
||||
uid = config.ids.uids.lirc;
|
||||
group = "lirc";
|
||||
description = "LIRC user for lircd";
|
||||
};
|
||||
|
||||
users.groups.lirc.gid = config.ids.gids.lirc;
|
||||
};
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
inherit (lib) mkIf mkOption singleton types;
|
||||
inherit (pkgs) coreutils exim;
|
||||
inherit (pkgs) coreutils;
|
||||
cfg = config.services.exim;
|
||||
in
|
||||
|
||||
@ -57,6 +57,16 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.exim;
|
||||
defaultText = "pkgs.exim";
|
||||
description = ''
|
||||
The Exim derivation to use.
|
||||
This can be used to enable features such as LDAP or PAM support.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
@ -74,7 +84,7 @@ in
|
||||
spool_directory = ${cfg.spoolDir}
|
||||
${cfg.config}
|
||||
'';
|
||||
systemPackages = [ exim ];
|
||||
systemPackages = [ cfg.package ];
|
||||
};
|
||||
|
||||
users.users = singleton {
|
||||
@ -89,14 +99,14 @@ in
|
||||
gid = config.ids.gids.exim;
|
||||
};
|
||||
|
||||
security.wrappers.exim.source = "${exim}/bin/exim";
|
||||
security.wrappers.exim.source = "${cfg.package}/bin/exim";
|
||||
|
||||
systemd.services.exim = {
|
||||
description = "Exim Mail Daemon";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartTriggers = [ config.environment.etc."exim.conf".source ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${exim}/bin/exim -bdf -q30m";
|
||||
ExecStart = "${cfg.package}/bin/exim -bdf -q30m";
|
||||
ExecReload = "${coreutils}/bin/kill -HUP $MAINPID";
|
||||
};
|
||||
preStart = ''
|
||||
|
@ -73,6 +73,24 @@ in {
|
||||
${cfg.home}/transcoders.
|
||||
'';
|
||||
};
|
||||
|
||||
jvmOptions = mkOption {
|
||||
description = ''
|
||||
Extra command line options for the JVM running AirSonic.
|
||||
Useful for sending jukebox output to non-default alsa
|
||||
devices.
|
||||
'';
|
||||
default = [
|
||||
];
|
||||
type = types.listOf types.str;
|
||||
example = [
|
||||
"-Djavax.sound.sampled.Clip='#CODEC [plughw:1,0]'"
|
||||
"-Djavax.sound.sampled.Port='#Port CODEC [hw:1]'"
|
||||
"-Djavax.sound.sampled.SourceDataLine='#CODEC [plughw:1,0]'"
|
||||
"-Djavax.sound.sampled.TargetDataLine='#CODEC [plughw:1,0]'"
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
@ -98,6 +116,7 @@ in {
|
||||
-Dserver.port=${toString cfg.port} \
|
||||
-Dairsonic.contextPath=${cfg.contextPath} \
|
||||
-Djava.awt.headless=true \
|
||||
${toString cfg.jvmOptions} \
|
||||
-verbose:gc \
|
||||
-jar ${pkgs.airsonic}/webapps/airsonic.war
|
||||
'';
|
||||
|
@ -8,7 +8,6 @@ let
|
||||
ddConf = {
|
||||
dd_url = "https://app.datadoghq.com";
|
||||
skip_ssl_validation = "no";
|
||||
api_key = "";
|
||||
confd_path = "/etc/datadog-agent/conf.d";
|
||||
additional_checksd = "/etc/datadog-agent/checks.d";
|
||||
use_dogstatsd = true;
|
||||
@ -16,6 +15,7 @@ let
|
||||
// optionalAttrs (cfg.logLevel != null) { log_level = cfg.logLevel; }
|
||||
// optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }
|
||||
// optionalAttrs (cfg.tags != null ) { tags = concatStringsSep ", " cfg.tags; }
|
||||
// optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
|
||||
// cfg.extraConfig;
|
||||
|
||||
# Generate Datadog configuration files for each configured checks.
|
||||
@ -125,6 +125,13 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
enableLiveProcessCollection = mkOption {
|
||||
description = ''
|
||||
Whether to enable the live process collection agent.
|
||||
'';
|
||||
default = false;
|
||||
type = types.bool;
|
||||
};
|
||||
checks = mkOption {
|
||||
description = ''
|
||||
Configuration for all Datadog checks. Keys of this attribute
|
||||
@ -229,6 +236,15 @@ in {
|
||||
path = [ datadogPkg pkgs.python pkgs.sysstat pkgs.procps pkgs.jdk ];
|
||||
serviceConfig.ExecStart = "${datadogPkg}/bin/dd-jmxfetch";
|
||||
});
|
||||
|
||||
datadog-process-agent = lib.mkIf cfg.enableLiveProcessCollection (makeService {
|
||||
description = "Datadog Live Process Agent";
|
||||
path = [ ];
|
||||
script = ''
|
||||
export DD_API_KEY=$(head -n 1 ${cfg.apiKeyFile})
|
||||
${pkgs.datadog-process-agent}/bin/agent --config /etc/datadog-agent/datadog.yaml
|
||||
'';
|
||||
});
|
||||
};
|
||||
|
||||
environment.etc = etcfiles;
|
||||
|
56
nixos/modules/services/networking/epmd.nix
Normal file
56
nixos/modules/services/networking/epmd.nix
Normal file
@ -0,0 +1,56 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.epmd;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
###### interface
|
||||
options.services.epmd = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable socket activation for Erlang Port Mapper Daemon (epmd),
|
||||
which acts as a name server on all hosts involved in distributed
|
||||
Erlang computations.
|
||||
'';
|
||||
};
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.erlang;
|
||||
description = ''
|
||||
The Erlang package to use to get epmd binary. That way you can re-use
|
||||
an Erlang runtime that is already installed for other purposes.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
config = mkIf cfg.enable {
|
||||
systemd.sockets.epmd = rec {
|
||||
description = "Erlang Port Mapper Daemon Activation Socket";
|
||||
wantedBy = [ "sockets.target" ];
|
||||
before = wantedBy;
|
||||
socketConfig = {
|
||||
ListenStream = "4369";
|
||||
Accept = "false";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.epmd = {
|
||||
description = "Erlang Port Mapper Daemon";
|
||||
after = [ "network.target" ];
|
||||
requires = [ "epmd.socket" ];
|
||||
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
ExecStart = "${cfg.package}/bin/epmd -systemd";
|
||||
Type = "notify";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
34
nixos/modules/services/networking/nullidentdmod.nix
Normal file
34
nixos/modules/services/networking/nullidentdmod.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ config, lib, pkgs, ... }: with lib; let
|
||||
cfg = config.services.nullidentdmod;
|
||||
|
||||
in {
|
||||
options.services.nullidentdmod = with types; {
|
||||
enable = mkEnableOption "Enable the nullidentdmod identd daemon";
|
||||
|
||||
userid = mkOption {
|
||||
type = nullOr str;
|
||||
description = "User ID to return. Set to null to return a random string each time.";
|
||||
default = null;
|
||||
example = "alice";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.sockets.nullidentdmod = {
|
||||
description = "Socket for identd (NullidentdMod)";
|
||||
listenStreams = [ "113" ];
|
||||
socketConfig.Accept = true;
|
||||
wantedBy = [ "sockets.target" ];
|
||||
};
|
||||
|
||||
systemd.services."nullidentdmod@" = {
|
||||
description = "NullidentdMod service";
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
ExecStart = "${pkgs.nullidentdmod}/bin/nullidentdmod${optionalString (cfg.userid != null) " ${cfg.userid}"}";
|
||||
StandardInput = "socket";
|
||||
StandardOutput = "socket";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -208,7 +208,7 @@ in
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to enable tor transaprent proxy";
|
||||
description = "Whether to enable tor transparent proxy";
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
|
958
nixos/modules/services/web-apps/codimd.nix
Normal file
958
nixos/modules/services/web-apps/codimd.nix
Normal file
@ -0,0 +1,958 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.codimd;
|
||||
|
||||
prettyJSON = conf:
|
||||
pkgs.runCommand "codimd-config.json" { } ''
|
||||
echo '${builtins.toJSON conf}' | ${pkgs.jq}/bin/jq \
|
||||
'{production:del(.[]|nulls)|del(.[][]?|nulls)}' > $out
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.services.codimd = {
|
||||
enable = mkEnableOption "the CodiMD Markdown Editor";
|
||||
|
||||
groups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
description = ''
|
||||
Groups to which the codimd user should be added.
|
||||
'';
|
||||
};
|
||||
|
||||
workDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/codimd";
|
||||
description = ''
|
||||
Working directory for the CodiMD service.
|
||||
'';
|
||||
};
|
||||
|
||||
configuration = {
|
||||
debug = mkEnableOption "debug mode";
|
||||
domain = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "codimd.org";
|
||||
description = ''
|
||||
Domain name for the CodiMD instance.
|
||||
'';
|
||||
};
|
||||
urlPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/url/path/to/codimd";
|
||||
description = ''
|
||||
Path under which CodiMD is accessible.
|
||||
'';
|
||||
};
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = ''
|
||||
Address to listen on.
|
||||
'';
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 3000;
|
||||
example = "80";
|
||||
description = ''
|
||||
Port to listen on.
|
||||
'';
|
||||
};
|
||||
path = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/run/codimd.sock";
|
||||
description = ''
|
||||
Specify where a UNIX domain socket should be placed.
|
||||
'';
|
||||
};
|
||||
allowOrigin = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "localhost" "codimd.org" ];
|
||||
description = ''
|
||||
List of domains to whitelist.
|
||||
'';
|
||||
};
|
||||
useSSL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable to use SSL server. This will also enable
|
||||
<option>protocolUseSSL</option>.
|
||||
'';
|
||||
};
|
||||
hsts = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wheter to enable HSTS if HTTPS is also enabled.
|
||||
'';
|
||||
};
|
||||
maxAgeSeconds = mkOption {
|
||||
type = types.int;
|
||||
default = 31536000;
|
||||
description = ''
|
||||
Max duration for clients to keep the HSTS status.
|
||||
'';
|
||||
};
|
||||
includeSubdomains = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to include subdomains in HSTS.
|
||||
'';
|
||||
};
|
||||
preload = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to allow preloading of the site's HSTS status.
|
||||
'';
|
||||
};
|
||||
};
|
||||
csp = mkOption {
|
||||
type = types.nullOr types.attrs;
|
||||
default = null;
|
||||
example = literalExample ''
|
||||
{
|
||||
enable = true;
|
||||
directives = {
|
||||
scriptSrc = "trustworthy.scripts.example.com";
|
||||
};
|
||||
upgradeInsecureRequest = "auto";
|
||||
addDefaults = true;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Specify the Content Security Policy which is passed to Helmet.
|
||||
For configuration details see <link xlink:href="https://helmetjs.github.io/docs/csp/"
|
||||
>https://helmetjs.github.io/docs/csp/</link>.
|
||||
'';
|
||||
};
|
||||
protocolUseSSL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable to use TLS for resource paths.
|
||||
This only applies when <option>domain</option> is set.
|
||||
'';
|
||||
};
|
||||
urlAddPort = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable to add the port to callback URLs.
|
||||
This only applies when <option>domain</option> is set
|
||||
and only for ports other than 80 and 443.
|
||||
'';
|
||||
};
|
||||
useCDN = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to use CDN resources or not.
|
||||
'';
|
||||
};
|
||||
allowAnonymous = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to allow anonymous usage.
|
||||
'';
|
||||
};
|
||||
allowAnonymousEdits = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to allow guests to edit existing notes with the `freely' permission,
|
||||
when <option>allowAnonymous</option> is enabled.
|
||||
'';
|
||||
};
|
||||
allowFreeURL = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to allow note creation by accessing a nonexistent note URL.
|
||||
'';
|
||||
};
|
||||
defaultPermission = mkOption {
|
||||
type = types.enum [ "freely" "editable" "limited" "locked" "private" ];
|
||||
default = "editable";
|
||||
description = ''
|
||||
Default permissions for notes.
|
||||
This only applies for signed-in users.
|
||||
'';
|
||||
};
|
||||
dbURL = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = ''
|
||||
postgres://user:pass@host:5432/dbname
|
||||
'';
|
||||
description = ''
|
||||
Specify which database to use.
|
||||
CodiMD supports mysql, postgres, sqlite and mssql.
|
||||
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
|
||||
https://sequelize.readthedocs.io/en/v3/</link> for more information.
|
||||
Note: This option overrides <option>db</option>.
|
||||
'';
|
||||
};
|
||||
db = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
example = literalExample ''
|
||||
{
|
||||
dialect = "sqlite";
|
||||
storage = "/var/lib/codimd/db.codimd.sqlite";
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Specify the configuration for sequelize.
|
||||
CodiMD supports mysql, postgres, sqlite and mssql.
|
||||
See <link xlink:href="https://sequelize.readthedocs.io/en/v3/">
|
||||
https://sequelize.readthedocs.io/en/v3/</link> for more information.
|
||||
Note: This option overrides <option>db</option>.
|
||||
'';
|
||||
};
|
||||
sslKeyPath= mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/codimd.key";
|
||||
description = ''
|
||||
Path to the SSL key. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
};
|
||||
sslCertPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/codimd.crt";
|
||||
description = ''
|
||||
Path to the SSL cert. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
};
|
||||
sslCAPath = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "/var/lib/codimd/ca.crt" ];
|
||||
description = ''
|
||||
SSL ca chain. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
};
|
||||
dhParamPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
example = "/var/lib/codimd/dhparam.pem";
|
||||
description = ''
|
||||
Path to the SSL dh params. Needed when <option>useSSL</option> is enabled.
|
||||
'';
|
||||
};
|
||||
tmpPath = mkOption {
|
||||
type = types.str;
|
||||
default = "/tmp";
|
||||
description = ''
|
||||
Path to the temp directory CodiMD should use.
|
||||
Note that <option>serviceConfig.PrivateTmp</option> is enabled for
|
||||
the CodiMD systemd service by default.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
defaultNotePath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "./public/default.md";
|
||||
description = ''
|
||||
Path to the default Note file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
docsPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "./public/docs";
|
||||
description = ''
|
||||
Path to the docs directory.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
indexPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "./public/views/index.ejs";
|
||||
description = ''
|
||||
Path to the index template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
hackmdPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = "./public/views/hackmd.ejs";
|
||||
description = ''
|
||||
Path to the hackmd template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
errorPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
defaultText = "./public/views/error.ejs";
|
||||
description = ''
|
||||
Path to the error template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
prettyPath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
defaultText = "./public/views/pretty.ejs";
|
||||
description = ''
|
||||
Path to the pretty template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
slidePath = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
defaultText = "./public/views/slide.hbs";
|
||||
description = ''
|
||||
Path to the slide template file.
|
||||
(Non-canonical paths are relative to CodiMD's base directory)
|
||||
'';
|
||||
};
|
||||
uploadsPath = mkOption {
|
||||
type = types.str;
|
||||
default = "${cfg.workDir}/uploads";
|
||||
defaultText = "/var/lib/codimd/uploads";
|
||||
description = ''
|
||||
Path under which uploaded files are saved.
|
||||
'';
|
||||
};
|
||||
sessionName = mkOption {
|
||||
type = types.str;
|
||||
default = "connect.sid";
|
||||
description = ''
|
||||
Specify the name of the session cookie.
|
||||
'';
|
||||
};
|
||||
sessionSecret = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Specify the secret used to sign the session cookie.
|
||||
If unset, one will be generated on startup.
|
||||
'';
|
||||
};
|
||||
sessionLife = mkOption {
|
||||
type = types.int;
|
||||
default = 1209600000;
|
||||
description = ''
|
||||
Session life time in milliseconds.
|
||||
'';
|
||||
};
|
||||
heartbeatInterval = mkOption {
|
||||
type = types.int;
|
||||
default = 5000;
|
||||
description = ''
|
||||
Specify the socket.io heartbeat interval.
|
||||
'';
|
||||
};
|
||||
heartbeatTimeout = mkOption {
|
||||
type = types.int;
|
||||
default = 10000;
|
||||
description = ''
|
||||
Specify the socket.io heartbeat timeout.
|
||||
'';
|
||||
};
|
||||
documentMaxLength = mkOption {
|
||||
type = types.int;
|
||||
default = 100000;
|
||||
description = ''
|
||||
Specify the maximum document length.
|
||||
'';
|
||||
};
|
||||
email = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable email sign-in.
|
||||
'';
|
||||
};
|
||||
allowEmailRegister = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Wether to enable email registration.
|
||||
'';
|
||||
};
|
||||
allowGravatar = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to use gravatar as profile picture source.
|
||||
'';
|
||||
};
|
||||
imageUploadType = mkOption {
|
||||
type = types.enum [ "imgur" "s3" "minio" "filesystem" ];
|
||||
default = "filesystem";
|
||||
description = ''
|
||||
Specify where to upload images.
|
||||
'';
|
||||
};
|
||||
minio = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
accessKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Minio access key.
|
||||
'';
|
||||
};
|
||||
secretKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Minio secret key.
|
||||
'';
|
||||
};
|
||||
endpoint = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Minio endpoint.
|
||||
'';
|
||||
};
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
default = 9000;
|
||||
description = ''
|
||||
Minio listen port.
|
||||
'';
|
||||
};
|
||||
secure = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to use HTTPS for Minio.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the minio third-party integration.";
|
||||
};
|
||||
s3 = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
accessKeyId = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
AWS access key id.
|
||||
'';
|
||||
};
|
||||
secretAccessKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
AWS access key.
|
||||
'';
|
||||
};
|
||||
region = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
AWS S3 region.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the s3 third-party integration.";
|
||||
};
|
||||
s3bucket = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Specify the bucket name for upload types <literal>s3</literal> and <literal>minio</literal>.
|
||||
'';
|
||||
};
|
||||
allowPDFExport = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Whether to enable PDF exports.
|
||||
'';
|
||||
};
|
||||
imgur.clientId = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Imgur API client ID.
|
||||
'';
|
||||
};
|
||||
azure = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
connectionString = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Azure Blob Storage connection string.
|
||||
'';
|
||||
};
|
||||
container = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Azure Blob Storage container name.
|
||||
It will be created if non-existent.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the azure third-party integration.";
|
||||
};
|
||||
oauth2 = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
authorizationURL = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Specify the OAuth authorization URL.
|
||||
'';
|
||||
};
|
||||
tokenURL = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Specify the OAuth token URL.
|
||||
'';
|
||||
};
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Specify the OAuth client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Specify the OAuth client secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the OAuth integration.";
|
||||
};
|
||||
facebook = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Facebook API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Facebook API client secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the facebook third-party integration";
|
||||
};
|
||||
twitter = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
consumerKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Twitter API consumer key.
|
||||
'';
|
||||
};
|
||||
consumerSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Twitter API consumer secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the Twitter third-party integration.";
|
||||
};
|
||||
github = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
GitHub API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Github API client secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the GitHub third-party integration.";
|
||||
};
|
||||
gitlab = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
baseURL = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
GitLab API authentication endpoint.
|
||||
Only needed for other endpoints than gitlab.com.
|
||||
'';
|
||||
};
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
GitLab API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
GitLab API client secret.
|
||||
'';
|
||||
};
|
||||
scope = mkOption {
|
||||
type = types.enum [ "api" "read_user" ];
|
||||
default = "api";
|
||||
description = ''
|
||||
GitLab API requested scope.
|
||||
GitLab snippet import/export requires api scope.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the GitLab third-party integration.";
|
||||
};
|
||||
mattermost = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
baseURL = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Mattermost authentication endpoint.
|
||||
'';
|
||||
};
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Mattermost API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Mattermost API client secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the Mattermost third-party integration.";
|
||||
};
|
||||
dropbox = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Dropbox API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Dropbox API client secret.
|
||||
'';
|
||||
};
|
||||
appKey = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Dropbox app key.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the Dropbox third-party integration.";
|
||||
};
|
||||
google = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
clientID = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Google API client ID.
|
||||
'';
|
||||
};
|
||||
clientSecret = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Google API client secret.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the Google third-party integration.";
|
||||
};
|
||||
ldap = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
providerName = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Optional name to be displayed at login form, indicating the LDAP provider.
|
||||
'';
|
||||
};
|
||||
url = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "ldap://localhost";
|
||||
description = ''
|
||||
URL of LDAP server.
|
||||
'';
|
||||
};
|
||||
bindDn = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Bind DN for LDAP access.
|
||||
'';
|
||||
};
|
||||
bindCredentials = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Bind credentials for LDAP access.
|
||||
'';
|
||||
};
|
||||
searchBase = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "o=users,dc=example,dc=com";
|
||||
description = ''
|
||||
LDAP directory to begin search from.
|
||||
'';
|
||||
};
|
||||
searchFilter = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "(uid={{username}})";
|
||||
description = ''
|
||||
LDAP filter to search with.
|
||||
'';
|
||||
};
|
||||
searchAttributes = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "displayName" "mail" ];
|
||||
description = ''
|
||||
LDAP attributes to search with.
|
||||
'';
|
||||
};
|
||||
userNameField = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
LDAP field which is used as the username on CodiMD.
|
||||
By default <option>useridField</option> is used.
|
||||
'';
|
||||
};
|
||||
useridField = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "uid";
|
||||
description = ''
|
||||
LDAP field which is a unique identifier for users on CodiMD.
|
||||
'';
|
||||
};
|
||||
tlsca = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "server-cert.pem,root.pem";
|
||||
description = ''
|
||||
Root CA for LDAP TLS in PEM format.
|
||||
'';
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the LDAP integration.";
|
||||
};
|
||||
saml = mkOption {
|
||||
type = types.nullOr (types.submodule {
|
||||
options = {
|
||||
idpSsoUrl = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "https://idp.example.com/sso";
|
||||
description = ''
|
||||
IdP authentication endpoint.
|
||||
'';
|
||||
};
|
||||
idPCert = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "/path/to/cert.pem";
|
||||
description = ''
|
||||
Path to IdP certificate file in PEM format.
|
||||
'';
|
||||
};
|
||||
issuer = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Optional identity of the service provider.
|
||||
This defaults to the server URL.
|
||||
'';
|
||||
};
|
||||
identifierFormat = mkOption {
|
||||
type = types.str;
|
||||
default = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
|
||||
description = ''
|
||||
Optional name identifier format.
|
||||
'';
|
||||
};
|
||||
groupAttribute = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
example = "memberOf";
|
||||
description = ''
|
||||
Optional attribute name for group list.
|
||||
'';
|
||||
};
|
||||
externalGroups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "Temporary-staff" "External-users" ];
|
||||
description = ''
|
||||
Excluded group names.
|
||||
'';
|
||||
};
|
||||
requiredGroups = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
example = [ "Hackmd-users" "Codimd-users" ];
|
||||
description = ''
|
||||
Required group names.
|
||||
'';
|
||||
};
|
||||
attribute = {
|
||||
id = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Attribute map for `id'.
|
||||
Defaults to `NameID' of SAML response.
|
||||
'';
|
||||
};
|
||||
username = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Attribute map for `username'.
|
||||
Defaults to `NameID' of SAML response.
|
||||
'';
|
||||
};
|
||||
email = mkOption {
|
||||
type = types.str;
|
||||
default = "";
|
||||
description = ''
|
||||
Attribute map for `email'.
|
||||
Defaults to `NameID' of SAML response if
|
||||
<option>identifierFormat</option> has
|
||||
the default value.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
});
|
||||
default = null;
|
||||
description = "Configure the SAML integration.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{ assertion = cfg.configuration.db == {} -> (
|
||||
cfg.configuration.dbURL != "" && cfg.configuration.dbURL != null
|
||||
);
|
||||
message = "Database configuration for CodiMD missing."; }
|
||||
];
|
||||
users.groups.codimd = {};
|
||||
users.users.codimd = {
|
||||
description = "CodiMD service user";
|
||||
group = "codimd";
|
||||
extraGroups = cfg.groups;
|
||||
home = cfg.workDir;
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
systemd.services.codimd = {
|
||||
description = "CodiMD Service";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "networking.target" ];
|
||||
preStart = ''
|
||||
mkdir -p ${cfg.workDir}
|
||||
chown -R codimd: ${cfg.workDir}
|
||||
'';
|
||||
serviceConfig = {
|
||||
WorkingDirectory = cfg.workDir;
|
||||
ExecStart = "${pkgs.codimd}/bin/codimd";
|
||||
Environment = [
|
||||
"CMD_CONFIG_FILE=${prettyJSON cfg.configuration}"
|
||||
"NODE_ENV=production"
|
||||
];
|
||||
Restart = "always";
|
||||
User = "codimd";
|
||||
PermissionsStartOnly = true;
|
||||
PrivateTmp = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -266,7 +266,7 @@ in
|
||||
session. Each session script can set the
|
||||
<varname>waitPID</varname> shell variable to make this script
|
||||
wait until the end of the user session. Each script is used
|
||||
to define either a windows manager or a desktop manager. These
|
||||
to define either a window manager or a desktop manager. These
|
||||
can be differentiated by setting the attribute
|
||||
<varname>manage</varname> either to <literal>"window"</literal>
|
||||
or <literal>"desktop"</literal>.
|
||||
|
@ -197,7 +197,7 @@ in
|
||||
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
|
||||
execCmd = ''
|
||||
export PATH=${lightdm}/sbin:$PATH
|
||||
exec ${lightdm}/sbin/lightdm --log-dir=/var/log --run-dir=/run
|
||||
exec ${lightdm}/sbin/lightdm
|
||||
'';
|
||||
};
|
||||
|
||||
@ -246,12 +246,19 @@ in
|
||||
'';
|
||||
|
||||
users.users.lightdm = {
|
||||
createHome = true;
|
||||
home = "/var/lib/lightdm-data";
|
||||
home = "/var/lib/lightdm";
|
||||
group = "lightdm";
|
||||
uid = config.ids.uids.lightdm;
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/run/lightdm 0711 lightdm lightdm 0"
|
||||
"d /var/cache/lightdm 0711 root lightdm -"
|
||||
"d /var/lib/lightdm 1770 lightdm lightdm -"
|
||||
"d /var/lib/lightdm-data 1775 lightdm lightdm -"
|
||||
"d /var/log/lightdm 0711 root lightdm -"
|
||||
];
|
||||
|
||||
users.groups.lightdm.gid = config.ids.gids.lightdm;
|
||||
services.xserver.tty = null; # We might start multiple X servers so let the tty increment themselves..
|
||||
services.xserver.display = null; # We specify our own display (and logfile) in xserver-wrapper up there
|
||||
|
@ -261,6 +261,7 @@ in rec {
|
||||
tests.chromium = (callSubTestsOnMatchingSystems ["x86_64-linux"] tests/chromium.nix {}).stable or {};
|
||||
tests.cjdns = callTest tests/cjdns.nix {};
|
||||
tests.cloud-init = callTest tests/cloud-init.nix {};
|
||||
tests.codimd = callTest tests/codimd.nix {};
|
||||
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
|
||||
tests.containers-ipv6 = callTest tests/containers-ipv6.nix {};
|
||||
tests.containers-bridge = callTest tests/containers-bridge.nix {};
|
||||
|
56
nixos/tests/codimd.nix
Normal file
56
nixos/tests/codimd.nix
Normal file
@ -0,0 +1,56 @@
|
||||
import ./make-test.nix ({ pkgs, lib, ... }:
|
||||
{
|
||||
name = "codimd";
|
||||
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ willibutz ];
|
||||
};
|
||||
|
||||
nodes = {
|
||||
codimdSqlite = { ... }: {
|
||||
services = {
|
||||
codimd = {
|
||||
enable = true;
|
||||
configuration.dbURL = "sqlite:///var/lib/codimd/codimd.db";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
codimdPostgres = { ... }: {
|
||||
systemd.services.codimd.after = [ "postgresql.service" ];
|
||||
services = {
|
||||
codimd = {
|
||||
enable = true;
|
||||
configuration.dbURL = "postgres://codimd:snakeoilpassword@localhost:5432/codimddb";
|
||||
};
|
||||
postgresql = {
|
||||
enable = true;
|
||||
initialScript = pkgs.writeText "pg-init-script.sql" ''
|
||||
CREATE ROLE codimd LOGIN PASSWORD 'snakeoilpassword';
|
||||
CREATE DATABASE codimddb OWNER codimd;
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
startAll();
|
||||
|
||||
subtest "CodiMD sqlite", sub {
|
||||
$codimdSqlite->waitForUnit("codimd.service");
|
||||
$codimdSqlite->waitForOpenPort(3000);
|
||||
$codimdPostgres->succeed("sleep 2"); # avoid 503 during startup
|
||||
$codimdSqlite->succeed("curl -sSf http://localhost:3000/new");
|
||||
};
|
||||
|
||||
subtest "CodiMD postgres", sub {
|
||||
$codimdPostgres->waitForUnit("postgresql.service");
|
||||
$codimdPostgres->waitForUnit("codimd.service");
|
||||
$codimdPostgres->waitForOpenPort(5432);
|
||||
$codimdPostgres->waitForOpenPort(3000);
|
||||
$codimdPostgres->succeed("sleep 2"); # avoid 503 during startup
|
||||
$codimdPostgres->succeed("curl -sSf http://localhost:3000/new");
|
||||
};
|
||||
'';
|
||||
})
|
@ -563,6 +563,7 @@ in {
|
||||
"swapon -L swap",
|
||||
"mkfs.ext3 -L nixos /dev/sda2",
|
||||
"mount LABEL=nixos /mnt",
|
||||
"mkdir -p /mnt/tmp",
|
||||
);
|
||||
'';
|
||||
grubVersion = 1;
|
||||
|
@ -3,13 +3,13 @@
|
||||
stdenv.mkDerivation rec {
|
||||
|
||||
name = "nano-wallet-${version}";
|
||||
version = "15.2";
|
||||
version = "16.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nanocurrency";
|
||||
repo = "raiblocks";
|
||||
rev = "V${version}";
|
||||
sha256 = "0ngsnaczw5y709zk52flp6m2c83q3kxfgz0bzi8rzfjxp10ncnz3";
|
||||
sha256 = "0fk8jlas3khdh3nlv40krsjdifxp9agblvzap6k93wmm9y34h41c";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -3,12 +3,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.9.15";
|
||||
version = "0.9.16";
|
||||
name = "drumgizmo-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.drumgizmo.org/releases/${name}/${name}.tar.gz";
|
||||
sha256 = "13bgqyw74pq3ss63zd9bjmgr4dah792pcphyqmr7bnvrgfjr6bx6";
|
||||
sha256 = "0ivr61n9gpigsfgn20rh3n09li8sxh1q095r6wiw0shqhn3vaxlg";
|
||||
};
|
||||
|
||||
configureFlags = [ "--enable-lv2" ];
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jaaa-${version}";
|
||||
version = "0.8.4";
|
||||
version = "0.9.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
|
||||
sha256 = "0jyll4rkb6vja2widc340ww078rr24c6nmxbxdqvbxw409nccd01";
|
||||
sha256 = "1czksxx2g8na07k7g57qlz0vvkkgi5bzajcx7vc7jhb94hwmmxbc";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, alsaLib, libjack2, fftwFloat, libclthreads, libclxclient, libX11, libXft, zita-alsa-pcmi, }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "0.8.4";
|
||||
version = "0.9.2";
|
||||
name = "japa-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${name}.tar.bz2";
|
||||
sha256 = "1jhj7s4vqk5c4lchdall0kslvj5sh91902hhfjvs6r3a5nrhwcp0";
|
||||
sha256 = "1zmi4wg23hwsypg3h6y3qb72cbrihqcs19qrbzgs5a67d13q4897";
|
||||
};
|
||||
|
||||
buildInputs = [ alsaLib libjack2 fftwFloat libclthreads libclxclient libX11 libXft zita-alsa-pcmi ];
|
||||
|
@ -1,11 +1,15 @@
|
||||
{ stdenv, fetchgit, meson, ninja, pkgconfig, wrapGAppsHook
|
||||
, appstream-glib, desktop-file-utils, gobjectIntrospection
|
||||
, python36Packages, gnome3, glib, gst_all_1 }:
|
||||
{ stdenv, fetchgit, meson, ninja, pkgconfig
|
||||
, python3, gtk3, gst_all_1, libsecret, libsoup
|
||||
, appstream-glib, desktop-file-utils, gnome3
|
||||
, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
version = "0.9.522";
|
||||
name = "lollypop-${version}";
|
||||
|
||||
format = "other";
|
||||
doCheck = false;
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://gitlab.gnome.org/World/lollypop";
|
||||
rev = "refs/tags/${version}";
|
||||
@ -13,26 +17,30 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0f2brwv884cvmxj644jcj9sg5hix3wvnjy2ndg0fh5cxyqz0kwn5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python36Packages; [
|
||||
nativeBuildInputs = with python3.pkgs; [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
python36Packages.python
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
wrapPython
|
||||
];
|
||||
|
||||
buildInputs = [ glib ] ++ (with gnome3; [
|
||||
gsettings-desktop-schemas gtk3 libsecret libsoup totem-pl-parser
|
||||
]) ++ (with gst_all_1; [
|
||||
gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly
|
||||
buildInputs = with gst_all_1; [
|
||||
gnome3.totem-pl-parser
|
||||
gst-libav
|
||||
gst-plugins-bad
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-ugly
|
||||
gstreamer
|
||||
]);
|
||||
gtk3
|
||||
libsecret
|
||||
libsoup
|
||||
];
|
||||
|
||||
pythonPath = with python36Packages; [
|
||||
pythonPath = with python3.pkgs; [
|
||||
beautifulsoup4
|
||||
gst-python
|
||||
pillow
|
||||
@ -42,11 +50,14 @@ stdenv.mkDerivation rec {
|
||||
pylast
|
||||
];
|
||||
|
||||
postFixup = "wrapPythonPrograms";
|
||||
|
||||
postPatch = ''
|
||||
chmod +x ./meson_post_install.py
|
||||
patchShebangs ./meson_post_install.py
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
buildPythonPath "$out/libexec/lollypop-sp $pythonPath"
|
||||
patchPythonScript "$out/libexec/lollypop-sp"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
@ -1,55 +0,0 @@
|
||||
{ stdenv, fetchgit, pythonPackages, cdparanoia, cdrdao
|
||||
, gst-python, gst-plugins-base, gst-plugins-good
|
||||
, utillinux, makeWrapper, substituteAll, autoreconfHook }:
|
||||
|
||||
let
|
||||
inherit (pythonPackages) python;
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "morituri-${version}";
|
||||
version = "0.2.3.20151109";
|
||||
namePrefix = "";
|
||||
|
||||
src = fetchgit {
|
||||
url = "https://github.com/thomasvs/morituri.git";
|
||||
fetchSubmodules = true;
|
||||
rev = "135b2f7bf27721177e3aeb1d26403f1b29116599";
|
||||
sha256 = "1sl5y5j3gdbynf2v0gf9dwd2hzawj8lm8ywadid7qm34yn8lx12k";
|
||||
};
|
||||
|
||||
pythonPath = with pythonPackages; [
|
||||
pygobject2 gst-python musicbrainzngs
|
||||
pycdio pyxdg setuptools
|
||||
CDDB
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
buildInputs = [
|
||||
python cdparanoia cdrdao utillinux makeWrapper
|
||||
gst-plugins-base gst-plugins-good
|
||||
] ++ pythonPath;
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
inherit cdrdao cdparanoia python utillinux;
|
||||
})
|
||||
];
|
||||
|
||||
# This package contains no binaries to patch or strip.
|
||||
dontPatchELF = true;
|
||||
dontStrip = true;
|
||||
|
||||
postInstall = ''
|
||||
wrapProgram "$out/bin/rip" \
|
||||
--prefix PYTHONPATH : "$PYTHONPATH" \
|
||||
--prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://thomas.apestaart.org/morituri/trac/;
|
||||
description = "A CD ripper aiming for accuracy over speed";
|
||||
maintainers = with maintainers; [ rycee jgeerds ];
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,87 +0,0 @@
|
||||
diff --git a/doc/Makefile.am b/doc/Makefile.am
|
||||
index c115c2c..78c883e 100644
|
||||
--- a/doc/Makefile.am
|
||||
+++ b/doc/Makefile.am
|
||||
@@ -24,7 +24,7 @@ morituri.ics: $(top_srcdir)/morituri.doap
|
||||
man_MANS = rip.1
|
||||
|
||||
rip.1: $(top_srcdir)/morituri/extern/python-command/scripts/help2man $(top_srcdir)/morituri
|
||||
- PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > rip.1
|
||||
+ PYTHONPATH=$(top_srcdir):$(PYTHONPATH) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > rip.1
|
||||
|
||||
clean-local:
|
||||
@rm -rf reference
|
||||
diff --git a/morituri/common/program.py b/morituri/common/program.py
|
||||
index d340fdd..15cb751 100644
|
||||
--- a/morituri/common/program.py
|
||||
+++ b/morituri/common/program.py
|
||||
@@ -92,13 +92,13 @@ class Program(log.Loggable):
|
||||
"""
|
||||
Load the given device.
|
||||
"""
|
||||
- os.system('eject -t %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject -t %s' % device)
|
||||
|
||||
def ejectDevice(self, device):
|
||||
"""
|
||||
Eject the given device.
|
||||
"""
|
||||
- os.system('eject %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject %s' % device)
|
||||
|
||||
def unmountDevice(self, device):
|
||||
"""
|
||||
@@ -112,7 +112,7 @@ class Program(log.Loggable):
|
||||
proc = open('/proc/mounts').read()
|
||||
if device in proc:
|
||||
print 'Device %s is mounted, unmounting' % device
|
||||
- os.system('umount %s' % device)
|
||||
+ os.system('@utillinux@/bin/umount %s' % device)
|
||||
|
||||
def getFastToc(self, runner, toc_pickle, device):
|
||||
"""
|
||||
Submodule morituri/extern/python-command contains modified content
|
||||
diff --git a/morituri/program/cdparanoia.py b/morituri/program/cdparanoia.py
|
||||
index 46176d5..fce14a5 100644
|
||||
--- a/morituri/program/cdparanoia.py
|
||||
+++ b/morituri/program/cdparanoia.py
|
||||
@@ -278,7 +278,7 @@ class ReadTrackTask(log.Loggable, task.Task):
|
||||
stopTrack, stopOffset)
|
||||
|
||||
bufsize = 1024
|
||||
- argv = ["cdparanoia", "--stderr-progress",
|
||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
||||
"--sample-offset=%d" % self._offset, ]
|
||||
if self._device:
|
||||
argv.extend(["--force-cdrom-device", self._device, ])
|
||||
@@ -551,7 +551,7 @@ _VERSION_RE = re.compile(
|
||||
|
||||
def getCdParanoiaVersion():
|
||||
getter = common.VersionGetter('cdparanoia',
|
||||
- ["cdparanoia", "-V"],
|
||||
+ ["@cdparanoia@/bin/cdparanoia", "-V"],
|
||||
_VERSION_RE,
|
||||
"%(version)s %(release)s")
|
||||
|
||||
diff --git a/morituri/program/cdrdao.py b/morituri/program/cdrdao.py
|
||||
index c6fba64..c4d0306 100644
|
||||
--- a/morituri/program/cdrdao.py
|
||||
+++ b/morituri/program/cdrdao.py
|
||||
@@ -257,7 +257,7 @@ class CDRDAOTask(ctask.PopenTask):
|
||||
|
||||
def start(self, runner):
|
||||
self.debug('Starting cdrdao with options %r', self.options)
|
||||
- self.command = ['cdrdao', ] + self.options
|
||||
+ self.command = ['@cdrdao@/bin/cdrdao', ] + self.options
|
||||
|
||||
ctask.PopenTask.start(self, runner)
|
||||
|
||||
@@ -515,7 +515,7 @@ _VERSION_RE = re.compile(
|
||||
|
||||
def getCDRDAOVersion():
|
||||
getter = common.VersionGetter('cdrdao',
|
||||
- ["cdrdao"],
|
||||
+ ["@cdrdao@/bin/cdrdao"],
|
||||
_VERSION_RE,
|
||||
"%(version)s")
|
||||
|
@ -11,6 +11,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/pavucontrol" \
|
||||
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS"
|
||||
'';
|
||||
|
||||
|
52
pkgs/applications/audio/vocal/default.nix
Normal file
52
pkgs/applications/audio/vocal/default.nix
Normal file
@ -0,0 +1,52 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, vala, gtk3, libxml2, granite, webkitgtk, clutter-gtk
|
||||
, clutter-gst, libunity, libnotify, sqlite, gst_all_1, libsoup, json-glib, gnome3, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vocal";
|
||||
version = "2.2.0";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "needle-and-thread";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "09cm4azyaa9fmfymygf25gf0klpm5p04k6bc1i90jhw0f1im8sgl";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gobjectIntrospection
|
||||
libxml2
|
||||
ninja
|
||||
pkgconfig
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = with gst_all_1; [
|
||||
clutter-gst
|
||||
clutter-gtk
|
||||
gnome3.libgee
|
||||
granite
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gstreamer
|
||||
json-glib
|
||||
libnotify
|
||||
libunity
|
||||
sqlite
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The podcast client for the modern free desktop";
|
||||
longDescription = ''
|
||||
Vocal is a powerful, fast, and intuitive application that helps users find new podcasts, manage their libraries, and enjoy the best that indepedent audio and video publishing has to offer. Vocal features full support for both episode downloading and streaming, native system integration, iTunes store search and top 100 charts (with international results support), iTunes link parsing, OPML importing and exporting, and so much more. Plus, it has great smart features like automatically keeping your library clean from old files, and the ability to set custom skip intervals.
|
||||
'';
|
||||
homepage = https://github.com/needle-and-thread/vocal;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
48
pkgs/applications/audio/whipper/default.nix
Normal file
48
pkgs/applications/audio/whipper/default.nix
Normal file
@ -0,0 +1,48 @@
|
||||
{ stdenv, fetchFromGitHub, python2, cdparanoia, cdrdao, flac
|
||||
, sox, accuraterip-checksum, utillinux, substituteAll }:
|
||||
|
||||
python2.pkgs.buildPythonApplication rec {
|
||||
name = "whipper-${version}";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "JoeLametta";
|
||||
repo = "whipper";
|
||||
rev = "v${version}";
|
||||
sha256 = "04m8s0s9dcnly9l6id8vv99n9kbjrjid79bss52ay9yvwng0frmj";
|
||||
};
|
||||
|
||||
pythonPath = with python2.pkgs; [
|
||||
pygobject2 musicbrainzngs urllib3 chardet
|
||||
pycdio setuptools mutagen
|
||||
requests
|
||||
];
|
||||
|
||||
checkInputs = with python2.pkgs; [
|
||||
twisted
|
||||
];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
inherit cdrdao cdparanoia utillinux flac sox;
|
||||
accurateripChecksum = accuraterip-checksum;
|
||||
})
|
||||
];
|
||||
|
||||
# some tests require internet access
|
||||
# https://github.com/JoeLametta/whipper/issues/291
|
||||
doCheck = false;
|
||||
|
||||
preCheck = ''
|
||||
HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/JoeLametta/whipper;
|
||||
description = "A CD ripper aiming for accuracy over speed";
|
||||
maintainers = with maintainers; [ rycee jgeerds ];
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
105
pkgs/applications/audio/whipper/paths.patch
Normal file
105
pkgs/applications/audio/whipper/paths.patch
Normal file
@ -0,0 +1,105 @@
|
||||
--- a/whipper/program/arc.py
|
||||
+++ b/whipper/program/arc.py
|
||||
@@ -3,8 +3,8 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
-ARB = 'accuraterip-checksum'
|
||||
-FLAC = 'flac'
|
||||
+ARB = '@accurateripChecksum@/bin/accuraterip-checksum'
|
||||
+FLAC = '@flac@/bin/flac'
|
||||
|
||||
|
||||
def _execute(cmd, **redirects):
|
||||
--- a/whipper/program/cdparanoia.py
|
||||
+++ b/whipper/program/cdparanoia.py
|
||||
@@ -280,10 +280,10 @@
|
||||
|
||||
bufsize = 1024
|
||||
if self._overread:
|
||||
- argv = ["cd-paranoia", "--stderr-progress",
|
||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
||||
"--sample-offset=%d" % self._offset, "--force-overread", ]
|
||||
else:
|
||||
- argv = ["cd-paranoia", "--stderr-progress",
|
||||
+ argv = ["@cdparanoia@/bin/cdparanoia", "--stderr-progress",
|
||||
"--sample-offset=%d" % self._offset, ]
|
||||
if self._device:
|
||||
argv.extend(["--force-cdrom-device", self._device, ])
|
||||
@@ -560,7 +560,7 @@
|
||||
|
||||
def getCdParanoiaVersion():
|
||||
getter = common.VersionGetter('cd-paranoia',
|
||||
- ["cd-paranoia", "-V"],
|
||||
+ ["@cdparanoia@/bin/cdparanoia", "-V"],
|
||||
_VERSION_RE,
|
||||
"%(version)s %(release)s")
|
||||
|
||||
@@ -585,7 +585,7 @@
|
||||
def __init__(self, device=None):
|
||||
# cdparanoia -A *always* writes cdparanoia.log
|
||||
self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
|
||||
- self.command = ['cd-paranoia', '-A']
|
||||
+ self.command = ['@cdparanoia@/bin/cdparanoia', '-A']
|
||||
if device:
|
||||
self.command += ['-d', device]
|
||||
|
||||
--- a/whipper/program/cdrdao.py
|
||||
+++ b/whipper/program/cdrdao.py
|
||||
@@ -9,7 +9,7 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
-CDRDAO = 'cdrdao'
|
||||
+CDRDAO = '@cdrdao@/bin/cdrdao'
|
||||
|
||||
|
||||
def read_toc(device, fast_toc=False):
|
||||
--- a/whipper/program/sox.py
|
||||
+++ b/whipper/program/sox.py
|
||||
@@ -4,7 +4,7 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
-SOX = 'sox'
|
||||
+SOX = '@sox@/bin/sox'
|
||||
|
||||
|
||||
def peak_level(track_path):
|
||||
--- a/whipper/program/soxi.py
|
||||
+++ b/whipper/program/soxi.py
|
||||
@@ -6,7 +6,7 @@
|
||||
import logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
-SOXI = 'soxi'
|
||||
+SOXI = '@sox@/bin/soxi'
|
||||
|
||||
|
||||
class AudioLengthTask(ctask.PopenTask):
|
||||
--- a/whipper/program/utils.py
|
||||
+++ b/whipper/program/utils.py
|
||||
@@ -9,7 +9,7 @@
|
||||
Eject the given device.
|
||||
"""
|
||||
logger.debug("ejecting device %s", device)
|
||||
- os.system('eject %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject %s' % device)
|
||||
|
||||
|
||||
def load_device(device):
|
||||
@@ -17,7 +17,7 @@
|
||||
Load the given device.
|
||||
"""
|
||||
logger.debug("loading (eject -t) device %s", device)
|
||||
- os.system('eject -t %s' % device)
|
||||
+ os.system('@utillinux@/bin/eject -t %s' % device)
|
||||
|
||||
|
||||
def unmount_device(device):
|
||||
@@ -32,4 +32,4 @@
|
||||
proc = open('/proc/mounts').read()
|
||||
if device in proc:
|
||||
print 'Device %s is mounted, unmounting' % device
|
||||
- os.system('umount %s' % device)
|
||||
+ os.system('@utillinux@/bin/umount %s' % device)
|
@ -309,6 +309,21 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
brief = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "brief";
|
||||
ename = "brief";
|
||||
version = "5.85";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/brief-5.85.el";
|
||||
sha256 = "10a41qidns28cka0y25rapla58fzjy9c8cw9v9bmrm4gkjqapsv4";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/brief.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
bug-hunter = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, seq }:
|
||||
elpaBuild {
|
||||
pname = "bug-hunter";
|
||||
@ -820,10 +835,10 @@
|
||||
elpaBuild {
|
||||
pname = "ebdb";
|
||||
ename = "ebdb";
|
||||
version = "0.5.4";
|
||||
version = "0.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/ebdb-0.5.4.tar";
|
||||
sha256 = "1dripbiwplyjalzmkr8awaimhkp9f6c2bhnm3c77027k2b87w4lf";
|
||||
url = "https://elpa.gnu.org/packages/ebdb-0.6.tar";
|
||||
sha256 = "1zj8jvq5l4wlk4734i3isxi4barpivarq2f9kqzkfia7mcspxav8";
|
||||
};
|
||||
packageRequires = [ cl-lib emacs seq ];
|
||||
meta = {
|
||||
@ -900,10 +915,10 @@
|
||||
elpaBuild {
|
||||
pname = "el-search";
|
||||
ename = "el-search";
|
||||
version = "1.7.3";
|
||||
version = "1.7.9";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.7.3.tar";
|
||||
sha256 = "0nxjgi027mjjn53nm9ara4nyr7kyqjawsmfaygsxqjv0mbykjmd1";
|
||||
url = "https://elpa.gnu.org/packages/el-search-1.7.9.tar";
|
||||
sha256 = "06da4v03zis1mf09v61c1jzkp5x6drm61iakcbpy5hkdq8nvm3xc";
|
||||
};
|
||||
packageRequires = [ cl-print emacs stream ];
|
||||
meta = {
|
||||
@ -971,7 +986,8 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ergoemacs-mode = callPackage ({ elpaBuild
|
||||
ergoemacs-mode = callPackage ({ cl-lib ? null
|
||||
, elpaBuild
|
||||
, emacs
|
||||
, fetchurl
|
||||
, lib
|
||||
@ -979,12 +995,12 @@
|
||||
elpaBuild {
|
||||
pname = "ergoemacs-mode";
|
||||
ename = "ergoemacs-mode";
|
||||
version = "5.14.7.3";
|
||||
version = "5.16.10.12";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/ergoemacs-mode-5.14.7.3.tar";
|
||||
sha256 = "0lqqrnw6z9w7js8r40khckjc1cyxdiwx8kapf5pvyfs09gs89i90";
|
||||
url = "https://elpa.gnu.org/packages/ergoemacs-mode-5.16.10.12.tar";
|
||||
sha256 = "1zfzjmi30lllrbyzicmp11c9lpa82g57wi134q9bajvzn9ryx4jr";
|
||||
};
|
||||
packageRequires = [ emacs undo-tree ];
|
||||
packageRequires = [ cl-lib emacs undo-tree ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/ergoemacs-mode.html";
|
||||
license = lib.licenses.free;
|
||||
@ -995,17 +1011,18 @@
|
||||
, fetchurl
|
||||
, fsm
|
||||
, lib
|
||||
, nadvice
|
||||
, soap-client
|
||||
, url-http-ntlm }:
|
||||
elpaBuild {
|
||||
pname = "excorporate";
|
||||
ename = "excorporate";
|
||||
version = "0.7.6";
|
||||
version = "0.8.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/excorporate-0.7.6.tar";
|
||||
sha256 = "02bp0z6vpssc12vxxs1g4whmfxf88wsk0bcq4422vvz256l6vpf9";
|
||||
url = "https://elpa.gnu.org/packages/excorporate-0.8.0.tar";
|
||||
sha256 = "0sx04w7yp2byda0maifsmapqmq6w43r114a6gzqar0j82rsc0mfg";
|
||||
};
|
||||
packageRequires = [ emacs fsm soap-client url-http-ntlm ];
|
||||
packageRequires = [ emacs fsm nadvice soap-client url-http-ntlm ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/excorporate.html";
|
||||
license = lib.licenses.free;
|
||||
@ -1105,10 +1122,10 @@
|
||||
elpaBuild {
|
||||
pname = "ggtags";
|
||||
ename = "ggtags";
|
||||
version = "0.8.12";
|
||||
version = "0.8.13";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/ggtags-0.8.12.el";
|
||||
sha256 = "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp";
|
||||
url = "https://elpa.gnu.org/packages/ggtags-0.8.13.el";
|
||||
sha256 = "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg";
|
||||
};
|
||||
packageRequires = [ cl-lib emacs ];
|
||||
meta = {
|
||||
@ -1412,10 +1429,10 @@
|
||||
elpaBuild {
|
||||
pname = "jsonrpc";
|
||||
ename = "jsonrpc";
|
||||
version = "1.0.0";
|
||||
version = "1.0.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/jsonrpc-1.0.0.el";
|
||||
sha256 = "06lmmn7j2ilkvwibbpgnd8p6d63fjjnxd2ma8f4jw6vrz1f7lwvs";
|
||||
url = "https://elpa.gnu.org/packages/jsonrpc-1.0.6.el";
|
||||
sha256 = "13a19smz8cksv6fgcyxb111csvagkp07z5nl4imyp5b23asgl70p";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
@ -1753,6 +1770,21 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
nadvice = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "nadvice";
|
||||
ename = "nadvice";
|
||||
version = "0.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/nadvice-0.2.el";
|
||||
sha256 = "094slkgw4f7cd88r76d0rgpbqr7zzwy19ssndg8v3sm4p5ld6vwg";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/nadvice.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
nameless = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "nameless";
|
||||
@ -1911,10 +1943,10 @@
|
||||
elpaBuild {
|
||||
pname = "org";
|
||||
ename = "org";
|
||||
version = "9.1.13";
|
||||
version = "9.1.14";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/org-9.1.13.tar";
|
||||
sha256 = "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr";
|
||||
url = "https://elpa.gnu.org/packages/org-9.1.14.tar";
|
||||
sha256 = "17vd9hig26rqv90l6y92hc2i0x29g44lsdsp0xd4m53s8r3zdikz";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -1956,10 +1988,10 @@
|
||||
elpaBuild {
|
||||
pname = "other-frame-window";
|
||||
ename = "other-frame-window";
|
||||
version = "1.0.4";
|
||||
version = "1.0.6";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/other-frame-window-1.0.4.el";
|
||||
sha256 = "0hg82j8zjh0ann6bf56r0p8s0y3a016zny8byp80mcvkw63wrn5i";
|
||||
url = "https://elpa.gnu.org/packages/other-frame-window-1.0.6.el";
|
||||
sha256 = "04h0jr73xv8inm52h8b8zbc9lsnlzkn40qy99x4x0lkkdqqxw1ny";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
@ -2147,16 +2179,16 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
rcirc-color = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
rcirc-color = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "rcirc-color";
|
||||
ename = "rcirc-color";
|
||||
version = "0.3";
|
||||
version = "0.4.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.gnu.org/packages/rcirc-color-0.3.el";
|
||||
sha256 = "1ya4agh63x60lv8qzrjrng02dnrc70ci0s05b800iq71k71ss3dl";
|
||||
url = "https://elpa.gnu.org/packages/rcirc-color-0.4.1.el";
|
||||
sha256 = "1zs3i3xr8zbjr8hzr1r1qx7mqb2wckpn25qh9444c9as2dnh9sn9";
|
||||
};
|
||||
packageRequires = [];
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/rcirc-color.html";
|
||||
license = lib.licenses.free;
|
||||
@ -2252,6 +2284,7 @@
|
||||
}) {};
|
||||
rudel = callPackage ({ cl-generic
|
||||
, cl-lib ? null
|
||||
, cl-print
|
||||
, elpaBuild
|
||||
, emacs
|
||||
, fetchurl
|
||||
@ -2264,7 +2297,7 @@
|
||||
url = "https://elpa.gnu.org/packages/rudel-0.3.1.tar";
|
||||
sha256 = "0glqa68g509p0s2vcc0i8kzlddnc9brd9jqhnm5rzxz4i050cvnz";
|
||||
};
|
||||
packageRequires = [ cl-generic cl-lib emacs ];
|
||||
packageRequires = [ cl-generic cl-lib cl-print emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/rudel.html";
|
||||
license = lib.licenses.free;
|
||||
|
4756
pkgs/applications/editors/emacs-modes/melpa-generated.nix
generated
4756
pkgs/applications/editors/emacs-modes/melpa-generated.nix
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -4,10 +4,10 @@
|
||||
elpaBuild {
|
||||
pname = "org";
|
||||
ename = "org";
|
||||
version = "20180723";
|
||||
version = "20180910";
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/elpa/org-20180723.tar";
|
||||
sha256 = "1mcgnba16lpyh55zjx4rcbmpygcmdnjjzvgv1rx0c3kz1h5fgzf8";
|
||||
url = "http://orgmode.org/elpa/org-20180910.tar";
|
||||
sha256 = "1j4n0a07bxjbdzx3dipxgi0h5r0yimwylp9cnzfm6m7nc7kas2sq";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -19,10 +19,10 @@
|
||||
elpaBuild {
|
||||
pname = "org-plus-contrib";
|
||||
ename = "org-plus-contrib";
|
||||
version = "20180723";
|
||||
version = "20180910";
|
||||
src = fetchurl {
|
||||
url = "http://orgmode.org/elpa/org-plus-contrib-20180723.tar";
|
||||
sha256 = "1l34bagkm8mcyv5diprpbd4yjijkdvx1l54qpvi8bmvxjnzsm7mk";
|
||||
url = "http://orgmode.org/elpa/org-plus-contrib-20180910.tar";
|
||||
sha256 = "17inl07kjdjamlqbyxbp42kx1nkbhbhz7lzqfvkhk6s7z16qvksq";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
|
@ -1,4 +1,5 @@
|
||||
{ stdenv
|
||||
, ctags
|
||||
, desktop-file-utils
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_43
|
||||
@ -58,6 +59,7 @@ in stdenv.mkDerivation {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
ctags
|
||||
flatpak
|
||||
gnome3.devhelp
|
||||
gnome3.libgit2-glib
|
||||
|
@ -1,29 +1,20 @@
|
||||
{ stdenv, python3, libsForQt56, fetchFromGitHub, makeWrapper, makeDesktopItem }:
|
||||
{ stdenv, python3, fetchFromGitHub, makeWrapper, makeDesktopItem }:
|
||||
|
||||
let
|
||||
packageOverrides = self: super: {
|
||||
pyqt56 = libsForQt56.callPackage ../../../development/python-modules/pyqt/5.x.nix {
|
||||
pythonPackages = self;
|
||||
};
|
||||
};
|
||||
|
||||
pythonPackages = (python3.override { inherit packageOverrides; }).pkgs;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "leo-editor-${version}";
|
||||
version = "5.6";
|
||||
version = "5.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "leo-editor";
|
||||
repo = "leo-editor";
|
||||
rev = version;
|
||||
sha256 = "1k6q3gvaf05bi0mzkmmb1p6wrgxwri7ivn38p6f0m0wfd3f70x2j";
|
||||
sha256 = "0ri6l6cxwva450l05af5vs1lsgrz6ciwd02njdgphs9pm1vwxbl9";
|
||||
};
|
||||
|
||||
dontBuild = true;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper python3 ];
|
||||
propagatedBuildInputs = with pythonPackages; [ pyqt56 docutils ];
|
||||
propagatedBuildInputs = with python3.pkgs; [ pyqt5 docutils ];
|
||||
|
||||
desktopItem = makeDesktopItem rec {
|
||||
name = "leo-editor";
|
||||
|
@ -3,13 +3,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "neovim-qt-${version}";
|
||||
version = "0.2.9";
|
||||
version = "0.2.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "equalsraf";
|
||||
repo = "neovim-qt";
|
||||
rev = "v${version}";
|
||||
sha256 = "014zqfbbv7q85z64h1iw88l37vhrvhjv7xxd0a76j7d1m2769kqs";
|
||||
sha256 = "0hq3w9d6qbzf0j7zm3ls0wpvnab64kypb4i0bhmsnk605mvx63r4";
|
||||
};
|
||||
|
||||
cmakeFlags = [
|
||||
|
73
pkgs/applications/editors/quilter/default.nix
Normal file
73
pkgs/applications/editors/quilter/default.nix
Normal file
@ -0,0 +1,73 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, vala, pkgconfig, meson, ninja, python3
|
||||
, granite, gtk3, desktop-file-utils, gnome3, gtksourceview, webkitgtk, gtkspell3
|
||||
, discount, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "quilter";
|
||||
version = "1.6.3";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lainsce";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1wa0i6dgg6fgb7q9z33v9qmn1a1dn3ik58v1f3a49dvd5xyf8q6q";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
discount
|
||||
granite
|
||||
gtk3
|
||||
gtksourceview
|
||||
gtkspell3
|
||||
webkitgtk
|
||||
gnome3.libgee
|
||||
];
|
||||
|
||||
patches = [
|
||||
# Fix build with vala 0.42 - Drop these in next release
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lainsce/quilter/commit/a58838213cd7f2d33048c7b34b96dc8875612624.patch";
|
||||
sha256 = "1a4w1zql4zfk8scgrrssrm9n3sh5fsc1af5zvrqk8skbv7f2c80n";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lainsce/quilter/commit/d1800ce830343a1715bc83da3339816554896be5.patch";
|
||||
sha256 = "0xl5iz8bgx5661vbbq8qa1wkfvw9d3da67x564ckjfi05zq1vddz";
|
||||
})
|
||||
# Correct libMarkdown dependency discovery: See https://github.com/lainsce/quilter/pull/170
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lainsce/quilter/commit/8b1f3a60bd14cb86c1c62f9917c5f0c12bc4e459.patch";
|
||||
sha256 = "1kjc6ygf9yjvqfa4xhzxiava3338swp9wbjhpfaa3pyz3ayh188n";
|
||||
})
|
||||
# post_install script cleanups: See https://github.com/lainsce/quilter/pull/171
|
||||
(fetchpatch {
|
||||
url = "https://github.com/lainsce/quilter/commit/55bf3b10cd94fcc40b0867bbdb1931a09f577922.patch";
|
||||
sha256 = "1330amichaif2qfrh4qkxwqbcpr87ipik7vzjbjdm2bv3jz9353r";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Focus on your writing - designed for elementary OS";
|
||||
homepage = https://github.com/lainsce/quilter;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,12 +1,12 @@
|
||||
{ lib, fetchFromGitHub }:
|
||||
rec {
|
||||
version = "8.1.0146";
|
||||
version = "8.1.0348";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vim";
|
||||
repo = "vim";
|
||||
rev = "v${version}";
|
||||
sha256 = "1v33h08j15zii0ipw5py18ghsaxlbar0nyx365z1acjhk4vhn9nb";
|
||||
sha256 = "0f18kpywnph708mvj1fpi06qb53nbhc26ngjh2kvfxwawn63k8ab";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,29 +1,18 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, gnome3, meson, ninja, gettext, pkgconfig, libxml2, gtk3, hicolor-icon-theme, wrapGAppsHook }:
|
||||
{ stdenv, fetchFromGitLab, gnome3, meson, ninja, gettext, pkgconfig, libxml2, gtk3, hicolor-icon-theme, wrapGAppsHook }:
|
||||
|
||||
let
|
||||
version = "2.3";
|
||||
version = "2.3.1";
|
||||
in stdenv.mkDerivation {
|
||||
name = "gcolor3-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hjdskes";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "World";
|
||||
repo = "gcolor3";
|
||||
rev = "v${version}";
|
||||
sha256 = "186j72kwsqdcakvdik9jl18gz3csdj53j3ylwagr9gfwmy0nmyjb";
|
||||
sha256 = "10cfzlkflwkb7f51rnrxmgxpfryh1qzvqaydj6lffjq9zvnhigg7";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix darwin build
|
||||
(fetchpatch {
|
||||
url = https://github.com/Hjdskes/gcolor3/commit/9130ffeff091fbafff6a0c8f06b09f54657d5dfd.patch;
|
||||
sha256 = "1kn5hx536wivafb4awg7lsa8h32njy0lynmn7ci9y78dlp54057r";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = https://github.com/Hjdskes/gcolor3/commit/8d89081a8e13749f5a9051821114bc5fe814eaf3.patch;
|
||||
sha256 = "1ldyr84dl2g6anqkp2mpxsrcr41fcqwi6ck14rfhai7rgrm8yar3";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ meson ninja gettext pkgconfig libxml2 wrapGAppsHook ];
|
||||
|
||||
buildInputs = [ gtk3 hicolor-icon-theme ];
|
||||
@ -35,8 +24,8 @@ in stdenv.mkDerivation {
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A simple color chooser written in GTK3";
|
||||
homepage = https://hjdskes.github.io/projects/gcolor3/;
|
||||
license = licenses.gpl2;
|
||||
homepage = https://www.hjdskes.nl/projects/gcolor3/;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ jtojnar ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
|
@ -3,7 +3,7 @@
|
||||
, kguiaddons, ki18n, kitemmodels, kitemviews, kwindowsystem
|
||||
, kio, kcrash
|
||||
, boost, libraw, fftw, eigen, exiv2, libheif, lcms2, gsl, openexr, giflib
|
||||
, openjpeg, opencolorio, vc, poppler_qt5, curl, ilmbase
|
||||
, openjpeg, opencolorio, vc, poppler, curl, ilmbase
|
||||
, qtmultimedia, qtx11extras
|
||||
, python3
|
||||
}:
|
||||
@ -23,7 +23,7 @@ mkDerivation rec {
|
||||
karchive kconfig kwidgetsaddons kcompletion kcoreaddons kguiaddons
|
||||
ki18n kitemmodels kitemviews kwindowsystem kio kcrash
|
||||
boost libraw fftw eigen exiv2 lcms2 gsl openexr libheif giflib
|
||||
openjpeg opencolorio poppler_qt5 curl ilmbase
|
||||
openjpeg opencolorio poppler curl ilmbase
|
||||
qtmultimedia qtx11extras
|
||||
python3
|
||||
] ++ lib.optional (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isx86_64) vc;
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler_qt5 }:
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, cmake, qtbase, qttools, qtx11extras, poppler }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qcomicbook-${version}";
|
||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
qtbase qttools qtx11extras poppler_qt5
|
||||
qtbase qttools qtx11extras poppler
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
|
@ -5,12 +5,12 @@
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "3.30.0";
|
||||
version = "3.31.0";
|
||||
name = "calibre-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
|
||||
sha256 = "0j7w63kniqnpr8v1aldzbim2dyrk79n23mzw9y56jqd0k47m8zfz";
|
||||
sha256 = "1xg1bx0klvrywqry5rhci37fr7shpvb2wbx4bva20vhqkal169rw";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -1,24 +1,14 @@
|
||||
{ stdenv, fetchurl, writeScript, fetchFromGitHub
|
||||
{ stdenv, fetchgit, fetchurl, writeScript
|
||||
, libGL, libX11, libXext, python3, libXrandr, libXrender, libpulseaudio, libXcomposite
|
||||
, enableGlfw ? false, glfw }:
|
||||
|
||||
let
|
||||
inherit (stdenv.lib) optional makeLibraryPath;
|
||||
|
||||
version = "1.4.5";
|
||||
gladVersion = "0.1.24";
|
||||
# glad
|
||||
# https://github.com/wacossusca34/glava/issues/46#issuecomment-397816520
|
||||
glad = fetchFromGitHub {
|
||||
owner = "Dav1dde";
|
||||
repo = "glad";
|
||||
rev = "v${gladVersion}";
|
||||
sha256 = "0s2c9w064kqa5i07w8zmvgpg1pa3wj86l1nhgw7w56cjhq7cf8h8";
|
||||
};
|
||||
# gl.xml
|
||||
gl = fetchurl {
|
||||
url = https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/a24f3f7a4c924fdbc666024f99c70e5b8e34c819/xml/gl.xml;
|
||||
sha256 = "1mskxjmhb35m8qv255pibf633d8sn1w9rdsf0lj75bhlgy0zi5c7";
|
||||
url = https://raw.githubusercontent.com/KhronosGroup/OpenGL-Registry/56312cfe680e4be5ae61bbf1c628e420f8731718/xml/gl.xml;
|
||||
sha256 = "1c45bcgaxiic5gmb3gkrd9qcvascvij97vz5y6fc3a2y7x3gjc5l";
|
||||
};
|
||||
# EGL 1.5
|
||||
egl = fetchurl {
|
||||
@ -43,12 +33,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "glava-${version}";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wacossusca34";
|
||||
repo = "glava";
|
||||
src = fetchgit {
|
||||
url = "https://github.com/wacossusca34/glava.git";
|
||||
rev = "v${version}";
|
||||
sha256 = "1zfw8samrzxxbny709rcdz1z77cw1cd46wlfnf7my02kipmqn0nr";
|
||||
sha256 = "1k8x0a0g2pm7ficsk4az9s7mjbm85a987apjg5c4y6iyldxgd6sb";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
@ -65,7 +55,6 @@ in
|
||||
];
|
||||
|
||||
patchPhase = ''
|
||||
cp -r --no-preserve=all ${glad}/* glad
|
||||
mkdir -p glad/include/KHR
|
||||
|
||||
cp ${gl} glad/gl.xml
|
||||
|
47
pkgs/applications/misc/notejot/default.nix
Normal file
47
pkgs/applications/misc/notejot/default.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite
|
||||
, gtk3, gnome3, gtksourceview, json-glib, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "notejot";
|
||||
version = "1.4.5";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lainsce";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0mjig4y2rb6v2dyzya44mfz0dxgp5wnjs3kdavf9ha2jzjjr5xyb";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome3.libgee
|
||||
granite
|
||||
gtk3
|
||||
gtksourceview
|
||||
json-glib
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Stupidly-simple sticky notes applet";
|
||||
homepage = https://github.com/lainsce/notejot;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
|
||||
|
||||
let
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
sqlGda = libgda.override {
|
||||
mysqlSupport = true;
|
||||
postgresSupport = true;
|
||||
@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
|
||||
owner = "Alecaddd";
|
||||
repo = "sequeler";
|
||||
rev = "v${version}";
|
||||
sha256 = "1gafd8bmwpby7gjzfr7q25rrdmyh1f175fxc1yrcr5nplfyzwfnb";
|
||||
sha256 = "0j5z3z34jc1acclmlkjpv7fcs4f2gf0bcfnvcpn3zdzw9fzj0sw7";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkgconfig vala gobjectIntrospection gettext wrapGAppsHook python3 desktop-file-utils ];
|
||||
|
@ -1,15 +1,15 @@
|
||||
{ mkDerivation, lib, fetchFromGitHub, autoreconfHook, perl, pkgconfig, which
|
||||
{ mkDerivation, lib, fetchFromGitHub, autoreconfHook, perl, pkgconfig
|
||||
, libtool, openssl, qtbase, qttools }:
|
||||
|
||||
mkDerivation rec {
|
||||
name = "xca-${version}";
|
||||
version = "2.1.0";
|
||||
version = "2.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "chris2511";
|
||||
repo = "xca";
|
||||
rev = "RELEASE.${version}";
|
||||
sha256 = "039qz6hh43hx8dcw2bq71mgy95zk09jyd3xxpldmxxd5d69zcr8m";
|
||||
sha256 = "1d09329a80axwqhxixwasd8scsmh23vsq1076amy5c8173s4ambi";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -17,15 +17,15 @@ mkDerivation rec {
|
||||
--replace /usr/bin/perl ${perl}/bin/perl
|
||||
'';
|
||||
|
||||
buildInputs = [ libtool openssl qtbase qttools ];
|
||||
buildInputs = [ libtool openssl qtbase ];
|
||||
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig which ];
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig qttools ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Interface for managing asymetric keys like RSA or DSA";
|
||||
homepage = http://xca.sourceforge.net/;
|
||||
description = "An x509 certificate generation tool, handling RSA, DSA and EC keys, certificate signing requests (PKCS#10) and CRLs";
|
||||
homepage = https://hohnstaedt.de/xca/;
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ offline peterhoeg ];
|
||||
platforms = platforms.all;
|
||||
|
@ -98,11 +98,11 @@ let
|
||||
|
||||
flash = stdenv.mkDerivation rec {
|
||||
name = "flashplayer-ppapi-${version}";
|
||||
version = "30.0.0.154";
|
||||
version = "31.0.0.108";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
||||
sha256 = "0bi9b6syx7x2avixgjwanrvynzanf89xm2g3nxazw9qgxxc1cp48";
|
||||
sha256 = "0dcwyx0fp7wbsx0cyi7xpwq0nnvcvkzfgi6zyy75487820ssc4h1";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -73,25 +73,25 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "flashplayer-${version}";
|
||||
version = "30.0.0.154";
|
||||
version = "31.0.0.108";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
if debug then
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/30/flash_player_npapi_linux_debug.${arch}.tar.gz"
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_npapi_linux_debug.${arch}.tar.gz"
|
||||
else
|
||||
"https://fpdownload.adobe.com/get/flashplayer/pdc/${version}/flash_player_npapi_linux.${arch}.tar.gz";
|
||||
sha256 =
|
||||
if debug then
|
||||
if arch == "x86_64" then
|
||||
"04hfh0vn1n70gdpfydq0sj94d6rkbk80h4pmy3rsfvhg0x540wx8"
|
||||
"1mn29ahxjf6pdy2zp2na14cz46jrl88f54kp3bs3cz75syyizyb6"
|
||||
else
|
||||
"073327sszbvkglh5b18axmwv40sy2vyacdhcd1fx82qskv44sfda"
|
||||
"0inpj6bcsn5lh8gdv1wxpgipzrmpc553nhr68a55b2wff9fkv1ci"
|
||||
else
|
||||
if arch == "x86_64" then
|
||||
"03ypgzy88ck5rn1q971v0km9yw3p10ly1zkxh239v6nx0hs35w84"
|
||||
"1dfgsl5jf8ja9f7wwkzj5bfz1v5rdsyf4qhg1shqqldadmyyha7p"
|
||||
else
|
||||
"0rld7i659ccp4gvcvdkqkc1lajvlss5d4qndzf9aqiksvdknv62x";
|
||||
"0yiqwwqs3z9zzkfgqzjwqqdr2vaj1ia5xychs9fgxix3y4j934da";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -49,19 +49,19 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "flashplayer-standalone-${version}";
|
||||
version = "30.0.0.154";
|
||||
version = "31.0.0.108";
|
||||
|
||||
src = fetchurl {
|
||||
url =
|
||||
if debug then
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/30/flash_player_sa_linux_debug.x86_64.tar.gz"
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_sa_linux_debug.x86_64.tar.gz"
|
||||
else
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/30/flash_player_sa_linux.x86_64.tar.gz";
|
||||
"https://fpdownload.macromedia.com/pub/flashplayer/updaters/31/flash_player_sa_linux.x86_64.tar.gz";
|
||||
sha256 =
|
||||
if debug then
|
||||
"133zhgc5fh6s0xr93lv70xcrgvaj7lhjxk5w7xz79h3mp185p3g4"
|
||||
"0i047fvj3x9lx7x8bf7jl1ybf9xpmr6g77q0h7n2s8qvscsw0pmm"
|
||||
else
|
||||
"1xz1l5q0zahalh0l4mkrwhmfrmcli3sckg3rcfnllizq9rbfzcmr";
|
||||
"19wfs452ix57yfi4cy2din6mi5jky9hjzbdjny1bl8w32fy8xmm3";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ unzip ];
|
||||
|
@ -42,8 +42,10 @@
|
||||
# Wrapper runtime
|
||||
, coreutils
|
||||
, glibcLocales
|
||||
, hicolor-icon-theme
|
||||
, defaultIconTheme
|
||||
, runtimeShell
|
||||
, shared-mime-info
|
||||
, gsettings-desktop-schemas
|
||||
|
||||
# Whether to disable multiprocess support to work around crashing tabs
|
||||
# TODO: fix the underlying problem instead of this terrible work-around
|
||||
@ -264,14 +266,19 @@ stdenv.mkDerivation rec {
|
||||
EOF
|
||||
|
||||
WRAPPER_XDG_DATA_DIRS=${concatMapStringsSep ":" (x: "${x}/share") [
|
||||
hicolor-icon-theme
|
||||
defaultIconTheme
|
||||
shared-mime-info
|
||||
]}
|
||||
WRAPPER_XDG_DATA_DIRS+=":"${concatMapStringsSep ":" (x: "${x}/share/gsettings-schemas/${x.name}") [
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
]};
|
||||
|
||||
# Generate wrapper
|
||||
mkdir -p $out/bin
|
||||
cat > "$out/bin/tor-browser" << EOF
|
||||
#! ${stdenv.shell}
|
||||
#! ${runtimeShell}
|
||||
set -o errexit -o nounset
|
||||
|
||||
PATH=${makeBinPath [ coreutils ]}
|
||||
|
@ -1,14 +0,0 @@
|
||||
diff --git a/base/numerics/safe_math_shared_impl.h b/base/numerics/safe_math_shared_impl.h
|
||||
index 99f230ce7e9a..de2415d402f5 100644
|
||||
--- a/base/numerics/safe_math_shared_impl.h
|
||||
+++ b/base/numerics/safe_math_shared_impl.h
|
||||
@@ -21,8 +21,7 @@
|
||||
#if !defined(__native_client__) && \
|
||||
((defined(__clang__) && \
|
||||
((__clang_major__ > 3) || \
|
||||
- (__clang_major__ == 3 && __clang_minor__ >= 4))) || \
|
||||
- (defined(__GNUC__) && __GNUC__ >= 5))
|
||||
+ (__clang_major__ == 3 && __clang_minor__ >= 4))))
|
||||
#include "base/numerics/safe_math_clang_gcc_impl.h"
|
||||
#define BASE_HAS_OPTIMIZED_SAFE_MATH (1)
|
||||
#else
|
@ -1,66 +0,0 @@
|
||||
--- a/chrome/browser/devtools/devtools_file_system_indexer.cc
|
||||
+++ b/chrome/browser/devtools/devtools_file_system_indexer.cc
|
||||
@@ -34,7 +34,6 @@ using base::TimeDelta;
|
||||
using base::TimeTicks;
|
||||
using content::BrowserThread;
|
||||
using std::map;
|
||||
-using std::set;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
|
||||
@@ -191,7 +190,7 @@ vector<FilePath> Index::Search(const string& query) {
|
||||
if (trigram != kUndefinedTrigram)
|
||||
trigrams.push_back(trigram);
|
||||
}
|
||||
- set<FileId> file_ids;
|
||||
+ std::set<FileId> file_ids;
|
||||
bool first = true;
|
||||
vector<Trigram>::const_iterator it = trigrams.begin();
|
||||
for (; it != trigrams.end(); ++it) {
|
||||
@@ -203,7 +202,7 @@ vector<FilePath> Index::Search(const string& query) {
|
||||
first = false;
|
||||
continue;
|
||||
}
|
||||
- set<FileId> intersection = base::STLSetIntersection<set<FileId> >(
|
||||
+ std::set<FileId> intersection = base::STLSetIntersection<std::set<FileId> >(
|
||||
file_ids, index_[trigram]);
|
||||
file_ids.swap(intersection);
|
||||
}
|
||||
diff --git a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
|
||||
index 94bb9161ec85..e40c6387f72e 100644
|
||||
--- a/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
|
||||
+++ b/third_party/WebKit/Source/platform/wtf/typed_arrays/ArrayBufferContents.h
|
||||
@@ -63,7 +63,7 @@ class WTF_EXPORT ArrayBufferContents {
|
||||
allocation_length_(0),
|
||||
data_(data),
|
||||
data_length_(0),
|
||||
- kind_(AllocationKind::kNormal),
|
||||
+ kind_(WTF::ArrayBufferContents::AllocationKind::kNormal),
|
||||
deleter_(deleter) {}
|
||||
DataHandle(void* allocation_base,
|
||||
size_t allocation_length,
|
||||
@@ -94,11 +94,11 @@ class WTF_EXPORT ArrayBufferContents {
|
||||
reinterpret_cast<uintptr_t>(allocation_base_) +
|
||||
allocation_length_);
|
||||
switch (kind_) {
|
||||
- case AllocationKind::kNormal:
|
||||
+ case WTF::ArrayBufferContents::AllocationKind::kNormal:
|
||||
DCHECK(deleter_);
|
||||
deleter_(data_);
|
||||
return;
|
||||
- case AllocationKind::kReservation:
|
||||
+ case WTF::ArrayBufferContents::AllocationKind::kReservation:
|
||||
ReleaseReservedMemory(allocation_base_, allocation_length_);
|
||||
return;
|
||||
}
|
||||
--- a/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc.orig 2017-08-15 12:45:59.433532111 +0000
|
||||
+++ b/third_party/webrtc/modules/audio_processing/aec3/aec_state.cc 2017-08-15 17:52:59.691328825 +0000
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "webrtc/modules/audio_processing/aec3/aec_state.h"
|
||||
|
||||
-#include <math.h>
|
||||
+#include <cmath>
|
||||
#include <numeric>
|
||||
#include <vector>
|
||||
|
@ -1,27 +0,0 @@
|
||||
commit 96c271f8ab2be7ea4199078ea65ac50c6ada4685
|
||||
Author: Pawel Hajdan, Jr <phajdan.jr@chromium.org>
|
||||
Date: Wed Jul 26 21:51:54 2017 +0000
|
||||
|
||||
wip
|
||||
|
||||
diff --git a/tools/gn/bootstrap/bootstrap.py b/tools/gn/bootstrap/bootstrap.py
|
||||
index 1390560f8e37..ff2ae57c46b0 100755
|
||||
--- a/tools/gn/bootstrap/bootstrap.py
|
||||
+++ b/tools/gn/bootstrap/bootstrap.py
|
||||
@@ -449,6 +449,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/metrics/histogram_base.cc',
|
||||
'base/metrics/histogram_functions.cc',
|
||||
'base/metrics/histogram_samples.cc',
|
||||
+ 'base/metrics/histogram_snapshot_manager.cc',
|
||||
'base/metrics/metrics_hashes.cc',
|
||||
'base/metrics/persistent_histogram_allocator.cc',
|
||||
'base/metrics/persistent_memory_allocator.cc',
|
||||
@@ -534,7 +535,7 @@ def write_gn_ninja(path, root_gen_dir, options):
|
||||
'base/trace_event/heap_profiler_allocation_context_tracker.cc',
|
||||
'base/trace_event/heap_profiler_allocation_register.cc',
|
||||
'base/trace_event/heap_profiler_event_filter.cc',
|
||||
- 'base/trace_event/heap_profiler_event_writer.cc',
|
||||
+ 'base/trace_event/heap_profiler_heap_dump_writer.cc',
|
||||
'base/trace_event/heap_profiler_serialization_state.cc',
|
||||
'base/trace_event/heap_profiler_stack_frame_deduplicator.cc',
|
||||
'base/trace_event/heap_profiler_type_name_deduplicator.cc',
|
@ -13,11 +13,11 @@
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${product}-${version}";
|
||||
product = "vivaldi";
|
||||
version = "1.15.1147.42-1";
|
||||
version = "1.15.1147.64-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/stable/${product}-stable_${version}_amd64.deb";
|
||||
sha256 = "15cajvn2sv05qdp3y538n2xvyy3il49q8zi5928z1mfirjz3dlwh";
|
||||
sha256 = "01xbfrrq2kj75cb6grpq9a4y88j1s87h2nnvy1fmyb4a2db6y0ag";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
@ -1,37 +1,33 @@
|
||||
{ stdenv, fetchurl
|
||||
, dbus-glib, gtk2, gtk3, libexif, libpulseaudio, libXScrnSaver, ninja, nss
|
||||
, pciutils, pkgconfig, python2, xdg_utils
|
||||
, dbus-glib, gtk3, libexif, libXScrnSaver, ninja, nss
|
||||
, pciutils, pkgconfig, python2, xdg_utils, gn
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${product}-${version}";
|
||||
product = "vivaldi-ffmpeg-codecs";
|
||||
version = "61.0.3163.91";
|
||||
version = "69.0.3497.73";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
|
||||
sha512 = "3f07vwbxllrwy3agqxa6ndcix23vai18i178zscmk0y68flhzffyjdvrwlg7dzlwgiqypj2cyl21qb4qmcay2ilgw9vnr9fql2x0w7p";
|
||||
sha512 = "3qyzxdybiszwy62izr35wffnh1a1plg9y536vrmd4b2xl8p4nz18c7439blr0cdzsr5qplgrdl64446a27mkyhbw8c3iy0gb4zgb5j9";
|
||||
};
|
||||
|
||||
buildInputs = [ ];
|
||||
|
||||
nativeBuildInputs = [
|
||||
dbus-glib gtk2 gtk3 libexif libpulseaudio libXScrnSaver ninja nss pciutils pkgconfig
|
||||
python2 xdg_utils
|
||||
gtk3 libexif libXScrnSaver ninja nss pciutils python2 xdg_utils gn
|
||||
pkgconfig dbus-glib
|
||||
];
|
||||
|
||||
patches = [
|
||||
./chromium-gn-bootstrap-r14.patch
|
||||
./chromium-gcc-r1.patch
|
||||
./chromium-gcc5-r1.patch
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gconf=false use_gio=false use_gnome_keyring=false use_kerberos=false use_cups=false use_sysroot=false use_gold=false linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false is_clang=false is_component_build=true is_debug=false symbol_level=0"
|
||||
python tools/gn/bootstrap/bootstrap.py -v -s --no-clean --gn-gen-args "$args"
|
||||
out/Release/gn gen out/Release -v --args="$args"
|
||||
local args="ffmpeg_branding=\"ChromeOS\" proprietary_codecs=true enable_hevc_demuxing=true use_gnome_keyring=false use_sysroot=false use_gold=false use_allocator=\"none\" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=false enable_nacl_nonsfi=false is_clang=false clang_use_chrome_plugins=false is_component_build=true is_debug=false symbol_level=0 use_custom_libcxx=false use_lld=false use_jumbo_build=false"
|
||||
gn gen out/Release -v --args="$args"
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
@ -53,6 +49,5 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.lgpl21;
|
||||
maintainers = with maintainers; [ lluchs ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
@ -26,11 +26,12 @@ hash=${prefetch[0]}
|
||||
path=${prefetch[1]}
|
||||
|
||||
echo "vivaldi: $vivaldi_version_old -> $vivaldi_version"
|
||||
echo "$path"
|
||||
(cd "$root" && update-source-version vivaldi "$vivaldi_version" "$hash")
|
||||
|
||||
# Check vivaldi-ffmpeg-codecs version.
|
||||
chromium_version_old=$(version vivaldi-ffmpeg-codecs)
|
||||
chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep -A2 -i '^chrome\/' | grep '^[0-9]\+\.[0-9]\+\.[1-9][0-9]\+\.[0-9]\+')
|
||||
chromium_version=$(bsdtar xOf "$path" data.tar.xz | bsdtar xOf - ./opt/vivaldi/vivaldi-bin | strings | grep '^[0-9]\{2,\}\.[0-9]\+\.[0-9]\{4,\}\+\.[0-9]\+$')
|
||||
|
||||
if [[ "$chromium_version" != "$chromium_version_old" ]]; then
|
||||
echo "vivaldi-ffmpeg-codecs: $chromium_version_old -> $chromium_version"
|
||||
|
@ -14,11 +14,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "charles-${version}";
|
||||
version = "4.2.6";
|
||||
version = "4.2.7";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.charlesproxy.com/assets/release/${version}/charles-proxy-${version}.tar.gz";
|
||||
sha256 = "1hjfimyr9nnbbxadwni02d2xl64ybarh42l1g6hlslq5qwl8ywzb";
|
||||
sha256 = "1nycw3wpbfwj4ijjaq5k0f4xipj8j605fs0yjzgl66gmv7r583rd";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
|
@ -4,17 +4,18 @@ with rustPlatform;
|
||||
|
||||
buildRustPackage rec {
|
||||
name = "click-${version}";
|
||||
version = "0.3.1";
|
||||
rev = "b5dfb4a8f8344330a098cb61523695dfe0fd296a";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
rev = "v${version}";
|
||||
owner = "databricks";
|
||||
repo = "click";
|
||||
sha256 = "0a2hq4hcxkkx7gs5dv7sr3j5jy2dby4r6y090z7zl2xy5wydr7bi";
|
||||
inherit rev;
|
||||
sha256 = "0sbj41kypn637z1w115w2h5v6bxz3y6w5ikgpx3ihsh89lkc19d2";
|
||||
};
|
||||
|
||||
cargoSha256 = "03vgbkv9xsnx44vivbbhjgxv9drp0yjnimgy6hwm32x74r00k3hj";
|
||||
cargoSha256 = "05asqp5312a1g26pvf5hgqhc4kj3iw2hdvml2ycvga33sxb7zm7r";
|
||||
|
||||
patches = [ ./fix_cargo_lock_version.patch ];
|
||||
|
||||
buildInputs = stdenv.lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
|
||||
|
||||
|
@ -0,0 +1,13 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index ff80350..c86c6fe 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -111,7 +111,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "click"
|
||||
-version = "0.3.1"
|
||||
+version = "0.3.2"
|
||||
dependencies = [
|
||||
"ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"base64 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "cni-plugins-${version}";
|
||||
version = "0.7.1";
|
||||
version = "0.7.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containernetworking";
|
||||
repo = "plugins";
|
||||
rev = "v${version}";
|
||||
sha256 = "1sywllwnr6lc812sgkqjdd3y10r82shl88dlnwgnbgzs738q2vp2";
|
||||
sha256 = "1saaszzxy4x3jkqd9ac6cphmzfim7x84h28c9i7az46px40blzm1";
|
||||
};
|
||||
|
||||
buildInputs = [ go ];
|
||||
|
@ -1,25 +1,15 @@
|
||||
{ stdenv, fetchurl, makeWrapper, jre
|
||||
, version ? "1.5" }:
|
||||
, version ? "1.6" }:
|
||||
|
||||
let
|
||||
versionMap = {
|
||||
"1.3" = {
|
||||
flinkVersion = "1.3.3";
|
||||
scalaVersion = "2.11";
|
||||
sha256 = "0gfm48k5adr14gnhqri9cd01i9dprd0nwmnnz3yrpd20nq4ap4qy";
|
||||
hadoopBundle = "-hadoop27";
|
||||
};
|
||||
"1.4" = {
|
||||
flinkVersion = "1.4.2";
|
||||
scalaVersion = "2.11";
|
||||
sha256 = "0x3cikys5brin0kx9zr69xfp8k5w6g8141yrrr26ks7gpss2x636";
|
||||
hadoopBundle = "";
|
||||
};
|
||||
"1.5" = {
|
||||
flinkVersion = "1.5.0";
|
||||
scalaVersion = "2.11";
|
||||
sha256 = "0n5023dj8ivmbhqxmb3abmfh3ahb9vmcywq5i0ll5p7xxcw2c1cv";
|
||||
hadoopBundle = "";
|
||||
flinkVersion = "1.5.3";
|
||||
sha256 = "1fq7pd5qpchkkwhh30h3l9rhf298jfcfv2dc50z39qmwwijdjajk";
|
||||
};
|
||||
"1.6" = {
|
||||
flinkVersion = "1.6.0";
|
||||
sha256 = "18fnpldzs36qx7myr9rmym9g9p3qkgnd1z3lfkpbaw590ddaqr9i";
|
||||
};
|
||||
};
|
||||
in
|
||||
@ -30,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||
name = "flink-${flinkVersion}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://apache/flink/${name}/${name}-bin${hadoopBundle}-scala_${scalaVersion}.tgz";
|
||||
url = "mirror://apache/flink/${name}/${name}-bin-scala_2.11.tgz";
|
||||
inherit sha256;
|
||||
};
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "heptio-ark-${version}";
|
||||
version = "0.9.0";
|
||||
version = "0.9.4";
|
||||
|
||||
goPackagePath = "github.com/heptio/ark";
|
||||
|
||||
@ -10,7 +10,7 @@ buildGoPackage rec {
|
||||
rev = "v${version}";
|
||||
owner = "heptio";
|
||||
repo = "ark";
|
||||
sha256 = "0b3jsgs35l8kk63pjnqn3911pyb397fyvsmd3jd8vzjawisgpdp7";
|
||||
sha256 = "01z0zkw7l6haxky9l45iqqnvs6104xx4195jm250nv9j1x8n59ai";
|
||||
};
|
||||
|
||||
postInstall = "rm $bin/bin/generate";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go_1_9, go-bindata, makeWrapper, rsync
|
||||
{ stdenv, lib, fetchFromGitHub, removeReferencesTo, which, go_1_10, go-bindata, makeWrapper, rsync
|
||||
, components ? [
|
||||
"cmd/kubeadm"
|
||||
"cmd/kubectl"
|
||||
@ -15,17 +15,16 @@ with lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "kubernetes-${version}";
|
||||
version = "1.10.5";
|
||||
version = "1.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubernetes";
|
||||
repo = "kubernetes";
|
||||
rev = "v${version}";
|
||||
sha256 = "1k6ayb43l68l0qw31cc4k1pwvm8aks3l2xm0gdxdxbbww1mnzix2";
|
||||
sha256 = "1gwb5gs9l0adv3qc70wf8dwvbjh1mmgd3hh1jkwsbbnach28dvzb";
|
||||
};
|
||||
|
||||
# Build using golang v1.9 in accordance with https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md#external-dependencies
|
||||
buildInputs = [ removeReferencesTo makeWrapper which go_1_9 rsync go-bindata ];
|
||||
buildInputs = [ removeReferencesTo makeWrapper which go_1_10 rsync go-bindata ];
|
||||
|
||||
outputs = ["out" "man" "pause"];
|
||||
|
||||
@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||
patchShebangs ./hack
|
||||
'';
|
||||
|
||||
WHAT="--use_go_build ${concatStringsSep " " components}";
|
||||
WHAT="${concatStringsSep " " components}";
|
||||
|
||||
postBuild = ''
|
||||
./hack/generate-docs.sh
|
||||
@ -53,8 +52,11 @@ stdenv.mkDerivation rec {
|
||||
cp build/pause/pause "$pause/bin/pause"
|
||||
cp -R docs/man/man1 "$man/share/man"
|
||||
|
||||
cp cluster/addons/addon-manager/namespace.yaml $out/share
|
||||
cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
|
||||
patchShebangs $out/bin/kube-addons
|
||||
substituteInPlace $out/bin/kube-addons \
|
||||
--replace /opt/namespace.yaml $out/share/namespace.yaml
|
||||
wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
|
||||
|
||||
$out/bin/kubectl completion bash > $out/share/bash-completion/completions/kubectl
|
||||
@ -62,7 +64,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
find $out/bin $pause/bin -type f -exec remove-references-to -t ${go_1_9} '{}' +
|
||||
find $out/bin $pause/bin -type f -exec remove-references-to -t ${go_1_10} '{}' +
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -2,12 +2,12 @@ GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
colorize (0.8.1)
|
||||
commander (4.4.5)
|
||||
commander (4.4.6)
|
||||
highline (~> 1.7.2)
|
||||
diffy (3.2.1)
|
||||
highline (1.7.10)
|
||||
polyglot (0.3.5)
|
||||
terraform_landscape (0.1.18)
|
||||
terraform_landscape (0.2.0)
|
||||
colorize (~> 0.7)
|
||||
commander (~> 4.4)
|
||||
diffy (~> 3.0)
|
||||
|
@ -1,19 +1,18 @@
|
||||
{ lib, bundlerEnv, ruby }:
|
||||
{ lib, bundlerApp, ruby }:
|
||||
let
|
||||
version = (import ./gemset.nix).terraform_landscape.version;
|
||||
in bundlerApp {
|
||||
pname = "terraform_landscape";
|
||||
|
||||
bundlerEnv rec {
|
||||
name = "terraform-landscape-${version}";
|
||||
|
||||
version = (import gemset).terraform_landscape.version;
|
||||
inherit ruby;
|
||||
gemfile = ./Gemfile;
|
||||
lockfile = ./Gemfile.lock;
|
||||
gemset = ./gemset.nix;
|
||||
gemdir = ./.;
|
||||
exes = [ "landscape" ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Improve Terraform's plan output to be easier to read and understand";
|
||||
homepage = https://github.com/coinbase/terraform-landscape;
|
||||
license = with licenses; apsl20;
|
||||
maintainers = with maintainers; [ mbode ];
|
||||
maintainers = with maintainers; [ mbode manveru ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
{
|
||||
colorize = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
|
||||
@ -9,14 +11,18 @@
|
||||
};
|
||||
commander = {
|
||||
dependencies = ["highline"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0sry6raysvg9qsx5nqqw09n8r8hvcsqzvci7xp2qk7jq3s9mgvnn";
|
||||
sha256 = "11sd2sb0id2dbxkv4pvymdiia1xxhms45kh4nr8mryqybad0fwwf";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.4.5";
|
||||
version = "4.4.6";
|
||||
};
|
||||
diffy = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg";
|
||||
@ -25,6 +31,8 @@
|
||||
version = "3.2.1";
|
||||
};
|
||||
highline = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
|
||||
@ -33,6 +41,8 @@
|
||||
version = "1.7.10";
|
||||
};
|
||||
polyglot = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1bqnxwyip623d8pr29rg6m8r0hdg08fpr2yb74f46rn1wgsnxmjr";
|
||||
@ -42,15 +52,19 @@
|
||||
};
|
||||
terraform_landscape = {
|
||||
dependencies = ["colorize" "commander" "diffy" "treetop"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0476q2kx88w9srj7rlzl6skrza3pdgyym7zksw78infsb2105lg9";
|
||||
sha256 = "1mlpbsmysyhhbjx40gbwxr4mx7d3qpblbf5ms2v607b8a3saapzj";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.18";
|
||||
version = "0.2.0";
|
||||
};
|
||||
treetop = {
|
||||
dependencies = ["polyglot"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0g31pijhnv7z960sd09lckmw9h8rs3wmc8g4ihmppszxqm99zpv7";
|
||||
|
47
pkgs/applications/networking/ftp/taxi/default.nix
Normal file
47
pkgs/applications/networking/ftp/taxi/default.nix
Normal file
@ -0,0 +1,47 @@
|
||||
{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite
|
||||
, gtk3, gnome3, libsoup, libsecret, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "taxi";
|
||||
version = "0.0.1";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Alecaddd";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "01c552w68576pnsyqbwy3hjhbww6vys3r3s0wxjdiscjqj1aawqg";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome3.libgee
|
||||
granite
|
||||
gtk3
|
||||
libsecret
|
||||
libsoup
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The FTP Client that drives you anywhere";
|
||||
homepage = https://github.com/Alecaddd/taxi;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{ callPackage, stdenv }:
|
||||
|
||||
let
|
||||
stableVersion = "2.1.9";
|
||||
stableVersion = "2.1.10";
|
||||
# Currently there is no preview version.
|
||||
previewVersion = stableVersion;
|
||||
addVersion = args:
|
||||
@ -10,8 +10,8 @@ let
|
||||
in args // { inherit version branch; };
|
||||
mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
|
||||
mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
|
||||
guiSrcHash = "0gpif6f7zqz2n8q3pkr8xv3fdc904hq69661w8f1fna360xvksd7";
|
||||
serverSrcHash = "1y19jzyyz0sjjxkrpgr6z10irb47v7d8khdvk5nzmgnjfxv875yx";
|
||||
guiSrcHash = "0vn33dcd3sfj5gna79vwm35l8aznga91a8r7i6q06dr4c2svml15";
|
||||
serverSrcHash = "062dai1rb04dyrlrjgk0gr5hx0la8n1nalx0il1i7k1inwy52gj5";
|
||||
in {
|
||||
guiStable = mkGui {
|
||||
stable = true;
|
||||
|
@ -1,5 +1,5 @@
|
||||
{ stdenv, fetchFromGitHub, zlib
|
||||
, ocaml, jbuilder, opam, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
|
||||
, ocaml, dune, ocamlfuse, findlib, gapi_ocaml, ocaml_sqlite3, camlidl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "google-drive-ocamlfuse-${version}";
|
||||
@ -12,12 +12,12 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1rjm2jcc93sz7l25zbgqal81534vvvbmwy7847s0k8fkr5nq97gp";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ jbuilder opam ];
|
||||
nativeBuildInputs = [ dune ];
|
||||
|
||||
buildInputs = [ zlib ocaml ocamlfuse findlib gapi_ocaml ocaml_sqlite3 camlidl ];
|
||||
|
||||
buildPhase = "jbuilder build @install";
|
||||
installPhase = "mkdir $out && jbuilder install --prefix $out";
|
||||
installPhase = "mkdir $out && dune install --prefix $out";
|
||||
|
||||
meta = {
|
||||
homepage = http://gdfuse.forge.ocamlcore.org/;
|
||||
|
@ -0,0 +1,55 @@
|
||||
{ stdenv, fetchFromGitLab, fetchFromGitHub, qmake
|
||||
, qtquickcontrols2, qtmultimedia, qtgraphicaleffects
|
||||
, libqmatrixclient
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
libqmatrixclient_git = libqmatrixclient.overrideDerivation (oldAttrs: {
|
||||
name = "libqmatrixclient-git-for-matrique";
|
||||
src = fetchFromGitHub {
|
||||
owner = "QMatrixClient";
|
||||
repo = "libqmatrixclient";
|
||||
rev = "d9ff200f";
|
||||
sha256 = "0qxkffg1499wnn8rbndq6z51sz6hiij2pkp40cvs530sl0zg0c69";
|
||||
};
|
||||
});
|
||||
|
||||
SortFilterProxyModel = fetchFromGitLab {
|
||||
owner = "b0";
|
||||
repo = "SortFilterProxyModel";
|
||||
rev = "3c2c125c";
|
||||
sha256 = "1494dvq7kiq0ymf5f9hr47pw80zv3m3dncnaw1pnzs7mhkf2s5fr";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "matrique-${version}";
|
||||
version = "250";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "b0";
|
||||
repo = "matrique";
|
||||
rev = version;
|
||||
sha256 = "0l7ag2q3l8ixczwc43igvkkl81g5s5j032gzizmgpzb1bjpdgry7";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
rm -r include/*
|
||||
ln -sf ${libqmatrixclient_git.src} include/libqmatrixclient
|
||||
ln -sf ${SortFilterProxyModel} include/SortFilterProxyModel
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ qmake ];
|
||||
buildInputs = [
|
||||
qtquickcontrols2 qtmultimedia qtgraphicaleffects
|
||||
libqmatrixclient_git
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
inherit (src.meta) homepage;
|
||||
description = "A glossy client for Matrix";
|
||||
maintainers = with maintainers; [ fpletz ];
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
, AVFoundation ? null }:
|
||||
|
||||
let
|
||||
version = "1.16.1";
|
||||
version = "1.16.3";
|
||||
rev = "v${version}";
|
||||
|
||||
in mkDerivation rec {
|
||||
@ -16,7 +16,7 @@ in mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "qTox";
|
||||
repo = "qTox";
|
||||
sha256 = "05cz67yvdqjv1dmqycnc5rd0275zh94wyaa7sqdkr1iw8k5h955n";
|
||||
sha256 = "0qd4nvbrjnnfnk8ghsxq3cd1n1qf1ck5zg6ib11ij2pg03s146pa";
|
||||
inherit rev;
|
||||
};
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
let configFile = writeText "riot-config.json" conf; in
|
||||
stdenv.mkDerivation rec {
|
||||
name= "riot-web-${version}";
|
||||
version = "0.16.0";
|
||||
version = "0.16.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
|
||||
sha256 = "1nl0ih5flhp57k96hv6nl5pzrm3r9piqmwzirz9nz8k9803mqp5m";
|
||||
sha256 = "14k8hsz2i1nd126jprvi45spdxawk4c8nb3flkrg7rmjdp5sski2";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -13,11 +13,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
|
||||
let
|
||||
inherit (stdenv.lib) concatStringsSep makeBinPath optional;
|
||||
|
||||
version = "2.3.128305.0716";
|
||||
version = "2.4.129780.0915";
|
||||
srcs = {
|
||||
x86_64-linux = fetchurl {
|
||||
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
|
||||
sha256 = "1jpw5sclr5bhif559hmnyiggjh6gkm1smiw34y3ad4k8xhag9dkh";
|
||||
sha256 = "0s4014ymc92rwpagcwjhmwwfz0vq35wiq2nhh6nlxcrr6jl4wd78";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "ipfs-migrator-${version}";
|
||||
version = "6";
|
||||
version = "7";
|
||||
|
||||
goPackagePath = "github.com/ipfs/fs-repo-migrations";
|
||||
|
||||
@ -11,8 +11,8 @@ buildGoPackage rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "ipfs";
|
||||
repo = "fs-repo-migrations";
|
||||
rev = "a89e9769b9cac25ad9ca31c7e9a4445c7966d35b";
|
||||
sha256 = "0x4mbkx7wlqjmkg6852hljq947v9y9k3hjd5yfj7kka1hpvxd7bn";
|
||||
rev = "4e8e0b41d7348646c719d572c678c3d0677e541a";
|
||||
sha256 = "1i6izncgc3wgabppglnnrslffvwrv3cazbdhsk4vjfsd66hb4d37";
|
||||
};
|
||||
|
||||
patches = [ ./lru-repo-path-fix.patch ];
|
||||
|
17
pkgs/applications/networking/ipfs-migrator/deps.nix
generated
17
pkgs/applications/networking/ipfs-migrator/deps.nix
generated
@ -1,13 +1,4 @@
|
||||
[
|
||||
{
|
||||
goPackagePath = "github.com/dustin/go-humanize";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = https://github.com/dustin/go-humanize;
|
||||
rev = "79e699ccd02f240a1f1fbbdcee7e64c1c12e41aa";
|
||||
sha256 = "0awfqszgjw8qrdw31v74jnvj1jbp7czhd8aq59j57yyj4hy50fzj";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/jbenet/goprocess";
|
||||
fetch = {
|
||||
@ -40,8 +31,8 @@
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = https://github.com/hashicorp/golang-lru;
|
||||
rev = "0a025b7e63adc15a622f29b0b2c4c3848243bbf6";
|
||||
sha256 = "1iq7lbpsz7ks052mpznmkf8s4k43p51z4dik2n9ivrxk666q2wxi";
|
||||
rev = "20f1fb78b0740ba8c3cb143a61e86ba5c8669768";
|
||||
sha256 = "12k2cp2k615fjvfa5hyb9k2alian77wivds8s65diwshwv41939f";
|
||||
};
|
||||
}
|
||||
{
|
||||
@ -49,8 +40,8 @@
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/net";
|
||||
rev = "71a035914f99bb58fe82eac0f1289f10963d876c";
|
||||
sha256 = "06m16c9vkwc8m2mcxcxa7p8mb26ikc810lgzd5m8k1r6lp3hc8wm";
|
||||
rev = "26e67e76b6c3f6ce91f7c52def5af501b4e0f3a2";
|
||||
sha256 = "17bqkd64zksi1578lb10ls4qf5lbqs7shfjcc6bi97y1qz5k31c4";
|
||||
};
|
||||
}
|
||||
]
|
||||
|
@ -9,12 +9,22 @@ pythonPackages.buildPythonApplication rec {
|
||||
sha256 = "0105glmlkpkjqbz350dxxasvlfx9dk0him9vwbl86andzi106ygz";
|
||||
};
|
||||
|
||||
buildInputs = with pythonPackages; [ setuptools_scm ];
|
||||
nativeBuildInputs = with pythonPackages; [ sphinx setuptools_scm ];
|
||||
|
||||
propagatedBuildInputs = with pythonPackages; [
|
||||
pythonPackages.notmuch chardet dkimpy
|
||||
] ++ stdenv.lib.optional (!pythonPackages.isPy3k) subprocess32;
|
||||
|
||||
postBuild = ''
|
||||
make -C docs man
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
mandir="$out/share/man/man1"
|
||||
mkdir -p "$mandir"
|
||||
cp docs/build/man/* "$mandir"
|
||||
'';
|
||||
|
||||
makeWrapperArgs = [
|
||||
''--prefix PATH ':' "${notmuch}/bin"''
|
||||
];
|
||||
|
@ -3,12 +3,12 @@
|
||||
with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "6.7.1";
|
||||
version = "6.7.2";
|
||||
name = "frostwire-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.noarch.tar.gz";
|
||||
sha256 = "1crhiksgky65wvb4fvqablsvixj04hbaacz23mskwrc63n4jaz0p";
|
||||
sha256 = "1dxk2cmwbn4ahkmr8qpiq1dpkkyswg5wz1cnv36izafpr87lxfvj";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
54
pkgs/applications/networking/weather/meteo/default.nix
Normal file
54
pkgs/applications/networking/weather/meteo/default.nix
Normal file
@ -0,0 +1,54 @@
|
||||
{ stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, granite, gtk3
|
||||
, gnome3, json-glib, libsoup, clutter, clutter-gtk, libchamplain, webkitgtk
|
||||
, libappindicator, desktop-file-utils, appstream, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "meteo";
|
||||
version = "0.8.5";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
owner = "bitseater";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1mc2djhkg0nzcjmy87l1wqwni48vgpqh8s1flr90pipk12a1mh7n";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
desktop-file-utils
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
clutter
|
||||
clutter-gtk
|
||||
gnome3.geocode-glib
|
||||
gtk3
|
||||
json-glib
|
||||
libappindicator
|
||||
libchamplain
|
||||
libsoup
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Know the forecast of the next hours & days";
|
||||
homepage = https://gitlab.com/bitseater/meteo;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
49
pkgs/applications/office/aesop/default.nix
Normal file
49
pkgs/applications/office/aesop/default.nix
Normal file
@ -0,0 +1,49 @@
|
||||
{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, granite, gtk3, gnome3
|
||||
, desktop-file-utils, json-glib, libsoup, poppler, gobjectIntrospection, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "aesop";
|
||||
version = "1.0.5";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lainsce";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "17hjg4qcy8q9xl170yapbhn9vdsn3jf537jsggq51pp0fnhvsnqs";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gobjectIntrospection
|
||||
meson
|
||||
ninja
|
||||
pkgconfig
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome3.libgee
|
||||
granite
|
||||
gtk3
|
||||
json-glib
|
||||
libsoup
|
||||
poppler
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson/post_install.py
|
||||
patchShebangs meson/post_install.py
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "The simplest PDF viewer around";
|
||||
homepage = https://github.com/lainsce/aesop;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ worldofpeace ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
53
pkgs/applications/office/bookworm/default.nix
Normal file
53
pkgs/applications/office/bookworm/default.nix
Normal file
@ -0,0 +1,53 @@
|
||||
{ stdenv, fetchFromGitHub, vala, pkgconfig, libxml2, cmake, ninja, gtk3, granite, gnome3
|
||||
, gobjectIntrospection, sqlite, poppler, poppler_utils, html2text, unzip, unar, wrapGAppsHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "bookworm";
|
||||
version = "1.0.0";
|
||||
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "babluboy";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0nv1nxird0s0qfhh8fr82mkj4qimhklw1bwcjwmvjdsvsxxs9520";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
gobjectIntrospection
|
||||
libxml2
|
||||
ninja
|
||||
pkgconfig
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = with gnome3; [
|
||||
glib
|
||||
granite
|
||||
gtk3
|
||||
html2text
|
||||
libgee
|
||||
poppler
|
||||
sqlite
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : "${stdenv.lib.makeBinPath [ unzip unar poppler_utils html2text ]}"
|
||||
)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A simple, focused eBook reader";
|
||||
longDescription = ''
|
||||
Read the books you love without having to worry about different format complexities like epub, pdf, mobi, cbr, etc.
|
||||
'';
|
||||
homepage = https://babluboy.github.io/bookworm/;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -3,8 +3,8 @@
|
||||
rec {
|
||||
major = "6";
|
||||
minor = "1";
|
||||
patch = "0";
|
||||
tweak = "3";
|
||||
patch = "1";
|
||||
tweak = "2";
|
||||
|
||||
subdir = "${major}.${minor}.${patch}";
|
||||
|
||||
@ -12,6 +12,6 @@ rec {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
||||
sha256 = "54eccd268f75d62fa6ab78d25685719c109257e1c0f4d628eae92ec09632ebd8";
|
||||
sha256 = "228166908a3404cbb8e6e662f44b1af8644c0589b2309fadce89dcef112fd09d";
|
||||
};
|
||||
}
|
||||
|
@ -48,14 +48,14 @@ let
|
||||
|
||||
translations = fetchSrc {
|
||||
name = "translations";
|
||||
sha256 = "140i0q6nyi2l6nv2b3n7s7mggm2rb1ws3h9awa9y6m2iads54qm7";
|
||||
sha256 = "2933d0898fbc8ea32cb39b773cf49c5f7da165f75a33522ff91c88d7bd0c7440";
|
||||
};
|
||||
|
||||
# TODO: dictionaries
|
||||
|
||||
help = fetchSrc {
|
||||
name = "help";
|
||||
sha256 = "0ayssl5ivhyzxi3gz3h4yhp8hq7ihig6n6iijbks5f1sm7dwridv";
|
||||
sha256 = "41e1af094f2ca5a9ab88894c2dceca2d91e6c28568d7f002f56c647e973cc595";
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -105,11 +105,11 @@
|
||||
md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
|
||||
}
|
||||
{
|
||||
name = "curl-7.60.0.tar.gz";
|
||||
url = "http://dev-www.libreoffice.org/src/curl-7.60.0.tar.gz";
|
||||
sha256 = "e9c37986337743f37fd14fe8737f246e97aec94b39d1b71e8a5973f72a9fc4f5";
|
||||
name = "curl-7.61.1.tar.gz";
|
||||
url = "http://dev-www.libreoffice.org/src/curl-7.61.1.tar.gz";
|
||||
sha256 = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae";
|
||||
md5 = "";
|
||||
md5name = "e9c37986337743f37fd14fe8737f246e97aec94b39d1b71e8a5973f72a9fc4f5-curl-7.60.0.tar.gz";
|
||||
md5name = "eaa812e9a871ea10dbe8e1d3f8f12a64a8e3e62aeab18cb23742e2f1727458ae-curl-7.61.1.tar.gz";
|
||||
}
|
||||
{
|
||||
name = "libe-book-0.1.3.tar.xz";
|
||||
@ -329,11 +329,11 @@
|
||||
md5name = "aa5e58356cd084000609ebbd93fef456a1bc0ab9e46fea20e81552fb286232a9-graphite2-minimal-1.3.10.tgz";
|
||||
}
|
||||
{
|
||||
name = "harfbuzz-1.7.4.tar.bz2";
|
||||
url = "http://dev-www.libreoffice.org/src/harfbuzz-1.7.4.tar.bz2";
|
||||
sha256 = "b5d6ac8415f97f3540d73f3f91c41c5c10f8a4d76350f11a7184062aae88ac0b";
|
||||
name = "harfbuzz-1.8.4.tar.bz2";
|
||||
url = "http://dev-www.libreoffice.org/src/harfbuzz-1.8.4.tar.bz2";
|
||||
sha256 = "3c592f86fa0da69e2e0e98cae9f5d5b61def3bb7948aa00ca45748f27fa545fd";
|
||||
md5 = "";
|
||||
md5name = "b5d6ac8415f97f3540d73f3f91c41c5c10f8a4d76350f11a7184062aae88ac0b-harfbuzz-1.7.4.tar.bz2";
|
||||
md5name = "3c592f86fa0da69e2e0e98cae9f5d5b61def3bb7948aa00ca45748f27fa545fd-harfbuzz-1.8.4.tar.bz2";
|
||||
}
|
||||
{
|
||||
name = "hsqldb_1_8_0.zip";
|
||||
@ -623,11 +623,11 @@
|
||||
md5name = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca-neon-0.30.2.tar.gz";
|
||||
}
|
||||
{
|
||||
name = "nss-3.33-with-nspr-4.17.tar.gz";
|
||||
url = "http://dev-www.libreoffice.org/src/nss-3.33-with-nspr-4.17.tar.gz";
|
||||
sha256 = "878d505ec0be577c45990c57eb5d2e5c8696bfa3412bd0fae193b275297bf5c4";
|
||||
name = "nss-3.38-with-nspr-4.19.tar.gz";
|
||||
url = "http://dev-www.libreoffice.org/src/nss-3.38-with-nspr-4.19.tar.gz";
|
||||
sha256 = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9";
|
||||
md5 = "";
|
||||
md5name = "878d505ec0be577c45990c57eb5d2e5c8696bfa3412bd0fae193b275297bf5c4-nss-3.33-with-nspr-4.17.tar.gz";
|
||||
md5name = "f271ec73291fa3e4bd4b59109f8035cc3a192fc33886f40ed4f9ee4b31c746e9-nss-3.38-with-nspr-4.19.tar.gz";
|
||||
}
|
||||
{
|
||||
name = "libodfgen-0.1.6.tar.bz2";
|
||||
|
41
pkgs/applications/science/biology/seaview/default.nix
Normal file
41
pkgs/applications/science/biology/seaview/default.nix
Normal file
@ -0,0 +1,41 @@
|
||||
{ stdenv, fetchurl, coreutils, fltk, libjpeg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.7";
|
||||
name = "seaview-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
|
||||
sha256 = "0fhyq7dcn0izhwcfin9ajsr7kmmsqm9f1np1rmhzg4digfwqb29n";
|
||||
};
|
||||
|
||||
buildInputs = [ fltk libjpeg ];
|
||||
|
||||
patchPhase = "sed -i 's#PATH=/bin:/usr/bin rm#'${coreutils}/bin/rm'#' seaview.cxx";
|
||||
installPhase = "mkdir -p $out/bin; cp seaview $out/bin";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GUI for molecular phylogeny";
|
||||
longDescription = ''
|
||||
SeaView is a multiplatform, graphical user interface for multiple sequence alignment and molecular phylogeny.
|
||||
- SeaView reads and writes various file formats (NEXUS, MSF, CLUSTAL, FASTA, PHYLIP, MASE, Newick) of DNA and protein sequences and of phylogenetic trees.
|
||||
- SeaView drives programs muscle or Clustal Omega for multiple sequence alignment, and also allows to use any external alignment algorithm able to read and write FASTA-formatted files.
|
||||
- Seaview drives the Gblocks program to select blocks of evolutionarily conserved sites.
|
||||
- SeaView computes phylogenetic trees by
|
||||
+ parsimony, using PHYLIP's dnapars/protpars algorithm,
|
||||
+ distance, with NJ or BioNJ algorithms on a variety of evolutionary distances,
|
||||
+ maximum likelihood, driving program PhyML 3.1.
|
||||
- Seaview can use the Transfer Bootstrap Expectation method to compute the bootstrap support of PhyML and distance trees.
|
||||
- SeaView prints and draws phylogenetic trees on screen, SVG, PDF or PostScript files.
|
||||
- SeaView allows to download sequences from EMBL/GenBank/UniProt using the Internet.
|
||||
|
||||
Seaview is published in:
|
||||
|
||||
Gouy M., Guindon S. & Gascuel O. (2010) SeaView version 4 : a multiplatform graphical user interface for sequence alignment and phylogenetic tree building. Molecular Biology and Evolution 27(2):221-224.
|
||||
'';
|
||||
homepage = http://doua.prabi.fr/software/seaview;
|
||||
license = licenses.gpl3;
|
||||
maintainers = [ maintainers.iimog ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
{ stdenv, fetchurl
|
||||
, gfortran, fftw, openblas
|
||||
, mpi ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "6.3";
|
||||
name = "quantum-espresso-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.com/QEF/q-e/-/archive/qe-${version}/q-e-qe-${version}.tar.gz";
|
||||
sha256 = "1738z3nhkzcrgnhnfg1r4lipbwvcrcprwhzjbjysnylmzbzwhrs0";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit mpi;
|
||||
};
|
||||
|
||||
preConfigure = ''
|
||||
patchShebangs configure
|
||||
'';
|
||||
|
||||
# remove after 6.3 version:
|
||||
# makefile needs to ignore install directory easier than applying patch
|
||||
preInstall = ''
|
||||
printf "\n.PHONY: install\n" >> Makefile
|
||||
'';
|
||||
|
||||
buildInputs = [ fftw openblas gfortran ]
|
||||
++ (stdenv.lib.optionals (mpi != null) [ mpi ]);
|
||||
|
||||
configureFlags = if (mpi != null) then [ "LD=${mpi}/bin/mpif90" ] else [ "LD=${gfortran}/bin/gfortran" ];
|
||||
|
||||
makeFlags = [ "all" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Electronic-structure calculations and materials modeling at the nanoscale";
|
||||
longDescription = ''
|
||||
Quantum ESPRESSO is an integrated suite of Open-Source computer codes for
|
||||
electronic-structure calculations and materials modeling at the
|
||||
nanoscale. It is based on density-functional theory, plane waves, and
|
||||
pseudopotentials.
|
||||
'';
|
||||
homepage = https://www.quantum-espresso.org/;
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
}
|
69
pkgs/applications/science/chemistry/siesta/default.nix
Normal file
69
pkgs/applications/science/chemistry/siesta/default.nix
Normal file
@ -0,0 +1,69 @@
|
||||
{ stdenv, fetchurl
|
||||
, gfortran, openblas
|
||||
, mpi ? null, scalapack
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.1-b3";
|
||||
name = "siesta-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launchpad.net/siesta/4.1/4.1-b3/+download/siesta-4.1-b3.tar.gz";
|
||||
sha256 = "1450jsxj5aifa0b5fcg7mxxq242fvqnp4zxpgzgbkdp99vrp06gm";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
inherit mpi;
|
||||
};
|
||||
|
||||
buildInputs = [ openblas gfortran ]
|
||||
++ (stdenv.lib.optionals (mpi != null) [ mpi scalapack ]);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
# Must do manualy becuase siesta does not do the regular
|
||||
# ./configure; make; make install
|
||||
configurePhase = ''
|
||||
cd Obj
|
||||
sh ../Src/obj_setup.sh
|
||||
cp gfortran.make arch.make
|
||||
'';
|
||||
|
||||
preBuild = if (mpi != null) then ''
|
||||
makeFlagsArray=(
|
||||
CC="mpicc" FC="mpifort"
|
||||
FPPFLAGS="-DMPI" MPI_INTERFACE="libmpi_f90.a" MPI_INCLUDE="."
|
||||
COMP_LIBS="" LIBS="-lopenblas -lscalapack"
|
||||
);
|
||||
'' else ''
|
||||
makeFlagsArray=(
|
||||
COMP_LIBS="" LIBS="-lopenblas"
|
||||
);
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp -a siesta $out/bin
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A first-principles materials simulation code using DFT";
|
||||
longDescription = ''
|
||||
SIESTA is both a method and its computer program
|
||||
implementation, to perform efficient electronic structure
|
||||
calculations and ab initio molecular dynamics simulations of
|
||||
molecules and solids. SIESTA's efficiency stems from the use
|
||||
of strictly localized basis sets and from the implementation
|
||||
of linear-scaling algorithms which can be applied to suitable
|
||||
systems. A very important feature of the code is that its
|
||||
accuracy and cost can be tuned in a wide range, from quick
|
||||
exploratory calculations to highly accurate simulations
|
||||
matching the quality of other approaches, such as plane-wave
|
||||
and all-electron methods.
|
||||
'';
|
||||
homepage = https://www.quantum-espresso.org/;
|
||||
license = licenses.gpl2;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
maintainers = [ maintainers.costrouc ];
|
||||
};
|
||||
}
|
@ -31,7 +31,8 @@ let
|
||||
'';
|
||||
|
||||
tamarin-prover-utils = mkDerivation (common "tamarin-prover-utils" (src + "/lib/utils") // {
|
||||
patchPhase = replaceSymlinks;
|
||||
postPatch = replaceSymlinks;
|
||||
patches = [ ./ghc-8.4-support-utils.patch ];
|
||||
libraryHaskellDepends = with haskellPackages; [
|
||||
base base64-bytestring binary blaze-builder bytestring containers
|
||||
deepseq dlist fclabels mtl pretty safe SHA syb time transformers
|
||||
@ -39,7 +40,8 @@ let
|
||||
});
|
||||
|
||||
tamarin-prover-term = mkDerivation (common "tamarin-prover-term" (src + "/lib/term") // {
|
||||
patchPhase = replaceSymlinks;
|
||||
postPatch = replaceSymlinks;
|
||||
patches = [ ./ghc-8.4-support-term.patch ];
|
||||
libraryHaskellDepends = (with haskellPackages; [
|
||||
attoparsec base binary bytestring containers deepseq dlist HUnit
|
||||
mtl process safe
|
||||
@ -47,7 +49,8 @@ let
|
||||
});
|
||||
|
||||
tamarin-prover-theory = mkDerivation (common "tamarin-prover-theory" (src + "/lib/theory") // {
|
||||
patchPhase = replaceSymlinks;
|
||||
postPatch = replaceSymlinks;
|
||||
patches = [ ./ghc-8.4-support-theory.patch ];
|
||||
doHaddock = false; # broken
|
||||
libraryHaskellDepends = (with haskellPackages; [
|
||||
aeson aeson-pretty base binary bytestring containers deepseq dlist
|
||||
|
@ -0,0 +1,109 @@
|
||||
From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
|
||||
From: Felix Yan <felixonmars@archlinux.org>
|
||||
Date: Fri, 18 May 2018 16:24:41 +0800
|
||||
Subject: [PATCH] GHC 8.4 support
|
||||
|
||||
---
|
||||
src/Term/Maude/Signature.hs | 8 ++--
|
||||
src/Term/Rewriting/Definitions.hs | 23 ++++++----
|
||||
src/Term/Unification.hs | 4 +-
|
||||
11 files changed, 79 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/src/Term/Maude/Signature.hs b/src/Term/Maude/Signature.hs
|
||||
index 98c25d9f..1a4ce82f 100644
|
||||
--- a/src/Term/Maude/Signature.hs
|
||||
+++ b/src/Term/Maude/Signature.hs
|
||||
@@ -104,9 +104,9 @@ maudeSig msig@(MaudeSig {enableDH,enableBP,enableMSet,enableXor,enableDiff=_,stF
|
||||
`S.union` dhReducibleFunSig `S.union` bpReducibleFunSig `S.union` xorReducibleFunSig
|
||||
|
||||
-- | A monoid instance to combine maude signatures.
|
||||
-instance Monoid MaudeSig where
|
||||
- (MaudeSig dh1 bp1 mset1 xor1 diff1 stFunSyms1 stRules1 _ _) `mappend`
|
||||
- (MaudeSig dh2 bp2 mset2 xor2 diff2 stFunSyms2 stRules2 _ _) =
|
||||
+instance Semigroup MaudeSig where
|
||||
+ MaudeSig dh1 bp1 mset1 xor1 diff1 stFunSyms1 stRules1 _ _ <>
|
||||
+ MaudeSig dh2 bp2 mset2 xor2 diff2 stFunSyms2 stRules2 _ _ =
|
||||
maudeSig (mempty {enableDH=dh1||dh2
|
||||
,enableBP=bp1||bp2
|
||||
,enableMSet=mset1||mset2
|
||||
@@ -114,6 +114,8 @@ instance Monoid MaudeSig where
|
||||
,enableDiff=diff1||diff2
|
||||
,stFunSyms=S.union stFunSyms1 stFunSyms2
|
||||
,stRules=S.union stRules1 stRules2})
|
||||
+
|
||||
+instance Monoid MaudeSig where
|
||||
mempty = MaudeSig False False False False False S.empty S.empty S.empty S.empty
|
||||
|
||||
-- | Non-AC function symbols.
|
||||
diff --git a/src/Term/Rewriting/Definitions.hs b/src/Term/Rewriting/Definitions.hs
|
||||
index bd942b6a..18562e4e 100644
|
||||
--- a/src/Term/Rewriting/Definitions.hs
|
||||
+++ b/src/Term/Rewriting/Definitions.hs
|
||||
@@ -44,10 +44,12 @@ evalEqual (Equal l r) = l == r
|
||||
instance Functor Equal where
|
||||
fmap f (Equal lhs rhs) = Equal (f lhs) (f rhs)
|
||||
|
||||
+instance Semigroup a => Semigroup (Equal a) where
|
||||
+ (Equal l1 r1) <> (Equal l2 r2) =
|
||||
+ Equal (l1 <> l2) (r1 <> r2)
|
||||
+
|
||||
instance Monoid a => Monoid (Equal a) where
|
||||
mempty = Equal mempty mempty
|
||||
- (Equal l1 r1) `mappend` (Equal l2 r2) =
|
||||
- Equal (l1 `mappend` l2) (r1 `mappend` r2)
|
||||
|
||||
instance Foldable Equal where
|
||||
foldMap f (Equal l r) = f l `mappend` f r
|
||||
@@ -104,14 +106,15 @@ instance Functor Match where
|
||||
fmap _ NoMatch = NoMatch
|
||||
fmap f (DelayedMatches ms) = DelayedMatches (fmap (f *** f) ms)
|
||||
|
||||
+instance Semigroup (Match a) where
|
||||
+ NoMatch <> _ = NoMatch
|
||||
+ _ <> NoMatch = NoMatch
|
||||
+ DelayedMatches ms1 <> DelayedMatches ms2 =
|
||||
+ DelayedMatches (ms1 <> ms2)
|
||||
+
|
||||
instance Monoid (Match a) where
|
||||
mempty = DelayedMatches []
|
||||
|
||||
- NoMatch `mappend` _ = NoMatch
|
||||
- _ `mappend` NoMatch = NoMatch
|
||||
- DelayedMatches ms1 `mappend` DelayedMatches ms2 =
|
||||
- DelayedMatches (ms1 `mappend` ms2)
|
||||
-
|
||||
|
||||
instance Foldable Match where
|
||||
foldMap _ NoMatch = mempty
|
||||
@@ -136,10 +139,12 @@ data RRule a = RRule a a
|
||||
instance Functor RRule where
|
||||
fmap f (RRule lhs rhs) = RRule (f lhs) (f rhs)
|
||||
|
||||
+instance Monoid a => Semigroup (RRule a) where
|
||||
+ (RRule l1 r1) <> (RRule l2 r2) =
|
||||
+ RRule (l1 <> l2) (r1 <> r2)
|
||||
+
|
||||
instance Monoid a => Monoid (RRule a) where
|
||||
mempty = RRule mempty mempty
|
||||
- (RRule l1 r1) `mappend` (RRule l2 r2) =
|
||||
- RRule (l1 `mappend` l2) (r1 `mappend` r2)
|
||||
|
||||
instance Foldable RRule where
|
||||
foldMap f (RRule l r) = f l `mappend` f r
|
||||
diff --git a/src/Term/Unification.hs b/src/Term/Unification.hs
|
||||
index e1de0163..7ce6bb41 100644
|
||||
--- a/src/Term/Unification.hs
|
||||
+++ b/src/Term/Unification.hs
|
||||
@@ -265,9 +265,11 @@ unifyRaw l0 r0 = do
|
||||
|
||||
data MatchFailure = NoMatcher | ACProblem
|
||||
|
||||
+instance Semigroup MatchFailure where
|
||||
+ _ <> _ = NoMatcher
|
||||
+
|
||||
instance Monoid MatchFailure where
|
||||
mempty = NoMatcher
|
||||
- mappend _ _ = NoMatcher
|
||||
|
||||
-- | Ensure that the computed substitution @sigma@ satisfies
|
||||
-- @t ==_AC apply sigma p@ after the delayed equations are solved.
|
@ -0,0 +1,130 @@
|
||||
From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
|
||||
From: Felix Yan <felixonmars@archlinux.org>
|
||||
Date: Fri, 18 May 2018 16:24:41 +0800
|
||||
Subject: [PATCH] GHC 8.4 support
|
||||
|
||||
---
|
||||
src/Theory/Proof.hs | 43 +++++++++++--------
|
||||
11 files changed, 79 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/src/Theory/Constraint/Solver/Reduction.hs b/src/Theory/Constraint/Solver/Reduction.hs
|
||||
index ddbc965a..6daadd0d 100644
|
||||
--- a/src/Theory/Constraint/Solver/Reduction.hs
|
||||
+++ b/src/Theory/Constraint/Solver/Reduction.hs
|
||||
@@ -139,13 +139,14 @@ execReduction m ctxt se fs =
|
||||
data ChangeIndicator = Unchanged | Changed
|
||||
deriving( Eq, Ord, Show )
|
||||
|
||||
+instance Semigroup ChangeIndicator where
|
||||
+ Changed <> _ = Changed
|
||||
+ _ <> Changed = Changed
|
||||
+ Unchanged <> Unchanged = Unchanged
|
||||
+
|
||||
instance Monoid ChangeIndicator where
|
||||
mempty = Unchanged
|
||||
|
||||
- Changed `mappend` _ = Changed
|
||||
- _ `mappend` Changed = Changed
|
||||
- Unchanged `mappend` Unchanged = Unchanged
|
||||
-
|
||||
-- | Return 'True' iff there was a change.
|
||||
wasChanged :: ChangeIndicator -> Bool
|
||||
wasChanged Changed = True
|
||||
diff --git a/src/Theory/Constraint/System/Guarded.hs b/src/Theory/Constraint/System/Guarded.hs
|
||||
index f98fc7c2..2aac8ce2 100644
|
||||
--- a/src/Theory/Constraint/System/Guarded.hs
|
||||
+++ b/src/Theory/Constraint/System/Guarded.hs
|
||||
@@ -435,7 +435,7 @@ gall ss atos gf = GGuarded All ss atos gf
|
||||
|
||||
-- | Local newtype to avoid orphan instance.
|
||||
newtype ErrorDoc d = ErrorDoc { unErrorDoc :: d }
|
||||
- deriving( Monoid, NFData, Document, HighlightDocument )
|
||||
+ deriving( Monoid, Semigroup, NFData, Document, HighlightDocument )
|
||||
|
||||
-- | @formulaToGuarded fm@ returns a guarded formula @gf@ that is
|
||||
-- equivalent to @fm@ under the assumption that this is possible.
|
||||
diff --git a/src/Theory/Proof.hs b/src/Theory/Proof.hs
|
||||
index 74fb77b1..7971b9fc 100644
|
||||
--- a/src/Theory/Proof.hs
|
||||
+++ b/src/Theory/Proof.hs
|
||||
@@ -388,17 +388,19 @@ data ProofStatus =
|
||||
| TraceFound -- ^ There is an annotated solved step
|
||||
deriving ( Show, Generic, NFData, Binary )
|
||||
|
||||
+instance Semigroup ProofStatus where
|
||||
+ TraceFound <> _ = TraceFound
|
||||
+ _ <> TraceFound = TraceFound
|
||||
+ IncompleteProof <> _ = IncompleteProof
|
||||
+ _ <> IncompleteProof = IncompleteProof
|
||||
+ _ <> CompleteProof = CompleteProof
|
||||
+ CompleteProof <> _ = CompleteProof
|
||||
+ UndeterminedProof <> UndeterminedProof = UndeterminedProof
|
||||
+
|
||||
+
|
||||
instance Monoid ProofStatus where
|
||||
mempty = CompleteProof
|
||||
|
||||
- mappend TraceFound _ = TraceFound
|
||||
- mappend _ TraceFound = TraceFound
|
||||
- mappend IncompleteProof _ = IncompleteProof
|
||||
- mappend _ IncompleteProof = IncompleteProof
|
||||
- mappend _ CompleteProof = CompleteProof
|
||||
- mappend CompleteProof _ = CompleteProof
|
||||
- mappend UndeterminedProof UndeterminedProof = UndeterminedProof
|
||||
-
|
||||
-- | The status of a 'ProofStep'.
|
||||
proofStepStatus :: ProofStep (Maybe a) -> ProofStatus
|
||||
proofStepStatus (ProofStep _ Nothing ) = UndeterminedProof
|
||||
@@ -560,10 +562,12 @@ newtype Prover = Prover
|
||||
-> Maybe IncrementalProof -- resulting proof
|
||||
}
|
||||
|
||||
+instance Semigroup Prover where
|
||||
+ p1 <> p2 = Prover $ \ctxt d se ->
|
||||
+ runProver p1 ctxt d se >=> runProver p2 ctxt d se
|
||||
+
|
||||
instance Monoid Prover where
|
||||
mempty = Prover $ \_ _ _ -> Just
|
||||
- p1 `mappend` p2 = Prover $ \ctxt d se ->
|
||||
- runProver p1 ctxt d se >=> runProver p2 ctxt d se
|
||||
|
||||
-- | Provers whose sequencing is handled via the 'Monoid' instance.
|
||||
--
|
||||
@@ -579,10 +583,12 @@ newtype DiffProver = DiffProver
|
||||
-> Maybe IncrementalDiffProof -- resulting proof
|
||||
}
|
||||
|
||||
+instance Semigroup DiffProver where
|
||||
+ p1 <> p2 = DiffProver $ \ctxt d se ->
|
||||
+ runDiffProver p1 ctxt d se >=> runDiffProver p2 ctxt d se
|
||||
+
|
||||
instance Monoid DiffProver where
|
||||
mempty = DiffProver $ \_ _ _ -> Just
|
||||
- p1 `mappend` p2 = DiffProver $ \ctxt d se ->
|
||||
- runDiffProver p1 ctxt d se >=> runDiffProver p2 ctxt d se
|
||||
|
||||
-- | Map the proof generated by the prover.
|
||||
mapProverProof :: (IncrementalProof -> IncrementalProof) -> Prover -> Prover
|
||||
@@ -784,15 +790,16 @@ runAutoDiffProver (AutoProver heuristic bound cut) =
|
||||
-- | The result of one pass of iterative deepening.
|
||||
data IterDeepRes = NoSolution | MaybeNoSolution | Solution ProofPath
|
||||
|
||||
+instance Semigroup IterDeepRes where
|
||||
+ x@(Solution _) <> _ = x
|
||||
+ _ <> y@(Solution _) = y
|
||||
+ MaybeNoSolution <> _ = MaybeNoSolution
|
||||
+ _ <> MaybeNoSolution = MaybeNoSolution
|
||||
+ NoSolution <> NoSolution = NoSolution
|
||||
+
|
||||
instance Monoid IterDeepRes where
|
||||
mempty = NoSolution
|
||||
|
||||
- x@(Solution _) `mappend` _ = x
|
||||
- _ `mappend` y@(Solution _) = y
|
||||
- MaybeNoSolution `mappend` _ = MaybeNoSolution
|
||||
- _ `mappend` MaybeNoSolution = MaybeNoSolution
|
||||
- NoSolution `mappend` NoSolution = NoSolution
|
||||
-
|
||||
-- | @cutOnSolvedDFS prf@ removes all other cases if an attack is found. The
|
||||
-- attack search is performed using a parallel DFS traversal with iterative
|
||||
-- deepening.
|
@ -0,0 +1,140 @@
|
||||
From a08f6e400772899b9b0fc16befc50391cd70696b Mon Sep 17 00:00:00 2001
|
||||
From: Felix Yan <felixonmars@archlinux.org>
|
||||
Date: Fri, 18 May 2018 16:24:41 +0800
|
||||
Subject: [PATCH] GHC 8.4 support
|
||||
|
||||
---
|
||||
src/Extension/Data/Bounded.hs | 10 ++++-
|
||||
src/Extension/Data/Monoid.hs | 14 +++---
|
||||
src/Logic/Connectives.hs | 4 +-
|
||||
src/Text/PrettyPrint/Class.hs | 4 +-
|
||||
src/Text/PrettyPrint/Html.hs | 6 ++-
|
||||
11 files changed, 79 insertions(+), 48 deletions(-)
|
||||
|
||||
|
||||
diff --git a/src/Extension/Data/Bounded.hs b/src/Extension/Data/Bounded.hs
|
||||
index 5f166006..f416a44c 100644
|
||||
--- a/src/Extension/Data/Bounded.hs
|
||||
+++ b/src/Extension/Data/Bounded.hs
|
||||
@@ -11,19 +11,25 @@ module Extension.Data.Bounded (
|
||||
) where
|
||||
|
||||
-- import Data.Monoid
|
||||
+import Data.Semigroup
|
||||
|
||||
-- | A newtype wrapper for a monoid of the maximum of a bounded type.
|
||||
newtype BoundedMax a = BoundedMax {getBoundedMax :: a}
|
||||
deriving( Eq, Ord, Show )
|
||||
|
||||
+instance (Ord a, Bounded a) => Semigroup (BoundedMax a) where
|
||||
+ BoundedMax x <> BoundedMax y = BoundedMax (max x y)
|
||||
+
|
||||
instance (Ord a, Bounded a) => Monoid (BoundedMax a) where
|
||||
mempty = BoundedMax minBound
|
||||
- (BoundedMax x) `mappend` (BoundedMax y) = BoundedMax (max x y)
|
||||
+ mappend = (<>)
|
||||
|
||||
-- | A newtype wrapper for a monoid of the minimum of a bounded type.
|
||||
newtype BoundedMin a = BoundedMin {getBoundedMin :: a}
|
||||
deriving( Eq, Ord, Show )
|
||||
|
||||
+instance (Ord a, Bounded a) => Semigroup (BoundedMin a) where
|
||||
+ BoundedMin x <> BoundedMin y = BoundedMin (min x y)
|
||||
+
|
||||
instance (Ord a, Bounded a) => Monoid (BoundedMin a) where
|
||||
mempty = BoundedMin maxBound
|
||||
- (BoundedMin x) `mappend` (BoundedMin y) = BoundedMin (min x y)
|
||||
\ No newline at end of file
|
||||
diff --git a/src/Extension/Data/Monoid.hs b/src/Extension/Data/Monoid.hs
|
||||
index 83655c34..9ce2f91b 100644
|
||||
--- a/src/Extension/Data/Monoid.hs
|
||||
+++ b/src/Extension/Data/Monoid.hs
|
||||
@@ -18,6 +18,7 @@ module Extension.Data.Monoid (
|
||||
) where
|
||||
|
||||
import Data.Monoid
|
||||
+import Data.Semigroup
|
||||
|
||||
#if __GLASGOW_HASKELL__ < 704
|
||||
|
||||
@@ -38,10 +39,13 @@ newtype MinMax a = MinMax { getMinMax :: Maybe (a, a) }
|
||||
minMaxSingleton :: a -> MinMax a
|
||||
minMaxSingleton x = MinMax (Just (x, x))
|
||||
|
||||
+instance Ord a => Semigroup (MinMax a) where
|
||||
+ MinMax Nothing <> y = y
|
||||
+ x <> MinMax Nothing = x
|
||||
+ MinMax (Just (xMin, xMax)) <> MinMax (Just (yMin, yMax)) =
|
||||
+ MinMax (Just (min xMin yMin, max xMax yMax))
|
||||
+
|
||||
+
|
||||
instance Ord a => Monoid (MinMax a) where
|
||||
mempty = MinMax Nothing
|
||||
-
|
||||
- MinMax Nothing `mappend` y = y
|
||||
- x `mappend` MinMax Nothing = x
|
||||
- MinMax (Just (xMin, xMax)) `mappend` MinMax (Just (yMin, yMax)) =
|
||||
- MinMax (Just (min xMin yMin, max xMax yMax))
|
||||
+ mappend = (<>)
|
||||
diff --git a/src/Logic/Connectives.hs b/src/Logic/Connectives.hs
|
||||
index 2e441172..7206cc2c 100644
|
||||
--- a/src/Logic/Connectives.hs
|
||||
+++ b/src/Logic/Connectives.hs
|
||||
@@ -23,12 +23,12 @@ import Control.DeepSeq
|
||||
|
||||
-- | A conjunction of atoms of type a.
|
||||
newtype Conj a = Conj { getConj :: [a] }
|
||||
- deriving (Monoid, Foldable, Traversable, Eq, Ord, Show, Binary,
|
||||
+ deriving (Monoid, Semigroup, Foldable, Traversable, Eq, Ord, Show, Binary,
|
||||
Functor, Applicative, Monad, Alternative, MonadPlus, Typeable, Data, NFData)
|
||||
|
||||
-- | A disjunction of atoms of type a.
|
||||
newtype Disj a = Disj { getDisj :: [a] }
|
||||
- deriving (Monoid, Foldable, Traversable, Eq, Ord, Show, Binary,
|
||||
+ deriving (Monoid, Semigroup, Foldable, Traversable, Eq, Ord, Show, Binary,
|
||||
Functor, Applicative, Monad, Alternative, MonadPlus, Typeable, Data, NFData)
|
||||
|
||||
instance MonadDisj Disj where
|
||||
diff --git a/src/Text/PrettyPrint/Class.hs b/src/Text/PrettyPrint/Class.hs
|
||||
index f5eb42fe..13be6515 100644
|
||||
--- a/src/Text/PrettyPrint/Class.hs
|
||||
+++ b/src/Text/PrettyPrint/Class.hs
|
||||
@@ -187,9 +187,11 @@ instance Document Doc where
|
||||
nest i (Doc d) = Doc $ P.nest i d
|
||||
caseEmptyDoc yes no (Doc d) = if P.isEmpty d then yes else no
|
||||
|
||||
+instance Semigroup Doc where
|
||||
+ Doc d1 <> Doc d2 = Doc $ (P.<>) d1 d2
|
||||
+
|
||||
instance Monoid Doc where
|
||||
mempty = Doc $ P.empty
|
||||
- mappend (Doc d1) (Doc d2) = Doc $ (P.<>) d1 d2
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
-- Additional combinators
|
||||
diff --git a/src/Text/PrettyPrint/Html.hs b/src/Text/PrettyPrint/Html.hs
|
||||
index 3de5e307..10103eb7 100644
|
||||
--- a/src/Text/PrettyPrint/Html.hs
|
||||
+++ b/src/Text/PrettyPrint/Html.hs
|
||||
@@ -90,7 +90,7 @@ attribute (key,value) = " " ++ key ++ "=\"" ++ escapeHtmlEntities value ++ "\""
|
||||
|
||||
-- | A 'Document' transformer that adds proper HTML escaping.
|
||||
newtype HtmlDoc d = HtmlDoc { getHtmlDoc :: d }
|
||||
- deriving( Monoid )
|
||||
+ deriving( Monoid, Semigroup )
|
||||
|
||||
-- | Wrap a document such that HTML markup can be added without disturbing the
|
||||
-- layout.
|
||||
@@ -182,9 +182,11 @@ getNoHtmlDoc = runIdentity . unNoHtmlDoc
|
||||
instance NFData d => NFData (NoHtmlDoc d) where
|
||||
rnf = rnf . getNoHtmlDoc
|
||||
|
||||
+instance Semigroup d => Semigroup (NoHtmlDoc d) where
|
||||
+ (<>) = liftA2 (<>)
|
||||
+
|
||||
instance Monoid d => Monoid (NoHtmlDoc d) where
|
||||
mempty = pure mempty
|
||||
- mappend = liftA2 mappend
|
||||
|
||||
instance Document d => Document (NoHtmlDoc d) where
|
||||
char = pure . char
|
@ -31,6 +31,8 @@ let
|
||||
|
||||
git = appendToName "minimal" gitBase;
|
||||
|
||||
git-appraise = callPackage ./git-appraise {};
|
||||
|
||||
git-fame = callPackage ./git-fame {};
|
||||
|
||||
# The full-featured Git.
|
||||
|
@ -0,0 +1,24 @@
|
||||
{ stdenv, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
name = "git-appraise-unstable-${version}";
|
||||
version = "2018-02-26";
|
||||
rev = "2414523905939525559e4b2498c5597f86193b61";
|
||||
|
||||
goPackagePath = "github.com/google/git-appraise";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit rev;
|
||||
owner = "google";
|
||||
repo = "git-appraise";
|
||||
sha256 = "04xkp1jpas1dfms6i9j09bgkydih0q10nhwn75w9ds8hi2qaa3sa";
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Distributed code review system for Git repos";
|
||||
homepage = https://github.com/google/git-appraise;
|
||||
license = stdenv.lib.licenses.asl20;
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.vdemeester ];
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user