Merge branch 'master' into staging-next

There were several more conflicts from name -> pname+version;
all auto-solved by kdiff3, hopefully OK.

Hydra nixpkgs: ?compare=1538611
This commit is contained in:
Vladimír Čunát 2019-08-25 14:57:11 +02:00
commit 985d1ac425
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
111 changed files with 1767 additions and 1313 deletions

View File

@ -335,6 +335,12 @@
githubId = 2822871; githubId = 2822871;
name = "Alistair Bill"; name = "Alistair Bill";
}; };
alkeryn = {
email = "plbraundev@gmail.com";
github = "Alkeryn";
githubId = 11599075;
name = "Pierre-Louis Braun";
};
all = { all = {
email = "nix-commits@lists.science.uu.nl"; email = "nix-commits@lists.science.uu.nl";
name = "Nix Committers"; name = "Nix Committers";
@ -3385,6 +3391,11 @@
githubId = 10544; githubId = 10544;
name = "Giuluo Eulisse"; name = "Giuluo Eulisse";
}; };
ktor = {
email = "kruszewsky@gmail.com";
github = "ktor";
name = "Pawel Kruszewski";
};
ktosiek = { ktosiek = {
email = "tomasz.kontusz@gmail.com"; email = "tomasz.kontusz@gmail.com";
github = "ktosiek"; github = "ktosiek";
@ -3514,6 +3525,11 @@
githubId = 307589; githubId = 307589;
name = "Nathaniel Baxter"; name = "Nathaniel Baxter";
}; };
lightbulbjim = {
email = "chris@killred.net";
github = "lightbulbjim";
name = "Chris Rendle-Short";
};
lightdiscord = { lightdiscord = {
email = "root@arnaud.sh"; email = "root@arnaud.sh";
github = "lightdiscord"; github = "lightdiscord";

View File

@ -220,6 +220,30 @@
</itemizedlist> </itemizedlist>
</section> </section>
</section> </section>
<section xml:id="release-managers">
<title>Release Management Team</title>
<para>
For each release there are two release managers. After each release the
release manager having managed two releases steps down and the release
management team of the last release appoints a new release manager.
</para>
<para>
This makes sure a release management team always consists of one release
manager who already has managed one release and one release manager being
introduced to their role, making it easier to pass on knowledge and
experience.
</para>
<para>
A release manager's role and responsibilities are:
</para>
<itemizedlist>
<listitem><para>manage the release process</para></listitem>
<listitem><para>start discussions about features and changes for a given release</para></listitem>
<listitem><para>create a roadmap</para></listitem>
<listitem><para>release in cooperation with Eelco Dolstra</para></listitem>
<listitem><para>decide which bug fixes, features, etc... get backported after a release</para></listitem>
</itemizedlist>
</section>
<section xml:id="release-schedule"> <section xml:id="release-schedule">
<title>Release schedule</title> <title>Release schedule</title>

View File

@ -42,7 +42,7 @@ in
config = mkMerge [ config = mkMerge [
(mkIf config.programs.bash.vteIntegration { (mkIf config.programs.bash.vteIntegration {
programs.bash.interactiveShellInit = vteInitSnippet; programs.bash.interactiveShellInit = mkBefore vteInitSnippet;
}) })
(mkIf config.programs.zsh.vteIntegration { (mkIf config.programs.zsh.vteIntegration {

View File

@ -649,6 +649,7 @@
./services/networking/nullidentdmod.nix ./services/networking/nullidentdmod.nix
./services/networking/nylon.nix ./services/networking/nylon.nix
./services/networking/ocserv.nix ./services/networking/ocserv.nix
./services/networking/ofono.nix
./services/networking/oidentd.nix ./services/networking/oidentd.nix
./services/networking/openfire.nix ./services/networking/openfire.nix
./services/networking/openntpd.nix ./services/networking/openntpd.nix

View File

@ -21,6 +21,7 @@ in
PAGER = mkDefault "less -R"; PAGER = mkDefault "less -R";
EDITOR = mkDefault "nano"; EDITOR = mkDefault "nano";
XCURSOR_PATH = [ "$HOME/.icons" ]; XCURSOR_PATH = [ "$HOME/.icons" ];
XDG_CONFIG_DIRS = [ "/etc/xdg" ]; # needs to be before profile-relative paths to allow changes through environment.etc
}; };
environment.profiles = mkAfter environment.profiles = mkAfter

View File

@ -83,7 +83,8 @@ in
systemd.user.sockets.dirmngr = mkIf cfg.dirmngr.enable { systemd.user.sockets.dirmngr = mkIf cfg.dirmngr.enable {
wantedBy = [ "sockets.target" ]; wantedBy = [ "sockets.target" ];
}; };
environment.systemPackages = with pkgs; [ cfg.package ];
systemd.packages = [ cfg.package ]; systemd.packages = [ cfg.package ];
environment.interactiveShellInit = '' environment.interactiveShellInit = ''

View File

@ -178,6 +178,9 @@ with lib;
The starting time can be configured via <literal>services.postgresqlBackup.startAt</literal>. The starting time can be configured via <literal>services.postgresqlBackup.startAt</literal>.
'') '')
# phpfpm
(mkRemovedOptionModule [ "services" "phpfpm" "poolConfigs" ] "Use services.phpfpm.pools instead.")
# zabbixServer # zabbixServer
(mkRenamedOptionModule [ "services" "zabbixServer" "dbServer" ] [ "services" "zabbixServer" "database" "host" ]) (mkRenamedOptionModule [ "services" "zabbixServer" "dbServer" ] [ "services" "zabbixServer" "database" "host" ])

View File

@ -4,6 +4,7 @@ with lib;
let let
cfg = config.services.roundcube; cfg = config.services.roundcube;
fpm = config.services.phpfpm.pools.roundcube;
in in
{ {
options.services.roundcube = { options.services.roundcube = {
@ -105,7 +106,7 @@ in
extraConfig = '' extraConfig = ''
location ~* \.php$ { location ~* \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/phpfpm/roundcube; fastcgi_pass unix:${fpm.socket};
include ${pkgs.nginx}/conf/fastcgi_params; include ${pkgs.nginx}/conf/fastcgi_params;
include ${pkgs.nginx}/conf/fastcgi.conf; include ${pkgs.nginx}/conf/fastcgi.conf;
} }
@ -119,24 +120,27 @@ in
enable = true; enable = true;
}; };
services.phpfpm.poolConfigs.roundcube = '' services.phpfpm.pools.roundcube = {
listen = /run/phpfpm/roundcube user = "nginx";
listen.owner = nginx phpOptions = ''
listen.group = nginx error_log = 'stderr'
listen.mode = 0660 log_errors = on
user = nginx post_max_size = 25M
pm = dynamic upload_max_filesize = 25M
pm.max_children = 75 '';
pm.start_servers = 2 settings = mapAttrs (name: mkDefault) {
pm.min_spare_servers = 1 "listen.owner" = "nginx";
pm.max_spare_servers = 20 "listen.group" = "nginx";
pm.max_requests = 500 "listen.mode" = "0660";
php_admin_value[error_log] = 'stderr' "pm" = "dynamic";
php_admin_flag[log_errors] = on "pm.max_children" = 75;
php_admin_value[post_max_size] = 25M "pm.start_servers" = 2;
php_admin_value[upload_max_filesize] = 25M "pm.min_spare_servers" = 1;
catch_workers_output = yes "pm.max_spare_servers" = 20;
''; "pm.max_requests" = 500;
"catch_workers_output" = true;
};
};
systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ]; systemd.services.phpfpm-roundcube.after = [ "roundcube-setup.service" ];
systemd.services.roundcube-setup = let systemd.services.roundcube-setup = let

View File

@ -2,6 +2,7 @@
let let
cfg = config.services.zoneminder; cfg = config.services.zoneminder;
fpm = config.services.phpfpm.pools.zoneminder;
pkg = pkgs.zoneminder; pkg = pkgs.zoneminder;
dirName = pkg.dirName; dirName = pkg.dirName;
@ -19,8 +20,6 @@ let
useCustomDir = cfg.storageDir != null; useCustomDir = cfg.storageDir != null;
socket = "/run/phpfpm/${dirName}.sock";
zms = "/cgi-bin/zms"; zms = "/cgi-bin/zms";
dirs = dirList: [ dirName ] ++ map (e: "${dirName}/${e}") dirList; dirs = dirList: [ dirName ] ++ map (e: "${dirName}/${e}") dirList;
@ -274,7 +273,7 @@ in {
fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param HTTP_PROXY ""; fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:${socket}; fastcgi_pass unix:${fpm.socket};
} }
} }
''; '';
@ -284,30 +283,27 @@ in {
phpfpm = lib.mkIf useNginx { phpfpm = lib.mkIf useNginx {
pools.zoneminder = { pools.zoneminder = {
listen = socket; inherit user group;
phpOptions = '' phpOptions = ''
date.timezone = "${config.time.timeZone}" date.timezone = "${config.time.timeZone}"
${lib.concatStringsSep "\n" (map (e: ${lib.concatStringsSep "\n" (map (e:
"extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)} "extension=${e.pkg}/lib/php/extensions/${e.name}.so") phpExtensions)}
''; '';
extraConfig = '' settings = lib.mapAttrs (name: lib.mkDefault) {
user = ${user} "listen.owner" = user;
group = ${group} "listen.group" = group;
"listen.mode" = "0660";
listen.owner = ${user} "pm" = "dynamic";
listen.group = ${group} "pm.start_servers" = 1;
listen.mode = 0660 "pm.min_spare_servers" = 1;
"pm.max_spare_servers" = 2;
pm = dynamic "pm.max_requests" = 500;
pm.start_servers = 1 "pm.max_children" = 5;
pm.min_spare_servers = 1 "pm.status_path" = "/$pool-status";
pm.max_spare_servers = 2 "ping.path" = "/$pool-ping";
pm.max_requests = 500 };
pm.max_children = 5
pm.status_path = /$pool-status
ping.path = /$pool-ping
'';
}; };
}; };
}; };

View File

@ -0,0 +1,44 @@
# Ofono daemon.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.ofono;
plugin_path =
lib.concatMapStringsSep ":"
(plugin: "${plugin}/lib/ofono/plugins")
cfg.plugins
;
in
{
###### interface
options = {
services.ofono = {
enable = mkEnableOption "Ofono";
plugins = mkOption {
type = types.listOf types.package;
default = [];
example = literalExample "[ pkgs.modem-manager-gui ]";
description = ''
The list of plugins to install.
'';
};
};
};
###### implementation
config = mkIf cfg.enable {
services.dbus.packages = [ pkgs.ofono ];
systemd.packages = [ pkgs.ofono ];
systemd.services.ofono.environment.OFONO_PLUGIN_PATH = mkIf (cfg.plugins != []) plugin_path;
};
}

View File

@ -1,7 +1,7 @@
{ config, lib, pkgs, ... }: with lib; let { config, lib, pkgs, ... }: with lib; let
cfg = config.services.icingaweb2; cfg = config.services.icingaweb2;
fpm = config.services.phpfpm.pools.${poolName};
poolName = "icingaweb2"; poolName = "icingaweb2";
phpfpmSocketName = "/var/run/phpfpm/${poolName}.sock";
defaultConfig = { defaultConfig = {
global = { global = {
@ -164,27 +164,26 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") { services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
"${poolName}" = '' "${poolName}" = {
listen = "${phpfpmSocketName}" user = "icingaweb2";
listen.owner = nginx phpOptions = ''
listen.group = nginx extension = ${pkgs.phpPackages.imagick}/lib/php/extensions/imagick.so
listen.mode = 0600 date.timezone = "${cfg.timezone}"
user = icingaweb2 '';
pm = dynamic settings = mapAttrs (name: mkDefault) {
pm.max_children = 75 "listen.owner" = "nginx";
pm.start_servers = 2 "listen.group" = "nginx";
pm.min_spare_servers = 2 "listen.mode" = "0600";
pm.max_spare_servers = 10 "pm" = "dynamic";
''; "pm.max_children" = 75;
"pm.start_servers" = 2;
"pm.min_spare_servers" = 2;
"pm.max_spare_servers" = 10;
};
};
}; };
services.phpfpm.phpOptions = mkIf (cfg.pool == "${poolName}")
''
extension = ${pkgs.phpPackages.imagick}/lib/php/extensions/imagick.so
date.timezone = "${cfg.timezone}"
'';
systemd.services."phpfpm-${poolName}".serviceConfig.ReadWritePaths = [ "/etc/icingaweb2" ]; systemd.services."phpfpm-${poolName}".serviceConfig.ReadWritePaths = [ "/etc/icingaweb2" ];
services.nginx = { services.nginx = {
@ -208,7 +207,7 @@ in {
include ${config.services.nginx.package}/conf/fastcgi.conf; include ${config.services.nginx.package}/conf/fastcgi.conf;
try_files $uri =404; try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${phpfpmSocketName}; fastcgi_pass unix:${fpm.socket};
fastcgi_param SCRIPT_FILENAME ${pkgs.icingaweb2}/public/index.php; fastcgi_param SCRIPT_FILENAME ${pkgs.icingaweb2}/public/index.php;
''; '';
}; };

View File

@ -120,15 +120,15 @@ in
}; };
poolConfig = mkOption { poolConfig = mkOption {
type = types.lines; type = with types; attrsOf (oneOf [ str int bool ]);
default = '' default = {
pm = dynamic "pm" = "dynamic";
pm.max_children = 32 "pm.max_children" = 32;
pm.start_servers = 2 "pm.start_servers" = 2;
pm.min_spare_servers = 2 "pm.min_spare_servers" = 2;
pm.max_spare_servers = 4 "pm.max_spare_servers" = 4;
pm.max_requests = 500 "pm.max_requests" = 500;
''; };
description = '' description = ''
Options for the LimeSurvey PHP pool. See the documentation on <literal>php-fpm.conf</literal> Options for the LimeSurvey PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives. for details on configuration directives.
@ -203,17 +203,12 @@ in
}; };
services.phpfpm.pools.limesurvey = { services.phpfpm.pools.limesurvey = {
listen = "/run/phpfpm/limesurvey.sock"; inherit user group;
extraConfig = '' phpEnv.LIMESURVEY_CONFIG = "${limesurveyConfig}";
listen.owner = ${config.services.httpd.user}; settings = {
listen.group = ${config.services.httpd.group}; "listen.owner" = config.services.httpd.user;
user = ${user}; "listen.group" = config.services.httpd.group;
group = ${group}; } // cfg.poolConfig;
env[LIMESURVEY_CONFIG] = ${limesurveyConfig}
${cfg.poolConfig}
'';
}; };
services.httpd = { services.httpd = {
@ -241,7 +236,7 @@ in
<Directory "${pkg}/share/limesurvey"> <Directory "${pkg}/share/limesurvey">
<FilesMatch "\.php$"> <FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}"> <If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.listen}|fcgi://localhost/" SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If> </If>
</FilesMatch> </FilesMatch>

View File

@ -225,22 +225,24 @@ in {
serviceConfig.UMask = "0007"; serviceConfig.UMask = "0007";
}; };
services.phpfpm.poolConfigs = let services.phpfpm.pools = let
# workaround for when both are null and need to generate a string, # workaround for when both are null and need to generate a string,
# which is illegal, but as assertions apparently are being triggered *after* config generation, # which is illegal, but as assertions apparently are being triggered *after* config generation,
# we have to avoid already throwing errors at this previous stage. # we have to avoid already throwing errors at this previous stage.
socketOwner = if (cfg.nginx != null) then config.services.nginx.user socketOwner = if (cfg.nginx != null) then config.services.nginx.user
else if (cfg.webServerUser != null) then cfg.webServerUser else ""; else if (cfg.webServerUser != null) then cfg.webServerUser else "";
in { in {
${pool} = '' ${pool} = {
listen = "${phpSocket}" listen = phpSocket;
listen.owner = ${socketOwner} extraConfig = ''
listen.group = root listen.owner = ${socketOwner}
listen.mode = 0600 listen.group = root
user = ${user} listen.mode = 0600
env[PIWIK_USER_PATH] = ${dataDir} user = ${user}
${cfg.phpfpmProcessManagerConfig} env[PIWIK_USER_PATH] = ${dataDir}
''; ${cfg.phpfpmProcessManagerConfig}
'';
};
}; };

View File

@ -312,17 +312,17 @@ in
}; };
poolConfig = mkOption { poolConfig = mkOption {
type = types.lines; type = with types; attrsOf (oneOf [ str int bool ]);
default = '' default = {
pm = dynamic "pm" = "dynamic";
pm.max_children = 32 "pm.max_children" = 32;
pm.start_servers = 2 "pm.start_servers" = 2;
pm.min_spare_servers = 2 "pm.min_spare_servers" = 2;
pm.max_spare_servers = 4 "pm.max_spare_servers" = 4;
pm.max_requests = 500 "pm.max_requests" = 500;
''; };
description = '' description = ''
Options for MediaWiki's PHP pool. See the documentation on <literal>php-fpm.conf</literal> Options for the MediaWiki PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives. for details on configuration directives.
''; '';
}; };
@ -379,17 +379,12 @@ in
}; };
services.phpfpm.pools.mediawiki = { services.phpfpm.pools.mediawiki = {
listen = "/run/phpfpm/mediawiki.sock"; inherit user group;
extraConfig = '' phpEnv.MEDIAWIKI_CONFIG = "${mediawikiConfig}";
listen.owner = ${config.services.httpd.user} settings = {
listen.group = ${config.services.httpd.group} "listen.owner" = config.services.httpd.user;
user = ${user} "listen.group" = config.services.httpd.group;
group = ${group} } // cfg.poolConfig;
env[MEDIAWIKI_CONFIG] = ${mediawikiConfig}
${cfg.poolConfig}
'';
}; };
services.httpd = { services.httpd = {
@ -403,7 +398,7 @@ in
<Directory "${pkg}/share/mediawiki"> <Directory "${pkg}/share/mediawiki">
<FilesMatch "\.php$"> <FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}"> <If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:${fpm.listen}|fcgi://localhost/" SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/"
</If> </If>
</FilesMatch> </FilesMatch>

View File

@ -4,6 +4,7 @@ with lib;
let let
cfg = config.services.nextcloud; cfg = config.services.nextcloud;
fpm = config.services.phpfpm.pools.nextcloud;
phpPackage = pkgs.php73; phpPackage = pkgs.php73;
phpPackages = pkgs.php73Packages; phpPackages = pkgs.php73Packages;
@ -410,25 +411,20 @@ in {
}; };
services.phpfpm = { services.phpfpm = {
pools.nextcloud = let pools.nextcloud = {
phpAdminValues = (toKeyValue user = "nextcloud";
(foldr (a: b: a // b) {} group = "nginx";
(mapAttrsToList (k: v: { "php_admin_value[${k}]" = v; }) phpOptions = phpOptionsExtensions + phpOptionsStr;
phpOptions)));
in {
phpOptions = phpOptionsExtensions;
phpPackage = phpPackage; phpPackage = phpPackage;
listen = "/run/phpfpm/nextcloud"; phpEnv = {
extraConfig = '' NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
listen.owner = nginx PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin";
listen.group = nginx };
user = nextcloud settings = mapAttrs (name: mkDefault) {
group = nginx "listen.owner" = "nginx";
${cfg.poolConfig} "listen.group" = "nginx";
env[NEXTCLOUD_CONFIG_DIR] = ${cfg.home}/config };
env[PATH] = /run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin extraConfig = cfg.poolConfig;
${phpAdminValues}
'';
}; };
}; };
@ -489,7 +485,7 @@ in {
fastcgi_param HTTPS ${if cfg.https then "on" else "off"}; fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
fastcgi_param modHeadersAvailable true; fastcgi_param modHeadersAvailable true;
fastcgi_param front_controller_active true; fastcgi_param front_controller_active true;
fastcgi_pass unix:/run/phpfpm/nextcloud; fastcgi_pass unix:${fpm.socket};
fastcgi_intercept_errors on; fastcgi_intercept_errors on;
fastcgi_request_buffering off; fastcgi_request_buffering off;
fastcgi_read_timeout 120s; fastcgi_read_timeout 120s;

View File

@ -9,11 +9,11 @@ with lib;
let let
cfg = config.services.restya-board; cfg = config.services.restya-board;
fpm = config.services.phpfpm.pools.${poolName};
runDir = "/run/restya-board"; runDir = "/run/restya-board";
poolName = "restya-board"; poolName = "restya-board";
phpfpmSocketName = "/run/phpfpm/${poolName}.sock";
in in
@ -180,7 +180,7 @@ in
services.phpfpm.pools = { services.phpfpm.pools = {
"${poolName}" = { "${poolName}" = {
listen = phpfpmSocketName; inherit (cfg) user group;
phpOptions = '' phpOptions = ''
date.timezone = "CET" date.timezone = "CET"
@ -191,20 +191,18 @@ in
auth_password = ${cfg.email.password} auth_password = ${cfg.email.password}
''} ''}
''; '';
extraConfig = '' settings = mapAttrs (name: mkDefault) {
listen.owner = nginx "listen.owner" = "nginx";
listen.group = nginx "listen.group" = "nginx";
listen.mode = 0600 "listen.mode" = "0600";
user = ${cfg.user} "pm" = "dynamic";
group = ${cfg.group} "pm.max_children" = 75;
pm = dynamic "pm.start_servers" = 10;
pm.max_children = 75 "pm.min_spare_servers" = 5;
pm.start_servers = 10 "pm.max_spare_servers" = 20;
pm.min_spare_servers = 5 "pm.max_requests" = 500;
pm.max_spare_servers = 20 "catch_workers_output" = 1;
pm.max_requests = 500 };
catch_workers_output = 1
'';
}; };
}; };
@ -241,7 +239,7 @@ in
tryFiles = "$uri =404"; tryFiles = "$uri =404";
extraConfig = '' extraConfig = ''
include ${pkgs.nginx}/conf/fastcgi_params; include ${pkgs.nginx}/conf/fastcgi_params;
fastcgi_pass unix:${phpfpmSocketName}; fastcgi_pass unix:${fpm.socket};
fastcgi_index index.php; fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "upload_max_filesize=9G \n post_max_size=9G \n max_execution_time=200 \n max_input_time=200 \n memory_limit=256M"; fastcgi_param PHP_VALUE "upload_max_filesize=9G \n post_max_size=9G \n max_execution_time=200 \n max_input_time=200 \n memory_limit=256M";

View File

@ -4,7 +4,6 @@ let
cfg = config.services.selfoss; cfg = config.services.selfoss;
poolName = "selfoss_pool"; poolName = "selfoss_pool";
phpfpmSocketName = "/run/phpfpm/${poolName}.sock";
dataDir = "/var/lib/selfoss"; dataDir = "/var/lib/selfoss";
@ -116,21 +115,22 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.phpfpm.poolConfigs = mkIf (cfg.pool == "${poolName}") { services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
"${poolName}" = '' "${poolName}" = {
listen = "${phpfpmSocketName}"; user = "nginx";
listen.owner = nginx settings = mapAttrs (name: mkDefault) {
listen.group = nginx "listen.owner" = "nginx";
listen.mode = 0600 "listen.group" = "nginx";
user = nginx "listen.mode" = "0600";
pm = dynamic "pm" = "dynamic";
pm.max_children = 75 "pm.max_children" = 75;
pm.start_servers = 10 "pm.start_servers" = 10;
pm.min_spare_servers = 5 "pm.min_spare_servers" = 5;
pm.max_spare_servers = 20 "pm.max_spare_servers" = 20;
pm.max_requests = 500 "pm.max_requests" = 500;
catch_workers_output = 1 "catch_workers_output" = 1;
''; };
};
}; };
systemd.services.selfoss-config = { systemd.services.selfoss-config = {

View File

@ -521,20 +521,19 @@ let
services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") { services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
"${poolName}" = { "${poolName}" = {
listen = "/var/run/phpfpm/${poolName}.sock"; inherit (cfg) user;
extraConfig = '' settings = mapAttrs (name: mkDefault) {
listen.owner = nginx "listen.owner" = "nginx";
listen.group = nginx "listen.group" = "nginx";
listen.mode = 0600 "listen.mode" = "0600";
user = ${cfg.user} "pm" = "dynamic";
pm = dynamic "pm.max_children" = 75;
pm.max_children = 75 "pm.start_servers" = 10;
pm.start_servers = 10 "pm.min_spare_servers" = 5;
pm.min_spare_servers = 5 "pm.max_spare_servers" = 20;
pm.max_spare_servers = 20 "pm.max_requests" = 500;
pm.max_requests = 500 "catch_workers_output" = 1;
catch_workers_output = 1 };
'';
}; };
}; };
@ -552,7 +551,7 @@ let
locations."~ \.php$" = { locations."~ \.php$" = {
extraConfig = '' extraConfig = ''
fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.listen}; fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
fastcgi_index index.php; fastcgi_index index.php;
''; '';
}; };

View File

@ -216,15 +216,15 @@ let
}; };
poolConfig = mkOption { poolConfig = mkOption {
type = types.lines; type = with types; attrsOf (oneOf [ str int bool ]);
default = '' default = {
pm = dynamic "pm" = "dynamic";
pm.max_children = 32 "pm.max_children" = 32;
pm.start_servers = 2 "pm.start_servers" = 2;
pm.min_spare_servers = 2 "pm.min_spare_servers" = 2;
pm.max_spare_servers = 4 "pm.max_spare_servers" = 4;
pm.max_requests = 500 "pm.max_requests" = 500;
''; };
description = '' description = ''
Options for the WordPress PHP pool. See the documentation on <literal>php-fpm.conf</literal> Options for the WordPress PHP pool. See the documentation on <literal>php-fpm.conf</literal>
for details on configuration directives. for details on configuration directives.
@ -280,15 +280,11 @@ in
services.phpfpm.pools = mapAttrs' (hostName: cfg: ( services.phpfpm.pools = mapAttrs' (hostName: cfg: (
nameValuePair "wordpress-${hostName}" { nameValuePair "wordpress-${hostName}" {
listen = "/run/phpfpm/wordpress-${hostName}.sock"; inherit user group;
extraConfig = '' settings = {
listen.owner = ${config.services.httpd.user} "listen.owner" = config.services.httpd.user;
listen.group = ${config.services.httpd.group} "listen.group" = config.services.httpd.group;
user = ${user} } // cfg.poolConfig;
group = ${group}
${cfg.poolConfig}
'';
} }
)) eachSite; )) eachSite;
@ -303,7 +299,7 @@ in
<Directory "${pkg hostName cfg}/share/wordpress"> <Directory "${pkg hostName cfg}/share/wordpress">
<FilesMatch "\.php$"> <FilesMatch "\.php$">
<If "-f %{REQUEST_FILENAME}"> <If "-f %{REQUEST_FILENAME}">
SetHandler "proxy:unix:/run/phpfpm/wordpress-${hostName}.sock|fcgi://localhost/" SetHandler "proxy:unix:${config.services.phpfpm.pools."wordpress-${hostName}".socket}|fcgi://localhost/"
</If> </If>
</FilesMatch> </FilesMatch>

