Merge branch 'master' into staging
Conflict: rename of pythondaemon -> python-daemon.
This commit is contained in:
commit
a92a2c8e15
|
@ -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; {
|
||||||
...
|
...
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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 =
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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" ])
|
||||||
|
|
|
@ -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,
|
||||||
|
|
||||||
|
|
|
@ -170,4 +170,6 @@ in {
|
||||||
'';
|
'';
|
||||||
}) cfg.params;
|
}) cfg.params;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ ekleog ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -176,4 +176,6 @@ in
|
||||||
}
|
}
|
||||||
) cfg.instances);
|
) cfg.instances);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ ekleog ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,4 +115,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
meta.maintainers = with lib.maintainers; [ ekleog ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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 ];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}" \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 "];
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||||
config =
|
config =
|
||||||
{
|
{
|
||||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||||
networking.firewall.allowPing = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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; }
|
||||||
];
|
];
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
|
@ -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");
|
||||||
|
};
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
|
@ -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" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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" ];
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -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 {};
|
||||||
|
|
|
@ -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; [ ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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";
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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" ];
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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";
|
||||||
|
|
||||||
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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; {
|
||||||
|
|
|
@ -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; {
|
||||||
|
|
|
@ -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 ];
|
||||||
|
|
|
@ -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 ""
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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";
|
||||||
|
|
|
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 = ".";
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
|
@ -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
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
|
@ -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";
|
||||||
|
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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
|
|
|
@ -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 = ''
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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[@]}
|
||||||
|
|
|
@ -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}")
|
|
@ -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) {
|
|
@ -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");
|
||||||
|
|
|
@ -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";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
@ -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"
|
||||||
|
'';
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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 ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
Loading…
Reference in New Issue