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>";
|
notthemessiah = "Brian Cohen <brian.cohen.88@gmail.com>";
|
||||||
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
np = "Nicolas Pouillard <np.nix@nicolaspouillard.fr>";
|
||||||
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
nslqqq = "Nikita Mikhailov <nslqqq@gmail.com>";
|
||||||
|
obadz = "obadz <dav-nixos@odav.org>";
|
||||||
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
ocharles = "Oliver Charles <ollie@ocharles.org.uk>";
|
||||||
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
offline = "Jaka Hudoklin <jakahudoklin@gmail.com>";
|
||||||
olcai = "Erik Timan <dev@timan.info>";
|
olcai = "Erik Timan <dev@timan.info>";
|
||||||
@ -138,6 +139,7 @@
|
|||||||
page = "Carles Pagès <page@cubata.homelinux.net>";
|
page = "Carles Pagès <page@cubata.homelinux.net>";
|
||||||
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
paholg = "Paho Lurie-Gregg <paho@paholg.com>";
|
||||||
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
pashev = "Igor Pashev <pashev.igor@gmail.com>";
|
||||||
|
phausmann = "Philipp Hausmann <nix@314.ch>";
|
||||||
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
phreedom = "Evgeny Egorochkin <phreedom@yandex.ru>";
|
||||||
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
pierron = "Nicolas B. Pierron <nixos@nbp.name>";
|
||||||
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
piotr = "Piotr Pietraszkiewicz <ppietrasa@gmail.com>";
|
||||||
@ -170,6 +172,7 @@
|
|||||||
shell = "Shell Turner <cam.turn@gmail.com>";
|
shell = "Shell Turner <cam.turn@gmail.com>";
|
||||||
shlevy = "Shea Levy <shea@shealevy.com>";
|
shlevy = "Shea Levy <shea@shealevy.com>";
|
||||||
simons = "Peter Simons <simons@cryp.to>";
|
simons = "Peter Simons <simons@cryp.to>";
|
||||||
|
sjagoe = "Simon Jagoe <simon@simonjagoe.com>";
|
||||||
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
sjmackenzie = "Stewart Mackenzie <setori88@gmail.com>";
|
||||||
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
skeidel = "Sven Keidel <svenkeidel@gmail.com>";
|
||||||
smironov = "Sergey Mironov <ierton@gmail.com>";
|
smironov = "Sergey Mironov <ierton@gmail.com>";
|
||||||
|
@ -208,4 +208,15 @@ rec {
|
|||||||
# standard GNU Autoconf scripts.
|
# standard GNU Autoconf scripts.
|
||||||
enableFeature = enable: feat: "--${if enable then "enable" else "disable"}-${feat}";
|
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>),
|
doesn’t have a corresponding <emphasis>option declaration</emphasis>),
|
||||||
<command>nixos-rebuild</command> will give an error like:
|
<command>nixos-rebuild</command> will give an error like:
|
||||||
<screen>
|
<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>
|
</screen>
|
||||||
Likewise, values in option definitions must have a correct type. For
|
Likewise, values in option definitions must have a correct type. For
|
||||||
instance, <option>services.httpd.enable</option> must be a Boolean
|
instance, <option>services.httpd.enable</option> must be a Boolean
|
||||||
|
@ -22,7 +22,8 @@
|
|||||||
<arg choice='plain'><option>boot</option></arg>
|
<arg choice='plain'><option>boot</option></arg>
|
||||||
<arg choice='plain'><option>test</option></arg>
|
<arg choice='plain'><option>test</option></arg>
|
||||||
<arg choice='plain'><option>build</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</option></arg>
|
||||||
<arg choice='plain'><option>build-vm-with-bootloader</option></arg>
|
<arg choice='plain'><option>build-vm-with-bootloader</option></arg>
|
||||||
</group>
|
</group>
|
||||||
@ -114,10 +115,22 @@ $ nix-build /path/to/nixpkgs/nixos -A system
|
|||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>dry-run</option></term>
|
<term><option>dry-build</option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Simply show what store paths would be built or downloaded
|
<para>Show what store paths would be built or downloaded by any
|
||||||
by any of the operations above.</para>
|
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>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@ while [ "$#" -gt 0 ]; do
|
|||||||
--help)
|
--help)
|
||||||
showSyntax
|
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"
|
action="$i"
|
||||||
;;
|
;;
|
||||||
--install-grub)
|
--install-grub)
|
||||||
@ -137,7 +138,7 @@ fi
|
|||||||
|
|
||||||
# First build Nix, since NixOS may require a newer version than the
|
# First build Nix, since NixOS may require a newer version than the
|
||||||
# current one.
|
# current one.
|
||||||
if [ -n "$rollback" -o "$action" = dry-run ]; then
|
if [ -n "$rollback" -o "$action" = dry-build ]; then
|
||||||
buildNix=
|
buildNix=
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -180,7 +181,7 @@ if [ -n "$canRun" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ "$action" = dry-run ]; then
|
if [ "$action" = dry-build ]; then
|
||||||
extraBuildFlags+=(--dry-run)
|
extraBuildFlags+=(--dry-run)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ if [ -z "$rollback" ]; then
|
|||||||
if [ "$action" = switch -o "$action" = boot ]; then
|
if [ "$action" = switch -o "$action" = boot ]; then
|
||||||
nix-env "${extraBuildFlags[@]}" -p "$profile" -f '<nixpkgs/nixos>' --set -A system
|
nix-env "${extraBuildFlags[@]}" -p "$profile" -f '<nixpkgs/nixos>' --set -A system
|
||||||
pathToConfig="$profile"
|
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
|
nix-build '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}" > /dev/null
|
||||||
pathToConfig=./result
|
pathToConfig=./result
|
||||||
elif [ "$action" = build-vm ]; then
|
elif [ "$action" = build-vm ]; then
|
||||||
@ -224,7 +225,7 @@ fi
|
|||||||
|
|
||||||
# If we're not just building, then make the new configuration the boot
|
# If we're not just building, then make the new configuration the boot
|
||||||
# default and/or activate it now.
|
# 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
|
if ! $pathToConfig/bin/switch-to-configuration "$action"; then
|
||||||
echo "warning: error(s) occured while switching to the new configuration" >&2
|
echo "warning: error(s) occured while switching to the new configuration" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -211,7 +211,9 @@ let
|
|||||||
${optionalString cfg.usbAuth
|
${optionalString cfg.usbAuth
|
||||||
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
"auth sufficient ${pkgs.pam_usb}/lib/security/pam_usb.so"}
|
||||||
${optionalString cfg.unixAuth
|
${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
|
${optionalString cfg.otpwAuth
|
||||||
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
|
"auth sufficient ${pkgs.otpw}/lib/security/pam_otpw.so"}
|
||||||
${optionalString cfg.oathAuth
|
${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 [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 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.
|
# Password management.
|
||||||
|
${optionalString config.security.pam.enableEcryptfs
|
||||||
|
"password optional ${pkgs.ecryptfs}/lib/security/pam_ecryptfs.so"}
|
||||||
password requisite pam_unix.so nullok sha512
|
password requisite pam_unix.so nullok sha512
|
||||||
${optionalString config.users.ldap.enable
|
${optionalString config.users.ldap.enable
|
||||||
"password sufficient ${pam_ldap}/lib/security/pam_ldap.so"}
|
"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"}
|
"session required ${pkgs.pam}/lib/security/pam_mkhomedir.so silent skel=/etc/skel umask=0022"}
|
||||||
${optionalString cfg.updateWtmp
|
${optionalString cfg.updateWtmp
|
||||||
"session required ${pkgs.pam}/lib/security/pam_lastlog.so silent"}
|
"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
|
${optionalString config.users.ldap.enable
|
||||||
"session optional ${pam_ldap}/lib/security/pam_ldap.so"}
|
"session optional ${pam_ldap}/lib/security/pam_ldap.so"}
|
||||||
${optionalString config.krb5.enable
|
${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 {
|
users.motd = mkOption {
|
||||||
default = null;
|
default = null;
|
||||||
example = "Today is Sweetmorn, the 4th day of The Aftermath in the YOLD 3178.";
|
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
|
++ optional config.users.ldap.enable pam_ldap
|
||||||
++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
|
++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
|
||||||
++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
|
++ 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 =
|
environment.etc =
|
||||||
mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
|
mapAttrsToList (n: v: makePAMService v) config.security.pam.services;
|
||||||
|
@ -15,6 +15,8 @@ let
|
|||||||
state_file "${cfg.dataDir}/state"
|
state_file "${cfg.dataDir}/state"
|
||||||
sticker_file "${cfg.dataDir}/sticker.sql"
|
sticker_file "${cfg.dataDir}/sticker.sql"
|
||||||
log_file "syslog"
|
log_file "syslog"
|
||||||
|
user "${cfg.user}"
|
||||||
|
group "${cfg.group}"
|
||||||
${if cfg.network.host != "any" then
|
${if cfg.network.host != "any" then
|
||||||
"bind_to_address ${cfg.network.host}" else ""}
|
"bind_to_address ${cfg.network.host}" else ""}
|
||||||
${if cfg.network.port != 6600 then
|
${if cfg.network.port != 6600 then
|
||||||
@ -40,8 +42,7 @@ in {
|
|||||||
musicDirectory = mkOption {
|
musicDirectory = mkOption {
|
||||||
default = "${cfg.dataDir}/music";
|
default = "${cfg.dataDir}/music";
|
||||||
description = ''
|
description = ''
|
||||||
Extra configuration added to the end of MPD's
|
The directory where mpd reads music from.
|
||||||
configuration file, mpd.conf.
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -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 = {
|
network = {
|
||||||
|
|
||||||
host = mkOption {
|
host = mkOption {
|
||||||
@ -96,7 +107,7 @@ in {
|
|||||||
description = "Music Player Daemon";
|
description = "Music Player Daemon";
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = [ pkgs.mpd ];
|
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}";
|
script = "exec mpd --no-daemon ${mpdConf}";
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
User = "mpd";
|
User = "mpd";
|
||||||
@ -104,16 +115,18 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraUsers.mpd = {
|
users.extraUsers = optionalAttrs (cfg.user == "mpd") (singleton {
|
||||||
inherit uid;
|
inherit uid;
|
||||||
group = "mpd";
|
name = "mpd";
|
||||||
|
group = cfg.group;
|
||||||
extraGroups = [ "audio" ];
|
extraGroups = [ "audio" ];
|
||||||
description = "Music Player Daemon user";
|
description = "Music Player Daemon user";
|
||||||
home = "${cfg.dataDir}";
|
home = "${cfg.dataDir}";
|
||||||
};
|
});
|
||||||
|
|
||||||
users.extraGroups.mpd.gid = gid;
|
|
||||||
|
|
||||||
|
users.extraGroups = optionalAttrs (cfg.group == "mpd") (singleton {
|
||||||
|
gid = gid;
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,8 @@ let
|
|||||||
extraGroups = [ "nixbld" ];
|
extraGroups = [ "nixbld" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
nixbldUsers = map makeNixBuildUser (range 1 cfg.nrBuildUsers);
|
||||||
|
|
||||||
nixConf =
|
nixConf =
|
||||||
let
|
let
|
||||||
# If we're using a chroot for builds, then provide /bin/sh in
|
# 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);
|
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" ]
|
system.activationScripts.nix = stringAfter [ "etc" "users" ]
|
||||||
''
|
''
|
||||||
|
@ -27,7 +27,7 @@ let
|
|||||||
[ global ]
|
[ global ]
|
||||||
security = ${cfg.securityType}
|
security = ${cfg.securityType}
|
||||||
passwd program = /var/setuid-wrappers/passwd %u
|
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}
|
invalid users = ${toString cfg.invalidUsers}
|
||||||
|
|
||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
|
@ -71,6 +71,13 @@ let
|
|||||||
${coreutils}/bin/rm -f $tmp $tmp.ns
|
${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 {
|
in {
|
||||||
|
|
||||||
###### interface
|
###### 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 == [])
|
] ++ optional (cfg.appendNameservers == [] || cfg.insertNameservers == [])
|
||||||
{ source = overrideNameserversScript;
|
{ source = overrideNameserversScript;
|
||||||
target = "NetworkManager/dispatcher.d/02overridedns";
|
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 ++ [
|
environment.systemPackages = cfg.packages ++ [
|
||||||
networkmanager_openvpn
|
networkmanager_openvpn
|
||||||
|
@ -381,6 +381,8 @@ in
|
|||||||
|
|
||||||
UsePAM yes
|
UsePAM yes
|
||||||
|
|
||||||
|
UsePrivilegeSeparation sandbox
|
||||||
|
|
||||||
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
|
AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
|
||||||
${concatMapStrings (port: ''
|
${concatMapStrings (port: ''
|
||||||
Port ${toString port}
|
Port ${toString port}
|
||||||
|
@ -171,6 +171,9 @@ let
|
|||||||
|
|
||||||
SSLRandomSeed startup builtin
|
SSLRandomSeed startup builtin
|
||||||
SSLRandomSeed connect 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.";
|
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 {
|
desktopManagerHandlesLidAndPower = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
|
@ -95,15 +95,23 @@ in
|
|||||||
|
|
||||||
auth required pam_succeed_if.so uid >= 1000 quiet
|
auth required pam_succeed_if.so uid >= 1000 quiet
|
||||||
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
||||||
auth sufficient pam_unix.so nullok likeauth
|
auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
|
||||||
auth required pam_deny.so
|
${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
|
account sufficient pam_unix.so
|
||||||
|
|
||||||
password requisite pam_unix.so nullok sha512
|
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_env.so envfile=${config.system.build.pamEnvironment}
|
||||||
session required pam_unix.so
|
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 required pam_loginuid.so
|
||||||
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
|
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
|
||||||
session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
|
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 required pam_succeed_if.so uid >= 1000 quiet
|
||||||
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
auth optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so
|
||||||
auth sufficient pam_unix.so nullok likeauth
|
auth ${if config.security.pam.enableEcryptfs then "required" else "sufficient"} pam_unix.so nullok likeauth
|
||||||
auth required pam_deny.so
|
${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
|
account sufficient pam_unix.so
|
||||||
|
|
||||||
password requisite pam_unix.so nullok sha512
|
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_env.so envfile=${config.system.build.pamEnvironment}
|
||||||
session required pam_unix.so
|
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 required pam_loginuid.so
|
||||||
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
|
session optional ${pkgs.systemd}/lib/security/pam_systemd.so
|
||||||
session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
|
session optional ${gnome3.gnome_keyring}/lib/security/pam_gnome_keyring.so auto_start
|
||||||
|
@ -38,7 +38,7 @@ let
|
|||||||
''}
|
''}
|
||||||
|
|
||||||
[X-*-Greeter]
|
[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
|
PluginsLogin=${kdebase_workspace}/lib/kde4/kgreet_classic.so
|
||||||
${optionalString (cfg.themeDirectory != null)
|
${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"
|
lightdmConf = writeText "lightdm.conf"
|
||||||
''
|
''
|
||||||
[LightDM]
|
[LightDM]
|
||||||
@ -84,6 +94,7 @@ in
|
|||||||
package = wrappedGtkGreeter;
|
package = wrappedGtkGreeter;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -97,10 +108,13 @@ in
|
|||||||
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
|
# lightdm relaunches itself via just `lightdm`, so needs to be on the PATH
|
||||||
execCmd = ''
|
execCmd = ''
|
||||||
export PATH=${lightdm}/sbin:$PATH
|
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.enable = true;
|
||||||
services.dbus.packages = [ lightdm ];
|
services.dbus.packages = [ lightdm ];
|
||||||
|
|
||||||
|
@ -9,19 +9,21 @@ use Cwd 'abs_path';
|
|||||||
|
|
||||||
my $out = "@out@";
|
my $out = "@out@";
|
||||||
|
|
||||||
|
# To be robust against interruption, record what units need to be started etc.
|
||||||
my $startListFile = "/run/systemd/start-list";
|
my $startListFile = "/run/systemd/start-list";
|
||||||
my $restartListFile = "/run/systemd/restart-list";
|
my $restartListFile = "/run/systemd/restart-list";
|
||||||
my $reloadListFile = "/run/systemd/reload-list";
|
my $reloadListFile = "/run/systemd/reload-list";
|
||||||
|
|
||||||
my $action = shift @ARGV;
|
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;
|
print STDERR <<EOF;
|
||||||
Usage: $0 [switch|boot|test]
|
Usage: $0 [switch|boot|test]
|
||||||
|
|
||||||
switch: make the configuration the boot default and activate now
|
switch: make the configuration the boot default and activate now
|
||||||
boot: make the configuration the boot default
|
boot: make the configuration the boot default
|
||||||
test: activate the configuration, but don\'t make it 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
|
EOF
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
@ -56,8 +58,6 @@ EOF
|
|||||||
exit 100;
|
exit 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
syslog(LOG_NOTICE, "switching to system configuration $out");
|
|
||||||
|
|
||||||
# Ignore SIGHUP so that we're not killed if we're running on (say)
|
# Ignore SIGHUP so that we're not killed if we're running on (say)
|
||||||
# virtual console 1 and we restart the "tty1" unit.
|
# virtual console 1 and we restart the "tty1" unit.
|
||||||
$SIG{PIPE} = "IGNORE";
|
$SIG{PIPE} = "IGNORE";
|
||||||
@ -116,6 +116,11 @@ sub boolIsTrue {
|
|||||||
return $s eq "yes" || $s eq "true";
|
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
|
# As a fingerprint for determining whether a unit has changed, we use
|
||||||
# its absolute path. If it has an override file, we append *its*
|
# its absolute path. If it has an override file, we append *its*
|
||||||
# absolute path as well.
|
# 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" : "");
|
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
|
# Figure out what units need to be stopped, started, restarted or reloaded.
|
||||||
# configuration.
|
my (%unitsToStop, %unitsToSkip, %unitsToStart, %unitsToRestart, %unitsToReload);
|
||||||
my (@unitsToStop, @unitsToSkip);
|
|
||||||
|
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;
|
my $activePrev = getActiveUnits;
|
||||||
while (my ($unit, $state) = each %{$activePrev}) {
|
while (my ($unit, $state) = each %{$activePrev}) {
|
||||||
my $baseUnit = $unit;
|
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 $prevUnitFile && ($state->{state} eq "active" || $state->{state} eq "activating")) {
|
||||||
if (! -e $newUnitFile || abs_path($newUnitFile) eq "/dev/null") {
|
if (! -e $newUnitFile || abs_path($newUnitFile) eq "/dev/null") {
|
||||||
push @unitsToStop, $unit;
|
$unitsToStop{$unit} = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
elsif ($unit =~ /\.target$/) {
|
elsif ($unit =~ /\.target$/) {
|
||||||
@ -155,7 +171,10 @@ while (my ($unit, $state) = each %{$activePrev}) {
|
|||||||
# should not be the case. Just ignore it.
|
# should not be the case. Just ignore it.
|
||||||
if ($unit ne "suspend.target" && $unit ne "hibernate.target" && $unit ne "hybrid-sleep.target") {
|
if ($unit ne "suspend.target" && $unit ne "hibernate.target" && $unit ne "hybrid-sleep.target") {
|
||||||
unless (boolIsTrue($unitInfo->{'RefuseManualStart'} // "no")) {
|
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
|
# (unless there is a PartOf dependency), so this is just a
|
||||||
# bookkeeping thing to get systemd to do the right thing.
|
# bookkeeping thing to get systemd to do the right thing.
|
||||||
if (boolIsTrue($unitInfo->{'X-StopOnReconfiguration'} // "no")) {
|
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.
|
# Do nothing. These cannot be restarted directly.
|
||||||
} elsif ($unit =~ /\.mount$/) {
|
} elsif ($unit =~ /\.mount$/) {
|
||||||
# Reload the changed mount unit to force a remount.
|
# 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$/) {
|
} elsif ($unit =~ /\.socket$/ || $unit =~ /\.path$/ || $unit =~ /\.slice$/) {
|
||||||
# FIXME: do something?
|
# FIXME: do something?
|
||||||
} else {
|
} else {
|
||||||
my $unitInfo = parseUnit($newUnitFile);
|
my $unitInfo = parseUnit($newUnitFile);
|
||||||
if (boolIsTrue($unitInfo->{'X-ReloadIfChanged'} // "no")) {
|
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") ) {
|
elsif (!boolIsTrue($unitInfo->{'X-RestartIfChanged'} // "yes") || boolIsTrue($unitInfo->{'RefuseManualStop'} // "no") ) {
|
||||||
push @unitsToSkip, $unit;
|
$unitsToSkip{$unit} = 1;
|
||||||
} else {
|
} else {
|
||||||
# If this unit is socket-activated, then stop the
|
# If this unit is socket-activated, then stop the
|
||||||
# socket unit(s) as well, and restart the
|
# socket unit(s) as well, and restart the
|
||||||
@ -202,8 +223,9 @@ while (my ($unit, $state) = each %{$activePrev}) {
|
|||||||
}
|
}
|
||||||
foreach my $socket (@sockets) {
|
foreach my $socket (@sockets) {
|
||||||
if (defined $activePrev->{$socket}) {
|
if (defined $activePrev->{$socket}) {
|
||||||
push @unitsToStop, $socket;
|
$unitsToStop{$unit} = 1;
|
||||||
write_file($startListFile, { append => 1 }, "$socket\n");
|
$unitsToStart{$unit} = 1;
|
||||||
|
recordUnit($startListFile, $socket);
|
||||||
$socketActivated = 1;
|
$socketActivated = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,7 +235,8 @@ while (my ($unit, $state) = each %{$activePrev}) {
|
|||||||
|
|
||||||
# This unit should be restarted instead of
|
# This unit should be restarted instead of
|
||||||
# stopped and started.
|
# stopped and started.
|
||||||
write_file($restartListFile, { append => 1 }, "$unit\n");
|
$unitsToRestart{$unit} = 1;
|
||||||
|
recordUnit($restartListFile, $unit);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
@ -222,10 +245,11 @@ while (my ($unit, $state) = each %{$activePrev}) {
|
|||||||
# We write this to a file to ensure that the
|
# We write this to a file to ensure that the
|
||||||
# service gets restarted if we're interrupted.
|
# service gets restarted if we're interrupted.
|
||||||
if (!$socketActivated) {
|
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";
|
my $unit = pathToUnitName($mountPoint) . ".mount";
|
||||||
if (!defined $new) {
|
if (!defined $new) {
|
||||||
# Filesystem entry disappeared, so unmount it.
|
# Filesystem entry disappeared, so unmount it.
|
||||||
push @unitsToStop, $unit;
|
$unitsToStop{$unit} = 1;
|
||||||
} elsif ($prev->{fsType} ne $new->{fsType} || $prev->{device} ne $new->{device}) {
|
} elsif ($prev->{fsType} ne $new->{fsType} || $prev->{device} ne $new->{device}) {
|
||||||
# Filesystem type or device changed, so unmount and mount it.
|
# Filesystem type or device changed, so unmount and mount it.
|
||||||
write_file($startListFile, { append => 1 }, "$unit\n");
|
$unitsToStop{$unit} = 1;
|
||||||
push @unitsToStop, $unit;
|
$unitsToStart{$unit} = 1;
|
||||||
|
recordUnit($startListFile, $unit);
|
||||||
} elsif ($prev->{options} ne $new->{options}) {
|
} elsif ($prev->{options} ne $new->{options}) {
|
||||||
# Mount options changes, so remount it.
|
# 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).
|
# FIXME: update swap options (i.e. its priority).
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scalar @unitsToStop > 0) {
|
|
||||||
@unitsToStop = unique(@unitsToStop);
|
# Should we have systemd re-exec itself?
|
||||||
print STDERR "stopping the following units: ", join(", ", sort(@unitsToStop)), "\n";
|
my $restartSystemd = abs_path("/proc/1/exe") ne abs_path("@systemd@/lib/systemd/systemd");
|
||||||
system("systemctl", "stop", "--", @unitsToStop); # FIXME: ignore errors?
|
|
||||||
|
|
||||||
|
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"
|
my @unitsToStopFiltered = filterUnits(\%unitsToStop);
|
||||||
if scalar @unitsToSkip > 0;
|
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,
|
# Activate the new configuration (i.e., update /etc, make accounts,
|
||||||
# and so on).
|
# and so on).
|
||||||
@ -310,7 +373,7 @@ print STDERR "activating the configuration...\n";
|
|||||||
system("$out/activate", "$out") == 0 or $res = 2;
|
system("$out/activate", "$out") == 0 or $res = 2;
|
||||||
|
|
||||||
# Restart systemd if necessary.
|
# Restart systemd if necessary.
|
||||||
if (abs_path("/proc/1/exe") ne abs_path("@systemd@/lib/systemd/systemd")) {
|
if ($restartSystemd) {
|
||||||
print STDERR "restarting systemd...\n";
|
print STDERR "restarting systemd...\n";
|
||||||
system("@systemd@/bin/systemctl", "daemon-reexec") == 0 or $res = 2;
|
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
|
# Restart changed services (those that have to be restarted rather
|
||||||
# than stopped and started).
|
# than stopped and started).
|
||||||
my @restart = unique(split('\n', read_file($restartListFile, err_mode => 'quiet') // ""));
|
if (scalar(keys %unitsToRestart) > 0) {
|
||||||
if (scalar @restart > 0) {
|
print STDERR "restarting the following units: ", join(", ", sort(keys %unitsToRestart)), "\n";
|
||||||
print STDERR "restarting the following units: ", join(", ", sort(@restart)), "\n";
|
system("@systemd@/bin/systemctl", "restart", "--", sort(keys %unitsToRestart)) == 0 or $res = 4;
|
||||||
system("@systemd@/bin/systemctl", "restart", "--", @restart) == 0 or $res = 4;
|
|
||||||
unlink($restartListFile);
|
unlink($restartListFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,17 +402,16 @@ if (scalar @restart > 0) {
|
|||||||
# that are symlinks to other units. We shouldn't start both at the
|
# 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
|
# same time because we'll get a "Failed to add path to set" error from
|
||||||
# systemd.
|
# 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(", ", @unitsToStartFiltered), "\n"
|
||||||
print STDERR "starting the following units: ", join(", ", sort(@start)), "\n";
|
if scalar @unitsToStartFiltered;
|
||||||
system("@systemd@/bin/systemctl", "start", "--", @start) == 0 or $res = 4;
|
system("@systemd@/bin/systemctl", "start", "--", sort(keys %unitsToStart)) == 0 or $res = 4;
|
||||||
unlink($startListFile);
|
unlink($startListFile);
|
||||||
|
|
||||||
# Reload units that need it. This includes remounting changed mount
|
# Reload units that need it. This includes remounting changed mount
|
||||||
# units.
|
# units.
|
||||||
my @reload = unique(split '\n', read_file($reloadListFile, err_mode => 'quiet') // "");
|
if (scalar(keys %unitsToReload) > 0) {
|
||||||
if (scalar @reload > 0) {
|
print STDERR "reloading the following units: ", join(", ", sort(keys %unitsToReload)), "\n";
|
||||||
print STDERR "reloading the following units: ", join(", ", sort(@reload)), "\n";
|
system("@systemd@/bin/systemctl", "reload", "--", sort(keys %unitsToReload)) == 0 or $res = 4;
|
||||||
system("@systemd@/bin/systemctl", "reload", "--", @reload) == 0 or $res = 4;
|
|
||||||
unlink($reloadListFile);
|
unlink($reloadListFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,20 +177,24 @@ fi
|
|||||||
if test -e /sys/power/resume -a -e /sys/power/disk; then
|
if test -e /sys/power/resume -a -e /sys/power/disk; then
|
||||||
if test -n "@resumeDevice@"; then
|
if test -n "@resumeDevice@"; then
|
||||||
resumeDev="@resumeDevice@"
|
resumeDev="@resumeDevice@"
|
||||||
|
resumeInfo="$(udevadm info -q property "$resumeDev" )"
|
||||||
else
|
else
|
||||||
for sd in @resumeDevices@; do
|
for sd in @resumeDevices@; do
|
||||||
# Try to detect resume device. According to Ubuntu bug:
|
# Try to detect resume device. According to Ubuntu bug:
|
||||||
# https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/923326/comments/1
|
# 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
|
# When there are multiple swap devices, we can't know where will hibernate
|
||||||
# image reside. We can check all of them for swsuspend blkid.
|
# 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"
|
resumeDev="$sd"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if test -n "$resumeDev"; then
|
if test -e "$resumeDev"; then
|
||||||
readlink -f "$resumeDev" > /sys/power/resume 2> /dev/null || echo "failed to resume..."
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -6,11 +6,11 @@ assert stdenv ? glibc;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "yoshimi-${version}";
|
name = "yoshimi-${version}";
|
||||||
version = "1.3.2";
|
version = "1.3.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
url = "mirror://sourceforge/yoshimi/${name}.tar.bz2";
|
||||||
sha256 = "0f4cwcmszvpga1gsfhhjcz7yb0h08v35wsv4ssmijh8gfp3mhjml";
|
sha256 = "0f37xjkay3800fbx0iwjca005b1hrjbhszrzn0xg662vf8mj44nv";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -9,42 +9,44 @@
|
|||||||
#ToDo: Failed to open sessions directory: Error opening directory '${lightdm}/share/lightdm/remote-sessions': No such file or directory
|
#ToDo: Failed to open sessions directory: Error opening directory '${lightdm}/share/lightdm/remote-sessions': No such file or directory
|
||||||
|
|
||||||
let
|
let
|
||||||
ver_branch = "1.6";
|
ver_branch = "2.0";
|
||||||
version = "1.6.1";
|
version = "2.0.0";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lightdm-gtk-greeter-${version}";
|
name = "lightdm-gtk-greeter-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
|
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.gz";
|
||||||
sha256 = "1nb8ljrbrp1zga083g3b633xi3izxxm4jipw1qgial1x16mqc0hz";
|
sha256 = "1134q8qd7gr34jkivqxckdnwbpa8pl7dhjpdi9fci0pcs4hh22jc";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
buildInputs = [ pkgconfig lightdm intltool makeWrapper ]
|
||||||
./lightdm-gtk-greeter.patch
|
++ (if useGTK2 then [ gtk2 ] else [ gtk3 ]);
|
||||||
(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 ]
|
configureFlags = [
|
||||||
++ (if useGTK2 then [ gtk2 makeWrapper ] else [ gtk3 ]);
|
"--localstatedir=/var"
|
||||||
|
"--sysconfdir=/etc"
|
||||||
|
] ++ stdenv.lib.optional useGTK2 "--with-gtk2";
|
||||||
|
|
||||||
configureFlags = stdenv.lib.optional useGTK2 "--with-gtk2";
|
installFlags = [ "DESTDIR=\${out}" ];
|
||||||
|
|
||||||
postInstall = ''
|
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" \
|
substituteInPlace "$out/share/xgreeters/lightdm-gtk-greeter.desktop" \
|
||||||
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
|
--replace "Exec=lightdm-gtk-greeter" "Exec=$out/sbin/lightdm-gtk-greeter"
|
||||||
'' + stdenv.lib.optionalString useGTK2 ''
|
|
||||||
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
|
wrapProgram "$out/sbin/lightdm-gtk-greeter" \
|
||||||
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
|
--prefix XDG_DATA_DIRS ":" "${hicolor_icon_theme}/share"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = with stdenv.lib; {
|
||||||
homepage = http://launchpad.net/lightdm-gtk-greeter;
|
homepage = http://launchpad.net/lightdm-gtk-greeter;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.ocharles ];
|
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
|
{ 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
|
let
|
||||||
ver_branch = "1.8";
|
ver_branch = "1.13";
|
||||||
version = "1.8.6";
|
version = "1.13.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "lightdm-${version}";
|
name = "lightdm-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
|
url = "${meta.homepage}/${ver_branch}/${version}/+download/${name}.tar.xz";
|
||||||
sha256 = "17ivc0c4dbnc0fzd581j53cn6hdav34zz2hswjzy8aczbpk605qi";
|
sha256 = "0xa23maq6phkfil8xx26viig2m99sbzcf1w7s56hns2qw6pycn79";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./lightdm.patch ];
|
|
||||||
patchFlags = "-p1";
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgconfig pam libxcb glib libXdmcp itstool libxml2 intltool libxklavier libgcrypt
|
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;
|
homepage = http://launchpad.net/lightdm;
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.ocharles ];
|
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";
|
"-I${cairo}/include/cairo";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
cat >$out/share/emacs/site-lisp/site-start.el <<EOF
|
mkdir -p $out/share/emacs/site-lisp/
|
||||||
;; nixos specific load-path
|
cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
|
||||||
(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
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
17
pkgs/applications/editors/emacs-24/site-start.el
Normal file
17
pkgs/applications/editors/emacs-24/site-start.el
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
;; NixOS specific load-path
|
||||||
|
(setq load-path
|
||||||
|
(append (reverse (mapcar (lambda (x) (concat x "/share/emacs/site-lisp/"))
|
||||||
|
(split-string (or (getenv "NIX_PROFILES") ""))))
|
||||||
|
load-path))
|
||||||
|
|
||||||
|
;;; Make `woman' find the man pages
|
||||||
|
(eval-after-load 'woman
|
||||||
|
'(setq woman-manpath
|
||||||
|
(append (reverse (mapcar (lambda (x) (concat x "/share/man/"))
|
||||||
|
(split-string (or (getenv "NIX_PROFILES") ""))))
|
||||||
|
woman-manpath)))
|
||||||
|
|
||||||
|
;; Make tramp work for remote NixOS machines
|
||||||
|
;;; NOTE: You might want to add
|
||||||
|
(eval-after-load 'tramp
|
||||||
|
'(add-to-list 'tramp-remote-path "/run/current-system/sw/bin"))
|
44
pkgs/applications/editors/music/tuxguitar/default.nix
Normal file
44
pkgs/applications/editors/music/tuxguitar/default.nix
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
{ stdenv, fetchurl, swt, jdk, makeWrapper, alsaLib }:
|
||||||
|
|
||||||
|
let metadata = if stdenv.system == "i686-linux"
|
||||||
|
then { arch = "x86"; sha256 = "1qmb51k0538pn7gv4nsvhfv33xik4l4af0qmpllkzrikmj8wvzlb"; }
|
||||||
|
else if stdenv.system == "x86_64-linux"
|
||||||
|
then { arch = "x86_64"; sha256 = "12af47jhlrh9aq5b3d13l7cdhlndgnfpy61gz002hajbq7i00ixh"; }
|
||||||
|
else { };
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
version = "1.2";
|
||||||
|
name = "tuxguitar-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "mirror://sourceforge/tuxguitar/${name}-linux-${metadata.arch}.tar.gz";
|
||||||
|
sha256 = metadata.sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
cp -r lib share $out/
|
||||||
|
cp tuxguitar $out/bin/tuxguitar
|
||||||
|
cp tuxguitar.jar $out/lib
|
||||||
|
|
||||||
|
ln -s $out/share $out/bin/share
|
||||||
|
|
||||||
|
wrapProgram $out/bin/tuxguitar \
|
||||||
|
--set JAVA "${jdk}/bin/java" \
|
||||||
|
--prefix LD_LIBRARY_PATH : "$out/lib/:${swt}/lib:${alsaLib}/lib" \
|
||||||
|
--prefix CLASSPATH : "${swt}/jars/swt.jar:$out/lib/tuxguitar.jar:$out/lib/itext.jar"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
description = "A multitrack guitar tablature editor";
|
||||||
|
longDescription = ''
|
||||||
|
TuxGuitar is a multitrack guitar tablature editor and player written
|
||||||
|
in Java-SWT. It can open GuitarPro, PowerTab and TablEdit files.
|
||||||
|
'';
|
||||||
|
homepage = http://www.tuxguitar.com.ar/;
|
||||||
|
license = licenses.lgpl2;
|
||||||
|
maintainers = [ maintainers.ardumont ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -9,12 +9,12 @@
|
|||||||
assert stdenv ? glibc;
|
assert stdenv ? glibc;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.6.2";
|
version = "1.6.3";
|
||||||
name = "darktable-${version}";
|
name = "darktable-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
|
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
|
||||||
sha256 = "1gf5pl4fhak1aqx3dgg0491zgsl6qr6kgyl034hnk4fzwn65zvk6";
|
sha256 = "13gj5z9dz1847wlbn2cqpkvr64ds8yrn5hacs5wvbqmh0z9v6aw5";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs =
|
buildInputs =
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
|
{ stdenv, python27Packages, curaengine, makeDesktopItem, fetchurl }:
|
||||||
let
|
let
|
||||||
py = python27Packages;
|
py = python27Packages;
|
||||||
version = "14.12.1";
|
version = "15.02.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "cura-${version}";
|
name = "cura-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
|
url = "https://github.com/daid/Cura/archive/${version}.tar.gz";
|
||||||
sha256 = "1sybsa84qznlzcgn18p70gh1v60npwfca5yn80h35msxrnh8gbp5";
|
sha256 = "18pb31vd9786q522i1i780wpzr6vih9gg9d8k508gh2d5yr4aal6";
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
let
|
let
|
||||||
version = "14.12.1";
|
version = "15.02.1";
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "curaengine-${version}";
|
name = "curaengine-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
|
url = "https://github.com/Ultimaker/CuraEngine/archive/${version}.tar.gz";
|
||||||
sha256 = "1cfns71mjndy2dlmccmjx8ldd0p5v88sqg0jg6ak5c864cvgbjdr";
|
sha256 = "18fxh910b66s45757zqh8bm5kdxjgvxispjqknqkwl1nrllzmx53";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
25
pkgs/applications/misc/hstr/default.nix
Normal file
25
pkgs/applications/misc/hstr/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ stdenv, fetchurl, readline, ncurses }:
|
||||||
|
|
||||||
|
let
|
||||||
|
version = "1.16";
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "hstr-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/dvorka/hstr/releases/download/${version}/hh-${version}-src.tgz";
|
||||||
|
sha256 = "1hl3fn6kravx5gsdsr0l824vnkj5aiz0dybhd3ak932v95b5knyg";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ readline ncurses ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = "https://github.com/dvorka/hstr";
|
||||||
|
description = "Shell history suggest box - easily view, navigate, search and use your command history";
|
||||||
|
license = stdenv.lib.licenses.asl20;
|
||||||
|
maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
|
||||||
|
platforms = with stdenv.lib.platforms; linux; # Cannot test others
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, kdelibs, gettext, xf86_input_wacom }:
|
{ stdenv, fetchurl, kdelibs, gettext, xf86_input_wacom }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "wacomtablet-2.0.2";
|
name = "wacomtablet-2.1.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-2.0.2.tar.xz";
|
url = "http://kde-apps.org/CONTENT/content-files/114856-wacomtablet-2.1.0.tar.xz";
|
||||||
sha256 = "13k5f5xpka5cbgl24a3j9khqcmp96x1vhynn9v558ag6dg9ch2hw";
|
sha256 = "17n1p5v2yx517hkqd13pyl3wnrdnh6pfzwf2y2csrfckyndhwk8w";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ kdelibs xf86_input_wacom ];
|
buildInputs = [ kdelibs xf86_input_wacom ];
|
||||||
|
@ -11,11 +11,11 @@ let
|
|||||||
|
|
||||||
in nodePackages.buildNodePackage rec {
|
in nodePackages.buildNodePackage rec {
|
||||||
name = "keybase-node-client-${version}";
|
name = "keybase-node-client-${version}";
|
||||||
version = "0.7.0";
|
version = "0.7.7";
|
||||||
|
|
||||||
src = [(fetchurl {
|
src = [(fetchurl {
|
||||||
url = "https://github.com/keybase/node-client/archive/v${version}.tar.gz";
|
url = "https://github.com/keybase/node-client/archive/v${version}.tar.gz";
|
||||||
sha256 = "0n73v4f61rq2dvy2yd3s4l8qvvjzp3ncqj70llm4i6cvbp9kym1v";
|
sha256 = "1p2plxz4lf5pbrvl5sql00lk459lnxcz7cxc4cdhfzc6h4ql425f";
|
||||||
})];
|
})];
|
||||||
|
|
||||||
deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));
|
deps = (filter (v: nixType v == "derivation") (attrValues nodePackages));
|
||||||
|
File diff suppressed because it is too large
Load Diff
34
pkgs/applications/misc/khal/default.nix
Normal file
34
pkgs/applications/misc/khal/default.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{ stdenv, fetchurl, pkgs, pythonPackages }:
|
||||||
|
|
||||||
|
pythonPackages.buildPythonPackage rec {
|
||||||
|
version = "0.4.0";
|
||||||
|
name = "khal-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/geier/khal/archive/v${version}.tar.gz";
|
||||||
|
sha256 = "0d32miq55cly4q3raxkw3xpq4d5y3hvzaqvy066nv35bdlpafxi1";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = with pythonPackages; [
|
||||||
|
atomicwrites
|
||||||
|
click
|
||||||
|
configobj
|
||||||
|
dateutil
|
||||||
|
icalendar
|
||||||
|
lxml
|
||||||
|
pkgs.vdirsyncer
|
||||||
|
pytz
|
||||||
|
pyxdg
|
||||||
|
requests_toolbelt
|
||||||
|
tzlocal
|
||||||
|
urwid
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = http://lostpackets.de/khal/;
|
||||||
|
description = "CLI calendar application";
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -5,10 +5,10 @@ let
|
|||||||
s = # Generated upstream information
|
s = # Generated upstream information
|
||||||
rec {
|
rec {
|
||||||
baseName="qpdfview";
|
baseName="qpdfview";
|
||||||
version = "0.4.14beta1";
|
version = "0.4.14";
|
||||||
name="${baseName}-${version}";
|
name="${baseName}-${version}";
|
||||||
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
|
url="https://launchpad.net/qpdfview/trunk/${version}/+download/qpdfview-${version}.tar.gz";
|
||||||
sha256 = "0ly0xqpgmd1ccsyqs6z0i3w1g4y3ichmibd809bjy344h6fb0m3b";
|
sha256 = "15d88xzqvrcp9szmz8d1lj65yrdx90j6fp78gia5c8kra2z8bik9";
|
||||||
};
|
};
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript
|
qt4 popplerQt4 pkgconfig djvulibre libspectre cups file ghostscript
|
||||||
|
@ -4,185 +4,185 @@
|
|||||||
# ruby generate_source.rb > source.nix
|
# ruby generate_source.rb > source.nix
|
||||||
|
|
||||||
{
|
{
|
||||||
version = "36.0";
|
version = "36.0.1";
|
||||||
sources = [
|
sources = [
|
||||||
{ locale = "ach"; arch = "linux-i686"; sha1 = "089dff0a3623feee0379832ccde522f86fdc448c"; }
|
{ locale = "ach"; arch = "linux-i686"; sha1 = "c707c75b403d7e8f93fd1a362e65032a97d000a4"; }
|
||||||
{ locale = "ach"; arch = "linux-x86_64"; sha1 = "ac2ed6ffa8d27ecd978950220288e14c500aefbe"; }
|
{ locale = "ach"; arch = "linux-x86_64"; sha1 = "dd11e37acea4ee400b80fbdcfa98f4acbc7d73f6"; }
|
||||||
{ locale = "af"; arch = "linux-i686"; sha1 = "e8d44633f01dffe46e8b1278ddb274eefee556a4"; }
|
{ locale = "af"; arch = "linux-i686"; sha1 = "f3df56046427ebee3f2510e6b0b1d5214f9e8682"; }
|
||||||
{ locale = "af"; arch = "linux-x86_64"; sha1 = "f7d364cf00f0058e55e193cc907fd4996f96043b"; }
|
{ locale = "af"; arch = "linux-x86_64"; sha1 = "0c064022ffe3fda103e69b03f06a50bab8a496d8"; }
|
||||||
{ locale = "an"; arch = "linux-i686"; sha1 = "85c2b67d8d963d9421559807b8dfb36baa976029"; }
|
{ locale = "an"; arch = "linux-i686"; sha1 = "d165d0545866ce3326df5b6246e3e7817025050e"; }
|
||||||
{ locale = "an"; arch = "linux-x86_64"; sha1 = "182b4feeb5c24921c4074ee560e1d2619bc28a25"; }
|
{ locale = "an"; arch = "linux-x86_64"; sha1 = "8ed6d2374b44037e8efe1252025303987f5a5b8c"; }
|
||||||
{ locale = "ar"; arch = "linux-i686"; sha1 = "a18be34551fa3352a30cc927746806ea3d0401ed"; }
|
{ locale = "ar"; arch = "linux-i686"; sha1 = "ebd74e1c924e935a68e18bc1de78a8525b7a4fe0"; }
|
||||||
{ locale = "ar"; arch = "linux-x86_64"; sha1 = "be45f1db3b2f6128a35313aac0738eb6f3ed53f2"; }
|
{ locale = "ar"; arch = "linux-x86_64"; sha1 = "a72295a576621e6305aa4bfecf444a114c2e6955"; }
|
||||||
{ locale = "as"; arch = "linux-i686"; sha1 = "44e5cf86e6318d2c25fa4f9dd9c0bfaf273f6749"; }
|
{ locale = "as"; arch = "linux-i686"; sha1 = "1bfea721c70265683682fa004522e1518094313f"; }
|
||||||
{ locale = "as"; arch = "linux-x86_64"; sha1 = "da9d1e7e3e8ed4dbc935ece517e55ae456930e52"; }
|
{ locale = "as"; arch = "linux-x86_64"; sha1 = "42144c126408a5450b80e7e5be4aca96b2a88149"; }
|
||||||
{ locale = "ast"; arch = "linux-i686"; sha1 = "c23f59e3452f7393554491a930626495e9855855"; }
|
{ locale = "ast"; arch = "linux-i686"; sha1 = "1bb9a1dbd4acffed0e2b31a81062b466f929a498"; }
|
||||||
{ locale = "ast"; arch = "linux-x86_64"; sha1 = "fd2f6ce7d12a7c53fe9d9c11336b88c405859206"; }
|
{ locale = "ast"; arch = "linux-x86_64"; sha1 = "ec53f1640289f5866f9c2c136610725a5524ff1e"; }
|
||||||
{ locale = "az"; arch = "linux-i686"; sha1 = "5b92332c155a95b8638506ac1c3dd78e19e277e4"; }
|
{ locale = "az"; arch = "linux-i686"; sha1 = "c1396f03ba25ca4a9acf8b6998ce94d422984c68"; }
|
||||||
{ locale = "az"; arch = "linux-x86_64"; sha1 = "5d148d13421bacb3d430e317a41253a0999ed55f"; }
|
{ locale = "az"; arch = "linux-x86_64"; sha1 = "ec7368e145b3f7d5e8dc2659fd97bb1008619a42"; }
|
||||||
{ locale = "be"; arch = "linux-i686"; sha1 = "36cfbc4b84a374535cde94643bbdacea3e141c60"; }
|
{ locale = "be"; arch = "linux-i686"; sha1 = "3ecc92fdbd51bd5b2a4d4e3744a9e4b6b1bd119f"; }
|
||||||
{ locale = "be"; arch = "linux-x86_64"; sha1 = "0c0ea9dec82efd7baf2c2b382c0ab67d22f7b252"; }
|
{ locale = "be"; arch = "linux-x86_64"; sha1 = "e8dc491a4d045a9fb3ad251a59acaffa12b8aac4"; }
|
||||||
{ locale = "bg"; arch = "linux-i686"; sha1 = "80e0068890e6b422f392924f4e317c6d2058695e"; }
|
{ locale = "bg"; arch = "linux-i686"; sha1 = "3fab78887d35fac20483c168b05a45cd646d16ab"; }
|
||||||
{ locale = "bg"; arch = "linux-x86_64"; sha1 = "b4f3fa93b7d793560627ec4d51c138d013dd6c00"; }
|
{ locale = "bg"; arch = "linux-x86_64"; sha1 = "03035db9fc8f6439d29ac396ae91888dfa2e127d"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-i686"; sha1 = "14f5d14a135fc929ee670078e50567b5461ece8a"; }
|
{ locale = "bn-BD"; arch = "linux-i686"; sha1 = "20eb295ef81b17f5427014b1234b6bca5ba34605"; }
|
||||||
{ locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "95f561f92166d9db64ba5e36edaa14d7b4f989a3"; }
|
{ locale = "bn-BD"; arch = "linux-x86_64"; sha1 = "85b1af82364dbfbd5c614f2d524f455ab45e3681"; }
|
||||||
{ locale = "bn-IN"; arch = "linux-i686"; sha1 = "07b00a5d4b83d8d0e451ba08325fb44c784453f6"; }
|
{ locale = "bn-IN"; arch = "linux-i686"; sha1 = "e9745b0f3d7392a10706c8668faf598b0f9daec4"; }
|
||||||
{ locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "a96e0bafbf811c5bd57fb3e8164e38365386e460"; }
|
{ locale = "bn-IN"; arch = "linux-x86_64"; sha1 = "0f54e8f852a4af3fc8567f3b3b383e1dff3c23bd"; }
|
||||||
{ locale = "br"; arch = "linux-i686"; sha1 = "ee51d5b01c4489e5802c130748ee16b0a803dcb9"; }
|
{ locale = "br"; arch = "linux-i686"; sha1 = "5ae670b00b932f1732fddde8d8c804501ddd27d3"; }
|
||||||
{ locale = "br"; arch = "linux-x86_64"; sha1 = "0cff437fe8c29705ec9d800d95329309eed540f4"; }
|
{ locale = "br"; arch = "linux-x86_64"; sha1 = "2569214acecc2fed7c087b27d047b82ccf42e3be"; }
|
||||||
{ locale = "bs"; arch = "linux-i686"; sha1 = "0d7aef80272ca1de27560b7fe4f8ec892d386b6d"; }
|
{ locale = "bs"; arch = "linux-i686"; sha1 = "76fe2cc09da9f87f2178b686787cf55794ec233e"; }
|
||||||
{ locale = "bs"; arch = "linux-x86_64"; sha1 = "b62a905e9e992e3765cf196a18d50f533e2dd69f"; }
|
{ locale = "bs"; arch = "linux-x86_64"; sha1 = "d2f70787cc36fceda857fad3c9552d1c4fa1b812"; }
|
||||||
{ locale = "ca"; arch = "linux-i686"; sha1 = "82316407a9745d4dc56d961f5f2282c702950fe2"; }
|
{ locale = "ca"; arch = "linux-i686"; sha1 = "ca2f3dc2369c2c2757ef8d8e6258f0b2b192e00d"; }
|
||||||
{ locale = "ca"; arch = "linux-x86_64"; sha1 = "69ae06e06a90a28eb66db4d0df2fdbb5397abc24"; }
|
{ locale = "ca"; arch = "linux-x86_64"; sha1 = "771d59990ef2c7199a6a1a7e4a83448df03fc665"; }
|
||||||
{ locale = "cs"; arch = "linux-i686"; sha1 = "c55e80b3d74f6dd494fe1c327053f59bef1c626a"; }
|
{ locale = "cs"; arch = "linux-i686"; sha1 = "4acce7f304ff6ac5b07389fbe91e97cf7599b821"; }
|
||||||
{ locale = "cs"; arch = "linux-x86_64"; sha1 = "932f6a15f1445d180df01195c19677cbe63fd18f"; }
|
{ locale = "cs"; arch = "linux-x86_64"; sha1 = "a764135d7f7301d1f08b767f7f51a99348d5b2f0"; }
|
||||||
{ locale = "cy"; arch = "linux-i686"; sha1 = "abe63dfde0487c77fa9b3b9c77fcffe0f977b25b"; }
|
{ locale = "cy"; arch = "linux-i686"; sha1 = "731b053f99eef029580eec90730a8b2b20624f47"; }
|
||||||
{ locale = "cy"; arch = "linux-x86_64"; sha1 = "89eeb72232affbd54eff30f4c9844f802c0cf243"; }
|
{ locale = "cy"; arch = "linux-x86_64"; sha1 = "636b964015a4a2ac2e45092e726c0e64d404582c"; }
|
||||||
{ locale = "da"; arch = "linux-i686"; sha1 = "57232745fa920525721ec6e9b3c3177862b5e096"; }
|
{ locale = "da"; arch = "linux-i686"; sha1 = "611b1290d147af331aa193380758cc3dfa3cafdf"; }
|
||||||
{ locale = "da"; arch = "linux-x86_64"; sha1 = "2ba7156b5728f17ab1e55b27ee771722a9171cf1"; }
|
{ locale = "da"; arch = "linux-x86_64"; sha1 = "ea7d77e511b4165c7b889113b46389d4998dd50d"; }
|
||||||
{ locale = "de"; arch = "linux-i686"; sha1 = "17fd4dd5e4b2ea39ed20a6d890ea5927532abd38"; }
|
{ locale = "de"; arch = "linux-i686"; sha1 = "ca3425c8264c4d9db53a2cbce52519912de7ecf9"; }
|
||||||
{ locale = "de"; arch = "linux-x86_64"; sha1 = "58c72ef01098523392f63209057373b9e793ebb8"; }
|
{ locale = "de"; arch = "linux-x86_64"; sha1 = "2d9b99842a185c4063166de5926db46182b258e5"; }
|
||||||
{ locale = "dsb"; arch = "linux-i686"; sha1 = "a3296dd541362c4ca3ce8734faa33512a0fff4fc"; }
|
{ locale = "dsb"; arch = "linux-i686"; sha1 = "1ee0b0d3e599b98e5b190f8c7cd5d04a1141203a"; }
|
||||||
{ locale = "dsb"; arch = "linux-x86_64"; sha1 = "c5c7bf61d4923ec9937afa6d261c7f0af64e468f"; }
|
{ locale = "dsb"; arch = "linux-x86_64"; sha1 = "24f840a1ff2d00a74c617af81584f6d2907f7b7e"; }
|
||||||
{ locale = "el"; arch = "linux-i686"; sha1 = "be04c1f884f3f0d68fa5c421eb2c8b850bef2a44"; }
|
{ locale = "el"; arch = "linux-i686"; sha1 = "5ecb3ea1cdc9211270239b6ec4a9d29bc1b68409"; }
|
||||||
{ locale = "el"; arch = "linux-x86_64"; sha1 = "33ffdffb657a379f2bdb3b39bacc60d59ae9b945"; }
|
{ locale = "el"; arch = "linux-x86_64"; sha1 = "fa81057327b718264e82cf6aad2c0e756ab709dc"; }
|
||||||
{ locale = "en-GB"; arch = "linux-i686"; sha1 = "16e2c1cda685b132b0d9378fd5ac22b0e07da320"; }
|
{ locale = "en-GB"; arch = "linux-i686"; sha1 = "8f2d51fd2f4fc43c766fa4d8db4180f8129d1a89"; }
|
||||||
{ locale = "en-GB"; arch = "linux-x86_64"; sha1 = "89e552187c98fccc6b2270080c530bf7edf3471f"; }
|
{ locale = "en-GB"; arch = "linux-x86_64"; sha1 = "4395202bd676e8b6ff41ca946c885f1898fac1cc"; }
|
||||||
{ locale = "en-US"; arch = "linux-i686"; sha1 = "42be4a279ef164a43908a0896cacec6a96b2c23e"; }
|
{ locale = "en-US"; arch = "linux-i686"; sha1 = "7f54347e1929c20c1ccbcf3fa9e07749b2fbf0d3"; }
|
||||||
{ locale = "en-US"; arch = "linux-x86_64"; sha1 = "2a9aab1149b2bf59c2b687cb80a6fa550aa263be"; }
|
{ locale = "en-US"; arch = "linux-x86_64"; sha1 = "3906fdb4f0fdb0e4e1f21e577099f106e90f02a5"; }
|
||||||
{ locale = "en-ZA"; arch = "linux-i686"; sha1 = "92f42855948bd262266f6239a7f989848703a85f"; }
|
{ locale = "en-ZA"; arch = "linux-i686"; sha1 = "5dd5a1e54e72962714dc443677069cd65d5f4f85"; }
|
||||||
{ locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "95250cced67fb3a8eab40bc8db6d70b4efa610c9"; }
|
{ locale = "en-ZA"; arch = "linux-x86_64"; sha1 = "2d1c15b66760419f33e67450c51785567d33a1b7"; }
|
||||||
{ locale = "eo"; arch = "linux-i686"; sha1 = "6564b701a3face85aa53ab80024145b58d653ec5"; }
|
{ locale = "eo"; arch = "linux-i686"; sha1 = "ab2c3c65b723795c9e5335c3efda8406dd660ff5"; }
|
||||||
{ locale = "eo"; arch = "linux-x86_64"; sha1 = "eaa3337fbca2b182981cae1423357c537a5cc33f"; }
|
{ locale = "eo"; arch = "linux-x86_64"; sha1 = "fc35c1ddb53482cdb147a4b8ef5d18b1533f859a"; }
|
||||||
{ locale = "es-AR"; arch = "linux-i686"; sha1 = "05cebf2df8c58c03934340b9d56a1a09e0af9ffc"; }
|
{ locale = "es-AR"; arch = "linux-i686"; sha1 = "b2e4991dff339369d07d6e1b7c9c57807010f1e6"; }
|
||||||
{ locale = "es-AR"; arch = "linux-x86_64"; sha1 = "d8660257e51bf94c864b27cbbfa2e3ef98ef66f8"; }
|
{ locale = "es-AR"; arch = "linux-x86_64"; sha1 = "08358b68d518478ab3e177dc25e44bcc22d6a10b"; }
|
||||||
{ locale = "es-CL"; arch = "linux-i686"; sha1 = "827deacb3439086c263e8a3f168700e510e0158c"; }
|
{ locale = "es-CL"; arch = "linux-i686"; sha1 = "dbadd2dd873009d49015d9ba73ff8399c3c923b3"; }
|
||||||
{ locale = "es-CL"; arch = "linux-x86_64"; sha1 = "b905a1b57ccacb8aec34f47126c26ce435edd2d9"; }
|
{ locale = "es-CL"; arch = "linux-x86_64"; sha1 = "22d995b08052750addcb06801b5ea46757de48c8"; }
|
||||||
{ locale = "es-ES"; arch = "linux-i686"; sha1 = "189f5230874080d982a23725cafba889db016194"; }
|
{ locale = "es-ES"; arch = "linux-i686"; sha1 = "705524e182679992eb6cf943ac6768b7732ae4fb"; }
|
||||||
{ locale = "es-ES"; arch = "linux-x86_64"; sha1 = "66f416faac68c156d0c2773a47cc2014ab51b0d1"; }
|
{ locale = "es-ES"; arch = "linux-x86_64"; sha1 = "24f1558fe278c92abf89d046dc2ca8b947d878fb"; }
|
||||||
{ locale = "es-MX"; arch = "linux-i686"; sha1 = "1bd21f64057f4ad4e74a2f6ef7c054f0662f95bb"; }
|
{ locale = "es-MX"; arch = "linux-i686"; sha1 = "69333c9937dd4430facc52f05e35059433b0c78d"; }
|
||||||
{ locale = "es-MX"; arch = "linux-x86_64"; sha1 = "0bdedcd03eae8fbde6fec2f35a7c1c0d2140f0ff"; }
|
{ locale = "es-MX"; arch = "linux-x86_64"; sha1 = "2e28497f7e6aeacf54a4b88ce91338260d5191b0"; }
|
||||||
{ locale = "et"; arch = "linux-i686"; sha1 = "d4a96b30b8f084a6b2d8e58db8e7398db0738606"; }
|
{ locale = "et"; arch = "linux-i686"; sha1 = "fb262e3020715e921b9408b8e661e14e8de226b1"; }
|
||||||
{ locale = "et"; arch = "linux-x86_64"; sha1 = "30de382a9941c4f8857938c37e491ec1a2ebfc27"; }
|
{ locale = "et"; arch = "linux-x86_64"; sha1 = "d49430fa7328566369046efb6d92da24445b00af"; }
|
||||||
{ locale = "eu"; arch = "linux-i686"; sha1 = "f43ef29288e5129b8335601ea2f45ee9b94c1b82"; }
|
{ locale = "eu"; arch = "linux-i686"; sha1 = "56de1040fda96ccd59b010578c91303c57bf7a53"; }
|
||||||
{ locale = "eu"; arch = "linux-x86_64"; sha1 = "cfd741f43b86a1f0a62df2c44898289cd86c2936"; }
|
{ locale = "eu"; arch = "linux-x86_64"; sha1 = "04c6e7f3430da79450eb3a96238c11c997feb2fb"; }
|
||||||
{ locale = "fa"; arch = "linux-i686"; sha1 = "02f264a1e2c6dff8d1c1dc70f9af305fa9156c01"; }
|
{ locale = "fa"; arch = "linux-i686"; sha1 = "6ab145b3e85c6b001d49004b99c53fd71444646a"; }
|
||||||
{ locale = "fa"; arch = "linux-x86_64"; sha1 = "290d8a53538fe75d1e1d36407c7efa5f56569787"; }
|
{ locale = "fa"; arch = "linux-x86_64"; sha1 = "fbe27589194dae4d63c7b9f8a45f3abffba42449"; }
|
||||||
{ locale = "ff"; arch = "linux-i686"; sha1 = "bcfd312781f308de7550a8f12609230c48c353b2"; }
|
{ locale = "ff"; arch = "linux-i686"; sha1 = "adaed8878d757ed6b74bd334b138a1c46c438de7"; }
|
||||||
{ locale = "ff"; arch = "linux-x86_64"; sha1 = "eddd9175de24bc429c04be01e4af6af6f7003065"; }
|
{ locale = "ff"; arch = "linux-x86_64"; sha1 = "91a9fecbcb65067c420b0338dbcbf37d4bc4ed20"; }
|
||||||
{ locale = "fi"; arch = "linux-i686"; sha1 = "3cf088f03c3003f1888645b06311e7f46007df83"; }
|
{ locale = "fi"; arch = "linux-i686"; sha1 = "3e31d26155648b3148f8e0340db84e5725435b58"; }
|
||||||
{ locale = "fi"; arch = "linux-x86_64"; sha1 = "a01a6fd604471cbd69c5046ec5e13f01ca63457a"; }
|
{ locale = "fi"; arch = "linux-x86_64"; sha1 = "17a8e273c9dbf82d4f86b81426f07af62a49ee6a"; }
|
||||||
{ locale = "fr"; arch = "linux-i686"; sha1 = "e8e3caf2ceef2ae8a645806731bf99572244fb24"; }
|
{ locale = "fr"; arch = "linux-i686"; sha1 = "8fa301bb3c7f8bd713c2bfa6768b73bd02a38de4"; }
|
||||||
{ locale = "fr"; arch = "linux-x86_64"; sha1 = "753a4bab9ce3016e773d4afa7ad9d14f7746cf4e"; }
|
{ locale = "fr"; arch = "linux-x86_64"; sha1 = "ddd0bf1ce6a6fc70eb48e9bd72a52b20b78f2256"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-i686"; sha1 = "d0b3719b07b2c3fbe9c05ba30012331641c09d2b"; }
|
{ locale = "fy-NL"; arch = "linux-i686"; sha1 = "264d6237f00cbacbdfc3d47385c349422394cdd7"; }
|
||||||
{ locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "9e8ccf90e0687aa112d48f0faeffdee58f41ea95"; }
|
{ locale = "fy-NL"; arch = "linux-x86_64"; sha1 = "7f9dfde56e776f16d30df9e3fc6853f8001d9837"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-i686"; sha1 = "a3fbc0aaf36e444ea10c4b0593ad3ec07e100147"; }
|
{ locale = "ga-IE"; arch = "linux-i686"; sha1 = "c032daf124507e56be02d15df8b651c814ec105b"; }
|
||||||
{ locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "ed1e7b3c62dbb97bfef8b6512b8032b7bd8d2c9e"; }
|
{ locale = "ga-IE"; arch = "linux-x86_64"; sha1 = "2032c9e8c23fcf3ecc1db6eccfff921f6a49d734"; }
|
||||||
{ locale = "gd"; arch = "linux-i686"; sha1 = "49fc536511bdaa096086408385ae70cace64fb0b"; }
|
{ locale = "gd"; arch = "linux-i686"; sha1 = "4ba7388a13dedc7ad7d1d83742d9f7f8c211aa76"; }
|
||||||
{ locale = "gd"; arch = "linux-x86_64"; sha1 = "67de65f4ae8accda417cd8fc9082160a4a46cc06"; }
|
{ locale = "gd"; arch = "linux-x86_64"; sha1 = "96ff03ffc0495ae4042dd6d37cd7aa2c9748b7c2"; }
|
||||||
{ locale = "gl"; arch = "linux-i686"; sha1 = "dd239f26f4d758294ce21dc1ffebe9e02584e05d"; }
|
{ locale = "gl"; arch = "linux-i686"; sha1 = "43c4c6e2dcc364711f5368ad1efe223df5fda4d5"; }
|
||||||
{ locale = "gl"; arch = "linux-x86_64"; sha1 = "1b9d06b047de0c66485f2c7b642b6edddd7dacc3"; }
|
{ locale = "gl"; arch = "linux-x86_64"; sha1 = "bbd0443d6ed8598ae78a71b834c3b4c4e2d599cc"; }
|
||||||
{ locale = "gu-IN"; arch = "linux-i686"; sha1 = "a191408d96e73da4ecda1faa2510dec307a3442b"; }
|
{ locale = "gu-IN"; arch = "linux-i686"; sha1 = "6ee1707123bb560fe7b1dc39165c4a4250565cc4"; }
|
||||||
{ locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "5bf621a4fe1a625b70df63b53930a3a5ee922405"; }
|
{ locale = "gu-IN"; arch = "linux-x86_64"; sha1 = "6254300eddc173e888cfb70db612ef7fa41aa2e7"; }
|
||||||
{ locale = "he"; arch = "linux-i686"; sha1 = "95b84a18316a74e8fcd7d16fd6e9c1fea6778510"; }
|
{ locale = "he"; arch = "linux-i686"; sha1 = "de203188d6b68e8a7c24bf0bea40342535897a9b"; }
|
||||||
{ locale = "he"; arch = "linux-x86_64"; sha1 = "548545c4d46c296aa9d922ee5a14312a9677822c"; }
|
{ locale = "he"; arch = "linux-x86_64"; sha1 = "598d0d0d1eb22ed7378c8aaced43ebe91f0ab305"; }
|
||||||
{ locale = "hi-IN"; arch = "linux-i686"; sha1 = "5a5e53167fe9050bc9482d61d17f6808cc655407"; }
|
{ locale = "hi-IN"; arch = "linux-i686"; sha1 = "809126d150b1fbd42e7bcdd14c032bfb11797f46"; }
|
||||||
{ locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "36e3df183cf2b5b645cb2d89b90b640b7f3697f2"; }
|
{ locale = "hi-IN"; arch = "linux-x86_64"; sha1 = "c940ec3a10d61d47a891fc538c9076af90cda65b"; }
|
||||||
{ locale = "hr"; arch = "linux-i686"; sha1 = "fa1a4482857b788c49d04f6a5c3eeada25c2ac52"; }
|
{ locale = "hr"; arch = "linux-i686"; sha1 = "a85b937eac26926f8f69d5181d27504b06284b63"; }
|
||||||
{ locale = "hr"; arch = "linux-x86_64"; sha1 = "e641cf2b562c6b391e24601d4f3ceefb7117d02a"; }
|
{ locale = "hr"; arch = "linux-x86_64"; sha1 = "288262d030c80308e725de8ad39914509a538526"; }
|
||||||
{ locale = "hsb"; arch = "linux-i686"; sha1 = "b1fc4cad22c66824297aec7c82053d1f7611f108"; }
|
{ locale = "hsb"; arch = "linux-i686"; sha1 = "9b084622ae514854bf01c6977c31d77f5d83de59"; }
|
||||||
{ locale = "hsb"; arch = "linux-x86_64"; sha1 = "1c2db6cf0a14002ad4c473ab1ff1fcd7f4543ca4"; }
|
{ locale = "hsb"; arch = "linux-x86_64"; sha1 = "249f387302c44f79eef12d336af81eab07ea6463"; }
|
||||||
{ locale = "hu"; arch = "linux-i686"; sha1 = "4c5a90ed0cb4d6930a3eab0a2ec216805d680895"; }
|
{ locale = "hu"; arch = "linux-i686"; sha1 = "c646b79ba6c74823caad11aca9ddc2ca8051117e"; }
|
||||||
{ locale = "hu"; arch = "linux-x86_64"; sha1 = "c71c7e68c493bd9ecb407f32c8896b41ecfe95d5"; }
|
{ locale = "hu"; arch = "linux-x86_64"; sha1 = "f1436bd0c5ca9ba23eb50caef9a6cc4c5dad74d8"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-i686"; sha1 = "01536fa2739a9dd68e713f4e4e41dac5f2b58422"; }
|
{ locale = "hy-AM"; arch = "linux-i686"; sha1 = "9523c995e785efda19bf0cfd08fa7399b37138b3"; }
|
||||||
{ locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "b19d7fab445ed314ca8076d0b837c0e15407649d"; }
|
{ locale = "hy-AM"; arch = "linux-x86_64"; sha1 = "2992ebd3a86bbca04e443d1f55d73a876a8b4505"; }
|
||||||
{ locale = "id"; arch = "linux-i686"; sha1 = "163e7a14d274a10780a18201afa7dfae27bf5967"; }
|
{ locale = "id"; arch = "linux-i686"; sha1 = "0bd17d152d738ba6a57da12f333fa9d942fbd274"; }
|
||||||
{ locale = "id"; arch = "linux-x86_64"; sha1 = "d1108b006c607f470543915d8956394a1b767c27"; }
|
{ locale = "id"; arch = "linux-x86_64"; sha1 = "1bbed6d2d3ffc2ed91c6f4badd5243af17fe63ca"; }
|
||||||
{ locale = "is"; arch = "linux-i686"; sha1 = "5460b7445462f786f138a755615f3970fbdc7274"; }
|
{ locale = "is"; arch = "linux-i686"; sha1 = "90c33bf3896565df30b104d271cf4aa1d09d67d1"; }
|
||||||
{ locale = "is"; arch = "linux-x86_64"; sha1 = "e5ec0cff0f1c88f0b2a4444ef9d71bbeb3541772"; }
|
{ locale = "is"; arch = "linux-x86_64"; sha1 = "05e1f66bc84dd2ce1b142ee64b420eae3321f172"; }
|
||||||
{ locale = "it"; arch = "linux-i686"; sha1 = "39cab2de100e4a1a2783659cab5c7247e230aa11"; }
|
{ locale = "it"; arch = "linux-i686"; sha1 = "b11e6172e8040fe0c6749a684e0073fdb5a19402"; }
|
||||||
{ locale = "it"; arch = "linux-x86_64"; sha1 = "b21a1d214bddd8f074d0d0a06d64c4aa35580c68"; }
|
{ locale = "it"; arch = "linux-x86_64"; sha1 = "5c47ffa4b944c71576017c684ab8ebd78fc52d08"; }
|
||||||
{ locale = "ja"; arch = "linux-i686"; sha1 = "b78dd34339c68348de753c66d6e12a78748aa261"; }
|
{ locale = "ja"; arch = "linux-i686"; sha1 = "acae3c28497f4ae7937f4bd38174e5a30b009475"; }
|
||||||
{ locale = "ja"; arch = "linux-x86_64"; sha1 = "e4a1720278debf305c3f353bbafe35384b72bd61"; }
|
{ locale = "ja"; arch = "linux-x86_64"; sha1 = "d3610648b5a7f1bc223fb36ca94ee4d8f25060f7"; }
|
||||||
{ locale = "kk"; arch = "linux-i686"; sha1 = "371dc2118f8917d2fb904d07e23214728db13118"; }
|
{ locale = "kk"; arch = "linux-i686"; sha1 = "0d4185c11d9a4ed7f2c554fd322b6a5a0fdacf53"; }
|
||||||
{ locale = "kk"; arch = "linux-x86_64"; sha1 = "e4a4742b0f2efbb2491b501147bb1115f64b081d"; }
|
{ locale = "kk"; arch = "linux-x86_64"; sha1 = "189ee9cb3c88809dc9dc4c7dbde2ccafa333a432"; }
|
||||||
{ locale = "km"; arch = "linux-i686"; sha1 = "4ad8c7a8821043a635e78f41f6da4ab6ffb334c2"; }
|
{ locale = "km"; arch = "linux-i686"; sha1 = "8e39eb920380bcb87aaf48a69ea53bbf6abba2c7"; }
|
||||||
{ locale = "km"; arch = "linux-x86_64"; sha1 = "0f4685c194054dccaac5aec9fd27f6c74ed82148"; }
|
{ locale = "km"; arch = "linux-x86_64"; sha1 = "8770649702e38783e3e2841ce0ce66f068a4b23d"; }
|
||||||
{ locale = "kn"; arch = "linux-i686"; sha1 = "427b395693c8ce5d1f970f2c3a47d097785dcdea"; }
|
{ locale = "kn"; arch = "linux-i686"; sha1 = "e0407f7df92240aa866ba981c9054760cdc07cd9"; }
|
||||||
{ locale = "kn"; arch = "linux-x86_64"; sha1 = "15e28abebde39ebafe916523b658463087be73db"; }
|
{ locale = "kn"; arch = "linux-x86_64"; sha1 = "f4558f7edab4f85612d8280cf8ab131492854ba8"; }
|
||||||
{ locale = "ko"; arch = "linux-i686"; sha1 = "919862720789c005e1773b4da3427fa56c3d0528"; }
|
{ locale = "ko"; arch = "linux-i686"; sha1 = "373b7ef465500dcc7bbe9a48e113f26bc4a6a27b"; }
|
||||||
{ locale = "ko"; arch = "linux-x86_64"; sha1 = "aa38b625f9bab73669919c0ad36221f7c887186e"; }
|
{ locale = "ko"; arch = "linux-x86_64"; sha1 = "8c8b0fe42a644c29ebafd1aa7b82733b7c5d6bb4"; }
|
||||||
{ locale = "lij"; arch = "linux-i686"; sha1 = "abc21985aa1de2fa256283f03fd3b98e147ccd3a"; }
|
{ locale = "lij"; arch = "linux-i686"; sha1 = "a22f113cde99557fa8973776e19f6bf4cfff1114"; }
|
||||||
{ locale = "lij"; arch = "linux-x86_64"; sha1 = "8b811ce3fe2528d33a0f00a7c3292b9cb37eb1b1"; }
|
{ locale = "lij"; arch = "linux-x86_64"; sha1 = "dd7917fb9c1e8bbd1db503829c8bdf1d5a935769"; }
|
||||||
{ locale = "lt"; arch = "linux-i686"; sha1 = "601dd265370ee7514a2cdf6739bfbd3d59d450d6"; }
|
{ locale = "lt"; arch = "linux-i686"; sha1 = "8887a493a938d10ee63630cda8ef9b3a03f01a1e"; }
|
||||||
{ locale = "lt"; arch = "linux-x86_64"; sha1 = "c13736cb853a35f1b6583d89b9ded90302acb637"; }
|
{ locale = "lt"; arch = "linux-x86_64"; sha1 = "8fca22b9076082e859f0dff2afe7ccb245ee0fad"; }
|
||||||
{ locale = "lv"; arch = "linux-i686"; sha1 = "09910ed1364063efc07e24a78224d1fc93b2196b"; }
|
{ locale = "lv"; arch = "linux-i686"; sha1 = "a5e4a7c95f336ca6664fee8b16e002a44561effb"; }
|
||||||
{ locale = "lv"; arch = "linux-x86_64"; sha1 = "0a6132a1080e084c9e4a691bce7e12459cec817b"; }
|
{ locale = "lv"; arch = "linux-x86_64"; sha1 = "e69bdda0ae0b3782a10e64ed3fd85ab19c7630a2"; }
|
||||||
{ locale = "mai"; arch = "linux-i686"; sha1 = "262c75582645c2ee1c92552263aab7fe35483bc3"; }
|
{ locale = "mai"; arch = "linux-i686"; sha1 = "1efb4b5f649f219cf66f148297b5f669fb4dc16f"; }
|
||||||
{ locale = "mai"; arch = "linux-x86_64"; sha1 = "d76755153a0656c2fd17db53c40f493a0f0dcab6"; }
|
{ locale = "mai"; arch = "linux-x86_64"; sha1 = "7ad1e9472c812e71e358e67021aa0a07a0d97062"; }
|
||||||
{ locale = "mk"; arch = "linux-i686"; sha1 = "787ec5a7ccf9b9bd116917de752e9b411e37fe5f"; }
|
{ locale = "mk"; arch = "linux-i686"; sha1 = "bb96c1a1d5f371ecbed4b9c6e3ae1d244e582f6f"; }
|
||||||
{ locale = "mk"; arch = "linux-x86_64"; sha1 = "2de12f1514a47f8c0ee8a166c7c6d68d8c966824"; }
|
{ locale = "mk"; arch = "linux-x86_64"; sha1 = "a4d18deaa48a23f588b7d8db4973a37764e97449"; }
|
||||||
{ locale = "ml"; arch = "linux-i686"; sha1 = "807bea1339fa44c2f1d9af264539d1f550235e62"; }
|
{ locale = "ml"; arch = "linux-i686"; sha1 = "961f1ca920469c5f95ec875fbc33a913ae2a1986"; }
|
||||||
{ locale = "ml"; arch = "linux-x86_64"; sha1 = "aeca07821afbfc0ec1763fd30da7098e27f11b19"; }
|
{ locale = "ml"; arch = "linux-x86_64"; sha1 = "c662ac25845f9f83cee846a3b02f41186ed7c83e"; }
|
||||||
{ locale = "mr"; arch = "linux-i686"; sha1 = "d431e48ecec721b996ab6f63b99ada14ac8bbbe5"; }
|
{ locale = "mr"; arch = "linux-i686"; sha1 = "7b01dc5ce1dd97f5b2c3b39783eaa06556dd03da"; }
|
||||||
{ locale = "mr"; arch = "linux-x86_64"; sha1 = "fb60740faf4aa2d98821c77b28be29f456707d37"; }
|
{ locale = "mr"; arch = "linux-x86_64"; sha1 = "2940bacdbc3f021ad421097e94017627cf59d655"; }
|
||||||
{ locale = "ms"; arch = "linux-i686"; sha1 = "5ef013dd820a0c945cea2f131573ffbac5693391"; }
|
{ locale = "ms"; arch = "linux-i686"; sha1 = "624edc402de71fec31b63e01a9a1f2b79b3c5db3"; }
|
||||||
{ locale = "ms"; arch = "linux-x86_64"; sha1 = "c6d211c224711eb33b8ce55605e140cc09492bd1"; }
|
{ locale = "ms"; arch = "linux-x86_64"; sha1 = "30dceab395c15909d55ede343071a1fcea21af7b"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-i686"; sha1 = "6678b16af728fe90c7b58d9e5e0a3aa01ca40ca1"; }
|
{ locale = "nb-NO"; arch = "linux-i686"; sha1 = "958f0e5ffa8911eee58883b22fbf6db18d1fe1a0"; }
|
||||||
{ locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "2c77fe81d3723a9be4926bbfcfb904edc928649a"; }
|
{ locale = "nb-NO"; arch = "linux-x86_64"; sha1 = "b0bc728560beb154ca2b9bd8e5c607458afa88f2"; }
|
||||||
{ locale = "nl"; arch = "linux-i686"; sha1 = "45ee40efa93fc973e8c8d5f70f5155132f5a073b"; }
|
{ locale = "nl"; arch = "linux-i686"; sha1 = "77976787dfa2464cd859bb3c3245fddd6cfd5c02"; }
|
||||||
{ locale = "nl"; arch = "linux-x86_64"; sha1 = "29f74d404f90711974187120f8589c18125dba1e"; }
|
{ locale = "nl"; arch = "linux-x86_64"; sha1 = "ba47a63624bd64597dde61dfbf04c94eaada4900"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-i686"; sha1 = "162d5e2270488d40a60cb3c1e07aded76a82ba1d"; }
|
{ locale = "nn-NO"; arch = "linux-i686"; sha1 = "d35fdb72fd1afee6310ab4e8a764e75804822226"; }
|
||||||
{ locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "40af304764aa36609e3969bde13ace2745bf43d8"; }
|
{ locale = "nn-NO"; arch = "linux-x86_64"; sha1 = "848c8d69a53ad6841ecb38d7ea93b37a70b182d8"; }
|
||||||
{ locale = "or"; arch = "linux-i686"; sha1 = "721e06a231398af851bbaef046b69349b9c42e9f"; }
|
{ locale = "or"; arch = "linux-i686"; sha1 = "f7b83449922833f438acd3ee9b3bdbd1ceb8d578"; }
|
||||||
{ locale = "or"; arch = "linux-x86_64"; sha1 = "925cb0a0bf1544b4a95abd3bf1e6bf14017b7c89"; }
|
{ locale = "or"; arch = "linux-x86_64"; sha1 = "a9f255e2fdcdd8b5d95026af2dfc6b90da7eed64"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-i686"; sha1 = "37f8b5ac56fcbda135b2ec5fd9ca7bfdb70d496e"; }
|
{ locale = "pa-IN"; arch = "linux-i686"; sha1 = "1a1552f9ae38db0314550831711a674c50a3c9d1"; }
|
||||||
{ locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "fabd53bf219b5c4e8b7f70e7ce82ab85609fcc01"; }
|
{ locale = "pa-IN"; arch = "linux-x86_64"; sha1 = "eea36a9355b0d0e3477a51d7ea8cbe46745fbbf2"; }
|
||||||
{ locale = "pl"; arch = "linux-i686"; sha1 = "773977cbd1146de1699b7c25b7a382bec8d0f55c"; }
|
{ locale = "pl"; arch = "linux-i686"; sha1 = "6f7c3ea9d43bae1d9177c41a60b6e568081c33f2"; }
|
||||||
{ locale = "pl"; arch = "linux-x86_64"; sha1 = "b3e5db98279b7425e5a1027bdfbddf8b2ba316ae"; }
|
{ locale = "pl"; arch = "linux-x86_64"; sha1 = "b6b7b6ae8391ff342bcc0f3fd3b14e7189f9ea02"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-i686"; sha1 = "fea58817e88b9e1709f1661a6465ff60e4463793"; }
|
{ locale = "pt-BR"; arch = "linux-i686"; sha1 = "d474f48517529dbeb5bc12ad57b28cc1bdd3cf28"; }
|
||||||
{ locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "4e05bcc1f9dc58b6fa02aaafbfab67d185d12521"; }
|
{ locale = "pt-BR"; arch = "linux-x86_64"; sha1 = "a8906806231ecb44c6368eb22dfa01a21c05bf89"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-i686"; sha1 = "1fd067546d5d203ef201691205244ce7bd0dd96c"; }
|
{ locale = "pt-PT"; arch = "linux-i686"; sha1 = "4910bd75b9566ba8fb1392c69610c6db527cc87c"; }
|
||||||
{ locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "b53ae8e66d220c5a66cbd32c8762eb6a13634297"; }
|
{ locale = "pt-PT"; arch = "linux-x86_64"; sha1 = "9205b1556359844144275f2a768f7ab74edc5519"; }
|
||||||
{ locale = "rm"; arch = "linux-i686"; sha1 = "edc6d8dc42d7d7ee6ea6e781bcfb346ae8d7f006"; }
|
{ locale = "rm"; arch = "linux-i686"; sha1 = "27b825a7eae976a53579cf1fed1509cd4f817023"; }
|
||||||
{ locale = "rm"; arch = "linux-x86_64"; sha1 = "12fd2cb3ac781490c433003b743055a67348ef04"; }
|
{ locale = "rm"; arch = "linux-x86_64"; sha1 = "03362ade5b3b5a030611cbb03767421bae1a2fe4"; }
|
||||||
{ locale = "ro"; arch = "linux-i686"; sha1 = "87b92ed3e53f7fbed86ff1e4c6143de3c52b2f87"; }
|
{ locale = "ro"; arch = "linux-i686"; sha1 = "75be442bb19172111ad2189bad0232839db53dfa"; }
|
||||||
{ locale = "ro"; arch = "linux-x86_64"; sha1 = "be0daa8a275ca40a8be609d24290a35a74b3ee36"; }
|
{ locale = "ro"; arch = "linux-x86_64"; sha1 = "4879b5f99852b7bf8f36237e121c6f3f58db395c"; }
|
||||||
{ locale = "ru"; arch = "linux-i686"; sha1 = "827b057a99f1c56f4a66f1f9e8e5de2a45f68471"; }
|
{ locale = "ru"; arch = "linux-i686"; sha1 = "2d447694af3e95669be993235eb239ff74c75aef"; }
|
||||||
{ locale = "ru"; arch = "linux-x86_64"; sha1 = "3f390efc29e49aae39d0030880a3b26cf8cd6318"; }
|
{ locale = "ru"; arch = "linux-x86_64"; sha1 = "227e369a35018d43d1ae6eb1b7859d289df15362"; }
|
||||||
{ locale = "si"; arch = "linux-i686"; sha1 = "7094d0d07dceae2e5a164d585e04799fd9a86a8b"; }
|
{ locale = "si"; arch = "linux-i686"; sha1 = "5c8ac234d851c0860b5f79f33b07c80f710776a2"; }
|
||||||
{ locale = "si"; arch = "linux-x86_64"; sha1 = "7a852dc124c1f207610aaf884119ae8804caaa41"; }
|
{ locale = "si"; arch = "linux-x86_64"; sha1 = "703b7a9557e43d196b34a498e5d08a0d582edf9b"; }
|
||||||
{ locale = "sk"; arch = "linux-i686"; sha1 = "2439f765924307b9d2d00ce32c13384839e39d5c"; }
|
{ locale = "sk"; arch = "linux-i686"; sha1 = "5b8ac9ead4f2886b21af1512b6942fb5e1acefa1"; }
|
||||||
{ locale = "sk"; arch = "linux-x86_64"; sha1 = "6017d51322d4d838449d6edf969803c1281e9229"; }
|
{ locale = "sk"; arch = "linux-x86_64"; sha1 = "ffee2ee4d0e47dfe252868f602a0d4c991cc890f"; }
|
||||||
{ locale = "sl"; arch = "linux-i686"; sha1 = "cfb6d7bdfd5abf6815381997d8f19710711017b9"; }
|
{ locale = "sl"; arch = "linux-i686"; sha1 = "836295228c78541efe1a21e5b64671dd8b9ec00c"; }
|
||||||
{ locale = "sl"; arch = "linux-x86_64"; sha1 = "e7cf289bd59a6499f018d403a5ad661fd117073b"; }
|
{ locale = "sl"; arch = "linux-x86_64"; sha1 = "4109e25e578d7af567f37062a753bdfcee394092"; }
|
||||||
{ locale = "son"; arch = "linux-i686"; sha1 = "e49233842e845f67d090b84caa86d9209bc5e79e"; }
|
{ locale = "son"; arch = "linux-i686"; sha1 = "34427023f9eeaa0c9924672fc59a58890b35635d"; }
|
||||||
{ locale = "son"; arch = "linux-x86_64"; sha1 = "dfaaa438d97fa3e0839b75144ba921898114f593"; }
|
{ locale = "son"; arch = "linux-x86_64"; sha1 = "12cda45700a294b72f94560e421c88dbf04ceb4b"; }
|
||||||
{ locale = "sq"; arch = "linux-i686"; sha1 = "d80a35017d041e2e4bd3a8f0925bb11d696b2ad7"; }
|
{ locale = "sq"; arch = "linux-i686"; sha1 = "1d3970aaa293e06b6a430cb73ccfafaf043a2364"; }
|
||||||
{ locale = "sq"; arch = "linux-x86_64"; sha1 = "f1f940683602b808962317e0da9adc82d2e81c03"; }
|
{ locale = "sq"; arch = "linux-x86_64"; sha1 = "0a49d2f6fed69ef22698e1ba98b8cbb008debc84"; }
|
||||||
{ locale = "sr"; arch = "linux-i686"; sha1 = "2a82cd867d939131b1985dcfeaf0d9d2a8682edf"; }
|
{ locale = "sr"; arch = "linux-i686"; sha1 = "ed6796f73a3e34db680414a5f7b17c4d326be884"; }
|
||||||
{ locale = "sr"; arch = "linux-x86_64"; sha1 = "ce4e49019bf1065610b862aaaec900d509561a5c"; }
|
{ locale = "sr"; arch = "linux-x86_64"; sha1 = "f22376834d160c165534f2e8ecbdad3273f46334"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-i686"; sha1 = "c3a9e5d86fe94ff9f22a3f891b604379ab1374ea"; }
|
{ locale = "sv-SE"; arch = "linux-i686"; sha1 = "24140ca9e8acbc64ad553a528acb057c67240c00"; }
|
||||||
{ locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "cc397d3ce95ccb4c957f05f90ac6eec28cbc383e"; }
|
{ locale = "sv-SE"; arch = "linux-x86_64"; sha1 = "875c60949b97edf2a951f470139153eafad03c9d"; }
|
||||||
{ locale = "ta"; arch = "linux-i686"; sha1 = "9ed781079e459942141597671a7ba13eef65bdf1"; }
|
{ locale = "ta"; arch = "linux-i686"; sha1 = "4adc26d74d6a0ec3fc80e5979750ed19ac93e290"; }
|
||||||
{ locale = "ta"; arch = "linux-x86_64"; sha1 = "fbd5dc0126e6df1ebebcc270f58d16344a46ee49"; }
|
{ locale = "ta"; arch = "linux-x86_64"; sha1 = "24b6a6f4a16b5a19b340949d326203e1d1cdd2cc"; }
|
||||||
{ locale = "te"; arch = "linux-i686"; sha1 = "7c29cc8335b9d4d3d9210c77caac74d25d477cdc"; }
|
{ locale = "te"; arch = "linux-i686"; sha1 = "4584c8b93624af4f630c759178d8857103ce6fca"; }
|
||||||
{ locale = "te"; arch = "linux-x86_64"; sha1 = "be02910dd1abc92d3754332e56274cc977773f64"; }
|
{ locale = "te"; arch = "linux-x86_64"; sha1 = "4b810afe09e317593e3fe269c5d686336cd3524f"; }
|
||||||
{ locale = "th"; arch = "linux-i686"; sha1 = "259edc8e888fdc32c714a45cf9599d15111f14e3"; }
|
{ locale = "th"; arch = "linux-i686"; sha1 = "c7b00a159fee121e5ff8f9e2248d6ae1a511647f"; }
|
||||||
{ locale = "th"; arch = "linux-x86_64"; sha1 = "934b28f0936b8ac9a395c906f9ca04150c9f79db"; }
|
{ locale = "th"; arch = "linux-x86_64"; sha1 = "4c0e26054226ccea1093a809a272cfd12d8af2ed"; }
|
||||||
{ locale = "tr"; arch = "linux-i686"; sha1 = "be173ce377a1a3ece05fb708316d79a880708137"; }
|
{ locale = "tr"; arch = "linux-i686"; sha1 = "b0844d25d0c9307675559a52e7c6a097615c403d"; }
|
||||||
{ locale = "tr"; arch = "linux-x86_64"; sha1 = "52a94b0a3fb58c256b66019d9b8c8f5ab420f3e6"; }
|
{ locale = "tr"; arch = "linux-x86_64"; sha1 = "67dfc61732853e99be82054344f59768b831d6d0"; }
|
||||||
{ locale = "uk"; arch = "linux-i686"; sha1 = "fc8e6574ef667c6a2de19cb82bec4bc47b85f907"; }
|
{ locale = "uk"; arch = "linux-i686"; sha1 = "d9a640765b27e192948e8b485ef4a7005513de29"; }
|
||||||
{ locale = "uk"; arch = "linux-x86_64"; sha1 = "bace7c6ffd9f02b0d6e24046f42c64b96db1a84a"; }
|
{ locale = "uk"; arch = "linux-x86_64"; sha1 = "c619fd93d8e9650482e3e1d639310b470f1c914b"; }
|
||||||
{ locale = "uz"; arch = "linux-i686"; sha1 = "1df792bf6b364632a0882ac055d9fee3b537e5c2"; }
|
{ locale = "uz"; arch = "linux-i686"; sha1 = "561a2c6d943908d4b3bcd2c80895d43b141d1a2b"; }
|
||||||
{ locale = "uz"; arch = "linux-x86_64"; sha1 = "f77c0bd068b1c44d20027793a826714262d38351"; }
|
{ locale = "uz"; arch = "linux-x86_64"; sha1 = "c287e06e19fb45f265d314fb5199af5c449464a0"; }
|
||||||
{ locale = "vi"; arch = "linux-i686"; sha1 = "8b367c6fee817dbb12e4c54b35df8a6d09900f33"; }
|
{ locale = "vi"; arch = "linux-i686"; sha1 = "469cb11ded0712ad3fe9c3cc01df74e6b566c845"; }
|
||||||
{ locale = "vi"; arch = "linux-x86_64"; sha1 = "307dee3afe576025524dee35904e70351cf03432"; }
|
{ locale = "vi"; arch = "linux-x86_64"; sha1 = "4d9e3f2ea7ab3ee76bf7d41fc6936915b18d45db"; }
|
||||||
{ locale = "xh"; arch = "linux-i686"; sha1 = "b04a6593e912a40d20be3c90cca3c7cdcd893e92"; }
|
{ locale = "xh"; arch = "linux-i686"; sha1 = "f48a638f685a7754ae23626a4d2e8209d5272b9c"; }
|
||||||
{ locale = "xh"; arch = "linux-x86_64"; sha1 = "6abfc8532600cdd20ce53923913d50b7eeb52ac8"; }
|
{ locale = "xh"; arch = "linux-x86_64"; sha1 = "a1bbf7e645291eaa7ccece17b13461d7f239f334"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-i686"; sha1 = "5d57176765f3be64230f36aa292992adf4a3c48c"; }
|
{ locale = "zh-CN"; arch = "linux-i686"; sha1 = "ca839f0034807715d7bccb0f97e4ffd7dbcf8e17"; }
|
||||||
{ locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "df6d9a163dddacbd58591bd9572b16c7364eda2c"; }
|
{ locale = "zh-CN"; arch = "linux-x86_64"; sha1 = "6dd09c5d50ce206931d1e1f6310fe4a55d8eddd4"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-i686"; sha1 = "92fa3a666d858427f2a0102d85320b567c43ee40"; }
|
{ locale = "zh-TW"; arch = "linux-i686"; sha1 = "1265d89ca47aa9f9f4f3a7825cef622a9ac2b18a"; }
|
||||||
{ locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "b11d2d33c335bd471b6762e39c646303b3345ba4"; }
|
{ locale = "zh-TW"; arch = "linux-x86_64"; sha1 = "2464e2c81407987ff9bb2b682b71f3b8f94aa455"; }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -22,11 +22,11 @@ with stdenv.lib;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gajim-${version}";
|
name = "gajim-${version}";
|
||||||
version = "0.16";
|
version = "0.16.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
|
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
|
||||||
sha256 = "14x15jwgl0c6vwj02ccpzmxr3fczp632mnj50cpklbaj4bxqvgbs";
|
sha256 = "1gp8mdn6sz2pks5irsf563zbz98ldqksfky84ga9fzqndmq35bi6";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
@ -4,12 +4,12 @@ with goPackages;
|
|||||||
|
|
||||||
buildGoPackage rec {
|
buildGoPackage rec {
|
||||||
name = "syncthing-${version}";
|
name = "syncthing-${version}";
|
||||||
version = "0.10.24";
|
version = "0.10.25";
|
||||||
goPackagePath = "github.com/syncthing/syncthing";
|
goPackagePath = "github.com/syncthing/syncthing";
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "git://github.com/syncthing/syncthing.git";
|
url = "git://github.com/syncthing/syncthing.git";
|
||||||
rev = "refs/tags/v${version}";
|
rev = "refs/tags/v${version}";
|
||||||
sha256 = "9c79f62a10c88fe5d3452f16b0f8ed9cde5a70ec82aaec1e7b99cc1fb41a3dda";
|
sha256 = "fcb6fbcd37bdcf07d2960d143209b7697ee705286754ead4cc5e6bd95cd0acb8";
|
||||||
};
|
};
|
||||||
|
|
||||||
subPackages = [ "cmd/syncthing" ];
|
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";
|
sha256 = "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f";
|
||||||
};
|
};
|
||||||
|
|
||||||
patchPhase = ''
|
preInstall = ''
|
||||||
sed -i -e "s|/usr/local/bin|$out/bin|g" -e "s|/usr/share|$out/share|g" Makefile antiword.h
|
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";
|
installTargets = "global_install";
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
@ -24,8 +24,8 @@ let
|
|||||||
langsSpaces = stdenv.lib.concatStringsSep " " langs;
|
langsSpaces = stdenv.lib.concatStringsSep " " langs;
|
||||||
major = "4";
|
major = "4";
|
||||||
minor = "4";
|
minor = "4";
|
||||||
patch = "0";
|
patch = "1";
|
||||||
tweak = "3";
|
tweak = "2";
|
||||||
subdir = "${major}.${minor}.${patch}";
|
subdir = "${major}.${minor}.${patch}";
|
||||||
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
|
version = "${subdir}${if tweak == "" then "" else "."}${tweak}";
|
||||||
|
|
||||||
@ -80,14 +80,14 @@ let
|
|||||||
|
|
||||||
translations = fetchSrc {
|
translations = fetchSrc {
|
||||||
name = "translations";
|
name = "translations";
|
||||||
sha256 = "0y94sry2cghc82628smka7qb1xqlgrgvy98bxd2fpqfkd1llcqfg";
|
sha256 = "0a1p9jd9lgb1mxnj4c55yrlc7q2dsm5s9cyax6cwaya2q5m5xhnk";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO: dictionaries
|
# TODO: dictionaries
|
||||||
|
|
||||||
help = fetchSrc {
|
help = fetchSrc {
|
||||||
name = "help";
|
name = "help";
|
||||||
sha256 = "05al25vcz2z6fhm8vx77wa47nyi3r0hwll6mg2aclx7yp0s5k01d";
|
sha256 = "042xp6xz3gb75k332xclwfjyik63zgcw5135967nclim1sl8rgh7";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
|
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
|
# 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
|
# path to the executable in argv[0] therefore the wrapper is
|
||||||
# modified accordingly.
|
# modified accordingly.
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
|
wrapProgram "$out/bin/zim" \
|
||||||
|
--prefix XDG_DATA_DIRS : "$out/share"
|
||||||
|
|
||||||
wrapPythonPrograms
|
wrapPythonPrograms
|
||||||
|
|
||||||
sed -i "s#sys\.argv\[0\] = 'zim'#sys.argv[0] = '$out/bin/zim'#g" \
|
sed -i "s#sys\.argv\[0\] = '.zim-wrapped'#sys.argv[0] = '$out/bin/zim'#g" \
|
||||||
$out/bin/.zim-wrapped
|
$out/bin/..zim-wrapped-wrapped
|
||||||
|
|
||||||
if test -e $out/nix-support/propagated-build-inputs; then
|
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
|
ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "R-3.1.2";
|
name = "R-3.1.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz";
|
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
|
buildInputs = [ blas bzip2 gfortran liblapack libX11 libXmu libXt
|
||||||
@ -54,8 +54,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
installTargets = [ "install" "install-info" "install-pdf" ];
|
installTargets = [ "install" "install-info" "install-pdf" ];
|
||||||
|
|
||||||
# The test suite fails when building without the recommended packages.
|
doCheck = true;
|
||||||
doCheck = withRecommendedPackages;
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, gmp, readline }:
|
{ stdenv, fetchurl, gmp, readline }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "2.7.2";
|
version = "2.7.3";
|
||||||
name = "pari-${version}";
|
name = "pari-${version}";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
|
url = "http://pari.math.u-bordeaux.fr/pub/pari/unix/${name}.tar.gz";
|
||||||
sha256 = "1b0hzyhafpxhmiljyhnsh6c27ydsvb2599fshwq2fjfm96awjxmc";
|
sha256 = "02k54m7p47r54lgxqanxvf7pdrss17n8if1qwk5wx0j1px22j0rq";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [gmp readline];
|
buildInputs = [gmp readline];
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
|
{ stdenv, fetchurl, luaPackages, cairo, cmake, imagemagick, pkgconfig, gdk_pixbuf
|
||||||
, xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs
|
, xlibs, libstartup_notification, libxdg_basedir, libpthreadstubs
|
||||||
, xcb-util-cursor, makeWrapper, pango, gobjectIntrospection, unclutter
|
, 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
|
, which, dbus, nettools, git, asciidoc, doxygen, xmlto, docbook_xml_dtd_45
|
||||||
, docbook_xsl }:
|
, docbook_xsl }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "3.5.5";
|
version = "3.5.6";
|
||||||
in with luaPackages;
|
in with luaPackages;
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
|
url = "http://awesome.naquadah.org/download/awesome-${version}.tar.xz";
|
||||||
sha256 = "0iwd4pjvq0akm9dbipbl4m4fm24m017l06arasr445v2qkbxnc5z";
|
sha256 = "1ms6a3l1i2jdhzrd1zr25cqckznmb44qgz4n635jam42hzhrvx1p";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
|
|||||||
--prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \
|
--prefix LUA_PATH ";" '"${lgi}/share/lua/${lua.luaversion}/?.lua;${lgi}/share/lua/${lua.luaversion}/lgi/?.lua"' \
|
||||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
||||||
--prefix LD_LIBRARY_PATH : "${cairo}/lib:${pango}/lib:${gobjectIntrospection}/lib" \
|
--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 \
|
wrapProgram $out/bin/awesome-client \
|
||||||
--prefix PATH : "${which}/bin"
|
--prefix PATH : "${which}/bin"
|
||||||
|
@ -15,11 +15,11 @@ let
|
|||||||
s = # Generated upstream information
|
s = # Generated upstream information
|
||||||
rec {
|
rec {
|
||||||
baseName="compiz";
|
baseName="compiz";
|
||||||
version="0.9.12.0";
|
version="0.9.12.1";
|
||||||
name="${baseName}-${version}";
|
name="${baseName}-${version}";
|
||||||
hash="1n7y413bkykcby9imgmj5f1nbjfjc0hnbwmdkq2n77d4kv1rilxr";
|
hash="0kl5im3zq0rjlxbgz5cyk38qzssahrljc67z1n16pjc1qmr6m7cb";
|
||||||
url="https://launchpad.net/compiz/0.9.12/0.9.12.0/+download/compiz-0.9.12.0.tar.bz2";
|
url="https://launchpad.net/compiz/0.9.12/0.9.12.1/+download/compiz-0.9.12.1.tar.bz2";
|
||||||
sha256="1n7y413bkykcby9imgmj5f1nbjfjc0hnbwmdkq2n77d4kv1rilxr";
|
sha256="0kl5im3zq0rjlxbgz5cyk38qzssahrljc67z1n16pjc1qmr6m7cb";
|
||||||
};
|
};
|
||||||
buildInputs = [cmake pkgconfig
|
buildInputs = [cmake pkgconfig
|
||||||
libXrender renderproto gtk libwnck pango cairo
|
libXrender renderproto gtk libwnck pango cairo
|
||||||
|
@ -1,22 +1,16 @@
|
|||||||
{ stdenv, buildEnv, ghcWithPackages, xmessage, makeWrapper, packages }:
|
{ stdenv, ghcWithPackages, xmessage, makeWrapper, packages }:
|
||||||
|
|
||||||
let
|
let
|
||||||
xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self);
|
xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self);
|
||||||
drv = buildEnv {
|
in stdenv.mkDerivation {
|
||||||
name = "xmonad-with-packages";
|
name = "xmonad-with-packages";
|
||||||
|
|
||||||
paths = [ xmonadEnv ];
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
|
||||||
postBuild = ''
|
buildCommand = ''
|
||||||
# TODO: This could be avoided if buildEnv could be forced to create all directories
|
mkdir -p $out/bin
|
||||||
rm $out/bin
|
makeWrapper ${xmonadEnv}/bin/xmonad $out/bin/xmonad \
|
||||||
mkdir $out/bin
|
--set NIX_GHC "${xmonadEnv}/bin/ghc" \
|
||||||
for i in ${xmonadEnv}/bin/*; do
|
|
||||||
ln -s $i $out/bin
|
|
||||||
done
|
|
||||||
wrapProgram $out/bin/xmonad \
|
|
||||||
--set XMONAD_GHC "${xmonadEnv}/bin/ghc" \
|
|
||||||
--set XMONAD_XMESSAGE "${xmessage}/bin/xmessage"
|
--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; });
|
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:
|
userEnvPkg = dep:
|
||||||
mapAttrs
|
mapAttrs
|
||||||
|
@ -62,7 +62,7 @@ let
|
|||||||
chosenGcc
|
chosenGcc
|
||||||
bashInteractive coreutils less shadow su
|
bashInteractive coreutils less shadow su
|
||||||
gawk diffutils findutils gnused gnugrep
|
gawk diffutils findutils gnused gnugrep
|
||||||
gnutar gzip bzip2 xz
|
gnutar gzip bzip2 xz glibcLocales
|
||||||
];
|
];
|
||||||
|
|
||||||
# Compose a global profile for the chroot environment
|
# Compose a global profile for the chroot environment
|
||||||
@ -72,6 +72,9 @@ let
|
|||||||
mkdir -p $out/etc
|
mkdir -p $out/etc
|
||||||
cat >> $out/etc/profile << "EOF"
|
cat >> $out/etc/profile << "EOF"
|
||||||
export PS1='${name}-chrootenv:\u@\h:\w\$ '
|
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}
|
${profile}
|
||||||
EOF
|
EOF
|
||||||
'';
|
'';
|
||||||
@ -81,15 +84,17 @@ let
|
|||||||
staticUsrProfileTarget = nixpkgs.buildEnv {
|
staticUsrProfileTarget = nixpkgs.buildEnv {
|
||||||
name = "system-profile-target";
|
name = "system-profile-target";
|
||||||
paths = basePkgs ++ [ profilePkg ] ++ targetPaths;
|
paths = basePkgs ++ [ profilePkg ] ++ targetPaths;
|
||||||
|
ignoreCollisions = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
staticUsrProfileMulti = nixpkgs.buildEnv {
|
staticUsrProfileMulti = nixpkgs.buildEnv {
|
||||||
name = "system-profile-multi";
|
name = "system-profile-multi";
|
||||||
paths = multiPaths;
|
paths = multiPaths;
|
||||||
|
ignoreCollisions = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
linkProfile = profile: ''
|
linkProfile = profile: ''
|
||||||
for i in ${profile}/{etc,bin,sbin,share,var}; do
|
for i in ${profile}/{bin,sbin,share,var}; do
|
||||||
if [ -x "$i" ]
|
if [ -x "$i" ]
|
||||||
then
|
then
|
||||||
ln -s "$i"
|
ln -s "$i"
|
||||||
@ -129,7 +134,7 @@ let
|
|||||||
mkdir -m0755 lib
|
mkdir -m0755 lib
|
||||||
|
|
||||||
# copy content of targetPaths
|
# copy content of targetPaths
|
||||||
cp -rsf ${staticUsrProfileTarget}/lib/* lib/
|
cp -rsf ${staticUsrProfileTarget}/lib/* lib/ && chmod u+w -R lib/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# setup /lib, /lib32 and /lib64
|
# setup /lib, /lib32 and /lib64
|
||||||
@ -142,22 +147,56 @@ let
|
|||||||
cp -rsf ${staticUsrProfileTarget}/lib/32/* lib/
|
cp -rsf ${staticUsrProfileTarget}/lib/32/* lib/
|
||||||
|
|
||||||
# copy content of multiPaths (32bit libs)
|
# 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)
|
# 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
|
# most 64bit only libs put their stuff into /lib
|
||||||
# some pkgs (like gcc_multi) put 32bit libs into and /lib 64bit libs into /lib64
|
# 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
|
# by overwriting these we will hopefully catch all these cases
|
||||||
# in the end /lib should only contain 32bit and /lib64 only 64bit libs
|
# 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)
|
# copy gcc libs (and may overwrite exitsting wrongly placed libs)
|
||||||
cp -rsf ${chosenGcc.cc}/lib/* lib/
|
cp -rsf ${chosenGcc.cc}/lib/* lib/
|
||||||
cp -rsf ${chosenGcc.cc}/lib64/* lib64/
|
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 {
|
in nixpkgs.stdenv.mkDerivation {
|
||||||
name = "${name}-fhs";
|
name = "${name}-fhs";
|
||||||
buildCommand = ''
|
buildCommand = ''
|
||||||
@ -165,6 +204,7 @@ in nixpkgs.stdenv.mkDerivation {
|
|||||||
cd $out
|
cd $out
|
||||||
${setupTargetProfile}
|
${setupTargetProfile}
|
||||||
${setupMultiProfile}
|
${setupMultiProfile}
|
||||||
|
${setupEtc}
|
||||||
cd $out
|
cd $out
|
||||||
${extraBuildCommands}
|
${extraBuildCommands}
|
||||||
cd $out
|
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
|
# Symlink the software that should be part of the chroot system profile
|
||||||
for i in @chrootEnv@/*
|
for i in @chrootEnv@/*
|
||||||
do
|
do
|
||||||
if [ "$i" != "@chrootEnv@/etc" ] && [ "$i" != "@chrootEnv@/var" ]
|
if [ "$i" != "@chrootEnv@/var" ]
|
||||||
then
|
then
|
||||||
ln -s "$i" "$chrootenvDest"
|
ln -s "$i" "$chrootenvDest"
|
||||||
fi
|
fi
|
||||||
done
|
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
|
# Create root folder
|
||||||
mkdir $chrootenvDest/root
|
mkdir $chrootenvDest/root
|
||||||
|
|
||||||
|
@ -3,4 +3,10 @@
|
|||||||
chrootenvDest=/run/chrootenv/@name@
|
chrootenvDest=/run/chrootenv/@name@
|
||||||
|
|
||||||
# Enter the LFS chroot environment
|
# 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',
|
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 'tmpdir'
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
require 'pathname'
|
require 'pathname'
|
||||||
@ -111,12 +97,6 @@ if $cpid == 0
|
|||||||
Dir.chroot root
|
Dir.chroot root
|
||||||
Dir.chdir '/'
|
Dir.chdir '/'
|
||||||
|
|
||||||
# Do symlinks
|
|
||||||
symlinks.each do |x|
|
|
||||||
FileUtils.mkdir_p x[1]
|
|
||||||
FileUtils.ln_s x[0], x[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
# Symlink swdir hierarchy
|
# Symlink swdir hierarchy
|
||||||
mount_dirs = Set.new mounts.map { |x| Pathname.new x[1] }
|
mount_dirs = Set.new mounts.map { |x| Pathname.new x[1] }
|
||||||
link_swdir = lambda do |swdir, prefix|
|
link_swdir = lambda do |swdir, prefix|
|
||||||
@ -136,13 +116,11 @@ if $cpid == 0
|
|||||||
link_swdir.call swdir, Pathname.new('')
|
link_swdir.call swdir, Pathname.new('')
|
||||||
|
|
||||||
# New environment
|
# New environment
|
||||||
oldenv = ENV.to_h
|
ENV.replace({ 'TERM' => ENV['TERM'],
|
||||||
ENV.replace({ 'PS1' => oldenv['PS1'],
|
'DISPLAY' => ENV['DISPLAY'],
|
||||||
'TERM' => oldenv['TERM'],
|
'HOME' => ENV['HOME'],
|
||||||
'DISPLAY' => oldenv['DISPLAY'],
|
'XDG_RUNTIME_DIR' => ENV['XDG_RUNTIME_DIR'],
|
||||||
'HOME' => oldenv['HOME'],
|
'LANG' => ENV['LANG'],
|
||||||
'PATH' => '/bin:/sbin',
|
|
||||||
'XDG_RUNTIME_DIR' => oldenv['XDG_RUNTIME_DIR'],
|
|
||||||
})
|
})
|
||||||
|
|
||||||
# Finally, exec!
|
# Finally, exec!
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "hicolor-icon-theme-0.13";
|
name = "hicolor-icon-theme-0.14";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://icon-theme.freedesktop.org/releases/${name}.tar.gz";
|
url = "http://icon-theme.freedesktop.org/releases/${name}.tar.xz";
|
||||||
sha256 = "01ilkizzal3wq2naaj84rqmd850aari1ahiw9vfis3a82n4h72x3";
|
sha256 = "1k9fj0lb9b44inb5q5m04910x5nfkzrxl3ys9ckihqrixzk0dvbv";
|
||||||
};
|
};
|
||||||
|
|
||||||
setupHook = ./setup-hook.sh;
|
setupHook = ./setup-hook.sh;
|
||||||
|
@ -6,11 +6,11 @@ let
|
|||||||
s = # Generated upstream information
|
s = # Generated upstream information
|
||||||
rec {
|
rec {
|
||||||
baseName="ecl";
|
baseName="ecl";
|
||||||
version="13.5.1";
|
version="15.3.7";
|
||||||
name="${baseName}-${version}";
|
name="${baseName}-${version}";
|
||||||
hash="18ic8w9sdl0dh3kmyc9lsrafikrd9cg1jkhhr25p9saz0v75f77r";
|
hash="13wlxkd5prm93gcm2dhm7v52fl803yx93aa97lrb39z0y6xzziid";
|
||||||
url="mirror://sourceforge/project/ecls/ecls/13.5/ecl-13.5.1.tgz";
|
url="mirror://sourceforge/project/ecls/ecls/15.3/ecl-15.3.7.tgz";
|
||||||
sha256="18ic8w9sdl0dh3kmyc9lsrafikrd9cg1jkhhr25p9saz0v75f77r";
|
sha256="13wlxkd5prm93gcm2dhm7v52fl803yx93aa97lrb39z0y6xzziid";
|
||||||
};
|
};
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libffi
|
libffi
|
||||||
|
@ -40,5 +40,6 @@ stdenv.mkDerivation {
|
|||||||
license = stdenv.lib.licenses.bsd3;
|
license = stdenv.lib.licenses.bsd3;
|
||||||
maintainers = [ stdenv.lib.maintainers.shlevy ];
|
maintainers = [ stdenv.lib.maintainers.shlevy ];
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import ./jdk-linux-base.nix {
|
import ./jdk-linux-base.nix {
|
||||||
productVersion = "8";
|
productVersion = "8";
|
||||||
patchVersion = "31";
|
patchVersion = "40";
|
||||||
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
downloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html;
|
||||||
sha256_i686 = "1sr3q9y0cd42cqpf98gsv3hvip0r1vw3d0jh6yml6krzdm96zp8s";
|
sha256_i686 = "1bfabnmbar0kfx3i37wnxh97j7whkib8m6wqxrb1d9zf6k13bw50";
|
||||||
sha256_x86_64 = "0dz4k3xds1ydqr77hmrjc1w0niqq3jm3h18nk3ibqr1083l1bq7g";
|
sha256_x86_64 = "0nfm4xqd57s8dmkgd0jsrhys8dhfw0fx5d57mq70ramq9dl2jq66";
|
||||||
jceName = "jce_policy-8.zip";
|
jceName = "jce_policy-8.zip";
|
||||||
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
jceDownloadUrl = http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html;
|
||||||
sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";
|
sha256JCE = "f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59";
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
callPackage ./makeRustcDerivation.nix {
|
callPackage ./makeRustcDerivation.nix {
|
||||||
shortVersion = "1.0.0-dev";
|
shortVersion = "1.0.0-dev";
|
||||||
isRelease = false;
|
isRelease = false;
|
||||||
# src rev for master on 2015/03/01
|
# src rev for master on 2015/03/09
|
||||||
srcRev = "157614249594f187f421cd97f928e64c5ab5c1fa";
|
srcRev = "91bdf23f504f79ed59617cde3dfebd3d5e39a476";
|
||||||
srcSha = "06d6fwl1dg6wfnwa002ak89hnjplpf2sjhg78yjg4ki0ca7b0b74";
|
srcSha = "1s1v1q630d88idz331n4m0c3ninzipmvfzmkvdaqqm28wsn69xx7";
|
||||||
snapshotHashLinux686 = "3278ebbce8cb269acc0614dac5ddac07eab6a99c";
|
snapshotHashLinux686 = "50a47ef247610fb089d2c4f24e4b641eb0ba4afb";
|
||||||
snapshotHashLinux64 = "72287d0d88de3e5a53bae78ac0d958e1a7637d73";
|
snapshotHashLinux64 = "ccb20709b3c984f960ddde996451be8ce2268d7c";
|
||||||
snapshotHashDarwin686 = "33b366b5287427a340a0aa6ed886d5ff4edf6a76";
|
snapshotHashDarwin686 = "ad263bdeadcf9bf1889426e0c1391a7cf277364e";
|
||||||
snapshotHashDarwin64 = "914bf9baa32081a9d5633f1d06f4d382cd71504e";
|
snapshotHashDarwin64 = "01c8275828042264206b7acd8e86dc719a2f27aa";
|
||||||
snapshotDate = "2015-02-25";
|
snapshotDate = "2015-03-07";
|
||||||
snapshotRev = "880fb89";
|
snapshotRev = "270a677";
|
||||||
patches = [
|
patches = [
|
||||||
./patches/head.patch
|
./patches/head.patch
|
||||||
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
|
||||||
|
@ -80,6 +80,5 @@ stdenv.mkDerivation rec {
|
|||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [stdenv.lib.maintainers.raskin];
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = stdenv.lib.platforms.all;
|
||||||
inherit version;
|
inherit version;
|
||||||
updateWalker = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "sbcl-${version}";
|
name = "sbcl-${version}";
|
||||||
version = "1.2.8";
|
version = "1.2.9";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
url = "mirror://sourceforge/project/sbcl/sbcl/${version}/${name}-source.tar.bz2";
|
||||||
sha256 = "0ab9lw056yf6y0rjmx3iirn5n59pmssqxf00fbmpyl6qsnpaja1d";
|
sha256 = "0pws10ylnsxj17dagqcdv0l36k3ax5k3hkc6c91n9yxh2nziagk0";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ which ]
|
buildInputs = [ which ]
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, jre }:
|
{ stdenv, fetchurl, makeWrapper, jre }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "scala-2.10.4";
|
name = "scala-2.10.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
|
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
|
||||||
sha256 = "1hqhm1xvd7g78jspvl30zgdzw79xq5zl837h47p6w1n6qlwbcvdl";
|
sha256 = "1ckyz31gmf2pgdl51h1raa669mkl7sqfdl3vqkrmyc46w5ysz3ci";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jre makeWrapper ] ;
|
buildInputs = [ jre makeWrapper ] ;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, jre }:
|
{ stdenv, fetchurl, makeWrapper, jre }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "scala-2.11.5";
|
name = "scala-2.11.6";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
|
url = "http://www.scala-lang.org/files/archive/${name}.tgz";
|
||||||
sha256 = "0ip2nb4n68q8gqbc15dq55xfpvr0yi8fwsn8ycz4marl6qb0rhyv";
|
sha256 = "10v58jm0wbb4v71sfi03gskd6n84jqn6nvd62x166104c3j4bfj1";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ jre makeWrapper ] ;
|
buildInputs = [ jre makeWrapper ] ;
|
||||||
|
46
pkgs/development/compilers/uhc/default.nix
Normal file
46
pkgs/development/compilers/uhc/default.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ stdenv, coreutils, fetchgit, m4, libtool, clang, ghcWithPackages,
|
||||||
|
shuffle,
|
||||||
|
hashable, mtl, network, uhc-util, uulib
|
||||||
|
}:
|
||||||
|
|
||||||
|
let wrappedGhc = ghcWithPackages ( self: [hashable mtl network uhc-util uulib] );
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
version = "1.1.8.7";
|
||||||
|
name = "uhc-${version}";
|
||||||
|
|
||||||
|
src = fetchgit {
|
||||||
|
url = "https://github.com/UU-ComputerScience/uhc.git";
|
||||||
|
rev = "0dec07e9cb60e78bbca63fc101f8fec6e249269f";
|
||||||
|
sha256 = "0isz3qz23ihbn0rg54x8ddzwpsqlmmpkvaa66b7srfly7nciv8gl";
|
||||||
|
};
|
||||||
|
|
||||||
|
postUnpack = "sourceRoot=\${sourceRoot}/EHC";
|
||||||
|
|
||||||
|
buildInputs = [ m4 wrappedGhc clang libtool shuffle ];
|
||||||
|
|
||||||
|
configureFlags = [ "--with-gcc=${clang}/bin/clang" ];
|
||||||
|
|
||||||
|
# UHC builds packages during compilation; these are by default
|
||||||
|
# installed in the user-specific package config file. We do not
|
||||||
|
# want that, and hack the build process to use a temporary package
|
||||||
|
# configuration file instead.
|
||||||
|
preConfigure = ''
|
||||||
|
p=`pwd`/uhc-local-packages
|
||||||
|
echo '[]' > $p
|
||||||
|
sed -i "s|--user|--package-db=$p|g" mk/shared.mk.in
|
||||||
|
sed -i "s|-fglasgow-exts|-fglasgow-exts -package-conf=$p|g" mk/shared.mk.in
|
||||||
|
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/dist.mk
|
||||||
|
sed -i "s|/bin/date|${coreutils}/bin/date|g" mk/config.mk.in
|
||||||
|
sed -i "s|--make|--make -package-db=$p|g" src/ehc/files2.mk
|
||||||
|
sed -i "s|--make|--make -package-db=$p|g" src/gen/files.mk
|
||||||
|
'';
|
||||||
|
|
||||||
|
inherit clang;
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = "http://www.cs.uu.nl/wiki/UHC";
|
||||||
|
description = "Utrecht Haskell Compiler";
|
||||||
|
maintainers = [ maintainers.phausmann ];
|
||||||
|
platforms = stdenv.lib.platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
@ -220,6 +220,7 @@ self: super: {
|
|||||||
# These packages try to execute non-existent external programs.
|
# These packages try to execute non-existent external programs.
|
||||||
cmaes = dontCheck super.cmaes; # http://hydra.cryp.to/build/498725/log/raw
|
cmaes = dontCheck super.cmaes; # http://hydra.cryp.to/build/498725/log/raw
|
||||||
dbmigrations = dontCheck super.dbmigrations;
|
dbmigrations = dontCheck super.dbmigrations;
|
||||||
|
euler = dontCheck super.euler; # https://github.com/decomputed/euler/issues/1
|
||||||
filestore = dontCheck super.filestore;
|
filestore = dontCheck super.filestore;
|
||||||
graceful = dontCheck super.graceful;
|
graceful = dontCheck super.graceful;
|
||||||
hakyll = dontCheck super.hakyll;
|
hakyll = dontCheck super.hakyll;
|
||||||
@ -232,6 +233,7 @@ self: super: {
|
|||||||
postgrest = dontCheck super.postgrest;
|
postgrest = dontCheck super.postgrest;
|
||||||
snowball = dontCheck super.snowball;
|
snowball = dontCheck super.snowball;
|
||||||
test-sandbox = dontCheck super.test-sandbox;
|
test-sandbox = dontCheck super.test-sandbox;
|
||||||
|
users-postgresql-simple = dontCheck super.users-postgresql-simple;
|
||||||
wai-middleware-hmac = dontCheck super.wai-middleware-hmac;
|
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
|
wai-middleware-throttle = dontCheck super.wai-middleware-throttle; # https://github.com/creichert/wai-middleware-throttle/issues/1
|
||||||
xmlgen = dontCheck super.xmlgen;
|
xmlgen = dontCheck super.xmlgen;
|
||||||
@ -343,6 +345,7 @@ self: super: {
|
|||||||
http-client-openssl = dontCheck super.http-client-openssl;
|
http-client-openssl = dontCheck super.http-client-openssl;
|
||||||
http-client-tls = dontCheck super.http-client-tls;
|
http-client-tls = dontCheck super.http-client-tls;
|
||||||
ihaskell = dontCheck super.ihaskell;
|
ihaskell = dontCheck super.ihaskell;
|
||||||
|
influxdb = dontCheck super.influxdb;
|
||||||
itanium-abi = dontCheck super.itanium-abi;
|
itanium-abi = dontCheck super.itanium-abi;
|
||||||
katt = dontCheck super.katt;
|
katt = dontCheck super.katt;
|
||||||
language-slice = dontCheck super.language-slice;
|
language-slice = dontCheck super.language-slice;
|
||||||
@ -365,7 +368,7 @@ self: super: {
|
|||||||
persistent-redis = dontCheck super.persistent-redis;
|
persistent-redis = dontCheck super.persistent-redis;
|
||||||
pipes-extra = dontCheck super.pipes-extra;
|
pipes-extra = dontCheck super.pipes-extra;
|
||||||
pipes-websockets = dontCheck super.pipes-websockets;
|
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;
|
postgresql-simple-migration = dontCheck super.postgresql-simple-migration;
|
||||||
process-streaming = dontCheck super.process-streaming;
|
process-streaming = dontCheck super.process-streaming;
|
||||||
punycode = dontCheck super.punycode;
|
punycode = dontCheck super.punycode;
|
||||||
@ -393,7 +396,6 @@ self: super: {
|
|||||||
WebBits = dontCheck super.WebBits; # http://hydra.cryp.to/build/499604/log/raw
|
WebBits = dontCheck super.WebBits; # http://hydra.cryp.to/build/499604/log/raw
|
||||||
webdriver-angular = dontCheck super.webdriver-angular;
|
webdriver-angular = dontCheck super.webdriver-angular;
|
||||||
webdriver = dontCheck super.webdriver;
|
webdriver = dontCheck super.webdriver;
|
||||||
xcffib = dontCheck super.xcffib;
|
|
||||||
xsd = dontCheck super.xsd;
|
xsd = dontCheck super.xsd;
|
||||||
|
|
||||||
# https://bitbucket.org/wuzzeb/webdriver-utils/issue/1/hspec-webdriver-101-cant-compile-its-test
|
# 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
|
# https://github.com/vincenthz/hs-crypto-pubkey/issues/20
|
||||||
crypto-pubkey = dontCheck super.crypto-pubkey;
|
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
|
# https://github.com/zouppen/stratum-tool/issues/14
|
||||||
stratum-tool = markBrokenVersion "0.0.4" super.stratum-tool;
|
stratum-tool = markBrokenVersion "0.0.4" super.stratum-tool;
|
||||||
|
|
||||||
@ -521,6 +520,7 @@ self: super: {
|
|||||||
|
|
||||||
# Depends on broken lmdb package.
|
# Depends on broken lmdb package.
|
||||||
vcache = markBroken super.vcache;
|
vcache = markBroken super.vcache;
|
||||||
|
vcache-trie = markBroken super.vcache-trie;
|
||||||
|
|
||||||
# https://github.com/afcowie/http-streams/issues/80
|
# https://github.com/afcowie/http-streams/issues/80
|
||||||
http-streams = dontCheck super.http-streams;
|
http-streams = dontCheck super.http-streams;
|
||||||
@ -537,7 +537,6 @@ self: super: {
|
|||||||
wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK29; };
|
wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK29; };
|
||||||
|
|
||||||
# Depends on QuickCheck 1.x.
|
# 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; };
|
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; };
|
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;
|
karakuri = markBroken super.karakuri;
|
||||||
|
|
||||||
# Upstream notified by e-mail.
|
# Upstream notified by e-mail.
|
||||||
snowglobe = markBroken super.snowglobe;
|
|
||||||
gearbox = markBroken super.gearbox;
|
gearbox = markBroken super.gearbox;
|
||||||
|
|
||||||
# https://github.com/deech/fltkhs/issues/7
|
# https://github.com/deech/fltkhs/issues/7
|
||||||
@ -608,10 +606,6 @@ self: super: {
|
|||||||
# Broken by GLUT update.
|
# Broken by GLUT update.
|
||||||
Monadius = markBroken super.Monadius;
|
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.
|
# We don't have the groonga package these libraries bind to.
|
||||||
haroonga = markBroken super.haroonga;
|
haroonga = markBroken super.haroonga;
|
||||||
haroonga-httpd = markBroken super.haroonga-httpd;
|
haroonga-httpd = markBroken super.haroonga-httpd;
|
||||||
@ -620,15 +614,21 @@ self: super: {
|
|||||||
webkit = markBroken super.webkit;
|
webkit = markBroken super.webkit;
|
||||||
websnap = markBroken super.websnap;
|
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.
|
# Build is broken and no contact info available.
|
||||||
hopenpgp-tools = markBroken super.hopenpgp-tools;
|
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.
|
# Not on Hackage.
|
||||||
|
@ -45,7 +45,7 @@ self: super: {
|
|||||||
deepseq = self.deepseq_1_3_0_1;
|
deepseq = self.deepseq_1_3_0_1;
|
||||||
|
|
||||||
# transformers is not a core library for this compiler.
|
# 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;
|
mtl = self.mtl_2_2_1;
|
||||||
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ self: super: {
|
|||||||
deepseq = self.deepseq_1_4_0_0;
|
deepseq = self.deepseq_1_4_0_0;
|
||||||
|
|
||||||
# transformers is not a core library for this compiler.
|
# 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;
|
mtl = self.mtl_2_2_1;
|
||||||
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ self: super: {
|
|||||||
deepseq = self.deepseq_1_4_0_0;
|
deepseq = self.deepseq_1_4_0_0;
|
||||||
|
|
||||||
# transformers is not a core library for this compiler.
|
# 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;
|
mtl = self.mtl_2_2_1;
|
||||||
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ self: super: {
|
|||||||
unix = null;
|
unix = null;
|
||||||
|
|
||||||
# transformers is not a core library for this compiler.
|
# 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;
|
mtl = self.mtl_2_2_1;
|
||||||
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ self: super: {
|
|||||||
unix = null;
|
unix = null;
|
||||||
|
|
||||||
# transformers is not a core library for this compiler.
|
# 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;
|
mtl = self.mtl_2_2_1;
|
||||||
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ self: super: {
|
|||||||
xhtml = null;
|
xhtml = null;
|
||||||
|
|
||||||
# mtl 2.2.x needs the latest transformers.
|
# 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.
|
# Configure build for mtl 2.1.x.
|
||||||
mtl-compat = addBuildDepend (enableCabalFlag super.mtl-compat "two-point-one") self.transformers-compat;
|
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 requires mtl 2.2.x.
|
||||||
idris = overrideCabal (super.idris.overrideScope (self: super: {
|
idris = overrideCabal (super.idris.overrideScope (self: super: {
|
||||||
mkDerivation = drv: super.mkDerivation (drv // { doCheck = false; });
|
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";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
haskeline = self.haskeline_0_7_1_3;
|
haskeline = self.haskeline_0_7_1_3;
|
||||||
mtl = super.mtl_2_2_1;
|
mtl = super.mtl_2_2_1;
|
||||||
@ -88,7 +88,6 @@ self: super: {
|
|||||||
xhb-atom-cache = markBroken super.xhb-atom-cache;
|
xhb-atom-cache = markBroken super.xhb-atom-cache;
|
||||||
xhb-ewmh = markBroken super.xhb-ewmh;
|
xhb-ewmh = markBroken super.xhb-ewmh;
|
||||||
yesod-purescript = markBroken super.yesod-purescript;
|
yesod-purescript = markBroken super.yesod-purescript;
|
||||||
yabi-muno = markBroken super.yabi-muno;
|
|
||||||
yet-another-logger = markBroken super.yet-another-logger;
|
yet-another-logger = markBroken super.yet-another-logger;
|
||||||
|
|
||||||
# https://github.com/frosch03/arrowVHDL/issues/2
|
# https://github.com/frosch03/arrowVHDL/issues/2
|
||||||
@ -120,7 +119,7 @@ self: super: {
|
|||||||
) ];
|
) ];
|
||||||
});
|
});
|
||||||
mtl = self.mtl_2_2_1;
|
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";
|
transformers-compat = disableCabalFlag super.transformers-compat "three";
|
||||||
hscolour = super.hscolour;
|
hscolour = super.hscolour;
|
||||||
time = self.time_1_5_0_1;
|
time = self.time_1_5_0_1;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@
|
|||||||
err = base ++ ".errors"
|
err = base ++ ".errors"
|
||||||
src = base ++ ".hs"
|
src = base ++ ".hs"
|
||||||
lib = dir </> "lib"
|
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
|
libTs <- mapM getModTime . Prelude.filter isSource =<< allFiles lib
|
||||||
srcT <- getModTime src
|
srcT <- getModTime src
|
||||||
binT <- getModTime bin
|
binT <- getModTime bin
|
||||||
|
@ -1,63 +1,38 @@
|
|||||||
x@{builderDefsPackage
|
{stdenv, fetchurl, unzip}:
|
||||||
, unzip
|
|
||||||
, ...}:
|
|
||||||
builderDefsPackage
|
|
||||||
(a :
|
|
||||||
let
|
let
|
||||||
helperArgNames = ["stdenv" "fetchurl" "builderDefsPackage"] ++
|
s = # Generated upstream information
|
||||||
[];
|
rec {
|
||||||
|
|
||||||
buildInputs = map (n: builtins.getAttr n x)
|
|
||||||
(builtins.attrNames (builtins.removeAttrs x helperArgNames));
|
|
||||||
sourceInfo = rec {
|
|
||||||
baseName="angelscript";
|
baseName="angelscript";
|
||||||
version = "2.29.2";
|
version = "2.30.0";
|
||||||
name="${baseName}-${version}";
|
name="${baseName}-${version}";
|
||||||
url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
|
url="http://www.angelcode.com/angelscript/sdk/files/angelscript_${version}.zip";
|
||||||
sha256 = "12ws4vp9iyxbgzxxdq7g9729vg1ld92f38gfznyhsknhsay4kmf5";
|
sha256 = "00w7h2g6g1lkq9ahsvzyk78nbdzhn1adsrns9mrqb2fbxv2wbz5d";
|
||||||
};
|
};
|
||||||
|
buildInputs = [
|
||||||
|
unzip
|
||||||
|
];
|
||||||
in
|
in
|
||||||
rec {
|
stdenv.mkDerivation {
|
||||||
src = a.fetchurl {
|
inherit (s) name version;
|
||||||
url = sourceInfo.url;
|
|
||||||
sha256 = sourceInfo.sha256;
|
|
||||||
};
|
|
||||||
|
|
||||||
inherit (sourceInfo) name version;
|
|
||||||
inherit buildInputs;
|
inherit buildInputs;
|
||||||
|
src = fetchurl {
|
||||||
/* doConfigure should be removed if not needed */
|
inherit (s) url sha256;
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
}) 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 {
|
composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed) version; in {
|
||||||
|
|
||||||
version = "5.4.37";
|
version = "5.4.38";
|
||||||
|
|
||||||
name = "php-${version}";
|
name = "php-${version}";
|
||||||
|
|
||||||
@ -253,7 +253,7 @@ composableDerivation.composableDerivation {} ( fixed : let inherit (fixed.fixed)
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://www.php.net/distributions/php-${version}.tar.bz2";
|
url = "http://www.php.net/distributions/php-${version}.tar.bz2";
|
||||||
sha256 = "1bd8yciy13v3aw4aiw57zpf8kgxpm6rcv73grp1yj2pbbrkzcyw5";
|
sha256 = "121ybn55c9f65r1mwiy4yks67bb6m5m5zwwx9y0vpjddryq7vwxb";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
|
18
pkgs/development/libraries/SDL2_ttf/default.nix
Normal file
18
pkgs/development/libraries/SDL2_ttf/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ stdenv, fetchurl, SDL2, freetype }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "SDL2_ttf-2.0.12";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.libsdl.org/projects/SDL_ttf/release/${name}.tar.gz";
|
||||||
|
sha256 = "0vkg6lyj278mdpd52map3rfi65fbq16w67ahmmfcl77a8da60a47";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [SDL2 freetype];
|
||||||
|
|
||||||
|
postInstall = "ln -s $out/include/SDL2/SDL_ttf.h $out/include/";
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "SDL TrueType library";
|
||||||
|
};
|
||||||
|
}
|
@ -4,4 +4,5 @@ callPackage ./generic.nix (args // {
|
|||||||
baseVersion = "1.10";
|
baseVersion = "1.10";
|
||||||
revision = "9";
|
revision = "9";
|
||||||
sha256 = "1wldp9py3qcdgswgxya83c03y6345a6cf3vwz0y41bl1l39jfza8";
|
sha256 = "1wldp9py3qcdgswgxya83c03y6345a6cf3vwz0y41bl1l39jfza8";
|
||||||
|
extraConfigureFlags = "--with-gnump";
|
||||||
})
|
})
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{ stdenv, fetchurl, python, bzip2, zlib, gmp, openssl, boost
|
{ stdenv, fetchurl, python, bzip2, zlib, gmp, openssl, boost
|
||||||
# Passed by version specific builders
|
# Passed by version specific builders
|
||||||
, baseVersion, revision, sha256
|
, baseVersion, revision, sha256
|
||||||
|
, extraConfigureFlags ? ""
|
||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@ -17,7 +18,7 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ python bzip2 zlib gmp openssl boost ];
|
buildInputs = [ python bzip2 zlib gmp openssl boost ];
|
||||||
|
|
||||||
configurePhase = ''
|
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;
|
enableParallelBuilding = true;
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
callPackage ./generic.nix (args // {
|
callPackage ./generic.nix (args // {
|
||||||
baseVersion = "1.11";
|
baseVersion = "1.11";
|
||||||
revision = "10";
|
revision = "14";
|
||||||
sha256 = "06d5p0bs953r2pqfc635x2w78m3xv28gr6fmvd8whbk9qp8r91yb";
|
sha256 = "1laa6d8w9v39a2pfmilj62jwc67r0jbq5f3xdlffd3kvkdnwcysb";
|
||||||
openssl = null;
|
openssl = null;
|
||||||
})
|
})
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
|
|
||||||
let s =
|
let s =
|
||||||
rec {
|
rec {
|
||||||
version = "1.7.6";
|
version = "1.7.7";
|
||||||
name="directfb-${version}";
|
name="directfb-${version}";
|
||||||
sha256 = "1qf94vgsbcwfa00x2aqd6795n6z43x4ghclmb4sa4bl4zfn2pws4";
|
sha256 = "18r7h0pwbyyk8z3pgdv77nmma8lvr1si9gl1ghxgxf1ivhwcd1dp";
|
||||||
url="http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-${version}.tar.gz";
|
url="http://directfb.org/downloads/Core/DirectFB-1.7/DirectFB-${version}.tar.gz";
|
||||||
}
|
}
|
||||||
; in
|
; in
|
||||||
|
@ -1,88 +1,7 @@
|
|||||||
{ stdenv, fetchurl, pkgconfig, yasm, zlib, bzip2
|
{ callPackage, ... } @ args:
|
||||||
, 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
|
|
||||||
}:
|
|
||||||
|
|
||||||
assert speexSupport -> speex != null;
|
callPackage ./generic.nix (args // rec {
|
||||||
assert theoraSupport -> libtheora != null;
|
version = "${branch}.15";
|
||||||
assert vorbisSupport -> libvorbis != null;
|
branch = "0.10";
|
||||||
assert vpxSupport -> libvpx != null;
|
sha256 = "0p9x559fpj4zxll7rn3kwdig6y66c3ahv3pddmz23lljq5rvyvcb";
|
||||||
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";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
7
pkgs/development/libraries/ffmpeg/0.11.nix
Normal file
7
pkgs/development/libraries/ffmpeg/0.11.nix
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ callPackage, ... } @ args:
|
||||||
|
|
||||||
|
callPackage ./generic.nix (args // rec {
|
||||||
|
version = "${branch}.5";
|
||||||
|
branch = "0.11";
|
||||||
|
sha256 = "1h5qwn4h7sppqw36hri5p6zlv2387vwaxh2pyj070xfn8hgrk4ll";
|
||||||
|
})
|
7
pkgs/development/libraries/ffmpeg/0.5.nix
Normal file
7
pkgs/development/libraries/ffmpeg/0.5.nix
Normal file
@ -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";
|
|
||||||
};
|
|
||||||
}
|
|
7
pkgs/development/libraries/ffmpeg/1.2.nix
Normal file
7
pkgs/development/libraries/ffmpeg/1.2.nix
Normal file
@ -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";
|
|
||||||
};
|
|
||||||
}
|
|
7
pkgs/development/libraries/ffmpeg/2.2.nix
Normal file
7
pkgs/development/libraries/ffmpeg/2.2.nix
Normal file
@ -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";
|
|
||||||
};
|
|
||||||
}
|
|
7
pkgs/development/libraries/ffmpeg/2.5.nix
Normal file
7
pkgs/development/libraries/ffmpeg/2.5.nix
Normal file
@ -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 ];
|
|
||||||
};
|
|
||||||
}
|
|
527
pkgs/development/libraries/ffmpeg/generic.nix
Normal file
527
pkgs/development/libraries/ffmpeg/generic.nix
Normal file
@ -0,0 +1,527 @@
|
|||||||
|
{ stdenv, fetchurl, pkgconfig, perl, texinfo, yasm
|
||||||
|
/*
|
||||||
|
* Licensing options (yes some are listed twice, filters and such are not listed)
|
||||||
|
*/
|
||||||
|
, gplLicensing ? true # GPL: fdkaac,openssl,frei0r,cdio,samba,utvideo,vidstab,x265,x265,xavs,avid,zvbi,x11grab
|
||||||
|
, version3Licensing ? true # (L)GPL3: opencore-amrnb,opencore-amrwb,samba,vo-aacenc,vo-amrwbenc
|
||||||
|
, nonfreeLicensing ? false # NONFREE: openssl,fdkaac,faac,aacplus,blackmagic-design-desktop-video
|
||||||
|
/*
|
||||||
|
* Build options
|
||||||
|
*/
|
||||||
|
, smallBuild ? false # Optimize for size instead of speed
|
||||||
|
, runtime-cpudetectBuild ? true # Detect CPU capabilities at runtime (disable to compile natively)
|
||||||
|
, grayBuild ? true # Full grayscale support
|
||||||
|
, swscale-alphaBuild ? true # Alpha channel support in swscale
|
||||||
|
, incompatible-libav-abiBuild ? false # Incompatible Libav fork ABI
|
||||||
|
, hardcoded-tablesBuild ? true # Hardcode decode tables instead of runtime generation
|
||||||
|
, safe-bitstream-readerBuild ? true # Buffer boundary checking in bitreaders
|
||||||
|
, memalign-hackBuild ? false # Emulate memalign
|
||||||
|
, multithreadBuild ? true # Multithreading via pthreads/win32 threads
|
||||||
|
, networkBuild ? true # Network support
|
||||||
|
, pixelutilsBuild ? true # Pixel utils in libavutil
|
||||||
|
/*
|
||||||
|
* Program options
|
||||||
|
*/
|
||||||
|
, ffmpegProgram ? true # Build ffmpeg executable
|
||||||
|
, ffplayProgram ? true # Build ffplay executable
|
||||||
|
, ffprobeProgram ? true # Build ffprobe executable
|
||||||
|
, ffserverProgram ? true # Build ffserver executable
|
||||||
|
, qt-faststartProgram ? true # Build qt-faststart executable
|
||||||
|
/*
|
||||||
|
* Library options
|
||||||
|
*/
|
||||||
|
, avcodecLibrary ? true # Build avcodec library
|
||||||
|
, avdeviceLibrary ? true # Build avdevice library
|
||||||
|
, avfilterLibrary ? true # Build avfilter library
|
||||||
|
, avformatLibrary ? true # Build avformat library
|
||||||
|
, avresampleLibrary ? true # Build avresample library
|
||||||
|
, avutilLibrary ? true # Build avutil library
|
||||||
|
, postprocLibrary ? true # Build postproc library
|
||||||
|
, swresampleLibrary ? true # Build swresample library
|
||||||
|
, swscaleLibrary ? true # Build swscale library
|
||||||
|
/*
|
||||||
|
* Documentation options
|
||||||
|
*/
|
||||||
|
, htmlpagesDocumentation ? false # HTML documentation pages
|
||||||
|
, manpagesDocumentation ? true # Man documentation pages
|
||||||
|
, podpagesDocumentation ? false # POD documentation pages
|
||||||
|
, txtpagesDocumentation ? false # Text documentation pages
|
||||||
|
/*
|
||||||
|
* External libraries options
|
||||||
|
*/
|
||||||
|
#, aacplusExtlib ? false, aacplus ? null # AAC+ encoder
|
||||||
|
, alsaLib ? null # Alsa in/output support
|
||||||
|
#, avisynth ? null # Support for reading AviSynth scripts
|
||||||
|
, bzip2 ? null
|
||||||
|
, celt ? null # CELT decoder
|
||||||
|
#, crystalhd ? null # Broadcom CrystalHD hardware acceleration
|
||||||
|
#, decklinkExtlib ? false, blackmagic-design-desktop-video ? null # Blackmagic Design DeckLink I/O support
|
||||||
|
, faacExtlib ? false, faac ? null # AAC encoder
|
||||||
|
, faad2Extlib ? false, faad2 ? null # AAC decoder - DEPRECATED
|
||||||
|
, fdk-aacExtlib ? false, fdk_aac ? null # Fraunhofer FDK AAC de/encoder
|
||||||
|
#, flite ? null # Flite (voice synthesis) support
|
||||||
|
, fontconfig ? null # Needed for drawtext filter
|
||||||
|
, freetype ? null # Needed for drawtext filter
|
||||||
|
, frei0r ? null # frei0r video filtering
|
||||||
|
, fribidi ? null # Needed for drawtext filter
|
||||||
|
, game-music-emu ? null # Game Music Emulator
|
||||||
|
, gnutls ? null
|
||||||
|
, gsm ? null # GSM de/encoder
|
||||||
|
#, ilbc ? null # iLBC de/encoder
|
||||||
|
, jack2 ? null # Jack audio (only version 2 is supported in this build)
|
||||||
|
, ladspaH ? null # LADSPA audio filtering
|
||||||
|
, lame ? null # LAME MP3 encoder
|
||||||
|
, libass ? null # (Advanced) SubStation Alpha subtitle rendering
|
||||||
|
, libbluray ? null # BluRay reading
|
||||||
|
, libbs2b ? null # bs2b DSP library
|
||||||
|
, libcaca ? null # Textual display (ASCII art)
|
||||||
|
#, libcdio-paranoia ? null # Audio CD grabbing
|
||||||
|
, libdc1394 ? null, libraw1394 ? null # IIDC-1394 grabbing (ieee 1394)
|
||||||
|
, libiconv ? null
|
||||||
|
#, libiec61883 ? null, libavc1394 ? null # iec61883 (also uses libraw1394)
|
||||||
|
#, libmfx ? null # Hardware acceleration vis libmfx
|
||||||
|
, libmodplug ? null # ModPlug support
|
||||||
|
#, libnut ? null # NUT (de)muxer, native (de)muser exists
|
||||||
|
, libogg ? null # Ogg container used by vorbis & theora
|
||||||
|
, libopus ? null # Opus de/encoder
|
||||||
|
, libsndio ? null # sndio playback/record support
|
||||||
|
, libssh ? null # SFTP protocol
|
||||||
|
, libtheora ? null # Theora encoder
|
||||||
|
, libva ? null # Vaapi hardware acceleration
|
||||||
|
, libvdpau ? null # Vdpau hardware acceleration
|
||||||
|
, libvorbis ? null # Vorbis de/encoding, native encoder exists
|
||||||
|
, libvpx ? null # VP8 & VP9 de/encoding
|
||||||
|
, libwebp ? null # WebP encoder
|
||||||
|
, libX11 ? null # Xlib support
|
||||||
|
, libxcb ? null # X11 grabbing using XCB
|
||||||
|
, libxcb-shmExtlib ? true # X11 grabbing shm communication
|
||||||
|
, libxcb-xfixesExtlib ? true # X11 grabbing mouse rendering
|
||||||
|
, libxcb-shapeExtlib ? true # X11 grabbing shape rendering
|
||||||
|
, libXv ? null # Xlib support
|
||||||
|
, lzma ? null # xz-utils
|
||||||
|
#, nvenc ? null # NVIDIA NVENC support
|
||||||
|
, openal ? null # OpenAL 1.1 capture support
|
||||||
|
#, opencl ? null # OpenCL code
|
||||||
|
#, opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
|
||||||
|
, opencv ? null # Video filtering
|
||||||
|
, openglExtlib ? false, mesa ? null # OpenGL rendering
|
||||||
|
#, openh264 ? null # H.264/AVC encoder
|
||||||
|
, openjpeg_1 ? null # JPEG 2000 de/encoder
|
||||||
|
, opensslExtlib ? false, openssl ? null
|
||||||
|
, pulseaudio ? null # Pulseaudio input support
|
||||||
|
, rtmpdump ? null # RTMP[E] support
|
||||||
|
#, libquvi ? null # Quvi input support
|
||||||
|
, sambaExtlib ? false, samba ? null # Samba protocol
|
||||||
|
#, schroedinger ? null # Dirac de/encoder
|
||||||
|
, SDL ? null
|
||||||
|
#, shine ? null # Fixed-point MP3 encoder
|
||||||
|
, soxr ? null # Resampling via soxr
|
||||||
|
, speex ? null # Speex de/encoder
|
||||||
|
#, twolame ? null # MP2 encoder
|
||||||
|
#, utvideo ? null # Ut Video de/encoder
|
||||||
|
, v4l_utils ? null # Video 4 Linux support
|
||||||
|
, vid-stab ? null # Video stabilization
|
||||||
|
#, vo-aacenc ? null # AAC encoder
|
||||||
|
#, vo-amrwbenc ? null # AMR-WB encoder
|
||||||
|
, wavpack ? null # Wavpack encoder
|
||||||
|
, x11grabExtlib ? false, libXext ? null, libXfixes ? null # X11 grabbing (legacy)
|
||||||
|
, x264 ? null # H.264/AVC encoder
|
||||||
|
, x265 ? null # H.265/HEVC encoder
|
||||||
|
, xavs ? null # AVS encoder
|
||||||
|
, xvidcore ? null # Xvid encoder, native encoder exists
|
||||||
|
, zeromq4 ? null # Message passing
|
||||||
|
, zlib ? null
|
||||||
|
#, zvbi ? null # Teletext support
|
||||||
|
/*
|
||||||
|
* Developer options
|
||||||
|
*/
|
||||||
|
, debugDeveloper ? false
|
||||||
|
, optimizationsDeveloper ? true
|
||||||
|
, extra-warningsDeveloper ? false
|
||||||
|
, strippingDeveloper ? false
|
||||||
|
/*
|
||||||
|
* Inherit generics
|
||||||
|
*/
|
||||||
|
, branch, sha256, version, ...
|
||||||
|
}:
|
||||||
|
|
||||||
|
/* Maintainer notes:
|
||||||
|
*
|
||||||
|
* Version bumps:
|
||||||
|
* It should always be safe to bump patch releases (e.g. 2.1.x, x being a patch release)
|
||||||
|
* If adding a new branch, note any configure flags that were added, changed, or deprecated/removed
|
||||||
|
* and make the necessary changes.
|
||||||
|
*
|
||||||
|
* En/disabling in/outdevs was added in 0.6
|
||||||
|
*
|
||||||
|
* Packages with errors:
|
||||||
|
* flite ilbc schroedinger
|
||||||
|
*
|
||||||
|
* Not packaged:
|
||||||
|
* aacplus avisynth cdio-paranoia crystalhd libavc1394 libiec61883
|
||||||
|
* libmxf libnut libquvi nvenc opencl opencore-amr openh264 oss shine twolame
|
||||||
|
* utvideo vo-aacenc vo-amrwbenc xvmc zvbi blackmagic-design-desktop-video
|
||||||
|
*
|
||||||
|
* Not supported:
|
||||||
|
* stagehright-h264(android only)
|
||||||
|
*
|
||||||
|
* Known issues:
|
||||||
|
* 0.5 - libgsm: configure fails to find library (fix: disable for 0.5)
|
||||||
|
* 0.5-0.8 - qt-quickstart: make error (fix: disable for 0.5-0.8)
|
||||||
|
* 0.6 - fails to compile (unresolved) (so far, only disabling a number of features
|
||||||
|
* works, but that is not a feasible solution)
|
||||||
|
* 0.6.90 - mmx: compile errors (fix: disable for 0.6.90-rc0)
|
||||||
|
* 0.7-1.1 - opencv: compile error, flag added in 0.7 (fix: disable for 0.7-1.1)
|
||||||
|
* 1.1 - libsoxr: compile error (fix: disable for 1.1)
|
||||||
|
* Support was initially added in 1.1 before soxr api change, fix would probably be to add soxr-1.0
|
||||||
|
* 2.0-2.1 - vid-stab: compile errors, flag added in 2.0 (fix: disable for 2.0-2.1)
|
||||||
|
* Recent changes (circa 2014) more than likely broke compatibility and a fix has not been back ported
|
||||||
|
* ALL - flite: configure fails to find library (tested against 1.4 & 1.9 & 2.0)
|
||||||
|
* Tried modifying configure and flite to use pkg-config
|
||||||
|
* ALL - Cross-compiling will disable features not present on host OS
|
||||||
|
* (e.g. dxva2 support [DirectX] will not be enabled unless natively compiled on Cygwin)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
let
|
||||||
|
# Minimum/maximun/matching version
|
||||||
|
cmpVer = builtins.compareVersions;
|
||||||
|
reqMin = requiredVersion: (cmpVer requiredVersion branch != 1);
|
||||||
|
reqMax = requiredVersion: (cmpVer branch requiredVersion != 1);
|
||||||
|
reqMatch = requiredVersion: (cmpVer requiredVersion branch == 0);
|
||||||
|
|
||||||
|
# Configure flag
|
||||||
|
mkFlag = optSet: minVer: flag: if reqMin minVer then (
|
||||||
|
if optSet then "--enable-${flag}" else "--disable-${flag}")
|
||||||
|
else null;
|
||||||
|
# Deprecated configure flag (e.g. faad2)
|
||||||
|
depFlag = optSet: minVer: maxVer: flag: if reqMin minVer && reqMax maxVer then mkFlag optSet minVer flag else null;
|
||||||
|
|
||||||
|
# Version specific fix
|
||||||
|
verFix = withoutFix: fixVer: withFix: if reqMatch fixVer then withFix else withoutFix;
|
||||||
|
|
||||||
|
# Flag change between versions (e.g. "--enable-armvfp" -> "--enable-vfp" changed in v1.1)
|
||||||
|
chgFlg = chgVer: oldFlag: newFlag: if reqMin chgVer then newFlag else oldFlag;
|
||||||
|
|
||||||
|
isCygwin = stdenv.isCygwin;
|
||||||
|
in
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Licensing dependencies
|
||||||
|
*/
|
||||||
|
assert version3Licensing && reqMin "0.5" -> gplLicensing;
|
||||||
|
assert nonfreeLicensing && reqMin "0.5" -> gplLicensing && version3Licensing;
|
||||||
|
/*
|
||||||
|
* Build dependencies
|
||||||
|
*/
|
||||||
|
assert networkBuild -> gnutls != null || opensslExtlib;
|
||||||
|
assert pixelutilsBuild -> avutilLibrary;
|
||||||
|
/*
|
||||||
|
* Program dependencies
|
||||||
|
*/
|
||||||
|
assert ffmpegProgram && reqMin "0.5" -> avcodecLibrary
|
||||||
|
&& avfilterLibrary
|
||||||
|
&& avformatLibrary
|
||||||
|
&& swresampleLibrary;
|
||||||
|
assert ffplayProgram && reqMin "0.5" -> avcodecLibrary
|
||||||
|
&& avformatLibrary
|
||||||
|
&& swscaleLibrary
|
||||||
|
&& swresampleLibrary
|
||||||
|
&& SDL != null;
|
||||||
|
assert ffprobeProgram && reqMin "0.6" -> avcodecLibrary && avformatLibrary;
|
||||||
|
assert ffserverProgram && reqMin "0.5" -> avformatLibrary;
|
||||||
|
/*
|
||||||
|
* Library dependencies
|
||||||
|
*/
|
||||||
|
assert avcodecLibrary && reqMin "0.6" -> avutilLibrary; # configure flag since 0.6
|
||||||
|
assert avdeviceLibrary && reqMin "0.6" -> avformatLibrary
|
||||||
|
&& avcodecLibrary
|
||||||
|
&& avutilLibrary; # configure flag since 0.6
|
||||||
|
assert avformatLibrary && reqMin "0.6" -> avcodecLibrary && avutilLibrary; # configure flag since 0.6
|
||||||
|
assert avresampleLibrary && reqMin "0.11" -> avutilLibrary;
|
||||||
|
assert postprocLibrary && reqMin "0.5" -> gplLicensing && avutilLibrary;
|
||||||
|
assert swresampleLibrary && reqMin "0.9" -> soxr != null;
|
||||||
|
assert swscaleLibrary && reqMin "0.5" -> avutilLibrary;
|
||||||
|
/*
|
||||||
|
* External libraries
|
||||||
|
*/
|
||||||
|
#assert aacplusExtlib && reqMin "0.7" -> nonfreeLicensing;
|
||||||
|
#assert cdio-paranoia != null && reqMin "0.9" -> gplLicensing;
|
||||||
|
#assert decklinkExtlib && reqMin "2.2" -> blackmagic-design-desktop-video != null
|
||||||
|
# && !isCygwin && multithreadBuild # POSIX threads required
|
||||||
|
# && nonfreeLicensing;
|
||||||
|
assert faacExtlib && reqMin "0.5" -> faac != null && nonfreeLicensing;
|
||||||
|
assert fdk-aacExtlib && reqMin "1.0" -> fdk_aac != null && gplLicensing && nonfreeLicensing;
|
||||||
|
assert frei0r != null && reqMin "0.7" -> gplLicensing;
|
||||||
|
assert gnutls != null && reqMin "0.9" -> !opensslExtlib;
|
||||||
|
assert libxcb-shmExtlib && reqMin "2.5" -> libxcb != null;
|
||||||
|
assert libxcb-xfixesExtlib && reqMin "2.5" -> libxcb != null;
|
||||||
|
assert libxcb-shapeExtlib && reqMin "2.5" -> libxcb != null;
|
||||||
|
#assert opencore-amr != null && reqMin "0.5" -> version3Licensing;
|
||||||
|
assert openglExtlib && reqMin "2.2" -> mesa != null;
|
||||||
|
assert opensslExtlib && reqMin "0.9" -> gnutls == null && openssl != null && gplLicensing && nonfreeLicensing;
|
||||||
|
assert sambaExtlib && reqMin "2.3" -> samba != null && gplLicensing && version3Licensing;
|
||||||
|
#assert utvideo != null && reqMin "0.9" -> gplLicensing;
|
||||||
|
assert vid-stab != null && reqMin "2.0" -> gplLicensing;
|
||||||
|
#assert vo-aacenc != null && reqMin "0.6" -> version3Licensing;
|
||||||
|
#assert vo-amrwbenc != null && reqMin "0.7" -> version3Licensing;
|
||||||
|
assert x11grabExtlib && reqMin "0.5" -> libX11 != null && libXv != null && gplLicensing;
|
||||||
|
assert x264 != null && reqMin "0.5" -> gplLicensing;
|
||||||
|
assert x265 != null && reqMin "2.2" -> gplLicensing;
|
||||||
|
assert xavs != null && reqMin "0.7" -> gplLicensing;
|
||||||
|
assert xvidcore != null && reqMin "0.5" -> gplLicensing;
|
||||||
|
#assert zvbi != null && reqMin "2.1" -> gplLicensing;
|
||||||
|
|
||||||
|
with stdenv.lib;
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
|
||||||
|
name = "ffmpeg-${version}";
|
||||||
|
inherit version;
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://www.ffmpeg.org/releases/${name}.tar.bz2";
|
||||||
|
inherit sha256;
|
||||||
|
};
|
||||||
|
|
||||||
|
patchPhase = ''patchShebangs .'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
/*
|
||||||
|
* Licensing flags
|
||||||
|
*/
|
||||||
|
(mkFlag gplLicensing "0.5" "gpl")
|
||||||
|
(mkFlag version3Licensing "0.5" "version3")
|
||||||
|
(mkFlag nonfreeLicensing "0.5" "nonfree")
|
||||||
|
/*
|
||||||
|
* Build flags
|
||||||
|
*/
|
||||||
|
# One some ARM platforms --enable-thumb
|
||||||
|
"--enable-shared --disable-static"
|
||||||
|
(mkFlag true "0.6" "pic")
|
||||||
|
(mkFlag smallBuild "0.5" "small")
|
||||||
|
(mkFlag runtime-cpudetectBuild "0.5" "runtime-cpudetect")
|
||||||
|
(mkFlag grayBuild "0.5" "gray")
|
||||||
|
(mkFlag swscale-alphaBuild "0.6" "swscale-alpha")
|
||||||
|
(mkFlag incompatible-libav-abiBuild "2.0" "incompatible-libav-abi")
|
||||||
|
(mkFlag hardcoded-tablesBuild "0.5" "hardcoded-tables")
|
||||||
|
(mkFlag safe-bitstream-readerBuild "0.9" "safe-bitstream-reader")
|
||||||
|
(mkFlag memalign-hackBuild "0.5" "memalign-hack")
|
||||||
|
(if reqMin "0.5" then (
|
||||||
|
if multithreadBuild then (
|
||||||
|
if isCygwin then
|
||||||
|
"--disable-pthreads --enable-w32threads"
|
||||||
|
else # Use POSIX threads by default
|
||||||
|
"--enable-pthreads --disable-w32threads")
|
||||||
|
else
|
||||||
|
"--disable-pthreads --disable-w32threads")
|
||||||
|
else null)
|
||||||
|
(if reqMin "0.9" then "--disable-os2threads" else null) # We don't support OS/2
|
||||||
|
(mkFlag networkBuild "0.5" "network")
|
||||||
|
(mkFlag pixelutilsBuild "2.4" "pixelutils")
|
||||||
|
/*
|
||||||
|
* Program flags
|
||||||
|
*/
|
||||||
|
(mkFlag ffmpegProgram "0.5" "ffmpeg")
|
||||||
|
(mkFlag ffplayProgram "0.5" "ffplay")
|
||||||
|
(mkFlag ffprobeProgram "0.6" "ffprobe")
|
||||||
|
(mkFlag ffserverProgram "0.5" "ffserver")
|
||||||
|
/*
|
||||||
|
* Library flags
|
||||||
|
*/
|
||||||
|
(mkFlag avcodecLibrary "0.6" "avcodec")
|
||||||
|
(mkFlag avdeviceLibrary "0.6" "avdevice")
|
||||||
|
(mkFlag avfilterLibrary "0.5" "avfilter")
|
||||||
|
(mkFlag avformatLibrary "0.6" "avformat")
|
||||||
|
(mkFlag avresampleLibrary "1.0" "avresample")
|
||||||
|
(mkFlag avutilLibrary "1.1" "avutil")
|
||||||
|
(mkFlag postprocLibrary "0.5" "postproc")
|
||||||
|
(mkFlag swresampleLibrary "0.9" "swresample")
|
||||||
|
(mkFlag swscaleLibrary "0.5" "swscale")
|
||||||
|
/*
|
||||||
|
* Documentation flags
|
||||||
|
*/
|
||||||
|
(mkFlag (htmlpagesDocumentation
|
||||||
|
|| manpagesDocumentation
|
||||||
|
|| podpagesDocumentation
|
||||||
|
|| txtpagesDocumentation) "0.6" "doc")
|
||||||
|
(mkFlag htmlpagesDocumentation "1.0" "htmlpages")
|
||||||
|
(mkFlag manpagesDocumentation "1.0" "manpages")
|
||||||
|
(mkFlag podpagesDocumentation "1.0" "podpages")
|
||||||
|
(mkFlag txtpagesDocumentation "1.0" "txtpages")
|
||||||
|
/*
|
||||||
|
* External libraries
|
||||||
|
*/
|
||||||
|
#(mkFlag aacplus "0.7" "libaacplus")
|
||||||
|
#(mkFlag avisynth "0.5" "avisynth")
|
||||||
|
(mkFlag (bzip2 != null) "0.5" "bzlib")
|
||||||
|
(mkFlag (celt != null) "0.8" "libcelt")
|
||||||
|
#crystalhd
|
||||||
|
#(mkFlag decklinkExtlib "2.2" "decklink")
|
||||||
|
(mkFlag faacExtlib "0.5" "libfaac")
|
||||||
|
(depFlag faad2Extlib "0.5" "0.6" "libfaad")
|
||||||
|
(mkFlag fdk-aacExtlib "1.0" "libfdk-aac")
|
||||||
|
#(mkFlag (flite != null) "1.0" "libflite")
|
||||||
|
(if reqMin "1.0" then # Force disable until a solution is found
|
||||||
|
"--disable-libflite"
|
||||||
|
else null)
|
||||||
|
(mkFlag (fontconfig != null) "1.0" "fontconfig")
|
||||||
|
(mkFlag (freetype != null) "0.7" "libfreetype")
|
||||||
|
(mkFlag (frei0r != null) "0.7" "frei0r")
|
||||||
|
(mkFlag (fribidi != null) "2.3" "libfribidi")
|
||||||
|
(mkFlag (game-music-emu != null) "2.2" "libgme")
|
||||||
|
(mkFlag (gnutls != null) "0.9" "gnutls")
|
||||||
|
(verFix (mkFlag (gsm != null) "0.5" "libgsm") "0.5" "--disable-libgsm")
|
||||||
|
#(mkFlag (ilbc != null) "1.0" "libilbc")
|
||||||
|
(mkFlag (ladspaH !=null) "2.1" "ladspa")
|
||||||
|
(mkFlag (lame != null) "0.5" "libmp3lame")
|
||||||
|
(mkFlag (libass != null) "0.9" "libass")
|
||||||
|
#(mkFlag (libavc1394 != null) null null)
|
||||||
|
(mkFlag (libbluray != null) "1.0" "libbluray")
|
||||||
|
(mkFlag (libbs2b != null) "2.3" "libbs2b")
|
||||||
|
(mkFlag (libcaca != null) "1.0" "libcaca")
|
||||||
|
#(mkFlag (cdio-paranoia != null) "0.9" "libcdio")
|
||||||
|
(mkFlag (libdc1394 != null && libraw1394 != null) "0.5" "libdc1394")
|
||||||
|
(mkFlag (libiconv != null) "1.2" "iconv")
|
||||||
|
#(mkFlag (libiec61883 != null && libavc1394 != null && libraw1394 != null) "1.0" "libiec61883")
|
||||||
|
(mkFlag (libmfz != null) "2.6" "libmfx")
|
||||||
|
(mkFlag (libmodplug != null) "0.9" "libmodplug")
|
||||||
|
#(mkFlag (libnut != null) "0.5" "libnut")
|
||||||
|
(mkFlag (libopus != null) "1.0" "libopus")
|
||||||
|
(mkFlag (libssh != null) "2.1" "libssh")
|
||||||
|
(mkFlag (libtheora != null) "0.5" "libtheora")
|
||||||
|
(mkFlag (libva != null) "0.6" "vaapi")
|
||||||
|
(mkFlag (libvdpau != null) "0.5" "vdpau")
|
||||||
|
(mkFlag (libvorbis != null) "0.5" "libvorbis")
|
||||||
|
(mkFlag (libvpx != null) "0.6" "libvpx")
|
||||||
|
(mkFlag (libwebp != null) "2.2" "libwebp")
|
||||||
|
(mkFlag (libX11 != null && libXv != null) "2.3" "xlib")
|
||||||
|
(mkFlag (libxcb != null) "2.5" "libxcb")
|
||||||
|
(mkFlag libxcb-shmExtlib "2.5" "libxcb-shm")
|
||||||
|
(mkFlag libxcb-xfixesExtlib "2.5" "libxcb-xfixes")
|
||||||
|
(mkFlag libxcb-shapeExtlib "2.5" "libxcb-shape")
|
||||||
|
(mkFlag (lzma != null) "2.4" "lzma")
|
||||||
|
#(mkFlag nvenc "2.6" "nvenc")
|
||||||
|
(mkFlag (openal != null) "0.9" "openal")
|
||||||
|
#(mkFlag opencl "2.2" "opencl")
|
||||||
|
#(mkFlag (opencore-amr != null) "0.5" "libopencore-amrnb")
|
||||||
|
#(mkFlag (opencore-amr != null) "0.5" "libopencore-amrwb")
|
||||||
|
(mkFlag (opencv != null) "1.1" "libopencv") # Actual min. version 0.7
|
||||||
|
(mkFlag openglExtlib "2.2" "opengl")
|
||||||
|
#(mkFlag (openh264 != null) "2.6" "openh264")
|
||||||
|
(mkFlag (openjpeg_1 != null) "0.5" "libopenjpeg")
|
||||||
|
(mkFlag opensslExtlib "0.9" "openssl")
|
||||||
|
(mkFlag (pulseaudio != null) "0.9" "libpulse")
|
||||||
|
#(mkFlag quvi "2.0" "libquvi")
|
||||||
|
(mkFlag (rtmpdump != null) "0.6" "librtmp")
|
||||||
|
#(mkFlag (schroedinger != null) "0.5" "libschroedinger")
|
||||||
|
#(mkFlag (shine != null) "2.0" "libshine")
|
||||||
|
(mkFlag sambaExtlib "2.3" "libsmbclient")
|
||||||
|
(mkFlag (SDL != null) "2.5" "sdl") # Only configurable since 2.5, auto detected before then
|
||||||
|
(mkFlag (soxr != null) "1.2" "libsoxr")
|
||||||
|
(mkFlag (speex != null) "0.5" "libspeex")
|
||||||
|
#(mkFlag (twolame != null) "1.0" "libtwolame")
|
||||||
|
#(mkFlag (utvideo != null) "0.9" "libutvideo")
|
||||||
|
(mkFlag (v4l_utils != null) "0.9" "libv4l2")
|
||||||
|
(mkFlag (vid-stab != null) "2.2" "libvidstab") # Actual min. version 2.0
|
||||||
|
#(mkFlag (vo-aacenc != null) "0.6" "libvo-aacenc")
|
||||||
|
#(mkFlag (vo-amrwbenc) "0.7" "libvo-amrwbenc")
|
||||||
|
(mkFlag (wavpack != null) "2.0" "libwavpack")
|
||||||
|
(mkFlag (x11grabExtlib) "0.5" "x11grab")
|
||||||
|
(mkFlag (x264 != null) "0.5" "libx264")
|
||||||
|
(mkFlag (x265 != null) "2.2" "libx265")
|
||||||
|
(mkFlag (xavs != null) "0.7" "libxavs")
|
||||||
|
(mkFlag (xvidcore != null) "0.5" "libxvid")
|
||||||
|
(mkFlag (zeromq4 != null) "2.0" "libzmq")
|
||||||
|
(mkFlag (zlib != null) "0.5" "zlib")
|
||||||
|
#(mkFlag (zvbi != null) "2.1" "libzvbi")
|
||||||
|
/*
|
||||||
|
* Developer flags
|
||||||
|
*/
|
||||||
|
(mkFlag debugDeveloper "0.5" "debug")
|
||||||
|
(mkFlag optimizationsDeveloper "0.5" "optimizations")
|
||||||
|
(mkFlag extra-warningsDeveloper "0.5" "extra-warnings")
|
||||||
|
(mkFlag strippingDeveloper "0.5" "stripping")
|
||||||
|
|
||||||
|
# Disable mmx support for 0.6.90
|
||||||
|
(verFix null "0.6.90" "--disable-mmx")
|
||||||
|
];
|
||||||
|
|
||||||
|
nativeBuildInputs = [ perl pkgconfig texinfo yasm ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
alsaLib bzip2 celt faad2 fdk_aac fontconfig freetype frei0r fribidi
|
||||||
|
game-music-emu gnutls gsm jack2 ladspaH lame libass libbluray libbs2b
|
||||||
|
libcaca libdc1394 libmodplug libogg libopus libraw1394 libssh libtheora
|
||||||
|
libva libvdpau libvpx libvorbis libwebp libX11 libxcb libXext libXfixes
|
||||||
|
libXv lzma mesa openal opencv openjpeg_1 openssl pulseaudio rtmpdump
|
||||||
|
samba SDL soxr speex v4l_utils vid-stab wavpack x264 x265 xavs xvidcore
|
||||||
|
zeromq4 zlib
|
||||||
|
] ++ optional faacExtlib faac;
|
||||||
|
|
||||||
|
# Build qt-faststart executable
|
||||||
|
buildPhase = optional (qt-faststartProgram && (reqMin "0.9")) ''make tools/qt-faststart'';
|
||||||
|
postInstall = optional (qt-faststartProgram && (reqMin "0.9")) ''cp -a tools/qt-faststart $out/bin/'';
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
/* Cross-compilation is untested, consider this an outline, more work
|
||||||
|
needs to be done to portions of the build to get it to work correctly */
|
||||||
|
crossAttrs = let
|
||||||
|
os = ''
|
||||||
|
if [ "${stdenv.cross.config}" = "*cygwin*" ] ; then
|
||||||
|
# Probably should look for mingw too
|
||||||
|
echo "cygwin"
|
||||||
|
elif [ "${stdenv.cross.config}" = "*darwin*" ] ; then
|
||||||
|
echo "darwin"
|
||||||
|
elif [ "${stdenv.cross.config}" = "*freebsd*" ] ; then
|
||||||
|
echo "freebsd"
|
||||||
|
elif [ "${stdenv.cross.config}" = "*linux*" ] ; then
|
||||||
|
echo "linux"
|
||||||
|
elif [ "${stdenv.cross.config}" = "*netbsd*" ] ; then
|
||||||
|
echo "netbsd"
|
||||||
|
elif [ "${stdenv.cross.config}" = "*openbsd*" ] ; then
|
||||||
|
echo "openbsd"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
dontSetConfigureCross = true;
|
||||||
|
configureFlags = configureFlags ++ [
|
||||||
|
"--cross-prefix=${stdenv.cross.config}-"
|
||||||
|
"--enable-cross-compile"
|
||||||
|
"--target_os=${os}"
|
||||||
|
"--arch=${stdenv.cross.arch}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
/* TODO: In the future more FFmpeg optionals should be added so that packages that
|
||||||
|
depend on FFmpeg can check to make sure a required feature is enabled. Since
|
||||||
|
features are version dependent, versioning needs to be handled as well */
|
||||||
|
passthru = {
|
||||||
|
vdpauSupport = libvdpau != null;
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A complete, cross-platform solution to record, convert and stream audio and video";
|
||||||
|
homepage = http://www.ffmpeg.org/;
|
||||||
|
longDescription = ''
|
||||||
|
FFmpeg is the leading multimedia framework, able to decode, encode, transcode,
|
||||||
|
mux, demux, stream, filter and play pretty much anything that humans and machines
|
||||||
|
have created. It supports the most obscure ancient formats up to the cutting edge.
|
||||||
|
No matter if they were designed by some standards committee, the community or
|
||||||
|
a corporation.
|
||||||
|
'';
|
||||||
|
licenses = (
|
||||||
|
if nonfreeLicensing then
|
||||||
|
licenses.unfreeRedistributable
|
||||||
|
else if version3Licensing then
|
||||||
|
licenses.gpl3
|
||||||
|
else if gplLicensing then
|
||||||
|
licenses.gpl2Plus
|
||||||
|
else
|
||||||
|
licenses.lgpl21Plus
|
||||||
|
);
|
||||||
|
platforms = platforms.all;
|
||||||
|
maintainers = with maintainers; [ codyopel fuuzetsu ];
|
||||||
|
inherit branch;
|
||||||
|
};
|
||||||
|
}
|
@ -6,16 +6,24 @@
|
|||||||
, libsoup
|
, libsoup
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
let metadata = if stdenv.system == "i686-linux"
|
||||||
name = "swt-3.7.2-201202080800";
|
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;
|
builder = ./builder.sh;
|
||||||
|
|
||||||
# Alas, the Eclipse Project apparently doesn't produce source-only
|
# Alas, the Eclipse Project apparently doesn't produce source-only
|
||||||
# releases of SWT. So we just grab a binary release and extract
|
# releases of SWT. So we just grab a binary release and extract
|
||||||
# "src.zip" from that.
|
# "src.zip" from that.
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://archive.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/swt-3.7.2-gtk-linux-x86.zip";
|
url = "http://archive.eclipse.org/eclipse/downloads/drops/R-${fullVersion}/${name}-gtk-linux-${metadata.arch}.zip";
|
||||||
sha256 = "10si8kmc7c9qmbpzs76609wkfb784pln3qpmra73gb3fbk7z8caf";
|
sha256 = metadata.sha256;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [unzip jdk pkgconfig gtk libXtst libXi mesa webkit libsoup];
|
buildInputs = [unzip jdk pkgconfig gtk libXtst libXi mesa webkit libsoup];
|
||||||
|
@ -8,6 +8,12 @@ stdenv.mkDerivation {
|
|||||||
sha256 = "1sv3990vsx8hrza1mvq3bhvv9m6ff08y4yz7swn6znszz24l0w6j";
|
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 = {
|
meta = {
|
||||||
homepage = http://judy.sourceforge.net/;
|
homepage = http://judy.sourceforge.net/;
|
||||||
license = stdenv.lib.licenses.lgpl21Plus;
|
license = stdenv.lib.licenses.lgpl21Plus;
|
||||||
|
@ -56,8 +56,8 @@ let
|
|||||||
Qt5DBus = qt5.base;
|
Qt5DBus = qt5.base;
|
||||||
Qt5Gui = qt5.base;
|
Qt5Gui = qt5.base;
|
||||||
Qt5LinguistTools = qt5.tools;
|
Qt5LinguistTools = qt5.tools;
|
||||||
Qt5Qml = qt5.declarative;
|
Qt5Qml = [qt5.declarative qt5.graphicaleffects];
|
||||||
Qt5Quick = qt5.quickcontrols;
|
Qt5Quick = [qt5.quickcontrols qt5.graphicaleffects];
|
||||||
Qt5Script = qt5.script;
|
Qt5Script = qt5.script;
|
||||||
Qt5Svg = qt5.svg;
|
Qt5Svg = qt5.svg;
|
||||||
Qt5WebkitWidgets = qt5.webkit;
|
Qt5WebkitWidgets = qt5.webkit;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ fetchurl, stdenv, libgpgerror, transfig, ghostscript, texinfo }:
|
{ fetchurl, stdenv, libgpgerror, transfig, ghostscript, texinfo }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libgcrypt-1.6.2";
|
name = "libgcrypt-1.6.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
|
url = "mirror://gnupg/libgcrypt/${name}.tar.bz2";
|
||||||
sha256 = "de084492a6b38cdb27b67eaf749ceba76bf7029f63a9c0c3c1b05c88c9885c4c";
|
sha256 = "0pq2nwfqgggrsh8rk84659d80vfnlkbphwqjwahccd5fjdxr3d21";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ transfig ghostscript texinfo ];
|
nativeBuildInputs = [ transfig ghostscript texinfo ];
|
||||||
@ -18,12 +18,6 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
doCheck = true;
|
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
|
crossAttrs = let
|
||||||
isCross64 = stdenv.cross.config == "x86_64-w64-mingw32";
|
isCross64 = stdenv.cross.config == "x86_64-w64-mingw32";
|
||||||
in stdenv.lib.optionalAttrs isCross64 {
|
in stdenv.lib.optionalAttrs isCross64 {
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl, gettext }:
|
{ stdenv, fetchurl, gettext }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libgpg-error-1.17";
|
name = "libgpg-error-1.18";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
|
url = "mirror://gnupg/libgpg-error/${name}.tar.bz2";
|
||||||
sha256 = "1dapxzxl1naghf342fwfc2w2f2c5hb9gr1a1s4n8dsqn26kybx1z";
|
sha256 = "0408v19h3h0q6w61g51hgbdg6cyw81nyzkh70qfprvsc3pkddwcz";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure";
|
postPatch = "sed '/BUILD_TIMESTAMP=/s/=.*/=1970-01-01T00:01+0000/' -i ./configure";
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ stdenv, fetchurl }:
|
{ stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libyubikey-1.12";
|
name = "libyubikey-1.13";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://developers.yubico.com/yubico-c/Releases/${name}.tar.gz";
|
url = "https://developers.yubico.com/yubico-c/Releases/${name}.tar.gz";
|
||||||
sha256 = "1f0plzmr1gwry4rfgq9q70v6qwqny009hac289ad5m6sj7vqflxr";
|
sha256 = "009l3k2zyn06dbrlja2d4p2vfnzjhlcqxi88v02mlrnb17mx1v84";
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
25
pkgs/development/libraries/utf8proc/default.nix
Normal file
25
pkgs/development/libraries/utf8proc/default.nix
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
{ fetchurl, stdenv }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
version = "v1.1.6";
|
||||||
|
|
||||||
|
name = "utf8proc-${version}";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = "http://www.public-software-group.org/pub/projects/utf8proc/${version}/utf8proc-${version}.tar.gz";
|
||||||
|
sha256 = "1rwr84pw92ajjlbcxq0da7yxgg3ijngmrj7vhh2qzsr2h2kqzp7y";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -pv $out/lib $out/include
|
||||||
|
cp libutf8proc.so libutf8proc.a $out/lib
|
||||||
|
cp utf8proc.h $out/include
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A library for processing UTF-8 encoded Unicode strings";
|
||||||
|
homepage = http://www.public-software-group.org/utf8proc;
|
||||||
|
license = stdenv.lib.licenses.mit;
|
||||||
|
platforms = stdenv.lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
24
pkgs/development/ocaml-modules/enumerate/default.nix
Normal file
24
pkgs/development/ocaml-modules/enumerate/default.nix
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
{ stdenv, fetchurl, ocaml, findlib, type_conv, camlp4 }:
|
||||||
|
|
||||||
|
assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.00";
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "ocaml-enumerate-111.08.00";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
url = https://ocaml.janestreet.com/ocaml-core/111.08.00/individual/enumerate-111.08.00.tar.gz;
|
||||||
|
sha256 = "0b6mx5p01lcpimvak4wx6aj2119707wsfzd83rwgb91bhpgzh156";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ ocaml findlib ];
|
||||||
|
propagatedBuildInputs = [ type_conv camlp4 ];
|
||||||
|
|
||||||
|
createFindlibDestdir = true;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
homepage = https://ocaml.janestreet.com/;
|
||||||
|
description = "Quotation expanders for enumerating finite types";
|
||||||
|
license = stdenv.lib.licenses.asl20;
|
||||||
|
platforms = ocaml.meta.platforms;
|
||||||
|
};
|
||||||
|
}
|
@ -16,13 +16,13 @@ wrapPythonProgramsIn() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
for i in $(find "$dir" -type f -perm +0100); do
|
for i in $(find "$dir" -type f -perm +0100); do
|
||||||
|
|
||||||
# Rewrite "#! .../env python" to "#! /nix/store/.../python".
|
# Rewrite "#! .../env python" to "#! /nix/store/.../python".
|
||||||
if head -n1 "$i" | grep -q '#!.*/env.*\(python\|pypy\)'; then
|
if head -n1 "$i" | grep -q '#!.*/env.*\(python\|pypy\)'; then
|
||||||
sed -i "$i" -e "1 s^.*/env[ ]*\(python\|pypy\)^#! $python^"
|
sed -i "$i" -e "1 s^.*/env[ ]*\(python\|pypy\)^#! $python^"
|
||||||
fi
|
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
|
# dont wrap EGG-INFO scripts since they are called from python
|
||||||
if echo "$i" | grep -v EGG-INFO/scripts; then
|
if echo "$i" | grep -v EGG-INFO/scripts; then
|
||||||
echo "wrapping \`$i'..."
|
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
|
--- a/gevent/ssl.py
|
||||||
+++ b/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
|
self._sslobj = None
|
||||||
else:
|
else:
|
||||||
# yes, create the SSL object
|
# yes, create the SSL object
|
||||||
@ -10,19 +19,31 @@ Index: b/gevent/ssl.py
|
|||||||
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
|
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
|
||||||
- keyfile, certfile,
|
- keyfile, certfile,
|
||||||
- cert_reqs, ssl_version, ca_certs)
|
- 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,
|
- self._sslobj = _ssl.sslwrap(self._sock, server_side,
|
||||||
- keyfile, certfile,
|
- keyfile, certfile,
|
||||||
- cert_reqs, ssl_version, ca_certs,
|
- cert_reqs, ssl_version, ca_certs,
|
||||||
- ciphers)
|
- ciphers)
|
||||||
+ ctx = __ssl__.SSLContext(ssl_version)
|
+ self.context = __ssl__.SSLContext(ssl_version)
|
||||||
+ if keyfile or certfile:
|
+ self.context.verify_mode = cert_reqs
|
||||||
+ ctx.load_cert_chain(certfile, keyfile)
|
+ if ca_certs:
|
||||||
+ if ca_certs:
|
+ self.context.load_verify_locations(ca_certs)
|
||||||
+ ctx.load_verify_locations(ca_certs)
|
+ if certfile:
|
||||||
+ if ciphers:
|
+ self.context.load_cert_chain(certfile, keyfile)
|
||||||
+ ctx.set_ciphers(ciphers)
|
+ if ciphers:
|
||||||
+ self._sslobj = ctx._wrap_socket(self._sock, server_side=server_side)
|
+ 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:
|
if do_handshake_on_connect:
|
||||||
self.do_handshake()
|
self.do_handshake()
|
||||||
self.keyfile = keyfile
|
self.keyfile = keyfile
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user