Merge master into x-updates

This commit is contained in:
Vladimír Čunát 2013-12-02 21:41:16 +01:00
commit d09b722f77
270 changed files with 2961 additions and 1580 deletions

View file

@ -56,6 +56,7 @@
smironov = "Sergey Mironov <ierton@gmail.com>";
thammers = "Tobias Hammerschmidt <jawr@gmx.de>";
the-kenny = "Moritz Ulrich <moritz@tarn-vedra.de>";
tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
vcunat = "Vladimír Čunát <vcunat@gmail.com>";
viric = "Lluís Batlle i Rossell <viric@viric.name>";

View file

@ -68,8 +68,8 @@ rec {
# the first interface (i.e. the first network in its
# virtualisation.vlans option).
networking.extraHosts = flip concatMapStrings machines
(m: let config = (getAttr m nodes).config; in
optionalString (config.networking.primaryIPAddress != "")
(m': let config = (getAttr m' nodes).config; in
optionalString (m.first != m' && config.networking.primaryIPAddress != "")
("${config.networking.primaryIPAddress} " +
"${config.networking.hostName}\n"));

View file

@ -8,6 +8,7 @@
, extraArgs ? {}
, modules
, check ? true
, prefix ? []
}:
let extraArgs_ = extraArgs; pkgs_ = pkgs; system_ = system; in
@ -17,6 +18,7 @@ rec {
# Merge the option definitions in all modules, forming the full
# system configuration.
inherit (pkgs.lib.evalModules {
inherit prefix;
modules = modules ++ baseModules;
args = extraArgs;
check = check && options.environment.checkConfigurationOptions.value;
@ -48,7 +50,7 @@ rec {
let
system = if nixpkgsOptions.system != "" then nixpkgsOptions.system else system_;
nixpkgsOptions = (import ./eval-config.nix {
inherit system extraArgs modules;
inherit system extraArgs modules prefix;
# For efficiency, leave out most NixOS modules; they don't
# define nixpkgs.config, so it's pointless to evaluate them.
baseModules = [ ../modules/misc/nixpkgs.nix ];

View file

@ -46,7 +46,10 @@ in
before = [ "sysinit.target" "shutdown.target" ];
wantedBy = [ "sysinit.target" "multi-user.target" ];
restartTriggers = [ config.environment.etc."sysctl.d/nixos.conf".source ];
unitConfig.DefaultDependencies = false; # needed to prevent a cycle
unitConfig = {
DefaultDependencies = false; # needed to prevent a cycle
ConditionPathIsReadWrite = "/proc/sys/"; # prevent systemd-sysctl in containers
};
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;

View file

@ -107,6 +107,7 @@
redis = 96;
haproxy = 97;
mongodb = 98;
openldap = 99;
# When adding a uid, make sure it doesn't match an existing gid.
@ -194,6 +195,7 @@
amule = 90;
minidlna = 91;
haproxy = 92;
openldap = 93;
# When adding a gid, make sure it doesn't match an existing uid.

View file

@ -247,11 +247,11 @@
./system/boot/kexec.nix
./system/boot/loader/efi.nix
./system/boot/loader/generations-dir/generations-dir.nix
./system/boot/loader/gummiboot/gummiboot.nix
./system/boot/loader/raspberrypi/raspberrypi.nix
./system/boot/loader/grub/grub.nix
./system/boot/loader/grub/memtest.nix
./system/boot/loader/gummiboot/gummiboot.nix
./system/boot/loader/init-script/init-script.nix
./system/boot/loader/raspberrypi/raspberrypi.nix
./system/boot/luksroot.nix
./system/boot/modprobe.nix
./system/boot/shutdown.nix
@ -276,6 +276,7 @@
./tasks/scsi-link-power-management.nix
./tasks/swraid.nix
./testing/service-runner.nix
./virtualisation/containers.nix
./virtualisation/libvirtd.nix
#./virtualisation/nova.nix
./virtualisation/virtualbox-guest.nix

View file

@ -55,6 +55,7 @@ in
{ description = "Store Sound Card State";
wantedBy = [ "multi-user.target" ];
unitConfig.RequiresMountsFor = "/var/lib/alsa";
unitConfig.ConditionVirtualization = "!systemd-nspawn";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;

View file

@ -26,6 +26,16 @@ in
";
};
user = mkOption {
default = "openldap";
description = "User account under which slapd runs.";
};
group = mkOption {
default = "openldap";
description = "Group account under which slapd runs.";
};
extraConfig = mkOption {
default = "";
description = "
@ -49,10 +59,23 @@ in
after = [ "network.target" ];
preStart = ''
mkdir -p /var/run/slapd
chown -R ${cfg.user}:${cfg.group} /var/run/slapd
mkdir -p /var/db/openldap
chown -R ${cfg.user}:${cfg.group} /var/db/openldap
'';
serviceConfig.ExecStart = "${openldap}/libexec/slapd -d 0 -f ${configFile}";
serviceConfig.ExecStart = "${openldap}/libexec/slapd -u openldap -g openldap -d 0 -f ${configFile}";
};
};
users.extraUsers = optionalAttrs (cfg.user == "openldap") (singleton
{ name = "openldap";
group = "openldap";
uid = config.ids.uids.openldap;
});
users.extraGroups = optionalAttrs (cfg.group == "openldap") (singleton
{ name = "openldap";
gid = config.ids.gids.openldap;
});
};
}

View file

@ -30,6 +30,7 @@ let
hba_file = '${pkgs.writeText "pg_hba.conf" cfg.authentication}'
ident_file = '${pkgs.writeText "pg_ident.conf" cfg.identMap}'
log_destination = 'stderr'
port = ${toString cfg.port}
${cfg.extraConfig}
'';
@ -63,9 +64,9 @@ in
port = mkOption {
type = types.int;
default = "5432";
default = 5432;
description = ''
Port for PostgreSQL.
The port on which PostgreSQL listens.
'';
};
@ -105,7 +106,9 @@ in
type = types.bool;
default = false;
description = ''
Whether to run PostgreSQL with -i flag to enable TCP/IP connections.
Whether PostgreSQL should listen on all network interfaces.
If disabled, the database can only be accessed via its Unix
domain socket or via TCP connections to localhost.
'';
};

View file

@ -110,6 +110,7 @@ in
exec = "acpid --confdir ${acpiConfDir}";
unitConfig.ConditionVirtualization = "!systemd-nspawn";
unitConfig.ConditionPathExists = [ "/proc/acpi" ];
};

View file

@ -209,7 +209,7 @@ in
###### implementation
config = {
config = mkIf (!config.boot.isContainer) {
services.udev.extraRules = nixosRules;
@ -231,9 +231,16 @@ in
boot.extraModprobeConfig = "options firmware_class path=${config.hardware.firmware}";
system.activationScripts.clearHotplug =
system.activationScripts.udevd =
''
echo "" > /proc/sys/kernel/hotplug
# Regenerate the hardware database /var/lib/udev/hwdb.bin
# whenever systemd changes.
if [ ! -e /var/lib/udev/prev-systemd -o "$(readlink /var/lib/udev/prev-systemd)" != ${config.systemd.package} ]; then
echo "regenerating udev hardware database..."
${config.systemd.package}/bin/udevadm hwdb --update && ln -sfn ${config.systemd.package} /var/lib/udev/prev-systemd
fi
'';
};

View file

@ -32,6 +32,8 @@ with pkgs.lib;
path = [ pkgs.sysklogd ];
unitConfig.ConditionVirtualization = "!systemd-nspawn";
exec =
"klogd -c 1 -2 -n " +
"-k $(dirname $(readlink -f /run/booted-system/kernel))/System.map";

View file

@ -279,6 +279,7 @@ in
{ description = "Nix Daemon Socket";
wantedBy = [ "sockets.target" ];
before = [ "multi-user.target" ];
unitConfig.ConditionPathIsReadWrite = "/nix/var/nix/daemon-socket/";
socketConfig.ListenStream = "/nix/var/nix/daemon-socket/socket";
};
@ -290,6 +291,8 @@ in
environment = cfg.envVars // { CURL_CA_BUNDLE = "/etc/ssl/certs/ca-bundle.crt"; };
unitConfig.ConditionPathIsReadWrite = "/nix/var/nix/daemon-socket/";
serviceConfig =
{ ExecStart = "@${nix}/bin/nix-daemon nix-daemon --daemon";
KillMode = "process";
@ -331,10 +334,8 @@ in
''
# Set up secure multi-user builds: non-root users build through the
# Nix daemon.
if test "$USER" != root; then
if [ "$USER" != root -o ! -w /nix/var/nix/db ]; then
export NIX_REMOTE=daemon
else
export NIX_REMOTE=
fi
'';

View file

@ -114,6 +114,8 @@ in
path = [ dhcpcd pkgs.nettools pkgs.openresolv ];
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
serviceConfig =
{ Type = "forking";
PIDFile = "/run/dhcpcd.pid";

View file

@ -149,7 +149,7 @@ in
''
LogLevel info
SystemGroup root
SystemGroup root wheel
Listen localhost:631
Listen /var/run/cups/cups.sock

View file

@ -34,16 +34,24 @@ let
in ''
mkdir $out
if [ ! -f ${kernelPath} ]; then
echo "The bootloader cannot find the proper kernel image."
echo "(Expecting ${kernelPath})"
false
fi
# Containers don't have their own kernel or initrd. They boot
# directly into stage 2.
${optionalString (!config.boot.isContainer) ''
if [ ! -f ${kernelPath} ]; then
echo "The bootloader cannot find the proper kernel image."
echo "(Expecting ${kernelPath})"
false
fi
ln -s ${kernelPath} $out/kernel
ln -s ${config.system.modulesTree} $out/kernel-modules
ln -s ${kernelPath} $out/kernel
ln -s ${config.system.modulesTree} $out/kernel-modules
ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd
echo -n "$kernelParams" > $out/kernel-params
ln -s ${config.system.build.initialRamdisk}/initrd $out/initrd
ln -s ${config.hardware.firmware} $out/firmware
''}
echo "$activationScript" > $out/activate
substituteInPlace $out/activate --subst-var out
@ -56,9 +64,7 @@ let
ln -s ${config.system.build.etc}/etc $out/etc
ln -s ${config.system.path} $out/sw
ln -s "$systemd" $out/systemd
ln -s ${config.hardware.firmware} $out/firmware
echo -n "$kernelParams" > $out/kernel-params
echo -n "$configurationName" > $out/configuration-name
echo -n "systemd ${toString config.systemd.package.interfaceVersion}" > $out/init-interface-version
echo -n "$nixosVersion" > $out/nixos-version

View file

@ -145,7 +145,7 @@ in
###### implementation
config = {
config = mkIf (!config.boot.isContainer) {
system.build = { inherit kernel; };
@ -231,7 +231,10 @@ in
wantedBy = [ "sysinit.target" "multi-user.target" ];
before = [ "sysinit.target" "shutdown.target" ];
conflicts = [ "shutdown.target" ];
unitConfig.DefaultDependencies = "no";
unitConfig =
{ DefaultDependencies = false;
ConditionCapability = "CAP_SYS_MODULE";
};
serviceConfig =
{ Type = "oneshot";
RemainAfterExit = true;

View file

@ -44,7 +44,7 @@ in
boot.loader.grub = {
enable = mkOption {
default = true;
default = !config.boot.isContainer;
type = types.bool;
description = ''
Whether to enable the GNU GRUB boot loader.

View file

@ -66,7 +66,7 @@ with pkgs.lib;
###### implementation
config = {
config = mkIf (!config.boot.isContainer) {
environment.etc = singleton
{ source = pkgs.writeText "modprobe.conf"

View file

@ -6,20 +6,20 @@ with pkgs.lib;
# This unit saves the value of the system clock to the hardware
# clock on shutdown.
systemd.units."save-hwclock.service" =
{ wantedBy = [ "shutdown.target" ];
systemd.services.save-hwclock =
{ description = "Save Hardware Clock";
text =
''
[Unit]
Description=Save Hardware Clock
DefaultDependencies=no
Before=shutdown.target
wantedBy = [ "shutdown.target" ];
[Service]
Type=oneshot
ExecStart=${pkgs.utillinux}/sbin/hwclock --systohc ${if config.time.hardwareClockInLocalTime then "--localtime" else "--utc"}
'';
unitConfig = {
DefaultDependencies = false;
ConditionVirtualization = "!systemd-nspawn";
};
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.utillinux}/sbin/hwclock --systohc ${if config.time.hardwareClockInLocalTime then "--localtime" else "--utc"}";
};
};
boot.kernel.sysctl."kernel.poweroff_cmd" = "${config.systemd.package}/sbin/poweroff";

View file

@ -328,7 +328,7 @@ in
};
config = {
config = mkIf (!config.boot.isContainer) {
assertions = singleton
{ assertion = any (fs: fs.mountPoint == "/") (attrValues config.fileSystems);

View file

@ -210,6 +210,14 @@ in rec {
'';
};
preStop = mkOption {
type = types.lines;
default = "";
description = ''
Shell commands executed to stop the service.
'';
};
postStop = mkOption {
type = types.lines;
default = "";

View file

@ -170,7 +170,6 @@ let
systemd
];
environment.PATH = config.path;
environment.LD_LIBRARY_PATH = "";
}
(mkIf (config.preStart != "")
{ serviceConfig.ExecStartPre = makeJobScript "${name}-pre-start" ''
@ -190,6 +189,12 @@ let
${config.postStart}
'';
})
(mkIf (config.preStop != "")
{ serviceConfig.ExecStop = makeJobScript "${name}-pre-stop" ''
#! ${pkgs.stdenv.shell} -e
${config.preStop}
'';
})
(mkIf (config.postStop != "")
{ serviceConfig.ExecStopPost = makeJobScript "${name}-post-stop" ''
#! ${pkgs.stdenv.shell} -e
@ -529,6 +534,16 @@ in
'';
};
services.journald.extraConfig = mkOption {
default = "";
type = types.lines;
example = "Storage=volatile";
description = ''
Extra config options for systemd-journald. See man journald.conf
for available options.
'';
};
services.logind.extraConfig = mkOption {
default = "";
type = types.lines;
@ -580,6 +595,7 @@ in
ForwardToConsole=yes
TTYPath=${config.services.journald.console}
''}
${config.services.journald.extraConfig}
'';
environment.etc."systemd/logind.conf".text =
@ -599,13 +615,6 @@ in
mkdir -p /var/log/journal
chmod 0755 /var/log/journal
# Regenerate the hardware database /var/lib/udev/hwdb.bin
# whenever systemd changes.
if [ ! -e /var/lib/udev/prev-systemd -o "$(readlink /var/lib/udev/prev-systemd)" != ${systemd} ]; then
echo "regenerating udev hardware database..."
${systemd}/bin/udevadm hwdb --update && ln -sfn ${systemd} /var/lib/udev/prev-systemd
fi
# Make all journals readable to users in the wheel and adm
# groups, in addition to those in the systemd-journal group.
# Users can always read their own journals.

View file

@ -33,6 +33,8 @@ with pkgs.lib;
after = [ "systemd-modules-load.service" ];
wantedBy = [ "multi-user.target" ];
unitConfig.ConditionPathIsReadWrite = "/sys/devices/";
path = [ pkgs.cpufrequtils ];
preStart = ''

View file

@ -270,6 +270,8 @@ in
before = [ "network.target" ];
wantedBy = [ "network.target" ];
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
path = [ pkgs.iproute ];
serviceConfig.Type = "oneshot";

View file

@ -31,6 +31,8 @@ with pkgs.lib;
task = true;
unitConfig.ConditionPathIsReadWrite = "/sys/class/scsi_host";
script = ''
shopt -s nullglob
for x in /sys/class/scsi_host/host*/link_power_management_policy; do

View file

@ -0,0 +1,137 @@
{ config, pkgs, ... }:
with pkgs.lib;
{
options = {
boot.isContainer = mkOption {
type = types.bool;
default = false;
description = ''
Whether this NixOS machine is a lightweight container running
in another NixOS system.
'';
};
systemd.containers = mkOption {
type = types.attrsOf (types.submodule (
{ config, options, name, ... }:
{
options = {
root = mkOption {
type = types.path;
description = ''
The root directory of the container.
'';
};
config = mkOption {
description = ''
A specification of the desired configuration of this
container, as a NixOS module.
'';
};
path = mkOption {
type = types.path;
example = "/nix/var/nix/profiles/containers/webserver";
description = ''
As an alternative to specifying
<option>config</option>, you can specify the path to
the evaluated NixOS system configuration, typically a
symlink to a system profile.
'';
};
};
config = mkMerge
[ { root = mkDefault "/var/lib/containers/${name}";
}
(mkIf options.config.isDefined {
path = (import ../../lib/eval-config.nix {
modules =
let extraConfig =
{ boot.isContainer = true;
security.initialRootPassword = "!";
networking.hostName = mkDefault name;
};
in [ extraConfig config.config ];
prefix = [ "systemd" "containers" name ];
}).config.system.build.toplevel;
})
];
}));
default = {};
example = literalExample
''
{ webserver =
{ root = "/containers/webserver";
path = "/nix/var/nix/profiles/webserver";
};
database =
{ root = "/containers/database";
config =
{ config, pkgs, ... }:
{ services.postgresql.enable = true;
services.postgresql.package = pkgs.postgresql92;
};
};
}
'';
description = ''
A set of NixOS system configurations to be run as lightweight
containers. Each container appears as a service
<literal>container-<replaceable>name</replaceable></literal>
on the host system, allowing it to be started and stopped via
<command>systemctl</command> .
'';
};
};
config = {
systemd.services = mapAttrs' (name: container: nameValuePair "container-${name}"
{ description = "Container '${name}'";
wantedBy = [ "multi-user.target" ];
unitConfig.RequiresMountsFor = [ container.root ];
preStart =
''
mkdir -p -m 0755 ${container.root}/etc
if ! [ -e ${container.root}/etc/os-release ]; then
touch ${container.root}/etc/os-release
fi
'';
serviceConfig.ExecStart =
"${config.systemd.package}/bin/systemd-nspawn -M ${name} -D ${container.root} --bind-ro=/nix ${container.path}/init";
preStop =
''
pid="$(cat /sys/fs/cgroup/systemd/machine/${name}.nspawn/system/tasks 2> /dev/null)"
if [ -n "$pid" ]; then
# Send the RTMIN+3 signal, which causes the container
# systemd to start halt.target.
echo "killing container systemd, PID = $pid"
kill -RTMIN+3 $pid
# Wait for the container to exit. We can't let systemd
# do this because it will send a signal to the entire
# cgroup.
for ((n = 0; n < 180; n++)); do
if ! kill -0 $pid 2> /dev/null; then break; fi
sleep 1
done
fi
'';
}) config.systemd.containers;
};
}

View file

@ -101,6 +101,19 @@ in
mkdir -p /etc/$(dirname $i) -m 755
cp -fpd ${pkgs.libvirt}/etc/$i /etc/$i
done
# libvirtd puts the full path of the emulator binary in the machine
# config file. But this path can unfortunately be garbage collected
# while still being used by the virtual machine. So update the
# emulator path on each startup to something valid (re-scan $PATH).
for file in /etc/libvirt/qemu/*.xml; do
# get (old) emulator path from config file
emulator=$(grep "^[[:space:]]*<emulator>" "$file" | sed 's,^[[:space:]]*<emulator>\(.*\)</emulator>.*,\1,')
# get a (definitely) working emulator path by re-scanning $PATH
new_emulator=$(command -v $(basename "$emulator"))
# write back
sed -i "s,^[[:space:]]*<emulator>.*, <emulator>$new_emulator</emulator> <!-- WARNING: emulator dirname is auto-updated by the nixos libvirtd module -->," "$file"
done
''; # */
serviceConfig.ExecStart = ''@${pkgs.libvirt}/sbin/libvirtd libvirtd --config "${configFile}" --daemon --verbose'';

View file

@ -59,6 +59,12 @@
subtest "override-env-var", sub {
$machine->succeed('[ "$EDITOR" = emacs ]');
};
# Test whether hostname (and by extension nss_myhostname) works.
subtest "hostname", sub {
$machine->succeed('[ "`hostname`" = machine ]');
$machine->succeed('[ "`hostname -s`" = machine ]');
};
'';
}

View file

@ -0,0 +1,28 @@
{ stdenv, fetchurl, SDL, SDL_image, SDL_ttf, zlib, libpng, pkgconfig, lua5 }:
stdenv.mkDerivation rec {
version = "2.4.2035";
name = "grafx2-${version}";
src = fetchurl {
url = "https://grafx2.googlecode.com/files/${name}-src.tgz";
sha256 = "0svsy6rqmdj11b400c242i2ixihyz0hds0dgicqz6g6dcgmcl62q";
};
buildInputs = [ SDL SDL_image SDL_ttf libpng zlib lua5 pkgconfig ];
preBuild = "cd src";
preInstall = '' mkdir -p "$out" '';
installPhase = ''make install prefix="$out"'';
meta = {
description = "GrafX2 is a bitmap paint program inspired by the Amiga programs Deluxe Paint and Brilliance.";
homepage = http://code.google.co/p/grafx2/;
license = stdenv.lib.licenses.gpl2;
platforms = [ "x86_64-linux" "i686-linux" ];
maintainers = [ stdenv.lib.maintainers.zoomulator ];
};
}

View file

@ -1,5 +1,6 @@
{ stdenv, fetchurl, gettext, glib, gtk, json_c, lcms2, libpng
, makeWrapper, pkgconfig, pygtk, python, pythonPackages, scons, swig
{ stdenv, fetchurl, gettext, glib, gtk, hicolor_icon_theme, json_c
, lcms2, libpng , makeWrapper, pkgconfig, pygtk, python, pythonPackages
, scons, swig
}:
stdenv.mkDerivation rec {
@ -11,18 +12,21 @@ stdenv.mkDerivation rec {
sha256 = "0f7848hr65h909c0jkcx616flc0r4qh53g3kd1cgs2nr1pjmf3bq";
};
buildInputs = [
buildInputs = [
gettext glib gtk json_c lcms2 libpng makeWrapper pkgconfig pygtk
python scons swig
];
propagatedBuildInputs = [ pythonPackages.numpy ];
propagatedBuildInputs = [ hicolor_icon_theme pythonPackages.numpy ];
buildPhase = "scons prefix=$out";
installPhase = ''
scons prefix=$out install
wrapProgram $out/bin/mypaint --prefix PYTHONPATH : $PYTHONPATH
sed -i -e 's|/usr/bin/env python2.7|${python}/bin/python|' $out/bin/mypaint
wrapProgram $out/bin/mypaint \
--prefix PYTHONPATH : $PYTHONPATH \
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
'';
meta = with stdenv.lib; {

View file

@ -0,0 +1,33 @@
{ stdenv, fetchurl, xulrunner }:
stdenv.mkDerivation rec {
name = "pencil-2.0.5";
src = fetchurl {
url = "http://evoluspencil.googlecode.com/files/${name}.tar.gz";
sha256 = "0rn5nb08p8wph5s5gajkil6y06zgrm86p4gnjdgv76czx1fqazm0";
};
# Pre-built package
buildPhase = "true";
installPhase = ''
mkdir -p "$out"
cp -r usr/* "$out"
cp COPYING "$out/share/pencil"
sed -e "s|/usr/bin/xulrunner|${xulrunner}/bin/xulrunner|" \
-e "s|/usr/share/pencil|$out/share/pencil|" \
-i "$out/bin/pencil"
sed -e "s|/usr/bin/pencil|$out/bin/pencil|" \
-e "s|Icon=.*|Icon=$out/share/pencil/skin/classic/icon.svg|" \
-i "$out/share/applications/pencil.desktop"
'';
meta = with stdenv.lib; {
description = "GUI prototyping/mockup tool";
homepage = http://pencil.evolus.vn/;
license = licenses.gpl2; # Commercial license is also available
maintainers = [ maintainers.bjornfor ];
platforms = platforms.linux;
};
}

View file

@ -4,11 +4,11 @@
}:
stdenv.mkDerivation rec {
name = "calibre-1.11.0";
name = "calibre-1.13.0";
src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "17jp93wzq11yb89yg2x42f65yyx6v0hy6nhvrd42ig0vhk7sdh2n";
sha256 = "0j0l81jkjzd8n3ciqwxh8zxz945y594xjfsizp3cxjjfhj90aagj";
};
inherit python;

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gtk, gettext }:
stdenv.mkDerivation rec {
name = "girara-0.1.5";
name = "girara-0.1.9";
src = fetchurl {
url = "http://pwmt.org/projects/girara/download/${name}.tar.gz";
sha256 = "1hfi3jmx8ydvrqm3h6p6py2csavh7xx0223vxyca51kjl9mfnbld";
sha256 = "1kd20dalnpy07hajv0rkmkbsym4bpfxh0gby7j2mvkvl5qr3vx70";
};
buildInputs = [ pkgconfig gtk gettext ];

View file

@ -38,13 +38,6 @@ stdenv.mkDerivation (rec {
ln -s $out/{lib/urxvt,lib/perl5/site_perl}
'';
# we link the separate terminfo output to the main output
# as I don't think there's a usecase for wanting urxvt without its terminfo files
# and we don't want users to install them separately
postInstall = ''
ln -s $terminfo/share/terminfo $out/share
'';
meta = {
description = "A clone of the well-known terminal emulator rxvt";
homepage = "http://software.schmorp.de/pkg/rxvt-unicode.html";

View file

@ -2,14 +2,14 @@
let
name = "vifm-${version}";
version = "0.7.5";
version = "0.7.6";
in stdenv.mkDerivation {
inherit name;
src = fetchurl {
url="mirror://sourceforge/project/vifm/vifm/${name}.tar.bz2";
sha256 ="1r1d92zrff94rfx011dw2qsgdwd2ksqlz15la74d6h7sfcsnyd01";
sha256 ="03v50hmgfvrci5fz31zmklmp6ix7qpqnhvm6639wbk3g5mcrh5w6";
};
#phaseNames = ["doConfigure" "doMakeInstall"];

View file

@ -1,5 +1,5 @@
{ cabal, filepath, libXrandr, mtl, parsec, regexCompat, stm, time
, utf8String, X11, X11Xft
, utf8String, wirelesstools, X11, X11Xft
}:
cabal.mkDerivation (self: {
@ -11,8 +11,8 @@ cabal.mkDerivation (self: {
buildDepends = [
filepath mtl parsec regexCompat stm time utf8String X11 X11Xft
];
extraLibraries = [ libXrandr ];
configureFlags = "-fwith_xft";
extraLibraries = [ libXrandr wirelesstools ];
configureFlags = "-fwith_xft -fwith_iwlib";
meta = {
homepage = "http://projects.haskell.org/xmobar/";
description = "A Minimalistic Text Based Status Bar";

View file

@ -1,17 +1,15 @@
{ stdenv, fetchurl, pkgconfig, gtk, girara, gettext, docutils, file, makeWrapper }:
stdenv.mkDerivation rec {
version = "0.2.2";
version = "0.2.5";
name = "zathura-core-${version}";
src = fetchurl {
url = "http://pwmt.org/projects/zathura/download/zathura-${version}.tar.gz";
sha256 = "1ja2j9ygymr259fxf02j1vkvalypac48gpadq8fn3qbclxxj61k5";
sha256 = "1lw9q0x4b7x6z86hwgs93f8srimd0sj8fwg91185f63yz9g800fr";
};
buildInputs = [ pkgconfig gtk girara gettext makeWrapper ];
buildInputs = [ pkgconfig file gtk girara gettext makeWrapper ];
# Bug in zathura build system: we should remove empty manfiles in order them
# to be compiled properly

View file

@ -3,13 +3,19 @@
rec {
inherit (pkgs) stdenv;
zathura_core = callPackage ./core { };
zathura_core = callPackage ./core {
gtk = pkgs.gtk3;
};
zathura_pdf_poppler = callPackage ./pdf-poppler { };
zathura_djvu = callPackage ./djvu { };
zathura_djvu = callPackage ./djvu {
gtk = pkgs.gtk3;
};
zathura_ps = callPackage ./ps { };
zathura_ps = callPackage ./ps {
gtk = pkgs.gtk3;
};
zathuraWrapper = stdenv.mkDerivation {

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gtk, zathura_core, girara, djvulibre, gettext }:
stdenv.mkDerivation rec {
name = "zathura-djvu-0.2.1";
name = "zathura-djvu-0.2.3";
src = fetchurl {
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
sha256 = "d8bb3c9e30244a0733e49740ee2dd099ce39fa16f2c320af27a0c09d9a25bcc3";
sha256 = "12gd8kb0al5mknh4rlvxzgzwz3vhjggqjh8ws27phaq14paq4vn1";
};
buildInputs = [ pkgconfig djvulibre gettext zathura_core gtk girara ];

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, pkgconfig, zathura_core, girara, poppler, gettext }:
stdenv.mkDerivation rec {
version = "0.2.2";
version = "0.2.4";
name = "zathura-pdf-poppler-${version}";
src = fetchurl {
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
sha256 = "0px59f0bnmb9992n3c9iyzcwd6w7vg8ga069vc8qj4726ljml4c7";
sha256 = "1x1n21naixb87g1knznjfjfibazzwbn1cv7d42kxgwlnf1p1wbzm";
};
buildInputs = [ pkgconfig poppler gettext zathura_core girara ];

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, gtk, zathura_core, girara, libspectre, gettext }:
stdenv.mkDerivation rec {
name = "zathura-ps-0.2.0";
name = "zathura-ps-0.2.2";
src = fetchurl {
url = "http://pwmt.org/projects/zathura/plugins/download/${name}.tar.gz";
sha256 = "717eda01213b162421b6b52f29d6b981edc302fddf351ccb2c093b6842751414";
sha256 = "1a6ps5v1wk18qvslbkjln6w8wfzzr6fi13ls96vbdc03vdhn4m76";
};
buildInputs = [ pkgconfig libspectre gettext zathura_core gtk girara ];

View file

@ -14,9 +14,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
version = "1.1.70";
sha256 = if stdenv.system == "x86_64-linux" then "1hnyncq5439fxn1q8dkzcg2alxjkanr4q4pgqqf3nngz4cdar5vi"
else if stdenv.system == "i686-linux" then "1ijdmzl8bnb4k99vrjn5gd31hy64p9wiyxw5wc5gbpgap191h5i5"
version = "1.2.82";
sha256 = if stdenv.system == "x86_64-linux" then "0cqrscav57xwz7rag6wy06xw6z7ca97xailprgg6jdjv4pnc91ra"
else if stdenv.system == "i686-linux" then "1b9rnfk0wkhj1zybvfqwgd9dcqnxwdnp7m0vf6lhrgi75cydj7is"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
in stdenv.mkDerivation {

View file

@ -46,16 +46,17 @@ let
prePatch = "patchShebangs .";
patches = singleton (
if versionOlder version "31.0.0.0"
then ./sandbox_userns_30.patch
else ./sandbox_userns_31.patch
);
patches = singleton ./sandbox_userns_31.patch;
postPatch = ''
sed -i -r -e 's/-f(stack-protector)(-all)?/-fno-\1/' build/common.gypi
'' + (if versionOlder version "32.0.0.0" then ''
sed -i -e 's|/usr/bin/gcc|gcc|' third_party/WebKit/Source/core/core.gypi
'' + optionalString useOpenSSL ''
'' else ''
sed -i -e 's|/usr/bin/gcc|gcc|' \
third_party/WebKit/Source/build/scripts/scripts.gypi \
third_party/WebKit/Source/build/scripts/preprocessor.pm
'') + optionalString useOpenSSL ''
cat $opensslPatches | patch -p1 -d third_party/openssl/openssl
'';

View file

@ -1,293 +0,0 @@
commit 41510de6ae32e6161073992bd1243f7f33148a06
Author: aszlig <aszlig@redmoonstudios.org>
Date: Thu May 16 14:17:56 2013 +0200
zygote: Add support for user namespaces on Linux.
The implementation is done by patching the Zygote host to execute the sandbox
binary with CLONE_NEWUSER and setting the uid and gid mapping so that the child
process is using uid 0 and gid 0 which map to the current user of the parent.
Afterwards, the sandbox will continue as if it was called as a setuid binary.
In addition, this adds new_user_namespace as an option in process_util in order
to set the UID and GID mapping correctly. The reason for this is that just
passing CLONE_NEWUSER to clone_flags doesn't help in LaunchProcess(), because
without setting the mappings exec*() will clear the process's capability sets.
If the kernel doesn't support unprivileged user namespaces and the sandbox
binary doesn't have the setuid flag, the Zygote main process will run without a
sandbox. This is to mimic the behaviour if no SUID sandbox binary path is set.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
diff --git a/base/process/launch.h b/base/process/launch.h
index 45b1053..ce71418 100644
--- a/base/process/launch.h
+++ b/base/process/launch.h
@@ -51,6 +51,7 @@ struct LaunchOptions {
new_process_group(false)
#if defined(OS_LINUX)
, clone_flags(0)
+ , new_user_namespace(false)
#endif // OS_LINUX
#if defined(OS_CHROMEOS)
, ctrl_terminal_fd(-1)
@@ -125,6 +126,9 @@ struct LaunchOptions {
#if defined(OS_LINUX)
// If non-zero, start the process using clone(), using flags as provided.
int clone_flags;
+
+ // If true, start the process in a new user namespace.
+ bool new_user_namespace;
#endif // defined(OS_LINUX)
#if defined(OS_CHROMEOS)
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc
index 52e149c..312f835 100644
--- a/base/process/launch_posix.cc
+++ b/base/process/launch_posix.cc
@@ -37,6 +37,13 @@
#include "base/threading/platform_thread.h"
#include "base/threading/thread_restrictions.h"
+#if defined(OS_LINUX)
+#include <sched.h>
+#if !defined(CLONE_NEWUSER)
+#define CLONE_NEWUSER 0x10000000
+#endif
+#endif
+
#if defined(OS_CHROMEOS)
#include <sys/ioctl.h>
#endif
@@ -416,13 +423,23 @@ bool LaunchProcess(const std::vector<std::string>& argv,
pid_t pid;
#if defined(OS_LINUX)
- if (options.clone_flags) {
+ int map_pipe_fd[2];
+ int flags = options.clone_flags;
+
+ if (options.new_user_namespace) {
+ flags |= CLONE_NEWUSER;
+ if (pipe(map_pipe_fd) < 0) {
+ DPLOG(ERROR) << "user namespace pipe";
+ return false;
+ }
+ }
+
+ if (options.clone_flags || options.new_user_namespace) {
// Signal handling in this function assumes the creation of a new
// process, so we check that a thread is not being created by mistake
// and that signal handling follows the process-creation rules.
- RAW_CHECK(
- !(options.clone_flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
- pid = syscall(__NR_clone, options.clone_flags, 0, 0, 0);
+ RAW_CHECK(!(flags & (CLONE_SIGHAND | CLONE_THREAD | CLONE_VM)));
+ pid = syscall(__NR_clone, flags, 0, 0, 0);
} else
#endif
{
@@ -440,6 +457,21 @@ bool LaunchProcess(const std::vector<std::string>& argv,
} else if (pid == 0) {
// Child process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // Close the write end of the pipe so we get an EOF when the parent closes
+ // the FD. This is to avoid race conditions when the UID/GID mappings are
+ // written _after_ execvp().
+ close(map_pipe_fd[1]);
+
+ char dummy;
+ if (HANDLE_EINTR(read(map_pipe_fd[0], &dummy, 1)) != 0) {
+ RAW_LOG(ERROR, "Unexpected input in uid/gid mapping pipe.");
+ _exit(127);
+ }
+ }
+#endif
+
// DANGER: fork() rule: in the child, if you don't end up doing exec*(),
// you call _exit() instead of exit(). This is because _exit() does not
// call any previously-registered (in the parent) exit handlers, which
@@ -555,6 +587,40 @@ bool LaunchProcess(const std::vector<std::string>& argv,
_exit(127);
} else {
// Parent process
+#if defined(OS_LINUX)
+ if (options.new_user_namespace) {
+ // We need to write UID/GID mapping here to map the current user outside
+ // the namespace to the root user inside the namespace in order to
+ // correctly "fool" the child process.
+ char buf[256];
+ int map_fd, map_len;
+
+ snprintf(buf, sizeof(buf), "/proc/%d/uid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", geteuid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to uid_map.");
+ }
+ close(map_fd);
+
+ snprintf(buf, sizeof(buf), "/proc/%d/gid_map", pid);
+ map_fd = open(buf, O_RDWR);
+ DPCHECK(map_fd >= 0);
+ snprintf(buf, sizeof(buf), "0 %d 1", getegid());
+ map_len = strlen(buf);
+ if (write(map_fd, buf, map_len) != map_len) {
+ RAW_LOG(WARNING, "Can't write to gid_map.");
+ }
+ close(map_fd);
+
+ // Close the pipe on the parent, so the child can continue doing the
+ // execvp() call.
+ close(map_pipe_fd[1]);
+ }
+#endif
+
if (options.wait) {
// While this isn't strictly disk IO, waiting for another process to
// finish is the sort of thing ThreadRestrictions is trying to prevent.
diff --git a/content/browser/zygote_host/zygote_host_impl_linux.cc b/content/browser/zygote_host/zygote_host_impl_linux.cc
index bb84e62..bce0d18 100644
--- a/content/browser/zygote_host/zygote_host_impl_linux.cc
+++ b/content/browser/zygote_host/zygote_host_impl_linux.cc
@@ -119,25 +119,31 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
sandbox_binary_ = sandbox_cmd.c_str();
- // A non empty sandbox_cmd means we want a SUID sandbox.
- using_suid_sandbox_ = !sandbox_cmd.empty();
+ bool userns_sandbox = false;
+ const std::vector<std::string> cmd_line_unwrapped(cmd_line.argv());
- if (using_suid_sandbox_) {
+ if (!sandbox_cmd.empty()) {
struct stat st;
if (stat(sandbox_binary_.c_str(), &st) != 0) {
LOG(FATAL) << "The SUID sandbox helper binary is missing: "
<< sandbox_binary_ << " Aborting now.";
}
- if (access(sandbox_binary_.c_str(), X_OK) == 0 &&
- (st.st_uid == 0) &&
- (st.st_mode & S_ISUID) &&
- (st.st_mode & S_IXOTH)) {
+ if (access(sandbox_binary_.c_str(), X_OK) == 0) {
+ using_suid_sandbox_ = true;
+
cmd_line.PrependWrapper(sandbox_binary_);
scoped_ptr<sandbox::SetuidSandboxClient>
sandbox_client(sandbox::SetuidSandboxClient::Create());
sandbox_client->SetupLaunchEnvironment();
+
+ if (!((st.st_uid == 0) &&
+ (st.st_mode & S_ISUID) &&
+ (st.st_mode & S_IXOTH))) {
+ userns_sandbox = true;
+ sandbox_client->SetNoSuid();
+ }
} else {
LOG(FATAL) << "The SUID sandbox helper binary was found, but is not "
"configured correctly. Rather than run without sandboxing "
@@ -161,7 +167,19 @@ void ZygoteHostImpl::Init(const std::string& sandbox_cmd) {
base::ProcessHandle process = -1;
base::LaunchOptions options;
options.fds_to_remap = &fds_to_map;
+ if (userns_sandbox)
+ options.new_user_namespace = true;
base::LaunchProcess(cmd_line.argv(), options, &process);
+
+ if (process == -1 && userns_sandbox) {
+ LOG(ERROR) << "User namespace sandbox failed to start, running without "
+ << "sandbox! You need at least kernel 3.8.0 with CONFIG_USER_NS "
+ << "enabled in order to use the sandbox without setuid bit.";
+ using_suid_sandbox_ = false;
+ options.new_user_namespace = false;
+ base::LaunchProcess(cmd_line_unwrapped, options, &process);
+ }
+
CHECK(process != -1) << "Failed to launch zygote process";
if (using_suid_sandbox_) {
diff --git a/content/zygote/zygote_main_linux.cc b/content/zygote/zygote_main_linux.cc
index 1f0e9f5..ade5aab 100644
--- a/content/zygote/zygote_main_linux.cc
+++ b/content/zygote/zygote_main_linux.cc
@@ -420,6 +420,13 @@ static bool EnterSandbox(sandbox::SetuidSandboxClient* setuid_sandbox,
*has_started_new_init = true;
}
+ // Don't set non-dumpable, as it causes trouble when the host tries to find
+ // the zygote process (XXX: Not quite sure why this happens with user
+ // namespaces). Fortunately, we also have the seccomp filter sandbox which
+ // should disallow the use of ptrace.
+ if (setuid_sandbox->IsNoSuid())
+ return true;
+
#if !defined(OS_OPENBSD)
// Previously, we required that the binary be non-readable. This causes the
// kernel to mark the process as non-dumpable at startup. The thinking was
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.cc b/sandbox/linux/suid/client/setuid_sandbox_client.cc
index 34231d4..36e3201 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.cc
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.cc
@@ -166,6 +166,10 @@ bool SetuidSandboxClient::IsInNewNETNamespace() const {
return env_->HasVar(kSandboxNETNSEnvironmentVarName);
}
+bool SetuidSandboxClient::IsNoSuid() const {
+ return env_->HasVar(kSandboxNoSuidVarName);
+}
+
bool SetuidSandboxClient::IsSandboxed() const {
return sandboxed_;
}
@@ -175,5 +179,9 @@ void SetuidSandboxClient::SetupLaunchEnvironment() {
SetSandboxAPIEnvironmentVariable(env_);
}
+void SetuidSandboxClient::SetNoSuid() {
+ env_->SetVar(kSandboxNoSuidVarName, "1");
+}
+
} // namespace sandbox
diff --git a/sandbox/linux/suid/client/setuid_sandbox_client.h b/sandbox/linux/suid/client/setuid_sandbox_client.h
index a9f6536..2e8113a 100644
--- a/sandbox/linux/suid/client/setuid_sandbox_client.h
+++ b/sandbox/linux/suid/client/setuid_sandbox_client.h
@@ -39,6 +39,8 @@ class SetuidSandboxClient {
bool IsInNewPIDNamespace() const;
// Did the setuid helper create a new network namespace ?
bool IsInNewNETNamespace() const;
+ // Is sandboxed without SUID binary ?
+ bool IsNoSuid() const;
// Are we done and fully sandboxed ?
bool IsSandboxed() const;
@@ -46,6 +48,8 @@ class SetuidSandboxClient {
// helper.
void SetupLaunchEnvironment();
+ void SetNoSuid();
+
private:
// Holds the environment. Will never be NULL.
base::Environment* env_;
diff --git a/sandbox/linux/suid/common/sandbox.h b/sandbox/linux/suid/common/sandbox.h
index aad4ff8..bd710d5 100644
--- a/sandbox/linux/suid/common/sandbox.h
+++ b/sandbox/linux/suid/common/sandbox.h
@@ -18,6 +18,7 @@ static const char kAdjustLowMemMarginSwitch[] = "--adjust-low-mem";
static const char kSandboxDescriptorEnvironmentVarName[] = "SBX_D";
static const char kSandboxHelperPidEnvironmentVarName[] = "SBX_HELPER_PID";
+static const char kSandboxNoSuidVarName[] = "SBX_NO_SUID";
static const long kSUIDSandboxApiNumber = 1;
static const char kSandboxEnvironmentApiRequest[] = "SBX_CHROME_API_RQ";

View file

@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
dev = {
version = "32.0.1671.3";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1671.3.tar.xz";
sha256 = "0bv86ig3mrd95zh78880bcyh9b8w46s7slxq3mwwmrmqp0s8qaq0";
version = "33.0.1712.4";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-33.0.1712.4.tar.xz";
sha256 = "1c1m0y3nnz2lclqi21j6hgqmb46p1hv7c22zz9fn7dax7jkimydk";
};
beta = {
version = "31.0.1650.34";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1650.34.tar.xz";
sha256 = "0c73kvp09cmq4x42rcf45v0mnbyb8rcyi5i4pj0pvfn451vbngdq";
version = "32.0.1700.19";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-32.0.1700.19.tar.xz";
sha256 = "0d0kgy160pyg472ka43gxk7n09pqhhs9nd93jyxrp9qsyllfc425";
};
stable = {
version = "30.0.1599.114";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-30.0.1599.114.tar.xz";
sha256 = "0q5pq8bj4y0c7hd121db1fa9g3apkpkhb6cf14ag7abgrda2pzw2";
version = "31.0.1650.57";
url = "http://commondatastorage.googleapis.com/chromium-browser-official/chromium-31.0.1650.57.tar.xz";
sha256 = "1xv7frf47hhvqm6f3n2l308yfrs4d8ri70q6pndx7hslhyiixzl9";
};
}

View file

@ -25,9 +25,9 @@ let
else if stdenv.system == "i686-linux" then "ld-linux.so.2"
else throw "Dropbox client for: ${stdenv.system} not supported!";
version = "2.4.3";
sha256 = if stdenv.system == "x86_64-linux" then "0g8iqgc18qbw8fvdjf0fhbal34rvwr5izrf5acfzqjg99dgih81r"
else if stdenv.system == "i686-linux" then "1nhmk319whj6cil6wg9hrfln9bxin3fnf6sxb0zg2ycfpnnqi0la"
version = "2.4.7";
sha256 = if stdenv.system == "x86_64-linux" then "08fh0zx9q83dvivnbx5zr1cwb69ihhlx9mkbd3ikynk1wd8df8n8"
else if stdenv.system == "i686-linux" then "0rhblpahg2axglpi8iavsglffw83rj71qy113wj2dh6q72124j2h"
else throw "Dropbox client for: ${stdenv.system} not supported!";
# relative location where the dropbox libraries are stored

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, sqlite, curl, pkgconfig, libxml2, stfl, json-c-0-11, ncurses
{ stdenv, fetchgit, sqlite, curl, pkgconfig, libxml2, stfl, json-c-0-11, ncurses
, gettext, libiconvOrEmpty, makeWrapper, perl }:
stdenv.mkDerivation rec {
name = "newsbeuter-dev-20131103";
name = "newsbeuter-dev-20131118";
src = fetchurl {
url = "https://github.com/akrennmair/newsbeuter/archive/8abefa3efb5e6d70c32bac9e068248e98616d6ec.tar.gz";
sha256 = "1pfkr4adm7rxwq44hpxwblw6gg8vd0frsi6szvhmzkpn5qmnpwpg";
src = fetchgit {
url = "https://github.com/akrennmair/newsbeuter.git";
rev = "18b73f7d44a99a698d4878fe7d226f55842132c2";
};
buildInputs

View file

@ -1,23 +1,34 @@
{ stdenv, fetchurl, zlib, glib, libpng, freetype, xorg, fontconfig, alsaLib }:
{ stdenv, fetchurl, zlib, glib, libpng, freetype, xorg, fontconfig, alsaLib,
qt4, pulseaudio ? null }:
let
version = "3.0.13.1";
arch = if stdenv.is64bit then "amd64" else "x86";
libDir = if stdenv.is64bit then "lib64" else "lib";
deps =
[ zlib glib libpng freetype xorg.libSM xorg.libICE xorg.libXrender
xorg.libXrandr xorg.libXfixes xorg.libXcursor xorg.libXinerama
fontconfig xorg.libXext xorg.libX11 alsaLib
fontconfig xorg.libXext xorg.libX11 alsaLib qt4 pulseaudio
];
in
stdenv.mkDerivation {
name = "teamspeak-client-3.0.0-beta35";
name = "teamspeak-client-${version}";
src = fetchurl {
url = http://ftp.4players.de/pub/hosted/ts3/releases/beta-35/TeamSpeak3-Client-linux_amd64-3.0.0-beta35.run;
sha256 = "0vygsvjs11lr5lv4x7awv7hvkycvmm9qs2vklfjs91w3f434cmrx";
urls = [
"http://dl.4players.de/ts/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
"http://teamspeak.gameserver.gamed.de/ts3/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
"http://files.teamspeak-services.com/releases/${version}/TeamSpeak3-Client-linux_${arch}-${version}.run"
];
sha256 = if stdenv.is64bit
then "0mj8vpsnv906n3wgjwhiby5gk26jr5jbd94swmsf0s9kqwhsj6i1"
else "1hlw7lc0nl1mrsyd052s6ws64q5aabnw6qpv8mrdxb3hyp7g2qh1";
};
unpackPhase =
@ -28,22 +39,27 @@ stdenv.mkDerivation {
buildPhase =
''
ls -l
for i in ts3client_linux_*; do
echo "patching $i..."
patchelf \
--interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_GCC/nix-support/orig-gcc)/${libDir} \
--force-rpath \
$i
done
mv ts3client_linux_${arch} ts3client
echo "patching ts3client..."
patchelf \
--interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \
--set-rpath ${stdenv.lib.makeLibraryPath deps}:$(cat $NIX_GCC/nix-support/orig-gcc)/${libDir} \
--force-rpath \
ts3client
'';
installPhase =
''
# Delete unecessary libraries - these are provided by nixos.
rm *.so.*
# Install files.
mkdir -p $out/lib/teamspeak
mv * $out/lib/teamspeak/
# Make a symlink to the binary from bin.
mkdir -p $out/bin/
ln -s $out/lib/teamspeak/ts3client $out/bin/ts3client
'';
dontStrip = true;
@ -53,6 +69,7 @@ stdenv.mkDerivation {
description = "The TeamSpeak voice communication tool";
homepage = http://teamspeak.com/;
license = "http://www.teamspeak.com/?page=downloads&type=ts3_linux_client_latest";
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -1,10 +1,10 @@
{ fetchurl, stdenv, ant }:
stdenv.mkDerivation rec {
name = "jmeter-2.9";
name = "jmeter-2.10";
src = fetchurl {
url = "http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-jmeter-2.9.tgz";
sha256 = "14r3zn910m97jqrf6k5c4lwy214snaap2242qg76h65zk9qr20ni";
url = "http://ftp.unicamp.br/pub/apache//jmeter/binaries/apache-${name}.tgz";
sha256 = "1ygm0h02sllh4mfl5imj46v80wnbs1x7n88gfjm523ixmgsa0fvy";
};
installPhase = ''

View file

@ -15,22 +15,16 @@ assert sslSupport -> openssl != null;
assert saslSupport -> cyrus_sasl != null;
let
gpgmePatch = fetchurl {
# Solution for gpgme >= 1.2: http://dev.mutt.org/trac/ticket/3300
url = "http://dev.mutt.org/trac/raw-attachment/ticket/3300/mutt-1.5.21-gpgme-init.patch";
sha256 = "1qa1c8gns4q3as1h2lk3x4di2k3hr804ar7xlc6xh9r0zjhzmlk4";
};
version = "1.5.22";
in
stdenv.mkDerivation rec {
name = "mutt-1.5.21";
name = "mutt-${version}";
src = fetchurl {
url = "ftp://ftp.mutt.org/mutt/devel/${name}.tar.gz";
sha256 = "1864cwz240gh0zy56fb47qqzwyf6ghg01037rb4p2kqgimpg6h91";
sha256 = "19zk81spnb0gc8y5mwmcfn33g77wv1xz5bmgic8aan07xn8fislg";
};
patches = [ (if gpgmeSupport then gpgmePatch else null) ];
buildInputs = [
ncurses which perl
(if headerCache then gdbm else null)
@ -58,8 +52,12 @@ stdenv.mkDerivation rec {
(if gpgmeSupport then "--enable-gpgme" else "--disable-gpgme")
];
meta = {
meta = with stdenv.lib; {
description = "A small but very powerful text-based mail client";
homepage = http://www.mutt.org;
license = "GPLv2+";
platforms = platforms.unix;
maintainers = with maintainers; [ the-kenny ];
};
}

View file

@ -3,11 +3,11 @@
}:
stdenv.mkDerivation rec {
name = "notmuch-0.15.2";
name = "notmuch-0.16";
src = fetchurl {
url = "http://notmuchmail.org/releases/${name}.tar.gz";
sha256 = "03cwylm0y9xld0hn753v0hn62f96nagdmzxv8jlz8vdbh9iszs56";
sha256 = "0i7k85lfp9l0grmq7cvai2f3pw15jcrhcp96mmamr15y2pn2syg7";
};
buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ];

View file

@ -18,6 +18,9 @@ stdenv.mkDerivation rec {
libnotify
];
preFixup = ''
rm $out/share/icons/hicolor/icon-theme.cache'';
meta = {
description = "A GTK-based news feed agregator";
homepage = http://lzone.de/liferea/;

View file

@ -4,14 +4,14 @@
, makeDesktopItem
}:
let version = "1.8.7"; in
let version = "1.8.11"; in
stdenv.mkDerivation {
name = "wireshark-${version}";
src = fetchurl {
url = "mirror://sourceforge/wireshark/wireshark-${version}.tar.bz2";
sha256 = "0hm8zisy5dg7sfhh7rvgnpffq2qcw0syd8k5kns8j0j13sf44zjw";
sha256 = "1nwgizs9z1dalicpp2fd9pqafidy49j0v3d1rml0spfqrkbjpfpw";
};
buildInputs =

View file

@ -1,15 +1,15 @@
{ stdenv, fetchgit, cmake, boost, gmp, mpfr, libedit, python, texinfo }:
let
rev = "0ec4291";
rev = "0e5867bc5c";
in
stdenv.mkDerivation {
name = "ledger3-2013.08.${rev}";
name = "ledger3-2013.11.${rev}";
src = fetchgit {
url = "https://github.com/ledger/ledger.git";
inherit rev;
sha256 = "1y4rcbx8y2fxkdc7i06n1i5jf3cq05bvzpb8498mis2gwfmkw470";
sha256 = "16aa63z24rp5vin7al8b6nzdi4kqpawbzvh148wfr2wj60vdb1n5";
};
buildInputs = [ cmake boost gmp mpfr libedit python texinfo ];

View file

@ -3,11 +3,11 @@ let
s = # Generated upstream information
rec {
baseName="ekrhyper";
version="1_4_30072013";
version="1_4_20112013";
name="${baseName}-${version}";
hash="0ashsblm477r7dmq9f33wajkbr29rbyyc919mifdgrrdy6zlc663";
url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_30072013.tar.gz";
sha256="0ashsblm477r7dmq9f33wajkbr29rbyyc919mifdgrrdy6zlc663";
hash="08qrsahlgqq29zyrcc8435bymj3jvxaailbgjy47jzj1ki2i0vgm";
url="http://userpages.uni-koblenz.de/~bpelzer/ekrhyper/ekrh_1_4_20112013.tar.gz";
sha256="08qrsahlgqq29zyrcc8435bymj3jvxaailbgjy47jzj1ki2i0vgm";
};
buildInputs = [
ocaml perl

View file

@ -2,32 +2,33 @@
, caseInsensitive, clientsession, cryptoApi, cryptohash, curl
, dataDefault, dataenc, DAV, dbus, dlist, dns, editDistance
, extensibleExceptions, feed, filepath, git, gnupg1, gnutls, hamlet
, hinotify, hS3, hslogger, HTTP, httpConduit, httpTypes, HUnit
, IfElse, json, lsof, MissingH, MonadCatchIOTransformers
, monadControl, mtl, network, networkInfo, networkMulticast
, networkProtocolXmpp, openssh, perl, QuickCheck, random, regexTdfa
, rsync, SafeSemaphore, SHA, stm, text, time, transformers
, unixCompat, utf8String, uuid, wai, waiLogger, warp, which
, xmlConduit, xmlTypes, yesod, yesodCore, yesodDefault, yesodForm
, yesodStatic
, hinotify, hS3, hslogger, HTTP, httpConduit, httpTypes, IfElse
, json, lsof, MissingH, MonadCatchIOTransformers, monadControl, mtl
, network, networkInfo, networkMulticast, networkProtocolXmpp
, openssh, perl, QuickCheck, random, regexTdfa, rsync
, SafeSemaphore, SHA, stm, tasty, tastyHunit, tastyQuickcheck, text
, time, transformers, unixCompat, utf8String, uuid, wai, waiLogger
, warp, which, xmlConduit, xmlTypes, yesod, yesodCore, yesodDefault
, yesodForm, yesodStatic
}:
cabal.mkDerivation (self: {
pname = "git-annex";
version = "4.20131106";
sha256 = "019k3zhbc3wjg8isndw6hkgrr3h3qxrbfydv7m6zpgv2khjyhfh0";
version = "5.20131130";
sha256 = "0px918wzv9zqxz7wc6rx2ay8rizbckw79yinhisjvp3y5lldyjj1";
isLibrary = false;
isExecutable = true;
buildDepends = [
aeson async blazeBuilder bloomfilter caseInsensitive clientsession
cryptoApi cryptohash dataDefault dataenc DAV dbus dlist dns
editDistance extensibleExceptions feed filepath gnutls hamlet
hinotify hS3 hslogger HTTP httpConduit httpTypes HUnit IfElse json
hinotify hS3 hslogger HTTP httpConduit httpTypes IfElse json
MissingH MonadCatchIOTransformers monadControl mtl network
networkInfo networkMulticast networkProtocolXmpp QuickCheck random
regexTdfa SafeSemaphore SHA stm text time transformers unixCompat
utf8String uuid wai waiLogger warp xmlConduit xmlTypes yesod
yesodCore yesodDefault yesodForm yesodStatic
regexTdfa SafeSemaphore SHA stm tasty tastyHunit tastyQuickcheck
text time transformers unixCompat utf8String uuid wai waiLogger
warp xmlConduit xmlTypes yesod yesodCore yesodDefault yesodForm
yesodStatic
];
buildTools = [ bup curl git gnupg1 lsof openssh perl rsync which ];
configureFlags = "-fS3

View file

@ -0,0 +1,62 @@
{ stdenv, fetchurl
, libX11 , mesa
, sdlSupport ? true, SDL ? null
, termSupport ? true , ncurses ? null, readline ? null
, wxSupport ? true , gtk ? null , wxGTK ? null , pkgconfig ? null
, wgetSupport ? false, wget ? null
, curlSupport ? false, curl ? null
}:
assert sdlSupport -> (SDL != null);
assert termSupport -> (ncurses != null&& readline != null);
assert wxSupport -> (gtk != null && wxGTK != null && pkgconfig != null);
assert wgetSupport -> (wget != null);
assert curlSupport -> (curl != null);
stdenv.mkDerivation rec {
name = "bochs-${version}";
version = "2.6.2";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/bochs/bochs/${version}/${name}.tar.gz";
sha256 = "042blm1xb9ig4fh2bv8nrrfpgkcxy4hq8yrkx7mrdpm5g4mvfwyr";
};
buildInputs = with stdenv.lib;
[ libX11 mesa ]
++ optionals sdlSupport [ SDL ]
++ optionals termSupport [ readline ncurses ]
++ optionals wxSupport [ gtk wxGTK pkgconfig ]
++ optionals wgetSupport [ wget ]
++ optionals curlSupport [ curl ];
configureFlags = ''
--with-x11
--with-term=${if termSupport then "yes" else "no"}
--with-sdl=${if sdlSupport then "yes" else "no"}
--with-svga=no
--with-wx=${if wxSupport then "yes" else "no"}
--enable-readline
--enable-plugins=no
--enable-disasm
--enable-debugger
--enable-ne2000
--enable-e1000
--enable-sb16
--enable-voodoo
--enable-usb
--enable-pnic
'';
meta = {
description = "An open-source IA-32 (x86) PC emulator";
longDescription = ''
Bochs is an open-source (LGPL), highly portable IA-32 PC emulator, written in C++, that runs on most popular platforms. It includes emulation of the Intel x86 CPU, common I/O devices, and a custom BIOS.
'';
homepage = http://bochs.sourceforge.net/;
license = "LGPL";
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -142,10 +142,12 @@ init_submodules(){
git submodule status |
while read l; do
# checkout each submodule
local hash=$(echo $l | sed 's,^-\([0-9a-f]*\) \(.*\)$,\1,');
local dir=$(echo $l | sed 's,^-\([0-9a-f]*\) \(.*\)$,\2,');
local url=$(sed -n "\,$dir, { :loop; n; s,^.*url = ,,; T loop; p; q }" .git/config);
local hash=$(echo $l | awk '{print substr($1,2)}');
local dir=$(echo $l | awk '{print $2}');
local name=$(
git config -f .gitmodules --get-regexp submodule\.[^.]*\.path |
sed -n "s,^\(.*\)\.path $dir\$,\\1,p")
local url=$(git config -f .gitmodules --get ${name}.url);
clone "$dir" "$url" "$hash" "";
done;
}

View file

@ -1,6 +1,6 @@
{fetchurl, stdenv, fontforge, perl, fontconfig, FontTTF}:
let version = "2.33" ; in
let version = "2.34" ; in
stdenv.mkDerivation rec {
name = "dejavu-fonts-${version}";
@ -8,17 +8,17 @@ stdenv.mkDerivation rec {
buildInputs = [fontforge perl FontTTF];
unicodeData = fetchurl {
url = http://www.unicode.org/Public/6.1.0/ucd/UnicodeData.txt ;
url = http://www.unicode.org/Public/6.1.0/ucd/UnicodeData.txt ;
sha256 = "1bd6zkzvxfnifrn5nh171ywk7q56sgk8gdvdn43z9i53hljjcrih";
};
blocks = fetchurl {
url = http://www.unicode.org/Public/6.1.0/ucd/Blocks.txt;
url = http://www.unicode.org/Public/6.1.0/ucd/Blocks.txt;
sha256 = "0w0vkb09nrlc6mrhqyl9npszdi828afgvhvlb1vs5smjv3h8y3dz";
};
src = fetchurl {
url = "mirror://sourceforge/dejavu/dejavu-fonts-${version}.tar.bz2";
sha256 = "10m0rds36yyaznfqaa9msayv6f0v1h50zbikja6qdy5dwwxi8q5w";
sha256 = "09wh9c9kk82i4kwy73fcqa0779bvf0ncikciqw2gxa9m2rkrxjmm";
};
buildFlags = "full-ttf";
preBuild = ''

View file

@ -1,26 +1,27 @@
{ fetchurl, stdenv, perl, bdftopcf, mkfontdir, mkfontscale }:
{ stdenv, fetchurl, perl, bdftopcf, mkfontdir, mkfontscale }:
stdenv.mkDerivation rec {
name = "terminus-font-4.30";
name = "terminus-font-4.38";
src = fetchurl {
# urls = "http://www.is-vn.bg/hamster/${name}.tar.gz"
# sha256 = "ca15718f715f1ca7af827a8ab5543b0c0339b2515f39f8c15f241b2bc1a15a9a";
url = "http://ftp.de.debian.org/debian/pool/main/x/xfonts-terminus/xfonts-terminus_4.30.orig.tar.gz";
sha256 = "d7f1253d75f0aa278b0bbf457d15927ed3bbf2565b9f6b829c2b2560fedc1712";
url = "mirror://sourceforge/project/terminus-font/${name}/${name}.tar.gz";
sha256 = "1dwpxmg0wiyhp7hh18mvw18gnf0y2jgbn80c4xya7rmb9mm8gx7n";
};
buildInputs = [ perl bdftopcf mkfontdir mkfontscale ];
patchPhase = ''
substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
'';
configurePhase = ''
./configure --prefix=$out
sh ./configure --prefix=$out
'';
buildPhase = ''
make pcf
'';
installPhase = ''
make install-pcf
make fontdir
installPhase = ''
make install fontdir
'';
meta = {
description = "A clean fixed width font";
longDescription = ''

View file

@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
makeWrapper
];
preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
configureFlags = [
"--disable-nautilus" # Do not use nautilus
"--disable-dbus" # strange compilation error

View file

@ -2,12 +2,12 @@
, avrdude, arduino_core, avrgcclibc }:
buildPythonPackage rec {
name = "ino-0.3.5";
name = "ino-0.3.6";
namePrefix = "";
src = fetchurl {
url = "http://pypi.python.org/packages/source/i/ino/${name}.tar.gz";
sha256 = "1j2qzcjp6r2an1v431whq9l47s81d5af6ni8j87gv294f53sl1ab";
sha256 = "0k6lzfcn55favbj0w4afrvnmwyskf7bgzg9javv2ycvskp35srwv";
};
# TODO: add avrgcclibc, it must be rebuild with C++ support

View file

@ -1,18 +1,46 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, devSnapshot ? false }:
let
version = if devSnapshot
then "4.8.2"
else "4.8.0.5";
srcRelease = fetchurl {
url = "http://code.call-cc.org/releases/4.8.0/chicken-4.8.0.5.tar.gz";
sha256 = "1yrhqirqj3l535zr5mv8d1mz9gq876wwwg4nsjfw27663far54av";
};
srcDev = fetchurl {
url = "http://code.call-cc.org/dev-snapshots/2013/08/08/chicken-4.8.2.tar.gz";
sha256 = "01g7h0664342nl536mnri4c72kwj4z40vmv1250xfndlr218qdqg";
};
platform = with stdenv;
if isDarwin then "macosx"
else if isCygwin then "cygwin"
else if isBSD then "bsd"
else if isSunOS then "solaris"
else "linux"; # Should be a sane default
in
stdenv.mkDerivation {
name = "chicken-4.8.1";
name = "chicken-${version}";
src = if devSnapshot
then srcDev
else srcRelease;
buildFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
installFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
meta = {
homepage = http://www.call-cc.org/;
description = "Chicken Scheme";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = stdenv.lib.platforms.all;
description = "A portable compiler for the Scheme programming language";
longDescription = ''
CHICKEN is a compiler for the Scheme programming language.
CHICKEN produces portable and efficient C, supports almost all
of the R5RS Scheme language standard, and includes many
enhancements and extensions. CHICKEN runs on Linux, MacOS X,
Windows, and many Unix flavours.
'';
};
src = fetchurl {
url = http://code.call-cc.org/dev-snapshots/2013/01/04/chicken-4.8.1.tar.gz;
md5 = "bd758ec7abeaeb4f4c92c290fb5f3db7";
};
buildFlags = "PLATFORM=linux PREFIX=$(out) VARDIR=$(out)/var/lib";
installFlags = "PLATFORM=linux PREFIX=$(out) VARDIR=$(out)/var/lib";
}

View file

@ -1,21 +1,21 @@
{ cabal, ansiTerminal, ansiWlPprint, binary, boehmgc, Cabal
, filepath, gmp, happy, haskeline, languageJava, libffi
, llvmGeneral, llvmGeneralPure, mtl, parsec, parsers, split, text
, time, transformers, trifecta, unorderedContainers, utf8String
, vector, vectorBinaryInstances
, deepseq, filepath, gmp, happy, haskeline, languageJava, mtl
, network, parsers, split, text, time, transformers, trifecta
, unorderedContainers, utf8String, vector, vectorBinaryInstances
, xml
}:
cabal.mkDerivation (self: {
pname = "idris";
version = "0.9.9.3";
sha256 = "1l19xx0xbcwlnnh2w0rmri7wwixffzfrafpbji64nwyx1awz4iab";
version = "0.9.10";
sha256 = "0sbadjc4kj59f5240036pryxr4b6k6y2zkmszv99wq660mm7a3d3";
isLibrary = false;
isExecutable = true;
buildDepends = [
ansiTerminal ansiWlPprint binary Cabal filepath haskeline
languageJava libffi llvmGeneral llvmGeneralPure mtl parsec parsers
split text time transformers trifecta unorderedContainers
utf8String vector vectorBinaryInstances
ansiTerminal ansiWlPprint binary Cabal deepseq filepath haskeline
languageJava mtl network parsers split text time transformers
trifecta unorderedContainers utf8String vector
vectorBinaryInstances xml
];
buildTools = [ happy ];
extraLibraries = [ boehmgc gmp ];

View file

@ -4,11 +4,11 @@ let
s= # Generated upstream information
rec {
baseName="sbcl";
version="1.1.12";
version="1.1.13";
name="${baseName}-${version}";
hash="0mvl6lpi44yv6jv3xhyyzvf9g7bdlj691iz3ydpn66v0vg5i554c";
url="mirror://sourceforge/project/sbcl/sbcl/1.1.12/sbcl-1.1.12-source.tar.bz2";
sha256="0mvl6lpi44yv6jv3xhyyzvf9g7bdlj691iz3ydpn66v0vg5i554c";
hash="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
url="mirror://sourceforge/project/sbcl/sbcl/1.1.13/sbcl-1.1.13-source.tar.bz2";
sha256="1f4abgzfvb0f006vbykahqg7a11d6afnjrw332r54gj8753qj7x0";
};
buildInputs = with a; [
clisp makeWrapper

View file

@ -1,4 +1,4 @@
{ fetchurl, stdenv, guile, ncurses }:
{ fetchurl, stdenv, guile, ncurses, libffi }:
stdenv.mkDerivation rec {
name = "guile-ncurses-1.3";
@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
sha256 = "0chvfjrlmg99db98ra9vzwjmbypqx7d4ssm8q0kvzi0n0p9irszi";
};
buildInputs = [ guile ncurses ];
buildInputs = [ guile ncurses libffi ];
preConfigure =
'' configureFlags="$configureFlags --with-guilesitedir=$out/share/guile/site" '';

View file

@ -1,11 +1,14 @@
{ stdenv, fetchurl, erlang, rebar, makeWrapper, coreutils }:
let
version = "0.11.2";
in
stdenv.mkDerivation {
name = "elixir-0.10.1";
name = "elixir-${version}";
src = fetchurl {
url = "https://github.com/elixir-lang/elixir/archive/v0.10.1.tar.gz";
sha256 = "0gfr2bz3mw7ag9z2wb2g22n2vlyrp8dwy78fj9zi52kzl5w3vc3w";
url = "https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz";
sha256 = "0rgx33q013c5y2jjwd4l93pzd3v3fha8xdsrhpl9c9wb7yprjc5x";
};
buildInputs = [ erlang rebar makeWrapper ];
@ -34,11 +37,11 @@ stdenv.mkDerivation {
description = "A functional, meta-programming aware language built on top of the Erlang VM";
longDescription = ''
Elixir is a functional, meta-programming
aware language built on top of the Erlang VM. It is a dynamic
language with flexible syntax and macro support that leverages
Erlang's abilities to build concurrent, distributed and
fault-tolerant applications with hot code upgrades.p
Elixir is a functional, meta-programming aware language built on
top of the Erlang VM. It is a dynamic language with flexible
syntax and macro support that leverages Erlang's abilities to
build concurrent, distributed and fault-tolerant applications
with hot code upgrades.
'';
license = licenses.epl10;

View file

@ -1,5 +1,5 @@
{ stdenv, fetchurl, pkgconfig
, SDL, mesa, openal, lua5
, SDL, mesa, openal, lua
, libdevil, freetype, physfs
, libmodplug, mpg123, libvorbis, libogg
}:
@ -12,10 +12,29 @@ stdenv.mkDerivation rec {
};
buildInputs = [
pkgconfig SDL mesa openal lua5
pkgconfig SDL mesa openal lua
libdevil freetype physfs libmodplug mpg123 libvorbis libogg
];
preConfigure = ''
luaoptions="${"''"} lua luajit "
for i in lua luajit-; do
for j in 5 5.0 5.1 5.2 5.3 5.4; do
luaoptions="$luaoptions $i$j "
done
done
luaso="$(echo "${lua}/lib/"lib*.so.*)"
luaso="''${luaso##*/lib}"
luaso="''${luaso%%.so*}"
luaoptions="$luaoptions $luaso"
sed -e "s/${"''"} lua lua.*;/$luaoptions;/" -i configure
luaincdir="$(echo "${lua}/include"/*/ )"
test -d "$luaincdir" && {
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$luaincdir"
} || true
'';
NIX_CFLAGS_COMPILE = ''
-I${SDL}/include/SDL
-I${freetype}include/freetype2

View file

@ -21,12 +21,16 @@ g: # Get dependencies from patched gems
builder = g.builder_3_2_2;
buildr = g.buildr_1_4_12;
bundler = g.bundler_1_3_5;
celluloid = g.celluloid_0_15_2;
childprocess = g.childprocess_0_3_9;
chronic = g.chronic_0_10_1;
classifier = g.classifier_1_3_3;
coderay = g.coderay_1_0_9;
coffee_rails = g.coffee_rails_4_0_1;
coffee_script = g.coffee_script_2_2_0;
coffee_script_source = g.coffee_script_source_1_6_3;
colorator = g.colorator_0_1;
commander = g.commander_4_1_5;
cucumber = g.cucumber_1_3_8;
daemons = g.daemons_1_1_9;
diff_lcs = g.diff_lcs_1_1_3;
@ -38,31 +42,40 @@ g: # Get dependencies from patched gems
ethon = g.ethon_0_6_1;
eventmachine = g.eventmachine_1_0_3;
eventmachine_tail = g.eventmachine_tail_0_6_4;
excon = g.excon_0_25_3;
execjs = g.execjs_2_0_2;
fakes3 = g.fakes3_0_1_5;
faraday = g.faraday_0_8_8;
faraday_middleware = g.faraday_middleware_0_9_0;
fast_stemmer = g.fast_stemmer_1_0_2;
ffi = g.ffi_1_9_0;
file_tail = g.file_tail_1_0_12;
foreman = g.foreman_0_63_0;
formatador = g.formatador_0_2_4;
gettext = g.gettext_3_0_0;
gh = g.gh_0_12_0;
gherkin = g.gherkin_2_12_1;
guard = g.guard_2_2_4;
highline = g.highline_1_6_19;
hike = g.hike_1_2_3;
hoe = g.hoe_3_1_0;
http_cookie = g.http_cookie_1_0_1;
i18n = g.i18n_0_6_5;
iconv = g.iconv_1_0_3;
jekyll = g.jekyll_1_3_0;
jquery_rails = g.jquery_rails_3_0_4;
jruby_pageant = g.jruby_pageant_1_1_1;
jsduck = g.jsduck_5_1_0;
json = g.json_1_8_0;
json_pure = g.json_pure_1_8_0;
launchy = g.launchy_2_3_0;
liquid = g.liquid_2_5_4;
listen = g.listen_2_2_0;
locale = g.locale_2_0_8;
lockfile = g.lockfile_2_1_0;
lumberjack = g.lumberjack_1_0_4;
macaddr = g.macaddr_1_6_1;
maruku = g.maruku_0_6_1;
mail = g.mail_2_5_4;
mechanize = g.mechanize_2_7_2;
method_source = g.method_source_0_8_2;
@ -87,6 +100,7 @@ g: # Get dependencies from patched gems
papertrail_cli = g.papertrail_cli_0_9_3;
parallel = g.parallel_0_7_1;
polyglot = g.polyglot_0_3_3;
posix_spawn = g.posix_spawn_0_3_6;
pry = g.pry_0_9_12_2;
pusher_client = g.pusher_client_0_3_1;
rack = g.rack_1_5_2;
@ -95,16 +109,21 @@ g: # Get dependencies from patched gems
railties = g.railties_4_0_0;
rake = g.rake_10_1_0;
rb_fsevent = g.rb_fsevent_0_9_3;
rb_inotify = g.rb_inotify_0_9_2;
rb_kqueue = g.rb_kqueue_0_2_0;
rdiscount = g.rdiscount_2_1_6;
redcarpet = g.redcarpet_2_3_0;
redis = g.redis_3_0_5;
redis_namespace = g.redis_namespace_1_3_1;
remote_syslog = g.remote_syslog_1_6_14;
resque = g.resque_1_25_1;
resque_web = g.resque_web_0_0_3;
rest_client = g.rest_client_1_6_7;
right_aws = g.right_aws_3_1_0;
right_http_connection = g.right_http_connection_1_4_0;
rjb = g.rjb_1_4_8;
rkelly_remix = g.rkelly_remix_0_0_4;
rmagick = g.rmagick_2_13_2;
rmail = g.rmail_1_0_0;
rmail_sup = g.rmail_sup_1_0_1;
rspec = g.rspec_2_11_0;
@ -114,6 +133,7 @@ g: # Get dependencies from patched gems
ruby_hmac = g.ruby_hmac_0_4_0;
rubyforge = g.rubyforge_2_0_4;
rubyzip = g.rubyzip_0_9_9;
safe_yaml = g.safe_yaml_0_9_7;
sass = g.sass_3_2_12;
sass_rails = g.sass_rails_4_0_1;
selenium_webdriver = g.selenium_webdriver_2_35_1;
@ -122,6 +142,7 @@ g: # Get dependencies from patched gems
slop = g.slop_3_4_6;
sprockets = g.sprockets_2_10_0;
sprockets_rails = g.sprockets_rails_2_0_1;
syntax = g.syntax_1_0_0;
syslog_protocol = g.syslog_protocol_0_9_2;
systemu = g.systemu_2_5_2;
taskjuggler = g.taskjuggler_3_5_0;
@ -132,6 +153,7 @@ g: # Get dependencies from patched gems
thor = g.thor_0_18_1;
thread_safe = g.thread_safe_0_1_3;
tilt = g.tilt_1_4_1;
timers = g.timers_1_1_0;
tins = g.tins_0_9_0;
travis = g.travis_1_5_3;
treetop = g.treetop_1_4_15;
@ -447,6 +469,17 @@ for those one-off tasks, with a language that's a joy to use.
requiredGems = [ ];
sha256 = ''1r7zx8qfwzr3pbgrjbsml7z5qgscwyyv33x2jzhz6adqyx3r1f08'';
};
celluloid_0_15_2 = {
basename = ''celluloid'';
meta = {
description = ''Actor-based concurrent object framework for Ruby'';
homepage = ''https://github.com/celluloid/celluloid'';
longDescription = ''Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects'';
};
name = ''celluloid-0.15.2'';
requiredGems = [ g.timers_1_1_0 ];
sha256 = ''0lpa97m7f4p5hgzaaa47y1d5c78n8pp4xd8qb0sn5llqd0klkd9b'';
};
childprocess_0_3_9 = {
basename = ''childprocess'';
meta = {
@ -469,6 +502,18 @@ for those one-off tasks, with a language that's a joy to use.
requiredGems = [ ];
sha256 = ''0kspaxpfy7yvyk1lvpx31w852qfj8wb9z04mcj5bzi70ljb9awqk'';
};
classifier_1_3_3 = {
basename = ''classifier'';
meta = {
description = ''A general classifier module to allow Bayesian and other types of classifications.'';
homepage = ''http://classifier.rufy.com/'';
longDescription = '' A general classifier module to allow Bayesian and other types of classifications.
'';
};
name = ''classifier-1.3.3'';
requiredGems = [ g.fast_stemmer_1_0_2 ];
sha256 = ''1kq1cd8fq6wvyxbjy3r6ya3d3sk3rcp1b560xlqvflpsirm47r9g'';
};
chronic_0_10_1 = {
basename = ''chronic'';
meta = {
@ -491,6 +536,17 @@ for those one-off tasks, with a language that's a joy to use.
requiredGems = [ ];
sha256 = ''1pbjsvd6r2daxd6aicp19fnb1j5z7fxadflsm1h0r33cy3vi7iy8'';
};
coderay_1_1_0 = {
basename = ''coderay'';
meta = {
description = ''Fast syntax highlighting for selected languages.'';
homepage = ''http://coderay.rubychan.de'';
longDescription = ''Fast and easy syntax highlighting for selected languages, written in Ruby. Comes with RedCloth integration and LOC counter.'';
};
name = ''coderay-1.1.0'';
requiredGems = [ ];
sha256 = ''059wkzlap2jlkhg460pkwc1ay4v4clsmg1bp4vfzjzkgwdckr52s'';
};
coffee_rails_4_0_1 = {
basename = ''coffee_rails'';
meta = {
@ -530,6 +586,28 @@ for those one-off tasks, with a language that's a joy to use.
requiredGems = [ ];
sha256 = ''0p33h0rdj1n8xhm2d5hzqbb8br6wn4rx0gk4hyhc6rxkaxsy79b4'';
};
colorator_0_1 = {
basename = ''colorator'';
meta = {
description = ''String core extensions for terminal coloring.'';
homepage = ''https://github.com/octopress/colorator'';
longDescription = ''Colorize your text in the terminal.'';
};
name = ''colorator-0.1'';
requiredGems = [ ];
sha256 = ''09zp15hyd9wlbgf1kmrf4rnry8cpvh1h9fj7afarlqcy4hrfdpvs'';
};
commander_4_1_5 = {
basename = ''commander'';
meta = {
description = ''The complete solution for Ruby command-line executables'';
homepage = ''http://visionmedia.github.com/commander'';
longDescription = ''The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.'';
};
name = ''commander-4.1.5'';
requiredGems = [ g.highline_1_6_20 ];
sha256 = ''040x2gjpl55g64kh5f9nby0870hnzx8cd7clxg771z0wjs7nzalc'';
};
cucumber_1_3_8 = {
basename = ''cucumber'';
meta = {
@ -711,6 +789,17 @@ using TCP/IP, especially if custom protocols are required.'';
requiredGems = [ g.eventmachine_1_0_3 ];
sha256 = ''1pvlb34vdzd81kf9f3xyibb4f55xjqm7lqqy28dgyci5cyv50y61'';
};
excon_0_25_3 = {
basename = ''excon'';
meta = {
description = ''speed, persistence, http(s)'';
homepage = ''https://github.com/geemus/excon'';
longDescription = ''EXtended http(s) CONnections'';
};
name = ''excon-0.25.3'';
requiredGems = [ ];
sha256 = ''1d552jhvrpmnzrg3di88397l07ngrz04s2al17klpam6crxqw2b2'';
};
execjs_2_0_2 = {
basename = ''execjs'';
meta = {
@ -764,6 +853,17 @@ using TCP/IP, especially if custom protocols are required.'';
requiredGems = [ g.faraday_0_8_8 ];
sha256 = ''1kwvi2sdxd6j764a7q5iir73dw2v6816zx3l8cgfv0wr2m47icq2'';
};
fast_stemmer_1_0_2 = {
basename = ''fast_stemmer'';
meta = {
description = ''Fast Porter stemmer based on a C version of algorithm'';
homepage = ''http://github.com/romanbsd/fast-stemmer'';
longDescription = ''Fast Porter stemmer based on a C version of algorithm'';
};
name = ''fast-stemmer-1.0.2'';
requiredGems = [ ];
sha256 = ''0688clyk4xxh3kdb18vi089k90mca8ji5fwaknh3da5wrzcrzanh'';
};
ffi_1_9_0 = {
basename = ''ffi'';
meta = {
@ -775,6 +875,17 @@ using TCP/IP, especially if custom protocols are required.'';
requiredGems = [ ];
sha256 = ''0rnh9yyfzcpdmi8m7giyd21lgqj00afgxvgbx41hsi2ls1ghfwvy'';
};
ffi_1_9_3 = {
basename = ''ffi'';
meta = {
description = ''Ruby FFI'';
homepage = ''http://wiki.github.com/ffi/ffi'';
longDescription = ''Ruby FFI library'';
};
name = ''ffi-1.9.3'';
requiredGems = [ ];
sha256 = ''0873h6jp3v65mll7av9bxlzp9m9l1cc66j0krg0llchwbh4pv5sp'';
};
file_tail_1_0_12 = {
basename = ''file_tail'';
meta = {
@ -797,6 +908,17 @@ using TCP/IP, especially if custom protocols are required.'';
requiredGems = [ g.thor_0_18_1 g.dotenv_0_9_0 ];
sha256 = ''0yqyjix9jm4iwyc4f3wc32vxr28rpjcw1c9ni5brs4s2a24inzlk'';
};
formatador_0_2_4 = {
basename = ''formatador'';
meta = {
description = ''Ruby STDOUT text formatting'';
homepage = ''http://github.com/geemus/formatador'';
longDescription = ''STDOUT text formatting'';
};
name = ''formatador-0.2.4'';
requiredGems = [ ];
sha256 = ''0pgmk1h6i6m3cslnfyjqld06a4c2xbbvmngxg2axddf39xwz6f12'';
};
gettext_3_0_0 = {
basename = ''gettext'';
meta = {
@ -833,6 +955,17 @@ So you can use GNU gettext tools for maintaining.
requiredGems = [ g.multi_json_1_7_9 ];
sha256 = ''07nzchdvkkd35m9k7d9k8j72jm3imv56ccn734mxa5klv1xx2d45'';
};
guard_2_2_4 = {
basename = ''guard'';
meta = {
description = ''Guard keeps an eye on your file modifications'';
homepage = ''http://guardgem.org'';
longDescription = ''Guard is a command line tool to easily handle events on file system modifications.'';
};
name = ''guard-2.2.4'';
requiredGems = [ g.thor_0_18_1 g.listen_2_2_0 g.pry_0_9_12_3 g.lumberjack_1_0_4 g.formatador_0_2_4 ];
sha256 = ''0z427rkcpzy82g21cgq7i5sn1vxn8hm8j4d78kj9vlaqgilcybhq'';
};
highline_1_6_19 = {
basename = ''highline'';
meta = {
@ -848,6 +981,21 @@ minutes of work.
requiredGems = [ ];
sha256 = ''0gylnz2cdaswgszgl8x2qx0c87md4246r1i0blgm3nqvgd4hlsxd'';
};
highline_1_6_20 = {
basename = ''highline'';
meta = {
description = ''HighLine is a high-level command-line IO library.'';
homepage = ''http://highline.rubyforge.org'';
longDescription = ''A high-level IO library that provides validation, type conversion, and more for
command-line interfaces. HighLine also includes a complete menu system that can
crank out anything from simple list selection to complete shells with just
minutes of work.
'';
};
name = ''highline-1.6.20'';
requiredGems = [ ];
sha256 = ''0gk7mpw2r5lv60vr4hb0090wbnqh0fsbyrrcvxiqk7hyhxdz08iv'';
};
highline_1_6_2 = {
basename = ''highline'';
meta = {
@ -927,6 +1075,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
requiredGems = [ ];
sha256 = ''1nhjn07h2fqivdj6xqzi2x2kzh28vigx8z3q5fv2cqn9aqmbdacl'';
};
jekyll_1_3_0 = {
basename = ''jekyll'';
meta = {
description = ''A simple, blog aware, static site generator.'';
homepage = ''http://github.com/mojombo/jekyll'';
longDescription = ''Jekyll is a simple, blog aware, static site generator.'';
};
name = ''jekyll-1.3.0'';
requiredGems = [ g.liquid_2_5_4 g.classifier_1_3_3 g.listen_1_3_1 g.maruku_0_6_1 g.pygments_rb_0_5_4 g.commander_4_1_5 g.safe_yaml_0_9_7 g.colorator_0_1 g.redcarpet_2_3_0 ];
sha256 = ''0hq9sdyivfifba0d4d7g113jbd3jwm8jpdc9i09mv0nfhdcbc3k4'';
};
jquery_rails_3_0_4 = {
basename = ''jquery_rails'';
meta = {
@ -1004,6 +1163,49 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
requiredGems = [ g.addressable_2_3_5 ];
sha256 = ''0ckvs40f29ancs0ki12pqb94k380cz41b4gbjplm85ly6kd57sph'';
};
launchy_2_4_0 = {
basename = ''launchy'';
meta = {
description = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner.'';
homepage = ''http://github.com/copiousfreetime/launchy'';
longDescription = ''Launchy is helper class for launching cross-platform applications in a fire and forget manner. There are application concepts (browser, email client, etc) that are common across all platforms, and they may be launched differently on each platform. Launchy is here to make a common approach to launching external application from within ruby programs.'';
};
name = ''launchy-2.4.0'';
requiredGems = [ g.addressable_2_3_5 ];
sha256 = ''0vxc3m4sjxyjjzw2rmsginf9nbxfyv7hhxshmn6kxkvcpjxx5di0'';
};
liquid_2_5_4 = {
basename = ''liquid'';
meta = {
description = ''A secure, non-evaling end user template engine with aesthetic markup.'';
homepage = ''http://www.liquidmarkup.org'';
};
name = ''liquid-2.5.4'';
requiredGems = [ ];
sha256 = ''0adb1fz20jwcyx1ia133426i59mrrz9iq9lpcmzq6jx0dlaa4amv'';
};
listen_1_3_1 = {
basename = ''listen'';
meta = {
description = ''Listen to file modifications'';
homepage = ''https://github.com/guard/listen'';
longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
};
name = ''listen-1.3.1'';
requiredGems = [ g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 g.rb_kqueue_0_2_0 ];
sha256 = ''1p1rqz26ixx0fzc0hy3psq2bb3pwkv9awixv76zkaaqj1czabzbs'';
};
listen_2_2_0 = {
basename = ''listen'';
meta = {
description = ''Listen to file modifications'';
homepage = ''https://github.com/guard/listen'';
longDescription = ''The Listen gem listens to file modifications and notifies you about the changes. Works everywhere!'';
};
name = ''listen-2.2.0'';
requiredGems = [ g.celluloid_0_15_2 g.rb_fsevent_0_9_3 g.rb_inotify_0_9_2 ];
sha256 = ''1fm6cp5d4xbd5wdd0d804m3p2cc5rjrr5yzqzzh1ndzgbs94sv5c'';
};
locale_2_0_8 = {
basename = ''locale'';
meta = {
@ -1027,6 +1229,17 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
requiredGems = [ ];
sha256 = ''1yfpz9k0crb7q7y5bcaavf2jzbc170dj84hqz13qp75rj7bl3qhf'';
};
lumberjack_1_0_4 = {
basename = ''lumberjack'';
meta = {
description = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger.'';
homepage = ''http://github.com/bdurand/lumberjack'';
longDescription = ''A simple, powerful, and very fast logging utility that can be a drop in replacement for Logger or ActiveSupport::BufferedLogger. Provides support for automatically rolling log files even with multiple processes writing the same log file.'';
};
name = ''lumberjack-1.0.4'';
requiredGems = [ ];
sha256 = ''1mj6m12hnmkvzl4w2yh04ak3z45pwksj6ra7v30za8snw9kg919d'';
};
macaddr_1_6_1 = {
basename = ''macaddr'';
meta = {
@ -1049,6 +1262,20 @@ For extra goodness, see: http://seattlerb.rubyforge.org/hoe/Hoe.pdf'';
requiredGems = [ g.mime_types_1_25 g.treetop_1_4_15 ];
sha256 = ''0z15ksb8blcppchv03g34844f7xgf36ckp484qjj2886ig1qara4'';
};
maruku_0_6_1 = {
basename = ''maruku'';
meta = {
description = ''Maruku is a Markdown-superset interpreter written in Ruby.'';
homepage = ''http://github.com/bhollis/maruku'';
longDescription = ''Maruku is a Markdown interpreter in Ruby.
It features native export to HTML and PDF (via Latex). The
output is really beautiful!
'';
};
name = ''maruku-0.6.1'';
requiredGems = [ g.syntax_1_0_0 ];
sha256 = ''01xc4l480k79jbicr0j37d9bmd4dsnrjh5hwdrh2djvy06l77ngz'';
};
mechanize_2_7_2 = {
basename = ''mechanize'';
meta = {
@ -1132,6 +1359,43 @@ and added by the users of MIME::Types.'';
requiredGems = [ ];
sha256 = ''0hd6hpl05jyx3siznk70z46bmrzwmcyrr24yfaqg6nar35zw8bgf'';
};
mime_types_2_0 = {
basename = ''mime_types'';
meta = {
description = ''The mime-types library provides a library and registry for information about MIME content type definitions'';
homepage = ''http://mime-types.rubyforge.org/'';
longDescription = ''The mime-types library provides a library and registry for information about
MIME content type definitions. It can be used to determine defined filename
extensions for MIME types, or to use filename extensions to look up the likely
MIME type definitions.
MIME content types are used in MIME-compliant communications, as in e-mail or
HTTP traffic, to indicate the type of content which is transmitted. The
mime-types library provides the ability for detailed information about MIME
entities (provided as an enumerable collection of MIME::Type objects) to be
determined and used programmatically. There are many types defined by RFCs and
vendors, so the list is long but by definition incomplete; don't hesitate to to
add additional type definitions (see Contributing.rdoc). The primary sources
for MIME type definitions found in mime-types is the IANA collection of
registrations (see below for the link), RFCs, and W3C recommendations.
The mime-types library uses semantic versioning. This is release 2.0; there are
incompatible changes in the API provided by mime-types, mostly around registry
initialization (see History.rdoc for full details), and the removal of support
for Ruby 1.8 interpreters.
mime-types (previously called MIME::Types for Ruby) was originally based on
MIME::Types for Perl by Mark Overmeer, copyright 2001 - 2009. It is built to
conform to the MIME types of RFCs 2045 and 2231. It tracks the {IANA
registry}[http://www.iana.org/assignments/media-types/]
({ftp}[ftp://ftp.iana.org/assignments/media-types]) with some unofficial types
added from the {LTSW collection}[http://www.ltsw.se/knbase/internet/mime.htp]
and added by the users of mime-types.'';
};
name = ''mime-types-2.0'';
requiredGems = [ ];
sha256 = ''1q1s22l3mm0am2f7n9qjqp8zl0smr9zlqr2ywwyfjkid2sj3prfk'';
};
mini_portile_0_5_1 = {
basename = ''mini_portile'';
meta = {
@ -1464,6 +1728,17 @@ augments 'require' to find and load matching files.'';
requiredGems = [ ];
sha256 = ''082zmail2h3cxd9z1wnibhk6aj4sb1f3zzwra6kg9bp51kx2c00v'';
};
posix_spawn_0_3_6 = {
basename = ''posix_spawn'';
meta = {
description = ''posix_spawnp(2) for ruby'';
homepage = ''http://github.com/rtomayko/posix-spawn'';
longDescription = ''posix-spawn uses posix_spawnp(2) for faster process spawning'';
};
name = ''posix-spawn-0.3.6'';
requiredGems = [ ];
sha256 = ''0f2mqka8024yz55iw8wbihvmakwqnbrdr4a1ffl3x2zi104yvb43'';
};
pry_0_9_12_2 = {
basename = ''pry'';
meta = {
@ -1475,6 +1750,17 @@ augments 'require' to find and load matching files.'';
requiredGems = [ g.coderay_1_0_9 g.slop_3_4_6 g.method_source_0_8_2 ];
sha256 = ''141slzb62zfzdhrygqjmrzh68s3vzrb4mwyipy2lhps5q4b46y9s'';
};
pry_0_9_12_3 = {
basename = ''pry'';
meta = {
description = ''An IRB alternative and runtime developer console'';
homepage = ''http://pry.github.com'';
longDescription = ''An IRB alternative and runtime developer console'';
};
name = ''pry-0.9.12.3'';
requiredGems = [ g.coderay_1_1_0 g.slop_3_4_7 g.method_source_0_8_2 ];
sha256 = ''1dn80vnyq1l6192sg3p29d0yz6rswnsl8rn3lkf75c86a2qqxpy3'';
};
pusher_client_0_3_1 = {
basename = ''pusher_client'';
meta = {
@ -1486,6 +1772,17 @@ augments 'require' to find and load matching files.'';
requiredGems = [ g.websocket_1_0_7 g.ruby_hmac_0_4_0 ];
sha256 = ''1mxqy960iln065fypk1ww3xgv7q396fpl6v0rp7ipls6aj86j970'';
};
pygments_rb_0_5_4 = {
basename = ''pygments_rb'';
meta = {
description = ''pygments wrapper for ruby'';
homepage = ''http://github.com/tmm1/pygments.rb'';
longDescription = ''pygments.rb exposes the pygments syntax highlighter to Ruby'';
};
name = ''pygments.rb-0.5.4'';
requiredGems = [ g.yajl_ruby_1_1_0 g.posix_spawn_0_3_6 ];
sha256 = ''0ryl0f0zp0rffaggd978cmrkzsmf83x452fcinw6p705xdk4zbvl'';
};
rack_1_5_2 = {
basename = ''rack'';
meta = {
@ -1606,6 +1903,28 @@ request helpers feature.'';
requiredGems = [ ];
sha256 = ''0bdnxwdxj4r1kdxfi5nszbsb126njrr81p912g64xxs2bgxd1bp1'';
};
rb_inotify_0_9_2 = {
basename = ''rb_inotify'';
meta = {
description = ''A Ruby wrapper for Linux's inotify, using FFI'';
homepage = ''http://github.com/nex3/rb-inotify'';
longDescription = ''A Ruby wrapper for Linux's inotify, using FFI'';
};
name = ''rb-inotify-0.9.2'';
requiredGems = [ g.ffi_1_9_3 ];
sha256 = ''0752fhgfrx370b2jnhxzs8sjv2l8yrnwqj337kx9v100igd1c7iv'';
};
rb_kqueue_0_2_0 = {
basename = ''rb_kqueue'';
meta = {
description = ''A Ruby wrapper for BSD's kqueue, using FFI'';
homepage = ''http://github.com/mat813/rb-kqueue'';
longDescription = ''A Ruby wrapper for BSD's kqueue, using FFI'';
};
name = ''rb-kqueue-0.2.0'';
requiredGems = [ g.ffi_1_9_3 ];
sha256 = ''1f2wimhq93a1zy2fbyj7iyh7hvzmzwn3pzhkwb3npy4mj1df83n3'';
};
rdiscount_2_1_6 = {
basename = ''rdiscount'';
meta = {
@ -1616,6 +1935,17 @@ request helpers feature.'';
requiredGems = [ ];
sha256 = ''180ln9gwxn0cyflg0i1viv7jyalmjqvqr34cb65xsmmsz1nz55q2'';
};
redcarpet_2_3_0 = {
basename = ''redcarpet'';
meta = {
description = ''Markdown that smells nice'';
homepage = ''http://github.com/vmg/redcarpet'';
longDescription = ''A fast, safe and extensible Markdown to (X)HTML parser'';
};
name = ''redcarpet-2.3.0'';
requiredGems = [ ];
sha256 = ''1fghh7n9kz6n6bdhgix5s8lyj5sw6q44zizf4mdgz5xsgwqcr6sw'';
};
redis_3_0_5 = {
basename = ''redis'';
meta = {
@ -1691,6 +2021,17 @@ multiple, different applications.
requiredGems = [ g.resque_1_25_1 g.twitter_bootstrap_rails_2_2_8 g.jquery_rails_3_0_4 g.sass_rails_4_0_1 g.coffee_rails_4_0_1 ];
sha256 = ''1v4g0zrlq9n0pkhdiwxqcmis5p8hpxm475vchldk63mi1vy4fvr2'';
};
rest_client_1_6_7 = {
basename = ''rest_client'';
meta = {
description = ''Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.'';
homepage = ''http://github.com/archiloque/rest-client'';
longDescription = ''A simple HTTP and REST client for Ruby, inspired by the Sinatra microframework style of specifying actions: get, put, post, delete.'';
};
name = ''rest-client-1.6.7'';
requiredGems = [ g.mime_types_2_0 ];
sha256 = ''0nn7zalgidz2yj0iqh3xvzh626krm2al79dfiij19jdhp0rk8853'';
};
right_aws_3_1_0 = {
basename = ''right_aws'';
meta = {
@ -1795,6 +2136,17 @@ in JSDuck.
requiredGems = [ ];
sha256 = ''1w6yr5n3b8yd0rsba9q3zyxr0n2hbpkz4v2k1qx6j1ywvl9rc2c1'';
};
rmagick_2_13_2 = {
basename = ''rmagick'';
meta = {
description = ''Ruby binding to ImageMagick'';
homepage = ''http://rubyforge.org/projects/rmagick'';
longDescription = ''RMagick is an interface between Ruby and ImageMagick.'';
};
name = ''rmagick-2.13.2'';
requiredGems = [ ];
sha256 = ''1fw5rs5yqi5ayh44d18gjq68chiz14byx01h33c8jvkdxz3b9wz4'';
};
rmail_1_0_0 = {
basename = ''rmail'';
meta = {
@ -1905,6 +2257,27 @@ Originally written by Daiki Ueno. Converted to a RubyGem by Geoffrey Grosenbach'
requiredGems = [ ];
sha256 = ''1khf6d903agnwd8965f5f8b353rzmfvygxp53z1199rqzw8h46q2'';
};
rubyzip_1_1_0 = {
basename = ''rubyzip'';
meta = {
description = ''rubyzip is a ruby module for reading and writing zip files'';
homepage = ''http://github.com/rubyzip/rubyzip'';
};
name = ''rubyzip-1.1.0'';
requiredGems = [ ];
sha256 = ''0kxpcs047fb52lz0imp6vl3hr5khqpk0jfbr2knfbp612ynzyzcl'';
};
safe_yaml_0_9_7 = {
basename = ''safe_yaml'';
meta = {
description = ''SameYAML provides an alternative implementation of YAML.load suitable for accepting user input in Ruby applications.'';
homepage = ''http://dtao.github.com/safe_yaml/'';
longDescription = ''Parse YAML safely, without that pesky arbitrary object deserialization vulnerability'';
};
name = ''safe_yaml-0.9.7'';
requiredGems = [ ];
sha256 = ''0y34vpak8gim18rq02rgd144jsvk5is4xni16wm3shbhivzqb4hk'';
};
sass_3_2_10 = {
basename = ''sass'';
meta = {
@ -2004,6 +2377,17 @@ interpreters.'';
requiredGems = [ ];
sha256 = ''0fdp3nkljjs2d5yhgjzcqi0f6xq67byfbrayg5aj7r76rsw0hmal'';
};
slop_3_4_7 = {
basename = ''slop'';
meta = {
description = ''Simple Lightweight Option Parsing'';
homepage = ''http://github.com/leejarvis/slop'';
longDescription = ''A simple DSL for gathering options and parsing the command line'';
};
name = ''slop-3.4.7'';
requiredGems = [ ];
sha256 = ''1x3dwljqvkzj314rwn2bxgim9xvgwnfipzg5g0kwwxfn90fpv2sn'';
};
sprockets_2_10_0 = {
basename = ''sprockets'';
meta = {
@ -2035,6 +2419,15 @@ interpreters.'';
requiredGems = [ g.sprockets_2_10_0 g.actionpack_4_0_0 g.activesupport_4_0_0 ];
sha256 = ''170llk1qsvzhhslmasqk4hp5lrv9ibwy44q32yg6kn9s7sh0c1wy'';
};
syntax_1_0_0 = {
basename = ''syntax'';
meta = {
description = ''Syntax is Ruby library for performing simple syntax highlighting.'';
};
name = ''syntax-1.0.0'';
requiredGems = [ ];
sha256 = ''1z93kkhdq55vq3fg9wljhm591cj59qis58dk97l09b8bfxi2ypk0'';
};
syslog_protocol_0_9_2 = {
basename = ''syslog_protocol'';
meta = {
@ -2164,6 +2557,17 @@ management.
requiredGems = [ ];
sha256 = ''00sr3yy7sbqaq7cb2d2kpycajxqf1b1wr1yy33z4bnzmqii0b0ir'';
};
timers_1_1_0 = {
basename = ''timers'';
meta = {
description = ''Schedule procs to run after a certain time, or at periodic intervals, using any API that accepts a timeout'';
homepage = ''https://github.com/tarcieri/timers'';
longDescription = ''Pure Ruby one-shot and periodic timers'';
};
name = ''timers-1.1.0'';
requiredGems = [ ];
sha256 = ''0x3vnkxy3bg9f6v1nhkfqkajr19glrzkmqd5a1wy8hrylx8rdfrv'';
};
tins_0_9_0 = {
basename = ''tins'';
meta = {

View file

@ -1,5 +1,6 @@
{ fetchurl, writeScript, ruby, ncurses, sqlite, libxml2, libxslt, libffi
, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty }:
, zlib, libuuid, gems, jdk, python, stdenv, libiconvOrEmpty, imagemagick
, pkgconfig }:
let
@ -76,6 +77,12 @@ in
NIX_POST_EXTRACT_FILES_HOOK = patchUsrBinEnv;
};
rmagick = {
buildInputs = [ imagemagick pkgconfig ];
NIX_CFLAGS_COMPILE = "-I${imagemagick}/include/ImageMagick-6";
};
xrefresh_server =
let
patch = fetchurl {

View file

@ -17,8 +17,8 @@ stdenv.mkDerivation rec {
name = "ruby-${version}";
src = fetchurl {
url = "ftp://ftp.ruby-lang.org/pub/ruby/1.8/${name}.tar.gz";
sha256 = "0g2dsn8lmiqwqsp13ryzi97qxr7742v5l7v506x6wq9aiwpk42p6";
url = "http://cache.ruby-lang.org/pub/ruby/1.8/${name}.tar.bz2";
sha256 = "b4e34703137f7bfb8761c4ea474f7438d6ccf440b3d35f39cc5e4d4e239c07e3";
};
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
passthru = rec {
majorVersion = "1.8";
minorVersion = "7";
patchLevel = "371";
patchLevel = "374";
libPath = "lib/ruby/${majorVersion}";
gemPath = "lib/ruby/gems/${majorVersion}";
};

View file

@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
name = "ruby-${version}";
src = fetchurl {
url = "ftp://ftp.ruby-lang.org/pub/ruby/1.9/${name}.tar.bz2";
sha256 = "0w1avj8qfskvkgvrjxxc1cxjm14bf1v60ipvcl5q3zpn9k14k2cx";
url = "http://cache.ruby-lang.org/pub/ruby/1.9/${name}.tar.bz2";
sha256 = "0fdc6e860d0023ba7b94c7a0cf1f7d32908b65b526246de9dfd5bb39d0d7922b";
};
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
passthru = rec {
majorVersion = "1.9";
minorVersion = "3";
patchLevel = "429";
patchLevel = "484";
libPath = "lib/ruby/${majorVersion}";
gemPath = "lib/ruby/gems/${majorVersion}";
};

View file

@ -18,8 +18,8 @@ stdenv.mkDerivation rec {
name = "ruby-${version}";
src = fetchurl {
url = "ftp://ftp.ruby-lang.org/pub/ruby/2.0/${name}.tar.bz2";
sha256 = "0pr9jf01cfap93xcngyd5zpns67ffjsgaxkm0qr1r464rj9d7066";
url = "http://cache.ruby-lang.org/pub/ruby/2.0/${name}.tar.bz2";
sha256 = "3de4e4d9aff4682fa4f8ed2b70bd0d746fae17452fc3d3a8e8f505ead9105ad9";
};
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
@ -30,11 +30,19 @@ stdenv.mkDerivation rec {
++ (op zlibSupport zlib)
++ (op opensslSupport openssl)
++ (op gdbmSupport gdbm)
++ (op yamlSupport libyaml);
++ (op yamlSupport libyaml)
# Looks like ruby fails to build on darwin without readline even if curses
# support is not enabled, so add readline to the build inputs if curses
# support is disabled (if it's enabled, we already have it) and we're
# running on darwin
++ (op (!cursesSupport && stdenv.isDarwin) readline);
enableParallelBuilding = true;
configureFlags = ["--enable-shared" ];
configureFlags = ["--enable-shared" ]
# on darwin, we have /usr/include/tk.h -- so the configure script detects
# that tk is installed
++ ( if stdenv.isDarwin then [ "--with-out-ext=tk " ] else [ ]);
installFlags = stdenv.lib.optionalString docSupport "install-doc";
# Bundler tries to create this directory
@ -50,7 +58,7 @@ stdenv.mkDerivation rec {
passthru = rec {
majorVersion = "2.0";
minorVersion = "0";
patchLevel = "0";
patchLevel = "353";
libPath = "lib/ruby/${majorVersion}";
gemPath = "lib/ruby/gems/${majorVersion}";
};

View file

@ -1,15 +1,15 @@
{stdenv, fetchurl, unzip}:
stdenv.mkDerivation {
name = "amrnb-7.0.0.2";
name = "amrnb-11.0.0.0";
srcAmr = fetchurl {
url = http://www.3gpp.org/ftp/Specs/latest/Rel-7/26_series/26104-700.zip;
sha256 = "0hgm8dddrqiinjdjxnsw0x899czjlvplq69z4kv8y4zqnrjlwzni";
url = http://www.3gpp.org/ftp/Specs/latest/Rel-11/26_series/26104-b00.zip;
sha256 = "1wf8ih0hk7w20vdlnw7jb7w73v15hbxgbvmq4wq7h2ghn0j8ppr3";
};
src = fetchurl {
url = http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2;
sha256 = "0z4wjr0jml973vd0dvxlmy34daiswy5axlmpvc85k8qcr08i8zaa";
url = http://ftp.penguin.cz/pub/users/utx/amr/amrnb-11.0.0.0.tar.bz2;
sha256 = "1qgiw02n2a6r32pimnd97v2jkvnw449xrqmaxiivjy2jcr5h141q";
};
buildInputs = [ unzip ];
@ -17,7 +17,7 @@ stdenv.mkDerivation {
configureFlags = [ "--cache-file=config.cache" "--with-downloader=true" ];
postConfigure = ''
cp $srcAmr 26104-700.zip
cp $srcAmr 26104-b00.zip
'';
meta = {

View file

@ -13,6 +13,7 @@
, dc1394Support ? false, libdc1394 ? null
, x11grabSupport ? false, libXext ? null, libXfixes ? null
, playSupport ? true, SDL ? null
, freetypeSupport ? true, freetype ? null, fontconfig ? null
}:
assert speexSupport -> speex != null;
@ -27,6 +28,7 @@ assert vaapiSupport -> libva != null;
assert faacSupport -> faac != null;
assert x11grabSupport -> libXext != null && libXfixes != null;
assert playSupport -> SDL != null;
assert freetypeSupport -> freetype != null;
stdenv.mkDerivation rec {
name = "ffmpeg-1.2.3";
@ -59,7 +61,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
++ stdenv.lib.optional playSupport "--enable-ffplay";
++ stdenv.lib.optional playSupport "--enable-ffplay"
++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig";
buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib texinfo perl ]
++ stdenv.lib.optional mp3Support lame
@ -75,7 +78,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394
++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
++ stdenv.lib.optional playSupport SDL;
++ stdenv.lib.optional playSupport SDL
++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ];
enableParallelBuilding = true;

View file

@ -40,7 +40,7 @@ in
installPhase =
''
mkdir -p "$out/lib/locale"
cp -v "$TMPDIR/nix/store/"*"/lib/locale/locale-archive" "$out/lib/locale"
cp -v "$TMPDIR/$NIX_STORE/"*"/lib/locale/locale-archive" "$out/lib/locale"
'';
meta.description = "Locale information for the GNU C Library";

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "Glob";
version = "0.7.2";
sha256 = "1x4gh7z9jx9hdkjwsc31yyjssw6i7ziixhjrxr9b8zkijk1b4r5i";
version = "0.7.3";
sha256 = "0yl0wxbd03dv0hfr2aqwm9f3xnhjkdicymqv3nmhjjslqq3a59zd";
buildDepends = [ dlist filepath transformers ];
meta = {
homepage = "http://iki.fi/matti.niemenmaa/glob/";

View file

@ -8,11 +8,15 @@ cabal.mkDerivation (self: {
isExecutable = true;
buildDepends = [ HDBC mtl time utf8String ];
extraLibraries = [ odbc ];
noHaddock = true; # Haddocks currently fail to build
meta = {
homepage = "https://github.com/hdbc/hdbc-odbc";
description = "ODBC driver for HDBC";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
maintainers = [
self.stdenv.lib.maintainers.andres
self.stdenv.lib.maintainers.ocharles
];
};
})

View file

@ -1,10 +1,15 @@
{ cabal, diffutils }:
{ cabal, cmdargs, diffutils, doctest, filepath, hspec, lens, mtl
, syb
}:
cabal.mkDerivation (self: {
pname = "HList";
version = "0.2.3";
sha256 = "1efbe0c2cb361ab0a9d864a09f9c58075132cb50094207260cb1363fe73c2908";
version = "0.3.0.1";
sha256 = "03mp99pb8whh3whyffyj8wbld8lv8i930dyjdpyfwiaj13x05iy4";
buildDepends = [ mtl ];
testDepends = [ cmdargs doctest filepath hspec lens mtl syb ];
buildTools = [ diffutils ];
doCheck = false;
meta = {
description = "Heterogeneous lists";
license = self.stdenv.lib.licenses.mit;

View file

@ -0,0 +1,24 @@
{ cabal, caseInsensitive, conduit, deepseq, httpdShed, httpTypes
, HUnit, mtl, network, parsec, pureMD5, split, testFramework
, testFrameworkHunit, wai, warp
}:
cabal.mkDerivation (self: {
pname = "HTTP";
version = "4000.2.9";
sha256 = "0fnf4blh7gw0cbap16ss811wr0haa2gqd0gzdbz668jk58n1gmz7";
buildDepends = [ mtl network parsec ];
testDepends = [
caseInsensitive conduit deepseq httpdShed httpTypes HUnit mtl
network pureMD5 split testFramework testFrameworkHunit wai warp
];
jailbreak = true;
doCheck = false;
meta = {
homepage = "https://github.com/haskell/HTTP";
description = "A library for client-side HTTP";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "ListLike";
version = "4.0.0";
sha256 = "13dw8pkj8dwxb81gbcm7gn221zyr3ck9s9s1iv7v1b69chv0zyxk";
version = "4.0.1";
sha256 = "1ny6h3f1l0gigyv2rs24s7w158vsflrdx4i9v1al4910cxh56awv";
buildDepends = [ text vector ];
testDepends = [ HUnit QuickCheck random text vector ];
meta = {

View file

@ -1,10 +1,10 @@
{ cabal, extensibleExceptions, transformers }:
{ cabal, extensibleExceptions, monadsTf, transformers }:
cabal.mkDerivation (self: {
pname = "MonadCatchIO-transformers";
version = "0.3.0.0";
sha256 = "0v7k6npfr1x9s4bk409y6sc1vhzs5pm4mwpky356z7kdvz2z274c";
buildDepends = [ extensibleExceptions transformers ];
version = "0.3.1.0";
sha256 = "1r5syyalk8a81byhk39yp0j7vdrvlrpppbg52dql1fx6kfhysaxn";
buildDepends = [ extensibleExceptions monadsTf transformers ];
meta = {
description = "Monad-transformer compatible version of the Control.Exception module";
license = self.stdenv.lib.licenses.bsd3;

View file

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "accelerate-cuda";
version = "0.13.0.4";
sha256 = "0zdb02mj9sbkj51a1q7sl6kmjx51gvps52dwc70qpm3rk71qnp1k";
version = "0.14.0.0";
sha256 = "1qms1w5rjjd77lldds2ljj9zr15dybnsaq8vxfyb5a4diq12bmi5";
buildDepends = [
accelerate binary cryptohash cuda fclabels filepath hashable
hashtables languageCQuote mainlandPretty mtl SafeSemaphore srcloc

View file

@ -1,22 +1,23 @@
{ cabal, accelerate, accelerateCuda, accelerateFft, accelerateIo
, attoparsec, bmp, bytestringLexing, cereal, cmdargs, criterion
, cuda, deepseq, fclabels, filepath, gloss, hashtables, mtl
, mwcRandom, pgm, QuickCheck, random, repa, repaIo, testFramework
, testFrameworkQuickcheck2, vector, vectorAlgorithms
, attoparsec, bmp, bytestringLexing, cereal, criterion, ekg
, fclabels, filepath, gloss, glossAccelerate, glossRasterAccelerate
, HUnit, mwcRandom, primitive, QuickCheck, random, repa, repaIo
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
, vector, vectorAlgorithms
}:
cabal.mkDerivation (self: {
pname = "accelerate-examples";
version = "0.13.0.0";
sha256 = "18f8p47sf10zn678540qzzf5pl18w9f068s83lpz4lk0r5gf4lzx";
version = "0.14.0.0";
sha256 = "01hxww3ypjlcfimkvf7gxl2g7msad2yw1d6m0h4kkfqvpx84nfwr";
isLibrary = false;
isExecutable = true;
buildDepends = [
accelerate accelerateCuda accelerateFft accelerateIo attoparsec bmp
bytestringLexing cereal cmdargs criterion cuda deepseq fclabels
filepath gloss hashtables mtl mwcRandom pgm QuickCheck random repa
repaIo testFramework testFrameworkQuickcheck2 vector
vectorAlgorithms
bytestringLexing cereal criterion ekg fclabels filepath gloss
glossAccelerate glossRasterAccelerate HUnit mwcRandom primitive
QuickCheck random repa repaIo testFramework testFrameworkHunit
testFrameworkQuickcheck2 vector vectorAlgorithms
];
configureFlags = "-f-opencl";
meta = {

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "accelerate-fft";
version = "0.13.0.0";
sha256 = "0gqdb7m0qf8wvccqnz9pafbvas3viwhr9i422cmfvjpxsmnzlcp7";
version = "0.14.0.0";
sha256 = "1rsrgrqn1gdds2wvv1mgzd3yg2mvbkgnj63ygjyzsk9j00wavd1g";
buildDepends = [ accelerate accelerateCuda cuda cufft ];
meta = {
homepage = "https://github.com/AccelerateHS/accelerate-fft";

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "accelerate-io";
version = "0.13.0.2";
sha256 = "0lm1kkjs5gbd70k554vi9977v4bxxcxaw39r9wmwxf8nx2qxvshh";
version = "0.14.0.0";
sha256 = "1vvjmsfaz5xbvvb4x2fym43xvcjv41baxlfhlycgizaca4yw8w9h";
buildDepends = [ accelerate bmp repa vector ];
meta = {
homepage = "https://github.com/AccelerateHS/accelerate-io";

View file

@ -1,10 +1,12 @@
{ cabal, fclabels, hashable, hashtables }:
{ cabal, fclabels, hashable, hashtables, unorderedContainers }:
cabal.mkDerivation (self: {
pname = "accelerate";
version = "0.13.0.5";
sha256 = "1vqkv3k0w1zy0111a786npf3hypbcg675lbdkv2cf3zx5hqcnn6j";
buildDepends = [ fclabels hashable hashtables ];
version = "0.14.0.0";
sha256 = "0b6mnv5l2vrbljak2yx9akpsyqc0qg1il54w0rlfm29fgqknlhjh";
buildDepends = [
fclabels hashable hashtables unorderedContainers
];
jailbreak = true;
meta = {
homepage = "https://github.com/AccelerateHS/accelerate/";

View file

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "active";
version = "0.1.0.9";
sha256 = "0639qp4yc3dfvc9xcjk9k7qagvbcjwdgz3lklqsak9h551ccl7bv";
version = "0.1.0.10";
sha256 = "173ri9hv86sjfp3a0jp1y3v8rz0lfb6nz3yilcfvgc9sglcxa4bm";
buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
testDepends = [
newtype QuickCheck semigroupoids semigroups vectorSpace

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "asn1-types";
version = "0.2.1";
sha256 = "1gnyvinimxb9vw3gwvsdvja8ascm07v9f5grxh42fzqkx6fm5xvr";
version = "0.2.2";
sha256 = "0h3ww7iyf1xzl88mzmi03h6ws942953dr56v896vrkj3mj01hayx";
buildDepends = [ time ];
meta = {
homepage = "http://github.com/vincenthz/hs-asn1-types";

View file

@ -5,8 +5,8 @@
cabal.mkDerivation (self: {
pname = "bert";
version = "1.2.1.1";
sha256 = "1g5sm23cxlzc7lqdlrjn4f89g65ia2bhr25yfh286awxf23z8pyh";
version = "1.2.2";
sha256 = "1dlq9fl5d2adprcybs4d4cyhj9q2c1l4kcc6vnnyhbyn201gxgpn";
buildDepends = [
binary binaryConduit conduit mtl network networkConduit parsec time
void

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "blaze-builder";
version = "0.3.2.0";
sha256 = "169q318jxhk7rmb8r679zhcdcmcca87d55341cnzajmc0580n6ih";
version = "0.3.3.0";
sha256 = "0j6nrwcnpcr7c17cxw3v85m19q8z91wb6jir8c6kls5m321hwd63";
buildDepends = [ text ];
meta = {
homepage = "http://github.com/meiersi/blaze-builder";

View file

@ -1,10 +1,12 @@
{ cabal, cairo, gtk2hsBuildtools, libc, mtl, pkgconfig, zlib }:
{ cabal, cairo, gtk2hsBuildtools, libc, mtl, pkgconfig, utf8String
, zlib
}:
cabal.mkDerivation (self: {
pname = "cairo";
version = "0.12.4";
sha256 = "0gy6nxhxam3yv0caj4psg9dd1a5yazh616fjbmjfh0kbk8vl6fbq";
buildDepends = [ mtl ];
version = "0.12.5.0";
sha256 = "1khpksznh51yl27hs0zbabx8df04d26ccwh0vjidcwf3flvrbgwb";
buildDepends = [ mtl utf8String ];
buildTools = [ gtk2hsBuildtools ];
extraLibraries = [ cairo libc pkgconfig zlib ];
pkgconfigDepends = [ cairo ];

View file

@ -0,0 +1,24 @@
{ cabal, attoparsec, blazeBuilder, deepseq, HUnit, QuickCheck
, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
, unorderedContainers, vector
}:
cabal.mkDerivation (self: {
pname = "cassava";
version = "0.2.2.0";
sha256 = "0jv8lb9z7yf8rddyac0frsw4d1gchrgx8l9rryhl88gs7jss7dh7";
buildDepends = [
attoparsec blazeBuilder deepseq text unorderedContainers vector
];
testDepends = [
attoparsec HUnit QuickCheck testFramework testFrameworkHunit
testFrameworkQuickcheck2 text unorderedContainers vector
];
meta = {
homepage = "https://github.com/tibbe/cassava";
description = "A CSV parsing and encoding library";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.ocharles ];
};
})

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cereal-conduit";
version = "0.7.1";
sha256 = "0ry6vc3nkb1lj0p103b8pyd3472hx62s3c7yw3fk8mbjlygxyv43";
version = "0.7.2";
sha256 = "03jlhpz82a7j7n0351db0h7pkxihik3fv0wgjny7i0vlq7gyqdpl";
buildDepends = [ cereal conduit transformers ];
testDepends = [ cereal conduit HUnit mtl resourcet transformers ];
meta = {

View file

@ -0,0 +1,14 @@
{ cabal, libdevil }:
cabal.mkDerivation (self: {
pname = "Codec-Image-DevIL";
version = "0.2.3";
sha256 = "1kv3hns9f0bhfb723nj9szyz3zfqpvy02azzsiymzjz4ajhqmrsz";
buildDepends = [ libdevil ];
meta = {
homepage = "http://hackage.haskell.org/package/Codec-Image-DevIL";
description = "Simple FFI interface to the DevIL image library";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View file

@ -1,17 +1,17 @@
{ cabal, doctest, hspec, liftedBase, mmorph, monadControl, mtl
, QuickCheck, resourcet, text, transformers, transformersBase, void
{ cabal, hspec, liftedBase, mmorph, monadControl, mtl, QuickCheck
, resourcet, text, transformers, transformersBase, void
}:
cabal.mkDerivation (self: {
pname = "conduit";
version = "1.0.9";
sha256 = "00xzy6iq98p0b8bqncj2xl1gzba1kr58xmfbc3s29bqg1sisvjsz";
version = "1.0.9.3";
sha256 = "162lf83v0cip48y7a5mgvxrxnpr1vpc4lpcr8rbh0w981wkaxk4h";
buildDepends = [
liftedBase mmorph monadControl mtl resourcet text transformers
transformersBase void
];
testDepends = [
doctest hspec mtl QuickCheck resourcet text transformers void
hspec mtl QuickCheck resourcet text transformers void
];
meta = {
homepage = "http://github.com/snoyberg/conduit";

View file

@ -4,8 +4,8 @@
cabal.mkDerivation (self: {
pname = "connection";
version = "0.1.3";
sha256 = "13bwlbga612kc7g3m3rrdzbdv4w0glp4af9r6crwgjsmxgimrgs9";
version = "0.1.3.1";
sha256 = "1z9vb20466lg7l8z4abfbsdzpix18hswpqcl7s2gv838s2wvd16w";
buildDepends = [
certificate cprngAes dataDefault network socks tls tlsExtra
];

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "cuda";
version = "0.5.1.0";
sha256 = "1zsfsz8i05iq54wxj1maj6qqzv4ibr459h47knc7ds1qv4giwzhl";
version = "0.5.1.1";
sha256 = "0bz1pfcxxvq1s47nrwgj9cqmr20p9n3hh2hilih8083hnjjwh40x";
buildTools = [ c2hs ];
extraLibraries = [ cudatoolkit nvidia_x11 self.stdenv.gcc ];
doCheck = false;

View file

@ -2,8 +2,8 @@
cabal.mkDerivation (self: {
pname = "data-memocombinators";
version = "0.4.4";
sha256 = "06x79rgxi6cxrpzjzzsjk7yj7i0ajmcgns0n12lxakz9vxbqxyn2";
version = "0.5.0";
sha256 = "1kh2xj1z68gig8y5fqfwaha0mcd41laa2di9x2hryjwdgzswxy74";
buildDepends = [ dataInttrie ];
meta = {
homepage = "http://github.com/luqui/data-memocombinators";

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