Merge remote-tracking branch 'origin/master' into staging.

This commit is contained in:
Peter Simons 2014-10-31 11:14:24 +01:00
commit b11060d8db
261 changed files with 4084 additions and 1249 deletions

View File

@ -87,6 +87,11 @@ rec {
fullName = "Common Development and Distribution License 1.0"; fullName = "Common Development and Distribution License 1.0";
}; };
cecill20 = spdx {
shortName = "CECILL-2.0";
fullName = "CeCILL Free Software License Agreement v2.0";
};
cecill-b = spdx { cecill-b = spdx {
shortName = "CECILL-B"; shortName = "CECILL-B";
fullName = "CeCILL-B Free Software License Agreement"; fullName = "CeCILL-B Free Software License Agreement";

View File

@ -23,6 +23,7 @@
aszlig = "aszlig <aszlig@redmoonstudios.org>"; aszlig = "aszlig <aszlig@redmoonstudios.org>";
auntie = "Jonathan Glines <auntieNeo@gmail.com>"; auntie = "Jonathan Glines <auntieNeo@gmail.com>";
aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>"; aycanirican = "Aycan iRiCAN <iricanaycan@gmail.com>";
balajisivaraman = "Balaji Sivaraman<sivaraman.balaji@gmail.com>";
bbenoist = "Baptist BENOIST <return_0@live.com>"; bbenoist = "Baptist BENOIST <return_0@live.com>";
bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>"; bennofs = "Benno Fünfstück <benno.fuenfstueck@gmail.com>";
berdario = "Dario Bertini <berdario@gmail.com>"; berdario = "Dario Bertini <berdario@gmail.com>";
@ -73,6 +74,7 @@
jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>"; jagajaga = "Arseniy Seroka <ars.seroka@gmail.com>";
jcumming = "Jack Cummings <jack@mudshark.org>"; jcumming = "Jack Cummings <jack@mudshark.org>";
jgeerds = "Jascha Geerds <jg@ekby.de>"; jgeerds = "Jascha Geerds <jg@ekby.de>";
jirkamarsik = "Jirka Marsik <jiri.marsik89@gmail.com>";
joamaki = "Jussi Maki <joamaki@gmail.com>"; joamaki = "Jussi Maki <joamaki@gmail.com>";
joelteon = "Joel Taylor <me@joelt.io>"; joelteon = "Joel Taylor <me@joelt.io>";
jwiegley = "John Wiegley <johnw@newartisans.com>"; jwiegley = "John Wiegley <johnw@newartisans.com>";
@ -122,6 +124,7 @@
rszibele = "Richard Szibele <richard_szibele@hotmail.com>"; rszibele = "Richard Szibele <richard_szibele@hotmail.com>";
rycee = "Robert Helgesson <robert@rycee.net>"; rycee = "Robert Helgesson <robert@rycee.net>";
sander = "Sander van der Burg <s.vanderburg@tudelft.nl>"; sander = "Sander van der Burg <s.vanderburg@tudelft.nl>";
schristo = "Scott Christopher <schristopher@konputa.com>";
sepi = "Raffael Mancini <raffael@mancini.lu>"; sepi = "Raffael Mancini <raffael@mancini.lu>";
shell = "Shell Turner <cam.turn@gmail.com>"; shell = "Shell Turner <cam.turn@gmail.com>";
shlevy = "Shea Levy <shea@shealevy.com>"; shlevy = "Shea Levy <shea@shealevy.com>";
@ -136,6 +139,7 @@
tomberek = "Thomas Bereknyei <tomberek@gmail.com>"; tomberek = "Thomas Bereknyei <tomberek@gmail.com>";
tstrobel = "Thomas Strobel <ts468@cam.ac.uk>"; tstrobel = "Thomas Strobel <ts468@cam.ac.uk>";
ttuegel = "Thomas Tuegel <ttuegel@gmail.com>"; ttuegel = "Thomas Tuegel <ttuegel@gmail.com>";
twey = "James Twey Kay <twey@twey.co.uk>";
tv = "Tomislav Viljetić <tv@shackspace.de>"; tv = "Tomislav Viljetić <tv@shackspace.de>";
urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>"; urkud = "Yury G. Kudryashov <urkud+nix@ya.ru>";
vandenoever = "Jos van den Oever <jos@vandenoever.info>"; vandenoever = "Jos van den Oever <jos@vandenoever.info>";

View File

@ -19,7 +19,8 @@ in
{ {
imports = [ ./amazon-base-config.nix ]; imports = [ ./amazon-base-config.nix ];
ec2.hvm = true; ec2.hvm = true;
boot.loader.grub.device = lib.mkOverride 0 "nodev"; boot.loader.grub.device = lib.mkOverride 0 "/dev/xvdg";
boot.kernelParams = [ "console=ttyS0" ];
boot.initrd.extraUtilsCommands = '' boot.initrd.extraUtilsCommands = ''
cp -v ${pkgs.gawk}/bin/gawk $out/bin/gawk cp -v ${pkgs.gawk}/bin/gawk $out/bin/gawk

View File

@ -19,8 +19,17 @@ parser.add_argument('--key', dest='key_name', action='store_true', help='Keypair
args = parser.parse_args() args = parser.parse_args()
instance_type = "m3.medium" if args.hvm else "m1.small" instance_type = "m3.medium" if args.hvm else "m1.small"
ebs_size = 8 if args.hvm else 20
if args.hvm:
virtualization_type = "hvm"
root_block = "/dev/sda1"
image_type = 'hvm'
else:
virtualization_type = "paravirtual"
root_block = "/dev/sda"
image_type = 'ebs'
ebs_size = 20
# Start a NixOS machine in the given region. # Start a NixOS machine in the given region.
f = open("ebs-creator-config.nix", "w") f = open("ebs-creator-config.nix", "w")
@ -76,10 +85,6 @@ if args.hvm:
m.upload_file("./amazon-hvm-config.nix", "/mnt/etc/nixos/configuration.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.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("NIXOS_CONFIG=/etc/nixos/amazon-hvm-install-config.nix nixos-install")
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('echo "(hd1) /dev/xvdg" > device.map')
m.run_command('echo -e "root (hd1,0)\nsetup (hd1)" | grub --device-map=device.map --batch')
else: else:
m.upload_file("./amazon-base-config.nix", "/mnt/etc/nixos/configuration.nix") m.upload_file("./amazon-base-config.nix", "/mnt/etc/nixos/configuration.nix")
m.run_command("nixos-install") m.run_command("nixos-install")
@ -87,7 +92,7 @@ else:
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-hvm".format(version)
description = "NixOS {0} (x86_64; EBS root; hvm)".format(version) description = "NixOS {0} (x86_64; EBS root; hvm)".format(version)
else: else:
ami_name = "nixos-{0}-x86_64-ebs".format(version) ami_name = "nixos-{0}-x86_64-ebs".format(version)
@ -102,58 +107,40 @@ def check():
m.connect() m.connect()
volume = m._conn.get_all_volumes([], filters={'attachment.instance-id': m.resource_id, 'attachment.device': "/dev/sdg"})[0] volume = m._conn.get_all_volumes([], filters={'attachment.instance-id': m.resource_id, 'attachment.device': "/dev/sdg"})[0]
if args.hvm:
instance = m._conn.run_instances( image_id="ami-5f491f36"
, instance_type=instance_type
, key_name=args.key_name
, placement=m.zone
, security_groups=["eelco-test"]).instances[0]
nixops.util.check_wait(lambda: instance.update() == 'running', max_tries=120)
instance.stop()
nixops.util.check_wait(lambda: instance.update() == 'stopped', max_tries=120)
old_root_volume = m._conn.get_all_volumes([], filters={'attachment.instance-id': instance.id, 'attachment.device': "/dev/sda1"})[0]
old_root_volume.detach()
volume.detach()
nixops.util.check_wait(lambda: volume.update() == 'available', max_tries=120)
nixops.util.check_wait(lambda: old_root_volume.update() == 'available', max_tries=120)
volume.attach(instance.id, '/dev/sda1')
nixops.util.check_wait(lambda: volume.update() == 'in-use', max_tries=120)
ami_id = m._conn.create_image(instance.id, ami_name, description) # Create a snapshot.
time.sleep(5) snapshot = volume.create_snapshot(description=description)
image = m._conn.get_all_images([ami_id])[0] print >> sys.stderr, "created snapshot {0}".format(snapshot.id)
nixops.util.check_wait(lambda: image.update() == 'available', max_tries=120)
instance.terminate()
else: nixops.util.check_wait(check, max_tries=120)
# Create a snapshot.
snapshot = volume.create_snapshot(description=description)
print >> sys.stderr, "created snapshot {0}".format(snapshot.id)
nixops.util.check_wait(check, max_tries=120) m._conn.create_tags([snapshot.id], {'Name': ami_name})
m._conn.create_tags([snapshot.id], {'Name': ami_name}) if not args.keep: depl.destroy_resources()
if not args.keep: depl.destroy_resources() # Register the image.
aki = m._conn.get_all_images(filters={'manifest-location': 'ec2*pv-grub-hd0_1.03-x86_64*'})[0]
print >> sys.stderr, "using kernel image {0} - {1}".format(aki.id, aki.location)
# Register the image. block_map = BlockDeviceMapping()
aki = m._conn.get_all_images(filters={'manifest-location': '*pv-grub-hd0_1.03-x86_64*'})[0] block_map[root_block] = BlockDeviceType(snapshot_id=snapshot.id, delete_on_termination=True, size=ebs_size, volume_type="gp2")
print >> sys.stderr, "using kernel image {0} - {1}".format(aki.id, aki.location) block_map['/dev/sdb'] = BlockDeviceType(ephemeral_name="ephemeral0")
block_map['/dev/sdc'] = BlockDeviceType(ephemeral_name="ephemeral1")
block_map['/dev/sdd'] = BlockDeviceType(ephemeral_name="ephemeral2")
block_map['/dev/sde'] = BlockDeviceType(ephemeral_name="ephemeral3")
block_map = BlockDeviceMapping() common_args = dict(
block_map['/dev/sda'] = BlockDeviceType(snapshot_id=snapshot.id, delete_on_termination=True)
block_map['/dev/sdb'] = BlockDeviceType(ephemeral_name="ephemeral0")
block_map['/dev/sdc'] = BlockDeviceType(ephemeral_name="ephemeral1")
block_map['/dev/sdd'] = BlockDeviceType(ephemeral_name="ephemeral2")
block_map['/dev/sde'] = BlockDeviceType(ephemeral_name="ephemeral3")
ami_id = m._conn.register_image(
name=ami_name, name=ami_name,
description=description, description=description,
architecture="x86_64", architecture="x86_64",
root_device_name="/dev/sda", root_device_name=root_block,
kernel_id=aki.id, block_device_map=block_map,
block_device_map=block_map) virtualization_type=virtualization_type,
delete_root_volume_on_termination=True
)
if not args.hvm:
common_args['kernel_id']=aki.id
ami_id = m._conn.register_image(**common_args)
print >> sys.stderr, "registered AMI {0}".format(ami_id) print >> sys.stderr, "registered AMI {0}".format(ami_id)
@ -197,17 +184,12 @@ test_depl.nix_exprs = [os.path.abspath("./ebs-test.nix")]
test_depl.deploy(create_only=True) test_depl.deploy(create_only=True)
test_depl.machines['machine'].run_command("nixos-version") test_depl.machines['machine'].run_command("nixos-version")
if args.hvm:
image_type = 'hvm'
else:
image_type = 'ebs'
# Log the AMI ID. # Log the AMI ID.
f = open("{0}.{1}.ami-id".format(args.region, image_type), "w") f = open("{0}.{1}.ami-id".format(args.region, image_type), "w")
f.write("{0}".format(ami_id)) f.write("{0}".format(ami_id))
f.close() f.close()
for dest in [ 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'sa-east-1']: for dest in [ 'us-east-1', 'us-west-1', 'us-west-2', 'eu-west-1', 'eu-central-1', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'sa-east-1']:
if args.region != dest: if args.region != dest:
print >> sys.stderr, "copying image from region {0} to {1}".format(args.region, dest) print >> sys.stderr, "copying image from region {0} to {1}".format(args.region, dest)
conn = boto.ec2.connect_to_region(dest) conn = boto.ec2.connect_to_region(dest)

View File

@ -42,6 +42,9 @@ with lib;
# 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" ];
# Add support for cow filesystems and their utilities
boot.supportedFilesystems = [ "zfs" "btrfs" ];
# Allow the user to log in as root without a password. # Allow the user to log in as root without a password.
security.initialRootPassword = ""; security.initialRootPassword = "";
} }

View File

@ -11,6 +11,9 @@ with lib;
# Provide wicd for easy wireless configuration. # Provide wicd for easy wireless configuration.
#networking.wicd.enable = true; #networking.wicd.enable = true;
# Include gparted for partitioning disks
environment.systemPackages = [ pkgs.gparted ];
# KDE complains if power management is disabled (to be precise, if # KDE complains if power management is disabled (to be precise, if
# there is no power management backend such as upower). # there is no power management backend such as upower).
powerManagement.enable = true; powerManagement.enable = true;
@ -27,4 +30,70 @@ with lib;
AutoLoginUser=root AutoLoginUser=root
AutoLoginPass="" AutoLoginPass=""
''; '';
# Custom kde-workspace adding some icons on the desktop
system.activationScripts.installerDesktop = let
openManual = pkgs.writeScript "nixos-manual.sh" ''
#!${pkgs.stdenv.shell}
cd ${config.system.build.manual.manual}/share/doc/nixos/
konqueror ./index.html
'';
desktopFile = pkgs.writeText "nixos-manual.desktop" ''
[Desktop Entry]
Version=1.0
Type=Application
Name=NixOS Manual
Exec=${openManual}
Icon=konqueror
'';
in ''
mkdir -p /root/Desktop
ln -sfT ${desktopFile} /root/Desktop/nixos-manual.desktop
ln -sfT ${pkgs.kde4.konsole}/share/applications/kde4/konsole.desktop /root/Desktop/konsole.desktop
ln -sfT ${pkgs.gparted}/share/applications/gparted.desktop /root/Desktop/gparted.desktop
'';
services.xserver.desktopManager.kde4.kdeWorkspacePackage = let
pkg = pkgs.kde4.kde_workspace;
plasmaInit = pkgs.writeText "00-defaultLayout.js" ''
loadTemplate("org.kde.plasma-desktop.defaultPanel")
for (var i = 0; i < screenCount; ++i) {
var desktop = new Activity
desktop.name = i18n("Desktop")
desktop.screen = i
desktop.wallpaperPlugin = 'image'
desktop.wallpaperMode = 'SingleImage'
var folderview = desktop.addWidget("folderview");
folderview.writeConfig("url", "desktop:/");
//Create more panels for other screens
if (i > 0){
var panel = new Panel
panel.screen = i
panel.location = 'bottom'
panel.height = screenGeometry(i).height > 1024 ? 35 : 27
var tasks = panel.addWidget("tasks")
tasks.writeConfig("showOnlyCurrentScreen", true);
}
}
'';
in
pkgs.stdenv.mkDerivation {
inherit (pkg) name meta;
buildCommand = ''
mkdir -p $out
cp -prf ${pkg}/* $out/
chmod a+w $out/share/apps/plasma-desktop/init
cp -f ${plasmaInit} $out/share/apps/plasma-desktop/init/00-defaultLayout.js
'';
};
} }

View File

@ -131,5 +131,6 @@ in zipModules ([]
++ obsolete' [ "programs" "bash" "enable" ] ++ obsolete' [ "programs" "bash" "enable" ]
++ obsolete' [ "services" "samba" "defaultShare" ] ++ obsolete' [ "services" "samba" "defaultShare" ]
++ obsolete' [ "services" "syslog-ng" "serviceName" ] ++ obsolete' [ "services" "syslog-ng" "serviceName" ]
++ obsolete' [ "services" "syslog-ng" "listenToJournal" ]
) )

View File

@ -39,11 +39,20 @@ in
as retain options. as retain options.
''; '';
}; };
package = mkOption {
type = types.package;
default = pkgs.rsnapshot;
example = literalExample "pkgs.rsnapshotGit";
description = ''
RSnapshot package to use.
'';
};
}; };
}; };
config = mkIf cfg.enable (let config = mkIf cfg.enable (let
myRsnapshot = pkgs.rsnapshot.override { configFile = rsnapshotCfg; }; myRsnapshot = cfg.package.override { configFile = rsnapshotCfg; };
rsnapshotCfg = with pkgs; writeText "gen-rsnapshot.conf" ('' rsnapshotCfg = with pkgs; writeText "gen-rsnapshot.conf" (''
config_version 1.2 config_version 1.2
cmd_cp ${coreutils}/bin/cp cmd_cp ${coreutils}/bin/cp

View File

@ -7,6 +7,13 @@ let
pluginPath = lib.concatStringsSep ":" cfg.plugins; pluginPath = lib.concatStringsSep ":" cfg.plugins;
havePluginPath = lib.length cfg.plugins > 0; havePluginPath = lib.length cfg.plugins > 0;
ops = lib.optionalString; ops = lib.optionalString;
verbosityFlag = {
debug = "--debug";
info = "--verbose";
warn = ""; # intentionally empty
error = "--quiet";
fatal = "--silent";
}."${cfg.logLevel}";
in in
@ -37,6 +44,12 @@ in
description = "The paths to find other logstash plugins in."; description = "The paths to find other logstash plugins in.";
}; };
logLevel = mkOption {
type = types.enum [ "debug" "info" "warn" "error" "fatal" ];
default = "warn";
description = "Logging verbosity level.";
};
watchdogTimeout = mkOption { watchdogTimeout = mkOption {
type = types.int; type = types.int;
default = 10; default = 10;
@ -124,6 +137,7 @@ in
"${cfg.package}/bin/logstash agent " + "${cfg.package}/bin/logstash agent " +
"-w ${toString cfg.filterWorkers} " + "-w ${toString cfg.filterWorkers} " +
ops havePluginPath "--pluginpath ${pluginPath} " + ops havePluginPath "--pluginpath ${pluginPath} " +
"${verbosityFlag} " +
"--watchdog-timeout ${toString cfg.watchdogTimeout} " + "--watchdog-timeout ${toString cfg.watchdogTimeout} " +
"-f ${writeText "logstash.conf" '' "-f ${writeText "logstash.conf" ''
input { input {

View File

@ -43,15 +43,6 @@ in {
The package providing syslog-ng binaries. The package providing syslog-ng binaries.
''; '';
}; };
listenToJournal = mkOption {
type = types.bool;
default = true;
description = ''
Whether syslog-ng should listen to the syslog socket used
by journald, and therefore receive all logs that journald
produces.
'';
};
extraModulePaths = mkOption { extraModulePaths = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [];
@ -74,7 +65,7 @@ in {
configHeader = mkOption { configHeader = mkOption {
type = types.lines; type = types.lines;
default = '' default = ''
@version: 3.5 @version: 3.6
@include "scl.conf" @include "scl.conf"
''; '';
description = '' description = ''
@ -86,18 +77,13 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.sockets.syslog = mkIf cfg.listenToJournal {
wantedBy = [ "sockets.target" ];
socketConfig.Service = "syslog-ng.service";
};
systemd.services.syslog-ng = { systemd.services.syslog-ng = {
description = "syslog-ng daemon"; description = "syslog-ng daemon";
preStart = "mkdir -p /{var,run}/syslog-ng"; preStart = "mkdir -p /{var,run}/syslog-ng";
wantedBy = optional (!cfg.listenToJournal) "multi-user.target"; wantedBy = [ "multi-user.target" ];
after = [ "multi-user.target" ]; # makes sure hostname etc is set after = [ "multi-user.target" ]; # makes sure hostname etc is set
serviceConfig = { serviceConfig = {
Type = "notify"; Type = "notify";
Sockets = if cfg.listenToJournal then "syslog.socket" else null;
StandardOutput = "null"; StandardOutput = "null";
Restart = "on-failure"; Restart = "on-failure";
ExecStart = "${cfg.package}/sbin/syslog-ng ${concatStringsSep " " syslogngOptions}"; ExecStart = "${cfg.package}/sbin/syslog-ng ${concatStringsSep " " syslogngOptions}";

View File

@ -7,6 +7,7 @@ let
xcfg = config.services.xserver; xcfg = config.services.xserver;
cfg = xcfg.desktopManager.kde4; cfg = xcfg.desktopManager.kde4;
xorg = pkgs.xorg; xorg = pkgs.xorg;
kde_workspace = config.services.xserver.desktopManager.kde4.kdeWorkspacePackage;
# Disable Nepomuk and Strigi by default. As of KDE 4.7, they don't # Disable Nepomuk and Strigi by default. As of KDE 4.7, they don't
# really work very well (e.g. searching files often fails to find # really work very well (e.g. searching files often fails to find
@ -61,6 +62,13 @@ in
example = ["gstreamer" "vlc"]; example = ["gstreamer" "vlc"];
description = "Which phonon multimedia backend kde should use"; description = "Which phonon multimedia backend kde should use";
}; };
kdeWorkspacePackage = mkOption {
internal = true;
default = pkgs.kde4.kde_workspace;
type = types.package;
description = "Custom kde-workspace, used for NixOS rebranding.";
};
}; };
environment.kdePackages = mkOption { environment.kdePackages = mkOption {
@ -108,13 +116,13 @@ in
fi fi
# Start KDE. # Start KDE.
exec ${pkgs.kde4.kdebase_workspace}/bin/startkde exec ${kde_workspace}/bin/startkde
''; '';
}; };
security.setuidOwners = singleton security.setuidOwners = singleton
{ program = "kcheckpass"; { program = "kcheckpass";
source = "${pkgs.kde4.kdebase_workspace}/lib/kde4/libexec/kcheckpass"; source = "${kde_workspace}/lib/kde4/libexec/kcheckpass";
owner = "root"; owner = "root";
group = "root"; group = "root";
setuid = true; setuid = true;
@ -124,7 +132,7 @@ in
[ pkgs.kde4.kdelibs [ pkgs.kde4.kdelibs
pkgs.kde4.kde_baseapps # Splitted kdebase pkgs.kde4.kde_baseapps # Splitted kdebase
pkgs.kde4.kde_workspace kde_workspace
pkgs.kde4.kde_runtime pkgs.kde4.kde_runtime
pkgs.kde4.konsole pkgs.kde4.konsole
pkgs.kde4.kate pkgs.kde4.kate

View File

@ -68,14 +68,14 @@ let
# Start PulseAudio if enabled. # Start PulseAudio if enabled.
${optionalString (config.hardware.pulseaudio.enable) '' ${optionalString (config.hardware.pulseaudio.enable) ''
${optionalString (!config.hardware.pulseaudio.systemWide) ${optionalString (!config.hardware.pulseaudio.systemWide)
"${pkgs.pulseaudio}/bin/pulseaudio --start" "${config.hardware.pulseaudio.package}/bin/pulseaudio --start"
} }
# Publish access credentials in the root window. # Publish access credentials in the root window.
${pkgs.pulseaudio}/bin/pactl load-module module-x11-publish "display=$DISPLAY" ${config.hardware.pulseaudio.package}/bin/pactl load-module module-x11-publish "display=$DISPLAY"
# Keep track of devices. Mostly useful for Phonon/KDE. # Keep track of devices. Mostly useful for Phonon/KDE.
${pkgs.pulseaudio}/bin/pactl load-module module-device-manager "do_routing=1" ${config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
''} ''}
# Load X defaults. # Load X defaults.

View File

@ -25,12 +25,14 @@ in {
services.xserver.synaptics = { services.xserver.synaptics = {
enable = mkOption { enable = mkOption {
type = types.bool;
default = false; default = false;
example = true; example = true;
description = "Whether to enable touchpad support."; description = "Whether to enable touchpad support.";
}; };
dev = mkOption { dev = mkOption {
type = types.nullOr types.str;
default = null; default = null;
example = "/dev/input/event0"; example = "/dev/input/event0";
description = description =
@ -59,41 +61,56 @@ in {
}; };
twoFingerScroll = mkOption { twoFingerScroll = mkOption {
type = types.bool;
default = false; default = false;
description = "Whether to enable two-finger drag-scrolling."; description = "Whether to enable two-finger drag-scrolling.";
}; };
vertEdgeScroll = mkOption { vertEdgeScroll = mkOption {
type = types.bool;
default = ! cfg.twoFingerScroll; default = ! cfg.twoFingerScroll;
description = "Whether to enable vertical edge drag-scrolling."; description = "Whether to enable vertical edge drag-scrolling.";
}; };
tapButtons = mkOption { tapButtons = mkOption {
type = types.bool;
default = true; default = true;
example = false; example = false;
description = "Whether to enable tap buttons."; description = "Whether to enable tap buttons.";
}; };
buttonsMap = mkOption { buttonsMap = mkOption {
type = types.listOf types.int;
default = [1 2 3]; default = [1 2 3];
example = [1 3 2]; example = [1 3 2];
description = "Remap touchpad buttons."; description = "Remap touchpad buttons.";
apply = map toString; apply = map toString;
}; };
fingersMap = mkOption {
type = types.listOf types.int;
default = [1 2 3];
example = [1 3 2];
description = "Remap several-fingers taps.";
apply = map toString;
};
palmDetect = mkOption { palmDetect = mkOption {
type = types.bool;
default = false; default = false;
example = true; example = true;
description = "Whether to enable palm detection (hardware support required)"; description = "Whether to enable palm detection (hardware support required)";
}; };
horizontalScroll = mkOption { horizontalScroll = mkOption {
type = types.bool;
default = true; default = true;
example = false; example = false;
description = "Whether to enable horizontal scrolling (on touchpad)"; description = "Whether to enable horizontal scrolling (on touchpad)";
}; };
additionalOptions = mkOption { additionalOptions = mkOption {
type = types.str;
default = ""; default = "";
example = '' example = ''
Option "RTCornerButton" "2" Option "RTCornerButton" "2"
@ -130,6 +147,9 @@ in {
Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}" Option "ClickFinger1" "${builtins.elemAt cfg.buttonsMap 0}"
Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}" Option "ClickFinger2" "${builtins.elemAt cfg.buttonsMap 1}"
Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}" Option "ClickFinger3" "${builtins.elemAt cfg.buttonsMap 2}"
Option "TapButton1" "${builtins.elemAt cfg.fingersMap 0}"
Option "TapButton2" "${builtins.elemAt cfg.fingersMap 1}"
Option "TapButton3" "${builtins.elemAt cfg.fingersMap 2}"
Option "VertTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}" Option "VertTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}"
Option "HorizTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}" Option "HorizTwoFingerScroll" "${if cfg.twoFingerScroll then "1" else "0"}"
Option "VertEdgeScroll" "${if cfg.vertEdgeScroll then "1" else "0"}" Option "VertEdgeScroll" "${if cfg.vertEdgeScroll then "1" else "0"}"

View File

@ -65,6 +65,7 @@ in rec {
mysql51 mysql51
mysql55 mysql55
nginx nginx
nodejs
openjdk openjdk
openssh openssh
php php

View File

@ -39,7 +39,7 @@ assert withOnlineServices -> withTaglib;
assert withReplaygain -> withTaglib; assert withReplaygain -> withTaglib;
let let
version = "1.4.2"; version = "1.5.0";
pname = "cantata"; pname = "cantata";
fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF"); fstat = x: fn: "-DENABLE_" + fn + "=" + (if x then "ON" else "OFF");
fstats = x: map (fstat x); fstats = x: map (fstat x);
@ -50,8 +50,8 @@ stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
inherit name; inherit name;
url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60UDFOeU1qSkIzaVE"; url = "https://drive.google.com/uc?export=download&id=0Bzghs6gQWi60c0pFbEtldEk1UnM";
sha256 = "0ycwx75f1jlsaca170bz82av06bnlknl3q0df001rhmhb7wh4j6c"; sha256 = "0gnqfp3ps79d500hrivxj2xkkia042knhg86md6w8ycl3945611p";
}; };
buildInputs = buildInputs =

View File

@ -0,0 +1,13 @@
--- a/src/util_string.cpp 2014-10-27 22:52:11.875981552 +0100
+++ b/src/util_string.cpp 2014-10-27 22:54:18.613001994 +0100
@@ -40,6 +40,10 @@
#include <linux/limits.h>
#endif // __PLATFORM_LINUX__
+#ifdef __PLATFORM_MACOSX__
+#include <limits.h>
+#endif // __PLATFORM_MACOSX__
+
#include <stdio.h>
using namespace std;

View File

@ -0,0 +1,38 @@
{ stdenv, fetchurl, alsaLib, bison, flex, libsndfile, which }:
stdenv.mkDerivation rec {
version = "1.3.4.0";
name = "chuck-${version}";
src = fetchurl {
url = "http://chuck.cs.princeton.edu/release/files/chuck-${version}.tgz";
sha256 = "0cwbk8b1i18nkh2nxwzk2prranw83lgglxw7ccnp6b0r2b2yfpmn";
};
buildInputs = [ bison flex libsndfile which ]
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
patches = [ ./darwin-limits.patch ];
postPatch = ''
substituteInPlace src/makefile --replace "/usr/bin" "$out/bin"
substituteInPlace src/makefile.osx --replace "xcodebuild" "/usr/bin/xcodebuild"
substituteInPlace src/makefile.osx --replace "weak_framework" "framework"
'';
buildPhase =
stdenv.lib.optionals stdenv.isLinux ["make -C src linux-alsa"] ++
stdenv.lib.optionals stdenv.isDarwin ["make -C src osx"];
installPhase = ''
install -Dm755 ./src/chuck $out/bin/chuck
'';
meta = {
description = "Programming language for real-time sound synthesis and music creation";
homepage = http://chuck.cs.princeton.edu;
license = stdenv.lib.licenses.gpl2;
platforms = with stdenv.lib.platforms; linux ++ darwin;
maintainers = with stdenv.lib.maintainers; [ ftrvxmtrx ];
};
}

View File

@ -1,5 +1,6 @@
{ stdenv, fetchurl, libtool, intltool, pkgconfig, glib { stdenv, fetchurl, libtool, intltool, pkgconfig, glib
, gtk, curl, mpd_clientlib, libsoup, gob2, vala, libunique , gtk, curl, mpd_clientlib, libsoup, gob2, vala, libunique
, libSM, libICE
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -22,7 +23,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
libtool intltool pkgconfig glib gtk curl mpd_clientlib libsoup libtool intltool pkgconfig glib gtk curl mpd_clientlib libsoup
libunique libmpd gob2 vala libunique libmpd gob2 vala libSM libICE
]; ];
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -2,12 +2,12 @@
, liblrdf, libsndfile, pkgconfig, qt4 }: , liblrdf, libsndfile, pkgconfig, qt4 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.9.6"; version = "0.9.6.1";
name = "hydrogen-${version}"; name = "hydrogen-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz"; url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
sha256 = "1z7j8aq158mp41iv78j0w6fyx98y1y51z592b4x5hkvicabgck5w"; sha256 = "0vxnaqfmcv7hhk0cj67imdcqngspnck7f0wfmvhfgfqa7x1xznll";
}; };
buildInputs = [ buildInputs = [

View File

@ -1,14 +1,14 @@
{ stdenv, fetchurl, qt4, alsaLib, jack2, dbus }: { stdenv, fetchurl, qt4, alsaLib, jack2, dbus }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "0.3.11"; version = "0.3.12";
name = "qjackctl-${version}"; name = "qjackctl-${version}";
# some dependencies such as killall have to be installed additionally # some dependencies such as killall have to be installed additionally
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qjackctl/${name}.tar.gz"; url = "mirror://sourceforge/qjackctl/${name}.tar.gz";
sha256 = "1wjzrgx3n2asyxk6cnfcm34msaw84qvsqy08bd4qnghrgpl96hwl"; sha256 = "14yvnc4k3hwsjflg8b2d04bc63pdl0gyqjc7vl6rdn29nbr23zwc";
}; };
buildInputs = [ qt4 alsaLib jack2 dbus ]; buildInputs = [ qt4 alsaLib jack2 dbus ];

View File

@ -16,11 +16,11 @@ let
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
name = "atom-${version}"; name = "atom-${version}";
version = "0.135.0"; version = "0.139.0";
src = fetchurl { src = fetchurl {
url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb"; url = "https://github.com/atom/atom/releases/download/v${version}/atom-amd64.deb";
sha256 = "0dh8vjhr31y2ibnf4s7adskbx115w8ns9xgrb0md9xc9gm92h405"; sha256 = "0732s4r9qx0sgsnz415z5r9685scly2084q80kz2xw0d2gfx04xr";
name = "${name}.deb"; name = "${name}.deb";
}; };

View File

@ -1,18 +1,21 @@
{ stdenv, fetchurl, ncurses }: { stdenv, fetchurl, ncurses }:
stdenv.mkDerivation { stdenv.mkDerivation rec {
name = "bvi-1.3.2"; name = "bvi-${version}";
version = "1.4.0";
src = fetchurl { src = fetchurl {
url = mirror://sourceforge/bvi/bvi-1.3.2.src.tar.gz; url = "mirror://sourceforge/bvi/${name}.src.tar.gz";
sha256 = "110wxqnyianqamxq4y53drqqxb9vp4k2fcvic45qggvlqkqhlfgz"; sha256 = "00pq9rv7s8inqxq2m3xshxi58691i3pxw9smibcrgh6768l3qnh1";
}; };
buildInputs = [ ncurses ]; buildInputs = [ ncurses ];
meta = { meta = with stdenv.lib; {
description = "Hex editor with vim style keybindings"; description = "Hex editor with vim style keybindings";
homepage = http://bvi.sourceforge.net/download.html; homepage = http://bvi.sourceforge.net/download.html;
license = stdenv.lib.licenses.gpl2; license = licenses.gpl2;
maintainers = with maintainers; [ pSub ];
platforms = platforms.linux;
}; };
} }

View File

@ -35,10 +35,7 @@ stdenv.mkDerivation rec {
[ "--with-x-toolkit=lucid" "--with-xft" ] [ "--with-x-toolkit=lucid" "--with-xft" ]
else else
[ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no" [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
"--with-gif=no" "--with-tiff=no" ] ) ) "--with-gif=no" "--with-tiff=no" ] ) );
# On NixOS, help Emacs find `crt*.o'.
++ stdenv.lib.optional (stdenv ? glibc)
[ "--with-crt-dir=${stdenv.glibc}/lib" ];
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX) NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.isDarwin && withX)
"-I${cairo}/include/cairo"; "-I${cairo}/include/cairo";

View File

@ -0,0 +1,27 @@
{ stdenv, fetchurl, emacs }:
# this package installs the emacs-mode which
# resides in the hsc3 sources.
let version = "0.15";
in stdenv.mkDerivation {
name = "hsc3-mode-${version}";
src = fetchurl {
url = http://hackage.haskell.org/package/hsc3-0.15/hsc3-0.15.tar.gz;
sha256 = "2f3b15655419cf8ebe25ab1c6ec22993b2589b4ffca7c3a75ce478ca78a0bde6";
};
buildInputs = [ emacs ];
installPhase = ''
mkdir -p "$out/share/emacs/site-lisp"
cp "emacs/hsc3.el" "$out/share/emacs/site-lisp"
'';
meta = {
homepage = http://rd.slavepianos.org/?t=hsc3;
description = "hsc3 mode package for Emacs";
platforms = stdenv.lib.platforms.unix;
};
}

View File

@ -2,11 +2,11 @@
, texLiveAggregationFun }: , texLiveAggregationFun }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "org-8.2.8"; name = "org-8.2.10";
src = fetchurl { src = fetchurl {
url = "http://orgmode.org/${name}.tar.gz"; url = "http://orgmode.org/${name}.tar.gz";
sha256 = "0f63w6d1yjiv46ac7d9rqn2wks6sxmldrqmijd9j25qvsc8dcsd8"; sha256 = "1xm8n8zwr3676rl4pd32k61rd7rimlihhrw5a7r4z7r154c4a2fz";
}; };
buildInputs = [ emacs ]; buildInputs = [ emacs ];

View File

@ -7,7 +7,7 @@ assert stdenv.isLinux;
let let
mkIdeaProduct = mkIdeaProduct =
{ name, product, version, build, src, meta }: { name, product, version, build, src, meta, patchSnappy ? true }:
let loName = stdenv.lib.toLower product; let loName = stdenv.lib.toLower product;
hiName = stdenv.lib.toUpper product; in hiName = stdenv.lib.toUpper product; in
@ -26,38 +26,44 @@ let
buildInputs = [ makeWrapper patchelf p7zip unzip ]; buildInputs = [ makeWrapper patchelf p7zip unzip ];
patchPhase = '' patchPhase = lib.concatStringsSep "\n" [
''
get_file_size() { get_file_size() {
local fname="$1" local fname="$1"
echo $(ls -l $fname | cut -d ' ' -f5) echo $(ls -l $fname | cut -d ' ' -f5)
} }
munge_size_hack() { munge_size_hack() {
local fname="$1" local fname="$1"
local size="$2" local size="$2"
strip $fname strip $fname
truncate --size=$size $fname truncate --size=$size $fname
} }
interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2) interpreter=$(echo ${stdenv.glibc}/lib/ld-linux*.so.2)
snappyPath="lib/snappy-java-1.0.5" if [ "${stdenv.system}" == "x86_64-linux" ]; then
target_size=$(get_file_size bin/fsnotifier64)
patchelf --set-interpreter "$interpreter" bin/fsnotifier64
munge_size_hack bin/fsnotifier64 $target_size
else
target_size=$(get_file_size bin/fsnotifier)
patchelf --set-interpreter "$interpreter" bin/fsnotifier
munge_size_hack bin/fsnotifier $target_size
fi
''
7z x -o"$snappyPath" "$snappyPath.jar" (lib.optionalString patchSnappy ''
if [ "${stdenv.system}" == "x86_64-linux" ]; then snappyPath="lib/snappy-java-1.0.5"
target_size=$(get_file_size bin/fsnotifier64) 7z x -o"$snappyPath" "$snappyPath.jar"
patchelf --set-interpreter "$interpreter" bin/fsnotifier64 if [ "${stdenv.system}" == "x86_64-linux" ]; then
patchelf --set-rpath ${stdenv.gcc.gcc}/lib64/ "$snappyPath/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so" patchelf --set-rpath ${stdenv.gcc.gcc}/lib64 "$snappyPath/org/xerial/snappy/native/Linux/amd64/libsnappyjava.so"
munge_size_hack bin/fsnotifier64 $target_size else
else patchelf --set-rpath ${stdenv.gcc.gcc}/lib "$snappyPath/org/xerial/snappy/native/Linux/i386/libsnappyjava.so"
target_size=$(get_file_size bin/fsnotifier) fi
patchelf --set-interpreter "$interpreter" bin/fsnotifier 7z a -tzip "$snappyPath.jar" ./"$snappyPath"/*
patchelf --set-rpath ${stdenv.gcc.gcc}/lib/ "$snappyPath/org/xerial/snappy/native/Linux/i386/libsnappyjava.so" rm -vr "$snappyPath"
munge_size_hack bin/fsnotifier $target_size '')
fi ];
7z a -tzip "$snappyPath.jar" ./"$snappyPath"/*
rm -vr "$snappyPath"
'';
installPhase = '' installPhase = ''
mkdir -vp "$out/bin" "$out/$name" "$out/share/pixmaps" mkdir -vp "$out/bin" "$out/$name" "$out/share/pixmaps"
@ -68,6 +74,12 @@ let
&& jdk=${jdk}/lib/openjdk \ && jdk=${jdk}/lib/openjdk \
|| jdk=${jdk} || jdk=${jdk}
if [ "${stdenv.system}" == "x86_64-linux" ]; then
makeWrapper "$out/$name/bin/fsnotifier64" "$out/bin/fsnotifier64"
else
makeWrapper "$out/$name/bin/fsnotifier" "$out/bin/fsnotifier"
fi
makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${loName}" \ makeWrapper "$out/$name/bin/${loName}.sh" "$out/bin/${loName}" \
--prefix PATH : "${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin" \ --prefix PATH : "${jdk}/bin:${coreutils}/bin:${gnugrep}/bin:${which}/bin:${git}/bin" \
--prefix LD_RUN_PATH : "${stdenv.gcc.gcc}/lib/" \ --prefix LD_RUN_PATH : "${stdenv.gcc.gcc}/lib/" \
@ -141,6 +153,24 @@ let
}; };
}); });
buildPhpStorm = { name, version, build, src, license, description }:
(mkIdeaProduct {
inherit name version build src;
product = "PhpStorm";
patchSnappy = false;
meta = with stdenv.lib; {
homepage = "https://www.jetbrains.com/phpstorm/";
inherit description license;
longDescription = ''
PhpStorm provides an editor for PHP, HTML and JavaScript
with on-the-fly code analysis, error prevention and
automated refactorings for PHP and JavaScript code.
'';
maintainers = with maintainers; [ schristo ];
platforms = platforms.linux;
};
});
in in
{ {
@ -206,4 +236,16 @@ in
}; };
}; };
phpstorm = buildPhpStorm rec {
name = "phpstorm-${version}";
version = "8.0.1";
build = "PS-138.2001";
description = "Professional IDE for Web and PHP developers";
license = stdenv.lib.licenses.unfree;
src = fetchurl {
url = "http://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
sha256 = "0d46442aa32174fe16846c3c31428178ab69b827d2e0ce31f633f13b64c01afc";
};
};
} }

View File

@ -26,8 +26,8 @@ cabal.mkDerivation (self: rec {
postInstall = '' postInstall = ''
makeWrapper ${yi}/bin/yi $out/bin/yi \ makeWrapper ${yi}/bin/yi $out/bin/yi \
--prefix PATH : ${wrappedGhc}/bin \ --set NIX_GHC ${wrappedGhc}/bin/ghc \
--suffix GHC_PACKAGE_PATH : $(find ${wrappedGhc} -name '*installedconf' | tr \\n :) --set NIX_GHC_LIBDIR ${wrappedGhc}/lib/ghc-${self.ghc.version}
''; '';
meta = { meta = {
homepage = "http://haskell.org/haskellwiki/Yi"; homepage = "http://haskell.org/haskellwiki/Yi";

View File

@ -11,8 +11,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "yi"; pname = "yi";
version = "0.10.1"; version = "0.11.0";
sha256 = "1vj4ndp43w7xlji4p2px79a8g90p64g54sr3hx4pzimwrlpmifk8"; sha256 = "1da5wnqx1z8d809dydqr97jh8n5g9phh06lvkgc32hib2rybh5yx";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -5,11 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "calibre-2.6.0"; name = "calibre-2.7.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/calibre/${name}.tar.xz"; url = "mirror://sourceforge/calibre/${name}.tar.xz";
sha256 = "0z7nnqsal8yfi83fqari7z9xywq6l84jm0nma2mw0gvybysys4cv"; sha256 = "0j8ypdcrxf961093pw3h5bxhd5kd1i6vjnf9cyi55j54j31zy021";
}; };
inherit python; inherit python;

View File

@ -0,0 +1,29 @@
{ stdenv, cmake, fetchurl, pkgconfig, qt4, zlib, bzip2 }:
stdenv.mkDerivation rec {
name = "doomseeker-0.12.1b";
src = fetchurl {
url = "http://doomseeker.drdteam.org/files/${name}_src.tar.bz2";
sha256 = "110yg3w3y1x8p4gqpxb6djxw348caj50q5liq8ssb5mf78v8gk6b";
};
cmakeFlags = ''
-DCMAKE_BUILD_TYPE=Release
'';
buildInputs = [ cmake pkgconfig qt4 zlib bzip2 ];
enableParallelBuilding = true;
patchPhase = ''
sed -e 's#/usr/share/applications#$out/share/applications#' -i src/core/CMakeLists.txt
'';
meta = {
homepage = http://doomseeker.drdteam.org/;
description = "Multiplayer server browser for many Doom source ports";
license = stdenv.lib.licenses.gpl2;
maintainers = with stdenv.lib.maintainers; [ MP2E ];
};
}

View File

@ -12,12 +12,18 @@ stdenv.mkDerivation rec {
buildInputs = [ cmake pkgconfig libusb1 ]; buildInputs = [ cmake pkgconfig libusb1 ];
# Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to # TODO: get these fixes upstream:
# /etc/udev/rules.d/, and there is no option to install elsewhere. So install # * Building with -DINSTALL_UDEV_RULES=ON tries to install udev rules to
# rules manually. # /etc/udev/rules.d/, and there is no option to install elsewhere. So install
# rules manually.
# * Propagate libusb-1.0 dependency in pkg-config file.
postInstall = '' postInstall = ''
mkdir -p "$out/etc/udev/rules.d/" mkdir -p "$out/etc/udev/rules.d/"
cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules" cp ../rtl-sdr.rules "$out/etc/udev/rules.d/99-rtl-sdr.rules"
pcfile="$out"/lib/pkgconfig/librtlsdr.pc
grep -q "Requires:" "$pcfile" && { echo "Upstream has added 'Requires:' in $(basename "$pcfile"); update nix expression."; exit 1; }
echo "Requires: libusb-1.0" >> "$pcfile"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, cmake, libuuid }: { stdenv, fetchurl, cmake, libuuid, gnutls }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "taskwarrior-${version}"; name = "taskwarrior-${version}";
@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0wxcfq0n96vmcbwrlk2x377k8cc5k4i64ca6p02y74g6168ji6ib"; sha256 = "0wxcfq0n96vmcbwrlk2x377k8cc5k4i64ca6p02y74g6168ji6ib";
}; };
nativeBuildInputs = [ cmake libuuid ]; nativeBuildInputs = [ cmake libuuid gnutls ];
meta = { meta = {
description = "GTD (getting things done) implementation"; description = "GTD (getting things done) implementation";

View File

@ -2,15 +2,15 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "termite-${version}"; name = "termite-${version}";
version = "v7"; version = "v8";
src = fetchgit { src = fetchgit {
url = "https://github.com/thestinger/termite"; url = "https://github.com/thestinger/termite";
rev = "f0ff025c1bb6a1e3fd83072f00c2dc42a0701f46"; rev = "7f03ded7308ad0e26b72b150080e4f3e70401815";
sha256 = "057yzlqvp84fkmhn4bz9071glj4rh4187xhg48cdppf2w6phcbxp"; sha256 = "1yj4jvjwv73a02p8a0yip8q39znlhfc9zdr19zm1zik2k4h62c2l";
}; };
makeFlags = "VERSION=${version}"; makeFlags = "VERSION=v${version}";
buildInputs = [pkgconfig vte gtk ncurses]; buildInputs = [pkgconfig vte gtk ncurses];

View File

@ -5,15 +5,15 @@ let
else if stdenv.system == "i686-linux" then "i386" else if stdenv.system == "i686-linux" then "i386"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!"; else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
sha256 = if stdenv.system == "x86_64-linux" then "115xsbi5z8ll0z07vx4rzzsgr6qba43f3z3nzx33pva5dpdr3ci9" sha256 = if stdenv.system == "x86_64-linux" then "c4b100bbf8cda0334e20793e02bf400d15266cb9d089917bd2b6b9d49dd37d19"
else if stdenv.system == "i686-linux" then "110k6cq6l3nr1gak2ri6i1kwis78r3zc1ilbipgcccdczf9fnx7p" else if stdenv.system == "i686-linux" then "5760471fcea396efd158758aa350b1c48a9d0633765a5e3b059baf8aeab615fa"
else throw "Bittorrent Sync for: ${stdenv.system} not supported!"; else throw "Bittorrent Sync for: ${stdenv.system} not supported!";
libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ]; libPath = stdenv.lib.makeLibraryPath [ stdenv.gcc.libc ];
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "btsync-${version}"; name = "btsync-${version}";
version = "1.4.82"; version = "1.4.93";
src = fetchurl { src = fetchurl {
url = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz"; url = "http://syncapp.bittorrent.com/${version}/btsync_${arch}-${version}.tar.gz";

View File

@ -15,14 +15,14 @@
assert stdenv.gcc ? libc && stdenv.gcc.libc != null; assert stdenv.gcc ? libc && stdenv.gcc.libc != null;
let version = "33.0"; in let version = "33.0.1"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "firefox-${version}"; name = "firefox-${version}";
src = fetchurl { src = fetchurl {
url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2"; url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2";
sha1 = "ad10e8fefcd9687d2b67bacafa4ecb5f5ca4af66"; sha1 = "09b9ca1f6af1e0ff8716d559ccf55801ae1a8f2d";
}; };
buildInputs = buildInputs =

View File

@ -1,49 +1,37 @@
/** { stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell
* Possible missing configuration: , gstreamer, gst_plugins_base, startupnotification, gettext
* , perl, perlXMLParser, libxml2, nss, nspr, farsight2
* - silcclient , libXScrnSaver, ncurses, avahi, dbus, dbus_glib, intltool, libidn
* - libebook-1.2 , lib, python, libICE, libXext, libSM
* - libedata-book-1.2 , openssl ? null
* - checking for XScreenSaverRegister in -lXext... no , gnutls ? null
* - checking for XScreenSaverRegister in -lXss... no , libgcrypt ? null
* - ao }:
* - audiofile-config
* - doxygen
*/
{ stdenv, fetchurl, pkgconfig, gtk, gtkspell, aspell,
gstreamer, gst_plugins_base, startupnotification, gettext,
perl, perlXMLParser, libxml2, nss, nspr, farsight2,
libXScrnSaver, ncurses, avahi, dbus, dbus_glib, intltool, libidn
, lib, python
, openssl ? null
, gnutls ? null
, libgcrypt ? null
} :
# FIXME: clean the mess around choosing the SSL library (nss by default) # FIXME: clean the mess around choosing the SSL library (nss by default)
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
majorVersion = "2"; name = "pidgin-${version}";
name = "pidgin-${majorVersion}.10.10"; version = "2.10.10";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/pidgin/${name}.tar.bz2"; url = "mirror://sourceforge/pidgin/${name}.tar.bz2";
sha256 = "0bc2bk2g3w90mpz9sn9j95c71z4i2i3wxaqa2zpmmixf5r8rasyw"; sha256 = "0bc2bk2g3w90mpz9sn9j95c71z4i2i3wxaqa2zpmmixf5r8rasyw";
}; };
inherit nss ncurses; inherit nss ncurses;
buildInputs = [ buildInputs = [
gtkspell aspell gtkspell aspell
gstreamer gst_plugins_base startupnotification gstreamer gst_plugins_base startupnotification
libxml2] libxml2 nss nspr farsight2
++ (lib.optional (openssl != null) openssl)
++ (lib.optional (gnutls != null) gnutls)
++ (lib.optional (libgcrypt != null) libgcrypt)
++
[nss nspr farsight2
libXScrnSaver ncurses python libXScrnSaver ncurses python
avahi dbus dbus_glib intltool libidn avahi dbus dbus_glib intltool libidn
libICE libXext libSM
] ]
; ++ (lib.optional (openssl != null) openssl)
++ (lib.optional (gnutls != null) gnutls)
++ (lib.optional (libgcrypt != null) libgcrypt);
propagatedBuildInputs = [ propagatedBuildInputs = [
pkgconfig gtk perl perlXMLParser gettext pkgconfig gtk perl perlXMLParser gettext
@ -51,9 +39,18 @@ stdenv.mkDerivation rec {
patches = [./pidgin-makefile.patch ./add-search-path.patch ]; patches = [./pidgin-makefile.patch ./add-search-path.patch ];
configureFlags="--with-nspr-includes=${nspr}/include/nspr --with-nspr-libs=${nspr}/lib --with-nss-includes=${nss}/include/nss --with-nss-libs=${nss}/lib --with-ncurses-headers=${ncurses}/include --disable-meanwhile --disable-nm --disable-tcl" configureFlags = [
+ (lib.optionalString (gnutls != null) " --enable-gnutls=yes --enable-nss=no") "--with-nspr-includes=${nspr}/include/nspr"
; "--with-nspr-libs=${nspr}/lib"
"--with-nss-includes=${nss}/include/nss"
"--with-nss-libs=${nss}/lib"
"--with-ncurses-headers=${ncurses}/include"
"--disable-meanwhile"
"--disable-nm"
"--disable-tcl"
]
++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]);
meta = with stdenv.lib; { meta = with stdenv.lib; {
description = "Multi-protocol instant messaging client"; description = "Multi-protocol instant messaging client";
homepage = http://pidgin.im; homepage = http://pidgin.im;

View File

@ -1,7 +1,7 @@
{ stdenv, buildEnv, pidgin, makeWrapper, plugins }: { stdenv, buildEnv, pidgin, makeWrapper, plugins }:
let drv = buildEnv { let drv = buildEnv {
name = "${pidgin.name}-with-plugins"; name = "pidgin-with-plugins-" + (builtins.parseDrvName pidgin.name).version;
paths = [ pidgin ] ++ plugins; paths = [ pidgin ] ++ plugins;
@ -15,7 +15,7 @@ let drv = buildEnv {
done done
fi fi
wrapProgram $out/bin/pidgin \ wrapProgram $out/bin/pidgin \
--suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.majorVersion} $out/lib/pidgin" --suffix-each PURPLE_PLUGIN_PATH ':' "$out/lib/purple-${pidgin.version} $out/lib/pidgin"
''; '';
}; };
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })

View File

@ -5,24 +5,27 @@
, ssl ? true # enable SSL support , ssl ? true # enable SSL support
, previews ? false # enable webpage previews on hovering over URLs , previews ? false # enable webpage previews on hovering over URLs
, tag ? "" # tag added to the package name , tag ? "" # tag added to the package name
, stdenv, fetchurl, cmake, makeWrapper, qt4, kdelibs, automoc4, phonon, dconf }: , stdenv, fetchurl, cmake, makeWrapper, qt, kdelibs, automoc4, phonon, dconf }:
assert monolithic -> !client && !daemon;
assert client || daemon -> !monolithic;
let let
edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))]; edf = flag: feature: [("-D" + feature + (if flag then "=ON" else "=OFF"))];
in with stdenv; mkDerivation rec { in with stdenv; mkDerivation rec {
version = "0.10.0"; version = "0.11.0";
name = "quassel${tag}-${version}"; name = "quassel${tag}-${version}";
src = fetchurl { src = fetchurl {
url = "http://quassel-irc.org/pub/quassel-${version}.tar.bz2"; url = "http://quassel-irc.org/pub/quassel-${version}.tar.bz2";
sha256 = "08vwxkwnzlgnxn0wi6ga9fk8qgc6nklb236hsfnr5ad37bi8q8k8"; sha256 = "01251y5i1fvm6s2g9acxaczk2jdyw1byr45q41q0yh9apjw938cr";
}; };
enableParallelBuilding = true; enableParallelBuilding = true;
buildInputs = [ cmake makeWrapper qt4 ] buildInputs = [ cmake makeWrapper qt ]
++ lib.optional withKDE kdelibs ++ lib.optional withKDE kdelibs
++ lib.optional withKDE automoc4 ++ lib.optional withKDE automoc4
++ lib.optional withKDE phonon; ++ lib.optional withKDE phonon;
@ -63,6 +66,6 @@ in with stdenv; mkDerivation rec {
license = stdenv.lib.licenses.gpl3; license = stdenv.lib.licenses.gpl3;
maintainers = [ maintainers.phreedom ]; maintainers = [ maintainers.phreedom ];
repositories.git = https://github.com/quassel/quassel.git; repositories.git = https://github.com/quassel/quassel.git;
inherit (qt4.meta) platforms; inherit (qt.meta) platforms;
}; };
} }

