mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-25 20:34:52 +03:00
Merge master into staging-next
This commit is contained in:
commit
98640fd482
@ -36,7 +36,7 @@ rec {
|
||||
example ? null,
|
||||
# String describing the option.
|
||||
description ? null,
|
||||
# Related packages used in the manual (see `genRelatedPackages` in ../nixos/doc/manual/default.nix).
|
||||
# Related packages used in the manual (see `genRelatedPackages` in ../nixos/lib/make-options-doc/default.nix).
|
||||
relatedPackages ? null,
|
||||
# Option type, providing type-checking and value merging.
|
||||
type ? null,
|
||||
|
@ -1724,6 +1724,16 @@
|
||||
fingerprint = "389A 78CB CD88 5E0C 4701 DEB9 FD42 C7D0 D414 94C8";
|
||||
}];
|
||||
};
|
||||
dump_stack = {
|
||||
email = "root@dumpstack.io";
|
||||
github = "jollheef";
|
||||
githubId = 1749762;
|
||||
name = "Mikhail Klementev";
|
||||
keys = [{
|
||||
longkeyid = "rsa4096/0x1525585D1B43C62A";
|
||||
fingerprint = "5DD7 C6F6 0630 F08E DAE7 4711 1525 585D 1B43 C62A";
|
||||
}];
|
||||
};
|
||||
dxf = {
|
||||
email = "dingxiangfei2009@gmail.com";
|
||||
github = "dingxiangfei2009";
|
||||
@ -2853,6 +2863,15 @@
|
||||
githubId = 1383440;
|
||||
name = "Jason Gilliland";
|
||||
};
|
||||
jdanek = {
|
||||
email = "jdanek@redhat.com";
|
||||
github = "jdanekrh";
|
||||
keys = [{
|
||||
longkeyid = "ed25519/0x69275CADF15D872E";
|
||||
fingerprint = "D4A6 F051 AD58 2E7C BCED 5439 6927 5CAD F15D 872E";
|
||||
}];
|
||||
name = "Jiri Daněk";
|
||||
};
|
||||
jdehaas = {
|
||||
email = "qqlq@nullptr.club";
|
||||
github = "jeroendehaas";
|
||||
@ -6549,6 +6568,12 @@
|
||||
githubId = 1525767;
|
||||
name = "Vaibhav Sagar";
|
||||
};
|
||||
valebes = {
|
||||
email = "valebes@gmail.com";
|
||||
github = "valebes";
|
||||
githubid = 10956211;
|
||||
name = "Valerio Besozzi";
|
||||
};
|
||||
valeriangalliat = {
|
||||
email = "val@codejam.info";
|
||||
github = "valeriangalliat";
|
||||
|
@ -284,6 +284,13 @@
|
||||
Squid 3 has been removed and the <option>squid</option> derivation now refers to Squid 4.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <option>services.pdns-recursor.extraConfig</option> option has been replaced by
|
||||
<option>services.pdns-recursor.settings</option>. The new option allows setting extra
|
||||
configuration while being better type-checked and mergeable.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
|
||||
@ -506,6 +513,20 @@
|
||||
been removed.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The <literal>rmilter</literal> package was removed with associated module and options due deprecation by upstream developer.
|
||||
Use <literal>rspamd</literal> in proxy mode instead.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
systemd cgroup accounting via the
|
||||
<link linkend="opt-systemd.enableCgroupAccounting">systemd.enableCgroupAccounting</link>
|
||||
option is now enabled by default. It now also enables the more recent Block IO and IP accounting
|
||||
features.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -267,6 +267,7 @@ foreach my $line (-f "/etc/shadow" ? read_file("/etc/shadow") : ()) {
|
||||
next if !defined $u;
|
||||
$hashedPassword = "!" if !$spec->{mutableUsers};
|
||||
$hashedPassword = $u->{hashedPassword} if defined $u->{hashedPassword} && !$spec->{mutableUsers}; # FIXME
|
||||
chomp $hashedPassword;
|
||||
push @shadowNew, join(":", $name, $hashedPassword, @rest) . "\n";
|
||||
$shadowSeen{$name} = 1;
|
||||
}
|
||||
|
@ -251,7 +251,7 @@
|
||||
gale = 223;
|
||||
matrix-synapse = 224;
|
||||
rspamd = 225;
|
||||
rmilter = 226;
|
||||
# rmilter = 226; # unused, removed 2019-08-22
|
||||
cfdyndns = 227;
|
||||
gammu-smsd = 228;
|
||||
pdnsd = 229;
|
||||
@ -340,6 +340,7 @@
|
||||
cockroachdb = 313;
|
||||
zoneminder = 314;
|
||||
paperless = 315;
|
||||
mailman = 316;
|
||||
|
||||
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
|
||||
|
||||
@ -559,7 +560,7 @@
|
||||
gale = 223;
|
||||
matrix-synapse = 224;
|
||||
rspamd = 225;
|
||||
rmilter = 226;
|
||||
# rmilter = 226; # unused, removed 2019-08-22
|
||||
cfdyndns = 227;
|
||||
pdnsd = 229;
|
||||
octoprint = 230;
|
||||
@ -640,6 +641,7 @@
|
||||
cockroachdb = 313;
|
||||
zoneminder = 314;
|
||||
paperless = 315;
|
||||
mailman = 316;
|
||||
|
||||
# When adding a gid, make sure it doesn't match an existing
|
||||
# uid. Users and groups with the same name should have equal
|
||||
|
@ -387,7 +387,6 @@
|
||||
./services/mail/spamassassin.nix
|
||||
./services/mail/rspamd.nix
|
||||
./services/mail/rss2email.nix
|
||||
./services/mail/rmilter.nix
|
||||
./services/mail/roundcube.nix
|
||||
./services/mail/nullmailer.nix
|
||||
./services/misc/airsonic.nix
|
||||
@ -790,6 +789,7 @@
|
||||
./services/web-apps/mattermost.nix
|
||||
./services/web-apps/mediawiki.nix
|
||||
./services/web-apps/miniflux.nix
|
||||
./services/web-apps/moodle.nix
|
||||
./services/web-apps/nextcloud.nix
|
||||
./services/web-apps/nexus.nix
|
||||
./services/web-apps/pgpkeyserver-lite.nix
|
||||
@ -803,6 +803,7 @@
|
||||
./services/web-apps/zabbix.nix
|
||||
./services/web-servers/apache-httpd/default.nix
|
||||
./services/web-servers/caddy.nix
|
||||
./services/web-servers/darkhttpd.nix
|
||||
./services/web-servers/fcgiwrap.nix
|
||||
./services/web-servers/hitch/default.nix
|
||||
./services/web-servers/hydron.nix
|
||||
|
@ -72,8 +72,8 @@ with lib;
|
||||
# PAM
|
||||
(mkRenamedOptionModule [ "security" "pam" "enableU2F" ] [ "security" "pam" "u2f" "enable" ])
|
||||
|
||||
(mkRemovedOptionModule [ "services" "rmilter" "bindInetSockets" ] "Use services.rmilter.bindSocket.* instead")
|
||||
(mkRemovedOptionModule [ "services" "rmilter" "bindUnixSockets" ] "Use services.rmilter.bindSocket.* instead")
|
||||
# rmilter/rspamd
|
||||
(mkRemovedOptionModule [ "services" "rmilter" ] "Use services.rspamd.* instead to set up milter service")
|
||||
|
||||
# Xsession script
|
||||
(mkRenamedOptionModule [ "services" "xserver" "displayManager" "job" "logsXsession" ] [ "services" "xserver" "displayManager" "job" "logToFile" ])
|
||||
|
@ -103,7 +103,6 @@ in
|
||||
LockPersonality = true;
|
||||
RestrictRealtime = true;
|
||||
PrivateMounts = true;
|
||||
PrivateUsers = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
};
|
||||
};
|
||||
|
@ -1,252 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
rspamdCfg = config.services.rspamd;
|
||||
postfixCfg = config.services.postfix;
|
||||
cfg = config.services.rmilter;
|
||||
|
||||
inetSocket = addr: port: "inet:${addr}:${toString port}";
|
||||
unixSocket = sock: "unix:${sock}";
|
||||
|
||||
systemdSocket = if cfg.bindSocket.type == "unix" then cfg.bindSocket.path
|
||||
else "${cfg.bindSocket.address}:${toString cfg.bindSocket.port}";
|
||||
rmilterSocket = if cfg.bindSocket.type == "unix" then unixSocket cfg.bindSocket.path
|
||||
else inetSocket cfg.bindSocket.address cfg.bindSocket.port;
|
||||
|
||||
rmilterConf = ''
|
||||
pidfile = /run/rmilter/rmilter.pid;
|
||||
bind_socket = ${if cfg.socketActivation then "fd:3" else rmilterSocket};
|
||||
tempdir = /tmp;
|
||||
'' + (with cfg.rspamd; if enable then ''
|
||||
spamd {
|
||||
servers = ${concatStringsSep ", " servers};
|
||||
connect_timeout = 1s;
|
||||
results_timeout = 20s;
|
||||
error_time = 10;
|
||||
dead_time = 300;
|
||||
maxerrors = 10;
|
||||
reject_message = "${rejectMessage}";
|
||||
${optionalString (length whitelist != 0) "whitelist = ${concatStringsSep ", " whitelist};"}
|
||||
|
||||
# rspamd_metric - metric for using with rspamd
|
||||
# Default: "default"
|
||||
rspamd_metric = "default";
|
||||
${extraConfig}
|
||||
};
|
||||
'' else "") + cfg.extraConfig;
|
||||
|
||||
rmilterConfigFile = pkgs.writeText "rmilter.conf" rmilterConf;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
###### interface
|
||||
|
||||
options = {
|
||||
|
||||
services.rmilter = {
|
||||
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to run the rmilter daemon.";
|
||||
};
|
||||
|
||||
debug = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to run the rmilter daemon in debug mode.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.string;
|
||||
default = "rmilter";
|
||||
description = ''
|
||||
User to use when no root privileges are required.
|
||||
'';
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.string;
|
||||
default = "rmilter";
|
||||
description = ''
|
||||
Group to use when no root privileges are required.
|
||||
'';
|
||||
};
|
||||
|
||||
bindSocket.type = mkOption {
|
||||
type = types.enum [ "unix" "inet" ];
|
||||
default = "unix";
|
||||
description = ''
|
||||
What kind of socket rmilter should listen on. Either "unix"
|
||||
for an Unix domain socket or "inet" for a TCP socket.
|
||||
'';
|
||||
};
|
||||
|
||||
bindSocket.path = mkOption {
|
||||
type = types.str;
|
||||
default = "/run/rmilter.sock";
|
||||
description = ''
|
||||
Path to Unix domain socket to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
bindSocket.address = mkOption {
|
||||
type = types.str;
|
||||
default = "[::1]";
|
||||
example = "0.0.0.0";
|
||||
description = ''
|
||||
Inet address to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
bindSocket.port = mkOption {
|
||||
type = types.int;
|
||||
default = 11990;
|
||||
description = ''
|
||||
Inet port to listen on.
|
||||
'';
|
||||
};
|
||||
|
||||
socketActivation = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Enable systemd socket activation for rmilter.
|
||||
|
||||
Disabling socket activation is not recommended when a Unix
|
||||
domain socket is used and could lead to incorrect
|
||||
permissions.
|
||||
'';
|
||||
};
|
||||
|
||||
rspamd = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = rspamdCfg.enable;
|
||||
description = "Whether to use rspamd to filter mails";
|
||||
};
|
||||
|
||||
servers = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = ["r:/run/rspamd/rspamd.sock"];
|
||||
description = ''
|
||||
Spamd socket definitions.
|
||||
Is server name is prefixed with r: it is rspamd server.
|
||||
'';
|
||||
};
|
||||
|
||||
whitelist = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [ ];
|
||||
description = "list of ips or nets that should be not checked with spamd";
|
||||
};
|
||||
|
||||
rejectMessage = mkOption {
|
||||
type = types.str;
|
||||
default = "Spam message rejected; If this is not spam contact abuse";
|
||||
description = "reject message for spam";
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Custom snippet to append to end of `spamd' section";
|
||||
};
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Custom snippet to append to rmilter config";
|
||||
};
|
||||
|
||||
postfix = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Add rmilter to postfix main.conf";
|
||||
};
|
||||
|
||||
configFragment = mkOption {
|
||||
type = types.str;
|
||||
description = "Addon to postfix configuration";
|
||||
default = ''
|
||||
smtpd_milters = ${rmilterSocket}
|
||||
milter_protocol = 6
|
||||
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
|
||||
###### implementation
|
||||
|
||||
config = mkMerge [
|
||||
|
||||
(mkIf cfg.enable {
|
||||
warnings = [
|
||||
''`config.services.rmilter' is deprecated, `rmilter' deprecated and unsupported by upstream, and will be removed from next releases. Use built-in rspamd milter instead.''
|
||||
];
|
||||
|
||||
users.users = singleton {
|
||||
name = cfg.user;
|
||||
description = "rmilter daemon";
|
||||
uid = config.ids.uids.rmilter;
|
||||
group = cfg.group;
|
||||
};
|
||||
|
||||
users.groups = singleton {
|
||||
name = cfg.group;
|
||||
gid = config.ids.gids.rmilter;
|
||||
};
|
||||
|
||||
systemd.services.rmilter = {
|
||||
description = "Rmilter Service";
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.rmilter}/bin/rmilter ${optionalString cfg.debug "-d"} -n -c ${rmilterConfigFile}";
|
||||
ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
PermissionsStartOnly = true;
|
||||
Restart = "always";
|
||||
RuntimeDirectory = "rmilter";
|
||||
RuntimeDirectoryMode = "0750";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
systemd.sockets.rmilter = mkIf cfg.socketActivation {
|
||||
description = "Rmilter service socket";
|
||||
wantedBy = [ "sockets.target" ];
|
||||
socketConfig = {
|
||||
ListenStream = systemdSocket;
|
||||
SocketUser = cfg.user;
|
||||
SocketGroup = cfg.group;
|
||||
SocketMode = "0660";
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
(mkIf (cfg.enable && cfg.rspamd.enable && rspamdCfg.enable) {
|
||||
users.users.${cfg.user}.extraGroups = [ rspamdCfg.group ];
|
||||
})
|
||||
|
||||
(mkIf (cfg.enable && cfg.postfix.enable) {
|
||||
services.postfix.extraConfig = cfg.postfix.configFragment;
|
||||
users.users.${postfixCfg.user}.extraGroups = [ cfg.group ];
|
||||
})
|
||||
];
|
||||
}
|
@ -200,7 +200,10 @@ in {
|
||||
"zoneminder/80-nixos.conf".source = configFile;
|
||||
};
|
||||
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.port ];
|
||||
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [
|
||||
cfg.port
|
||||
6802 # zmtrigger
|
||||
];
|
||||
|
||||
services = {
|
||||
fcgiwrap = lib.mkIf useNginx {
|
||||
|
@ -136,10 +136,16 @@ in
|
||||
"/.dns/127.0.0.1#${toString cfg.dns.port}"
|
||||
];
|
||||
|
||||
services.pdns-recursor.forwardZones = mkIf cfgs.pdns-recursor.resolveDNSChainQueries
|
||||
services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveDNSChainQueries {
|
||||
forwardZones =
|
||||
{ bit = "127.0.0.1:${toString cfg.dns.port}";
|
||||
dns = "127.0.0.1:${toString cfg.dns.port}";
|
||||
};
|
||||
luaConfig =''
|
||||
addNTA("bit", "namecoin doesn't support DNSSEC")
|
||||
addNTA("dns", "namecoin doesn't support DNSSEC")
|
||||
'';
|
||||
};
|
||||
|
||||
users.users = singleton {
|
||||
name = username;
|
||||
|
@ -13,7 +13,7 @@ let
|
||||
configSettings = {
|
||||
storage = dataDir;
|
||||
p2p = {
|
||||
public_address = "/ip4/127.0.0.1/tcp/8606";
|
||||
public_address = "/ip4/127.0.0.1/tcp/8299";
|
||||
messages = "high";
|
||||
blocks = "high";
|
||||
};
|
||||
|
@ -7,24 +7,26 @@ let
|
||||
username = "pdns-recursor";
|
||||
|
||||
cfg = config.services.pdns-recursor;
|
||||
zones = mapAttrsToList (zone: uri: "${zone}.=${uri}") cfg.forwardZones;
|
||||
|
||||
configFile = pkgs.writeText "recursor.conf" ''
|
||||
local-address=${cfg.dns.address}
|
||||
local-port=${toString cfg.dns.port}
|
||||
allow-from=${concatStringsSep "," cfg.dns.allowFrom}
|
||||
oneOrMore = type: with types; either type (listOf type);
|
||||
valueType = with types; oneOf [ int str bool path ];
|
||||
configType = with types; attrsOf (nullOr (oneOrMore valueType));
|
||||
|
||||
webserver-address=${cfg.api.address}
|
||||
webserver-port=${toString cfg.api.port}
|
||||
webserver-allow-from=${concatStringsSep "," cfg.api.allowFrom}
|
||||
toBool = val: if val then "yes" else "no";
|
||||
serialize = val: with types;
|
||||
if str.check val then val
|
||||
else if int.check val then toString val
|
||||
else if path.check val then toString val
|
||||
else if bool.check val then toBool val
|
||||
else if builtins.isList val then (concatMapStringsSep "," serialize val)
|
||||
else "";
|
||||
|
||||
forward-zones=${concatStringsSep "," zones}
|
||||
export-etc-hosts=${if cfg.exportHosts then "yes" else "no"}
|
||||
dnssec=${cfg.dnssecValidation}
|
||||
serve-rfc1918=${if cfg.serveRFC1918 then "yes" else "no"}
|
||||
configFile = pkgs.writeText "recursor.conf"
|
||||
(concatStringsSep "\n"
|
||||
(flip mapAttrsToList cfg.settings
|
||||
(name: val: "${name}=${serialize val}")));
|
||||
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
mkDefaultAttrs = mapAttrs (n: v: mkDefault v);
|
||||
|
||||
in {
|
||||
options.services.pdns-recursor = {
|
||||
@ -117,17 +119,55 @@ in {
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
settings = mkOption {
|
||||
type = configType;
|
||||
default = { };
|
||||
example = literalExample ''
|
||||
{
|
||||
loglevel = 8;
|
||||
log-common-errors = true;
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
PowerDNS Recursor settings. Use this option to configure Recursor
|
||||
settings not exposed in a NixOS option or to bypass one.
|
||||
See the full documentation at
|
||||
<link xlink:href="https://doc.powerdns.com/recursor/settings.html"/>
|
||||
for the available options.
|
||||
'';
|
||||
};
|
||||
|
||||
luaConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = ''
|
||||
Extra options to be appended to the configuration file.
|
||||
The content Lua configuration file for PowerDNS Recursor. See
|
||||
<link xlink:href="https://doc.powerdns.com/recursor/lua-config/index.html"/>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
services.pdns-recursor.settings = mkDefaultAttrs {
|
||||
local-address = cfg.dns.address;
|
||||
local-port = cfg.dns.port;
|
||||
allow-from = cfg.dns.allowFrom;
|
||||
|
||||
webserver-address = cfg.api.address;
|
||||
webserver-port = cfg.api.port;
|
||||
webserver-allow-from = cfg.api.allowFrom;
|
||||
|
||||
forward-zones = mapAttrsToList (zone: uri: "${zone}.=${uri}") cfg.forwardZones;
|
||||
export-etc-hosts = cfg.exportHosts;
|
||||
dnssec = cfg.dnssecValidation;
|
||||
serve-rfc1918 = cfg.serveRFC1918;
|
||||
lua-config-file = pkgs.writeText "recursor.lua" cfg.luaConfig;
|
||||
|
||||
log-timestamp = false;
|
||||
disable-syslog = true;
|
||||
};
|
||||
|
||||
users.users."${username}" = {
|
||||
home = dataDir;
|
||||
createHome = true;
|
||||
@ -150,8 +190,7 @@ in {
|
||||
AmbientCapabilities = "cap_net_bind_service";
|
||||
ExecStart = ''${pkgs.pdns-recursor}/bin/pdns_recursor \
|
||||
--config-dir=${dataDir} \
|
||||
--socket-dir=${dataDir} \
|
||||
--disable-syslog
|
||||
--socket-dir=${dataDir}
|
||||
'';
|
||||
};
|
||||
|
||||
@ -165,4 +204,10 @@ in {
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
(mkRemovedOptionModule [ "services" "pdns-recursor" "extraConfig" ]
|
||||
"To change extra Recursor settings use services.pdns-recursor.settings instead.")
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -176,6 +176,7 @@ in
|
||||
Type = "simple";
|
||||
ExecStart = "${(removeSuffix "\n" cmd)} start";
|
||||
ExecStop = "${(removeSuffix "\n" cmd)} stop";
|
||||
Restart = "on-failure";
|
||||
User = "unifi";
|
||||
UMask = "0077";
|
||||
WorkingDirectory = "${stateDir}";
|
||||
|
@ -84,6 +84,18 @@ in
|
||||
The directory where transmission will create files.
|
||||
'';
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "transmission";
|
||||
description = "User account under which Transmission runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "transmission";
|
||||
description = "Group account under which Transmission runs.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -99,7 +111,8 @@ in
|
||||
serviceConfig.ExecStartPre = preStart;
|
||||
serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port}";
|
||||
serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
|
||||
serviceConfig.User = "transmission";
|
||||
serviceConfig.User = cfg.user;
|
||||
serviceConfig.Group = cfg.group;
|
||||
# NOTE: transmission has an internal umask that also must be set (in settings.json)
|
||||
serviceConfig.UMask = "0002";
|
||||
};
|
||||
@ -107,14 +120,19 @@ in
|
||||
# It's useful to have transmission in path, e.g. for remote control
|
||||
environment.systemPackages = [ pkgs.transmission ];
|
||||
|
||||
users.groups.transmission.gid = config.ids.gids.transmission;
|
||||
users.users.transmission = {
|
||||
group = "transmission";
|
||||
users.users = optionalAttrs (cfg.user == "transmission") (singleton
|
||||
{ name = "transmission";
|
||||
group = cfg.group;
|
||||
uid = config.ids.uids.transmission;
|
||||
description = "Transmission BitTorrent user";
|
||||
home = homeDir;
|
||||
createHome = true;
|
||||
};
|
||||
});
|
||||
|
||||
users.groups = optionalAttrs (cfg.group == "transmission") (singleton
|
||||
{ name = "transmission";
|
||||
gid = config.ids.gids.transmission;
|
||||
});
|
||||
|
||||
# AppArmor profile
|
||||
security.apparmor.profiles = mkIf apparmor [
|
||||
|
@ -176,7 +176,7 @@ in {
|
||||
# Use User-Private Group scheme to protect Matomo data, but allow administration / backup via 'matomo' group
|
||||
# Copy config folder
|
||||
chmod g+s "${dataDir}"
|
||||
cp -r "${cfg.package}/config" "${dataDir}/"
|
||||
cp -r "${cfg.package}/share/config" "${dataDir}/"
|
||||
chmod -R u+rwX,g+rwX,o-rwx "${dataDir}"
|
||||
|
||||
# check whether user setup has already been done
|
||||
|
300
nixos/modules/services/web-apps/moodle.nix
Normal file
300
nixos/modules/services/web-apps/moodle.nix
Normal file
@ -0,0 +1,300 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
|
||||
inherit (lib) concatStringsSep literalExample mapAttrsToList optional optionalString;
|
||||
|
||||
cfg = config.services.moodle;
|
||||
fpm = config.services.phpfpm.pools.moodle;
|
||||
|
||||
user = "moodle";
|
||||
group = config.services.httpd.group;
|
||||
stateDir = "/var/lib/moodle";
|
||||
|
||||
moodleConfig = pkgs.writeText "config.php" ''
|
||||
<?php // Moodle configuration file
|
||||
|
||||
unset($CFG);
|
||||
global $CFG;
|
||||
$CFG = new stdClass();
|
||||
|
||||
$CFG->dbtype = '${ { "mysql" = "mariadb"; "pgsql" = "pgsql"; }.${cfg.database.type} }';
|
||||
$CFG->dblibrary = 'native';
|
||||
$CFG->dbhost = '${cfg.database.host}';
|
||||
$CFG->dbname = '${cfg.database.name}';
|
||||
$CFG->dbuser = '${cfg.database.user}';
|
||||
${optionalString (cfg.database.passwordFile != null) "$CFG->dbpass = file_get_contents('${cfg.database.passwordFile}');"}
|
||||
$CFG->prefix = 'mdl_';
|
||||
$CFG->dboptions = array (
|
||||
'dbpersist' => 0,
|
||||
'dbport' => '${toString cfg.database.port}',
|
||||
${optionalString (cfg.database.socket != null) "'dbsocket' => '${cfg.database.socket}',"}
|
||||
'dbcollation' => 'utf8mb4_unicode_ci',
|
||||
);
|
||||
|
||||
$CFG->wwwroot = '${if cfg.virtualHost.enableSSL then "https" else "http"}://${cfg.virtualHost.hostName}';
|
||||
$CFG->dataroot = '${stateDir}';
|
||||
$CFG->admin = 'admin';
|
||||
|
||||
$CFG->directorypermissions = 02777;
|
||||
$CFG->disableupdateautodeploy = true;
|
||||
|
||||
$CFG->pathtogs = '${pkgs.ghostscript}/bin/gs';
|
||||
$CFG->pathtophp = '${pkgs.php}/bin/php';
|
||||
$CFG->pathtodu = '${pkgs.coreutils}/bin/du';
|
||||
$CFG->aspellpath = '${pkgs.aspell}/bin/aspell';
|
||||
$CFG->pathtodot = '${pkgs.graphviz}/bin/dot';
|
||||
|
||||
require_once('${cfg.package}/share/moodle/lib/setup.php');
|
||||
|
||||
// There is no php closing tag in this file,
|
||||
// it is intentional because it prevents trailing whitespace problems!
|
||||
'';
|
||||
|
||||
mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
|
||||
pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
|
||||
in
|
||||
{
|
||||
# interface
|
||||
options.services.moodle = {
|
||||
enable = mkEnableOption "Moodle web application";
|
||||
|
||||
package = mkOption {
|
||||
type = types.package;
|
||||
default = pkgs.moodle;
|
||||
defaultText = "pkgs.moodle";
|
||||
description = "The Moodle package to use.";
|
||||
};
|
||||
|
||||
initialPassword = mkOption {
|
||||
type = types.str;
|
||||
example = "correcthorsebatterystaple";
|
||||
description = ''
|
||||
Specifies the initial password for the admin, i.e. the password assigned if the user does not already exist.
|
||||
The password specified here is world-readable in the Nix store, so it should be changed promptly.
|
||||
'';
|
||||
};
|
||||
|
||||
database = {
|
||||
type = mkOption {
|
||||
type = types.enum [ "mysql" "pgsql" ];
|
||||
default = "mysql";
|
||||
description = ''Database engine to use.'';
|
||||
};
|
||||
|
||||
host = mkOption {
|
||||
type = types.str;
|
||||
default = "localhost";
|
||||
description = "Database host address.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.int;
|
||||
description = "Database host port.";
|
||||
default = {
|
||||
"mysql" = 3306;
|
||||
"pgsql" = 5432;
|
||||
}.${cfg.database.type};
|
||||
defaultText = "3306";
|
||||
};
|
||||
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
default = "moodle";
|
||||
description = "Database name.";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "moodle";
|
||||
description = "Database user.";
|
||||
};
|
||||
|
||||
passwordFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
example = "/run/keys/moodle-dbpassword";
|
||||
description = ''
|
||||
A file containing the password corresponding to
|
||||
<option>database.user</option>.
|
||||
'';
|
||||
};
|
||||
|
||||
socket = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default =
|
||||
if mysqlLocal then "/run/mysqld/mysqld.sock"
|
||||
else if pgsqlLocal then "/run/postgresql"
|
||||
else null;
|
||||
defaultText = "/run/mysqld/mysqld.sock";
|
||||
description = "Path to the unix socket file to use for authentication.";
|
||||
};
|
||||
|
||||
createLocally = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Create the database and database user locally.";
|
||||
};
|
||||
};
|
||||
|
||||
virtualHost = mkOption {
|
||||
type = types.submodule ({
|
||||
options = import ../web-servers/apache-httpd/per-server-options.nix {
|
||||
inherit lib;
|
||||
forMainServer = false;
|
||||
};
|
||||
});
|
||||
example = {
|
||||
hostName = "moodle.example.org";
|
||||
enableSSL = true;
|
||||
adminAddr = "webmaster@example.org";
|
||||
sslServerCert = "/var/lib/acme/moodle.example.org/full.pem";
|
||||
sslServerKey = "/var/lib/acme/moodle.example.org/key.pem";
|
||||
};
|
||||
description = ''
|
||||
Apache configuration can be done by adapting <option>services.httpd.virtualHosts</option>.
|
||||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
||||
'';
|
||||
};
|
||||
|
||||
poolConfig = mkOption {
|
||||
type = with types; attrsOf (oneOf [ str int bool ]);
|
||||
default = {
|
||||
"pm" = "dynamic";
|
||||
"pm.max_children" = 32;
|
||||
"pm.start_servers" = 2;
|
||||
"pm.min_spare_servers" = 2;
|
||||
"pm.max_spare_servers" = 4;
|
||||
"pm.max_requests" = 500;
|
||||
};
|
||||
description = ''
|
||||
Options for the Moodle PHP pool. See the documentation on <literal>php-fpm.conf</literal>
|
||||
for details on configuration directives.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
assertions = [
|
||||
{ assertion = cfg.database.createLocally -> cfg.database.user == user;
|
||||
message = "services.moodle.database.user must be set to ${user} if services.moodle.database.createLocally is set true";
|
||||
}
|
||||
{ assertion = cfg.database.createLocally -> cfg.database.passwordFile == null;
|
||||
message = "a password cannot be specified if services.moodle.database.createLocally is set to true";
|
||||
}
|
||||
];
|
||||
|
||||
services.mysql = mkIf mysqlLocal {
|
||||
enable = true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{ name = cfg.database.user;
|
||||
ensurePermissions = {
|
||||
"${cfg.database.name}.*" = "SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.postgresql = mkIf pgsqlLocal {
|
||||
enable = true;
|
||||
ensureDatabases = [ cfg.database.name ];
|
||||
ensureUsers = [
|
||||
{ name = cfg.database.user;
|
||||
ensurePermissions = { "DATABASE ${cfg.database.name}" = "ALL PRIVILEGES"; };
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.phpfpm.pools.moodle = {
|
||||
inherit user group;
|
||||
phpEnv.MOODLE_CONFIG = "${moodleConfig}";
|
||||
phpOptions = ''
|
||||
zend_extension = opcache.so
|
||||
opcache.enable = 1
|
||||
'';
|
||||
settings = {
|
||||
"listen.owner" = config.services.httpd.user;
|
||||
"listen.group" = config.services.httpd.group;
|
||||
} // cfg.poolConfig;
|
||||
};
|
||||
|
||||
services.httpd = {
|
||||
enable = true;
|
||||
adminAddr = mkDefault cfg.virtualHost.adminAddr;
|
||||
extraModules = [ "proxy_fcgi" ];
|
||||
virtualHosts = [ (mkMerge [
|
||||
cfg.virtualHost {
|
||||
documentRoot = mkForce "${cfg.package}/share/moodle";
|
||||
extraConfig = ''
|
||||
<Directory "${cfg.package}/share/moodle">
|
||||
<FilesMatch "\.php$">
|
||||
<If "-f %{REQUEST_FILENAME}">
|
||||
SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
|
||||
</If>
|
||||
</FilesMatch>
|
||||
Options -Indexes
|
||||
DirectoryIndex index.php
|
||||
</Directory>
|
||||
'';
|
||||
}
|
||||
]) ];
|
||||
};
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${stateDir}' 0750 ${user} ${group} - -"
|
||||
];
|
||||
|
||||
systemd.services.moodle-init = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
before = [ "phpfpm-moodle.service" ];
|
||||
after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
|
||||
environment.MOODLE_CONFIG = moodleConfig;
|
||||
script = ''
|
||||
${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
|
||||
|
||||
[ "$rc" == 1 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
|
||||
--non-interactive \
|
||||
--allow-unstable
|
||||
|
||||
[ "$rc" == 2 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
|
||||
--agree-license \
|
||||
--adminpass=${cfg.initialPassword}
|
||||
|
||||
true
|
||||
'';
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
Group = group;
|
||||
Type = "oneshot";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.moodle-cron = {
|
||||
description = "Moodle cron service";
|
||||
after = [ "moodle-init.service" ];
|
||||
environment.MOODLE_CONFIG = moodleConfig;
|
||||
serviceConfig = {
|
||||
User = user;
|
||||
Group = group;
|
||||
ExecStart = "${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.moodle-cron = {
|
||||
description = "Moodle cron timer";
|
||||
wantedBy = [ "timers.target" ];
|
||||
timerConfig = {
|
||||
OnCalendar = "minutely";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.httpd.after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
|
||||
|
||||
users.users."${user}".group = group;
|
||||
|
||||
};
|
||||
}
|
77
nixos/modules/services/web-servers/darkhttpd.nix
Normal file
77
nixos/modules/services/web-servers/darkhttpd.nix
Normal file
@ -0,0 +1,77 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.darkhttpd;
|
||||
|
||||
args = concatStringsSep " " ([
|
||||
cfg.rootDir
|
||||
"--port ${toString cfg.port}"
|
||||
"--addr ${cfg.address}"
|
||||
] ++ cfg.extraArgs
|
||||
++ optional cfg.hideServerId "--no-server-id"
|
||||
++ optional config.networking.enableIPv6 "--ipv6");
|
||||
|
||||
in {
|
||||
options.services.darkhttpd = with types; {
|
||||
enable = mkEnableOption "DarkHTTPd web server";
|
||||
|
||||
port = mkOption {
|
||||
default = 80;
|
||||
type = ints.u16;
|
||||
description = ''
|
||||
Port to listen on.
|
||||
Pass 0 to let the system choose any free port for you.
|
||||
'';
|
||||
};
|
||||
|
||||
address = mkOption {
|
||||
default = "127.0.0.1";
|
||||
type = str;
|
||||
description = ''
|
||||
Address to listen on.
|
||||
Pass `all` to listen on all interfaces.
|
||||
'';
|
||||
};
|
||||
|
||||
rootDir = mkOption {
|
||||
type = path;
|
||||
description = ''
|
||||
Path from which to serve files.
|
||||
'';
|
||||
};
|
||||
|
||||
hideServerId = mkOption {
|
||||
type = bool;
|
||||
default = true;
|
||||
description = ''
|
||||
Don't identify the server type in headers or directory listings.
|
||||
'';
|
||||
};
|
||||
|
||||
extraArgs = mkOption {
|
||||
type = listOf str;
|
||||
default = [];
|
||||
description = ''
|
||||
Additional configuration passed to the executable.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.services.darkhttpd = {
|
||||
description = "Dark HTTPd";
|
||||
wants = [ "network.target" ];
|
||||
after = [ "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
DynamicUser = true;
|
||||
ExecStart = "${cfg.package}/bin/darkhttpd ${args}";
|
||||
AmbientCapabilities = lib.mkIf (cfg.port < 1024) [ "CAP_NET_BIND_SERVICE" ];
|
||||
Restart = "on-failure";
|
||||
RestartSec = "2s";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -3,7 +3,9 @@
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.xserver.desktopManager.gnome3;
|
||||
serviceCfg = config.services.gnome3;
|
||||
|
||||
# Prioritize nautilus by default when opening directories
|
||||
mimeAppsList = pkgs.writeTextFile {
|
||||
@ -45,10 +47,19 @@ let
|
||||
|
||||
flashbackEnabled = cfg.flashback.enableMetacity || length cfg.flashback.customSessions > 0;
|
||||
|
||||
in {
|
||||
in
|
||||
|
||||
{
|
||||
|
||||
options = {
|
||||
|
||||
services.gnome3 = {
|
||||
core-os-services.enable = mkEnableOption "essential services for GNOME3";
|
||||
core-shell.enable = mkEnableOption "GNOME Shell services";
|
||||
core-utilities.enable = mkEnableOption "GNOME core utilities";
|
||||
games.enable = mkEnableOption "GNOME games";
|
||||
};
|
||||
|
||||
services.xserver.desktopManager.gnome3 = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
@ -121,70 +132,13 @@ in {
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = mkMerge [
|
||||
(mkIf (cfg.enable || flashbackEnabled) {
|
||||
services.gnome3.core-os-services.enable = true;
|
||||
services.gnome3.core-shell.enable = true;
|
||||
services.gnome3.core-utilities.enable = mkDefault true;
|
||||
|
||||
# Enable helpful DBus services.
|
||||
security.polkit.enable = true;
|
||||
services.udisks2.enable = true;
|
||||
services.accounts-daemon.enable = true;
|
||||
services.dleyna-renderer.enable = mkDefault true;
|
||||
services.dleyna-server.enable = mkDefault true;
|
||||
services.gnome3.at-spi2-core.enable = true;
|
||||
services.gnome3.evolution-data-server.enable = true;
|
||||
services.gnome3.glib-networking.enable = true;
|
||||
services.gnome3.gnome-keyring.enable = true;
|
||||
services.gnome3.gnome-online-accounts.enable = mkDefault true;
|
||||
services.gnome3.gnome-remote-desktop.enable = mkDefault true;
|
||||
services.gnome3.gnome-settings-daemon.enable = true;
|
||||
services.gnome3.gnome-user-share.enable = mkDefault true;
|
||||
services.gvfs.enable = true;
|
||||
services.gnome3.rygel.enable = mkDefault true;
|
||||
services.gnome3.seahorse.enable = mkDefault true;
|
||||
services.gnome3.sushi.enable = mkDefault true;
|
||||
services.gnome3.tracker.enable = mkDefault true;
|
||||
services.gnome3.tracker-miners.enable = mkDefault true;
|
||||
hardware.pulseaudio.enable = mkDefault true;
|
||||
services.telepathy.enable = mkDefault true;
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.dbus.packages =
|
||||
optional config.services.printing.enable pkgs.system-config-printer ++
|
||||
optional flashbackEnabled pkgs.gnome3.gnome-screensaver;
|
||||
services.colord.enable = mkDefault true;
|
||||
services.packagekit.enable = mkDefault true;
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
services.hardware.bolt.enable = mkDefault true;
|
||||
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
|
||||
systemd.packages = [ pkgs.gnome3.vino ];
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
# Enable default programs
|
||||
programs.dconf.enable = true;
|
||||
programs.evince.enable = mkDefault true;
|
||||
programs.file-roller.enable = mkDefault true;
|
||||
programs.gnome-disks.enable = mkDefault true;
|
||||
programs.gnome-documents.enable = mkDefault true;
|
||||
programs.gnome-terminal.enable = mkDefault true;
|
||||
|
||||
# If gnome3 is installed, build vim for gtk3 too.
|
||||
nixpkgs.config.vim.gui = "gtk3";
|
||||
|
||||
fonts.fonts = [
|
||||
pkgs.dejavu_fonts pkgs.cantarell-fonts
|
||||
pkgs.source-sans-pro
|
||||
pkgs.source-code-pro # Default monospace font in 3.32
|
||||
];
|
||||
|
||||
services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ]
|
||||
++ map
|
||||
(wm: pkgs.gnome3.gnome-flashback.mkSessionForWm {
|
||||
inherit (wm) wmName wmLabel wmCommand;
|
||||
}) (optional cfg.flashback.enableMetacity {
|
||||
wmName = "metacity";
|
||||
wmLabel = "Metacity";
|
||||
wmCommand = "${pkgs.gnome3.metacity}/bin/metacity";
|
||||
} ++ cfg.flashback.customSessions);
|
||||
services.xserver.displayManager.extraSessionFilePackages = [ pkgs.gnome3.gnome-session ];
|
||||
|
||||
environment.extraInit = ''
|
||||
${concatMapStrings (p: ''
|
||||
@ -199,10 +153,93 @@ in {
|
||||
'') cfg.sessionPath}
|
||||
'';
|
||||
|
||||
environment.systemPackages = cfg.sessionPath;
|
||||
|
||||
environment.variables.GNOME_SESSION_DEBUG = mkIf cfg.debug "1";
|
||||
|
||||
# Override GSettings schemas
|
||||
environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
|
||||
# If gnome3 is installed, build vim for gtk3 too.
|
||||
nixpkgs.config.vim.gui = "gtk3";
|
||||
})
|
||||
|
||||
(mkIf flashbackEnabled {
|
||||
services.xserver.displayManager.extraSessionFilePackages = map
|
||||
(wm: pkgs.gnome3.gnome-flashback.mkSessionForWm {
|
||||
inherit (wm) wmName wmLabel wmCommand;
|
||||
}) (optional cfg.flashback.enableMetacity {
|
||||
wmName = "metacity";
|
||||
wmLabel = "Metacity";
|
||||
wmCommand = "${pkgs.gnome3.metacity}/bin/metacity";
|
||||
} ++ cfg.flashback.customSessions);
|
||||
|
||||
security.pam.services.gnome-screensaver = {
|
||||
enableGnomeKeyring = true;
|
||||
};
|
||||
|
||||
services.dbus.packages = [
|
||||
pkgs.gnome3.gnome-screensaver
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf serviceCfg.core-os-services.enable {
|
||||
hardware.bluetooth.enable = mkDefault true;
|
||||
hardware.pulseaudio.enable = mkDefault true;
|
||||
programs.dconf.enable = true;
|
||||
security.polkit.enable = true;
|
||||
services.accounts-daemon.enable = true;
|
||||
services.dleyna-renderer.enable = mkDefault true;
|
||||
services.dleyna-server.enable = mkDefault true;
|
||||
services.gnome3.at-spi2-core.enable = true;
|
||||
services.gnome3.evolution-data-server.enable = true;
|
||||
services.gnome3.gnome-keyring.enable = true;
|
||||
services.gnome3.gnome-online-accounts.enable = mkDefault true;
|
||||
services.gnome3.gnome-online-miners.enable = true;
|
||||
services.gnome3.tracker-miners.enable = mkDefault true;
|
||||
services.gnome3.tracker.enable = mkDefault true;
|
||||
services.hardware.bolt.enable = mkDefault true;
|
||||
services.packagekit.enable = mkDefault true;
|
||||
services.udisks2.enable = true;
|
||||
services.upower.enable = config.powerManagement.enable;
|
||||
services.xserver.libinput.enable = mkDefault true; # for controlling touchpad settings via gnome control center
|
||||
|
||||
xdg.portal.enable = true;
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
|
||||
networking.networkmanager.enable = mkDefault true;
|
||||
|
||||
# Use the correct gnome3 packageSet
|
||||
networking.networkmanager.basePackages = {
|
||||
inherit (pkgs) networkmanager modemmanager wpa_supplicant crda;
|
||||
inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
|
||||
networkmanager-openconnect networkmanager-fortisslvpn
|
||||
networkmanager-iodine networkmanager-l2tp;
|
||||
};
|
||||
|
||||
services.xserver.updateDbusEnvironment = true;
|
||||
|
||||
# Needed for themes and backgrounds
|
||||
environment.pathsToLink = [
|
||||
"/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
|
||||
];
|
||||
})
|
||||
|
||||
(mkIf serviceCfg.core-shell.enable {
|
||||
services.colord.enable = mkDefault true;
|
||||
services.gnome3.glib-networking.enable = true;
|
||||
services.gnome3.gnome-remote-desktop.enable = mkDefault true;
|
||||
services.gnome3.gnome-settings-daemon.enable = true;
|
||||
services.gnome3.gnome-user-share.enable = mkDefault true;
|
||||
services.gnome3.rygel.enable = mkDefault true;
|
||||
services.gvfs.enable = true;
|
||||
services.telepathy.enable = mkDefault true;
|
||||
systemd.packages = [ pkgs.gnome3.vino ];
|
||||
services.dbus.packages =
|
||||
optional config.services.printing.enable pkgs.system-config-printer;
|
||||
|
||||
services.geoclue2.enable = mkDefault true;
|
||||
# GNOME should have its own geoclue agent
|
||||
services.geoclue2.enableDemoAgent = false;
|
||||
services.geoclue2.enableDemoAgent = false; # GNOME has its own geoclue agent
|
||||
|
||||
services.geoclue2.appConfig."gnome-datetime-panel" = {
|
||||
isAllowed = true;
|
||||
@ -217,42 +254,72 @@ in {
|
||||
isSystem = true;
|
||||
};
|
||||
|
||||
environment.variables.GNOME_SESSION_DEBUG = optionalString cfg.debug "1";
|
||||
fonts.fonts = with pkgs; [
|
||||
cantarell-fonts
|
||||
dejavu_fonts
|
||||
source-code-pro # Default monospace font in 3.32
|
||||
source-sans-pro
|
||||
];
|
||||
|
||||
# Override default mimeapps
|
||||
environment.variables.XDG_DATA_DIRS = [ "${mimeAppsList}/share" ];
|
||||
environment.systemPackages = with pkgs.gnome3; [
|
||||
adwaita-icon-theme
|
||||
gnome-backgrounds
|
||||
gnome-bluetooth
|
||||
gnome-control-center
|
||||
gnome-getting-started-docs
|
||||
gnome-shell
|
||||
gnome-shell-extensions
|
||||
gnome-themes-extra
|
||||
gnome-user-docs
|
||||
pkgs.glib # for gsettings
|
||||
pkgs.gnome-menus
|
||||
pkgs.gtk3.out # for gtk-launch
|
||||
pkgs.hicolor-icon-theme
|
||||
pkgs.shared-mime-info # for update-mime-database
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
vino
|
||||
];
|
||||
})
|
||||
|
||||
# Override GSettings schemas
|
||||
environment.variables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-desktop-schemas}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
|
||||
(mkIf serviceCfg.core-utilities.enable {
|
||||
environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
|
||||
baobab eog epiphany evince gucharmap nautilus totem yelp gnome-calculator
|
||||
gnome-contacts gnome-font-viewer gnome-screenshot gnome-system-monitor simple-scan
|
||||
gnome-terminal evolution file-roller gedit gnome-clocks gnome-music gnome-tweaks
|
||||
pkgs.gnome-photos nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
|
||||
gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool gnome-packagekit
|
||||
gnome-software gnome-power-manager gnome-todo pkgs.gnome-usage
|
||||
] config.environment.gnome3.excludePackages);
|
||||
|
||||
# Enable default programs
|
||||
programs.evince.enable = mkDefault true;
|
||||
programs.file-roller.enable = mkDefault true;
|
||||
programs.gnome-disks.enable = mkDefault true;
|
||||
programs.gnome-documents.enable = mkDefault true;
|
||||
programs.gnome-terminal.enable = mkDefault true;
|
||||
services.gnome3.seahorse.enable = mkDefault true;
|
||||
services.gnome3.sushi.enable = mkDefault true;
|
||||
|
||||
# Let nautilus find extensions
|
||||
# TODO: Create nautilus-with-extensions package
|
||||
environment.variables.NAUTILUS_EXTENSION_DIR = "${config.system.path}/lib/nautilus/extensions-3.0";
|
||||
|
||||
services.xserver.updateDbusEnvironment = true;
|
||||
# Override default mimeapps for nautilus
|
||||
environment.variables.XDG_DATA_DIRS = [ "${mimeAppsList}/share" ];
|
||||
|
||||
environment.systemPackages = pkgs.gnome3.corePackages ++ cfg.sessionPath
|
||||
++ (pkgs.gnome3.removePackagesByName pkgs.gnome3.optionalPackages config.environment.gnome3.excludePackages) ++ [
|
||||
pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
|
||||
];
|
||||
|
||||
# Use the correct gnome3 packageSet
|
||||
networking.networkmanager.basePackages =
|
||||
{ inherit (pkgs) networkmanager modemmanager wpa_supplicant crda;
|
||||
inherit (pkgs.gnome3) networkmanager-openvpn networkmanager-vpnc
|
||||
networkmanager-openconnect networkmanager-fortisslvpn
|
||||
networkmanager-iodine networkmanager-l2tp; };
|
||||
|
||||
# Needed for themes and backgrounds
|
||||
environment.pathsToLink = [
|
||||
"/share"
|
||||
"/share/nautilus-python/extensions"
|
||||
];
|
||||
})
|
||||
|
||||
security.pam.services.gnome-screensaver = mkIf flashbackEnabled {
|
||||
enableGnomeKeyring = true;
|
||||
};
|
||||
};
|
||||
|
||||
(mkIf serviceCfg.games.enable {
|
||||
environment.systemPackages = (with pkgs.gnome3; removePackagesByName [
|
||||
aisleriot atomix five-or-more four-in-a-row gnome-chess gnome-klotski
|
||||
gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-sudoku
|
||||
gnome-taquin gnome-tetravex hitori iagno lightsoff quadrapassel
|
||||
swell-foop tali
|
||||
] config.environment.gnome3.excludePackages);
|
||||
})
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -537,7 +537,7 @@ in
|
||||
};
|
||||
|
||||
systemd.enableCgroupAccounting = mkOption {
|
||||
default = false;
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to enable cgroup accounting.
|
||||
@ -804,10 +804,10 @@ in
|
||||
[Manager]
|
||||
${optionalString config.systemd.enableCgroupAccounting ''
|
||||
DefaultCPUAccounting=yes
|
||||
DefaultBlockIOAccounting=yes
|
||||
DefaultIOAccounting=yes
|
||||
DefaultBlockIOAccounting=yes
|
||||
DefaultMemoryAccounting=yes
|
||||
DefaultTasksAccounting=yes
|
||||
DefaultIPAccounting=yes
|
||||
''}
|
||||
DefaultLimitCORE=infinity
|
||||
${config.systemd.extraConfig}
|
||||
|
@ -161,6 +161,7 @@ in
|
||||
minio = handleTest ./minio.nix {};
|
||||
misc = handleTest ./misc.nix {};
|
||||
mongodb = handleTest ./mongodb.nix {};
|
||||
moodle = handleTest ./moodle.nix {};
|
||||
morty = handleTest ./morty.nix {};
|
||||
mosquitto = handleTest ./mosquitto.nix {};
|
||||
mpd = handleTest ./mpd.nix {};
|
||||
|
@ -5,9 +5,17 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||
};
|
||||
|
||||
nodes = {
|
||||
# Testing the Byzantine Fault Tolerant protocol
|
||||
bft = { ... }: {
|
||||
environment.systemPackages = [ pkgs.jormungandr ];
|
||||
services.jormungandr.enable = true;
|
||||
services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin";
|
||||
services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml";
|
||||
};
|
||||
|
||||
# Testing the Ouroboros Genesis Praos protocol
|
||||
genesis = { ... }: {
|
||||
environment.systemPackages = [ pkgs.jormungandr ];
|
||||
services.jormungandr.enable = true;
|
||||
services.jormungandr.genesisBlockFile = "/var/lib/jormungandr/block-0.bin";
|
||||
services.jormungandr.secretFile = "/etc/secrets/jormungandr.yaml";
|
||||
@ -17,6 +25,7 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||
testScript = ''
|
||||
startAll;
|
||||
|
||||
## Testing BFT
|
||||
# Let's wait for the StateDirectory
|
||||
$bft->waitForFile("/var/lib/jormungandr/");
|
||||
|
||||
@ -45,5 +54,24 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||
|
||||
# Now we can test if we are able to reach the REST API
|
||||
$bft->waitUntilSucceeds("curl -L http://localhost:8607/api/v0/node/stats | grep uptime");
|
||||
|
||||
## Testing Genesis
|
||||
# Let's wait for the StateDirectory
|
||||
$genesis->waitForFile("/var/lib/jormungandr/");
|
||||
|
||||
# Bootstraping the configuration
|
||||
$genesis->succeed("jormungandr-bootstrap -g -p 8607 -s 1");
|
||||
|
||||
# Moving generated files in place
|
||||
$genesis->succeed("mkdir -p /etc/secrets");
|
||||
$genesis->succeed("mv pool-secret1.yaml /etc/secrets/jormungandr.yaml");
|
||||
$genesis->succeed("mv block-0.bin /var/lib/jormungandr/");
|
||||
|
||||
# We should have everything to start the service now
|
||||
$genesis->succeed("systemctl restart jormungandr");
|
||||
$genesis->waitForUnit("jormungandr.service");
|
||||
|
||||
# Now we can create and delegate an account
|
||||
$genesis->succeed("./create-account-and-delegate.sh | tee -a /tmp/delegate.log");
|
||||
'';
|
||||
})
|
||||
|
22
nixos/tests/moodle.nix
Normal file
22
nixos/tests/moodle.nix
Normal file
@ -0,0 +1,22 @@
|
||||
import ./make-test.nix ({ pkgs, lib, ... }: {
|
||||
name = "moodle";
|
||||
meta.maintainers = [ lib.maintainers.aanderse ];
|
||||
|
||||
machine =
|
||||
{ ... }:
|
||||
{ services.moodle.enable = true;
|
||||
services.moodle.virtualHost.hostName = "localhost";
|
||||
services.moodle.virtualHost.adminAddr = "root@example.com";
|
||||
services.moodle.initialPassword = "correcthorsebatterystaple";
|
||||
|
||||
# Ensure the virtual machine has enough memory to avoid errors like:
|
||||
# Fatal error: Out of memory (allocated 152047616) (tried to allocate 33554440 bytes)
|
||||
virtualisation.memorySize = 2000;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
startAll;
|
||||
$machine->waitForUnit('phpfpm-moodle.service');
|
||||
$machine->succeed('curl http://localhost/') =~ /You are not logged in/ or die;
|
||||
'';
|
||||
})
|
@ -89,5 +89,12 @@ import ./make-test.nix ({ pkgs, ... }: {
|
||||
$machine->waitForUnit('multi-user.target');
|
||||
$machine->succeed('sysctl net.core.default_qdisc | grep -q "fq_codel"');
|
||||
};
|
||||
|
||||
# Test cgroup accounting is enabled
|
||||
subtest "systemd cgroup accounting is enabled", sub {
|
||||
$machine->waitForUnit('multi-user.target');
|
||||
$machine->succeed('systemctl show testservice1.service -p IOAccounting | grep -q "yes"');
|
||||
$machine->succeed('systemctl status testservice1.service | grep -q "CPU:"');
|
||||
};
|
||||
'';
|
||||
})
|
||||
|
@ -16,15 +16,15 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "06ij9v7zbdnhxq9429nnxiw655cp8idldj18l7fmj94gqx07n5vh";
|
||||
};
|
||||
|
||||
patches = [ ./fix-bitcoin-qt-build.patch ];
|
||||
|
||||
nativeBuildInputs = [ pkgconfig autoreconfHook ];
|
||||
buildInputs = [ openssl db48 boost zlib
|
||||
miniupnpc utillinux protobuf libevent ]
|
||||
++ optionals withGui [ qtbase qttools qrencode ];
|
||||
|
||||
configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
|
||||
++ optionals withGui [ "--with-gui=qt5" ];
|
||||
++ optionals withGui [ "--with-gui=qt5"
|
||||
"--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
|
@ -24,6 +24,22 @@ rustPlatform.buildRustPackage rec {
|
||||
nativeBuildInputs = [ pkgconfig protobuf ];
|
||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
|
||||
|
||||
patchPhase = ''
|
||||
sed -i "s~SCRIPTPATH=.*~SCRIPTPATH=$out/templates/~g" scripts/bootstrap
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -d $out/bin $out/templates
|
||||
install -m755 target/*/release/jormungandr $out/bin/
|
||||
install -m755 target/*/release/jcli $out/bin/
|
||||
install -m755 scripts/send-transaction $out/templates
|
||||
install -m755 scripts/jcli-helpers $out/bin/
|
||||
install -m755 scripts/bootstrap $out/bin/jormungandr-bootstrap
|
||||
install -m644 scripts/faucet-send-money.shtempl $out/templates/
|
||||
install -m644 scripts/create-account-and-delegate.shtempl $out/templates/
|
||||
install -m644 scripts/faucet-send-certificate.shtempl $out/templates/
|
||||
'';
|
||||
|
||||
PROTOC = "${protobuf}/bin/protoc";
|
||||
|
||||
# Disabling integration tests
|
||||
|
@ -28,13 +28,13 @@ let
|
||||
in
|
||||
with stdenv.lib; stdenv.mkDerivation rec {
|
||||
pname = "VCV-Rack";
|
||||
version = "1.1.3";
|
||||
version = "1.1.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "VCVRack";
|
||||
repo = "Rack";
|
||||
rev = "v${version}";
|
||||
sha256 = "16q3x0jpwkdwwvh7rn472w7nfjf81s10z9c7bx011kk7rgk88hh2";
|
||||
sha256 = "04kg0nm7w19s2zfrsxjfl3bs4sy3bzf28kzl4hayzwv480667ybx";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -78,7 +78,7 @@ with stdenv.lib; stdenv.mkDerivation rec {
|
||||
# The source is BSD-3 licensed, some of the art is CC-BY-NC 4.0 or under a
|
||||
# no-derivatives clause
|
||||
license = with licenses; [ bsd3 cc-by-nc-40 unfreeRedistributable ];
|
||||
maintainers = with maintainers; [ moredread ];
|
||||
maintainers = with maintainers; [ moredread nathyong ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
@ -33,8 +33,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
|
||||
inherit (import ./libgenerated.nix lib self) melpaDerivation;
|
||||
super = lib.listToAttrs (map (melpaDerivation variant) (lib.importJSON archiveJson));
|
||||
|
||||
generic = import ./melpa-generic.nix;
|
||||
|
||||
overrides = rec {
|
||||
shared = {
|
||||
# Expects bash to be at /bin/bash
|
||||
@ -132,19 +130,19 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
|
||||
initsplit = markBroken super.initsplit;
|
||||
|
||||
irony = super.irony.overrideAttrs (old: {
|
||||
cmakeFlags = old.cmakeFlags or [] ++ [ "-DCMAKE_INSTALL_BINDIR=bin" ];
|
||||
preConfigure = ''
|
||||
cd server
|
||||
'';
|
||||
preBuild = ''
|
||||
make
|
||||
install -D bin/irony-server $out/bin/irony-server
|
||||
cd ..
|
||||
'';
|
||||
postInstall = ''
|
||||
mkdir -p $out
|
||||
mv $out/share/emacs/site-lisp/elpa/*/server/bin $out
|
||||
rm -rf $out/share/emacs/site-lisp/elpa/*/server
|
||||
'';
|
||||
preCheck = ''
|
||||
checkPhase = ''
|
||||
cd source/server
|
||||
make check
|
||||
cd ../..
|
||||
'';
|
||||
dontUseCmakeBuildDir = true;
|
||||
doCheck = true;
|
||||
@ -396,13 +394,6 @@ env NIXPKGS_ALLOW_BROKEN=1 nix-instantiate --show-trace ../../../../ -A emacsPac
|
||||
# Expects bash to be at /bin/bash
|
||||
helm-rtags = markBroken super.helm-rtags;
|
||||
|
||||
# Fails with "package does not untar cleanly into ..."
|
||||
irony = shared.irony.overrideAttrs(old: {
|
||||
meta = old.meta // {
|
||||
broken = true;
|
||||
};
|
||||
});
|
||||
|
||||
orgit =
|
||||
(super.orgit.overrideAttrs (attrs: {
|
||||
# searches for Git at build time
|
||||
|
@ -20,11 +20,11 @@ let
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "nano";
|
||||
version = "4.3";
|
||||
version = "4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
|
||||
sha256 = "108dzj6azqmini9bvgl26r0q1y59s3nnrw75hfzv91bs50davlq0";
|
||||
sha256 = "1iw2ypq34g1gfqyhgka2fz5yj5vrlz85q6zk7amgyj286ph25wia";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, pkgconfig, qmake
|
||||
{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, qmake
|
||||
, python, qtbase, qttools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "tiled";
|
||||
version = "1.2.4";
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "hugo";
|
||||
version = "0.55.4";
|
||||
version = "0.57.2";
|
||||
|
||||
goPackagePath = "github.com/gohugoio/hugo";
|
||||
|
||||
@ -10,10 +10,10 @@ buildGoModule rec {
|
||||
owner = "gohugoio";
|
||||
repo = "hugo";
|
||||
rev = "v${version}";
|
||||
sha256 = "0hbkl8dhhdic0admrkvlp1h1bmfrrwfnvipx27clyk0f88jcvb7y";
|
||||
sha256 = "1cqvm2fj6hh2n9iv67vamhn23fbxmmwciks0r4h4y0hapzlzpyd8";
|
||||
};
|
||||
|
||||
modSha256 = "0yrwkaaasj9ihjjfbywnzkppix1y2znagg3dkyikk21sl5n0nz23";
|
||||
modSha256 = "09r7r1s5b2fvnzpzjarpv2lnvp6bxdfschiq6352hw631n7kkyz1";
|
||||
|
||||
buildFlags = "-tags extended";
|
||||
|
||||
|
@ -17,9 +17,7 @@
|
||||
, lsb-release
|
||||
, mkDerivation
|
||||
, pkgconfig
|
||||
, qmake
|
||||
, qtbase
|
||||
, qtsvg
|
||||
, qttools
|
||||
, sqlite
|
||||
, swig
|
||||
@ -29,13 +27,13 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "megasync";
|
||||
version = "4.1.1.0";
|
||||
version = "4.2.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "meganz";
|
||||
repo = "MEGAsync";
|
||||
rev = "v${version}_Linux";
|
||||
sha256 = "0lc228q3s9xp78dxjn22g6anqlsy1hi7a6yfs4q3l6gyfc3qcxl2";
|
||||
sha256 = "0l4yfrxjb62vc9dnlzy8rjqi68ga1bys5x5rfzs40daw13yf1adv";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
@ -45,7 +43,6 @@ mkDerivation rec {
|
||||
doxygen
|
||||
lsb-release
|
||||
pkgconfig
|
||||
qmake
|
||||
qttools
|
||||
swig
|
||||
];
|
||||
@ -62,7 +59,6 @@ mkDerivation rec {
|
||||
libuv
|
||||
libzen
|
||||
qtbase
|
||||
qtsvg
|
||||
sqlite
|
||||
unzip
|
||||
wget
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, pkgconfig, fetchurl, buildPythonApplication
|
||||
, autoreconfHook, wrapGAppsHook, gobject-introspection
|
||||
, intltool, yelp-tools, itstool, libxmlxx3
|
||||
, python, pygobject3, gtk3, gnome3, substituteAll
|
||||
, python, pygobject3, gtk3, gnome3, substituteAll, hicolor-icon-theme
|
||||
, at-spi2-atk, at-spi2-core, pyatspi, dbus, dbus-python, pyxdg
|
||||
, xkbcomp, procps, lsof, coreutils, gsettings-desktop-schemas
|
||||
, speechd, brltty, liblouis, setproctitle, gst_all_1, gst-python
|
||||
@ -31,6 +31,7 @@ buildPythonApplication rec {
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook wrapGAppsHook pkgconfig libxmlxx3
|
||||
intltool yelp-tools itstool gobject-introspection
|
||||
hicolor-icon-theme # setup-hook
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
24
pkgs/applications/misc/rsclock/default.nix
Normal file
24
pkgs/applications/misc/rsclock/default.nix
Normal file
@ -0,0 +1,24 @@
|
||||
{ stdenv, rustPlatform, fetchFromGitHub }:
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rsClock";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "valebes";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1fpidswkgpf9yr4vxqn38livz6r3z5i0lhg7ngj9f1ki4yqxn9zh";
|
||||
};
|
||||
|
||||
cargoSha256 = "1m0lm8xh1qp0cbx870xy2m0bv047mb00vcwzq7r5gxqx8n61qm4n";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A simple terminal clock written in Rust";
|
||||
homepage = "https://github.com/valebes/rsClock";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [valebes];
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
{ stdenv, fetchurl, lib, qt4, openssl, autoconf, automake, pkgconfig }:
|
||||
{ stdenv, fetchurl, lib, qt4, openssl, pkgconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "yate";
|
||||
version = "6.0.0-1";
|
||||
version = "6.1.0-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://voip.null.ro/tarballs/yate${lib.versions.major version}/${pname}-${version}.tar.gz";
|
||||
sha256 = "05qqdhi3rp5660gq1484jkmxkm9vq81j0yr765h0gf0xclan1dqa";
|
||||
sha256 = "0xx3i997nsf2wzbv6m5n6adsym0qhgc6xg4rsv0fwqrgisf5327d";
|
||||
};
|
||||
|
||||
# TODO zaptel ? postgres ?
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ qt4 openssl autoconf automake ];
|
||||
buildInputs = [ qt4 openssl ];
|
||||
|
||||
# /dev/null is used when linking which is a impure path for the wrapper
|
||||
preConfigure =
|
||||
|
@ -100,11 +100,11 @@ let
|
||||
|
||||
flash = stdenv.mkDerivation rec {
|
||||
pname = "flashplayer-ppapi";
|
||||
version = "32.0.0.223";
|
||||
version = "32.0.0.238";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
|
||||
sha256 = "0xm6jcdip4gki267ldw106l5j43im0ji2zjsarvi7n2nvvnwwgnl";
|
||||
sha256 = "0jqx68lfqjpy6wbxdi0giclvh9mc9rha92hqdj1nx42v95k3gc65";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
@ -17,11 +17,11 @@ let
|
||||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "2.6.1566.51-1";
|
||||
version = "2.7.1628.30-1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
|
||||
sha256 = "0582f16saldgn482806f9igb97is4p3ayvh99j0wx9plxnyq5xmm";
|
||||
sha256 = "1lz8adwiwll8g246s5pa0ipfraph51s9f4lcfysdrp1s3s1qhw8x";
|
||||
};
|
||||
|
||||
unpackPhase = ''
|
||||
|
@ -5,20 +5,20 @@ buildGoPackage rec {
|
||||
/* Do not use "dev" as a version. If you do, Tilt will consider itself
|
||||
running in development environment and try to serve assets from the
|
||||
source tree, which is not there once build completes. */
|
||||
version = "0.9.7";
|
||||
version = "0.10.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "windmilleng";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "0b7jk7iwjzdsb2wp9qx4gs9g3gi2vcqw5ilkax3gfz7wsplm0n65";
|
||||
sha256 = "0nxgmldbcaj91jq47qxpf6jqwvi9bhg243qchdkiliphybvilcrg";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/windmilleng/tilt";
|
||||
|
||||
subPackages = [ "cmd/tilt" ];
|
||||
|
||||
buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2019-07-30");
|
||||
buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2019-08-14");
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
|
||||
|
@ -1,7 +1,6 @@
|
||||
{fetchurl, linkFarm}: rec {
|
||||
{ fetchurl, fetchgit, linkFarm, runCommandNoCC, gnutar }: rec {
|
||||
offline_cache = linkFarm "offline" packages;
|
||||
packages = [
|
||||
|
||||
{
|
||||
name = "_types_node___node_9.6.45.tgz";
|
||||
path = fetchurl {
|
||||
@ -10,7 +9,6 @@
|
||||
sha1 = "a9e5cfd026a3abaaf17e3c0318a470da9f2f178e";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "ajv___ajv_6.10.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -19,7 +17,6 @@
|
||||
sha1 = "90d0d54439da587cd7e843bfb7045f50bd22bdf1";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "applescript___applescript_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -28,7 +25,6 @@
|
||||
sha1 = "bb87af568cad034a4e48c4bdaf6067a3a2701317";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "asn1___asn1_0.2.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -37,7 +33,6 @@
|
||||
sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "assert_plus___assert_plus_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -46,7 +41,6 @@
|
||||
sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "asynckit___asynckit_0.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -55,7 +49,6 @@
|
||||
sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "auto_launch___auto_launch_5.0.5.tgz";
|
||||
path = fetchurl {
|
||||
@ -64,7 +57,6 @@
|
||||
sha1 = "d14bd002b1ef642f85e991a6195ff5300c8ad3c0";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "aws_sign2___aws_sign2_0.7.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -73,7 +65,6 @@
|
||||
sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "aws4___aws4_1.8.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -82,7 +73,6 @@
|
||||
sha1 = "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -91,7 +81,6 @@
|
||||
sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "bignumber.js___bignumber.js_2.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -100,7 +89,6 @@
|
||||
sha1 = "838a992da9f9d737e0f4b2db0be62bb09dd0c5e8";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "bmp_js___bmp_js_0.0.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -109,7 +97,6 @@
|
||||
sha1 = "64113e9c7cf1202b376ed607bf30626ebe57b18a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "buffer_equal___buffer_equal_0.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -118,7 +105,6 @@
|
||||
sha1 = "91bc74b11ea405bc916bc6aa908faafa5b4aac4b";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "caseless___caseless_0.12.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -127,7 +113,6 @@
|
||||
sha1 = "1b681c21ff84033c826543090689420d187151dc";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "combined_stream___combined_stream_1.0.7.tgz";
|
||||
path = fetchurl {
|
||||
@ -136,7 +121,6 @@
|
||||
sha1 = "2d1d24317afb8abe95d6d2c0b07b57813539d828";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "conf___conf_2.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -145,7 +129,6 @@
|
||||
sha1 = "ee282efafc1450b61e205372041ad7d866802d9a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "core_util_is___core_util_is_1.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -154,7 +137,6 @@
|
||||
sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "dashdash___dashdash_1.14.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -163,7 +145,6 @@
|
||||
sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "deep_equal___deep_equal_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -172,7 +153,6 @@
|
||||
sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "define_properties___define_properties_1.1.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -181,7 +161,6 @@
|
||||
sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "delayed_stream___delayed_stream_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -190,7 +169,6 @@
|
||||
sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "dom_walk___dom_walk_0.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -199,7 +177,6 @@
|
||||
sha1 = "672226dc74c8f799ad35307df936aba11acd6018";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "dot_prop___dot_prop_4.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -208,7 +185,6 @@
|
||||
sha1 = "1f19e0c2e1aa0e32797c49799f2837ac6af69c57";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -217,7 +193,6 @@
|
||||
sha1 = "3a83a904e54353287874c564b7549386849a98c9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "electron_store___electron_store_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -226,7 +201,6 @@
|
||||
sha1 = "1035cca2a95409d1f54c7466606345852450d64a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "electron_window_state___electron_window_state_4.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -235,7 +209,6 @@
|
||||
sha1 = "6b34fdc31b38514dfec8b7c8f7b5d4addb67632d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "env_paths___env_paths_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -244,7 +217,6 @@
|
||||
sha1 = "4168133b42bb05c38a35b1ae4397c8298ab369e0";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "es_abstract___es_abstract_1.13.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -253,7 +225,6 @@
|
||||
sha1 = "ac86145fdd5099d8dd49558ccba2eaf9b88e24e9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "es_to_primitive___es_to_primitive_1.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -262,7 +233,6 @@
|
||||
sha1 = "edf72478033456e8dda8ef09e00ad9650707f377";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "es6_promise___es6_promise_3.3.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -271,7 +241,6 @@
|
||||
sha1 = "a08cdde84ccdbf34d027a1451bc91d4bcd28a613";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "exif_parser___exif_parser_0.1.12.tgz";
|
||||
path = fetchurl {
|
||||
@ -280,7 +249,6 @@
|
||||
sha1 = "58a9d2d72c02c1f6f02a0ef4a9166272b7760922";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "extend___extend_3.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -289,7 +257,6 @@
|
||||
sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "extsprintf___extsprintf_1.3.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -298,7 +265,6 @@
|
||||
sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "extsprintf___extsprintf_1.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -307,7 +273,6 @@
|
||||
sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "fast_deep_equal___fast_deep_equal_2.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -316,7 +281,6 @@
|
||||
sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -325,7 +289,6 @@
|
||||
sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "file_type___file_type_3.9.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -334,7 +297,6 @@
|
||||
sha1 = "257a078384d1db8087bc449d107d52a52672b9e9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "find_up___find_up_2.1.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -343,7 +305,6 @@
|
||||
sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "for_each___for_each_0.3.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -352,7 +313,6 @@
|
||||
sha1 = "69b447e88a0a5d32c3e7084f3f1710034b21376e";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "forever_agent___forever_agent_0.6.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -361,7 +321,6 @@
|
||||
sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "form_data___form_data_2.3.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -370,7 +329,6 @@
|
||||
sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "function_bind___function_bind_1.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -379,7 +337,6 @@
|
||||
sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "getpass___getpass_0.1.7.tgz";
|
||||
path = fetchurl {
|
||||
@ -388,7 +345,6 @@
|
||||
sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "global___global_4.3.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -397,7 +353,6 @@
|
||||
sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "graceful_fs___graceful_fs_4.1.15.tgz";
|
||||
path = fetchurl {
|
||||
@ -406,7 +361,6 @@
|
||||
sha1 = "ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "har_schema___har_schema_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -415,7 +369,6 @@
|
||||
sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "har_validator___har_validator_5.1.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -424,7 +377,6 @@
|
||||
sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "has_symbols___has_symbols_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -433,7 +385,6 @@
|
||||
sha1 = "ba1a8f1af2a0fc39650f5c850367704122063b44";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "has___has_1.0.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -442,7 +393,6 @@
|
||||
sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "http_signature___http_signature_1.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -451,7 +401,6 @@
|
||||
sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "imurmurhash___imurmurhash_0.1.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -460,7 +409,6 @@
|
||||
sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "ip_regex___ip_regex_1.0.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -469,7 +417,6 @@
|
||||
sha1 = "dc589076f659f419c222039a33316f1c7387effd";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_callable___is_callable_1.1.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -478,7 +425,6 @@
|
||||
sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_date_object___is_date_object_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -487,7 +433,6 @@
|
||||
sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_function___is_function_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -496,7 +441,6 @@
|
||||
sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_obj___is_obj_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -505,7 +449,6 @@
|
||||
sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_regex___is_regex_1.0.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -514,7 +457,6 @@
|
||||
sha1 = "5517489b547091b0930e095654ced25ee97e9491";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_symbol___is_symbol_1.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -523,7 +465,6 @@
|
||||
sha1 = "a055f6ae57192caee329e7a860118b497a950f38";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "is_typedarray___is_typedarray_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -532,7 +473,6 @@
|
||||
sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "isstream___isstream_0.1.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -541,7 +481,6 @@
|
||||
sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "jimp___jimp_0.2.28.tgz";
|
||||
path = fetchurl {
|
||||
@ -550,7 +489,6 @@
|
||||
sha1 = "dd529a937190f42957a7937d1acc3a7762996ea2";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "jpeg_js___jpeg_js_0.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -559,7 +497,6 @@
|
||||
sha1 = "53e448ec9d263e683266467e9442d2c5a2ef5482";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "jsbn___jsbn_0.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -568,7 +505,6 @@
|
||||
sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -577,7 +513,6 @@
|
||||
sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "json_schema___json_schema_0.2.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -586,7 +521,6 @@
|
||||
sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -595,7 +529,6 @@
|
||||
sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "jsonfile___jsonfile_2.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -604,7 +537,6 @@
|
||||
sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "jsprim___jsprim_1.4.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -613,7 +545,6 @@
|
||||
sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "load_bmfont___load_bmfont_1.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -622,7 +553,6 @@
|
||||
sha1 = "75f17070b14a8c785fe7f5bee2e6fd4f98093b6b";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "locate_path___locate_path_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -631,7 +561,6 @@
|
||||
sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "make_dir___make_dir_1.3.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -640,7 +569,6 @@
|
||||
sha1 = "79c1033b80515bd6d24ec9933e860ca75ee27f0c";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "mime_db___mime_db_1.38.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -649,7 +577,6 @@
|
||||
sha1 = "1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "mime_types___mime_types_2.1.22.tgz";
|
||||
path = fetchurl {
|
||||
@ -658,7 +585,6 @@
|
||||
sha1 = "fe6b355a190926ab7698c9a0556a11199b2199bd";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "mime___mime_1.6.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -667,7 +593,6 @@
|
||||
sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "min_document___min_document_2.19.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -676,7 +601,6 @@
|
||||
sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "minimist___minimist_0.0.8.tgz";
|
||||
path = fetchurl {
|
||||
@ -685,7 +609,6 @@
|
||||
sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "minimist___minimist_1.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -694,7 +617,6 @@
|
||||
sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "mkdirp___mkdirp_0.5.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -703,7 +625,6 @@
|
||||
sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "oauth_sign___oauth_sign_0.9.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -712,7 +633,6 @@
|
||||
sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "object_keys___object_keys_1.1.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -721,7 +641,6 @@
|
||||
sha1 = "11bd22348dd2e096a045ab06f6c85bcc340fa032";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "p_limit___p_limit_1.3.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -730,7 +649,6 @@
|
||||
sha1 = "b86bd5f0c25690911c7590fcbfc2010d54b3ccb8";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "p_locate___p_locate_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -739,7 +657,6 @@
|
||||
sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "p_try___p_try_1.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -748,7 +665,6 @@
|
||||
sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "parse_bmfont_ascii___parse_bmfont_ascii_1.0.6.tgz";
|
||||
path = fetchurl {
|
||||
@ -757,7 +673,6 @@
|
||||
sha1 = "11ac3c3ff58f7c2020ab22769079108d4dfa0285";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "parse_bmfont_binary___parse_bmfont_binary_1.0.6.tgz";
|
||||
path = fetchurl {
|
||||
@ -766,7 +681,6 @@
|
||||
sha1 = "d038b476d3e9dd9db1e11a0b0e53a22792b69006";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "parse_bmfont_xml___parse_bmfont_xml_1.1.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -775,7 +689,6 @@
|
||||
sha1 = "015319797e3e12f9e739c4d513872cd2fa35f389";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "parse_headers___parse_headers_2.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -784,7 +697,6 @@
|
||||
sha1 = "9545e8a4c1ae5eaea7d24992bca890281ed26e34";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "path_exists___path_exists_3.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -793,7 +705,6 @@
|
||||
sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -802,7 +713,6 @@
|
||||
sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "performance_now___performance_now_2.1.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -811,7 +721,6 @@
|
||||
sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "phin___phin_2.9.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -820,7 +729,6 @@
|
||||
sha1 = "f9b6ac10a035636fb65dfc576aaaa17b8743125c";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "pify___pify_3.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -829,7 +737,6 @@
|
||||
sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "pixelmatch___pixelmatch_4.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -838,7 +745,6 @@
|
||||
sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "pkg_up___pkg_up_2.0.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -847,7 +753,6 @@
|
||||
sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "png_to_ico___png_to_ico_1.0.7.tgz";
|
||||
path = fetchurl {
|
||||
@ -856,7 +761,6 @@
|
||||
sha1 = "9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "pngjs___pngjs_3.4.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -865,7 +769,6 @@
|
||||
sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "process___process_0.5.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -874,7 +777,6 @@
|
||||
sha1 = "1638d8a8e34c2f440a91db95ab9aeb677fc185cf";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "psl___psl_1.1.31.tgz";
|
||||
path = fetchurl {
|
||||
@ -883,7 +785,6 @@
|
||||
sha1 = "e9aa86d0101b5b105cbe93ac6b784cd547276184";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "punycode___punycode_1.4.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -892,7 +793,6 @@
|
||||
sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "punycode___punycode_2.1.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -901,7 +801,6 @@
|
||||
sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "qs___qs_6.5.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -910,7 +809,6 @@
|
||||
sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "read_chunk___read_chunk_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -919,7 +817,6 @@
|
||||
sha1 = "5f68cab307e663f19993527d9b589cace4661194";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "request___request_2.88.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -928,7 +825,6 @@
|
||||
sha1 = "9c2fca4f7d35b592efe57c7f0a55e81052124fef";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "safe_buffer___safe_buffer_5.1.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -937,7 +833,6 @@
|
||||
sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "safer_buffer___safer_buffer_2.1.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -946,7 +841,6 @@
|
||||
sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "sax___sax_1.2.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -955,7 +849,6 @@
|
||||
sha1 = "2816234e2378bddc4e5354fab5caa895df7100d9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "signal_exit___signal_exit_3.0.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -964,7 +857,6 @@
|
||||
sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "sshpk___sshpk_1.16.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -973,7 +865,6 @@
|
||||
sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "stream_to_buffer___stream_to_buffer_0.1.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -982,7 +873,6 @@
|
||||
sha1 = "26799d903ab2025c9bd550ac47171b00f8dd80a9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "stream_to___stream_to_0.2.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -991,7 +881,6 @@
|
||||
sha1 = "84306098d85fdb990b9fa300b1b3ccf55e8ef01d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "string.prototype.trim___string.prototype.trim_1.1.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -1000,7 +889,6 @@
|
||||
sha1 = "d04de2c89e137f4d7d206f086b5ed2fae6be8cea";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "tinycolor2___tinycolor2_1.4.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -1009,7 +897,6 @@
|
||||
sha1 = "f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "tough_cookie___tough_cookie_2.4.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -1018,7 +905,6 @@
|
||||
sha1 = "53f36da3f47783b0925afa06ff9f3b165280f781";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -1027,7 +913,6 @@
|
||||
sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "tweetnacl___tweetnacl_0.14.5.tgz";
|
||||
path = fetchurl {
|
||||
@ -1036,7 +921,6 @@
|
||||
sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "untildify___untildify_3.0.3.tgz";
|
||||
path = fetchurl {
|
||||
@ -1045,7 +929,6 @@
|
||||
sha1 = "1e7b42b140bcfd922b22e70ca1265bfe3634c7c9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "uri_js___uri_js_4.2.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -1054,7 +937,6 @@
|
||||
sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "url_regex___url_regex_3.2.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -1063,7 +945,6 @@
|
||||
sha1 = "dbad1e0c9e29e105dd0b1f09f6862f7fdb482724";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "uuid___uuid_3.3.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -1072,7 +953,6 @@
|
||||
sha1 = "1b4af4955eb3077c501c23872fc6513811587131";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "verror___verror_1.10.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -1081,7 +961,6 @@
|
||||
sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "winreg___winreg_1.2.4.tgz";
|
||||
path = fetchurl {
|
||||
@ -1090,7 +969,6 @@
|
||||
sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "write_file_atomic___write_file_atomic_2.4.2.tgz";
|
||||
path = fetchurl {
|
||||
@ -1099,7 +977,6 @@
|
||||
sha1 = "a7181706dfba17855d221140a9c06e15fcdd87b9";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "xhr___xhr_2.5.0.tgz";
|
||||
path = fetchurl {
|
||||
@ -1108,7 +985,6 @@
|
||||
sha1 = "bed8d1676d5ca36108667692b74b316c496e49dd";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "xml_parse_from_string___xml_parse_from_string_1.0.1.tgz";
|
||||
path = fetchurl {
|
||||
@ -1117,7 +993,6 @@
|
||||
sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "xml2js___xml2js_0.4.19.tgz";
|
||||
path = fetchurl {
|
||||
@ -1126,7 +1001,6 @@
|
||||
sha1 = "686c20f213209e94abf0d1bcf1efaa291c7827a7";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "xmlbuilder___xmlbuilder_9.0.7.tgz";
|
||||
path = fetchurl {
|
||||
@ -1135,7 +1009,6 @@
|
||||
sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
|
||||
};
|
||||
}
|
||||
|
||||
{
|
||||
name = "xtend___xtend_4.0.1.tgz";
|
||||
path = fetchurl {
|
||||
|
@ -1,9 +1,8 @@
|
||||
{ pkgs, stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, electron_5, riot-web }:
|
||||
{ pkgs, stdenv, fetchFromGitHub, makeWrapper, makeDesktopItem, electron_5, riot-web, yarn2nix-moretea }:
|
||||
|
||||
# Note for maintainers:
|
||||
# Versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||
|
||||
with (import ./yarn2nix.nix { inherit pkgs; });
|
||||
# Notes for maintainers:
|
||||
# * versions of `riot-web` and `riot-desktop` should be kept in sync.
|
||||
# * the Yarn dependency expression must be updated with `./update-riot-desktop.sh <git release tag>`
|
||||
|
||||
let
|
||||
executableName = "riot-desktop";
|
||||
@ -15,18 +14,13 @@ let
|
||||
sha256 = "1nzzxcz4r9932cha80q1bzn1425m67fsl89pn7n7ybrv6y0jnxpc";
|
||||
};
|
||||
|
||||
in mkYarnPackage rec {
|
||||
in yarn2nix-moretea.mkYarnPackage rec {
|
||||
name = "riot-desktop-${version}";
|
||||
inherit version;
|
||||
|
||||
src = "${riot-web-src}/electron_app";
|
||||
|
||||
# The package manifest should be copied on each update of this package.
|
||||
# > cp ${riot-web-src}/electron_app/package.json riot-desktop-package.json
|
||||
packageJSON = ./riot-desktop-package.json;
|
||||
|
||||
# The dependency expression can be regenerated using nixos.yarn2nix with the following command:
|
||||
# > yarn2nix --lockfile=${riot-web-src}/electron_app/yarn.lock > riot-desktop-yarndeps.nix
|
||||
yarnNix = ./riot-desktop-yarndeps.nix;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
@ -36,7 +30,9 @@ in mkYarnPackage rec {
|
||||
mkdir -p "$out/share/riot"
|
||||
ln -s '${riot-web}' "$out/share/riot/webapp"
|
||||
cp -r '${riot-web-src}/origin_migrator' "$out/share/riot/origin_migrator"
|
||||
cp -r '.' "$out/share/riot/electron"
|
||||
cp -r './deps/riot-web' "$out/share/riot/electron"
|
||||
rm "$out/share/riot/electron/node_modules"
|
||||
cp -r './node_modules' "$out/share/riot/electron"
|
||||
|
||||
# icons
|
||||
for icon in $out/share/riot/electron/build/icons/*.png; do
|
||||
|
17
pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
Executable file
17
pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
Executable file
@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix-moretea.yarn2nix
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
|
||||
echo "Regenerates the Yarn dependency lock files for the riot-desktop package."
|
||||
echo "Usage: $0 <git release tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-web/$1"
|
||||
|
||||
wget "$RIOT_WEB_SRC/electron_app/package.json" -O riot-desktop-package.json
|
||||
wget "$RIOT_WEB_SRC/electron_app/yarn.lock" -O riot-desktop-yarndeps.lock
|
||||
yarn2nix --lockfile=riot-desktop-yarndeps.lock > riot-desktop-yarndeps.nix
|
||||
rm riot-desktop-yarndeps.lock
|
@ -1,320 +0,0 @@
|
||||
{ pkgs ? import <nixpkgs> {}
|
||||
, nodejs ? pkgs.nodejs
|
||||
, yarn ? pkgs.yarn
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (pkgs) stdenv lib fetchurl linkFarm;
|
||||
in rec {
|
||||
# Export yarn again to make it easier to find out which yarn was used.
|
||||
inherit yarn;
|
||||
|
||||
# Re-export pkgs
|
||||
inherit pkgs;
|
||||
|
||||
unlessNull = item: alt:
|
||||
if item == null then alt else item;
|
||||
|
||||
reformatPackageName = pname:
|
||||
let
|
||||
# regex adapted from `validate-npm-package-name`
|
||||
# will produce 3 parts e.g.
|
||||
# "@someorg/somepackage" -> [ "@someorg/" "someorg" "somepackage" ]
|
||||
# "somepackage" -> [ null null "somepackage" ]
|
||||
parts = builtins.tail (builtins.match "^(@([^/]+)/)?([^/]+)$" pname);
|
||||
# if there is no organisation we need to filter out null values.
|
||||
non-null = builtins.filter (x: x != null) parts;
|
||||
in builtins.concatStringsSep "-" non-null;
|
||||
|
||||
# https://docs.npmjs.com/files/package.json#license
|
||||
# TODO: support expression syntax (OR, AND, etc)
|
||||
spdxLicense = licstr:
|
||||
if licstr == "UNLICENSED" then
|
||||
lib.licenses.unfree
|
||||
else
|
||||
lib.findFirst
|
||||
(l: l ? spdxId && l.spdxId == licstr)
|
||||
{ shortName = licstr; }
|
||||
(builtins.attrValues lib.licenses);
|
||||
|
||||
# Generates the yarn.nix from the yarn.lock file
|
||||
mkYarnNix = yarnLock:
|
||||
pkgs.runCommand "yarn.nix" {}
|
||||
"${yarn2nix}/bin/yarn2nix --lockfile ${yarnLock} --no-patch > $out";
|
||||
|
||||
# Loads the generated offline cache. This will be used by yarn as
|
||||
# the package source.
|
||||
importOfflineCache = yarnNix:
|
||||
let
|
||||
pkg = import yarnNix { inherit fetchurl linkFarm; };
|
||||
in
|
||||
pkg.offline_cache;
|
||||
|
||||
defaultYarnFlags = [
|
||||
"--offline"
|
||||
"--frozen-lockfile"
|
||||
"--ignore-engines"
|
||||
"--ignore-scripts"
|
||||
];
|
||||
|
||||
mkYarnModules = {
|
||||
name,
|
||||
pname,
|
||||
packageJSON,
|
||||
yarnLock,
|
||||
yarnNix ? mkYarnNix yarnLock,
|
||||
yarnFlags ? defaultYarnFlags,
|
||||
pkgConfig ? {},
|
||||
preBuild ? "",
|
||||
workspaceDependencies ? [],
|
||||
}:
|
||||
let
|
||||
offlineCache = importOfflineCache yarnNix;
|
||||
extraBuildInputs = (lib.flatten (builtins.map (key:
|
||||
pkgConfig.${key} . buildInputs or []
|
||||
) (builtins.attrNames pkgConfig)));
|
||||
postInstall = (builtins.map (key:
|
||||
if (pkgConfig.${key} ? postInstall) then
|
||||
''
|
||||
for f in $(find -L -path '*/node_modules/${key}' -type d); do
|
||||
(cd "$f" && (${pkgConfig.${key}.postInstall}))
|
||||
done
|
||||
''
|
||||
else
|
||||
""
|
||||
) (builtins.attrNames pkgConfig));
|
||||
workspaceJSON = pkgs.writeText
|
||||
"${name}-workspace-package.json"
|
||||
(builtins.toJSON { private = true; workspaces = ["deps/**"]; }); # scoped packages need second splat
|
||||
workspaceDependencyLinks = lib.concatMapStringsSep "\n"
|
||||
(dep: ''
|
||||
mkdir -p "deps/${dep.pname}"
|
||||
ln -sf ${dep.packageJSON} "deps/${dep.pname}/package.json"
|
||||
'')
|
||||
workspaceDependencies;
|
||||
in stdenv.mkDerivation {
|
||||
inherit preBuild name;
|
||||
phases = ["configurePhase" "buildPhase"];
|
||||
buildInputs = [ yarn nodejs ] ++ extraBuildInputs;
|
||||
|
||||
configurePhase = ''
|
||||
# Yarn writes cache directories etc to $HOME.
|
||||
export HOME=$PWD/yarn_home
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
mkdir -p "deps/${pname}"
|
||||
cp ${packageJSON} "deps/${pname}/package.json"
|
||||
cp ${workspaceJSON} ./package.json
|
||||
cp ${yarnLock} ./yarn.lock
|
||||
chmod +w ./yarn.lock
|
||||
|
||||
yarn config --offline set yarn-offline-mirror ${offlineCache}
|
||||
|
||||
# Do not look up in the registry, but in the offline cache.
|
||||
# TODO: Ask upstream to fix this mess.
|
||||
sed -i -E '/resolved /{s|https://registry.yarnpkg.com/||;s|[@/:-]|_|g}' yarn.lock
|
||||
|
||||
${workspaceDependencyLinks}
|
||||
yarn install ${lib.escapeShellArgs yarnFlags}
|
||||
|
||||
${lib.concatStringsSep "\n" postInstall}
|
||||
|
||||
mkdir $out
|
||||
mv node_modules $out/
|
||||
mv deps $out/
|
||||
patchShebangs $out
|
||||
'';
|
||||
};
|
||||
|
||||
# This can be used as a shellHook in mkYarnPackage. It brings the built node_modules into
|
||||
# the shell-hook environment.
|
||||
linkNodeModulesHook = ''
|
||||
if [[ -d node_modules || -L node_modules ]]; then
|
||||
echo "./node_modules is present. Replacing."
|
||||
rm -rf node_modules
|
||||
fi
|
||||
|
||||
ln -s "$node_modules" node_modules
|
||||
'';
|
||||
|
||||
mkYarnWorkspace = {
|
||||
src,
|
||||
packageJSON ? src+"/package.json",
|
||||
yarnLock ? src+"/yarn.lock",
|
||||
packageOverrides ? {},
|
||||
...
|
||||
}@attrs:
|
||||
let
|
||||
package = lib.importJSON packageJSON;
|
||||
packageGlobs = package.workspaces;
|
||||
globElemToRegex = lib.replaceStrings ["*"] [".*"];
|
||||
# PathGlob -> [PathGlobElem]
|
||||
splitGlob = lib.splitString "/";
|
||||
# Path -> [PathGlobElem] -> [Path]
|
||||
# Note: Only directories are included, everything else is filtered out
|
||||
expandGlobList = base: globElems:
|
||||
let
|
||||
elemRegex = globElemToRegex (lib.head globElems);
|
||||
rest = lib.tail globElems;
|
||||
children = lib.attrNames (lib.filterAttrs (name: type: type == "directory") (builtins.readDir base));
|
||||
matchingChildren = lib.filter (child: builtins.match elemRegex child != null) children;
|
||||
in if globElems == []
|
||||
then [ base ]
|
||||
else lib.concatMap (child: expandGlobList (base+("/"+child)) rest) matchingChildren;
|
||||
# Path -> PathGlob -> [Path]
|
||||
expandGlob = base: glob: expandGlobList base (splitGlob glob);
|
||||
packagePaths = lib.concatMap (expandGlob src) packageGlobs;
|
||||
packages = lib.listToAttrs (map (src:
|
||||
let
|
||||
packageJSON = src+"/package.json";
|
||||
package = lib.importJSON packageJSON;
|
||||
allDependencies = lib.foldl (a: b: a // b) {} (map (field: lib.attrByPath [field] {} package) ["dependencies" "devDependencies"]);
|
||||
in rec {
|
||||
name = reformatPackageName package.name;
|
||||
value = mkYarnPackage (builtins.removeAttrs attrs ["packageOverrides"] // {
|
||||
inherit src packageJSON yarnLock;
|
||||
workspaceDependencies = lib.mapAttrsToList (name: version: packages.${name})
|
||||
(lib.filterAttrs (name: version: packages ? ${name}) allDependencies);
|
||||
} // lib.attrByPath [name] {} packageOverrides);
|
||||
}) packagePaths);
|
||||
in packages;
|
||||
|
||||
mkYarnPackage = {
|
||||
name ? null,
|
||||
src,
|
||||
packageJSON ? src + "/package.json",
|
||||
yarnLock ? src + "/yarn.lock",
|
||||
yarnNix ? mkYarnNix yarnLock,
|
||||
yarnFlags ? defaultYarnFlags,
|
||||
yarnPreBuild ? "",
|
||||
pkgConfig ? {},
|
||||
extraBuildInputs ? [],
|
||||
publishBinsFor ? null,
|
||||
workspaceDependencies ? [],
|
||||
...
|
||||
}@attrs:
|
||||
let
|
||||
package = lib.importJSON packageJSON;
|
||||
pname = package.name;
|
||||
safeName = reformatPackageName pname;
|
||||
version = package.version;
|
||||
baseName = unlessNull name "${safeName}-${version}";
|
||||
deps = mkYarnModules {
|
||||
name = "${safeName}-modules-${version}";
|
||||
preBuild = yarnPreBuild;
|
||||
workspaceDependencies = workspaceDependenciesTransitive;
|
||||
inherit packageJSON pname yarnLock yarnNix yarnFlags pkgConfig;
|
||||
};
|
||||
publishBinsFor_ = unlessNull publishBinsFor [pname];
|
||||
linkDirFunction = ''
|
||||
linkDirToDirLinks() {
|
||||
target=$1
|
||||
if [ ! -f "$target" ]; then
|
||||
mkdir -p "$target"
|
||||
elif [ -L "$target" ]; then
|
||||
local new=$(mktemp -d)
|
||||
trueSource=$(realpath "$target")
|
||||
if [ "$(ls $trueSource | wc -l)" -gt 0 ]; then
|
||||
ln -s $trueSource/* $new/
|
||||
fi
|
||||
rm -r "$target"
|
||||
mv "$new" "$target"
|
||||
fi
|
||||
}
|
||||
'';
|
||||
workspaceDependenciesTransitive = lib.unique ((lib.flatten (builtins.map (dep: dep.workspaceDependencies) workspaceDependencies)) ++ workspaceDependencies);
|
||||
workspaceDependencyCopy = lib.concatMapStringsSep "\n"
|
||||
(dep: ''
|
||||
# ensure any existing scope directory is not a symlink
|
||||
linkDirToDirLinks "$(dirname node_modules/${dep.pname})"
|
||||
mkdir -p "deps/${dep.pname}"
|
||||
tar -xf "${dep}/tarballs/${dep.name}.tgz" --directory "deps/${dep.pname}" --strip-components=1
|
||||
if [ ! -e "deps/${dep.pname}/node_modules" ]; then
|
||||
ln -s "${deps}/deps/${dep.pname}/node_modules" "deps/${dep.pname}/node_modules"
|
||||
fi
|
||||
'')
|
||||
workspaceDependenciesTransitive;
|
||||
in stdenv.mkDerivation (builtins.removeAttrs attrs ["pkgConfig" "workspaceDependencies"] // {
|
||||
inherit src;
|
||||
|
||||
name = baseName;
|
||||
|
||||
buildInputs = [ yarn nodejs ] ++ extraBuildInputs;
|
||||
|
||||
node_modules = deps + "/node_modules";
|
||||
|
||||
configurePhase = attrs.configurePhase or ''
|
||||
runHook preConfigure
|
||||
|
||||
for localDir in npm-packages-offline-cache node_modules; do
|
||||
if [[ -d $localDir || -L $localDir ]]; then
|
||||
echo "$localDir dir present. Removing."
|
||||
rm -rf $localDir
|
||||
fi
|
||||
done
|
||||
|
||||
mkdir -p "deps/${pname}"
|
||||
shopt -s extglob
|
||||
cp -r !(deps) "deps/${pname}"
|
||||
shopt -u extglob
|
||||
ln -s ${deps}/deps/${pname}/node_modules "deps/${pname}/node_modules"
|
||||
|
||||
cp -r $node_modules node_modules
|
||||
chmod -R +w node_modules
|
||||
|
||||
${linkDirFunction}
|
||||
linkDirToDirLinks "$(dirname node_modules/${pname})"
|
||||
ln -s "deps/${pname}" "node_modules/${pname}"
|
||||
${workspaceDependencyCopy}
|
||||
|
||||
# Help yarn commands run in other phases find the package
|
||||
echo "--cwd deps/${pname}" > .yarnrc
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
# Replace this phase on frontend packages where only the generated
|
||||
# files are an interesting output.
|
||||
installPhase = attrs.installPhase or ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/{bin,libexec/${pname}}
|
||||
mv node_modules $out/libexec/${pname}/node_modules
|
||||
mv deps $out/libexec/${pname}/deps
|
||||
node ${./nix/fixup_bin.js} $out/bin $out/libexec/${pname}/node_modules ${lib.concatStringsSep " " publishBinsFor_}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
doDist = true;
|
||||
distPhase = attrs.distPhase or ''
|
||||
# pack command ignores cwd option
|
||||
rm -f .yarnrc
|
||||
cd $out/libexec/${pname}/deps/${pname}
|
||||
mkdir -p $out/tarballs/
|
||||
yarn pack --ignore-scripts --filename $out/tarballs/${baseName}.tgz
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit pname package packageJSON deps;
|
||||
workspaceDependencies = workspaceDependenciesTransitive;
|
||||
} // (attrs.passthru or {});
|
||||
|
||||
meta = {
|
||||
inherit (nodejs.meta) platforms;
|
||||
description = packageJSON.description or "";
|
||||
homepage = packageJSON.homepage or "";
|
||||
version = packageJSON.version or "";
|
||||
license = if packageJSON ? license then spdxLicense packageJSON.license else "";
|
||||
} // (attrs.meta or {});
|
||||
});
|
||||
|
||||
yarn2nix = mkYarnPackage {
|
||||
src = ./.;
|
||||
# yarn2nix is the only package that requires the yarnNix option.
|
||||
# All the other projects can auto-generate that file.
|
||||
yarnNix = ./yarn.nix;
|
||||
};
|
||||
}
|
@ -6,7 +6,7 @@ at-spi2-atk, libuuid, nodePackages
|
||||
|
||||
let
|
||||
|
||||
version = "4.0.1";
|
||||
version = "4.0.2";
|
||||
|
||||
rpath = stdenv.lib.makeLibraryPath [
|
||||
alsaLib
|
||||
@ -51,7 +51,7 @@ let
|
||||
if stdenv.hostPlatform.system == "x86_64-linux" then
|
||||
fetchurl {
|
||||
url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
|
||||
sha256 = "1g7c8jka750pblsfzjvfyf7sp1m409kybqagml9miif1v71scxv2";
|
||||
sha256 = "053j5py16ilpwy868rhh5l2g93xj1fq4fwxrsi2bkfsnmq261hkm";
|
||||
}
|
||||
else
|
||||
throw "Slack is not supported on ${stdenv.hostPlatform.system}";
|
||||
|
@ -12,10 +12,10 @@ in stdenv.mkDerivation {
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/lib
|
||||
ln -s ${mumble}/lib/libmumble.so.1.* $out/lib/libmumble.so.1
|
||||
ln -s ${mumble}/lib/libmumble.so.1.2.* $out/lib/libmumble.so.1
|
||||
${lib.optionalString (mumble_i686 != null) ''
|
||||
mkdir -p $out/lib32
|
||||
ln -s ${mumble_i686}/lib/libmumble.so.1.* $out/lib32/libmumble.so.1
|
||||
ln -s ${mumble_i686}/lib/libmumble.so.1.2.* $out/lib32/libmumble.so.1
|
||||
''}
|
||||
install -Dm755 scripts/mumble-overlay $out/bin/mumble-overlay
|
||||
sed -i "s,/usr/lib,$out/lib,g" $out/bin/mumble-overlay
|
||||
|
@ -1,20 +1,24 @@
|
||||
{ stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
|
||||
, libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
|
||||
, makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib
|
||||
, libpulseaudio, libopus, libogg }:
|
||||
, libpulseaudio, libopus, libogg, jansson }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "gnunet-0.11.0";
|
||||
pname = "gnunet";
|
||||
version = "0.11.6";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/gnunet/${name}.tar.gz";
|
||||
sha256 = "16kydkrjlf2vxflgls46bwaf9kjczf621p456q0qlphd7cy7lixp";
|
||||
url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
|
||||
sha256 = "1gspr1lh885sb9r2anh7bi4zan3zjqx33lpyhq9hm2g0n5ip187q";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
nativeBuildInputs = [ pkgconfig libtool makeWrapper ];
|
||||
buildInputs = [
|
||||
adns curl gettext gmp gnutls libextractor libgcrypt libgnurl libidn
|
||||
libmicrohttpd libtool libunistring libxml2 makeWrapper ncurses
|
||||
pkgconfig sqlite zlib libpulseaudio libopus libogg
|
||||
adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
|
||||
libmicrohttpd libunistring libxml2 ncurses gettext
|
||||
sqlite zlib libpulseaudio libopus libogg jansson
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
@ -29,26 +33,18 @@ stdenv.mkDerivation rec {
|
||||
find . \( -iname \*test\*.c -or -name \*.conf \) | \
|
||||
xargs sed -ie "s|/tmp|$TMPDIR|g"
|
||||
|
||||
# Ensure NSS installation works fine
|
||||
configureFlags="$configureFlags --with-nssdir=$out/lib"
|
||||
patchShebangs src/gns/nss/install-nss-plugin.sh
|
||||
|
||||
sed -ie 's|@LDFLAGS@|@LDFLAGS@ $(Z_LIBS)|g' \
|
||||
src/regex/Makefile.in \
|
||||
src/fs/Makefile.in
|
||||
'';
|
||||
|
||||
# unfortunately, there's still a few failures with impure tests
|
||||
doCheck = false;
|
||||
|
||||
/* FIXME: Tests must be run this way, but there are still a couple of
|
||||
failures.
|
||||
|
||||
postInstall =
|
||||
'' export GNUNET_PREFIX="$out"
|
||||
checkPhase = ''
|
||||
export GNUNET_PREFIX="$out"
|
||||
export PATH="$out/bin:$PATH"
|
||||
make -k check
|
||||
'';
|
||||
*/
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "GNU's decentralized anonymous and censorship-resistant P2P framework";
|
||||
@ -69,9 +65,7 @@ stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
homepage = https://gnunet.org/;
|
||||
|
||||
license = licenses.gpl2Plus;
|
||||
|
||||
maintainers = with maintainers; [ vrthra ];
|
||||
platforms = platforms.gnu ++ platforms.linux;
|
||||
};
|
||||
|
56
pkgs/applications/networking/p2p/stig/default.nix
Normal file
56
pkgs/applications/networking/p2p/stig/default.nix
Normal file
@ -0,0 +1,56 @@
|
||||
{ lib
|
||||
, fetchFromGitHub
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "stig";
|
||||
# This project has a different concept for pre release / alpha,
|
||||
# Read the project's README for details: https://github.com/rndusr/stig#stig
|
||||
version = "0.10.1a";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rndusr";
|
||||
repo = "stig";
|
||||
rev = "v${version}";
|
||||
sha256 = "076rlial6h1nhwdxf1mx5nf2zld5ci43cadj9wf8xms7zn8s6c8v";
|
||||
};
|
||||
|
||||
# urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
|
||||
# in nixpkgs) is not uploaded to pypi and 1.0.1 has a problematic `setup.py`.
|
||||
# As long as we don't have any problems installing it, no special features / specific bugs
|
||||
# were fixed in 1.0.3 that aren't available in 1.0.2 are used by stig.
|
||||
# See https://github.com/rndusr/stig/issues/120
|
||||
postPatch = ''
|
||||
substituteInPlace setup.py \
|
||||
--replace "urwidtrees>=1.0.3dev0" "urwidtrees"
|
||||
'';
|
||||
|
||||
buildInputs = with python3.pkgs; [
|
||||
urwid
|
||||
urwidtrees
|
||||
aiohttp
|
||||
async-timeout
|
||||
pyxdg
|
||||
blinker
|
||||
natsort
|
||||
maxminddb
|
||||
setproctitle
|
||||
];
|
||||
|
||||
checkInputs = with python3.pkgs; [
|
||||
asynctest
|
||||
pytest
|
||||
];
|
||||
|
||||
checkPhase = ''
|
||||
pytest tests
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "TUI and CLI for the BitTorrent client Transmission";
|
||||
homepage = "https://github.com/rndusr/stig";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ doronbehar ];
|
||||
};
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchurl, pkgconfig, pcre, perl, flex, bison, gettext, libpcap, libnl, c-ares
|
||||
, gnutls, libgcrypt, libgpgerror, geoip, openssl, lua5, python3, libcap, glib
|
||||
, libssh, nghttp2, zlib, cmake, extra-cmake-modules, fetchpatch, makeWrapper
|
||||
, libssh, nghttp2, zlib, cmake, fetchpatch, makeWrapper
|
||||
, withQt ? true, qt5 ? null
|
||||
, ApplicationServices, SystemConfiguration, gmp
|
||||
}:
|
||||
@ -29,7 +29,7 @@ in stdenv.mkDerivation {
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison cmake extra-cmake-modules flex pkgconfig
|
||||
bison cmake flex pkgconfig
|
||||
] ++ optional withQt qt5.wrapQtAppsHook;
|
||||
|
||||
buildInputs = [
|
||||
|
@ -1,13 +1,13 @@
|
||||
{ appimageTools, symlinkJoin, lib, fetchurl, makeDesktopItem }:
|
||||
|
||||
let
|
||||
pname = "patchwork";
|
||||
version = "3.14.1";
|
||||
pname = "ssb-patchwork";
|
||||
version = "3.16.2";
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ssbc/patchwork/releases/download/v${version}/ssb-${pname}-${version}-x86_64.AppImage";
|
||||
sha256 = "01vsldabv9nmbx8kzlgw275zykm72s1dxglnaq4jz5vbysbyn0qd";
|
||||
url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${pname}-${version}-x86_64.AppImage";
|
||||
sha256 = "0hi9ysmwhiiww82a3mqdd2b1anj7qa41b46f6zb3q9d0b8nmvlz4";
|
||||
};
|
||||
|
||||
binary = appimageTools.wrapType2 {
|
||||
@ -20,8 +20,8 @@ let
|
||||
};
|
||||
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "patchwork";
|
||||
exec = "${binary}/bin/patchwork";
|
||||
name = "ssb-patchwork";
|
||||
exec = "${binary}/bin/ssb-patchwork";
|
||||
icon = "ssb-patchwork.png";
|
||||
comment = "Decentralized messaging and sharing app";
|
||||
desktopName = "Patchwork";
|
||||
|
74
pkgs/applications/radio/sdrangel/default.nix
Normal file
74
pkgs/applications/radio/sdrangel/default.nix
Normal file
@ -0,0 +1,74 @@
|
||||
{
|
||||
boost,
|
||||
cm256cc,
|
||||
cmake,
|
||||
codec2,
|
||||
fetchFromGitHub,
|
||||
fftwFloat,
|
||||
glew,
|
||||
lib,
|
||||
libav,
|
||||
libiio,
|
||||
libopus,
|
||||
libpulseaudio,
|
||||
libusb,
|
||||
limesuite,
|
||||
mkDerivation,
|
||||
ocl-icd,
|
||||
opencv3,
|
||||
pkgconfig,
|
||||
qtbase,
|
||||
qtmultimedia,
|
||||
qtwebsockets,
|
||||
serialdv
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
codec2' = codec2.overrideAttrs (old: {
|
||||
src = fetchFromGitHub {
|
||||
owner = "drowe67";
|
||||
repo = "codec2";
|
||||
rev = "567346818c0d4d697773cf66d925fdb031e15668";
|
||||
sha256 = "0ngqlh2cw5grx2lg7xj8baz6p55gfhq4caggxkb4pxlg817pwbpa";
|
||||
};
|
||||
});
|
||||
|
||||
in mkDerivation rec {
|
||||
pname = "sdrangel";
|
||||
version = "4.11.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "f4exb";
|
||||
repo = "sdrangel";
|
||||
rev = "v${version}";
|
||||
sha256 = "0zbx0gklylk8npb3wnnmqpam0pdxl40f20i3wzwwh4gqrppxywzx";
|
||||
fetchSubmodules = false;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = [
|
||||
glew opencv3 libusb boost libopus limesuite libav libiio libpulseaudio
|
||||
qtbase qtwebsockets qtmultimedia
|
||||
fftwFloat
|
||||
codec2' cm256cc serialdv
|
||||
];
|
||||
cmakeFlags = [
|
||||
"-DLIBSERIALDV_INCLUDE_DIR:PATH=${serialdv}/include/serialdv"
|
||||
"-DLIMESUITE_INCLUDE_DIR:PATH=${limesuite}/include"
|
||||
"-DLIMESUITE_LIBRARY:FILEPATH=${limesuite}/lib/libLimeSuite.so"
|
||||
];
|
||||
|
||||
LD_LIBRARY_PATH = "${ocl-icd}/lib";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software defined radio (SDR) software";
|
||||
longDescription = ''
|
||||
SDRangel is an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
|
||||
'';
|
||||
homepage = "https://github.com/f4exb/sdrangel";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ alkeryn ];
|
||||
};
|
||||
}
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, cmake, boost, bison, flex, fetchFromGitHub, perl, python3, python3Packages, zlib, minisatUnstable, cryptominisat }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "2.2.0";
|
||||
pname = "stp";
|
||||
version = "2.3.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stp";
|
||||
repo = "stp";
|
||||
rev = "stp-${version}";
|
||||
sha256 = "1jh23wjm62nnqfx447g2y53bbangq04hjrvqc35v9xxpcjgj3i49";
|
||||
rev = version;
|
||||
sha256 = "1yg2v4wmswh1sigk47drwsxyayr472mf4i47lqmlcgn9hhbx1q87";
|
||||
};
|
||||
|
||||
buildInputs = [ boost zlib minisatUnstable cryptominisat python3 ];
|
||||
@ -23,9 +23,8 @@ stdenv.mkDerivation rec {
|
||||
)
|
||||
'';
|
||||
|
||||
# `make -f lib/Interface/CMakeFiles/cppinterface.dir/build.make lib/Interface/CMakeFiles/cppinterface.dir/cpp_interface.cpp.o`:
|
||||
# include/stp/AST/UsefulDefs.h:41:29: fatal error: stp/AST/ASTKind.h: No such file or directory
|
||||
enableParallelBuilding = false;
|
||||
# seems to build fine now, may revert if concurrency does become an issue
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Simple Theorem Prover";
|
||||
|
@ -1,19 +1,16 @@
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib, git }:
|
||||
{ stdenv, fetchFromGitHub, fetchpatch, z3, zlib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.2.2";
|
||||
pname = "vampire";
|
||||
version = "4.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vprover";
|
||||
repo = "vampire";
|
||||
rev = version;
|
||||
sha256 = "03dqjxr3cwz4h6sn9074kc6b6wjz12kpsvsi0mq2w0j5l9f8d80y";
|
||||
#fetchSubmodules = true;
|
||||
#leaveDotGit = true;
|
||||
sha256 = "0v2fdfnk7l5xr5c4y54r25g1nbp4vi85zv29nbklh3r7aws3w9q1";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ git ];
|
||||
buildInputs = [ z3 zlib ];
|
||||
|
||||
makeFlags = [ "vampire_z3_rel" "CC:=$(CC)" "CXX:=$(CXX)" ];
|
||||
|
@ -1,14 +1,14 @@
|
||||
{ stdenv, fetchFromGitHub }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.20170611";
|
||||
version = "1.20181219";
|
||||
pname = "blackbox";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stackexchange";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "1jnzhlj54c0szw9l9wib07i2375pbm402bx9wagspcmwc0qw43p6";
|
||||
sha256 = "1lpwwwc3rf992vdf3iy1ds07n1xkmad065im2bqzc6kdsbkn7rjx";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
@ -1,22 +1,21 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase }:
|
||||
{ mkDerivation, lib, fetchFromGitHub, cmake, qtbase }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "qgit-2.8";
|
||||
mkDerivation rec {
|
||||
pname = "qgit";
|
||||
version = "2.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "tibirna";
|
||||
repo = "qgit";
|
||||
rev = name;
|
||||
sha256 = "01l6mz2f333x3zbfr68mizwpsh6sdsnadcavpasidiych1m5ry8f";
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "0n4dq9gffm9yd7n5p5qcdfgrmg2kwnfd51hfx10adgj9ibxlnc3z";
|
||||
};
|
||||
|
||||
buildInputs = [ qtbase ];
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
license = licenses.gpl2;
|
||||
homepage = https://github.com/tibirna/qgit;
|
||||
description = "Graphical front-end to Git";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
|
||||
{ stdenv, lib, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
|
||||
, pkgconfig, cmake, gnumake, yasm, python2Packages
|
||||
, libgcrypt, libgpgerror, libunistring
|
||||
, boost, avahi, lame, autoreconfHook
|
||||
@ -42,21 +42,36 @@ assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used i
|
||||
assert vdpauSupport -> libvdpau != null;
|
||||
assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
|
||||
|
||||
# TODO for Kodi 18.0
|
||||
# - check if dbus support PR has been merged and add dbus as a buildInput
|
||||
|
||||
let
|
||||
kodiReleaseDate = "20190129";
|
||||
kodiVersion = "18.1";
|
||||
kodiReleaseDate = "20190627";
|
||||
kodiVersion = "18.3";
|
||||
rel = "Leia";
|
||||
|
||||
kodi_src = fetchFromGitHub {
|
||||
owner = "xbmc";
|
||||
repo = "xbmc";
|
||||
rev = "${kodiVersion}-${rel}";
|
||||
sha256 = "1w26aqvzxv4c70gcd1vw1pldapsc2xcacwq9b7dqx5m44j0zx1dc";
|
||||
sha256 = "18fbl5hs3aqccrn0m3x7hp95wlafjav0yvrwmb5q3gj24mwf6jld";
|
||||
};
|
||||
|
||||
cmakeProto = fetchurl {
|
||||
url = "https://raw.githubusercontent.com/pramsey/libght/ca9b1121c352ea10170636e170040e1af015bad1/cmake/modules/CheckPrototypeExists.cmake";
|
||||
sha256 = "1zai82gm5x55n3xvdv7mns3ja6a2k81x9zz0nk42j6s2yb0fkjxh";
|
||||
};
|
||||
|
||||
cmakeProtoPatch = ''
|
||||
# get rid of windows headers as they will otherwise be found first
|
||||
rm -rf msvc
|
||||
|
||||
cp ${cmakeProto} cmake/${cmakeProto.name}
|
||||
# we need to enable support for C++ for check_prototype_exists to do its thing
|
||||
substituteInPlace CMakeLists.txt --replace 'LANGUAGES C' 'LANGUAGES C CXX'
|
||||
if [ -f cmake/CheckHeadersSTDC.cmake ]; then
|
||||
sed -i cmake/CheckHeadersSTDC.cmake \
|
||||
-e '7iinclude(CheckPrototypeExists)'
|
||||
fi
|
||||
'';
|
||||
|
||||
kodiDependency = { name, version, rev, sha256, ... } @attrs:
|
||||
let
|
||||
attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
|
||||
@ -83,16 +98,25 @@ let
|
||||
nativeBuildInputs = [ cmake nasm pkgconfig ];
|
||||
};
|
||||
|
||||
# we should be able to build these externally and have kodi reference them as buildInputs.
|
||||
# Doesn't work ATM though so we just use them for the src
|
||||
|
||||
# We can build these externally but FindLibDvd.cmake forces us to build it
|
||||
# them, so we currently just use them for the src.
|
||||
libdvdcss = kodiDependency rec {
|
||||
name = "libdvdcss";
|
||||
version = "1.4.2";
|
||||
rev = "${version}-${rel}-Beta-5";
|
||||
sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
|
||||
buildInputs = [ libdvdread ];
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [ linuxHeaders ];
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
postPatch = ''
|
||||
rm -rf msvc
|
||||
|
||||
substituteInPlace config.h.cm \
|
||||
--replace '#cmakedefine O_BINARY "''${O_BINARY}"' '#define O_BINARY 0'
|
||||
'';
|
||||
cmakeFlags = [
|
||||
"-DBUILD_SHARED_LIBS=1"
|
||||
"-DHAVE_LINUX_DVD_STRUCT=1"
|
||||
];
|
||||
};
|
||||
|
||||
libdvdnav = kodiDependency rec {
|
||||
@ -100,8 +124,12 @@ let
|
||||
version = "6.0.0";
|
||||
rev = "${version}-${rel}-Alpha-3";
|
||||
sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
|
||||
buildInputs = [ libdvdread ];
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [ libdvdcss libdvdread ];
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
postPatch = cmakeProtoPatch;
|
||||
postInstall = ''
|
||||
mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
|
||||
'';
|
||||
};
|
||||
|
||||
libdvdread = kodiDependency rec {
|
||||
@ -109,7 +137,10 @@ let
|
||||
version = "6.0.0";
|
||||
rev = "${version}-${rel}-Alpha-3";
|
||||
sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
|
||||
nativeBuildInputs = [ autoreconfHook pkgconfig ];
|
||||
buildInputs = [ libdvdcss ];
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
configureFlags = [ "--with-libdvdcss" ];
|
||||
postPatch = cmakeProtoPatch;
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
@ -160,7 +191,7 @@ in stdenv.mkDerivation rec {
|
||||
makeWrapper
|
||||
which
|
||||
pkgconfig gnumake
|
||||
autoconf automake libtool # still needed for some components. Check if that is the case with 18.0
|
||||
autoconf automake libtool # still needed for some components. Check if that is the case with 19.0
|
||||
] ++ lib.optional useWayland [ wayland-protocols ];
|
||||
|
||||
cmakeFlags = [
|
||||
|
@ -31,6 +31,11 @@ buildGoPackage rec {
|
||||
nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper ];
|
||||
propagatedBuildInputs = [ coreutils squashfsTools ];
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace internal/pkg/build/copy/copy.go \
|
||||
--replace /bin/cp ${coreutils}/bin/cp
|
||||
'';
|
||||
|
||||
postConfigure = ''
|
||||
cd go/src/github.com/sylabs/singularity
|
||||
|
||||
|
@ -8,13 +8,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sway";
|
||||
version = "1.1.1";
|
||||
version = "1.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "swaywm";
|
||||
repo = "sway";
|
||||
rev = version;
|
||||
sha256 = "0yhn9zdg9mzfhn97c440lk3pw6122nrhx0is5sqmvgr6p814f776";
|
||||
sha256 = "0vch2zm5afc76ia78p3vg71zr2fyda67l9hd2h0x1jq3mnvfbxnd";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -41,10 +41,6 @@ stdenv.mkDerivation rec {
|
||||
wrapProgram $out/bin/sway --prefix PATH : "${swaybg}/bin"
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
sed -i "s/version: '1.0'/version: '${version}'/" meson.build
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "i3-compatible tiling Wayland compositor";
|
||||
homepage = https://swaywm.org;
|
||||
|
@ -2,24 +2,22 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "theme-obsidian2";
|
||||
version = "2.8";
|
||||
version = "2.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "madmaxms";
|
||||
repo = "theme-obsidian-2";
|
||||
rev = "v${version}";
|
||||
sha256 = "0qryqpyxbhr0kyar2cshwhzv4da6rfz9gi4wjb6xvcb6szxhlcaq";
|
||||
sha256 = "1m89ws2a4nms4m8187d5cxi281b66i59xa5shlp3g1r2jc4312cy";
|
||||
};
|
||||
|
||||
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|Obsidian-2-Local|Obsidian-2|' Obsidian-2/index.theme
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/themes
|
||||
cp -a Obsidian-2 $out/share/themes
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2 }:
|
||||
{ stdenv, fetchurl, meson, ninja, pkgconfig, gettext, itstool, desktop-file-utils, gnome3, glib, gtk3, libexif, libtiff, colord, colord-gtk, libcanberra-gtk3, lcms2, vte, exiv2, hicolor-icon-theme }:
|
||||
|
||||
let
|
||||
pname = "gnome-color-manager";
|
||||
@ -11,7 +11,12 @@ in stdenv.mkDerivation rec {
|
||||
sha256 = "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkgconfig gettext itstool desktop-file-utils ];
|
||||
nativeBuildInputs = [
|
||||
meson ninja pkgconfig gettext itstool desktop-file-utils
|
||||
# setup-hook
|
||||
hicolor-icon-theme
|
||||
];
|
||||
|
||||
buildInputs = [ glib gtk3 libexif libtiff colord colord-gtk libcanberra-gtk3 lcms2 vte exiv2 ];
|
||||
|
||||
passthru = {
|
||||
|
@ -1,29 +1,85 @@
|
||||
{ stdenv, fetchurl, lib, wrapGAppsHook
|
||||
, pkgconfig, gnome3, gtk3, glib, intltool, libXtst, libnotify, libsoup
|
||||
, telepathySupport ? false, dbus-glib ? null, telepathy-glib ? null
|
||||
, libsecret, gnutls, libgcrypt, avahi, zlib, libjpeg, libXdamage, libXfixes, libXext
|
||||
, networkmanager }:
|
||||
|
||||
with lib;
|
||||
{ stdenv
|
||||
, fetchFromGitLab
|
||||
, wrapGAppsHook
|
||||
, pkgconfig
|
||||
, gnome3
|
||||
, gtk3
|
||||
, glib
|
||||
, intltool
|
||||
, libXtst
|
||||
, libnotify
|
||||
, libsoup
|
||||
, libsecret
|
||||
, gnutls
|
||||
, libgcrypt
|
||||
, avahi
|
||||
, zlib
|
||||
, libjpeg
|
||||
, libXdamage
|
||||
, libXfixes
|
||||
, libXext
|
||||
, networkmanager
|
||||
, gnome-common
|
||||
, libtool
|
||||
, automake
|
||||
, autoconf
|
||||
, telepathySupport ? false
|
||||
, dbus-glib ? null
|
||||
, telepathy-glib ? null
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vino";
|
||||
version = "3.22.0";
|
||||
version = "unstable-2019-07-08";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/vino/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "2911c779b6a2c46e5bc8e5a0c94c2a4d5bd4a1ee7e35f2818702cb13d9d23bab";
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "vino";
|
||||
rev = "aed81a798558c8127b765cd4fb4dc726d10f1e21";
|
||||
sha256 = "16r4cj5nsygmd9v97nq6d1yhynzak9hdnaprcdbmwfhh0c9w8jv3";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeBuildInputs = [ intltool wrapGAppsHook pkgconfig ];
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
gnome-common
|
||||
intltool
|
||||
libtool
|
||||
pkgconfig
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome3.adwaita-icon-theme gtk3 glib libXtst libnotify libsoup
|
||||
libsecret gnutls libgcrypt avahi zlib libjpeg
|
||||
libXdamage libXfixes libXext networkmanager
|
||||
] ++ optionals telepathySupport [ dbus-glib telepathy-glib ];
|
||||
avahi
|
||||
glib
|
||||
gnome3.adwaita-icon-theme
|
||||
gnutls
|
||||
gtk3
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXtst
|
||||
libgcrypt
|
||||
libjpeg
|
||||
libnotify
|
||||
libsecret
|
||||
libsoup
|
||||
networkmanager
|
||||
zlib
|
||||
]
|
||||
++ stdenv.lib.optionals telepathySupport [ dbus-glib telepathy-glib ]
|
||||
;
|
||||
|
||||
preConfigure = ''
|
||||
NOCONFIGURE=1 ./autogen.sh
|
||||
'';
|
||||
|
||||
postInstall = stdenv.lib.optionalString (!telepathySupport) ''
|
||||
rm -f $out/share/dbus-1/services/org.freedesktop.Telepathy.Client.Vino.service
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome3.updateScript {
|
||||
@ -35,7 +91,7 @@ stdenv.mkDerivation rec {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://wiki.gnome.org/Projects/Vino;
|
||||
description = "GNOME desktop sharing server";
|
||||
maintainers = with maintainers; [ lethalman domenkozar ];
|
||||
maintainers = gnome3.maintainers;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
@ -21,36 +21,6 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||
|
||||
maintainers = with pkgs.lib.maintainers; [ lethalman jtojnar hedning worldofpeace ];
|
||||
|
||||
corePackages = with gnome3; [
|
||||
pkgs.desktop-file-utils
|
||||
pkgs.shared-mime-info # for update-mime-database
|
||||
pkgs.glib # for gsettings
|
||||
pkgs.gtk3.out # for gtk-update-icon-cache
|
||||
glib-networking gvfs dconf gnome-backgrounds gnome-control-center
|
||||
pkgs.gnome-menus gnome-settings-daemon gnome-shell
|
||||
gnome-themes-extra adwaita-icon-theme gnome-shell-extensions
|
||||
pkgs.hicolor-icon-theme
|
||||
];
|
||||
|
||||
optionalPackages = with gnome3; [ baobab eog epiphany evince
|
||||
gucharmap nautilus totem vino yelp gnome-bluetooth
|
||||
gnome-calculator gnome-contacts gnome-font-viewer gnome-screenshot
|
||||
gnome-system-monitor simple-scan
|
||||
gnome-terminal gnome-user-docs evolution file-roller gedit
|
||||
gnome-clocks gnome-music gnome-tweaks pkgs.gnome-photos
|
||||
nautilus-sendto dconf-editor vinagre gnome-weather gnome-logs
|
||||
gnome-maps gnome-characters gnome-calendar accerciser gnome-nettool
|
||||
gnome-getting-started-docs gnome-packagekit gnome-software
|
||||
gnome-power-manager gnome-todo pkgs.gnome-usage
|
||||
];
|
||||
|
||||
gamesPackages = with gnome3; [ swell-foop lightsoff iagno
|
||||
tali quadrapassel gnome-sudoku atomix aisleriot five-or-more
|
||||
four-in-a-row gnome-chess gnome-klotski gnome-mahjongg
|
||||
gnome-mines gnome-nibbles gnome-robots gnome-tetravex
|
||||
hitori gnome-taquin
|
||||
];
|
||||
|
||||
libsoup = pkgs.libsoup.override { gnomeSupport = true; };
|
||||
libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
|
||||
gnome3 = self // { recurseForDerivations = false; };
|
||||
@ -385,4 +355,9 @@ lib.makeScope pkgs.newScope (self: with self; {
|
||||
rest = librest;
|
||||
|
||||
pidgin-im-gnome-shell-extension = pkgs.gnomeExtensions.pidgin-im-integration; # added 2019-08-01
|
||||
|
||||
# added 2019-08-25
|
||||
corePackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-shell.enable`";
|
||||
optionalPackages = throw "deprecated 2019-08-25: please use `services.gnome3.core-utilities.enable`";
|
||||
gamesPackages = throw "deprecated 2019-08-25: please use `services.gnome3.games.enable`";
|
||||
})
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools, lxqt,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools, lxqt,
|
||||
libconfig }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "compton-conf";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg" \
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "GUI configuration tool for compton X composite manager";
|
||||
homepage = https://github.com/lxqt/compton-conf;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools,
|
||||
lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools,
|
||||
pcre, libexif, xorg, libfm, menu-cache,
|
||||
qtx11extras, qttools
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "libfm-qt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
|
||||
menu-cache
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Core library of PCManFM-Qt (Qt binding for libfm)";
|
||||
homepage = https://github.com/lxqt/libfm-qt;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras,
|
||||
qttools, qtsvg, libqtxdg, polkit-qt, kwindowsystem, xorg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "liblxqt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -27,18 +27,11 @@ stdenv.mkDerivation rec {
|
||||
xorg.libXScrnSaver
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DLXQT_ETC_XDG_DIR=/run/current-system/sw/etc/xdg"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i 's|set(LXQT_SHARE_DIR .*)|set(LXQT_SHARE_DIR "/run/current-system/sw/share/lxqt")|' CMakeLists.txt
|
||||
sed -i "s|\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}|''${out}/share/polkit-1/actions|" CMakeLists.txt
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Core utility library for all LXQt components";
|
||||
homepage = https://github.com/lxqt/liblxqt;
|
||||
license = licenses.lgpl21Plus;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase, qtsvg, lxqt-build-tools }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, qtsvg, lxqt-build-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "libqtxdg";
|
||||
version = "3.3.1";
|
||||
|
||||
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||
)
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Qt implementation of freedesktop.org xdg specs";
|
||||
homepage = https://github.com/lxqt/libqtxdg;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase, lxqt-build-tools }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, lxqt-build-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "libsysstat";
|
||||
version = "0.4.2";
|
||||
|
||||
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ qtbase ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Library used to query system info and statistics";
|
||||
homepage = https://github.com/lxqt/libsysstat;
|
||||
license = licenses.lgpl21Plus;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools,
|
||||
qtx11extras, qtsvg, xorg, lxqt-build-tools, libfm-qt, libexif }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lximage-qt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
libexif
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The image viewer and screenshot tool for lxqt";
|
||||
homepage = https://github.com/lxqt/lximage-qt;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-about";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -25,12 +25,7 @@ stdenv.mkDerivation rec {
|
||||
libqtxdg
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Dialogue window providing information about LXQt and the system it's running on";
|
||||
homepage = https://github.com/lxqt/lxqt-about;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, polkit-qt }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtx11extras, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, polkit-qt }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-admin";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -29,14 +29,9 @@ stdenv.mkDerivation rec {
|
||||
postPatch = ''
|
||||
sed "s|\''${POLKITQT-1_POLICY_FILES_INSTALL_DIR}|''${out}/share/polkit-1/actions|" \
|
||||
-i lxqt-admin-user/CMakeLists.txt
|
||||
|
||||
for f in lxqt-admin-{user,time}/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "LXQt system administration tool";
|
||||
homepage = https://github.com/lxqt/lxqt-admin;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, json-glib, libfm-qt, qtbase, qttools, qtx11extras }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, json-glib, libfm-qt, qtbase, qttools, qtx11extras }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-archiver";
|
||||
version = "0.0.96";
|
||||
|
||||
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Archive tool for the LXQt desktop environment";
|
||||
homepage = https://github.com/lxqt/lxqt-archiver/;
|
||||
license = licenses.gpl2;
|
||||
|
7
pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake
Normal file
7
pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake
Normal file
@ -0,0 +1,7 @@
|
||||
add_definitions("-DLXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\"")
|
||||
add_definitions("-DLXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\"")
|
||||
add_definitions("-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\"")
|
||||
add_definitions("-DLXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\"")
|
||||
add_definitions("-DLXQT_GRAPHICS_DIR=\"${LXQT_GRAPHICS_DIR}\"")
|
||||
add_definitions("-DLXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\"")
|
||||
add_definitions("-DLXQT_DATA_DIR=\"${LXQT_DATA_DIR}\"")
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, glib }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, glib }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-build-tools";
|
||||
version = "0.6.0";
|
||||
|
||||
@ -11,13 +11,20 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "0i7m9s4g5rsw28vclc9nh0zcapx85cqfwxkx7rrw7wa12svy7pm2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
nativeBuildInputs = [ cmake pkgconfig setupHook ];
|
||||
|
||||
buildInputs = [ qtbase glib pcre ];
|
||||
|
||||
preConfigure = ''cmakeFlags+=" -DLXQT_ETC_XDG_DIR=$out/etc/xdg"'';
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
# We're dependent on this macro doing add_definitions in most places
|
||||
# But we have the setup-hook to set the values.
|
||||
postInstall = ''
|
||||
rm $out/share/cmake/lxqt-build-tools/modules/LXQtConfigVars.cmake
|
||||
cp ${./LXQtConfigVars.cmake} $out/share/cmake/lxqt-build-tools/modules/LXQtConfigVars.cmake
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Various packaging tools and scripts for LXQt applications";
|
||||
homepage = https://github.com/lxqt/lxqt-build-tools;
|
||||
license = licenses.lgpl21;
|
||||
|
15
pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh
Normal file
15
pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh
Normal file
@ -0,0 +1,15 @@
|
||||
LXQtCMakePostHook() {
|
||||
cmakeFlagsArray+=(
|
||||
-DLXQT_LIBRARY_NAME=lxqt
|
||||
-DLXQT_SHARE_DIR=$out/share/lxqt
|
||||
-DLXQT_TRANSLATIONS_DIR=$out/share/lxqt/translations
|
||||
-DLXQT_GRAPHICS_DIR=$out/share/lxqt/graphics
|
||||
-DLXQT_ETC_XDG_DIR=$out/etc/xdg
|
||||
-DLXQT_DATA_DIR=$out/share
|
||||
-DLXQT_RELATIVE_SHARE_DIR=lxqt
|
||||
-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=lxqt/translations
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
postHooks+=(LXQtCMakePostHook)
|
@ -1,8 +1,8 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase,
|
||||
qtx11extras, qttools, qtsvg, kwindowsystem, libkscreen, liblxqt,
|
||||
libqtxdg, xorg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-config";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -38,27 +38,10 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace src/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
|
||||
for f in \
|
||||
lxqt-config-file-associations/CMakeLists.txt \
|
||||
lxqt-config-brightness/CMakeLists.txt \
|
||||
lxqt-config-appearance/CMakeLists.txt \
|
||||
lxqt-config-locale/CMakeLists.txt \
|
||||
lxqt-config-monitor/CMakeLists.txt \
|
||||
lxqt-config-input/CMakeLists.txt \
|
||||
liblxqt-config-cursor/CMakeLists.txt \
|
||||
src/CMakeLists.txt
|
||||
do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
|
||||
sed -i "/\''${XORG_LIBINPUT_INCLUDE_DIRS}/a ${xorg.xf86inputlibinput.dev}/include/xorg" lxqt-config-input/CMakeLists.txt
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Tools to configure LXQt and the underlying operating system";
|
||||
homepage = https://github.com/lxqt/lxqt-config;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, liblxqt, libqtxdg }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, liblxqt, libqtxdg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-globalkeys";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -26,17 +26,7 @@ stdenv.mkDerivation rec {
|
||||
libqtxdg
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for dir in autostart xdg; do
|
||||
substituteInPlace $dir/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
done
|
||||
|
||||
substituteInPlace config/CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Daemon used to register global keyboard shortcuts";
|
||||
homepage = https://github.com/lxqt/lxqt-globalkeys;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, qtx11extras }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, qtx11extras }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-notificationd";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -16,16 +16,6 @@ stdenv.mkDerivation rec {
|
||||
lxqt-build-tools
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace autostart/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
|
||||
for f in {config,src}/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
'';
|
||||
|
||||
buildInputs = [
|
||||
qtbase
|
||||
qttools
|
||||
@ -36,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
qtx11extras
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The LXQt notification daemon";
|
||||
homepage = https://github.com/lxqt/lxqt-notificationd;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtsvg, qtx11extras, kwindowsystem, liblxqt, libqtxdg }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtsvg, qtx11extras, kwindowsystem, liblxqt, libqtxdg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-openssh-askpass";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -26,12 +26,7 @@ stdenv.mkDerivation rec {
|
||||
libqtxdg
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "GUI to query passwords on behalf of SSH agents";
|
||||
homepage = https://github.com/lxqt/lxqt-openssh-askpass;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
stdenv, fetchFromGitHub,
|
||||
lib, mkDerivation, fetchFromGitHub,
|
||||
cmake, pkgconfig, lxqt-build-tools,
|
||||
qtbase, qttools, qtx11extras, qtsvg, libdbusmenu, kwindowsystem, solid,
|
||||
kguiaddons, liblxqt, libqtxdg, lxqt-globalkeys, libsysstat,
|
||||
@ -7,7 +7,7 @@
|
||||
lxmenu-data, pcre, libXdamage
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-panel";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -49,21 +49,7 @@ stdenv.mkDerivation rec {
|
||||
libXdamage
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for dir in autostart menu; do
|
||||
substituteInPlace $dir/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
done
|
||||
substituteInPlace panel/CMakeLists.txt \
|
||||
--replace "DESTINATION \''${LXQT_ETC_XDG_DIR}" "DESTINATION etc/xdg"
|
||||
|
||||
for f in cmake/BuildPlugin.cmake panel/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The LXQt desktop panel";
|
||||
homepage = https://github.com/lxqt/lxqt-panel;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools,
|
||||
lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools,
|
||||
qtbase, qttools, qtx11extras, qtsvg, polkit-qt, kwindowsystem, liblxqt,
|
||||
libqtxdg, pcre
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-policykit";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -33,15 +33,7 @@ stdenv.mkDerivation rec {
|
||||
pcre
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace autostart/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The LXQt PolicyKit agent";
|
||||
homepage = https://github.com/lxqt/lxqt-policykit;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, solid, kidletime, liblxqt, libqtxdg }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, solid, kidletime, liblxqt, libqtxdg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-powermanagement";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -28,17 +28,7 @@ stdenv.mkDerivation rec {
|
||||
libqtxdg
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace autostart/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
|
||||
for f in {config,src}/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Power management module for LXQt";
|
||||
homepage = https://github.com/lxqt/lxqt-powermanagement;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,10 +1,10 @@
|
||||
{
|
||||
stdenv, fetchFromGitHub,
|
||||
lib, mkDerivation, fetchFromGitHub,
|
||||
cmake, lxqt-build-tools,
|
||||
qtbase, qtx11extras, qttools, qtsvg, libdbusmenu, libqtxdg, libfm-qt
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-qtplugin";
|
||||
version = "0.14.0";
|
||||
|
||||
@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
|
||||
--replace "DESTINATION \"\''${QT_PLUGINS_DIR}" "DESTINATION \"$qtPluginPrefix"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "LXQt Qt platform integration plugin";
|
||||
homepage = https://github.com/lxqt/lxqt-qtplugin;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, lxqt-globalkeys, qtx11extras,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase, qttools, qtsvg, kwindowsystem, liblxqt, libqtxdg, lxqt-globalkeys, qtx11extras,
|
||||
menu-cache, muparser, pcre }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-runner";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -32,15 +32,7 @@ stdenv.mkDerivation rec {
|
||||
pcre
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace autostart/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Tool used to launch programs quickly by typing their names";
|
||||
homepage = https://github.com/lxqt/lxqt-runner;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase, qttools, qtsvg, qtx11extras, kwindowsystem, liblxqt, libqtxdg, xorg, xdg-user-dirs }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt-build-tools, qtbase, qttools, qtsvg, qtx11extras, kwindowsystem, liblxqt, libqtxdg, xorg, xdg-user-dirs }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-session";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -30,19 +30,7 @@ stdenv.mkDerivation rec {
|
||||
xdg-user-dirs
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for dir in autostart config; do
|
||||
substituteInPlace $dir/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
done
|
||||
|
||||
for f in lxqt-{config-session,leave,session}/CMakeLists.txt; do
|
||||
substituteInPlace $f \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "An alternative session manager ported from the original razor-session";
|
||||
homepage = https://github.com/lxqt/lxqt-session;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, liblxqt, libqtxdg, sudo }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, liblxqt, libqtxdg, sudo }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-sudo";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -27,12 +27,7 @@ stdenv.mkDerivation rec {
|
||||
sudo
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "\''${LXQT_TRANSLATIONS_DIR}" "''${out}/share/lxqt/translations"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "GUI frontend for sudo/su";
|
||||
homepage = https://github.com/lxqt/lxqt-sudo;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "lxqt-themes";
|
||||
version = "0.14.0";
|
||||
|
||||
@ -16,14 +16,7 @@ stdenv.mkDerivation rec {
|
||||
lxqt-build-tools
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_GRAPHICS_DIR}" "DESTINATION \"share/lxqt/graphics"
|
||||
substituteInPlace themes/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_SHARE_DIR}" "DESTINATION \"share/lxqt"
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Themes, graphics and icons for LXQt";
|
||||
homepage = https://github.com/lxqt/lxqt-themes;
|
||||
license = licenses.lgpl21;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, qttools,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, qttools,
|
||||
qtx11extras, xorg, lxqt-build-tools, openbox, hicolor-icon-theme }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "obconf-qt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||
hicolor-icon-theme
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The Qt port of obconf, the Openbox configuration tool";
|
||||
homepage = https://github.com/lxqt/obconf-qt;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt, libpulseaudio,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt, libpulseaudio,
|
||||
pcre, qtbase, qttools, qtx11extras }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "pavucontrol-qt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
||||
pcre
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "A Pulseaudio mixer in Qt (port of pavucontrol)";
|
||||
homepage = https://github.com/lxqt/pavucontrol-qt;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, lxqt, qtbase, qttools,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, lxqt, qtbase, qttools,
|
||||
qtx11extras, libfm-qt, menu-cache, lxmenu-data }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "pcmanfm-qt";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -28,14 +28,7 @@ stdenv.mkDerivation rec {
|
||||
lxmenu-data
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
for dir in autostart config; do
|
||||
substituteInPlace $dir/CMakeLists.txt \
|
||||
--replace "DESTINATION \"\''${LXQT_ETC_XDG_DIR}" "DESTINATION \"etc/xdg"
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "File manager and desktop icon manager (Qt port of PCManFM and libfm)";
|
||||
homepage = https://github.com/lxqt/pcmanfm-qt;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase, qttools }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, qttools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "qlipper";
|
||||
version = "5.1.1";
|
||||
|
||||
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ qtbase qttools ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Cross-platform clipboard history applet";
|
||||
homepage = https://github.com/pvanek/qlipper;
|
||||
license = licenses.gpl2Plus;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase, qtx11extras, qttools,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, qtx11extras, qttools,
|
||||
lxqt-build-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "qps";
|
||||
version = "1.10.20";
|
||||
|
||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ qtbase qtx11extras qttools ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "The Qt process manager";
|
||||
homepage = https://github.com/lxqt/qps;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, lxqt-build-tools, qtermwidget,
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, lxqt-build-tools, qtermwidget,
|
||||
qtbase, qttools, qtx11extras }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "qterminal";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
||||
qtermwidget
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "A lightweight Qt-based terminal emulator";
|
||||
homepage = https://github.com/lxqt/qterminal;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, qtbase, qttools, lxqt-build-tools }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, qtbase, qttools, lxqt-build-tools }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "qtermwidget";
|
||||
version = "0.14.1";
|
||||
|
||||
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
buildInputs = [ qtbase qttools ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "A terminal emulator widget for Qt 5";
|
||||
homepage = https://github.com/lxqt/qtermwidget;
|
||||
license = licenses.gpl2;
|
||||
|
@ -1,6 +1,6 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, libqtxdg, xorg, autoPatchelfHook }:
|
||||
{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, qtbase, qttools, qtx11extras, qtsvg, kwindowsystem, libqtxdg, xorg, autoPatchelfHook }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
mkDerivation rec {
|
||||
pname = "screengrab";
|
||||
version = "1.101";
|
||||
|
||||
@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
|
||||
xorg.libXdmcp
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
meta = with lib; {
|
||||
description = "Crossplatform tool for fast making screenshots";
|
||||
homepage = https://github.com/lxqt/screengrab;
|
||||
license = licenses.gpl2;
|
||||
|
@ -200,5 +200,12 @@ in rec {
|
||||
binary = binaryCrystal_0_29;
|
||||
};
|
||||
|
||||
crystal = crystal_0_29;
|
||||
crystal_0_30 = generic {
|
||||
version = "0.30.1";
|
||||
sha256 = "0fbk784zjflsl3hys5a1xmn8mda8kb2z7ql58wpyfavivswxanbs";
|
||||
doCheck = false; # 6 checks are failing now
|
||||
binary = binaryCrystal_0_29;
|
||||
};
|
||||
|
||||
crystal = crystal_0_30;
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
# Temporaririly avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
|
||||
|
||||
{ stdenv, fetchurl, pkgconfig, autoconf, automake, which, mono, dotnetbuildhelpers, dotnetPackages }:
|
||||
{ stdenv, fetchurl, pkgconfig, autoconf, automake, which, mono, msbuild, dotnetbuildhelpers, dotnetPackages }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fsharp";
|
||||
version = "4.1.7";
|
||||
version = "4.1.34";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/fsharp/fsharp/archive/${version}.tar.gz";
|
||||
sha256 = "0rfkrk4mzi4w54mfqilvng9ar5swhmnwhsyjc54rx3fd0np3jiyl";
|
||||
sha256 = "0cv6p5pin962vhbpsji40nkckkag5c96kq5qihvg60pc1z821p0i";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
@ -17,12 +17,16 @@ stdenv.mkDerivation rec {
|
||||
automake
|
||||
which
|
||||
mono
|
||||
msbuild
|
||||
dotnetbuildhelpers
|
||||
dotnetPackages.FsCheck262
|
||||
dotnetPackages.FSharpCompilerTools
|
||||
dotnetPackages.FSharpCore
|
||||
dotnetPackages.FSharpCore302
|
||||
dotnetPackages.FSharpCore3125
|
||||
dotnetPackages.FSharpCore4001
|
||||
dotnetPackages.FSharpCore4117
|
||||
dotnetPackages.FSharpData225
|
||||
dotnetPackages.FsLexYacc704
|
||||
dotnetPackages.FsLexYacc706
|
||||
dotnetPackages.MicrosoftDiaSymReader
|
||||
dotnetPackages.MicrosoftDiaSymReaderPortablePdb
|
||||
dotnetPackages.NUnit350
|
||||
@ -31,6 +35,14 @@ stdenv.mkDerivation rec {
|
||||
dotnetPackages.SystemValueTuple
|
||||
];
|
||||
|
||||
# https://github.com/mono/mono/tree/fe0f311a848068ab2d17a9b9dd15326e5712d520/packaging/MacSDK/patches
|
||||
# https://github.com/mono/mono/issues/7805
|
||||
patches = [
|
||||
./fsharp-IsPathRooted-type-inference.patch
|
||||
./fsharp-string-switchName.patch
|
||||
./fsharp-path-overloads.patch
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
substituteInPlace ./autogen.sh --replace "/usr/bin/env sh" "${stdenv.shell}"
|
||||
./autogen.sh --prefix $out
|
||||
@ -47,24 +59,30 @@ stdenv.mkDerivation rec {
|
||||
mkdir packages
|
||||
|
||||
ln -s ${dotnetPackages.FsCheck262}/lib/dotnet/FsCheck packages/FsCheck.2.6.2
|
||||
ln -s ${dotnetPackages.FSharpCompilerTools}/lib/dotnet/FSharp.Compiler.Tools packages/FSharp.Compiler.Tools.4.1.4
|
||||
ln -s ${dotnetPackages.FSharpCore}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.0.0.1
|
||||
ln -s ${dotnetPackages.FSharpCompilerTools}/lib/dotnet/FSharp.Compiler.Tools packages/FSharp.Compiler.Tools.4.1.27
|
||||
ln -s ${dotnetPackages.FSharpCore302}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.3.0.2
|
||||
ln -s ${dotnetPackages.FSharpCore3125}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.3.1.2.5
|
||||
ln -s ${dotnetPackages.FSharpCore4001}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.0.0.1
|
||||
ln -s ${dotnetPackages.FSharpCore4117}/lib/dotnet/FSharp.Core/ packages/FSharp.Core.4.1.17
|
||||
ln -s ${dotnetPackages.FSharpData225}/lib/dotnet/FSharp.Data/ packages/FSharp.Data.2.2.5
|
||||
ln -s ${dotnetPackages.FsLexYacc704}/lib/dotnet/FsLexYacc/ packages/FsLexYacc.7.0.4
|
||||
ln -s ${dotnetPackages.FsLexYacc706}/lib/dotnet/FsLexYacc/ packages/FsLexYacc.7.0.6
|
||||
ln -s ${dotnetPackages.MicrosoftDiaSymReader}/lib/dotnet/Microsoft.DiaSymReader/ packages/Microsoft.DiaSymReader.1.1.0
|
||||
ln -s ${dotnetPackages.MicrosoftDiaSymReaderPortablePdb}/lib/dotnet/Microsoft.DiaSymReader.PortablePdb/ packages/Microsoft.DiaSymReader.PortablePdb.1.2.0
|
||||
ln -s ${dotnetPackages.NUnit350}/lib/dotnet/NUnit/ packages/NUnit.3.5.0
|
||||
ln -s ${dotnetPackages.SystemCollectionsImmutable131}/lib/dotnet/System.Collections.Immutable/ packages/System.Collections.Immutable.1.3.1
|
||||
ln -s ${dotnetPackages.SystemReflectionMetadata}/lib/dotnet/System.Reflection.Metadata/ packages/System.Reflection.Metadata.1.4.2
|
||||
ln -s ${dotnetPackages.SystemValueTuple}/lib/dotnet/System.ValueTuple/ packages/System.ValueTuple.4.3.0
|
||||
ln -s ${dotnetPackages.SystemValueTuple}/lib/dotnet/System.ValueTuple/ packages/System.ValueTuple.4.3.1
|
||||
'';
|
||||
|
||||
# Make sure the executables use the right mono binary,
|
||||
# and set up some symlinks for backwards compatibility.
|
||||
# Signing /home/jdanek/nix/nixpkgs/build/fss/fsharp-4.1.34/again/fsharp-4.1.34/Release/fsharp30/net40/bin/FSharp.Core.dll with Mono key
|
||||
# ERROR: Unknown error during processing: System.UnauthorizedAccessException: Access to the path
|
||||
# "Release/fsharp30/net40/bin/FSharp.Core.dll" is denied.
|
||||
preInstall = ''
|
||||
find Release/ -name FSharp.Core.dll -exec chmod u+w {} \;
|
||||
'';
|
||||
|
||||
# Set up some symlinks for backwards compatibility.
|
||||
postInstall = ''
|
||||
substituteInPlace $out/bin/fsharpc --replace " mono " " ${mono}/bin/mono "
|
||||
substituteInPlace $out/bin/fsharpi --replace " mono " " ${mono}/bin/mono "
|
||||
substituteInPlace $out/bin/fsharpiAnyCpu --replace " mono " " ${mono}/bin/mono "
|
||||
ln -s $out/bin/fsharpc $out/bin/fsc
|
||||
ln -s $out/bin/fsharpi $out/bin/fsi
|
||||
for dll in "$out/lib/mono/fsharp"/FSharp*.dll
|
||||
@ -73,6 +91,26 @@ stdenv.mkDerivation rec {
|
||||
done
|
||||
'';
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
echo 'printf "int = %i" (6 * 7);;' > script.fsx
|
||||
$out/bin/fsi --exec script.fsx | grep "int = 42"
|
||||
$out/bin/fsharpi --exec script.fsx | grep "int = 42"
|
||||
$out/bin/fsharpiAnyCpu --exec script.fsx | grep "int = 42"
|
||||
|
||||
cat > answer.fs <<EOF
|
||||
open System
|
||||
|
||||
[<EntryPoint>]
|
||||
let main argv =
|
||||
printfn "int = %i" (6 * 7)
|
||||
0
|
||||
EOF
|
||||
|
||||
$out/bin/fsc answer.fs
|
||||
${mono}/bin/mono answer.exe | grep "int = 42"
|
||||
'';
|
||||
|
||||
# To fix this error when running:
|
||||
# The file "/nix/store/path/whatever.exe" is an not a valid CIL image
|
||||
dontStrip = true;
|
||||
|
@ -0,0 +1,21 @@
|
||||
commit c37fce5b3019c7a150203fc3a484885591b194de
|
||||
Author: Alexis Christoforides <alexis@thenull.net>
|
||||
Date: Sun Dec 2 00:10:24 2018 -0500
|
||||
|
||||
Help Path.IsPathRooted method overload selection.
|
||||
|
||||
.NET Core, and Mono after merging https://github.com/mono/mono/pull/11342, introduce ambiguity with a new overload.
|
||||
|
||||
diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
|
||||
index cc797e305..699c7bb93 100644
|
||||
--- a/src/scripts/scriptlib.fsx
|
||||
+++ b/src/scripts/scriptlib.fsx
|
||||
@@ -92,7 +92,7 @@ module Scripting =
|
||||
|
||||
module Process =
|
||||
|
||||
- let processExePath baseDir exe =
|
||||
+ let processExePath baseDir (exe:string) =
|
||||
if Path.IsPathRooted(exe) then exe
|
||||
else
|
||||
match Path.GetDirectoryName(exe) with
|
@ -0,0 +1,22 @@
|
||||
diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
|
||||
index cc797e305..ae8a6d3cc 100644
|
||||
--- a/src/scripts/scriptlib.fsx
|
||||
+++ b/src/scripts/scriptlib.fsx
|
||||
@@ -59,12 +59,12 @@ module Scripting =
|
||||
|
||||
let (++) a b = Path.Combine(a,b)
|
||||
|
||||
- let getBasename a = Path.GetFileNameWithoutExtension a
|
||||
- let getFullPath a = Path.GetFullPath a
|
||||
- let getFilename a = Path.GetFileName a
|
||||
- let getDirectoryName a = Path.GetDirectoryName a
|
||||
+ let getBasename (path: string) = Path.GetFileNameWithoutExtension path
|
||||
+ let getFullPath (path: string) = Path.GetFullPath path
|
||||
+ let getFilename (path: string) = Path.GetFileName path
|
||||
+ let getDirectoryName (path: string) = Path.GetDirectoryName path
|
||||
|
||||
- let copyFile source dir =
|
||||
+ let copyFile (source: string) dir =
|
||||
let dest =
|
||||
if not (Directory.Exists dir) then Directory.CreateDirectory dir |>ignore
|
||||
let result = Path.Combine(dir, Path.GetFileName source)
|
@ -0,0 +1,13 @@
|
||||
diff --git a/src/scripts/scriptlib.fsx b/src/scripts/scriptlib.fsx
|
||||
index cc797e305..5a7be7d2b 100644
|
||||
--- a/src/scripts/scriptlib.fsx
|
||||
+++ b/src/scripts/scriptlib.fsx
|
||||
@@ -36,7 +36,7 @@ module Scripting =
|
||||
#if INTERACTIVE
|
||||
let argv = Microsoft.FSharp.Compiler.Interactive.Settings.fsi.CommandLineArgs |> Seq.skip 1 |> Seq.toArray
|
||||
|
||||
- let getCmdLineArgOptional switchName =
|
||||
+ let getCmdLineArgOptional (switchName: string) =
|
||||
argv |> Array.filter(fun t -> t.StartsWith(switchName)) |> Array.map(fun t -> t.Remove(0, switchName.Length).Trim()) |> Array.tryHead
|
||||
|
||||
let getCmdLineArg switchName defaultValue =
|
@ -86,12 +86,12 @@ let
|
||||
|
||||
in
|
||||
stdenv.mkDerivation (rec {
|
||||
version = "8.8.0.20190721";
|
||||
version = "8.8.1";
|
||||
name = "${targetPrefix}ghc-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://downloads.haskell.org/ghc/8.8.1-rc1/ghc-${version}-src.tar.xz";
|
||||
sha256 = "1ih76zpxk8ay84xjyaflqc754002y8pdaainqfvb4cnhy6lpb1br";
|
||||
url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
|
||||
sha256 = "06kj4fhvijinjafiy4s873n60qly323rdlz9bmc79nhlp3cq72lh";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
9
pkgs/development/compilers/mono/6.nix
Normal file
9
pkgs/development/compilers/mono/6.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{ callPackage, Foundation, libobjc }:
|
||||
|
||||
callPackage ./generic.nix (rec {
|
||||
inherit Foundation libobjc;
|
||||
version = "6.0.0.313";
|
||||
srcArchiveSuffix = "tar.xz";
|
||||
sha256 = "0l0cd6q5xh1vdm6zr78rkfqdsmrgzanjgpxvgig0pyd3glfyjim9";
|
||||
enableParallelBuilding = true;
|
||||
})
|
@ -1,4 +1,7 @@
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which, enableParallelBuilding ? true }:
|
||||
{ stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which
|
||||
, enableParallelBuilding ? true
|
||||
, srcArchiveSuffix ? "tar.bz2"
|
||||
}:
|
||||
|
||||
let
|
||||
llvm = callPackage ./llvm.nix { };
|
||||
@ -9,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
src = fetchurl {
|
||||
inherit sha256;
|
||||
url = "https://download.mono-project.com/sources/mono/${pname}-${version}.tar.bz2";
|
||||
url = "https://download.mono-project.com/sources/mono/${pname}-${version}.${srcArchiveSuffix}";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user