View File

@ -133,15 +133,15 @@ in
}; };
poolConfig = mkOption { poolConfig = mkOption {
type = types.lines; type = with types; attrsOf (oneOf [ str int bool ]);
default = '' default = {
pm = dynamic "pm" = "dynamic";
pm.max_children = 32 "pm.max_children" = 32;
pm.start_servers = 2 "pm.start_servers" = 2;
pm.min_spare_servers = 2 "pm.min_spare_servers" = 2;
pm.max_spare_servers = 4 "pm.max_spare_servers" = 4;
pm.max_requests = 500 "pm.max_requests" = 500;
''; };
description = '' description = ''
Options for the Zabbix PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives. Options for the Zabbix PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
''; '';
@ -160,6 +160,8 @@ in
]; ];
services.phpfpm.pools.zabbix = { services.phpfpm.pools.zabbix = {
inherit user;
group = config.services.httpd.group;
phpOptions = '' phpOptions = ''
# https://www.zabbix.com/documentation/current/manual/installation/install # https://www.zabbix.com/documentation/current/manual/installation/install
memory_limit = 128M memory_limit = 128M
@ -177,15 +179,11 @@ in
'' + optionalString (cfg.database.type == "oracle") '' '' + optionalString (cfg.database.type == "oracle") ''
extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so extension=${pkgs.phpPackages.oci8}/lib/php/extensions/oci8.so
''; '';
listen = "/run/phpfpm/zabbix.sock"; phpEnv.ZABBIX_CONFIG = zabbixConfig;
extraConfig = '' settings = {
listen.owner = ${config.services.httpd.user}; "listen.owner" = config.services.httpd.user;
listen.group = ${config.services.httpd.group}; "listen.group" = config.services.httpd.group;
user = ${user}; } // cfg.poolConfig;
group = ${config.services.httpd.group};
env[ZABBIX_CONFIG] = ${zabbixConfig}
${cfg.poolConfig}
'';
}; };
services.httpd = { services.httpd = {

View File

@ -4,41 +4,27 @@ with lib;
let let
cfg = config.services.phpfpm; cfg = config.services.phpfpm;
enabled = cfg.poolConfigs != {} || cfg.pools != {};
stateDir = "/run/phpfpm"; runtimeDir = "/run/phpfpm";
poolConfigs = toStr = value:
(mapAttrs mapPoolConfig cfg.poolConfigs) // if true == value then "yes"
(mapAttrs mapPool cfg.pools); else if false == value then "no"
else toString value;
mapPoolConfig = n: p: { fpmCfgFile = pool: poolOpts: pkgs.writeText "phpfpm-${pool}.conf" ''
phpPackage = cfg.phpPackage;
phpOptions = cfg.phpOptions;
config = p;
};
mapPool = n: p: {
phpPackage = p.phpPackage;
phpOptions = p.phpOptions;
config = ''
listen = ${p.listen}
${p.extraConfig}
'';
};
fpmCfgFile = pool: conf: pkgs.writeText "phpfpm-${pool}.conf" ''
[global] [global]
error_log = syslog ${concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings)}
daemonize = no ${optionalString (cfg.extraConfig != null) cfg.extraConfig}
${cfg.extraConfig}
[${pool}] [${pool}]
${conf} ${concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") poolOpts.settings)}
${concatStringsSep "\n" (mapAttrsToList (n: v: "env[${n}] = ${toStr v}") poolOpts.phpEnv)}
${optionalString (poolOpts.extraConfig != null) poolOpts.extraConfig}
''; '';
phpIni = pool: pkgs.runCommand "php.ini" { phpIni = poolOpts: pkgs.runCommand "php.ini" {
inherit (pool) phpPackage phpOptions; inherit (poolOpts) phpPackage phpOptions;
preferLocalBuild = true; preferLocalBuild = true;
nixDefaults = '' nixDefaults = ''
sendmail_path = "/run/wrappers/bin/sendmail -t -i" sendmail_path = "/run/wrappers/bin/sendmail -t -i"
@ -48,13 +34,138 @@ let
cat $phpPackage/etc/php.ini $nixDefaultsPath $phpOptionsPath > $out cat $phpPackage/etc/php.ini $nixDefaultsPath $phpOptionsPath > $out
''; '';
poolOpts = { name, ... }:
let
poolOpts = cfg.pools."${name}";
in
{
options = {
socket = mkOption {
type = types.str;
readOnly = true;
description = ''
Path to the unix socket file on which to accept FastCGI requests.
<note><para>This option is read-only and managed by NixOS.</para></note>
'';
};
listen = mkOption {
type = types.str;
default = "";
example = "/path/to/unix/socket";
description = ''
The address on which to accept FastCGI requests.
'';
};
phpPackage = mkOption {
type = types.package;
default = cfg.phpPackage;
defaultText = "config.services.phpfpm.phpPackage";
description = ''
The PHP package to use for running this PHP-FPM pool.
'';
};
phpOptions = mkOption {
type = types.lines;
default = cfg.phpOptions;
defaultText = "config.services.phpfpm.phpOptions";
description = ''
"Options appended to the PHP configuration file <filename>php.ini</filename> used for this PHP-FPM pool."
'';
};
phpEnv = lib.mkOption {
type = with types; attrsOf str;
default = {};
description = ''
Environment variables used for this PHP-FPM pool.
'';
example = literalExample ''
{
HOSTNAME = "$HOSTNAME";
TMP = "/tmp";
TMPDIR = "/tmp";
TEMP = "/tmp";
}
'';
};
user = mkOption {
type = types.str;
description = "User account under which this pool runs.";
};
group = mkOption {
type = types.str;
description = "Group account under which this pool runs.";
};
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {};
description = ''
PHP-FPM pool directives. Refer to the "List of pool directives" section of
<link xlink:href="https://www.php.net/manual/en/install.fpm.configuration.php"/>
for details. Note that settings names must be enclosed in quotes (e.g.
<literal>"pm.max_children"</literal> instead of <literal>pm.max_children</literal>).
'';
example = literalExample ''
{
"pm" = "dynamic";
"pm.max_children" = 75;
"pm.start_servers" = 10;
"pm.min_spare_servers" = 5;
"pm.max_spare_servers" = 20;
"pm.max_requests" = 500;
}
'';
};
extraConfig = mkOption {
type = with types; nullOr lines;
default = null;
description = ''
Extra lines that go into the pool configuration.
See the documentation on <literal>php-fpm.conf</literal> for
details on configuration directives.
'';
};
};
config = {
socket = if poolOpts.listen == "" then "${runtimeDir}/${name}.sock" else poolOpts.listen;
group = mkDefault poolOpts.user;
settings = mapAttrs (name: mkDefault){
listen = poolOpts.socket;
user = poolOpts.user;
group = poolOpts.group;
};
};
};
in { in {
options = { options = {
services.phpfpm = { services.phpfpm = {
settings = mkOption {
type = with types; attrsOf (oneOf [ str int bool ]);
default = {};
description = ''
PHP-FPM global directives. Refer to the "List of global php-fpm.conf directives" section of
<link xlink:href="https://www.php.net/manual/en/install.fpm.configuration.php"/>
for details. Note that settings names must be enclosed in quotes (e.g.
<literal>"pm.max_children"</literal> instead of <literal>pm.max_children</literal>).
You need not specify the options <literal>error_log</literal> or
<literal>daemonize</literal> here, since they are generated by NixOS.
'';
};
extraConfig = mkOption { extraConfig = mkOption {
type = types.lines; type = with types; nullOr lines;
default = ""; default = null;
description = '' description = ''
Extra configuration that should be put in the global section of Extra configuration that should be put in the global section of
the PHP-FPM configuration file. Do not specify the options the PHP-FPM configuration file. Do not specify the options
@ -80,64 +191,56 @@ in {
'' ''
date.timezone = "CET" date.timezone = "CET"
''; '';
description =
"Options appended to the PHP configuration file <filename>php.ini</filename>.";
};
poolConfigs = mkOption {
default = {};
type = types.attrsOf types.lines;
example = literalExample ''
{ mypool = '''
listen = /run/phpfpm/mypool
user = nobody
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
''';
}
'';
description = '' description = ''
A mapping between PHP-FPM pool names and their configurations. Options appended to the PHP configuration file <filename>php.ini</filename>.
See the documentation on <literal>php-fpm.conf</literal> for
details on configuration directives. If no pools are defined,
the phpfpm service is disabled.
''; '';
}; };
pools = mkOption { pools = mkOption {
type = types.attrsOf (types.submodule (import ./pool-options.nix { type = types.attrsOf (types.submodule poolOpts);
inherit lib config;
}));
default = {}; default = {};
example = literalExample '' example = literalExample ''
{ {
mypool = { mypool = {
listen = "/path/to/unix/socket"; user = "php";
group = "php";
phpPackage = pkgs.php; phpPackage = pkgs.php;
extraConfig = ''' settings = '''
user = nobody "pm" = "dynamic";
pm = dynamic "pm.max_children" = 75;
pm.max_children = 75 "pm.start_servers" = 10;
pm.start_servers = 10 "pm.min_spare_servers" = 5;
pm.min_spare_servers = 5 "pm.max_spare_servers" = 20;
pm.max_spare_servers = 20 "pm.max_requests" = 500;
pm.max_requests = 500
'''; ''';
} }
}''; }'';
description = '' description = ''
PHP-FPM pools. If no pools or poolConfigs are defined, the PHP-FPM PHP-FPM pools. If no pools are defined, the PHP-FPM
service is disabled. service is disabled.
''; '';
}; };
}; };
}; };
config = mkIf enabled { config = mkIf (cfg.pools != {}) {
warnings =
mapAttrsToList (pool: poolOpts: ''
Using config.services.phpfpm.pools.${pool}.listen is deprecated and will become unsupported in a future release. Please reference the read-only option config.services.phpfpm.pools.${pool}.socket to access the path of your socket.
'') (filterAttrs (pool: poolOpts: poolOpts.listen != "") cfg.pools) ++
mapAttrsToList (pool: poolOpts: ''
Using config.services.phpfpm.pools.${pool}.extraConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.phpfpm.pools.${pool}.settings.
'') (filterAttrs (pool: poolOpts: poolOpts.extraConfig != null) cfg.pools) ++
optional (cfg.extraConfig != null) ''
Using config.services.phpfpm.extraConfig is deprecated and will become unsupported in a future release. Please migrate your configuration to config.services.phpfpm.settings.
''
;
services.phpfpm.settings = {
error_log = "syslog";
daemonize = false;
};
systemd.slices.phpfpm = { systemd.slices.phpfpm = {
description = "PHP FastCGI Process manager pools slice"; description = "PHP FastCGI Process manager pools slice";
@ -148,18 +251,15 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
}; };
systemd.services = flip mapAttrs' poolConfigs (pool: poolConfig: systemd.services = mapAttrs' (pool: poolOpts:
nameValuePair "phpfpm-${pool}" { nameValuePair "phpfpm-${pool}" {
description = "PHP FastCGI Process Manager service for pool ${pool}"; description = "PHP FastCGI Process Manager service for pool ${pool}";
after = [ "network.target" ]; after = [ "network.target" ];
wantedBy = [ "phpfpm.target" ]; wantedBy = [ "phpfpm.target" ];
partOf = [ "phpfpm.target" ]; partOf = [ "phpfpm.target" ];
preStart = ''
mkdir -p ${stateDir}
'';
serviceConfig = let serviceConfig = let
cfgFile = fpmCfgFile pool poolConfig.config; cfgFile = fpmCfgFile pool poolOpts;
iniFile = phpIni poolConfig; iniFile = phpIni poolOpts;
in { in {
Slice = "phpfpm.slice"; Slice = "phpfpm.slice";
PrivateDevices = true; PrivateDevices = true;
@ -168,10 +268,12 @@ in {
# XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work # XXX: We need AF_NETLINK to make the sendmail SUID binary from postfix work
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK"; RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
Type = "notify"; Type = "notify";
ExecStart = "${poolConfig.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${iniFile}"; ExecStart = "${poolOpts.phpPackage}/bin/php-fpm -y ${cfgFile} -c ${iniFile}";
ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID";
RuntimeDirectory = "phpfpm";
RuntimeDirectoryPreserve = true; # Relevant when multiple processes are running
}; };
} }
); ) cfg.pools;
}; };
} }

View File

@ -1,57 +0,0 @@
{ lib, config }:
let
fpmCfg = config.services.phpfpm;
in
with lib; {
options = {
listen = mkOption {
type = types.str;
example = "/path/to/unix/socket";
description = ''
The address on which to accept FastCGI requests.
'';
};
phpPackage = mkOption {
type = types.package;
default = fpmCfg.phpPackage;
defaultText = "config.services.phpfpm.phpPackage";
description = ''
The PHP package to use for running this PHP-FPM pool.
'';
};
phpOptions = mkOption {
type = types.lines;
default = fpmCfg.phpOptions;
defaultText = "config.services.phpfpm.phpOptions";
description = ''
"Options appended to the PHP configuration file <filename>php.ini</filename> used for this PHP-FPM pool."
'';
};
extraConfig = mkOption {
type = types.lines;
example = ''
user = nobody
pm = dynamic
pm.max_children = 75
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
'';
description = ''
Extra lines that go into the pool configuration.
See the documentation on <literal>php-fpm.conf</literal> for
details on configuration directives.
'';
};
};
}

View File

@ -29,10 +29,10 @@ let
chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background] [org.gnome.desktop.background]
picture-uri='${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png' picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
[org.gnome.desktop.screensaver] [org.gnome.desktop.screensaver]
picture-uri='${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png' picture-uri='file://${pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom}/share/artwork/gnome/nix-wallpaper-simple-dark-gray_bottom.png'
[org.gnome.shell] [org.gnome.shell]
favorite-apps=[ 'org.gnome.Epiphany.desktop', 'evolution.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ] favorite-apps=[ 'org.gnome.Epiphany.desktop', 'evolution.desktop', 'org.gnome.Music.desktop', 'org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]

View File

@ -104,6 +104,18 @@ in {
''; '';
}; };
onBoot = mkOption {
type = types.enum ["start" "ignore" ];
default = "start";
description = ''
Specifies the action to be done to / on the guests when the host boots.
The "start" option starts all guests that were running prior to shutdown
regardless of their autostart settings. The "ignore" option will not
start the formally running guest on boot. However, any guest marked as
autostart will still be automatically started by libvirtd.
'';
};
onShutdown = mkOption { onShutdown = mkOption {
type = types.enum ["shutdown" "suspend" ]; type = types.enum ["shutdown" "suspend" ];
default = "suspend"; default = "suspend";
@ -221,6 +233,7 @@ in {
path = with pkgs; [ coreutils libvirt gawk ]; path = with pkgs; [ coreutils libvirt gawk ];
restartIfChanged = false; restartIfChanged = false;
environment.ON_BOOT = "${cfg.onBoot}";
environment.ON_SHUTDOWN = "${cfg.onShutdown}"; environment.ON_SHUTDOWN = "${cfg.onShutdown}";
}; };

View File

@ -14,9 +14,9 @@ let
}; };
betaVersion = stableVersion; betaVersion = stableVersion;
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.6.0.6"; # "Android Studio 3.6 Canary 6" version = "3.6.0.7"; # "Android Studio 3.6 Canary 7"
build = "192.5787298"; build = "192.5807797";
sha256Hash = "1rri8b5nkxj65hq13s5d31fy08llf3ad9s5mn56ridd4nsy2c5df"; sha256Hash = "1l47miiyd8z7v0hbvda06953pp9ilyrsma83gxqx35ghnc0n7g81";
}; };
in rec { in rec {
# Attributes are named by their corresponding release channels # Attributes are named by their corresponding release channels

View File

@ -15,15 +15,19 @@
, libuv , libuv
, libzen , libzen
, lsb-release , lsb-release
, mkDerivation
, pkgconfig , pkgconfig
, qt5 , qmake
, qtbase
, qtsvg
, qttools
, sqlite , sqlite
, swig , swig
, unzip , unzip
, wget , wget
}: }:
stdenv.mkDerivation rec { mkDerivation rec {
pname = "megasync"; pname = "megasync";
version = "4.1.1.0"; version = "4.1.1.0";
@ -41,8 +45,8 @@ stdenv.mkDerivation rec {
doxygen doxygen
lsb-release lsb-release
pkgconfig pkgconfig
qt5.qmake qmake
qt5.qttools qttools
swig swig
]; ];
buildInputs = [ buildInputs = [
@ -57,8 +61,8 @@ stdenv.mkDerivation rec {
libtool libtool
libuv libuv
libzen libzen
qt5.qtbase qtbase
qt5.qtsvg qtsvg
sqlite sqlite
unzip unzip
wget wget

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "netsurf-buildsystem"; pname = "netsurf-buildsystem";
version = "1.7"; version = "1.8";
src = fetchurl { src = fetchurl {
url = "http://download.netsurf-browser.org/libs/releases/buildsystem-${version}.tar.gz"; url = "http://download.netsurf-browser.org/libs/releases/buildsystem-${version}.tar.gz";
sha256 = "1q23aaycv35ma5471l1gxib8lfq2s9kprrkaqgfc926d04rlbmhw"; sha256 = "0ffdjwskxlnh8sk40qqfgksbb1nrdzfxsshrscra0p4nqpkj98z6";
}; };
makeFlags = [ makeFlags = [

View File

@ -0,0 +1,38 @@
{ appimageTools, fetchurl, lib }:
let
pname = "irccloud";
version = "0.13.0";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/irccloud/irccloud-desktop/releases/download/v${version}/IRCCloud-${version}-linux-x86_64.AppImage";
sha256 = "0ff69m5jav2c90918avsr5wvik2gds3klij3dzhkb352fgrd1s0l";
};
appimageContents = appimageTools.extractType2 {
inherit name src;
};
in appimageTools.wrapType2 rec {
inherit name src;
extraPkgs = pkgs: with pkgs; [ at-spi2-core ];
extraInstallCommands = ''
mv $out/bin/${name} $out/bin/${pname}
install -m 444 -D ${appimageContents}/irccloud.desktop $out/share/applications/irccloud.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/512x512/apps/irccloud.png \
$out/share/icons/hicolor/512x512/apps/irccloud.png
substituteInPlace $out/share/applications/irccloud.desktop \
--replace 'Exec=AppRun' 'Exec=${pname}'
'';
meta = with lib; {
description = "A desktop client for IRCCloud";
homepage = "https://www.irccloud.com";
license = licenses.asl20;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ lightbulbjim ];
};
}

View File

@ -6,7 +6,7 @@
}; };
weechat-matrix-bridge = callPackage ./weechat-matrix-bridge { weechat-matrix-bridge = callPackage ./weechat-matrix-bridge {
inherit (luaPackages) cjson; inherit (luaPackages) cjson luaffi;
}; };
wee-slack = callPackage ./wee-slack { wee-slack = callPackage ./wee-slack {

View File

@ -31,9 +31,9 @@ stdenv.mkDerivation {
mkdir -p $out/{share,lib} mkdir -p $out/{share,lib}
cp {matrix.lua,olm.lua} $out/share cp {matrix.lua,olm.lua} $out/share
cp ${cjson}/lib/lua/5.2/cjson.so $out/lib/cjson.so cp ${cjson}/lib/lua/${cjson.lua.luaversion}/cjson.so $out/lib/cjson.so
cp ${olm}/lib/libolm.so $out/lib/libolm.so cp ${olm}/lib/libolm.so $out/lib/libolm.so
cp ${luaffi}/lib/ffi.so $out/lib/ffi.so cp ${luaffi}/lib/lua/${luaffi.lua.luaversion}/ffi.so $out/lib/ffi.so
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,4 +1,19 @@
{ stdenv, pkgconfig, python3, fetchhg, gtk3, glib, gdbm, gtkspell3, itstool, libappindicator-gtk3, perlPackages, glibcLocales, meson, ninja }: { stdenv
, pkgconfig
, python3
, fetchhg
, gtk3
, glib
, gdbm
, gtkspell3
, ofono
, itstool
, libappindicator-gtk3
, perlPackages
, glibcLocales
, meson
, ninja
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "modem-manager-gui"; pname = "modem-manager-gui";
@ -10,14 +25,11 @@ stdenv.mkDerivation rec {
sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd"; sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd";
}; };
LC_ALL = "en_US.utf-8";
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig pkgconfig
python3 python3
perlPackages.Po4a perlPackages.Po4a
itstool itstool
glibcLocales
meson meson
ninja ninja
]; ];
@ -27,6 +39,7 @@ stdenv.mkDerivation rec {
glib glib
gdbm gdbm
gtkspell3 gtkspell3
ofono
libappindicator-gtk3 libappindicator-gtk3
]; ];

View File

@ -1,9 +1,9 @@
{ mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg_utils, dbus { mkDerivation, lib, fetchurl, autoPatchelfHook, makeWrapper, xdg_utils, dbus
, qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc, libXrandr, libX11 , qtbase, qtwebkit, qtx11extras, qtquickcontrols, glibc
, libXrandr, libX11, libXext, libXdamage, libXtst, libSM, libXfixes
, wrapQtAppsHook , wrapQtAppsHook
}: }:
mkDerivation rec { mkDerivation rec {
pname = "teamviewer"; pname = "teamviewer";
version = "14.5.1691"; version = "14.5.1691";
@ -44,8 +44,11 @@ mkDerivation rec {
--replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2' --replace '/lib64/ld-linux-x86-64.so.2' '${glibc.out}/lib/ld-linux-x86-64.so.2'
substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \ substituteInPlace $out/share/teamviewer/tv_bin/script/tvw_config \
--replace '/var/run/' '/run/' --replace '/var/run/' '/run/'
wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" wrapProgram $out/share/teamviewer/tv_bin/script/teamviewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}" wrapProgram $out/share/teamviewer/tv_bin/teamviewerd --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libXrandr libX11 ]}"
wrapProgram $out/share/teamviewer/tv_bin/TeamViewer_Desktop --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [libXrandr libX11 libXext libXdamage libXtst libSM libXfixes ]}"
wrapQtApp $out/bin/teamviewer wrapQtApp $out/bin/teamviewer
''; '';

View File

@ -0,0 +1,43 @@
{ stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }:
stdenv.mkDerivation rec {
pname = "sumorobot-manager";
version = "0.9.0";
src = fetchFromGitHub {
owner = "robokoding";
repo = pname;
rev = "v${version}";
sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr";
};
buildInputs = [ python3 ];
pythonPath = [
pyqt5 pyserial
];
nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ];
buildPhase = "true";
installPhase = ''
mkdir -p $out/opt/sumorobot-manager
cp -r main.py lib res $out/opt/sumorobot-manager
chmod -R 644 $out/opt/sumorobot-manager/lib/*
mkdir $out/bin
makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \
--run "cd $out/opt/sumorobot-manager"
'';
preFixup = ''
patchShebangs $out/opt/sumorobot-manager/main.py
wrapPythonProgramsIn "$out/opt" "$pythonPath"
'';
meta = with stdenv.lib; {
description = "Desktop App for managing SumoRobots";
homepage = "https://www.robokoding.com/kits/sumorobot/sumomanager/";
license = licenses.mit;
maintainers = with maintainers; [ abbradar ];
};
}

View File

@ -0,0 +1,66 @@
{ autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, gnome2, gtk2, kcoreaddons, ki18n, kio, kservice, lib, qt4, qt511, qtbase, stdenv, runtimeShell }:
stdenv.mkDerivation rec {
pname = "bcompare";
version = "4.2.10.23938";
src = fetchurl {
url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
sha256 = "1825s1lbaj20d712czmaaqg7mkwfb650r53af2y30j29p6yd4wal";
};
unpackPhase = ''
ar x $src
tar xfz data.tar.gz
'';
installPhase = ''
mkdir -p $out/bin $out/lib $out/share
cp -R usr/share $out/
cp -R usr/lib $out/
cp -R usr/bin $out/
# Remove library that refuses to be autoPatchelf'ed
rm $out/lib/beyondcompare/ext/bcompare_ext_kde.amd64.so
substituteInPlace $out/bin/bcompare \
--replace "/usr/lib/beyondcompare" "$out/lib/beyondcompare" \
--replace "/bin/bash" "${runtimeShell}"
# Create symlink bzip2 library
ln -s ${bzip2.out}/lib/libbz2.so.1 $out/lib/beyondcompare/libbz2.so.1.0
'';
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
stdenv.cc.cc.lib
gtk2
gnome2.pango
cairo
kio
kservice
ki18n
kcoreaddons
gdk-pixbuf
qt4
bzip2
];
dontBuild = true;
dontConfigure = true;
meta = with stdenv.lib; {
description = "GUI application that allows to quickly and easily compare files and folders";
longDescription = ''
Beyond Compare is focused. Beyond Compare allows you to quickly and easily compare your files and folders.
By using simple, powerful commands you can focus on the differences you're interested in and ignore those you're not.
You can then merge the changes, synchronize your files, and generate reports for your records.
'';
homepage = "https://www.scootersoftware.com";
license = licenses.unfree;
maintainers = [ maintainers.ktor ];
platforms = [ "x86_64-linux" ];
};
}

View File

@ -121,6 +121,8 @@ let
git-stree = callPackage ./git-stree { }; git-stree = callPackage ./git-stree { };
git-subrepo = callPackage ./git-subrepo { };
git-sync = callPackage ./git-sync { }; git-sync = callPackage ./git-sync { };
git-test = callPackage ./git-test { }; git-test = callPackage ./git-test { };

View File

@ -0,0 +1,58 @@
{ stdenv, fetchFromGitHub, git, makeWrapper, which }:
stdenv.mkDerivation rec {
pname = "git-subrepo";
version = "0.4.0";
src = fetchFromGitHub {
owner = "ingydotnet";
repo = "git-subrepo";
rev = version;
sha256 = "05m2dm9gq2nggwnxxdyq2kjj584sn2lxk66pr1qhjxnk81awj9l7";
};
nativeBuildInputs = [
makeWrapper
which
];
buildInputs = [
git
];
makeFlags = [
"PREFIX=${placeholder ''out''}"
"INSTALL_LIB=${placeholder ''out''}/bin"
"INSTALL_MAN=${placeholder ''out''}/share/man/man1"
];
patches = [
# Allow zsh completion to work even though we aren't installing from a git
# clone. Also submitted upstream as
# https://github.com/ingydotnet/git-subrepo/pull/420
./zsh-completion.patch
];
postInstall = ''
ZSH_COMP_DIR="$out/share/zsh/vendor-completions"
mkdir -p "$ZSH_COMP_DIR"
cp share/zsh-completion/_git-subrepo "$ZSH_COMP_DIR/"
BASH_COMP_DIR="$out/share/bash-completion/completions"
mkdir -p "$BASH_COMP_DIR"
cp share/completion.bash "$BASH_COMP_DIR/git-subrepo"
'';
postFixup = ''
wrapProgram $out/bin/git-subrepo \
--prefix PATH : "${git}/bin"
'';
meta = with stdenv.lib; {
homepage = https://github.com/ingydotnet/git-subrepo;
description = "Git submodule alternative";
license = licenses.mit;
platforms = platforms.linux;
maintainers = [ maintainers.ryantrinkle ];
};
}

View File

@ -0,0 +1,32 @@
diff --git a/pkg/bin/generate-completion.pl b/pkg/bin/generate-completion.pl
index 85ae3b8..d3e423c 100644
--- a/pkg/bin/generate-completion.pl
+++ b/pkg/bin/generate-completion.pl
@@ -82,11 +82,6 @@ sub generate_zsh {
# DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
-if [[ -z $GIT_SUBREPO_ROOT ]]; then
- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
- return 3
-fi
-
_git-subrepo() {
typeset -A opt_args
local curcontext="$curcontext" state line context
diff --git a/share/zsh-completion/_git-subrepo b/share/zsh-completion/_git-subrepo
index fc82be2..a8069d9 100644
--- a/share/zsh-completion/_git-subrepo
+++ b/share/zsh-completion/_git-subrepo
@@ -3,11 +3,6 @@
# DO NOT EDIT. This file generated by pkg/bin/generate-completion.pl.
-if [[ -z $GIT_SUBREPO_ROOT ]]; then
- echo 'GIT_SUBREPO_ROOT is null; has `/path/to/git-subrepo/.rc` been sourced?'
- return 3
-fi
-
_git-subrepo() {
typeset -A opt_args
local curcontext="$curcontext" state line context

View File

@ -5,15 +5,13 @@
, libXinerama, libXext, xwininfo, libxdg_basedir }: , libXinerama, libXext, xwininfo, libxdg_basedir }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "compton"; pname = "compton";
version = "7"; version = "7.2";
COMPTON_VERSION = "v${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "yshui"; owner = "yshui";
repo = "compton"; repo = "compton";
rev = COMPTON_VERSION; rev = "v${version}";
sha256 = "0f23dv2p1snlpzc91v38q6896ncz4zqzmh2d97yf66j78g21awas"; sha256 = "1vwa5f0nifc1913diqd6cp5k1dlfyc2ijxbcdj1s37ywpx6c63c3";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -42,11 +40,6 @@ stdenv.mkDerivation rec {
"-Dbuild_docs=true" "-Dbuild_docs=true"
]; ];
preBuild = ''
git() { echo "$COMPTON_VERSION"; }
export -f git
'';
installFlags = [ "PREFIX=$(out)" ]; installFlags = [ "PREFIX=$(out)" ];
postInstall = '' postInstall = ''

View File

@ -1,15 +1,67 @@
{ fetchurl, stdenv, substituteAll, meson, ninja, pkgconfig, gnome3, ibus, gettext, upower, wrapGAppsHook { fetchurl
, libcanberra-gtk3, accountsservice, libpwquality, libpulseaudio , stdenv
, gdk-pixbuf, librsvg, libgudev, libsecret, gnome-color-manager , substituteAll
, libxml2, polkit, libxslt, libgtop, libsoup, colord, colord-gtk , accountsservice
, libkrb5, networkmanagerapplet, networkmanager, glibc , adwaita-icon-theme
, libwacom, samba, shared-mime-info, tzdata, libgnomekbd , cheese
, docbook_xsl, modemmanager, clutter, clutter-gtk, cheese, gnome-session , clutter
, fontconfig, sound-theme-freedesktop, grilo, python3 , clutter-gtk
, gtk3, glib, glib-networking, gsettings-desktop-schemas , colord
, gnome-desktop, gnome-settings-daemon, gnome-online-accounts , colord-gtk
, vino, gnome-bluetooth, tracker, adwaita-icon-theme , cups
, udisks2, gsound, libhandy, cups, mutter }: , docbook_xsl
, fontconfig
, gdk-pixbuf
, gettext
, glib
, glib-networking
, glibc
, gnome-bluetooth
, gnome-color-manager
, gnome-desktop
, gnome-online-accounts
, gnome-session
, gnome-settings-daemon
, gnome3
, grilo
, grilo-plugins
, gsettings-desktop-schemas
, gsound
, gtk3
, ibus
, libcanberra-gtk3
, libgnomekbd
, libgtop
, libgudev
, libhandy
, libkrb5
, libpulseaudio
, libpwquality
, librsvg
, libsecret
, libsoup
, libwacom
, libxml2
, libxslt
, meson
, modemmanager
, mutter
, networkmanager
, networkmanagerapplet
, ninja
, pkgconfig
, polkit
, python3
, samba
, shared-mime-info
, sound-theme-freedesktop
, tracker
, tzdata
, udisks2
, upower
, vino
, wrapGAppsHook
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "gnome-control-center"; pname = "gnome-control-center";
@ -21,20 +73,61 @@ stdenv.mkDerivation rec {
}; };
nativeBuildInputs = [ nativeBuildInputs = [
meson ninja pkgconfig gettext wrapGAppsHook libxslt docbook_xsl docbook_xsl
shared-mime-info python3 gettext
libxslt
meson
ninja
pkgconfig
python3
shared-mime-info
wrapGAppsHook
]; ];
buildInputs = [ buildInputs = [
ibus gtk3 glib glib-networking upower gsettings-desktop-schemas accountsservice
libxml2 gnome-desktop gnome-settings-daemon polkit libgtop adwaita-icon-theme
gnome-online-accounts libsoup colord libpulseaudio fontconfig colord-gtk cheese
accountsservice libkrb5 networkmanagerapplet libwacom samba clutter
grilo libpwquality vino libcanberra-gtk3 libgudev libsecret clutter-gtk
gdk-pixbuf adwaita-icon-theme librsvg clutter clutter-gtk cheese colord
networkmanager modemmanager gnome-bluetooth tracker colord-gtk
udisks2 gsound libhandy fontconfig
gdk-pixbuf
glib
glib-networking
gnome-bluetooth
gnome-desktop
gnome-online-accounts
gnome-settings-daemon
grilo
grilo-plugins # for setting wallpaper from Flickr
gsettings-desktop-schemas
gsound
gtk3
ibus
libcanberra-gtk3
libgtop
libgudev
libhandy
libkrb5
libpulseaudio
libpwquality
librsvg
libsecret
libsoup
libwacom
libxml2
modemmanager
mutter # schemas for the keybindings mutter # schemas for the keybindings
networkmanager
networkmanagerapplet
polkit
samba
tracker
udisks2
upower
vino
]; ];
patches = [ patches = [

View File

@ -44,7 +44,7 @@ runCommand "elementary-gsettings-desktop-schemas" {}
cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF cat - > $out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas/nixos-defaults.gschema.override <<- EOF
[org.gnome.desktop.background] [org.gnome.desktop.background]
picture-uri='${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png' picture-uri='file://${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png'
primary-color='#000000' primary-color='#000000'
${extraGSettingsOverrides} ${extraGSettingsOverrides}

View File

@ -30,11 +30,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "go"; pname = "go";
version = "1.11.12"; version = "1.11.13";
src = fetchurl { src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz"; url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "09k9zmq7hhgg0bf1y7rwa0kn7q1vkkr94cmg2iv9lq3najh5nykd"; sha256 = "0xj0pbviikdf8g0sfz5hwxf7hwz8b8g5akqnrvyclhgnsdghjcjh";
}; };
# perl is used for testing go vet # perl is used for testing go vet

View File

@ -30,11 +30,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "go"; pname = "go";
version = "1.12.7"; version = "1.12.9";
src = fetchurl { src = fetchurl {
url = "https://dl.google.com/go/go${version}.src.tar.gz"; url = "https://dl.google.com/go/go${version}.src.tar.gz";
sha256 = "04rvwj69gmw3bz8pw5pf10r21ar0pgpnswp15nkddf04dxyl9s4m"; sha256 = "1z32imbwmpkzgyh5c3vi7rbvzbq94xjk5qi2xm9sccj7kknmc3mb";
}; };
# perl is used for testing go vet # perl is used for testing go vet

View File

@ -3,26 +3,26 @@
let let
graalvm8-ee = stdenv.mkDerivation rec { graalvm8-ee = stdenv.mkDerivation rec {
pname = "graalvm8-ee"; pname = "graalvm8-ee";
version = "19.1.1"; version = "19.2.0";
srcs = [ srcs = [
(requireFile { (requireFile {
name = "graalvm-ee-linux-amd64-${version}.tar.gz"; name = "graalvm-ee-linux-amd64-${version}.tar.gz";
sha256 = "1ayg4chiw08jbrivmsylh6275sn0ygzc0iaic28fk7hhw5dc6r2f"; sha256 = "1j56lyids48zyjhxk8xl4niy8hk6qzi1aj7c55yfh62id8v6cpbw";
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
}) })
(requireFile { (requireFile {
name = "native-image-installable-svm-svmee-linux-amd64-${version}.jar"; name = "native-image-installable-svm-svmee-linux-amd64-${version}.jar";
sha256 = "1mvc4id193gl482fnjcgh4dz29ifqwigqq68ib0i1p3ks1nnj717"; sha256 = "07c25l27msxccqrbz4bknz0sxsl0z2k8990cdfkbrgxvhxspfnnm";
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
}) })
(requireFile { (requireFile {
name = "python-installable-svm-svmee-linux-amd64-${version}.jar"; name = "python-installable-svm-svmee-linux-amd64-${version}.jar";
sha256 = "0q7sggqk5myad053dsfw2i1n8v4wspahg1ac7zr3y3srqvdb0xfp"; sha256 = "1c7kpz56w9p418li97ymixdwywscr85vhn7jkzxq71bj7ia7pxwz";
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
}) })
(requireFile { (requireFile {
name = "ruby-installable-svm-svmee-linux-amd64-${version}.jar"; name = "ruby-installable-svm-svmee-linux-amd64-${version}.jar";
sha256 = "1xax1bg155d74jhv7h0qb7vbc95jy4wm4bvbpvr76ivzn7qaml6j"; sha256 = "13jfm5qpxqxz7f5n9yyvqrv1vwigifrjwk3hssp23maski2ssys1";
url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html"; url = "https://www.oracle.com/technetwork/graalvm/downloads/index.html";
}) })
]; ];

View File

@ -1,9 +1,10 @@
{ stdenv, fetchzip, boost, cmake, ncurses, python2 { stdenv, fetchzip, boost, cmake, ncurses, python2
, z3Support ? true, z3 ? null , z3Support ? true, z3 ? null, cvc4Support ? true, cvc4 ? null
, cln ? null, gmp ? null
}: }:
assert z3Support -> z3 != null; assert z3Support -> z3 != null && stdenv.lib.versionAtLeast z3.version "4.6.0";
assert z3Support -> stdenv.lib.versionAtLeast z3.version "4.6.0"; assert cvc4Support -> cvc4 != null && cln != null && gmp != null;
let let
jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz; jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz;
@ -16,12 +17,12 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "solc"; pname = "solc";
version = "0.5.10"; version = "0.5.11";
# upstream suggests avoid using archive generated by github # upstream suggests avoid using archive generated by github
src = fetchzip { src = fetchzip {
url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz"; url = "https://github.com/ethereum/solidity/releases/download/v${version}/solidity_${version}.tar.gz";
sha256 = "1ns562h8blvv32lz462rf5835fs2hgn698mvi6ss5y7ar6k5y5xw"; sha256 = "0679s5pqbfy7fgpb4f3ppgj8iafxb64g046v8vhp29mf3dsdcnyl";
}; };
patches = stdenv.lib.optionals buildSharedLibs [ ./patches/shared-libs-install.patch ]; patches = stdenv.lib.optionals buildSharedLibs [ ./patches/shared-libs-install.patch ];
@ -37,10 +38,14 @@ stdenv.mkDerivation rec {
"-DBUILD_SHARED_LIBS=ON" "-DBUILD_SHARED_LIBS=ON"
] ++ stdenv.lib.optionals (!z3Support) [ ] ++ stdenv.lib.optionals (!z3Support) [
"-DUSE_Z3=OFF" "-DUSE_Z3=OFF"
] ++ stdenv.lib.optionals (!cvc4Support) [
"-DUSE_CVC4=OFF"
]; ];
nativeBuildInputs = [ cmake ]; nativeBuildInputs = [ cmake ];
buildInputs = [ boost ] ++ stdenv.lib.optionals z3Support [ z3 ]; buildInputs = [ boost ]
++ stdenv.lib.optionals z3Support [ z3 ]
++ stdenv.lib.optionals cvc4Support [ cvc4 cln gmp ];
checkInputs = [ ncurses python2 ]; checkInputs = [ ncurses python2 ];
# Test fails on darwin for unclear reason # Test fails on darwin for unclear reason

View File

@ -1,684 +0,0 @@
diff --git a/Cargo.lock b/Cargo.lock
new file mode 100644
index 0000000..edf585d
--- /dev/null
+++ b/Cargo.lock
@@ -0,0 +1,661 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "aho-corasick"
+version = "0.6.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "approx"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "argon2rs"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "arrayvec"
+version = "0.4.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "autocfg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "backtrace"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "backtrace-sys"
+version = "0.1.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "base64"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "blake2-rfc"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "byteorder"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "cc"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "cgmath"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "colored"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winconsole 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "dirs"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "evcxr"
+version = "0.3.3"
+dependencies = [
+ "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "json 0.11.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "sig 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "evcxr_repl"
+version = "0.3.3"
+dependencies = [
+ "colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "evcxr 0.3.3",
+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustyline 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "evcxr_runtime"
+version = "1.1.0"
+dependencies = [
+ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "failure"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "failure_derive"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "json"
+version = "0.11.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "lazy_static"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "libc"
+version = "0.2.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "libloading"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "log"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "memchr"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "nix"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "bitflags 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)",
+ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "nodrop"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "proc-macro2"
+version = "0.4.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "quote"
+version = "0.6.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_jitter"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_os"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.54"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "redox_users"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "regex"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "rgb"
+version = "0.8.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "rustyline"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+ "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "sig"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "syn"
+version = "0.15.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "synstructure"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
+ "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
+ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
+ "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
+ "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "thread_local"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "ucd-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "unicode-xid"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "utf8-ranges"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "utf8parse"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "void"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+
+[[package]]
+name = "winconsole"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)",
+ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
+[metadata]
+"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
+"checksum approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "08abcc3b4e9339e33a3d0a5ed15d84a687350c05689d825e0f6655eef9e76a94"
+"checksum argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392"
+"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71"
+"checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
+"checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637"
+"checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
+"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
+"checksum bitflags 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bd1fa8ad26490b0a5cfec99089952250301b6716cdeaa7c9ab229598fb82ab66"
+"checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
+"checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb"
+"checksum cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" = "a0c56216487bb80eec9c4516337b2588a4f2a2290d72a1416d930e4dcdb0c90d"
+"checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
+"checksum cgmath 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "64a4b57c8f4e3a2e9ac07e0f6abc9c24b6fc9e1b54c3478cfb598f3d0023e51c"
+"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+"checksum colored 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cdb90b60f2927f8d76139c72dbde7e10c3a2bc47c8594c9c7a66529f2687c03"
+"checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e"
+"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
+"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
+"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+"checksum json 0.11.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9ad0485404155f45cce53a40d4b2d6ac356418300daed05273d9e26f91c390be"
+"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
+"checksum libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)" = "c6785aa7dd976f5fbf3b71cfd9cd49d7f783c1ff565a858d71031c6c313aa5c6"
+"checksum libloading 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3ad660d7cb8c5822cd83d10897b0f1f1526792737a179e73896152f85b88c2"
+"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
+"checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17"
+"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
+"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
+"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
+"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db"
+"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
+"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252"
+"checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828"
+"checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f"
+"checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96"
+"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
+"checksum rgb 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4f089652ca87f5a82a62935ec6172a534066c7b97be003cc8f702ee9a7a59c92"
+"checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288"
+"checksum rustyline 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "eb02ba7748691403057542ee60a1e7688fdfb46bd3bee752b8977537ee003ae2"
+"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+"checksum sig 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6567e29578f9bfade6a5d94a32b9a4256348358d2a3f448cab0021f9a02614a2"
+"checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec"
+"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
+"checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a"
+"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
+"checksum unicode-segmentation 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aa6024fc12ddfd1c6dbc14a80fa2324d4568849869b779f6bd37e5e4c03344d1"
+"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
+"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
+"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
+"checksum utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d"
+"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
+"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+"checksum winconsole 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ef84b96d10db72dd980056666d7f1e7663ce93d82fa33b63e71c966f4cf5032"
diff --git a/Cargo.toml b/Cargo.toml
index d09a342..5377ed0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,10 +2,9 @@
members = [
"evcxr",
"evcxr_repl",
- "evcxr_jupyter",
"evcxr_runtime",
]
exclude = [
"runtimes"
-]
\ No newline at end of file
+]

View File

@ -1,21 +1,20 @@
{ cargo, fetchFromGitHub, makeWrapper, pkgconfig, rustPlatform, stdenv, gcc, Security }: { cargo, fetchFromGitHub, makeWrapper, pkgconfig, rustPlatform, stdenv, gcc, Security, zeromq }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
name = "evcxr-${version}"; pname = "evcxr";
version = "0.3.3"; version = "0.4.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "google"; owner = "google";
repo = "evcxr"; repo = "evcxr";
rev = "ae07ccf08723b7aec0de57d540822b89088ca036"; rev = "v${version}";
sha256 = "1apc93z9vvf6qks5x2pad45rnrj9kjl812rj78w5zmmizccp2fhf"; sha256 = "08zsdl6pkg6dx7k0ns8cd070v7ydsxkscd2ms8wh9r68c08vwzcp";
}; };
cargoSha256 = "153pxqj4jhlbacr7607q9yfw6h96ns5igbvssis8j3gn0xp6ssg6"; cargoSha256 = "1hqlagwl94xcybfqq5h2mrz9296mjns2l598d6jclls7ac5wsdfc";
cargoPatches = [ ./cargo-lock.patch ];
nativeBuildInputs = [ pkgconfig makeWrapper ]; nativeBuildInputs = [ pkgconfig makeWrapper ];
buildInputs = [ cargo ] ++ stdenv.lib.optional stdenv.isDarwin Security; buildInputs = [ zeromq ] ++ stdenv.lib.optional stdenv.isDarwin Security;
postInstall = '' postInstall = ''
wrapProgram $out/bin/evcxr --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]} wrapProgram $out/bin/evcxr --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]}
rm $out/bin/testing_runtime rm $out/bin/testing_runtime

View File

@ -0,0 +1,23 @@
{ stdenv, fetchFromGitHub, cmake, boost } :
stdenv.mkDerivation rec {
pname = "cm256cc";
version = "1.0.5";
src = fetchFromGitHub {
owner = "f4exb";
repo = "cm256cc";
rev = "v${version}";
sha256 = "0d16y3lhdwr644am4sxqpshpbc3qik6dgr1w2c39vy75w9ff61a0";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ boost ];
meta = with stdenv.lib; {
description = "Fast GF(256) Cauchy MDS Block Erasure Codec in C++";
homepage = "https://github.com/f4exb/cm256cc";
platforms = platforms.linux;
maintainers = with maintainers; [ alkeryn ];
};
}

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "graphene-hardened-malloc"; pname = "graphene-hardened-malloc";
version = "1"; version = "2";
src = fetchurl { src = fetchurl {
url = "https://github.com/GrapheneOS/hardened_malloc/archive/${version}.tar.gz"; url = "https://github.com/GrapheneOS/hardened_malloc/archive/${version}.tar.gz";
sha256 = "1z3kb9fr6w9fcdc42bh8k5b4r10sn5hrwwk4m691qjdgk5hlj3aa"; sha256 = "0zsl4vl65ic6lw5rzcjzvcxg8makg683abnwvy60zfap8hvijvjb";
}; };
installPhase = '' installPhase = ''

View File

@ -312,6 +312,17 @@ in rec {
}; };
}; };
en-au = mkDictFromWordlist {
shortName = "en-au";
shortDescription = "English (Australia)";
dictFileName = "en_AU";
src = fetchurl {
url = mirror://sourceforge/wordlist/speller/2018.04.16/hunspell-en_AU-2018.04.16.zip;
sha256 = "1kp06npl1kd05mm9r52cg2iwc13x02zwqgpibdw15b6x43agg6f5";
};
};
en_AU = en-au;
en_GB-ise = en-gb-ise; en_GB-ise = en-gb-ise;
en-gb-ise = mkDictFromWordlist { en-gb-ise = mkDictFromWordlist {
shortName = "en-gb-ise"; shortName = "en-gb-ise";

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libcacard"; pname = "libcacard";
version = "2.6.1"; version = "2.7.0";
src = fetchurl { src = fetchurl {
url = "https://www.spice-space.org/download/libcacard/${pname}-${version}.tar.xz"; url = "https://www.spice-space.org/download/libcacard/${pname}-${version}.tar.xz";
sha256 = "1w6y0kiakhg7dgyf8yqpm4jj6jiv17zhy9lp3d7z32q1pniccxk2"; sha256 = "0vyvkk4b6xjwq1ccggql13c1x7g4y90clpkqw28257azgn2a1c8n";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];

View File

@ -2,7 +2,7 @@
, gtk-doc, docbook_xsl, docbook_xml_dtd_43, glibcLocales, dbus, xvfb_run, glib, gtk3, gnome3 }: , gtk-doc, docbook_xsl, docbook_xml_dtd_43, glibcLocales, dbus, xvfb_run, glib, gtk3, gnome3 }:
let let
version = "3.32.2"; version = "3.32.3";
pname = "libdazzle"; pname = "libdazzle";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
@ -13,7 +13,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/libdazzle/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; url = "mirror://gnome/sources/libdazzle/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "0hgi7gnkna9n42nh7p81crrw0jjj22yr8acych60wxh6hzxqsgs1"; sha256 = "1s37hv12ikfzhvh86qzgmfcjm3wvp12l2vsr0whl5xmm2harp3bc";
}; };
nativeBuildInputs = [ ninja meson pkgconfig vala gobject-introspection libxml2 gtk-doc docbook_xsl docbook_xml_dtd_43 glibcLocales dbus xvfb_run ]; nativeBuildInputs = [ ninja meson pkgconfig vala gobject-introspection libxml2 gtk-doc docbook_xsl docbook_xml_dtd_43 glibcLocales dbus xvfb_run ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "libgig"; pname = "libgig";
version = "4.1.0"; version = "4.2.0";
src = fetchurl { src = fetchurl {
url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2"; url = "https://download.linuxsampler.org/packages/${pname}-${version}.tar.bz2";
sha256 = "02xx6bqxzgkvrawwnzrnxx1ypk244q4kpwfd58266f9ji8kq18h6"; sha256 = "1zs5yy124bymfyapsnljr6rv2lnn5inwchm0xnwiw44b2d39l8hn";
}; };
nativeBuildInputs = [ autoconf automake libtool pkgconfig ]; nativeBuildInputs = [ autoconf automake libtool pkgconfig ];

View File

@ -0,0 +1,43 @@
{ stdenv, fetchurl, autoreconfHook }:
with stdenv.lib;
stdenv.mkDerivation rec {
pname = "libspf2";
version = "1.2.10";
src = fetchurl {
url = "https://www.libspf2.org/spf/libspf2-${version}.tar.gz";
sha256 = "1j91p0qiipzf89qxq4m1wqhdf01hpn1h5xj4djbs51z23bl3s7nr";
};
patches = [
(fetchurl {
name = "0001-gcc-variadic-macros.patch";
url = "https://github.com/shevek/libspf2/commit/5852828582f556e73751076ad092f72acf7fc8b6.patch";
sha256 = "1v6ashqzpr0xidxq0vpkjd8wd66cj8df01kyzj678ljzcrax35hk";
})
];
postPatch = ''
# disable static bins compilation
sed -i \
-e '/bin_PROGRAMS/s/spfquery_static//' src/spfquery/Makefile.am \
-e '/bin_PROGRAMS/s/spftest_static//' src/spftest/Makefile.am \
-e '/bin_PROGRAMS/s/spfd_static//' src/spfd/Makefile.am \
-e '/bin_PROGRAMS/s/spf_example_static//' src/spf_example/Makefile.am
'';
# autoreconf necessary because we modified automake files
nativeBuildInputs = [ autoreconfHook ];
doCheck = true;
meta = {
description = "Implementation of the Sender Policy Framework for SMTP authorization";
homepage = https://www.libspf2.org;
license = with licenses; [ lgpl21Plus bsd2 ];
maintainers = with maintainers; [ pacien ];
platforms = platforms.all;
};
}

View File

@ -129,6 +129,7 @@ in stdenv.mkDerivation rec {
binPath = [ iptables iproute pmutils numad numactl bridge-utils dmidecode dnsmasq ebtables ] ++ optionals enableIscsi [ openiscsi ]; binPath = [ iptables iproute pmutils numad numactl bridge-utils dmidecode dnsmasq ebtables ] ++ optionals enableIscsi [ openiscsi ];
in '' in ''
substituteInPlace $out/libexec/libvirt-guests.sh \ substituteInPlace $out/libexec/libvirt-guests.sh \
--replace 'ON_BOOT=start' 'ON_BOOT=''${ON_BOOT:-start}' \
--replace 'ON_SHUTDOWN=suspend' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \ --replace 'ON_SHUTDOWN=suspend' 'ON_SHUTDOWN=''${ON_SHUTDOWN:-suspend}' \
--replace "$out/bin" '${gettext}/bin' \ --replace "$out/bin" '${gettext}/bin' \
--replace 'lock/subsys' 'lock' \ --replace 'lock/subsys' 'lock' \

View File

@ -1,17 +0,0 @@
diff --git a/Makefile b/Makefile
index b2b5f2c..b690a5d 100644
--- a/Makefile
+++ b/Makefile
@@ -18,10 +18,10 @@ test:
if [ `uname` = "Darwin" ]; then $(MAKE) test_macosx; else $(MAKE) test_posix; fi
macosx:
- $(MAKE) posix "SOCC=MACOSX_DEPLOYMENT_TARGET=10.3 $(CC) -dynamiclib -single_module -undefined dynamic_lookup $(SOCFLAGS)"
+ $(MAKE) posix "SOCC= $(CC) -dynamiclib -single_module -undefined dynamic_lookup -Wl,-install_name,$(PREFIX)/lib/$(MODSO) $(SOCFLAGS)"
test_macosx:
- $(MAKE) test_posix "SOCC=MACOSX_DEPLOYMENT_TARGET=10.3 $(CC) -dynamiclib -single_module -undefined dynamic_lookup $(SOCFLAGS)"
+ $(MAKE) test_posix "SOCC= $(CC) -dynamiclib -single_module -undefined dynamic_lookup -Wl,-install_name,$(PREFIX)/lib/$(MODSO) $(SOCFLAGS)"
posix: $(MODSO) test_cdecl.so

View File

@ -1,31 +0,0 @@
{ stdenv, fetchFromGitHub, lua, pkgconfig }:
stdenv.mkDerivation {
name = "luaffi-2013-11-08";
src = fetchFromGitHub {
owner = "jmckaskill";
repo = "luaffi";
rev = "abc638c9341025580099dcf77795c4b320ba0e63";
sha256 = "1hv1y9i66p473hfy36nqj220sfrxdmbd75c1gpjvpk8073vx55ac";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ lua ];
patches = [ ./darwin.patch ./makefile-errors.patch ];
makeFlags = [ "PREFIX=$(out)" ];
installPhase = ''
mkdir -p $out/lib
cp ffi.so $out/lib/ffi.so
'';
meta = with stdenv.lib; {
description = "Standalone FFI library for calling C functions from lua. Compatible with the luajit FFI interface.";
homepage = https://github.com/jmckaskill/luaffi;
maintainers = with maintainers; [ ma27 ];
license = licenses.mit;
platforms = platforms.unix;
};
}

View File

@ -1,13 +0,0 @@
diff --git a/Makefile b/Makefile
index b2b5f2c..49d4c99 100644
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ LUA=lua
LUA_CFLAGS=`$(PKG_CONFIG) --cflags lua5.2 2>/dev/null || $(PKG_CONFIG) --cflags lua`
SOCFLAGS=-fPIC
SOCC=$(CC) -shared $(SOCFLAGS)
-CFLAGS=-fPIC -g -Wall -Werror $(LUA_CFLAGS) -fvisibility=hidden -Wno-unused-function --std=gnu99
+CFLAGS=-fPIC -g -Wall $(LUA_CFLAGS) -fvisibility=hidden -Wno-unused-function --std=gnu99
MODNAME=ffi
MODSO=$(MODNAME).so

View File

@ -1,6 +1,6 @@
{ callPackage, ... }: { callPackage, ... }:
callPackage ./generic-v3.nix { callPackage ./generic-v3.nix {
version = "3.9.0"; version = "3.9.1";
sha256 = "1xq2njqrbmizwg91ggi1lqr0n26cm2jdyk668ljc24ihrpk0z9bw"; sha256 = "0vv85xb65dx6fa76fsnyps13kaamvwfzd8hr6ii1payr73x4zy2h";
} }

View File

@ -0,0 +1,23 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "serialdv";
version ="1.1.1";
src = fetchFromGitHub {
owner = "f4exb";
repo = "serialdv";
rev = "v${version}";
sha256 = "0swalyp8cbs7if6gxbcl7wf83ml8ch3k7ww4hws89rzpjvf070fr";
};
nativeBuildInputs = [ cmake ];
meta = with stdenv.lib; {
description = "C++ Minimal interface to encode and decode audio with AMBE3000 based devices in packet mode over a serial link.";
homepage = "https://github.com/f4exb/serialdv";
platforms = platforms.linux;
maintainers = with maintainers; [ alkeryn ];
};
}

View File

@ -26,13 +26,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "wiredtiger"; pname = "wiredtiger";
version = "2.6.1"; version = "3.2.0";
src = fetchFromGitHub { src = fetchFromGitHub {
repo = "wiredtiger"; repo = "wiredtiger";
owner = "wiredtiger"; owner = "wiredtiger";
rev = version; rev = version;
sha256 = "1nj319w3hvkq3za2dz9m0p1w683gycdb392v1jb910bhzpsq30pd"; sha256 = "1s27l51p2p3kbdjmccvlg43i7zx84hhchs3779w9giab4nvd0y19";
}; };
nativeBuildInputs = [ automake autoconf libtool ]; nativeBuildInputs = [ automake autoconf libtool ];
@ -58,17 +58,10 @@ stdenv.mkDerivation rec {
./autogen.sh ./autogen.sh
''; '';
prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
substituteInPlace api/leveldb/leveldb_wt.h --replace \
'#include "wiredtiger.h"' \
''$'#include "wiredtiger.h"\n#include "pthread.h"'
'';
meta = { meta = {
homepage = http://wiredtiger.com/; homepage = http://wiredtiger.com/;
description = ""; description = "";
license = licenses.gpl2; license = licenses.gpl2;
platforms = intersectLists platforms.unix platforms.x86_64; platforms = intersectLists platforms.unix platforms.x86_64;
broken = true; # Broken by f689a6d1c6796c4a4f116ffec6c4624379e04bc9.
}; };
} }

View File

@ -5,7 +5,9 @@ let
webpage = "https://erratique.ch/software/${pname}"; webpage = "https://erratique.ch/software/${pname}";
in in
assert stdenv.lib.versionAtLeast ocaml.version "4.01.0"; if !stdenv.lib.versionAtLeast ocaml.version "4.03"
then throw "logs is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ocaml-${pname}-${version}"; name = "ocaml-${pname}-${version}";

View File

@ -2,7 +2,7 @@
buildDunePackage rec { buildDunePackage rec {
pname = "lwt_log"; pname = "lwt_log";
version = "1.1.0"; version = "1.1.1";
minimumOCamlVersion = "4.02"; minimumOCamlVersion = "4.02";
@ -10,7 +10,7 @@ buildDunePackage rec {
owner = "aantron"; owner = "aantron";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "1c58gkqfvyf2j11jwj2nh4iq999wj9xpnmr80hz9d0nk9fv333pi"; sha256 = "1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7";
}; };
propagatedBuildInputs = [ lwt ]; propagatedBuildInputs = [ lwt ];

View File

@ -1,10 +1,10 @@
{ stdenv, pkgconfig, ocaml, findlib, fetchurl, curl, ncurses }: { stdenv, pkgconfig, ocaml, findlib, fetchurl, curl, ncurses }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ocurl-0.8.1"; name = "ocurl-0.8.2";
src = fetchurl { src = fetchurl {
url = "http://ygrek.org.ua/p/release/ocurl/${name}.tar.gz"; url = "http://ygrek.org.ua/p/release/ocurl/${name}.tar.gz";
sha256 = "08ldzbx1k3mbjc01fmzsn86ll4paf331bcjss6iig6y6hgc9q3ry"; sha256 = "1ax3xdlzgb1zg7d0wr9nwgmh6a45a764m0wk8p6mx07ad94hz0q9";
}; };
buildInputs = [ pkgconfig ocaml findlib ncurses ]; buildInputs = [ pkgconfig ocaml findlib ncurses ];

View File

@ -1,35 +1,22 @@
{ stdenv, fetchFromGitHub, ocaml, ocamlbuild, findlib, topkg { lib, fetchFromGitHub, buildDunePackage
, ppx_tools, ppx_sexp_conv, cstruct, ppx_cstruct, sexplib, rresult, nocrypto , cstruct, sexplib0, rresult, nocrypto, astring
, astring
}: }:
if !stdenv.lib.versionAtLeast ocaml.version "4.03" buildDunePackage rec {
then throw "otr is not available for OCaml ${ocaml.version}" pname = "otr";
else version = "0.3.6";
stdenv.mkDerivation rec {
name = "ocaml${ocaml.version}-otr-${version}";
version = "0.3.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "hannesm"; owner = "hannesm";
repo = "ocaml-otr"; repo = "ocaml-otr";
rev = "${version}"; rev = "${version}";
sha256 = "0ixf0jvccmcbhk5mhzqakfzimvz200wkdkq3z2d0bdzyggslbdl4"; sha256 = "0iz6p85a0jxng9aq9blqsky173zaqfr6wlc5j48ad55lgwzlbih5";
}; };
buildInputs = [ ocaml ocamlbuild findlib topkg ppx_tools ppx_sexp_conv ppx_cstruct ]; propagatedBuildInputs = [ cstruct sexplib0 rresult nocrypto astring ];
propagatedBuildInputs = [ cstruct sexplib rresult nocrypto astring ];
buildPhase = "${topkg.run} build --tests true";
inherit (topkg) installPhase;
doCheck = true; doCheck = true;
checkPhase = "${topkg.run} test"; meta = with lib; {
meta = with stdenv.lib; {
inherit (ocaml.meta) platforms;
homepage = https://github.com/hannesm/ocaml-otr; homepage = https://github.com/hannesm/ocaml-otr;
description = "Off-the-record messaging protocol, purely in OCaml"; description = "Off-the-record messaging protocol, purely in OCaml";
license = licenses.bsd2; license = licenses.bsd2;

View File

@ -1,23 +1,19 @@
{ stdenv, fetchFromGitHub, ocaml, findlib, ocaml-migrate-parsetree }: { lib, fetchFromGitHub, buildDunePackage, ocaml-migrate-parsetree }:
stdenv.mkDerivation rec { buildDunePackage rec {
name = "ocaml${ocaml.version}-ppx_tools_versioned-${version}"; pname = "ppx_tools_versioned";
version = "5.1"; version = "5.2.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "let-def"; owner = "ocaml-ppx";
repo = "ppx_tools_versioned"; repo = pname;
rev = version; rev = version;
sha256 = "1c7kvca67qpyr4hiy492yik5x31lmkhyhy5wpl0l0fbx7fr7l624"; sha256 = "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y";
}; };
buildInputs = [ ocaml findlib ];
propagatedBuildInputs = [ ocaml-migrate-parsetree ]; propagatedBuildInputs = [ ocaml-migrate-parsetree ];
createFindlibDestdir = true; meta = with lib; {
meta = with stdenv.lib; {
homepage = https://github.com/let-def/ppx_tools_versioned; homepage = https://github.com/let-def/ppx_tools_versioned;
description = "Tools for authors of syntactic tools (such as ppx rewriters)"; description = "Tools for authors of syntactic tools (such as ppx rewriters)";
license = licenses.gpl2; license = licenses.gpl2;

View File

@ -11,11 +11,13 @@ let
inherit (stdenv.lib) optionals versionAtLeast; inherit (stdenv.lib) optionals versionAtLeast;
pname = "vg"; pname = "vg";
version = "0.9.1"; version = "0.9.3";
webpage = "https://erratique.ch/software/${pname}"; webpage = "https://erratique.ch/software/${pname}";
in in
assert versionAtLeast ocaml.version "4.02.0"; if !versionAtLeast ocaml.version "4.03"
then throw "vg is not available for OCaml ${ocaml.version}"
else
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -23,7 +25,7 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "${webpage}/releases/${pname}-${version}.tbz"; url = "${webpage}/releases/${pname}-${version}.tbz";
sha256 = "07h9a464v0x066mjg3ldkaq94ah47b7rvh54z4rndrg7v6bk7kyp"; sha256 = "0jj5hrqxdb6yyplnz0r7am4mbjzgcn876qp7sqs2x93a97fk6lwd";
}; };
buildInputs = [ ocaml findlib ocamlbuild topkg ]; buildInputs = [ ocaml findlib ocamlbuild topkg ];

View File

@ -3,20 +3,19 @@
, fetchPypi , fetchPypi
, isPy3k , isPy3k
, gevent , gevent
, gunicorn
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "gevent-websocket"; pname = "gevent-websocket";
version = "0.10.1"; version = "0.10.1";
# SyntaxError in tests.
disabled = isPy3k;
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1c2zv2rahp1gil3cj66hfsqgy0n35hz9fny3ywhr2319d0lz7bky"; sha256 = "1c2zv2rahp1gil3cj66hfsqgy0n35hz9fny3ywhr2319d0lz7bky";
}; };
propagatedBuildInputs = [ gevent ]; propagatedBuildInputs = [ gevent gunicorn ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = https://www.gitlab.com/noppo/gevent-websocket; homepage = https://www.gitlab.com/noppo/gevent-websocket;

View File

@ -1,9 +1,11 @@
{ lib, buildPythonPackage, fetchPypi, requests, geojson }: { lib, buildPythonPackage, fetchPypi, pythonOlder, requests, geojson }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyowm"; pname = "pyowm";
version = "2.10.0"; version = "2.10.0";
disabled = pythonOlder "3.3";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "8fd41a18536f4d6c432bc6d9ea69994efb1ea9b43688cf19523659b6f4d86cf7"; sha256 = "8fd41a18536f4d6c432bc6d9ea69994efb1ea9b43688cf19523659b6f4d86cf7";
@ -14,8 +16,7 @@ buildPythonPackage rec {
# This may actually break the package. # This may actually break the package.
postPatch = '' postPatch = ''
substituteInPlace setup.py \ substituteInPlace setup.py \
--replace "requests>=2.18.2,<2.19" "requests" \ --replace "requests>=2.18.2,<2.19" "requests"
--replace "geojson>=2.3.0,<2.4" "geojson<2.5,>=2.3.0"
''; '';
# No tests in archive # No tests in archive

View File

@ -21,13 +21,13 @@ in
buildPythonPackage rec { buildPythonPackage rec {
pname = "python-language-server"; pname = "python-language-server";
version = "0.27.0"; version = "0.28.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "palantir"; owner = "palantir";
repo = "python-language-server"; repo = "python-language-server";
rev = version; rev = version;
sha256 = "158wxj2w880jrab7mi4fb3xqnjhmfixqacxjp7whf7jy3zxqrq38"; sha256 = "0xa0zw7hlfqqa305ic4csgfmlbxhklb5xzx72mfkcz8gcc0f5qwd";
}; };
# The tests require all the providers, disable otherwise. # The tests require all the providers, disable otherwise.

View File

@ -0,0 +1,43 @@
{ lib, buildPythonPackage, fetchurl, python
, sphinx
, xapian
}:
let
pythonSuffix = lib.optionalString python.isPy3k "3";
in
buildPythonPackage rec {
pname = "xapian";
inherit (xapian) version;
format = "other";
src = fetchurl {
url = "https://oligarchy.co.uk/xapian/${version}/xapian-bindings-${version}.tar.xz";
sha256 = "0j9awiiw9zf97r60m848absq43k37gghpyw7acxqjazfzd71fxvm";
};
configureFlags = [
"--with-python${pythonSuffix}"
"PYTHON${pythonSuffix}_LIB=${placeholder "out"}/${python.sitePackages}"
];
preConfigure = ''
export XAPIAN_CONFIG=${xapian}/bin/xapian-config
'';
buildInputs = [ sphinx xapian ];
doCheck = true;
checkPhase = ''
${python.interpreter} python${pythonSuffix}/smoketest.py
${python.interpreter} python${pythonSuffix}/pythontest.py
'';
meta = with lib; {
description = "Python Bindings for Xapian";
homepage = https://xapian.org/;
license = licenses.gpl2Plus;
maintainers = with maintainers; [ jonringer ];
};
}

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
pname = "cloudfoundry-cli"; pname = "cloudfoundry-cli";
version = "6.45.0"; version = "6.46.1";
goPackagePath = "code.cloudfoundry.org/cli"; goPackagePath = "code.cloudfoundry.org/cli";
@ -12,7 +12,7 @@ buildGoPackage rec {
owner = "cloudfoundry"; owner = "cloudfoundry";
repo = "cli"; repo = "cli";
rev = "v${version}"; rev = "v${version}";
sha256 = "1nq78670limq8lydysadk0kb1r88w55fr8cqxqxw0zy58vy1jzr4"; sha256 = "0dqrkimwhw016icgyf4cyipzy6vdz5jgickm33xxd9018dh3ibwq";
}; };
makeTarget = let hps = stdenv.hostPlatform.system; in makeTarget = let hps = stdenv.hostPlatform.system; in

View File

@ -1,22 +1,64 @@
{ stdenv, pkgconfig, fetchurl, itstool, intltool, libxml2, glib, gtk3 { stdenv
, python3Packages, wrapGAppsHook, gnome3, libwnck3, gobject-introspection }: , pkgconfig
, fetchurl
, meson
, ninja
, glib
, gtk3
, python3
, wrapGAppsHook
, gnome3
, libwnck3
, gobject-introspection
, gettext
, itstool
}:
let python3.pkgs.buildPythonApplication rec {
pname = "d-feet"; pname = "d-feet";
version = "0.3.14"; version = "0.3.15";
in python3Packages.buildPythonApplication rec {
name = "${pname}-${version}";
format = "other"; format = "other";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/d-feet/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; url = "mirror://gnome/sources/d-feet/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1m8lwiwl5jhi0x7y6x5zmd3hjplgvdjrb8a8jg74rvkygslj1p7f"; sha256 = "1cgxgpj546jgpyns6z9nkm5k48lid8s36mvzj8ydkjqws2d19zqz";
}; };
nativeBuildInputs = [ pkgconfig itstool intltool wrapGAppsHook libxml2 ]; nativeBuildInputs = [
buildInputs = [ glib gtk3 gnome3.adwaita-icon-theme libwnck3 gobject-introspection ]; gettext
gobject-introspection
itstool
meson
ninja
pkgconfig
python3
wrapGAppsHook
];
propagatedBuildInputs = with python3Packages; [ pygobject3 pep8 ]; buildInputs = [
glib
gnome3.adwaita-icon-theme
gtk3
libwnck3
];
propagatedBuildInputs = with python3.pkgs; [
pygobject3
];
mesonFlags = [
"-Dtests=false" # needs dbus
];
# Temporary fix
# See https://github.com/NixOS/nixpkgs/issues/56943
strictDeps = false;
postPatch = ''
chmod +x meson_post_install.py
patchShebangs meson_post_install.py
'';
passthru = { passthru = {
updateScript = gnome3.updateScript { updateScript = gnome3.updateScript {
@ -26,17 +68,15 @@ in python3Packages.buildPythonApplication rec {
}; };
}; };
meta = { meta = with stdenv.lib; {
description = "D-Feet is an easy to use D-Bus debugger"; description = "D-Feet is an easy to use D-Bus debugger";
longDescription = '' longDescription = ''
D-Feet can be used to inspect D-Bus interfaces of running programs D-Feet can be used to inspect D-Bus interfaces of running programs
and invoke methods on those interfaces. and invoke methods on those interfaces.
''; '';
homepage = https://wiki.gnome.org/Apps/DFeet; homepage = https://wiki.gnome.org/Apps/DFeet;
platforms = stdenv.lib.platforms.all; platforms = platforms.linux;
license = stdenv.lib.licenses.gpl2; license = licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ ktosiek ]; maintainers = with maintainers; [ ktosiek ];
}; };
} }

View File

@ -0,0 +1,47 @@
{ stdenv
, mkDerivation
, fetchFromGitHub
, autoreconfHook
, pkgconfig
, qtbase
, qtscript
}:
mkDerivation rec {
pname = "ofono-phonesim";
version = "unstable-2014-04-22";
src = fetchFromGitHub {
owner = "jpakkane";
repo = "ofono-phonesim";
rev = "baa41f04e6a86c5289d7185cad8a6f08a5c3ed0a";
sha256 = "0ywalvvf3dfbn81ml21gji1n2hywh2nmakynakjzyyskcqjn2wiz";
};
patches = [
./qt5-compat.patch
];
nativeBuildInputs = [
autoreconfHook
pkgconfig
];
buildInputs = [
qtbase
qtscript
];
makeFlags = [
"MOC=${qtbase.dev}/bin/moc"
"UIC=${qtbase.dev}/bin/uic"
];
meta = with stdenv.lib; {
description = "Phone Simulator for modem testing";
homepage = https://github.com/jpakkane/ofono-phonesim;
license = licenses.gpl2;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,48 @@
diff --git a/configure.ac b/configure.ac
index 2436292..993df87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,18 +21,18 @@ AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization],
fi
])
-PKG_CHECK_MODULES(QT, QtCore QtGui QtXml QtNetwork QtScript QtDBus, dummy=yes,
+PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Widgets Qt5Xml Qt5Network Qt5Script Qt5DBus, dummy=yes,
AC_MSG_ERROR(Qt is required))
AC_SUBST(QT_CFLAGS)
AC_SUBST(QT_LIBS)
AC_MSG_CHECKING(for moc)
-MOC="`$PKG_CONFIG --variable=moc_location QtCore`"
+MOC="`$PKG_CONFIG --variable=moc_location Qt5Core`"
AC_SUBST(MOC)
AC_MSG_RESULT($MOC)
AC_MSG_CHECKING(for uic)
-UIC="`$PKG_CONFIG --variable=uic_location QtCore`"
+UIC="`$PKG_CONFIG --variable=uic_location Qt5Core`"
AC_SUBST(UIC)
AC_MSG_RESULT($UIC)
diff --git a/src/control.cpp b/src/control.cpp
index e1838a6..880da68 100644
--- a/src/control.cpp
+++ b/src/control.cpp
@@ -22,7 +22,7 @@
#include <qslider.h>
#include <qcheckbox.h>
#include <qcombobox.h>
-#include <QtGui/qmessagebox.h>
+#include <QMessageBox>
#include <qfiledialog.h>
#include <Qt>
#include <qbuffer.h>
@@ -31,7 +31,7 @@
#include <QFileInfo>
#include <QFile>
#include <QDir>
-#include <QtGui/QHeaderView>
+#include <QHeaderView>
#define TWO_BYTE_MAX 65535
#define FOUR_CHAR 4

View File

@ -0,0 +1,106 @@
{ lib, stdenv
, fetchgit, fetchFromGitHub, fetchurl
, writeShellScript, runCommand
, rustPlatform, jq, nix-prefetch-git, xe, curl
}:
# TODO: move to carnix or https://github.com/kolloch/crate2nix
let
# to update:
# 1) change all these hashes
# 2) nix-build -A tree-sitter.updater.update-all-grammars
# 3) run the script that is output by that (it updates ./grammars)
version = "0.15.7";
sha256 = "0q6w8wl4a4s49xlgbv531pandzrj3n12hc1cwfshzcgikx303dg0";
sha256Js = "11ig4cc2m85siyhafh4hq9sjb5if4gfwsf9k87izkxpiyflda0wp";
sha256Wasm = "1zm4bvjri8ivhah3sy22mx6jbvibgbn2hk67d148j3nyka3y4gc0";
cargoSha256 = "0ls9cb2p6cgqvnrmx72n79ga7687n8mzhh7n8n1pzv11r6cah9ki";
src = fetchFromGitHub {
owner = "tree-sitter";
repo = "tree-sitter";
rev = version;
inherit sha256;
fetchSubmodules = true;
};
fetchDist = {file, sha256}: fetchurl {
url = "https://github.com/tree-sitter/tree-sitter/releases/download/${version}/${file}";
inherit sha256;
};
# TODO: not distributed anymore; needed for the web-ui module,
# see also the disable-web-ui patch.
# TODO: build those instead of downloading prebuilt
# js = fetchDist {
# file = "tree-sitter.js";
# sha256 = sha256Js;
# };
# wasm = fetchDist {
# file = "tree-sitter.wasm";
# sha256 = sha256Wasm;
# };
update-all-grammars = import ./update.nix {
inherit writeShellScript nix-prefetch-git curl jq xe src;
};
grammars =
let fetch =
(v: fetchgit {inherit (v) url rev sha256 fetchSubmodules; });
in runCommand "grammars" {} (''
mkdir $out
'' + (lib.concatStrings (lib.mapAttrsToList
(name: grammar: "ln -s ${fetch grammar} $out/${name}\n")
(import ./grammars))));
in rustPlatform.buildRustPackage {
pname = "tree-sitter";
inherit version;
inherit src;
patches = [
# the web ui requires tree-sitter compiled to js and wasm
./disable-web-ui.patch
];
postPatch = ''
# needed for the tests
rm -rf test/fixtures/grammars
ln -s ${grammars} test/fixtures/grammars
'';
passthru = {
updater = {
inherit update-all-grammars;
};
inherit grammars;
};
inherit cargoSha256;
meta = {
homepage = "https://github.com/tree-sitter/tree-sitter";
description = "A parser generator tool and an incremental parsing library";
longDescription = ''
Tree-sitter is a parser generator tool and an incremental parsing library.
It can build a concrete syntax tree for a source file and efficiently update the syntax tree as the source file is edited.
Tree-sitter aims to be:
* General enough to parse any programming language
* Fast enough to parse on every keystroke in a text editor
* Robust enough to provide useful results even in the presence of syntax errors
* Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
'';
platforms = lib.platforms.all;
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ Profpatsch ];
# Darwin needs some more work with default libraries
# Aarch has test failures with how tree-sitter compiles the generated C files
broken = stdenv.isDarwin || stdenv.isAarch64;
};
}

View File

@ -0,0 +1,37 @@
diff --git a/cli/src/lib.rs b/cli/src/lib.rs
index 33a9904f..633032d7 100644
--- a/cli/src/lib.rs
+++ b/cli/src/lib.rs
@@ -8,7 +8,7 @@ pub mod parse;
pub mod test;
pub mod util;
pub mod wasm;
-pub mod web_ui;
+// pub mod web_ui;
#[cfg(test)]
mod tests;
diff --git a/cli/src/main.rs b/cli/src/main.rs
index 23e7fc1a..9d784c8a 100644
--- a/cli/src/main.rs
+++ b/cli/src/main.rs
@@ -4,7 +4,7 @@ use std::{env, fs, u64};
use std::path::Path;
use std::process::exit;
use tree_sitter_cli::{
- config, error, generate, highlight, loader, logger, parse, test, wasm, web_ui,
+ config, error, generate, highlight, loader, logger, parse, test, wasm,
};
const BUILD_VERSION: &'static str = env!("CARGO_PKG_VERSION");
@@ -250,7 +250,9 @@ fn run() -> error::Result<()> {
let grammar_path = current_dir.join(matches.value_of("path").unwrap_or(""));
wasm::compile_language_to_wasm(&grammar_path, matches.is_present("docker"))?;
} else if matches.subcommand_matches("web-ui").is_some() {
- web_ui::serve(&current_dir);
+ print!("ERROR: web-ui is not available in the nixpkgs tree-sitter-cli at the moment.");
+ std::process::exit(1);
+ // web_ui::serve(&current_dir);
}
Ok(())

View File

@ -0,0 +1,15 @@
{
bash = (builtins.fromJSON (builtins.readFile ./tree-sitter-bash.json));
c = (builtins.fromJSON (builtins.readFile ./tree-sitter-c.json));
cpp = (builtins.fromJSON (builtins.readFile ./tree-sitter-cpp.json));
embedded-template = (builtins.fromJSON (builtins.readFile ./tree-sitter-embedded-template.json));
go = (builtins.fromJSON (builtins.readFile ./tree-sitter-go.json));
html = (builtins.fromJSON (builtins.readFile ./tree-sitter-html.json));
javascript = (builtins.fromJSON (builtins.readFile ./tree-sitter-javascript.json));
json = (builtins.fromJSON (builtins.readFile ./tree-sitter-json.json));
python = (builtins.fromJSON (builtins.readFile ./tree-sitter-python.json));
# wasnt able to check out with fetchgit
# ruby = (builtins.fromJSON (builtins.readFile ./tree-sitter-ruby.json));
rust = (builtins.fromJSON (builtins.readFile ./tree-sitter-rust.json));
typescript = (builtins.fromJSON (builtins.readFile ./tree-sitter-typescript.json));
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-bash",
"rev": "7b8adcf484e27b6c1a707ce28123e55dd4b7a844",
"date": "2019-07-26T14:05:41-06:00",
"sha256": "047p51ab4fqm55xqss6z74iyj1hlndql97dv9fifckczx3d5xn5g",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-c",
"rev": "22decdc361767838dd36f1da4125b35b5b9a3c28",
"date": "2019-07-02T15:49:42-07:00",
"sha256": "03f9g49l4g2l4hlafr3xhvi8d3a491k5zz4bxpq7391l5wgjy3zi",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-cpp",
"rev": "f5afa0ee48ad1dc067ed6fe1aa2cfd2a3ea5d443",
"date": "2019-08-06T17:23:46-07:00",
"sha256": "1w9zjqj232fcagqfqd8qi4kmvr655s4ivllrm27973sda4xq557h",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-embedded-template",
"rev": "71955edec8cb762f63e94cf062fc96b52b9ae609",
"date": "2019-07-17T15:55:22-07:00",
"sha256": "1ar2n1z2h194lb3isbdkmvhn8w78j4a62nbh105w3jl1sxb4qpsa",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-go",
"rev": "475571bb5bdb9b229c6be3843d4c71ba747688fd",
"date": "2019-07-17T15:51:06-07:00",
"sha256": "1cg5qpifrvpnsi0iy26g156xib2qa55vlna41hw6c70kx8ibvl9z",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-html",
"rev": "aeb2f456b8c6a60b8475d075889d476a165cde57",
"date": "2019-07-17T15:57:54-07:00",
"sha256": "0ba8zi65kja6p7f5h7pa7kxqa3mj29ysjrvl84am24vy5ik4zz3z",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-javascript",
"rev": "a730b5c210904e2e3c1f601125a059fde1b35850",
"date": "2019-08-08T14:13:17-07:00",
"sha256": "1cr0vikbzrklksjj07fh34a5cabkgbpkbxwiw2alnana3zzzdhnq",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-json",
"rev": "337f55be9b9b1ccb0baa7763bfe014a94acea7ea",
"date": "2019-05-23T11:02:26-04:00",
"sha256": "0amh4qrjj3fli9c0z6p61z9d7496sqq54i1gh2vrghgnbbyaa6mz",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-python",
"rev": "4c22de0944cd42a5c86ade7ef7097033604796f8",
"date": "2019-07-30T15:35:03-04:00",
"sha256": "1p12h7hj1ak15fyk4gw9wcmgzydd4z5mikhjp54mn1q4vfw175p3",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-ruby",
"rev": "db91c934ff9d3d4ea67111a0f581532c49c3a6b3",
"date": "2019-07-26T15:51:54-06:00",
"sha256": "1ir1nqpz0c0hnsqzp90w2iw1gy3z3nqil2fm4n3zmid5di7c98dg",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-rust",
"rev": "3f956b18a6b0a576ed238cc69d5e3f413bd547b1",
"date": "2019-07-18T11:44:02-07:00",
"sha256": "0dwxg3pqirqm1lvl5x0q9djavfri9ffk5diygqzjnx53rwqhyzj8",
"fetchSubmodules": false
}

View File

@ -0,0 +1,7 @@
{
"url": "https://github.com/tree-sitter/tree-sitter-typescript",
"rev": "ab9ab6cced868ee3e096f33fa21fd9d356c92e1a",
"date": "2019-08-08T14:27:32-07:00",
"sha256": "11r0vj1dhv0my2cr442mwvaav8ljygsns20w51mwg7328vlz90q3",
"fetchSubmodules": false
}

View File

@ -0,0 +1,68 @@
{ writeShellScript, nix-prefetch-git
, curl, jq, xe
, src }:
let
# print all the grammar names mentioned in the fetch-fixtures script
getGrammarNames = writeShellScript "get-grammars.sh" ''
set -euo pipefail
sed -ne 's/^fetch_grammar \(\S*\).*$/\1/p' \
${src}/script/fetch-fixtures
'';
# TODO
urlEscape = x: x;
# TODO
urlEscapeSh = writeShellScript "escape-url" ''printf '%s' "$1"'';
# generic bash script to find the latest github release for a repo
latestGithubRelease = { owner }: writeShellScript "latest-github-release" ''
set -euo pipefail
repo="$1"
res=$(${curl}/bin/curl \
--silent \
"https://api.github.com/repos/${urlEscape owner}/$(${urlEscapeSh} "$repo")/releases/latest")
if [[ "$(printf "%s" "$res" | ${jq}bin/jq '.message')" =~ "rate limit" ]]; then
echo "rate limited" >&2
fi
release=$(printf "%s" "$res" | ${jq}/bin/jq '.tag_name')
# github sometimes returns an empty list even tough there are releases
if [ "$release" = "null" ]; then
echo "uh-oh, latest for $repo is not there, using HEAD" >&2
release="HEAD"
fi
echo "$release"
'';
# update one tree-sitter grammar repo and print their nix-prefetch-git output
updateGrammar = { owner }: writeShellScript "update-grammar.sh" ''
set -euo pipefail
repo="$1"
latest="$(${latestGithubRelease { inherit owner; }} "$repo")"
echo "Fetching latest release ($latest) of $repo " >&2
${nix-prefetch-git}/bin/nix-prefetch-git \
--quiet \
--no-deepClone \
--url "https://github.com/${urlEscape owner}/$(${urlEscapeSh} "$repo")" \
--rev "$latest"
'';
update-all-grammars = writeShellScript "update-all-grammars.sh" ''
set -euo pipefail
grammarNames=$(${getGrammarNames})
outputDir="${toString ./.}/grammars"
mkdir -p "$outputDir"
updateCommand=$(printf \
'${updateGrammar { owner = "tree-sitter"; }} "$1" > "%s/$1.json"' \
"$outputDir")
printf '%s' "$grammarNames" \
| ${xe}/bin/xe printf "tree-sitter-%s\n" {} \
| ${xe}/bin/xe -j2 -s "$updateCommand"
( echo "{"
printf '%s' "$grammarNames" \
| ${xe}/bin/xe -s 'printf " %s = (builtins.fromJSON (builtins.readFile ./tree-sitter-%s.json));\n" "$1" "$1"'
echo "}" ) \
> "$outputDir/default.nix"
'';
in update-all-grammars

View File

@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "cargo-expand"; pname = "cargo-expand";
version = "0.4.14"; version = "0.4.15";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dtolnay"; owner = "dtolnay";
repo = pname; repo = pname;
rev = version; rev = version;
sha256 = "0i59m34lav3cmrazaxfraj3jk5mdi5fgaq8p7l4s8qr1fpmmw9vy"; sha256 = "155b4azkrr0qfg52mk7934zavwsbl28i28hi1inb23d509hrr5ky";
}; };
cargoSha256 = "1sjbcgscgvjq4qpcljrsj1dyxbr10jl6wpp27xh3bv8c2rv4bzz8"; cargoSha256 = "050q4rk1x3jghinxg6gszi993a6zbg41vg535dlvvsqi36l278qc";
buildInputs = [ llvmPackages.libclang ] buildInputs = [ llvmPackages.libclang ]
++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security; ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;

View File

@ -2,6 +2,7 @@
, meson , meson
, ninja , ninja
, pkgconfig , pkgconfig
, fetchpatch
, platform-tools , platform-tools
, ffmpeg , ffmpeg
@ -9,10 +10,10 @@
}: }:
let let
version = "1.8"; version = "1.10";
prebuilt_server = fetchurl { prebuilt_server = fetchurl {
url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}.jar"; url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}.jar";
sha256 = "1h755k5xpchlm7wq2yk5mlwjnh7y4yhviffixacby0srj3pmb443"; sha256 = "144k25x6ha89l9p5a1dm6r3fqvgqszzwrhvkvk0r44vg0i71msyb";
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
owner = "Genymobile"; owner = "Genymobile";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1cx7y3w699s3i8s53l1mb7lkrnbix457hf17liwh00jzb0i7aga7"; sha256 = "0hhncqcs49n9g8sgvwbyvkaq4b1dhrpn7qgnaj6grjcb0i27vzaq";
}; };
# postPatch: # postPatch:
@ -39,12 +40,18 @@ stdenv.mkDerivation rec {
buildInputs = [ ffmpeg SDL2 ]; buildInputs = [ ffmpeg SDL2 ];
# FIXME: remove on update to > 1.10
patches = [(fetchpatch {
url = "https://github.com/Genymobile/scrcpy/commit/c05056343b56be65ae887f8b7ead61a8072622b9.diff";
sha256 = "1xh24gr2g2i9rk0zyv19jx54hswrq12ssp227vxbhsbamin9ir5b";
})];
# Manually install the server jar to prevent Meson from "fixing" it # Manually install the server jar to prevent Meson from "fixing" it
preConfigure = '' preConfigure = ''
echo -n > server/meson.build echo -n > server/meson.build
''; '';
mesonFlags = ["-Doverride_server_path=${prebuilt_server}"]; mesonFlags = [ "-Doverride_server_path=${prebuilt_server}" ];
postInstall = '' postInstall = ''
mkdir -p "$out/share/scrcpy" mkdir -p "$out/share/scrcpy"
ln -s "${prebuilt_server}" "$out/share/scrcpy/scrcpy-server.jar" ln -s "${prebuilt_server}" "$out/share/scrcpy/scrcpy-server.jar"

View File

@ -1,13 +1,13 @@
{ stdenv, buildPackages, fetchgit, fetchpatch, perl, buildLinux, ... } @ args: { stdenv, buildPackages, fetchgit, fetchpatch, perl, buildLinux, ... } @ args:
buildLinux (args // rec { buildLinux (args // rec {
version = "5.1.2019.07.13"; version = "5.1.2019.08.21";
modDirVersion = "5.1.0"; modDirVersion = "5.1.0";
src = fetchgit { src = fetchgit {
url = "https://evilpiepirate.org/git/bcachefs.git"; url = "https://evilpiepirate.org/git/bcachefs.git";
rev = "22776fe9902b0b06d6aa18cd4c7f0c5ad35a95fa"; rev = "ece184f718c2b678738bc2c42906e90eeb8ba7dc";
sha256 = "0ly4vxawj8skh55c541zll3b8g6igiaq7aj33fklfjh0icmgzs60"; sha256 = "08cbisgcww8fklpxwqkm2c8ddz0mm7v11ycp7ch0kalwdv2f81lr";
}; };
extraConfig = "BCACHEFS_FS m"; extraConfig = "BCACHEFS_FS m";

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "limesurvey"; pname = "limesurvey";
version = "3.17.1+190408"; version = "3.17.12+190823";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "LimeSurvey"; owner = "LimeSurvey";
repo = "LimeSurvey"; repo = "LimeSurvey";
rev = version; rev = version;
sha256 = "0d6dgw9af492vn5yg2hq82ipq4p80c19lhky0dpwrm5kv67kxbhv"; sha256 = "1i7jpxndrbya5ggl4babscwzmxx4c0jwri5kpl7h2ihqrn90m4b5";
}; };
phpConfig = writeText "config.php" '' phpConfig = writeText "config.php" ''
@ -18,9 +18,13 @@ stdenv.mkDerivation rec {
''; '';
installPhase = '' installPhase = ''
runHook preInstall
mkdir -p $out/share/limesurvey mkdir -p $out/share/limesurvey
cp -r . $out/share/limesurvey cp -r . $out/share/limesurvey
cp ${phpConfig} $out/share/limesurvey/application/config/config.php cp ${phpConfig} $out/share/limesurvey/application/config/config.php
runHook postInstall
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -3,6 +3,7 @@
, enableMySQL ? false, mysql, zlib , enableMySQL ? false, mysql, zlib
, enableAuthDovecot ? false, dovecot , enableAuthDovecot ? false, dovecot
, enablePAM ? false, pam , enablePAM ? false, pam
, enableSPF ? true, libspf2
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -18,7 +19,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional enableLDAP openldap ++ stdenv.lib.optional enableLDAP openldap
++ stdenv.lib.optionals enableMySQL [ mysql.connector-c zlib ] ++ stdenv.lib.optionals enableMySQL [ mysql.connector-c zlib ]
++ stdenv.lib.optional enableAuthDovecot dovecot ++ stdenv.lib.optional enableAuthDovecot dovecot
++ stdenv.lib.optional enablePAM pam; ++ stdenv.lib.optional enablePAM pam
++ stdenv.lib.optional enableSPF libspf2;
preBuild = '' preBuild = ''
sed ' sed '
@ -64,6 +66,10 @@ stdenv.mkDerivation rec {
s:^\(EXTRALIBS_EXIM\)=\(.*\):\1=\2 -lpam: s:^\(EXTRALIBS_EXIM\)=\(.*\):\1=\2 -lpam:
s:^# \(EXTRALIBS_EXIM\)=.*:\1=-lpam: s:^# \(EXTRALIBS_EXIM\)=.*:\1=-lpam:
''} ''}
${stdenv.lib.optionalString enableSPF ''
s:^# \(SUPPORT_SPF\)=.*:\1=yes:
s:^# \(LDFLAGS += -lspf2\):\1:
''}
#/^\s*#.*/d #/^\s*#.*/d
#/^\s*$/d #/^\s*$/d
' < src/EDITME > Local/Makefile ' < src/EDITME > Local/Makefile

View File

@ -8,13 +8,13 @@
# server, and the FHS userenv and corresponding NixOS module should # server, and the FHS userenv and corresponding NixOS module should
# automatically pick up the changes. # automatically pick up the changes.
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.16.4.1469-6d5612c2f"; version = "1.16.5.1488-deeb86e7f";
pname = "plexmediaserver"; pname = "plexmediaserver";
# Fetch the source # Fetch the source
src = fetchurl { src = fetchurl {
url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm"; url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
sha256 = "16ifgqsxgpqyd1m0xmwrrv4cic1yccklv1jlv7fhq8wc6vz9l6lx"; sha256 = "0kgcbq3jfvmigza8a9ak215q2cpi18vh96gx01hppk51m9ibkrwi";
}; };
outputs = [ "out" "basedb" ]; outputs = [ "out" "basedb" ];

View File

@ -8,4 +8,6 @@ patch: [
(patch "005" "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav") (patch "005" "0xl2kyzm84nlyklrqzkn73ixabhzfhn9x91lzcmis89cppclvxav")
(patch "006" "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn") (patch "006" "0844749ixk1z60437nkznzms1f0nzh9an62kj7sny6r0zyk2k1fn")
(patch "007" "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p") (patch "007" "16xg37gp1b8zlj5969w8mcrparwqlcbj9695vn3qhgb7wdz1xd0p")
(patch "008" "1qyp19krjh8zxvb0jgwmyjz40djslwcf4xi7kc1ab0iaca44bipf")
(patch "009" "00yrjjqd95s81b21qq3ba1y7h879q8jaajlkjggc6grhcwbs4g7d")
] ]

View File

@ -11,8 +11,9 @@ stdenv.mkDerivation rec {
buildInputs = [ libxslt docbook_xsl makeWrapper ]; buildInputs = [ libxslt docbook_xsl makeWrapper ];
preFixup = '' preFixup = ''
# fallback values need to be last
wrapProgram "$out/bin/xdg-user-dirs-update" \ wrapProgram "$out/bin/xdg-user-dirs-update" \
--prefix XDG_CONFIG_DIRS : "$out/etc/xdg" --suffix XDG_CONFIG_DIRS : "$out/etc/xdg"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -14,11 +14,11 @@ let
xf86videodummy = callPackage ./xf86videodummy { }; xf86videodummy = callPackage ./xf86videodummy { };
in buildPythonApplication rec { in buildPythonApplication rec {
pname = "xpra"; pname = "xpra";
version = "2.5"; version = "2.5.3";
src = fetchurl { src = fetchurl {
url = "https://xpra.org/src/${pname}-${version}.tar.xz"; url = "https://xpra.org/src/${pname}-${version}.tar.xz";
sha256 = "0q6c7ijgpp2wk6jlh0pzqki1w60i36wyl2zfwkg0gpdh40ypab3x"; sha256 = "1ys35lj28903alccks9p055psy1fsk1nxi8ncchvw8bfxkkkvbys";
}; };
patches = [ patches = [
@ -56,7 +56,7 @@ in buildPythonApplication rec {
propagatedBuildInputs = with python3.pkgs; [ propagatedBuildInputs = with python3.pkgs; [
pillow rencode pycrypto cryptography pycups lz4 dbus-python pillow rencode pycrypto cryptography pycups lz4 dbus-python
netifaces numpy pygobject3 pycairo gst-python pam netifaces numpy pygobject3 pycairo gst-python pam
pyopengl paramiko opencv python-uinput pyxdg pyopengl paramiko opencv4 python-uinput pyxdg
ipaddress idna ipaddress idna
]; ];

View File

@ -1,15 +1,8 @@
gdiff --git a/setup.py b/setup.py
index 8d3df15..6156206 100755
--- a/setup.py --- a/setup.py
+++ b/setup.py +++ b/setup.py
@@ -1885,7 +1885,7 @@ @@ -2359,10 +2359,7 @@ if v4l2_ENABLED:
if OSX:
pycairo = "py3cairo"
else:
- pycairo = "pycairo"
+ pycairo = "py3cairo"
cython_add(Extension("xpra.client.gtk3.cairo_workaround",
["xpra/client/gtk3/cairo_workaround.pyx"],
**pkgconfig(pycairo)
@@ -2363,10 +2363,7 @@
v4l2_pkgconfig = pkgconfig() v4l2_pkgconfig = pkgconfig()
#fuly warning: cython makes this difficult, #fuly warning: cython makes this difficult,
#we have to figure out if "device_caps" exists in the headers: #we have to figure out if "device_caps" exists in the headers:
@ -21,14 +14,16 @@
kwargs = {"ENABLE_DEVICE_CAPS" : ENABLE_DEVICE_CAPS} kwargs = {"ENABLE_DEVICE_CAPS" : ENABLE_DEVICE_CAPS}
make_constants("xpra", "codecs", "v4l2", "constants", **kwargs) make_constants("xpra", "codecs", "v4l2", "constants", **kwargs)
cython_add(Extension("xpra.codecs.v4l2.pusher", cython_add(Extension("xpra.codecs.v4l2.pusher",
diff --git a/xpra/x11/bindings/keyboard_bindings.pyx b/xpra/x11/bindings/keyboard_bindings.pyx
index bd7023d..064c6b5 100644
--- a/xpra/x11/bindings/keyboard_bindings.pyx --- a/xpra/x11/bindings/keyboard_bindings.pyx
+++ b/xpra/x11/bindings/keyboard_bindings.pyx +++ b/xpra/x11/bindings/keyboard_bindings.pyx
@@ -19,7 +19,7 @@ @@ -21,7 +21,7 @@ from libc.stdlib cimport free, malloc
DEF PATH_MAX = 1024 DEF PATH_MAX = 1024
DEF DFLT_XKB_RULES_FILE = b"base" DEF DFLT_XKB_RULES_FILE = b"base"
-DEF DFLT_XKB_CONFIG_ROOT = b"/usr/share/X11/xkb" -DEF DFLT_XKB_CONFIG_ROOT = b"/usr/share/X11/xkb"
+DEF DFLT_XKB_CONFIG_ROOT = b"@xkeyboardconfig@/share/X11/xkb" +DEF DFLT_XKB_CONFIG_ROOT = b"@xkeyboardconfig@/share/X11/xkb"
################################### ###################################
# Headers, python magic # Headers, python magic

Some files were not shown because too many files have changed in this diff Show More