View File

@ -4,11 +4,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "notmuch-0.18.1"; name = "notmuch-0.18.2";
src = fetchurl { src = fetchurl {
url = "http://notmuchmail.org/releases/${name}.tar.gz"; url = "http://notmuchmail.org/releases/${name}.tar.gz";
sha256 = "1pdp9l7yv71d3fjb30qyccva8h03hvg88q4a00yi50v2j70kvmgj"; sha256 = "175wzrw1mfpl4h72n9ims66zn5l34zn2dn857vraj2i5w7z7p7z9";
}; };
buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ] buildInputs = [ bash emacs gdb glib gmime gnupg pkgconfig talloc xapian ]

View File

@ -40,118 +40,118 @@
assert stdenv.isLinux; assert stdenv.isLinux;
let let
version = "31.1.2"; version = "31.2.0";
sources = [ sources = [
{ locale = "id"; arch = "linux-i686"; sha256 = "210f0037279ec373d5d189a8724962fec3237900c343ca93d2421ca93a35f201"; } { locale = "tr"; arch = "linux-i686"; sha256 = "02dc838606507040c73ddff4a1b60fec7d6e613aa08da2ce1c76e9c367bc29e5"; }
{ locale = "id"; arch = "linux-x86_64"; sha256 = "7436275f73a1292567cc587bd41439ecb724fac5e092f0b0f2af932bf39805f7"; } { locale = "tr"; arch = "linux-x86_64"; sha256 = "a93243ab5b1d64a94bf10833d6b8985a65906d0be24bdcdd7b5babfb1d466bcd"; }
{ locale = "he"; arch = "linux-i686"; sha256 = "14b878d70f96e60e3a73134c3cbb35cc6d468446b588510ae5f2e8934d8fbb3b"; } { locale = "nl"; arch = "linux-i686"; sha256 = "d675da8358bf4ed519ee49dcc2c2162075b5e9e0fca244b474322a7614f535da"; }
{ locale = "he"; arch = "linux-x86_64"; sha256 = "6edabe4a5bf81274cb117bdf7ec7d0b89f3759b9f31e1b9e03c0c603cda2e91f"; } { locale = "nl"; arch = "linux-x86_64"; sha256 = "4e8f9e3f9fe851dc38deae42443cf884776e1d93abf34ce6963651a85afdc4a9"; }
{ locale = "el"; arch = "linux-i686"; sha256 = "9f65b45570f83d41b856f99b3077e6e112fa65b3762eb51277269fdbf07cfdb2"; } { locale = "he"; arch = "linux-i686"; sha256 = "8a769559e73abfdb610891a23538ef38df3852ffb39d02cba96e6a8ec914f94a"; }
{ locale = "el"; arch = "linux-x86_64"; sha256 = "6a500164772c004d851f13d77a7a9b84428b5c372fdba6f0936c1ddd398d9087"; } { locale = "he"; arch = "linux-x86_64"; sha256 = "e53b95914753b8640b69e104fbf5efb2fddcecc17eded23974c08274378105c2"; }
{ locale = "tr"; arch = "linux-i686"; sha256 = "fb5f9ab606101cfebe86f64f64b9e46ecd73a704c1a2a993e4b4d68129d84484"; } { locale = "bg"; arch = "linux-i686"; sha256 = "60deb9deb678c9e5233d9c0146aa4fc8a74b9ba9b5be43ed8c5a452039b8307d"; }
{ locale = "tr"; arch = "linux-x86_64"; sha256 = "54517217aa8cf4d715dd2c7d5cf7c4b96bd5f0add2dda9d9d9412ea10b4210a4"; } { locale = "bg"; arch = "linux-x86_64"; sha256 = "73e5c984d5d3fa17f93cb947fd63671fba66bab94117db84e187cb9260500101"; }
{ locale = "ast"; arch = "linux-i686"; sha256 = "2ff66a151f4003b5dc0432b43e1038e0c69645c58fc5d6015cab3e493a8ed9a7"; } { locale = "si"; arch = "linux-i686"; sha256 = "669d825940712d7f10c7303e3e0a0ed9c48e9e5c26b0c035ed58bf8694d5ddc3"; }
{ locale = "ast"; arch = "linux-x86_64"; sha256 = "e34c892ff3fe761c2707036c5ea3453fe411dca2ad2e474ead7ef0c209558e06"; } { locale = "si"; arch = "linux-x86_64"; sha256 = "e60e048af0c965ac6f2adedb58e192d6d4208bf7f57dcef13b899da04ca14420"; }
{ locale = "nl"; arch = "linux-i686"; sha256 = "46154b1fab58e9040e4e67b01ae2c5865b644ccf8f2239c396725bf063eae640"; } { locale = "zh-CN"; arch = "linux-i686"; sha256 = "f5f5b653e17b495c3cb4b1a26b39d3fdbeedb22c8d733cb2f3b6e57d46269949"; }
{ locale = "nl"; arch = "linux-x86_64"; sha256 = "271f169763271582698b8ec23d9ca463b41a7d2b373b56d9c170179e15f0fc34"; } { locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "653cc18216f5fc156feef73170f903471480612a4de6df4efa3cce79b58fee28"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha256 = "2b3f2e9933bcda04abc5785b77630cedcba2d85a73a9d535d895ed7910c97d54"; } { locale = "ro"; arch = "linux-i686"; sha256 = "5cc87c9c84c205f99dc3fa58be8fedd72b9afccb69c91616f11929e2a7e075fd"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "e4878b6ec24d75cba9e991f6b852ec280992b205bca0e82a2aecfd9a607cdbb4"; } { locale = "ro"; arch = "linux-x86_64"; sha256 = "dc6e8f5dd30a7e2dcfebabfcc508de89cde3754c036811df7168f4f1e53c1477"; }
{ locale = "eu"; arch = "linux-i686"; sha256 = "b2ff2e8b6c9b7ee81d0965380d15e080c204ffac35b687ca29ca41b51804b491"; } { locale = "ast"; arch = "linux-i686"; sha256 = "653025d1260db10310f8d689cb4554acf7a6388a99bac977b6f59b683d7e5983"; }
{ locale = "eu"; arch = "linux-x86_64"; sha256 = "7afd4c4618f4e7758875ae58295e340289eb994723d3eea13c388751878e0b4e"; } { locale = "ast"; arch = "linux-x86_64"; sha256 = "1a4623f94b4c68b6b89ec53c512f860388965dc36f2d06272341a194dc85eef6"; }
{ locale = "fr"; arch = "linux-i686"; sha256 = "41f07408eaec108a28f03917820329c801a386ad3628ebdeb7abd852e579ae72"; } { locale = "pl"; arch = "linux-i686"; sha256 = "0e0ae13028d5f65a54398c634ed5b4a6685e2dc84b05121e71a0c0ca7a04053e"; }
{ locale = "fr"; arch = "linux-x86_64"; sha256 = "ea667afbfeba6901a56cc44751d6bf202ef978ce7e39719e56c1fe31a622922b"; } { locale = "pl"; arch = "linux-x86_64"; sha256 = "2589909994cfa059d55a75b7d8f756c09f67994034f7f45c7b5b8805302645bf"; }
{ locale = "br"; arch = "linux-i686"; sha256 = "cea91b552b14e4a417d288d93b4db10b787a1a15316ed7de0b3016be359ddcc5"; } { locale = "gl"; arch = "linux-i686"; sha256 = "155e79bad6226eb2231a08856415b5e4a15cb02235b0b17ff7c0378c38d2dc93"; }
{ locale = "br"; arch = "linux-x86_64"; sha256 = "8d72d7cca4885f527a8e8d2b8e2950d0ea0e5d1a840bcde38c08a77e3b6a69a7"; } { locale = "gl"; arch = "linux-x86_64"; sha256 = "688d3c51645061fda283e2d486de1306f0b457149c82cbd20c7c019e76ed98b2"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha256 = "92a28502463e92e6bb9cf7854358c13757222433f9931703a2df4d1ef93bdcbb"; } { locale = "ja"; arch = "linux-i686"; sha256 = "90b3bbc31046daada0ce995108fb9542aeb878220579836ed0e5b14088199795"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "6b61650491252bb441a13b2fa550d9bdd76e6f23a0e5da641fde4372637c451c"; } { locale = "ja"; arch = "linux-x86_64"; sha256 = "ebd172d4a74ef757ceace8799c752e34fa0fb41dd5f4083d2aad2df4efd0329b"; }
{ locale = "gd"; arch = "linux-i686"; sha256 = "4d35dfe5c9d66ea8f81fa0e5957152296f9af31968b8ed4975563c480abf2da8"; } { locale = "ca"; arch = "linux-i686"; sha256 = "c1502e310fd4b0a682fef147b4f5a97db972ed49916012a145ce6d5c4afd6452"; }
{ locale = "gd"; arch = "linux-x86_64"; sha256 = "3647b5345ac4fa5cc6cd301fefbe538d2442110f93cccb5e8eca4227bcbcd661"; } { locale = "ca"; arch = "linux-x86_64"; sha256 = "bac8bfe883d35f3624bae8cd4d831694a8e3f2b319a912ad5007e39483a22e70"; }
{ locale = "bg"; arch = "linux-i686"; sha256 = "b06afea38900f268b95787c257d960de8c0174f582e51434aa97a9535fac43a4"; } { locale = "fr"; arch = "linux-i686"; sha256 = "d0315db23af439e736e02d93d2467c86fe2a186c849aef32e928adb5059fa7fd"; }
{ locale = "bg"; arch = "linux-x86_64"; sha256 = "c4ae2aebdd91543cf3c64ea25931327f6e8d2113b59d0b2fbb19561b4f935134"; } { locale = "fr"; arch = "linux-x86_64"; sha256 = "8d5c5c4ac8865ee233ea10d2c4b153bb47cf4df4047dfae9aa7b5722c293e5cc"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha256 = "854d4c53fd22c5c1f4635ed41e7dadc6f0603439380e3d3f15ea7a5db5721941"; } { locale = "fy-NL"; arch = "linux-i686"; sha256 = "9bbac5b2d4ada74e6cdc8730997d47043d319a79a61636322038584265001fed"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "64842c6606e2102434ed0b33bcb53d0cdef08e4b55e67e85b3c1244a7dab32d5"; } { locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "ac828318d8ce07332af73b3146f77825e51e8df8e858c0596589dbdfb2c8718f"; }
{ locale = "ja"; arch = "linux-i686"; sha256 = "6632eec0a8bf14a77590fae44113d417589634a97cd0b57ef4ede7623cd5b632"; } { locale = "sl"; arch = "linux-i686"; sha256 = "16276607ffd4fa9fac4077cfc6da91ced5d5a4b08d804726d9d4b7e870cc25f2"; }
{ locale = "ja"; arch = "linux-x86_64"; sha256 = "727c25136106eca05d4c0bbddbe01672decc4a9f55b3246290c1c6e41cbef946"; } { locale = "sl"; arch = "linux-x86_64"; sha256 = "7e1c2f2aaa973b7a19518c62beb43130d7fb95d4c5aecd3370d7ab2fb59f37c5"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha256 = "986ae49f92e2bab52cc3a4da4f9ca9bce34c01e96126d4fd9fe41d39d16a8ee3"; } { locale = "be"; arch = "linux-i686"; sha256 = "48b27779e6ee95971d72a6be14e69ac1e724f5450126ad2627a9b2f0511b663c"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "c208dc5adb8bbe39535ec28836425d66d557d4ebb111aca9c0d025750ad0d3c4"; } { locale = "be"; arch = "linux-x86_64"; sha256 = "ebd551829f7a66b47a82cad5db79a27126719af71ada250dbaedf292077e9c8e"; }
{ locale = "is"; arch = "linux-i686"; sha256 = "ee8b101070f820849ec2bde48b76e102cf750bbcee106f47238259bb3cb791bb"; } { locale = "ko"; arch = "linux-i686"; sha256 = "8f92e772ce7c54d6210c83fee257c9cc0b2a3542f41ac2059ea377c64d4f59ed"; }
{ locale = "is"; arch = "linux-x86_64"; sha256 = "19471d5e13856f85fc395b825fb297f88805bba5d1d6c2999c49c4947cc6ed43"; } { locale = "ko"; arch = "linux-x86_64"; sha256 = "b2cec9901318ec0754e8caca2d56e6e4d08deb4aa21db7fb04c555062b84b9be"; }
{ locale = "es-AR"; arch = "linux-i686"; sha256 = "b21ec0c7e2ee24b971828ae02419f06e3d9447c5e30b1c8257a1d8e1b5ac383e"; } { locale = "hr"; arch = "linux-i686"; sha256 = "c5a1da56142398fc79b6d356d600f8228b0a4f1ac40d04df4ff5c25564b77a6f"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha256 = "6f8eda76fe19bd590e4f8e23e491edc93b870b72064814eb0d6352c99513397f"; } { locale = "hr"; arch = "linux-x86_64"; sha256 = "5d0308e1c08960a26ac3328eb5be4c237e2320a38a6db077186f1d1a278feb8d"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha256 = "217a6b195255c841ff42f181aa4fa54bd76a91de61662098d96c4fb9e7d6b79a"; } { locale = "nn-NO"; arch = "linux-i686"; sha256 = "d0abb5c4657a4a04999a44f96d00271e8dc3ad79ae0e78cf4b820fc2fd29b266"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "f11ce6f7ef22cb99674668bfcd0f3614a4a9e162f9608fa1290ae26c6c199560"; } { locale = "nn-NO"; arch = "linux-x86_64"; sha256 = "fdde99be62fe6a911711e1ba69a2babcdba53216a5942494ab7e52cada8bf893"; }
{ locale = "sr"; arch = "linux-i686"; sha256 = "85f32820095ee3b50716731b2b369378cf530fd1f3ef3522a5cd55e00fb4ce5e"; } { locale = "vi"; arch = "linux-i686"; sha256 = "d0420a7ccd8f4fcd7f56497636baa701c71576d3b88440b609cbb3ebf245d4e4"; }
{ locale = "sr"; arch = "linux-x86_64"; sha256 = "d67b98991de46de52f84627ccb7f2888551343eef94a5d7562e587fcd8d968ec"; } { locale = "vi"; arch = "linux-x86_64"; sha256 = "5657eb2a99f7c2cf32297bbb45fab4c0eb2dd48ba4ba98487beed18aa5e85ada"; }
{ locale = "si"; arch = "linux-i686"; sha256 = "14914642dc540c6a0fa0df5816eb35b39b822dac4da58a79d9cfe1c3bf7ed1c0"; } { locale = "es-AR"; arch = "linux-i686"; sha256 = "fe60d3b13e964bd99730e8082b742729084e87f6a285deb8cd2383dccf881f1c"; }
{ locale = "si"; arch = "linux-x86_64"; sha256 = "c0421803b2be6704151177c0d13557a9d828e3b3333cd214734e2ed4aafce105"; } { locale = "es-AR"; arch = "linux-x86_64"; sha256 = "76faee1fd8da11731ece128832997de0f10501040921e6abb46fc0ae4922d568"; }
{ locale = "ro"; arch = "linux-i686"; sha256 = "9226cd799114fcec9c1b53b403708e62ca9f151d43bb53167b822cd3ca779171"; } { locale = "el"; arch = "linux-i686"; sha256 = "c1ad068c565abb7b3f16c843f6974fcec6f46714c3f9afb193d10ffa3773cbff"; }
{ locale = "ro"; arch = "linux-x86_64"; sha256 = "05e13ad7c9a53a123c3a50e858285f730a4a5ec95e93074cfda990f4466a1c4f"; } { locale = "el"; arch = "linux-x86_64"; sha256 = "b5cd4fb82525b67ef199b9eadaebe25f70a29e1dc43b2ad0f0074bf7d01a05f0"; }
{ locale = "it"; arch = "linux-i686"; sha256 = "ed9b4f3bfd457d00792795584bf17bebf4b42967c111cf4f778aa7e88b437407"; } { locale = "is"; arch = "linux-i686"; sha256 = "195cb61263c4c01c345a5effcb5f4f6741a1ee10f716006a614d55721b013e48"; }
{ locale = "it"; arch = "linux-x86_64"; sha256 = "301dbc22a9af014aeb6f151ac1f6ff67ef667dabe31c5e487681f682bf8d567b"; } { locale = "is"; arch = "linux-x86_64"; sha256 = "42447cb7c7689623a34607a0aa1a9866552756576932d45a4721c5fe8541070f"; }
{ locale = "pl"; arch = "linux-i686"; sha256 = "9894e91593b3d825d2572af8c520c8be5dd791a267bb056180dc4415d55f4dc1"; } { locale = "ru"; arch = "linux-i686"; sha256 = "6c0f45046e4d1910a20e245f0b69af5b4fb2a9507abd99217bffe68bf213061e"; }
{ locale = "pl"; arch = "linux-x86_64"; sha256 = "0531f815bc4325f150465c753ffe849577931e47eb9528df3b58e666155856f0"; } { locale = "ru"; arch = "linux-x86_64"; sha256 = "408f3b38fc416cc12640af0928fbea1506eae3f4a65b6b3b889bca54bb0a1521"; }
{ locale = "sk"; arch = "linux-i686"; sha256 = "4633afa9f32f6aa1bc91c1ca2e6d1b5622192c9a82fd4c591e0f6a3095ab0baf"; } { locale = "pt-BR"; arch = "linux-i686"; sha256 = "330f4546fe50d717fc66b8417405d3c1eef8ca4f312b21563c426739eee4724a"; }
{ locale = "sk"; arch = "linux-x86_64"; sha256 = "2121bd74ce76a0ec1734e3171c8da8ac4d935c99f6c16344639ff7e60de9a860"; } { locale = "pt-BR"; arch = "linux-x86_64"; sha256 = "283d3e581ebb84059985aad40f72338a77b068e27b8247e0ac16b915ed16f797"; }
{ locale = "vi"; arch = "linux-i686"; sha256 = "d10a856d94c790281500cf1c41683255a858eecc43afaa74819ef2d3559216e9"; } { locale = "hy-AM"; arch = "linux-i686"; sha256 = "8068738dbfc0ed5f5a08b1b4a65a5e9e1ac780de43fc5f27c269dcd5e9998f97"; }
{ locale = "vi"; arch = "linux-x86_64"; sha256 = "964343e1ee3209dea0a90dcb1f5371cb0f949b68e059aa23fe80d53747a4699c"; } { locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "a101856b6151cae9d33a909d1a0fc11eb26439ca161db55dc262bf86bb457c29"; }
{ locale = "rm"; arch = "linux-i686"; sha256 = "f28ce0029dc5fb3212bd020065c2d453d36db53c98df1806f0e4192ef3d8c5da"; } { locale = "sk"; arch = "linux-i686"; sha256 = "5a790cc811d8e392daa83b11feb232092ab97dc8c9fc0bb47b4013751a30f76e"; }
{ locale = "rm"; arch = "linux-x86_64"; sha256 = "fb532732406c8338bfb947e20ee6a95ff1bb18b1d6eadcd7525153393894bdf9"; } { locale = "sk"; arch = "linux-x86_64"; sha256 = "7842ceeab524c98387ca6319735bf7c331d34bcfde395078cc32c443e69962ef"; }
{ locale = "ar"; arch = "linux-i686"; sha256 = "5e05b156179978920c4c7ed995ef018ddaa6332c5fe1898d94314412d11567b0"; } { locale = "sr"; arch = "linux-i686"; sha256 = "06ded63a3d09af09ac68b318f79f07e924addb30d4c11903b6a86ba3ef476761"; }
{ locale = "ar"; arch = "linux-x86_64"; sha256 = "acba5a042588731e8b1af0dcc7e075577551969d7c1081c23df6feae7f4d107d"; } { locale = "sr"; arch = "linux-x86_64"; sha256 = "53a99f98398b2044866422ca44b496d489c0b78724f28afb4f919eca656d528a"; }
{ locale = "es-ES"; arch = "linux-i686"; sha256 = "92c6f00a0e014617b5fb53167c821f17f550e8307fcd4af831cde04891f00b40"; } { locale = "en-US"; arch = "linux-i686"; sha256 = "4c4da90f383d7b43e97e471656a6cfbbd44d1b80d57b8b2405497678aced46b5"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha256 = "191c531621e961b25bf8f16c2aad2ac57357d3456f84fc5efb4f7b7e9becc202"; } { locale = "en-US"; arch = "linux-x86_64"; sha256 = "41ff22bc9a41aa0e71deebce4894e99f3e3737a57279a1488bf9d2f869cd56ad"; }
{ locale = "fi"; arch = "linux-i686"; sha256 = "2f061035a0b6b07bb81d9f84f1bad9a7fd50b0546417fc047102e684683241c5"; } { locale = "es-ES"; arch = "linux-i686"; sha256 = "e11451297f17febcf0057ae02dc15a298aacc865146e1aac363300dac6de57c5"; }
{ locale = "fi"; arch = "linux-x86_64"; sha256 = "ee7b57cfbc15104568e12d0cc81a14118c7b0f2708963fbe2ba8ca7a2ce30a0b"; } { locale = "es-ES"; arch = "linux-x86_64"; sha256 = "0e5d389a2c5b673b423dd2afad375eb6a7e05c8eb0b07ceb4975d658827d6cf5"; }
{ locale = "hu"; arch = "linux-i686"; sha256 = "a493b0d327f608a815654a74b22f0ab3237b139998b8720c197468fc624754b6"; } { locale = "gd"; arch = "linux-i686"; sha256 = "5fc40508e7a6228065084fc91431af3b9231c6ce46ae3e88ef249ad67bf1b545"; }
{ locale = "hu"; arch = "linux-x86_64"; sha256 = "2b9e87e794e6ac423fd7e6c5500b8a63dc2f8a6a4bdf39de2bbfa5c06a2a8f67"; } { locale = "gd"; arch = "linux-x86_64"; sha256 = "ef365e27b05f4bd0c8211ed9e54ecfa4983111be74261303870a8d22e6093c08"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha256 = "d272ea7a87f15a649c8d6089b6a5eac91ca732b760163e36ee6634ac2a186313"; } { locale = "fi"; arch = "linux-i686"; sha256 = "9461f7d3953dc6aa5c9d2406331138a5e34d114eb5b48b09b562dade25a38ab7"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha256 = "2b71cab0bfd437a6c79125cbe0ccb82bc1fe257c6aa24b0b63c1a8456334e6e0"; } { locale = "fi"; arch = "linux-x86_64"; sha256 = "6a0310cc0e0a5d9e1590c735e91e8c1bb85358687f4a6a59219de05bb0cf9d1d"; }
{ locale = "uk"; arch = "linux-i686"; sha256 = "56a04b6a6a27d9eea98bb5539c927870a3a43aaace14d31faf54dd56b8ef128b"; } { locale = "de"; arch = "linux-i686"; sha256 = "b4fd29c1bd06c5d6b85aeb6434746f1fa0af627c5795ce2ebc7d3dddcf78e9e6"; }
{ locale = "uk"; arch = "linux-x86_64"; sha256 = "99e33539eff6a48d944f47fc86a98e07ab4395e90e509c050403e70820b11db4"; } { locale = "de"; arch = "linux-x86_64"; sha256 = "b24afec0b5de5e872848dfcd609f1cf81fe2eed96cc9ee1a5f17fd1b68750d34"; }
{ locale = "ko"; arch = "linux-i686"; sha256 = "4c7a67b83db3c15cb8385ec057eff849e59841d2c6e82f6839f76c747c09fd02"; } { locale = "sq"; arch = "linux-i686"; sha256 = "a78274174c8c26426d9f7e85589f6143f47fab9ce8eb9bbb91fc6c9444c1470d"; }
{ locale = "ko"; arch = "linux-x86_64"; sha256 = "5e54ad0316c905a2fc137365e34ba24391ec3a12c638f1947d8048b9747b2a21"; } { locale = "sq"; arch = "linux-x86_64"; sha256 = "18c6ee5a732d777d9326593a4edfc30f11acdfef2397aa55c436d54a99de9c3a"; }
{ locale = "cs"; arch = "linux-i686"; sha256 = "735d14680ba5108d9d422fda161d0cd1cf31ffb2d29d66b33671c58504436290"; } { locale = "sv-SE"; arch = "linux-i686"; sha256 = "3e12328500db45ecfb4572c3cad8b75a46d930ec57a426c8fbe6dd8e033f3cfc"; }
{ locale = "cs"; arch = "linux-x86_64"; sha256 = "031b6f8a2f9a14689e91d887754221a972d4c9aa02807209126aa0d26be18b04"; } { locale = "sv-SE"; arch = "linux-x86_64"; sha256 = "a76f785c8c0b17f3962a94d4cee5bce9be7b91fd2805133f490ad516ba2d5ad8"; }
{ locale = "be"; arch = "linux-i686"; sha256 = "604db8cb078699262bf01f81a97bb745bda26efdb7e81bdae66ae5fe9f546c48"; } { locale = "hu"; arch = "linux-i686"; sha256 = "72e1d888516119a6aa21d077fbe8faefc5cf13e8e422ae26aeed4416700f16af"; }
{ locale = "be"; arch = "linux-x86_64"; sha256 = "62a3ed654691720ff2cb2402efb450dcbe395baecd6c20dcba3d45455bfb68d1"; } { locale = "hu"; arch = "linux-x86_64"; sha256 = "962f0b046ab3f385348022d78ffffdae6137b351c5031453f62b5fa1dd44a9b3"; }
{ locale = "ru"; arch = "linux-i686"; sha256 = "81b2a2eab496824d109faf49b6df93adc9dce838058f3f70c9e9c99ad251baf3"; } { locale = "nb-NO"; arch = "linux-i686"; sha256 = "b5b11886e19a03e219bb803c7853bded9c5e4a2cde0a33abba4c0665a44ec8f4"; }
{ locale = "ru"; arch = "linux-x86_64"; sha256 = "6cdf95dd941475554630709d89fb802e8744bae7645ad9164dc2e8af701d195e"; } { locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "faa18298e02ecd0eca77f4e68e88ebb91ca8ea3abb6241f53d82e1db7db95076"; }
{ locale = "ta-LK"; arch = "linux-i686"; sha256 = "422f2173eae85a95611ba14a9945aac7b44076764b7c67d2c4198b3e6fe2fad7"; } { locale = "cs"; arch = "linux-i686"; sha256 = "03b23597d55f1db442f8147bcff7108e3b520e0b5d05d819df07915ba6baa35f"; }
{ locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "d3d3dfc439bcb26cdb8d8f1ef0a9a24e804a6928aa6ac4f9ea2c0994c3e6e2c4"; } { locale = "cs"; arch = "linux-x86_64"; sha256 = "3dea9adb367958babb54dce3102d43d316088aa6140101d18a59cda20522d78f"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha256 = "6d0e3db5748fa2bce8ebc3b51098241ba80971afea629836a37e4f84feeb0c85"; } { locale = "br"; arch = "linux-i686"; sha256 = "7b1814286847188ca68b3f24457b3a6ee5cd967833bf789104db0fedd2993941"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "4dd79725f91c163cd5a2073d52f3f599c2e0e95281e8235df0a20c9f8717fa07"; } { locale = "br"; arch = "linux-x86_64"; sha256 = "7605776d4a72d82fc65280df0cf9812f134a1dc790e0f60f089f287f38ed5db0"; }
{ locale = "de"; arch = "linux-i686"; sha256 = "7b1fb8c036729ee18507e0c3529cbaf93e8776801fba9bd8c93fa7b56dcf460e"; } { locale = "pt-PT"; arch = "linux-i686"; sha256 = "da8177ab1912d5a0047dd2f6848a421c8fe32d39bacb64e76e0633ddaca5f4de"; }
{ locale = "de"; arch = "linux-x86_64"; sha256 = "926b0ad5e817af337b2f2f7416f98e935b5a6b90171816207275413c04dffb2c"; } { locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "60b1c2f1f209c5e16c6f29c0a5bcaf46c04bb2ae289925761193387ae65fe18d"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha256 = "a0c9e3abe9f3835166237a9ee12dffdc1e3255b59a47e3ed0f19ecf5a6f41ba8"; } { locale = "rm"; arch = "linux-i686"; sha256 = "29e073a8068f7d060cf2818d85d465df3f606aba95e867dc9aa67533d09e4b55"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha256 = "173c030e3bba69c1634587a4032e4d0b49f37e0a94ba75c4deda7f23d25b21cc"; } { locale = "rm"; arch = "linux-x86_64"; sha256 = "8d8ac419650a9cd0b138aa823dcfb67e47f8522a5d51625090c26c45a5c577a7"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha256 = "25f3ca3328c99421db81e4d88b8fe51e913b01430e0db412699b11fef0c81240"; } { locale = "lt"; arch = "linux-i686"; sha256 = "9d537ff70f06a5189296a99126a57ab8664266ec2da673671e60e97678d3ed9d"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha256 = "df9f7737dddd56fb233d029c83c46a18470f992bc2b0222b54e1c4c36bde135b"; } { locale = "lt"; arch = "linux-x86_64"; sha256 = "77f30fb2b94fa7cb690c5c0f2fff0ec89c1aa8f8915891d17a66357ddd10d462"; }
{ locale = "sq"; arch = "linux-i686"; sha256 = "181bbb3808b28a5dc170db90db69a99137ce5d49c559c59c4a185b1ee48bea3d"; } { locale = "eu"; arch = "linux-i686"; sha256 = "1b613c1cf303a65c3065fc3edf15c6a051c1a7e347512e39cce425ef02828c3c"; }
{ locale = "sq"; arch = "linux-x86_64"; sha256 = "8b06fb2d2e4027aaa3ca5032823b203f5e2628c7673dd956103636916cf28a32"; } { locale = "eu"; arch = "linux-x86_64"; sha256 = "a02a04bc88efca8523b4af8e4962b205ad13d9eb9879405db57356966b12202b"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha256 = "e7679ef7d467aeaa796af37e62a48fb08e60299cdeb6cea07fcbd8253cda7288"; } { locale = "it"; arch = "linux-i686"; sha256 = "baede1707cca4ff149956884f855fa0077c372275f6be6f59d32e47cc6509b5b"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "83a4b3a22de8be841be0967cda71dcc05958dddb690b7f90d80f1f6235555a49"; } { locale = "it"; arch = "linux-x86_64"; sha256 = "e49f0b02d323e2f83d0da2a5ec2e4585693362545e50bfba51e273d0edf52813"; }
{ locale = "da"; arch = "linux-i686"; sha256 = "b7db83686a2e9bf5e501ae32b608189af09eca9f4996b975960fcab3a97a10d2"; } { locale = "id"; arch = "linux-i686"; sha256 = "31691ec0b51d19bdab2efe2ab1813bd3363e71ad62bc4f5a860e017516509ad5"; }
{ locale = "da"; arch = "linux-x86_64"; sha256 = "aa081115593e5225f5fb47a9ba5bcd983da1c9e088f1a9f5cea3710afda75cd9"; } { locale = "id"; arch = "linux-x86_64"; sha256 = "c6241fb8cd1d83ac5753518c2cc215ee831fa24b816a5a522029d14cea24b15b"; }
{ locale = "hr"; arch = "linux-i686"; sha256 = "99698f7259b1c3fa21600c43aa2a946376547a852e04f5a20478282bdbbb99d8"; } { locale = "da"; arch = "linux-i686"; sha256 = "aa6c91c15ff9f1769d727883c17720a2732ede4b786c4bff7d42fe25c129246b"; }
{ locale = "hr"; arch = "linux-x86_64"; sha256 = "bb2958eea731689b4fa48e98604233ef03b4de89107d801f72b12843cbc6fc70"; } { locale = "da"; arch = "linux-x86_64"; sha256 = "b940f8ab5b2ad50faedc4520f4a7bd5936debfd70b2fa86b2abf955a22557b20"; }
{ locale = "ca"; arch = "linux-i686"; sha256 = "988e95cda1b412663bcbf1c1b552ad24b889fdfc30e7228bc47ac7f14aa43b31"; } { locale = "ta-LK"; arch = "linux-i686"; sha256 = "cc70eb04cbab5bcd674e40c4d58760c07353726c968f766fc749fcd7154fddd9"; }
{ locale = "ca"; arch = "linux-x86_64"; sha256 = "ac1f417ddc5b62f674f86f25a248d1434d996453892b4825ffb38852436d2df5"; } { locale = "ta-LK"; arch = "linux-x86_64"; sha256 = "948172b68287b1cd8a1d7a32b3e7fd5494390aefea1683cbad34f12ba5d241a7"; }
{ locale = "en-US"; arch = "linux-i686"; sha256 = "9209fa7bdada6245717dbfaf517d68cef04719812504bc0c988def6adc7baab5"; } { locale = "uk"; arch = "linux-i686"; sha256 = "6b45d36abc8fe1c731baf855866000ffa08671d025ab97b5301b22079765d70c"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha256 = "6e2f046dae0a6fa80de190b95667340abcb0ddaddf1ecee813099a89142c56e1"; } { locale = "uk"; arch = "linux-x86_64"; sha256 = "9d619639157c645bc34628b7c31ccfb4e8223b891cf8e99118e7b767f7f5e24b"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha256 = "f4acc2f18f55d7578555ac0b189aeb834adb6c3911ee665790fe4799774c8fe4"; } { locale = "zh-TW"; arch = "linux-i686"; sha256 = "a9176628228c3f3e07d2929caa872b4a24d9f620de79a148c01f0716c9dd058f"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha256 = "2dc24f408fc801df266f2b890109c2e7d4a0d47bc2db7f541d371037ffad8ff8"; } { locale = "zh-TW"; arch = "linux-x86_64"; sha256 = "f067e1f516d639b2cc997019a39b568d6377437d2d6810fb87d23a64e72995a0"; }
{ locale = "gl"; arch = "linux-i686"; sha256 = "b9e89373d2d1b0123095cd45867014f87bc2696093127448e7b7b9cf72d294e6"; } { locale = "ar"; arch = "linux-i686"; sha256 = "7b016747c9e9066a8e4383303ee22e600d3b00716c53755c95067dc8b6267046"; }
{ locale = "gl"; arch = "linux-x86_64"; sha256 = "191f8f5327e8a7607497b990dce09e6219c444cbe9261fdbf709cdd07d6cd57f"; } { locale = "ar"; arch = "linux-x86_64"; sha256 = "f798804c9aa0eb8fd9cde80acf8a2ebc3b4855588ff14092da935cd77bbc660a"; }
{ locale = "lt"; arch = "linux-i686"; sha256 = "80cb0818fce6c8130c9344d3259a7bbc1722c1e7896853d365ad06cc4ccddd82"; } { locale = "en-GB"; arch = "linux-i686"; sha256 = "7a19e07c52de321f8f182bd14fdaf137b120167d9d2ab4929476f7cf9a94a744"; }
{ locale = "lt"; arch = "linux-x86_64"; sha256 = "347027a7c82330f5bc1989a19afb6dde415c260ad4de6c312bd1bda30d4f7651"; } { locale = "en-GB"; arch = "linux-x86_64"; sha256 = "b66b2ff31cc778f52ce9e987f38a93f973c04dacbf04559b1872537a083cb98e"; }
{ locale = "en-GB"; arch = "linux-i686"; sha256 = "94f2742fd3a88826eab8712e77a503fb340437ed0a2c1657b64f13b8522c0ad6"; } { locale = "ga-IE"; arch = "linux-i686"; sha256 = "7599ba2b65fcac92464c2ee480c4c823cd0f35661fa30982575e6f87069d3e58"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha256 = "8319f02f751d0683e5d015d32da3e12c94cb8a8fd27f8cdf5cd583e6e594bdfd"; } { locale = "ga-IE"; arch = "linux-x86_64"; sha256 = "e81f157f75f2eb94f28dc7f2da5c1d0fbb8f8077c28c3afdb2144dd906ce773f"; }
{ locale = "sl"; arch = "linux-i686"; sha256 = "076ed4c9c2ed99769e278ed0965ca5da7efd00bc9fb225e36cffb712b7cedca5"; } { locale = "bn-BD"; arch = "linux-i686"; sha256 = "bdcafd77469b70a8e02cacab63503e4ba085e3b4230e012313f743a130448cb1"; }
{ locale = "sl"; arch = "linux-x86_64"; sha256 = "e37bf18f4e32f050ac97b1a20cfa44832d4438524e2ef9c4ca82e7ed8c1307cb"; } { locale = "bn-BD"; arch = "linux-x86_64"; sha256 = "2f57c5353e75ec9dd56abf4c4f197af64648e3e2e927b7c868db6f664abb2e14"; }
{ locale = "et"; arch = "linux-i686"; sha256 = "afc9aef58f08bf8f4b300308a5a4e527ba93e1bae024983063efd82e96c36703"; } { locale = "pa-IN"; arch = "linux-i686"; sha256 = "f9d8a77df3e4718260e9235ce09008a224e02bde12efe5a88c9341432637f0c4"; }
{ locale = "et"; arch = "linux-x86_64"; sha256 = "d46257893e5e1f17757f0b53c9201b12bc4e5b27bde1eecb007a858f61c49fab"; } { locale = "pa-IN"; arch = "linux-x86_64"; sha256 = "46a4ae81ecd6fb22aed54a0ca40ddf292adc94b37b38a57e9ab64f5bed8b0a39"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha256 = "8a1cbc00e4e6cffb3a225d9334e9c2372050203a0cba3b31c6537e02404efedb"; } { locale = "et"; arch = "linux-i686"; sha256 = "f03136ad26eb1d5ead82e26e8620e3cd1b7f30ceb552329d008a33bcb2e930c4"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha256 = "ae17a6fb60f27bb95a11501a061c7ab9deb0a6ba89b17e6cf01394e18710a831"; } { locale = "et"; arch = "linux-x86_64"; sha256 = "d2e446dea1db14210da9e1556614a92954c61ce00b24958ea4c2a61b597c0b13"; }
]; ];
arch = if stdenv.system == "i686-linux" arch = if stdenv.system == "i686-linux"

