Merge branch 'master' of https://github.com/NixOS/nixpkgs into ansible

This commit is contained in:
Jussi Maki 2014-05-26 10:28:52 +02:00
commit ab3aed6dfc
207 changed files with 1727 additions and 942 deletions

View File

@ -91,4 +91,7 @@ foreach my $file (@{$data->{list}->{attrs}}) {
my $sha256 = hashFile("sha256", 0, $storePath) or die; my $sha256 = hashFile("sha256", 0, $storePath) or die;
symlink("../$fn", "$tarballsCache/sha256/$sha256"); symlink("../$fn", "$tarballsCache/sha256/$sha256");
$sha256 = hashFile("sha256", 1, $storePath) or die;
symlink("../$fn", "$tarballsCache/sha256/$sha256");
} }

View File

@ -52,12 +52,12 @@ sub createMachine {
my ($args) = @_; my ($args) = @_;
my $vm = Machine->new({%{$args}, log => $log, redirectSerial => ($ENV{USE_SERIAL} // "0") ne "1"}); my $vm = Machine->new({%{$args}, log => $log, redirectSerial => ($ENV{USE_SERIAL} // "0") ne "1"});
$vms{$vm->name} = $vm; $vms{$vm->name} = $vm;
$context .= "my \$" . $vm->name . " = \$vms{'" . $vm->name . "'}; ";
return $vm; return $vm;
} }
foreach my $vmScript (@ARGV) { foreach my $vmScript (@ARGV) {
my $vm = createMachine({startCommand => $vmScript}); my $vm = createMachine({startCommand => $vmScript});
$context .= "my \$" . $vm->name . " = \$vms{'" . $vm->name . "'}; ";
} }

View File

@ -0,0 +1,5 @@
{ config, pkgs, ...}:
{
imports = [ ./amazon-base-config.nix ];
ec2.hvm = true;
}

View File

@ -0,0 +1,33 @@
{ config, pkgs, lib, ...}:
let
cloudUtils = pkgs.fetchurl {
url = "https://launchpad.net/cloud-utils/trunk/0.27/+download/cloud-utils-0.27.tar.gz";
sha256 = "16shlmg36lidp614km41y6qk3xccil02f5n3r4wf6d1zr5n4v8vd";
};
growpart = pkgs.stdenv.mkDerivation {
name = "growpart";
src = cloudUtils;
buildPhase = ''
cp bin/growpart $out
sed -i 's|awk|gawk|' $out
sed -i 's|sed|gnused|' $out
'';
dontInstall = true;
dontPatchShebangs = true;
};
in
{
imports = [ ./amazon-base-config.nix ];
ec2.hvm = true;
boot.loader.grub.device = lib.mkOverride 0 "nodev";
boot.initrd.extraUtilsCommands = ''
cp -v ${pkgs.gawk}/bin/gawk $out/bin/gawk
cp -v ${pkgs.gnused}/bin/sed $out/bin/gnused
cp -v ${pkgs.utillinux}/sbin/sfdisk $out/bin/sfdisk
cp -v ${growpart} $out/bin/growpart
'';
boot.initrd.postDeviceCommands = ''
[ -e /dev/xvda ] && [ -e /dev/xvda1 ] && TMPDIR=/run sh $(type -P growpart) /dev/xvda 1
'';
}

View File

@ -18,7 +18,7 @@ parser.add_argument('--hvm', dest='hvm', action='store_true', help='Create HVM i
parser.add_argument('--key', dest='key_name', action='store_true', help='Keypair used for HVM instance creation', default="rob") parser.add_argument('--key', dest='key_name', action='store_true', help='Keypair used for HVM instance creation', default="rob")
args = parser.parse_args() args = parser.parse_args()
instance_type = "m3.xlarge" if args.hvm else "m1.small" instance_type = "m3.medium" if args.hvm else "m1.small"
ebs_size = 8 if args.hvm else 20 ebs_size = 8 if args.hvm else 20
@ -52,7 +52,6 @@ depl.deploy(allow_reboot=True)
m = depl.machines['machine'] m = depl.machines['machine']
# Do the installation. # Do the installation.
device="/dev/xvdg" device="/dev/xvdg"
if args.hvm: if args.hvm:
@ -66,24 +65,27 @@ m.run_command("mkdir -p /mnt")
m.run_command("mount {0} /mnt".format(device)) m.run_command("mount {0} /mnt".format(device))
m.run_command("touch /mnt/.ebs") m.run_command("touch /mnt/.ebs")
m.run_command("mkdir -p /mnt/etc/nixos") m.run_command("mkdir -p /mnt/etc/nixos")
m.run_command("nix-channel --add http://nixos.org/channels/nixos-{} nixos".format(args.channel)) m.run_command("nix-channel --add http://nixos.org/channels/nixos-{} nixos".format(args.channel))
m.run_command("nix-channel --update") m.run_command("nix-channel --update")
m.run_command("nixos-rebuild switch")
version = m.run_command("nixos-version", capture_stdout=True).split(' ')[0] version = m.run_command("nix-instantiate --eval-only -A lib.nixpkgsVersion '<nixpkgs>'", capture_stdout=True).split(' ')[0].replace('"','').strip()
print >> sys.stderr, "NixOS version is {0}".format(version) print >> sys.stderr, "NixOS version is {0}".format(version)
m.upload_file("./amazon-base-config.nix", "/mnt/etc/nixos/configuration.nix")
m.run_command("nixos-install")
if args.hvm: if args.hvm:
m.upload_file("./amazon-base-config.nix", "/mnt/etc/nixos/amazon-base-config.nix")
m.upload_file("./amazon-hvm-config.nix", "/mnt/etc/nixos/configuration.nix")
m.upload_file("./amazon-hvm-install-config.nix", "/mnt/etc/nixos/amazon-hvm-install-config.nix")
m.run_command("NIXOS_CONFIG=/etc/nixos/amazon-hvm-install-config.nix nixos-install")
m.run_command('nix-env -iA nixos.pkgs.grub') m.run_command('nix-env -iA nixos.pkgs.grub')
m.run_command('cp /nix/store/*-grub-0.97*/lib/grub/i386-pc/* /mnt/boot/grub') m.run_command('cp /nix/store/*-grub-0.97*/lib/grub/i386-pc/* /mnt/boot/grub')
m.run_command('sed -i "s|hd0|hd0,0|" /mnt/boot/grub/menu.lst')
m.run_command('echo "(hd1) /dev/xvdg" > device.map') m.run_command('echo "(hd1) /dev/xvdg" > device.map')
m.run_command('echo -e "root (hd1,0)\nsetup (hd1)" | grub --device-map=device.map --batch') m.run_command('echo -e "root (hd1,0)\nsetup (hd1)" | grub --device-map=device.map --batch')
else:
m.upload_file("./amazon-base-config.nix", "/mnt/etc/nixos/configuration.nix")
m.run_command("nixos-install")
m.run_command("umount /mnt") m.run_command("umount /mnt")
if args.hvm: if args.hvm:
ami_name = "nixos-{0}-x86_64-ebs-hvm".format(version) ami_name = "nixos-{0}-x86_64-ebs-hvm".format(version)
description = "NixOS {0} (x86_64; EBS root; hvm)".format(version) description = "NixOS {0} (x86_64; EBS root; hvm)".format(version)

View File

@ -4,10 +4,11 @@
machine = machine =
{ config, pkgs, resources, ... }: { config, pkgs, resources, ... }:
{ deployment.targetEnv = "ec2"; { deployment.targetEnv = "ec2";
deployment.ec2.instanceType = "m1.large"; deployment.ec2.instanceType = "c3.large";
deployment.ec2.securityGroups = [ "admin" ]; deployment.ec2.securityGroups = [ "admin" ];
deployment.ec2.ebsBoot = false; deployment.ec2.ebsBoot = false;
deployment.ec2.keyPair = resources.ec2KeyPairs.keypair.name; deployment.ec2.keyPair = resources.ec2KeyPairs.keypair.name;
deployment.ec2.zone = "us-east-1e";
environment.systemPackages = [ pkgs.parted ]; environment.systemPackages = [ pkgs.parted ];
}; };
} }

View File

@ -10,6 +10,7 @@ with lib;
# TODO: find another name for it. # TODO: find another name for it.
fonts = mkOption { fonts = mkOption {
type = types.listOf types.path;
example = [ pkgs.dejavu_fonts ]; example = [ pkgs.dejavu_fonts ];
description = "List of primary font paths."; description = "List of primary font paths.";
apply = list: list ++ apply = list: list ++

View File

@ -2,6 +2,12 @@
with lib; with lib;
let
tzdir = "${pkgs.tzdata}/share/zoneinfo";
in
{ {
options = { options = {
@ -26,8 +32,10 @@ with lib;
environment.variables.TZDIR = "/etc/zoneinfo"; environment.variables.TZDIR = "/etc/zoneinfo";
systemd.globalEnvironment.TZDIR = tzdir;
environment.etc.localtime = environment.etc.localtime =
{ source = "${pkgs.tzdata}/share/zoneinfo/${config.time.timeZone}"; { source = "${tzdir}/${config.time.timeZone}";
mode = "direct-symlink"; mode = "direct-symlink";
}; };

View File

@ -39,6 +39,9 @@ with lib;
# Add Memtest86+ to the CD. # Add Memtest86+ to the CD.
boot.loader.grub.memtest86.enable = true; boot.loader.grub.memtest86.enable = true;
# Get a console as soon as the initrd loads fbcon on EFI boot # Get a console as soon as the initrd loads fbcon on EFI boot.
boot.initrd.kernelModules = [ "fbcon" ]; boot.initrd.kernelModules = [ "fbcon" ];
# Allow the user to log in as root without a password.
security.initialRootPassword = "";
} }

View File

@ -67,7 +67,7 @@ let
${config.boot.kernelPackages.kernel}/bzImage ::boot/bzImage ${config.boot.kernelPackages.kernel}/bzImage ::boot/bzImage
mcopy -v -i "$out" \ mcopy -v -i "$out" \
${config.system.build.initialRamdisk}/initrd ::boot/initrd ${config.system.build.initialRamdisk}/initrd ::boot/initrd
''; ''; # */
targetArch = if pkgs.stdenv.isi686 then targetArch = if pkgs.stdenv.isi686 then
"ia32" "ia32"
@ -177,39 +177,45 @@ in
# recognise that. # recognise that.
boot.kernelParams = [ "root=LABEL=${config.isoImage.volumeID}" ]; boot.kernelParams = [ "root=LABEL=${config.isoImage.volumeID}" ];
# Note that /dev/root is a symlink to the actual root device fileSystems."/" =
# specified on the kernel command line, created in the stage 1 init { fsType = "tmpfs";
# script. device = "none";
fileSystems."/".device = "/dev/root"; options = "mode=0755";
};
fileSystems."/nix/store" = # Note that /dev/root is a symlink to the actual root device
# specified on the kernel command line, created in the stage 1
# init script.
fileSystems."/iso" =
{ device = "/dev/root";
neededForBoot = true;
noCheck = true;
};
fileSystems."/nix/.ro-store" =
{ fsType = "squashfs"; { fsType = "squashfs";
device = "/nix-store.squashfs"; device = "/iso/nix-store.squashfs";
options = "loop"; options = "loop";
neededForBoot = true;
};
fileSystems."/nix/.rw-store" =
{ fsType = "tmpfs";
device = "none";
options = "mode=0755";
neededForBoot = true;
}; };
boot.initrd.availableKernelModules = [ "squashfs" "iso9660" ]; boot.initrd.availableKernelModules = [ "squashfs" "iso9660" ];
boot.initrd.kernelModules = [ "loop" ]; boot.initrd.kernelModules = [ "loop" ];
# In stage 1, mount a tmpfs on top of / (the ISO image) and # In stage 1, mount a tmpfs on top of /nix/store (the squashfs
# /nix/store (the squashfs image) to make this a live CD. # image) to make this a live CD.
boot.initrd.postMountCommands = boot.initrd.postMountCommands =
'' ''
mkdir -p /unionfs-chroot/ro-root mkdir -p $targetRoot/nix/store
mount --rbind $targetRoot /unionfs-chroot/ro-root unionfs -o allow_other,cow,nonempty,chroot=$targetRoot,max_files=32768 /nix/.rw-store=RW:/nix/.ro-store=RO $targetRoot/nix/store
mkdir /unionfs-chroot/rw-root
mount -t tmpfs -o "mode=755" none /unionfs-chroot/rw-root
mkdir /mnt-root-union
unionfs -o allow_other,cow,chroot=/unionfs-chroot,max_files=32768 /rw-root=RW:/ro-root=RO /mnt-root-union
oldTargetRoot=$targetRoot
targetRoot=/mnt-root-union
mkdir /unionfs-chroot/rw-store
mount -t tmpfs -o "mode=755" none /unionfs-chroot/rw-store
mkdir -p $oldTargetRoot/nix/store
unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768 /rw-store=RW:/ro-root/nix/store=RO /mnt-root-union/nix/store
''; '';
# Closures to be copied to the Nix store on the CD, namely the init # Closures to be copied to the Nix store on the CD, namely the init
@ -253,10 +259,6 @@ in
{ source = config.system.build.squashfsStore; { source = config.system.build.squashfsStore;
target = "/nix-store.squashfs"; target = "/nix-store.squashfs";
} }
{ # Quick hack: need a mount point for the store.
source = pkgs.runCommand "empty" {} "mkdir -p $out";
target = "/nix/store";
}
] ++ optionals config.isoImage.makeEfiBootable [ ] ++ optionals config.isoImage.makeEfiBootable [
{ source = efiImg; { source = efiImg;
target = "/boot/efi.img"; target = "/boot/efi.img";

View File

@ -80,7 +80,8 @@ mount -t tmpfs -o "mode=0755" none $mountPoint/run
mount -t tmpfs -o "mode=0755" none $mountPoint/var/setuid-wrappers mount -t tmpfs -o "mode=0755" none $mountPoint/var/setuid-wrappers
rm -rf $mountPoint/var/run rm -rf $mountPoint/var/run
ln -s /run $mountPoint/var/run ln -s /run $mountPoint/var/run
cp -f /etc/resolv.conf $mountPoint/etc/resolv.conf rm -f $mountPoint/etc/{resolv.conf,hosts}
cp -f /etc/resolv.conf /etc/hosts $mountPoint/etc/
if [ -n "$runChroot" ]; then if [ -n "$runChroot" ]; then

View File

@ -121,7 +121,6 @@
./services/hardware/pommed.nix ./services/hardware/pommed.nix
./services/hardware/sane.nix ./services/hardware/sane.nix
./services/hardware/udev.nix ./services/hardware/udev.nix
./services/hardware/udisks.nix
./services/hardware/udisks2.nix ./services/hardware/udisks2.nix
./services/hardware/upower.nix ./services/hardware/upower.nix
./services/hardware/thinkfan.nix ./services/hardware/thinkfan.nix

View File

@ -7,7 +7,10 @@ let
customGrsecPkg = customGrsecPkg =
(import ../../../pkgs/build-support/grsecurity (import ../../../pkgs/build-support/grsecurity
{ grsecOptions = cfg; } {
inherit lib pkgs;
grsecOptions = cfg;
}
).grsecPackage; ).grsecPackage;
in in
{ {

View File

@ -7,8 +7,6 @@ let
inherit (pkgs) alsaUtils; inherit (pkgs) alsaUtils;
soundState = "/var/lib/alsa/asound.state";
in in
{ {
@ -35,6 +33,17 @@ in
''; '';
}; };
extraConfig = mkOption {
type = types.lines;
default = "";
example = ''
defaults.pcm.!card 3
'';
description = ''
Set addition configuration for system-wide alsa.
'';
};
}; };
}; };
@ -46,6 +55,13 @@ in
environment.systemPackages = [ alsaUtils ]; environment.systemPackages = [ alsaUtils ];
environment.etc = mkIf (config.sound.extraConfig != "")
[
{ source = pkgs.writeText "asound.conf" config.sound.extraConfig;
target = "asound.conf";
}
];
# ALSA provides a udev rule for restoring volume settings. # ALSA provides a udev rule for restoring volume settings.
services.udev.packages = [ alsaUtils ]; services.udev.packages = [ alsaUtils ];

View File

@ -4,6 +4,9 @@
with lib; with lib;
let
gnome3 = config.environment.gnome3.packageSet;
in
{ {
###### interface ###### interface
@ -30,9 +33,9 @@ with lib;
config = mkIf config.services.gnome3.evolution-data-server.enable { config = mkIf config.services.gnome3.evolution-data-server.enable {
environment.systemPackages = [ pkgs.evolution_data_server ]; environment.systemPackages = [ gnome3.evolution_data_server ];
services.dbus.packages = [ pkgs.evolution_data_server ]; services.dbus.packages = [ gnome3.evolution_data_server ];
}; };

View File

@ -1,45 +0,0 @@
# Udisks daemon.
{ config, lib, pkgs, ... }:
with lib;
{
###### interface
options = {
services.udisks = {
enable = mkOption {
type = types.bool;
default = false;
description = ''
Whether to enable Udisks, a DBus service that allows
applications to query and manipulate storage devices.
'';
};
};
};
###### implementation
config = mkIf config.services.udisks.enable {
environment.systemPackages = [ pkgs.udisks ];
services.dbus.packages = [ pkgs.udisks ];
system.activationScripts.udisks =
''
mkdir -m 0755 -p /var/lib/udisks
'';
services.udev.packages = [ pkgs.udisks ];
};
}

View File

@ -125,13 +125,17 @@ in
#include <abstractions/base> #include <abstractions/base>
#include <abstractions/nameservice> #include <abstractions/nameservice>
${pkgs.glibc}/lib/*.so mr, ${pkgs.glibc}/lib/*.so mr,
${pkgs.libevent}/lib/libevent*.so* mr, ${pkgs.libevent}/lib/libevent*.so* mr,
${pkgs.curl}/lib/libcurl*.so* mr, ${pkgs.curl}/lib/libcurl*.so* mr,
${pkgs.openssl}/lib/libssl*.so* mr, ${pkgs.openssl}/lib/libssl*.so* mr,
${pkgs.openssl}/lib/libcrypto*.so* mr, ${pkgs.openssl}/lib/libcrypto*.so* mr,
${pkgs.zlib}/lib/libz*.so* mr, ${pkgs.zlib}/lib/libz*.so* mr,
${pkgs.libssh2}/lib/libssh2*.so* mr, ${pkgs.libssh2}/lib/libssh2*.so* mr,
${pkgs.systemd}/lib/libsystemd*.so* mr,
${pkgs.xz}/lib/liblzma*.so* mr,
${pkgs.libgcrypt}/lib/libgcrypt*.so* mr,
${pkgs.libgpgerror}/lib/libgpg-error*.so* mr,
@{PROC}/sys/kernel/random/uuid r, @{PROC}/sys/kernel/random/uuid r,
@{PROC}/sys/vm/overcommit_memory r, @{PROC}/sys/vm/overcommit_memory r,

View File

@ -101,13 +101,14 @@ in {
}; };
environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules" environment.variables.GIO_EXTRA_MODULES = [ "${gnome3.dconf}/lib/gio/modules"
"${pkgs.glib_networking}/lib/gio/modules" ]; "${gnome3.glib_networking}/lib/gio/modules" ];
environment.systemPackages = environment.systemPackages =
[ pkgs.desktop_file_utils [ pkgs.desktop_file_utils
pkgs.glib_networking gnome3.glib_networking
pkgs.gtk3 # for gtk-update-icon-cache gnome3.gtk3 # for gtk-update-icon-cache
pkgs.ibus pkgs.ibus
pkgs.shared_mime_info # for update-mime-database pkgs.shared_mime_info # for update-mime-database
gnome3.gvfs
gnome3.dconf gnome3.dconf
gnome3.gnome-backgrounds gnome3.gnome-backgrounds
gnome3.gnome_control_center gnome3.gnome_control_center

View File

@ -169,7 +169,7 @@ in
videoDrivers = mkOption { videoDrivers = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
# !!! We'd like "nv" here, but it segfaults the X server. # !!! We'd like "nv" here, but it segfaults the X server.
default = [ "ati" "cirrus" "intel" "vesa" "vmware" ]; default = [ "ati" "cirrus" "intel" "vesa" "vmware" "modesetting" ];
example = [ "vesa" ]; example = [ "vesa" ];
description = '' description = ''
The names of the video drivers the configuration The names of the video drivers the configuration

View File

@ -127,11 +127,6 @@ in
mkdir -m 0555 -p /var/empty mkdir -m 0555 -p /var/empty
''; '';
system.activationScripts.media =
''
mkdir -m 0755 -p /media
'';
system.activationScripts.usrbinenv = system.activationScripts.usrbinenv =
'' ''
mkdir -m 0755 -p /usr/bin mkdir -m 0755 -p /usr/bin

View File

@ -58,6 +58,7 @@ echo
mkdir -p /etc mkdir -p /etc
touch /etc/fstab # to shut up mount touch /etc/fstab # to shut up mount
touch /etc/mtab # to shut up mke2fs touch /etc/mtab # to shut up mke2fs
touch /etc/initrd-release
mkdir -p /proc mkdir -p /proc
mount -t proc none /proc mount -t proc none /proc
mkdir -p /sys mkdir -p /sys
@ -345,8 +346,8 @@ exec 3>&-
udevadm control --exit || true udevadm control --exit || true
# Kill any remaining processes, just to be sure we're not taking any # Kill any remaining processes, just to be sure we're not taking any
# with us into stage 2. unionfs-fuse mounts require the unionfs process. # with us into stage 2. But keep storage daemons like unionfs-fuse.
pkill -9 -v '(1|unionfs)' pkill -9 -v -f '@'
if test -n "$debug1mounts"; then fail; fi if test -n "$debug1mounts"; then fail; fi

View File

@ -344,5 +344,8 @@ in
(isYes "BLK_DEV_INITRD") (isYes "BLK_DEV_INITRD")
]; ];
# Prevent systemd from waiting for the /dev/root symlink.
systemd.units."dev-root.device".text = "";
}; };
} }

View File

@ -1,164 +1,183 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
with lib; with lib;
let
cfg = config.ec2;
in
{ {
imports = [ ../profiles/headless.nix ./ec2-data.nix ]; imports = [ ../profiles/headless.nix ./ec2-data.nix ];
system.build.amazonImage = options = {
pkgs.vmTools.runInLinuxVM ( ec2 = {
pkgs.runCommand "amazon-image" hvm = mkOption {
{ preVM = default = false;
'' description = ''
mkdir $out Whether the EC2 instance is a HVM instance.
diskImage=$out/nixos.img '';
${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage "4G" };
mv closure xchg/ };
''; };
buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph =
[ "closure" config.system.build.toplevel ];
}
''
# Create an empty filesystem and mount it.
${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda
${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda
mkdir /mnt
mount /dev/vda /mnt
# The initrd expects these directories to exist. config = {
mkdir /mnt/dev /mnt/proc /mnt/sys system.build.amazonImage =
pkgs.vmTools.runInLinuxVM (
pkgs.runCommand "amazon-image"
{ preVM =
''
mkdir $out
diskImage=$out/nixos.img
${pkgs.vmTools.qemu}/bin/qemu-img create -f raw $diskImage "4G"
mv closure xchg/
'';
buildInputs = [ pkgs.utillinux pkgs.perl ];
exportReferencesGraph =
[ "closure" config.system.build.toplevel ];
}
''
# Create an empty filesystem and mount it.
${pkgs.e2fsprogs}/sbin/mkfs.ext4 -L nixos /dev/vda
${pkgs.e2fsprogs}/sbin/tune2fs -c 0 -i 0 /dev/vda
mkdir /mnt
mount /dev/vda /mnt
mount -o bind /proc /mnt/proc # The initrd expects these directories to exist.
mkdir /mnt/dev /mnt/proc /mnt/sys
# Copy all paths in the closure to the filesystem. mount -o bind /proc /mnt/proc
storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure)
mkdir -p /mnt/nix/store # Copy all paths in the closure to the filesystem.
echo "copying everything (will take a while)..." storePaths=$(perl ${pkgs.pathsFromGraph} /tmp/xchg/closure)
cp -prd $storePaths /mnt/nix/store/
# Register the paths in the Nix database. mkdir -p /mnt/nix/store
printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \ echo "copying everything (will take a while)..."
chroot /mnt ${config.nix.package}/bin/nix-store --load-db cp -prd $storePaths /mnt/nix/store/
# Create the system profile to allow nixos-rebuild to work. # Register the paths in the Nix database.
chroot /mnt ${config.nix.package}/bin/nix-env \ printRegistration=1 perl ${pkgs.pathsFromGraph} /tmp/xchg/closure | \
-p /nix/var/nix/profiles/system --set ${config.system.build.toplevel} chroot /mnt ${config.nix.package}/bin/nix-store --load-db
# `nixos-rebuild' requires an /etc/NIXOS. # Create the system profile to allow nixos-rebuild to work.
mkdir -p /mnt/etc chroot /mnt ${config.nix.package}/bin/nix-env \
touch /mnt/etc/NIXOS -p /nix/var/nix/profiles/system --set ${config.system.build.toplevel}
# `switch-to-configuration' requires a /bin/sh # `nixos-rebuild' requires an /etc/NIXOS.
mkdir -p /mnt/bin mkdir -p /mnt/etc
ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh touch /mnt/etc/NIXOS
# Install a configuration.nix. # `switch-to-configuration' requires a /bin/sh
mkdir -p /mnt/etc/nixos mkdir -p /mnt/bin
cp ${./amazon-config.nix} /mnt/etc/nixos/configuration.nix ln -s ${config.system.build.binsh}/bin/sh /mnt/bin/sh
# Generate the GRUB menu. # Install a configuration.nix.
chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot mkdir -p /mnt/etc/nixos
cp ${./amazon-config.nix} /mnt/etc/nixos/configuration.nix
umount /mnt/proc # Generate the GRUB menu.
umount /mnt chroot /mnt ${config.system.build.toplevel}/bin/switch-to-configuration boot
''
);
fileSystems."/".device = "/dev/disk/by-label/nixos"; umount /mnt/proc
umount /mnt
''
);
boot.initrd.kernelModules = [ "xen-blkfront" ]; fileSystems."/".device = "/dev/disk/by-label/nixos";
boot.kernelModules = [ "xen-netfront" ];
boot.kernelParams = [ "console=ttyS0" ];
# Generate a GRUB menu. Amazon's pv-grub uses this to boot our kernel/initrd. boot.initrd.kernelModules = [ "xen-blkfront" ];
boot.loader.grub.version = 1; boot.kernelModules = [ "xen-netfront" ];
boot.loader.grub.device = "nodev";
boot.loader.grub.timeout = 0;
boot.loader.grub.extraPerEntryConfig = "root (hd0)";
boot.initrd.postDeviceCommands = # Generate a GRUB menu. Amazon's pv-grub uses this to boot our kernel/initrd.
'' boot.loader.grub.version = 1;
# Force udev to exit to prevent random "Device or resource busy boot.loader.grub.device = if cfg.hvm then "/dev/xvda" else "nodev";
# while trying to open /dev/xvda" errors from fsck. boot.loader.grub.timeout = 0;
udevadm control --exit || true boot.loader.grub.extraPerEntryConfig = "root (hd0${lib.optionalString cfg.hvm ",0"})";
kill -9 -1
'';
# Mount all formatted ephemeral disks and activate all swap devices. boot.initrd.postDeviceCommands =
# We cannot do this with the fileSystems and swapDevices options ''
# because the set of devices is dependent on the instance type # Force udev to exit to prevent random "Device or resource busy
# (e.g. "m1.large" has one ephemeral filesystem and one swap device, # while trying to open /dev/xvda" errors from fsck.
# while "m1.large" has two ephemeral filesystems and no swap udevadm control --exit || true
# devices). Also, put /tmp and /var on /disk0, since it has a lot kill -9 -1
# more space than the root device. Similarly, "move" /nix to /disk0 '';
# by layering a unionfs-fuse mount on top of it so we have a lot more space for
# Nix operations.
boot.initrd.postMountCommands =
''
diskNr=0
diskForUnionfs=
for device in /dev/xvd[abcde]*; do
if [ "$device" = /dev/xvda -o "$device" = /dev/xvda1 ]; then continue; fi
fsType=$(blkid -o value -s TYPE "$device" || true)
if [ "$fsType" = swap ]; then
echo "activating swap device $device..."
swapon "$device" || true
elif [ "$fsType" = ext3 ]; then
mp="/disk$diskNr"
diskNr=$((diskNr + 1))
echo "mounting $device on $mp..."
if mountFS "$device" "$mp" "" ext3; then
if [ -z "$diskForUnionfs" ]; then diskForUnionfs="$mp"; fi
fi
else
echo "skipping unknown device type $device"
fi
done
if [ -n "$diskForUnionfs" ]; then # Mount all formatted ephemeral disks and activate all swap devices.
mkdir -m 755 -p $targetRoot/$diskForUnionfs/root # We cannot do this with the fileSystems and swapDevices options
# because the set of devices is dependent on the instance type
# (e.g. "m1.large" has one ephemeral filesystem and one swap device,
# while "m1.large" has two ephemeral filesystems and no swap
# devices). Also, put /tmp and /var on /disk0, since it has a lot
# more space than the root device. Similarly, "move" /nix to /disk0
# by layering a unionfs-fuse mount on top of it so we have a lot more space for
# Nix operations.
boot.initrd.postMountCommands =
''
diskNr=0
diskForUnionfs=
for device in /dev/xvd[abcde]*; do
if [ "$device" = /dev/xvda -o "$device" = /dev/xvda1 ]; then continue; fi
fsType=$(blkid -o value -s TYPE "$device" || true)
if [ "$fsType" = swap ]; then
echo "activating swap device $device..."
swapon "$device" || true
elif [ "$fsType" = ext3 ]; then
mp="/disk$diskNr"
diskNr=$((diskNr + 1))
echo "mounting $device on $mp..."
if mountFS "$device" "$mp" "" ext3; then
if [ -z "$diskForUnionfs" ]; then diskForUnionfs="$mp"; fi
fi
else
echo "skipping unknown device type $device"
fi
done
mkdir -m 1777 -p $targetRoot/$diskForUnionfs/root/tmp $targetRoot/tmp if [ -n "$diskForUnionfs" ]; then
mount --bind $targetRoot/$diskForUnionfs/root/tmp $targetRoot/tmp mkdir -m 755 -p $targetRoot/$diskForUnionfs/root
if [ ! -e $targetRoot/.ebs ]; then mkdir -m 1777 -p $targetRoot/$diskForUnionfs/root/tmp $targetRoot/tmp
mkdir -m 755 -p $targetRoot/$diskForUnionfs/root/var $targetRoot/var mount --bind $targetRoot/$diskForUnionfs/root/tmp $targetRoot/tmp
mount --bind $targetRoot/$diskForUnionfs/root/var $targetRoot/var
mkdir -p /unionfs-chroot/ro-nix if [ ! -e $targetRoot/.ebs ]; then
mount --rbind $targetRoot/nix /unionfs-chroot/ro-nix mkdir -m 755 -p $targetRoot/$diskForUnionfs/root/var $targetRoot/var
mount --bind $targetRoot/$diskForUnionfs/root/var $targetRoot/var
mkdir -m 755 -p $targetRoot/$diskForUnionfs/root/nix mkdir -p /unionfs-chroot/ro-nix
mkdir -p /unionfs-chroot/rw-nix mount --rbind $targetRoot/nix /unionfs-chroot/ro-nix
mount --rbind $targetRoot/$diskForUnionfs/root/nix /unionfs-chroot/rw-nix
unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768 /rw-nix=RW:/ro-nix=RO $targetRoot/nix mkdir -m 755 -p $targetRoot/$diskForUnionfs/root/nix
fi mkdir -p /unionfs-chroot/rw-nix
fi mount --rbind $targetRoot/$diskForUnionfs/root/nix /unionfs-chroot/rw-nix
'';
boot.initrd.extraUtilsCommands = unionfs -o allow_other,cow,nonempty,chroot=/unionfs-chroot,max_files=32768 /rw-nix=RW:/ro-nix=RO $targetRoot/nix
'' fi
# We need swapon in the initrd. fi
cp ${pkgs.utillinux}/sbin/swapon $out/bin '';
'';
# Don't put old configurations in the GRUB menu. The user has no boot.initrd.extraUtilsCommands =
# way to select them anyway. ''
boot.loader.grub.configurationLimit = 0; # We need swapon in the initrd.
cp ${pkgs.utillinux}/sbin/swapon $out/bin
'';
# Allow root logins only using the SSH key that the user specified # Don't put old configurations in the GRUB menu. The user has no
# at instance creation time. # way to select them anyway.
services.openssh.enable = true; boot.loader.grub.configurationLimit = 0;
services.openssh.permitRootLogin = "without-password";
# Force getting the hostname from EC2. # Allow root logins only using the SSH key that the user specified
networking.hostName = mkDefault ""; # at instance creation time.
services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password";
# Always include cryptsetup so that Charon can use it. # Force getting the hostname from EC2.
environment.systemPackages = [ pkgs.cryptsetup ]; networking.hostName = mkDefault "";
boot.initrd.supportedFilesystems = [ "unionfs-fuse" ]; # Always include cryptsetup so that Charon can use it.
environment.systemPackages = [ pkgs.cryptsetup ];
boot.initrd.supportedFilesystems = [ "unionfs-fuse" ];
# Prevent logging in as root without a password. This doesn't really matter,
# since the only PAM services that allow logging in with a null
# password are local ones that are inaccessible on EC2 machines.
security.initialRootPassword = mkDefault "!";
};
} }

View File

@ -65,7 +65,7 @@ let
${if cfg.useBootLoader then '' ${if cfg.useBootLoader then ''
-drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \ -drive index=0,id=drive1,file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \
-drive index=1,id=drive2,file=${bootDisk}/disk.img,if=virtio,readonly \ -drive index=1,id=drive2,file=${bootDisk}/disk.img,if=virtio,readonly \
-boot menu=on -boot menu=on \
'' else '' '' else ''
-drive file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \ -drive file=$NIX_DISK_IMAGE,if=virtio,cache=writeback,werror=report \
-kernel ${config.system.build.toplevel}/kernel \ -kernel ${config.system.build.toplevel}/kernel \

View File

@ -62,7 +62,6 @@ in rec {
(all nixos.tests.printing) (all nixos.tests.printing)
(all nixos.tests.proxy) (all nixos.tests.proxy)
(all nixos.tests.simple) (all nixos.tests.simple)
(all nixos.tests.udisks)
(all nixos.tests.udisks2) (all nixos.tests.udisks2)
(all nixos.tests.xfce) (all nixos.tests.xfce)

View File

@ -241,7 +241,6 @@ in rec {
tests.runInMachine = callTest tests/run-in-machine.nix {}; tests.runInMachine = callTest tests/run-in-machine.nix {};
tests.simple = callTest tests/simple.nix {}; tests.simple = callTest tests/simple.nix {};
tests.tomcat = callTest tests/tomcat.nix {}; tests.tomcat = callTest tests/tomcat.nix {};
tests.udisks = callTest tests/udisks.nix {};
tests.udisks2 = callTest tests/udisks2.nix {}; tests.udisks2 = callTest tests/udisks2.nix {};
tests.xfce = callTest tests/xfce.nix {}; tests.xfce = callTest tests/xfce.nix {};

View File

@ -129,9 +129,10 @@ let
#$machine->waitForUnit('getty@tty2'); #$machine->waitForUnit('getty@tty2');
$machine->waitForUnit("rogue"); $machine->waitForUnit("rogue");
$machine->waitForUnit("nixos-manual"); $machine->waitForUnit("nixos-manual");
$machine->waitForUnit("dhcpcd");
${optionalString testChannel '' ${optionalString testChannel ''
$machine->waitForUnit("dhcpcd");
# Allow the machine to talk to the fake nixos.org. # Allow the machine to talk to the fake nixos.org.
$machine->succeed( $machine->succeed(
"rm /etc/hosts", "rm /etc/hosts",
@ -161,10 +162,10 @@ let
"/mnt/etc/nixos/configuration.nix"); "/mnt/etc/nixos/configuration.nix");
# Perform the installation. # Perform the installation.
$machine->succeed("nixos-install >&2"); $machine->succeed("nixos-install < /dev/null >&2");
# Do it again to make sure it's idempotent. # Do it again to make sure it's idempotent.
$machine->succeed("nixos-install >&2"); $machine->succeed("nixos-install < /dev/null >&2");
$machine->succeed("umount /mnt/boot || true"); $machine->succeed("umount /mnt/boot || true");
$machine->succeed("umount /mnt"); $machine->succeed("umount /mnt");
@ -173,7 +174,7 @@ let
$machine->shutdown; $machine->shutdown;
# Now see if we can boot the installation. # Now see if we can boot the installation.
my $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" }); $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" });
# Did /boot get mounted? # Did /boot get mounted?
$machine->waitForUnit("local-fs.target"); $machine->waitForUnit("local-fs.target");
@ -205,7 +206,7 @@ let
# And just to be sure, check that the machine still boots after # And just to be sure, check that the machine still boots after
# "nixos-rebuild switch". # "nixos-rebuild switch".
my $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" }); $machine = createMachine({ ${hdFlags} qemuFlags => "${qemuFlags}" });
$machine->waitForUnit("network.target"); $machine->waitForUnit("network.target");
$machine->shutdown; $machine->shutdown;
''; '';

View File

@ -28,7 +28,9 @@ in
$client1->execute("mumble mumble://client1\@server/test &"); $client1->execute("mumble mumble://client1\@server/test &");
$client2->execute("mumble mumble://client2\@server/test &"); $client2->execute("mumble mumble://client2\@server/test &");
$server->sleep(10); # Wait for Mumble UI to pop up $client1->waitForWindow(qr/Mumble/);
$client2->waitForWindow(qr/Mumble/);
$server->sleep(3); # Wait some more for the Mumble UI
# cancel client audio configuration # cancel client audio configuration
$client1->sendKeys("esc"); $client1->sendKeys("esc");

View File

@ -1,56 +0,0 @@
import ./make-test.nix ({ pkgs, ... }:
let
stick = pkgs.fetchurl {
url = http://nixos.org/~eelco/nix/udisks-test.img.xz;
sha256 = "0was1xgjkjad91nipzclaz5biv3m4b2nk029ga6nk7iklwi19l8b";
};
in
{
machine =
{ config, pkgs, ... }:
{ services.udisks.enable = true;
imports = [ ./common/user-account.nix ];
security.polkit.extraConfig =
''
polkit.addRule(function(action, subject) {
if (subject.user == "alice") return "yes";
});
'';
};
testScript =
''
my $stick = $machine->stateDir . "/usbstick.img";
system("xz -d < ${stick} > $stick") == 0 or die;
$machine->succeed("udisks --enumerate | grep /org/freedesktop/UDisks/devices/vda");
$machine->fail("udisks --enumerate | grep /org/freedesktop/UDisks/devices/sda1");
# Attach a USB stick and wait for it to show up.
$machine->sendMonitorCommand("usb_add disk:$stick");
$machine->waitUntilSucceeds("udisks --enumerate | grep /org/freedesktop/UDisks/devices/sda1");
$machine->succeed("udisks --show-info /dev/sda1 | grep 'label:.*USBSTICK'");
# Mount the stick as a non-root user and do some stuff with it.
$machine->succeed("su - alice -c 'udisks --enumerate | grep /org/freedesktop/UDisks/devices/sda1'");
$machine->succeed("su - alice -c 'udisks --mount /dev/sda1'");
$machine->succeed("su - alice -c 'cat /media/USBSTICK/test.txt'") =~ /Hello World/ or die;
$machine->succeed("su - alice -c 'echo foo > /media/USBSTICK/bar.txt'");
# Unmounting the stick should make the mountpoint disappear.
$machine->succeed("su - alice -c 'udisks --unmount /dev/sda1'");
$machine->fail("[ -d /media/USBSTICK ]");
# Remove the USB stick.
$machine->sendMonitorCommand("usb_del 0.3"); # FIXME
$machine->waitUntilFails("udisks --enumerate | grep /org/freedesktop/UDisks/devices/sda1");
$machine->fail("[ -e /dev/sda ]");
'';
})

View File

@ -6,7 +6,7 @@
, perl, pkgconfig, python, serd, sord, sratom, suil }: , perl, pkgconfig, python, serd, sord, sratom, suil }:
let let
tag = "3.5.357"; tag = "3.5.380";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
src = fetchgit { src = fetchgit {
url = git://git.ardour.org/ardour/ardour.git; url = git://git.ardour.org/ardour/ardour.git;
rev = "refs/tags/${tag}"; rev = "refs/tags/${tag}";
sha256 = "1e026fb9a6ad4179d52c4b578cc3861bdfd3629b9e7b7a7341d431c7d3692c42"; sha256 = "dbcbb2d9143e196d079c27b15266e47d24b81cb7591fe64b717f3485965ded7b";
}; };
buildInputs = buildInputs =
@ -28,9 +28,9 @@ stdenv.mkDerivation rec {
patchPhase = '' patchPhase = ''
# The funny revision number is from `git describe rev` # The funny revision number is from `git describe rev`
printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-gce4d125\"; }\n' > libs/ardour/revision.cc printf '#include "libs/ardour/ardour/revision.h"\nnamespace ARDOUR { const char* revision = \"${tag}-g2f6065b\"; }\n' > libs/ardour/revision.cc
# Note the different version number # Note the different version number
sed -i '33i rev = \"3.5-357-gce4d125\"' wscript sed -i '33i rev = \"3.5-380-g2f6065b\"' wscript
sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript sed 's|/usr/include/libintl.h|${glibc}/include/libintl.h|' -i wscript
sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings sed -e 's|^#!/usr/bin/perl.*$|#!${perl}/bin/perl|g' -i tools/fmt-bindings
sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl sed -e 's|^#!/usr/bin/env.*$|#!${perl}/bin/perl|g' -i tools/*.pl

View File

@ -1,8 +1,10 @@
{ stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base { stdenv, fetchurl, boost, cmake, gettext, gstreamer, gst_plugins_base
, liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist , liblastfm, qt4, taglib, fftw, glew, qjson, sqlite, libgpod, libplist
, usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig , usbmuxd, libmtp, gvfs, libcdio, protobuf, libspotify, qca2, pkgconfig
, sparsehash }: , sparsehash, config }:
let withSpotify = config.clementine.spotify or false;
in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "clementine-1.2.1"; name = "clementine-1.2.1";
@ -27,7 +29,6 @@ stdenv.mkDerivation {
liblastfm liblastfm
libmtp libmtp
libplist libplist
libspotify
pkgconfig pkgconfig
protobuf protobuf
qca2 qca2
@ -37,7 +38,7 @@ stdenv.mkDerivation {
sqlite sqlite
taglib taglib
usbmuxd usbmuxd
]; ] ++ stdenv.lib.optional withSpotify libspotify;
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = "http://www.clementine-player.org"; homepage = "http://www.clementine-player.org";
@ -45,6 +46,7 @@ stdenv.mkDerivation {
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.linux; platforms = platforms.linux;
maintainers = [ maintainers.ttuegel ]; maintainers = [ maintainers.ttuegel ];
hydraPlatforms = []; # libspotify is unfree # libspotify is unfree
hydraPlatforms = optional (!withSpotify) platforms.linux;
}; };
} }

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "drumkv1-${version}"; name = "drumkv1-${version}";
version = "0.4.1"; version = "0.4.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/drumkv1/${name}.tar.gz"; url = "mirror://sourceforge/drumkv1/${name}.tar.gz";
sha256 = "0wxbn5qm3dn9spwbm618flgrwvls7bipg0nhgn0lv4za2g823g56"; sha256 = "18rvfgblynlmklk25azmppibn1bdjid97hipa323gnzmxgq0rfjq";
}; };
buildInputs = [ jackaudio libsndfile lv2 qt4 ]; buildInputs = [ jackaudio libsndfile lv2 qt4 ];

View File

@ -1,17 +1,17 @@
{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg_0_10, libvorbis, mpc, libsndfile, jackaudio, db, libmodplug, timidity, libid3tag, libtool }: { stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg, libvorbis, mpc, libsndfile, jackaudio, db, libmodplug, timidity, libid3tag, libtool }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "moc-${version}"; name = "moc-${version}";
version = "2.5.0-beta1"; version = "2.5.0-beta2";
src = fetchurl { src = fetchurl {
url = "http://ftp.daper.net/pub/soft/moc/unstable/moc-${version}.tar.bz2"; url = "http://ftp.daper.net/pub/soft/moc/unstable/moc-${version}.tar.bz2";
sha256 = "076816da9c6d1e61a386a1dda5f63ee2fc84bc31e9011ef70acc1d391d4c46a6"; sha256 = "486d50584c3fb0067b8c03af54e44351633a7740b18dc3b7358322051467034c";
}; };
configurePhase = "./configure prefix=$out"; configurePhase = "./configure prefix=$out";
buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg_0_10 libvorbis mpc libsndfile jackaudio db libmodplug timidity libid3tag libtool ]; buildInputs = [ ncurses pkgconfig alsaLib flac libmad speex ffmpeg libvorbis mpc libsndfile jackaudio db libmodplug timidity libid3tag libtool ];
meta = { meta = {
description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use."; description = "MOC (music on console) is a console audio player for LINUX/UNIX designed to be powerful and easy to use.";

View File

@ -3,12 +3,12 @@
, libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }: , libtool, libvorbis, pkgconfig, qt4, rubberband, stdenv }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.6.0"; version = "0.6.1";
name = "qtractor-${version}"; name = "qtractor-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qtractor/${name}.tar.gz"; url = "mirror://sourceforge/qtractor/${name}.tar.gz";
sha256 = "0aw6g0biqzysnsk5vd6wx3q1khyav6krhjz7bzk0v7d2160bn40r"; sha256 = "09lyz1pn2dadr1ii2msyv3n13kq3mbgpcwcyfm0brm01c2fnh6wc";
}; };
buildInputs = buildInputs =

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "samplv1-${version}"; name = "samplv1-${version}";
version = "0.4.1"; version = "0.4.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/samplv1/${name}.tar.gz"; url = "mirror://sourceforge/samplv1/${name}.tar.gz";
sha256 = "1cx3qs9vrdwmym2qsghqq53bshnjqgpqypsilr1m2i1cpfnfrr6x"; sha256 = "1vr6jbqnsgdq3v2h1ndp4pirnil3119dqwlq0k0kdscmcskvb9j4";
}; };
buildInputs = [ jackaudio libsndfile lv2 qt4 ]; buildInputs = [ jackaudio libsndfile lv2 qt4 ];

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "synthv1-${version}"; name = "synthv1-${version}";
version = "0.4.1"; version = "0.4.2";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/synthv1/${name}.tar.gz"; url = "mirror://sourceforge/synthv1/${name}.tar.gz";
sha256 = "1j1x8n3rlwrh373wqmm6mj3cgyk3apvnpqygx1700fl4cf249agl"; sha256 = "1r4fszbzwd0yfcch0mcsmh7781zw1317hiljn85w79721fs2m8hc";
}; };
buildInputs = [ qt4 jackaudio lv2 ]; buildInputs = [ qt4 jackaudio lv2 ];

View File

@ -1,11 +1,11 @@
{ fetchurl, stdenv, emacs, texinfo, which, texLive }: { fetchurl, stdenv, emacs, texinfo, which, texLive }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "org-8.2.1"; name = "org-8.2.6";
src = fetchurl { src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz"; url = "http://orgmode.org/${name}.tar.gz";
sha256 = "625e2b6786158bcf6c43194075f7638ab8048c68a60025289a051c407e467823"; sha256 = "0f196r0n9m2np123sjabsqdw68h9qp6qr7l5v257am8qs7rj0jm1";
}; };
buildInputs = [ emacs ]; buildInputs = [ emacs ];

View File

@ -7,7 +7,7 @@ stdenv.mkDerivation rec {
name = "gimp-2.8.10"; name = "gimp-2.8.10";
src = fetchurl { src = fetchurl {
url = "ftp://ftp.gimp.org/pub/gimp/v2.8/${name}.tar.bz2"; url = "http://download.gimp.org/pub/gimp/v2.8/${name}.tar.bz2";
sha256 = "1rha8yx0pplfjziqczjrxxp16vsvpmb5ziq3c218s4w9z4cqpzg7"; sha256 = "1rha8yx0pplfjziqczjrxxp16vsvpmb5ziq3c218s4w9z4cqpzg7";
}; };

View File

@ -19,6 +19,7 @@ cabal.mkDerivation (self: {
tastyGolden tastyHunit time transformers utf8String tastyGolden tastyHunit time transformers utf8String
]; ];
extraLibraries = [ libXScrnSaver ]; extraLibraries = [ libXScrnSaver ];
jailbreak = true;
meta = { meta = {
homepage = "http://arbtt.nomeata.de/"; homepage = "http://arbtt.nomeata.de/";
description = "Automatic Rule-Based Time Tracker"; description = "Automatic Rule-Based Time Tracker";

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, which, openssl, qt4, libtool }: { stdenv, fetchurl, pkgconfig, which, openssl, qt4, libtool, gcc, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xca-${version}"; name = "xca-${version}";
@ -15,7 +15,12 @@ stdenv.mkDerivation rec {
prefix=$out ./configure ${openssl} ${libtool} prefix=$out ./configure ${openssl} ${libtool}
''; '';
buildInputs = [ openssl qt4 libtool ]; postInstall = ''
wrapProgram "$out/bin/xca" \
--prefix LD_LIBRARY_PATH : "${qt4}/lib:${gcc.gcc}/lib:${gcc.gcc}/lib64:${openssl}/lib:${libtool}/lib"
'';
buildInputs = [ openssl qt4 libtool gcc makeWrapper ];
nativeBuildInputs = [ pkgconfig ]; nativeBuildInputs = [ pkgconfig ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,5 +1,6 @@
{ cabal, alsaCore, alsaMixer, filepath, HTTP, libXrandr, mtl { cabal, alsaCore, alsaMixer, dbus, filepath, hinotify, HTTP
, parsec, regexCompat, stm, time, utf8String, wirelesstools, X11, libmpd , libmpd, libXrandr, mtl, parsec, regexCompat, stm, time
, timezoneOlson, timezoneSeries, utf8String, wirelesstools, X11
, X11Xft , X11Xft
}: }:
@ -10,11 +11,12 @@ cabal.mkDerivation (self: {
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
alsaCore alsaMixer filepath HTTP mtl parsec regexCompat stm time alsaCore alsaMixer dbus filepath hinotify HTTP libmpd mtl parsec
utf8String X11 X11Xft libmpd regexCompat stm time timezoneOlson timezoneSeries utf8String X11
X11Xft
]; ];
extraLibraries = [ libXrandr wirelesstools ]; extraLibraries = [ libXrandr wirelesstools ];
configureFlags = "-fwith_xft -fwith_iwlib -fwith_alsa -fwith_mpd"; configureFlags = "-fall_extensions";
meta = { meta = {
homepage = "http://projects.haskell.org/xmobar/"; homepage = "http://projects.haskell.org/xmobar/";
description = "A Minimalistic Text Based Status Bar"; description = "A Minimalistic Text Based Status Bar";

View File

@ -13,9 +13,9 @@
sha256bin64 = "1sqavz6lh0ryf8jlw8jcfwk265spxs70bhigcgcqsd6647fbdqsr"; sha256bin64 = "1sqavz6lh0ryf8jlw8jcfwk265spxs70bhigcgcqsd6647fbdqsr";
}; };
stable = { stable = {
version = "34.0.1847.132"; version = "35.0.1916.114";
sha256 = "0f30i0jxqx059imfiyvsaslkydkva9x6nbvpsjccvwygs91hm4z8"; sha256 = "1bvpkwjchkzx1qfc93hd8md6sz5sd7pl55xc8b8m3iakbp0csvsn";
sha256bin32 = "1czbydkyazhc63ndyiarbwmmi7p3wh2rb4x7avs41yx7sx9vdqjl"; sha256bin32 = "0zm5770cv9dld37xall9lpl9faa0bgjcp8hjx6l1ivfhs6lxbxxa";
sha256bin64 = "01k301629m4m8a4mpg0m5kblygfs72kpa4qi3mlkl8cbb0rlq6mv"; sha256bin64 = "18p302aj2d7xdza9kf438vbz3wqh8db7v2dq5d9b4b3ak6w9ld03";
}; };
} }

View File

@ -2,12 +2,12 @@
m4, glib_networking, gsettings_desktop_schemas }: m4, glib_networking, gsettings_desktop_schemas }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "dwb-2014-04-20"; name = "dwb-2014-05-23";
src = fetchgit { src = fetchgit {
url = "https://bitbucket.org/portix/dwb.git"; url = "https://bitbucket.org/portix/dwb.git";
rev = "117a6a8cdb84b30b0c084dee531b650664d09ba2"; rev = "813457c0cb6603d3b7a548fc97a8298a7fac34fa";
sha256 = "1k1nax3ij64b2hbn9paqj128yyzy41b61xd2m1ayq9y17k9als0b"; sha256 = "1fywnf3yp6p84hap40nb9vrz1gswgnhppygmi1gzjzz3bphwf5pr";
}; };
buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup webkit gtk3 gnutls json_c m4 ]; buildInputs = [ pkgconfig makeWrapper gsettings_desktop_schemas libsoup webkit gtk3 gnutls json_c m4 ];

View File

@ -5,11 +5,11 @@
assert sslSupport -> openssl != null; assert sslSupport -> openssl != null;
stdenv.mkDerivation { stdenv.mkDerivation {
name = "lynx-2.8.7"; name = "lynx-2.8.8";
src = fetchurl { src = fetchurl {
url = http://lynx.isc.org/lynx2.8.7/lynx2.8.7.tar.bz2; url = http://lynx.isc.org/lynx2.8.8/lynx2.8.8.tar.bz2;
sha256 = "1baxwpdvak6nalr943g22z67r1d3fbibbkqvkvvar9xlvrs9gv20"; sha256 = "1rxysl08acqll5b87368f04kckl8sggy1qhnq59gsxyny1ffg039";
}; };
configureFlags = if sslSupport then "--with-ssl=${openssl}" else ""; configureFlags = if sslSupport then "--with-ssl=${openssl}" else "";

View File

@ -36,7 +36,7 @@
let let
# -> http://get.adobe.com/flashplayer/ # -> http://get.adobe.com/flashplayer/
version = "11.2.202.356"; version = "11.2.202.359";
src = src =
if stdenv.system == "x86_64-linux" then if stdenv.system == "x86_64-linux" then
@ -47,7 +47,7 @@ let
else rec { else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.x86_64.tar.gz";
sha256 = "1g09a9fvm3wm2zi885q2kc2rwq0a7ywc637i31pzfic6kij10ps5"; sha256 = "13myq6f999qy1jbgm73gxnadrxdvasi2jiffdyxmwpbwglhhrpka";
} }
else if stdenv.system == "i686-linux" then else if stdenv.system == "i686-linux" then
if debug then { if debug then {
@ -58,7 +58,7 @@ let
} else rec { } else rec {
inherit version; inherit version;
url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz"; url = "http://fpdownload.macromedia.com/get/flashplayer/pdc/${version}/install_flash_player_11_linux.i386.tar.gz";
sha256 = "1r7sbwfbgq7c5jhginsc95rihdcjsfzrbx0kxgwv7sk2jc7x8hhb"; sha256 = "04wh18jbscp7m3drvsxxhp2vjnhww69vw0pgr23hx81ry0ccvb8m";
} }
else throw "Flash Player is not supported on this platform"; else throw "Flash Player is not supported on this platform";

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }: { stdenv, fetchurl, openssl, curl, coreutils, gawk, bash, which }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "esniper-2.29.0"; name = "esniper-2.30.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/esniper/esniper-2-29-0.tgz"; url = "mirror://sourceforge/esniper/esniper-2-30-0.tgz";
sha256 = "052jfbzm0a88h3hss2vg1vfdrhibjwhbcdnwsbkk5i1z0jj16xxc"; sha256 = "1p85d5qfr3f35xfj5555ck4wwk5hqkh65ivam1527p8dwcz00wpl";
}; };
buildInputs = [ openssl curl ]; buildInputs = [ openssl curl ];

View File

@ -3,14 +3,14 @@
, pythonPackages, cacert, cmake, makeWrapper }: , pythonPackages, cacert, cmake, makeWrapper }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
rev = "6f64ee699ba46c90b55d3b99c60e4807819e2b7b"; rev = "02eed97d977567b0fb16cfeeaeebb863eab1e509";
version = "0.4.4-rev${rev}"; version = "1.0-rev${rev}";
name = "weechat-${version}"; name = "weechat-${version}";
src = fetchgit { src = fetchgit {
inherit rev; inherit rev;
url = "git://github.com/weechat/weechat.git"; url = "git://github.com/weechat/weechat.git";
sha256 = "1w58gir48kxvscf6njy3kmfxbjlnsf2byw3g3w6r47zjkgyxcf1z"; sha256 = "0nk0p9chvn0h2pzq9793k2dz8h5iplz0zwqzyds55fbmsgzz51g2";
}; };
buildInputs = buildInputs =

View File

@ -1,10 +1,10 @@
{ stdenv, fetchurl, pkgconfig, intltool, file, makeWrapper { stdenv, fetchurl, pkgconfig, intltool, file, makeWrapper
, openssl, curl, libevent, inotifyTools , openssl, curl, libevent, inotifyTools, systemd
, enableGTK3 ? false, gtk3 , enableGTK3 ? false, gtk3
}: }:
let let
version = "2.82"; version = "2.83";
in in
with { inherit (stdenv.lib) optional optionals optionalString; }; with { inherit (stdenv.lib) optional optionals optionalString; };
@ -14,11 +14,12 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "http://download.transmissionbt.com/files/transmission-${version}.tar.xz"; url = "http://download.transmissionbt.com/files/transmission-${version}.tar.xz";
sha256 = "08imy28hpjxwdzgvhm66hkfyzp8qnnqr4jhv3rgshryzhw86b5ir"; sha256 = "0cqlgl6jmjw1caybz6nzh3l8z0jak1dxba01isv72zvy2r8b1qdh";
}; };
buildInputs = [ pkgconfig intltool file openssl curl libevent inotifyTools ] buildInputs = [ pkgconfig intltool file openssl curl libevent inotifyTools ]
++ optionals enableGTK3 [ gtk3 makeWrapper ]; ++ optionals enableGTK3 [ gtk3 makeWrapper ]
++ optional stdenv.isLinux systemd;
preConfigure = '' preConfigure = ''
sed -i -e 's|/usr/bin/file|${file}/bin/file|g' configure sed -i -e 's|/usr/bin/file|${file}/bin/file|g' configure

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation rec stdenv.mkDerivation rec
{ {
version = "2.1.1"; version = "3.0.4";
name = "seafile-client-${version}"; name = "seafile-client-${version}";
src = fetchurl src = fetchurl
{ {
url = "https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz"; url = "https://github.com/haiwen/seafile-client/archive/v${version}.tar.gz";
sha256 = "d98515ea229df702cbe973d85ec0bd5cf3f5282ef1022ba0157d5301b521c8e0"; sha256 = "10iz45y8j5f9smi0srxw62frb97vhr0w938v8w3rsjcw9qq366a2";
}; };
buildInputs = [ pkgconfig cmake qt4 seafile-shared makeWrapper ]; buildInputs = [ pkgconfig cmake qt4 seafile-shared makeWrapper ];

View File

@ -16,8 +16,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "git-annex"; pname = "git-annex";
version = "5.20140421"; version = "5.20140517";
sha256 = "1ahn62gmgszssl2ni7b6rran548wjkb10035hrgvag6dwiiyik9g"; sha256 = "150xf6664rfdljswc270m2pqvia4sywph4rrrbky6izy6a0vq680";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -1,11 +1,11 @@
{stdenv, glibc, glibcLocales, gcc, coreutils, diffutils, findutils, gnused, gnugrep, gnutar, gzip, bzip2, {stdenv, glibc, glibcLocales, gcc, coreutils, diffutils, findutils, gnused, gnugrep, gnutar, gzip, bzip2,
bashInteractive, xz, shadow, gawk, less, su, buildEnv}: bashInteractive, xz, shadow, gawk, less, buildEnv}:
{name, pkgs ? [], profile ? ""}: {name, pkgs ? [], profile ? ""}:
let let
basePkgs = [ basePkgs = [
glibc glibcLocales gcc coreutils diffutils findutils gnused gnugrep gnutar glibc glibcLocales gcc coreutils diffutils findutils gnused gnugrep gnutar
gzip bzip2 bashInteractive xz shadow gawk less su gzip bzip2 bashInteractive xz shadow gawk less
]; ];
# Compose a global profile for the chroot environment # Compose a global profile for the chroot environment

View File

@ -3,4 +3,4 @@
chrootenvDest=/run/chrootenv/@name@ chrootenvDest=/run/chrootenv/@name@
# Enter the LFS chroot environment # Enter the LFS chroot environment
chroot $chrootenvDest /usr/bin/env -i PS1="$PS1" TERM="$TERM" DISPLAY="$DISPLAY" HOME="/root" PATH="/bin:/sbin" /bin/bash --login sudo chroot --userspec "$USER:${GROUPS[0]}" --groups "${GROUPS[0]}" $chrootenvDest /usr/bin/env -i PS1="$PS1" TERM="$TERM" DISPLAY="$DISPLAY" HOME="$HOME" PATH="/bin:/sbin" XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" /bin/bash --login

View File

@ -17,7 +17,7 @@ mount --bind /home $chrootenvDest/home
# Bind mount state directories # Bind mount state directories
mount --bind /var $chrootenvDest/var mount --bind /var $chrootenvDest/var
mount --bind /run $chrootenvDest/run mount --rbind /run $chrootenvDest/run
# Bind mount the host system's /etc # Bind mount the host system's /etc
mount --bind /etc $chrootenvDest/host-etc mount --bind /etc $chrootenvDest/host-etc

View File

@ -2,5 +2,5 @@
chrootenvDest=/run/chrootenv/@name@ chrootenvDest=/run/chrootenv/@name@
# Unmount all bind mounts # Unmount all (r)bind mounts
umount $chrootenvDest/{dev/pts,dev/shm,dev,nix/store,proc,sys,host-etc,home,var,run} umount -l $chrootenvDest/{dev/pts,dev/shm,dev,nix/store,proc,sys,host-etc,home,var,run}

View File

@ -1,7 +1,7 @@
{ callPackage, self, pkgs }: { callPackage, self, pkgs }:
rec { rec {
inherit (pkgs) glib gtk2 gtk3 gnome2 upower; inherit (pkgs) glib gtk2 gtk3 gnome2 upower glib_networking;
gtk = gtk3; # just to be sure gtk = gtk3; # just to be sure
libcanberra = pkgs.libcanberra_gtk3; # just to be sure libcanberra = pkgs.libcanberra_gtk3; # just to be sure
inherit (pkgs.gnome2) ORBit2; inherit (pkgs.gnome2) ORBit2;

View File

@ -33,9 +33,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
preFixup = '' preFixup = ''
wrapProgram "$out/bin/evolution" \ for f in $out/bin/* $out/libexec/*; do
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ wrapProgram "$f" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -35,12 +35,15 @@ stdenv.mkDerivation rec {
in in
'' ''
substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication" substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib}/bin/gapplication"
wrapProgram "$out/bin/gnome-documents" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ for f in $out/bin/* $out/libexec/*; do
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \ wrapProgram "$f" \
--prefix LD_LIBRARY_PATH ":" "${libPath}" \ --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \ --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi" --prefix LD_LIBRARY_PATH ":" "${libPath}" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" \
--run "if [ -z \"\$XDG_CACHE_DIR\" ]; then XDG_CACHE_DIR=\$HOME/.cache; fi; if [ -w \"\$XDG_CACHE_DIR/..\" ]; then mkdir -p \"\$XDG_CACHE_DIR/gnome-documents\"; fi"
done
rm $out/share/icons/hicolor/icon-theme.cache rm $out/share/icons/hicolor/icon-theme.cache
''; '';

View File

@ -27,10 +27,14 @@ stdenv.mkDerivation rec {
hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ]; hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
preFixup = '' preFixup = ''
wrapProgram "$out/bin/gnome-photos" \ substituteInPlace $out/bin/gnome-photos --replace gapplication "${glib}/bin/gapplication"
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \ for f in $out/bin/* $out/libexec/*; do
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" wrapProgram "$f" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix GRL_PLUGIN_PATH : "${gnome3.grilo-plugins}/lib/grilo-0.2" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
rm $out/share/icons/hicolor/icon-theme.cache rm $out/share/icons/hicolor/icon-theme.cache
''; '';

View File

@ -33,9 +33,11 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
preFixup = '' preFixup = ''
wrapProgram "$out/bin/epiphany" \ for f in $out/bin/* $out/libexec/*; do
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ wrapProgram "$f" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH" --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "${gnome3.gnome_themes_standard}/share:$out/share:$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
done
''; '';
patches = [ ./libxml_missing_dep.patch ]; patches = [ ./libxml_missing_dep.patch ];

View File

@ -44,6 +44,10 @@ rec {
gjs = callPackage ./core/gjs { }; gjs = callPackage ./core/gjs { };
glib_networking = pkgs.glib_networking.override {
inherit gsettings_desktop_schemas;
};
gnome-backgrounds = callPackage ./core/gnome-backgrounds { }; gnome-backgrounds = callPackage ./core/gnome-backgrounds { };
gnome-contacts = callPackage ./core/gnome-contacts { }; gnome-contacts = callPackage ./core/gnome-contacts { };
@ -112,7 +116,7 @@ rec {
gucharmap = callPackage ./core/gucharmap { }; gucharmap = callPackage ./core/gucharmap { };
gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; }; gvfs = pkgs.gvfs.override { gnome = gnome3; };
eog = callPackage ./core/eog { }; eog = callPackage ./core/eog { };
@ -134,6 +138,28 @@ rec {
nautilus = callPackage ./core/nautilus { }; nautilus = callPackage ./core/nautilus { };
networkmanager_openvpn = pkgs.networkmanager_openvpn.override {
inherit gnome3;
};
networkmanager_pptp = pkgs.networkmanager_pptp.override {
inherit gnome3;
};
networkmanager_vpnc = pkgs.networkmanager_vpnc.override {
inherit gnome3;
};
networkmanager_openconnect = pkgs.networkmanager_openconnect.override {
inherit gnome3;
};
networkmanagerapplet = pkgs.networkmanagerapplet.override {
inherit gnome3 gsettings_desktop_schemas glib_networking
networkmanager_openvpn networkmanager_pptp networkmanager_vpnc
networkmanager_openconnect;
};
rest = callPackage ./core/rest { }; rest = callPackage ./core/rest { };
sushi = callPackage ./core/sushi { }; sushi = callPackage ./core/sushi { };
@ -185,6 +211,8 @@ rec {
#### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ #### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/
geary = callPackage ./misc/geary { };
gfbgraph = callPackage ./misc/gfbgraph { }; gfbgraph = callPackage ./misc/gfbgraph { };
goffice = callPackage ./misc/goffice { }; goffice = callPackage ./misc/goffice { };

View File

@ -0,0 +1,49 @@
{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala
, makeWrapper, gdk_pixbuf, cmake, desktop_file_utils
, libnotify, libcanberra, libsecret, gmime
, libpthreadstubs, hicolor_icon_theme
, gnome3, librsvg, gnome_doc_utils, webkitgtk }:
stdenv.mkDerivation rec {
name = "geary-0.6.0";
src = fetchurl {
url = "mirror://gnome/sources/geary/0.6/${name}.tar.xz";
sha256 = "44ad1dc2c81c50006c751f8e72aa817f07002188da4c29e158060524a1962715";
};
propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
buildInputs = [ intltool pkgconfig gtk3 makeWrapper cmake desktop_file_utils gnome_doc_utils
vala webkitgtk libnotify libcanberra gnome3.libgee libsecret gmime
libpthreadstubs gnome3.gsettings_desktop_schemas hicolor_icon_theme
gdk_pixbuf librsvg gnome3.gnome_icon_theme_symbolic gnome3.gnome_icon_theme ];
preConfigure = ''
substituteInPlace src/CMakeLists.txt --replace '`pkg-config --variable=girdir gobject-introspection-1.0`' '${webkitgtk}/share/gir-1.0'
'';
postInstall = ''
mkdir -p $out/share/gsettings-schemas/${name}/
mv $out/share/glib-2.0 $out/share/gsettings-schemas/${name}
'';
preFixup = ''
wrapProgram "$out/bin/geary" \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH"
'';
enableParallelBuilding = true;
patches = [ ./disable_valadoc.patch ];
patchFlags = "-p0";
meta = with stdenv.lib; {
homepage = https://wiki.gnome.org/Apps/Geary;
description = "Mail client for GNOME 3";
maintainers = with maintainers; [ lethalman ];
license = licenses.lgpl2;
platforms = platforms.linux;
};
}

View File

@ -0,0 +1,24 @@
--- src/CMakeLists.txt.orig 2014-05-23 14:41:20.809160364 +0200
+++ src/CMakeLists.txt 2014-05-23 14:41:29.240261581 +0200
@@ -696,21 +696,6 @@
${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/
)
-# Valadoc
-#################################################
-foreach(pkg ${ENGINE_PACKAGES})
- list(APPEND valadoc_pkg_opts "--pkg=${pkg}")
-endforeach(pkg ${ENGINE_PACKAGES})
-
-include(FindValadoc)
-add_custom_target(
- valadoc
- WORKING_DIRECTORY
- ${CMAKE_SOURCE_DIR}/src
- COMMAND
- ${VALADOC_EXECUTABLE} --force --no-protected -b ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_SOURCE_DIR}/valadoc --package-name=geary --package-version=${VERSION} ${ENGINE_SRC} ${valadoc_pkg_opts} --vapidir=${CMAKE_SOURCE_DIR}/bindings/vapi
-)
-
## Make clean: remove copied files
##################################################
set_property(

View File

@ -1,4 +1,4 @@
{ cabal, fetchurl }: { cabal, fetchurl, filemanip, Agda }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "Agda-stdlib"; pname = "Agda-stdlib";
@ -9,11 +9,16 @@ cabal.mkDerivation (self: {
sha256 = "1ynjgqk8hhnm6rbngy8fjsrd6i4phj2hlan9bk435bbywbl366k3"; sha256 = "1ynjgqk8hhnm6rbngy8fjsrd6i4phj2hlan9bk435bbywbl366k3";
}; };
buildDepends = [ filemanip Agda ];
preConfigure = "cd ffi"; preConfigure = "cd ffi";
postInstall = '' postInstall = ''
mkdir -p $out/share mkdir -p $out/share
cp -pR ../src $out/share/agda cd ..
runhaskell GenerateEverything
agda -i . -i src Everything.agda
cp -pR src $out/share/agda
''; '';
meta = { meta = {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "elm-server"; pname = "elm-server";
version = "0.11"; version = "0.11.0.1";
sha256 = "1977fa03n2m2apxhbzpcn6b5y5gf7ksnpigibi8djlpp76rliaz2"; sha256 = "0nnkhmmm4cl6a314xxh5qwxkjsc3k3vcwdfar62578ykarxb53g1";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -1,27 +1,27 @@
{ cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup { cabal, aeson, aesonPretty, binary, blazeHtml, blazeMarkup
, cmdargs, filemanip, filepath, HUnit, indents, languageEcmascript , cmdargs, filemanip, filepath, HUnit, indents, languageEcmascript
, mtl, pandoc, parsec, QuickCheck, testFramework , languageGlsl, mtl, pandoc, parsec, QuickCheck, scientific
, testFrameworkHunit, testFrameworkQuickcheck2, text, transformers , testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
, unionFind, unorderedContainers , transformers, unionFind, unorderedContainers, yaml
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "Elm"; pname = "Elm";
version = "0.12.1.3"; version = "0.12.3";
sha256 = "1p4py4qyxsp25qa8141ywfh0qnvdid4v7xlbqkk8aafxccb7lsm9"; sha256 = "1v6h9qbbz27ikh19xwjbyfw0zi5ag9x1gp0khh9v4af1g0j86320";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filepath
indents languageEcmascript mtl pandoc parsec text transformers indents languageEcmascript languageGlsl mtl pandoc parsec
unionFind unorderedContainers scientific text transformers unionFind unorderedContainers yaml
]; ];
testDepends = [ testDepends = [
aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filemanip aeson aesonPretty binary blazeHtml blazeMarkup cmdargs filemanip
filepath HUnit indents languageEcmascript mtl pandoc parsec filepath HUnit indents languageEcmascript languageGlsl mtl pandoc
QuickCheck testFramework testFrameworkHunit parsec QuickCheck scientific testFramework testFrameworkHunit
testFrameworkQuickcheck2 text transformers unionFind testFrameworkQuickcheck2 text transformers unionFind
unorderedContainers unorderedContainers yaml
]; ];
doCheck = false; doCheck = false;
meta = { meta = {

View File

@ -11,6 +11,6 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = http://www.nasm.us/; homepage = http://www.nasm.us/;
description = "An 80x86 and x86-64 assembler designed for portability and modularity"; description = "An 80x86 and x86-64 assembler designed for portability and modularity";
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.unix;
}; };
} }

View File

@ -4,14 +4,14 @@
}: }:
let let
version = "6.6.3"; version = "6.6.5";
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "swi-prolog-${version}"; name = "swi-prolog-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.swi-prolog.org/download/stable/src/pl-${version}.tar.gz"; url = "http://www.swi-prolog.org/download/stable/src/pl-${version}.tar.gz";
sha256 = "01dr66d7rm2xvxwm6wy71bbjvfrmzxgvmaz3sl1fb63cn8d78nz3"; sha256 = "0lsa90sdnkd286xgm1amwkdhvnrpsz7imfzczrfdaw4arqk4bvkr";
}; };
buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama

View File

@ -12,6 +12,6 @@ stdenv.mkDerivation rec {
homepage = http://www.tortall.net/projects/yasm/; homepage = http://www.tortall.net/projects/yasm/;
description = "Complete rewrite of the NASM assembler"; description = "Complete rewrite of the NASM assembler";
license = "BSD"; license = "BSD";
platforms = stdenv.lib.platforms.linux; platforms = stdenv.lib.platforms.unix;
}; };
} }

View File

@ -18,7 +18,7 @@ with stdenv.lib;
let let
majorVersion = "3.4"; majorVersion = "3.4";
version = "${majorVersion}.0"; version = "${majorVersion}.1";
fullVersion = "${version}"; fullVersion = "${version}";
buildInputs = filter (p: p != null) [ buildInputs = filter (p: p != null) [
@ -31,7 +31,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz"; url = "http://www.python.org/ftp/python/${version}/Python-${fullVersion}.tar.xz";
sha256 = "1gjcn5c3zqg161vwzh43ciha15w0plf5v7cyfm372pnllb08cdpi"; sha256 = "1i7dgbzyvj24i6gfhb5q2zwr9nn1ni6w1ig1rcgh96a321is35f5";
}; };
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";

View File

@ -3,7 +3,7 @@
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "renpy-6.17.4"; name = "renpy-6.17.6";
meta = { meta = {
description = "Ren'Py Visual Novel Engine"; description = "Ren'Py Visual Novel Engine";
@ -14,8 +14,8 @@ stdenv.mkDerivation {
}; };
src = fetchurl { src = fetchurl {
url = "http://www.renpy.org/dl/6.17.4/renpy-6.17.4-source.tar.bz2"; url = "http://www.renpy.org/dl/6.17.6/renpy-6.17.6-source.tar.bz2";
sha256 = "1n0ki944vawl1i3z9g5h65spdjvb8p0gj6rckv36fb2yq2adxclp"; sha256 = "0rkynw9cnr1zqdinz037d9zig6grhp2ca2pyxk80vhdpjb0xrkic";
}; };
buildInputs = [ buildInputs = [

View File

@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
"--enable-avresample" "--enable-avresample"
"--enable-runtime-cpudetect" "--enable-runtime-cpudetect"
] ]
++ stdenv.lib.optional subtitleSupport "--enable-libass" ++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) "--enable-libass"
++ stdenv.lib.optional mp3Support "--enable-libmp3lame" ++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex" ++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora" ++ stdenv.lib.optional theoraSupport "--enable-libtheora"
@ -55,13 +55,12 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree" ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394" ++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab" ++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
++ stdenv.lib.optional playSupport "--enable-ffplay" ++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) "--enable-ffplay"
++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig" ++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig"
++ stdenv.lib.optional fdkAACSupport "--enable-libfdk_aac --enable-nonfree" ++ stdenv.lib.optional fdkAACSupport "--enable-libfdk_aac --enable-nonfree"
++ stdenv.lib.optional gnutlsSupport "--enable-gnutls"; ++ stdenv.lib.optional gnutlsSupport "--enable-gnutls";
buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib texinfo perl ] buildInputs = [ pkgconfig lame yasm zlib bzip2 texinfo perl ]
++ stdenv.lib.optional subtitleSupport libass
++ stdenv.lib.optional mp3Support lame ++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex ++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora ++ stdenv.lib.optional theoraSupport libtheora
@ -75,10 +74,12 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional faacSupport faac ++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394 ++ stdenv.lib.optional dc1394Support libdc1394
++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ] ++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
++ stdenv.lib.optional playSupport SDL ++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) SDL
++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ] ++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ]
++ stdenv.lib.optional fdkAACSupport fdk_aac ++ stdenv.lib.optional fdkAACSupport fdk_aac
++ stdenv.lib.optional gnutlsSupport gnutls; ++ stdenv.lib.optional gnutlsSupport gnutls
++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) libass
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -2,15 +2,15 @@
, gsettings_desktop_schemas }: , gsettings_desktop_schemas }:
let let
ver_maj = "2.38"; ver_maj = "2.40";
ver_min = "2"; ver_min = "1";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "glib-networking-${ver_maj}.${ver_min}"; name = "glib-networking-${ver_maj}.${ver_min}";
src = fetchurl { src = fetchurl {
url = "mirror://gnome/sources/glib-networking/${ver_maj}/${name}.tar.xz"; url = "mirror://gnome/sources/glib-networking/${ver_maj}/${name}.tar.xz";
sha256 = "1iwzjkx6q9gqr7fipc98zi2bi0gccrwq1v7skff1cdijkn8zxqp8"; sha256 = "9fb3e54d049a480afdb814ff7452e7ab67e5d5f607ade230d7713f19922b5a28";
}; };
configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt"; configureFlags = "--with-ca-certificates=/etc/ssl/certs/ca-bundle.crt";

View File

@ -55,7 +55,9 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig gettext perl python ]; nativeBuildInputs = [ pkgconfig gettext perl python ];
propagatedBuildInputs = [ pcre zlib libffi ] ++ libiconvOrEmpty ++ libintlOrEmpty; propagatedBuildInputs = [ pcre zlib libffi ]
++ optional (!stdenv.isDarwin) libiconvOrEmpty
++ libintlOrEmpty;
configureFlags = configureFlags =
optional stdenv.isDarwin "--disable-compile-warnings" optional stdenv.isDarwin "--disable-compile-warnings"

View File

@ -23,14 +23,17 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = with xlibs; with stdenv.lib; propagatedBuildInputs = with xlibs; with stdenv.lib;
[ glib cairo pango gdk_pixbuf atk ] [ glib cairo pango gdk_pixbuf atk ]
++ optionals stdenv.isLinux ++ optionals (stdenv.isLinux || stdenv.isDarwin) [
[ libXrandr libXrender libXcomposite libXi libXcursor ] libXrandr libXrender libXcomposite libXi libXcursor
++ optional stdenv.isDarwin x11 ]
++ optionals stdenv.isDarwin [ x11 libXdamage ]
++ libintlOrEmpty ++ libintlOrEmpty
++ optional xineramaSupport libXinerama ++ optional xineramaSupport libXinerama
++ optionals cupsSupport [ cups ]; ++ optionals cupsSupport [ cups ];
configureFlags = "--with-xinput=yes"; configureFlags = if stdenv.isDarwin
then "--disable-glibtest --disable-introspection --disable-visibility"
else "--with-xinput=yes";
postInstall = "rm -rf $out/share/gtk-doc"; postInstall = "rm -rf $out/share/gtk-doc";

View File

@ -1,7 +1,7 @@
{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty { stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintlOrEmpty
, icu, graphite2 , icu, graphite2
, withIcu ? false # recommended by upstream as default, but most don't needed and it's big , withIcu ? false # recommended by upstream as default, but most don't needed and it's big
, withGraphite2 ? true # it is small and major distros do include it , withGraphite2 ? !stdenv.isDarwin # it is small and major distros do include it
}: }:
# TODO: split non-icu and icu lib into different outputs? # TODO: split non-icu and icu lib into different outputs?

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "GLURaw"; pname = "GLURaw";
version = "1.4.0.0"; version = "1.4.0.1";
sha256 = "0q86rpd5cx0vrb9d3y1fljc3mg0p8wy6xdn37ngv2s0f4kslq63g"; sha256 = "1k0f1vbbrsfc7jb4qbif4w4q87lsis5gvq7jd2n8zzslxd5n8mcn";
buildDepends = [ OpenGLRaw ]; buildDepends = [ OpenGLRaw ];
extraLibraries = [ freeglut mesa ]; extraLibraries = [ freeglut mesa ];
meta = { meta = {

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "GLUT"; pname = "GLUT";
version = "2.5.1.0"; version = "2.5.1.1";
sha256 = "0zxj5i8rw402gpns5ivb1g5fkk502jwzrkviqhwhrxn7yxrybi1s"; sha256 = "0n9dkdjmpnbcjg0ll0ny7mw21xwwix0gxy0hq6yagmgaakhpg0aa";
buildDepends = [ OpenGL OpenGLRaw ]; buildDepends = [ OpenGL OpenGLRaw ];
extraLibraries = [ freeglut libICE libSM libXi libXmu mesa ]; extraLibraries = [ freeglut libICE libSM libXi libXmu mesa ];
meta = { meta = {

View File

@ -0,0 +1,14 @@
{ cabal, JuicyPixels, vector }:
cabal.mkDerivation (self: {
pname = "JuicyPixels-util";
version = "0.1";
sha256 = "181wryax2k43qlblink9vcg2hk8f2qxn02ifmgxa2fl95z5ar0dc";
buildDepends = [ JuicyPixels vector ];
meta = {
homepage = "https://github.com/fumieval/JuicyPixels-util";
description = "Convert JuicyPixel images into RGBA format, flip, trim and so on";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -1,11 +1,11 @@
{ cabal, HUnit, QuickCheck, random, text, vector }: { cabal, dlist, fmlist, HUnit, QuickCheck, random, text, vector }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "ListLike"; pname = "ListLike";
version = "4.0.2"; version = "4.1.0";
sha256 = "1ggh8yndnsmccgsl11fia4v2cad0vq3clibgh0311r3c43mwvnah"; sha256 = "0j78mm9vsl3scwgqp4h2bhq54hf22bxj9cg9pl26d12zw7038kwj";
buildDepends = [ text vector ]; buildDepends = [ dlist fmlist text vector ];
testDepends = [ HUnit QuickCheck random text vector ]; testDepends = [ dlist fmlist HUnit QuickCheck random text vector ];
jailbreak = true; jailbreak = true;
meta = { meta = {
homepage = "http://software.complete.org/listlike"; homepage = "http://software.complete.org/listlike";

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "OpenGL"; pname = "OpenGL";
version = "2.9.1.0"; version = "2.9.2.0";
sha256 = "09xzjaa9qyh7bfsnq226v9zi6lhnalhmlqlca3808hgax8ijwhp3"; sha256 = "1sa5jmhj0az6sik6swv2vgzhv9gj34dbq2px23ag1a4yrk5gcn0p";
buildDepends = [ GLURaw OpenGLRaw text ]; buildDepends = [ GLURaw OpenGLRaw text ];
extraLibraries = [ libX11 mesa ]; extraLibraries = [ libX11 mesa ];
meta = { meta = {

View File

@ -0,0 +1,15 @@
{ cabal, mesa }:
cabal.mkDerivation (self: {
pname = "OpenGLRaw";
version = "1.5.0.0";
sha256 = "04lsidv82fl7yb2fnqpx7q0vgiwxbswh8g7dv9q9s9i2jwiaaal5";
extraLibraries = [ mesa ];
meta = {
homepage = "http://www.haskell.org/haskellwiki/Opengl";
description = "A raw binding for the OpenGL graphics system";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View File

@ -16,14 +16,10 @@ cabal.mkDerivation (self: {
attoparsec HUnit QuickCheck testFramework testFrameworkHunit attoparsec HUnit QuickCheck testFramework testFrameworkHunit
testFrameworkQuickcheck2 text time unorderedContainers vector testFrameworkQuickcheck2 text time unorderedContainers vector
]; ];
patchPhase = ''
sed -i -e 's|scientific >=.*,|scientific,|' aeson.cabal
'';
meta = { meta = {
homepage = "https://github.com/bos/aeson"; homepage = "https://github.com/bos/aeson";
description = "Fast JSON parsing and encoding"; description = "Fast JSON parsing and encoding";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
}; };
}) })

View File

@ -0,0 +1,26 @@
{ cabal, attoparsec, blazeBuilder, deepseq, dlist, hashable, HUnit
, mtl, QuickCheck, scientific, syb, testFramework
, testFrameworkHunit, testFrameworkQuickcheck2, text, time
, unorderedContainers, vector
}:
cabal.mkDerivation (self: {
pname = "aeson";
version = "0.7.0.6";
sha256 = "0vsf9msz9iv7xvsnys5c0kbkldb0pvhiai02vz50b0d1kdsk2mb4";
buildDepends = [
attoparsec blazeBuilder deepseq dlist hashable mtl scientific syb
text time unorderedContainers vector
];
testDepends = [
attoparsec HUnit QuickCheck testFramework testFrameworkHunit
testFrameworkQuickcheck2 text time unorderedContainers vector
];
meta = {
homepage = "https://github.com/bos/aeson";
description = "Fast JSON parsing and encoding";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View File

@ -1,26 +1,27 @@
{ cabal, binary, clock, connection, dataBinaryIeee754, hspec { cabal, binary, clock, connection, dataBinaryIeee754, hspec
, hspecExpectations, monadControl, network, split, text, xml , hspecExpectations, monadControl, network, split, text, vector
, xml
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "amqp"; pname = "amqp";
version = "0.8.2"; version = "0.8.3";
sha256 = "0hl9x6kbxdv32014k1w34d84wl4ivpiyg1ikpjr0nr9bsg3wr0gf"; sha256 = "0gl5vdhbic8llhbqmhnwj0wvykhbrci6zz53v5cayqfcwi1v1dw2";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
binary clock connection dataBinaryIeee754 monadControl network binary clock connection dataBinaryIeee754 monadControl network
split text xml split text vector xml
]; ];
testDepends = [ testDepends = [
binary clock connection dataBinaryIeee754 hspec hspecExpectations binary clock connection dataBinaryIeee754 hspec hspecExpectations
network split text network split text vector
]; ];
doCheck = false;
meta = { meta = {
homepage = "https://github.com/hreinhardt/amqp"; homepage = "https://github.com/hreinhardt/amqp";
description = "Client library for AMQP servers (currently only RabbitMQ)"; description = "Client library for AMQP servers (currently only RabbitMQ)";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
}; };
doCheck = false;
}) })

View File

@ -0,0 +1,20 @@
{ cabal, deepseq, QuickCheck, scientific, testFramework
, testFrameworkQuickcheck2, text
}:
cabal.mkDerivation (self: {
pname = "attoparsec";
version = "0.11.3.4";
sha256 = "1zahmkb0n7jz0di35x3r8s0xnfg1awqybh2x2zicxbwazl4f53hi";
buildDepends = [ deepseq scientific text ];
testDepends = [
QuickCheck testFramework testFrameworkQuickcheck2 text
];
meta = {
homepage = "https://github.com/bos/attoparsec";
description = "Fast combinator parsing for bytestrings and text";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.andres ];
};
})

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "binary"; pname = "binary";
version = "0.7.2.0"; version = "0.7.2.1";
sha256 = "149pdhzjg9bhl66azgv0nmj3fy38s4klzk01vhzazngdiagfq6wn"; sha256 = "0s0idmcmribgajxxnxdvppnz62qyxwrj9iy34pi7nvm41gj6q5nz";
testDepends = [ testDepends = [
Cabal filepath HUnit QuickCheck random testFramework Cabal filepath HUnit QuickCheck random testFramework
testFrameworkQuickcheck2 testFrameworkQuickcheck2

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "blaze-svg"; pname = "blaze-svg";
version = "0.3.3.1"; version = "0.3.4";
sha256 = "00i0apyklvmkr4w30d4r86gcg86h35sc3ncvqax70827126cdmsj"; sha256 = "061011qrpqiyag9549hn0hfikvkrin5wb3cf0zfm9n80cgvzmqd3";
buildDepends = [ blazeMarkup mtl ]; buildDepends = [ blazeMarkup mtl ];
jailbreak = true; jailbreak = true;
meta = { meta = {

View File

@ -0,0 +1,21 @@
{ cabal, lens, linear, QuickCheck, random, testFramework
, testFrameworkQuickcheck2, testFrameworkTh
}:
cabal.mkDerivation (self: {
pname = "boundingboxes";
version = "0.1.1";
sha256 = "1nl0lqgfwd98jzhhw7i4vvd88lpnn8770x2pcbyfzqcyr27079f0";
buildDepends = [ lens linear ];
testDepends = [
lens linear QuickCheck random testFramework
testFrameworkQuickcheck2 testFrameworkTh
];
doCheck = false;
meta = {
homepage = "https://github.com/fumieval/boundingboxes";
description = "The type for 2D bounding box";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,21 @@
{ cabal, lens, linear, QuickCheck, random, testFramework
, testFrameworkQuickcheck2, testFrameworkTh
}:
cabal.mkDerivation (self: {
pname = "boundingboxes";
version = "0.2";
sha256 = "0xvh1h4papfrf6dg553rx6q8fqi06ff1ivgn4rdx3haqg1zf40hp";
buildDepends = [ lens ];
testDepends = [
lens linear QuickCheck random testFramework
testFrameworkQuickcheck2 testFrameworkTh
];
doCheck = false;
meta = {
homepage = "https://github.com/fumieval/boundingboxes";
description = "The type for 2D bounding box";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,14 @@
{ cabal, void }:
cabal.mkDerivation (self: {
pname = "categories";
version = "1.0.6";
sha256 = "0i5mrxbhqj5g46lvwbw2m07prjvfwja6q8648qm6bq54z6zrl5cy";
buildDepends = [ void ];
meta = {
homepage = "http://github.com/ekmett/categories";
description = "Categories";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -2,8 +2,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "chell-quickcheck"; pname = "chell-quickcheck";
version = "0.2.3"; version = "0.2.4";
sha256 = "15j1wzhfyr9v8hy9d5lnr6jkrfr1zfb7dwgiy3ni90mvpf8x54yc"; sha256 = "0ys6aks97y5h0n8n8dmwx8jrai4bjlnr7n69s259664y694054wd";
buildDepends = [ chell QuickCheck random ]; buildDepends = [ chell QuickCheck random ];
meta = { meta = {
homepage = "https://john-millikin.com/software/chell/"; homepage = "https://john-millikin.com/software/chell/";

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "chell"; pname = "chell";
version = "0.3.3"; version = "0.4";
sha256 = "1k5vxipf47753d41dgr1gr4zy7y72gz2x8lcn0fgfmxi2v810nsm"; sha256 = "1hynr7n7wxgc3z6zrc3xrfpiqlh4zfb3kagwwfhqmcamv9d4x0ng";
buildDepends = [ buildDepends = [
ansiTerminal options patience random text transformers ansiTerminal options patience random text transformers
]; ];

View File

@ -0,0 +1,14 @@
{ cabal, profunctors }:
cabal.mkDerivation (self: {
pname = "colors";
version = "0.1.1";
sha256 = "1i1n05prbp0l3xgx0w2lxzc5r81pcmbzclsamdr7fmjvhvh8blqm";
buildDepends = [ profunctors ];
meta = {
homepage = "https://github.com/fumieval/colors";
description = "A type for colors";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -0,0 +1,23 @@
{ cabal, deepseq, derive, HUnit, mtl, QuickCheck, testFramework
, testFrameworkHunit, testFrameworkQuickcheck2, thExpandSyns
, transformers, treeView
}:
cabal.mkDerivation (self: {
pname = "compdata";
version = "0.8.1.0";
sha256 = "06bsdhf40b8111k0fmfc53i5kib9n431f07qyj83pq8isgkk33xc";
buildDepends = [
deepseq derive mtl QuickCheck thExpandSyns transformers treeView
];
testDepends = [
deepseq derive HUnit mtl QuickCheck testFramework
testFrameworkHunit testFrameworkQuickcheck2 thExpandSyns
transformers
];
meta = {
description = "Compositional Data Types";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -4,8 +4,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "conduit"; pname = "conduit";
version = "1.1.2.1"; version = "1.1.3";
sha256 = "1jzc3vnc0dr4nm79yx2kk5rsm06jfbf3h89y28bgv05r1pw6r7ai"; sha256 = "14fc7v00zmrcwba2rdnh7c6sx0rv5mmbwlgq5p8p7nlald1dcr6z";
buildDepends = [ buildDepends = [
exceptions liftedBase mmorph monadControl mtl resourcet exceptions liftedBase mmorph monadControl mtl resourcet
transformers transformersBase void transformers transformersBase void

View File

@ -0,0 +1,13 @@
{ cabal }:
cabal.mkDerivation (self: {
pname = "control-bool";
version = "0.2.1";
sha256 = "10amxm1ff7xhd8g66n65wkbb8d17n77v1nmwxkbzhrask398asp4";
meta = {
homepage = "https://github.com/fumieval/control-bool";
description = "Useful combinators for boolean expressions";
license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms;
};
})

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "dbus"; pname = "dbus";
version = "0.10.7"; version = "0.10.8";
sha256 = "0xszynw6p07r7z9nlq8alx5lxfjm57gljya835ccj63hqhkr5yxh"; sha256 = "1pqcb6fk6l2xzwyy3n9sa2q2k3qykym1f98n2zf75545ix46b1r6";
buildDepends = [ buildDepends = [
cereal libxmlSax network parsec random text transformers vector cereal libxmlSax network parsec random text transformers vector
xmlTypes xmlTypes

View File

@ -2,9 +2,10 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "directory-tree"; pname = "directory-tree";
version = "0.11.0"; version = "0.12.0";
sha256 = "07vqwnzbwfjvlwcl50x5jl9yzvqfln0m4k4lam9r5n49wv7p01c9"; sha256 = "1idknm7fwci91fkwvzl35g0qd0jk1vb00ds2x82zjf2hdbkcc2gz";
buildDepends = [ filepath ]; buildDepends = [ filepath ];
testDepends = [ filepath ];
meta = { meta = {
homepage = "http://brandon.si/code/directory-tree-module-released/"; homepage = "http://brandon.si/code/directory-tree-module-released/";
description = "A simple directory-like tree datatype, with useful IO functions"; description = "A simple directory-like tree datatype, with useful IO functions";

View File

@ -5,8 +5,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "esqueleto"; pname = "esqueleto";
version = "1.4.1"; version = "1.4.1.2";
sha256 = "0b2gwsd6014fhmq8lipc299n6ndak7fv6dmrvi9vgasw0a665ryj"; sha256 = "1qny5c0xy2vdsl4qmgqr83jxqw1r68r81xhmx236rhxcffs9yvw2";
buildDepends = [ buildDepends = [
conduit monadLogger persistent resourcet tagged text transformers conduit monadLogger persistent resourcet tagged text transformers
unorderedContainers unorderedContainers
@ -18,7 +18,7 @@ cabal.mkDerivation (self: {
]; ];
meta = { meta = {
homepage = "https://github.com/meteficha/esqueleto"; homepage = "https://github.com/meteficha/esqueleto";
description = "Bare bones, type-safe EDSL for SQL queries on persistent backends"; description = "Type-safe EDSL for SQL queries on persistent backends";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = [ self.stdenv.lib.maintainers.ocharles ]; maintainers = [ self.stdenv.lib.maintainers.ocharles ];

View File

@ -7,8 +7,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "fay"; pname = "fay";
version = "0.20.0.3"; version = "0.20.0.4";
sha256 = "1vs4brndk091mp7lm057my4ghlpv3563qg5blrs5zqcmnwnm75x5"; sha256 = "0cxcd4nxnq8nl03xgxa1nb0932hq4dz1lxpp3gqqs5k5wvs62303";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

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