Merge branch 'master' into staging.

Conflicts:
      pkgs/development/libraries/gtk+/2.x.nix
      pkgs/tools/security/gnupg/21.nix
      pkgs/top-level/all-packages.nix
This commit is contained in:
Peter Simons 2015-03-10 12:09:43 +01:00
commit 6694ef42a9
155 changed files with 4594 additions and 4186 deletions

View file

@ -131,6 +131,7 @@
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
obadz = "obadz <dav-nixos@odav.org>";
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
olcai = "Erik Timan <dev@timan.info>";
@ -138,6 +139,7 @@
page = "Carles Pagès <page@cubata.homelinux.net>";
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
pashev = "Igor Pashev <pashev.igor@gmail.com>";
phausmann = "Philipp Hausmann <nix@314.ch>";
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
@ -170,6 +172,7 @@
shell = "Shell Turner <cam.turn@gmail.com>";
shlevy = "Shea Levy <shea@shealevy.com>";
simons = "Peter Simons <simons@cryp.to>";
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
smironov = "Sergey Mironov <ierton@gmail.com>";

View file

@ -208,4 +208,15 @@ rec {
# standard GNU Autoconf scripts.
enableFeature = enable: feat: "--${if enable then "enable" else "disable"}-${feat}";
# Create a fixed width string with additional prefix to match required width
fixedWidthString = width: filler: str:
let
strw = lib.stringLength str;
reqWidth = width - (lib.stringLength filler);
in
assert strw <= width;
if strw == width then str else filler + fixedWidthString reqWidth filler str;
# Format a number adding leading zeroes up to fixed width
fixedWidthNumber = width: n: fixedWidthString width "0" (toString n);
}

View file

@ -68,7 +68,7 @@ instance, if you try to define an option that doesnt exist (that is,
doesnt have a corresponding <emphasis>option declaration</emphasis>),
<command>nixos-rebuild</command> will give an error like:
<screen>
The option `services.httpd.enabl' defined in `/etc/nixos/configuration.nix' does not exist.
The option `services.httpd.enable' defined in `/etc/nixos/configuration.nix' does not exist.
</screen>
Likewise, values in option definitions must have a correct type. For
instance, <option>services.httpd.enable</option> must be a Boolean

View file

@ -1,7 +1,7 @@
<refentry xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refmeta>
<refentrytitle><command>nixos-rebuild</command></refentrytitle>
<manvolnum>8</manvolnum>
@ -22,7 +22,8 @@
<arg choice='plain'><option>boot</option></arg>
<arg choice='plain'><option>test</option></arg>
<arg choice='plain'><option>build</option></arg>
<arg choice='plain'><option>dry-run</option></arg>
<arg choice='plain'><option>dry-build</option></arg>
<arg choice='plain'><option>dry-activate</option></arg>
<arg choice='plain'><option>build-vm</option></arg>
<arg choice='plain'><option>build-vm-with-bootloader</option></arg>
</group>
@ -114,10 +115,22 @@ $ nix-build /path/to/nixpkgs/nixos -A system
</varlistentry>
<varlistentry>
<term><option>dry-run</option></term>
<term><option>dry-build</option></term>
<listitem>
<para>Simply show what store paths would be built or downloaded
by any of the operations above.</para>
<para>Show what store paths would be built or downloaded by any
of the operations above, but otherwise do nothing.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>dry-activate</option></term>
<listitem>
<para>Build the new configuration, but instead of activating it,
show what changes would be performed by the activation (i.e. by
<command>nixos-rebuild test</command>). For
instance, this command will print which systemd units would be
restarted. The list of changes is not guaranteed to be
complete.</para>
</listitem>
</varlistentry>

View file

@ -26,7 +26,8 @@ while [ "$#" -gt 0 ]; do
--help)
showSyntax
;;
switch|boot|test|build|dry-run|build-vm|build-vm-with-bootloader)
switch|boot|test|build|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader)
if [ "$i" = dry-run ]; then i=dry-build; fi
action="$i"
;;
--install-grub)
@ -137,7 +138,7 @@ fi
# First build Nix, since NixOS may require a newer version than the
# current one.
if [ -n "$rollback" -o "$action" = dry-run ]; then
if [ -n "$rollback" -o "$action" = dry-build ]; then
buildNix=
fi
@ -180,7 +181,7 @@ if [ -n "$canRun" ]; then
fi
if [ "$action" = dry-run ]; then
if [ "$action" = dry-build ]; then
extraBuildFlags+=(--dry-run)
fi
@ -193,7 +194,7 @@ if [ -z "$rollback" ]; then
if [ "$action" = switch -o "$action" = boot ]; then
nix-env "${extraBuildFlags[@]}" -p "$profile" -f '<nixpkgs/nixos>' --set -A system
pathToConfig="$profile"
elif [ "$action" = test -o "$action" = build -o "$action" = dry-run ]; then
elif [ "$action" = test -o "$action" = build -o "$action" = dry-build -o "$action" = dry-activate ]; then
nix-build '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}" > /dev/null
pathToConfig=./result
elif [ "$action" = build-vm ]; then
@ -224,7 +225,7 @@ fi
# If we're not just building, then make the new configuration the boot
# default and/or activate it now.
if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then
if [ "$action" = switch -o "$action" = boot -o "$action" = test -o "$action" = dry-activate ]; then
if ! $pathToConfig/bin/switch-to-configuration "$action"; then
echo "warning: error(s) occured while switching to the new configuration" >&2
exit 1

View file

