Merge master into x-updates

This commit is contained in:
Vladimír Čunát 2014-04-01 10:49:31 +02:00
commit 6445ac90ad
189 changed files with 5177 additions and 2067 deletions

View File

@ -248,4 +248,10 @@
fullName = "Zope Public License 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";
};
}

View File

@ -61,6 +61,7 @@
pSub = "Pascal Wittmann <mail@pascal-wittmann.de>";
qknight = "Joachim Schiele <js@lastlog.de>";
raskin = "Michael Raskin <7c6f434c@mail.ru>";
redbaron = "Maxim Ivanov <ivanov.maxim@gmail.com>";
rickynils = "Rickard Nilsson <rickynils@gmail.com>";
rob = "Rob Vermaas <rob.vermaas@gmail.com>";
roconnor = "Russell O'Connor <roconnor@theorem.ca>";

View File

@ -155,8 +155,14 @@ rec {
let
# Process mkOverride properties, adding in the default
# 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);
# 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;
# Type-check the remaining definitions, and merge them if
# possible.
@ -180,7 +186,7 @@ rec {
};
/* 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
example,
@ -201,7 +207,7 @@ rec {
map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content)
else if cfg._type or "" == "override" then
map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content)
else
else # FIXME: handle mkOrder?
[ cfg ];
/* 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;
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
optionSet to configOf. FIXME: remove eventually. */
fixupOptionType = loc: opt:
@ -302,8 +321,13 @@ rec {
mkFixStrictness = id; # obsolete, no-op
# FIXME: Add mkOrder back in. It's not currently used anywhere in
# NixOS, but it should be useful.
mkOrder = priority: content:
{ _type = "order";
inherit priority content;
};
mkBefore = mkOrder 500;
mkAfter = mkOrder 1500;
/* Compatibility. */

View File

@ -443,8 +443,20 @@ Note that both <filename>configuration.nix</filename> and
define an option, NixOS will try to <emphasis>merge</emphasis> the
definitions. In the case of
<option>environment.systemPackages</option>, thats easy: the lists of
packages can simply be concatenated. For other types of options, a
merge may not be possible: for instance, if two modules define
packages can simply be concatenated. The value in
<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>,
<command>nixos-rebuild</command> will give an error:

View File

@ -65,9 +65,6 @@ in
config = mkIf cfg.enable {
# Enable the ACPI daemon. Not sure whether this is essential.
services.acpid.enable = true;
boot.kernelModules =
[ "acpi_cpufreq" "powernow-k8" "cpufreq_performance" "cpufreq_powersave" "cpufreq_ondemand"
"cpufreq_conservative"

View File

@ -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
# additions.
my $dmi = `@dmidecode@/sbin/dmidecode`;
if ($dmi =~ /Manufacturer: innotek/) {
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
# devices.
my @swaps = read_file("/proc/swaps");

View File

@ -122,6 +122,7 @@
notbit = 111;
ngircd = 112;
btsync = 113;
minecraft = 114;
# When adding a uid, make sure it doesn't match an existing gid.

View File

@ -96,6 +96,7 @@
./services/databases/postgresql.nix
./services/databases/virtuoso.nix
./services/games/ghost-one.nix
./services/games/minecraft-server.nix
./services/hardware/acpid.nix
./services/hardware/amd-hybrid-graphics.nix
./services/hardware/bluetooth.nix

View File

@ -5,5 +5,13 @@
{
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
'';
}

View File

@ -3,20 +3,11 @@
with pkgs.lib;
let
cfg = config.services.rabbitmq;
run = cmd: "${pkgs.sudo}/bin/sudo -E -u rabbitmq ${cmd}";
in
{
in {
###### interface
options = {
services.rabbitmq = {
enable = mkOption {
@ -40,55 +31,59 @@ in
'';
};
};
dataDir = mkOption {
type = types.path;
default = "/var/lib/rabbitmq";
description = ''
Data directory for rabbitmq.
'';
};
};
};
###### implementation
config = mkIf cfg.enable {
environment.systemPackages = [ pkgs.rabbitmq_server ];
users.extraUsers.rabbitmq = {
description = "RabbitMQ server user";
home = "/var/empty";
home = "${cfg.dataDir}";
group = "rabbitmq";
uid = config.ids.uids.rabbitmq;
};
users.extraGroups.rabbitmq.gid = config.ids.gids.rabbitmq;
jobs.rabbitmq = {
description = "RabbitMQ server";
systemd.services.rabbitmq = {
description = "RabbitMQ Server";
startOn = "started network-interfaces";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
preStart =
''
mkdir -m 0700 -p /var/lib/rabbitmq
chown rabbitmq /var/lib/rabbitmq
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"}
'';
environment = {
RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia";
RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress;
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
SYS_PREFIX = "";
};
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
'';
};
};
}

View File

@ -225,14 +225,14 @@ in
# Wait for PostgreSQL to be ready to accept connections.
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
sleep 0.1
done
if test -e "${cfg.dataDir}/.first_startup"; then
${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"
fi

View 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}
'';
};
};
}

View File

@ -1,5 +1,9 @@
{ config, pkgs, ... }:
let
cfgFile = pkgs.writeText "reader.conf" "";
in
with pkgs.lib;
{
@ -24,22 +28,19 @@ with pkgs.lib;
config = mkIf config.services.pcscd.enable {
jobs.pcscd =
{ description = "PCSC-Lite daemon";
startOn = "started udev";
daemonType = "fork";
# Add to the drivers directory the only drivers we have by now: ccid
preStart = ''
mkdir -p /var/lib/pcsc
rm -Rf /var/lib/pcsc/drivers
ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/
'';
exec = "${pkgs.pcsclite}/sbin/pcscd";
systemd.services.pcscd = {
description = "PCSC-Lite daemon";
wantedBy = [ "multi-user.target" ];
preStart = ''
mkdir -p /var/lib/pcsc
rm -Rf /var/lib/pcsc/drivers
ln -s ${pkgs.ccid}/pcsc/drivers /var/lib/pcsc/
'';
serviceConfig = {
Type = "forking";
ExecStart = "${pkgs.pcsclite}/sbin/pcscd -c ${cfgFile}";
};
};
};

View File

@ -4,7 +4,7 @@ with pkgs.lib;
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
# interfaces that are part of a bridge.

View File

@ -285,7 +285,7 @@ in
networking.firewall.allowedTCPPorts = cfg.ports;
security.pam.services.sshd =
{ startSession = true;
{ startSession = !config.boot.isContainer;
showMotd = true;
unixAuth = cfg.passwordAuthentication;
};

View File

@ -5,6 +5,7 @@ with pkgs.lib;
let
dmcfg = config.services.xserver.displayManager;
cfg = dmcfg.slim;
slimConfig = pkgs.writeText "slim.cfg"
@ -109,6 +110,12 @@ in
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
# installation CD.
security.pam.services.slim = { allowNullPassword = true; startSession = true; };

View File

@ -26,6 +26,11 @@ let
driverNames = config.hardware.opengl.videoDrivers;
needsAcpid =
(elem "nvidia" driverNames) ||
(elem "nvidiaLegacy173" driverNames) ||
(elem "nvidiaLegacy304" driverNames);
drivers = flip map driverNames
(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);
@ -438,6 +443,8 @@ in
++ optional (elem "virtualbox" driverNames) xorg.xrefresh
++ optional (elem "ati_unfree" driverNames) kernelPackages.ati_drivers_x11;
services.acpid.enable = mkIf needsAcpid true;
environment.pathsToLink =
[ "/etc/xdg" "/share/xdg" "/share/applications" "/share/icons" "/share/pixmaps" ];
@ -446,7 +453,8 @@ in
systemd.services."display-manager" =
{ 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;

View File

@ -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 // {
what = mkOption {

View File

@ -304,6 +304,15 @@ let
'';
};
pathToUnit = name: def:
{ inherit (def) wantedBy requiredBy enable;
text = commonUnitText def +
''
[Path]
${attrsToSection def.pathConfig}
'';
};
mountToUnit = name: def:
{ inherit (def) wantedBy requiredBy enable;
text = commonUnitText def +
@ -472,6 +481,13 @@ in
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 {
default = [];
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}.socket" (socketToUnit n v)) cfg.sockets
// mapAttrs' (n: v: nameValuePair "${n}.timer" (timerToUnit n v)) cfg.timers
// mapAttrs' (n: v: nameValuePair "${n}.path" (pathToUnit n v)) cfg.paths
// listToAttrs (map
(v: let n = escapeSystemdPath v.where;
in nameValuePair "${n}.mount" (mountToUnit n v)) cfg.mounts)

View File

@ -38,6 +38,8 @@ optionalAttrs (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) # ugly...
boot.extraModulePackages = [ kernel.virtualboxGuestAdditions ];
boot.kernelModules = [ "vboxsf" ];
users.extraGroups.vboxsf.gid = config.ids.gids.vboxsf;
systemd.services.virtualbox =

View File

@ -92,7 +92,7 @@ with pkgs.lib;
--audiocontroller ac97 --audio alsa \
--rtcuseutc on \
--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 \
--medium ${config.system.build.virtualBoxImage}/disk.vdi

View File

@ -33,6 +33,7 @@ with import ../lib/testing.nix { inherit system minimal; };
printing = makeTest (import ./printing.nix);
proxy = makeTest (import ./proxy.nix);
quake3 = makeTest (import ./quake3.nix);
rabbitmq = makeTest (import ./rabbitmq.nix);
simple = makeTest (import ./simple.nix);
#subversion = makeTest (import ./subversion.nix);
tomcat = makeTest (import ./tomcat.nix);

View File

@ -39,7 +39,7 @@ let
{ imports =
[ ./hardware-configuration.nix
"''${modulesPath}/testing/test-instrumentation.nix"
<nixpkgs/nixos/modules/testing/test-instrumentation.nix>
];
boot.loader.grub.version = ${toString grubVersion};
@ -48,7 +48,6 @@ let
''}
boot.loader.grub.device = "${grubDevice}";
boot.loader.grub.extraConfig = "serial; terminal_output.serial";
boot.initrd.kernelModules = [ "virtio_console" ];
environment.systemPackages = [ ${optionalString testChannel "pkgs.rlwrap"} ];
}
@ -177,7 +176,7 @@ let
# Test nixos-option.
$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 -l boot.initrd.kernelModules | grep /etc/nixos/configuration.nix");
$machine->succeed("nixos-option -l boot.initrd.kernelModules | grep qemu-guest.nix");
$machine->shutdown;

18
nixos/tests/rabbitmq.nix Normal file
View 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\"");
'';
}

View File

@ -1,5 +1,5 @@
{ stdenv, fetchurl, cmake, pkgconfig, xorg, libjpeg, libpng
, fontconfig, freetype, pam, dbus_libs }:
, fontconfig, freetype, pam, dbus_libs, makeWrapper, pkgs }:
stdenv.mkDerivation rec {
name = "slim-1.3.6";
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
./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" ];
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
buildInputs =
[ cmake pkgconfig libjpeg libpng fontconfig freetype
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";

View File

@ -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/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 @@
/* 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");
string::size_type pos;
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) {

View File

@ -11,13 +11,12 @@ cabal.mkDerivation (self: {
postInstall = ''
emacs -L elisp --batch -f batch-byte-compile "elisp/"*.el
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 = {
homepage = "https://github.com/chrisdone/structured-haskell-mode";
description = "Structured editing Emacs mode for Haskell";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.pSub ];
};
})

View File

@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
description = "IPsec Client for FreeBSD, NetBSD and many Linux based operating systems";
platforms = platforms.unix;
maintainers = [ maintainers.iElectric ];
license = "sleepycat";
license = licenses.sleepycat;
};
}

View 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;
};
}

View File

@ -3,14 +3,14 @@
}:
let
version = "0.9.2";
version = "0.9.4";
in stdenv.mkDerivation rec {
name = "spacefm-${version}";
src = fetchurl {
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 ];

View File

@ -8,7 +8,7 @@
, libusb1, libexif, pciutils
, python, pythonPackages, perl, pkgconfig
, nspr, udev, krb5, file
, nspr, udev, krb5
, utillinux, alsaLib
, gcc, bison, gperf
, glib, gtk, dbus_glib
@ -54,6 +54,7 @@ let
sed -i -r \
-e 's/-f(stack-protector)(-all)?/-fno-\1/' \
-e 's|/bin/echo|echo|' \
-e "/python_arch/s/: *'[^']*'/: '""'/" \
build/common.gypi
sed -i '/not RunGN/,+1d' build/gyp_chromium
sed -i -e 's|/usr/bin/gcc|gcc|' \
@ -165,8 +166,7 @@ in stdenv.mkDerivation rec {
nspr udev
(if useOpenSSL then openssl else nss)
utillinux alsaLib
gcc bison gperf
krb5 file
gcc bison gperf krb5
glib gtk dbus_glib
libXScrnSaver libXcursor libXtst mesa
pciutils protobuf speechd libXdamage
@ -223,8 +223,10 @@ in stdenv.mkDerivation rec {
ffmpeg_branding = "Chrome";
} // optionalAttrs (stdenv.system == "x86_64-linux") {
target_arch = "x64";
python_arch = "x86-64";
} // optionalAttrs (stdenv.system == "i686-linux") {
target_arch = "ia32";
python_arch = "ia32";
});
configurePhase = ''

View File

@ -2,12 +2,12 @@
m4, glib_networking, gsettings_desktop_schemas }:
stdenv.mkDerivation {
name = "dwb-2014-03-01";
name = "dwb-2014-03-27";
src = fetchgit {
url = "https://bitbucket.org/portix/dwb.git";
rev = "e8d4b8d7937b70279d006da4938dfe52fb85f9e8";
sha256 = "0m4730zqmnvb9k6xyydi221sh0wbanzbhg07xvwil3kn1d29340w";
rev = "4566d58575fbf687ebe9e3414996c45697b62787";
sha256 = "145sq2wv0s0n32cwpwgy59ff6ppcv80ialak7nnj1rpqicfqb72h";
};
buildInputs = [ pkgconfig makeWrapper libsoup webkit gtk3 gnutls json_c m4 ];

View File

@ -1,13 +1,13 @@
{stdenv, fetchurl, readline, libssh, intltool}:
{stdenv, fetchurl, readline, libssh, intltool, libbsd}:
stdenv.mkDerivation rec {
name = "yafc-1.2.3";
name = "yafc-1.3.2";
src = fetchurl {
url = "https://github.com/downloads/sebastinas/yafc/${name}.tar.xz";
sha256 = "11h5r9ragfpil338kq981wxnifacflqfwgydhmy00b3fbdlnxzsi";
url = "http://www.yafc-ftp.com/upload/${name}.tar.xz";
sha256 = "0rrhik00xynxg5s3ffqlyynvy8ssv8zfaixkpb77baxa274gnbd7";
};
buildInputs = [ readline libssh intltool ];
buildInputs = [ readline libssh intltool libbsd ];
meta = {
description = "ftp/sftp client with readline, autocompletion and bookmarks";

View 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 ];
};
}

View File

@ -0,0 +1,3 @@
#!@bash@/bin/bash
exec "@xulrunner@/bin/xulrunner" "@out@/libexec/zotero/application.ini" "${@}"

View 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 ];
};
}

View 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"
'';
}

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl, lib, iasl, dev86, pam, libxslt, libxml2, libX11, xproto, libXext
, libXcursor, libXmu, qt4, libIDL, SDL, libcap, zlib, libpng, glib, kernel, lvm2
, which, alsaLib, curl, gawk
, which, alsaLib, curl, libvpx, gawk
, xorriso, makeself, perl, pkgconfig
, javaBindings ? false, jdk ? null
, pythonBindings ? false, python ? null
@ -11,7 +11,7 @@ with stdenv.lib;
let
version = "4.2.22"; # changes ./guest-additions as well
version = "4.3.10"; # changes ./guest-additions as well
forEachModule = action: ''
for mod in \
@ -31,13 +31,13 @@ let
'';
# See https://github.com/NixOS/nixpkgs/issues/672 for details
extpackRevision = "91556";
extpackRevision = "93012";
extensionPack = requireFile rec {
name = "Oracle_VM_VirtualBox_Extension_Pack-${version}-${extpackRevision}.vbox-extpack";
# IMPORTANT: Hash must be base16 encoded because it's used as an input to
# VBoxExtPackHelperApp!
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.2.22/SHA256SUMS
sha256 = "79c0da87451cab3868f64d48bf9a7fdd710786c05ed4b3070b008c3aa1ce4f7a";
# Tip: see http://dlc.sun.com.edgesuite.net/virtualbox/4.3.10/SHA256SUMS
sha256 = "ec3f2a98373d5e228acb4756ac07f44212c4d53f6b83deee81b791abb0d2608a";
message = ''
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:
@ -56,12 +56,12 @@ in stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
sha256 = "4a017ec5fa0e0cfa830ae6c2b9d680c9b108e5fb96348e1397a7d0ea051f8bc1";
sha256 = "739835aee3274a663b23eeb748bd0430e8a5d8ba2f4d0eae5dc47ff2c485e23b";
};
buildInputs =
[ 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 ]
++ optional javaBindings jdk
++ optional pythonBindings python;

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation {
src = fetchurl {
url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
sha256 = "222e003d038b757cd761361bb5da33123e0f9574af246fb95eb558593c8c7c76";
sha256 = "247e15e9a205dcd4761f6cb547ceca2a61e8d6905c1930870939fd323f4cd1ae";
};
KERN_DIR = "${kernel.dev}/lib/modules/*/build";

View File

@ -10,8 +10,9 @@ cabal.mkDerivation (self: {
extensibleExceptions filepath mtl utf8String X11
];
postInstall = ''
shopt -s globstar
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 = [

View File

@ -2,12 +2,12 @@
, autoconf, automake, libtool, openjdk, perl }:
stdenv.mkDerivation {
name = "aldor-1.1.0";
name = "aldor-1.2.0";
src = fetchgit {
url = "https://github.com/pippijn/aldor";
sha256 = "14xv3jl15ib2knsdz0bd7jx64zg1qrr33q5zcr8gli860ps8gkg3";
rev = "f7b95835cf709654744441ddb1c515bfc2bec998";
sha256 = "1l9fc2cgwabifwbijcp293abc8hcv40nzx2w31jkxh8n0plbiczn";
rev = "15471e75f3d65b93150f414ebcaf59a03054b68d";
};
buildInputs = [ gmp which flex bison makeWrapper autoconf automake libtool

View File

@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
buildInputs = [ mono pkgconfig autoconf automake which ];
configurePhase = ''
substituteInPlace ./autogen.sh "/usr/bin/env sh" "/bin/sh"
substituteInPlace ./autogen.sh --replace "/usr/bin/env sh" "/bin/sh"
./autogen.sh --prefix $out
'';

View 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;
};
}

View 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;
};
}

View File

@ -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

View 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; };
}

View 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

View 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.";
}

View 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";
};
};
};
}