View File

@ -1,15 +1,14 @@
{ stdenv, fetchurl, { stdenv, fetchurl
slang, ncurses , slang, ncurses }:
}:
let version = "1.0.1"; in let version = "1.0.2"; in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "slrn-${version}"; name = "slrn-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.jedsoft.org/slrn/download/slrn-1.0.1.tar.gz"; url = "http://www.jedsoft.org/releases/slrn/slrn-${version}.tar.gz";
sha256 = "1rmaprfwvshzkv0c5vi43839cz3laqjpl306b9z0ghwyjdha1d06"; sha256 = "1gn6m2zha2nnnrh9lz3m3nrqk6fgfij1wc53pg25j7sdgvlziv12";
}; };
preConfigure = '' preConfigure = ''
@ -23,9 +22,10 @@ stdenv.mkDerivation {
buildInputs = [ slang ncurses ]; buildInputs = [ slang ncurses ];
meta = { meta = with stdenv.lib; {
description = "Text-based newsreader"; description = "The slrn (S-Lang read news) newsreader";
homepage = http://slrn.sourceforge.net/index.html; homepage = http://slrn.sourceforge.net/index.html;
license = stdenv.lib.licenses.gpl2; maintainers = with maintainers; [ emery ];
license = licenses.gpl2;
}; };
} }

