Merge master into x-updates
This commit is contained in:
commit
6445ac90ad
@ -248,4 +248,10 @@
|
|||||||
fullName = "Zope Public License 2.1";
|
fullName = "Zope Public License 2.1";
|
||||||
url = "http://old.zope.org/Resources/License/ZPL-2.1";
|
url = "http://old.zope.org/Resources/License/ZPL-2.1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sleepycat = {
|
||||||
|
shortName = "Sleepycat";
|
||||||
|
fullName = "Sleepycat Public License";
|
||||||
|
url = "https://en.wikipedia.org/wiki/Sleepycat_License";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@
|
|||||||
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
|
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
|
||||||
qknight = "Joachim Schiele <js@lastlog.de>";
|
qknight = "Joachim Schiele <js@lastlog.de>";
|
||||||
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
raskin = "Michael Raskin <7c6f434c@mail.ru>";
|
||||||
|
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
|
||||||
rickynils = "Rickard Nilsson <rickynils@gmail.com>";
|
rickynils = "Rickard Nilsson <rickynils@gmail.com>";
|
||||||
rob = "Rob Vermaas <rob.vermaas@gmail.com>";
|
rob = "Rob Vermaas <rob.vermaas@gmail.com>";
|
||||||
roconnor = "Russell O'Connor <roconnor@theorem.ca>";
|
roconnor = "Russell O'Connor <roconnor@theorem.ca>";
|
||||||
|
@ -155,8 +155,14 @@ rec {
|
|||||||
let
|
let
|
||||||
# Process mkOverride properties, adding in the default
|
# Process mkOverride properties, adding in the default
|
||||||
# value specified in the option declaration (if any).
|
# value specified in the option declaration (if any).
|
||||||
defsFinal = filterOverrides
|
defsFinal' = filterOverrides
|
||||||
((if opt ? default then [{ file = head opt.declarations; value = mkOptionDefault opt.default; }] else []) ++ defs);
|
((if opt ? default then [{ file = head opt.declarations; value = mkOptionDefault opt.default; }] else []) ++ defs);
|
||||||
|
# Sort mkOrder properties.
|
||||||
|
defsFinal =
|
||||||
|
# Avoid sorting if we don't have to.
|
||||||
|
if any (def: def.value._type or "" == "order") defsFinal'
|
||||||
|
then sortProperties defsFinal'
|
||||||
|
else defsFinal';
|
||||||
files = map (def: def.file) defsFinal;
|
files = map (def: def.file) defsFinal;
|
||||||
# Type-check the remaining definitions, and merge them if
|
# Type-check the remaining definitions, and merge them if
|
||||||
# possible.
|
# possible.
|
||||||
@ -180,7 +186,7 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Given a config set, expand mkMerge properties, and push down the
|
/* Given a config set, expand mkMerge properties, and push down the
|
||||||
mkIf properties into the children. The result is a list of
|
other properties into the children. The result is a list of
|
||||||
config sets that do not have properties at top-level. For
|
config sets that do not have properties at top-level. For
|
||||||
example,
|
example,
|
||||||
|
|
||||||
@ -201,7 +207,7 @@ rec {
|
|||||||
map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content)
|
map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content)
|
||||||
else if cfg._type or "" == "override" then
|
else if cfg._type or "" == "override" then
|
||||||
map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content)
|
map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content)
|
||||||
else
|
else # FIXME: handle mkOrder?
|
||||||
[ cfg ];
|
[ cfg ];
|
||||||
|
|
||||||
/* Given a config value, expand mkMerge properties, and discharge
|
/* Given a config value, expand mkMerge properties, and discharge
|
||||||
@ -253,6 +259,19 @@ rec {
|
|||||||
strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def;
|
strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def;
|
||||||
in concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
in concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
|
||||||
|
|
||||||
|
/* Sort a list of properties. The sort priority of a property is
|
||||||
|
1000 by default, but can be overriden by wrapping the property
|
||||||
|
using mkOrder. */
|
||||||
|
sortProperties = defs:
|
||||||
|
let
|
||||||
|
strip = def:
|
||||||
|
if def.value._type or "" == "order"
|
||||||
|
then def // { value = def.value.content; inherit (def.value) priority; }
|
||||||
|
else def;
|
||||||
|
defs' = map strip defs;
|
||||||
|
compare = a: b: (a.priority or 1000) < (b.priority or 1000);
|
||||||
|
in sort compare defs';
|
||||||
|
|
||||||
/* Hack for backward compatibility: convert options of type
|
/* Hack for backward compatibility: convert options of type
|
||||||
optionSet to configOf. FIXME: remove eventually. */
|
optionSet to configOf. FIXME: remove eventually. */
|
||||||
fixupOptionType = loc: opt:
|
fixupOptionType = loc: opt:
|
||||||
@ -302,8 +321,13 @@ rec {
|
|||||||
|
|
||||||
mkFixStrictness = id; # obsolete, no-op
|
mkFixStrictness = id; # obsolete, no-op
|
||||||
|
|
||||||
# FIXME: Add mkOrder back in. It's not currently used anywhere in
|
mkOrder = priority: content:
|
||||||
# NixOS, but it should be useful.
|
{ _type = "order";
|
||||||
|
inherit priority content;
|
||||||
|
};
|
||||||
|
|
||||||
|
mkBefore = mkOrder 500;
|
||||||
|
mkAfter = mkOrder 1500;
|
||||||
|
|
||||||
|
|
||||||
/* Compatibility. */
|
/* Compatibility. */
|
||||||
|
@ -443,8 +443,20 @@ Note that both <filename>configuration.nix</filename> and
|
|||||||
define an option, NixOS will try to <emphasis>merge</emphasis> the
|
define an option, NixOS will try to <emphasis>merge</emphasis> the
|
||||||
definitions. In the case of
|
definitions. In the case of
|
||||||
<option>environment.systemPackages</option>, that’s easy: the lists of
|
<option>environment.systemPackages</option>, that’s easy: the lists of
|
||||||
packages can simply be concatenated. For other types of options, a
|
packages can simply be concatenated. The value in
|
||||||
merge may not be possible: for instance, if two modules define
|
<filename>configuration.nix</filename> is merged last, so for
|
||||||
|
list-type options, it will appear at the end of the merged list. If
|
||||||
|
you want it to appear first, you can use <varname>mkBefore</varname>:
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
boot.kernelModules = mkBefore [ "kvm-intel" ];
|
||||||
|
</programlisting>
|
||||||
|
|
||||||
|
This causes the <literal>kvm-intel</literal> kernel module to be
|
||||||
|
loaded before any other kernel modules.</para>
|
||||||
|
|
||||||
|
<para>For other types of options, a merge may not be possible. For
|
||||||
|
instance, if two modules define
|
||||||
<option>services.httpd.adminAddr</option>,
|
<option>services.httpd.adminAddr</option>,
|
||||||
<command>nixos-rebuild</command> will give an error:
|
<command>nixos-rebuild</command> will give an error:
|
||||||
|
|
||||||
|
@ -65,9 +65,6 @@ in
|
|||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
# Enable the ACPI daemon. Not sure whether this is essential.
|
|
||||||
services.acpid.enable = true;
|
|
||||||
|
|
||||||
boot.kernelModules =
|
boot.kernelModules =
|
||||||
[ "acpi_cpufreq" "powernow-k8" "cpufreq_performance" "cpufreq_powersave" "cpufreq_ondemand"
|
[ "acpi_cpufreq" "powernow-k8" "cpufreq_performance" "cpufreq_powersave" "cpufreq_ondemand"
|
||||||
"cpufreq_conservative"
|
"cpufreq_conservative"
|
||||||
|
@ -216,14 +216,22 @@ foreach my $path (glob "/sys/class/block/*") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
my $dmi = `@dmidecode@/sbin/dmidecode`;
|
||||||
|
|
||||||
|
|
||||||
# Check if we're a VirtualBox guest. If so, enable the guest
|
# Check if we're a VirtualBox guest. If so, enable the guest
|
||||||
# additions.
|
# additions.
|
||||||
my $dmi = `@dmidecode@/sbin/dmidecode`;
|
|
||||||
if ($dmi =~ /Manufacturer: innotek/) {
|
if ($dmi =~ /Manufacturer: innotek/) {
|
||||||
push @attrs, "services.virtualbox.enable = true;"
|
push @attrs, "services.virtualbox.enable = true;"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Likewise for QEMU.
|
||||||
|
if ($dmi =~ /Manufacturer: Bochs/) {
|
||||||
|
push @imports, "<nixpkgs/nixos/modules/profiles/qemu-guest.nix>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
# Generate the swapDevices option from the currently activated swap
|
# Generate the swapDevices option from the currently activated swap
|
||||||
# devices.
|
# devices.
|
||||||
my @swaps = read_file("/proc/swaps");
|
my @swaps = read_file("/proc/swaps");
|
||||||
|
@ -122,6 +122,7 @@
|
|||||||
notbit = 111;
|
notbit = 111;
|
||||||
ngircd = 112;
|
ngircd = 112;
|
||||||
btsync = 113;
|
btsync = 113;
|
||||||
|
minecraft = 114;
|
||||||
|
|
||||||
# When adding a uid, make sure it doesn't match an existing gid.
|
# When adding a uid, make sure it doesn't match an existing gid.
|
||||||
|
|
||||||
|
@ -96,6 +96,7 @@
|
|||||||
./services/databases/postgresql.nix
|
./services/databases/postgresql.nix
|
||||||
./services/databases/virtuoso.nix
|
./services/databases/virtuoso.nix
|
||||||
./services/games/ghost-one.nix
|
./services/games/ghost-one.nix
|
||||||
|
./services/games/minecraft-server.nix
|
||||||
./services/hardware/acpid.nix
|
./services/hardware/acpid.nix
|
||||||
./services/hardware/amd-hybrid-graphics.nix
|
./services/hardware/amd-hybrid-graphics.nix
|
||||||
./services/hardware/bluetooth.nix
|
./services/hardware/bluetooth.nix
|
||||||
|
@ -5,5 +5,13 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_blk" "9p" "9pnet_virtio" ];
|
boot.initrd.availableKernelModules = [ "virtio_net" "virtio_pci" "virtio_blk" "9p" "9pnet_virtio" ];
|
||||||
boot.kernelModules = [ "virtio_balloon" "virtio_console" ];
|
boot.initrd.kernelModules = [ "virtio_balloon" "virtio_console" ];
|
||||||
|
|
||||||
|
boot.initrd.postDeviceCommands =
|
||||||
|
''
|
||||||
|
# Set the system time from the hardware clock to work around a
|
||||||
|
# bug in qemu-kvm > 1.5.2 (where the VM clock is initialised
|
||||||
|
# to the *boot time* of the host).
|
||||||
|
hwclock -s
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
@ -3,20 +3,11 @@
|
|||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
cfg = config.services.rabbitmq;
|
cfg = config.services.rabbitmq;
|
||||||
|
|
||||||
run = cmd: "${pkgs.sudo}/bin/sudo -E -u rabbitmq ${cmd}";
|
in {
|
||||||
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
||||||
services.rabbitmq = {
|
services.rabbitmq = {
|
||||||
|
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
@ -40,55 +31,59 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
dataDir = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
default = "/var/lib/rabbitmq";
|
||||||
|
description = ''
|
||||||
|
Data directory for rabbitmq.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.rabbitmq_server ];
|
environment.systemPackages = [ pkgs.rabbitmq_server ];
|
||||||
|
|
||||||
users.extraUsers.rabbitmq = {
|
users.extraUsers.rabbitmq = {
|
||||||
description = "RabbitMQ server user";
|
description = "RabbitMQ server user";
|
||||||
home = "/var/empty";
|
home = "${cfg.dataDir}";
|
||||||
group = "rabbitmq";
|
group = "rabbitmq";
|
||||||
uid = config.ids.uids.rabbitmq;
|
uid = config.ids.uids.rabbitmq;
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraGroups.rabbitmq.gid = config.ids.gids.rabbitmq;
|
users.extraGroups.rabbitmq.gid = config.ids.gids.rabbitmq;
|
||||||
|
|
||||||
jobs.rabbitmq = {
|
systemd.services.rabbitmq = {
|
||||||
description = "RabbitMQ server";
|
description = "RabbitMQ Server";
|
||||||
|
|
||||||
startOn = "started network-interfaces";
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network-interfaces.target" ];
|
||||||
|
|
||||||
preStart =
|
environment = {
|
||||||
''
|
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
|
||||||
mkdir -m 0700 -p /var/lib/rabbitmq
|
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
||||||
chown rabbitmq /var/lib/rabbitmq
|
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
|
||||||
|
SYS_PREFIX = "";
|
||||||
mkdir -m 0700 -p /var/log/rabbitmq
|
|
||||||
chown rabbitmq /var/log/rabbitmq
|
|
||||||
'';
|
|
||||||
|
|
||||||
environment.HOME = "/var/lib/rabbitmq";
|
|
||||||
environment.RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
|
|
||||||
environment.SYS_PREFIX = "";
|
|
||||||
|
|
||||||
exec =
|
|
||||||
''
|
|
||||||
${run "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"}
|
|
||||||
'';
|
|
||||||
|
|
||||||
preStop =
|
|
||||||
''
|
|
||||||
${run "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop"}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server";
|
||||||
|
User = "rabbitmq";
|
||||||
|
Group = "rabbitmq";
|
||||||
|
PermissionsStartOnly = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
preStart = ''
|
||||||
|
mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir}
|
||||||
|
if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -225,14 +225,14 @@ in
|
|||||||
# Wait for PostgreSQL to be ready to accept connections.
|
# Wait for PostgreSQL to be ready to accept connections.
|
||||||
postStart =
|
postStart =
|
||||||
''
|
''
|
||||||
while ! psql postgres -c "" 2> /dev/null; do
|
while ! su -s ${pkgs.stdenv.shell} postgres -c 'psql postgres -c ""' 2> /dev/null; do
|
||||||
if ! kill -0 "$MAINPID"; then exit 1; fi
|
if ! kill -0 "$MAINPID"; then exit 1; fi
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
done
|
done
|
||||||
|
|
||||||
if test -e "${cfg.dataDir}/.first_startup"; then
|
if test -e "${cfg.dataDir}/.first_startup"; then
|
||||||
${optionalString (cfg.initialScript != null) ''
|
${optionalString (cfg.initialScript != null) ''
|
||||||
cat "${cfg.initialScript}" | psql postgres
|
cat "${cfg.initialScript}" | su -s ${pkgs.stdenv.shell} postgres -c 'psql postgres'
|
||||||
''}
|
''}
|
||||||
rm -f "${cfg.dataDir}/.first_startup"
|
rm -f "${cfg.dataDir}/.first_startup"
|
||||||
fi
|
fi
|
||||||
|
51
nixos/modules/services/games/minecraft-server.nix
Normal file
51
nixos/modules/services/games/minecraft-server.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
with pkgs.lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.minecraft-server;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
services.minecraft-server = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
If enabled, start a Minecraft Server. The listening port for
|
||||||
|
the server is always <literal>25565</literal>. The server
|
||||||
|
data will be loaded from and saved to
|
||||||
|
<literal>/var/lib/minecraft</literal>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
jvmOpts = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "-Xmx2048M -Xms2048M";
|
||||||
|
description = "JVM options for the Minecraft Service.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
users.extraUsers.minecraft = {
|
||||||
|
description = "Minecraft Server Service user";
|
||||||
|
home = "/var/lib/minecraft";
|
||||||
|
createHome = true;
|
||||||
|
uid = config.ids.uids.minecraft;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.minecraft-server = {
|
||||||
|
description = "Minecraft Server Service";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig.Restart = "always";
|
||||||
|
serviceConfig.User = "minecraft";
|
||||||
|
script = ''
|
||||||
|
cd /var/lib/minecraft
|
||||||
|
exec ${pkgs.minecraft-server}/bin/minecraft-server ${cfg.jvmOpts}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,5 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfgFile = pkgs.writeText "reader.conf" "";
|
||||||
|
in
|
||||||
|
|
||||||
with pkgs.lib;
|
with pkgs.lib;
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -24,22 +28,19 @@ with pkgs.lib;
|
|||||||
|
|
||||||
config = mkIf config.services.pcscd.enable {
|
config = mkIf config.services.pcscd.enable {
|
||||||
|
|
||||||
jobs.pcscd =
|
systemd.services.pcscd = {
|
||||||
{ description = "PCSC-Lite daemon";
|
description = "PCSC-Lite daemon";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
startOn = "started udev";
|
preStart = ''
|
||||||
|
mkdir -p /var/lib/pcsc
|
||||||
daemonType = "fork";
|
rm -Rf /var/lib/pcsc/drivers
|
||||||
|
ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/
|
||||||
# Add to the drivers directory the only drivers we have by now: ccid
|
'';
|
||||||
preStart = ''
|
serviceConfig = {
|
||||||
mkdir -p /var/lib/pcsc
|
Type = "forking";
|
||||||
rm -Rf /var/lib/pcsc/drivers
|
ExecStart = "${pkgs.pcsclite}/sbin/pcscd -c ${cfgFile}";
|
||||||
ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/
|
|
||||||
'';
|
|
||||||
|
|
||||||
exec = "${pkgs.pcsclite}/sbin/pcscd";
|
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ with pkgs.lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs) dhcpcd;
|
dhcpcd = if !config.boot.isContainer then pkgs.dhcpcd else pkgs.dhcpcd_without_udev;
|
||||||
|
|
||||||
# Don't start dhcpcd on explicitly configured interfaces or on
|
# Don't start dhcpcd on explicitly configured interfaces or on
|
||||||
# interfaces that are part of a bridge.
|
# interfaces that are part of a bridge.
|
||||||
|
@ -285,7 +285,7 @@ in
|
|||||||
networking.firewall.allowedTCPPorts = cfg.ports;
|
networking.firewall.allowedTCPPorts = cfg.ports;
|
||||||
|
|
||||||
security.pam.services.sshd =
|
security.pam.services.sshd =
|
||||||
{ startSession = true;
|
{ startSession = !config.boot.isContainer;
|
||||||
showMotd = true;
|
showMotd = true;
|
||||||
unixAuth = cfg.passwordAuthentication;
|
unixAuth = cfg.passwordAuthentication;
|
||||||
};
|
};
|
||||||
|
@ -5,6 +5,7 @@ with pkgs.lib;
|
|||||||
let
|
let
|
||||||
|
|
||||||
dmcfg = config.services.xserver.displayManager;
|
dmcfg = config.services.xserver.displayManager;
|
||||||
|
|
||||||
cfg = dmcfg.slim;
|
cfg = dmcfg.slim;
|
||||||
|
|
||||||
slimConfig = pkgs.writeText "slim.cfg"
|
slimConfig = pkgs.writeText "slim.cfg"
|
||||||
@ -109,6 +110,12 @@ in
|
|||||||
execCmd = "exec ${pkgs.slim}/bin/slim";
|
execCmd = "exec ${pkgs.slim}/bin/slim";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.xserver.displayManager.sessionCommands =
|
||||||
|
''
|
||||||
|
# Export the config/themes for slimlock.
|
||||||
|
export SLIM_THEMESDIR=${slimThemesDir}
|
||||||
|
'';
|
||||||
|
|
||||||
# Allow null passwords so that the user can login as root on the
|
# Allow null passwords so that the user can login as root on the
|
||||||
# installation CD.
|
# installation CD.
|
||||||
security.pam.services.slim = { allowNullPassword = true; startSession = true; };
|
security.pam.services.slim = { allowNullPassword = true; startSession = true; };
|
||||||
|
@ -26,6 +26,11 @@ let
|
|||||||
|
|
||||||
driverNames = config.hardware.opengl.videoDrivers;
|
driverNames = config.hardware.opengl.videoDrivers;
|
||||||
|
|
||||||
|
needsAcpid =
|
||||||
|
(elem "nvidia" driverNames) ||
|
||||||
|
(elem "nvidiaLegacy173" driverNames) ||
|
||||||
|
(elem "nvidiaLegacy304" driverNames);
|
||||||
|
|
||||||
drivers = flip map driverNames
|
drivers = flip map driverNames
|
||||||
(name: { inherit name; driverName = name; } //
|
(name: { inherit name; driverName = name; } //
|
||||||
attrByPath [name] (if (hasAttr ("xf86video" + name) xorg) then { modules = [(getAttr ("xf86video" + name) xorg) ]; } else throw "unknown video driver `${name}'") knownVideoDrivers);
|
attrByPath [name] (if (hasAttr ("xf86video" + name) xorg) then { modules = [(getAttr ("xf86video" + name) xorg) ]; } else throw "unknown video driver `${name}'") knownVideoDrivers);
|
||||||
@ -438,6 +443,8 @@ in
|
|||||||
++ optional (elem "virtualbox" driverNames) xorg.xrefresh
|
++ optional (elem "virtualbox" driverNames) xorg.xrefresh
|
||||||
++ optional (elem "ati_unfree" driverNames) kernelPackages.ati_drivers_x11;
|
++ optional (elem "ati_unfree" driverNames) kernelPackages.ati_drivers_x11;
|
||||||
|
|
||||||
|
services.acpid.enable = mkIf needsAcpid true;
|
||||||
|
|
||||||
environment.pathsToLink =
|
environment.pathsToLink =
|
||||||
[ "/etc/xdg" "/share/xdg" "/share/applications" "/share/icons" "/share/pixmaps" ];
|
[ "/etc/xdg" "/share/xdg" "/share/applications" "/share/icons" "/share/pixmaps" ];
|
||||||
|
|
||||||
@ -446,7 +453,8 @@ in
|
|||||||
systemd.services."display-manager" =
|
systemd.services."display-manager" =
|
||||||
{ description = "X11 Server";
|
{ description = "X11 Server";
|
||||||
|
|
||||||
after = [ "systemd-udev-settle.service" "local-fs.target" ];
|
after = [ "systemd-udev-settle.service" "local-fs.target" ]
|
||||||
|
++ optional needsAcpid "acpid.service";
|
||||||
|
|
||||||
restartIfChanged = false;
|
restartIfChanged = false;
|
||||||
|
|
||||||
|
@ -321,6 +321,23 @@ in rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
pathOptions = unitOptions // {
|
||||||
|
|
||||||
|
pathConfig = mkOption {
|
||||||
|
default = {};
|
||||||
|
example = { PathChanged = "/some/path"; Unit = "changedpath.service"; };
|
||||||
|
type = types.attrsOf unitOption;
|
||||||
|
description = ''
|
||||||
|
Each attribute in this set specifies an option in the
|
||||||
|
<literal>[Path]</literal> section of the unit. See
|
||||||
|
<citerefentry><refentrytitle>systemd.path</refentrytitle>
|
||||||
|
<manvolnum>5</manvolnum></citerefentry> for details.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
mountOptions = unitOptions // {
|
mountOptions = unitOptions // {
|
||||||
|
|
||||||
what = mkOption {
|
what = mkOption {
|
||||||
|
@ -304,6 +304,15 @@ let
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pathToUnit = name: def:
|
||||||
|
{ inherit (def) wantedBy requiredBy enable;
|
||||||
|
text = commonUnitText def +
|
||||||
|
''
|
||||||
|
[Path]
|
||||||
|
${attrsToSection def.pathConfig}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
mountToUnit = name: def:
|
mountToUnit = name: def:
|
||||||
{ inherit (def) wantedBy requiredBy enable;
|
{ inherit (def) wantedBy requiredBy enable;
|
||||||
text = commonUnitText def +
|
text = commonUnitText def +
|
||||||
@ -472,6 +481,13 @@ in
|
|||||||
description = "Definition of systemd timer units.";
|
description = "Definition of systemd timer units.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.paths = mkOption {
|
||||||
|
default = {};
|
||||||
|
type = types.attrsOf types.optionSet;
|
||||||
|
options = [ pathOptions unitConfig ];
|
||||||
|
description = "Definition of systemd path units.";
|
||||||
|
};
|
||||||
|
|
||||||
systemd.mounts = mkOption {
|
systemd.mounts = mkOption {
|
||||||
default = [];
|
default = [];
|
||||||
type = types.listOf types.optionSet;
|
type = types.listOf types.optionSet;
|
||||||
@ -657,6 +673,7 @@ in
|
|||||||
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
|
// mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets
|
// mapAttrs' (n: v: nameValuePair "${n}.socket" (socketToUnit n v)) cfg.sockets
|
||||||
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers
|
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers
|
||||||
|
// mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths
|
||||||
// listToAttrs (map
|
// listToAttrs (map
|
||||||
(v: let n = escapeSystemdPath v.where;
|
(v: let n = escapeSystemdPath v.where;
|
||||||
in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts)
|
in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts)
|
||||||
|
@ -38,6 +38,8 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly...
|
|||||||
|
|
||||||
boot.extraModulePackages = [ kernel.virtualboxGuestAdditions ];
|
boot.extraModulePackages = [ kernel.virtualboxGuestAdditions ];
|
||||||
|
|
||||||
|
boot.kernelModules = [ "vboxsf" ];
|
||||||
|
|
||||||
users.extraGroups.vboxsf.gid = config.ids.gids.vboxsf;
|
users.extraGroups.vboxsf.gid = config.ids.gids.vboxsf;
|
||||||
|
|
||||||
systemd.services.virtualbox =
|
systemd.services.virtualbox =
|
||||||
|
@ -92,7 +92,7 @@ with pkgs.lib;
|
|||||||
--audiocontroller ac97 --audio alsa \
|
--audiocontroller ac97 --audio alsa \
|
||||||
--rtcuseutc on \
|
--rtcuseutc on \
|
||||||
--usb on --mouse usbtablet
|
--usb on --mouse usbtablet
|
||||||
VBoxManage storagectl "$vmName" --name SATA --add sata --sataportcount 4 --bootable on --hostiocache on
|
VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
|
||||||
VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
|
VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
|
||||||
--medium ${config.system.build.virtualBoxImage}/disk.vdi
|
--medium ${config.system.build.virtualBoxImage}/disk.vdi
|
||||||
|
|
||||||
|
@ -33,6 +33,7 @@ with import ../lib/testing.nix { inherit system minimal; };
|
|||||||
printing = makeTest (import ./printing.nix);
|
printing = makeTest (import ./printing.nix);
|
||||||
proxy = makeTest (import ./proxy.nix);
|
proxy = makeTest (import ./proxy.nix);
|
||||||
quake3 = makeTest (import ./quake3.nix);
|
quake3 = makeTest (import ./quake3.nix);
|
||||||
|
rabbitmq = makeTest (import ./rabbitmq.nix);
|
||||||
simple = makeTest (import ./simple.nix);
|
simple = makeTest (import ./simple.nix);
|
||||||
#subversion = makeTest (import ./subversion.nix);
|
#subversion = makeTest (import ./subversion.nix);
|
||||||
tomcat = makeTest (import ./tomcat.nix);
|
tomcat = makeTest (import ./tomcat.nix);
|
||||||
|
@ -39,7 +39,7 @@ let
|
|||||||
|
|
||||||
{ imports =
|
{ imports =
|
||||||
[ ./hardware-configuration.nix
|
[ ./hardware-configuration.nix
|
||||||
"''${modulesPath}/testing/test-instrumentation.nix"
|
<nixpkgs/nixos/modules/testing/test-instrumentation.nix>
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.loader.grub.version = ${toString grubVersion};
|
boot.loader.grub.version = ${toString grubVersion};
|
||||||
@ -48,7 +48,6 @@ let
|
|||||||
''}
|
''}
|
||||||
boot.loader.grub.device = "${grubDevice}";
|
boot.loader.grub.device = "${grubDevice}";
|
||||||
boot.loader.grub.extraConfig = "serial; terminal_output.serial";
|
boot.loader.grub.extraConfig = "serial; terminal_output.serial";
|
||||||
boot.initrd.kernelModules = [ "virtio_console" ];
|
|
||||||
|
|
||||||
environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
|
environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
|
||||||
}
|
}
|
||||||
@ -177,7 +176,7 @@ let
|
|||||||
# Test nixos-option.
|
# Test nixos-option.
|
||||||
$machine->succeed("nixos-option boot.initrd.kernelModules | grep virtio_console");
|
$machine->succeed("nixos-option boot.initrd.kernelModules | grep virtio_console");
|
||||||
$machine->succeed("nixos-option -d boot.initrd.kernelModules | grep 'List of modules'");
|
$machine->succeed("nixos-option -d boot.initrd.kernelModules | grep 'List of modules'");
|
||||||
$machine->succeed("nixos-option -l boot.initrd.kernelModules | grep /etc/nixos/configuration.nix");
|
$machine->succeed("nixos-option -l boot.initrd.kernelModules | grep qemu-guest.nix");
|
||||||
|
|
||||||
$machine->shutdown;
|
$machine->shutdown;
|
||||||
|
|
||||||
|
18
nixos/tests/rabbitmq.nix
Normal file
18
nixos/tests/rabbitmq.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
# This test runs rabbitmq and checks if rabbitmq is up and running
|
||||||
|
|
||||||
|
{
|
||||||
|
nodes = {
|
||||||
|
one = { config, pkgs, ... }: {
|
||||||
|
services.rabbitmq.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
startAll;
|
||||||
|
|
||||||
|
$one->waitForUnit("rabbitmq.service");
|
||||||
|
$one->waitUntilSucceeds("su -s ${pkgs.stdenv.shell} rabbitmq -c \"rabbitmqctl status\"");
|
||||||
|
'';
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
|
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
|
||||||
, fontconfig, freetype, pam, dbus_libs }:
|
, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "slim-1.3.6";
|
name = "slim-1.3.6";
|
||||||
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
|||||||
./run-once.patch
|
./run-once.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
preConfigure = "substituteInPlace CMakeLists.txt --replace /etc $out/etc --replace /lib $out/lib";
|
preConfigure = "substituteInPlace CMakeLists.txt --replace /lib $out/lib";
|
||||||
|
|
||||||
cmakeFlags = [ "-DUSE_PAM=1" ];
|
cmakeFlags = [ "-DUSE_PAM=1" ];
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs =
|
buildInputs =
|
||||||
[ cmake pkgconfig libjpeg libpng fontconfig freetype
|
[ cmake pkgconfig libjpeg libpng fontconfig freetype
|
||||||
pam dbus_libs
|
pam dbus_libs
|
||||||
xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft
|
xorg.libX11 xorg.libXext xorg.libXrandr xorg.libXrender xorg.libXmu xorg.libXft makeWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
NIX_CFLAGS_LINK = "-lXmu";
|
NIX_CFLAGS_LINK = "-lXmu";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
|
diff -ru slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
|
||||||
--- slim-1.3.6-orig/app.cpp 2013-10-02 00:38:05.000000000 +0200
|
--- slim-1.3.6-orig/app.cpp 2013-10-02 00:38:05.000000000 +0200
|
||||||
+++ slim-1.3.6/app.cpp 2013-10-15 11:02:55.629263422 +0200
|
+++ slim-1.3.6/app.cpp 2014-03-30 19:01:04.115414201 +0200
|
||||||
@@ -200,7 +200,9 @@
|
@@ -200,7 +200,9 @@
|
||||||
|
|
||||||
/* Read configuration and theme */
|
/* Read configuration and theme */
|
||||||
@ -23,3 +23,48 @@ diff -ru -x '*~' slim-1.3.6-orig/app.cpp slim-1.3.6/app.cpp
|
|||||||
themeName = cfg->getOption("current_theme");
|
themeName = cfg->getOption("current_theme");
|
||||||
string::size_type pos;
|
string::size_type pos;
|
||||||
if ((pos = themeName.find(",")) != string::npos) {
|
if ((pos = themeName.find(",")) != string::npos) {
|
||||||
|
diff -ru slim-1.3.6-orig/CMakeLists.txt slim-1.3.6/CMakeLists.txt
|
||||||
|
--- slim-1.3.6-orig/CMakeLists.txt 2013-10-02 00:38:05.000000000 +0200
|
||||||
|
+++ slim-1.3.6/CMakeLists.txt 2014-03-30 19:16:48.445069729 +0200
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory")
|
||||||
|
set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/share/slim")
|
||||||
|
-set(SYSCONFDIR "/etc")
|
||||||
|
+set(SYSCONFDIR "$ENV{out}/etc")
|
||||||
|
set(LIBDIR "/lib")
|
||||||
|
set(MANDIR "${CMAKE_INSTALL_PREFIX}/share/man")
|
||||||
|
|
||||||
|
@@ -40,7 +40,7 @@
|
||||||
|
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPACKAGE=\"slim\"")
|
||||||
|
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DVERSION=\"${SLIM_VERSION}\"")
|
||||||
|
set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DPKGDATADIR=\"${PKGDATADIR}\"")
|
||||||
|
-set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"${SYSCONFDIR}\"")
|
||||||
|
+set(SLIM_DEFINITIONS ${SLIM_DEFINITIONS} "-DSYSCONFDIR=\"/etc\"")
|
||||||
|
|
||||||
|
# Flags
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -O2")
|
||||||
|
Only in slim-1.3.6: CMakeLists.txt~
|
||||||
|
diff -ru slim-1.3.6-orig/slimlock.cpp slim-1.3.6/slimlock.cpp
|
||||||
|
--- slim-1.3.6-orig/slimlock.cpp 2013-10-02 00:38:05.000000000 +0200
|
||||||
|
+++ slim-1.3.6/slimlock.cpp 2014-03-30 19:01:04.115414201 +0200
|
||||||
|
@@ -106,13 +106,17 @@
|
||||||
|
unsigned int cfg_passwd_timeout;
|
||||||
|
// Read user's current theme
|
||||||
|
cfg = new Cfg;
|
||||||
|
- cfg->readConf(CFGFILE);
|
||||||
|
+ char *cfgfile = getenv("SLIM_CFGFILE");
|
||||||
|
+ if (!cfgfile) cfgfile = CFGFILE;
|
||||||
|
+ cfg->readConf(cfgfile);
|
||||||
|
cfg->readConf(SLIMLOCKCFG);
|
||||||
|
string themebase = "";
|
||||||
|
string themefile = "";
|
||||||
|
string themedir = "";
|
||||||
|
themeName = "";
|
||||||
|
- themebase = string(THEMESDIR) + "/";
|
||||||
|
+ char *themesdir = getenv("SLIM_THEMESDIR");
|
||||||
|
+ if (!themesdir) themesdir = THEMESDIR;
|
||||||
|
+ themebase = string(themesdir) + "/";
|
||||||
|
themeName = cfg->getOption("current_theme");
|
||||||
|
string::size_type pos;
|
||||||
|
if ((pos = themeName.find(",")) != string::npos) {
|
||||||
|
@ -11,13 +11,12 @@ cabal.mkDerivation (self: {
|
|||||||
postInstall = ''
|
postInstall = ''
|
||||||
emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
|
emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
|
||||||
install -d $out/share/emacs/site-lisp
|
install -d $out/share/emacs/site-lisp
|
||||||
install "elisp/"*.elc $out/share/emacs/site-lisp
|
install "elisp/"*.el "elisp/"*.elc $out/share/emacs/site-lisp
|
||||||
'';
|
'';
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/chrisdone/structured-haskell-mode";
|
homepage = "https://github.com/chrisdone/structured-haskell-mode";
|
||||||
description = "Structured editing Emacs mode for Haskell";
|
description = "Structured editing Emacs mode for Haskell";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
maintainers = [ self.stdenv.lib.maintainers.pSub ];
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
|
|||||||
description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
|
description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
maintainers = [ maintainers.iElectric ];
|
maintainers = [ maintainers.iElectric ];
|
||||||
license = "sleepycat";
|
license = licenses.sleepycat;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
36
pkgs/applications/misc/printrun/default.nix
Normal file
36
pkgs/applications/misc/printrun/default.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ stdenv, python27Packages, fetchgit }:
|
||||||
|
let
|
||||||
|
py = python27Packages;
|
||||||
|
in
|
||||||
|
py.buildPythonPackage rec {
|
||||||
|
name = "printrun";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/kliment/Printrun";
|
||||||
|
rev = "0a7f2335d0c02c3cc283200867b41f8b337b1387";
|
||||||
|
sha256 = "1zvh5ih89isv51sraljm29z9k00srrdnklwkyp27ymxzlbcwq6gv";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ py.wxPython py.pyserial py.dbus py.psutil ];
|
||||||
|
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
sed -i -r "s|/usr(/local)?/share/|$out/share/|g" printrun/utils.py
|
||||||
|
sed -i "s|distutils.core|setuptools|" setup.py
|
||||||
|
sed -i "s|distutils.command.install |setuptools.command.install |" setup.py
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
for f in $out/share/applications/*.desktop; do
|
||||||
|
sed -i -e "s|/usr/|$out/|g" "$f"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Pronterface, Pronsole, and Printcore - Pure Python 3d printing host software";
|
||||||
|
homepage = https://github.com/kliment/Printrun;
|
||||||
|
license = licenses.gpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -3,14 +3,14 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.9.2";
|
version = "0.9.4";
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
name = "spacefm-${version}";
|
name = "spacefm-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/IgnorantGuru/spacefm/blob/pkg/${version}/${name}.tar.xz?raw=true";
|
url = "https://github.com/IgnorantGuru/spacefm/blob/pkg/${version}/${name}.tar.xz?raw=true";
|
||||||
sha256 = "3767137d74aa78597ffb42a6121784e91a4276efcd5d718b3793b9790f82268c";
|
sha256 = "0marwa031jk24q8hy90dr7yw6rv5hn1shar404zpb1k57v4nr23m";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig makeWrapper ];
|
buildInputs = [ gtk3 udev desktop_file_utils shared_mime_info intltool pkgconfig makeWrapper ];
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
, libusb1, libexif, pciutils
|
, libusb1, libexif, pciutils
|
||||||
|
|
||||||
, python, pythonPackages, perl, pkgconfig
|
, python, pythonPackages, perl, pkgconfig
|
||||||
, nspr, udev, krb5, file
|
, nspr, udev, krb5
|
||||||
, utillinux, alsaLib
|
, utillinux, alsaLib
|
||||||
, gcc, bison, gperf
|
, gcc, bison, gperf
|
||||||
, glib, gtk, dbus_glib
|
, glib, gtk, dbus_glib
|
||||||
@ -54,6 +54,7 @@ let
|
|||||||
sed -i -r \
|
sed -i -r \
|
||||||
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
|
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
|
||||||
-e 's|/bin/echo|echo|' \
|
-e 's|/bin/echo|echo|' \
|
||||||
|
-e "/python_arch/s/: *'[^']*'/: '""'/" \
|
||||||
build/common.gypi
|
build/common.gypi
|
||||||
sed -i '/not RunGN/,+1d' build/gyp_chromium
|
sed -i '/not RunGN/,+1d' build/gyp_chromium
|
||||||
sed -i -e 's|/usr/bin/gcc|gcc|' \
|
sed -i -e 's|/usr/bin/gcc|gcc|' \
|
||||||
@ -165,8 +166,7 @@ in stdenv.mkDerivation rec {
|
|||||||
nspr udev
|
nspr udev
|
||||||
(if useOpenSSL then openssl else nss)
|
(if useOpenSSL then openssl else nss)
|
||||||
utillinux alsaLib
|
utillinux alsaLib
|
||||||
gcc bison gperf
|
gcc bison gperf krb5
|
||||||
krb5 file
|
|
||||||
glib gtk dbus_glib
|
glib gtk dbus_glib
|
||||||
libXScrnSaver libXcursor libXtst mesa
|
libXScrnSaver libXcursor libXtst mesa
|
||||||
pciutils protobuf speechd libXdamage
|
pciutils protobuf speechd libXdamage
|
||||||
@ -223,8 +223,10 @@ in stdenv.mkDerivation rec {
|
|||||||
ffmpeg_branding = "Chrome";
|
ffmpeg_branding = "Chrome";
|
||||||
} // optionalAttrs (stdenv.system == "x86_64-linux") {
|
} // optionalAttrs (stdenv.system == "x86_64-linux") {
|
||||||
target_arch = "x64";
|
target_arch = "x64";
|
||||||
|
python_arch = "x86-64";
|
||||||
} // optionalAttrs (stdenv.system == "i686-linux") {
|
} // optionalAttrs (stdenv.system == "i686-linux") {
|
||||||
target_arch = "ia32";
|
target_arch = "ia32";
|
||||||
|
python_arch = "ia32";
|
||||||
});
|
});
|
||||||
|
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
m4, glib_networking, gsettings_desktop_schemas }:
|
m4, glib_networking, gsettings_desktop_schemas }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "dwb-2014-03-01";
|
name = "dwb-2014-03-27";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://bitbucket.org/portix/dwb.git";
|
url = "https://bitbucket.org/portix/dwb.git";
|
||||||
rev = "e8d4b8d7937b70279d006da4938dfe52fb85f9e8";
|
rev = "4566d58575fbf687ebe9e3414996c45697b62787";
|
||||||
sha256 = "0m4730zqmnvb9k6xyydi221sh0wbanzbhg07xvwil3kn1d29340w";
|
sha256 = "145sq2wv0s0n32cwpwgy59ff6ppcv80ialak7nnj1rpqicfqb72h";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4 ];
|
buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4 ];
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{stdenv, fetchurl, readline, libssh, intltool}:
|
{stdenv, fetchurl, readline, libssh, intltool, libbsd}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yafc-1.2.3";
|
name = "yafc-1.3.2";
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/downloads/sebastinas/yafc/${name}.tar.xz";
|
url = "http://www.yafc-ftp.com/upload/${name}.tar.xz";
|
||||||
sha256 = "11h5r9ragfpil338kq981wxnifacflqfwgydhmy00b3fbdlnxzsi";
|
sha256 = "0rrhik00xynxg5s3ffqlyynvy8ssv8zfaixkpb77baxa274gnbd7";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ readline libssh intltool ];
|
buildInputs = [ readline libssh intltool libbsd ];
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "ftp/sftp client with readline, autocompletion and bookmarks";
|
description = "ftp/sftp client with readline, autocompletion and bookmarks";
|
||||||
|
41
pkgs/applications/office/zotero/default.nix
Normal file
41
pkgs/applications/office/zotero/default.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ stdenv, fetchurl, bash, xulrunner }:
|
||||||
|
|
||||||
|
assert (stdenv.system == "x86_64-linux" || stdenv.system == "i686-linux");
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "4.0.19";
|
||||||
|
arch = if stdenv.system == "x86_64-linux"
|
||||||
|
then "linux-x86_64"
|
||||||
|
else "linux-i686";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "zotero-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://download.zotero.org/standalone/${version}/Zotero-${version}_${arch}.tar.bz2";
|
||||||
|
sha256 = if stdenv.system == "x86_64-linux"
|
||||||
|
then "0xihvk7ms1vvzmxvpw8hs15pl1vvmf3zd72nwyaqhg469kwcz9s1"
|
||||||
|
else "1z4q8nzl90snb03ywk0cp64nv3cgasj9fvbcw2d4bgl2zlgwzpy9";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Strip the bundled xulrunner
|
||||||
|
prePatch = ''rm -fr run-zotero.sh zotero xulrunner/'';
|
||||||
|
|
||||||
|
inherit bash xulrunner;
|
||||||
|
installPhase = ''
|
||||||
|
ensureDir "$out/libexec/zotero"
|
||||||
|
cp -vR * "$out/libexec/zotero/"
|
||||||
|
|
||||||
|
ensureDir "$out/bin"
|
||||||
|
substituteAll "${./zotero.sh}" "$out/bin/zotero"
|
||||||
|
chmod +x "$out/bin/zotero"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "https://www.zotero.org";
|
||||||
|
description = "Collect, organize, cite, and share your research sources";
|
||||||
|
license = licenses.agpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ ttuegel ];
|
||||||
|
};
|
||||||
|
}
|
3
pkgs/applications/office/zotero/zotero.sh
Normal file
3
pkgs/applications/office/zotero/zotero.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#!@bash@/bin/bash
|
||||||
|
|
||||||
|
exec "@xulrunner@/bin/xulrunner" "@out@/libexec/zotero/application.ini" "${@}"
|
46
pkgs/applications/science/logic/z3/default.nix
Normal file
46
pkgs/applications/science/logic/z3/default.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ stdenv, fetchurl, python, unzip, autoreconfHook }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "z3-${version}";
|
||||||
|
version = "4.3.1";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://download-codeplex.sec.s-msft.com/Download/SourceControlFileDownload.ashx\?ProjectName\=z3\&changeSetId\=89c1785b73225a1b363c0e485f854613121b70a7";
|
||||||
|
name = "${name}.zip";
|
||||||
|
sha256 = "3b94465c52ec174350d8707dd6a1fb0cef42f0fa23f148cc1808c14f3c2c7f76";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ python unzip autoreconfHook ];
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
# The zip file doesn't unpack a directory, just the code itself.
|
||||||
|
unpackPhase = "mkdir ${name} && cd ${name} && unzip $src";
|
||||||
|
postConfigure = ''
|
||||||
|
python scripts/mk_make.py
|
||||||
|
cd build
|
||||||
|
'';
|
||||||
|
|
||||||
|
# z3's install phase is stupid because it tries to calculate the
|
||||||
|
# python package store location itself, meaning it'll attempt to
|
||||||
|
# write files into the nix store, and fail.
|
||||||
|
soext = if stdenv.system == "x86_64-darwin" then ".dylib" else ".so";
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin $out/lib/${python.libPrefix}/site-packages $out/include
|
||||||
|
cp ../src/api/z3.h $out/include
|
||||||
|
cp ../src/api/z3_api.h $out/include
|
||||||
|
cp ../src/api/z3_v1.h $out/include
|
||||||
|
cp ../src/api/z3_macros.h $out/include
|
||||||
|
cp ../src/api/c++/z3++.h $out/include
|
||||||
|
cp z3 $out/bin
|
||||||
|
cp libz3${soext} $out/lib
|
||||||
|
cp libz3${soext} $out/lib/${python.libPrefix}/site-packages
|
||||||
|
cp z3*.pyc $out/lib/${python.libPrefix}/site-packages
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Z3 is a high-performance theorem prover and SMT solver";
|
||||||
|
homepage = "http://z3.codeplex.com";
|
||||||
|
license = stdenv.lib.licenses.unfreeRedistributable;
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
|
||||||
|
};
|
||||||
|
}
|
58
pkgs/applications/video/pitivi/default.nix
Normal file
58
pkgs/applications/video/pitivi/default.nix
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
{ stdenv, fetchurl, pkgconfig, intltool, itstool, makeWrapper
|
||||||
|
, pythonPackages, gst, clutter-gst, clutter-gtk
|
||||||
|
, gobjectIntrospection, clutter, gtk3, librsvg
|
||||||
|
, gnome_icon_theme, gnome_icon_theme_symbolic
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "0.93";
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
name = "pitivi-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://gnome/sources/pitivi/${version}/${name}.tar.xz";
|
||||||
|
sha256 = "0z89dwrd7akhkap270i372yszqib8yqcymv78lhdmn3a8bsa7jhp";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Non-Linear video editor utilizing the power of GStreamer";
|
||||||
|
homepage = "http://pitivi.org/";
|
||||||
|
longDescription = ''
|
||||||
|
Pitivi is a video editor built upon the GStreamer Editing Services.
|
||||||
|
It aims to be an intuitive and flexible application
|
||||||
|
that can appeal to newbies and professionals alike.
|
||||||
|
'';
|
||||||
|
license = licenses.lgpl21Plus;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ iyzsong ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ pkgconfig intltool itstool makeWrapper ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
gobjectIntrospection clutter-gst clutter-gtk librsvg
|
||||||
|
] ++ (with gst; [
|
||||||
|
gst-python gst-editing-services
|
||||||
|
gst-plugins-base gst-plugins-good
|
||||||
|
gst-plugins-bad gst-plugins-ugly gst-libav
|
||||||
|
]) ++ (with pythonPackages; [
|
||||||
|
python pygobject3 pyxdg numpy pycairo sqlite3
|
||||||
|
]);
|
||||||
|
|
||||||
|
postInstall = with stdenv.lib; with gst; let
|
||||||
|
libraryPath = makeLibraryPath [
|
||||||
|
gstreamer gst-editing-services
|
||||||
|
clutter-gst clutter-gtk clutter gtk3
|
||||||
|
];
|
||||||
|
|
||||||
|
xdgDataDirs = makeSearchPath "share" [
|
||||||
|
gtk3 gnome_icon_theme gnome_icon_theme_symbolic
|
||||||
|
];
|
||||||
|
in ''
|
||||||
|
wrapProgram "$out/bin/pitivi" \
|
||||||
|
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
|
||||||
|
--prefix LD_LIBRARY_PATH : "${libraryPath}" \
|
||||||
|
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0" \
|
||||||
|
--prefix XDG_DATA_DIRS : "\$XDG_ICON_DIRS:${xdgDataDirs}:$out/share"
|
||||||
|
'';
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
|
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
|
||||||
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
|
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
|
||||||
, which, alsaLib, curl, gawk
|
, which, alsaLib, curl, libvpx, gawk
|
||||||
, xorriso, makeself, perl, pkgconfig
|
, xorriso, makeself, perl, pkgconfig
|
||||||
, javaBindings ? false, jdk ? null
|
, javaBindings ? false, jdk ? null
|
||||||
, pythonBindings ? false, python ? null
|
, pythonBindings ? false, python ? null
|
||||||
@ -11,7 +11,7 @@ with stdenv.lib;
|
|||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
version = "4.2.22"; # changes ./guest-additions as well
|
version = "4.3.10"; # changes ./guest-additions as well
|
||||||
|
|
||||||
forEachModule = action: ''
|
forEachModule = action: ''
|
||||||
for mod in \
|
for mod in \
|
||||||
@ -31,13 +31,13 @@ let
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
# See https://github.com/NixOS/nixpkgs/issues/672 for details
|
# See https://github.com/NixOS/nixpkgs/issues/672 for details
|
||||||
extpackRevision = "91556";
|
extpackRevision = "93012";
|
||||||
extensionPack = requireFile rec {
|
extensionPack = requireFile rec {
|
||||||
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
|
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
|
||||||
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
|
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
|
||||||
# VBoxExtPackHelperApp!
|
# VBoxExtPackHelperApp!
|
||||||
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.22/SHA256SUMS
|
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS
|
||||||
sha256 = "79c0da87451cab3868f64d48bf9a7fdd710786c05ed4b3070b008c3aa1ce4f7a";
|
sha256 = "ec3f2a98373d5e228acb4756ac07f44212c4d53f6b83deee81b791abb0d2608a";
|
||||||
message = ''
|
message = ''
|
||||||
In order to use the extension pack, you need to comply with the VirtualBox Personal Use
|
In order to use the extension pack, you need to comply with the VirtualBox Personal Use
|
||||||
and Evaluation License (PUEL) by downloading the related binaries from:
|
and Evaluation License (PUEL) by downloading the related binaries from:
|
||||||
@ -56,12 +56,12 @@ in stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
|
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
|
||||||
sha256 = "4a017ec5fa0e0cfa830ae6c2b9d680c9b108e5fb96348e1397a7d0ea051f8bc1";
|
sha256 = "739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
|
[ iasl dev86 libxslt libxml2 xproto libX11 libXext libXcursor qt4 libIDL SDL
|
||||||
libcap glib lvm2 python alsaLib curl pam xorriso makeself perl
|
libcap glib lvm2 python alsaLib curl libvpx pam xorriso makeself perl
|
||||||
pkgconfig which libXmu ]
|
pkgconfig which libXmu ]
|
||||||
++ optional javaBindings jdk
|
++ optional javaBindings jdk
|
||||||
++ optional pythonBindings python;
|
++ optional pythonBindings python;
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
|
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
|
||||||
sha256 = "222e003d038b757cd761361bb5da33123e0f9574af246fb95eb558593c8c7c76";
|
sha256 = "247e15e9a205dcd4761f6cb547ceca2a61e8d6905c1930870939fd323f4cd1ae";
|
||||||
};
|
};
|
||||||
|
|
||||||
KERN_DIR = "${kernel.dev}/lib/modules/*/build";
|
KERN_DIR = "${kernel.dev}/lib/modules/*/build";
|
||||||
|
@ -10,8 +10,9 @@ cabal.mkDerivation (self: {
|
|||||||
extensibleExceptions filepath mtl utf8String X11
|
extensibleExceptions filepath mtl utf8String X11
|
||||||
];
|
];
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
|
shopt -s globstar
|
||||||
mkdir -p $out/share/man/man1
|
mkdir -p $out/share/man/man1
|
||||||
mv $out/share/xmonad-*/man/*.1 $out/share/man/man1/
|
mv "$out/"**"/man/"*.1 $out/share/man/man1/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
, autoconf, automake, libtool, openjdk, perl }:
|
, autoconf, automake, libtool, openjdk, perl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "aldor-1.1.0";
|
name = "aldor-1.2.0";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://github.com/pippijn/aldor";
|
url = "https://github.com/pippijn/aldor";
|
||||||
sha256 = "14xv3jl15ib2knsdz0bd7jx64zg1qrr33q5zcr8gli860ps8gkg3";
|
sha256 = "1l9fc2cgwabifwbijcp293abc8hcv40nzx2w31jkxh8n0plbiczn";
|
||||||
rev = "f7b95835cf709654744441ddb1c515bfc2bec998";
|
rev = "15471e75f3d65b93150f414ebcaf59a03054b68d";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ gmp which flex bison makeWrapper autoconf automake libtool
|
buildInputs = [ gmp which flex bison makeWrapper autoconf automake libtool
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ mono pkgconfig autoconf automake which ];
|
buildInputs = [ mono pkgconfig autoconf automake which ];
|
||||||
configurePhase = ''
|
configurePhase = ''
|
||||||
substituteInPlace ./autogen.sh "/usr/bin/env sh" "/bin/sh"
|
substituteInPlace ./autogen.sh --replace "/usr/bin/env sh" "/bin/sh"
|
||||||
./autogen.sh --prefix $out
|
./autogen.sh --prefix $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
46
pkgs/development/compilers/gcc-arm-embedded/default.nix
Normal file
46
pkgs/development/compilers/gcc-arm-embedded/default.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256 }:
|
||||||
|
with stdenv.lib;
|
||||||
|
let
|
||||||
|
versionParts = splitString "-" version; # 4.7 2013q3 20130916
|
||||||
|
majorVersion = elemAt versionParts 0; # 4.7
|
||||||
|
yearQuarter = elemAt versionParts 1; # 2013q3
|
||||||
|
underscoreVersion = replaceChars ["."] ["_"] version; # 4_7-2013q3-20130916
|
||||||
|
yearQuarterParts = splitString "q" yearQuarter; # 2013 3
|
||||||
|
year = elemAt yearQuarterParts 0; # 2013
|
||||||
|
quarter = elemAt yearQuarterParts 1; # 3
|
||||||
|
subdirName = "${majorVersion}-${year}-q${quarter}-${releaseType}"; # 4.7-2013-q3-update
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "gcc-arm-embedded-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://launchpad.net/gcc-arm-embedded/${majorVersion}/${subdirName}/+download/gcc-arm-none-eabi-${underscoreVersion}-linux.tar.bz2";
|
||||||
|
sha256 = sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ bzip2 patchelf ];
|
||||||
|
|
||||||
|
dontPatchELF = true;
|
||||||
|
|
||||||
|
phases = "unpackPhase patchPhase installPhase";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -pv $out
|
||||||
|
cp -r ./* $out
|
||||||
|
|
||||||
|
for f in $(find $out); do
|
||||||
|
if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
|
||||||
|
patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
|
||||||
|
--set-rpath $out/lib:${gcc}/lib \
|
||||||
|
"$f" || true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4, Cortex-R4/R5/R7)";
|
||||||
|
homepage = "https://launchpad.net/gcc-arm-embedded";
|
||||||
|
license = licenses.gpl3;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
37
pkgs/development/compilers/icedtea-web/default.nix
Normal file
37
pkgs/development/compilers/icedtea-web/default.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ stdenv, fetchurl, jdk, gtk2, xulrunner, zip, pkgconfig, perl, npapi_sdk }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "icedtea-web-${version}";
|
||||||
|
|
||||||
|
version = "1.4.2";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://icedtea.wildebeest.org/download/source/${name}.tar.gz";
|
||||||
|
|
||||||
|
sha256 = "0bfw4icxjfkdxqmiqgp9lfs1ca9rydl57g3yhlxrif0fpzyyb3fl";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ gtk2 xulrunner zip pkgconfig npapi_sdk ];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
substituteInPlace javac.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--with-jdk-home=${jdk}"
|
||||||
|
];
|
||||||
|
|
||||||
|
mozillaPlugin = "/lib";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Java web browser plugin and an implementation of Java Web Start";
|
||||||
|
longDescription = ''
|
||||||
|
A Free Software web browser plugin running applets written in the Java
|
||||||
|
programming language and an implementation of Java Web Start, originally
|
||||||
|
based on the NetX project.
|
||||||
|
'';
|
||||||
|
homepage = http://icedtea.classpath.org/wiki/IcedTea-Web;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ wizeman ];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
diff -Naur openjdk-orig/jdk/make/sun/awt/mawt.gmk openjdk/jdk/make/sun/awt/mawt.gmk
|
||||||
|
--- openjdk-orig/jdk/make/sun/awt/mawt.gmk 2012-08-28 19:13:16.000000000 -0400
|
||||||
|
+++ openjdk/jdk/make/sun/awt/mawt.gmk 2013-01-22 11:56:22.315418708 -0500
|
||||||
|
@@ -234,12 +234,6 @@
|
||||||
|
endif # !HEADLESS
|
||||||
|
endif # PLATFORM
|
||||||
|
|
||||||
|
-ifeq ($(PLATFORM), linux)
|
||||||
|
- # Checking for the X11/extensions headers at the additional location
|
||||||
|
- CPPFLAGS += -I$(firstword $(wildcard $(OPENWIN_HOME)/include/X11/extensions) \
|
||||||
|
- $(wildcard /usr/include/X11/extensions))
|
||||||
|
-endif
|
||||||
|
-
|
||||||
|
ifeq ($(PLATFORM), macosx))
|
||||||
|
CPPFLAGS += -I$(OPENWIN_HOME)/include/X11/extensions \
|
||||||
|
-I$(OPENWIN_HOME)/include
|
179
pkgs/development/compilers/icedtea/default.nix
Normal file
179
pkgs/development/compilers/icedtea/default.nix
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
{ stdenv, fetchurl, jdk, jdkPath, ant, wget, zip, unzip, cpio, file, libxslt
|
||||||
|
, xorg, zlib, pkgconfig, libjpeg, libpng, giflib, lcms2, gtk2, krb5, attr
|
||||||
|
, alsaLib, procps, automake, autoconf, cups, which, perl, coreutils, binutils
|
||||||
|
, cacert, setJavaClassPath
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The JRE libraries are in directories that depend on the CPU.
|
||||||
|
*/
|
||||||
|
architecture =
|
||||||
|
if stdenv.system == "i686-linux" then
|
||||||
|
"i386"
|
||||||
|
else if stdenv.system == "x86_64-linux" then
|
||||||
|
"amd64"
|
||||||
|
else
|
||||||
|
throw "icedtea requires i686-linux or x86_64 linux";
|
||||||
|
|
||||||
|
srcInfo = (import ./sources.nix).icedtea7;
|
||||||
|
|
||||||
|
pkgName = "icedtea7-${srcInfo.version}";
|
||||||
|
|
||||||
|
defSrc = name:
|
||||||
|
with (builtins.getAttr name srcInfo.bundles); fetchurl {
|
||||||
|
inherit url sha256;
|
||||||
|
name = "${pkgName}-${name}-${baseNameOf url}";
|
||||||
|
};
|
||||||
|
|
||||||
|
bundleNames = builtins.attrNames srcInfo.bundles;
|
||||||
|
|
||||||
|
sources = stdenv.lib.genAttrs bundleNames (name: defSrc name);
|
||||||
|
|
||||||
|
bundleFun = name: "--with-${name}-src-zip=" + builtins.getAttr name sources;
|
||||||
|
bundleFlags = map bundleFun bundleNames;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
with srcInfo; stdenv.mkDerivation {
|
||||||
|
name = pkgName;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
inherit url sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = [ "out" "jre" ];
|
||||||
|
|
||||||
|
# TODO: Probably some more dependencies should be on this list but are being
|
||||||
|
# propagated instead
|
||||||
|
buildInputs = [
|
||||||
|
jdk ant wget zip unzip cpio file libxslt pkgconfig procps automake
|
||||||
|
autoconf which perl coreutils xorg.lndir
|
||||||
|
zlib libjpeg libpng giflib lcms2 krb5 attr alsaLib cups
|
||||||
|
xorg.libX11 xorg.libXtst gtk2
|
||||||
|
];
|
||||||
|
|
||||||
|
configureFlags = bundleFlags ++ [
|
||||||
|
"--disable-bootstrap"
|
||||||
|
"--disable-downloading"
|
||||||
|
|
||||||
|
"--without-rhino"
|
||||||
|
# Uncomment this when paxctl lands in stdenv: "--with-pax=paxctl"
|
||||||
|
"--with-jdk-home=${jdkPath}"
|
||||||
|
];
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
unset JAVA_HOME JDK_HOME CLASSPATH JAVAC JAVACFLAGS
|
||||||
|
|
||||||
|
substituteInPlace javac.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
|
||||||
|
substituteInPlace javah.in --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
|
||||||
|
|
||||||
|
./autogen.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
make stamps/extract.stamp
|
||||||
|
|
||||||
|
substituteInPlace openjdk/jdk/make/common/shared/Defs-utils.gmk --replace '/bin/echo' '${coreutils}/bin/echo'
|
||||||
|
substituteInPlace openjdk/corba/make/common/shared/Defs-utils.gmk --replace '/bin/echo' '${coreutils}/bin/echo'
|
||||||
|
|
||||||
|
patch -p0 < ${./cppflags-include-fix.patch}
|
||||||
|
patch -p0 < ${./fix-java-home.patch}
|
||||||
|
'';
|
||||||
|
|
||||||
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
makeFlags = [
|
||||||
|
"ALSA_INCLUDE=${alsaLib}/include/alsa/version.h"
|
||||||
|
"ALT_UNIXCOMMAND_PATH="
|
||||||
|
"ALT_USRBIN_PATH="
|
||||||
|
"ALT_DEVTOOLS_PATH="
|
||||||
|
"ALT_COMPILER_PATH="
|
||||||
|
"ALT_CUPS_HEADERS_PATH=${cups}/include"
|
||||||
|
"ALT_OBJCOPY=${binutils}/bin/objcopy"
|
||||||
|
"SORT=${coreutils}/bin/sort"
|
||||||
|
"UNLIMITED_CRYPTO=1"
|
||||||
|
];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib/icedtea $out/share $jre/lib/icedtea
|
||||||
|
|
||||||
|
cp -av openjdk.build/j2sdk-image/* $out/lib/icedtea
|
||||||
|
|
||||||
|
# Move some stuff to top-level.
|
||||||
|
mv $out/lib/icedtea/include $out/include
|
||||||
|
mv $out/lib/icedtea/man $out/share/man
|
||||||
|
|
||||||
|
# jni.h expects jni_md.h to be in the header search path.
|
||||||
|
ln -s $out/include/linux/*_md.h $out/include/
|
||||||
|
|
||||||
|
# Remove some broken manpages.
|
||||||
|
rm -rf $out/share/man/ja*
|
||||||
|
|
||||||
|
# Remove crap from the installation.
|
||||||
|
rm -rf $out/lib/icedtea/demo $out/lib/icedtea/sample
|
||||||
|
|
||||||
|
# Move the JRE to a separate output.
|
||||||
|
mv $out/lib/icedtea/jre $jre/lib/icedtea/
|
||||||
|
mkdir $out/lib/icedtea/jre
|
||||||
|
lndir $jre/lib/icedtea/jre $out/lib/icedtea/jre
|
||||||
|
|
||||||
|
# The following files cannot be symlinked, as it seems to violate Java security policies
|
||||||
|
rm $out/lib/icedtea/jre/lib/ext/*
|
||||||
|
cp $jre/lib/icedtea/jre/lib/ext/* $out/lib/icedtea/jre/lib/ext/
|
||||||
|
|
||||||
|
rm -rf $out/lib/icedtea/jre/bin
|
||||||
|
ln -s $out/lib/icedtea/bin $out/lib/icedtea/jre/bin
|
||||||
|
|
||||||
|
# Remove duplicate binaries.
|
||||||
|
for i in $(cd $out/lib/icedtea/bin && echo *); do
|
||||||
|
if [ "$i" = java ]; then continue; fi
|
||||||
|
if cmp -s $out/lib/icedtea/bin/$i $jre/lib/icedtea/jre/bin/$i; then
|
||||||
|
ln -sfn $jre/lib/icedtea/jre/bin/$i $out/lib/icedtea/bin/$i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Generate certificates.
|
||||||
|
pushd $jre/lib/icedtea/jre/lib/security
|
||||||
|
rm cacerts
|
||||||
|
perl ${./generate-cacerts.pl} $jre/lib/icedtea/jre/bin/keytool ${cacert}/etc/ca-bundle.crt
|
||||||
|
popd
|
||||||
|
|
||||||
|
ln -s $out/lib/icedtea/bin $out/bin
|
||||||
|
ln -s $jre/lib/icedtea/jre/bin $jre/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
# FIXME: this is unnecessary once the multiple-outputs branch is merged.
|
||||||
|
preFixup = ''
|
||||||
|
prefix=$jre stripDirs "$stripDebugList" "''${stripDebugFlags:--S}"
|
||||||
|
patchELF $jre
|
||||||
|
propagatedNativeBuildInputs+=" $jre"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
echo -n "${setJavaClassPath}" > $jre/nix-support/propagated-native-build-inputs
|
||||||
|
|
||||||
|
# Set JAVA_HOME automatically.
|
||||||
|
mkdir -p $out/nix-support
|
||||||
|
cat <<EOF > $out/nix-support/setup-hook
|
||||||
|
if [ -z "\$JAVA_HOME" ]; then export JAVA_HOME=$out/lib/icedtea; fi
|
||||||
|
EOF
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Free Java development kit based on OpenJDK 7.0 and the IcedTea project";
|
||||||
|
longDescription = ''
|
||||||
|
Free Java environment based on OpenJDK 7.0 and the IcedTea project.
|
||||||
|
- Full Java runtime environment
|
||||||
|
- Needed for executing Java Webstart programs and the free Java web browser plugin.
|
||||||
|
'';
|
||||||
|
homepage = http://icedtea.classpath.org;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ wizeman ];
|
||||||
|
platforms = stdenv.lib.platforms.linux;
|
||||||
|
};
|
||||||
|
|
||||||
|
passthru = { inherit architecture; };
|
||||||
|
}
|
17
pkgs/development/compilers/icedtea/fix-java-home.patch
Normal file
17
pkgs/development/compilers/icedtea/fix-java-home.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff -ru -x '*~' openjdk-orig/hotspot/src/os/linux/vm/os_linux.cpp openjdk/hotspot/src/os/linux/vm/os_linux.cpp
|
||||||
|
--- openjdk-orig/hotspot/src/os/linux/vm/os_linux.cpp 2013-09-06 20:22:03.000000000 +0200
|
||||||
|
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2014-01-24 22:44:08.223857012 +0100
|
||||||
|
@@ -2358,12 +2358,10 @@
|
||||||
|
CAST_FROM_FN_PTR(address, os::jvm_path),
|
||||||
|
dli_fname, sizeof(dli_fname), NULL);
|
||||||
|
assert(ret, "cannot locate libjvm");
|
||||||
|
char *rp = NULL;
|
||||||
|
if (ret && dli_fname[0] != '\0') {
|
||||||
|
- rp = realpath(dli_fname, buf);
|
||||||
|
+ snprintf(buf, buflen, "%s", dli_fname);
|
||||||
|
}
|
||||||
|
- if (rp == NULL)
|
||||||
|
- return;
|
||||||
|
|
||||||
|
if (Arguments::created_by_gamma_launcher()) {
|
||||||
|
// Support for the gamma launcher. Typical value for buf is
|
366
pkgs/development/compilers/icedtea/generate-cacerts.pl
Normal file
366
pkgs/development/compilers/icedtea/generate-cacerts.pl
Normal file
@ -0,0 +1,366 @@
|
|||||||
|
#!/usr/bin/perl
|
||||||
|
|
||||||
|
# Copyright (C) 2007, 2008 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# generate-cacerts.pl generates a JKS keystore named 'cacerts' from
|
||||||
|
# OpenSSL's certificate bundle using OpenJDK's keytool.
|
||||||
|
|
||||||
|
# First extract each of OpenSSL's bundled certificates into its own
|
||||||
|
# aliased filename.
|
||||||
|
|
||||||
|
# Downloaded from http://cvs.fedoraproject.org/viewvc/rpms/ca-certificates/F-12/generate-cacerts.pl?revision=1.2
|
||||||
|
# Check and prevention of duplicate aliases added by Vlastimil Babka <caster@gentoo.org>
|
||||||
|
|
||||||
|
$file = $ARGV[1];
|
||||||
|
open(CERTS, $file);
|
||||||
|
@certs = <CERTS>;
|
||||||
|
close(CERTS);
|
||||||
|
|
||||||
|
$pem_file_count = 0;
|
||||||
|
$in_cert_block = 0;
|
||||||
|
$write_current_cert = 1;
|
||||||
|
foreach $cert (@certs)
|
||||||
|
{
|
||||||
|
if ($cert =~ /Issuer: /)
|
||||||
|
{
|
||||||
|
$_ = $cert;
|
||||||
|
if ($cert =~ /personal-freemail/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalfreemailca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /personal-basic/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalbasicca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /personal-premium/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepersonalpremiumca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /server-certs/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawteserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /premium-server/)
|
||||||
|
{
|
||||||
|
$cert_alias = "thawtepremiumserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 1 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 1 Public Primary Certification Authority - G2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1g2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 1 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass1g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 2 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 2 Public Primary Certification Authority - G2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2g2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 2 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass2g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Class 3 Public Primary Certification Authority$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass3ca";
|
||||||
|
}
|
||||||
|
# Version 1 of Class 3 Public Primary Certification Authority
|
||||||
|
# - G2 is added. Version 3 is excluded. See below.
|
||||||
|
elsif ($cert =~
|
||||||
|
/VeriSign Class 3 Public Primary Certification Authority - G3/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignclass3g3ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~
|
||||||
|
/RSA Data Security.*Secure Server Certification Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "verisignserverca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GTE CyberTrust Global Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "gtecybertrustglobalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Baltimore CyberTrust Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "baltimorecybertrustca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/Client_CA_Info\/CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustclientca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/GCCA_CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustglobalclientca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/CPS_2048/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrust2048ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/CPS /)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustsslca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /www.entrust.net\/SSL_CPS/)
|
||||||
|
{
|
||||||
|
$cert_alias = "entrustgsslca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /The Go Daddy Group/)
|
||||||
|
{
|
||||||
|
$cert_alias = "godaddyclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Starfield Class 2 Certification Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "starfieldclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /ValiCert Class 2 Policy Validation Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "valicertclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GeoTrust Global CA$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "geotrustglobalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure Certificate Authority/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure eBusiness CA-1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureebusinessca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure eBusiness CA-2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureebusinessca2";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Equifax Secure Global eBusiness CA-1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "equifaxsecureglobalebusinessca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Sonera Class1 CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "soneraclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Sonera Class2 CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "soneraclass2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AAA Certificate Services/)
|
||||||
|
{
|
||||||
|
$cert_alias = "comodoaaaca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust Class 1 CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustclass1ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust External CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustexternalca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /AddTrust Qualified CA Root/)
|
||||||
|
{
|
||||||
|
$cert_alias = "addtrustqualifiedca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Hardware/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirsthardwareca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Client Authentication and Email/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirstclientauthemailca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN - DATACorp SGC/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utndatacorpsgcca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /UTN-USERFirst-Object/)
|
||||||
|
{
|
||||||
|
$cert_alias = "utnuserfirstobjectca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /America Online Root Certification Authority 1/)
|
||||||
|
{
|
||||||
|
$cert_alias = "aolrootca1";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert Assured ID Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicertassuredidrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert Global Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicertglobalrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /DigiCert High Assurance EV Root CA/)
|
||||||
|
{
|
||||||
|
$cert_alias = "digicerthighassuranceevrootca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GlobalSign Root CA$/)
|
||||||
|
{
|
||||||
|
$cert_alias = "globalsignca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /GlobalSign Root CA - R2/)
|
||||||
|
{
|
||||||
|
$cert_alias = "globalsignr2ca";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Elektronik.*Kas.*2005/)
|
||||||
|
{
|
||||||
|
$cert_alias = "extra-elektronikkas2005";
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /Elektronik/)
|
||||||
|
{
|
||||||
|
$cert_alias = "extra-elektronik2005";
|
||||||
|
}
|
||||||
|
# Mozilla does not provide these certificates:
|
||||||
|
# baltimorecodesigningca
|
||||||
|
# gtecybertrust5ca
|
||||||
|
# trustcenterclass2caii
|
||||||
|
# trustcenterclass4caii
|
||||||
|
# trustcenteruniversalcai
|
||||||
|
else
|
||||||
|
{
|
||||||
|
# Generate an alias using the OU and CN attributes of the
|
||||||
|
# Issuer field if both are present, otherwise use only the
|
||||||
|
# CN attribute. The Issuer field must have either the OU
|
||||||
|
# or the CN attribute.
|
||||||
|
$_ = $cert;
|
||||||
|
if ($cert =~ /OU=/)
|
||||||
|
{
|
||||||
|
s/Issuer:.*?OU=//;
|
||||||
|
# Remove other occurrences of OU=.
|
||||||
|
s/OU=.*CN=//;
|
||||||
|
# Remove CN= if there were not other occurrences of OU=.
|
||||||
|
s/CN=//;
|
||||||
|
s/\/emailAddress.*//;
|
||||||
|
s/Certificate Authority/ca/g;
|
||||||
|
s/Certification Authority/ca/g;
|
||||||
|
}
|
||||||
|
elsif ($cert =~ /CN=/)
|
||||||
|
{
|
||||||
|
s/Issuer:.*CN=//;
|
||||||
|
s/\/emailAddress.*//;
|
||||||
|
s/Certificate Authority/ca/g;
|
||||||
|
s/Certification Authority/ca/g;
|
||||||
|
}
|
||||||
|
s/\W//g;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
$cert_alias = "extra-$_";
|
||||||
|
|
||||||
|
}
|
||||||
|
while (-e "$cert_alias.pem")
|
||||||
|
{
|
||||||
|
$cert_alias = "$cert_alias" . "_";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# When it attempts to parse:
|
||||||
|
#
|
||||||
|
# Class 3 Public Primary Certification Authority - G2, Version 3
|
||||||
|
#
|
||||||
|
# keytool says:
|
||||||
|
#
|
||||||
|
# #2: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
|
||||||
|
# Unparseable AuthorityInfoAccess extension due to
|
||||||
|
# java.io.IOException: Invalid encoding of URI
|
||||||
|
#
|
||||||
|
# If we do not exclude this file
|
||||||
|
# openjdk/jdk/test/lib/security/cacerts/VerifyCACerts.java fails
|
||||||
|
# on this cert, printing:
|
||||||
|
#
|
||||||
|
# Couldn't verify: java.security.SignatureException: Signature
|
||||||
|
# does not match.
|
||||||
|
#
|
||||||
|
elsif ($cert =~
|
||||||
|
/A6:0F:34:C8:62:6C:81:F6:8B:F7:7D:A9:F6:67:58:8A:90:3F:7D:36/)
|
||||||
|
{
|
||||||
|
$write_current_cert = 0;
|
||||||
|
$pem_file_count--;
|
||||||
|
}
|
||||||
|
elsif ($cert eq "-----BEGIN CERTIFICATE-----\n")
|
||||||
|
{
|
||||||
|
$_ = $cert;
|
||||||
|
s/\W//g;
|
||||||
|
tr/A-Z/a-z/;
|
||||||
|
$cert_alias = "extra-$_";
|
||||||
|
while (-e "$cert_alias.pem")
|
||||||
|
{
|
||||||
|
$cert_alias = "$cert_alias" . "_";
|
||||||
|
}
|
||||||
|
if ($in_cert_block != 0)
|
||||||
|
{
|
||||||
|
die "$file is malformed.";
|
||||||
|
}
|
||||||
|
$in_cert_block = 1;
|
||||||
|
if ($write_current_cert == 1)
|
||||||
|
{
|
||||||
|
$pem_file_count++;
|
||||||
|
if (-e "$cert_alias.pem")
|
||||||
|
{
|
||||||
|
print "$cert_alias";
|
||||||
|
die "already exists"
|
||||||
|
}
|
||||||
|
open(PEM, ">$cert_alias.pem");
|
||||||
|
print PEM $cert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elsif ($cert eq "-----END CERTIFICATE-----\n")
|
||||||
|
{
|
||||||
|
$in_cert_block = 0;
|
||||||
|
if ($write_current_cert == 1)
|
||||||
|
{
|
||||||
|
print PEM $cert;
|
||||||
|
close(PEM);
|
||||||
|
}
|
||||||
|
$write_current_cert = 1
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ($in_cert_block == 1 && $write_current_cert == 1)
|
||||||
|
{
|
||||||
|
print PEM $cert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check that the correct number of .pem files were produced.
|
||||||
|
@pem_files = <*.pem>;
|
||||||
|
if (@pem_files != $pem_file_count)
|
||||||
|
{
|
||||||
|
print "$pem_file_count";
|
||||||
|
die "Number of .pem files produced does not match".
|
||||||
|
" number of certs read from $file.";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Now store each cert in the 'cacerts' file using keytool.
|
||||||
|
$certs_written_count = 0;
|
||||||
|
foreach $pem_file (@pem_files)
|
||||||
|
{
|
||||||
|
system "$ARGV[0] -noprompt -import".
|
||||||
|
" -alias `basename $pem_file .pem`".
|
||||||
|
" -keystore cacerts -storepass 'changeit' -file $pem_file";
|
||||||
|
unlink($pem_file);
|
||||||
|
$certs_written_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check that the correct number of certs were added to the keystore.
|
||||||
|
if ($certs_written_count != $pem_file_count)
|
||||||
|
{
|
||||||
|
die "Number of certs added to keystore does not match".
|
||||||
|
" number of certs read from $file.";
|
||||||
|
}
|
56
pkgs/development/compilers/icedtea/sources.nix
Normal file
56
pkgs/development/compilers/icedtea/sources.nix
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# This file is autogenerated from update.py in the same directory.
|
||||||
|
{
|
||||||
|
icedtea7 = rec {
|
||||||
|
branch = "2.4";
|
||||||
|
version = "${branch}.5";
|
||||||
|
|
||||||
|
url = "http://icedtea.wildebeest.org/download/source/icedtea-${version}.tar.xz";
|
||||||
|
sha256 = "0nrhbn2q7cm21hpq1f5ds0v0rnsznmdyiifi8w4l1ykyqw9n9yfk";
|
||||||
|
|
||||||
|
hg_url = "http://icedtea.classpath.org/hg/release/icedtea7-forest-${branch}";
|
||||||
|
|
||||||
|
bundles = {
|
||||||
|
openjdk = rec {
|
||||||
|
changeset = "410eb7fef869";
|
||||||
|
url = "${hg_url}/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "2de151c7275d91ef082e63fcc0957c5f9290404ec6e20ecfa1e752e16bfab707";
|
||||||
|
};
|
||||||
|
|
||||||
|
corba = rec {
|
||||||
|
changeset = "3594dbde270d";
|
||||||
|
url = "${hg_url}/corba/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "d1f97e143fe94ae3a56b45bb5a90f8ab10ec2be4ff770a788f0a1ac677e27a7d";
|
||||||
|
};
|
||||||
|
|
||||||
|
jaxp = rec {
|
||||||
|
changeset = "8fe156ad49e2";
|
||||||
|
url = "${hg_url}/jaxp/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "0a2a40186cedfbeb8f87b0bc86bea2830943943081d4289fc74f7a783b2e1af3";
|
||||||
|
};
|
||||||
|
|
||||||
|
jaxws = rec {
|
||||||
|
changeset = "32ea8b1ed91a";
|
||||||
|
url = "${hg_url}/jaxws/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "08a169b6b02883759ec7a412aa91aa3e37480761cb50b95d092dbcdb2fc9a3d0";
|
||||||
|
};
|
||||||
|
|
||||||
|
jdk = rec {
|
||||||
|
changeset = "9db88c18e114";
|
||||||
|
url = "${hg_url}/jdk/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "285e5b8ccbb29f3f9f9ea9ea7856d1ed97465c57d091fbcd9b2e55a1ffbb543e";
|
||||||
|
};
|
||||||
|
|
||||||
|
langtools = rec {
|
||||||
|
changeset = "dabd37b7e295";
|
||||||
|
url = "${hg_url}/langtools/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "86cb370ce2084c4b699d8c002ebe6c026e86206ffa82a2f3d7906aadb94ed79f";
|
||||||
|
};
|
||||||
|
|
||||||
|
hotspot = rec {
|
||||||
|
changeset = "2cb58882dac3";
|
||||||
|
url = "${hg_url}/hotspot/archive/${changeset}.tar.gz";
|
||||||
|
sha256 = "d8c1681ae76e660c1888065933cedbbc1309869c7a2fb98f07c424716d5ebaf9";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
275
pkgs/development/compilers/icedtea/update.py
Executable file
275
pkgs/development/compilers/icedtea/update.py
Executable file
@ -0,0 +1,275 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import subprocess, urllib.request, re, os, tarfile
|
||||||
|
from html.parser import HTMLParser
|
||||||
|
|
||||||
|
HG_URL = 'http://icedtea.classpath.org/hg/release/icedtea{}-forest-{}'
|
||||||
|
DOWNLOAD_URL = 'http://icedtea.wildebeest.org/download/source/'
|
||||||
|
DOWNLOAD_HTML = DOWNLOAD_URL + '?C=M;O=D'
|
||||||
|
|
||||||
|
ICEDTEA_JDKS = [7]
|
||||||
|
|
||||||
|
BUNDLES = ['openjdk', 'corba', 'jaxp', 'jaxws', 'jdk', 'langtools', 'hotspot']
|
||||||
|
|
||||||
|
SRC_PATH = './sources.nix'
|
||||||
|
|
||||||
|
def get_output(cmd, env = None):
|
||||||
|
try:
|
||||||
|
proc = subprocess.Popen(cmd, env = env, stdout = subprocess.PIPE)
|
||||||
|
out = proc.communicate()[0]
|
||||||
|
except subprocess.CalledProcessError as e:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return out.decode('utf-8').strip()
|
||||||
|
|
||||||
|
def nix_prefetch_url(url):
|
||||||
|
env = os.environ.copy()
|
||||||
|
env['PRINT_PATH'] = '1'
|
||||||
|
out = get_output(['nix-prefetch-url', url], env = env)
|
||||||
|
|
||||||
|
return out.split('\n')
|
||||||
|
|
||||||
|
def get_nix_attr(path, attr):
|
||||||
|
out = get_output(['nix-instantiate', '--eval-only', '-A', attr, path])
|
||||||
|
|
||||||
|
if len(out) < 2 or out[0] != '"' or out[-1] != '"':
|
||||||
|
raise Exception('Cannot find Nix attribute "{}" (parsing failure?)'.format(attr))
|
||||||
|
|
||||||
|
# Strip quotes
|
||||||
|
return out[1:-1]
|
||||||
|
|
||||||
|
def get_jdk_attr(jdk, attr):
|
||||||
|
return get_nix_attr(SRC_PATH, 'icedtea{}.{}'.format(jdk, attr))
|
||||||
|
|
||||||
|
class Parser(HTMLParser):
|
||||||
|
def __init__(self, link_regex):
|
||||||
|
HTMLParser.__init__(self)
|
||||||
|
|
||||||
|
self.regex = link_regex
|
||||||
|
self.href = None
|
||||||
|
self.version = None
|
||||||
|
|
||||||
|
def handle_starttag(self, tag, attrs):
|
||||||
|
if self.href != None or tag != 'a':
|
||||||
|
return
|
||||||
|
|
||||||
|
href = None
|
||||||
|
for attr in attrs:
|
||||||
|
if attr[0] == 'href':
|
||||||
|
href = attr[1]
|
||||||
|
if href == None:
|
||||||
|
return
|
||||||
|
|
||||||
|
m = re.match(self.regex, href)
|
||||||
|
if m != None:
|
||||||
|
self.href = href
|
||||||
|
self.version = m.group(1)
|
||||||
|
|
||||||
|
def get_latest_version_url(major):
|
||||||
|
f = urllib.request.urlopen(DOWNLOAD_HTML)
|
||||||
|
html = f.read().decode('utf-8')
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
parser = Parser(r'^icedtea\d?-({}\.\d[\d.]*)\.tar\.xz$'.format(major))
|
||||||
|
parser.feed(html)
|
||||||
|
parser.close()
|
||||||
|
|
||||||
|
if parser.href == None:
|
||||||
|
raise Exception('Error: could not find download url for major version "{}"'.format(major))
|
||||||
|
|
||||||
|
return parser.version, DOWNLOAD_URL + parser.href
|
||||||
|
|
||||||
|
def get_old_bundle_attrs(jdk, bundle):
|
||||||
|
attrs = {}
|
||||||
|
for attr in ('changeset', 'url', 'sha256'):
|
||||||
|
attrs[attr] = get_jdk_attr(jdk, 'bundles.{}.{}'.format(bundle, attr))
|
||||||
|
|
||||||
|
return attrs
|
||||||
|
|
||||||
|
def get_old_attrs(jdk):
|
||||||
|
attrs = {}
|
||||||
|
|
||||||
|
for attr in ('branch', 'version', 'url', 'sha256'):
|
||||||
|
attrs[attr] = get_jdk_attr(jdk, attr)
|
||||||
|
|
||||||
|
attrs['bundles'] = {}
|
||||||
|
|
||||||
|
for bundle in BUNDLES:
|
||||||
|
attrs['bundles'][bundle] = get_old_bundle_attrs(jdk, bundle)
|
||||||
|
|
||||||
|
return attrs
|
||||||
|
|
||||||
|
def get_member_filename(tarball, name):
|
||||||
|
for fname in tarball.getnames():
|
||||||
|
m = re.match(r'^icedtea\d?-\d[\d.]*/{}$'.format(name), fname)
|
||||||
|
if m != None:
|
||||||
|
return m.group(0)
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_member_file(tarball, name):
|
||||||
|
path = get_member_filename(tarball, name)
|
||||||
|
if path == None:
|
||||||
|
raise Exception('Could not find "{}" inside tarball'.format(name))
|
||||||
|
|
||||||
|
f = tarball.extractfile(path)
|
||||||
|
data = f.read().decode('utf-8')
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
|
def get_new_bundle_attr(makefile, bundle, attr):
|
||||||
|
var = '{}_{}'.format(bundle.upper(), attr.upper())
|
||||||
|
regex = r'^{} = (.*?)$'.format(var)
|
||||||
|
|
||||||
|
m = re.search(regex, makefile, re.MULTILINE)
|
||||||
|
if m == None:
|
||||||
|
raise Exception('Could not find variable "{}" in Makefile.am'.format(var))
|
||||||
|
|
||||||
|
return m.group(1)
|
||||||
|
|
||||||
|
def get_new_bundle_attrs(jdk, branch, path):
|
||||||
|
hg_url = HG_URL.format(jdk, branch)
|
||||||
|
|
||||||
|
attrs = {}
|
||||||
|
|
||||||
|
print('Opening file: "{}"'.format(path))
|
||||||
|
tar = tarfile.open(name = path, mode = 'r:xz')
|
||||||
|
|
||||||
|
makefile = get_member_file(tar, 'Makefile.am')
|
||||||
|
hotspot_map = get_member_file(tar, 'hotspot.map')
|
||||||
|
|
||||||
|
for bundle in BUNDLES:
|
||||||
|
battrs = {}
|
||||||
|
|
||||||
|
if bundle == 'hotspot':
|
||||||
|
m = re.search(r'^default (.*?) (.*?) (.*?)$', hotspot_map, re.MULTILINE)
|
||||||
|
if m == None:
|
||||||
|
raise Exception('Could not find info for hotspot bundle in hotspot.map')
|
||||||
|
|
||||||
|
battrs['url'] = '{}/archive/{}.tar.gz'.format(m.group(1), m.group(2))
|
||||||
|
battrs['changeset'] = m.group(2)
|
||||||
|
battrs['sha256'] = m.group(3)
|
||||||
|
|
||||||
|
attrs[bundle] = battrs
|
||||||
|
continue
|
||||||
|
|
||||||
|
changeset = get_new_bundle_attr(makefile, bundle, 'changeset')
|
||||||
|
battrs['changeset'] = changeset
|
||||||
|
battrs['sha256'] = get_new_bundle_attr(makefile, bundle, 'sha256sum')
|
||||||
|
|
||||||
|
if bundle == 'openjdk':
|
||||||
|
battrs['url'] = '{}/archive/{}.tar.gz'.format(hg_url, changeset)
|
||||||
|
else:
|
||||||
|
battrs['url'] = '{}/{}/archive/{}.tar.gz'.format(hg_url, bundle, changeset)
|
||||||
|
|
||||||
|
attrs[bundle] = battrs
|
||||||
|
|
||||||
|
tar.close()
|
||||||
|
|
||||||
|
return attrs
|
||||||
|
|
||||||
|
def get_new_attrs(jdk):
|
||||||
|
print('Getting old attributes for JDK {}...'.format(jdk))
|
||||||
|
old_attrs = get_old_attrs(jdk)
|
||||||
|
attrs = {}
|
||||||
|
|
||||||
|
# The major version corresponds to a specific JDK (1 = OpenJDK6, 2 = OpenJDK7, 3 = OpenJDK8)
|
||||||
|
major = jdk - 5
|
||||||
|
|
||||||
|
print('Getting latest version for JDK {}...'.format(jdk))
|
||||||
|
version, url = get_latest_version_url(major)
|
||||||
|
|
||||||
|
print()
|
||||||
|
print('Old version: {}'.format(old_attrs['version']))
|
||||||
|
print('New version: {}'.format(version))
|
||||||
|
print()
|
||||||
|
|
||||||
|
if version == old_attrs['version']:
|
||||||
|
print('No update available, skipping...')
|
||||||
|
print()
|
||||||
|
return old_attrs
|
||||||
|
|
||||||
|
print('Update available, generating new attributes for JDK {}...'.format(jdk))
|
||||||
|
|
||||||
|
attrs['version'] = version
|
||||||
|
attrs['branch'] = '.'.join(version.split('.')[:2])
|
||||||
|
attrs['url'] = url
|
||||||
|
|
||||||
|
print('Downloading tarball from url "{}"...'.format(url))
|
||||||
|
print()
|
||||||
|
attrs['sha256'], path = nix_prefetch_url(url)
|
||||||
|
print()
|
||||||
|
|
||||||
|
print('Inspecting tarball for bundle information...')
|
||||||
|
|
||||||
|
attrs['bundles'] = get_new_bundle_attrs(jdk, attrs['branch'], path)
|
||||||
|
|
||||||
|
print('Done!')
|
||||||
|
|
||||||
|
return attrs
|
||||||
|
|
||||||
|
def generate_jdk(jdk):
|
||||||
|
attrs = get_new_attrs(jdk)
|
||||||
|
|
||||||
|
branch = attrs['branch']
|
||||||
|
src_version = attrs['version'].replace(branch, '${branch}')
|
||||||
|
src_url = attrs['url'].replace(attrs['version'], '${version}')
|
||||||
|
|
||||||
|
hg_url = HG_URL.format(jdk, branch)
|
||||||
|
src_hg_url = HG_URL.format(jdk, '${branch}')
|
||||||
|
|
||||||
|
src = ' icedtea{} = rec {{\n'.format(jdk)
|
||||||
|
src += ' branch = "{}";\n'.format(branch)
|
||||||
|
src += ' version = "{}";\n'.format(src_version)
|
||||||
|
src += '\n'
|
||||||
|
src += ' url = "{}";\n'.format(src_url)
|
||||||
|
src += ' sha256 = "{}";\n'.format(attrs['sha256'])
|
||||||
|
src += '\n'
|
||||||
|
src += ' hg_url = "{}";\n'.format(src_hg_url)
|
||||||
|
src += '\n'
|
||||||
|
src += ' bundles = {\n'
|
||||||
|
|
||||||
|
for bundle in BUNDLES:
|
||||||
|
battrs = attrs['bundles'][bundle]
|
||||||
|
|
||||||
|
b_url = battrs['url']
|
||||||
|
b_url = b_url.replace(hg_url, '${hg_url}')
|
||||||
|
b_url = b_url.replace(battrs['changeset'], '${changeset}')
|
||||||
|
|
||||||
|
src += ' {} = rec {{\n'.format(bundle)
|
||||||
|
src += ' changeset = "{}";\n'.format(battrs['changeset'])
|
||||||
|
src += ' url = "{}";\n'.format(b_url)
|
||||||
|
src += ' sha256 = "{}";\n'.format(battrs['sha256'])
|
||||||
|
src += ' };\n'
|
||||||
|
|
||||||
|
if bundle != BUNDLES[-1]:
|
||||||
|
src += '\n'
|
||||||
|
|
||||||
|
src += ' };\n'
|
||||||
|
src += ' };\n'
|
||||||
|
|
||||||
|
return src
|
||||||
|
|
||||||
|
def generate_sources(jdks):
|
||||||
|
src = '# This file is autogenerated from update.py in the same directory.\n'
|
||||||
|
src += '{\n'
|
||||||
|
|
||||||
|
for jdk in jdks:
|
||||||
|
print()
|
||||||
|
print('Generating sources for JDK {}...'.format(jdk))
|
||||||
|
src += generate_jdk(jdk)
|
||||||
|
|
||||||
|
src += '}\n'
|
||||||
|
return src
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
print('Generating {}...'.format(SRC_PATH))
|
||||||
|
src = generate_sources(ICEDTEA_JDKS)
|
||||||
|
|
||||||
|
f = open(SRC_PATH, 'w', encoding = 'utf-8')
|
||||||
|
f.write(src)
|
||||||
|
f.close()
|
||||||
|
|
||||||
|
print()
|
||||||
|
print('Update complete!')
|
140
pkgs/development/compilers/julia/0.2.1.nix
Normal file
140
pkgs/development/compilers/julia/0.2.1.nix
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
{ stdenv, fetchgit, gfortran, perl, m4, llvm, gmp, pcre, zlib
|
||||||
|
, readline, fftwSinglePrec, fftw, libunwind, suitesparse, glpk, fetchurl
|
||||||
|
, ncurses, libunistring, lighttpd, patchelf, openblas, liblapack
|
||||||
|
, tcl, tk, xproto, libX11, git, mpfr
|
||||||
|
} :
|
||||||
|
let
|
||||||
|
realGcc = stdenv.gcc.gcc;
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "julia";
|
||||||
|
version = "0.2.1";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
grisu_ver = "1.1.1";
|
||||||
|
dsfmt_ver = "2.2";
|
||||||
|
openblas_ver = "v0.2.2";
|
||||||
|
lapack_ver = "3.4.1";
|
||||||
|
arpack_ver = "3.1.3";
|
||||||
|
clp_ver = "1.14.5";
|
||||||
|
lighttpd_ver = "1.4.29";
|
||||||
|
patchelf_ver = "0.6";
|
||||||
|
pcre_ver = "8.31";
|
||||||
|
|
||||||
|
grisu_src = fetchurl {
|
||||||
|
url = "http://double-conversion.googlecode.com/files/double-conversion-${grisu_ver}.tar.gz";
|
||||||
|
sha256 = "e1cabb73fd69e74f145aea91100cde483aef8b79dc730fcda0a34466730d4d1d";
|
||||||
|
};
|
||||||
|
dsfmt_src = fetchurl {
|
||||||
|
url = "http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/dSFMT-src-${dsfmt_ver}.tar.gz";
|
||||||
|
name = "dsfmt-${dsfmt_ver}.tar.gz";
|
||||||
|
sha256 = "bc3947a9b2253a869fcbab8ff395416cb12958be9dba10793db2cd7e37b26899";
|
||||||
|
};
|
||||||
|
openblas_src = fetchurl {
|
||||||
|
url = "https://github.com/xianyi/OpenBLAS/tarball/${openblas_ver}";
|
||||||
|
name = "openblas-${openblas_ver}.tar.gz";
|
||||||
|
sha256 = "19ffec70f9678f5c159feadc036ca47720681b782910fbaa95aa3867e7e86d8e";
|
||||||
|
};
|
||||||
|
arpack_src = fetchurl {
|
||||||
|
url = "http://forge.scilab.org/index.php/p/arpack-ng/downloads/607/get/";
|
||||||
|
name = "arpack-ng-${arpack_ver}.tar.gz";
|
||||||
|
sha256 = "039w7j3dr1xy35a3hp92zg2g92gmjq6xsv0g4awlb4cffy09nr2d";
|
||||||
|
};
|
||||||
|
lapack_src = fetchurl {
|
||||||
|
url = "http://www.netlib.org/lapack/lapack-${lapack_ver}.tgz";
|
||||||
|
name = "lapack-${lapack_ver}.tgz";
|
||||||
|
sha256 = "93b910f94f6091a2e71b59809c4db4a14655db527cfc5821ade2e8c8ab75380f";
|
||||||
|
};
|
||||||
|
clp_src = fetchurl {
|
||||||
|
url = "http://www.coin-or.org/download/source/Clp/Clp-${clp_ver}.tgz";
|
||||||
|
name = "clp-${clp_ver}.tar.gz";
|
||||||
|
sha256 = "e6cabe8b4319c17a9bbe6fe172194ab6cd1fe6e376f5e9969d3040636ea3a817";
|
||||||
|
};
|
||||||
|
lighttpd_src = fetchurl {
|
||||||
|
url = "http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-${lighttpd_ver}.tar.gz";
|
||||||
|
sha256 = "ff9f4de3901d03bb285634c5b149191223d17f1c269a16c863bac44238119c85";
|
||||||
|
};
|
||||||
|
patchelf_src = fetchurl {
|
||||||
|
url = "http://hydra.nixos.org/build/1524660/download/2/patchelf-${patchelf_ver}.tar.bz2";
|
||||||
|
sha256 = "00bw29vdsscsili65wcb5ay0gvg1w0ljd00sb5xc6br8bylpyzpw";
|
||||||
|
};
|
||||||
|
pcre_src = fetchurl {
|
||||||
|
url = "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${pcre_ver}.tar.bz2";
|
||||||
|
sha256 = "0g4c0z4h30v8g8qg02zcbv7n67j5kz0ri9cfhgkpwg276ljs0y2p";
|
||||||
|
};
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "git://github.com/JuliaLang/julia.git";
|
||||||
|
rev = "e44b5939057d87c1e854077108a1a6d66203f4fa";
|
||||||
|
sha256 = "7ee0f267bc1ae286764ced3c0c695c335a6f8d67bd7b3ca7e4de259333c9426a";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ gfortran perl m4 gmp pcre llvm readline zlib
|
||||||
|
fftw fftwSinglePrec libunwind suitesparse glpk ncurses libunistring patchelf
|
||||||
|
openblas liblapack tcl tk xproto libX11 git mpfr
|
||||||
|
];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
for i in GMP LLVM PCRE LAPACK OPENBLAS BLAS READLINE FFTW LIBUNWIND SUITESPARSE GLPK LIGHTTPD ZLIB MPFR;
|
||||||
|
do
|
||||||
|
makeFlags="$makeFlags USE_SYSTEM_$i=1 "
|
||||||
|
done
|
||||||
|
|
||||||
|
copy_kill_hash(){
|
||||||
|
cp "$1" "$2/$(basename "$1" | sed -e 's/^[a-z0-9]*-//')"
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in "${grisu_src}" "${dsfmt_src}" "${arpack_src}" "${clp_src}" "${patchelf_src}" "${pcre_src}" ; do
|
||||||
|
copy_kill_hash "$i" deps
|
||||||
|
done
|
||||||
|
copy_kill_hash "${dsfmt_src}" deps/random
|
||||||
|
|
||||||
|
${if realGcc ==null then "" else
|
||||||
|
''export NIX_LDFLAGS="$NIX_LDFLAGS -L${realGcc}/lib -L${realGcc}/lib64 -lpcre -llapack -lm -lfftw3f -lfftw3 -lglpk -lunistring -lz -lgmp -lmpfr"''}
|
||||||
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -fPIC "
|
||||||
|
|
||||||
|
export LDFLAGS="-L${suitesparse}/lib -L$out/lib/julia -Wl,-rpath,$out/lib/julia"
|
||||||
|
|
||||||
|
export GLPK_PREFIX="${glpk}/include"
|
||||||
|
|
||||||
|
mkdir -p "$out/lib"
|
||||||
|
sed -e "s@/usr/local/lib@$out/lib@g" -i deps/Makefile
|
||||||
|
sed -e "s@/usr/lib@$out/lib@g" -i deps/Makefile
|
||||||
|
|
||||||
|
export makeFlags="$makeFlags PREFIX=$out SHELL=${stdenv.shell}"
|
||||||
|
|
||||||
|
export dontPatchELF=1
|
||||||
|
|
||||||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/usr/lib:$PWD/usr/lib/julia"
|
||||||
|
'';
|
||||||
|
|
||||||
|
preBuild = ''
|
||||||
|
mkdir -p usr/lib
|
||||||
|
|
||||||
|
echo "$out"
|
||||||
|
mkdir -p "$out/lib"
|
||||||
|
(
|
||||||
|
cd "$(mktemp -d)"
|
||||||
|
for i in "${suitesparse}"/lib/lib*.a; do
|
||||||
|
ar -x $i
|
||||||
|
done
|
||||||
|
gcc *.o --shared -o "$out/lib/libsuitesparse.so"
|
||||||
|
)
|
||||||
|
cp "$out/lib/libsuitesparse.so" usr/lib
|
||||||
|
for i in umfpack cholmod amd camd colamd spqr; do
|
||||||
|
ln -s libsuitesparse.so "$out"/lib/lib$i.so;
|
||||||
|
ln -s libsuitesparse.so "usr"/lib/lib$i.so;
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
preInstall = ''
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "High-level performance-oriented dynamical language for technical computing";
|
||||||
|
homepage = "http://julialang.org/";
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.raskin ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux;
|
||||||
|
};
|
||||||
|
}
|
@ -28,7 +28,11 @@ stdenv.mkDerivation {
|
|||||||
(stdenv.lib.optional (stdenv.gcc.gcc != null) "-DGCC_INSTALL_PREFIX=${stdenv.gcc.gcc}");
|
(stdenv.lib.optional (stdenv.gcc.gcc != null) "-DGCC_INSTALL_PREFIX=${stdenv.gcc.gcc}");
|
||||||
|
|
||||||
# Clang expects to find LLVMgold in its own prefix
|
# Clang expects to find LLVMgold in its own prefix
|
||||||
postInstall = "ln -sv ${llvm}/lib/LLVMgold.so $out/lib";
|
# Clang expects to find sanitizer libraries in its own prefix
|
||||||
|
postInstall = ''
|
||||||
|
ln -sv ${llvm}/lib/LLVMgold.so $out/lib
|
||||||
|
ln -sv ${llvm}/lib/clang/3.4/lib $out/lib/clang/3.4/
|
||||||
|
'';
|
||||||
|
|
||||||
passthru.gcc = stdenv.gcc.gcc;
|
passthru.gcc = stdenv.gcc.gcc;
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
|
|
||||||
fsrc = fetchurl {
|
fsrc = fetchurl {
|
||||||
url = "http://www.informatik.uni-kiel.de/~pakcs/download/${fname}-src.tar.gz";
|
url = "http://www.informatik.uni-kiel.de/~pakcs/download/${fname}-src.tar.gz";
|
||||||
sha256 = "006bq6cmycq2f4xb3zmnmxyngj64hppk3a083hy0qzj7gl77zvfw";
|
sha256 = "165f29zgb7ldl51zfwgc31fk6a67w0gznp5lhvb6i5m013g2ddi8";
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
@ -22,11 +22,11 @@ let
|
|||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "SDL2-2.0.2";
|
name = "SDL2-2.0.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.libsdl.org/release/${name}.tar.gz";
|
url = "http://www.libsdl.org/release/${name}.tar.gz";
|
||||||
sha256 = "0l78h3wlirnxxrdw3kkm9amhgjn6xrs9l5j871r552wabbw5f0ar";
|
sha256 = "0369ngvb46x6c26h8zva4x22ywgy6mvn0wx87xqwxg40pxm9m9m5";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
|
# Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ fetchurl, stdenv, pkgconfig, clutter, gtk3 }:
|
{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3 }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "clutter-gtk-1.4.4";
|
name = "clutter-gtk-1.4.4";
|
||||||
@ -9,9 +9,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [ clutter gtk3 ];
|
propagatedBuildInputs = [ clutter gtk3 ];
|
||||||
nativeBuildInputs = [ pkgconfig ];
|
nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
|
||||||
|
|
||||||
configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
|
|
||||||
|
|
||||||
postBuild = "rm -rf $out/share/gtk-doc";
|
postBuild = "rm -rf $out/share/gtk-doc";
|
||||||
|
|
||||||
|
19
pkgs/development/libraries/concurrencykit/default.nix
Normal file
19
pkgs/development/libraries/concurrencykit/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "concurrencykit-${version}";
|
||||||
|
version = "0.4.1";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://concurrencykit.org/releases/ck-${version}.tar.gz";
|
||||||
|
sha256 = "1gi5gpkxvbb6vkhjm9kab7dz1av2i11f1pggxp001rqq2mi3i6aq";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A library of safe, high-performance concurrent data structures";
|
||||||
|
homepage = "http://concurrencykit.org";
|
||||||
|
license = stdenv.lib.licenses.bsd2;
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
|
||||||
|
};
|
||||||
|
}
|
@ -5,7 +5,7 @@
|
|||||||
# Options from inherited versions
|
# Options from inherited versions
|
||||||
, version, sha256
|
, version, sha256
|
||||||
, extraPatches ? [ ]
|
, extraPatches ? [ ]
|
||||||
, license ? "Berkeley Database License"
|
, license ? stdenv.lib.licenses.sleepycat
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, python
|
{ stdenv, fetchurl, pkgconfig, python, gobjectIntrospection
|
||||||
, gnonlin, libxml2
|
, gnonlin, libxml2
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0";
|
sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgconfig python ];
|
nativeBuildInputs = [ pkgconfig python gobjectIntrospection ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ gnonlin libxml2 ];
|
propagatedBuildInputs = [ gnonlin libxml2 ];
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1";
|
sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [ ./different-path-with-pygobject.patch ];
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[ pkgconfig gst-plugins-base pygtk pygobject3 ]
|
[ pkgconfig gst-plugins-base pygtk pygobject3 ]
|
||||||
;
|
;
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
diff -Nru gst-python-1.2.0-orig/gi/overrides/Makefile.in gst-python-1.2.0/gi/overrides/Makefile.in
|
||||||
|
--- gst-python-1.2.0-orig/gi/overrides/Makefile.in 2014-03-22 21:47:56.235364405 +0800
|
||||||
|
+++ gst-python-1.2.0/gi/overrides/Makefile.in 2014-03-22 21:48:28.737958066 +0800
|
||||||
|
@@ -356,7 +356,7 @@
|
||||||
|
|
||||||
|
# We install everything in the gi/overrides folder
|
||||||
|
pygioverridesdir = $(PYGI_OVERRIDES_DIR)
|
||||||
|
-pygioverrides_PYTHON = Gst.py GstPbutils.py
|
||||||
|
+pygioverrides_PYTHON = Gst.py GstPbutils.py __init__.py
|
||||||
|
pygioverridesexecdir = $(PYGI_OVERRIDES_DIR)
|
||||||
|
EXTRA_DIST = Gst.py
|
||||||
|
INCLUDES = $(PYTHON_INCLUDES)
|
||||||
|
diff -Nru gst-python-1.2.0-orig/gi/overrides/__init__.py gst-python-1.2.0/gi/overrides/__init__.py
|
||||||
|
--- gst-python-1.2.0-orig/gi/overrides/__init__.py 1970-01-01 08:00:00.000000000 +0800
|
||||||
|
+++ gst-python-1.2.0/gi/overrides/__init__.py 2014-03-22 21:48:15.442124287 +0800
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+from pkgutil import extend_path
|
||||||
|
+
|
||||||
|
+__path__ = extend_path(__path__, __name__)
|
||||||
|
+print(__path__, __name__)
|
@ -2,7 +2,7 @@
|
|||||||
, glib, dbus, udev, udisks2, libgcrypt
|
, glib, dbus, udev, udisks2, libgcrypt
|
||||||
, libgphoto2, avahi, libarchive, fuse, libcdio
|
, libgphoto2, avahi, libarchive, fuse, libcdio
|
||||||
, libxml2, libxslt, docbook_xsl
|
, libxml2, libxslt, docbook_xsl
|
||||||
, lightWeight ? true, gnome, samba, makeWrapper }:
|
, lightWeight ? true, gnome, samba, libgnome_keyring, gconf, makeWrapper }:
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_maj = "1.18";
|
ver_maj = "1.18";
|
||||||
|
@ -15,6 +15,7 @@ cabal.mkDerivation (self: {
|
|||||||
lens liftedBase monadControl mtl network optparseApplicative
|
lens liftedBase monadControl mtl network optparseApplicative
|
||||||
transformers transformersBase xmlConduit xmlHamlet
|
transformers transformersBase xmlConduit xmlHamlet
|
||||||
];
|
];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://floss.scru.org/hDAV";
|
homepage = "http://floss.scru.org/hDAV";
|
||||||
description = "RFC 4918 WebDAV support";
|
description = "RFC 4918 WebDAV support";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "HList";
|
pname = "HList";
|
||||||
version = "0.3.4.0";
|
version = "0.3.4.1";
|
||||||
sha256 = "0jx0bfsc17c6bx621n7k0wfa5s59kcpi45p6wr8g4gyw846hjw9q";
|
sha256 = "02hw496qv2p0nnbz7lq7jfqnis19qqjsylyvdksqbwmjprk32rh2";
|
||||||
buildDepends = [ mtl tagged ];
|
buildDepends = [ mtl tagged ];
|
||||||
testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
|
testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
|
||||||
buildTools = [ diffutils ];
|
buildTools = [ diffutils ];
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "attempt";
|
pname = "attempt";
|
||||||
version = "0.4.0";
|
version = "0.4.0.1";
|
||||||
sha256 = "0n7srd1gy1fa0q1qzizvdgmrc078jyx47115aw85vvl74vh9qyjy";
|
sha256 = "1gvq04ds62kk88r2210mxd1fggp6vf5p8j5hci9vqkkss1hy9rxh";
|
||||||
buildDepends = [ failure ];
|
buildDepends = [ failure ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/snoyberg/attempt/tree/master";
|
homepage = "http://github.com/snoyberg/attempt/tree/master";
|
||||||
description = "Concrete data type for handling extensible exceptions as failures";
|
description = "Concrete data type for handling extensible exceptions as failures. (deprecated)";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
{ cabal, aeson, attoparsec, blazeBuilder, caseInsensitive, conduit
|
{ cabal, aeson, attoparsec, blazeBuilder, caseInsensitive, conduit
|
||||||
, httpConduit, httpTypes, network, tagsoup, text, transformers
|
, httpConduit, httpTypes, monadControl, network, resourcet
|
||||||
, unorderedContainers, xmlConduit
|
, tagstreamConduit, text, transformers, unorderedContainers
|
||||||
|
, xmlConduit
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "authenticate";
|
pname = "authenticate";
|
||||||
version = "1.3.2.6";
|
version = "1.3.2.8";
|
||||||
sha256 = "12sgi6q6kajjhh8mns9nklxj0kwn32xs5kzi7wmw50shx0smnjrz";
|
sha256 = "1ylijkj32li9nm4x16d66h6a74q07m4v3n2dqm67by548wfyh1j9";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson attoparsec blazeBuilder caseInsensitive conduit httpConduit
|
aeson attoparsec blazeBuilder caseInsensitive conduit httpConduit
|
||||||
httpTypes network tagsoup text transformers unorderedContainers
|
httpTypes monadControl network resourcet tagstreamConduit text
|
||||||
xmlConduit
|
transformers unorderedContainers xmlConduit
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/yesodweb/authenticate";
|
homepage = "http://github.com/yesodweb/authenticate";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "basic-prelude";
|
pname = "basic-prelude";
|
||||||
version = "0.3.6.0";
|
version = "0.3.7";
|
||||||
sha256 = "1sm89mva8vkhqp230g965b0k4n3g0c8w4sfsad8m1wh434g3k732";
|
sha256 = "1lk4f41f226v7na1cw0c8y62lm3pgwmn4560g1wmhvyxcj7185q5";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
hashable liftedBase ReadArgs safe systemFilepath text transformers
|
hashable liftedBase ReadArgs safe systemFilepath text transformers
|
||||||
unorderedContainers vector
|
unorderedContainers vector
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "bytestring-lexing";
|
pname = "bytestring-lexing";
|
||||||
version = "0.4.3.1";
|
version = "0.4.3.2";
|
||||||
sha256 = "1n0sk1xqwkj4whp0gav7hwr33xqmwl3ylqfnqix8wbwz6xpg9ygn";
|
sha256 = "09ymg1n21668wn4harxg0cqlz98fz990bangpy99w2z7d6cwbc05";
|
||||||
buildTools = [ alex ];
|
buildTools = [ alex ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://code.haskell.org/~wren/";
|
homepage = "http://code.haskell.org/~wren/";
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
{ cabal, deepseq, hashable, HUnit, testFramework
|
||||||
|
, testFrameworkHunit, text
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "case-insensitive";
|
||||||
|
version = "1.2.0.0";
|
||||||
|
sha256 = "0ybdmqaqh9hdl3dl5kx8qhs4b67g78fhnkqnd3y2lpgqjvhnbzp4";
|
||||||
|
buildDepends = [ deepseq hashable text ];
|
||||||
|
testDepends = [ HUnit testFramework testFrameworkHunit text ];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/basvandijk/case-insensitive";
|
||||||
|
description = "Case insensitive string comparison";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "classy-prelude";
|
pname = "classy-prelude";
|
||||||
version = "0.8.1.1";
|
version = "0.8.2";
|
||||||
sha256 = "14iq0zdmw4f2i3c282hs89c4a763wcm7vn5n0f6kcvcpjgjyahgi";
|
sha256 = "1kvab1vns1mp0i0nyn0flg2m6f2sl8w1yr2c0x54172f20rdm5lv";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
basicPrelude chunkedData enclosedExceptions hashable liftedBase
|
basicPrelude chunkedData enclosedExceptions hashable liftedBase
|
||||||
monoTraversable semigroups systemFilepath text time transformers
|
monoTraversable semigroups systemFilepath text time transformers
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
{ cabal, base16Bytestring, base64Bytestring, basicPrelude
|
{ cabal, base16Bytestring, base64Bytestring, chunkedData, conduit
|
||||||
, chunkedData, conduit, hspec, monoTraversable, mwcRandom
|
, hspec, monoTraversable, mwcRandom, primitive, silently
|
||||||
, primitive, silently, systemFileio, systemFilepath, text
|
, systemFileio, systemFilepath, text, transformers
|
||||||
, transformers, transformersBase, unixCompat, vector, void
|
, transformersBase, unixCompat, vector, void
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "conduit-combinators";
|
pname = "conduit-combinators";
|
||||||
version = "0.2.3";
|
version = "0.2.3.1";
|
||||||
sha256 = "05sb1v6rciaj7cj6lxv6pf9ai0k3q6cvvflcb4a7q6ql9xr3j7pr";
|
sha256 = "078i0727nhy75y6bxav6sxr1gz9cq04nvskdnzwabljppd34dqg4";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
base16Bytestring base64Bytestring chunkedData conduit
|
base16Bytestring base64Bytestring chunkedData conduit
|
||||||
monoTraversable mwcRandom primitive systemFileio systemFilepath
|
monoTraversable mwcRandom primitive systemFileio systemFilepath
|
||||||
text transformers transformersBase unixCompat vector void
|
text transformers transformersBase unixCompat vector void
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
base16Bytestring base64Bytestring basicPrelude chunkedData hspec
|
base16Bytestring base64Bytestring chunkedData hspec monoTraversable
|
||||||
monoTraversable mwcRandom silently text transformers vector
|
mwcRandom silently systemFilepath text transformers vector
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/fpco/conduit-combinators";
|
homepage = "https://github.com/fpco/conduit-combinators";
|
||||||
|
14
pkgs/development/libraries/haskell/conduit-extra/default.nix
Normal file
14
pkgs/development/libraries/haskell/conduit-extra/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ cabal }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "conduit-extra";
|
||||||
|
version = "1.0.0";
|
||||||
|
sha256 = "120c3zay8svdw3b9nqgxlrj45a1d4xf0sijkg367m7hp22szvz8a";
|
||||||
|
noHaddock = true;
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/snoyberg/conduit";
|
||||||
|
description = "Temporary placeholder package";
|
||||||
|
license = self.stdenv.lib.licenses.mit;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -1,10 +1,13 @@
|
|||||||
{ cabal, conduit, cryptohash, transformers }:
|
{ cabal, conduit, conduitExtra, cryptohash, resourcet, transformers
|
||||||
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cryptohash-conduit";
|
pname = "cryptohash-conduit";
|
||||||
version = "0.1.0";
|
version = "0.1.1";
|
||||||
sha256 = "08x45dy5crxc63gd4psryrzprz7lc5hbzjl23q56c3iqbvrx2r7w";
|
sha256 = "1kmlskgb0jx8hkzdncr24aqir9k1kyfcb2rypvkdld1yin4nslga";
|
||||||
buildDepends = [ conduit cryptohash transformers ];
|
buildDepends = [
|
||||||
|
conduit conduitExtra cryptohash resourcet transformers
|
||||||
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/vincenthz/hs-cryptohash-conduit";
|
homepage = "http://github.com/vincenthz/hs-cryptohash-conduit";
|
||||||
description = "cryptohash conduit";
|
description = "cryptohash conduit";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "cryptohash";
|
pname = "cryptohash";
|
||||||
version = "0.11.2";
|
version = "0.11.4";
|
||||||
sha256 = "0az2p7lql1lchl85ca26b5sbvhqsv47daavyfqy84qmr3w3wyr28";
|
sha256 = "1laakkc1xzp2bmai0sfi86784wharqbyanlp1d1f1q6nj318by3y";
|
||||||
buildDepends = [ byteable ];
|
buildDepends = [ byteable ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
byteable HUnit QuickCheck testFramework testFrameworkHunit
|
byteable HUnit QuickCheck testFramework testFrameworkHunit
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "digestive-functors";
|
pname = "digestive-functors";
|
||||||
version = "0.7.0.0";
|
version = "0.7.1.0";
|
||||||
sha256 = "1zn8vn6xcmp4w39b0k33bp7zsxvnn8g8p26mch4r8ng9ldcb2y8h";
|
sha256 = "0ry0ircxs6ml4wdz6hrn3jnyhniwdnn1dn21imq3kv68jlhfn3by";
|
||||||
buildDepends = [ mtl text time ];
|
buildDepends = [ mtl text time ];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
HUnit mtl QuickCheck testFramework testFrameworkHunit
|
HUnit mtl QuickCheck testFramework testFrameworkHunit
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "failure";
|
pname = "failure";
|
||||||
version = "0.2.0.1";
|
version = "0.2.0.2";
|
||||||
sha256 = "05k62sb2xj4ddjwsbfldxkap7v5kmv04qzic4sszx5i3ykbf20fd";
|
sha256 = "0hvcsn7qx00613f23vvb3vjpjlcy0nfavsai9f6s3yvmyssk5kfv";
|
||||||
buildDepends = [ transformers ];
|
buildDepends = [ transformers ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.haskell.org/haskellwiki/Failure";
|
homepage = "http://www.haskell.org/haskellwiki/Failure";
|
||||||
description = "A simple type class for success/failure computations";
|
description = "A simple type class for success/failure computations. (deprecated)";
|
||||||
license = self.stdenv.lib.licenses.bsd3;
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
platforms = self.ghc.meta.platforms;
|
platforms = self.ghc.meta.platforms;
|
||||||
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
19
pkgs/development/libraries/haskell/git-date/default.nix
Normal file
19
pkgs/development/libraries/haskell/git-date/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2, time
|
||||||
|
, utf8String
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "git-date";
|
||||||
|
version = "0.2.1";
|
||||||
|
sha256 = "17xiim439igg1gfcfwpzxjkgpmfqqh9v79jm4bg0f9h5dijij79l";
|
||||||
|
buildDepends = [ time utf8String ];
|
||||||
|
testDepends = [
|
||||||
|
QuickCheck testFramework testFrameworkQuickcheck2 time utf8String
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/singpolyma/git-date-haskell";
|
||||||
|
description = "Bindings to the date parsing from Git";
|
||||||
|
license = self.stdenv.lib.licenses.gpl2;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hakyll";
|
pname = "hakyll";
|
||||||
version = "4.4.3.2";
|
version = "4.5.0.0";
|
||||||
sha256 = "1n597q4pbdka7g06524j0zvjcjpv7fgf6mga1a0kfr012sf9cqz9";
|
sha256 = "19rmib508zcaada7xj0p84dbkjwzfiaxaszpmc763wlpx15azw8z";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
@ -26,12 +26,6 @@ cabal.mkDerivation (self: {
|
|||||||
testFrameworkHunit testFrameworkQuickcheck2 text time
|
testFrameworkHunit testFrameworkQuickcheck2 text time
|
||||||
];
|
];
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
patchPhase = ''
|
|
||||||
sed -i -e 's|blaze-markup.*,|blaze-markup,|' \
|
|
||||||
-e 's|blaze-html.*,|blaze-html,|' \
|
|
||||||
-e 's|pandoc-citeproc.*,|pandoc-citeproc,|' \
|
|
||||||
-e 's|regex-tdfa.*,|regex-tdfa,|' hakyll.cabal
|
|
||||||
'';
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://jaspervdj.be/hakyll";
|
homepage = "http://jaspervdj.be/hakyll";
|
||||||
description = "A static website compiler library";
|
description = "A static website compiler library";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "hastache";
|
pname = "hastache";
|
||||||
version = "0.5.1";
|
version = "0.6.0";
|
||||||
sha256 = "05lm7mjzc1hamxcj8akq06081bhp907hrjdkhas3wzm6ran6rwn3";
|
sha256 = "1z609mhsc875ba3k6mlmlqpmqlwgxpav2asnf83yzq1q7bfs0cxh";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
blazeBuilder filepath ieee754 mtl syb text transformers utf8String
|
blazeBuilder filepath ieee754 mtl syb text transformers utf8String
|
||||||
];
|
];
|
||||||
|
@ -1,14 +1,15 @@
|
|||||||
{ cabal, conduit, hspec, HUnit, resourcet, systemFilepath
|
{ cabal, conduit, conduitExtra, hspec, HUnit, resourcet
|
||||||
, tagstreamConduit, text, transformers, xmlConduit, xmlTypes
|
, systemFilepath, tagstreamConduit, text, transformers, xmlConduit
|
||||||
|
, xmlTypes
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "html-conduit";
|
pname = "html-conduit";
|
||||||
version = "1.1.0.2";
|
version = "1.1.0.4";
|
||||||
sha256 = "12a5hb9sf4sd11sjhwwp84k8whkxs7hqfyni2hi247fii2ldkfax";
|
sha256 = "1bl6h38fvhiidzxly49l7jickcg0s4fy59m4cizfjarxll9cspwb";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
conduit resourcet systemFilepath tagstreamConduit text transformers
|
conduit conduitExtra resourcet systemFilepath tagstreamConduit text
|
||||||
xmlConduit xmlTypes
|
transformers xmlConduit xmlTypes
|
||||||
];
|
];
|
||||||
testDepends = [ hspec HUnit xmlConduit ];
|
testDepends = [ hspec HUnit xmlConduit ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "http-client";
|
pname = "http-client";
|
||||||
version = "0.2.2.3";
|
version = "0.2.2.4";
|
||||||
sha256 = "0li4mfw5lm0y0m3l3r7cbmhbch7ap9n2067jqw1l0qjm8s74nqkh";
|
sha256 = "19dymsi39m2m7i99xsmcl9gigqm6jhynnv0w8w230mq8vraq1mcw";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
base64Bytestring blazeBuilder caseInsensitive cookie
|
base64Bytestring blazeBuilder caseInsensitive cookie
|
||||||
dataDefaultClass deepseq failure httpTypes network publicsuffixlist
|
dataDefaultClass deepseq failure httpTypes network publicsuffixlist
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
{ cabal, async, basicPrelude, blazeBuilder, caseInsensitive
|
{ cabal, async, blazeBuilder, caseInsensitive, conduit
|
||||||
, conduit, dataDefaultClass, hspec, httpClient, httpConduit
|
, conduitExtra, dataDefaultClass, hspec, httpClient, httpConduit
|
||||||
, httpTypes, liftedBase, monadControl, network, networkConduit
|
, httpTypes, liftedBase, monadControl, network, networkConduit
|
||||||
, resourcet, text, transformers, wai, waiLogger, warp, word8
|
, resourcet, streamingCommons, text, transformers, wai, waiLogger
|
||||||
|
, warp, word8
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "http-reverse-proxy";
|
pname = "http-reverse-proxy";
|
||||||
version = "0.3.1.1";
|
version = "0.3.1.4";
|
||||||
sha256 = "02aksdkwhdxzc4kk7j3npbiqpm9px3yva0375mk1b1f2g552g5jj";
|
sha256 = "0j7k6njyp3qss08gja5p62zvqxdh7bpqfbzvkm23gdv8v1bgh5h6";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
async basicPrelude blazeBuilder caseInsensitive conduit
|
async blazeBuilder caseInsensitive conduit conduitExtra
|
||||||
dataDefaultClass httpClient httpTypes liftedBase monadControl
|
dataDefaultClass httpClient httpTypes liftedBase monadControl
|
||||||
network networkConduit resourcet text wai waiLogger word8
|
network networkConduit resourcet streamingCommons text transformers
|
||||||
|
wai waiLogger word8
|
||||||
];
|
];
|
||||||
testDepends = [
|
testDepends = [
|
||||||
blazeBuilder conduit hspec httpConduit httpTypes liftedBase network
|
blazeBuilder conduit hspec httpConduit httpTypes liftedBase network
|
||||||
|
@ -6,6 +6,7 @@ cabal.mkDerivation (self: {
|
|||||||
sha256 = "02l1lhl2ajbm5f7zq363nlb21dpdg1m0qsy330arccmds7z9g7a2";
|
sha256 = "02l1lhl2ajbm5f7zq363nlb21dpdg1m0qsy330arccmds7z9g7a2";
|
||||||
buildDepends = [ blazeBuilder caseInsensitive text ];
|
buildDepends = [ blazeBuilder caseInsensitive text ];
|
||||||
testDepends = [ blazeBuilder hspec QuickCheck text ];
|
testDepends = [ blazeBuilder hspec QuickCheck text ];
|
||||||
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/aristidb/http-types";
|
homepage = "https://github.com/aristidb/http-types";
|
||||||
description = "Generic HTTP types for Haskell (for both client and server code)";
|
description = "Generic HTTP types for Haskell (for both client and server code)";
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "language-c-quote";
|
pname = "language-c-quote";
|
||||||
version = "0.7.6";
|
version = "0.7.7";
|
||||||
sha256 = "15sfasbrr9wzqkwv9xg9nvb3gnn4drkll3b3cappiyzkmawp2hkr";
|
sha256 = "0rj508hfv9xf30rfjhalz3yfb15vp4r4acdj8aahwfnbls2qb37v";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
exceptionMtl exceptionTransformers filepath haskellSrcMeta
|
exceptionMtl exceptionTransformers filepath haskellSrcMeta
|
||||||
mainlandPretty mtl srcloc syb symbol
|
mainlandPretty mtl srcloc syb symbol
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "language-c";
|
pname = "language-c";
|
||||||
version = "0.4.2";
|
version = "0.4.3";
|
||||||
sha256 = "07pf4v4n7kvr5inkhs24b7g55pmkk4k5ihi6s5dbc200l01wz133";
|
sha256 = "0y5yn0jaairqixxqx7c80z5y5mc6czshps7wghjci1s39mn9cjf6";
|
||||||
buildDepends = [ filepath syb ];
|
buildDepends = [ filepath syb ];
|
||||||
buildTools = [ alex happy ];
|
buildTools = [ alex happy ];
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ cabal, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
|
{ cabal, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
|
||||||
, testFramework, testFrameworkHunit, utf8Light, utf8String
|
, testFramework, testFrameworkHunit, utf8Light, utf8String, alex
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
@ -11,7 +11,8 @@ cabal.mkDerivation (self: {
|
|||||||
blazeBuilder Cabal HUnit mtl QuickCheck testFramework
|
blazeBuilder Cabal HUnit mtl QuickCheck testFramework
|
||||||
testFrameworkHunit utf8Light utf8String
|
testFrameworkHunit utf8Light utf8String
|
||||||
];
|
];
|
||||||
buildTools = [ happy ];
|
buildTools = [ happy alex ];
|
||||||
|
preConfigure = "rm -rv dist; $SHELL runalex.sh";
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/alanz/language-javascript";
|
homepage = "http://github.com/alanz/language-javascript";
|
||||||
description = "Parser for JavaScript";
|
description = "Parser for JavaScript";
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "linear";
|
pname = "linear";
|
||||||
version = "1.9.1";
|
version = "1.10";
|
||||||
sha256 = "17jvqy2nbcra36fzkwbjkfwg6mjw804zd1i50mhbqwg9j7z4s5sb";
|
sha256 = "1wl0hb58znc3n5f5jv0wm6g21p080zldlq954n0lm8sjwmv39cdx";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
adjunctions binary distributive hashable lens reflection
|
adjunctions binary distributive hashable lens reflection
|
||||||
semigroupoids semigroups tagged transformers unorderedContainers
|
semigroupoids semigroups tagged transformers unorderedContainers
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
{ cabal, base64Bytestring, blazeBuilder, filepath, hspec, random
|
{ cabal, base64Bytestring, blazeBuilder, filepath, hspec, random
|
||||||
, text
|
, text, sendmail ? "sendmail"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "mime-mail";
|
pname = "mime-mail";
|
||||||
version = "0.4.4.1";
|
version = "0.4.4.2";
|
||||||
sha256 = "0jzbkrd62alvgyx9bkrzicz88hjjnnavpv6hl22cxnirz41h8hw0";
|
sha256 = "0s38xgv6kycnfahqi5dnrjn3wkaq35w87cv8p12pq0qq2x7dvawd";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
base64Bytestring blazeBuilder filepath random text
|
base64Bytestring blazeBuilder filepath random text
|
||||||
];
|
];
|
||||||
testDepends = [ blazeBuilder hspec text ];
|
testDepends = [ blazeBuilder hspec text ];
|
||||||
|
configureFlags = [ "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"${sendmail}\"" ];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://github.com/snoyberg/mime-mail";
|
homepage = "http://github.com/snoyberg/mime-mail";
|
||||||
description = "Compose MIME email messages";
|
description = "Compose MIME email messages";
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "monad-logger";
|
pname = "monad-logger";
|
||||||
version = "0.3.4.0";
|
version = "0.3.4.1";
|
||||||
sha256 = "16nrzms87klbs26rbaw4j8xal5k7glpbhg7r2x1m3gxbdhsp696n";
|
sha256 = "1i5192060svqhc1iv215b98hah6p29bzdqin6ng5qpq8d44hdnpm";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
|
blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
|
||||||
mtl resourcet stm stmChans text transformers transformersBase
|
mtl resourcet stm stmChans text transformers transformersBase
|
||||||
|
14
pkgs/development/libraries/haskell/monadloc/default.nix
Normal file
14
pkgs/development/libraries/haskell/monadloc/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ cabal, transformers }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "monadloc";
|
||||||
|
version = "0.7.1";
|
||||||
|
sha256 = "1a773nysrsj61ka7bdacb0i7dxlgb1fjz3x5w9c1w1dv7rmhynmj";
|
||||||
|
buildDepends = [ transformers ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/pepeiborra/monadloc";
|
||||||
|
description = "A class for monads which can keep a monadic call trace";
|
||||||
|
license = self.stdenv.lib.licenses.publicDomain;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "mono-traversable";
|
pname = "mono-traversable";
|
||||||
version = "0.4.0.3";
|
version = "0.4.0.4";
|
||||||
sha256 = "04g2ihk4n71zrz09si2k8j46y53i5vllps9xizgs0bmikmrgh29f";
|
sha256 = "1ikrdhr4f3755xim6j9db60a9y0mpdnljmck84qh47yk2axfp0n9";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
comonad dlist dlistInstances hashable semigroupoids semigroups text
|
comonad dlist dlistInstances hashable semigroupoids semigroups text
|
||||||
transformers unorderedContainers vector vectorAlgorithms
|
transformers unorderedContainers vector vectorAlgorithms
|
||||||
|
15
pkgs/development/libraries/haskell/mtl/2.1.3.1.nix
Normal file
15
pkgs/development/libraries/haskell/mtl/2.1.3.1.nix
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
{ cabal, transformers }:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "mtl";
|
||||||
|
version = "2.1.3.1";
|
||||||
|
sha256 = "1xpn2wjmqbh2cg1yssc6749xpgcqlrrg4iilwqgkcjgvaxlpdbvp";
|
||||||
|
buildDepends = [ transformers ];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://github.com/ekmett/mtl";
|
||||||
|
description = "Monad classes, using functional dependencies";
|
||||||
|
license = self.stdenv.lib.licenses.bsd3;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
maintainers = [ self.stdenv.lib.maintainers.andres ];
|
||||||
|
};
|
||||||
|
})
|
@ -0,0 +1,19 @@
|
|||||||
|
{ cabal, aeson, blazeBuilder, conduit, monadControl, mysql
|
||||||
|
, mysqlSimple, persistent, resourcet, text, transformers
|
||||||
|
}:
|
||||||
|
|
||||||
|
cabal.mkDerivation (self: {
|
||||||
|
pname = "persistent-mysql";
|
||||||
|
version = "1.3.0.2";
|
||||||
|
sha256 = "0yv2f8zqypbp5swdpxmgnfmmfsr6lwhb27k0hl9bh7ya76anhvqy";
|
||||||
|
buildDepends = [
|
||||||
|
aeson blazeBuilder conduit monadControl mysql mysqlSimple
|
||||||
|
persistent resourcet text transformers
|
||||||
|
];
|
||||||
|
meta = {
|
||||||
|
homepage = "http://www.yesodweb.com/book/persistent";
|
||||||
|
description = "Backend for the persistent library using MySQL database server";
|
||||||
|
license = self.stdenv.lib.licenses.mit;
|
||||||
|
platforms = self.ghc.meta.platforms;
|
||||||
|
};
|
||||||
|
})
|
@ -1,14 +1,15 @@
|
|||||||
{ cabal, aeson, blazeBuilder, conduit, monadControl, persistent
|
{ cabal, aeson, blazeBuilder, conduit, monadControl, persistent
|
||||||
, postgresqlLibpq, postgresqlSimple, text, time, transformers
|
, postgresqlLibpq, postgresqlSimple, resourcet, text, time
|
||||||
|
, transformers
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "persistent-postgresql";
|
pname = "persistent-postgresql";
|
||||||
version = "1.3.0.3";
|
version = "1.3.0.5";
|
||||||
sha256 = "00frqpv7wbksbjl714nhrian45p61kggxhpin9hawbwn2siwsg2m";
|
sha256 = "0abk38jzc7k93wrzn3pq90xj0mqln4nqrgzmmy0d3p4gmbzmnnia";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
|
aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
|
||||||
postgresqlSimple text time transformers
|
postgresqlSimple resourcet text time transformers
|
||||||
];
|
];
|
||||||
jailbreak = true;
|
jailbreak = true;
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -1,15 +1,16 @@
|
|||||||
{ cabal, aeson, conduit, monadControl, monadLogger, persistent
|
{ cabal, aeson, conduit, monadControl, monadLogger, persistent
|
||||||
, text, transformers
|
, resourcet, text, transformers
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "persistent-sqlite";
|
pname = "persistent-sqlite";
|
||||||
version = "1.3.0.3";
|
version = "1.3.0.5";
|
||||||
sha256 = "0b7dp2hiza02rnnph44rd2vls06jipmixi32icbijmcqk83hfglq";
|
sha256 = "05b7byc4z7mhni90cj2aan63f599wv0511zqbsm6kbylk1zpyizb";
|
||||||
isLibrary = true;
|
isLibrary = true;
|
||||||
isExecutable = true;
|
isExecutable = true;
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson conduit monadControl monadLogger persistent text transformers
|
aeson conduit monadControl monadLogger persistent resourcet text
|
||||||
|
transformers
|
||||||
];
|
];
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.yesodweb.com/book/persistent";
|
homepage = "http://www.yesodweb.com/book/persistent";
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "persistent-template";
|
pname = "persistent-template";
|
||||||
version = "1.3.1.2";
|
version = "1.3.1.3";
|
||||||
sha256 = "1gdwwx55ihnqxgyw0wsx0pr4dcs2hdbp5xbnx6l1j03rn5x1sglq";
|
sha256 = "0q5ysv1r6p4mg79waq2g6ql11rap6znawkplddblpaa8lq9qalj6";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson monadControl monadLogger persistent text transformers
|
aeson monadControl monadLogger persistent text transformers
|
||||||
unorderedContainers
|
unorderedContainers
|
||||||
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "persistent";
|
pname = "persistent";
|
||||||
version = "1.3.0.4";
|
version = "1.3.0.6";
|
||||||
sha256 = "09p7nf6dnjz83qp7invkmzcr55zglm0y54p8pb1y6acjpnw3glkl";
|
sha256 = "0rj5yi8nziym9cb9c9vw6vdjflf2yfz02i39p6dsdy084f1ivpk8";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
|
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
|
||||||
liftedBase monadControl monadLogger pathPieces resourcePool
|
liftedBase monadControl monadLogger pathPieces resourcePool
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "pool-conduit";
|
pname = "pool-conduit";
|
||||||
version = "0.1.2.1";
|
version = "0.1.2.2";
|
||||||
sha256 = "1mcx66xv1irxd66cfv23h4n7fplg5a0hyldlgk8km0k395mjw8k8";
|
sha256 = "1jg7kymr1v82xl9122q9fly385jhm1hr2406g35ydl9wnh4aaiw8";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
monadControl resourcePool resourcet transformers
|
monadControl resourcePool resourcet transformers
|
||||||
];
|
];
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "postgresql-simple";
|
pname = "postgresql-simple";
|
||||||
version = "0.4.2.0";
|
version = "0.4.2.1";
|
||||||
sha256 = "0g31a7s2h9d6f3igvrddbr357sk4vabvg88mmvb194pps66y8zzn";
|
sha256 = "1547n7rh0gsrjaa8f9lc4diljpps09kdf0gkm0cjf1gk2kr7lh94";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
|
aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
|
||||||
scientific text time transformers uuid vector
|
scientific text time transformers uuid vector
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ cabal, conduit, controlMonadLoop, hspec, mtl, shakespeareText
|
{ cabal, conduit, controlMonadLoop, hspec, mtl, shakespeare
|
||||||
, text
|
, shakespeareText, text
|
||||||
}:
|
}:
|
||||||
|
|
||||||
cabal.mkDerivation (self: {
|
cabal.mkDerivation (self: {
|
||||||
pname = "process-conduit";
|
pname = "process-conduit";
|
||||||
version = "1.0.0.1";
|
version = "1.0.0.2";
|
||||||
sha256 = "1b1bya316gxj3rgn7qpjmmcllgy9aac69rqw664sw1rnypnic780";
|
sha256 = "0rz18x7gy8w1h2xq0il49k515n0y3gpxnl7mfgkczc86965w7fzj";
|
||||||
buildDepends = [
|
buildDepends = [
|
||||||
conduit controlMonadLoop mtl shakespeareText text
|
conduit controlMonadLoop mtl shakespeare shakespeareText text
|
||||||
];
|
];
|
||||||
testDepends = [ conduit hspec ];
|
testDepends = [ conduit hspec ];
|
||||||
meta = {
|
meta = {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user