View 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!')

View 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;
};
}

View File

@ -28,7 +28,11 @@ stdenv.mkDerivation {
(stdenv.lib.optional (stdenv.gcc.gcc != null) "-DGCC_INSTALL_PREFIX=${stdenv.gcc.gcc}");
# 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;

View File

@ -6,7 +6,7 @@ let
fsrc = fetchurl {
url = "http://www.informatik.uni-kiel.de/~pakcs/download/${fname}-src.tar.gz";
sha256 = "006bq6cmycq2f4xb3zmnmxyngj64hppk3a083hy0qzj7gl77zvfw";
sha256 = "165f29zgb7ldl51zfwgc31fk6a67w0gznp5lhvb6i5m013g2ddi8";
};
in

View File

@ -22,11 +22,11 @@ let
'';
in
stdenv.mkDerivation rec {
name = "SDL2-2.0.2";
name = "SDL2-2.0.3";
src = fetchurl {
url = "http://www.libsdl.org/release/${name}.tar.gz";
sha256 = "0l78h3wlirnxxrdw3kkm9amhgjn6xrs9l5j871r552wabbw5f0ar";
sha256 = "0369ngvb46x6c26h8zva4x22ywgy6mvn0wx87xqwxg40pxm9m9m5";
};
# Since `libpulse*.la' contain `-lgdbm', PulseAudio must be propagated.

View File

@ -1,4 +1,4 @@
{ fetchurl, stdenv, pkgconfig, clutter, gtk3 }:
{ fetchurl, stdenv, pkgconfig, gobjectIntrospection, clutter, gtk3 }:
stdenv.mkDerivation rec {
name = "clutter-gtk-1.4.4";
@ -9,9 +9,7 @@ stdenv.mkDerivation rec {
};
propagatedBuildInputs = [ clutter gtk3 ];
nativeBuildInputs = [ pkgconfig ];
configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
nativeBuildInputs = [ pkgconfig gobjectIntrospection ];
postBuild = "rm -rf $out/share/gtk-doc";

View 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 ];
};
}