View File

@ -0,0 +1,47 @@
{ stdenv, fetchurl, libX11, libXtst, libXext, libXdamage, libXfixes, wineUnstable, makeWrapper, libXau
, bash, patchelf }:
let
topath = "${wineUnstable}/bin";
toldpath = stdenv.lib.concatStringsSep ":" (map (x: "${x}/lib")
[ stdenv.gcc.gcc libX11 libXtst libXext libXdamage libXfixes wineUnstable ]);
in
stdenv.mkDerivation {
name = "teamviewer-9.0.32150";
src = fetchurl {
url = "http://download.teamviewer.com/download/version_9x/teamviewer_linux_x64.deb";
sha256 = "0wpwbx0xzn3vlzavszxhfvfcaj3pijlpwvlz5m7w19mb6cky3q13";
};
buildInputs = [ makeWrapper patchelf ];
unpackPhase = ''
ar x $src
tar xf data.tar.gz
'';
installPhase = ''
mkdir -p $out/share/teamviewer9 $out/bin
cp -a opt/teamviewer9/* $out/share/teamviewer9
rm -R $out/share/teamviewer9/tv_bin/wine/{bin,lib,share}
cat > $out/bin/teamviewer << EOF
#!${bash}/bin/sh
export LD_LIBRARY_PATH=${toldpath}\''${LD_LIBRARY_PATH:+:\$LD_LIBRARY_PATH}
export PATH=${topath}\''${PATH:+:\$PATH}
$out/share/teamviewer9/tv_bin/script/teamviewer "\$@"
EOF
chmod +x $out/bin/teamviewer
patchelf --set-rpath "${stdenv.gcc.gcc}/lib64:${stdenv.gcc.gcc}/lib:${libX11}/lib:${libXext}/lib:${libXau}/lib:${libXdamage}/lib:${libXfixes}/lib" $out/share/teamviewer9/tv_bin/teamviewerd
patchelf --set-interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" $out/share/teamviewer9/tv_bin/teamviewerd
ln -s $out/share/teamviewer9/tv_bin/teamviewerd $out/bin/
'';
meta = {
homepage = "http://www.teamviewer.com";
license = stdenv.lib.licenses.unfree;
description = "Desktop sharing application, providing remote support and online meetings";
};
}

View File

@ -1,17 +1,16 @@
{stdenv, fetchurl, qt3, libX11}: {stdenv, fetchurl, flex, bison, qt4, libX11 }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "qucs-0.0.16"; name = "qucs-0.0.18";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/qucs/${name}.tar.gz"; url = "mirror://sourceforge/qucs/${name}.tar.gz";
sha256 = "1h8ba84k06rix5zl5p9p414zj2facbnlf1vxwh4a1sp4h9dbfnzy"; sha256 = "3609a18b57485dc9f19886ac6694667f3251702175bd1cbbbea37981b2c482a7";
}; };
patches = [ ./tr1-complex.patch ]; QTDIR=qt4;
patchFlags = "-p0";
buildInputs = [ qt3 libX11 ]; buildInputs = [ flex bison qt4 libX11 ];
meta = { meta = {
description = "Integrated circuit simulator"; description = "Integrated circuit simulator";

View File

@ -0,0 +1,51 @@
{ stdenv, fetchurl, ocaml, findlib, dypgen, bolt, ansiterminal,
buildBytecode ? true,
buildNative ? true,
installExamples ? true,
installEmacsMode ? true }:
let inherit (stdenv.lib) getVersion versionAtLeast
optionals optionalString; in
assert versionAtLeast (getVersion ocaml) "3.07";
assert versionAtLeast (getVersion dypgen) "20080925";
assert versionAtLeast (getVersion bolt) "1.4";
assert buildBytecode || buildNative;
stdenv.mkDerivation {
name = "acgtk-1.1";
src = fetchurl {
url = "http://www.loria.fr/equipes/calligramme/acg/software/acg-1.1-20140905.tar.gz";
sha256 = "1k1ldqg34bwmgdpmi9gry9czlsk85ycjxnkd25fhlf3mmgg4n9p6";
};
buildInputs = [ ocaml findlib dypgen bolt ansiterminal ];
patches = [ ./install-emacs-to-site-lisp.patch
./use-nix-ocaml-byteflags.patch ];
# The bytecode executable is dependent on the dynamic library provided by
# ANSITerminal. We can use the -dllpath flag of ocamlc (analogous to
# -rpath) to make sure that ocamlrun is able to link the library at
# runtime and that Nix detects a runtime dependency.
NIX_OCAML_BYTEFLAGS = "-dllpath ${ansiterminal}/lib/ocaml/${getVersion ocaml}/site-lib/ANSITerminal";
buildFlags = optionalString buildBytecode "byte"
+ " "
+ optionalString buildNative "opt";
installTargets = "install"
+ " " + optionalString installExamples "install-examples"
+ " " + optionalString installEmacsMode "install-emacs";
meta = with stdenv.lib; {
homepage = "http://www.loria.fr/equipes/calligramme/acg";
description = "A toolkit for developing ACG signatures and lexicon";
license = licenses.cecill20;
platforms = ocaml.meta.platforms;
maintainers = [ maintainers.jirkamarsik ];
};
}

View File

@ -0,0 +1,23 @@
--- acg-1.1-20140905/Makefile.in 2014-10-24 15:21:39.442287208 +0200
+++ acg-1.1-20140905/Makefile.in.new 2014-10-24 15:24:58.557117228 +0200
@@ -35,6 +35,7 @@
ACGC_DIR=src/acg-data
DATA_DIR=@datarootdir@/acgtk
+EMACS_DIR=@prefix@/share/emacs/site-lisp
@@ -82,10 +83,10 @@
rm -r $(DATA_DIR)
install-emacs:
- mkdir -p $(DATA_DIR) && cp -r emacs $(DATA_DIR)/.
+ mkdir -p $(EMACS_DIR) && cp emacs/acg.el $(EMACS_DIR)
uninstall-emacs:
- rm -rf $(DATA_DIR)/emacs
+ rm -rf $(EMACS_DIR)/emacs
install-examples:
mkdir -p $(DATA_DIR) && cp -r examples $(DATA_DIR)/.

View File

@ -0,0 +1,11 @@
--- acg-1.1-20140905/src/Makefile.master.in 2014-10-27 10:59:42.263382081 +0100
+++ acg-1.1-20140905/src/Makefile.master.in.new 2014-10-27 10:59:59.683597972 +0100
@@ -23,7 +23,7 @@
# All warnings are treated as errors
WARNINGS = @OCAML09WARNINGS@ -warn-error A
COMMONFLAGS= $(WARNINGS) @TYPES@
-BYTEFLAGS = $(COMMONFLAGS) $(DEBUGFLAG)
+BYTEFLAGS = $(COMMONFLAGS) $(DEBUGFLAG) $(NIX_OCAML_BYTEFLAGS)
OPTFLAGS = $(COMMONFLAGS)
LFLAGS= -a

View File

@ -17,8 +17,8 @@
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "git-annex"; pname = "git-annex";
version = "5.20141013"; version = "5.20141024";
sha256 = "1p2hvw2x0rm9nhk176mzwisl75xphqxv7mhd43mvwlb3q9f57lnc"; sha256 = "065b181m76a9w3jznrmb087gccwnpgmyzyndgf8krg28g85y0bq5";
isLibrary = false; isLibrary = false;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [

View File

@ -10,7 +10,7 @@
let let
version = "2.1.2"; version = "2.1.3";
svn = subversionClient.override { perlBindings = true; }; svn = subversionClient.override { perlBindings = true; };
@ -21,7 +21,7 @@ stdenv.mkDerivation {
src = fetchurl { src = fetchurl {
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"; url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
sha256 = "12x1qycc0rii6fqpiizp9v9ysdmj6lpi9imqqbrkdx6cifbwh9vv"; sha256 = "0mvgvr2hz25p49dhhizcw9591f2h17y2699mpmndis3kzap0c6zy";
}; };
patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ./cert-path.patch ]; patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ./cert-path.patch ];

View File

@ -4,6 +4,7 @@ set -x
lib=" \ lib=" \
makemkv-oss-${ver}/out/libdriveio.so.0 \ makemkv-oss-${ver}/out/libdriveio.so.0 \
makemkv-oss-${ver}/out/libmakemkv.so.1 \ makemkv-oss-${ver}/out/libmakemkv.so.1 \
makemkv-oss-${ver}/out/libmmbd.so.0 \
" "
bin=" \ bin=" \
@ -16,7 +17,8 @@ tar xzf ${src_oss}
( (
cd makemkv-oss-${ver} cd makemkv-oss-${ver}
make -f makefile.linux ./configure --prefix=$out
make
) )
chmod +x ${bin} chmod +x ${bin}

View File

@ -1,23 +1,23 @@
{ stdenv, fetchurl { stdenv, fetchurl
, openssl, qt4, mesa, zlib , openssl, qt4, mesa, zlib, pkgconfig, libav
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "makemkv-${ver}"; name = "makemkv-${ver}";
ver = "1.8.0"; ver = "1.8.14";
builder = ./builder.sh; builder = ./builder.sh;
src_bin = fetchurl { src_bin = fetchurl {
url = "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz"; url = "http://www.makemkv.com/download/makemkv-bin-${ver}.tar.gz";
sha256 = "1f465rdv5ibnh5hnfmvmlid0yyzkansjw8l1mi5qd3bc6ca4k30c"; sha256 = "1kjxawqh6xnjcgvaqy7idg8k0g3zqrr1w5r2r3bf11pg0h1ys5l5";
}; };
src_oss = fetchurl { src_oss = fetchurl {
url = "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz"; url = "http://www.makemkv.com/download/makemkv-oss-${ver}.tar.gz";
sha256 = "0kj1mpkzz2cvi0ibdgdzfwbh9k2jfj3ra5m3hd7iyc5ng21v4sk3"; sha256 = "0cq3h45yyqma0kzi594dz0gbgjf3gyjcgxkiynifz3hacrbxbnd5";
}; };
buildInputs = [openssl qt4 mesa zlib]; buildInputs = [openssl qt4 mesa zlib pkgconfig libav];
libPath = stdenv.lib.makeLibraryPath [stdenv.gcc.gcc openssl mesa qt4 zlib ] libPath = stdenv.lib.makeLibraryPath [stdenv.gcc.gcc openssl mesa qt4 zlib ]
+ ":" + stdenv.gcc.gcc + "/lib64"; + ":" + stdenv.gcc.gcc + "/lib64";

View File

@ -15,12 +15,12 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "7.2.0"; version = "7.3.0";
name = "mkvtoolnix-${version}"; name = "mkvtoolnix-${version}";
src = fetchurl { src = fetchurl {
url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz"; url = "http://www.bunkus.org/videotools/mkvtoolnix/sources/${name}.tar.xz";
sha256 = "1bpmd37y2v4icv9iqjv3p4kr62jbdng2ar8vpiij3bdgwrjc6gv1"; sha256 = "086lg64pki6mz00h0a735hgvz4347zbcp3wz384sigqndn99zc1c";
}; };
buildInputs = [ buildInputs = [

View File

@ -58,11 +58,11 @@ in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "mpv-${version}"; name = "mpv-${version}";
version = "0.5.4"; version = "0.6.1";
src = fetchurl { src = fetchurl {
url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz"; url = "https://github.com/mpv-player/mpv/archive/v${version}.tar.gz";
sha256 = "1n992nvylnh27jc6425daasq0nsxjfc1mxhhlhvlwzxm724x94xp"; sha256 = "03vzsvvb1dvm4rn70m97fdbzhlqj9crk7zpvcp00bcl956xjfc9s";
}; };
buildInputs = with stdenv.lib; buildInputs = with stdenv.lib;

View File

@ -24,6 +24,7 @@
# TODO: librtmp # TODO: librtmp
, libvdpau ? null, vdpauSupport ? true , libvdpau ? null, vdpauSupport ? true
, pulseaudio ? null, pulseSupport ? true , pulseaudio ? null, pulseSupport ? true
, libcec ? null, cecSupport ? true
}: }:
assert dbusSupport -> dbus_libs != null; assert dbusSupport -> dbus_libs != null;
@ -32,6 +33,7 @@ assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used i
assert sambaSupport -> samba != null; assert sambaSupport -> samba != null;
assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport; assert vdpauSupport -> libvdpau != null && ffmpeg.vdpauSupport;
assert pulseSupport -> pulseaudio != null; assert pulseSupport -> pulseaudio != null;
assert cecSupport -> libcec != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "xbmc-13.2"; name = "xbmc-13.2";
@ -65,7 +67,8 @@ stdenv.mkDerivation rec {
++ lib.optional usbSupport libusb ++ lib.optional usbSupport libusb
++ lib.optional sambaSupport samba ++ lib.optional sambaSupport samba
++ lib.optional vdpauSupport libvdpau ++ lib.optional vdpauSupport libvdpau
++ lib.optional pulseSupport pulseaudio; ++ lib.optional pulseSupport pulseaudio
++ lib.optional cecSupport libcec;
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
@ -91,7 +94,8 @@ stdenv.mkDerivation rec {
--prefix LD_LIBRARY_PATH ":" "${curl}/lib" \ --prefix LD_LIBRARY_PATH ":" "${curl}/lib" \
--prefix LD_LIBRARY_PATH ":" "${systemd}/lib" \ --prefix LD_LIBRARY_PATH ":" "${systemd}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libmad}/lib" \ --prefix LD_LIBRARY_PATH ":" "${libmad}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib" --prefix LD_LIBRARY_PATH ":" "${libvdpau}/lib" \
--prefix LD_LIBRARY_PATH ":" "${libcec}/lib"
done done
''; '';

View File

@ -0,0 +1,41 @@
{ stdenv, fetchurl, unzip, jre }:
with stdenv;
mkDerivation rec {
version = "8";
name = "zdfmediathk";
src = fetchurl {
url = "http://downloads.sourceforge.net/project/zdfmediathk/Mediathek/Mediathek%208/MediathekView_${version}.zip";
sha256 = "1sglzk8zh6cyijyw82k49yqzjv0ywglp03w09s7wr4mzk48mfjj9";
};
buildInputs = [ unzip ];
unpackPhase = "unzip $src";
installPhase = ''
mkdir -p $out/{lib,bin,share/{doc,licenses}}
install -m644 MediathekView.jar $out/
install -m644 -t $out/lib lib/*
install -m755 bin/flv.sh $out/bin/
install -m644 -t $out/share/doc Anleitung/*.pdf
install -m644 -t $out/share/licenses Copyright/{*.*,_copyright}
bin="$out/bin/mediathek"
cat >> "$bin" << EOF
#!/bin/sh
exec ${jre}/bin/java -cp "$out/lib/*" -Xms128M -Xmx1G -jar "$out/MediathekView.jar" "\$@"
EOF
chmod +x "$bin"
'';
meta = with stdenv.lib; {
description = "Offers access to the Mediathek of different tv stations (ARD, ZDF, Arte, etc.)";
homepage = "http://zdfmediathk.sourceforge.net/";
license = licenses.gpl3;
maintainers = [ maintainers.flosse ];
platforms = platforms.all;
};
}

View File

@ -23,12 +23,17 @@ stdenv.mkDerivation rec {
''; '';
configurePhase = '' configurePhase = ''
./configure --prefix=$out --with-contrib-dir=${pkgs.stumpwmContrib}/contrib ./configure --prefix=$out --with-contrib-dir=${stumpwmContrib}/contrib
''; '';
installPhase = '' installPhase = ''
make make
make install make install
# For some reason, stumpwmContrib is not retained as a runtime
# dependency (probably because $out/bin/stumpwm is compressed or
# obfuscated in some way). Thus we add an explicit reference here.
mkdir $out/nix-support
echo ${stumpwmContrib} > $out/nix-support/stumpwm-contrib
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -0,0 +1,45 @@
{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, glib, dbus_glib
, desktopSupport
, gtk2, gnome2_panel, GConf2
, libxfce4util, xfce4panel
}:
assert desktopSupport == "gnome2" || desktopSupport == "gnome3" || desktopSupport == "xfce4";
stdenv.mkDerivation rec {
version = "2.1.0";
pname = "xmonad-log-applet";
name = "${pname}-${version}-${desktopSupport}";
src = fetchFromGitHub {
owner = "alexkay";
repo = pname;
rev = "${version}";
sha256 = "1g1fisyaw83v72b25fxfjln8f4wlw3rm6nyk27mrqlhsc1spnb5p";
};
buildInputs = with stdenv.lib;
[ glib dbus_glib ]
++ optionals (desktopSupport == "gnome2") [ gtk2 gnome2_panel GConf2 ]
# TODO: no idea where to find libpanelapplet-4.0
++ optionals (desktopSupport == "gnome3") [ ]
++ optionals (desktopSupport == "xfce4") [ gtk2 libxfce4util xfce4panel ]
;
nativeBuildInputs = [ autoreconfHook pkgconfig ];
configureFlags = [ "--with-panel=${desktopSupport}" ];
patches = [ ./fix-paths.patch ];
meta = with stdenv.lib; {
homepage = http://github.com/alexkay/xmonad-log-applet;
license = licenses.bsd3;
description = "An applet that will display XMonad log information (${desktopSupport} version)";
platforms = platforms.linux;
maintainers = with maintainers; [ abbradar ];
broken = desktopSupport == "gnome3";
};
}

View File

@ -0,0 +1,50 @@
diff --git a/Makefile.am b/Makefile.am
index 619012d..dcc6d3c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,5 @@
plugindir = $(PLUGIN_DIR)
+SESSION_BUS_SERVICES_DIR = $(prefix)/share/dbus-1/services
plugin_PROGRAMS = xmonad-log-applet
xmonad_log_applet_SOURCES = main.c
diff --git a/configure.ac b/configure.ac
index ad4cffb..110c953 100644
--- a/configure.ac
+++ b/configure.ac
@@ -27,28 +27,28 @@ AC_ARG_WITH(
AS_IF(
[test "x$panel" = xgnome2],
[PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-3.0 >= 2.32.0)]
- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/share/gnome-panel/applets
- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-3.0`/libexec
+ LIBPANEL_APPLET_DIR=${prefix}/share/gnome-panel/applets
+ PLUGIN_DIR=${prefix}/libexec
[AC_DEFINE(PANEL_GNOME, 1, [panel type])]
[AC_DEFINE(PANEL_GNOME2, 1, [panel type])]
,
[test "x$panel" = xgnome3],
[PKG_CHECK_MODULES(LIBPANEL, libpanelapplet-4.0 >= 3.0.0)]
LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=libpanel_applet_dir libpanelapplet-4.0`
- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libpanelapplet-4.0`/libexec
+ PLUGIN_DIR=${prefix}/libexec
[AC_DEFINE(PANEL_GNOME, 1, [panel type])]
[AC_DEFINE(PANEL_GNOME3, 1, [panel type])]
,
[test "x$panel" = xmate],
[PKG_CHECK_MODULES(LIBPANEL, libmatepanelapplet-3.0 >= 1.4.0)]
- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-3.0`/share/mate-panel/applets
- PLUGIN_DIR=`$PKG_CONFIG --variable=prefix libmatepanelapplet-3.0`/libexec
+ LIBPANEL_APPLET_DIR=${prefix}/share/mate-panel/applets
+ PLUGIN_DIR=${prefix}/libexec
[AC_DEFINE(PANEL_MATE, 1, [panel type])]
,
[test "x$panel" = xxfce4],
[PKG_CHECK_MODULES(LIBPANEL, libxfce4panel-1.0 >= 4.6.0)]
- LIBPANEL_APPLET_DIR=`$PKG_CONFIG --variable=prefix libxfce4panel-1.0`/share/xfce4/panel-plugins
- PLUGIN_DIR=`$PKG_CONFIG --variable=libdir libxfce4panel-1.0`/xfce4/panel/plugins
+ LIBPANEL_APPLET_DIR=${prefix}/share/xfce4/panel-plugins
+ PLUGIN_DIR=${prefix}/lib/xfce4/panel/plugins
[AC_DEFINE(PANEL_XFCE4, 1, [panel type])]
,
[AC_MSG_ERROR([Unknown panel type, use gnome2, gnome3, mate or xfce4])]

View File

@ -0,0 +1,9 @@
source $stdenv/setup
header "exporting egg ${eggName} (version $version) into $out"
mkdir -p $out
chicken-install -r "${eggName}:${version}"
cp -r ${eggName}/* $out/
stopNest

View File

@ -0,0 +1,28 @@
# Fetches a chicken egg from henrietta using `chicken-install -r'
# See: http://wiki.call-cc.org/chicken-projects/egg-index-4.html
{ stdenv, chicken }:
{ name, version, md5 ? "", sha256 ? "" }:
stdenv.mkDerivation {
name = "chicken-${name}-export";
builder = ./builder.sh;
buildInputs = [ chicken ];
outputHashAlgo = if sha256 == "" then "md5" else "sha256";
outputHashMode = "recursive";
outputHash = if sha256 == "" then md5 else sha256;
inherit version;
eggName = name;
impureEnvVars = [
# We borrow these environment variables from the caller to allow
# easy proxy configuration. This is impure, but a fixed-output
# derivation like fetchurl is allowed to do so since its result is
# by definition pure.
"http_proxy" "https_proxy" "ftp_proxy" "all_proxy" "no_proxy"
];
}

View File

@ -173,6 +173,7 @@ rec {
ftp://ftp.nl.debian.org/debian/ ftp://ftp.nl.debian.org/debian/
ftp://ftp.ru.debian.org/debian/ ftp://ftp.ru.debian.org/debian/
ftp://ftp.debian.org/debian/ ftp://ftp.debian.org/debian/
http://ftp.debian.org/debian/
http://archive.debian.org/debian-archive/debian/ http://archive.debian.org/debian-archive/debian/
ftp://ftp.funet.fi/pub/mirrors/ftp.debian.org/debian/ ftp://ftp.funet.fi/pub/mirrors/ftp.debian.org/debian/
]; ];

View File

@ -1,11 +1,11 @@
{ stdenv, fetchurl }: { stdenv, fetchurl }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "man-pages-3.74"; name = "man-pages-3.75";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz"; url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
sha256 = "10c6jra95ccdhz22xhmpskxcn29xvirkxzwr8dhz3jazyqwhq58y"; sha256 = "1xnja13a3zb7gzcsdn7sx962lk6mj8m3rz1w7fpgvhsq745cmah6";
}; };
preBuild = preBuild =

View File

@ -0,0 +1,42 @@
{ stdenv, fetchurl, unzip }:
stdenv.mkDerivation rec {
version = "1.2.1";
name = "meslo-lg";
meslo-lg = fetchurl {
url="https://github.com/andreberg/Meslo-Font/blob/master/dist/v${version}/Meslo%20LG%20v${version}.zip?raw=true";
name="${name}";
sha256="1l08mxlzaz3i5bamnfr49s2k4k23vdm64b8nz2ha33ysimkbgg6h";
};
meslo-lg-dz = fetchurl {
url="https://github.com/andreberg/Meslo-Font/blob/master/dist/v${version}/Meslo%20LG%20DZ%20v${version}.zip?raw=true";
name="${name}-dz";
sha256="0lnbkrvcpgz9chnvix79j6fiz36wj6n46brb7b1746182rl1l875";
};
buildInputs = [ unzip ];
sourceRoot = ".";
phases = [ "unpackPhase" "installPhase" ];
unpackPhase = ''
unzip -j ${meslo-lg}
unzip -j ${meslo-lg-dz}
'';
installPhase = ''
mkdir -p $out/share/fonts/truetype
cp *.ttf $out/share/fonts/truetype
'';
meta = {
description = "A customized version of Apples Menlo-Regular font";
homepage = https://github.com/andreberg/Meslo-Font/;
license = stdenv.lib.licenses.asl20;
maintainers = with stdenv.lib.maintainers; [ balajisivaraman ];
platforms = with stdenv.lib.platforms; all;
};
}

View File

@ -1,6 +1,6 @@
{ stdenv, fetchurl }: { stdenv, fetchurl }:
let version = "2014g"; in let version = "2014i"; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "tzdata-${version}"; name = "tzdata-${version}";
@ -8,11 +8,11 @@ stdenv.mkDerivation rec {
srcs = srcs =
[ (fetchurl { [ (fetchurl {
url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz"; url = "http://www.iana.org/time-zones/repository/releases/tzdata${version}.tar.gz";
sha256 = "0w52hafnf82vy678rm8p39ckymcj6shv5376zwzzbxw2m6vxaism"; sha256 = "0lv1i3ikibf9yn1l3hcy00x5ghwxn87k1myyp1cyr55psayk3wra";
}) })
(fetchurl { (fetchurl {
url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz"; url = "http://www.iana.org/time-zones/repository/releases/tzcode${version}.tar.gz";
sha256 = "0ymg0cscpbfj9jpnx4g9apmfrixq6z8dch99h6a77k2pmnj5ymfz"; sha256 = "10s7x24lh2vm3magl7dq2xs9pw47hhyaq6xpi6c4aiqdzdsi0nb2";
}) })
]; ];
@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
meta = { meta = {
homepage = http://www.iana.org/time-zones; homepage = http://www.iana.org/time-zones;
description = "Database of current and historical time zones"; description = "Database of current and historical time zones";
platforms = stdenv.lib.platforms.all;
}; };
} }

View File

@ -14,5 +14,5 @@ stdenv.mkDerivation {
"; ";
buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt gettext]; buildInputs = [pkgconfig perl perlXMLParser libxml2 libxslt gettext];
configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/docbook.cat"; configureFlags = "--with-xml-catalog=${docbook_xml_dtd_42}/xml/dtd/docbook/catalog.xml";
} }

View File

@ -109,7 +109,7 @@ rec {
gucharmap = callPackage ./core/gucharmap { }; gucharmap = callPackage ./core/gucharmap { };
gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; lightWeight = false; }; gvfs = pkgs.gvfs.override { gnome = pkgs.gnome3; gnomeSupport = true; };
eog = callPackage ./core/eog { }; eog = callPackage ./core/eog { };

View File

@ -4,13 +4,14 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gnome-shell-pomodoro-0.10.2-11-gd5f5b69"; rev = "0.10.3";
name = "gnome-shell-pomodoro-${rev}-61df3fa";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "codito"; owner = "codito";
repo = "gnome-shell-pomodoro"; repo = "gnome-shell-pomodoro";
rev = "0.10.2"; rev = "${rev}";
sha256 = "1jd4xmcx0fbcn57d1qj7b4xkj0dv4i75s367nifabm47akqzyn4f"; sha256 = "0i0glmijalppb5hdb1xd6xnmv824l2w831rpkqmhxi0iqbvaship";
}; };
configureScript = ''./autogen.sh''; configureScript = ''./autogen.sh'';

View File

@ -0,0 +1,45 @@
{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2
, selectTextPatch ? false }:
stdenv.mkDerivation rec {
versionMajor = "0.38";
versionMinor = "0";
moduleName = "vte";
name = "${moduleName}-${versionMajor}.${versionMinor}";
src = fetchurl {
url = "mirror://gnome/sources/${moduleName}/${versionMajor}/${name}.tar.xz";
sha256 = "1llg2xnjpn630vd86ci8csbjjacj3ia6syck2bsq4kinr66z5zsw";
};
patches = with stdenv.lib; optional selectTextPatch ./expose_select_text.0.38.0.patch;
buildInputs = [ gobjectIntrospection intltool pkgconfig gnome3.glib gnome3.gtk3 ncurses vala libxml2 ];
preConfigure = "patchShebangs .";
configureFlags = [ "--enable-introspection" ];
enableParallelBuilding = true;
postInstall = ''
substituteInPlace $out/lib/libvte2_90.la --replace "-lncurses" "-L${ncurses}/lib -lncurses"
'';
meta = with stdenv.lib; {
homepage = http://www.gnome.org/;
description = "A library implementing a terminal emulator widget for GTK+";
longDescription = ''
VTE is a library (libvte) implementing a terminal emulator widget for
GTK+, and a minimal sample application (vte) using that. Vte is
mainly used in gnome-terminal, but can also be used to embed a
console/terminal in games, editors, IDEs, etc. VTE supports Unicode and
character set conversion, as well as emulating any terminal known to
the system's terminfo database.
'';
license = licenses.lgpl2;
maintainers = with maintainers; [ astsmtl antono lethalman ];
platforms = platforms.linux;
};
}

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection, vala, libxml2 { stdenv, fetchurl, intltool, pkgconfig, gnome3, ncurses, gobjectIntrospection
, selectTextPatch ? false }: , selectTextPatch ? false }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View File

@ -0,0 +1,227 @@
Only in vte-0.38.0.new: expose_select_text.patch
diff -aur vte-0.38.0/src/vteaccess.c vte-0.38.0.new/src/vteaccess.c
--- vte-0.38.0/src/vteaccess.c 2014-08-13 08:00:38.000000000 -0400
+++ vte-0.38.0.new/src/vteaccess.c 2014-09-21 17:05:23.934641193 -0400
@@ -1427,7 +1427,7 @@
*start_offset = offset_from_xy (priv, start_x, start_y);
_vte_terminal_get_end_selection (terminal, &end_x, &end_y);
*end_offset = offset_from_xy (priv, end_x, end_y);
- return _vte_terminal_get_selection (terminal);
+ return vte_terminal_get_selection (terminal);
}
static gboolean
diff -aur vte-0.38.0/src/vte.c vte-0.38.0.new/src/vte.c
--- vte-0.38.0/src/vte.c 2014-09-13 03:23:47.000000000 -0400
+++ vte-0.38.0.new/src/vte.c 2014-09-21 17:03:04.671656749 -0400
@@ -122,7 +122,6 @@
gpointer data,
GArray *attributes,
gboolean include_trailing_spaces);
-static void _vte_terminal_disconnect_pty_read(VteTerminal *terminal);
static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
static void vte_terminal_stop_processing (VteTerminal *terminal);
@@ -3267,9 +3266,10 @@
_vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
terminal->pvt->pty_input_source = 0;
}
-static void
-_vte_terminal_connect_pty_read(VteTerminal *terminal)
+void
+vte_terminal_connect_pty_read(VteTerminal *terminal)
{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
if (terminal->pvt->pty_channel == NULL) {
return;
}
@@ -3321,9 +3321,10 @@
}
}
-static void
-_vte_terminal_disconnect_pty_read(VteTerminal *terminal)
+void
+vte_terminal_disconnect_pty_read(VteTerminal *terminal)
{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
if (terminal->pvt->pty_input_source != 0) {
_vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
g_source_remove(terminal->pvt->pty_input_source);
@@ -6154,6 +6155,28 @@
}
}
+/**
+ * vte_terminal_set_cursor_position:
+ * @terminal: a #VteTerminal
+ * @column: the new cursor column
+ * @row: the new cursor row
+ *
+ * Set the location of the cursor.
+ */
+void
+vte_terminal_set_cursor_position(VteTerminal *terminal,
+ long column, long row)
+{
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ terminal->pvt->screen->cursor_current.col = column;
+ terminal->pvt->screen->cursor_current.row = row;
+ _vte_invalidate_cursor_once(terminal, FALSE);
+ _vte_check_cursor_blink(terminal);
+ vte_terminal_queue_cursor_moved(terminal);
+}
+
static GtkClipboard *
vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
{
@@ -6319,7 +6342,7 @@
vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE);
/* Temporarily stop caring about input from the child. */
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
}
static gboolean
@@ -6336,7 +6359,7 @@
terminal->pvt->selecting = FALSE;
/* Reconnect to input from the child if we paused it. */
- _vte_terminal_connect_pty_read(terminal);
+ vte_terminal_connect_pty_read(terminal);
return TRUE;
}
@@ -6834,6 +6857,50 @@
vte_terminal_deselect_all (terminal);
}
+/**
+ * vte_terminal_get_selection_block_mode:
+ * @terminal: a #VteTerminal
+ *
+ * Checks whether or not block selection is enabled.
+ *
+ * Returns: %TRUE if block selection is enabled, %FALSE if not
+ */
+gboolean
+vte_terminal_get_selection_block_mode(VteTerminal *terminal) {
+ g_return_val_if_fail(VTE_IS_TERMINAL(terminal), FALSE);
+ return terminal->pvt->selection_block_mode;
+}
+
+/**
+ * vte_terminal_set_selection_block_mode:
+ * @terminal: a #VteTerminal
+ * @block_mode: whether block selection is enabled
+ *
+ * Sets whether or not block selection is enabled.
+ */
+void
+vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode) {
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
+ terminal->pvt->selection_block_mode = block_mode;
+}
+
+/**
+ * vte_terminal_select_text:
+ * @terminal: a #VteTerminal
+ * @start_col: the starting column for the selection
+ * @start_row: the starting row for the selection
+ * @end_col: the end column for the selection
+ * @end_row: the end row for the selection
+ *
+ * Sets the current selection region.
+ */
+void
+vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row) {
+ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
+}
+
/* Autoscroll a bit. */
static gboolean
vte_terminal_autoscroll(VteTerminal *terminal)
@@ -8476,7 +8543,7 @@
#endif
kill(terminal->pvt->pty_pid, SIGHUP);
}
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
g_io_channel_unref (terminal->pvt->pty_channel);
@@ -12533,7 +12600,7 @@
g_object_freeze_notify(object);
if (pvt->pty != NULL) {
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
@@ -12588,7 +12655,7 @@
_vte_terminal_setup_utf8 (terminal);
/* Open channels to listen for input on. */
- _vte_terminal_connect_pty_read (terminal);
+ vte_terminal_connect_pty_read (terminal);
g_object_notify(object, "pty");
@@ -12623,7 +12690,7 @@
}
char *
-_vte_terminal_get_selection(VteTerminal *terminal)
+vte_terminal_get_selection(VteTerminal *terminal)
{
g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
Only in vte-0.38.0.new/src: .vte.c.swp
diff -aur vte-0.38.0/src/vteint.h vte-0.38.0.new/src/vteint.h
--- vte-0.38.0/src/vteint.h 2014-05-16 13:51:26.000000000 -0400
+++ vte-0.38.0.new/src/vteint.h 2014-09-21 17:05:44.934589281 -0400
@@ -25,7 +25,6 @@
G_BEGIN_DECLS
void _vte_terminal_accessible_ref(VteTerminal *terminal);
-char* _vte_terminal_get_selection(VteTerminal *terminal);
void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y);
void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y);
void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset);
diff -aur vte-0.38.0/src/vteterminal.h vte-0.38.0.new/src/vteterminal.h
--- vte-0.38.0/src/vteterminal.h 2014-09-13 03:23:47.000000000 -0400
+++ vte-0.38.0.new/src/vteterminal.h 2014-09-21 17:03:39.094903032 -0400
@@ -170,6 +170,18 @@
void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal,
+ gboolean block_mode) _VTE_GNUC_NONNULL(1);
+void vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row,
+ long end_col, long end_row) _VTE_GNUC_NONNULL(1);
+char *
+vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+
+/* pause and unpause output */
+void vte_terminal_disconnect_pty_read(VteTerminal *vte);
+void vte_terminal_connect_pty_read(VteTerminal *vte);
/* Set the terminal's size. */
void vte_terminal_set_size(VteTerminal *terminal,
@@ -276,6 +288,8 @@
void vte_terminal_get_cursor_position(VteTerminal *terminal,
glong *column,
glong *row) _VTE_GNUC_NONNULL(1);
+void vte_terminal_set_cursor_position(VteTerminal *terminal,
+ long column, long row) _VTE_GNUC_NONNULL(1);
/* Add a matching expression, returning the tag the widget assigns to that
* expression. */

View File

@ -1,7 +1,20 @@
diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c Only in vte-0.38.0.new: expose_select_text.patch
--- vte-0.32.2-old/src/vte.c 2012-07-13 21:09:04.003969877 -0400 diff -aur vte-0.38.0/src/vteaccess.c vte-0.38.0.new/src/vteaccess.c
+++ vte-0.32.2/src/vte.c 2012-08-30 04:30:04.285924831 -0400 --- vte-0.38.0/src/vteaccess.c 2014-08-13 08:00:38.000000000 -0400
@@ -129,7 +129,6 @@ +++ vte-0.38.0.new/src/vteaccess.c 2014-09-21 17:05:23.934641193 -0400
@@ -1427,7 +1427,7 @@
*start_offset = offset_from_xy (priv, start_x, start_y);
_vte_terminal_get_end_selection (terminal, &end_x, &end_y);
*end_offset = offset_from_xy (priv, end_x, end_y);
- return _vte_terminal_get_selection (terminal);
+ return vte_terminal_get_selection (terminal);
}
static gboolean
diff -aur vte-0.38.0/src/vte.c vte-0.38.0.new/src/vte.c
--- vte-0.38.0/src/vte.c 2014-09-13 03:23:47.000000000 -0400
+++ vte-0.38.0.new/src/vte.c 2014-09-21 17:03:04.671656749 -0400
@@ -122,7 +122,6 @@
gpointer data, gpointer data,
GArray *attributes, GArray *attributes,
gboolean include_trailing_spaces); gboolean include_trailing_spaces);
@ -9,7 +22,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal); static void _vte_terminal_disconnect_pty_write(VteTerminal *terminal);
static void vte_terminal_stop_processing (VteTerminal *terminal); static void vte_terminal_stop_processing (VteTerminal *terminal);
@@ -3508,8 +3507,8 @@ @@ -3267,9 +3266,10 @@
_vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n"); _vte_debug_print (VTE_DEBUG_IO, "removed poll of vte_terminal_io_read\n");
terminal->pvt->pty_input_source = 0; terminal->pvt->pty_input_source = 0;
} }
@ -18,9 +31,11 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
+void +void
+vte_terminal_connect_pty_read(VteTerminal *terminal) +vte_terminal_connect_pty_read(VteTerminal *terminal)
{ {
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
if (terminal->pvt->pty_channel == NULL) { if (terminal->pvt->pty_channel == NULL) {
return; return;
@@ -3560,8 +3559,8 @@ }
@@ -3321,9 +3321,10 @@
} }
} }
@ -29,29 +44,11 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
+void +void
+vte_terminal_disconnect_pty_read(VteTerminal *terminal) +vte_terminal_disconnect_pty_read(VteTerminal *terminal)
{ {
+ g_return_if_fail(VTE_IS_TERMINAL(terminal));
if (terminal->pvt->pty_input_source != 0) { if (terminal->pvt->pty_input_source != 0) {
_vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n"); _vte_debug_print (VTE_DEBUG_IO, "disconnecting poll of vte_terminal_io_read\n");
@@ -3708,8 +3707,8 @@ g_source_remove(terminal->pvt->pty_input_source);
return NULL; @@ -6154,6 +6155,28 @@
}
-static char *
-_vte_terminal_get_user_shell_with_fallback (void)
+char *
+vte_terminal_get_user_shell_with_fallback (void)
{
char *command;
const gchar *env;
@@ -3744,7 +3743,7 @@
char **argv2;
char *shell = NULL;
- argv2 = __vte_pty_get_argv(command ? command : (shell = _vte_terminal_get_user_shell_with_fallback ()),
+ argv2 = __vte_pty_get_argv(command ? command : (shell = vte_terminal_get_user_shell_with_fallback ()),
argv,
flags);
g_free(shell);
@@ -6545,6 +6544,28 @@
} }
} }
@ -80,8 +77,8 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
static GtkClipboard * static GtkClipboard *
vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board) vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board)
{ {
@@ -6676,7 +6697,7 @@ @@ -6319,7 +6342,7 @@
terminal->pvt->selection_start.row); vte_terminal_extend_selection(terminal, x, y, FALSE, TRUE);
/* Temporarily stop caring about input from the child. */ /* Temporarily stop caring about input from the child. */
- _vte_terminal_disconnect_pty_read(terminal); - _vte_terminal_disconnect_pty_read(terminal);
@ -89,7 +86,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
} }
static gboolean static gboolean
@@ -6693,7 +6714,7 @@ @@ -6336,7 +6359,7 @@
terminal->pvt->selecting = FALSE; terminal->pvt->selecting = FALSE;
/* Reconnect to input from the child if we paused it. */ /* Reconnect to input from the child if we paused it. */
@ -98,35 +95,8 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
return TRUE; return TRUE;
} }
@@ -8994,7 +9015,7 @@ @@ -6834,6 +6857,50 @@
#endif vte_terminal_deselect_all (terminal);
kill(terminal->pvt->pty_pid, SIGHUP);
}
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
g_io_channel_unref (terminal->pvt->pty_channel);
@@ -14384,7 +14405,7 @@
g_object_freeze_notify(object);
if (pvt->pty != NULL) {
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
@@ -14440,7 +14461,7 @@
_vte_terminal_setup_utf8 (terminal);
/* Open channels to listen for input on. */
- _vte_terminal_connect_pty_read (terminal);
+ vte_terminal_connect_pty_read (terminal);
g_object_notify(object, "pty");
g_object_notify(object, "pty-object");
@@ -14567,6 +14588,50 @@
}
} }
+/** +/**
@ -173,21 +143,72 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
+ _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0); + _vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
+} +}
+ +
void /* Autoscroll a bit. */
_vte_terminal_select_text(VteTerminal *terminal, static gboolean
long start_col, long start_row, vte_terminal_autoscroll(VteTerminal *terminal)
diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h @@ -8476,7 +8543,7 @@
--- vte-0.32.2-old/src/vte.h 2012-07-13 21:09:04.003969877 -0400 #endif
+++ vte-0.32.2/src/vte.h 2012-08-30 04:30:09.695999432 -0400 kill(terminal->pvt->pty_pid, SIGHUP);
@@ -296,6 +296,15 @@ }
/* simple manipulation of selection */ - _vte_terminal_disconnect_pty_read(terminal);
void vte_terminal_select_all(VteTerminal *terminal); + vte_terminal_disconnect_pty_read(terminal);
void vte_terminal_select_none(VteTerminal *terminal); _vte_terminal_disconnect_pty_write(terminal);
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal); if (terminal->pvt->pty_channel != NULL) {
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal, gboolean block_mode); g_io_channel_unref (terminal->pvt->pty_channel);
@@ -12533,7 +12600,7 @@
g_object_freeze_notify(object);
if (pvt->pty != NULL) {
- _vte_terminal_disconnect_pty_read(terminal);
+ vte_terminal_disconnect_pty_read(terminal);
_vte_terminal_disconnect_pty_write(terminal);
if (terminal->pvt->pty_channel != NULL) {
@@ -12588,7 +12655,7 @@
_vte_terminal_setup_utf8 (terminal);
/* Open channels to listen for input on. */
- _vte_terminal_connect_pty_read (terminal);
+ vte_terminal_connect_pty_read (terminal);
g_object_notify(object, "pty");
@@ -12623,7 +12690,7 @@
}
char *
-_vte_terminal_get_selection(VteTerminal *terminal)
+vte_terminal_get_selection(VteTerminal *terminal)
{
g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
Only in vte-0.38.0.new/src: .vte.c.swp
diff -aur vte-0.38.0/src/vteint.h vte-0.38.0.new/src/vteint.h
--- vte-0.38.0/src/vteint.h 2014-05-16 13:51:26.000000000 -0400
+++ vte-0.38.0.new/src/vteint.h 2014-09-21 17:05:44.934589281 -0400
@@ -25,7 +25,6 @@
G_BEGIN_DECLS
void _vte_terminal_accessible_ref(VteTerminal *terminal);
-char* _vte_terminal_get_selection(VteTerminal *terminal);
void _vte_terminal_get_start_selection(VteTerminal *terminal, long *x, long *y);
void _vte_terminal_get_end_selection(VteTerminal *terminal, long *x, long *y);
void _vte_terminal_select_text(VteTerminal *terminal, long start_x, long start_y, long end_x, long end_y, int start_offset, int end_offset);
diff -aur vte-0.38.0/src/vteterminal.h vte-0.38.0.new/src/vteterminal.h
--- vte-0.38.0/src/vteterminal.h 2014-09-13 03:23:47.000000000 -0400
+++ vte-0.38.0.new/src/vteterminal.h 2014-09-21 17:03:39.094903032 -0400
@@ -170,6 +170,18 @@
void vte_terminal_select_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
void vte_terminal_unselect_all(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+gboolean vte_terminal_get_selection_block_mode(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+void vte_terminal_set_selection_block_mode(VteTerminal *terminal,
+ gboolean block_mode) _VTE_GNUC_NONNULL(1);
+void vte_terminal_select_text(VteTerminal *terminal, +void vte_terminal_select_text(VteTerminal *terminal,
+ long start_col, long start_row, + long start_col, long start_row,
+ long end_col, long end_row); + long end_col, long end_row) _VTE_GNUC_NONNULL(1);
+char *
+vte_terminal_get_selection(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
+ +
+/* pause and unpause output */ +/* pause and unpause output */
+void vte_terminal_disconnect_pty_read(VteTerminal *vte); +void vte_terminal_disconnect_pty_read(VteTerminal *vte);
@ -195,20 +216,12 @@ diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
/* Set the terminal's size. */ /* Set the terminal's size. */
void vte_terminal_set_size(VteTerminal *terminal, void vte_terminal_set_size(VteTerminal *terminal,
@@ -435,6 +444,8 @@ @@ -276,6 +288,8 @@
GArray *attributes);
void vte_terminal_get_cursor_position(VteTerminal *terminal, void vte_terminal_get_cursor_position(VteTerminal *terminal,
glong *column, glong *row); glong *column,
glong *row) _VTE_GNUC_NONNULL(1);
+void vte_terminal_set_cursor_position(VteTerminal *terminal, +void vte_terminal_set_cursor_position(VteTerminal *terminal,
+ long column, long row); + long column, long row) _VTE_GNUC_NONNULL(1);
/* Display string matching: clear all matching expressions. */
void vte_terminal_match_clear_all(VteTerminal *terminal);
@@ -484,6 +495,7 @@ /* Add a matching expression, returning the tag the widget assigns to that
VtePty *vte_terminal_get_pty_object(VteTerminal *terminal); * expression. */
char *vte_get_user_shell (void);
+char *vte_terminal_get_user_shell_with_fallback(void);
/* Accessors for bindings. */
#if !GTK_CHECK_VERSION (2, 91, 2)

View File

@ -118,7 +118,7 @@ rec {
gucharmap = callPackage ./core/gucharmap { }; gucharmap = callPackage ./core/gucharmap { };
gvfs = pkgs.gvfs.override { gnome = gnome3; lightWeight = false; }; gvfs = pkgs.gvfs.override { gnome = gnome3; gnomeSupport = true; };
eog = callPackage ./core/eog { }; eog = callPackage ./core/eog { };
@ -176,7 +176,9 @@ rec {
vte = callPackage ./core/vte { }; vte = callPackage ./core/vte { };
vte-select-text = callPackage ./core/vte { selectTextPatch = true; }; vte_038 = callPackage ./core/vte/0.38.0.nix { }; # To be moved in gnome 3.14 when available
vte-select-text = vte_038.override { selectTextPatch = true; };
vino = callPackage ./core/vino { }; vino = callPackage ./core/vino { };

View File

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep }: { stdenv, fetchFromGitHub, jdk, jre, ant, coreutils, gnugrep, file }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
sha256 = "0nr5b719qi03rcmx6swbhccv6kihxz3b8b6y46bc2j348rja5332"; sha256 = "0nr5b719qi03rcmx6swbhccv6kihxz3b8b6y46bc2j348rja5332";
}; };
buildInputs = [ jdk ant ]; buildInputs = [ jdk ant file ];
buildPhase = '' buildPhase = ''
cd ./core && ant cd ./core && ant
@ -27,6 +27,20 @@ stdenv.mkDerivation rec {
cp -r ./build/linux/work/tools/ $out/share/arduino cp -r ./build/linux/work/tools/ $out/share/arduino
cp -r ./build/linux/work/lib/ $out/share/arduino cp -r ./build/linux/work/lib/ $out/share/arduino
echo ${version} > $out/share/arduino/lib/version.txt echo ${version} > $out/share/arduino/lib/version.txt
# Fixup "/lib64/ld-linux-x86-64.so.2" like references in ELF executables.
echo "running patchelf on prebuilt binaries:"
find "$out" | while read filepath; do
if file "$filepath" | grep -q "ELF.*executable"; then
# skip target firmware files
if echo "$filepath" | grep -q "\.elf$"; then
continue
fi
echo "setting interpreter $(cat "$NIX_GCC"/nix-support/dynamic-linker) in $filepath"
patchelf --set-interpreter "$(cat "$NIX_GCC"/nix-support/dynamic-linker)" "$filepath"
test $? -eq 0 || { echo "patchelf failed to process $filepath"; exit 1; }
fi
done
''; '';
meta = { meta = {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "ats2-${version}"; name = "ats2-${version}";
version = "0.1.3"; version = "0.1.4";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz"; url = "mirror://sourceforge/ats2-lang/ATS2-Postiats-${version}.tgz";
sha256 = "157k703zsdf0gr7mwz08rdldfgwfsm5ipg36xcc8092fcjs5ryqp"; sha256 = "174kxdvdgp2rlb0qq7d854n6m9gzy0g8annk3bmbqb23m36n2g39";
}; };
buildInputs = [ gmp ]; buildInputs = [ gmp ];

View File

@ -1,14 +1,16 @@
{ fetchurl, stdenv }: { fetchurl, stdenv, gmp }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "bigloo-${version}"; name = "bigloo-${version}";
version = "3.7a"; version = "4.1a-2";
src = fetchurl { src = fetchurl {
url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo${version}.tar.gz"; url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo${version}.tar.gz";
sha256 = "0y8i87c2bpqzap8rhzgpyfgdzq21py5xq6mgp0w6xv4rjcj9d0v1"; sha256 = "09yrz8r0jpj7bda39fdxzrrdyhi851nlfajsyf0b6jxanz6ygcjx";
}; };
buildInputs = [ gmp ];
preConfigure = preConfigure =
# Help libgc's configure. # Help libgc's configure.
'' export CXXCPP="g++ -E" '' export CXXCPP="g++ -E"
@ -32,6 +34,10 @@ stdenv.mkDerivation rec {
meta = { meta = {
description = "Efficient Scheme compiler"; description = "Efficient Scheme compiler";
homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
license = stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.unix;
maintainers = with stdenv.lib.maintainers; [ ludo thoughtpolice ];
longDescription = '' longDescription = ''
Bigloo is a Scheme implementation devoted to one goal: enabling Bigloo is a Scheme implementation devoted to one goal: enabling
@ -44,11 +50,5 @@ stdenv.mkDerivation rec {
Scheme and C programs, between Scheme and Java programs, and Scheme and C programs, between Scheme and Java programs, and
between Scheme and C# programs. between Scheme and C# programs.
''; '';
homepage = http://www-sop.inria.fr/indes/fp/Bigloo/;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = [ stdenv.lib.maintainers.ludo ];
platforms = stdenv.lib.platforms.gnu; # arbitrary choice
}; };
} }

View File

@ -0,0 +1,130 @@
From 752dff853186dc334c519a86fa92f087795fea02 Mon Sep 17 00:00:00 2001
From: Moritz Heidkamp <moritz.heidkamp@bevuta.com>
Date: Wed, 1 Oct 2014 22:41:30 +0200
Subject: [PATCH] Introduce CHICKEN_REPOSITORY_EXTRA
This environment variable works like CHICKEN_REPOSITORY but supports
multiple paths separated by `:'. Those paths are searched after
CHICKEN_REPOSITORY when loading extensions via `require-library' and
friends. It can be accessed and changed at runtime via the new procedure
`repository-extra-paths' which is analog to `repository-path'.
---
chicken-install.scm | 11 +++++++----
chicken.import.scm | 1 +
eval.scm | 37 +++++++++++++++++++++++++++++++------
3 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/chicken-install.scm b/chicken-install.scm
index 2ef6ef4..b5c6bf8 100644
--- a/chicken-install.scm
+++ b/chicken-install.scm
@@ -109,10 +109,10 @@
(define *show-foreign-depends* #f)
(define *hacks* '())
- (define (repo-path)
+ (define (repo-paths)
(if (and *cross-chicken* (not *host-extension*))
- (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION))
- (repository-path)))
+ (list (make-pathname C_TARGET_LIB_HOME (sprintf "chicken/~a" C_BINARY_VERSION)))
+ (cons (repository-path) (repository-extra-paths))))
(define (get-prefix #!optional runtime)
(cond ((and *cross-chicken*
@@ -757,7 +757,10 @@
"installed extension has no information about which egg it belongs to"
(pathname-file sf))
#f))))
- (glob (make-pathname (repo-path) "*" "setup-info")))
+ (append-map
+ (lambda (path)
+ (glob (make-pathname path "*" "setup-info")))
+ (repo-paths)))
equal?))
(define (list-available-extensions trans locn)
diff --git a/chicken.import.scm b/chicken.import.scm
index baa7316..2839b16 100644
--- a/chicken.import.scm
+++ b/chicken.import.scm
@@ -201,6 +201,7 @@
repl
repl-prompt
repository-path
+ repository-extra-paths
require
reset
reset-handler
diff --git a/eval.scm b/eval.scm
index bbcd86c..838588d 100644
--- a/eval.scm
+++ b/eval.scm
@@ -81,6 +81,7 @@
(define-constant source-file-extension ".scm")
(define-constant setup-file-extension "setup-info")
(define-constant repository-environment-variable "CHICKEN_REPOSITORY")
+(define-constant repository-extra-environment-variable "CHICKEN_REPOSITORY_EXTRA")
(define-constant prefix-environment-variable "CHICKEN_PREFIX")
; these are actually in unit extras, but that is used by default
@@ -1180,6 +1181,25 @@
(define repository-path ##sys#repository-path)
+(define ##sys#repository-extra-paths
+ (let* ((repaths (get-environment-variable repository-extra-environment-variable))
+ (repaths (if repaths
+ (let ((len (string-length repaths)))
+ (let loop ((i 0) (offset 0) (res '()))
+ (cond ((> i len)
+ (reverse res))
+ ((or (= i len) (eq? #\: (string-ref repaths i)))
+ (loop (+ i 1) (+ i 1) (cons (substring repaths offset i) res)))
+ (else
+ (loop (+ i 1) offset res)))))
+ '())))
+ (lambda (#!optional val)
+ (if val
+ (set! repaths val)
+ repaths))))
+
+(define repository-extra-paths ##sys#repository-extra-paths)
+
(define ##sys#setup-mode #f)
(define ##sys#find-extension
@@ -1197,6 +1217,7 @@
(let loop ((paths (##sys#append
(if ##sys#setup-mode '(".") '())
(if rp (list rp) '())
+ (##sys#repository-extra-paths)
(if inc? ##sys#include-pathnames '())
(if ##sys#setup-mode '() '("."))) ))
(and (pair? paths)
@@ -1256,12 +1277,16 @@
[string-append string-append]
[read read] )
(lambda (id loc)
- (and-let* ((rp (##sys#repository-path)))
- (let* ((p (##sys#canonicalize-extension-path id loc))
- (rpath (string-append rp "/" p ".")) )
- (cond ((file-exists? (string-append rpath setup-file-extension))
- => (cut with-input-from-file <> read) )
- (else #f) ) ) ) ) ))
+ (let loop ((rpaths (cons (##sys#repository-path) (##sys#repository-extra-paths))))
+ (and (pair? rpaths)
+ (let ((rp (car rpaths)))
+ (if (not rp)
+ (loop (cdr rpaths))
+ (let* ((p (##sys#canonicalize-extension-path id loc))
+ (rpath (string-append rp "/" p ".")) )
+ (cond ((file-exists? (string-append rpath setup-file-extension))
+ => (cut with-input-from-file <> read) )
+ (else (loop (cdr rpaths))) ) )) ))) ) ))
(define (extension-information ext)
(##sys#extension-information ext 'extension-information) )
--
2.1.0

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl }: { stdenv, fetchurl, makeWrapper, bootstrap-chicken ? null }:
let let
version = "4.9.0.1"; version = "4.9.0.1";
@ -8,18 +8,57 @@ let
else if isBSD then "bsd" else if isBSD then "bsd"
else if isSunOS then "solaris" else if isSunOS then "solaris"
else "linux"; # Should be a sane default else "linux"; # Should be a sane default
lib = stdenv.lib;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "chicken-${version}"; name = "chicken-${version}";
binaryVersion = 7;
src = fetchurl { src = fetchurl {
url = "http://code.call-cc.org/releases/4.9.0/chicken-${version}.tar.gz"; url = "http://code.call-cc.org/releases/4.9.0/chicken-${version}.tar.gz";
sha256 = "0598mar1qswfd8hva9nqs88zjn02lzkqd8fzdd21dz1nki1prpq4"; sha256 = "0598mar1qswfd8hva9nqs88zjn02lzkqd8fzdd21dz1nki1prpq4";
}; };
setupHook = lib.ifEnable (bootstrap-chicken != null) ./setup-hook.sh;
buildFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib"; buildFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
installFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib"; installFlags = "PLATFORM=${platform} PREFIX=$(out) VARDIR=$(out)/var/lib";
# We need a bootstrap-chicken to regenerate the c-files after
# applying a patch to add support for CHICKEN_REPOSITORY_EXTRA
patches = lib.ifEnable (bootstrap-chicken != null) [
./0001-Introduce-CHICKEN_REPOSITORY_EXTRA.patch
];
buildInputs = [
makeWrapper
] ++ (lib.ifEnable (bootstrap-chicken != null) [
bootstrap-chicken
]);
preBuild = lib.ifEnable (bootstrap-chicken != null) ''
# Backup the build* files - those are generated from hostname,
# git-tag, etc. and we don't need/want that
mkdir -p build-backup
mv buildid buildbranch buildtag.h build-backup
# Regenerate eval.c after the patch
make spotless $buildFlags
mv build-backup/* .
'';
postInstall = ''
for f in $out/bin/*
do
wrapProgram $f \
--prefix PATH : ${stdenv.gcc}/bin
done
'';
# TODO: Assert csi -R files -p '(pathname-file (repository-path))' == binaryVersion
meta = { meta = {
homepage = http://www.call-cc.org/; homepage = http://www.call-cc.org/;
license = "BSD"; license = "BSD";

View File

@ -0,0 +1,46 @@
{ stdenv, fetchegg, chicken, makeWrapper }:
{ name, src
, buildInputs ? []
, chickenInstallFlags ? []
, cscOptions ? []
, ...} @ args:
let
libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
overrides = import ./overrides.nix;
lib = stdenv.lib;
baseName = (builtins.parseDrvName name).name;
override = if builtins.hasAttr baseName overrides
then
builtins.getAttr baseName overrides
else
{};
in
stdenv.mkDerivation ({
name = "chicken-${name}";
propagatedBuildInputs = buildInputs ++ [ chicken ];
propagatedUserEnvPkgs = buildInputs ++ [ chicken ];
buildInputs = [ makeWrapper ];
CSC_OPTIONS = stdenv.lib.concatStringsSep " " cscOptions;
CHICKEN_REPOSITORY = libPath;
CHICKEN_INSTALL_PREFIX = "$out";
installPhase = ''
runHook preInstall
chicken-install -p $out ${stdenv.lib.concatStringsSep " " chickenInstallFlags}
for f in $out/bin/*
do
wrapProgram $f \
--set CHICKEN_REPOSITORY $CHICKEN_REPOSITORY \
--prefix CHICKEN_REPOSITORY_EXTRA : "$out/lib/chicken/${toString chicken.binaryVersion}/:$CHICKEN_REPOSITORY_EXTRA" \
--prefix CHICKEN_INCLUDE_PATH \; \"$CHICKEN_INCLUDE_PATH\;$out/share/\" \
--prefix PATH : "$out/bin:${chicken}/bin:$CHICKEN_REPOSITORY_EXTRA:$CHICKEN_REPOSITORY"
done
runHook postInstall
'';
} // (builtins.removeAttrs args ["name" "buildInputs"]) // override)

View File

@ -0,0 +1,10 @@
{
setup-helper = {
preBuild = ''
substituteInPlace setup-helper.setup \
--replace "(chicken-home)" \"$out/share/\"
cat setup-helper.setup
'';
};
}

View File

@ -0,0 +1,7 @@
addChickenRepositoryPath() {
addToSearchPathWithCustomDelimiter : CHICKEN_REPOSITORY_EXTRA "$1/lib/chicken/7/"
# addToSearchPathWithCustomDelimiter \; CHICKEN_INCLUDE_PATH "$1/share/"
export CHICKEN_INCLUDE_PATH="$1/share;$CHICKEN_INCLUDE_PATH"
}
envHooks=(${envHooks[@]} addChickenRepositoryPath)

View File

@ -1,28 +1,22 @@
x@{stdenv, fetchurl, builderDefsPackage, ...}: { stdenv, fetchurl }:
builderDefsPackage
(a :
let
s = import ./src-for-default.nix;
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++ [];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
in
rec {
src = a.fetchUrlFromSrcInfo s;
inherit (s) name; stdenv.mkDerivation rec {
inherit buildInputs; name = "gambit-${version}";
configureFlags = ["--enable-shared"]; version = "4.7.3";
devver = "4_7_3";
/* doConfigure should be removed if not needed */ src = fetchurl {
phaseNames = ["doConfigure" "doMakeInstall"]; url = "http://www.iro.umontreal.ca/~gambit/download/gambit/v4.7/source/gambc-v${devver}-devel.tgz";
sha256 = "12jbr6bc0zmc7vw07a9pliadbvqgwkpmw6cj8awz73clv1j7pxha";
meta = {
description = "Scheme to C compiler";
maintainers = [
a.lib.maintainers.raskin
];
platforms = with a.lib.platforms;
linux ++ freebsd;
}; };
}) x
configureFlags = [ "--enable-shared" "--enable-single-host" ];
meta = {
description = "Optimizing Scheme to C compiler";
homepage = "http://gambitscheme.org";
license = stdenv.lib.licenses.lgpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
};
}

View File

@ -1,9 +0,0 @@
rec {
version="v4_6_1";
name="gambit-v4_6_1";
hash="0ad6c63dg5ggaamixxinvlf3128mra8xzss5chh66lkii4dc3m7g";
url="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-${version}-devel.tgz";
advertisedUrl="http://www.iro.umontreal.ca/~gambit/download/gambit/v4.6/source/gambc-v4_6_1-devel.tgz";
}

View File

@ -1,7 +0,0 @@
{
downloadPage = "http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Main_Page";
baseName = "gambit";
sourceRegexp = "[.]tgz";
versionExtractorSedScript = ''s/.*-(v[_0-9]+)-devel[.].*/\1/'';
versionReferenceCreator = ''$(replaceAllVersionOccurences)'';
}

View File

@ -1,4 +1,4 @@
{ stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256 }: { stdenv, bzip2, patchelf, glibc, gcc, fetchurl, version, releaseType, sha256, ncurses }:
with stdenv.lib; with stdenv.lib;
let let
versionParts = splitString "-" version; # 4.7 2013q3 20130916 versionParts = splitString "-" version; # 4.7 2013q3 20130916
@ -31,7 +31,7 @@ stdenv.mkDerivation {
for f in $(find $out); do for f in $(find $out); do
if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then if [ -f "$f" ] && patchelf "$f" 2> /dev/null; then
patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \ patchelf --set-interpreter ${glibc}/lib/ld-linux.so.2 \
--set-rpath $out/lib:${gcc}/lib \ --set-rpath $out/lib:${gcc}/lib:${ncurses}/lib \
"$f" || true "$f" || true
fi fi
done done

View File

@ -1,27 +1,25 @@
# This file was auto-generated by cabal2nix. Please do NOT edit manually! # This file was auto-generated by cabal2nix. Please do NOT edit manually!
{ cabal, annotatedWlPprint, ansiTerminal, ansiWlPprint { cabal, annotatedWlPprint, ansiTerminal, ansiWlPprint
, base64Bytestring, binary, blazeHtml, blazeMarkup, boehmgc, Cabal , base64Bytestring, binary, blazeHtml, blazeMarkup, boehmgc
, cheapskate, deepseq, filepath, fingertree, gmp, happy, haskeline , cheapskate, deepseq, filepath, fingertree, gmp, happy, haskeline
, languageJava, lens, libffi, llvmGeneral, llvmGeneralPure, mtl , lens, libffi, mtl, network, optparseApplicative, parsers, split
, network, optparseApplicative, parsers, split, text, time , text, time, transformers, trifecta, unorderedContainers
, transformers, trifecta, unorderedContainers, utf8String, vector , utf8String, vector, vectorBinaryInstances, xml, zlib
, vectorBinaryInstances, xml, zlib
}: }:
cabal.mkDerivation (self: { cabal.mkDerivation (self: {
pname = "idris"; pname = "idris";
version = "0.9.14.3"; version = "0.9.15.1";
sha256 = "03zppfqjamy4mdwcfx3x1wzxav67ha1zgnynrxhvdqw3zcsrwnlr"; sha256 = "0r31jcqs9kgknm66v7bbcgj9md7z49sgvn0nhk1dwg8jj2rmfll8";
isLibrary = true; isLibrary = true;
isExecutable = true; isExecutable = true;
buildDepends = [ buildDepends = [
annotatedWlPprint ansiTerminal ansiWlPprint base64Bytestring binary annotatedWlPprint ansiTerminal ansiWlPprint base64Bytestring binary
blazeHtml blazeMarkup Cabal cheapskate deepseq filepath fingertree blazeHtml blazeMarkup cheapskate deepseq filepath fingertree
haskeline languageJava lens libffi llvmGeneral llvmGeneralPure mtl haskeline lens libffi mtl network optparseApplicative parsers split
network optparseApplicative parsers split text time transformers text time transformers trifecta unorderedContainers utf8String
trifecta unorderedContainers utf8String vector vector vectorBinaryInstances xml zlib
vectorBinaryInstances xml zlib
]; ];
buildTools = [ happy ]; buildTools = [ happy ];
extraLibraries = [ boehmgc gmp ]; extraLibraries = [ boehmgc gmp ];
@ -31,6 +29,5 @@ cabal.mkDerivation (self: {
description = "Functional Programming Language with Dependent Types"; description = "Functional Programming Language with Dependent Types";
license = self.stdenv.lib.licenses.bsd3; license = self.stdenv.lib.licenses.bsd3;
platforms = self.ghc.meta.platforms; platforms = self.ghc.meta.platforms;
maintainers = with self.stdenv.lib.maintainers; [ aycanirican ];
}; };
}) })

View File

@ -1,9 +1,9 @@
import ./jdk-linux-base.nix { import ./jdk-linux-base.nix {
productVersion = "7"; productVersion = "7";
patchVersion = "72"; patchVersion = "71";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html; downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
sha256_i686 = "01zl82hnb9pynxw04zaq4745av42cga97cbckcwb8lh752hchxh3"; sha256_i686 = "d3c09a35abc0464d8ad70dfe17e02597eb4c5d489ff4d1bcd14088aeb5016424";
sha256_x86_64 = "13nyx8p27crnnybkzdaiv9l1azap7c8g4na6xasrnjvx3f7467fx"; sha256_x86_64 = "80d5705fc37fc4eabe3cea480e0530ae0436c2c086eb8fc6f65bb21e8594baf8";
jceName = "UnlimitedJCEPolicyJDK7.zip"; jceName = "UnlimitedJCEPolicyJDK7.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html; jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d"; sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";

View File

@ -0,0 +1,10 @@
import ./jdk-linux-base.nix {
productVersion = "7";
patchVersion = "72";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html;
sha256_i686 = "0376c8a0280752b4389b6cb193d463826c55c821587d0278b7fea665a140f407";
sha256_x86_64 = "dd1d438e1b7d4b9bb5ea4659f2103b577d1568da51b53f97b736b3232eeade8e";
jceName = "UnlimitedJCEPolicyJDK7.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html;
sha256JCE = "7a8d790e7bd9c2f82a83baddfae765797a4a56ea603c9150c87b7cdb7800194d";
}

View File

@ -1,9 +1,9 @@
import ./jdk-linux-base.nix { import ./jdk-linux-base.nix {
productVersion = "8"; productVersion = "8";
patchVersion = "20"; patchVersion = "25";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html; downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
sha256_i686 = "fa013b3fcbb1308040bf0e75bbd6ef7e8396b547cbc8dd79e3cb8153604bfd06"; sha256_i686 = "17f396a541db09c732032185f10f9c6eb42ac7b5776814602342de9655b2e0e2";
sha256_x86_64 = "3e717622ae48af5ca7298e7797cb71d4d545238f362741a83e69c097ca055de4"; sha256_x86_64 = "057f660799be2307d2eefa694da9d3fce8e165807948f5bcaa04f72845d2f529";
jceName = "jce_policy-8.zip"; jceName = "jce_policy-8.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html; jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59"; sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";

View File

@ -4,14 +4,14 @@
}: }:
let let
version = "6.6.5"; version = "6.6.6";
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 = "0lsa90sdnkd286xgm1amwkdhvnrpsz7imfzczrfdaw4arqk4bvkr"; sha256 = "0vcrfskm2hyhv30lxr6v261myb815jc3bgmcn1lgsc9g9qkvp04z";
}; };
buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama buildInputs = [ gmp readline openssl libjpeg unixODBC libXinerama

View File

@ -0,0 +1,20 @@
{ stdenv, fetchurl, pkgconfig, guile }:
stdenv.mkDerivation rec {
name = "guile-opengl-0.1.0";
meta = with stdenv.lib; {
description = "Guile binding for the OpenGL graphics API";
homepage = "http://gnu.org/s/guile-opengl";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ iyzsong ];
};
src = fetchurl {
url = "mirror://gnu/guile-opengl/${name}.tar.gz";
sha256 = "13qfx4xh8baryxqrv986l848ygd0piqwm6s2s90pxk9c0m9vklim";
};
nativeBuildInputs = [ pkgconfig guile ];
}

View File

@ -0,0 +1,35 @@
{ stdenv, fetchgit, ocaml, findlib, menhir, which }:
let inherit (stdenv.lib) getVersion versionAtLeast; in
assert versionAtLeast (getVersion ocaml) "3.12";
stdenv.mkDerivation {
name = "eff-20140928";
src = fetchgit {
url = "https://github.com/matijapretnar/eff.git";
rev = "90f884a790fddddb51d4d1d3b7c2edf1e8aabb64";
sha256 = "28e389b35e6959072c245c2e79fe305885b1b2d44ff540a02a097e09e9f9698f";
};
buildInputs = [ ocaml findlib menhir which ];
doCheck = true;
checkTarget = "test";
meta = with stdenv.lib; {
homepage = "http://www.eff-lang.org";
description = "A functional programming language based on algebraic effects and their handlers";
longDescription = ''
Eff is a functional language with handlers of not only exceptions,
but also of other computational effects such as state or I/O. With
handlers, you can simply implement transactions, redirections,
backtracking, multi-threading, and much more...
'';
license = licenses.bsd2;
platforms = ocaml.meta.platforms;
maintainers = [ maintainers.jirkamarsik ];
};
}

View File

@ -1,15 +1,15 @@
{ stdenv, fetchurl, pkgconfig, nix }: let { stdenv, fetchurl, pkgconfig, nix, git }: let
version = "1.1.0"; version = "2.0.1";
in stdenv.mkDerivation { in stdenv.mkDerivation {
name = "nix-exec-${version}"; name = "nix-exec-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz"; url = "https://github.com/shlevy/nix-exec/releases/download/v${version}/nix-exec-${version}.tar.xz";
sha256 = "0w1dq2svv1l8x18q5syraf80xpyyrcxbrab51cszc3v4m04b4saa"; sha256 = "1iyz19c15yw0p5lgfbfh8arja2cy3apx5697cm671j4qzjkws32p";
}; };
buildInputs = [ pkgconfig nix ]; buildInputs = [ pkgconfig nix git ];
meta = { meta = {
description = "Run programs defined in nix expressions"; description = "Run programs defined in nix expressions";

View File

@ -4,18 +4,23 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
baseName="pure"; baseName="pure";
project="pure-lang"; project="pure-lang";
version="0.62"; version="0.63";
name="${baseName}-${version}"; name="${baseName}-${version}";
extension="tar.gz"; extension="tar.gz";
src = fetchurl { src = fetchurl {
url="https://bitbucket.org/purelang/${project}/downloads/${name}.${extension}"; url="https://bitbucket.org/purelang/${project}/downloads/${name}.${extension}";
sha256="77df64e8154ef6f8fac66f8bcc471dc8f994862d1ee77b7c98003607757a013b"; sha256="33acb2d560b21813f5e856973b493d9cfafba82bd6f539425ce07aa22f84ee29";
}; };
buildInputs = [ bison flex makeWrapper ]; buildInputs = [ bison flex makeWrapper ];
propagatedBuildInputs = [ llvm gmp mpfr readline ]; propagatedBuildInputs = [ llvm gmp mpfr readline ];
configureFlags = [ "--enable-release" ];
doCheck = true;
checkPhase = ''
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${llvm}/lib make check
'';
postInstall = '' postInstall = ''
wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${llvm}/lib wrapProgram $out/bin/pure --prefix LD_LIBRARY_PATH : ${llvm}/lib
''; '';
@ -25,6 +30,7 @@ stdenv.mkDerivation rec {
maintainers = with lib.maintainers; maintainers = with lib.maintainers;
[ [
raskin raskin
asppsa
]; ];
platforms = with lib.platforms; platforms = with lib.platforms;
linux; linux;

View File

@ -135,11 +135,6 @@ let
buildPhase = buildPhase =
'' ''
# Fake the build environment that setup.py expects.
ln -s ${python}/include/python*/pyconfig.h .
ln -s ${python}/lib/python*/config/Setup Modules/
ln -s ${python}/lib/python*/config/Setup.local Modules/
substituteInPlace setup.py --replace 'self.extensions = extensions' \ substituteInPlace setup.py --replace 'self.extensions = extensions' \
'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]' 'self.extensions = [ext for ext in self.extensions if ext.name in ["${internalName}"]]'

View File

@ -48,6 +48,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = [ patches = [
./ruby19-parallel-install.patch ./ruby19-parallel-install.patch
./bitperfect-rdoc.patch ./bitperfect-rdoc.patch

View File

@ -5,6 +5,7 @@
, ncurses, readline, cursesSupport ? false , ncurses, readline, cursesSupport ? false
, groff, docSupport ? false , groff, docSupport ? false
, libyaml, yamlSupport ? true , libyaml, yamlSupport ? true
, libffi, fiddleSupport ? true
, ruby_2_0_0, autoreconfHook, bison, useRailsExpress ? true , ruby_2_0_0, autoreconfHook, bison, useRailsExpress ? true
}: }:
@ -34,6 +35,7 @@ stdenv.mkDerivation rec {
NROFF = "${groff}/bin/nroff"; NROFF = "${groff}/bin/nroff";
buildInputs = ops useRailsExpress [ autoreconfHook bison ] buildInputs = ops useRailsExpress [ autoreconfHook bison ]
++ (op fiddleSupport libffi)
++ (ops cursesSupport [ ncurses readline ] ) ++ (ops cursesSupport [ ncurses readline ] )
++ (op docSupport groff ) ++ (op docSupport groff )
++ (op zlibSupport zlib) ++ (op zlibSupport zlib)
@ -48,6 +50,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = ops useRailsExpress [ patches = ops useRailsExpress [
"${patchSet}/patches/ruby/2.0.0/p481/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.0.0/p481/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.0.0/p481/02-railsexpress-gc.patch" "${patchSet}/patches/ruby/2.0.0/p481/02-railsexpress-gc.patch"

View File

@ -5,6 +5,7 @@
, ncurses, readline, cursesSupport ? false , ncurses, readline, cursesSupport ? false
, groff, docSupport ? false , groff, docSupport ? false
, libyaml, yamlSupport ? true , libyaml, yamlSupport ? true
, libffi, fiddleSupport ? true
, ruby_2_1_0, autoreconfHook, bison, useRailsExpress ? true , ruby_2_1_0, autoreconfHook, bison, useRailsExpress ? true
}: }:
@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
NROFF = "${groff}/bin/nroff"; NROFF = "${groff}/bin/nroff";
buildInputs = ops useRailsExpress [ autoreconfHook bison ] buildInputs = ops useRailsExpress [ autoreconfHook bison ]
++ (op fiddleSupport libffi)
++ (ops cursesSupport [ ncurses readline ] ) ++ (ops cursesSupport [ ncurses readline ] )
++ (op docSupport groff ) ++ (op docSupport groff )
++ (op zlibSupport zlib) ++ (op zlibSupport zlib)
@ -49,6 +51,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = ops useRailsExpress [ patches = ops useRailsExpress [
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/01-current-2.1.1-fixes.patch"
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/02-zero-broken-tests.patch"

View File

@ -5,6 +5,7 @@
, ncurses, readline, cursesSupport ? false , ncurses, readline, cursesSupport ? false
, groff, docSupport ? false , groff, docSupport ? false
, libyaml, yamlSupport ? true , libyaml, yamlSupport ? true
, libffi, fiddleSupport ? true
, ruby_2_1_1, autoreconfHook, bison, useRailsExpress ? true , ruby_2_1_1, autoreconfHook, bison, useRailsExpress ? true
}: }:
@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
NROFF = "${groff}/bin/nroff"; NROFF = "${groff}/bin/nroff";
buildInputs = ops useRailsExpress [ autoreconfHook bison ] buildInputs = ops useRailsExpress [ autoreconfHook bison ]
++ (op fiddleSupport libffi)
++ (ops cursesSupport [ ncurses readline ] ) ++ (ops cursesSupport [ ncurses readline ] )
++ (op docSupport groff ) ++ (op docSupport groff )
++ (op zlibSupport zlib) ++ (op zlibSupport zlib)
@ -49,6 +51,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = ops useRailsExpress [ patches = ops useRailsExpress [
"${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.0/railsexpress/02-improve-gc-stats.patch"

View File

@ -5,6 +5,7 @@
, ncurses, readline, cursesSupport ? false , ncurses, readline, cursesSupport ? false
, groff, docSupport ? false , groff, docSupport ? false
, libyaml, yamlSupport ? true , libyaml, yamlSupport ? true
, libffi, fiddleSupport ? true
, ruby_2_1_2, autoreconfHook, bison, useRailsExpress ? true , ruby_2_1_2, autoreconfHook, bison, useRailsExpress ? true
}: }:
@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
NROFF = "${groff}/bin/nroff"; NROFF = "${groff}/bin/nroff";
buildInputs = ops useRailsExpress [ autoreconfHook bison ] buildInputs = ops useRailsExpress [ autoreconfHook bison ]
++ (op fiddleSupport libffi)
++ (ops cursesSupport [ ncurses readline ] ) ++ (ops cursesSupport [ ncurses readline ] )
++ (op docSupport groff ) ++ (op docSupport groff )
++ (op zlibSupport zlib) ++ (op zlibSupport zlib)
@ -49,6 +51,12 @@ stdenv.mkDerivation rec {
enableParallelBuilding = true; enableParallelBuilding = true;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = ops useRailsExpress [ patches = ops useRailsExpress [
"${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch" "${patchSet}/patches/ruby/2.1.2/railsexpress/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch" "${patchSet}/patches/ruby/2.1.2/railsexpress/02-improve-gc-stats.patch"

View File

@ -0,0 +1,114 @@
{ stdenv, fetchurl, fetchgit, fetchFromGitHub
, zlib, zlibSupport ? true
, openssl, opensslSupport ? true
, gdbm, gdbmSupport ? true
, ncurses, readline, cursesSupport ? false
, groff, docSupport ? false
, libyaml, yamlSupport ? true
, libffi, fiddleSupport ? true
, ruby_2_1_3, autoreconfHook, bison, useRailsExpress ? true
}:
let
op = stdenv.lib.optional;
ops = stdenv.lib.optionals;
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
config = import ./config.nix fetchgit;
baseruby = ruby_2_1_3.override { useRailsExpress = false; };
in
stdenv.mkDerivation rec {
version = with passthru; "${majorVersion}.${minorVersion}.${teenyVersion}-p${patchLevel}";
name = "ruby-${version}";
src = if useRailsExpress then fetchFromGitHub {
owner = "ruby";
repo = "ruby";
rev = "v2_1_3";
sha256 = "1pnam9jry2l2mbji3gvrbb7jyisxl99xjz6l1qrccwnfinxxbmhv";
} else fetchurl {
url = "http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz";
sha256 = "00bz6jcbxgnllplk4b9lnyc3w8yd3pz5rn11rmca1s8cn6vvw608";
};
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
NROFF = "${groff}/bin/nroff";
buildInputs = ops useRailsExpress [ autoreconfHook bison ]
++ (op fiddleSupport libffi)
++ (ops cursesSupport [ ncurses readline ])
++ (op docSupport groff)
++ (op zlibSupport zlib)
++ (op opensslSupport openssl)
++ (op gdbmSupport gdbm)
++ (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;
# Fix a build failure on systems with nix store optimisation.
# (The build process attempted to copy file a overwriting file b, where a and
# b are hard-linked, which results in cp returning a non-zero exit code.)
# https://github.com/NixOS/nixpkgs/issues/4266
postUnpack = ''rm "$sourceRoot/enc/unicode/name2ctype.h"'';
patches = ops useRailsExpress [
"${patchSet}/patches/ruby/2.1.3/railsexpress/01-zero-broken-tests.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/03-display-more-detailed-stack-trace.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/04-show-full-backtrace-on-stack-overflow.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/05-funny-falcon-stc-density.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/06-funny-falcon-stc-pool-allocation.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/07-aman-opt-aset-aref-str.patch"
"${patchSet}/patches/ruby/2.1.3/railsexpress/08-funny-falcon-method-cache.patch"
];
# Ruby >= 2.1.0 tries to download config.{guess,sub}
postPatch = ''
rm tool/config_files.rb
cp ${config}/config.guess tool/
cp ${config}/config.sub tool/
'';
configureFlags = ["--enable-shared" ]
++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
# 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
postInstall = ''
# Bundler tries to create this directory
mkdir -pv $out/${passthru.gemPath}
mkdir -p $out/nix-support
cat > $out/nix-support/setup-hook <<EOF
addGemPath() {
addToSearchPath GEM_PATH \$1/${passthru.gemPath}
}
envHooks+=(addGemPath)
EOF
'';
meta = {
license = "Ruby";
homepage = "http://www.ruby-lang.org/en/";
description = "The Ruby language";
platforms = stdenv.lib.platforms.all;
};
passthru = rec {
majorVersion = "2";
minorVersion = "1";
teenyVersion = "3";
patchLevel = "0";
libPath = "lib/ruby/${majorVersion}.${minorVersion}";
gemPath = "lib/ruby/gems/${majorVersion}.${minorVersion}";
};
}

View File

@ -3,6 +3,6 @@
fetchFromGitHub { fetchFromGitHub {
owner = "skaes"; owner = "skaes";
repo = "rvm-patchsets"; repo = "rvm-patchsets";
rev = "13d535bbc060b1b8166673932fe7098abf4216b8"; rev = "fb6b427f71e756900184d1b6eaeb10245ec8405a";
sha256 = "0hf1m2bsdgdnyi4427gknvpd8cfribw77lf2k980flb1z9g5d7ib"; sha256 = "10k7p3nymj7y5a0az8v1aks2w5w190zfqv9kiiafcx0a3qfswnck";
} }

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