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:
commit
6694ef42a9
|
@ -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>";
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ instance, if you try to define an option that doesn’t exist (that is,
|
|||
doesn’t 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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
});
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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" ]
|
||||
''
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -381,6 +381,8 @@ in
|
|||
|
||||
UsePAM yes
|
||||
|
||||
UsePrivilegeSeparation sandbox
|
||||
|
||||
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
|
||||
${concatMapStrings (port: ''
|
||||
Port ${toString port}
|
||||
|
|
|
@ -171,6 +171,9 @@ let
|
|||
|
||||
SSLRandomSeed startup builtin
|
||||
SSLRandomSeed connect builtin
|
||||
|
||||
SSLProtocol All -SSLv2 -SSLv3
|
||||
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!EXP
|
||||
'';
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
''
|
||||
|
|
|
@ -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 ];
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
|
|
|
@ -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"))
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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 =
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 = ''
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
}
|
|
@ -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 ];
|
||||
|
|
|
@ -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
|
@ -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 ];
|
||||
};
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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"; }
|
||||
];
|
||||
}
|
||||
|
|
|
@ -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 = [
|
||||
|
|
|
@ -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" ];
|
||||
|
|
|
@ -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) {
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ]; })
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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!
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -40,5 +40,6 @@ stdenv.mkDerivation {
|
|||
license = stdenv.lib.licenses.bsd3;
|
||||
maintainers = [ stdenv.lib.maintainers.shlevy ];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
broken = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -80,6 +80,5 @@ stdenv.mkDerivation rec {
|
|||
maintainers = [stdenv.lib.maintainers.raskin];
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
inherit version;
|
||||
updateWalker = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 ]
|
||||
|
|
|
@ -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 ] ;
|
||||
|
|
|
@ -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 ] ;
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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.
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
|
|
@ -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/";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -4,4 +4,5 @@ callPackage ./generic.nix (args // {
|
|||
baseVersion = "1.10";
|
||||
revision = "9";
|
||||
sha256 = "1wldp9py3qcdgswgxya83c03y6345a6cf3vwz0y41bl1l39jfza8";
|
||||
extraConfigureFlags = "--with-gnump";
|
||||
})
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
callPackage ./generic.nix (args // {
|
||||
baseVersion = "1.11";
|
||||
revision = "10";
|
||||
sha256 = "06d5p0bs953r2pqfc635x2w78m3xv28gr6fmvd8whbk9qp8r91yb";
|
||||
revision = "14";
|
||||
sha256 = "1laa6d8w9v39a2pfmilj62jwc67r0jbq5f3xdlffd3kvkdnwcysb";
|
||||
openssl = null;
|
||||
})
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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";
|
||||
})
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "${branch}.5";
|
||||
branch = "0.11";
|
||||
sha256 = "1h5qwn4h7sppqw36hri5p6zlv2387vwaxh2pyj070xfn8hgrk4ll";
|
||||
})
|
|
@ -0,0 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "${branch}.15";
|
||||
branch = "0.5";
|
||||
sha256 = "1rcy15dv5bnpnncb78kgki9xl279bh99b76nzqdd87b61r04z74z";
|
||||
})
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "${branch}.12";
|
||||
branch = "1.2";
|
||||
sha256 = "0za9w87rk4x6wkjc6iaxqx2ihlsgj181ilfgxfjc54mdgxfcjfli";
|
||||
})
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "${branch}.13";
|
||||
branch = "2.2";
|
||||
sha256 = "1vva8ffwxi3rg44byy09qlbiqrrd1h4rmsl5b1mbmvzvwl1lq1l0";
|
||||
})
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{ callPackage, ... } @ args:
|
||||
|
||||
callPackage ./generic.nix (args // rec {
|
||||
version = "${branch}.4";
|
||||
branch = "2.5";
|
||||
sha256 = "11m2hbhdgphjxjp6hk438cxmipqjg5ixbr1kqnn9mbdhq9kc34fc";
|
||||
})
|
|
@ -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 ];
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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";
|
||||
|
|
|
@ -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; {
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
};
|
||||
}
|
|
@ -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'..."
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue