Merge branch 'master' into staging

Conflict: rename of pythondaemon -> python-daemon.
This commit is contained in:
Vladimír Čunát 2018-11-02 14:36:19 +01:00
commit a92a2c8e15
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
192 changed files with 5268 additions and 1800 deletions

View File

@ -670,7 +670,7 @@ python3Packages.buildPythonApplication rec {
sha256 = "035w8gqql36zlan0xjrzz9j4lh9hs0qrsgnbyw07qs7lnkvbdv9x"; sha256 = "035w8gqql36zlan0xjrzz9j4lh9hs0qrsgnbyw07qs7lnkvbdv9x";
}; };
propagatedBuildInputs = with python3Packages; [ tornado_4 pythondaemon ]; propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon ];
meta = with lib; { meta = with lib; {
... ...

View File

@ -400,6 +400,10 @@ lib.mapAttrs (n: v: v // { shortName = n; }) rec {
free = false; free = false;
}; };
jasper = spdx {
spdxId = "JasPer-2.0";
fullName = "JasPer License";
};
lgpl2 = spdx { lgpl2 = spdx {
spdxId = "LGPL-2.0"; spdxId = "LGPL-2.0";

View File

@ -471,6 +471,7 @@ rec {
"x86_64-linux" = pc64; "x86_64-linux" = pc64;
"armv5tel-linux" = sheevaplug; "armv5tel-linux" = sheevaplug;
"armv6l-linux" = raspberrypi; "armv6l-linux" = raspberrypi;
"armv7a-linux" = armv7l-hf-multiplatform;
"armv7l-linux" = armv7l-hf-multiplatform; "armv7l-linux" = armv7l-hf-multiplatform;
"aarch64-linux" = aarch64-multiplatform; "aarch64-linux" = aarch64-multiplatform;
"mipsel-linux" = fuloong2f_n32; "mipsel-linux" = fuloong2f_n32;

View File

@ -143,6 +143,11 @@
github = "ahmedtd"; github = "ahmedtd";
name = "Taahir Ahmed"; name = "Taahir Ahmed";
}; };
ahuzik = {
email = "ales.guzik@gmail.com";
github = "alesguzik";
name = "Ales Huzik";
};
aij = { aij = {
email = "aij+git@mrph.org"; email = "aij+git@mrph.org";
github = "aij"; github = "aij";

View File

@ -34,13 +34,4 @@
Similarly, UDP port ranges can be opened through Similarly, UDP port ranges can be opened through
<xref linkend="opt-networking.firewall.allowedUDPPortRanges"/>. <xref linkend="opt-networking.firewall.allowedUDPPortRanges"/>.
</para> </para>
<para>
Also of interest is
<programlisting>
<xref linkend="opt-networking.firewall.allowPing"/> = true;
</programlisting>
to allow the machine to respond to ping requests. (ICMPv6 pings are always
allowed.)
</para>
</section> </section>

View File

@ -99,6 +99,16 @@
start org.nixos.nix-daemon</command>. start org.nixos.nix-daemon</command>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The Syncthing state and configuration data has been moved from
<varname>services.syncthing.dataDir</varname> to the newly defined
<varname>services.syncthing.configDir</varname>, which default to
<literal>/var/lib/syncthing/.config/syncthing</literal>.
This change makes possible to share synced directories using ACLs
without Syncthing resetting the permission on every start.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>
<listitem> <listitem>
@ -154,6 +164,26 @@
has been renamed to <varname>postgresql_9_6</varname>. has been renamed to <varname>postgresql_9_6</varname>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
Slurm introduces the new option
<literal>services.slurm.stateSaveLocation</literal>,
which is now set to <literal>/var/spool/slurm</literal> by default
(instead of <literal>/var/spool</literal>).
Make sure to move all files to the new directory or to set the option accordingly.
</para>
<para>
The slurmctld now runs as user <literal>slurm</literal> instead of <literal>root</literal>.
If you want to keep slurmctld running as <literal>root</literal>, set
<literal>services.slurm.user = root</literal>.
</para>
<para>
The options <literal>services.slurm.nodeName</literal> and
<literal>services.slurm.partitionName</literal> are now sets of
strings to correctly reflect that fact that each of these
options can occour more than once in the configuration.
</para>
</listitem>
</itemizedlist> </itemizedlist>
</section> </section>

View File

@ -228,9 +228,6 @@ in
# /etc/protocols: IP protocol numbers. # /etc/protocols: IP protocol numbers.
"protocols".source = pkgs.iana-etc + "/etc/protocols"; "protocols".source = pkgs.iana-etc + "/etc/protocols";
# /etc/rpc: RPC program numbers.
"rpc".source = pkgs.glibc.out + "/etc/rpc";
# /etc/hosts: Hostname-to-IP mappings. # /etc/hosts: Hostname-to-IP mappings.
"hosts".text = let "hosts".text = let
oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip}; oneToString = set: ip: ip + " " + concatStringsSep " " set.${ip};
@ -268,6 +265,9 @@ in
"resolv.conf".source = "${pkgs.systemd}/lib/systemd/resolv.conf"; "resolv.conf".source = "${pkgs.systemd}/lib/systemd/resolv.conf";
} // optionalAttrs (config.services.resolved.enable && dnsmasqResolve) { } // optionalAttrs (config.services.resolved.enable && dnsmasqResolve) {
"dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf"; "dnsmasq-resolv.conf".source = "/run/systemd/resolve/resolv.conf";
} // optionalAttrs (pkgs.stdenv.hostPlatform.libc == "glibc") {
# /etc/rpc: RPC program numbers.
"rpc".source = pkgs.glibc.out + "/etc/rpc";
}; };
networking.proxy.envVars = networking.proxy.envVars =

View File

@ -19,7 +19,9 @@ let
pkgs.diffutils pkgs.diffutils
pkgs.findutils pkgs.findutils
pkgs.gawk pkgs.gawk
pkgs.glibc # for ldd, getent pkgs.stdenv.cc.libc
pkgs.getent
pkgs.getconf
pkgs.gnugrep pkgs.gnugrep
pkgs.gnupatch pkgs.gnupatch
pkgs.gnused pkgs.gnused

View File

@ -331,6 +331,8 @@
zeronet = 304; zeronet = 304;
lirc = 305; lirc = 305;
lidarr = 306; lidarr = 306;
slurm = 307;
kapacitor = 308;
# When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
@ -622,6 +624,8 @@
zeronet = 304; zeronet = 304;
lirc = 305; lirc = 305;
lidarr = 306; lidarr = 306;
slurm = 307;
kapacitor = 308;
# When adding a gid, make sure it doesn't match an existing # When adding a gid, make sure it doesn't match an existing
# uid. Users and groups with the same name should have equal # uid. Users and groups with the same name should have equal

View File

@ -433,6 +433,7 @@
./services/monitoring/hdaps.nix ./services/monitoring/hdaps.nix
./services/monitoring/heapster.nix ./services/monitoring/heapster.nix
./services/monitoring/incron.nix ./services/monitoring/incron.nix
./services/monitoring/kapacitor.nix
./services/monitoring/longview.nix ./services/monitoring/longview.nix
./services/monitoring/monit.nix ./services/monitoring/monit.nix
./services/monitoring/munin.nix ./services/monitoring/munin.nix

View File

@ -13,7 +13,7 @@ with lib;
# Set up the per-user profile. # Set up the per-user profile.
mkdir -m 0755 -p "$NIX_USER_PROFILE_DIR" mkdir -m 0755 -p "$NIX_USER_PROFILE_DIR"
if [ "$(stat --printf '%u' "$NIX_USER_PROFILE_DIR")" != "$(id -u)" ]; then if [ "$(stat --printf '%u' "$NIX_USER_PROFILE_DIR")" != "$(id -u)" ]; then
echo "WARNING: bad ownership on $NIX_USER_PROFILE_DIR, should be $(id -u)" >&2 echo "WARNING: the per-user profile dir $NIX_USER_PROFILE_DIR should belong to user id $(id -u)" >&2
fi fi
if [ -w "$HOME" ]; then if [ -w "$HOME" ]; then
@ -35,7 +35,7 @@ with lib;
NIX_USER_GCROOTS_DIR="/nix/var/nix/gcroots/per-user/$USER" NIX_USER_GCROOTS_DIR="/nix/var/nix/gcroots/per-user/$USER"
mkdir -m 0755 -p "$NIX_USER_GCROOTS_DIR" mkdir -m 0755 -p "$NIX_USER_GCROOTS_DIR"
if [ "$(stat --printf '%u' "$NIX_USER_GCROOTS_DIR")" != "$(id -u)" ]; then if [ "$(stat --printf '%u' "$NIX_USER_GCROOTS_DIR")" != "$(id -u)" ]; then
echo "WARNING: bad ownership on $NIX_USER_GCROOTS_DIR, should be $(id -u)" >&2 echo "WARNING: the per-user gcroots dir $NIX_USER_GCROOTS_DIR should belong to user id $(id -u)" >&2
fi fi
# Set up a default Nix expression from which to install stuff. # Set up a default Nix expression from which to install stuff.

View File

@ -28,7 +28,10 @@ with lib;
(config: (config:
let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config; let enabled = getAttrFromPath [ "services" "printing" "gutenprint" ] config;
in if enabled then [ pkgs.gutenprint ] else [ ])) in if enabled then [ pkgs.gutenprint ] else [ ]))
(mkRenamedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ]) (mkChangedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ]
(config:
let value = getAttrFromPath [ "services" "ddclient" "domain" ] config;
in if value != "" then [ value ] else []))
(mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "") (mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "")
(mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ]) (mkRenamedOptionModule [ "services" "elasticsearch" "host" ] [ "services" "elasticsearch" "listenAddress" ])
(mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ]) (mkRenamedOptionModule [ "services" "graphite" "api" "host" ] [ "services" "graphite" "api" "listenAddress" ])

View File