@ -211,7 +211,9 @@ let
${optionalString cfg.usbAuth
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
${optionalString cfg.unixAuth
"auth sufficient pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth"}
"auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so ${optionalString cfg.allowNullPassword "nullok"} likeauth"}
${optionalString config.security.pam.enableEcryptfs
"auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
${optionalString cfg.otpwAuth
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
${optionalString cfg.oathAuth
@ -223,9 +225,11 @@ let
auth [default=die success=done] ${pam_ccreds}/lib/security/pam_ccreds.so action=validate use_first_pass
auth sufficient ${pam_ccreds}/lib/security/pam_ccreds.so action=store use_first_pass
''}
auth required pam_deny.so
${optionalString (! config.security.pam.enableEcryptfs) "auth required pam_deny.so"}
# Password management.
${optionalString config.security.pam.enableEcryptfs
"password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
password requisite pam_unix.so nullok sha512
${optionalString config.users.ldap.enable
"password sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
@ -245,6 +249,8 @@ let
"session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022"}
${optionalString cfg.updateWtmp
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
${optionalString config.security.pam.enableEcryptfs
"session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
${optionalString config.users.ldap.enable
"session optional ${pam_ldap}/lib/security/pam_ldap.so"}
${optionalString config.krb5.enable
@ -357,6 +363,13 @@ in
'';
};
security.pam.enableEcryptfs = mkOption {
default = false;
description = ''
Enable eCryptfs PAM module (mounting ecryptfs home directory on login).
'';
};
users.motd = mkOption {
default = null;
example = "Today is Sweetmorn, the 4th day of The Aftermath in the YOLD 3178.";
@ -377,7 +390,11 @@ in
++ optional config.users.ldap.enable pam_ldap
++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
++ optionals config.security.pam.enableOATH [ pkgs.oathToolkit ];
++ optionals config.security.pam.enableOATH [ pkgs.oathToolkit ]
++ optionals config.security.pam.enableEcryptfs [ pkgs.ecryptfs ];
security.setuidPrograms =
optionals config.security.pam.enableEcryptfs [ "mount.ecryptfs_private" "umount.ecryptfs_private" ];
environment.etc =
mapAttrsToList (n: v: makePAMService v) config.security.pam.services;

View file

@ -15,6 +15,8 @@ let
state_file "${cfg.dataDir}/state"
sticker_file "${cfg.dataDir}/sticker.sql"
log_file "syslog"
user "${cfg.user}"
group "${cfg.group}"
${if cfg.network.host != "any" then
"bind_to_address ${cfg.network.host}" else ""}
${if cfg.network.port != 6600 then
@ -40,8 +42,7 @@ in {
musicDirectory = mkOption {
default = "${cfg.dataDir}/music";
description = ''
Extra configuration added to the end of MPD's
configuration file, mpd.conf.
The directory where mpd reads music from.
'';
};
@ -62,6 +63,16 @@ in {
'';
};
user = mkOption {
default = "mpd";
description = "User account under which MPD runs.";
};
group = mkOption {
default = "mpd";
description = "Group account under which MPD runs.";
};
network = {
host = mkOption {
@ -96,7 +107,7 @@ in {
description = "Music Player Daemon";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.mpd ];
preStart = "mkdir -p ${cfg.dataDir} && chown -R mpd:mpd ${cfg.dataDir}";
preStart = "mkdir -p ${cfg.dataDir} && chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}";
script = "exec mpd --no-daemon ${mpdConf}";
serviceConfig = {
User = "mpd";
@ -104,16 +115,18 @@ in {
};
};
users.extraUsers.mpd = {
users.extraUsers = optionalAttrs (cfg.user == "mpd") (singleton {
inherit uid;
group = "mpd";
name = "mpd";
group = cfg.group;
extraGroups = [ "audio" ];
description = "Music Player Daemon user";
home = "${cfg.dataDir}";
};
users.extraGroups.mpd.gid = gid;
});
users.extraGroups = optionalAttrs (cfg.group == "mpd") (singleton {
gid = gid;
});
};
}

View file

@ -20,6 +20,8 @@ let
extraGroups = [ "nixbld" ];
};
nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
nixConf =
let
# If we're using a chroot for builds, then provide /bin/sh in
@ -357,7 +359,9 @@ in
nix.nrBuildUsers = mkDefault (lib.max 10 cfg.maxJobs);
users.extraUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
users.extraUsers = nixbldUsers;
services.xserver.displayManager.hiddenUsers = map ({ name, ... }: name) nixbldUsers;
system.activationScripts.nix = stringAfter [ "etc" "users" ]
''

View file

@ -27,7 +27,7 @@ let
[ global ]
security = ${cfg.securityType}
passwd program = /var/setuid-wrappers/passwd %u
pam password change = ${toString cfg.syncPasswordsByPam}
pam password change = ${if cfg.syncPasswordsByPam then "yes" else "no"}
invalid users = ${toString cfg.invalidUsers}
${cfg.extraConfig}

View file

@ -71,6 +71,13 @@ let
${coreutils}/bin/rm -f $tmp $tmp.ns
'';
# pre-up and pre-down hooks were added in NM 0.9.10, but we still use 0.9.0
dispatcherTypesSubdirMap = {
"basic" = "";
/*"pre-up" = "pre-up.d/";
"pre-down" = "pre-down.d/";*/
};
in {
###### interface
@ -118,6 +125,30 @@ in {
'';
};
dispatcherScripts = mkOption {
type = types.listOf (types.submodule {
options = {
source = mkOption {
type = types.str;
description = ''
A script source.
'';
};
type = mkOption {
type = types.enum (attrNames dispatcherTypesSubdirMap);
default = "basic";
description = ''
Dispatcher hook type. Only basic hooks are currently available.
'';
};
};
});
default = [];
description = ''
A list of scripts which will be executed in response to network events.
'';
};
};
};
@ -155,7 +186,11 @@ in {
] ++ optional (cfg.appendNameservers == [] || cfg.insertNameservers == [])
{ source = overrideNameserversScript;
target = "NetworkManager/dispatcher.d/02overridedns";
};
}
++ lib.imap (i: s: {
text = s.source;
target = "NetworkManager/dispatcher.d/${dispatcherTypesSubdirMap.${s.type}}03userscript${lib.fixedWidthNumber 4 i}";
}) cfg.dispatcherScripts;
environment.systemPackages = cfg.packages ++ [
networkmanager_openvpn

View file

@ -381,6 +381,8 @@ in
UsePAM yes
UsePrivilegeSeparation sandbox
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
${concatMapStrings (port: ''
Port ${toString port}

View file

@ -171,6 +171,9 @@ let
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!EXP
'';

View file

@ -208,6 +208,14 @@ in
description = "Shell commands executed just before the window or desktop manager is started.";
};
hiddenUsers = mkOption {
type = types.listOf types.str;
default = [ "nobody" ];
description = ''
A list of users which will not be shown in the display manager.
'';
};
desktopManagerHandlesLidAndPower = mkOption {
type = types.bool;
default = true;

View file

@ -95,15 +95,23 @@ in
auth required pam_succeed_if.so uid >= 1000 quiet
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
auth sufficient pam_unix.so nullok likeauth
auth required pam_deny.so
auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
${optionalString config.security.pam.enableEcryptfs
"auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
${optionalString (! config.security.pam.enableEcryptfs)
"auth required pam_deny.so"}
account sufficient pam_unix.so
password requisite pam_unix.so nullok sha512
${optionalString config.security.pam.enableEcryptfs
"password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
session required pam_env.so envfile=${config.system.build.pamEnvironment}
session required pam_unix.so
${optionalString config.security.pam.enableEcryptfs
"session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
session required pam_loginuid.so
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
@ -115,15 +123,22 @@ in
auth required pam_succeed_if.so uid >= 1000 quiet
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
auth sufficient pam_unix.so nullok likeauth
auth required pam_deny.so
auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
${optionalString config.security.pam.enableEcryptfs
"auth required ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so unwrap"}
${optionalString (! config.security.pam.enableEcryptfs)
"auth required pam_deny.so"}
account sufficient pam_unix.so
password requisite pam_unix.so nullok sha512
${optionalString config.security.pam.enableEcryptfs
"password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
session required pam_env.so envfile=${config.system.build.pamEnvironment}
session required pam_unix.so
${optionalString config.security.pam.enableEcryptfs
"session optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
session required pam_loginuid.so
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start

View file

@ -38,7 +38,7 @@ let
''}
[X-*-Greeter]
HiddenUsers=root,nixbld1,nixbld2,nixbld3,nixbld4,nixbld5,nixbld6,nixbld7,nixbld8,nixbld9,nixbld10
HiddenUsers=root,${concatStringsSep "," dmcfg.hiddenUsers}
PluginsLogin=${kdebase_workspace}/lib/kde4/kgreet_classic.so
${optionalString (cfg.themeDirectory != null)
''

View file

@ -50,6 +50,16 @@ let
'';
};
hiddenUsers = config.services.xserver.displayManager.hiddenUsers;
usersConf = writeText "users.conf"
''
[UserList]
minimum-uid=500
hidden-users=${concatStringsSep " " hiddenUsers}
hidden-shells=/run/current-system/sw/sbin/nologin
'';
lightdmConf = writeText "lightdm.conf"
''
[LightDM]
@ -84,6 +94,7 @@ in
package = wrappedGtkGreeter;
};
};
};
};
@ -97,10 +108,13 @@ in
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
execCmd = ''
export PATH=${lightdm}/sbin:$PATH
exec ${lightdm}/sbin/lightdm --log-dir=/var/log --run-dir=/run --config=${lightdmConf}
exec ${lightdm}/sbin/lightdm --log-dir=/var/log --run-dir=/run
'';
};
environment.etc."lightdm/lightdm.conf".source = lightdmConf;
environment.etc."lightdm/users.conf".source = usersConf;
services.dbus.enable = true;
services.dbus.packages = [ lightdm ];

View file

@ -9,19 +9,21 @@ use Cwd 'abs_path';
my $out = "@out@";
# To be robust against interruption, record what units need to be started etc.
my $startListFile = "/run/systemd/start-list";
my $restartListFile = "/run/systemd/restart-list";
my $reloadListFile = "/run/systemd/reload-list";
my $action = shift @ARGV;
if (!defined $action || ($action ne "switch" && $action ne "boot" && $action ne "test")) {
if (!defined $action || ($action ne "switch" && $action ne "boot" && $action ne "test" && $action ne "dry-activate")) {
print STDERR <<EOF;
Usage: $0 [switch|boot|test]
switch: make the configuration the boot default and activate now
boot: make the configuration the boot default
test: activate the configuration, but don\'t make it the boot default
switch: make the configuration the boot default and activate now
boot: make the configuration the boot default
test: activate the configuration, but don\'t make it the boot default
dry-activate: show what would be done if this configuration were activated
EOF
exit 1;
}
@ -56,8 +58,6 @@ EOF
exit 100;
}
syslog(LOG_NOTICE, "switching to system configuration $out");
# Ignore SIGHUP so that we're not killed if we're running on (say)
# virtual console 1 and we restart the "tty1" unit.
$SIG{PIPE} = "IGNORE";
@ -116,6 +116,11 @@ sub boolIsTrue {
return $s eq "yes" || $s eq "true";
}
sub recordUnit {
my ($fn, $unit) = @_;
write_file($fn, { append => 1 }, "$unit\n") if $action ne "dry-activate";
}
# As a fingerprint for determining whether a unit has changed, we use
# its absolute path. If it has an override file, we append *its*
# absolute path as well.
@ -124,9 +129,20 @@ sub fingerprintUnit {
return abs_path($s) . (-f "${s}.d/overrides.conf" ? " " . abs_path "${s}.d/overrides.conf" : "");
}
# Stop all services that no longer exist or have changed in the new
# configuration.
my (@unitsToStop, @unitsToSkip);
# Figure out what units need to be stopped, started, restarted or reloaded.
my (%unitsToStop, %unitsToSkip, %unitsToStart, %unitsToRestart, %unitsToReload);
my %unitsToFilter; # units not shown
$unitsToStart{$_} = 1 foreach
split('\n', read_file($startListFile, err_mode => 'quiet') // "");
$unitsToRestart{$_} = 1 foreach
split('\n', read_file($restartListFile, err_mode => 'quiet') // "");
$unitsToReload{$_} = 1 foreach
split '\n', read_file($reloadListFile, err_mode => 'quiet') // "";
my $activePrev = getActiveUnits;
while (my ($unit, $state) = each %{$activePrev}) {
my $baseUnit = $unit;
@ -141,7 +157,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
if (-e $prevUnitFile && ($state->{state} eq "active" || $state->{state} eq "activating")) {
if (! -e $newUnitFile || abs_path($newUnitFile) eq "/dev/null") {
push @unitsToStop, $unit;
$unitsToStop{$unit} = 1;
}
elsif ($unit =~ /\.target$/) {
@ -155,7 +171,10 @@ while (my ($unit, $state) = each %{$activePrev}) {
# should not be the case. Just ignore it.
if ($unit ne "suspend.target" && $unit ne "hibernate.target" && $unit ne "hybrid-sleep.target") {
unless (boolIsTrue($unitInfo->{'RefuseManualStart'} // "no")) {
write_file($startListFile, { append => 1 }, "$unit\n");
$unitsToStart{$unit} = 1;
recordUnit($startListFile, $unit);
# Don't spam the user with target units that always get started.
$unitsToFilter{$unit} = 1;
}
}
@ -171,7 +190,7 @@ while (my ($unit, $state) = each %{$activePrev}) {
# (unless there is a PartOf dependency), so this is just a
# bookkeeping thing to get systemd to do the right thing.
if (boolIsTrue($unitInfo->{'X-StopOnReconfiguration'} // "no")) {
push @unitsToStop, $unit;
$unitsToStop{$unit} = 1;
}
}
@ -180,16 +199,18 @@ while (my ($unit, $state) = each %{$activePrev}) {
# Do nothing. These cannot be restarted directly.
} elsif ($unit =~ /\.mount$/) {
# Reload the changed mount unit to force a remount.
write_file($reloadListFile, { append => 1 }, "$unit\n");
$unitsToReload{$unit} = 1;
recordUnit($reloadListFile, $unit);
} elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
# FIXME: do something?
} else {
my $unitInfo = parseUnit($newUnitFile);
if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
write_file($reloadListFile, { append => 1 }, "$unit\n");
$unitsToReload{$unit} = 1;
recordUnit($reloadListFile, $unit);
}
elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") ) {
push @unitsToSkip, $unit;
$unitsToSkip{$unit} = 1;
} else {
# If this unit is socket-activated, then stop the
# socket unit(s) as well, and restart the
@ -202,8 +223,9 @@ while (my ($unit, $state) = each %{$activePrev}) {
}
foreach my $socket (@sockets) {
if (defined $activePrev->{$socket}) {
push @unitsToStop, $socket;
write_file($startListFile, { append => 1 }, "$socket\n");
$unitsToStop{$unit} = 1;
$unitsToStart{$unit} = 1;
recordUnit($startListFile, $socket);
$socketActivated = 1;
}
}
@ -213,7 +235,8 @@ while (my ($unit, $state) = each %{$activePrev}) {
# This unit should be restarted instead of
# stopped and started.
write_file($restartListFile, { append => 1 }, "$unit\n");
$unitsToRestart{$unit} = 1;
recordUnit($restartListFile, $unit);
} else {
@ -222,10 +245,11 @@ while (my ($unit, $state) = each %{$activePrev}) {
# We write this to a file to ensure that the
# service gets restarted if we're interrupted.
if (!$socketActivated) {
write_file($startListFile, { append => 1 }, "$unit\n");
$unitsToStart{$unit} = 1;
recordUnit($startListFile, $unit);
}
push @unitsToStop, $unit;
$unitsToStop{$unit} = 1;
}
}
@ -268,14 +292,16 @@ foreach my $mountPoint (keys %$prevFss) {
my $unit = pathToUnitName($mountPoint) . ".mount";
if (!defined $new) {
# Filesystem entry disappeared, so unmount it.
push @unitsToStop, $unit;
$unitsToStop{$unit} = 1;
} elsif ($prev->{fsType} ne $new->{fsType} || $prev->{device} ne $new->{device}) {
# Filesystem type or device changed, so unmount and mount it.
write_file($startListFile, { append => 1 }, "$unit\n");
push @unitsToStop, $unit;
$unitsToStop{$unit} = 1;
$unitsToStart{$unit} = 1;
recordUnit($startListFile, $unit);
} elsif ($prev->{options} ne $new->{options}) {
# Mount options changes, so remount it.
write_file($reloadListFile, { append => 1 }, "$unit\n");
$unitsToReload{$unit} = 1;
recordUnit($reloadListFile, $unit);
}
}
@ -294,14 +320,51 @@ foreach my $device (keys %$prevSwaps) {
# FIXME: update swap options (i.e. its priority).
}
if (scalar @unitsToStop > 0) {
@unitsToStop = unique(@unitsToStop);
print STDERR "stopping the following units: ", join(", ", sort(@unitsToStop)), "\n";
system("systemctl", "stop", "--", @unitsToStop); # FIXME: ignore errors?
# Should we have systemd re-exec itself?
my $restartSystemd = abs_path("/proc/1/exe") ne abs_path("@systemd@/lib/systemd/systemd");
sub filterUnits {
my ($units) = @_;
my @res;
foreach my $unit (sort(keys %{$units})) {
push @res, $unit if !defined $unitsToFilter{$unit};
}
return @res;
}
print STDERR "NOT restarting the following units: ", join(", ", sort(@unitsToSkip)), "\n"
if scalar @unitsToSkip > 0;
my @unitsToStopFiltered = filterUnits(\%unitsToStop);
my @unitsToStartFiltered = filterUnits(\%unitsToStart);
# Show dry-run actions.
if ($action eq "dry-activate") {
print STDERR "would stop the following units: ", join(", ", @unitsToStopFiltered), "\n"
if scalar @unitsToStopFiltered > 0;
print STDERR "would NOT stop the following changed units: ", join(", ", sort(keys %unitsToSkip)), "\n"
if scalar(keys %unitsToSkip) > 0;
print STDERR "would restart systemd\n" if $restartSystemd;
print STDERR "would restart the following units: ", join(", ", sort(keys %unitsToRestart)), "\n"
if scalar(keys %unitsToRestart) > 0;
print STDERR "would start the following units: ", join(", ", @unitsToStartFiltered), "\n"
if scalar @unitsToStartFiltered;
print STDERR "would reload the following units: ", join(", ", sort(keys %unitsToReload)), "\n"
if scalar(keys %unitsToReload) > 0;
exit 0;
}
syslog(LOG_NOTICE, "switching to system configuration $out");
if (scalar (keys %unitsToStop) > 0) {
print STDERR "stopping the following units: ", join(", ", @unitsToStopFiltered), "\n"
if scalar @unitsToStopFiltered;
system("systemctl", "stop", "--", sort(keys %unitsToStop)); # FIXME: ignore errors?
}
print STDERR "NOT restarting the following changed units: ", join(", ", sort(keys %unitsToSkip)), "\n"
if scalar(keys %unitsToSkip) > 0;
# Activate the new configuration (i.e., update /etc, make accounts,
# and so on).
@ -310,7 +373,7 @@ print STDERR "activating the configuration...\n";
system("$out/activate", "$out") == 0 or $res = 2;
# Restart systemd if necessary.
if (abs_path("/proc/1/exe") ne abs_path("@systemd@/lib/systemd/systemd")) {
if ($restartSystemd) {
print STDERR "restarting systemd...\n";
system("@systemd@/bin/systemctl", "daemon-reexec") == 0 or $res = 2;
}
@ -327,10 +390,9 @@ system("@systemd@/bin/systemctl", "reload-or-restart", "dbus.service");
# Restart changed services (those that have to be restarted rather
# than stopped and started).
my @restart = unique(split('\n', read_file($restartListFile, err_mode => 'quiet') // ""));
if (scalar @restart > 0) {
print STDERR "restarting the following units: ", join(", ", sort(@restart)), "\n";
system("@systemd@/bin/systemctl", "restart", "--", @restart) == 0 or $res = 4;
if (scalar(keys %unitsToRestart) > 0) {
print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n";
system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4;
unlink($restartListFile);
}
@ -340,17 +402,16 @@ if (scalar @restart > 0) {
# that are symlinks to other units. We shouldn't start both at the
# same time because we'll get a "Failed to add path to set" error from
# systemd.
my @start = unique("default.target", "timers.target", "sockets.target", split('\n', read_file($startListFile, err_mode => 'quiet') // ""));
print STDERR "starting the following units: ", join(", ", sort(@start)), "\n";
system("@systemd@/bin/systemctl", "start", "--", @start) == 0 or $res = 4;
print STDERR "starting the following units: ", join(", ", @unitsToStartFiltered), "\n"
if scalar @unitsToStartFiltered;
system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
unlink($startListFile);
# Reload units that need it. This includes remounting changed mount
# units.
my @reload = unique(split '\n', read_file($reloadListFile, err_mode => 'quiet') // "");
if (scalar @reload > 0) {
print STDERR "reloading the following units: ", join(", ", sort(@reload)), "\n";
system("@systemd@/bin/systemctl", "reload", "--", @reload) == 0 or $res = 4;
if (scalar(keys %unitsToReload) > 0) {
print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n";
system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4;
unlink($reloadListFile);
}

View file

@ -177,20 +177,24 @@ fi
if test -e /sys/power/resume -a -e /sys/power/disk; then
if test -n "@resumeDevice@"; then
resumeDev="@resumeDevice@"
resumeInfo="$(udevadm info -q property "$resumeDev" )"
else
for sd in @resumeDevices@; do
# Try to detect resume device. According to Ubuntu bug:
# https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1
# When there are multiple swap devices, we can't know where will hibernate
# image reside. We can check all of them for swsuspend blkid.
if [ "$(udevadm info -q property "$sd" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then
resumeInfo="$(udevadm info -q property "$sd" )"
if [ "$(echo "$resumeInfo" | sed -n 's/^ID_FS_TYPE=//p')" = "swsuspend" ]; then
resumeDev="$sd"
break
fi
done
fi
if test -n "$resumeDev"; then
readlink -f "$resumeDev" > /sys/power/resume 2> /dev/null || echo "failed to resume..."
if test -e "$resumeDev"; then
resumeMajor="$(echo "$resumeInfo" | sed -n 's/^MAJOR=//p')"
resumeMinor="$(echo "$resumeInfo" | sed -n 's/^MINOR=//p')"
echo "$resumeMajor:$resumeMinor" > /sys/power/resume 2> /dev/null || echo "failed to resume..."
fi
fi

View file

@ -6,11 +6,11 @@ assert stdenv ? glibc;
stdenv.mkDerivation rec {
name = "yoshimi-${version}";
version = "1.3.2";
version = "1.3.3";
src = fetchurl {
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
sha256 = "0f4cwcmszvpga1gsfhhjcz7yb0h08v35wsv4ssmijh8gfp3mhjml";
sha256 = "0f37xjkay3800fbx0iwjca005b1hrjbhszrzn0xg662vf8mj44nv";
};
buildInputs = [

View file

@ -9,42 +9,44 @@
#ToDo: Failed to open sessions directory: Error opening directory '${lightdm}/share/lightdm/remote-sessions': No such file or directory
let
ver_branch = "1.6";
version = "1.6.1";
ver_branch = "2.0";
version = "2.0.0";
in
stdenv.mkDerivation rec {
name = "lightdm-gtk-greeter-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
sha256 = "1nb8ljrbrp1zga083g3b633xi3izxxm4jipw1qgial1x16mqc0hz";
sha256 = "1134q8qd7gr34jkivqxckdnwbpa8pl7dhjpdi9fci0pcs4hh22jc";
};
patches = [
./lightdm-gtk-greeter.patch
(fetchurl { # CVE-2014-0979, https://bugs.launchpad.net/lightdm-gtk-greeter/+bug/1266449
url = "https://launchpadlibrarian.net/161796033/07_fix-NULL-username.patch";
sha256 = "1sqkhsz1z10k6vlmlrqrfx452lznv30885fmnzc73p2zxdlw9q1a";
})
];
patchFlags = "-p1";
buildInputs = [ pkgconfig lightdm intltool makeWrapper ]
++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
buildInputs = [ pkgconfig lightdm intltool ]
++ (if useGTK2 then [ gtk2 makeWrapper ] else [ gtk3 ]);
configureFlags = [
"--localstatedir=/var"
"--sysconfdir=/etc"
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
configureFlags = stdenv.lib.optional useGTK2 "--with-gtk2";
installFlags = [ "DESTDIR=\${out}" ];
postInstall = ''
mv $out/$out/* $out
DIR=$out/$out
while rmdir $DIR 2>/dev/null; do
DIR="$(dirname "$DIR")"
done
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
'' + stdenv.lib.optionalString useGTK2 ''
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
'';
meta = {
meta = with stdenv.lib; {
homepage = http://launchpad.net/lightdm-gtk-greeter;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.ocharles ];
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ ocharles wkennington ];
};
}

View file

@ -1,13 +0,0 @@
diff --git a/src/lightdm-gtk-greeter.c b/src/lightdm-gtk-greeter.c
index cc5f9e1..d615dc1 100644
--- a/src/lightdm-gtk-greeter.c
+++ b/src/lightdm-gtk-greeter.c
@@ -1716,7 +1716,7 @@ main (int argc, char **argv)
gtk_container_add (GTK_CONTAINER (menuitem), image);
gtk_widget_show (GTK_WIDGET (menuitem));
- items = lightdm_get_sessions ();
+ items = lightdm_get_sessions (greeter);
GSList *sessions = NULL;
for (item = items; item; item = item->next)
{

View file

@ -1,32 +1,47 @@
{ stdenv, fetchurl, pam, pkgconfig, libxcb, glib, libXdmcp, itstool, libxml2
, intltool, x11, libxklavier, libgcrypt, dbus/*for tests*/ }:
, intltool, x11, libxklavier, libgcrypt
, qt4 ? null, qt5 ? null
}:
let
ver_branch = "1.8";
version = "1.8.6";
ver_branch = "1.13";
version = "1.13.1";
in
stdenv.mkDerivation rec {
name = "lightdm-${version}";
src = fetchurl {
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
sha256 = "17ivc0c4dbnc0fzd581j53cn6hdav34zz2hswjzy8aczbpk605qi";
sha256 = "0xa23maq6phkfil8xx26viig2m99sbzcf1w7s56hns2qw6pycn79";
};
patches = [ ./lightdm.patch ];
patchFlags = "-p1";
buildInputs = [
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
] ++ stdenv.lib.optional doCheck dbus.daemon;
qt4 qt5
];
configureFlags = [ "--enable-liblightdm-gobject" "--localstatedir=/var" ];
configureFlags = [
"--enable-liblightdm-gobject"
"--localstatedir=/var"
"--sysconfdir=/etc"
] ++ stdenv.lib.optional (qt4 != null) "--enable-liblightdm-qt"
++ stdenv.lib.optional (qt5 != null) "--enable-liblightdm-qt5";
doCheck = false; # some tests fail, don't know why
installFlags = [ "DESTDIR=\${out}" ];
meta = {
# Correct for the nested nix folder tree
postInstall = ''
mv $out/$out/* $out
DIR=$out/$out
while rmdir $DIR 2>/dev/null; do
DIR="$(dirname "$DIR")"
done
'';
meta = with stdenv.lib; {
homepage = http://launchpad.net/lightdm;
platforms = stdenv.lib.platforms.linux;
maintainers = [ stdenv.lib.maintainers.ocharles ];
platforms = platforms.linux;
license = licenses.gpl3;
maintainers = with maintainers; [ ocharles wkennington ];
};
}

View file

@ -1,144 +0,0 @@
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 9387118..635cea0 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -567,6 +567,21 @@ lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter)
}
/**
+ * lightdm_greeter_get_config_path
+ * @greeter: A #LightDMGreeter
+ *
+ * Get the config path to LightDM.
+ *
+ * Return value: The path to the current LightDM configuration file.
+ **/
+const gchar *
+lightdm_greeter_get_config_path (LightDMGreeter *greeter)
+{
+ g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
+ return lightdm_greeter_get_hint (greeter, "config-path");
+}
+
+/**
* lightdm_greeter_get_hide_users_hint:
* @greeter: A #LightDMGreeter
*
diff --git a/liblightdm-gobject/lightdm/greeter.h b/liblightdm-gobject/lightdm/greeter.h
index 7d8988f..2b54909 100644
--- a/liblightdm-gobject/lightdm/greeter.h
+++ b/liblightdm-gobject/lightdm/greeter.h
@@ -93,6 +93,8 @@ gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter);
const gchar *lightdm_greeter_get_autologin_user_hint (LightDMGreeter *greeter);
+const gchar *lightdm_greeter_get_config_path (LightDMGreeter *greeter);
+
gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter);
gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter);
diff --git a/liblightdm-gobject/lightdm/session.h b/liblightdm-gobject/lightdm/session.h
index 13ddcd9..cdb2fd6 100644
--- a/liblightdm-gobject/lightdm/session.h
+++ b/liblightdm-gobject/lightdm/session.h
@@ -12,6 +12,7 @@
#define LIGHTDM_SESSION_H_
#include <glib-object.h>
+#include "greeter.h"
G_BEGIN_DECLS
@@ -42,9 +43,9 @@ typedef struct
GType lightdm_session_get_type (void);
-GList *lightdm_get_sessions (void);
+GList *lightdm_get_sessions (LightDMGreeter *greeter);
-GList *lightdm_get_remote_sessions (void);
+GList *lightdm_get_remote_sessions (LightDMGreeter *greeter);
const gchar *lightdm_session_get_key (LightDMSession *session);
diff --git a/liblightdm-gobject/session.c b/liblightdm-gobject/session.c
index 949778f..db5e18a 100644
--- a/liblightdm-gobject/session.c
+++ b/liblightdm-gobject/session.c
@@ -11,6 +11,7 @@
#include <string.h>
#include <gio/gdesktopappinfo.h>
+#include "lightdm/greeter.h"
#include "lightdm/session.h"
enum {
@@ -189,7 +190,7 @@ load_sessions (const gchar *sessions_dir)
}
static void
-update_sessions (void)
+update_sessions (LightDMGreeter *greeter)
{
GKeyFile *config_key_file = NULL;
gchar *config_path = NULL;
@@ -205,8 +206,7 @@ update_sessions (void)
remote_sessions_dir = g_strdup (REMOTE_SESSIONS_DIR);
/* Use session directory from configuration */
- /* FIXME: This should be sent in the greeter connection */
- config_path = g_build_filename (CONFIG_DIR, "lightdm.conf", NULL);
+ config_path = g_strdup (lightdm_greeter_get_config_path (greeter));
config_key_file = g_key_file_new ();
result = g_key_file_load_from_file (config_key_file, config_path, G_KEY_FILE_NONE, &error);
if (error && !g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT))
@@ -250,9 +250,9 @@ update_sessions (void)
* Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession
**/
GList *
-lightdm_get_sessions (void)
+lightdm_get_sessions (LightDMGreeter *greeter)
{
- update_sessions ();
+ update_sessions (greeter);
return local_sessions;
}
@@ -264,9 +264,9 @@ lightdm_get_sessions (void)
* Return value: (element-type LightDMSession) (transfer none): A list of #LightDMSession
**/
GList *
-lightdm_get_remote_sessions (void)
+lightdm_get_remote_sessions (LightDMGreeter *greeter)
{
- update_sessions ();
+ update_sessions (greeter);
return remote_sessions;
}
diff --git a/src/lightdm.c b/src/lightdm.c
index 7d35034..910164c 100644
--- a/src/lightdm.c
+++ b/src/lightdm.c
@@ -1142,6 +1142,9 @@ main (int argc, char **argv)
}
}
g_clear_error (&error);
+
+ config_set_string (config_get_instance (), "SeatDefaults", "config-path", config_path);
+
g_free (config_path);
/* Set default values */
diff --git a/src/seat.c b/src/seat.c
index e2b9c2c..a950ea2 100644
--- a/src/seat.c
+++ b/src/seat.c
@@ -1137,6 +1137,7 @@ create_greeter_session (Seat *seat)
greeter_set_hint (greeter_session, "show-manual-login", seat_get_boolean_property (seat, "greeter-show-manual-login") ? "true" : "false");
greeter_set_hint (greeter_session, "show-remote-login", seat_get_boolean_property (seat, "greeter-show-remote-login") ? "true" : "false");
greeter_set_hint (greeter_session, "has-guest-account", seat_get_allow_guest (seat) && seat_get_boolean_property (seat, "greeter-allow-guest") ? "true" : "false");
+ greeter_set_hint (greeter_session, "config-path", seat_get_string_property (seat, "config-path"));
g_object_unref (session_config);

View file

@ -44,16 +44,8 @@ stdenv.mkDerivation rec {
"-I${cairo}/include/cairo";
postInstall = ''
cat >$out/share/emacs/site-lisp/site-start.el <<EOF
;; nixos specific load-path
(when (getenv "NIX_PROFILES") (setq load-path
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
(split-string (getenv "NIX_PROFILES"))))
load-path)))
;; make tramp work for NixOS machines
(eval-after-load 'tramp '(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))
EOF
mkdir -p $out/share/emacs/site-lisp/
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
'';
doCheck = true;

View file

@ -0,0 +1,17 @@
;; NixOS specific load-path
(setq load-path
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
(split-string (or (getenv "NIX_PROFILES") ""))))
load-path))
;;; Make `woman' find the man pages
(eval-after-load 'woman
'(setq woman-manpath
(append (reverse (mapcar (lambda (x) (concat x "/share/man/"))
(split-string (or (getenv "NIX_PROFILES") ""))))
woman-manpath)))
;; Make tramp work for remote NixOS machines
;;; NOTE: You might want to add
(eval-after-load 'tramp
'(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))

View file

@ -0,0 +1,44 @@
{ stdenv, fetchurl, swt, jdk, makeWrapper, alsaLib }:
let metadata = if stdenv.system == "i686-linux"
then { arch = "x86"; sha256 = "1qmb51k0538pn7gv4nsvhfv33xik4l4af0qmpllkzrikmj8wvzlb"; }
else if stdenv.system == "x86_64-linux"
then { arch = "x86_64"; sha256 = "12af47jhlrh9aq5b3d13l7cdhlndgnfpy61gz002hajbq7i00ixh"; }
else { };
in stdenv.mkDerivation rec {
version = "1.2";
name = "tuxguitar-${version}";
src = fetchurl {
url = "mirror://sourceforge/tuxguitar/${name}-linux-${metadata.arch}.tar.gz";
sha256 = metadata.sha256;
};
buildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin
cp -r lib share $out/
cp tuxguitar $out/bin/tuxguitar
cp tuxguitar.jar $out/lib
ln -s $out/share $out/bin/share
wrapProgram $out/bin/tuxguitar \
--set JAVA "${jdk}/bin/java" \
--prefix LD_LIBRARY_PATH : "$out/lib/:${swt}/lib:${alsaLib}/lib" \
--prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
'';
meta = with stdenv.lib; {
description = "A multitrack guitar tablature editor";
longDescription = ''
TuxGuitar is a multitrack guitar tablature editor and player written
in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
'';
homepage = http://www.tuxguitar.com.ar/;
license = licenses.lgpl2;
maintainers = [ maintainers.ardumont ];
platforms = platforms.linux;
};
}

View file

@ -9,12 +9,12 @@
assert stdenv ? glibc;
stdenv.mkDerivation rec {
version = "1.6.2";
version = "1.6.3";
name = "darktable-${version}";
src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "1gf5pl4fhak1aqx3dgg0491zgsl6qr6kgyl034hnk4fzwn65zvk6";
sha256 = "13gj5z9dz1847wlbn2cqpkvr64ds8yrn5hacs5wvbqmh0z9v6aw5";
};
buildInputs =

View file

@ -1,14 +1,14 @@
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
let
py = python27Packages;
version = "14.12.1";
version = "15.02.1";
in
stdenv.mkDerivation rec {
name = "cura-${version}";
src = fetchurl {
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
sha256 = "1sybsa84qznlzcgn18p70gh1v60npwfca5yn80h35msxrnh8gbp5";
sha256 = "18pb31vd9786q522i1i780wpzr6vih9gg9d8k508gh2d5yr4aal6";
};
desktopItem = makeDesktopItem {

View file

@ -1,13 +1,13 @@
{ stdenv, fetchurl }:
let
version = "14.12.1";
version = "15.02.1";
in
stdenv.mkDerivation {
name = "curaengine-${version}";
src = fetchurl {
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
sha256 = "1cfns71mjndy2dlmccmjx8ldd0p5v88sqg0jg6ak5c864cvgbjdr";
sha256 = "18fxh910b66s45757zqh8bm5kdxjgvxispjqknqkwl1nrllzmx53";
};
installPhase = ''

View file

@ -0,0 +1,25 @@
{ stdenv, fetchurl, readline, ncurses }:
let
version = "1.16";
in
stdenv.mkDerivation rec {
name = "hstr-${version}";
src = fetchurl {
url = "https://github.com/dvorka/hstr/releases/download/${version}/hh-${version}-src.tgz";
sha256 = "1hl3fn6kravx5gsdsr0l824vnkj5aiz0dybhd3ak932v95b5knyg";
};
buildInputs = [ readline ncurses ];
meta = {
homepage = "https://github.com/dvorka/hstr";
description = "Shell history suggest box - easily view, navigate, search and use your command history";
license = stdenv.lib.licenses.asl20;
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
platforms = with stdenv.lib.platforms; linux; # Cannot test others
};
}

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, kdelibs, gettext, xf86_input_wacom }:
stdenv.mkDerivation rec {
name = "wacomtablet-2.0.2";
name = "wacomtablet-2.1.0";
src = fetchurl {
url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-2.0.2.tar.xz";
sha256 = "13k5f5xpka5cbgl24a3j9khqcmp96x1vhynn9v558ag6dg9ch2hw";
url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-2.1.0.tar.xz";
sha256 = "17n1p5v2yx517hkqd13pyl3wnrdnh6pfzwf2y2csrfckyndhwk8w";
};
buildInputs = [ kdelibs xf86_input_wacom ];

View file

@ -11,11 +11,11 @@ let
in nodePackages.buildNodePackage rec {
name = "keybase-node-client-${version}";
version = "0.7.0";
version = "0.7.7";
src = [(fetchurl {
url = "https://github.com/keybase/node-client/archive/v${version}.tar.gz";
sha256 = "0n73v4f61rq2dvy2yd3s4l8qvvjzp3ncqj70llm4i6cvbp9kym1v";
sha256 = "1p2plxz4lf5pbrvl5sql00lk459lnxcz7cxc4cdhfzc6h4ql425f";
})];
deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,34 @@
{ stdenv, fetchurl, pkgs, pythonPackages }:
pythonPackages.buildPythonPackage rec {
version = "0.4.0";
name = "khal-${version}";
src = fetchurl {
url = "https://github.com/geier/khal/archive/v${version}.tar.gz";
sha256 = "0d32miq55cly4q3raxkw3xpq4d5y3hvzaqvy066nv35bdlpafxi1";
};
propagatedBuildInputs = with pythonPackages; [
atomicwrites
click
configobj
dateutil
icalendar
lxml
pkgs.vdirsyncer
pytz
pyxdg
requests_toolbelt
tzlocal
urwid
];
meta = {
homepage = http://lostpackets.de/khal/;
description = "CLI calendar application";
license = stdenv.lib.licenses.mit;
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
};
}

View file

@ -5,10 +5,10 @@ let
s = # Generated upstream information
rec {
baseName="qpdfview";
version = "0.4.14beta1";
version = "0.4.14";
name="${baseName}-${version}";
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
sha256 = "0ly0xqpgmd1ccsyqs6z0i3w1g4y3ichmibd809bjy344h6fb0m3b";
sha256 = "15d88xzqvrcp9szmz8d1lj65yrdx90j6fp78gia5c8kra2z8bik9";
};
buildInputs = [
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript

View file

@ -4,185 +4,185 @@
# ruby generate_source.rb > source.nix
{
version = "36.0";
version = "36.0.1";
sources = [
{ locale = "ach"; arch = "linux-i686"; sha1 = "089dff0a3623feee0379832ccde522f86fdc448c"; }
{ locale = "ach"; arch = "linux-x86_64"; sha1 = "ac2ed6ffa8d27ecd978950220288e14c500aefbe"; }
{ locale = "af"; arch = "linux-i686"; sha1 = "e8d44633f01dffe46e8b1278ddb274eefee556a4"; }
{ locale = "af"; arch = "linux-x86_64"; sha1 = "f7d364cf00f0058e55e193cc907fd4996f96043b"; }
{ locale = "an"; arch = "linux-i686"; sha1 = "85c2b67d8d963d9421559807b8dfb36baa976029"; }
{ locale = "an"; arch = "linux-x86_64"; sha1 = "182b4feeb5c24921c4074ee560e1d2619bc28a25"; }
{ locale = "ar"; arch = "linux-i686"; sha1 = "a18be34551fa3352a30cc927746806ea3d0401ed"; }
{ locale = "ar"; arch = "linux-x86_64"; sha1 = "be45f1db3b2f6128a35313aac0738eb6f3ed53f2"; }
{ locale = "as"; arch = "linux-i686"; sha1 = "44e5cf86e6318d2c25fa4f9dd9c0bfaf273f6749"; }
{ locale = "as"; arch = "linux-x86_64"; sha1 = "da9d1e7e3e8ed4dbc935ece517e55ae456930e52"; }
{ locale = "ast"; arch = "linux-i686"; sha1 = "c23f59e3452f7393554491a930626495e9855855"; }
{ locale = "ast"; arch = "linux-x86_64"; sha1 = "fd2f6ce7d12a7c53fe9d9c11336b88c405859206"; }
{ locale = "az"; arch = "linux-i686"; sha1 = "5b92332c155a95b8638506ac1c3dd78e19e277e4"; }
{ locale = "az"; arch = "linux-x86_64"; sha1 = "5d148d13421bacb3d430e317a41253a0999ed55f"; }
{ locale = "be"; arch = "linux-i686"; sha1 = "36cfbc4b84a374535cde94643bbdacea3e141c60"; }
{ locale = "be"; arch = "linux-x86_64"; sha1 = "0c0ea9dec82efd7baf2c2b382c0ab67d22f7b252"; }
{ locale = "bg"; arch = "linux-i686"; sha1 = "80e0068890e6b422f392924f4e317c6d2058695e"; }
{ locale = "bg"; arch = "linux-x86_64"; sha1 = "b4f3fa93b7d793560627ec4d51c138d013dd6c00"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha1 = "14f5d14a135fc929ee670078e50567b5461ece8a"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "95f561f92166d9db64ba5e36edaa14d7b4f989a3"; }
{ locale = "bn-IN"; arch = "linux-i686"; sha1 = "07b00a5d4b83d8d0e451ba08325fb44c784453f6"; }
{ locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "a96e0bafbf811c5bd57fb3e8164e38365386e460"; }
{ locale = "br"; arch = "linux-i686"; sha1 = "ee51d5b01c4489e5802c130748ee16b0a803dcb9"; }
{ locale = "br"; arch = "linux-x86_64"; sha1 = "0cff437fe8c29705ec9d800d95329309eed540f4"; }
{ locale = "bs"; arch = "linux-i686"; sha1 = "0d7aef80272ca1de27560b7fe4f8ec892d386b6d"; }
{ locale = "bs"; arch = "linux-x86_64"; sha1 = "b62a905e9e992e3765cf196a18d50f533e2dd69f"; }
{ locale = "ca"; arch = "linux-i686"; sha1 = "82316407a9745d4dc56d961f5f2282c702950fe2"; }
{ locale = "ca"; arch = "linux-x86_64"; sha1 = "69ae06e06a90a28eb66db4d0df2fdbb5397abc24"; }
{ locale = "cs"; arch = "linux-i686"; sha1 = "c55e80b3d74f6dd494fe1c327053f59bef1c626a"; }
{ locale = "cs"; arch = "linux-x86_64"; sha1 = "932f6a15f1445d180df01195c19677cbe63fd18f"; }
{ locale = "cy"; arch = "linux-i686"; sha1 = "abe63dfde0487c77fa9b3b9c77fcffe0f977b25b"; }
{ locale = "cy"; arch = "linux-x86_64"; sha1 = "89eeb72232affbd54eff30f4c9844f802c0cf243"; }
{ locale = "da"; arch = "linux-i686"; sha1 = "57232745fa920525721ec6e9b3c3177862b5e096"; }
{ locale = "da"; arch = "linux-x86_64"; sha1 = "2ba7156b5728f17ab1e55b27ee771722a9171cf1"; }
{ locale = "de"; arch = "linux-i686"; sha1 = "17fd4dd5e4b2ea39ed20a6d890ea5927532abd38"; }
{ locale = "de"; arch = "linux-x86_64"; sha1 = "58c72ef01098523392f63209057373b9e793ebb8"; }
{ locale = "dsb"; arch = "linux-i686"; sha1 = "a3296dd541362c4ca3ce8734faa33512a0fff4fc"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha1 = "c5c7bf61d4923ec9937afa6d261c7f0af64e468f"; }
{ locale = "el"; arch = "linux-i686"; sha1 = "be04c1f884f3f0d68fa5c421eb2c8b850bef2a44"; }
{ locale = "el"; arch = "linux-x86_64"; sha1 = "33ffdffb657a379f2bdb3b39bacc60d59ae9b945"; }
{ locale = "en-GB"; arch = "linux-i686"; sha1 = "16e2c1cda685b132b0d9378fd5ac22b0e07da320"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha1 = "89e552187c98fccc6b2270080c530bf7edf3471f"; }
{ locale = "en-US"; arch = "linux-i686"; sha1 = "42be4a279ef164a43908a0896cacec6a96b2c23e"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha1 = "2a9aab1149b2bf59c2b687cb80a6fa550aa263be"; }
{ locale = "en-ZA"; arch = "linux-i686"; sha1 = "92f42855948bd262266f6239a7f989848703a85f"; }
{ locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "95250cced67fb3a8eab40bc8db6d70b4efa610c9"; }
{ locale = "eo"; arch = "linux-i686"; sha1 = "6564b701a3face85aa53ab80024145b58d653ec5"; }
{ locale = "eo"; arch = "linux-x86_64"; sha1 = "eaa3337fbca2b182981cae1423357c537a5cc33f"; }
{ locale = "es-AR"; arch = "linux-i686"; sha1 = "05cebf2df8c58c03934340b9d56a1a09e0af9ffc"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha1 = "d8660257e51bf94c864b27cbbfa2e3ef98ef66f8"; }
{ locale = "es-CL"; arch = "linux-i686"; sha1 = "827deacb3439086c263e8a3f168700e510e0158c"; }
{ locale = "es-CL"; arch = "linux-x86_64"; sha1 = "b905a1b57ccacb8aec34f47126c26ce435edd2d9"; }
{ locale = "es-ES"; arch = "linux-i686"; sha1 = "189f5230874080d982a23725cafba889db016194"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha1 = "66f416faac68c156d0c2773a47cc2014ab51b0d1"; }
{ locale = "es-MX"; arch = "linux-i686"; sha1 = "1bd21f64057f4ad4e74a2f6ef7c054f0662f95bb"; }
{ locale = "es-MX"; arch = "linux-x86_64"; sha1 = "0bdedcd03eae8fbde6fec2f35a7c1c0d2140f0ff"; }
{ locale = "et"; arch = "linux-i686"; sha1 = "d4a96b30b8f084a6b2d8e58db8e7398db0738606"; }
{ locale = "et"; arch = "linux-x86_64"; sha1 = "30de382a9941c4f8857938c37e491ec1a2ebfc27"; }
{ locale = "eu"; arch = "linux-i686"; sha1 = "f43ef29288e5129b8335601ea2f45ee9b94c1b82"; }
{ locale = "eu"; arch = "linux-x86_64"; sha1 = "cfd741f43b86a1f0a62df2c44898289cd86c2936"; }
{ locale = "fa"; arch = "linux-i686"; sha1 = "02f264a1e2c6dff8d1c1dc70f9af305fa9156c01"; }
{ locale = "fa"; arch = "linux-x86_64"; sha1 = "290d8a53538fe75d1e1d36407c7efa5f56569787"; }
{ locale = "ff"; arch = "linux-i686"; sha1 = "bcfd312781f308de7550a8f12609230c48c353b2"; }
{ locale = "ff"; arch = "linux-x86_64"; sha1 = "eddd9175de24bc429c04be01e4af6af6f7003065"; }
{ locale = "fi"; arch = "linux-i686"; sha1 = "3cf088f03c3003f1888645b06311e7f46007df83"; }
{ locale = "fi"; arch = "linux-x86_64"; sha1 = "a01a6fd604471cbd69c5046ec5e13f01ca63457a"; }
{ locale = "fr"; arch = "linux-i686"; sha1 = "e8e3caf2ceef2ae8a645806731bf99572244fb24"; }
{ locale = "fr"; arch = "linux-x86_64"; sha1 = "753a4bab9ce3016e773d4afa7ad9d14f7746cf4e"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha1 = "d0b3719b07b2c3fbe9c05ba30012331641c09d2b"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "9e8ccf90e0687aa112d48f0faeffdee58f41ea95"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha1 = "a3fbc0aaf36e444ea10c4b0593ad3ec07e100147"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "ed1e7b3c62dbb97bfef8b6512b8032b7bd8d2c9e"; }
{ locale = "gd"; arch = "linux-i686"; sha1 = "49fc536511bdaa096086408385ae70cace64fb0b"; }
{ locale = "gd"; arch = "linux-x86_64"; sha1 = "67de65f4ae8accda417cd8fc9082160a4a46cc06"; }
{ locale = "gl"; arch = "linux-i686"; sha1 = "dd239f26f4d758294ce21dc1ffebe9e02584e05d"; }
{ locale = "gl"; arch = "linux-x86_64"; sha1 = "1b9d06b047de0c66485f2c7b642b6edddd7dacc3"; }
{ locale = "gu-IN"; arch = "linux-i686"; sha1 = "a191408d96e73da4ecda1faa2510dec307a3442b"; }
{ locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "5bf621a4fe1a625b70df63b53930a3a5ee922405"; }
{ locale = "he"; arch = "linux-i686"; sha1 = "95b84a18316a74e8fcd7d16fd6e9c1fea6778510"; }
{ locale = "he"; arch = "linux-x86_64"; sha1 = "548545c4d46c296aa9d922ee5a14312a9677822c"; }
{ locale = "hi-IN"; arch = "linux-i686"; sha1 = "5a5e53167fe9050bc9482d61d17f6808cc655407"; }
{ locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "36e3df183cf2b5b645cb2d89b90b640b7f3697f2"; }
{ locale = "hr"; arch = "linux-i686"; sha1 = "fa1a4482857b788c49d04f6a5c3eeada25c2ac52"; }
{ locale = "hr"; arch = "linux-x86_64"; sha1 = "e641cf2b562c6b391e24601d4f3ceefb7117d02a"; }
{ locale = "hsb"; arch = "linux-i686"; sha1 = "b1fc4cad22c66824297aec7c82053d1f7611f108"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha1 = "1c2db6cf0a14002ad4c473ab1ff1fcd7f4543ca4"; }
{ locale = "hu"; arch = "linux-i686"; sha1 = "4c5a90ed0cb4d6930a3eab0a2ec216805d680895"; }
{ locale = "hu"; arch = "linux-x86_64"; sha1 = "c71c7e68c493bd9ecb407f32c8896b41ecfe95d5"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha1 = "01536fa2739a9dd68e713f4e4e41dac5f2b58422"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "b19d7fab445ed314ca8076d0b837c0e15407649d"; }
{ locale = "id"; arch = "linux-i686"; sha1 = "163e7a14d274a10780a18201afa7dfae27bf5967"; }
{ locale = "id"; arch = "linux-x86_64"; sha1 = "d1108b006c607f470543915d8956394a1b767c27"; }
{ locale = "is"; arch = "linux-i686"; sha1 = "5460b7445462f786f138a755615f3970fbdc7274"; }
{ locale = "is"; arch = "linux-x86_64"; sha1 = "e5ec0cff0f1c88f0b2a4444ef9d71bbeb3541772"; }
{ locale = "it"; arch = "linux-i686"; sha1 = "39cab2de100e4a1a2783659cab5c7247e230aa11"; }
{ locale = "it"; arch = "linux-x86_64"; sha1 = "b21a1d214bddd8f074d0d0a06d64c4aa35580c68"; }
{ locale = "ja"; arch = "linux-i686"; sha1 = "b78dd34339c68348de753c66d6e12a78748aa261"; }
{ locale = "ja"; arch = "linux-x86_64"; sha1 = "e4a1720278debf305c3f353bbafe35384b72bd61"; }
{ locale = "kk"; arch = "linux-i686"; sha1 = "371dc2118f8917d2fb904d07e23214728db13118"; }
{ locale = "kk"; arch = "linux-x86_64"; sha1 = "e4a4742b0f2efbb2491b501147bb1115f64b081d"; }
{ locale = "km"; arch = "linux-i686"; sha1 = "4ad8c7a8821043a635e78f41f6da4ab6ffb334c2"; }
{ locale = "km"; arch = "linux-x86_64"; sha1 = "0f4685c194054dccaac5aec9fd27f6c74ed82148"; }
{ locale = "kn"; arch = "linux-i686"; sha1 = "427b395693c8ce5d1f970f2c3a47d097785dcdea"; }
{ locale = "kn"; arch = "linux-x86_64"; sha1 = "15e28abebde39ebafe916523b658463087be73db"; }
{ locale = "ko"; arch = "linux-i686"; sha1 = "919862720789c005e1773b4da3427fa56c3d0528"; }
{ locale = "ko"; arch = "linux-x86_64"; sha1 = "aa38b625f9bab73669919c0ad36221f7c887186e"; }
{ locale = "lij"; arch = "linux-i686"; sha1 = "abc21985aa1de2fa256283f03fd3b98e147ccd3a"; }
{ locale = "lij"; arch = "linux-x86_64"; sha1 = "8b811ce3fe2528d33a0f00a7c3292b9cb37eb1b1"; }
{ locale = "lt"; arch = "linux-i686"; sha1 = "601dd265370ee7514a2cdf6739bfbd3d59d450d6"; }
{ locale = "lt"; arch = "linux-x86_64"; sha1 = "c13736cb853a35f1b6583d89b9ded90302acb637"; }
{ locale = "lv"; arch = "linux-i686"; sha1 = "09910ed1364063efc07e24a78224d1fc93b2196b"; }
{ locale = "lv"; arch = "linux-x86_64"; sha1 = "0a6132a1080e084c9e4a691bce7e12459cec817b"; }
{ locale = "mai"; arch = "linux-i686"; sha1 = "262c75582645c2ee1c92552263aab7fe35483bc3"; }
{ locale = "mai"; arch = "linux-x86_64"; sha1 = "d76755153a0656c2fd17db53c40f493a0f0dcab6"; }
{ locale = "mk"; arch = "linux-i686"; sha1 = "787ec5a7ccf9b9bd116917de752e9b411e37fe5f"; }
{ locale = "mk"; arch = "linux-x86_64"; sha1 = "2de12f1514a47f8c0ee8a166c7c6d68d8c966824"; }
{ locale = "ml"; arch = "linux-i686"; sha1 = "807bea1339fa44c2f1d9af264539d1f550235e62"; }
{ locale = "ml"; arch = "linux-x86_64"; sha1 = "aeca07821afbfc0ec1763fd30da7098e27f11b19"; }
{ locale = "mr"; arch = "linux-i686"; sha1 = "d431e48ecec721b996ab6f63b99ada14ac8bbbe5"; }
{ locale = "mr"; arch = "linux-x86_64"; sha1 = "fb60740faf4aa2d98821c77b28be29f456707d37"; }
{ locale = "ms"; arch = "linux-i686"; sha1 = "5ef013dd820a0c945cea2f131573ffbac5693391"; }
{ locale = "ms"; arch = "linux-x86_64"; sha1 = "c6d211c224711eb33b8ce55605e140cc09492bd1"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha1 = "6678b16af728fe90c7b58d9e5e0a3aa01ca40ca1"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "2c77fe81d3723a9be4926bbfcfb904edc928649a"; }
{ locale = "nl"; arch = "linux-i686"; sha1 = "45ee40efa93fc973e8c8d5f70f5155132f5a073b"; }
{ locale = "nl"; arch = "linux-x86_64"; sha1 = "29f74d404f90711974187120f8589c18125dba1e"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha1 = "162d5e2270488d40a60cb3c1e07aded76a82ba1d"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "40af304764aa36609e3969bde13ace2745bf43d8"; }
{ locale = "or"; arch = "linux-i686"; sha1 = "721e06a231398af851bbaef046b69349b9c42e9f"; }
{ locale = "or"; arch = "linux-x86_64"; sha1 = "925cb0a0bf1544b4a95abd3bf1e6bf14017b7c89"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha1 = "37f8b5ac56fcbda135b2ec5fd9ca7bfdb70d496e"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "fabd53bf219b5c4e8b7f70e7ce82ab85609fcc01"; }
{ locale = "pl"; arch = "linux-i686"; sha1 = "773977cbd1146de1699b7c25b7a382bec8d0f55c"; }
{ locale = "pl"; arch = "linux-x86_64"; sha1 = "b3e5db98279b7425e5a1027bdfbddf8b2ba316ae"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha1 = "fea58817e88b9e1709f1661a6465ff60e4463793"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "4e05bcc1f9dc58b6fa02aaafbfab67d185d12521"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha1 = "1fd067546d5d203ef201691205244ce7bd0dd96c"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "b53ae8e66d220c5a66cbd32c8762eb6a13634297"; }
{ locale = "rm"; arch = "linux-i686"; sha1 = "edc6d8dc42d7d7ee6ea6e781bcfb346ae8d7f006"; }
{ locale = "rm"; arch = "linux-x86_64"; sha1 = "12fd2cb3ac781490c433003b743055a67348ef04"; }
{ locale = "ro"; arch = "linux-i686"; sha1 = "87b92ed3e53f7fbed86ff1e4c6143de3c52b2f87"; }
{ locale = "ro"; arch = "linux-x86_64"; sha1 = "be0daa8a275ca40a8be609d24290a35a74b3ee36"; }
{ locale = "ru"; arch = "linux-i686"; sha1 = "827b057a99f1c56f4a66f1f9e8e5de2a45f68471"; }
{ locale = "ru"; arch = "linux-x86_64"; sha1 = "3f390efc29e49aae39d0030880a3b26cf8cd6318"; }
{ locale = "si"; arch = "linux-i686"; sha1 = "7094d0d07dceae2e5a164d585e04799fd9a86a8b"; }
{ locale = "si"; arch = "linux-x86_64"; sha1 = "7a852dc124c1f207610aaf884119ae8804caaa41"; }
{ locale = "sk"; arch = "linux-i686"; sha1 = "2439f765924307b9d2d00ce32c13384839e39d5c"; }
{ locale = "sk"; arch = "linux-x86_64"; sha1 = "6017d51322d4d838449d6edf969803c1281e9229"; }
{ locale = "sl"; arch = "linux-i686"; sha1 = "cfb6d7bdfd5abf6815381997d8f19710711017b9"; }
{ locale = "sl"; arch = "linux-x86_64"; sha1 = "e7cf289bd59a6499f018d403a5ad661fd117073b"; }
{ locale = "son"; arch = "linux-i686"; sha1 = "e49233842e845f67d090b84caa86d9209bc5e79e"; }
{ locale = "son"; arch = "linux-x86_64"; sha1 = "dfaaa438d97fa3e0839b75144ba921898114f593"; }
{ locale = "sq"; arch = "linux-i686"; sha1 = "d80a35017d041e2e4bd3a8f0925bb11d696b2ad7"; }
{ locale = "sq"; arch = "linux-x86_64"; sha1 = "f1f940683602b808962317e0da9adc82d2e81c03"; }
{ locale = "sr"; arch = "linux-i686"; sha1 = "2a82cd867d939131b1985dcfeaf0d9d2a8682edf"; }
{ locale = "sr"; arch = "linux-x86_64"; sha1 = "ce4e49019bf1065610b862aaaec900d509561a5c"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha1 = "c3a9e5d86fe94ff9f22a3f891b604379ab1374ea"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "cc397d3ce95ccb4c957f05f90ac6eec28cbc383e"; }
{ locale = "ta"; arch = "linux-i686"; sha1 = "9ed781079e459942141597671a7ba13eef65bdf1"; }
{ locale = "ta"; arch = "linux-x86_64"; sha1 = "fbd5dc0126e6df1ebebcc270f58d16344a46ee49"; }
{ locale = "te"; arch = "linux-i686"; sha1 = "7c29cc8335b9d4d3d9210c77caac74d25d477cdc"; }
{ locale = "te"; arch = "linux-x86_64"; sha1 = "be02910dd1abc92d3754332e56274cc977773f64"; }
{ locale = "th"; arch = "linux-i686"; sha1 = "259edc8e888fdc32c714a45cf9599d15111f14e3"; }
{ locale = "th"; arch = "linux-x86_64"; sha1 = "934b28f0936b8ac9a395c906f9ca04150c9f79db"; }
{ locale = "tr"; arch = "linux-i686"; sha1 = "be173ce377a1a3ece05fb708316d79a880708137"; }
{ locale = "tr"; arch = "linux-x86_64"; sha1 = "52a94b0a3fb58c256b66019d9b8c8f5ab420f3e6"; }
{ locale = "uk"; arch = "linux-i686"; sha1 = "fc8e6574ef667c6a2de19cb82bec4bc47b85f907"; }
{ locale = "uk"; arch = "linux-x86_64"; sha1 = "bace7c6ffd9f02b0d6e24046f42c64b96db1a84a"; }
{ locale = "uz"; arch = "linux-i686"; sha1 = "1df792bf6b364632a0882ac055d9fee3b537e5c2"; }
{ locale = "uz"; arch = "linux-x86_64"; sha1 = "f77c0bd068b1c44d20027793a826714262d38351"; }
{ locale = "vi"; arch = "linux-i686"; sha1 = "8b367c6fee817dbb12e4c54b35df8a6d09900f33"; }
{ locale = "vi"; arch = "linux-x86_64"; sha1 = "307dee3afe576025524dee35904e70351cf03432"; }
{ locale = "xh"; arch = "linux-i686"; sha1 = "b04a6593e912a40d20be3c90cca3c7cdcd893e92"; }
{ locale = "xh"; arch = "linux-x86_64"; sha1 = "6abfc8532600cdd20ce53923913d50b7eeb52ac8"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha1 = "5d57176765f3be64230f36aa292992adf4a3c48c"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "df6d9a163dddacbd58591bd9572b16c7364eda2c"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha1 = "92fa3a666d858427f2a0102d85320b567c43ee40"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "b11d2d33c335bd471b6762e39c646303b3345ba4"; }
{ locale = "ach"; arch = "linux-i686"; sha1 = "c707c75b403d7e8f93fd1a362e65032a97d000a4"; }
{ locale = "ach"; arch = "linux-x86_64"; sha1 = "dd11e37acea4ee400b80fbdcfa98f4acbc7d73f6"; }
{ locale = "af"; arch = "linux-i686"; sha1 = "f3df56046427ebee3f2510e6b0b1d5214f9e8682"; }
{ locale = "af"; arch = "linux-x86_64"; sha1 = "0c064022ffe3fda103e69b03f06a50bab8a496d8"; }
{ locale = "an"; arch = "linux-i686"; sha1 = "d165d0545866ce3326df5b6246e3e7817025050e"; }
{ locale = "an"; arch = "linux-x86_64"; sha1 = "8ed6d2374b44037e8efe1252025303987f5a5b8c"; }
{ locale = "ar"; arch = "linux-i686"; sha1 = "ebd74e1c924e935a68e18bc1de78a8525b7a4fe0"; }
{ locale = "ar"; arch = "linux-x86_64"; sha1 = "a72295a576621e6305aa4bfecf444a114c2e6955"; }
{ locale = "as"; arch = "linux-i686"; sha1 = "1bfea721c70265683682fa004522e1518094313f"; }
{ locale = "as"; arch = "linux-x86_64"; sha1 = "42144c126408a5450b80e7e5be4aca96b2a88149"; }
{ locale = "ast"; arch = "linux-i686"; sha1 = "1bb9a1dbd4acffed0e2b31a81062b466f929a498"; }
{ locale = "ast"; arch = "linux-x86_64"; sha1 = "ec53f1640289f5866f9c2c136610725a5524ff1e"; }
{ locale = "az"; arch = "linux-i686"; sha1 = "c1396f03ba25ca4a9acf8b6998ce94d422984c68"; }
{ locale = "az"; arch = "linux-x86_64"; sha1 = "ec7368e145b3f7d5e8dc2659fd97bb1008619a42"; }
{ locale = "be"; arch = "linux-i686"; sha1 = "3ecc92fdbd51bd5b2a4d4e3744a9e4b6b1bd119f"; }
{ locale = "be"; arch = "linux-x86_64"; sha1 = "e8dc491a4d045a9fb3ad251a59acaffa12b8aac4"; }
{ locale = "bg"; arch = "linux-i686"; sha1 = "3fab78887d35fac20483c168b05a45cd646d16ab"; }
{ locale = "bg"; arch = "linux-x86_64"; sha1 = "03035db9fc8f6439d29ac396ae91888dfa2e127d"; }
{ locale = "bn-BD"; arch = "linux-i686"; sha1 = "20eb295ef81b17f5427014b1234b6bca5ba34605"; }
{ locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "85b1af82364dbfbd5c614f2d524f455ab45e3681"; }
{ locale = "bn-IN"; arch = "linux-i686"; sha1 = "e9745b0f3d7392a10706c8668faf598b0f9daec4"; }
{ locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "0f54e8f852a4af3fc8567f3b3b383e1dff3c23bd"; }
{ locale = "br"; arch = "linux-i686"; sha1 = "5ae670b00b932f1732fddde8d8c804501ddd27d3"; }
{ locale = "br"; arch = "linux-x86_64"; sha1 = "2569214acecc2fed7c087b27d047b82ccf42e3be"; }
{ locale = "bs"; arch = "linux-i686"; sha1 = "76fe2cc09da9f87f2178b686787cf55794ec233e"; }
{ locale = "bs"; arch = "linux-x86_64"; sha1 = "d2f70787cc36fceda857fad3c9552d1c4fa1b812"; }
{ locale = "ca"; arch = "linux-i686"; sha1 = "ca2f3dc2369c2c2757ef8d8e6258f0b2b192e00d"; }
{ locale = "ca"; arch = "linux-x86_64"; sha1 = "771d59990ef2c7199a6a1a7e4a83448df03fc665"; }
{ locale = "cs"; arch = "linux-i686"; sha1 = "4acce7f304ff6ac5b07389fbe91e97cf7599b821"; }
{ locale = "cs"; arch = "linux-x86_64"; sha1 = "a764135d7f7301d1f08b767f7f51a99348d5b2f0"; }
{ locale = "cy"; arch = "linux-i686"; sha1 = "731b053f99eef029580eec90730a8b2b20624f47"; }
{ locale = "cy"; arch = "linux-x86_64"; sha1 = "636b964015a4a2ac2e45092e726c0e64d404582c"; }
{ locale = "da"; arch = "linux-i686"; sha1 = "611b1290d147af331aa193380758cc3dfa3cafdf"; }
{ locale = "da"; arch = "linux-x86_64"; sha1 = "ea7d77e511b4165c7b889113b46389d4998dd50d"; }
{ locale = "de"; arch = "linux-i686"; sha1 = "ca3425c8264c4d9db53a2cbce52519912de7ecf9"; }
{ locale = "de"; arch = "linux-x86_64"; sha1 = "2d9b99842a185c4063166de5926db46182b258e5"; }
{ locale = "dsb"; arch = "linux-i686"; sha1 = "1ee0b0d3e599b98e5b190f8c7cd5d04a1141203a"; }
{ locale = "dsb"; arch = "linux-x86_64"; sha1 = "24f840a1ff2d00a74c617af81584f6d2907f7b7e"; }
{ locale = "el"; arch = "linux-i686"; sha1 = "5ecb3ea1cdc9211270239b6ec4a9d29bc1b68409"; }
{ locale = "el"; arch = "linux-x86_64"; sha1 = "fa81057327b718264e82cf6aad2c0e756ab709dc"; }
{ locale = "en-GB"; arch = "linux-i686"; sha1 = "8f2d51fd2f4fc43c766fa4d8db4180f8129d1a89"; }
{ locale = "en-GB"; arch = "linux-x86_64"; sha1 = "4395202bd676e8b6ff41ca946c885f1898fac1cc"; }
{ locale = "en-US"; arch = "linux-i686"; sha1 = "7f54347e1929c20c1ccbcf3fa9e07749b2fbf0d3"; }
{ locale = "en-US"; arch = "linux-x86_64"; sha1 = "3906fdb4f0fdb0e4e1f21e577099f106e90f02a5"; }
{ locale = "en-ZA"; arch = "linux-i686"; sha1 = "5dd5a1e54e72962714dc443677069cd65d5f4f85"; }
{ locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "2d1c15b66760419f33e67450c51785567d33a1b7"; }
{ locale = "eo"; arch = "linux-i686"; sha1 = "ab2c3c65b723795c9e5335c3efda8406dd660ff5"; }
{ locale = "eo"; arch = "linux-x86_64"; sha1 = "fc35c1ddb53482cdb147a4b8ef5d18b1533f859a"; }
{ locale = "es-AR"; arch = "linux-i686"; sha1 = "b2e4991dff339369d07d6e1b7c9c57807010f1e6"; }
{ locale = "es-AR"; arch = "linux-x86_64"; sha1 = "08358b68d518478ab3e177dc25e44bcc22d6a10b"; }
{ locale = "es-CL"; arch = "linux-i686"; sha1 = "dbadd2dd873009d49015d9ba73ff8399c3c923b3"; }
{ locale = "es-CL"; arch = "linux-x86_64"; sha1 = "22d995b08052750addcb06801b5ea46757de48c8"; }
{ locale = "es-ES"; arch = "linux-i686"; sha1 = "705524e182679992eb6cf943ac6768b7732ae4fb"; }
{ locale = "es-ES"; arch = "linux-x86_64"; sha1 = "24f1558fe278c92abf89d046dc2ca8b947d878fb"; }
{ locale = "es-MX"; arch = "linux-i686"; sha1 = "69333c9937dd4430facc52f05e35059433b0c78d"; }
{ locale = "es-MX"; arch = "linux-x86_64"; sha1 = "2e28497f7e6aeacf54a4b88ce91338260d5191b0"; }
{ locale = "et"; arch = "linux-i686"; sha1 = "fb262e3020715e921b9408b8e661e14e8de226b1"; }
{ locale = "et"; arch = "linux-x86_64"; sha1 = "d49430fa7328566369046efb6d92da24445b00af"; }
{ locale = "eu"; arch = "linux-i686"; sha1 = "56de1040fda96ccd59b010578c91303c57bf7a53"; }
{ locale = "eu"; arch = "linux-x86_64"; sha1 = "04c6e7f3430da79450eb3a96238c11c997feb2fb"; }
{ locale = "fa"; arch = "linux-i686"; sha1 = "6ab145b3e85c6b001d49004b99c53fd71444646a"; }
{ locale = "fa"; arch = "linux-x86_64"; sha1 = "fbe27589194dae4d63c7b9f8a45f3abffba42449"; }
{ locale = "ff"; arch = "linux-i686"; sha1 = "adaed8878d757ed6b74bd334b138a1c46c438de7"; }
{ locale = "ff"; arch = "linux-x86_64"; sha1 = "91a9fecbcb65067c420b0338dbcbf37d4bc4ed20"; }
{ locale = "fi"; arch = "linux-i686"; sha1 = "3e31d26155648b3148f8e0340db84e5725435b58"; }
{ locale = "fi"; arch = "linux-x86_64"; sha1 = "17a8e273c9dbf82d4f86b81426f07af62a49ee6a"; }
{ locale = "fr"; arch = "linux-i686"; sha1 = "8fa301bb3c7f8bd713c2bfa6768b73bd02a38de4"; }
{ locale = "fr"; arch = "linux-x86_64"; sha1 = "ddd0bf1ce6a6fc70eb48e9bd72a52b20b78f2256"; }
{ locale = "fy-NL"; arch = "linux-i686"; sha1 = "264d6237f00cbacbdfc3d47385c349422394cdd7"; }
{ locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "7f9dfde56e776f16d30df9e3fc6853f8001d9837"; }
{ locale = "ga-IE"; arch = "linux-i686"; sha1 = "c032daf124507e56be02d15df8b651c814ec105b"; }
{ locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "2032c9e8c23fcf3ecc1db6eccfff921f6a49d734"; }
{ locale = "gd"; arch = "linux-i686"; sha1 = "4ba7388a13dedc7ad7d1d83742d9f7f8c211aa76"; }
{ locale = "gd"; arch = "linux-x86_64"; sha1 = "96ff03ffc0495ae4042dd6d37cd7aa2c9748b7c2"; }
{ locale = "gl"; arch = "linux-i686"; sha1 = "43c4c6e2dcc364711f5368ad1efe223df5fda4d5"; }
{ locale = "gl"; arch = "linux-x86_64"; sha1 = "bbd0443d6ed8598ae78a71b834c3b4c4e2d599cc"; }
{ locale = "gu-IN"; arch = "linux-i686"; sha1 = "6ee1707123bb560fe7b1dc39165c4a4250565cc4"; }
{ locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "6254300eddc173e888cfb70db612ef7fa41aa2e7"; }
{ locale = "he"; arch = "linux-i686"; sha1 = "de203188d6b68e8a7c24bf0bea40342535897a9b"; }
{ locale = "he"; arch = "linux-x86_64"; sha1 = "598d0d0d1eb22ed7378c8aaced43ebe91f0ab305"; }
{ locale = "hi-IN"; arch = "linux-i686"; sha1 = "809126d150b1fbd42e7bcdd14c032bfb11797f46"; }
{ locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "c940ec3a10d61d47a891fc538c9076af90cda65b"; }
{ locale = "hr"; arch = "linux-i686"; sha1 = "a85b937eac26926f8f69d5181d27504b06284b63"; }
{ locale = "hr"; arch = "linux-x86_64"; sha1 = "288262d030c80308e725de8ad39914509a538526"; }
{ locale = "hsb"; arch = "linux-i686"; sha1 = "9b084622ae514854bf01c6977c31d77f5d83de59"; }
{ locale = "hsb"; arch = "linux-x86_64"; sha1 = "249f387302c44f79eef12d336af81eab07ea6463"; }
{ locale = "hu"; arch = "linux-i686"; sha1 = "c646b79ba6c74823caad11aca9ddc2ca8051117e"; }
{ locale = "hu"; arch = "linux-x86_64"; sha1 = "f1436bd0c5ca9ba23eb50caef9a6cc4c5dad74d8"; }
{ locale = "hy-AM"; arch = "linux-i686"; sha1 = "9523c995e785efda19bf0cfd08fa7399b37138b3"; }
{ locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "2992ebd3a86bbca04e443d1f55d73a876a8b4505"; }
{ locale = "id"; arch = "linux-i686"; sha1 = "0bd17d152d738ba6a57da12f333fa9d942fbd274"; }
{ locale = "id"; arch = "linux-x86_64"; sha1 = "1bbed6d2d3ffc2ed91c6f4badd5243af17fe63ca"; }
{ locale = "is"; arch = "linux-i686"; sha1 = "90c33bf3896565df30b104d271cf4aa1d09d67d1"; }
{ locale = "is"; arch = "linux-x86_64"; sha1 = "05e1f66bc84dd2ce1b142ee64b420eae3321f172"; }
{ locale = "it"; arch = "linux-i686"; sha1 = "b11e6172e8040fe0c6749a684e0073fdb5a19402"; }
{ locale = "it"; arch = "linux-x86_64"; sha1 = "5c47ffa4b944c71576017c684ab8ebd78fc52d08"; }
{ locale = "ja"; arch = "linux-i686"; sha1 = "acae3c28497f4ae7937f4bd38174e5a30b009475"; }
{ locale = "ja"; arch = "linux-x86_64"; sha1 = "d3610648b5a7f1bc223fb36ca94ee4d8f25060f7"; }
{ locale = "kk"; arch = "linux-i686"; sha1 = "0d4185c11d9a4ed7f2c554fd322b6a5a0fdacf53"; }
{ locale = "kk"; arch = "linux-x86_64"; sha1 = "189ee9cb3c88809dc9dc4c7dbde2ccafa333a432"; }
{ locale = "km"; arch = "linux-i686"; sha1 = "8e39eb920380bcb87aaf48a69ea53bbf6abba2c7"; }
{ locale = "km"; arch = "linux-x86_64"; sha1 = "8770649702e38783e3e2841ce0ce66f068a4b23d"; }
{ locale = "kn"; arch = "linux-i686"; sha1 = "e0407f7df92240aa866ba981c9054760cdc07cd9"; }
{ locale = "kn"; arch = "linux-x86_64"; sha1 = "f4558f7edab4f85612d8280cf8ab131492854ba8"; }
{ locale = "ko"; arch = "linux-i686"; sha1 = "373b7ef465500dcc7bbe9a48e113f26bc4a6a27b"; }
{ locale = "ko"; arch = "linux-x86_64"; sha1 = "8c8b0fe42a644c29ebafd1aa7b82733b7c5d6bb4"; }
{ locale = "lij"; arch = "linux-i686"; sha1 = "a22f113cde99557fa8973776e19f6bf4cfff1114"; }
{ locale = "lij"; arch = "linux-x86_64"; sha1 = "dd7917fb9c1e8bbd1db503829c8bdf1d5a935769"; }
{ locale = "lt"; arch = "linux-i686"; sha1 = "8887a493a938d10ee63630cda8ef9b3a03f01a1e"; }
{ locale = "lt"; arch = "linux-x86_64"; sha1 = "8fca22b9076082e859f0dff2afe7ccb245ee0fad"; }
{ locale = "lv"; arch = "linux-i686"; sha1 = "a5e4a7c95f336ca6664fee8b16e002a44561effb"; }
{ locale = "lv"; arch = "linux-x86_64"; sha1 = "e69bdda0ae0b3782a10e64ed3fd85ab19c7630a2"; }
{ locale = "mai"; arch = "linux-i686"; sha1 = "1efb4b5f649f219cf66f148297b5f669fb4dc16f"; }
{ locale = "mai"; arch = "linux-x86_64"; sha1 = "7ad1e9472c812e71e358e67021aa0a07a0d97062"; }
{ locale = "mk"; arch = "linux-i686"; sha1 = "bb96c1a1d5f371ecbed4b9c6e3ae1d244e582f6f"; }
{ locale = "mk"; arch = "linux-x86_64"; sha1 = "a4d18deaa48a23f588b7d8db4973a37764e97449"; }
{ locale = "ml"; arch = "linux-i686"; sha1 = "961f1ca920469c5f95ec875fbc33a913ae2a1986"; }
{ locale = "ml"; arch = "linux-x86_64"; sha1 = "c662ac25845f9f83cee846a3b02f41186ed7c83e"; }
{ locale = "mr"; arch = "linux-i686"; sha1 = "7b01dc5ce1dd97f5b2c3b39783eaa06556dd03da"; }
{ locale = "mr"; arch = "linux-x86_64"; sha1 = "2940bacdbc3f021ad421097e94017627cf59d655"; }
{ locale = "ms"; arch = "linux-i686"; sha1 = "624edc402de71fec31b63e01a9a1f2b79b3c5db3"; }
{ locale = "ms"; arch = "linux-x86_64"; sha1 = "30dceab395c15909d55ede343071a1fcea21af7b"; }
{ locale = "nb-NO"; arch = "linux-i686"; sha1 = "958f0e5ffa8911eee58883b22fbf6db18d1fe1a0"; }
{ locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "b0bc728560beb154ca2b9bd8e5c607458afa88f2"; }
{ locale = "nl"; arch = "linux-i686"; sha1 = "77976787dfa2464cd859bb3c3245fddd6cfd5c02"; }
{ locale = "nl"; arch = "linux-x86_64"; sha1 = "ba47a63624bd64597dde61dfbf04c94eaada4900"; }
{ locale = "nn-NO"; arch = "linux-i686"; sha1 = "d35fdb72fd1afee6310ab4e8a764e75804822226"; }
{ locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "848c8d69a53ad6841ecb38d7ea93b37a70b182d8"; }
{ locale = "or"; arch = "linux-i686"; sha1 = "f7b83449922833f438acd3ee9b3bdbd1ceb8d578"; }
{ locale = "or"; arch = "linux-x86_64"; sha1 = "a9f255e2fdcdd8b5d95026af2dfc6b90da7eed64"; }
{ locale = "pa-IN"; arch = "linux-i686"; sha1 = "1a1552f9ae38db0314550831711a674c50a3c9d1"; }
{ locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "eea36a9355b0d0e3477a51d7ea8cbe46745fbbf2"; }
{ locale = "pl"; arch = "linux-i686"; sha1 = "6f7c3ea9d43bae1d9177c41a60b6e568081c33f2"; }
{ locale = "pl"; arch = "linux-x86_64"; sha1 = "b6b7b6ae8391ff342bcc0f3fd3b14e7189f9ea02"; }
{ locale = "pt-BR"; arch = "linux-i686"; sha1 = "d474f48517529dbeb5bc12ad57b28cc1bdd3cf28"; }
{ locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "a8906806231ecb44c6368eb22dfa01a21c05bf89"; }
{ locale = "pt-PT"; arch = "linux-i686"; sha1 = "4910bd75b9566ba8fb1392c69610c6db527cc87c"; }
{ locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "9205b1556359844144275f2a768f7ab74edc5519"; }
{ locale = "rm"; arch = "linux-i686"; sha1 = "27b825a7eae976a53579cf1fed1509cd4f817023"; }
{ locale = "rm"; arch = "linux-x86_64"; sha1 = "03362ade5b3b5a030611cbb03767421bae1a2fe4"; }
{ locale = "ro"; arch = "linux-i686"; sha1 = "75be442bb19172111ad2189bad0232839db53dfa"; }
{ locale = "ro"; arch = "linux-x86_64"; sha1 = "4879b5f99852b7bf8f36237e121c6f3f58db395c"; }
{ locale = "ru"; arch = "linux-i686"; sha1 = "2d447694af3e95669be993235eb239ff74c75aef"; }
{ locale = "ru"; arch = "linux-x86_64"; sha1 = "227e369a35018d43d1ae6eb1b7859d289df15362"; }
{ locale = "si"; arch = "linux-i686"; sha1 = "5c8ac234d851c0860b5f79f33b07c80f710776a2"; }
{ locale = "si"; arch = "linux-x86_64"; sha1 = "703b7a9557e43d196b34a498e5d08a0d582edf9b"; }
{ locale = "sk"; arch = "linux-i686"; sha1 = "5b8ac9ead4f2886b21af1512b6942fb5e1acefa1"; }
{ locale = "sk"; arch = "linux-x86_64"; sha1 = "ffee2ee4d0e47dfe252868f602a0d4c991cc890f"; }
{ locale = "sl"; arch = "linux-i686"; sha1 = "836295228c78541efe1a21e5b64671dd8b9ec00c"; }
{ locale = "sl"; arch = "linux-x86_64"; sha1 = "4109e25e578d7af567f37062a753bdfcee394092"; }
{ locale = "son"; arch = "linux-i686"; sha1 = "34427023f9eeaa0c9924672fc59a58890b35635d"; }
{ locale = "son"; arch = "linux-x86_64"; sha1 = "12cda45700a294b72f94560e421c88dbf04ceb4b"; }
{ locale = "sq"; arch = "linux-i686"; sha1 = "1d3970aaa293e06b6a430cb73ccfafaf043a2364"; }
{ locale = "sq"; arch = "linux-x86_64"; sha1 = "0a49d2f6fed69ef22698e1ba98b8cbb008debc84"; }
{ locale = "sr"; arch = "linux-i686"; sha1 = "ed6796f73a3e34db680414a5f7b17c4d326be884"; }
{ locale = "sr"; arch = "linux-x86_64"; sha1 = "f22376834d160c165534f2e8ecbdad3273f46334"; }
{ locale = "sv-SE"; arch = "linux-i686"; sha1 = "24140ca9e8acbc64ad553a528acb057c67240c00"; }
{ locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "875c60949b97edf2a951f470139153eafad03c9d"; }
{ locale = "ta"; arch = "linux-i686"; sha1 = "4adc26d74d6a0ec3fc80e5979750ed19ac93e290"; }
{ locale = "ta"; arch = "linux-x86_64"; sha1 = "24b6a6f4a16b5a19b340949d326203e1d1cdd2cc"; }
{ locale = "te"; arch = "linux-i686"; sha1 = "4584c8b93624af4f630c759178d8857103ce6fca"; }
{ locale = "te"; arch = "linux-x86_64"; sha1 = "4b810afe09e317593e3fe269c5d686336cd3524f"; }
{ locale = "th"; arch = "linux-i686"; sha1 = "c7b00a159fee121e5ff8f9e2248d6ae1a511647f"; }
{ locale = "th"; arch = "linux-x86_64"; sha1 = "4c0e26054226ccea1093a809a272cfd12d8af2ed"; }
{ locale = "tr"; arch = "linux-i686"; sha1 = "b0844d25d0c9307675559a52e7c6a097615c403d"; }
{ locale = "tr"; arch = "linux-x86_64"; sha1 = "67dfc61732853e99be82054344f59768b831d6d0"; }
{ locale = "uk"; arch = "linux-i686"; sha1 = "d9a640765b27e192948e8b485ef4a7005513de29"; }
{ locale = "uk"; arch = "linux-x86_64"; sha1 = "c619fd93d8e9650482e3e1d639310b470f1c914b"; }
{ locale = "uz"; arch = "linux-i686"; sha1 = "561a2c6d943908d4b3bcd2c80895d43b141d1a2b"; }
{ locale = "uz"; arch = "linux-x86_64"; sha1 = "c287e06e19fb45f265d314fb5199af5c449464a0"; }
{ locale = "vi"; arch = "linux-i686"; sha1 = "469cb11ded0712ad3fe9c3cc01df74e6b566c845"; }
{ locale = "vi"; arch = "linux-x86_64"; sha1 = "4d9e3f2ea7ab3ee76bf7d41fc6936915b18d45db"; }
{ locale = "xh"; arch = "linux-i686"; sha1 = "f48a638f685a7754ae23626a4d2e8209d5272b9c"; }
{ locale = "xh"; arch = "linux-x86_64"; sha1 = "a1bbf7e645291eaa7ccece17b13461d7f239f334"; }
{ locale = "zh-CN"; arch = "linux-i686"; sha1 = "ca839f0034807715d7bccb0f97e4ffd7dbcf8e17"; }
{ locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "6dd09c5d50ce206931d1e1f6310fe4a55d8eddd4"; }
{ locale = "zh-TW"; arch = "linux-i686"; sha1 = "1265d89ca47aa9f9f4f3a7825cef622a9ac2b18a"; }
{ locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "2464e2c81407987ff9bb2b682b71f3b8f94aa455"; }
];
}

View file

@ -22,11 +22,11 @@ with stdenv.lib;
stdenv.mkDerivation rec {
name = "gajim-${version}";
version = "0.16";
version = "0.16.1";
src = fetchurl {
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
sha256 = "14x15jwgl0c6vwj02ccpzmxr3fczp632mnj50cpklbaj4bxqvgbs";
sha256 = "1gp8mdn6sz2pks5irsf563zbz98ldqksfky84ga9fzqndmq35bi6";
};
patches = [

View file

@ -4,12 +4,12 @@ with goPackages;
buildGoPackage rec {
name = "syncthing-${version}";
version = "0.10.24";
version = "0.10.25";
goPackagePath = "github.com/syncthing/syncthing";
src = fetchgit {
url = "git://github.com/syncthing/syncthing.git";
rev = "refs/tags/v${version}";
sha256 = "9c79f62a10c88fe5d3452f16b0f8ed9cde5a70ec82aaec1e7b99cc1fb41a3dda";
sha256 = "fcb6fbcd37bdcf07d2960d143209b7697ee705286754ead4cc5e6bd95cd0acb8";
};
subPackages = [ "cmd/syncthing" ];

View file

@ -0,0 +1,18 @@
Description: Add check for buffer overflow with malformed input files
Author: <eriks@debian.org>
Bug-Debian: http://bugs.debian.org/407015
Last-Update: 2009-06-03
--- antiword-0.37~/wordole.c 2005-08-26 21:49:57.000000000 +0200
+++ antiword-0.37/wordole.c 2009-06-03 22:31:15.948014682 +0200
@@ -259,6 +259,10 @@
}
tNameSize = (size_t)usGetWord(0x40, aucBytes);
tNameSize = (tNameSize + 1) / 2;
+ if ( tNameSize > sizeof(atPPSlist[iIndex].szName)) {
+ werr(0, "Name Size of PPS %d is too large", iIndex);
+ tNameSize = sizeof(atPPSlist[iIndex].szName);
+ }
vName2String(atPPSlist[iIndex].szName, aucBytes, tNameSize);
atPPSlist[iIndex].ucType = ucGetByte(0x42, aucBytes);
if (atPPSlist[iIndex].ucType == 5) {

View file

@ -11,10 +11,12 @@ stdenv.mkDerivation {
sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
};
patchPhase = ''
preInstall = ''
sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
'';
patches = [ ./10_fix_buffer_overflow_wordole_c.patch ];
installTargets = "global_install";
meta = {

View file

@ -24,8 +24,8 @@ let
langsSpaces = stdenv.lib.concatStringsSep " " langs;
major = "4";
minor = "4";
patch = "0";
tweak = "3";
patch = "1";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
@ -80,14 +80,14 @@ let
translations = fetchSrc {
name = "translations";
sha256 = "0y94sry2cghc82628smka7qb1xqlgrgvy98bxd2fpqfkd1llcqfg";
sha256 = "0a1p9jd9lgb1mxnj4c55yrlc7q2dsm5s9cyax6cwaya2q5m5xhnk";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "05al25vcz2z6fhm8vx77wa47nyi3r0hwll6mg2aclx7yp0s5k01d";
sha256 = "042xp6xz3gb75k332xclwfjyik63zgcw5135967nclim1sl8rgh7";
};
};
@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "1xqc60ckay6xpljipcbm4915qqwk81dm2fbpxwfqc2l4gv9g6s6i";
sha256 = "0pa7gf29sgsl6kxs7j1x1zl4ycv682wrj1dg22qc0kb7aijhpm2f";
};
# Openoffice will open libcups dynamically, so we link it directly

View file

@ -74,10 +74,13 @@ buildPythonPackage rec {
# path to the executable in argv[0] therefore the wrapper is
# modified accordingly.
postFixup = ''
wrapProgram "$out/bin/zim" \
--prefix XDG_DATA_DIRS : "$out/share"
wrapPythonPrograms
sed -i "s#sys\.argv\[0\] = 'zim'#sys.argv[0] = '$out/bin/zim'#g" \
$out/bin/.zim-wrapped
sed -i "s#sys\.argv\[0\] = '.zim-wrapped'#sys.argv[0] = '$out/bin/zim'#g" \
$out/bin/..zim-wrapped-wrapped
if test -e $out/nix-support/propagated-build-inputs; then
ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages

View file

@ -6,11 +6,11 @@
}:
stdenv.mkDerivation rec {
name = "R-3.1.2";
name = "R-3.1.3";
src = fetchurl {
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
sha256 = "0ypsm11c7n49pgh2ricyhhpfhas3famscdazzdp2zq70rapm1ldw";
sha256 = "04kk6wd55bi0f0qsp98ckjxh95q2990vkgq4j83kiajvjciq7s87";
};
buildInputs = [ blas bzip2 gfortran liblapack libX11 libXmu libXt
@ -54,8 +54,7 @@ stdenv.mkDerivation rec {
installTargets = [ "install" "install-info" "install-pdf" ];
# The test suite fails when building without the recommended packages.
doCheck = withRecommendedPackages;
doCheck = true;
enableParallelBuilding = true;

View file

@ -1,12 +1,12 @@
{ stdenv, fetchurl, gmp, readline }:
stdenv.mkDerivation rec {
version = "2.7.2";
version = "2.7.3";
name = "pari-${version}";
src = fetchurl {
url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
sha256 = "1b0hzyhafpxhmiljyhnsh6c27ydsvb2599fshwq2fjfm96awjxmc";
sha256 = "02k54m7p47r54lgxqanxvf7pdrss17n8if1qwk5wx0j1px22j0rq";
};
buildInputs = [gmp readline];

View file

@ -1,20 +1,20 @@
{ stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
, xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs
, xcb-util-cursor, makeWrapper, pango, gobjectIntrospection, unclutter
, compton, procps, iproute, coreutils, curl, alsaUtils, findutils, rxvt_unicode
, compton, procps, iproute, coreutils, curl, alsaUtils, findutils, xterm
, which, dbus, nettools, git, asciidoc, doxygen, xmlto, docbook_xml_dtd_45
, docbook_xsl }:
let
version = "3.5.5";
version = "3.5.6";
in with luaPackages;
stdenv.mkDerivation rec {
name = "awesome-${version}";
src = fetchurl {
url = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
sha256 = "0iwd4pjvq0akm9dbipbl4m4fm24m017l06arasr445v2qkbxnc5z";
sha256 = "1ms6a3l1i2jdhzrd1zr25cqckznmb44qgz4n635jam42hzhrvx1p";
};
meta = with stdenv.lib; {
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.linux;
};
buildInputs = [
asciidoc
cairo
@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
--prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \
--prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${rxvt_unicode}/bin"
--prefix PATH : "${compton}/bin:${unclutter}/bin:${procps}/bin:${iproute}/sbin:${coreutils}/bin:${curl}/bin:${alsaUtils}/bin:${findutils}/bin:${xterm}/bin"
wrapProgram $out/bin/awesome-client \
--prefix PATH : "${which}/bin"

View file

@ -15,11 +15,11 @@ let
s = # Generated upstream information
rec {
baseName="compiz";
version="0.9.12.0";
version="0.9.12.1";
name="${baseName}-${version}";
hash="1n7y413bkykcby9imgmj5f1nbjfjc0hnbwmdkq2n77d4kv1rilxr";
url="https://launchpad.net/compiz/0.9.12/0.9.12.0/+download/compiz-0.9.12.0.tar.bz2";
sha256="1n7y413bkykcby9imgmj5f1nbjfjc0hnbwmdkq2n77d4kv1rilxr";
hash="0kl5im3zq0rjlxbgz5cyk38qzssahrljc67z1n16pjc1qmr6m7cb";
url="https://launchpad.net/compiz/0.9.12/0.9.12.1/+download/compiz-0.9.12.1.tar.bz2";
sha256="0kl5im3zq0rjlxbgz5cyk38qzssahrljc67z1n16pjc1qmr6m7cb";
};
buildInputs = [cmake pkgconfig
libXrender renderproto gtk libwnck pango cairo

View file

@ -1,22 +1,16 @@
{ stdenv, buildEnv, ghcWithPackages, xmessage, makeWrapper, packages }:
{ stdenv, ghcWithPackages, xmessage, makeWrapper, packages }:
let
xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self);
drv = buildEnv {
in stdenv.mkDerivation {
name = "xmonad-with-packages";
paths = [ xmonadEnv ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
# TODO: This could be avoided if buildEnv could be forced to create all directories
rm $out/bin
mkdir $out/bin
for i in ${xmonadEnv}/bin/*; do
ln -s $i $out/bin
done
wrapProgram $out/bin/xmonad \
--set XMONAD_GHC "${xmonadEnv}/bin/ghc" \
buildCommand = ''
mkdir -p $out/bin
makeWrapper ${xmonadEnv}/bin/xmonad $out/bin/xmonad \
--set NIX_GHC "${xmonadEnv}/bin/ghc" \
--set XMONAD_XMESSAGE "${xmessage}/bin/xmessage"
'';
};
in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; })
}

View file

@ -146,7 +146,11 @@ let
mkDerivation = drv: stdenv.mkDerivation (drv // { src = fetchurl drv.src; });
resolveDeps = scope: map (dep: scope."${dep}" or null);
resolveDeps = scope:
let resolveDeps_go = dep:
let res = scope."${dep}" or [];
in if isList res then res else [res];
in concatMap resolveDeps_go;
userEnvPkg = dep:
mapAttrs

View file

@ -62,7 +62,7 @@ let
chosenGcc
bashInteractive coreutils less shadow su
gawk diffutils findutils gnused gnugrep
gnutar gzip bzip2 xz
gnutar gzip bzip2 xz glibcLocales
];
# Compose a global profile for the chroot environment
@ -72,6 +72,9 @@ let
mkdir -p $out/etc
cat >> $out/etc/profile << "EOF"
export PS1='${name}-chrootenv:\u@\h:\w\$ '
export LOCALE_ARCHIVE='/usr/lib${if is64Bit then "64" else ""}/locale/locale-archive'
export LD_LIBRARY_PATH=/run/opengl-driver/lib:/run/opengl-driver-32/lib:/lib:/lib32:/lib64
export PATH='/bin:/sbin'
${profile}
EOF
'';
@ -81,15 +84,17 @@ let
staticUsrProfileTarget = nixpkgs.buildEnv {
name = "system-profile-target";
paths = basePkgs ++ [ profilePkg ] ++ targetPaths;
ignoreCollisions = true;
};
staticUsrProfileMulti = nixpkgs.buildEnv {
name = "system-profile-multi";
paths = multiPaths;
ignoreCollisions = true;
};
linkProfile = profile: ''
for i in ${profile}/{etc,bin,sbin,share,var}; do
for i in ${profile}/{bin,sbin,share,var}; do
if [ -x "$i" ]
then
ln -s "$i"
@ -129,7 +134,7 @@ let
mkdir -m0755 lib
# copy content of targetPaths
cp -rsf ${staticUsrProfileTarget}/lib/* lib/
cp -rsf ${staticUsrProfileTarget}/lib/* lib/ && chmod u+w -R lib/
'';
# setup /lib, /lib32 and /lib64
@ -142,22 +147,56 @@ let
cp -rsf ${staticUsrProfileTarget}/lib/32/* lib/
# copy content of multiPaths (32bit libs)
[ -d ${staticUsrProfileMulti}/lib ] && cp -rsf ${staticUsrProfileMulti}/lib/* lib/
[ -d ${staticUsrProfileMulti}/lib ] && cp -rsf ${staticUsrProfileMulti}/lib/* lib/ && chmod u+w -R lib/
# copy content of targetPaths (64bit libs)
cp -rsf ${staticUsrProfileTarget}/lib/* lib64/
cp -rsf ${staticUsrProfileTarget}/lib/* lib64/ && chmod u+w -R lib64/
# most 64bit only libs put their stuff into /lib
# some pkgs (like gcc_multi) put 32bit libs into and /lib 64bit libs into /lib64
# by overwriting these we will hopefully catch all these cases
# in the end /lib should only contain 32bit and /lib64 only 64bit libs
cp -rsf ${staticUsrProfileTarget}/lib64/* lib64/
cp -rsf ${staticUsrProfileTarget}/lib64/* lib64/ && chmod u+w -R lib64/
# copy gcc libs (and may overwrite exitsting wrongly placed libs)
cp -rsf ${chosenGcc.cc}/lib/* lib/
cp -rsf ${chosenGcc.cc}/lib64/* lib64/
'';
setupEtc = ''
mkdir -m0755 etc
# copy profile content
cp -rsf ${staticUsrProfileTarget}/etc/* etc/ && chmod u+w -R etc/
[ -d ${staticUsrProfileMulti}/etc ] && cp -rsf ${staticUsrProfileMulti}/etc/* etc/ && chmod u+w -R etc/
# compatibility with NixOS
ln -s /host-etc/static etc/static
# symlink some NSS stuff
ln -s /host-etc/passwd etc/passwd
ln -s /host-etc/group etc/group
ln -s /host-etc/shadow etc/shadow
ln -s /host-etc/hosts etc/hosts
ln -s /host-etc/resolv.conf etc/resolv.conf
ln -s /host-etc/nsswitch.conf etc/nsswitch.conf
# symlink other core stuff
ln -s /host-etc/localtime etc/localtime
ln -s /host-etc/machine-id etc/machine-id
# symlink PAM stuff
rm -rf etc/pam.d
ln -s /host-etc/pam.d etc/pam.d
# symlink fonts stuff
rm -rf etc/fonts
ln -s /host-etc/fonts etc/fonts
# symlink ALSA stuff
ln -s /host-etc/asound.conf etc/asound.conf
'';
in nixpkgs.stdenv.mkDerivation {
name = "${name}-fhs";
buildCommand = ''
@ -165,6 +204,7 @@ in nixpkgs.stdenv.mkDerivation {
cd $out
${setupTargetProfile}
${setupMultiProfile}
${setupEtc}
cd $out
${extraBuildCommands}
cd $out

View file

@ -8,39 +8,12 @@ mkdir -p $chrootenvDest/{nix/store,dev,proc,sys,host-etc,home,var,run}
# Symlink the software that should be part of the chroot system profile
for i in @chrootEnv@/*
do
if [ "$i" != "@chrootEnv@/etc" ] && [ "$i" != "@chrootEnv@/var" ]
if [ "$i" != "@chrootEnv@/var" ]
then
ln -s "$i" "$chrootenvDest"
fi
done
# Symlink the contents of the chroot software's /etc
mkdir $chrootenvDest/etc
for i in @chrootEnv@/etc/*
do
ln -s "$i" $chrootenvDest/etc
done
# Symlink some NSS stuff
ln -s ../host-etc/passwd $chrootenvDest/etc/passwd
ln -s ../host-etc/group $chrootenvDest/etc/group
ln -s ../host-etc/shadow $chrootenvDest/etc/shadow
ln -s ../host-etc/hosts $chrootenvDest/etc/hosts
ln -s ../host-etc/resolv.conf $chrootenvDest/etc/resolv.conf
ln -s ../host-etc/nsswitch.conf $chrootenvDest/etc/nsswitch.conf
# Symlink PAM stuff
rm $chrootenvDest/etc/pam.d
ln -s ../host-etc/static/pam.d $chrootenvDest/etc/pam.d
# Symlink Font stuff
mkdir -p $chrootenvDest/etc/fonts
ln -s ../../host-etc/static/fonts/fonts.conf $chrootenvDest/etc/fonts
mkdir -p $chrootenvDest/etc/fonts/conf.d
ln -s ../../../host-etc/static/fonts/conf.d/00-nixos.conf $chrootenvDest/etc/fonts/conf.d
# Create root folder
mkdir $chrootenvDest/root

View file

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

View file

@ -17,20 +17,6 @@ mounts = [ ['/nix/store', nil],
mkdirs = ['tmp',
]
# Symlinks: [from, to (dir)]
symlinks =
# /etc symlinks: [file name, prefix in host-etc]
[ ['passwd', ''],
['group', ''],
['shadow', ''],
['hosts', ''],
['resolv.conf', ''],
['nsswitch.conf', ''],
['pam.d', 'static'],
['fonts/fonts.conf', 'static'],
['fonts/conf.d/00-nixos.conf', 'static'],
].map! { |x| [ "host-etc/#{x[1]}/#{x[0]}", "etc/#{File.dirname x[0]}" ] }
require 'tmpdir'
require 'fileutils'
require 'pathname'
@ -111,12 +97,6 @@ if $cpid == 0
Dir.chroot root
Dir.chdir '/'
# Do symlinks
symlinks.each do |x|
FileUtils.mkdir_p x[1]
FileUtils.ln_s x[0], x[1]
end
# Symlink swdir hierarchy
mount_dirs = Set.new mounts.map { |x| Pathname.new x[1] }
link_swdir = lambda do |swdir, prefix|
@ -136,13 +116,11 @@ if $cpid == 0
link_swdir.call swdir, Pathname.new('')
# New environment
oldenv = ENV.to_h
ENV.replace({ 'PS1' => oldenv['PS1'],
'TERM' => oldenv['TERM'],
'DISPLAY' => oldenv['DISPLAY'],
'HOME' => oldenv['HOME'],
'PATH' => '/bin:/sbin',
'XDG_RUNTIME_DIR' => oldenv['XDG_RUNTIME_DIR'],
ENV.replace({ 'TERM' => ENV['TERM'],
'DISPLAY' => ENV['DISPLAY'],
'HOME' => ENV['HOME'],
'XDG_RUNTIME_DIR' => ENV['XDG_RUNTIME_DIR'],
'LANG' => ENV['LANG'],
})
# Finally, exec!

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "hicolor-icon-theme-0.13";
name = "hicolor-icon-theme-0.14";
src = fetchurl {
url = "http://icon-theme.freedesktop.org/releases/${name}.tar.gz";
sha256 = "01ilkizzal3wq2naaj84rqmd850aari1ahiw9vfis3a82n4h72x3";
url = "http://icon-theme.freedesktop.org/releases/${name}.tar.xz";
sha256 = "1k9fj0lb9b44inb5q5m04910x5nfkzrxl3ys9ckihqrixzk0dvbv";
};
setupHook = ./setup-hook.sh;

View file

@ -6,11 +6,11 @@ let
s = # Generated upstream information
rec {
baseName="ecl";
version="13.5.1";
version="15.3.7";
name="${baseName}-${version}";
hash="18ic8w9sdl0dh3kmyc9lsrafikrd9cg1jkhhr25p9saz0v75f77r";
url="mirror://sourceforge/project/ecls/ecls/13.5/ecl-13.5.1.tgz";
sha256="18ic8w9sdl0dh3kmyc9lsrafikrd9cg1jkhhr25p9saz0v75f77r";
hash="13wlxkd5prm93gcm2dhm7v52fl803yx93aa97lrb39z0y6xzziid";
url="mirror://sourceforge/project/ecls/ecls/15.3/ecl-15.3.7.tgz";
sha256="13wlxkd5prm93gcm2dhm7v52fl803yx93aa97lrb39z0y6xzziid";
};
buildInputs = [
libffi

View file

@ -40,5 +40,6 @@ stdenv.mkDerivation {
license = stdenv.lib.licenses.bsd3;
maintainers = [ stdenv.lib.maintainers.shlevy ];
platforms = stdenv.lib.platforms.all;
broken = true;
};
}

View file

@ -1,9 +1,9 @@
import ./jdk-linux-base.nix {
productVersion = "8";
patchVersion = "31";
patchVersion = "40";
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
sha256_i686 = "1sr3q9y0cd42cqpf98gsv3hvip0r1vw3d0jh6yml6krzdm96zp8s";
sha256_x86_64 = "0dz4k3xds1ydqr77hmrjc1w0niqq3jm3h18nk3ibqr1083l1bq7g";
sha256_i686 = "1bfabnmbar0kfx3i37wnxh97j7whkib8m6wqxrb1d9zf6k13bw50";
sha256_x86_64 = "0nfm4xqd57s8dmkgd0jsrhys8dhfw0fx5d57mq70ramq9dl2jq66";
jceName = "jce_policy-8.zip";
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";

View file

@ -2,15 +2,15 @@
callPackage ./makeRustcDerivation.nix {
shortVersion = "1.0.0-dev";
isRelease = false;
# src rev for master on 2015/03/01
srcRev = "157614249594f187f421cd97f928e64c5ab5c1fa";
srcSha = "06d6fwl1dg6wfnwa002ak89hnjplpf2sjhg78yjg4ki0ca7b0b74";
snapshotHashLinux686 = "3278ebbce8cb269acc0614dac5ddac07eab6a99c";
snapshotHashLinux64 = "72287d0d88de3e5a53bae78ac0d958e1a7637d73";
snapshotHashDarwin686 = "33b366b5287427a340a0aa6ed886d5ff4edf6a76";
snapshotHashDarwin64 = "914bf9baa32081a9d5633f1d06f4d382cd71504e";
snapshotDate = "2015-02-25";
snapshotRev = "880fb89";
# src rev for master on 2015/03/09
srcRev = "91bdf23f504f79ed59617cde3dfebd3d5e39a476";
srcSha = "1s1v1q630d88idz331n4m0c3ninzipmvfzmkvdaqqm28wsn69xx7";
snapshotHashLinux686 = "50a47ef247610fb089d2c4f24e4b641eb0ba4afb";
snapshotHashLinux64 = "ccb20709b3c984f960ddde996451be8ce2268d7c";
snapshotHashDarwin686 = "ad263bdeadcf9bf1889426e0c1391a7cf277364e";
snapshotHashDarwin64 = "01c8275828042264206b7acd8e86dc719a2f27aa";
snapshotDate = "2015-03-07";
snapshotRev = "270a677";
patches = [
./patches/head.patch
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;

View file

@ -80,6 +80,5 @@ stdenv.mkDerivation rec {
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.all;
inherit version;
updateWalker = true;
};
}

View file

@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "sbcl-${version}";
version = "1.2.8";
version = "1.2.9";
src = fetchurl {
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
sha256 = "0ab9lw056yf6y0rjmx3iirn5n59pmssqxf00fbmpyl6qsnpaja1d";
sha256 = "0pws10ylnsxj17dagqcdv0l36k3ax5k3hkc6c91n9yxh2nziagk0";
};
buildInputs = [ which ]

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
name = "scala-2.10.4";
name = "scala-2.10.5";
src = fetchurl {
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
sha256 = "1hqhm1xvd7g78jspvl30zgdzw79xq5zl837h47p6w1n6qlwbcvdl";
sha256 = "1ckyz31gmf2pgdl51h1raa669mkl7sqfdl3vqkrmyc46w5ysz3ci";
};
buildInputs = [ jre makeWrapper ] ;

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, makeWrapper, jre }:
stdenv.mkDerivation rec {
name = "scala-2.11.5";
name = "scala-2.11.6";
src = fetchurl {
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
sha256 = "0ip2nb4n68q8gqbc15dq55xfpvr0yi8fwsn8ycz4marl6qb0rhyv";
sha256 = "10v58jm0wbb4v71sfi03gskd6n84jqn6nvd62x166104c3j4bfj1";
};
buildInputs = [ jre makeWrapper ] ;

View file

@ -0,0 +1,46 @@
{ stdenv, coreutils, fetchgit, m4, libtool, clang, ghcWithPackages,
shuffle,
hashable, mtl, network, uhc-util, uulib
}:
let wrappedGhc = ghcWithPackages ( self: [hashable mtl network uhc-util uulib] );
in stdenv.mkDerivation rec {
version = "1.1.8.7";
name = "uhc-${version}";
src = fetchgit {
url = "https://github.com/UU-ComputerScience/uhc.git";
rev = "0dec07e9cb60e78bbca63fc101f8fec6e249269f";
sha256 = "0isz3qz23ihbn0rg54x8ddzwpsqlmmpkvaa66b7srfly7nciv8gl";
};
postUnpack = "sourceRoot=\${sourceRoot}/EHC";
buildInputs = [ m4 wrappedGhc clang libtool shuffle ];
configureFlags = [ "--with-gcc=${clang}/bin/clang" ];
# UHC builds packages during compilation; these are by default
# installed in the user-specific package config file. We do not
# want that, and hack the build process to use a temporary package
# configuration file instead.
preConfigure = ''
p=`pwd`/uhc-local-packages
echo '[]' > $p
sed -i "s|--user|--package-db=$p|g" mk/shared.mk.in
sed -i "s|-fglasgow-exts|-fglasgow-exts -package-conf=$p|g" mk/shared.mk.in
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/dist.mk
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/config.mk.in
sed -i "s|--make|--make -package-db=$p|g" src/ehc/files2.mk
sed -i "s|--make|--make -package-db=$p|g" src/gen/files.mk
'';
inherit clang;
meta = with stdenv.lib; {
homepage = "http://www.cs.uu.nl/wiki/UHC";
description = "Utrecht Haskell Compiler";
maintainers = [ maintainers.phausmann ];
platforms = stdenv.lib.platforms.unix;
};
}

View file

@ -220,6 +220,7 @@ self: super: {
# These packages try to execute non-existent external programs.
cmaes = dontCheck super.cmaes; # http://hydra.cryp.to/build/498725/log/raw
dbmigrations = dontCheck super.dbmigrations;
euler = dontCheck super.euler; # https://github.com/decomputed/euler/issues/1
filestore = dontCheck super.filestore;
graceful = dontCheck super.graceful;
hakyll = dontCheck super.hakyll;
@ -232,6 +233,7 @@ self: super: {
postgrest = dontCheck super.postgrest;
snowball = dontCheck super.snowball;
test-sandbox = dontCheck super.test-sandbox;
users-postgresql-simple = dontCheck super.users-postgresql-simple;
wai-middleware-hmac = dontCheck super.wai-middleware-hmac;
wai-middleware-throttle = dontCheck super.wai-middleware-throttle; # https://github.com/creichert/wai-middleware-throttle/issues/1
xmlgen = dontCheck super.xmlgen;
@ -343,6 +345,7 @@ self: super: {
http-client-openssl = dontCheck super.http-client-openssl;
http-client-tls = dontCheck super.http-client-tls;
ihaskell = dontCheck super.ihaskell;
influxdb = dontCheck super.influxdb;
itanium-abi = dontCheck super.itanium-abi;
katt = dontCheck super.katt;
language-slice = dontCheck super.language-slice;
@ -365,7 +368,7 @@ self: super: {
persistent-redis = dontCheck super.persistent-redis;
pipes-extra = dontCheck super.pipes-extra;
pipes-websockets = dontCheck super.pipes-websockets;
postgresql-binary = dontCheck super.postgresql-binary;# needs a running postgresql server
postgresql-binary = dontCheck super.postgresql-binary; # needs a running postgresql server
postgresql-simple-migration = dontCheck super.postgresql-simple-migration;
process-streaming = dontCheck super.process-streaming;
punycode = dontCheck super.punycode;
@ -393,7 +396,6 @@ self: super: {
WebBits = dontCheck super.WebBits; # http://hydra.cryp.to/build/499604/log/raw
webdriver-angular = dontCheck super.webdriver-angular;
webdriver = dontCheck super.webdriver;
xcffib = dontCheck super.xcffib;
xsd = dontCheck super.xsd;
# https://bitbucket.org/wuzzeb/webdriver-utils/issue/1/hspec-webdriver-101-cant-compile-its-test
@ -433,9 +435,6 @@ self: super: {
# https://github.com/vincenthz/hs-crypto-pubkey/issues/20
crypto-pubkey = dontCheck super.crypto-pubkey;
# https://github.com/rrnewton/haskell-lockfree/issues/44
chaselev-deque = markBrokenVersion "0.5.0.3" super.chaselev-deque;
# https://github.com/zouppen/stratum-tool/issues/14
stratum-tool = markBrokenVersion "0.0.4" super.stratum-tool;
@ -521,6 +520,7 @@ self: super: {
# Depends on broken lmdb package.
vcache = markBroken super.vcache;
vcache-trie = markBroken super.vcache-trie;
# https://github.com/afcowie/http-streams/issues/80
http-streams = dontCheck super.http-streams;
@ -537,7 +537,6 @@ self: super: {
wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK29; };
# Depends on QuickCheck 1.x.
ersatz = dontCheck (super.ersatz.override { QuickCheck = self.QuickCheck_1_2_0_1; }); # https://github.com/ekmett/ersatz/issues/8
HaVSA = super.HaVSA.override { QuickCheck = self.QuickCheck_1_2_0_1; };
test-framework-quickcheck = super.test-framework-quickcheck.override { QuickCheck = self.QuickCheck_1_2_0_1; };
@ -568,7 +567,6 @@ self: super: {
karakuri = markBroken super.karakuri;
# Upstream notified by e-mail.
snowglobe = markBroken super.snowglobe;
gearbox = markBroken super.gearbox;
# https://github.com/deech/fltkhs/issues/7
@ -608,10 +606,6 @@ self: super: {
# Broken by GLUT update.
Monadius = markBroken super.Monadius;
# https://github.com/maoe/influxdb-haskell/issues/24
influxdb = markBroken super.influxdb;
snaplet-influxdb = markBroken super.snaplet-influxdb;
# We don't have the groonga package these libraries bind to.
haroonga = markBroken super.haroonga;
haroonga-httpd = markBroken super.haroonga-httpd;
@ -620,15 +614,21 @@ self: super: {
webkit = markBroken super.webkit;
websnap = markBroken super.websnap;
# https://github.com/victoredwardocallaghan/hlibBladeRF/issues/4
hlibBladeRF = dontCheck super.hlibBladeRF;
# https://github.com/frasertweedale/hs-persona-idp/issues/1
persona-idp = markBroken super.persona-idp;
# Build is broken and no contact info available.
hopenpgp-tools = markBroken super.hopenpgp-tools;
# https://github.com/hunt-framework/hunt/issues/99
hunt-server = markBrokenVersion "0.3.0.2" super.hunt-server;
# https://github.com/bjpop/blip/issues/16
blip = markBroken super.blip;
# https://github.com/tych0/xcffib/issues/37
xcffib = markBroken super.xcffib;
# https://github.com/snapframework/snap/issues/141
# snap = overrideCabal super.snap (drv: { preConfigure = "sed -i -e 's|lens .*<4.8|lens|' snap.cabal"; });
} // {
# Not on Hackage.

View file

@ -45,7 +45,7 @@ self: super: {
deepseq = self.deepseq_1_3_0_1;
# transformers is not a core library for this compiler.
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
mtl = self.mtl_2_2_1;
transformers-compat = disableCabalFlag super.transformers-compat "three";

View file

@ -38,7 +38,7 @@ self: super: {
deepseq = self.deepseq_1_4_0_0;
# transformers is not a core library for this compiler.
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
mtl = self.mtl_2_2_1;
transformers-compat = disableCabalFlag super.transformers-compat "three";

View file

@ -35,7 +35,7 @@ self: super: {
deepseq = self.deepseq_1_4_0_0;
# transformers is not a core library for this compiler.
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
mtl = self.mtl_2_2_1;
transformers-compat = disableCabalFlag super.transformers-compat "three";

View file

@ -32,7 +32,7 @@ self: super: {
unix = null;
# transformers is not a core library for this compiler.
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
mtl = self.mtl_2_2_1;
transformers-compat = disableCabalFlag super.transformers-compat "three";

View file

@ -31,7 +31,7 @@ self: super: {
unix = null;
# transformers is not a core library for this compiler.
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
mtl = self.mtl_2_2_1;
transformers-compat = disableCabalFlag super.transformers-compat "three";

View file

@ -35,7 +35,7 @@ self: super: {
xhtml = null;
# mtl 2.2.x needs the latest transformers.
mtl_2_2_1 = super.mtl_2_2_1.override { transformers = self.transformers_0_4_2_0; };
mtl_2_2_1 = super.mtl_2_2_1.override { transformers = self.transformers_0_4_3_0; };
# Configure build for mtl 2.1.x.
mtl-compat = addBuildDepend (enableCabalFlag super.mtl-compat "two-point-one") self.transformers-compat;
@ -43,7 +43,7 @@ self: super: {
# Idris requires mtl 2.2.x.
idris = overrideCabal (super.idris.overrideScope (self: super: {
mkDerivation = drv: super.mkDerivation (drv // { doCheck = false; });
transformers = super.transformers_0_4_2_0;
transformers = super.transformers_0_4_3_0;
transformers-compat = disableCabalFlag super.transformers-compat "three";
haskeline = self.haskeline_0_7_1_3;
mtl = super.mtl_2_2_1;
@ -88,7 +88,6 @@ self: super: {
xhb-atom-cache = markBroken super.xhb-atom-cache;
xhb-ewmh = markBroken super.xhb-ewmh;
yesod-purescript = markBroken super.yesod-purescript;
yabi-muno = markBroken super.yabi-muno;
yet-another-logger = markBroken super.yet-another-logger;
# https://github.com/frosch03/arrowVHDL/issues/2
@ -120,7 +119,7 @@ self: super: {
) ];
});
mtl = self.mtl_2_2_1;
transformers = self.transformers_0_4_2_0;
transformers = self.transformers_0_4_3_0;
transformers-compat = disableCabalFlag super.transformers-compat "three";
hscolour = super.hscolour;
time = self.time_1_5_0_1;

File diff suppressed because it is too large Load diff

View file

@ -12,7 +12,7 @@
err = base ++ ".errors"
src = base ++ ".hs"
lib = dir </> "lib"
+ ghc <- fromMaybe "ghc" <$> liftIO (lookupEnv "XMONAD_GHC")
+ ghc <- fromMaybe "ghc" <$> liftIO (lookupEnv "NIX_GHC")
libTs <- mapM getModTime . Prelude.filter isSource =<< allFiles lib
srcT <- getModTime src
binT <- getModTime bin

View file

@ -1,63 +1,38 @@
x@{builderDefsPackage
, unzip
, ...}:
builderDefsPackage
(a :
let
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
[];
buildInputs = map (n: builtins.getAttr n x)
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
sourceInfo = rec {
{stdenv, fetchurl, unzip}:
let
s = # Generated upstream information
rec {
baseName="angelscript";
version = "2.29.2";
version = "2.30.0";
name="${baseName}-${version}";
url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
sha256 = "12ws4vp9iyxbgzxxdq7g9729vg1ld92f38gfznyhsknhsay4kmf5";
sha256 = "00w7h2g6g1lkq9ahsvzyk78nbdzhn1adsrns9mrqb2fbxv2wbz5d";
};
buildInputs = [
unzip
];
in
rec {
src = a.fetchurl {
url = sourceInfo.url;
sha256 = sourceInfo.sha256;
};
inherit (sourceInfo) name version;
stdenv.mkDerivation {
inherit (s) name version;
inherit buildInputs;
/* doConfigure should be removed if not needed */
phaseNames = ["prepareBuild" "doMake" "cleanLib" "doMakeInstall" "installDocs"];
prepareBuild = a.fullDepEntry ''
cd angelscript/projects/gnuc
sed -i makefile -e "s@LOCAL [?]= .*@LOCAL = $out@"
mkdir -p "$out/lib" "$out/bin" "$out/share" "$out/include"
export SHARED=1
export VERSION="${version}"
'' ["minInit" "addInputs" "doUnpack" "defEnsureDir"];
cleanLib = a.fullDepEntry ''
rm ../../lib/*
'' ["minInit"];
installDocs = a.fullDepEntry ''
mkdir -p "$out/share/angelscript"
cp -r ../../../docs "$out/share/angelscript"
'' ["defEnsureDir" "prepareBuild"];
meta = {
description = "Light-weight scripting library";
maintainers = with a.lib.maintainers;
[
raskin
];
platforms = with a.lib.platforms;
linux;
license = a.lib.licenses.zlib;
homepage="http://www.angelcode.com/angelscript/";
downloadPage = "http://www.angelcode.com/angelscript/downloads.html";
inherit version;
src = fetchurl {
inherit (s) url sha256;
};
}) x
preConfigure = ''
cd angelscript/projects/gnuc
export makeFlags="$makeFlags PREFIX=$out"
'';
postInstall = ''
mkdir -p "$out/share/docs/angelscript"
cp -r ../../../docs/* "$out/share/docs/angelscript"
'';
meta = {
inherit (s) version;
description = "Light-weight scripting library";
license = stdenv.lib.licenses.zlib ;
maintainers = [stdenv.lib.maintainers.raskin];
platforms = stdenv.lib.platforms.linux;
downloadPage = "http://www.angelcode.com/angelscript/downloads.html";
homepage="http://www.angelcode.com/angelscript/";
};
}

View file

@ -9,7 +9,7 @@ in
composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
version = "5.4.37";
version = "5.4.38";
name = "php-${version}";
@ -253,7 +253,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
src = fetchurl {
url = "http://www.php.net/distributions/php-${version}.tar.bz2";
sha256 = "1bd8yciy13v3aw4aiw57zpf8kgxpm6rcv73grp1yj2pbbrkzcyw5";
sha256 = "121ybn55c9f65r1mwiy4yks67bb6m5m5zwwx9y0vpjddryq7vwxb";
};
meta = {

View file

@ -0,0 +1,18 @@
{ stdenv, fetchurl, SDL2, freetype }:
stdenv.mkDerivation rec {
name = "SDL2_ttf-2.0.12";
src = fetchurl {
url = "https://www.libsdl.org/projects/SDL_ttf/release/${name}.tar.gz";
sha256 = "0vkg6lyj278mdpd52map3rfi65fbq16w67ahmmfcl77a8da60a47";
};
buildInputs = [SDL2 freetype];
postInstall = "ln -s $out/include/SDL2/SDL_ttf.h $out/include/";
meta = {
description = "SDL TrueType library";
};
}

View file

@ -4,4 +4,5 @@ callPackage ./generic.nix (args // {
baseVersion = "1.10";
revision = "9";
sha256 = "1wldp9py3qcdgswgxya83c03y6345a6cf3vwz0y41bl1l39jfza8";
extraConfigureFlags = "--with-gnump";
})

View file

@ -1,6 +1,7 @@
{ stdenv, fetchurl, python, bzip2, zlib, gmp, openssl, boost
# Passed by version specific builders
, baseVersion, revision, sha256
, extraConfigureFlags ? ""
, ...
}:
@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
buildInputs = [ python bzip2 zlib gmp openssl boost ];
configurePhase = ''
python configure.py --prefix=$out --with-gnump --with-bzip2 --with-zlib ${if openssl != null then "--with-openssl" else ""}
python configure.py --prefix=$out --with-bzip2 --with-zlib ${if openssl != null then "--with-openssl" else ""} ${extraConfigureFlags}
'';
enableParallelBuilding = true;

View file

@ -2,7 +2,7 @@
callPackage ./generic.nix (args // {
baseVersion = "1.11";
revision = "10";
sha256 = "06d5p0bs953r2pqfc635x2w78m3xv28gr6fmvd8whbk9qp8r91yb";
revision = "14";
sha256 = "1laa6d8w9v39a2pfmilj62jwc67r0jbq5f3xdlffd3kvkdnwcysb";
openssl = null;
})

View file

@ -4,9 +4,9 @@
let s =
rec {
version = "1.7.6";
version = "1.7.7";
name="directfb-${version}";
sha256 = "1qf94vgsbcwfa00x2aqd6795n6z43x4ghclmb4sa4bl4zfn2pws4";
sha256 = "18r7h0pwbyyk8z3pgdv77nmma8lvr1si9gl1ghxgxf1ivhwcd1dp";
url="http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-${version}.tar.gz";
}
; in

View file

@ -1,88 +1,7 @@
{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
, mp3Support ? true, lame ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
, vorbisSupport ? true, libvorbis ? null
, vpxSupport ? false, libvpx ? null
, x264Support ? true, x264 ? null
, xvidSupport ? true, xvidcore ? null
, vdpauSupport ? true, libvdpau ? null
, faacSupport ? false, faac ? null
, dc1394Support ? false, libdc1394 ? null
}:
{ callPackage, ... } @ args:
assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null;
assert vorbisSupport -> libvorbis != null;
assert vpxSupport -> libvpx != null;
assert x264Support -> x264 != null;
assert xvidSupport -> xvidcore != null;
assert vdpauSupport -> libvdpau != null;
assert faacSupport -> faac != null;
stdenv.mkDerivation rec {
name = "ffmpeg-0.10.15";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "0p9x559fpj4zxll7rn3kwdig6y66c3ahv3pddmz23lljq5rvyvcb";
};
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--disable-ffplay"
"--enable-shared"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394";
buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394;
enableParallelBuilding = true;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
passthru = {
inherit vdpauSupport;
};
meta = with stdenv.lib; {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
maintainers = with maintainers; [ lovek323 ];
platforms = platforms.unix;
branch = "0.10";
};
}
callPackage ./generic.nix (args // rec {
version = "${branch}.15";
branch = "0.10";
sha256 = "0p9x559fpj4zxll7rn3kwdig6y66c3ahv3pddmz23lljq5rvyvcb";
})

View file

@ -0,0 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.5";
branch = "0.11";
sha256 = "1h5qwn4h7sppqw36hri5p6zlv2387vwaxh2pyj070xfn8hgrk4ll";
})

View file

@ -0,0 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.15";
branch = "0.5";
sha256 = "1rcy15dv5bnpnncb78kgki9xl279bh99b76nzqdd87b61r04z74z";
})

View file

@ -1,78 +0,0 @@
{ stdenv, fetchurl, pkgconfig, yasm
, mp3Support ? true, lame ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
, vorbisSupport ? true, libvorbis ? null
, vpxSupport ? false, libvpx ? null
, x264Support ? true, x264 ? null
, xvidSupport ? true, xvidcore ? null
, vdpauSupport ? true, libvdpau ? null
, faacSupport ? false, faac ? null
}:
assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null;
assert vorbisSupport -> libvorbis != null;
assert vpxSupport -> libvpx != null;
assert x264Support -> x264 != null;
assert xvidSupport -> xvidcore != null;
assert vdpauSupport -> libvdpau != null;
assert faacSupport -> faac != null;
stdenv.mkDerivation rec {
name = "ffmpeg-0.6.90-rc0";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "1xn9fmpq2cbf1bx1gxbxnas8fq02gb8bmvvg5vjjxyw9lz5zw49f";
};
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--disable-ffserver"
"--disable-ffplay"
"--enable-shared"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
buildInputs = [ pkgconfig lame yasm ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional faacSupport faac;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
meta = {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
broken = true;
};
}

View file

@ -1,78 +0,0 @@
{ stdenv, fetchurl, pkgconfig, yasm
, mp3Support ? true, lame ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
, vorbisSupport ? true, libvorbis ? null
, vpxSupport ? false, libvpx ? null
, x264Support ? true, x264 ? null
, xvidSupport ? true, xvidcore ? null
, vdpauSupport ? true, libvdpau ? null
, faacSupport ? false, faac ? null
}:
assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null;
assert vorbisSupport -> libvorbis != null;
assert vpxSupport -> libvpx != null;
assert x264Support -> x264 != null;
assert xvidSupport -> xvidcore != null;
assert vdpauSupport -> libvdpau != null;
assert faacSupport -> faac != null;
stdenv.mkDerivation rec {
name = "ffmpeg-0.6.7";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "13l78gv2qhyw05bl9s6wkmykzsn4p04bb69a849a5c4hiffwz837";
};
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--disable-ffserver"
"--disable-ffplay"
"--enable-shared"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
buildInputs = [ pkgconfig lame yasm ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional faacSupport faac;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
meta = {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
branch = "0.6";
};
}

View file

@ -0,0 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.12";
branch = "1.2";
sha256 = "0za9w87rk4x6wkjc6iaxqx2ihlsgj181ilfgxfjc54mdgxfcjfli";
})

View file

@ -1,109 +0,0 @@
{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2, alsaLib, texinfo, perl
, mp3Support ? true, lame ? null
, speexSupport ? true, speex ? null
, theoraSupport ? true, libtheora ? null
, vorbisSupport ? true, libvorbis ? null
, vpxSupport ? false, libvpx ? null
, x264Support ? true, x264 ? null
, xvidSupport ? true, xvidcore ? null
, opusSupport ? true, libopus ? null
, vdpauSupport ? true, libvdpau ? null
, vaapiSupport ? true, libva ? null
, faacSupport ? false, faac ? null
, dc1394Support ? false, libdc1394 ? null
, x11grabSupport ? false, libXext ? null, libXfixes ? null
, playSupport ? true, SDL ? null
, freetypeSupport ? true, freetype ? null, fontconfig ? null
}:
assert speexSupport -> speex != null;
assert theoraSupport -> libtheora != null;
assert vorbisSupport -> libvorbis != null;
assert vpxSupport -> libvpx != null;
assert x264Support -> x264 != null;
assert xvidSupport -> xvidcore != null;
assert opusSupport -> libopus != null;
assert vdpauSupport -> libvdpau != null;
assert vaapiSupport -> libva != null;
assert faacSupport -> faac != null;
assert x11grabSupport -> libXext != null && libXfixes != null;
assert playSupport -> SDL != null;
assert freetypeSupport -> freetype != null;
stdenv.mkDerivation rec {
version = "1.2.10";
name = "ffmpeg-${version}";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "02wdxr55a68rjxbyrsxczp55z2qmspw8cfa0yd55x3dv82657hnj";
};
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--enable-shared"
"--enable-avresample"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional opusSupport "--enable-libopus"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
++ stdenv.lib.optional playSupport "--enable-ffplay"
++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig";
buildInputs = [ pkgconfig lame yasm zlib bzip2 alsaLib texinfo perl ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional opusSupport libopus
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional vaapiSupport libva
++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394
++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
++ stdenv.lib.optional playSupport SDL
++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ];
enableParallelBuilding = true;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
passthru = {
inherit vdpauSupport;
};
meta = {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
license = if faacSupport then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ the-kenny ];
platforms = stdenv.lib.platforms.unix;
branch = "1";
};
}

View file

@ -0,0 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.13";
branch = "2.2";
sha256 = "1vva8ffwxi3rg44byy09qlbiqrrd1h4rmsl5b1mbmvzvwl1lq1l0";
})

View file

@ -1,109 +0,0 @@
{ stdenv, fetchurl, config, pkgconfig, yasm, zlib, bzip2, alsaLib, texinfo, perl
, lame, speex, libass, libtheora, libvorbis, libvpx, x264, xvidcore, libopus
, libvdpau, libva, faac, libdc1394, libXext, libXfixes, SDL
, freetype, fontconfig, fdk_aac, gnutls
}:
stdenv.mkDerivation rec {
version = "2.2.12";
name = "ffmpeg-${version}";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "1a1ki0v7c94l68blbimh3xl5adz599ql8nrdm2q0g285qy6mqxck";
};
subtitleSupport = config.ffmpeg.subtitle or true;
mp3Support = config.ffmpeg.mp3 or true;
speexSupport = config.ffmpeg.speex or true;
theoraSupport = config.ffmpeg.theora or true;
vorbisSupport = config.ffmpeg.vorbis or true;
vpxSupport = config.ffmpeg.vpx or true;
x264Support = config.ffmpeg.x264 or true;
xvidSupport = config.ffmpeg.xvid or true;
opusSupport = config.ffmpeg.opus or true;
vdpauSupport = config.ffmpeg.vdpau or true;
vaapiSupport = config.ffmpeg.vaapi or true;
faacSupport = config.ffmpeg.faac or false;
fdkAACSupport = config.ffmpeg.fdk or false;
dc1394Support = config.ffmpeg.dc1394 or false;
x11grabSupport = config.ffmpeg.x11grab or false;
playSupport = config.ffmpeg.play or true;
freetypeSupport = config.ffmpeg.freetype or true;
gnutlsSupport = config.ffmpeg.gnutls or true;
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--enable-shared"
"--enable-avresample"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) "--enable-libass"
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional opusSupport "--enable-libopus"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) "--enable-ffplay"
++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig"
++ stdenv.lib.optional fdkAACSupport "--enable-libfdk_aac --enable-nonfree"
++ stdenv.lib.optional gnutlsSupport "--enable-gnutls";
buildInputs = [ pkgconfig lame yasm zlib bzip2 texinfo perl ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional opusSupport libopus
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional vaapiSupport libva
++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394
++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) SDL
++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ]
++ stdenv.lib.optional fdkAACSupport fdk_aac
++ stdenv.lib.optional gnutlsSupport gnutls
++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) libass
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
enableParallelBuilding = true;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
passthru = {
inherit vdpauSupport;
};
meta = {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
license = if (fdkAACSupport || faacSupport) then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
branch = "2.2";
};
}

View file

@ -0,0 +1,7 @@
{ callPackage, ... } @ args:
callPackage ./generic.nix (args // rec {
version = "${branch}.4";
branch = "2.5";
sha256 = "11m2hbhdgphjxjp6hk438cxmipqjg5ixbr1kqnn9mbdhq9kc34fc";
})

View file

@ -1,108 +0,0 @@
{ stdenv, fetchurl, config, pkgconfig, yasm, zlib, bzip2, alsaLib, texinfo, perl
, lame, speex, libass, libtheora, libvorbis, libvpx, x264, xvidcore, libopus
, libvdpau, libva, faac, libdc1394, libXext, libXfixes, SDL
, freetype, fontconfig, fdk_aac, gnutls
}:
stdenv.mkDerivation rec {
version = "2.5.4";
name = "ffmpeg-${version}";
src = fetchurl {
url = "http://www.ffmpeg.org/releases/${name}.tar.bz2";
sha256 = "11m2hbhdgphjxjp6hk438cxmipqjg5ixbr1kqnn9mbdhq9kc34fc";
};
subtitleSupport = config.ffmpeg.subtitle or true;
mp3Support = config.ffmpeg.mp3 or true;
speexSupport = config.ffmpeg.speex or true;
theoraSupport = config.ffmpeg.theora or true;
vorbisSupport = config.ffmpeg.vorbis or true;
vpxSupport = config.ffmpeg.vpx or true;
x264Support = config.ffmpeg.x264 or true;
xvidSupport = config.ffmpeg.xvid or true;
opusSupport = config.ffmpeg.opus or true;
vdpauSupport = config.ffmpeg.vdpau or true;
vaapiSupport = config.ffmpeg.vaapi or true;
faacSupport = config.ffmpeg.faac or false;
fdkAACSupport = config.ffmpeg.fdk or false;
dc1394Support = config.ffmpeg.dc1394 or false;
x11grabSupport = config.ffmpeg.x11grab or false;
playSupport = config.ffmpeg.play or true;
freetypeSupport = config.ffmpeg.freetype or true;
gnutlsSupport = config.ffmpeg.gnutls or true;
# `--enable-gpl' (as well as the `postproc' and `swscale') mean that
# the resulting library is GPL'ed, so it can only be used in GPL'ed
# applications.
configureFlags = [
"--enable-gpl"
"--enable-postproc"
"--enable-swscale"
"--enable-shared"
"--enable-avresample"
"--enable-runtime-cpudetect"
]
++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) "--enable-libass"
++ stdenv.lib.optional mp3Support "--enable-libmp3lame"
++ stdenv.lib.optional speexSupport "--enable-libspeex"
++ stdenv.lib.optional theoraSupport "--enable-libtheora"
++ stdenv.lib.optional vorbisSupport "--enable-libvorbis"
++ stdenv.lib.optional vpxSupport "--enable-libvpx"
++ stdenv.lib.optional x264Support "--enable-libx264"
++ stdenv.lib.optional xvidSupport "--enable-libxvid"
++ stdenv.lib.optional opusSupport "--enable-libopus"
++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree"
++ stdenv.lib.optional dc1394Support "--enable-libdc1394"
++ stdenv.lib.optional x11grabSupport "--enable-x11grab"
++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) "--enable-ffplay"
++ stdenv.lib.optional freetypeSupport "--enable-libfreetype --enable-fontconfig"
++ stdenv.lib.optional fdkAACSupport "--enable-libfdk_aac --enable-nonfree"
++ stdenv.lib.optional gnutlsSupport "--enable-gnutls";
buildInputs = [ pkgconfig lame yasm zlib bzip2 texinfo perl ]
++ stdenv.lib.optional mp3Support lame
++ stdenv.lib.optional speexSupport speex
++ stdenv.lib.optional theoraSupport libtheora
++ stdenv.lib.optional vorbisSupport libvorbis
++ stdenv.lib.optional vpxSupport libvpx
++ stdenv.lib.optional x264Support x264
++ stdenv.lib.optional xvidSupport xvidcore
++ stdenv.lib.optional opusSupport libopus
++ stdenv.lib.optional vdpauSupport libvdpau
++ stdenv.lib.optional vaapiSupport libva
++ stdenv.lib.optional faacSupport faac
++ stdenv.lib.optional dc1394Support libdc1394
++ stdenv.lib.optionals x11grabSupport [ libXext libXfixes ]
++ stdenv.lib.optional (!stdenv.isDarwin && playSupport) SDL
++ stdenv.lib.optionals freetypeSupport [ freetype fontconfig ]
++ stdenv.lib.optional fdkAACSupport fdk_aac
++ stdenv.lib.optional gnutlsSupport gnutls
++ stdenv.lib.optional (!stdenv.isDarwin && subtitleSupport) libass
++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
enableParallelBuilding = true;
crossAttrs = {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=linux"
"--arch=${stdenv.cross.arch}"
];
};
passthru = {
inherit vdpauSupport;
};
meta = {
homepage = http://www.ffmpeg.org/;
description = "A complete, cross-platform solution to record, convert and stream audio and video";
license = if (fdkAACSupport || faacSupport) then stdenv.lib.licenses.unfree else stdenv.lib.licenses.gpl2Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ fuuzetsu ];
};
}

View file

@ -0,0 +1,527 @@
{ stdenv, fetchurl, pkgconfig, perl, texinfo, yasm
/*
* Licensing options (yes some are listed twice, filters and such are not listed)
*/
, gplLicensing ? true # GPL: fdkaac,openssl,frei0r,cdio,samba,utvideo,vidstab,x265,x265,xavs,avid,zvbi,x11grab
, version3Licensing ? true # (L)GPL3: opencore-amrnb,opencore-amrwb,samba,vo-aacenc,vo-amrwbenc
, nonfreeLicensing ? false # NONFREE: openssl,fdkaac,faac,aacplus,blackmagic-design-desktop-video
/*
* Build options
*/
, smallBuild ? false # Optimize for size instead of speed
, runtime-cpudetectBuild ? true # Detect CPU capabilities at runtime (disable to compile natively)
, grayBuild ? true # Full grayscale support
, swscale-alphaBuild ? true # Alpha channel support in swscale
, incompatible-libav-abiBuild ? false # Incompatible Libav fork ABI
, hardcoded-tablesBuild ? true # Hardcode decode tables instead of runtime generation
, safe-bitstream-readerBuild ? true # Buffer boundary checking in bitreaders
, memalign-hackBuild ? false # Emulate memalign
, multithreadBuild ? true # Multithreading via pthreads/win32 threads
, networkBuild ? true # Network support
, pixelutilsBuild ? true # Pixel utils in libavutil
/*
* Program options
*/
, ffmpegProgram ? true # Build ffmpeg executable
, ffplayProgram ? true # Build ffplay executable
, ffprobeProgram ? true # Build ffprobe executable
, ffserverProgram ? true # Build ffserver executable
, qt-faststartProgram ? true # Build qt-faststart executable
/*
* Library options
*/
, avcodecLibrary ? true # Build avcodec library
, avdeviceLibrary ? true # Build avdevice library
, avfilterLibrary ? true # Build avfilter library
, avformatLibrary ? true # Build avformat library
, avresampleLibrary ? true # Build avresample library
, avutilLibrary ? true # Build avutil library
, postprocLibrary ? true # Build postproc library
, swresampleLibrary ? true # Build swresample library
, swscaleLibrary ? true # Build swscale library
/*
* Documentation options
*/
, htmlpagesDocumentation ? false # HTML documentation pages
, manpagesDocumentation ? true # Man documentation pages
, podpagesDocumentation ? false # POD documentation pages
, txtpagesDocumentation ? false # Text documentation pages
/*
* External libraries options
*/
#, aacplusExtlib ? false, aacplus ? null # AAC+ encoder
, alsaLib ? null # Alsa in/output support
#, avisynth ? null # Support for reading AviSynth scripts
, bzip2 ? null
, celt ? null # CELT decoder
#, crystalhd ? null # Broadcom CrystalHD hardware acceleration
#, decklinkExtlib ? false, blackmagic-design-desktop-video ? null # Blackmagic Design DeckLink I/O support
, faacExtlib ? false, faac ? null # AAC encoder
, faad2Extlib ? false, faad2 ? null # AAC decoder - DEPRECATED
, fdk-aacExtlib ? false, fdk_aac ? null # Fraunhofer FDK AAC de/encoder
#, flite ? null # Flite (voice synthesis) support
, fontconfig ? null # Needed for drawtext filter
, freetype ? null # Needed for drawtext filter
, frei0r ? null # frei0r video filtering
, fribidi ? null # Needed for drawtext filter
, game-music-emu ? null # Game Music Emulator
, gnutls ? null
, gsm ? null # GSM de/encoder
#, ilbc ? null # iLBC de/encoder
, jack2 ? null # Jack audio (only version 2 is supported in this build)
, ladspaH ? null # LADSPA audio filtering
, lame ? null # LAME MP3 encoder
, libass ? null # (Advanced) SubStation Alpha subtitle rendering
, libbluray ? null # BluRay reading
, libbs2b ? null # bs2b DSP library
, libcaca ? null # Textual display (ASCII art)
#, libcdio-paranoia ? null # Audio CD grabbing
, libdc1394 ? null, libraw1394 ? null # IIDC-1394 grabbing (ieee 1394)
, libiconv ? null
#, libiec61883 ? null, libavc1394 ? null # iec61883 (also uses libraw1394)
#, libmfx ? null # Hardware acceleration vis libmfx
, libmodplug ? null # ModPlug support
#, libnut ? null # NUT (de)muxer, native (de)muser exists
, libogg ? null # Ogg container used by vorbis & theora
, libopus ? null # Opus de/encoder
, libsndio ? null # sndio playback/record support
, libssh ? null # SFTP protocol
, libtheora ? null # Theora encoder
, libva ? null # Vaapi hardware acceleration
, libvdpau ? null # Vdpau hardware acceleration
, libvorbis ? null # Vorbis de/encoding, native encoder exists
, libvpx ? null # VP8 & VP9 de/encoding
, libwebp ? null # WebP encoder
, libX11 ? null # Xlib support
, libxcb ? null # X11 grabbing using XCB
, libxcb-shmExtlib ? true # X11 grabbing shm communication
, libxcb-xfixesExtlib ? true # X11 grabbing mouse rendering
, libxcb-shapeExtlib ? true # X11 grabbing shape rendering
, libXv ? null # Xlib support
, lzma ? null # xz-utils
#, nvenc ? null # NVIDIA NVENC support
, openal ? null # OpenAL 1.1 capture support
#, opencl ? null # OpenCL code
#, opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
, opencv ? null # Video filtering
, openglExtlib ? false, mesa ? null # OpenGL rendering
#, openh264 ? null # H.264/AVC encoder
, openjpeg_1 ? null # JPEG 2000 de/encoder
, opensslExtlib ? false, openssl ? null
, pulseaudio ? null # Pulseaudio input support
, rtmpdump ? null # RTMP[E] support
#, libquvi ? null # Quvi input support
, sambaExtlib ? false, samba ? null # Samba protocol
#, schroedinger ? null # Dirac de/encoder
, SDL ? null
#, shine ? null # Fixed-point MP3 encoder
, soxr ? null # Resampling via soxr
, speex ? null # Speex de/encoder
#, twolame ? null # MP2 encoder
#, utvideo ? null # Ut Video de/encoder
, v4l_utils ? null # Video 4 Linux support
, vid-stab ? null # Video stabilization
#, vo-aacenc ? null # AAC encoder
#, vo-amrwbenc ? null # AMR-WB encoder
, wavpack ? null # Wavpack encoder
, x11grabExtlib ? false, libXext ? null, libXfixes ? null # X11 grabbing (legacy)
, x264 ? null # H.264/AVC encoder
, x265 ? null # H.265/HEVC encoder
, xavs ? null # AVS encoder
, xvidcore ? null # Xvid encoder, native encoder exists
, zeromq4 ? null # Message passing
, zlib ? null
#, zvbi ? null # Teletext support
/*
* Developer options
*/
, debugDeveloper ? false
, optimizationsDeveloper ? true
, extra-warningsDeveloper ? false
, strippingDeveloper ? false
/*
* Inherit generics
*/
, branch, sha256, version, ...
}:
/* Maintainer notes:
*
* Version bumps:
* It should always be safe to bump patch releases (e.g. 2.1.x, x being a patch release)
* If adding a new branch, note any configure flags that were added, changed, or deprecated/removed
* and make the necessary changes.
*
* En/disabling in/outdevs was added in 0.6
*
* Packages with errors:
* flite ilbc schroedinger
*
* Not packaged:
* aacplus avisynth cdio-paranoia crystalhd libavc1394 libiec61883
* libmxf libnut libquvi nvenc opencl opencore-amr openh264 oss shine twolame
* utvideo vo-aacenc vo-amrwbenc xvmc zvbi blackmagic-design-desktop-video
*
* Not supported:
* stagehright-h264(android only)
*
* Known issues:
* 0.5 - libgsm: configure fails to find library (fix: disable for 0.5)
* 0.5-0.8 - qt-quickstart: make error (fix: disable for 0.5-0.8)
* 0.6 - fails to compile (unresolved) (so far, only disabling a number of features
* works, but that is not a feasible solution)
* 0.6.90 - mmx: compile errors (fix: disable for 0.6.90-rc0)
* 0.7-1.1 - opencv: compile error, flag added in 0.7 (fix: disable for 0.7-1.1)
* 1.1 - libsoxr: compile error (fix: disable for 1.1)
* Support was initially added in 1.1 before soxr api change, fix would probably be to add soxr-1.0
* 2.0-2.1 - vid-stab: compile errors, flag added in 2.0 (fix: disable for 2.0-2.1)
* Recent changes (circa 2014) more than likely broke compatibility and a fix has not been back ported
* ALL - flite: configure fails to find library (tested against 1.4 & 1.9 & 2.0)
* Tried modifying configure and flite to use pkg-config
* ALL - Cross-compiling will disable features not present on host OS
* (e.g. dxva2 support [DirectX] will not be enabled unless natively compiled on Cygwin)
*
*/
let
# Minimum/maximun/matching version
cmpVer = builtins.compareVersions;
reqMin = requiredVersion: (cmpVer requiredVersion branch != 1);
reqMax = requiredVersion: (cmpVer branch requiredVersion != 1);
reqMatch = requiredVersion: (cmpVer requiredVersion branch == 0);
# Configure flag
mkFlag = optSet: minVer: flag: if reqMin minVer then (
if optSet then "--enable-${flag}" else "--disable-${flag}")
else null;
# Deprecated configure flag (e.g. faad2)
depFlag = optSet: minVer: maxVer: flag: if reqMin minVer && reqMax maxVer then mkFlag optSet minVer flag else null;
# Version specific fix
verFix = withoutFix: fixVer: withFix: if reqMatch fixVer then withFix else withoutFix;
# Flag change between versions (e.g. "--enable-armvfp" -> "--enable-vfp" changed in v1.1)
chgFlg = chgVer: oldFlag: newFlag: if reqMin chgVer then newFlag else oldFlag;
isCygwin = stdenv.isCygwin;
in
/*
* Licensing dependencies
*/
assert version3Licensing && reqMin "0.5" -> gplLicensing;
assert nonfreeLicensing && reqMin "0.5" -> gplLicensing && version3Licensing;
/*
* Build dependencies
*/
assert networkBuild -> gnutls != null || opensslExtlib;
assert pixelutilsBuild -> avutilLibrary;
/*
* Program dependencies
*/
assert ffmpegProgram && reqMin "0.5" -> avcodecLibrary
&& avfilterLibrary
&& avformatLibrary
&& swresampleLibrary;
assert ffplayProgram && reqMin "0.5" -> avcodecLibrary
&& avformatLibrary
&& swscaleLibrary
&& swresampleLibrary
&& SDL != null;
assert ffprobeProgram && reqMin "0.6" -> avcodecLibrary && avformatLibrary;
assert ffserverProgram && reqMin "0.5" -> avformatLibrary;
/*
* Library dependencies
*/
assert avcodecLibrary && reqMin "0.6" -> avutilLibrary; # configure flag since 0.6
assert avdeviceLibrary && reqMin "0.6" -> avformatLibrary
&& avcodecLibrary
&& avutilLibrary; # configure flag since 0.6
assert avformatLibrary && reqMin "0.6" -> avcodecLibrary && avutilLibrary; # configure flag since 0.6
assert avresampleLibrary && reqMin "0.11" -> avutilLibrary;
assert postprocLibrary && reqMin "0.5" -> gplLicensing && avutilLibrary;
assert swresampleLibrary && reqMin "0.9" -> soxr != null;
assert swscaleLibrary && reqMin "0.5" -> avutilLibrary;
/*
* External libraries
*/
#assert aacplusExtlib && reqMin "0.7" -> nonfreeLicensing;
#assert cdio-paranoia != null && reqMin "0.9" -> gplLicensing;
#assert decklinkExtlib && reqMin "2.2" -> blackmagic-design-desktop-video != null
# && !isCygwin && multithreadBuild # POSIX threads required
# && nonfreeLicensing;
assert faacExtlib && reqMin "0.5" -> faac != null && nonfreeLicensing;
assert fdk-aacExtlib && reqMin "1.0" -> fdk_aac != null && gplLicensing && nonfreeLicensing;
assert frei0r != null && reqMin "0.7" -> gplLicensing;
assert gnutls != null && reqMin "0.9" -> !opensslExtlib;
assert libxcb-shmExtlib && reqMin "2.5" -> libxcb != null;
assert libxcb-xfixesExtlib && reqMin "2.5" -> libxcb != null;
assert libxcb-shapeExtlib && reqMin "2.5" -> libxcb != null;
#assert opencore-amr != null && reqMin "0.5" -> version3Licensing;
assert openglExtlib && reqMin "2.2" -> mesa != null;
assert opensslExtlib && reqMin "0.9" -> gnutls == null && openssl != null && gplLicensing && nonfreeLicensing;
assert sambaExtlib && reqMin "2.3" -> samba != null && gplLicensing && version3Licensing;
#assert utvideo != null && reqMin "0.9" -> gplLicensing;
assert vid-stab != null && reqMin "2.0" -> gplLicensing;
#assert vo-aacenc != null && reqMin "0.6" -> version3Licensing;
#assert vo-amrwbenc != null && reqMin "0.7" -> version3Licensing;
assert x11grabExtlib && reqMin "0.5" -> libX11 != null && libXv != null && gplLicensing;
assert x264 != null && reqMin "0.5" -> gplLicensing;
assert x265 != null && reqMin "2.2" -> gplLicensing;
assert xavs != null && reqMin "0.7" -> gplLicensing;
assert xvidcore != null && reqMin "0.5" -> gplLicensing;
#assert zvbi != null && reqMin "2.1" -> gplLicensing;
with stdenv.lib;
stdenv.mkDerivation rec {
name = "ffmpeg-${version}";
inherit version;
src = fetchurl {
url = "https://www.ffmpeg.org/releases/${name}.tar.bz2";
inherit sha256;
};
patchPhase = ''patchShebangs .'';
configureFlags = [
/*
* Licensing flags
*/
(mkFlag gplLicensing "0.5" "gpl")
(mkFlag version3Licensing "0.5" "version3")
(mkFlag nonfreeLicensing "0.5" "nonfree")
/*
* Build flags
*/
# One some ARM platforms --enable-thumb
"--enable-shared --disable-static"
(mkFlag true "0.6" "pic")
(mkFlag smallBuild "0.5" "small")
(mkFlag runtime-cpudetectBuild "0.5" "runtime-cpudetect")
(mkFlag grayBuild "0.5" "gray")
(mkFlag swscale-alphaBuild "0.6" "swscale-alpha")
(mkFlag incompatible-libav-abiBuild "2.0" "incompatible-libav-abi")
(mkFlag hardcoded-tablesBuild "0.5" "hardcoded-tables")
(mkFlag safe-bitstream-readerBuild "0.9" "safe-bitstream-reader")
(mkFlag memalign-hackBuild "0.5" "memalign-hack")
(if reqMin "0.5" then (
if multithreadBuild then (
if isCygwin then
"--disable-pthreads --enable-w32threads"
else # Use POSIX threads by default
"--enable-pthreads --disable-w32threads")
else
"--disable-pthreads --disable-w32threads")
else null)
(if reqMin "0.9" then "--disable-os2threads" else null) # We don't support OS/2
(mkFlag networkBuild "0.5" "network")
(mkFlag pixelutilsBuild "2.4" "pixelutils")
/*
* Program flags
*/
(mkFlag ffmpegProgram "0.5" "ffmpeg")
(mkFlag ffplayProgram "0.5" "ffplay")
(mkFlag ffprobeProgram "0.6" "ffprobe")
(mkFlag ffserverProgram "0.5" "ffserver")
/*
* Library flags
*/
(mkFlag avcodecLibrary "0.6" "avcodec")
(mkFlag avdeviceLibrary "0.6" "avdevice")
(mkFlag avfilterLibrary "0.5" "avfilter")
(mkFlag avformatLibrary "0.6" "avformat")
(mkFlag avresampleLibrary "1.0" "avresample")
(mkFlag avutilLibrary "1.1" "avutil")
(mkFlag postprocLibrary "0.5" "postproc")
(mkFlag swresampleLibrary "0.9" "swresample")
(mkFlag swscaleLibrary "0.5" "swscale")
/*
* Documentation flags
*/
(mkFlag (htmlpagesDocumentation
|| manpagesDocumentation
|| podpagesDocumentation
|| txtpagesDocumentation) "0.6" "doc")
(mkFlag htmlpagesDocumentation "1.0" "htmlpages")
(mkFlag manpagesDocumentation "1.0" "manpages")
(mkFlag podpagesDocumentation "1.0" "podpages")
(mkFlag txtpagesDocumentation "1.0" "txtpages")
/*
* External libraries
*/
#(mkFlag aacplus "0.7" "libaacplus")
#(mkFlag avisynth "0.5" "avisynth")
(mkFlag (bzip2 != null) "0.5" "bzlib")
(mkFlag (celt != null) "0.8" "libcelt")
#crystalhd
#(mkFlag decklinkExtlib "2.2" "decklink")
(mkFlag faacExtlib "0.5" "libfaac")
(depFlag faad2Extlib "0.5" "0.6" "libfaad")
(mkFlag fdk-aacExtlib "1.0" "libfdk-aac")
#(mkFlag (flite != null) "1.0" "libflite")
(if reqMin "1.0" then # Force disable until a solution is found
"--disable-libflite"
else null)
(mkFlag (fontconfig != null) "1.0" "fontconfig")
(mkFlag (freetype != null) "0.7" "libfreetype")
(mkFlag (frei0r != null) "0.7" "frei0r")
(mkFlag (fribidi != null) "2.3" "libfribidi")
(mkFlag (game-music-emu != null) "2.2" "libgme")
(mkFlag (gnutls != null) "0.9" "gnutls")
(verFix (mkFlag (gsm != null) "0.5" "libgsm") "0.5" "--disable-libgsm")
#(mkFlag (ilbc != null) "1.0" "libilbc")
(mkFlag (ladspaH !=null) "2.1" "ladspa")
(mkFlag (lame != null) "0.5" "libmp3lame")
(mkFlag (libass != null) "0.9" "libass")
#(mkFlag (libavc1394 != null) null null)
(mkFlag (libbluray != null) "1.0" "libbluray")
(mkFlag (libbs2b != null) "2.3" "libbs2b")
(mkFlag (libcaca != null) "1.0" "libcaca")
#(mkFlag (cdio-paranoia != null) "0.9" "libcdio")
(mkFlag (libdc1394 != null && libraw1394 != null) "0.5" "libdc1394")
(mkFlag (libiconv != null) "1.2" "iconv")
#(mkFlag (libiec61883 != null && libavc1394 != null && libraw1394 != null) "1.0" "libiec61883")
(mkFlag (libmfz != null) "2.6" "libmfx")
(mkFlag (libmodplug != null) "0.9" "libmodplug")
#(mkFlag (libnut != null) "0.5" "libnut")
(mkFlag (libopus != null) "1.0" "libopus")
(mkFlag (libssh != null) "2.1" "libssh")
(mkFlag (libtheora != null) "0.5" "libtheora")
(mkFlag (libva != null) "0.6" "vaapi")
(mkFlag (libvdpau != null) "0.5" "vdpau")
(mkFlag (libvorbis != null) "0.5" "libvorbis")
(mkFlag (libvpx != null) "0.6" "libvpx")
(mkFlag (libwebp != null) "2.2" "libwebp")
(mkFlag (libX11 != null && libXv != null) "2.3" "xlib")
(mkFlag (libxcb != null) "2.5" "libxcb")
(mkFlag libxcb-shmExtlib "2.5" "libxcb-shm")
(mkFlag libxcb-xfixesExtlib "2.5" "libxcb-xfixes")
(mkFlag libxcb-shapeExtlib "2.5" "libxcb-shape")
(mkFlag (lzma != null) "2.4" "lzma")
#(mkFlag nvenc "2.6" "nvenc")
(mkFlag (openal != null) "0.9" "openal")
#(mkFlag opencl "2.2" "opencl")
#(mkFlag (opencore-amr != null) "0.5" "libopencore-amrnb")
#(mkFlag (opencore-amr != null) "0.5" "libopencore-amrwb")
(mkFlag (opencv != null) "1.1" "libopencv") # Actual min. version 0.7
(mkFlag openglExtlib "2.2" "opengl")
#(mkFlag (openh264 != null) "2.6" "openh264")
(mkFlag (openjpeg_1 != null) "0.5" "libopenjpeg")
(mkFlag opensslExtlib "0.9" "openssl")
(mkFlag (pulseaudio != null) "0.9" "libpulse")
#(mkFlag quvi "2.0" "libquvi")
(mkFlag (rtmpdump != null) "0.6" "librtmp")
#(mkFlag (schroedinger != null) "0.5" "libschroedinger")
#(mkFlag (shine != null) "2.0" "libshine")
(mkFlag sambaExtlib "2.3" "libsmbclient")
(mkFlag (SDL != null) "2.5" "sdl") # Only configurable since 2.5, auto detected before then
(mkFlag (soxr != null) "1.2" "libsoxr")
(mkFlag (speex != null) "0.5" "libspeex")
#(mkFlag (twolame != null) "1.0" "libtwolame")
#(mkFlag (utvideo != null) "0.9" "libutvideo")
(mkFlag (v4l_utils != null) "0.9" "libv4l2")
(mkFlag (vid-stab != null) "2.2" "libvidstab") # Actual min. version 2.0
#(mkFlag (vo-aacenc != null) "0.6" "libvo-aacenc")
#(mkFlag (vo-amrwbenc) "0.7" "libvo-amrwbenc")
(mkFlag (wavpack != null) "2.0" "libwavpack")
(mkFlag (x11grabExtlib) "0.5" "x11grab")
(mkFlag (x264 != null) "0.5" "libx264")
(mkFlag (x265 != null) "2.2" "libx265")
(mkFlag (xavs != null) "0.7" "libxavs")
(mkFlag (xvidcore != null) "0.5" "libxvid")
(mkFlag (zeromq4 != null) "2.0" "libzmq")
(mkFlag (zlib != null) "0.5" "zlib")
#(mkFlag (zvbi != null) "2.1" "libzvbi")
/*
* Developer flags
*/
(mkFlag debugDeveloper "0.5" "debug")
(mkFlag optimizationsDeveloper "0.5" "optimizations")
(mkFlag extra-warningsDeveloper "0.5" "extra-warnings")
(mkFlag strippingDeveloper "0.5" "stripping")
# Disable mmx support for 0.6.90
(verFix null "0.6.90" "--disable-mmx")
];
nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
buildInputs = [
alsaLib bzip2 celt faad2 fdk_aac fontconfig freetype frei0r fribidi
game-music-emu gnutls gsm jack2 ladspaH lame libass libbluray libbs2b
libcaca libdc1394 libmodplug libogg libopus libraw1394 libssh libtheora
libva libvdpau libvpx libvorbis libwebp libX11 libxcb libXext libXfixes
libXv lzma mesa openal opencv openjpeg_1 openssl pulseaudio rtmpdump
samba SDL soxr speex v4l_utils vid-stab wavpack x264 x265 xavs xvidcore
zeromq4 zlib
] ++ optional faacExtlib faac;
# Build qt-faststart executable
buildPhase = optional (qt-faststartProgram && (reqMin "0.9")) ''make tools/qt-faststart'';
postInstall = optional (qt-faststartProgram && (reqMin "0.9")) ''cp -a tools/qt-faststart $out/bin/'';
enableParallelBuilding = true;
/* Cross-compilation is untested, consider this an outline, more work
needs to be done to portions of the build to get it to work correctly */
crossAttrs = let
os = ''
if [ "${stdenv.cross.config}" = "*cygwin*" ] ; then
# Probably should look for mingw too
echo "cygwin"
elif [ "${stdenv.cross.config}" = "*darwin*" ] ; then
echo "darwin"
elif [ "${stdenv.cross.config}" = "*freebsd*" ] ; then
echo "freebsd"
elif [ "${stdenv.cross.config}" = "*linux*" ] ; then
echo "linux"
elif [ "${stdenv.cross.config}" = "*netbsd*" ] ; then
echo "netbsd"
elif [ "${stdenv.cross.config}" = "*openbsd*" ] ; then
echo "openbsd"
fi
'';
in {
dontSetConfigureCross = true;
configureFlags = configureFlags ++ [
"--cross-prefix=${stdenv.cross.config}-"
"--enable-cross-compile"
"--target_os=${os}"
"--arch=${stdenv.cross.arch}"
];
};
/* TODO: In the future more FFmpeg optionals should be added so that packages that
depend on FFmpeg can check to make sure a required feature is enabled. Since
features are version dependent, versioning needs to be handled as well */
passthru = {
vdpauSupport = libvdpau != null;
};
meta = {
description = "A complete, cross-platform solution to record, convert and stream audio and video";
homepage = http://www.ffmpeg.org/;
longDescription = ''
FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
mux, demux, stream, filter and play pretty much anything that humans and machines
have created. It supports the most obscure ancient formats up to the cutting edge.
No matter if they were designed by some standards committee, the community or
a corporation.
'';
licenses = (
if nonfreeLicensing then
licenses.unfreeRedistributable
else if version3Licensing then
licenses.gpl3
else if gplLicensing then
licenses.gpl2Plus
else
licenses.lgpl21Plus
);
platforms = platforms.all;
maintainers = with maintainers; [ codyopel fuuzetsu ];
inherit branch;
};
}

View file

@ -6,16 +6,24 @@
, libsoup
}:
stdenv.mkDerivation {
name = "swt-3.7.2-201202080800";
let metadata = if stdenv.system == "i686-linux"
then { arch = "x86"; sha256 = "10si8kmc7c9qmbpzs76609wkfb784pln3qpmra73gb3fbk7z8caf"; }
else if stdenv.system == "x86_64-linux"
then { arch = "x86_64"; sha256 = "0hq48zfqx2p0fqr0rlabnz2pdj0874k19918a4dbj0fhzkhrh959"; }
else { };
in stdenv.mkDerivation rec {
version = "3.7.2";
fullVersion = "${version}-201202080800";
name = "swt-${version}";
builder = ./builder.sh;
# Alas, the Eclipse Project apparently doesn't produce source-only
# releases of SWT. So we just grab a binary release and extract
# "src.zip" from that.
src = fetchurl {
url = "http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/swt-3.7.2-gtk-linux-x86.zip";
sha256 = "10si8kmc7c9qmbpzs76609wkfb784pln3qpmra73gb3fbk7z8caf";
url = "http://archive.eclipse.org/eclipse/downloads/drops/R-${fullVersion}/${name}-gtk-linux-${metadata.arch}.zip";
sha256 = metadata.sha256;
};
buildInputs = [unzip jdk pkgconfig gtk libXtst libXi mesa webkit libsoup];

View file

@ -8,6 +8,12 @@ stdenv.mkDerivation {
sha256 = "1sv3990vsx8hrza1mvq3bhvv9m6ff08y4yz7swn6znszz24l0w6j";
};
# gcc 4.8 optimisations break judy.
# http://sourceforge.net/p/judy/mailman/message/31995144/
preConfigure = ''
configureFlagsArray+=("CFLAGS=-fno-strict-aliasing -fno-aggressive-loop-optimizations")
'';
meta = {
homepage = http://judy.sourceforge.net/;
license = stdenv.lib.licenses.lgpl21Plus;

View file

@ -56,8 +56,8 @@ let
Qt5DBus = qt5.base;
Qt5Gui = qt5.base;
Qt5LinguistTools = qt5.tools;
Qt5Qml = qt5.declarative;
Qt5Quick = qt5.quickcontrols;
Qt5Qml = [qt5.declarative qt5.graphicaleffects];
Qt5Quick = [qt5.quickcontrols qt5.graphicaleffects];
Qt5Script = qt5.script;
Qt5Svg = qt5.svg;
Qt5WebkitWidgets = qt5.webkit;

View file

@ -1,11 +1,11 @@
{ fetchurl, stdenv, libgpgerror, transfig, ghostscript, texinfo }:
stdenv.mkDerivation rec {
name = "libgcrypt-1.6.2";
name = "libgcrypt-1.6.3";
src = fetchurl {
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
sha256 = "de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c";
sha256 = "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21";
};
nativeBuildInputs = [ transfig ghostscript texinfo ];
@ -18,12 +18,6 @@ stdenv.mkDerivation rec {
doCheck = true;
# For some reason the tests don't find `libgpg-error.so'.
checkPhase = ''
LD_LIBRARY_PATH="${libgpgerror}/lib:$LD_LIBRARY_PATH" \
make check
'';
crossAttrs = let
isCross64 = stdenv.cross.config == "x86_64-w64-mingw32";
in stdenv.lib.optionalAttrs isCross64 {

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, gettext }:
stdenv.mkDerivation rec {
name = "libgpg-error-1.17";
name = "libgpg-error-1.18";
src = fetchurl {
url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
sha256 = "1dapxzxl1naghf342fwfc2w2f2c5hb9gr1a1s4n8dsqn26kybx1z";
sha256 = "0408v19h3h0q6w61g51hgbdg6cyw81nyzkh70qfprvsc3pkddwcz";
};
postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure";

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "libyubikey-1.12";
name = "libyubikey-1.13";
src = fetchurl {
url = "https://developers.yubico.com/yubico-c/Releases/${name}.tar.gz";
sha256 = "1f0plzmr1gwry4rfgq9q70v6qwqny009hac289ad5m6sj7vqflxr";
sha256 = "009l3k2zyn06dbrlja2d4p2vfnzjhlcqxi88v02mlrnb17mx1v84";
};
meta = with stdenv.lib; {

View file

@ -0,0 +1,25 @@
{ fetchurl, stdenv }:
stdenv.mkDerivation rec {
version = "v1.1.6";
name = "utf8proc-${version}";
src = fetchurl {
url = "http://www.public-software-group.org/pub/projects/utf8proc/${version}/utf8proc-${version}.tar.gz";
sha256 = "1rwr84pw92ajjlbcxq0da7yxgg3ijngmrj7vhh2qzsr2h2kqzp7y";
};
installPhase = ''
mkdir -pv $out/lib $out/include
cp libutf8proc.so libutf8proc.a $out/lib
cp utf8proc.h $out/include
'';
meta = {
description = "A library for processing UTF-8 encoded Unicode strings";
homepage = http://www.public-software-group.org/utf8proc;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.all;
};
}

View file

@ -0,0 +1,24 @@
{ stdenv, fetchurl, ocaml, findlib, type_conv, camlp4 }:
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.00";
stdenv.mkDerivation {
name = "ocaml-enumerate-111.08.00";
src = fetchurl {
url = https://ocaml.janestreet.com/ocaml-core/111.08.00/individual/enumerate-111.08.00.tar.gz;
sha256 = "0b6mx5p01lcpimvak4wx6aj2119707wsfzd83rwgb91bhpgzh156";
};
buildInputs = [ ocaml findlib ];
propagatedBuildInputs = [ type_conv camlp4 ];
createFindlibDestdir = true;
meta = {
homepage = https://ocaml.janestreet.com/;
description = "Quotation expanders for enumerating finite types";
license = stdenv.lib.licenses.asl20;
platforms = ocaml.meta.platforms;
};
}

View file

@ -16,13 +16,13 @@ wrapPythonProgramsIn() {
done
for i in $(find "$dir" -type f -perm +0100); do
# Rewrite "#! .../env python" to "#! /nix/store/.../python".
if head -n1 "$i" | grep -q '#!.*/env.*\(python\|pypy\)'; then
sed -i "$i" -e "1 s^.*/env[ ]*\(python\|pypy\)^#! $python^"
fi
if head -n1 "$i" | grep -q '/python\|/pypy'; then
# catch /python and /.python-wrapped
if head -n1 "$i" | grep -q '/\.\?\(python\|pypy\)'; then
# dont wrap EGG-INFO scripts since they are called from python
if echo "$i" | grep -v EGG-INFO/scripts; then
echo "wrapping \`$i'..."

View file

@ -1,8 +1,17 @@
Index: b/gevent/ssl.py
===================================================================
From 485cebc4d9bab2dae51cf29f91fad2f1cf157fec Mon Sep 17 00:00:00 2001
From: Eugene Pankov <john.pankov@gmail.com>
Date: Sun, 21 Sep 2014 12:04:13 +0300
Subject: [PATCH] Work around missing sslwrap in Python 2.7.9 (fixes #477)
---
gevent/_ssl2.py | 28 ++++++++++++++++++++--------
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/gevent/ssl.py b/gevent/ssl.py
index 21491b7..85e6a86 100644
--- a/gevent/ssl.py
+++ b/gevent/ssl.py
@@ -81,15 +81,14 @@ class SSLSocket(socket):
@@ -80,15 +80,27 @@ def __init__(self, sock, keyfile=None, certfile=None,
self._sslobj = None
else:
# yes, create the SSL object
@ -10,19 +19,31 @@ Index: b/gevent/ssl.py
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
- keyfile, certfile,
- cert_reqs, ssl_version, ca_certs)
- else:
+ if hasattr(_ssl, 'sslwrap'):
+ if ciphers is None:
+ self._sslobj = _ssl.sslwrap(self._sock, server_side,
+ keyfile, certfile,
+ cert_reqs, ssl_version, ca_certs)
+ else:
+ self._sslobj = _ssl.sslwrap(self._sock, server_side,
+ keyfile, certfile,
+ cert_reqs, ssl_version, ca_certs,
+ ciphers)
else:
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
- keyfile, certfile,
- cert_reqs, ssl_version, ca_certs,
- ciphers)
+ ctx = __ssl__.SSLContext(ssl_version)
+ if keyfile or certfile:
+ ctx.load_cert_chain(certfile, keyfile)
+ if ca_certs:
+ ctx.load_verify_locations(ca_certs)
+ if ciphers:
+ ctx.set_ciphers(ciphers)
+ self._sslobj = ctx._wrap_socket(self._sock, server_side=server_side)
+ self.context = __ssl__.SSLContext(ssl_version)
+ self.context.verify_mode = cert_reqs
+ if ca_certs:
+ self.context.load_verify_locations(ca_certs)
+ if certfile:
+ self.context.load_cert_chain(certfile, keyfile)
+ if ciphers:
+ self.context.set_ciphers(ciphers)
+ self._sslobj = self.context._wrap_socket(self._sock, server_side=server_side, ssl_sock=self)
+
if do_handshake_on_connect:
self.do_handshake()
self.keyfile = keyfile

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