View File

@ -5,7 +5,7 @@
# Options from inherited versions
, version, sha256
, extraPatches ? [ ]
, license ? "Berkeley Database License"
, license ? stdenv.lib.licenses.sleepycat
}:
stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
url = "http://download.oracle.com/berkeley-db/${name}.tar.gz";
sha256 = sha256;
};
patches = extraPatches;
configureFlags = [

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, python
{ stdenv, fetchurl, pkgconfig, python, gobjectIntrospection
, gnonlin, libxml2
}:
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
sha256 = "1n7nw8rqvwna9af55lggah44gdvfgld1igvgaya8glc37wpq89b0";
};
nativeBuildInputs = [ pkgconfig python ];
nativeBuildInputs = [ pkgconfig python gobjectIntrospection ];
propagatedBuildInputs = [ gnonlin libxml2 ];
}

View File

@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
sha256 = "09c6yls8ipbmwimdjr7xi3hvf2xa1xn1pv07855r7wfyzas1xbl1";
};
patches = [ ./different-path-with-pygobject.patch ];
buildInputs =
[ pkgconfig gst-plugins-base pygtk pygobject3 ]
;

View File

@ -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__)

View File

@ -2,7 +2,7 @@
, glib, dbus, udev, udisks2, libgcrypt
, libgphoto2, avahi, libarchive, fuse, libcdio
, libxml2, libxslt, docbook_xsl
, lightWeight ? true, gnome, samba, makeWrapper }:
, lightWeight ? true, gnome, samba, libgnome_keyring, gconf, makeWrapper }:
let
ver_maj = "1.18";