@ -28,7 +28,7 @@ with lib;
capability setuid, capability setuid,
network inet raw, network inet raw,
${pkgs.glibc.out}/lib/*.so mr, ${pkgs.stdenv.cc.libc.out}/lib/*.so mr,
${pkgs.libcap.lib}/lib/libcap.so* mr, ${pkgs.libcap.lib}/lib/libcap.so* mr,
${pkgs.attr.out}/lib/libattr.so* mr, ${pkgs.attr.out}/lib/libattr.so* mr,

View File

@ -170,4 +170,6 @@ in {
''; '';
}) cfg.params; }) cfg.params;
}; };
meta.maintainers = with lib.maintainers; [ ekleog ];
} }

View File

@ -6,13 +6,18 @@ let
cfg = config.services.slurm; cfg = config.services.slurm;
# configuration file can be generated by http://slurm.schedmd.com/configurator.html # configuration file can be generated by http://slurm.schedmd.com/configurator.html
defaultUser = "slurm";
configFile = pkgs.writeTextDir "slurm.conf" configFile = pkgs.writeTextDir "slurm.conf"
'' ''
ClusterName=${cfg.clusterName} ClusterName=${cfg.clusterName}
StateSaveLocation=${cfg.stateSaveLocation}
SlurmUser=${cfg.user}
${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''} ${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''}
${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''} ${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''}
${optionalString (cfg.nodeName != null) ''nodeName=${cfg.nodeName}''} ${toString (map (x: "NodeName=${x}\n") cfg.nodeName)}
${optionalString (cfg.partitionName != null) ''partitionName=${cfg.partitionName}''} ${toString (map (x: "PartitionName=${x}\n") cfg.partitionName)}
PlugStackConfig=${plugStackConfig} PlugStackConfig=${plugStackConfig}
ProctrackType=${cfg.procTrackType} ProctrackType=${cfg.procTrackType}
${cfg.extraConfig} ${cfg.extraConfig}
@ -24,12 +29,19 @@ let
${cfg.extraPlugstackConfig} ${cfg.extraPlugstackConfig}
''; '';
cgroupConfig = pkgs.writeTextDir "cgroup.conf" cgroupConfig = pkgs.writeTextDir "cgroup.conf"
'' ''
${cfg.extraCgroupConfig} ${cfg.extraCgroupConfig}
''; '';
slurmdbdConf = pkgs.writeTextDir "slurmdbd.conf"
''
DbdHost=${cfg.dbdserver.dbdHost}
SlurmUser=${cfg.user}
StorageType=accounting_storage/mysql
${cfg.dbdserver.extraConfig}
'';
# slurm expects some additional config files to be # slurm expects some additional config files to be
# in the same directory as slurm.conf # in the same directory as slurm.conf
etcSlurm = pkgs.symlinkJoin { etcSlurm = pkgs.symlinkJoin {
@ -43,6 +55,8 @@ in
###### interface ###### interface
meta.maintainers = [ maintainers.markuskowa ];
options = { options = {
services.slurm = { services.slurm = {
@ -60,6 +74,27 @@ in
}; };
}; };
dbdserver = {
enable = mkEnableOption "SlurmDBD service";
dbdHost = mkOption {
type = types.str;
default = config.networking.hostName;
description = ''
Hostname of the machine where <literal>slurmdbd</literal>
is running (i.e. name returned by <literal>hostname -s</literal>).
'';
};
extraConfig = mkOption {
type = types.lines;
default = "";
description = ''
Extra configuration for <literal>slurmdbd.conf</literal>
'';
};
};
client = { client = {
enable = mkEnableOption "slurm client daemon"; enable = mkEnableOption "slurm client daemon";
}; };
@ -116,9 +151,9 @@ in
}; };
nodeName = mkOption { nodeName = mkOption {
type = types.nullOr types.str; type = types.listOf types.str;
default = null; default = [];
example = "linux[1-32] CPUs=1 State=UNKNOWN"; example = literalExample ''[ "linux[1-32] CPUs=1 State=UNKNOWN" ];'';
description = '' description = ''
Name that SLURM uses to refer to a node (or base partition for BlueGene Name that SLURM uses to refer to a node (or base partition for BlueGene
systems). Typically this would be the string that "/bin/hostname -s" systems). Typically this would be the string that "/bin/hostname -s"
@ -127,9 +162,9 @@ in
}; };
partitionName = mkOption { partitionName = mkOption {
type = types.nullOr types.str; type = types.listOf types.str;
default = null; default = [];
example = "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP"; example = literalExample ''[ "debug Nodes=linux[1-32] Default=YES MaxTime=INFINITE State=UP" ];'';
description = '' description = ''
Name by which the partition may be referenced. Note that now you have Name by which the partition may be referenced. Note that now you have
to write the partition's parameters after the name. to write the partition's parameters after the name.
@ -150,7 +185,7 @@ in
}; };
procTrackType = mkOption { procTrackType = mkOption {
type = types.string; type = types.str;
default = "proctrack/linuxproc"; default = "proctrack/linuxproc";
description = '' description = ''
Plugin to be used for process tracking on a job step basis. Plugin to be used for process tracking on a job step basis.
@ -159,6 +194,25 @@ in
''; '';
}; };
stateSaveLocation = mkOption {
type = types.str;
default = "/var/spool/slurmctld";
description = ''
Directory into which the Slurm controller, slurmctld, saves its state.
'';
};
user = mkOption {
type = types.str;
default = defaultUser;
description = ''
Set this option when you want to run the slurmctld daemon
as something else than the default slurm user "slurm".
Note that the UID of this user needs to be the same
on all nodes.
'';
};
extraConfig = mkOption { extraConfig = mkOption {
default = ""; default = "";
type = types.lines; type = types.lines;
@ -184,6 +238,8 @@ in
used when <literal>procTrackType=proctrack/cgroup</literal>. used when <literal>procTrackType=proctrack/cgroup</literal>.
''; '';
}; };
}; };
}; };
@ -220,12 +276,24 @@ in
''; '';
}; };
in mkIf (cfg.enableStools || cfg.client.enable || cfg.server.enable) { in mkIf ( cfg.enableStools ||
cfg.client.enable ||
cfg.server.enable ||
cfg.dbdserver.enable ) {
environment.systemPackages = [ wrappedSlurm ]; environment.systemPackages = [ wrappedSlurm ];
services.munge.enable = mkDefault true; services.munge.enable = mkDefault true;
# use a static uid as default to ensure it is the same on all nodes
users.users.slurm = mkIf (cfg.user == defaultUser) {
name = defaultUser;
group = "slurm";
uid = config.ids.uids.slurm;
};
users.groups.slurm.gid = config.ids.uids.slurm;
systemd.services.slurmd = mkIf (cfg.client.enable) { systemd.services.slurmd = mkIf (cfg.client.enable) {
path = with pkgs; [ wrappedSlurm coreutils ] path = with pkgs; [ wrappedSlurm coreutils ]
++ lib.optional cfg.enableSrunX11 slurm-spank-x11; ++ lib.optional cfg.enableSrunX11 slurm-spank-x11;
@ -261,6 +329,29 @@ in
PIDFile = "/run/slurmctld.pid"; PIDFile = "/run/slurmctld.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
}; };
preStart = ''
mkdir -p ${cfg.stateSaveLocation}
chown -R ${cfg.user}:slurm ${cfg.stateSaveLocation}
'';
};
systemd.services.slurmdbd = mkIf (cfg.dbdserver.enable) {
path = with pkgs; [ wrappedSlurm munge coreutils ];
wantedBy = [ "multi-user.target" ];
after = [ "network.target" "munged.service" "mysql.service" ];
requires = [ "munged.service" "mysql.service" ];
# slurm strips the last component off the path
environment.SLURM_CONF = "${slurmdbdConf}/slurm.conf";
serviceConfig = {
Type = "forking";
ExecStart = "${cfg.package}/bin/slurmdbd";
PIDFile = "/run/slurmdbd.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
};
}; };
}; };

View File

@ -176,4 +176,6 @@ in
} }
) cfg.instances); ) cfg.instances);
}; };
meta.maintainers = with lib.maintainers; [ ekleog ];
} }

View File

@ -115,4 +115,6 @@ in
}; };
}; };
}; };
meta.maintainers = with lib.maintainers; [ ekleog ];
} }

View File

@ -157,6 +157,7 @@ in {
Restart = "on-failure"; Restart = "on-failure";
ProtectSystem = "strict"; ProtectSystem = "strict";
ReadWritePaths = "${cfg.configDir}"; ReadWritePaths = "${cfg.configDir}";
KillSignal = "SIGINT";
PrivateTmp = true; PrivateTmp = true;
RemoveIPC = true; RemoveIPC = true;
}; };

View File

@ -0,0 +1,154 @@
{ options, config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.kapacitor;
kapacitorConf = pkgs.writeTextFile {
name = "kapacitord.conf";
text = ''
hostname="${config.networking.hostName}"
data_dir="${cfg.dataDir}"
[http]
bind-address = "${cfg.bind}:${toString cfg.port}"
log-enabled = false
auth-enabled = false
[task]
dir = "${cfg.dataDir}/tasks"
snapshot-interval = "${cfg.taskSnapshotInterval}"
[replay]
dir = "${cfg.dataDir}/replay"
[storage]
boltdb = "${cfg.dataDir}/kapacitor.db"
${optionalString (cfg.loadDirectory != null) ''
[load]
enabled = true
dir = "${cfg.loadDirectory}"
''}
${optionalString (cfg.defaultDatabase.enable) ''
[[influxdb]]
name = "default"
enabled = true
default = true
urls = [ "${cfg.defaultDatabase.url}" ]
username = "${cfg.defaultDatabase.username}"
password = "${cfg.defaultDatabase.password}"
''}
${cfg.extraConfig}
'';
};
in
{
options.services.kapacitor = {
enable = mkEnableOption "kapacitor";
dataDir = mkOption {
type = types.path;
example = "/var/lib/kapacitor";
default = "/var/lib/kapacitor";
description = "Location where Kapacitor stores its state";
};
port = mkOption {
type = types.int;
default = 9092;
description = "Port of Kapacitor";
};
bind = mkOption {
type = types.str;
default = "";
example = literalExample "0.0.0.0";
description = "Address to bind to. The default is to bind to all addresses";
};
extraConfig = mkOption {
description = "These lines go into kapacitord.conf verbatim.";
default = "";
type = types.lines;
};
user = mkOption {
type = types.str;
default = "kapacitor";
description = "User account under which Kapacitor runs";
};
group = mkOption {
type = types.str;
default = "kapacitor";
description = "Group under which Kapacitor runs";
};
taskSnapshotInterval = mkOption {
type = types.str;
description = "Specifies how often to snapshot the task state (in InfluxDB time units)";
default = "1m0s";
example = "1m0s";
};
loadDirectory = mkOption {
type = types.nullOr types.path;
description = "Directory where to load services from, such as tasks, templates and handlers (or null to disable service loading on startup)";
default = null;
};
defaultDatabase = {
enable = mkEnableOption "kapacitor.defaultDatabase";
url = mkOption {
description = "The URL to an InfluxDB server that serves as the default database";
example = "http://localhost:8086";
type = types.string;
};
username = mkOption {
description = "The username to connect to the remote InfluxDB server";
type = types.string;
};
password = mkOption {
description = "The password to connect to the remote InfluxDB server";
type = types.string;
};
};
};
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.kapacitor ];
systemd.services.kapacitor = {
description = "Kapacitor Real-Time Stream Processing Engine";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
serviceConfig = {
ExecStart = "${pkgs.kapacitor}/bin/kapacitord -config ${kapacitorConf}";
User = "kapacitor";
Group = "kapacitor";
PermissionsStartOnly = true;
};
preStart = ''
mkdir -p ${cfg.dataDir}
chown ${cfg.user}:${cfg.group} ${cfg.dataDir}
'';
};
users.users.kapacitor = {
uid = config.ids.uids.kapacitor;
description = "Kapacitor user";
home = cfg.dataDir;
};
users.groups.kapacitor = {
gid = config.ids.gids.kapacitor;
};
};
}

View File

@ -267,4 +267,6 @@ in
"ip46tables -t nat -D OUTPUT -p tcp ${redCond block} -j ${chain} 2>/dev/null || true" "ip46tables -t nat -D OUTPUT -p tcp ${redCond block} -j ${chain} 2>/dev/null || true"
) cfg.redsocks; ) cfg.redsocks;
}; };
meta.maintainers = with lib.maintainers; [ ekleog ];
} }

View File

@ -62,9 +62,21 @@ in {
dataDir = mkOption { dataDir = mkOption {
type = types.path; type = types.path;
default = "/var/lib/syncthing"; default = "/var/lib/syncthing";
description = ''
Path where synced directories will exist.
'';
};
configDir = mkOption {
type = types.path;
description = '' description = ''
Path where the settings and keys will exist. Path where the settings and keys will exist.
''; '';
default =
let
nixos = config.system.stateVersion;
cond = versionAtLeast nixos "19.03";
in cfg.dataDir + (optionalString cond "/.config/syncthing");
}; };
openDefaultPorts = mkOption { openDefaultPorts = mkOption {
@ -144,7 +156,7 @@ in {
${cfg.package}/bin/syncthing \ ${cfg.package}/bin/syncthing \
-no-browser \ -no-browser \
-gui-address=${cfg.guiAddress} \ -gui-address=${cfg.guiAddress} \
-home=${cfg.dataDir} -home=${cfg.configDir}
''; '';
}; };
}; };

View File

@ -39,7 +39,8 @@ in
systemd.services.zerotierone = { systemd.services.zerotierone = {
description = "ZeroTierOne"; description = "ZeroTierOne";
path = [ cfg.package ]; path = [ cfg.package ];
after = [ "network.target" ]; bindsTo = [ "network-online.target" ];
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''
mkdir -p /var/lib/zerotier-one/networks.d mkdir -p /var/lib/zerotier-one/networks.d

View File

@ -22,7 +22,7 @@ let
# This wrapper ensures that we actually get themes # This wrapper ensures that we actually get themes
makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \ makeWrapper ${pkgs.lightdm_gtk_greeter}/sbin/lightdm-gtk-greeter \
$out/greeter \ $out/greeter \
--prefix PATH : "${pkgs.glibc.bin}/bin" \ --prefix PATH : "${lib.getBin pkgs.stdenv.cc.libc}/bin" \
--set GDK_PIXBUF_MODULE_FILE "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \ --set GDK_PIXBUF_MODULE_FILE "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" \
--set GTK_PATH "${theme}:${pkgs.gtk3.out}" \ --set GTK_PATH "${theme}:${pkgs.gtk3.out}" \
--set GTK_EXE_PREFIX "${theme}" \ --set GTK_EXE_PREFIX "${theme}" \

View File

@ -21,7 +21,8 @@ let
[ coreutils [ coreutils
gnugrep gnugrep
findutils findutils
glibc # needed for getent getent
stdenv.cc.libc # nscd in update-users-groups.pl
shadow shadow
nettools # needed for hostname nettools # needed for hostname
utillinux # needed for mount and mountpoint utillinux # needed for mount and mountpoint

View File

@ -147,7 +147,7 @@ let
${config.boot.initrd.extraUtilsCommands} ${config.boot.initrd.extraUtilsCommands}
# Copy ld manually since it isn't detected correctly # Copy ld manually since it isn't detected correctly
cp -pv ${pkgs.glibc.out}/lib/ld*.so.? $out/lib cp -pv ${pkgs.stdenv.cc.libc.out}/lib/ld*.so.? $out/lib
# Copy all of the needed libraries # Copy all of the needed libraries
find $out/bin $out/lib -type f | while read BIN; do find $out/bin $out/lib -type f | while read BIN; do

View File

@ -112,6 +112,7 @@ in {
environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] []; environment.etc."systemd/nspawn".source = generateUnits "nspawn" units [] [];
systemd.targets."multi-user".wants = [ "machines.target "];
}; };
} }

View File

@ -243,6 +243,9 @@ let
Restart = "on-failure"; Restart = "on-failure";
Slice = "machine.slice";
Delegate = true;
# Hack: we don't want to kill systemd-nspawn, since we call # Hack: we don't want to kill systemd-nspawn, since we call
# "machinectl poweroff" in preStop to shut down the # "machinectl poweroff" in preStop to shut down the
# container cleanly. But systemd requires sending a signal # container cleanly. But systemd requires sending a signal
@ -657,6 +660,8 @@ in
serviceConfig = serviceDirectives dummyConfig; serviceConfig = serviceDirectives dummyConfig;
}; };
in { in {
systemd.targets."multi-user".wants = [ "machines.target" ];
systemd.services = listToAttrs (filter (x: x.value != null) ( systemd.services = listToAttrs (filter (x: x.value != null) (
# The generic container template used by imperative containers # The generic container template used by imperative containers
[{ name = "container@"; value = unit; }] [{ name = "container@"; value = unit; }]
@ -680,7 +685,7 @@ in
} // ( } // (
if config.autoStart then if config.autoStart then
{ {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "machines.target" ];
wants = [ "network.target" ]; wants = [ "network.target" ];
after = [ "network.target" ]; after = [ "network.target" ];
restartTriggers = [ config.path ]; restartTriggers = [ config.path ];

View File

@ -196,6 +196,8 @@ in {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = with pkgs; [ coreutils libvirt gawk ]; path = with pkgs; [ coreutils libvirt gawk ];
restartIfChanged = false; restartIfChanged = false;
environment.ON_SHUTDOWN = "${cfg.onShutdown}";
}; };
systemd.sockets.virtlogd = { systemd.sockets.virtlogd = {

View File

@ -10,9 +10,8 @@ import ./make-test.nix ({pkgs, ...}: rec {
emptyDiskImages = [ 20480 20480 ]; emptyDiskImages = [ 20480 20480 ];
vlans = [ 1 ]; vlans = [ 1 ];
}; };
networking = { networking = {
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [ interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
{ address = "192.168.1.1"; prefixLength = 24; } { address = "192.168.1.1"; prefixLength = 24; }
@ -54,7 +53,7 @@ import ./make-test.nix ({pkgs, ...}: rec {
}; };
}; };
}; };
testScript = { ... }: '' testScript = { ... }: ''
startAll; startAll;
@ -83,7 +82,7 @@ import ./make-test.nix ({pkgs, ...}: rec {
# Can't check ceph status until a mon is up # Can't check ceph status until a mon is up
$aio->succeed("ceph -s | grep 'mon: 1 daemons'"); $aio->succeed("ceph -s | grep 'mon: 1 daemons'");
# Start the ceph-mgr daemon, it has no deps and hardly any setup # Start the ceph-mgr daemon, it has no deps and hardly any setup
$aio->mustSucceed( $aio->mustSucceed(
"ceph auth get-or-create mgr.aio mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-aio/keyring", "ceph auth get-or-create mgr.aio mon 'allow profile mgr' osd 'allow *' mds 'allow *' > /var/lib/ceph/mgr/ceph-aio/keyring",

View File

@ -12,8 +12,10 @@ with pkgs.lib;
mapAttrs (channel: chromiumPkg: makeTest rec { mapAttrs (channel: chromiumPkg: makeTest rec {
name = "chromium-${channel}"; name = "chromium-${channel}";
meta = with pkgs.stdenv.lib.maintainers; { meta = {
maintainers = [ aszlig ]; maintainers = with maintainers; [ aszlig ];
# https://github.com/NixOS/hydra/issues/591#issuecomment-435125621
inherit (chromiumPkg.meta) timeout;
}; };
enableOCR = true; enableOCR = true;
@ -166,7 +168,7 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
my $clipboard = $machine->succeed(ru "${pkgs.xclip}/bin/xclip -o"); my $clipboard = $machine->succeed(ru "${pkgs.xclip}/bin/xclip -o");
die "sandbox not working properly: $clipboard" die "sandbox not working properly: $clipboard"
unless $clipboard =~ /namespace sandbox.*yes/mi unless $clipboard =~ /layer 1 sandbox.*namespace/mi
&& $clipboard =~ /pid namespaces.*yes/mi && $clipboard =~ /pid namespaces.*yes/mi
&& $clipboard =~ /network namespaces.*yes/mi && $clipboard =~ /network namespaces.*yes/mi
&& $clipboard =~ /seccomp.*sandbox.*yes/mi && $clipboard =~ /seccomp.*sandbox.*yes/mi
@ -184,7 +186,7 @@ mapAttrs (channel: chromiumPkg: makeTest rec {
my $clipboard = $machine->succeed(ru "${pkgs.xclip}/bin/xclip -o"); my $clipboard = $machine->succeed(ru "${pkgs.xclip}/bin/xclip -o");
die "copying twice in a row does not work properly: $clipboard" die "copying twice in a row does not work properly: $clipboard"
unless $clipboard =~ /namespace sandbox.*yes/mi unless $clipboard =~ /layer 1 sandbox.*namespace/mi
&& $clipboard =~ /pid namespaces.*yes/mi && $clipboard =~ /pid namespaces.*yes/mi
&& $clipboard =~ /network namespaces.*yes/mi && $clipboard =~ /network namespaces.*yes/mi
&& $clipboard =~ /seccomp.*sandbox.*yes/mi && $clipboard =~ /seccomp.*sandbox.*yes/mi

View File

@ -13,9 +13,6 @@ let
# CJDNS output is incompatible with the XML log. # CJDNS output is incompatible with the XML log.
systemd.services.cjdns.serviceConfig.StandardOutput = "null"; systemd.services.cjdns.serviceConfig.StandardOutput = "null";
#networking.firewall.enable = true;
networking.firewall.allowPing = true;
#networking.firewall.rejectPackets = true;
}; };
in in

View File

@ -42,7 +42,6 @@ import ./make-test.nix ({ pkgs, ...} : {
{ services.httpd.enable = true; { services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org"; services.httpd.adminAddr = "foo@example.org";
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
}; };
}; };

View File

@ -43,7 +43,6 @@ import ./make-test.nix ({ pkgs, ...} : {
config = config =
{ {
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
}; };
}; };

View File

@ -20,7 +20,6 @@ import ./make-test.nix ({ pkgs, ...} : {
{ services.httpd.enable = true; { services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org"; services.httpd.adminAddr = "foo@example.org";
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
system.stateVersion = "18.03"; system.stateVersion = "18.03";
}; };
}; };

View File

@ -25,7 +25,6 @@ import ./make-test.nix ({ pkgs, ...} : {
{ services.httpd.enable = true; { services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org"; services.httpd.adminAddr = "foo@example.org";
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
}; };
}; };

View File

@ -28,7 +28,6 @@ import ./make-test.nix ({ pkgs, ...} : {
{ services.httpd.enable = true; { services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.org"; services.httpd.adminAddr = "foo@example.org";
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
}; };
}; };

View File

@ -10,7 +10,6 @@ let
hostBridge = "br0"; hostBridge = "br0";
config = { config = {
networking.firewall.enable = false; networking.firewall.enable = false;
networking.firewall.allowPing = true;
networking.interfaces.eth0.ipv4.addresses = [ networking.interfaces.eth0.ipv4.addresses = [
{ address = "192.168.1.122"; prefixLength = 24; } { address = "192.168.1.122"; prefixLength = 24; }
]; ];

View File

@ -11,7 +11,6 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false,
lib.mkMerge [ lib.mkMerge [
{ virtualisation.vlans = [ 2 1 ]; { virtualisation.vlans = [ 2 1 ];
networking.firewall.enable = withFirewall; networking.firewall.enable = withFirewall;
networking.firewall.allowPing = true;
networking.nat.internalIPs = [ "192.168.1.0/24" ]; networking.nat.internalIPs = [ "192.168.1.0/24" ];
networking.nat.externalInterface = "eth1"; networking.nat.externalInterface = "eth1";
} }
@ -33,7 +32,6 @@ import ./make-test.nix ({ pkgs, lib, withFirewall, withConntrackHelpers ? false,
{ pkgs, nodes, ... }: { pkgs, nodes, ... }:
lib.mkMerge [ lib.mkMerge [
{ virtualisation.vlans = [ 1 ]; { virtualisation.vlans = [ 1 ];
networking.firewall.allowPing = true;
networking.defaultGateway = networking.defaultGateway =
(pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address; (pkgs.lib.head nodes.router.config.networking.interfaces.eth2.ipv4.addresses).address;
} }

View File

@ -17,7 +17,6 @@ let
networking = { networking = {
useDHCP = false; useDHCP = false;
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
firewall.checkReversePath = true; firewall.checkReversePath = true;
firewall.allowedUDPPorts = [ 547 ]; firewall.allowedUDPPorts = [ 547 ];
interfaces = mkOverride 0 (listToAttrs (flip map vlanIfs (n: interfaces = mkOverride 0 (listToAttrs (flip map vlanIfs (n:
@ -86,7 +85,6 @@ let
virtualisation.vlans = [ 1 2 ]; virtualisation.vlans = [ 1 2 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
defaultGateway = "192.168.1.1"; defaultGateway = "192.168.1.1";
interfaces.eth1.ipv4.addresses = mkOverride 0 [ interfaces.eth1.ipv4.addresses = mkOverride 0 [
@ -139,7 +137,6 @@ let
virtualisation.vlans = [ 1 2 ]; virtualisation.vlans = [ 1 2 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = true; useDHCP = true;
interfaces.eth1 = { interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ]; ipv4.addresses = mkOverride 0 [ ];
@ -194,7 +191,6 @@ let
virtualisation.vlans = [ 1 2 ]; virtualisation.vlans = [ 1 2 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
interfaces.eth1 = { interfaces.eth1 = {
ipv4.addresses = mkOverride 0 [ ]; ipv4.addresses = mkOverride 0 [ ];
@ -234,7 +230,6 @@ let
virtualisation.vlans = [ 1 2 ]; virtualisation.vlans = [ 1 2 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
bonds.bond = { bonds.bond = {
interfaces = [ "eth1" "eth2" ]; interfaces = [ "eth1" "eth2" ];
@ -271,7 +266,6 @@ let
virtualisation.vlans = [ vlan ]; virtualisation.vlans = [ vlan ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
interfaces.eth1.ipv4.addresses = mkOverride 0 interfaces.eth1.ipv4.addresses = mkOverride 0
[ { inherit address; prefixLength = 24; } ]; [ { inherit address; prefixLength = 24; } ];
@ -285,7 +279,6 @@ let
virtualisation.vlans = [ 1 2 ]; virtualisation.vlans = [ 1 2 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
bridges.bridge.interfaces = [ "eth1" "eth2" ]; bridges.bridge.interfaces = [ "eth1" "eth2" ];
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ]; interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
@ -329,7 +322,6 @@ let
# reverse path filtering rules for the macvlan interface seem # reverse path filtering rules for the macvlan interface seem
# to be incorrect, causing the test to fail. Disable temporarily. # to be incorrect, causing the test to fail. Disable temporarily.
firewall.checkReversePath = false; firewall.checkReversePath = false;
firewall.allowPing = true;
useDHCP = true; useDHCP = true;
macvlans.macvlan.interface = "eth1"; macvlans.macvlan.interface = "eth1";
interfaces.eth1.ipv4.addresses = mkOverride 0 [ ]; interfaces.eth1.ipv4.addresses = mkOverride 0 [ ];
@ -415,7 +407,6 @@ let
#virtualisation.vlans = [ 1 ]; #virtualisation.vlans = [ 1 ];
networking = { networking = {
useNetworkd = networkd; useNetworkd = networkd;
firewall.allowPing = true;
useDHCP = false; useDHCP = false;
vlans.vlan = { vlans.vlan = {
id = 1; id = 1;

View File

@ -66,7 +66,6 @@ import ./make-test.nix ({ pkgs, ... }:
virtualisation.vlans = [ 3 ]; virtualisation.vlans = [ 3 ];
networking.defaultGateway = ifAddr nodes.router2 "eth1"; networking.defaultGateway = ifAddr nodes.router2 "eth1";
networking.firewall.allowedTCPPorts = [ 80 ]; networking.firewall.allowedTCPPorts = [ 80 ];
networking.firewall.allowPing = true;
services.httpd.enable = true; services.httpd.enable = true;
services.httpd.adminAddr = "foo@example.com"; services.httpd.adminAddr = "foo@example.com";
}; };

View File

@ -1,22 +1,27 @@
import ./make-test.nix ({ ... }: import ./make-test.nix ({ lib, ... }:
let mungekey = "mungeverryweakkeybuteasytointegratoinatest"; let
mungekey = "mungeverryweakkeybuteasytointegratoinatest";
slurmconfig = { slurmconfig = {
controlMachine = "control"; controlMachine = "control";
nodeName = '' nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
control partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
NodeName=node[1-3] CPUs=1 State=UNKNOWN extraConfig = ''
AccountingStorageHost=dbd
AccountingStorageType=accounting_storage/slurmdbd
''; '';
partitionName = "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP";
}; };
in { in {
name = "slurm"; name = "slurm";
meta.maintainers = [ lib.maintainers.markuskowa ];
nodes = nodes =
let let
computeNode = computeNode =
{ ...}: { ...}:
{ {
# TODO slrumd port and slurmctld port should be configurations and # TODO slurmd port and slurmctld port should be configurations and
# automatically allowed by the firewall. # automatically allowed by the firewall.
networking.firewall.enable = false; networking.firewall.enable = false;
services.slurm = { services.slurm = {
@ -43,6 +48,24 @@ in {
} // slurmconfig; } // slurmconfig;
}; };
dbd =
{ pkgs, ... } :
{
networking.firewall.enable = false;
services.slurm.dbdserver = {
enable = true;
};
services.mysql = {
enable = true;
package = pkgs.mysql;
ensureDatabases = [ "slurm_acct_db" ];
ensureUsers = [{
ensurePermissions = { "slurm_acct_db.*" = "ALL PRIVILEGES"; };
name = "slurm";
}];
};
};
node1 = computeNode; node1 = computeNode;
node2 = computeNode; node2 = computeNode;
node3 = computeNode; node3 = computeNode;
@ -54,7 +77,7 @@ in {
startAll; startAll;
# Set up authentification across the cluster # Set up authentification across the cluster
foreach my $node (($submit,$control,$node1,$node2,$node3)) foreach my $node (($submit,$control,$dbd,$node1,$node2,$node3))
{ {
$node->waitForUnit("default.target"); $node->waitForUnit("default.target");
@ -63,10 +86,22 @@ in {
$node->succeed("chmod 0400 /etc/munge/munge.key"); $node->succeed("chmod 0400 /etc/munge/munge.key");
$node->succeed("chown munge:munge /etc/munge/munge.key"); $node->succeed("chown munge:munge /etc/munge/munge.key");
$node->succeed("systemctl restart munged"); $node->succeed("systemctl restart munged");
}
$node->waitForUnit("munged");
};
# Restart the services since they have probably failed due to the munge init # Restart the services since they have probably failed due to the munge init
# failure # failure
subtest "can_start_slurmdbd", sub {
$dbd->succeed("systemctl restart slurmdbd");
$dbd->waitForUnit("slurmdbd.service");
};
# there needs to be an entry for the current
# cluster in the database before slurmctld is restarted
subtest "add_account", sub {
$control->succeed("sacctmgr -i add cluster default");
};
subtest "can_start_slurmctld", sub { subtest "can_start_slurmctld", sub {
$control->succeed("systemctl restart slurmctld"); $control->succeed("systemctl restart slurmctld");
@ -81,12 +116,17 @@ in {
} }
}; };
# Test that the cluster work and can distribute jobs; # Test that the cluster works and can distribute jobs;
subtest "run_distributed_command", sub { subtest "run_distributed_command", sub {
# Run `hostname` on 3 nodes of the partition (so on all the 3 nodes). # Run `hostname` on 3 nodes of the partition (so on all the 3 nodes).
# The output must contain the 3 different names # The output must contain the 3 different names
$submit->succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq"); $submit->succeed("srun -N 3 hostname | sort | uniq | wc -l | xargs test 3 -eq");
}; };
subtest "check_slurm_dbd", sub {
# find the srun job from above in the database
$submit->succeed("sacct | grep hostname");
};
''; '';
}) })

View File

@ -0,0 +1,30 @@
{ stdenv, fetchFromGitHub, pkgconfig, pango, cairo, libGLU, lv2 }:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "avldrums.lv2";
version = "0.3.0";
src = fetchFromGitHub {
owner = "x42";
repo = pname;
rev = "v${version}";
sha256 = "0w51gdshq2i5bix2x5l3g3gnycy84nlzf5sj0jkrw0zrnbk6ghwg";
fetchSubmodules = true;
};
installFlags = "PREFIX=$(out)";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
pango cairo libGLU lv2
];
meta = with stdenv.lib; {
description = "Dedicated AVLDrumkits LV2 Plugin";
homepage = http://x42-plugins.com/x42/x42-avldrums;
license = licenses.gpl2;
maintainers = [ maintainers.magnetophon ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}

View File

@ -0,0 +1,29 @@
{ stdenv, fetchFromGitHub, xorg, xproto, cairo, lv2, pkgconfig }:
stdenv.mkDerivation rec {
name = "${pname}-${version}";
pname = "GxPlugins.lv2";
version = "0.5";
src = fetchFromGitHub {
owner = "brummer10";
repo = pname;
rev = "v${version}";
sha256 = "16r5bj7w726d9327flg530fn0bli4crkxjss7i56yhb1bsi39mbv";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [
xorg.libX11 xproto cairo lv2
];
installFlags = [ "INSTALL_DIR=$(out)/lib/lv2" ];
meta = with stdenv.lib; {
homepage = https://github.com/brummer10/GxPlugins.lv2;
description = "A set of extra lv2 plugins from the guitarix project";
maintainers = [ maintainers.magnetophon ];
license = licenses.gpl3;
};
}

View File

@ -0,0 +1,49 @@
{ stdenv, fetchFromGitHub, fetchzip, cmake, pkgconfig, lv2, alsaLib, libjack2,
freetype, libX11, gtk3, pcre, libpthreadstubs, libXdmcp, libxkbcommon,
epoxy, at-spi2-core, dbus, curl, fftwFloat }:
let
pname = "HybridReverb2";
version = "2.1.1";
owner = "jpcima";
DBversion = "1.0.0";
in
stdenv.mkDerivation rec {
name = "${pname}-${version}";
impulseDB = fetchzip {
url = "https://github.com/${owner}/${pname}-impulse-response-database/archive/v${DBversion}.zip";
sha256 = "1hlfxbbkahm1k2sk3c3n2mjaz7k80ky3r55xil8nfbvbv0qan89z";
};
src = fetchFromGitHub {
inherit owner;
repo = pname;
rev = "v${version}";
sha256 = "15mba9qvlis0qrklr50wp3jdysvmk33m7pvclp0k1is9pirj97cb";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ lv2 alsaLib libjack2 freetype libX11 gtk3 pcre
libpthreadstubs libXdmcp libxkbcommon epoxy at-spi2-core dbus curl fftwFloat ];
cmakeFlags = [
"-DHybridReverb2_AdvancedJackStandalone=ON"
"-DHybridReverb2_UseLocalDatabase=ON"
];
postInstall = ''
mkdir -p $out/share/${pname}/
cp -r ${impulseDB}/* $out/share/${pname}/
'';
meta = with stdenv.lib; {
homepage = http://www2.ika.ruhr-uni-bochum.de/HybridReverb2;
description = "Reverb effect using hybrid impulse convolution";
license = licenses.gpl2Plus;
maintainers = [ maintainers.magnetophon ];
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,47 @@
{ stdenv, fetchFromGitHub , libjack2, lv2, xorg, liblo, libGL, libXcursor, pkgconfig }:
stdenv.mkDerivation rec {
name = "wolf-shaper-${version}";
version = "0.1.6";
src = fetchFromGitHub {
owner = "pdesaulniers";
repo = "wolf-shaper";
rev = "v${version}";
sha256 = "01h5dm1nrr0i54ancwznr7wn4vpw08dw0b69v3axy32r5j7plw6s";
fetchSubmodules = true;
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libjack2 lv2 xorg.libX11 liblo libGL libXcursor ];
makeFlags = [
"BUILD_LV2=true"
"BUILD_DSSI=true"
"BUILD_VST2=true"
"BUILD_JACK=true"
];
patchPhase = ''
patchShebangs ./dpf/utils/generate-ttl.sh
'';
installPhase = ''
mkdir -p $out/lib/lv2
mkdir -p $out/lib/dssi
mkdir -p $out/lib/vst
mkdir -p $out/bin/
cp -r bin/wolf-shaper.lv2 $out/lib/lv2/
cp -r bin/wolf-shaper-dssi* $out/lib/dssi/
cp -r bin/wolf-shaper-vst.so $out/lib/vst/
cp -r bin/wolf-shaper $out/bin/
'';
meta = with stdenv.lib; {
homepage = https://pdesaulniers.github.io/wolf-shaper/;
description = "Waveshaper plugin with spline-based graph editor";
license = licenses.gpl3;
maintainers = [ maintainers.magnetophon ];
platforms = [ "i686-linux" "x86_64-linux" ];
};
}

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "lightdm-mini-greeter-${version}"; name = "lightdm-mini-greeter-${version}";
version = "0.3.2"; version = "0.3.3";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "prikhi"; owner = "prikhi";
repo = "lightdm-mini-greeter"; repo = "lightdm-mini-greeter";
rev = version; rev = version;
sha256 = "1g3lrh034w38hiq96b0xmghmlf87hcycwdh06dwkdksr0hl08wxy"; sha256 = "1xlj5wqagp765rqw40ci4wir21qwyszasynk82x8308k5d3asvwb";
}; };
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
description = "A minimal, configurable, single-user GTK3 LightDM greeter"; description = "A minimal, configurable, single-user GTK3 LightDM greeter";
homepage = https://github.com/prikhi/lightdm-mini-greeter; homepage = https://github.com/prikhi/lightdm-mini-greeter;
license = licenses.gpl3; license = licenses.gpl3;
maintainers = with maintainers; [ mnacamura ]; maintainers = with maintainers; [ mnacamura prikhi ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -13,9 +13,9 @@ let
sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r"; sha256Hash = "117skqjax1xz9plarhdnrw2rwprjpybdc7mx7wggxapyy920vv5r";
}; };
betaVersion = { betaVersion = {
version = "3.3.0.13"; # "Android Studio 3.3 Beta 1" version = "3.3.0.14"; # "Android Studio 3.3 Beta 2"
build = "182.5073496"; build = "182.5078385";
sha256Hash = "0bg1h0msd6mpkvirkg4pssa1ak32smv2rlxxsjdm3p29p8gg59px"; sha256Hash = "10jw508fzxbknfl1l058ksnnli2nav91wmh2x2p0mz96lkf5bvhn";
}; };
latestVersion = { # canary & dev latestVersion = { # canary & dev
version = "3.4.0.1"; # "Android Studio 3.4 Canary 2" version = "3.4.0.1"; # "Android Studio 3.4 Canary 2"

View File

@ -3,14 +3,14 @@
let let
versions = { versions = {
atom = { atom = {
version = "1.32.0"; version = "1.32.1";
sha256 = "0dha8zi4gshxj993ns7ybi7q86pfqwzsasrk3a7b5xrdqbrcm5md"; sha256 = "1x22jbhvagqw9mvq0v7z4z09qp727vl0rkyvaxn98xnj9gvcfkq9";
}; };
atom-beta = { atom-beta = {
version = "1.33.0"; version = "1.33.0";
beta = 0; beta = 1;
sha256 = "1x4s12zvfd2gjy7mimndbhs6x9k37jq4dyy6r1mzhwfysix74val"; sha256 = "0sf98apmb57msgr5p1xly0mffzn2s808nsfsmbisk4qqmm9fv2m3";
}; };
}; };

View File

@ -129,6 +129,7 @@ let
kontact = callPackage ./kontact.nix {}; kontact = callPackage ./kontact.nix {};
kontactinterface = callPackage ./kontactinterface.nix {}; kontactinterface = callPackage ./kontactinterface.nix {};
konquest = callPackage ./konquest.nix {}; konquest = callPackage ./konquest.nix {};
konqueror = callPackage ./konqueror.nix {};
korganizer = callPackage ./korganizer.nix {}; korganizer = callPackage ./korganizer.nix {};
kpimtextedit = callPackage ./kpimtextedit.nix {}; kpimtextedit = callPackage ./kpimtextedit.nix {};
ksmtp = callPackage ./ksmtp {}; ksmtp = callPackage ./ksmtp {};

View File

@ -0,0 +1,20 @@
{ lib
, mkDerivation
, extra-cmake-modules, kdoctools
, kdelibs4support, kcmutils, khtml, kdesu
, qtwebkit, qtwebengine, qtx11extras, qtscript, qtwayland
}:
mkDerivation {
name = "konqueror";
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
buildInputs = [
kdelibs4support kcmutils khtml kdesu
qtwebkit qtwebengine qtx11extras qtscript qtwayland
];
meta = {
license = with lib.licenses; [ gpl2 ];
maintainers = with lib.maintainers; [ ];
};
}

View File

@ -3,7 +3,7 @@
let let
pname = "albert"; pname = "albert";
version = "0.14.21"; version = "0.14.22";
in in
mkDerivation rec { mkDerivation rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
@ -12,7 +12,7 @@ mkDerivation rec {
owner = "albertlauncher"; owner = "albertlauncher";
repo = "albert"; repo = "albert";
rev = "v${version}"; rev = "v${version}";
sha256 = "16nk9krn1mwr0bh57viig9hizqyp3slna0qg7s5a736nsfxy226w"; sha256 = "0i9kss5szirmd0pzw3cm692kl9rhkan1zfywfqrjdf3i3b6914sg";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -48,7 +48,7 @@ mkDerivation rec {
homepage = https://albertlauncher.github.io/; homepage = https://albertlauncher.github.io/;
description = "Desktop agnostic launcher"; description = "Desktop agnostic launcher";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
maintainers = with maintainers; [ ericsagnes ]; maintainers = with maintainers; [ ericsagnes synthetica ];
platforms = platforms.linux; platforms = platforms.linux;
}; };
} }

View File

@ -0,0 +1,71 @@
{ stdenv, fetchFromGitHub, cmake, pkgconfig, libuuid
, sane-backends, podofo, libjpeg, djvulibre, libxmlxx3, libzip, tesseract
, enchant, intltool, poppler, json-glib
, ninja
, python3
# Gtk deps
# upstream gImagereader supports Qt too
, gtk3, gobjectIntrospection, wrapGAppsHook
, gnome3, gtkspell3, gtkspellmm, cairomm
}:
let
variant = "gtk";
pythonEnv = python3.withPackages( ps: with ps;[ pygobject3 ] );
in
stdenv.mkDerivation rec {
name = "gImageReader-${version}";
version = "3.2.99";
src = fetchFromGitHub {
owner= "manisandro";
repo = "gImageReader";
rev = "v${version}";
sha256 = "19dbxq83j77lbvi10a8x0xxgw5hbsqyc852c196zzvmwk3km6pnc";
};
nativeBuildInputs = [
cmake ninja
intltool
pkgconfig
pythonEnv
# Gtk specific
wrapGAppsHook
gobjectIntrospection
];
buildInputs = [
enchant
libxmlxx3
libzip
libuuid
sane-backends
podofo
libjpeg
djvulibre
tesseract
poppler
# Gtk specific
gnome3.gtkmm
gtkspell3
gtkspellmm
gnome3.gtksourceview
gnome3.gtksourceviewmm
cairomm
json-glib
];
# interface type can be where <type> is either gtk, qt5, qt4
cmakeFlags = [ "-DINTERFACE_TYPE=${variant}" ];
meta = with stdenv.lib; {
description = "A simple Gtk/Qt front-end to tesseract-ocr";
homepage = https://github.com/manisandro/gImageReader;
license = licenses.gpl3Plus;
maintainers = with maintainers; [teto];
platforms = platforms.linux;
};
}

View File

@ -1,8 +1,8 @@
{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }: { stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec { buildGoPackage rec {
name = "hugo-${version}"; name = "hugo-${version}";
version = "0.49.2"; version = "0.50";
goPackagePath = "github.com/gohugoio/hugo"; goPackagePath = "github.com/gohugoio/hugo";
@ -10,16 +10,9 @@ buildGoPackage rec {
owner = "gohugoio"; owner = "gohugoio";
repo = "hugo"; repo = "hugo";
rev = "v${version}"; rev = "v${version}";
sha256 = "0a320mv6x770vppbz0aw5ikywmy0mxqq1lhc0syp48hgg42d46is"; sha256 = "1shrw7pxwrz9g5x9bq6k5qvhn3fqmwznadpw7i07msh97p8b3dyn";
}; };
patches = [
(fetchpatch {
url = "https://github.com/gohugoio/hugo/commit/b137ad4dbd6d14d0a9af68c044aaee61f2c87fe5.diff";
sha256 = "0w1gpg11idqywqcpwzvx4xabn02kk8y4jmyz4h67mc3yh2dhq3ll";
})
];
goDeps = ./deps.nix; goDeps = ./deps.nix;
buildFlags = "-tags extended"; buildFlags = "-tags extended";

View File

@ -555,8 +555,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/spf13/jwalterweatherman"; url = "https://github.com/spf13/jwalterweatherman";
rev = "4a4406e478ca"; rev = "94f6ae3ed3bc";
sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8"; sha256 = "1ywmkwci5zyd88ijym6f30fj5c0k2yayxarkmnazf5ybljv50q7b";
}; };
} }
@ -605,8 +605,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/tdewolff/minify"; url = "https://github.com/tdewolff/minify";
rev = "v2.3.5"; rev = "v2.3.6";
sha256 = "0x67kgjhc6mfzjhr4xmw0j3qapzhkgwwahvv5b44rb449ml2qx5m"; sha256 = "0p4v4ab49lm5y438k5aks06fpiagbjw2j2x7i8jaa273mkgicrbb";
}; };
} }
@ -615,8 +615,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/tdewolff/parse"; url = "https://github.com/tdewolff/parse";
rev = "v2.3.3"; rev = "fced451e0bed";
sha256 = "190y2jykp8qyp6y58ky1v1fvmaqjnrsr1ksbqrrspf1gpjy69i94"; sha256 = "1n6wcapk8xbck2zjxd4l5cgfn1v12rr7znrdpd5y2xp1nc3739c3";
}; };
} }
@ -625,8 +625,8 @@
fetch = { fetch = {
type = "git"; type = "git";
url = "https://github.com/tdewolff/test"; url = "https://github.com/tdewolff/test";
rev = "265427085153"; rev = "v1.0.0";
sha256 = "1h0cmsjjia92w50dzr06c5h10zd5c7snhpixqjv94wbl7dv80yp0"; sha256 = "10vyp4bhanzg3yl9k8zqfdrxpsmx8yc53xv4lqxfymd7jjyqgssj";
}; };
} }

View File

@ -1,4 +1,4 @@
{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jre10 }: { fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "josm-${version}"; name = "josm-${version}";
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
sha256 = "102dph3479qskzf72cpb9139pq9ifka6pzna1c6s5rs2il6mfvsb"; sha256 = "102dph3479qskzf72cpb9139pq9ifka6pzna1c6s5rs2il6mfvsb";
}; };
buildInputs = [ jre10 makeWrapper ]; buildInputs = [ jdk11 makeWrapper ];
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "josm"; name = "josm";
@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/bin $out/share/java mkdir -p $out/bin $out/share/java
cp -v $src $out/share/java/josm.jar cp -v $src $out/share/java/josm.jar
makeWrapper ${jre10}/bin/java $out/bin/josm \ makeWrapper ${jdk11}/bin/java $out/bin/josm \
--add-flags "-jar $out/share/java/josm.jar" --add-flags "-jar $out/share/java/josm.jar"
mkdir -p $out/share/applications mkdir -p $out/share/applications

View File

@ -64,10 +64,15 @@ stdenv.mkDerivation rec {
(if i3Support || i3GapsSupport then makeWrapper else null) (if i3Support || i3GapsSupport then makeWrapper else null)
]; ];
fixupPhase = if (i3Support || i3GapsSupport) then '' postConfigure = ''
wrapProgram $out/bin/polybar \ substituteInPlace ../include/settings.hpp --replace \
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin" "${stdenv.cc}" "${stdenv.cc.name}"
'' else null; '';
postInstall = if (i3Support || i3GapsSupport) then ''
wrapProgram $out/bin/polybar \
--prefix PATH : "${if i3Support then i3 else i3-gaps}/bin"
'' else "";
nativeBuildInputs = [ nativeBuildInputs = [
cmake pkgconfig cmake pkgconfig

View File

@ -1,4 +1,5 @@
{ stdenv, fetchFromGitHub, python3Packages, hackrf, rtl-sdr }: { stdenv, fetchFromGitHub, python3Packages
, hackrf, rtl-sdr, airspy, limesuite }:
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
name = "urh-${version}"; name = "urh-${version}";
@ -11,7 +12,7 @@ python3Packages.buildPythonApplication rec {
sha256 = "0cwbqcv0yffg6fa3g4zknwffa6119i6827w6jm74fhlfa9kwy34c"; sha256 = "0cwbqcv0yffg6fa3g4zknwffa6119i6827w6jm74fhlfa9kwy34c";
}; };
buildInputs = [ hackrf rtl-sdr ]; buildInputs = [ hackrf rtl-sdr airspy limesuite ];
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
pyqt5 numpy psutil cython pyzmq pyqt5 numpy psutil cython pyzmq
]; ];

View File

@ -222,6 +222,8 @@ let
use_gold = true; use_gold = true;
gold_path = "${stdenv.cc}/bin"; gold_path = "${stdenv.cc}/bin";
is_debug = false; is_debug = false;
# at least 2X compilation speedup
use_jumbo_build = true;
proprietary_codecs = false; proprietary_codecs = false;
use_sysroot = false; use_sysroot = false;

View File

@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
sed -i 's/<2.2.0//' setup.py sed -i 's/<2.2.0//' setup.py
''; '';
propagatedBuildInputs = with python3Packages; [ tornado_4 pythondaemon ]; propagatedBuildInputs = with python3Packages; [ tornado_4 python-daemon ];
# Requires tox, hadoop, and google cloud # Requires tox, hadoop, and google cloud
doCheck = false; doCheck = false;

View File

@ -56,11 +56,11 @@ let
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "signal-desktop-${version}"; name = "signal-desktop-${version}";
version = "1.17.2"; version = "1.17.3";
src = fetchurl { src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
sha256 = "1ibci07w4dh7r0dkwb3nbqm470rgak2a98rlqf8390rxrinfli3p"; sha256 = "1k0gj24562jfj748s7qcn1f7brr1c0zn2dppxvfv2ka2r2n0z1h4";
}; };
phases = [ "unpackPhase" "installPhase" ]; phases = [ "unpackPhase" "installPhase" ];

View File

@ -0,0 +1,50 @@
{ stdenv, buildEnv, pkgconfig, python3, fetchhg, gtk3, glib, gdbm, gtkspell3, itstool, libappindicator-gtk3, perlPackages, glibcLocales, meson, ninja }:
stdenv.mkDerivation rec {
name = "modem-manager-gui-${version}";
version = "0.0.19.1";
src = fetchhg {
url = https://linuxonly@bitbucket.org/linuxonly/modem-manager-gui;
rev = "version ${version}";
sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd";
};
LC_ALL = "en_US.utf-8";
nativeBuildInputs = [
pkgconfig
python3
perlPackages.Po4a
itstool
glibcLocales
meson
ninja
];
buildInputs = [
gtk3
glib
gdbm
gtkspell3
libappindicator-gtk3
];
postPatch = ''
patchShebangs man/manhelper.py
'';
meta = with stdenv.lib; {
description = "An app to send/receive SMS, make USSD requests, control mobile data usage and more";
longDescription = ''
A simple GTK+ based GUI compatible with Modem manager, Wader and oFono
system services able to control EDGE/3G/4G broadband modem specific
functions. You can check balance of your SIM card, send or receive SMS
messages, control mobile traffic consumption and more.
'';
homepage = https://linuxonly.ru/page/modem-manager-gui;
license = licenses.gpl3;
maintainers = with maintainers; [ ahuzik ];
platforms = platforms.linux;
};
}

View File

@ -3,11 +3,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tribler-${version}"; name = "tribler-${version}";
version = "7.0.2"; version = "7.1.2";
src = fetchurl { src = fetchurl {
url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.xz"; url = "https://github.com/Tribler/tribler/releases/download/v${version}/Tribler-v${version}.tar.gz";
sha256 = "1p0d0l0sa0nrnbyx2gg50nklkljwvl581i9w3z5qbkfzc7jsdy42"; sha256 = "1ayzqx4358qlx56hsnsn5s8xl6mzdb6nw4kwsalmp86dw6vmmis8";
}; };
buildInputs = [ buildInputs = [
@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
pythonPackages.psutil pythonPackages.psutil
pythonPackages.meliae pythonPackages.meliae
pythonPackages.sip pythonPackages.sip
pythonPackages.pillow
pythonPackages.networkx
]; ];
postPatch = '' postPatch = ''

View File

@ -2,7 +2,7 @@
libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }: libsecret, libGL, libpulseaudio, glib, makeWrapper, makeDesktopItem }:
let let
version = "1.0.6-1"; version = "1.1.0-1";
description = '' description = ''
An application that runs on your computer in the background and seamlessly encrypts An application that runs on your computer in the background and seamlessly encrypts
@ -25,7 +25,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb"; url = "https://protonmail.com/download/protonmail-bridge_${version}_amd64.deb";
sha256 = "1as4xdsik2w9clbrwp1k00491324cg6araz3jq2m013yg1cild28"; sha256 = "0l29z208krnd3dginc203m4p5dlmnxf08vpmbm9xzlckwmswizkb";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
@ -38,10 +38,10 @@ in stdenv.mkDerivation rec {
installPhase = '' installPhase = ''
mkdir -p $out/{bin,lib,share/applications} mkdir -p $out/{bin,lib,share/applications}
# mkdir -p $out/share/{applications,icons/hicolor/scalable/apps} mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
cp -r usr/lib/protonmail/bridge/Desktop-Bridge{,.sh} $out/lib cp -r usr/lib/protonmail/bridge/Desktop-Bridge{,.sh} $out/lib
# cp usr/share/icons/protonmail/Desktop-Bridge.svg $out/share/icons/hicolor/scalable/apps/desktop-bridge.svg cp usr/share/icons/protonmail/Desktop-Bridge.svg $out/share/icons/hicolor/scalable/apps/desktop-bridge.svg
cp ${desktopItem}/share/applications/* $out/share/applications cp ${desktopItem}/share/applications/* $out/share/applications
ln -s $out/lib/Desktop-Bridge $out/bin/Desktop-Bridge ln -s $out/lib/Desktop-Bridge $out/bin/Desktop-Bridge

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitLab, cmake, pkgconfig, wrapGAppsHook { stdenv, fetchFromGitLab, cmake, ninja, pkgconfig, wrapGAppsHook
, glib, gtk3, gettext, libxkbfile, libX11 , glib, gtk3, gettext, libxkbfile, libX11
, freerdp, libssh, libgcrypt, gnutls, makeDesktopItem , freerdp, libssh, libgcrypt, gnutls, makeDesktopItem
, pcre, libdbusmenu-gtk3, libappindicator-gtk3 , pcre, libdbusmenu-gtk3, libappindicator-gtk3
@ -7,24 +7,11 @@
, openssl, gsettings-desktop-schemas, json-glib , openssl, gsettings-desktop-schemas, json-glib
# The themes here are soft dependencies; only icons are missing without them. # The themes here are soft dependencies; only icons are missing without them.
, hicolor-icon-theme, adwaita-icon-theme , hicolor-icon-theme, adwaita-icon-theme
, gnomeSupport ? true, libgnome-keyring
}: }:
with stdenv.lib; with stdenv.lib;
let stdenv.mkDerivation {
desktopItem = makeDesktopItem {
name = "remmina";
desktopName = "Remmina";
genericName = "Remmina Remote Desktop Client";
exec = "remmina";
icon = "remmina";
comment = "Connect to remote desktops";
categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
};
in stdenv.mkDerivation rec {
name = "remmina-${version}"; name = "remmina-${version}";
version = "1.2.32"; version = "1.2.32";
@ -35,22 +22,16 @@ in stdenv.mkDerivation rec {
sha256 = "15szv1xs6drxq6qyksmxcfdz516ja4zm52r4yf6hwij3fgl8qdpw"; sha256 = "15szv1xs6drxq6qyksmxcfdz516ja4zm52r4yf6hwij3fgl8qdpw";
}; };
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ];
buildInputs = [ buildInputs = [
cmake wrapGAppsHook gsettings-desktop-schemas gsettings-desktop-schemas
glib gtk3 gettext libxkbfile libX11 glib gtk3 gettext libxkbfile libX11
freerdp libssh libgcrypt gnutls freerdp libssh libgcrypt gnutls
pcre libdbusmenu-gtk3 libappindicator-gtk3 pcre libdbusmenu-gtk3 libappindicator-gtk3
libvncserver libpthreadstubs libXdmcp libxkbcommon libvncserver libpthreadstubs libXdmcp libxkbcommon
libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core libsecret libsoup spice-protocol spice-gtk epoxy at-spi2-core
openssl hicolor-icon-theme adwaita-icon-theme json-glib openssl hicolor-icon-theme adwaita-icon-theme json-glib
] ];
++ optional gnomeSupport libgnome-keyring;
preConfigure = optionalString (!gnomeSupport) ''
substituteInPlace CMakeLists.txt \
--replace "add_subdirectory(remmina-plugins-gnome)" ""
'';
cmakeFlags = [ cmakeFlags = [
"-DWITH_VTE=OFF" "-DWITH_VTE=OFF"
@ -68,13 +49,8 @@ in stdenv.mkDerivation rec {
) )
''; '';
postInstall = ''
mkdir -pv $out/share/applications
cp ${desktopItem}/share/applications/* $out/share/applications
'';
meta = { meta = {
license = stdenv.lib.licenses.gpl2; license = licenses.gpl2;
homepage = https://gitlab.com/Remmina/Remmina; homepage = https://gitlab.com/Remmina/Remmina;
description = "Remote desktop client written in GTK+"; description = "Remote desktop client written in GTK+";
maintainers = with maintainers; [ melsigl ryantm ]; maintainers = with maintainers; [ melsigl ryantm ];

View File

@ -4,8 +4,8 @@ let
hts-nim = fetchFromGitHub { hts-nim = fetchFromGitHub {
owner = "brentp"; owner = "brentp";
repo = "hts-nim"; repo = "hts-nim";
rev = "9cd83e30522ab64cd71eb8209be4154aa5579ce1"; rev = "v0.2.5";
sha256 = "10g408idy14667varq1syf06rrbpk63i3ib7i5dh1md4ib19av6f"; sha256 = "1fma99rjqxgg9dihkd10hm1jjp5amsk5wsxnvq1lk4mcsjix5xqb";
}; };
docopt = fetchFromGitHub { docopt = fetchFromGitHub {
@ -28,7 +28,10 @@ in stdenv.mkDerivation rec {
buildInputs = [ nim ]; buildInputs = [ nim ];
buildPhase = "nim -p:${hts-nim}/src -p:${docopt}/src c -d:release mosdepth.nim"; buildPhase = ''
HOME=$TMPDIR
nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
'';
installPhase = "install -Dt $out/bin mosdepth"; installPhase = "install -Dt $out/bin mosdepth";
fixupPhase = "patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc htslib pcre ]} $out/bin/mosdepth"; fixupPhase = "patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc htslib pcre ]} $out/bin/mosdepth";

View File

@ -13,11 +13,11 @@ with lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "kicad-${version}"; name = "kicad-${version}";
series = "5.0"; series = "5.0";
version = "5.0.0"; version = "5.0.1";
src = fetchurl { src = fetchurl {
url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz"; url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
sha256 = "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"; sha256 = "0skig2wdxxc2677m8a8m1xrg3pkhqiqnmkcyr2hv0b2j30rzdr2z";
}; };
postPatch = '' postPatch = ''

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "z3-${version}"; name = "z3-${version}";
version = "4.7.1"; version = "4.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Z3Prover"; owner = "Z3Prover";
repo = "z3"; repo = "z3";
rev = "3b1b82bef05a1b5fd69ece79c80a95fb6d72a990"; rev = name;
sha256 = "1s850r6qifwl83zzgvrb5l0jigvmymzpv18ph71hg2bcpk7kjw3d"; sha256 = "1vr57bwx40sd5riijyrhy70i2wnv9xrdihf6y5zdz56yq88rl48f";
}; };
buildInputs = [ python fixDarwinDylibNames ]; buildInputs = [ python fixDarwinDylibNames ];

View File

@ -1,6 +1,6 @@
{ stdenv, buildGo19Package, fetchFromGitHub, curl, libgit2_0_27, ncurses, pkgconfig, readline }: { stdenv, buildGo19Package, fetchFromGitHub, curl, libgit2_0_27, ncurses, pkgconfig, readline }:
let let
version = "0.2.0"; version = "0.3.0";
in in
buildGo19Package { buildGo19Package {
name = "grv-${version}"; name = "grv-${version}";
@ -14,10 +14,14 @@ buildGo19Package {
owner = "rgburke"; owner = "rgburke";
repo = "grv"; repo = "grv";
rev = "v${version}"; rev = "v${version}";
sha256 = "0hlqw6b51jglqzzjgazncckpgarp25ghshl0lxv1mff80jg8wd1a"; sha256 = "00v502mwnpv09l7fsbq3s72i5fz5dxbildwxgw0r8zzf6d54xrgl";
fetchSubmodules = true; fetchSubmodules = true;
}; };
postPatch = ''
rm util/update_latest_release.go
'';
buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ]; buildFlagsArray = [ "-ldflags=" "-X main.version=${version}" ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,7 +2,7 @@
buildGoPackage rec { buildGoPackage rec {
name = "hub-${version}"; name = "hub-${version}";
version = "2.5.1"; version = "2.6.0";
goPackagePath = "github.com/github/hub"; goPackagePath = "github.com/github/hub";
@ -10,10 +10,11 @@ buildGoPackage rec {
owner = "github"; owner = "github";
repo = "hub"; repo = "hub";
rev = "v${version}"; rev = "v${version}";
sha256 = "0a5i351v998vdwf883qhh39c15x56db01fr9hscz4ha7r9550pqg"; sha256 = "0hxmbpyv2yjxg4v3z50x5ikgcz7mgv5prya8jcpi277vq2s0wwa1";
}; };
buildInputs = [ groff ronn ruby utillinux ] ++ nativeBuildInputs = [ groff ronn utillinux ];
buildInputs = [ ruby ] ++
stdenv.lib.optional stdenv.isDarwin Security; stdenv.lib.optional stdenv.isDarwin Security;
postPatch = '' postPatch = ''
@ -29,7 +30,7 @@ buildGoPackage rec {
install -D etc/hub.fish_completion "$bin/share/fish/vendor_completions.d/hub.fish" install -D etc/hub.fish_completion "$bin/share/fish/vendor_completions.d/hub.fish"
make man-pages make man-pages
cp -r share/man $bin/share/man cp -vr --parents share/man/man[1-9]/*.[1-9] $bin/
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -7,11 +7,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "smartgithg-${version}"; name = "smartgithg-${version}";
version = "18_1_4"; version = "18_1_5";
src = fetchurl { src = fetchurl {
url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz"; url = "https://www.syntevo.com/downloads/smartgit/smartgit-linux-${version}.tar.gz";
sha256 = "18gyfcs5g7xq8fqnn1zjzx350jaynrniain0giay8sxych12p4cm"; sha256 = "0f2aj3259jvn7n0x6m8sbwliikln9lqffd00jg75dblhxwl8adg3";
}; };
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];

View File

@ -28,7 +28,7 @@ in runCommand name {
passthru = passthru // { passthru = passthru // {
env = runCommand "${name}-shell-env" { env = runCommand "${name}-shell-env" {
shellHook = '' shellHook = ''
exec ${chrootenv} ${init "bash"} "$(pwd)" exec ${chrootenv} ${init runScript} "$(pwd)"
''; '';
} '' } ''
echo >&2 "" echo >&2 ""

View File

@ -44,14 +44,14 @@ class SPECTemplate(object):
self.key = self.getSelfKey() self.key = self.getSelfKey()
tmpDir = os.path.join(outputDir, self.rewriteName(self.spec.sourceHeader['name'])) tmpDir = os.path.join(outputDir, self.rewriteName(self.spec.sourceHeader['name']))
if self.translateTable != None: if self.translateTable is not None:
self.relOutputDir = self.translateTable.path(self.key,tmpDir) self.relOutputDir = self.translateTable.path(self.key,tmpDir)
else: else:
self.relOutputDir = tmpDir self.relOutputDir = tmpDir
self.final_output_dir = os.path.normpath( self.relOutputDir ) self.final_output_dir = os.path.normpath( self.relOutputDir )
if self.repositoryDir != None: if self.repositoryDir is not None:
self.potential_repository_dir = os.path.normpath( os.path.join(self.repositoryDir,self.relOutputDir) ) self.potential_repository_dir = os.path.normpath( os.path.join(self.repositoryDir,self.relOutputDir) )
@ -59,7 +59,7 @@ class SPECTemplate(object):
def rewriteCommands(self, string): def rewriteCommands(self, string):
string = string.replace('SPACER_DIR_FOR_REMOVAL/','') string = string.replace('SPACER_DIR_FOR_REMOVAL/','')
string = string.replace('SPACER_DIR_FOR_REMOVAL','') string = string.replace('SPACER_DIR_FOR_REMOVAL','')
string = '\n'.join(map(lambda line: ' '.join(map(lambda x: x.replace('SOURCE_DIR_SPACER/',('${./' if (self.buildRootInclude == None) else '${buildRoot}/usr/share/buildroot/SOURCES/'))+('}' if (self.buildRootInclude == None) else '') if x.startswith('SOURCE_DIR_SPACER/') else x, line.split(' '))), string.split('\n'))) string = '\n'.join(map(lambda line: ' '.join(map(lambda x: x.replace('SOURCE_DIR_SPACER/',('${./' if (self.buildRootInclude is None) else '${buildRoot}/usr/share/buildroot/SOURCES/'))+('}' if (self.buildRootInclude is None) else '') if x.startswith('SOURCE_DIR_SPACER/') else x, line.split(' '))), string.split('\n')))
string = string.replace('\n','\n ') string = string.replace('\n','\n ')
string = string.rstrip() string = string.rstrip()
return string return string
@ -82,7 +82,7 @@ class SPECTemplate(object):
rewrite = lambda l: ''.join(camelcase(filterDoc(filterDevel(l)))) rewrite = lambda l: ''.join(camelcase(filterDoc(filterDevel(l))))
def filterPackageGroup(target): def filterPackageGroup(target):
if target == None: if target is None:
return [ rewrite(x.split('-')) for x in inputs if (not x.split('-')[0] in self.packageGroups) or (len(x.split('-')) == 1) ] return [ rewrite(x.split('-')) for x in inputs if (not x.split('-')[0] in self.packageGroups) or (len(x.split('-')) == 1) ]
elif target in self.packageGroups: elif target in self.packageGroups:
return [ target + '_' + rewrite(x.split('-')[1:]) for x in inputs if (x.split('-')[0] == target) and (len(x.split('-')) > 1)] return [ target + '_' + rewrite(x.split('-')[1:]) for x in inputs if (x.split('-')[0] == target) and (len(x.split('-')) > 1)]
@ -90,7 +90,7 @@ class SPECTemplate(object):
raise Exception("Unknown target") raise Exception("Unknown target")
return [] return []
if target == None: if target is None:
packages = filterPackageGroup(None) packages = filterPackageGroup(None)
packages.sort() packages.sort()
elif target in self.packageGroups: elif target in self.packageGroups:
@ -111,7 +111,7 @@ class SPECTemplate(object):
def getBuildInputs(self,target=None): def getBuildInputs(self,target=None):
inputs = self.rewriteInputs(target,self.spec.sourceHeader['requires']) inputs = self.rewriteInputs(target,self.spec.sourceHeader['requires'])
if self.translateTable != None: if self.translateTable is not None:
return map(lambda x: self.translateTable.name(x), inputs) return map(lambda x: self.translateTable.name(x), inputs)
else: else:
return inputs return inputs
@ -125,7 +125,7 @@ class SPECTemplate(object):
return key return key
def getSelf(self): def getSelf(self):
if self.translateTable != None: if self.translateTable is not None:
return self.translateTable.name(self.key) return self.translateTable.name(self.key)
else: else:
return self.key return self.key
@ -161,7 +161,7 @@ class SPECTemplate(object):
facts["sha256"].append(sha256) facts["sha256"].append(sha256)
patches = [source for (source, _, flag) in self.spec.sources if flag==2] patches = [source for (source, _, flag) in self.spec.sources if flag==2]
if self.buildRootInclude == None: if self.buildRootInclude is None:
facts["patches"] = map(lambda x: './'+x, patches) facts["patches"] = map(lambda x: './'+x, patches)
else: else:
facts["patches"] = map(lambda x: '"${buildRoot}/usr/share/buildroot/SOURCES/'+x+'"', reversed(patches)) facts["patches"] = map(lambda x: '"${buildRoot}/usr/share/buildroot/SOURCES/'+x+'"', reversed(patches))
@ -292,7 +292,7 @@ class SPECTemplate(object):
if not os.path.exists(self.final_output_dir): if not os.path.exists(self.final_output_dir):
os.makedirs(self.final_output_dir) os.makedirs(self.final_output_dir)
if self.inputDir != None: if self.inputDir is not None:
self.copySources(self.inputDir, self.final_output_dir) self.copySources(self.inputDir, self.final_output_dir)
self.copyPatches(self.inputDir, self.final_output_dir) self.copyPatches(self.inputDir, self.final_output_dir)
@ -334,19 +334,19 @@ class NixTemplate(object):
url = re.match(r'^\s*url\s*=\s*"?(.*?)"?\s*;\s*$', line) url = re.match(r'^\s*url\s*=\s*"?(.*?)"?\s*;\s*$', line)
sha256 = re.match(r'^\s*sha256\s*=\s*"(.*?)"\s*;\s*$', line) sha256 = re.match(r'^\s*sha256\s*=\s*"(.*?)"\s*;\s*$', line)
patches = re.match(r'^\s*patches\s*=\s*(\[.*?\])\s*;\s*$', line) patches = re.match(r'^\s*patches\s*=\s*(\[.*?\])\s*;\s*$', line)
if name != None and self.original["name"] == None: if name is not None and self.original["name"] is None:
self.original["name"] = name.group(1) self.original["name"] = name.group(1)
self.matchedLines[n] = "name" self.matchedLines[n] = "name"
if version != None and self.original["version"] == None: if version is not None and self.original["version"] is None:
self.original["version"] = version.group(1) self.original["version"] = version.group(1)
self.matchedLines[n] = "version" self.matchedLines[n] = "version"
if url != None and self.original["url"] == None: if url is not None and self.original["url"] is None:
self.original["url"] = url.group(1) self.original["url"] = url.group(1)
self.matchedLines[n] = "url" self.matchedLines[n] = "url"
if sha256 != None and self.original["sha256"] == None: if sha256 is not None and self.original["sha256"] is None:
self.original["sha256"] = sha256.group(1) self.original["sha256"] = sha256.group(1)
self.matchedLines[n] = "sha256" self.matchedLines[n] = "sha256"
if patches != None and self.original["patches"] == None: if patches is not None and self.original["patches"] is None:
self.original["patches"] = patches.group(1) self.original["patches"] = patches.group(1)
self.matchedLines[n] = "patches" self.matchedLines[n] = "patches"
@ -355,7 +355,7 @@ class NixTemplate(object):
nixTemplateFile = open(os.path.normpath(self.nixfile),'r') nixTemplateFile = open(os.path.normpath(self.nixfile),'r')
nixOutFile = open(os.path.normpath(nixOut),'w') nixOutFile = open(os.path.normpath(nixOut),'w')
for (n,line) in enumerate(nixTemplateFile): for (n,line) in enumerate(nixTemplateFile):
if self.matchedLines.has_key(n) and self.update[self.matchedLines[n]] != None: if self.matchedLines.has_key(n) and self.update[self.matchedLines[n]] is not None:
nixOutFile.write(line.replace(self.original[self.matchedLines[n]], self.update[self.matchedLines[n]], 1)) nixOutFile.write(line.replace(self.original[self.matchedLines[n]], self.update[self.matchedLines[n]], 1))
else: else:
nixOutFile.write(line) nixOutFile.write(line)
@ -383,14 +383,14 @@ class TranslationTable(object):
def update(self, key, path, name=None): def update(self, key, path, name=None):
self.tablePath[key] = path self.tablePath[key] = path
if name != None: if name is not None:
self.tableName[key] = name self.tableName[key] = name
def readTable(self, tableFile): def readTable(self, tableFile):
with file(tableFile, 'r') as infile: with file(tableFile, 'r') as infile:
for line in infile: for line in infile:
match = re.match(r'^(.+?)\s+(.+?)\s+(.+?)\s*$', line) match = re.match(r'^(.+?)\s+(.+?)\s+(.+?)\s*$', line)
if match != None: if match is not None:
if not self.tablePath.has_key(match.group(1)): if not self.tablePath.has_key(match.group(1)):
self.tablePath[match.group(1)] = match.group(2) self.tablePath[match.group(1)] = match.group(2)
if not self.tableName.has_key(match.group(1)): if not self.tableName.has_key(match.group(1)):
@ -449,7 +449,7 @@ if __name__ == "__main__":
nameMap = {} nameMap = {}
newTable = TranslationTable() newTable = TranslationTable()
if args.translate != None: if args.translate is not None:
table = TranslationTable() table = TranslationTable()
table.readTable(args.translate) table.readTable(args.translate)
newTable.readTable(args.translate) newTable.readTable(args.translate)
@ -461,7 +461,7 @@ if __name__ == "__main__":
sys.stderr.write("INFO: generate nix file from: %s\n" % specPath) sys.stderr.write("INFO: generate nix file from: %s\n" % specPath)
spec = SPECTemplate(specPath, args.output, args.inputSources, args.buildRoot, table, args.repository, allPackagesDir, args.maintainer) spec = SPECTemplate(specPath, args.output, args.inputSources, args.buildRoot, table, args.repository, allPackagesDir, args.maintainer)
if args.repository != None: if args.repository is not None:
if os.path.exists(os.path.join(spec.potential_repository_dir,'default.nix')): if os.path.exists(os.path.join(spec.potential_repository_dir,'default.nix')):
nixTemplate = NixTemplate(os.path.join(spec.potential_repository_dir,'default.nix')) nixTemplate = NixTemplate(os.path.join(spec.potential_repository_dir,'default.nix'))
nixTemplate.loadUpdate(spec.facts) nixTemplate.loadUpdate(spec.facts)
@ -470,12 +470,12 @@ if __name__ == "__main__":
nixTemplate.generateUpdated(os.path.join(spec.final_output_dir,'default.nix')) nixTemplate.generateUpdated(os.path.join(spec.final_output_dir,'default.nix'))
else: else:
sys.stderr.write("WARNING: Repository does not contain template: %s\n" % os.path.join(spec.potential_repository_dir,'default.nix')) sys.stderr.write("WARNING: Repository does not contain template: %s\n" % os.path.join(spec.potential_repository_dir,'default.nix'))
if args.buildRoot == None: if args.buildRoot is None:
spec.generateCombined() spec.generateCombined()
else: else:
buildRootContent[spec.key] = spec.generateSplit() buildRootContent[spec.key] = spec.generateSplit()
else: else:
if args.buildRoot == None: if args.buildRoot is None:
spec.generateCombined() spec.generateCombined()
else: else:
buildRootContent[spec.key] = spec.generateSplit() buildRootContent[spec.key] = spec.generateSplit()
@ -486,7 +486,7 @@ if __name__ == "__main__":
except Exception, e: except Exception, e:
sys.stderr.write("ERROR: %s failed with:\n%s\n%s\n" % (specPath,e.message,traceback.format_exc())) sys.stderr.write("ERROR: %s failed with:\n%s\n%s\n" % (specPath,e.message,traceback.format_exc()))
if args.translateOut != None: if args.translateOut is not None:
if not os.path.exists(os.path.dirname(os.path.normpath(args.translateOut))): if not os.path.exists(os.path.dirname(os.path.normpath(args.translateOut))):
os.makedirs(os.path.dirname(os.path.normpath(args.translateOut))) os.makedirs(os.path.dirname(os.path.normpath(args.translateOut)))
newTable.writeTable(args.translateOut) newTable.writeTable(args.translateOut)
@ -502,7 +502,7 @@ if __name__ == "__main__":
allPackagesFile.write( '\n\n'.join(map(lambda x: x.callPackage(), map(lambda x: nameMap[x], sortedSpecs))) ) allPackagesFile.write( '\n\n'.join(map(lambda x: x.callPackage(), map(lambda x: nameMap[x], sortedSpecs))) )
allPackagesFile.close() allPackagesFile.close()
if args.buildRoot != None: if args.buildRoot is not None:
buildRootFilename = os.path.normpath( args.buildRoot ) buildRootFilename = os.path.normpath( args.buildRoot )
if not os.path.exists(os.path.dirname(buildRootFilename)): if not os.path.exists(os.path.dirname(buildRootFilename)):
os.makedirs(os.path.dirname(buildRootFilename)) os.makedirs(os.path.dirname(buildRootFilename))

View File

@ -1,4 +1,4 @@
{ mkXfceDerivation, gtk3, libxfce4ui, vte }: { mkXfceDerivation, gtk3, libxfce4ui, wrapGAppsHook, vte }:
mkXfceDerivation rec { mkXfceDerivation rec {
category = "apps"; category = "apps";
@ -8,6 +8,7 @@ mkXfceDerivation rec {
sha256 = "1s1dq560icg602jjb2ja58x7hxg4ikp3jrrf74v3qgi0ir950k2y"; sha256 = "1s1dq560icg602jjb2ja58x7hxg4ikp3jrrf74v3qgi0ir950k2y";
buildInputs = [ gtk3 libxfce4ui vte ]; buildInputs = [ gtk3 libxfce4ui vte ];
nativeBuildInputs = [ wrapGAppsHook ];
meta = { meta = {
description = "A modern terminal emulator"; description = "A modern terminal emulator";

View File

@ -1,17 +1,57 @@
{ stdenv, buildPythonPackage, fetchPypi { stdenv, lib, buildPythonApplication, fetchFromGitHub
, bottle, click, colorama , bottle, click, colorama
, lockfile, pyserial, requests , lockfile, pyserial, requests
, semantic-version , pytest, semantic-version, tox
, git , git
}: }:
buildPythonPackage rec { let
pname = "platformio"; args = lib.concatStringsSep " " ((map (e: "--deselect tests/${e}") [
version = "3.5.3"; "commands/test_ci.py::test_ci_boards"
"commands/test_ci.py::test_ci_project_conf"
"commands/test_ci.py::test_ci_lib_and_board"
"commands/test_init.py::test_init_enable_auto_uploading"
"commands/test_init.py::test_init_custom_framework"
"commands/test_init.py::test_init_incorrect_board"
"commands/test_init.py::test_init_ide_atom"
"commands/test_init.py::test_init_ide_eclipse"
"commands/test_init.py::test_init_duplicated_boards"
"commands/test_init.py::test_init_special_board"
"commands/test_lib.py::test_search"
"commands/test_lib.py::test_install_duplicates"
"commands/test_lib.py::test_global_lib_update_check"
"commands/test_lib.py::test_global_lib_update"
"commands/test_lib.py::test_global_lib_uninstall"
"commands/test_lib.py::test_lib_show"
"commands/test_lib.py::test_lib_stats"
"commands/test_lib.py::test_global_install_registry"
"commands/test_lib.py::test_global_install_archive"
"commands/test_lib.py::test_global_install_repository"
"commands/test_lib.py::test_global_lib_list"
"commands/test_test.py::test_local_env"
"test_builder.py::test_build_flags"
"test_builder.py::test_build_unflags"
"test_misc.py::test_api_cache"
"test_misc.py::test_ping_internet_ips"
"test_pkgmanifest.py::test_packages"
]) ++ (map (e: "--ignore=tests/${e}") [
"commands/test_boards.py"
"commands/test_platform.py"
"commands/test_update.py"
"test_maintenance.py"
"test_ino2cpp.py"
]));
src = fetchPypi { in buildPythonApplication rec {
inherit pname version; pname = "platformio";
sha256 = "1l4s2xh1p9h767amk9zapzivz4irl2y3kff3dna6icvsgq6rz011"; version = "3.6.1";
# pypi tarball doesn't contain tests
src = fetchFromGitHub {
owner = "platformio";
repo = "platformio-core";
rev = "v${version}";
sha256 = "01xz9figqrzb0m9467q14lg51vmgq0hbaap0xdx08n5v2ycmzj0v";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
@ -19,12 +59,25 @@ buildPythonPackage rec {
pyserial requests semantic-version pyserial requests semantic-version
]; ];
HOME = "/tmp";
checkInputs = [ pytest tox ];
checkPhase = ''
runHook preCheck
py.test -v tests ${args}
runHook postCheck
'';
patches = [ ./fix-searchpath.patch ]; patches = [ ./fix-searchpath.patch ];
meta = with stdenv.lib; { meta = with stdenv.lib; {
broken = stdenv.isAarch64;
description = "An open source ecosystem for IoT development"; description = "An open source ecosystem for IoT development";
homepage = http://platformio.org; homepage = http://platformio.org;
maintainers = with maintainers; [ mog makefu ];
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ mog makefu ];
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "closure-compiler-${version}"; name = "closure-compiler-${version}";
version = "20180805"; version = "20180910";
src = fetchurl { src = fetchurl {
url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz"; url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
sha256 = "1jis9ykbbynq6pa8sl1jy8888l2bk9g4xsiiiab51zn62shqnq26"; sha256 = "12k4cp9f8g03k3zf2g70pn6ybx8gk0hfh81ypiyb5hkfij95bi9k";
}; };
sourceRoot = "."; sourceRoot = ".";

View File

@ -149,8 +149,7 @@ let
}; };
}; };
in { in rec {
cudatoolkit_6 = common { cudatoolkit_6 = common {
version = "6.0.37"; version = "6.0.37";
url = "http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run"; url = "http://developer.download.nvidia.com/compute/cuda/6_0/rel/installers/cuda_6.0.37_linux_64.run";
@ -199,8 +198,8 @@ in {
gcc = gcc6; gcc = gcc6;
}; };
cudatoolkit_9 = common { cudatoolkit_9_1 = common {
version = "9.1.85.1"; version = "9.1.85.3";
url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux"; url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/local_installers/cuda_9.1.85_387.26_linux";
sha256 = "0lz9bwhck1ax4xf1fyb5nicb7l1kssslj518z64iirpy2qmwg5l4"; sha256 = "0lz9bwhck1ax4xf1fyb5nicb7l1kssslj518z64iirpy2qmwg5l4";
runPatches = [ runPatches = [
@ -208,9 +207,40 @@ in {
url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/1/cuda_9.1.85.1_linux"; url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/1/cuda_9.1.85.1_linux";
sha256 = "1f53ij5nb7g0vb5pcpaqvkaj1x4mfq3l0mhkfnqbk8sfrvby775g"; sha256 = "1f53ij5nb7g0vb5pcpaqvkaj1x4mfq3l0mhkfnqbk8sfrvby775g";
}) })
(fetchurl {
url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/2/cuda_9.1.85.2_linux";
sha256 = "16g0w09h3bqmas4hy1m0y6j5ffyharslw52fn25gql57bfihg7ym";
})
(fetchurl {
url = "https://developer.nvidia.com/compute/cuda/9.1/Prod/patches/3/cuda_9.1.85.3_linux";
sha256 = "12mcv6f8z33z8y41ja8bv5p5iqhv2vx91mv3b5z6fcj7iqv98422";
})
]; ];
gcc = gcc6; gcc = gcc6;
}; };
} cudatoolkit_9_2 = common {
version = "9.2.148.1";
url = "https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda_9.2.148_396.37_linux";
sha256 = "04c6v9b50l4awsf9w9zj5vnxvmc0hk0ypcfjksbh4vnzrz14wigm";
runPatches = [
(fetchurl {
url = "https://developer.nvidia.com/compute/cuda/9.2/Prod2/patches/1/cuda_9.2.148.1_linux";
sha256 = "1kx6l4yzsamk6q1f4vllcpywhbfr2j5wfl4h5zx8v6dgfpsjm2lw";
})
];
gcc = gcc6;
};
cudatoolkit_9 = cudatoolkit_9_2;
cudatoolkit_10_0 = common {
version = "10.0.130";
url = "https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux";
sha256 = "16p3bv1lwmyqpxil8r951h385sy9asc578afrc7lssa68c71ydcj";
gcc = gcc6;
};
cudatoolkit_10 = cudatoolkit_10_0;
}

View File

@ -1,14 +1,14 @@
# based on https://github.com/nim-lang/Nim/blob/v0.18.0/.travis.yml # based on https://github.com/nim-lang/Nim/blob/v0.18.0/.travis.yml
{ stdenv, lib, fetchurl, makeWrapper, nodejs-slim-8_x, openssl, pcre, readline, sqlite, boehmgc, sfml, tzdata, coreutils }: { stdenv, lib, fetchurl, makeWrapper, nodejs-slim-10_x, openssl, pcre, readline, boehmgc, sfml, tzdata, coreutils }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "nim-${version}"; name = "nim-${version}";
version = "0.18.0"; version = "0.19.0";
src = fetchurl { src = fetchurl {
url = "https://nim-lang.org/download/${name}.tar.xz"; url = "https://nim-lang.org/download/${name}.tar.xz";
sha256 = "45c74adb35f08dfa9add1112ae17330e5d902ebb4a36e7046caee8b79e6f3bd0"; sha256 = "0biwvw1gividp5lkf0daq1wp9v6ms4xy6dkf5zj0sn9w4m3n76d1";
}; };
doCheck = !stdenv.isDarwin; doCheck = !stdenv.isDarwin;
@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
"-lcrypto" "-lcrypto"
"-lpcre" "-lpcre"
"-lreadline" "-lreadline"
"-lsqlite3"
"-lgc" "-lgc"
]; ];
@ -28,12 +27,21 @@ stdenv.mkDerivation rec {
# used for bootstrapping, but koch insists on moving the nim compiler around # used for bootstrapping, but koch insists on moving the nim compiler around
# as part of building it, so it cannot be read-only # as part of building it, so it cannot be read-only
buildInputs = [ nativeBuildInputs = [
makeWrapper nodejs-slim-8_x tzdata coreutils makeWrapper nodejs-slim-10_x tzdata coreutils
openssl pcre readline sqlite boehmgc sfml
]; ];
buildInputs = [
openssl pcre readline boehmgc sfml
];
phases = [ "unpackPhase" "patchPhase" "buildPhase" "installPhase" "checkPhase" ];
buildPhase = '' buildPhase = ''
# use $CC to trigger the linker since calling ld in build.sh causes an error
LD=$CC
# build.sh wants to write to $HOME/.cache
HOME=$TMPDIR
sh build.sh sh build.sh
./bin/nim c koch ./bin/nim c koch
./koch boot -d:release \ ./koch boot -d:release \
@ -51,33 +59,24 @@ stdenv.mkDerivation rec {
--suffix PATH : ${lib.makeBinPath [ stdenv.cc ]} --suffix PATH : ${lib.makeBinPath [ stdenv.cc ]}
''; '';
postPatch = patchPhase =
let disableTest = ''sed -i '1i discard \"\"\"\n disabled: true\n\"\"\"\n\n' ''; let disableTest = ''sed -i '1i discard \"\"\"\n disabled: true\n\"\"\"\n\n' '';
disableStdLibTest = ''sed -i -e '/^when isMainModule/,/^END$/{s/^/#/}' '';
disableCompile = ''sed -i -e 's/^/#/' ''; disableCompile = ''sed -i -e 's/^/#/' '';
in '' in ''
substituteInPlace ./tests/async/tioselectors.nim --replace "/bin/sleep" "sleep" substituteInPlace ./tests/async/tioselectors.nim --replace "/bin/sleep" "sleep"
substituteInPlace ./tests/osproc/tworkingdir.nim --replace "/usr/bin" "${coreutils}/bin" substituteInPlace ./tests/osproc/tworkingdir.nim --replace "/usr/bin" "${coreutils}/bin"
substituteInPlace ./tests/stdlib/ttimes.nim --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo" substituteInPlace ./tests/stdlib/ttimes.nim --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
# disable supposedly broken tests
${disableTest} ./tests/errmsgs/tproper_stacktrace2.nim
${disableTest} ./tests/vm/trgba.nim
# disable tests requiring network access (not available in the build container) # disable tests requiring network access (not available in the build container)
${disableTest} ./tests/stdlib/thttpclient.nim ${disableTest} ./tests/stdlib/thttpclient.nim
${disableTest} ./tests/cpp/tasync_cpp.nim '' + lib.optionalString stdenv.isAarch64 ''
${disableTest} ./tests/niminaction/Chapter7/Tweeter/src/tweeter.nim # disable test supposedly broken on aarch64
${disableStdLibTest} ./lib/pure/stats.nim
# disable tests requiring un-downloadable dependencies (using nimble, which isn't available in the fetch phase)
${disableCompile} ./tests/manyloc/keineschweine/keineschweine.nim
${disableTest} ./tests/manyloc/keineschweine/keineschweine.nim
${disableCompile} ./tests/manyloc/nake/nakefile.nim
${disableTest} ./tests/manyloc/nake/nakefile.nim
${disableCompile} ./tests/manyloc/named_argument_bug/main.nim
${disableTest} ./tests/manyloc/named_argument_bug/main.nim
''; '';
checkPhase = '' checkPhase = ''
PATH=$PATH:$out/bin
./koch tests ./koch tests
''; '';

View File

@ -1,8 +1,8 @@
import ./generic.nix { import ./generic.nix {
major_version = "4"; major_version = "4";
minor_version = "07"; minor_version = "07";
patch_version = "0"; patch_version = "1";
sha256 = "03wzkzv6w4rdiiva20g5amz0n4x75swpjl8d80468p6zm8hgfnzl"; sha256 = "1f07hgj5k45cylj1q3k5mk8yi02cwzx849b1fwnwia8xlcfqpr6z";
# If the executable is stripped it does not work # If the executable is stripped it does not work
dontStrip = true; dontStrip = true;

View File

@ -1,4 +1,4 @@
{ stdenv, lib, fetchurl, bash, cpio, pkgconfig, file, which, unzip, zip, cups, freetype { stdenv, lib, fetchurl, bash, cpio, autoconf, pkgconfig, file, which, unzip, zip, cups, freetype
, alsaLib, bootjdk, perl, liberation_ttf, fontconfig, zlib, lndir , alsaLib, bootjdk, perl, liberation_ttf, fontconfig, zlib, lndir
, libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
, libjpeg, giflib , libjpeg, giflib
@ -10,31 +10,30 @@
let let
/** /**
* The JRE libraries are in directories that depend on the CPU. * The JDK libraries are in directories that depend on the CPU.
*/ */
architecture = architecture =
if stdenv.hostPlatform.system == "i686-linux" then if stdenv.hostPlatform.system == "i686-linux" then
"i386" "i386"
else "amd64"; else "amd64";
update = "10.0.2"; major = "11";
update = ".0.1";
build = "13"; build = "13";
repover = "jdk-${update}+${build}"; repover = "jdk-${major}${update}+${build}";
paxflags = if stdenv.isi686 then "msp" else "m"; paxflags = if stdenv.isi686 then "msp" else "m";
openjdk10 = stdenv.mkDerivation { openjdk = stdenv.mkDerivation {
name = "openjdk-${update}-b${build}"; name = "openjdk-${major}${update}-b${build}";
src = fetchurl { src = fetchurl {
url = "http://hg.openjdk.java.net/jdk-updates/jdk10u/archive/${repover}.tar.gz"; url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/${repover}.tar.gz";
sha256 = "0y7hyzgvn6z8gyp3h9xvxwj6zda899y6i629jn6yxqzj96q56jpk"; sha256 = "1ri3fv67rvs9xxhc3ynklbprhxbdsgpwafbw6wqj950xy5crgysm";
}; };
outputs = [ "out" "jre" ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
buildInputs = [ buildInputs = [
cpio file which unzip zip perl bootjdk zlib cups freetype alsaLib autoconf cpio file which unzip zip perl bootjdk zlib cups freetype alsaLib
libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst libjpeg giflib libX11 libICE libXext libXrender libXtst libXt libXtst
libXi libXinerama libXcursor libXrandr lndir fontconfig libXi libXinerama libXcursor libXrandr lndir fontconfig
] ++ lib.optionals (!minimal && enableGnome2) [ ] ++ lib.optionals (!minimal && enableGnome2) [
@ -55,12 +54,11 @@ let
configureFlagsArray=( configureFlagsArray=(
"--with-boot-jdk=${bootjdk.home}" "--with-boot-jdk=${bootjdk.home}"
"--with-update-version=${update}" "--with-update-version=${major}${update}"
"--with-build-number=${build}" "--with-build-number=${build}"
"--with-milestone=fcs" "--with-milestone=fcs"
"--enable-unlimited-crypto" "--enable-unlimited-crypto"
"--disable-debug-symbols" "--disable-debug-symbols"
"--disable-freetype-bundling"
"--with-zlib=system" "--with-zlib=system"
"--with-giflib=system" "--with-giflib=system"
"--with-stdc++lib=dynamic" "--with-stdc++lib=dynamic"
@ -86,7 +84,7 @@ let
buildFlags = [ "all" ]; buildFlags = [ "all" ];
installPhase = '' installPhase = ''
mkdir -p $out/lib/openjdk $out/share $jre/lib/openjdk mkdir -p $out/lib/openjdk $out/share
cp -av build/*/images/jdk/* $out/lib/openjdk cp -av build/*/images/jdk/* $out/lib/openjdk
@ -101,57 +99,29 @@ let
# jni.h expects jni_md.h to be in the header search path. # jni.h expects jni_md.h to be in the header search path.
ln -s $out/include/linux/*_md.h $out/include/ ln -s $out/include/linux/*_md.h $out/include/
# Copy the JRE to a separate output and setup fallback fonts
cp -av build/*/images/jre $jre/lib/openjdk/
mkdir $out/lib/openjdk/jre
${lib.optionalString (!minimal) ''
mkdir -p $jre/lib/openjdk/jre/lib/fonts/fallback
lndir ${liberation_ttf}/share/fonts/truetype $jre/lib/openjdk/jre/lib/fonts/fallback
''}
# Remove crap from the installation. # Remove crap from the installation.
rm -rf $out/lib/openjdk/demo rm -rf $out/lib/openjdk/demo
${lib.optionalString minimal '' ${lib.optionalString minimal ''
for d in $out/lib/openjdk/lib $jre/lib/openjdk/jre/lib; do rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
rm ''${d}/{libjsound,libjsoundalsa,libfontmanager}.so
done
''} ''}
lndir $jre/lib/openjdk/jre $out/lib/openjdk/jre
# Set PaX markings # Set PaX markings
exes=$(file $out/lib/openjdk/bin/* $jre/lib/openjdk/jre/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//') exes=$(file $out/lib/openjdk/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
echo "to mark: *$exes*" echo "to mark: *$exes*"
for file in $exes; do for file in $exes; do
echo "marking *$file*" echo "marking *$file*"
paxmark ${paxflags} "$file" paxmark ${paxflags} "$file"
done done
# Remove duplicate binaries.
for i in $(cd $out/lib/openjdk/bin && echo *); do
if [ "$i" = java ]; then continue; fi
if cmp -s $out/lib/openjdk/bin/$i $jre/lib/openjdk/jre/bin/$i; then
ln -sfn $jre/lib/openjdk/jre/bin/$i $out/lib/openjdk/bin/$i
fi
done
ln -s $out/lib/openjdk/bin $out/bin ln -s $out/lib/openjdk/bin $out/bin
ln -s $jre/lib/openjdk/jre/bin $jre/bin
ln -s $jre/lib/openjdk/jre $out/jre
''; '';
# FIXME: this is unnecessary once the multiple-outputs branch is merged.
preFixup = '' preFixup = ''
prefix=$jre stripDirs "$STRIP" "$stripDebugList" "''${stripDebugFlags:--S}" # Propagate the setJavaClassPath setup hook so that any package
patchELF $jre # that depends on the JDK has $CLASSPATH set up properly.
propagatedBuildInputs+=" $jre" mkdir -p $out/nix-support
# Propagate the setJavaClassPath setup hook from the JRE so that
# any package that depends on the JRE has $CLASSPATH set up
# properly.
mkdir -p $jre/nix-support
#TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040 #TODO or printWords? cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-build-inputs echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
# Set JAVA_HOME automatically. # Set JAVA_HOME automatically.
mkdir -p $out/nix-support mkdir -p $out/nix-support
@ -196,7 +166,7 @@ let
passthru = { passthru = {
inherit architecture; inherit architecture;
home = "${openjdk10}/lib/openjdk"; home = "${openjdk}/lib/openjdk";
}; };
}; };
in openjdk10 in openjdk

View File

@ -16,12 +16,12 @@ let
src = if stdenv.hostPlatform.system == "x86_64-linux" then src = if stdenv.hostPlatform.system == "x86_64-linux" then
(if version == "10" then fetchboot "10" "x86_64" "08085fsxc1qhqiv3yi38w8lrg3vm7s0m2yvnwr1c92v019806yq2" (if version == "10" then fetchboot "10" "x86_64" "08085fsxc1qhqiv3yi38w8lrg3vm7s0m2yvnwr1c92v019806yq2"
else if version == "8" then fetchboot "8" "x86_64" "18zqx6jhm3lizn9hh6ryyqc9dz3i96pwaz8f6nxfllk70qi5gvks" else if version == "8" then fetchboot "8" "x86_64" "18zqx6jhm3lizn9hh6ryyqc9dz3i96pwaz8f6nxfllk70qi5gvks"
else throw "No bootstrap for version") else throw "No bootstrap jdk for version ${version}")
else if stdenv.hostPlatform.system == "i686-linux" then else if stdenv.hostPlatform.system == "i686-linux" then
(if version == "10" then fetchboot "10" "i686" "1blb9gyzp8gfyggxvggqgpcgfcyi00ndnnskipwgdm031qva94p7" (if version == "10" then fetchboot "10" "i686" "1blb9gyzp8gfyggxvggqgpcgfcyi00ndnnskipwgdm031qva94p7"
else if version == "8" then fetchboot "8" "i686" "1yx04xh8bqz7amg12d13rw5vwa008rav59mxjw1b9s6ynkvfgqq9" else if version == "8" then fetchboot "8" "i686" "1yx04xh8bqz7amg12d13rw5vwa008rav59mxjw1b9s6ynkvfgqq9"
else throw "No bootstrap for version") else throw "No bootstrap for version")
else throw "No bootstrap for system"; else throw "No bootstrap jdk for system ${stdenv.hostPlatform.system}";
bootstrap = runCommand "openjdk-bootstrap" { bootstrap = runCommand "openjdk-bootstrap" {
passthru.home = "${bootstrap}/lib/openjdk"; passthru.home = "${bootstrap}/lib/openjdk";

View File

@ -6,13 +6,13 @@ let
sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0"; sha256 = "0nk7m0lgcbsvldq2wbfni2pzq8h818523z912i7v8hdcij5s48c0";
}; };
jdk = stdenv.mkDerivation { jdk = stdenv.mkDerivation rec {
name = "zulu10.3+5-jdk10"; name = "zulu11.2.3-jdk11.0.1";
src = fetchurl { src = fetchurl {
url = https://cdn.azul.com/zulu/bin/zulu10.3+5-jdk10.0.2-macosx_x64.zip; url = "https://cdn.azul.com/zulu/bin/${name}-macosx_x64.tar.gz";
sha256 = "05pxfjn8fqw6ddr8m5hzyphwzqgrq8w6b4h3lwc1s7ymh05xmspz"; sha256 = "1jxnxmy79inwf3146ygry1mzv3dj6yrzqll16j7dpr91x1p3dpqy";
curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-linux/"; curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/zulu-mac/";
}; };
buildInputs = [ unzip freetype ]; buildInputs = [ unzip freetype ];
@ -34,8 +34,8 @@ let
''; '';
preFixup = '' preFixup = ''
# Propagate the setJavaClassPath setup hook from the JRE so that # Propagate the setJavaClassPath setup hook from the JDK so that
# any package that depends on the JRE has $CLASSPATH set up # any package that depends on the JDK has $CLASSPATH set up
# properly. # properly.
mkdir -p $out/nix-support mkdir -p $out/nix-support
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
@ -49,7 +49,6 @@ let
''; '';
passthru = { passthru = {
jre = jdk;
home = jdk; home = jdk;
}; };

View File

@ -1,156 +0,0 @@
{ swingSupport ? true
, stdenv
, requireFile
, makeWrapper
, file
, xorg ? null
, packageType ? "JDK" # JDK, JRE, or ServerJRE
, glib
, libxml2
, ffmpeg_2
, libxslt
, libGL
, freetype
, fontconfig
, gtk2
, pango
, cairo
, alsaLib
, atk
, gdk_pixbuf
, zlib
, elfutils
, setJavaClassPath
}:
assert swingSupport -> xorg != null;
let
version = "10.0.2";
downloadUrlBase = http://www.oracle.com/technetwork/java/javase/downloads;
rSubPaths = [
"lib/jli"
"lib/server"
"lib"
];
in
let result = stdenv.mkDerivation rec {
name = if packageType == "JDK" then "oraclejdk-${version}"
else if packageType == "JRE" then "oraclejre-${version}"
else if packageType == "ServerJRE" then "oracleserverjre-${version}"
else abort "unknown package Type ${packageType}";
src =
if packageType == "JDK" then
requireFile {
name = "jdk-${version}_linux-x64_bin.tar.gz";
url = "${downloadUrlBase}/jdk10-downloads-4416644.html";
sha256 = "0arpzac64apji1s8d0gzizkvrjz0fbhz7l34af1j0365ac6w4cv6";
}
else if packageType == "JRE" then
requireFile {
name = "jre-${version}_linux-x64_bin.tar.gz";
url = "${downloadUrlBase}/jre10-downloads-4417026.html";
sha256 = "0pc4a0a3fl6874vfaflf6jvpm9da647vp41pj0hihkspjyjhjabx";
}
else if packageType == "ServerJRE" then
requireFile {
name = "serverjre-${version}_linux-x64_bin.tar.gz";
url = "${downloadUrlBase}/sjre10-downloads-4417025.html";
sha256 = "0hbcb4c6ncy0sbz02gyygyqcwkz0xpv4fwrx4sripia6vph9592c";
}
else abort "unknown package Type ${packageType}";
nativeBuildInputs = [ file ];
buildInputs = [ makeWrapper ];
# See: https://github.com/NixOS/patchelf/issues/10
dontStrip = 1;
installPhase = ''
cd ..
# Set PaX markings
exes=$(file $sourceRoot/bin/* 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//')
for file in $exes; do
paxmark m "$file"
# On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well.
${stdenv.lib.optionalString stdenv.isi686 ''paxmark msp "$file"''}
done
mv $sourceRoot $out
shopt -s extglob
for file in $out/*
do
if test -f $file ; then
rm $file
fi
done
if test -z "$pluginSupport"; then
rm -f $out/bin/javaws
fi
mkdir $out/lib/plugins
ln -s $out/lib/libnpjp2.so $out/lib/plugins
# for backward compatibility
ln -s $out $out/jre
mkdir -p $out/nix-support
printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
# Set JAVA_HOME automatically.
cat <<EOF >> $out/nix-support/setup-hook
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out; fi
EOF
'';
postFixup = ''
rpath+="''${rpath:+:}${stdenv.lib.concatStringsSep ":" (map (a: "$out/${a}") rSubPaths)}"
# set all the dynamic linkers
find $out -type f -perm -0100 \
-exec patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "$rpath" {} \;
find $out -name "*.so" -exec patchelf --set-rpath "$rpath" {} \;
# Oracle Java Mission Control needs to know where libgtk-x11 and related is
if test -x $out/bin/jmc; then
wrapProgram "$out/bin/jmc" \
--suffix-each LD_LIBRARY_PATH ':' "$rpath"
fi
'';
/**
* libXt is only needed on amd64
*/
libraries =
[stdenv.cc.libc glib libxml2 ffmpeg_2 libxslt libGL xorg.libXxf86vm alsaLib fontconfig freetype pango gtk2 cairo gdk_pixbuf atk zlib elfutils] ++
(if swingSupport then [xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXp xorg.libXt xorg.libXrender stdenv.cc.cc] else []);
rpath = stdenv.lib.strings.makeLibraryPath libraries;
passthru.mozillaPlugin = "/lib/plugins";
passthru.jre = result; # FIXME: use multiple outputs or return actual JRE package
passthru.home = result;
# for backward compatibility
passthru.architecture = "";
meta = with stdenv.lib; {
license = licenses.unfree;
platforms = [ "x86_64-linux" ]; # some inherit jre.meta.platforms
knownVulnerabilities = [ "Support ended in September 2018. Use OpenJDK or JDK 8." ];
};
}; in result

View File

@ -5,17 +5,20 @@
# Note that the created binaries still need `patchelf --set-interpreter ...` # Note that the created binaries still need `patchelf --set-interpreter ...`
# to get rid of ${glibc} dependency. # to get rid of ${glibc} dependency.
, purgeNixReferences ? false , purgeNixReferences ? false
, texinfo
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "sbcl-${version}"; name = "sbcl-${version}";
version = "1.4.12"; version = "1.4.13";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2"; url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
sha256 = "0maa4h5zdykq050hdqk5wd74dhl6k7br3qrhfd4f2387skk8ky7a"; sha256 = "120rnnz8367lk7ljqlf8xidm4b0d738xqsib4kq0q5ms5r7fzgvm";
}; };
buildInputs = [texinfo];
patchPhase = '' patchPhase = ''
echo '"${version}.nixos"' > version.lisp-expr echo '"${version}.nixos"' > version.lisp-expr
echo " echo "
@ -46,11 +49,6 @@ stdenv.mkDerivation rec {
'/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))' '/date defaulted-source/i(or (and (= 2208988801 (file-write-date defaulted-source-truename)) (= 2208988801 (file-write-date defaulted-fasl-truename)))'
# Fix the tests # Fix the tests
sed -e '/deftest pwent/inil' -i contrib/sb-posix/posix-tests.lisp
sed -e '/deftest grent/inil' -i contrib/sb-posix/posix-tests.lisp
sed -e '/deftest .*ent.non-existing/,+5d' -i contrib/sb-posix/posix-tests.lisp
sed -e '/deftest \(pw\|gr\)ent/,+3d' -i contrib/sb-posix/posix-tests.lisp
sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp sed -e '5,$d' -i contrib/sb-bsd-sockets/tests.lisp
sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp sed -e '5,$d' -i contrib/sb-simple-streams/*test*.lisp
@ -83,6 +81,7 @@ stdenv.mkDerivation rec {
buildPhase = '' buildPhase = ''
sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}" sh make.sh --prefix=$out --xc-host="${sbclBootstrapHost}"
(cd doc/manual ; make info)
''; '';
installPhase = '' installPhase = ''

View File

@ -32,11 +32,10 @@
, makeWrapper , makeWrapper
, gnumake , gnumake
, file , file
#, systemtap
}: }:
let let
v_base = "4.1.3"; v_base = "4.2.1";
version = "${v_base}-RELEASE"; version = "${v_base}-RELEASE";
version_friendly = "${v_base}"; version_friendly = "${v_base}";
@ -54,15 +53,15 @@ let
# For more inforation, see: https://github.com/apple/swift/pull/3594#issuecomment-234169759 # For more inforation, see: https://github.com/apple/swift/pull/3594#issuecomment-234169759
clang = fetch { clang = fetch {
repo = "swift-clang"; repo = "swift-clang";
sha256 = "0j8bi6jv4m4hqiib02q5cvnxd9j6bwiri853x6px86vai3mdff0h"; sha256 = "0l6w4xzpl3w2nax9a0b885nfzhfj38p2g99158nb5bzfd4s0man7";
}; };
llvm = fetch { llvm = fetch {
repo = "swift-llvm"; repo = "swift-llvm";
sha256 = "0q5cv4iydm8c1kcax32573y3q2cbpihwgj5aa8ws1fnpy4jvq934"; sha256 = "1664zwxbq0a1cmxr9n5a0vw6vdk6ygr7rpglpdsfc7ki857vpsyv";
}; };
compilerrt = fetch { compilerrt = fetch {
repo = "swift-compiler-rt"; repo = "swift-compiler-rt";
sha256 = "1wkymmxi2v759xkwlzfrq9rivndjfvp6ikrzz10mvvrvyvrgwqnl"; sha256 = "19s6qxn4i0kxpf39xjp2i7zg427iinbmaxqkbb1p91g616y367sf";
}; };
cmark = fetch { cmark = fetch {
repo = "swift-cmark"; repo = "swift-cmark";
@ -70,32 +69,32 @@ let
}; };
lldb = fetch { lldb = fetch {
repo = "swift-lldb"; repo = "swift-lldb";
sha256 = "1d0pa7xm289bjb6r52hkkmlngkqkwbwgixnmm30bin2q18mkxk7s"; sha256 = "00kz0xhj1p6ckyandj2gs1yfl29kxv84x9pfph00r8crbkd2jz7b";
}; };
llbuild = fetch { llbuild = fetch {
repo = "swift-llbuild"; repo = "swift-llbuild";
sha256 = "04y0ihfyam2n671vmpk9gy0gb9lb3ivh6mr19862p5kg5bmrcic1"; sha256 = "1mkkhydshhxr28igbldzr0hhqvb6ql43cpf3ba5vglfkbcz6wh6q";
}; };
pm = fetch { pm = fetch {
repo = "swift-package-manager"; repo = "swift-package-manager";
sha256 = "08d87fc29qq7m92jaxkiczsa7b567pwbibiwwkzdrj6a0gr11qn3"; sha256 = "1aqvmgq9g5zs4k2qnkvw3h3mar66d690hqq6g2dmrapsyb321j9l";
}; };
xctest = fetch { xctest = fetch {
repo = "swift-corelibs-xctest"; repo = "swift-corelibs-xctest";
sha256 = "1alkgxx8jsr2jjv2kchnjaaddb1byjwim015m1z3qxh6lknqm0k5"; sha256 = "1n4w7bfgy73vjzbvbphlwayy0dw73bbrayrpkqq8lbidg0x9lam8";
}; };
foundation = fetch { foundation = fetch {
repo = "swift-corelibs-foundation"; repo = "swift-corelibs-foundation";
sha256 = "1bhrag63rmz41bg2g6ap01qrdpq37hislgf5hg6myy2v69q7mahx"; sha256 = "1bfnkj8s3v327cy0czkngz0ryzmz7amjzkkxbsg2zyrhf9a9f0f7";
}; };
libdispatch = fetch { libdispatch = fetch {
repo = "swift-corelibs-libdispatch"; repo = "swift-corelibs-libdispatch";
sha256 = "198vskbajch8s168a649qz5an92i2mxmmmzcjlgxlzh38fgxri0n"; sha256 = "0fibrx54nbaawhsgd7cbr356ji9qvf8y8ahd5bdx28fpj6q0cnwc";
fetchSubmodules = true; fetchSubmodules = true;
}; };
swift = fetch { swift = fetch {
repo = "swift"; repo = "swift";
sha256 = "1ydx11pkvaasgjbr29lnha0lpnak758gd5l0aqzmp3q6mcyvfm7a"; sha256 = "0y277wi0m6zp1yph9s14mmc65m21q5fm6lgzkn2rkrbaz25fdzak";
}; };
}; };
@ -111,7 +110,6 @@ let
ncurses ncurses
sqlite sqlite
swig swig
# systemtap?
]; ];
cmakeFlags = [ cmakeFlags = [
@ -215,8 +213,11 @@ stdenv.mkDerivation rec {
substituteInPlace swift/stdlib/public/Platform/CMakeLists.txt \ substituteInPlace swift/stdlib/public/Platform/CMakeLists.txt \
--replace '/usr/include' "${stdenv.cc.libc.dev}/include" --replace '/usr/include' "${stdenv.cc.libc.dev}/include"
substituteInPlace swift-corelibs-libdispatch/src/CMakeLists.txt \
--replace '/usr/include' "${stdenv.cc.libc.dev}/include"
substituteInPlace swift/utils/build-script-impl \ substituteInPlace swift/utils/build-script-impl \
--replace '/usr/include/c++' "${clang.cc.gcc}/include/c++" --replace '/usr/include/c++' "${clang.cc.gcc}/include/c++"
patch -p1 -d swift -i ${./patches/glibc-arch-headers.patch}
'' + stdenv.lib.optionalString stdenv.needsPax '' '' + stdenv.lib.optionalString stdenv.needsPax ''
patch -p1 -d swift -i ${./patches/build-script-pax.patch} patch -p1 -d swift -i ${./patches/build-script-pax.patch}
'' + '' '' + ''
@ -228,24 +229,24 @@ stdenv.mkDerivation rec {
-e 's/^test-installable-package$/# \0/' \ -e 's/^test-installable-package$/# \0/' \
-e 's/^test$/# \0/' \ -e 's/^test$/# \0/' \
-e 's/^validation-test$/# \0/' \ -e 's/^validation-test$/# \0/' \
-e 's/^long-test$/# \0/' -e 's/^long-test$/# \0/' \
-e 's/^stress-test$/# \0/' \
-e 's/^test-optimized$/# \0/'
# https://bugs.swift.org/browse/SR-5779 # https://bugs.swift.org/browse/SR-5779
sed -i -e 's|"-latomic"|"-Wl,-rpath,${clang.cc.gcc.lib}/lib" "-L${clang.cc.gcc.lib}/lib" "-latomic"|' swift/cmake/modules/AddSwift.cmake sed -i -e 's|"-latomic"|"-Wl,-rpath,${clang.cc.gcc.lib}/lib" "-L${clang.cc.gcc.lib}/lib" "-latomic"|' swift/cmake/modules/AddSwift.cmake
substituteInPlace clang/lib/Driver/ToolChains/Linux.cpp \ substituteInPlace clang/lib/Driver/ToolChains/Linux.cpp \
--replace ' addPathIfExists(D, SysRoot + "/usr/lib", Paths);' \ --replace 'SysRoot + "/usr/lib' '"${glibc}/lib" "'
' addPathIfExists(D, SysRoot + "/usr/lib", Paths); addPathIfExists(D, "${glibc}/lib", Paths);' patch -p1 -d clang -i ${./patches/llvm-include-dirs.patch}
patch -p1 -d clang -i ${./purity.patch} patch -p1 -d clang -i ${./purity.patch}
# Workaround hardcoded dep on "libcurses" (vs "libncurses"): # Workaround hardcoded dep on "libcurses" (vs "libncurses"):
sed -i 's,curses,ncurses,' llbuild/*/*/CMakeLists.txt sed -i 's,curses,ncurses,' llbuild/*/*/CMakeLists.txt
# This test fails on one of my machines, not sure why.
# Disabling for now.
rm llbuild/tests/Examples/buildsystem-capi.llbuild
PREFIX=''${out/#\/} PREFIX=''${out/#\/}
substituteInPlace swift-corelibs-foundation/build.py \
--replace usr/lib "$PREFIX/lib"
substituteInPlace swift-corelibs-xctest/build_script.py \ substituteInPlace swift-corelibs-xctest/build_script.py \
--replace usr "$PREFIX" --replace usr "$PREFIX"
substituteInPlace swiftpm/Utilities/bootstrap \ substituteInPlace swiftpm/Utilities/bootstrap \
@ -263,6 +264,7 @@ stdenv.mkDerivation rec {
# Extract the generated tarball into the store # Extract the generated tarball into the store
PREFIX=''${out/#\/} PREFIX=''${out/#\/}
tar xf $INSTALLABLE_PACKAGE -C $out --strip-components=3 $PREFIX tar xf $INSTALLABLE_PACKAGE -C $out --strip-components=3 $PREFIX
find $out -type d -empty -delete
paxmark pmr $out/bin/swift paxmark pmr $out/bin/swift
paxmark pmr $out/bin/* paxmark pmr $out/bin/*
@ -290,4 +292,3 @@ stdenv.mkDerivation rec {
broken = stdenv.isAarch64; # 2018-09-04, never built on Hydra broken = stdenv.isAarch64; # 2018-09-04, never built on Hydra
}; };
} }

View File

@ -11,7 +11,7 @@ diff --git a/utils/build-presets.ini b/utils/build-presets.ini
index 7ee57ad2df..e6b0af3581 100644 index 7ee57ad2df..e6b0af3581 100644
--- a/utils/build-presets.ini --- a/utils/build-presets.ini
+++ b/utils/build-presets.ini +++ b/utils/build-presets.ini
@@ -686,7 +686,7 @@ swiftpm @@ -717,7 +717,7 @@ swiftpm
xctest xctest
dash-dash dash-dash

View File

@ -11,7 +11,7 @@ diff --git a/utils/build-presets.ini b/utils/build-presets.ini
index e6b0af3581..1095cbaab7 100644 index e6b0af3581..1095cbaab7 100644
--- a/utils/build-presets.ini --- a/utils/build-presets.ini
+++ b/utils/build-presets.ini +++ b/utils/build-presets.ini
@@ -708,7 +708,7 @@ install-lldb @@ -723,7 +723,7 @@ install-lldb
install-llbuild install-llbuild
install-swiftpm install-swiftpm
install-xctest install-xctest

View File

@ -11,7 +11,7 @@ diff --git a/utils/build-presets.ini b/utils/build-presets.ini
index 1739e91dc2..0608fed9c1 100644 index 1739e91dc2..0608fed9c1 100644
--- a/utils/build-presets.ini --- a/utils/build-presets.ini
+++ b/utils/build-presets.ini +++ b/utils/build-presets.ini
@@ -708,6 +708,8 @@ install-destdir=%(install_destdir)s @@ -740,6 +740,8 @@ install-destdir=%(install_destdir)s
# Path to the .tar.gz package we would create. # Path to the .tar.gz package we would create.
installable-package=%(installable_package)s installable-package=%(installable_package)s

View File

@ -1,6 +1,6 @@
--- swift/utils/build-script-impl 2017-01-23 12:47:20.401326309 -0600 --- swift/utils/build-script-impl 2017-01-23 12:47:20.401326309 -0600
+++ swift-pax/utils/build-script-impl 2017-01-23 13:24:10.339366996 -0600 +++ swift-pax/utils/build-script-impl 2017-01-23 13:24:10.339366996 -0600
@@ -1823,6 +1823,17 @@ function set_lldb_xcodebuild_options() { @@ -1837,6 +1837,17 @@ function set_lldb_xcodebuild_options() {
fi fi
} }
@ -18,7 +18,7 @@
# #
# Configure and build each product # Configure and build each product
# #
@@ -2624,6 +2634,12 @@ for host in "${ALL_HOSTS[@]}"; do @@ -2735,6 +2746,12 @@ for host in "${ALL_HOSTS[@]}"; do
fi fi
call "${CMAKE_BUILD[@]}" "${build_dir}" $(cmake_config_opt ${product}) -- "${BUILD_ARGS[@]}" ${build_targets[@]} call "${CMAKE_BUILD[@]}" "${build_dir}" $(cmake_config_opt ${product}) -- "${BUILD_ARGS[@]}" ${build_targets[@]}

View File

@ -0,0 +1,13 @@
The Nix glibc headers do not use include/x86_64-linux-gnu subdirectories.
--- swift/stdlib/public/Platform/CMakeLists.txt 2018-09-30 17:51:51.581766303 +0200
+++ swift/stdlib/public/Platform/CMakeLists.txt 2018-09-30 18:40:04.118956708 +0200
@@ -65,7 +65,7 @@
endif()
set(GLIBC_INCLUDE_PATH "${GLIBC_SYSROOT_RELATIVE_INCLUDE_PATH}")
- set(GLIBC_ARCH_INCLUDE_PATH "${GLIBC_SYSROOT_RELATIVE_ARCH_INCLUDE_PATH}")
+ set(GLIBC_ARCH_INCLUDE_PATH "${GLIBC_SYSROOT_RELATIVE_INCLUDE_PATH}")
if(NOT "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}" STREQUAL "/")
set(GLIBC_INCLUDE_PATH "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}${GLIBC_INCLUDE_PATH}")

View File

@ -0,0 +1,13 @@
Only use the Nix include dirs when no sysroot is configured.
--- clang/lib/Driver/ToolChains/Linux.cpp 2018-10-05 18:01:15.731109551 +0200
+++ clang/lib/Driver/ToolChains/Linux.cpp 2018-10-05 18:00:27.959509924 +0200
@@ -565,7 +565,7 @@
// Check for configure-time C include directories.
StringRef CIncludeDirs(C_INCLUDE_DIRS);
- if (CIncludeDirs != "") {
+ if (CIncludeDirs != "" && (SysRoot.empty() || SysRoot == "/")) {
SmallVector<StringRef, 5> dirs;
CIncludeDirs.split(dirs, ":");
for (StringRef dir : dirs) {

View File

@ -11,7 +11,7 @@ diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
index fe3c0191bb..c6a482bece 100644 index fe3c0191bb..c6a482bece 100644
--- a/lib/Driver/ToolChains/Gnu.cpp --- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp +++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -494,13 +494,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA, @@ -398,13 +398,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
if (!Args.hasArg(options::OPT_static)) { if (!Args.hasArg(options::OPT_static)) {
if (Args.hasArg(options::OPT_rdynamic)) if (Args.hasArg(options::OPT_rdynamic))
CmdArgs.push_back("-export-dynamic"); CmdArgs.push_back("-export-dynamic");

View File

@ -99,31 +99,16 @@ self: super: {
# https://github.com/bmillwood/haskell-src-meta/pull/80 # https://github.com/bmillwood/haskell-src-meta/pull/80
haskell-src-meta = doJailbreak super.haskell-src-meta; haskell-src-meta = doJailbreak super.haskell-src-meta;
# The official 1.12 release is broken and unmaintained.
polyparse = appendPatch (overrideCabal super.polyparse (drv: { editedCabalFile = null; })) (pkgs.fetchpatch {
url = https://github.com/bergmark/polyparse/commit/8a69ee7e57db798c106d8b56dce05b1dfc4fed37.patch;
sha256 = "11r73wx1w6bfrkrnk6r9k7rfzp6qrvkdikb2by37ld06c0w6nn57";
});
# https://github.com/skogsbaer/HTF/issues/69 # https://github.com/skogsbaer/HTF/issues/69
HTF = markBrokenVersion "0.13.2.4" super.HTF; HTF = markBrokenVersion "0.13.2.4" super.HTF;
# https://github.com/jgm/skylighting/issues/55 # https://github.com/jgm/skylighting/issues/55
skylighting-core = dontCheck super.skylighting-core; skylighting-core = dontCheck super.skylighting-core;
# https://github.com/joelburget/easytest/issues/12
easytest = appendPatch super.easytest (pkgs.fetchpatch {
url = https://github.com/joelburget/easytest/pull/13.patch;
sha256 = "0gnsgga8x2yxyg27pya6rhmxfsxf167vsi4xdj98fn8v0j7zz1v1";
});
# https://github.com/jgm/pandoc/issues/4974 # https://github.com/jgm/pandoc/issues/4974
pandoc = doJailbreak super.pandoc_2_3_1; pandoc = doJailbreak super.pandoc_2_3_1;
# Break out of "yaml >=0.10.4.0 && <0.11". # Break out of "yaml >=0.10.4.0 && <0.11".
stack = doJailbreak super.stack; stack = doJailbreak super.stack;
# https://github.com/vimus/libmpd-haskell/issues/109
xmobar = disableCabalFlag (super.xmobar.override { libmpd = null; }) "with_mpd";
} }

View File

@ -45,7 +45,7 @@ default-package-overrides:
- base-compat-batteries ==0.10.1 - base-compat-batteries ==0.10.1
# Newer versions don't work in LTS-12.x # Newer versions don't work in LTS-12.x
- cassava-megaparsec < 2 - cassava-megaparsec < 2
# LTS Haskell 12.14 # LTS Haskell 12.16
- abstract-deque ==0.3 - abstract-deque ==0.3
- abstract-deque-tests ==0.3 - abstract-deque-tests ==0.3
- abstract-par ==0.3.3 - abstract-par ==0.3.3
@ -180,7 +180,7 @@ default-package-overrides:
- amazonka-xray ==1.6.0 - amazonka-xray ==1.6.0
- amqp ==0.18.1 - amqp ==0.18.1
- annotated-wl-pprint ==0.7.0 - annotated-wl-pprint ==0.7.0
- ansi-terminal ==0.8.1 - ansi-terminal ==0.8.2
- ansi-wl-pprint ==0.6.8.2 - ansi-wl-pprint ==0.6.8.2
- ANum ==0.2.0.2 - ANum ==0.2.0.2
- api-field-json-th ==0.1.0.2 - api-field-json-th ==0.1.0.2
@ -436,7 +436,7 @@ default-package-overrides:
- concurrency ==1.6.1.0 - concurrency ==1.6.1.0
- concurrent-extra ==0.7.0.12 - concurrent-extra ==0.7.0.12
- concurrent-output ==1.10.7 - concurrent-output ==1.10.7
- concurrent-split ==0.0.1 - concurrent-split ==0.0.1.1
- concurrent-supply ==0.1.8 - concurrent-supply ==0.1.8
- cond ==0.4.1.1 - cond ==0.4.1.1
- conduit ==1.3.1 - conduit ==1.3.1
@ -552,7 +552,7 @@ default-package-overrides:
- data-serializer ==0.3.4 - data-serializer ==0.3.4
- datasets ==0.2.5 - datasets ==0.2.5
- data-textual ==0.3.0.2 - data-textual ==0.3.0.2
- data-tree-print ==0.1.0.1 - data-tree-print ==0.1.0.2
- dataurl ==0.1.0.0 - dataurl ==0.1.0.0
- DAV ==1.3.2 - DAV ==1.3.2
- dawg-ord ==0.5.1.0 - dawg-ord ==0.5.1.0
@ -638,7 +638,7 @@ default-package-overrides:
- dyre ==0.8.12 - dyre ==0.8.12
- Earley ==0.12.1.0 - Earley ==0.12.1.0
- easy-file ==0.2.2 - easy-file ==0.2.2
- easytest ==0.2 - easytest ==0.2.1
- Ebnf2ps ==1.0.15 - Ebnf2ps ==1.0.15
- echo ==0.1.3 - echo ==0.1.3
- ed25519 ==0.0.5.0 - ed25519 ==0.0.5.0
@ -880,6 +880,12 @@ default-package-overrides:
- greskell-core ==0.1.2.4 - greskell-core ==0.1.2.4
- greskell-websocket ==0.1.1.2 - greskell-websocket ==0.1.1.2
- groom ==0.1.2.1 - groom ==0.1.2.1
- groundhog ==0.9.0
- groundhog-inspector ==0.9.0
- groundhog-mysql ==0.9.0
- groundhog-postgresql ==0.9.0.1
- groundhog-sqlite ==0.9.0
- groundhog-th ==0.9.0.1
- groups ==0.4.1.0 - groups ==0.4.1.0
- gtk ==0.14.10 - gtk ==0.14.10
- gtk2hs-buildtools ==0.13.4.0 - gtk2hs-buildtools ==0.13.4.0
@ -896,7 +902,7 @@ default-package-overrides:
- hamtsolo ==1.0.3 - hamtsolo ==1.0.3
- HandsomeSoup ==0.4.2 - HandsomeSoup ==0.4.2
- handwriting ==0.1.0.3 - handwriting ==0.1.0.3
- hapistrano ==0.3.6.1 - hapistrano ==0.3.7.0
- happstack-server ==7.5.1.1 - happstack-server ==7.5.1.1
- happy ==1.19.9 - happy ==1.19.9
- hasbolt ==0.1.3.0 - hasbolt ==0.1.3.0
@ -1004,8 +1010,8 @@ default-package-overrides:
- hsdns ==1.7.1 - hsdns ==1.7.1
- hsebaysdk ==0.4.0.0 - hsebaysdk ==0.4.0.0
- hsemail ==2 - hsemail ==2
- HSet ==0.0.1
- hset ==2.2.0 - hset ==2.2.0
- HSet ==0.0.1
- hsexif ==0.6.1.6 - hsexif ==0.6.1.6
- hs-functors ==0.1.3.0 - hs-functors ==0.1.3.0
- hs-GeoIP ==0.3 - hs-GeoIP ==0.3
@ -1248,7 +1254,7 @@ default-package-overrides:
- libffi ==0.1 - libffi ==0.1
- libgit ==0.3.1 - libgit ==0.3.1
- libgraph ==1.14 - libgraph ==1.14
- libmpd ==0.9.0.8 - libmpd ==0.9.0.9
- libxml-sax ==0.7.5 - libxml-sax ==0.7.5
- LibZip ==1.0.1 - LibZip ==1.0.1
- lifted-async ==0.10.0.3 - lifted-async ==0.10.0.3
@ -1523,7 +1529,7 @@ default-package-overrides:
- palette ==0.3.0.1 - palette ==0.3.0.1
- pandoc ==2.2.1 - pandoc ==2.2.1
- pandoc-citeproc ==0.14.8 - pandoc-citeproc ==0.14.8
- pandoc-types ==1.17.5.2 - pandoc-types ==1.17.5.4
- pango ==0.13.5.0 - pango ==0.13.5.0
- papillon ==0.1.0.6 - papillon ==0.1.0.6
- parallel ==3.2.2.0 - parallel ==3.2.2.0
@ -1746,7 +1752,7 @@ default-package-overrides:
- require ==0.2.1 - require ==0.2.1
- req-url-extra ==0.1.0.0 - req-url-extra ==0.1.0.0
- reroute ==0.5.0.0 - reroute ==0.5.0.0
- resolv ==0.1.1.1 - resolv ==0.1.1.2
- resource-pool ==0.2.3.2 - resource-pool ==0.2.3.2
- resourcet ==1.2.2 - resourcet ==1.2.2
- rest-stringmap ==0.2.0.7 - rest-stringmap ==0.2.0.7
@ -1785,8 +1791,8 @@ default-package-overrides:
- sandman ==0.2.0.1 - sandman ==0.2.0.1
- say ==0.1.0.1 - say ==0.1.0.1
- sbp ==2.3.17 - sbp ==2.3.17
- SCalendar ==1.1.0
- scalendar ==1.2.0 - scalendar ==1.2.0
- SCalendar ==1.1.0
- scalpel ==0.5.1 - scalpel ==0.5.1
- scalpel-core ==0.5.1 - scalpel-core ==0.5.1
- scanner ==0.2 - scanner ==0.2
@ -1952,7 +1958,7 @@ default-package-overrides:
- storable-record ==0.0.4 - storable-record ==0.0.4
- storable-tuple ==0.0.3.3 - storable-tuple ==0.0.3.3
- storablevector ==0.2.13 - storablevector ==0.2.13
- store ==0.5.0 - store ==0.5.0.1
- store-core ==0.4.4 - store-core ==0.4.4
- Strafunski-StrategyLib ==5.0.1.0 - Strafunski-StrategyLib ==5.0.1.0
- stratosphere ==0.24.4 - stratosphere ==0.24.4
@ -2042,7 +2048,7 @@ default-package-overrides:
- test-framework-th ==0.2.4 - test-framework-th ==0.2.4
- testing-feat ==1.1.0.0 - testing-feat ==1.1.0.0
- testing-type-modifiers ==0.1.0.1 - testing-type-modifiers ==0.1.0.1
- texmath ==0.11.1.1 - texmath ==0.11.1.2
- text ==1.2.3.1 - text ==1.2.3.1
- text-binary ==0.2.1.1 - text-binary ==0.2.1.1
- text-builder ==0.5.4.3 - text-builder ==0.5.4.3
@ -2133,7 +2139,7 @@ default-package-overrides:
- type-level-kv-list ==1.1.0 - type-level-kv-list ==1.1.0
- type-level-numbers ==0.1.1.1 - type-level-numbers ==0.1.1.1
- typelits-witnesses ==0.3.0.3 - typelits-witnesses ==0.3.0.3
- typenums ==0.1.2 - typenums ==0.1.2.1
- type-of-html ==1.4.0.1 - type-of-html ==1.4.0.1
- type-of-html-static ==0.1.0.2 - type-of-html-static ==0.1.0.2
- type-operators ==0.1.0.4 - type-operators ==0.1.0.4
@ -2580,6 +2586,7 @@ dont-distribute-packages:
fltkhs-demos: [ i686-linux, x86_64-linux, x86_64-darwin ] fltkhs-demos: [ i686-linux, x86_64-linux, x86_64-darwin ]
fltkhs-fluid-demos: [ i686-linux, x86_64-linux, x86_64-darwin ] fltkhs-fluid-demos: [ i686-linux, x86_64-linux, x86_64-darwin ]
fltkhs-hello-world: [ i686-linux, x86_64-linux, x86_64-darwin ] fltkhs-hello-world: [ i686-linux, x86_64-linux, x86_64-darwin ]
fltkhs-themes: [ i686-linux, x86_64-linux, x86_64-darwin ]
ghcjs-dom-hello: [ i686-linux, x86_64-linux, x86_64-darwin ] ghcjs-dom-hello: [ i686-linux, x86_64-linux, x86_64-darwin ]
ghcjs-dom-webkit: [ i686-linux, x86_64-linux, x86_64-darwin ] ghcjs-dom-webkit: [ i686-linux, x86_64-linux, x86_64-darwin ]
gi-javascriptcore: [ i686-linux, x86_64-linux, x86_64-darwin ] gi-javascriptcore: [ i686-linux, x86_64-linux, x86_64-darwin ]

File diff suppressed because it is too large Load Diff

View File

@ -354,4 +354,19 @@ rec {
in in
builtins.listToAttrs (map toKeyVal haskellPaths); builtins.listToAttrs (map toKeyVal haskellPaths);
# Modify a Haskell package to add completion scripts for the given executable
# produced by it. These completion scripts will be picked up automatically if
# the resulting derivation is installed, e.g. by `nix-env -i`.
addOptparseApplicativeCompletionScripts = exeName: pkg: overrideCabal pkg (drv: {
postInstall = (drv.postInstall or "") + ''
bashCompDir="$out/share/bash-completion/completions"
zshCompDir="$out/share/zsh/vendor-completions"
fishCompDir="$out/share/fish/vendor_completions.d"
mkdir -p "$bashCompDir" "$zshCompDir" "$fishCompDir"
"$out/bin/${exeName}" --bash-completion-script "$out/bin/${exeName}" >"$bashCompDir/${exeName}"
"$out/bin/${exeName}" --zsh-completion-script "$out/bin/${exeName}" >"$zshCompDir/_${exeName}"
"$out/bin/${exeName}" --fish-completion-script "$out/bin/${exeName}" >"$fishCompDir/${exeName}.fish"
'';
});
} }

View File

@ -186,7 +186,7 @@ in rec {
# the latest Devel version # the latest Devel version
perldevel = common { perldevel = common {
version = "5.29.3"; version = "5.29.4";
sha256 = "054xi629408p2hv9475jghv6zd1bj69qqpiby8cy9qw5vismgi17"; sha256 = "153r0f6jdqrl7hxrvhfivf5g8ivhbvggfhg841q3hi3db5rc86k4";
}; };
} }

View File

@ -1,54 +1,66 @@
{ stdenv, fetchurl, libgtop, libwnck3, glib, vala, pkgconfig { stdenv, autoconf, automake, libtool, gnome3, which, fetchgit, libgtop, libwnck3, glib, vala, pkgconfig
, libstartup_notification, gobjectIntrospection, gtk-doc , libstartup_notification, gobjectIntrospection, gtk-doc, docbook_xsl
, xorgserver, dbus, python2 }: , xorgserver, dbus, python2 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bamf"; name = "bamf-2018-02-07";
version = "0.5.3";
name = "${pname}-${version}";
outputs = [ "out" "dev" "devdoc" ]; outputs = [ "out" "dev" "devdoc" ];
src = fetchurl { src = fetchgit {
url = "https://launchpad.net/${pname}/0.5/${version}/+download/${name}.tar.gz"; url = https://git.launchpad.net/~unity-team/bamf;
sha256 = "051vib8ndp09ph5bfwkgmzda94varzjafwxf6lqx7z1s8rd7n39l"; rev = "0.5.3+18.04.20180207.2-0ubuntu1";
sha256 = "0hvbgzi0mzzzvcamd9mi1ykbk2l6zxffspyk5fpik8bij56nhzym";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkgconfig autoconf
gtk-doc automake
docbook_xsl
gnome3.gnome-common
gobjectIntrospection gobjectIntrospection
gtk-doc
libtool
pkgconfig
vala vala
which
# Tests # Tests
xorgserver python2
python2.pkgs.libxslt
python2.pkgs.libxml2
dbus dbus
(python2.withPackages (pkgs: with pkgs; [ libxslt libxml2 ])) xorgserver
]; ];
buildInputs = [ buildInputs = [
libgtop
libwnck3
libstartup_notification
glib glib
libgtop
libstartup_notification
libwnck3
]; ];
# Fix hard-coded path # Fix hard-coded path
# https://bugs.launchpad.net/bamf/+bug/1780557 # https://bugs.launchpad.net/bamf/+bug/1780557
postPatch = '' postPatch = ''
substituteInPlace data/Makefile.in \ substituteInPlace data/Makefile.am \
--replace '/usr/lib/systemd/user' '@prefix@/lib/systemd/user' --replace '/usr/lib/systemd/user' '@prefix@/lib/systemd/user'
''; '';
configureFlags = [ configureFlags = [
"--enable-headless-tests" "--enable-headless-tests"
"--enable-gtk-doc"
]; ];
# fix paths # fix paths
makeFlags = [ makeFlags = [
"INTROSPECTION_GIRDIR=$(dev)/share/gir-1.0/" "INTROSPECTION_GIRDIR=${placeholder ''dev''}/share/gir-1.0/"
"INTROSPECTION_TYPELIBDIR=$(out)/lib/girepository-1.0" "INTROSPECTION_TYPELIBDIR=${placeholder ''out''}/lib/girepository-1.0"
]; ];
preConfigure = ''
./autogen.sh
'';
# TODO: Requires /etc/machine-id # TODO: Requires /etc/machine-id
doCheck = false; doCheck = false;

View File

@ -0,0 +1,31 @@
{ stdenv, fetchzip, libtool, ghostscript, groff }:
stdenv.mkDerivation rec {
name = "fstrcmp-${version}";
version = "0.7";
src = fetchzip {
url = "https://sourceforge.net/projects/fstrcmp/files/fstrcmp/${version}/fstrcmp-${version}.D001.tar.gz";
sha256 = "0yg3y3k0wz50gmhgigfi2dx725w1gc8snb95ih7vpcnj6kabgz9a";
};
outputs = [ "out" "dev" "doc" "man" "devman" ];
nativeBuildInputs = [ libtool ghostscript groff ];
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Make fuzzy comparisons of strings and byte arrays";
longDescription = ''
The fstrcmp project provides a library that is used to make fuzzy
comparisons of strings and byte arrays, including multi-byte character
strings.
'';
homepage = http://fstrcmp.sourceforge.net/;
downloadPage = https://sourceforge.net/projects/fstrcmp/;
license = licenses.gpl3;
maintainers = [ maintainers.sephalon ];
platforms = platforms.unix;
};
}

View File

@ -15,7 +15,9 @@ stdenv.mkDerivation {
buildInputs = [libjpeg libXext libX11 xextproto libtiff libungif libpng]; buildInputs = [libjpeg libXext libX11 xextproto libtiff libungif libpng];
meta = { meta = with stdenv.lib; {
platforms = stdenv.lib.platforms.unix; description = "An image loading and rendering library for X11";
platforms = platforms.unix;
license = with licenses; [ gpl2 lgpl2 ];
}; };
} }

View File

@ -3,7 +3,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "incrtcl-${version}"; name = "incrtcl-${version}";
version = "4.0.4"; version = "4.0.4";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/incrtcl/%5BIncr%20Tcl_Tk%5D-source/3.4/itcl4.0.4.tar.gz; url = mirror://sourceforge/incrtcl/%5BIncr%20Tcl_Tk%5D-source/3.4/itcl4.0.4.tar.gz;
sha256 = "1ppc9b13cvmc6rp77k7dl2zb26xk0z30vxygmr4h1xr2r8w091k3"; sha256 = "1ppc9b13cvmc6rp77k7dl2zb26xk0z30vxygmr4h1xr2r8w091k3";
@ -22,9 +22,10 @@ stdenv.mkDerivation rec {
libPrefix = "itcl3.4"; libPrefix = "itcl3.4";
}; };
meta = { meta = with stdenv.lib; {
homepage = http://incrtcl.sourceforge.net/; homepage = http://incrtcl.sourceforge.net/;
description = "Object Oriented Enhancements for Tcl/Tk"; description = "Object Oriented Enhancements for Tcl/Tk";
platforms = stdenv.lib.platforms.unix; platforms = platforms.unix;
license = licenses.tcltk;
}; };
} }

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