View File

@ -15,6 +15,7 @@ cabal.mkDerivation (self: {
lens liftedBase monadControl mtl network optparseApplicative
transformers transformersBase xmlConduit xmlHamlet
];
jailbreak = true;
meta = {
homepage = "http://floss.scru.org/hDAV";
description = "RFC 4918 WebDAV support";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "HList";
version = "0.3.4.0";
sha256 = "0jx0bfsc17c6bx621n7k0wfa5s59kcpi45p6wr8g4gyw846hjw9q";
version = "0.3.4.1";
sha256 = "02hw496qv2p0nnbz7lq7jfqnis19qqjsylyvdksqbwmjprk32rh2";
buildDepends = [ mtl tagged ];
testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
buildTools = [ diffutils ];

View File

@ -2,12 +2,12 @@
cabal.mkDerivation (self: {
pname = "attempt";
version = "0.4.0";
sha256 = "0n7srd1gy1fa0q1qzizvdgmrc078jyx47115aw85vvl74vh9qyjy";
version = "0.4.0.1";
sha256 = "1gvq04ds62kk88r2210mxd1fggp6vf5p8j5hci9vqkkss1hy9rxh";
buildDepends = [ failure ];
meta = {
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;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];

View File

@ -1,16 +1,17 @@
{ cabal, aeson, attoparsec, blazeBuilder, caseInsensitive, conduit
, httpConduit, httpTypes, network, tagsoup, text, transformers
, unorderedContainers, xmlConduit
, httpConduit, httpTypes, monadControl, network, resourcet
, tagstreamConduit, text, transformers, unorderedContainers
, xmlConduit
}:
cabal.mkDerivation (self: {
pname = "authenticate";
version = "1.3.2.6";
sha256 = "12sgi6q6kajjhh8mns9nklxj0kwn32xs5kzi7wmw50shx0smnjrz";
version = "1.3.2.8";
sha256 = "1ylijkj32li9nm4x16d66h6a74q07m4v3n2dqm67by548wfyh1j9";
buildDepends = [
aeson attoparsec blazeBuilder caseInsensitive conduit httpConduit
httpTypes network tagsoup text transformers unorderedContainers
xmlConduit
httpTypes monadControl network resourcet tagstreamConduit text
transformers unorderedContainers xmlConduit
];
meta = {
homepage = "http://github.com/yesodweb/authenticate";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "basic-prelude";
version = "0.3.6.0";
sha256 = "1sm89mva8vkhqp230g965b0k4n3g0c8w4sfsad8m1wh434g3k732";
version = "0.3.7";
sha256 = "1lk4f41f226v7na1cw0c8y62lm3pgwmn4560g1wmhvyxcj7185q5";
buildDepends = [
hashable liftedBase ReadArgs safe systemFilepath text transformers
unorderedContainers vector

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "bytestring-lexing";
version = "0.4.3.1";
sha256 = "1n0sk1xqwkj4whp0gav7hwr33xqmwl3ylqfnqix8wbwz6xpg9ygn";
version = "0.4.3.2";
sha256 = "09ymg1n21668wn4harxg0cqlz98fz990bangpy99w2z7d6cwbc05";
buildTools = [ alex ];
meta = {
homepage = "http://code.haskell.org/~wren/";

View File

@ -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;
};
})

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "classy-prelude";
version = "0.8.1.1";
sha256 = "14iq0zdmw4f2i3c282hs89c4a763wcm7vn5n0f6kcvcpjgjyahgi";
version = "0.8.2";
sha256 = "1kvab1vns1mp0i0nyn0flg2m6f2sl8w1yr2c0x54172f20rdm5lv";
buildDepends = [
basicPrelude chunkedData enclosedExceptions hashable liftedBase
monoTraversable semigroups systemFilepath text time transformers

View File

@ -1,21 +1,21 @@
{ cabal, base16Bytestring, base64Bytestring, basicPrelude
, chunkedData, conduit, hspec, monoTraversable, mwcRandom
, primitive, silently, systemFileio, systemFilepath, text
, transformers, transformersBase, unixCompat, vector, void
{ cabal, base16Bytestring, base64Bytestring, chunkedData, conduit
, hspec, monoTraversable, mwcRandom, primitive, silently
, systemFileio, systemFilepath, text, transformers
, transformersBase, unixCompat, vector, void
}:
cabal.mkDerivation (self: {
pname = "conduit-combinators";
version = "0.2.3";
sha256 = "05sb1v6rciaj7cj6lxv6pf9ai0k3q6cvvflcb4a7q6ql9xr3j7pr";
version = "0.2.3.1";
sha256 = "078i0727nhy75y6bxav6sxr1gz9cq04nvskdnzwabljppd34dqg4";
buildDepends = [
base16Bytestring base64Bytestring chunkedData conduit
monoTraversable mwcRandom primitive systemFileio systemFilepath
text transformers transformersBase unixCompat vector void
];
testDepends = [
base16Bytestring base64Bytestring basicPrelude chunkedData hspec
monoTraversable mwcRandom silently text transformers vector
base16Bytestring base64Bytestring chunkedData hspec monoTraversable
mwcRandom silently systemFilepath text transformers vector
];
meta = {
homepage = "https://github.com/fpco/conduit-combinators";

View 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;
};
})

View File

@ -1,10 +1,13 @@
{ cabal, conduit, cryptohash, transformers }:
{ cabal, conduit, conduitExtra, cryptohash, resourcet, transformers
}:
cabal.mkDerivation (self: {
pname = "cryptohash-conduit";
version = "0.1.0";
sha256 = "08x45dy5crxc63gd4psryrzprz7lc5hbzjl23q56c3iqbvrx2r7w";
buildDepends = [ conduit cryptohash transformers ];
version = "0.1.1";
sha256 = "1kmlskgb0jx8hkzdncr24aqir9k1kyfcb2rypvkdld1yin4nslga";
buildDepends = [
conduit conduitExtra cryptohash resourcet transformers
];
meta = {
homepage = "http://github.com/vincenthz/hs-cryptohash-conduit";
description = "cryptohash conduit";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "cryptohash";
version = "0.11.2";
sha256 = "0az2p7lql1lchl85ca26b5sbvhqsv47daavyfqy84qmr3w3wyr28";
version = "0.11.4";
sha256 = "1laakkc1xzp2bmai0sfi86784wharqbyanlp1d1f1q6nj318by3y";
buildDepends = [ byteable ];
testDepends = [
byteable HUnit QuickCheck testFramework testFrameworkHunit

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "digestive-functors";
version = "0.7.0.0";
sha256 = "1zn8vn6xcmp4w39b0k33bp7zsxvnn8g8p26mch4r8ng9ldcb2y8h";
version = "0.7.1.0";
sha256 = "0ry0ircxs6ml4wdz6hrn3jnyhniwdnn1dn21imq3kv68jlhfn3by";
buildDepends = [ mtl text time ];
testDepends = [
HUnit mtl QuickCheck testFramework testFrameworkHunit

View File

@ -2,12 +2,12 @@
cabal.mkDerivation (self: {
pname = "failure";
version = "0.2.0.1";
sha256 = "05k62sb2xj4ddjwsbfldxkap7v5kmv04qzic4sszx5i3ykbf20fd";
version = "0.2.0.2";
sha256 = "0hvcsn7qx00613f23vvb3vjpjlcy0nfavsai9f6s3yvmyssk5kfv";
buildDepends = [ transformers ];
meta = {
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;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];

View 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;
};
})

View File

@ -8,8 +8,8 @@
cabal.mkDerivation (self: {
pname = "hakyll";
version = "4.4.3.2";
sha256 = "1n597q4pbdka7g06524j0zvjcjpv7fgf6mga1a0kfr012sf9cqz9";
version = "4.5.0.0";
sha256 = "19rmib508zcaada7xj0p84dbkjwzfiaxaszpmc763wlpx15azw8z";
isLibrary = true;
isExecutable = true;
buildDepends = [
@ -26,12 +26,6 @@ cabal.mkDerivation (self: {
testFrameworkHunit testFrameworkQuickcheck2 text time
];
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 = {
homepage = "http://jaspervdj.be/hakyll";
description = "A static website compiler library";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "hastache";
version = "0.5.1";
sha256 = "05lm7mjzc1hamxcj8akq06081bhp907hrjdkhas3wzm6ran6rwn3";
version = "0.6.0";
sha256 = "1z609mhsc875ba3k6mlmlqpmqlwgxpav2asnf83yzq1q7bfs0cxh";
buildDepends = [
blazeBuilder filepath ieee754 mtl syb text transformers utf8String
];

View File

@ -1,14 +1,15 @@
{ cabal, conduit, hspec, HUnit, resourcet, systemFilepath
, tagstreamConduit, text, transformers, xmlConduit, xmlTypes
{ cabal, conduit, conduitExtra, hspec, HUnit, resourcet
, systemFilepath, tagstreamConduit, text, transformers, xmlConduit
, xmlTypes
}:
cabal.mkDerivation (self: {
pname = "html-conduit";
version = "1.1.0.2";
sha256 = "12a5hb9sf4sd11sjhwwp84k8whkxs7hqfyni2hi247fii2ldkfax";
version = "1.1.0.4";
sha256 = "1bl6h38fvhiidzxly49l7jickcg0s4fy59m4cizfjarxll9cspwb";
buildDepends = [
conduit resourcet systemFilepath tagstreamConduit text transformers
xmlConduit xmlTypes
conduit conduitExtra resourcet systemFilepath tagstreamConduit text
transformers xmlConduit xmlTypes
];
testDepends = [ hspec HUnit xmlConduit ];
meta = {

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "http-client";
version = "0.2.2.3";
sha256 = "0li4mfw5lm0y0m3l3r7cbmhbch7ap9n2067jqw1l0qjm8s74nqkh";
version = "0.2.2.4";
sha256 = "19dymsi39m2m7i99xsmcl9gigqm6jhynnv0w8w230mq8vraq1mcw";
buildDepends = [
base64Bytestring blazeBuilder caseInsensitive cookie
dataDefaultClass deepseq failure httpTypes network publicsuffixlist

View File

@ -1,17 +1,19 @@
{ cabal, async, basicPrelude, blazeBuilder, caseInsensitive
, conduit, dataDefaultClass, hspec, httpClient, httpConduit
{ cabal, async, blazeBuilder, caseInsensitive, conduit
, conduitExtra, dataDefaultClass, hspec, httpClient, httpConduit
, httpTypes, liftedBase, monadControl, network, networkConduit
, resourcet, text, transformers, wai, waiLogger, warp, word8
, resourcet, streamingCommons, text, transformers, wai, waiLogger
, warp, word8
}:
cabal.mkDerivation (self: {
pname = "http-reverse-proxy";
version = "0.3.1.1";
sha256 = "02aksdkwhdxzc4kk7j3npbiqpm9px3yva0375mk1b1f2g552g5jj";
version = "0.3.1.4";
sha256 = "0j7k6njyp3qss08gja5p62zvqxdh7bpqfbzvkm23gdv8v1bgh5h6";
buildDepends = [
async basicPrelude blazeBuilder caseInsensitive conduit
async blazeBuilder caseInsensitive conduit conduitExtra
dataDefaultClass httpClient httpTypes liftedBase monadControl
network networkConduit resourcet text wai waiLogger word8
network networkConduit resourcet streamingCommons text transformers
wai waiLogger word8
];
testDepends = [
blazeBuilder conduit hspec httpConduit httpTypes liftedBase network

View File

@ -6,6 +6,7 @@ cabal.mkDerivation (self: {
sha256 = "02l1lhl2ajbm5f7zq363nlb21dpdg1m0qsy330arccmds7z9g7a2";
buildDepends = [ blazeBuilder caseInsensitive text ];
testDepends = [ blazeBuilder hspec QuickCheck text ];
jailbreak = true;
meta = {
homepage = "https://github.com/aristidb/http-types";
description = "Generic HTTP types for Haskell (for both client and server code)";

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "language-c-quote";
version = "0.7.6";
sha256 = "15sfasbrr9wzqkwv9xg9nvb3gnn4drkll3b3cappiyzkmawp2hkr";
version = "0.7.7";
sha256 = "0rj508hfv9xf30rfjhalz3yfb15vp4r4acdj8aahwfnbls2qb37v";
buildDepends = [
exceptionMtl exceptionTransformers filepath haskellSrcMeta
mainlandPretty mtl srcloc syb symbol

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "language-c";
version = "0.4.2";
sha256 = "07pf4v4n7kvr5inkhs24b7g55pmkk4k5ihi6s5dbc200l01wz133";
version = "0.4.3";
sha256 = "0y5yn0jaairqixxqx7c80z5y5mc6czshps7wghjci1s39mn9cjf6";
buildDepends = [ filepath syb ];
buildTools = [ alex happy ];
meta = {

View File

@ -1,5 +1,5 @@
{ cabal, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
, testFramework, testFrameworkHunit, utf8Light, utf8String
, testFramework, testFrameworkHunit, utf8Light, utf8String, alex
}:
cabal.mkDerivation (self: {
@ -11,7 +11,8 @@ cabal.mkDerivation (self: {
blazeBuilder Cabal HUnit mtl QuickCheck testFramework
testFrameworkHunit utf8Light utf8String
];
buildTools = [ happy ];
buildTools = [ happy alex ];
preConfigure = "rm -rv dist; $SHELL runalex.sh";
meta = {
homepage = "http://github.com/alanz/language-javascript";
description = "Parser for JavaScript";

View File

@ -6,8 +6,8 @@
cabal.mkDerivation (self: {
pname = "linear";
version = "1.9.1";
sha256 = "17jvqy2nbcra36fzkwbjkfwg6mjw804zd1i50mhbqwg9j7z4s5sb";
version = "1.10";
sha256 = "1wl0hb58znc3n5f5jv0wm6g21p080zldlq954n0lm8sjwmv39cdx";
buildDepends = [
adjunctions binary distributive hashable lens reflection
semigroupoids semigroups tagged transformers unorderedContainers

View File

@ -1,15 +1,16 @@
{ cabal, base64Bytestring, blazeBuilder, filepath, hspec, random
, text
, text, sendmail ? "sendmail"
}:
cabal.mkDerivation (self: {
pname = "mime-mail";
version = "0.4.4.1";
sha256 = "0jzbkrd62alvgyx9bkrzicz88hjjnnavpv6hl22cxnirz41h8hw0";
version = "0.4.4.2";
sha256 = "0s38xgv6kycnfahqi5dnrjn3wkaq35w87cv8p12pq0qq2x7dvawd";
buildDepends = [
base64Bytestring blazeBuilder filepath random text
];
testDepends = [ blazeBuilder hspec text ];
configureFlags = [ "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"${sendmail}\"" ];
meta = {
homepage = "http://github.com/snoyberg/mime-mail";
description = "Compose MIME email messages";

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "monad-logger";
version = "0.3.4.0";
sha256 = "16nrzms87klbs26rbaw4j8xal5k7glpbhg7r2x1m3gxbdhsp696n";
version = "0.3.4.1";
sha256 = "1i5192060svqhc1iv215b98hah6p29bzdqin6ng5qpq8d44hdnpm";
buildDepends = [
blazeBuilder conduit fastLogger liftedBase monadControl monadLoops
mtl resourcet stm stmChans text transformers transformersBase

View 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;
};
})

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "mono-traversable";
version = "0.4.0.3";
sha256 = "04g2ihk4n71zrz09si2k8j46y53i5vllps9xizgs0bmikmrgh29f";
version = "0.4.0.4";
sha256 = "1ikrdhr4f3755xim6j9db60a9y0mpdnljmck84qh47yk2axfp0n9";
buildDepends = [
comonad dlist dlistInstances hashable semigroupoids semigroups text
transformers unorderedContainers vector vectorAlgorithms

View 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 ];
};
})

View File

@ -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;
};
})

View File

@ -1,14 +1,15 @@
{ cabal, aeson, blazeBuilder, conduit, monadControl, persistent
, postgresqlLibpq, postgresqlSimple, text, time, transformers
, postgresqlLibpq, postgresqlSimple, resourcet, text, time
, transformers
}:
cabal.mkDerivation (self: {
pname = "persistent-postgresql";
version = "1.3.0.3";
sha256 = "00frqpv7wbksbjl714nhrian45p61kggxhpin9hawbwn2siwsg2m";
version = "1.3.0.5";
sha256 = "0abk38jzc7k93wrzn3pq90xj0mqln4nqrgzmmy0d3p4gmbzmnnia";
buildDepends = [
aeson blazeBuilder conduit monadControl persistent postgresqlLibpq
postgresqlSimple text time transformers
postgresqlSimple resourcet text time transformers
];
jailbreak = true;
meta = {

View File

@ -1,15 +1,16 @@
{ cabal, aeson, conduit, monadControl, monadLogger, persistent
, text, transformers
, resourcet, text, transformers
}:
cabal.mkDerivation (self: {
pname = "persistent-sqlite";
version = "1.3.0.3";
sha256 = "0b7dp2hiza02rnnph44rd2vls06jipmixi32icbijmcqk83hfglq";
version = "1.3.0.5";
sha256 = "05b7byc4z7mhni90cj2aan63f599wv0511zqbsm6kbylk1zpyizb";
isLibrary = true;
isExecutable = true;
buildDepends = [
aeson conduit monadControl monadLogger persistent text transformers
aeson conduit monadControl monadLogger persistent resourcet text
transformers
];
meta = {
homepage = "http://www.yesodweb.com/book/persistent";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "persistent-template";
version = "1.3.1.2";
sha256 = "1gdwwx55ihnqxgyw0wsx0pr4dcs2hdbp5xbnx6l1j03rn5x1sglq";
version = "1.3.1.3";
sha256 = "0q5ysv1r6p4mg79waq2g6ql11rap6znawkplddblpaa8lq9qalj6";
buildDepends = [
aeson monadControl monadLogger persistent text transformers
unorderedContainers

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: {
pname = "persistent";
version = "1.3.0.4";
sha256 = "09p7nf6dnjz83qp7invkmzcr55zglm0y54p8pb1y6acjpnw3glkl";
version = "1.3.0.6";
sha256 = "0rj5yi8nziym9cb9c9vw6vdjflf2yfz02i39p6dsdy084f1ivpk8";
buildDepends = [
aeson attoparsec base64Bytestring blazeHtml blazeMarkup conduit
liftedBase monadControl monadLogger pathPieces resourcePool

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "pool-conduit";
version = "0.1.2.1";
sha256 = "1mcx66xv1irxd66cfv23h4n7fplg5a0hyldlgk8km0k395mjw8k8";
version = "0.1.2.2";
sha256 = "1jg7kymr1v82xl9122q9fly385jhm1hr2406g35ydl9wnh4aaiw8";
buildDepends = [
monadControl resourcePool resourcet transformers
];

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "postgresql-simple";
version = "0.4.2.0";
sha256 = "0g31a7s2h9d6f3igvrddbr357sk4vabvg88mmvb194pps66y8zzn";
version = "0.4.2.1";
sha256 = "1547n7rh0gsrjaa8f9lc4diljpps09kdf0gkm0cjf1gk2kr7lh94";
buildDepends = [
aeson attoparsec blazeBuilder blazeTextual hashable postgresqlLibpq
scientific text time transformers uuid vector

View File

@ -1,13 +1,13 @@
{ cabal, conduit, controlMonadLoop, hspec, mtl, shakespeareText
, text
{ cabal, conduit, controlMonadLoop, hspec, mtl, shakespeare
, shakespeareText, text
}:
cabal.mkDerivation (self: {
pname = "process-conduit";
version = "1.0.0.1";
sha256 = "1b1bya316gxj3rgn7qpjmmcllgy9aac69rqw664sw1rnypnic780";
version = "1.0.0.2";
sha256 = "0rz18x7gy8w1h2xq0il49k515n0y3gpxnl7mfgkczc86965w7fzj";
buildDepends = [
conduit controlMonadLoop mtl shakespeareText text
conduit controlMonadLoop mtl shakespeare shakespeareText text
];
testDepends = [ conduit hspec ];
meta = {

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