Skip to content

Commit

Permalink
Merge branch 'staging-17.03' into release-17.03
Browse files Browse the repository at this point in the history
  • Loading branch information
vcunat committed Mar 22, 2017
2 parents acefaff + 7e22474 commit 5954e76
Show file tree
Hide file tree
Showing 27 changed files with 194 additions and 96 deletions.
@@ -1,11 +1,14 @@
diff -ru git-2.7.4-orig/http.c git-2.7.4/http.c
--- git-2.7.4-orig/http.c 2016-03-17 21:47:59.000000000 +0100
+++ git-2.7.4/http.c 2016-04-12 11:38:33.187070848 +0200
@@ -544,6 +544,7 @@
@@ -544,6 +544,10 @@
#if LIBCURL_VERSION_NUM >= 0x070908
set_from_env(&ssl_capath, "GIT_SSL_CAPATH");
#endif
+ set_from_env(&ssl_cainfo, "SSL_CERT_FILE");
+ if (getenv("NIX_SSL_CERT_FILE"))
+ set_from_env(&ssl_cainfo, "NIX_SSL_CERT_FILE");
+ else
+ set_from_env(&ssl_cainfo, "SSL_CERT_FILE");
set_from_env(&ssl_cainfo, "GIT_SSL_CAINFO");

set_from_env(&user_agent, "GIT_HTTP_USER_AGENT");
3 changes: 2 additions & 1 deletion pkgs/applications/version-management/mercurial/default.nix
Expand Up @@ -7,8 +7,9 @@ let
version = "3.9.2";
name = "mercurial-${version}";
inherit (python2Packages) docutils hg-git dulwich python;
in python2Packages.mkPythonDerivation {
in python2Packages.buildPythonApplication {
inherit name;
format = "other";

src = fetchurl {
url = "https://mercurial-scm.org/release/${name}.tar.gz";
Expand Down
75 changes: 40 additions & 35 deletions pkgs/build-support/setup-hooks/make-wrapper.sh
Expand Up @@ -19,98 +19,100 @@
# are read first and used as VALS
# --suffix-contents
makeWrapper() {
local original=$1
local wrapper=$2
local original="$1"
local wrapper="$2"
local params varName value command separator n fileNames
local argv0 flagsBefore flags extraFlagsArray
local argv0 flagsBefore flags

mkdir -p "$(dirname $wrapper)"
mkdir -p "$(dirname "$wrapper")"

echo "#! $SHELL -e" > $wrapper
echo "#! $SHELL -e" > "$wrapper"

params=("$@")
for ((n = 2; n < ${#params[*]}; n += 1)); do
p=${params[$n]}
p="${params[$n]}"

if test "$p" = "--set"; then
varName=${params[$((n + 1))]}
value=${params[$((n + 2))]}
varName="${params[$((n + 1))]}"
value="${params[$((n + 2))]}"
n=$((n + 2))
echo "export $varName=\"$value\"" >> $wrapper
echo "export $varName=\"$value\"" >> "$wrapper"
fi

if test "$p" = "--unset"; then
varName=${params[$((n + 1))]}
varName="${params[$((n + 1))]}"
n=$((n + 1))
echo "unset $varName" >> "$wrapper"
fi

if test "$p" = "--run"; then
command=${params[$((n + 1))]}
command="${params[$((n + 1))]}"
n=$((n + 1))
echo "$command" >> $wrapper
echo "$command" >> "$wrapper"
fi

if test "$p" = "--suffix" -o "$p" = "--prefix"; then
varName=${params[$((n + 1))]}
separator=${params[$((n + 2))]}
value=${params[$((n + 3))]}
varName="${params[$((n + 1))]}"
separator="${params[$((n + 2))]}"
value="${params[$((n + 3))]}"
n=$((n + 3))
if test -n "$value"; then
if test "$p" = "--suffix"; then
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> $wrapper
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> "$wrapper"
else
echo "export $varName=$value\${$varName:+$separator}\$$varName" >> $wrapper
echo "export $varName=$value\${$varName:+$separator}\$$varName" >> "$wrapper"
fi
fi
fi

if test "$p" = "--suffix-each"; then
varName=${params[$((n + 1))]}
separator=${params[$((n + 2))]}
values=${params[$((n + 3))]}
varName="${params[$((n + 1))]}"
separator="${params[$((n + 2))]}"
values="${params[$((n + 3))]}"
n=$((n + 3))
for value in $values; do
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> $wrapper
echo "export $varName=\$$varName\${$varName:+$separator}$value" >> "$wrapper"
done
fi

if test "$p" = "--suffix-contents" -o "$p" = "--prefix-contents"; then
varName=${params[$((n + 1))]}
separator=${params[$((n + 2))]}
fileNames=${params[$((n + 3))]}
varName="${params[$((n + 1))]}"
separator="${params[$((n + 2))]}"
fileNames="${params[$((n + 3))]}"
n=$((n + 3))
for fileName in $fileNames; do
if test "$p" = "--suffix-contents"; then
echo "export $varName=\$$varName\${$varName:+$separator}$(cat $fileName)" >> $wrapper
echo "export $varName=\$$varName\${$varName:+$separator}$(cat "$fileName")" >> "$wrapper"
else
echo "export $varName=$(cat $fileName)\${$varName:+$separator}\$$varName" >> $wrapper
echo "export $varName=$(cat "$fileName")\${$varName:+$separator}\$$varName" >> "$wrapper"
fi
done
fi

if test "$p" = "--add-flags"; then
flags=${params[$((n + 1))]}
flags="${params[$((n + 1))]}"
n=$((n + 1))
flagsBefore="$flagsBefore $flags"
fi

if test "$p" = "--argv0"; then
argv0=${params[$((n + 1))]}
argv0="${params[$((n + 1))]}"
n=$((n + 1))
fi
done

# Note: extraFlagsArray is an array containing additional flags
# that may be set by --run actions.
echo exec ${argv0:+-a $argv0} "$original" \
$flagsBefore '"${extraFlagsArray[@]}"' '"$@"' >> $wrapper
# Silence warning about unexpanded extraFlagsArray:
# shellcheck disable=SC2016
echo exec ${argv0:+-a \"$argv0\"} \""$original"\" \
"$flagsBefore" '"${extraFlagsArray[@]}"' '"$@"' >> "$wrapper"

chmod +x $wrapper
chmod +x "$wrapper"
}

addSuffix() {
suffix=$1
suffix="$1"
shift
for name in "$@"; do
echo "$name$suffix"
Expand All @@ -128,7 +130,10 @@ filterExisting() {
# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
wrapProgram() {
local prog="$1"
local hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
mv $prog $hidden
makeWrapper $hidden $prog --argv0 '"$0"' "$@"
local hidden
hidden="$(dirname "$prog")/.$(basename "$prog")"-wrapped
mv "$prog" "$hidden"
# Silence warning about unexpanded $0:
# shellcheck disable=SC2016
makeWrapper "$hidden" "$prog" --argv0 '$0' "$@"
}
65 changes: 52 additions & 13 deletions pkgs/development/libraries/mesa/default.nix
@@ -1,4 +1,4 @@
{ stdenv, fetchurl, fetchpatch
{ stdenv, fetchurl, fetchpatch, lib
, pkgconfig, intltool, autoreconfHook, substituteAll
, file, expat, libdrm, xorg, wayland, openssl
, llvmPackages, libffi, libomxil-bellagio, libva
Expand All @@ -8,9 +8,11 @@
# Texture floats are patented, see docs/patents.txt, so we don't enable them for full Mesa.
# It's overridden for mesa_drivers.
, enableTextureFloats ? false
, galliumDrivers ? null
, driDrivers ? null
, vulkanDrivers ? null
}:


/** Packaging design:
- The basic mesa ($out) contains headers and libraries (GLU is in mesa_glu now).
This or the mesa attribute (which also contains GLU) are small (~ 2 MB, mostly headers)
Expand All @@ -29,7 +31,41 @@ if ! lists.elem stdenv.system platforms.mesaPlatforms then
else

let
version = "17.0.1";
defaultGalliumDrivers =
if (stdenv.isArm || stdenv.isAarch64)
then ["nouveau" "freedreno" "vc4" "etnaviv"]
else ["i915" "ilo" "r300" "r600" "radeonsi" "nouveau"];
defaultDriDrivers =
if (stdenv.isArm || stdenv.isAarch64)
then ["nouveau"]
else ["i915" "i965" "nouveau" "radeon" "r200"];
defaultVulkanDrivers =
if (stdenv.isArm || stdenv.isAarch64)
then []
else ["intel"] ++ lib.optional enableRadv "radeon";
in

let gallium_ = galliumDrivers; dri_ = driDrivers; vulkan_ = vulkanDrivers; in

let
galliumDrivers =
["svga"]
++ (if gallium_ == null
then defaultGalliumDrivers
else gallium_)
++ ["swrast"];
driDrivers =
(if dri_ == null
then defaultDriDrivers
else dri_) ++ ["swrast"];
vulkanDrivers =
if vulkan_ == null
then defaultVulkanDrivers
else vulkan_;
in

let
version = "17.0.2";
branch = head (splitString "." version);
driverLink = "/run/opengl-driver" + optionalString stdenv.isi686 "-32";
in
Expand All @@ -44,7 +80,7 @@ stdenv.mkDerivation {
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
"https://launchpad.net/mesa/trunk/${version}/+download/mesa-${version}.tar.xz"
];
sha256 = "96fd70ef5f31d276a17e424e7e1bb79447ccbbe822b56844213ef932e7ad1b0c";
sha256 = "f8f191f909e01e65de38d5bdea5fb057f21649a3aed20948be02348e77a689d4";
};

prePatch = "patchShebangs .";
Expand All @@ -66,14 +102,17 @@ stdenv.mkDerivation {
"--with-dri-driverdir=$(drivers)/lib/dri"
"--with-dri-searchpath=${driverLink}/lib/dri"
"--with-egl-platforms=x11,wayland,drm"
] ++ (if stdenv.isArm || stdenv.isAarch64 then [
"--with-gallium-drivers=nouveau,freedreno,vc4,etnaviv,swrast"
"--with-dri-drivers=nouveau,swrast"
] else [
"--with-gallium-drivers=svga,i915,ilo,r300,r600,radeonsi,nouveau,swrast"
"--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast"
("--with-vulkan-drivers=intel" + optionalString enableRadv ",radeon")
]) ++ [
]
++ (optional (galliumDrivers != [])
("--with-gallium-drivers=" +
builtins.concatStringsSep "," galliumDrivers))
++ (optional (driDrivers != [])
("--with-dri-drivers=" +
builtins.concatStringsSep "," driDrivers))
++ (optional (vulkanDrivers != [])
("--with-vulkan-drivers=" +
builtins.concatStringsSep "," vulkanDrivers))
++ [
(enableFeature enableTextureFloats "texture-float")
(enableFeature grsecEnabled "glx-rts")
(enableFeature stdenv.isLinux "dri3")
Expand Down Expand Up @@ -146,7 +185,7 @@ stdenv.mkDerivation {
# set the default search path for DRI drivers; used e.g. by X server
substituteInPlace "$dev/lib/pkgconfig/dri.pc" --replace '$(drivers)' "${driverLink}"
'' + optionalString (!(stdenv.isArm || stdenv.isAarch64)) ''
'' + optionalString (builtins.elem "intel" vulkanDrivers) ''
# move share/vulkan/icd.d/
mv $out/share/ $drivers/
# Update search path used by Vulkan (it's pointing to $out but
Expand Down
1 change: 1 addition & 0 deletions pkgs/development/libraries/openssl/default.nix
Expand Up @@ -19,6 +19,7 @@ let

patches =
(args.patches or [])
++ [ ./nix-ssl-cert-file.patch ]
++ optional (versionOlder version "1.1.0") ./use-etc-ssl-certs.patch
++ optional stdenv.isCygwin ./1.0.1-cygwin64.patch
++ optional
Expand Down
14 changes: 14 additions & 0 deletions pkgs/development/libraries/openssl/nix-ssl-cert-file.patch
@@ -0,0 +1,14 @@
diff -ru -x '*~' openssl-1.0.2j-orig/crypto/x509/by_file.c openssl-1.0.2j/crypto/x509/by_file.c
--- openssl-1.0.2j-orig/crypto/x509/by_file.c 2016-09-26 11:49:07.000000000 +0200
+++ openssl-1.0.2j/crypto/x509/by_file.c 2016-10-13 16:54:31.400288302 +0200
@@ -97,7 +97,9 @@
switch (cmd) {
case X509_L_FILE_LOAD:
if (argl == X509_FILETYPE_DEFAULT) {
- file = (char *)getenv(X509_get_default_cert_file_env());
+ file = (char *)getenv("NIX_SSL_CERT_FILE");
+ if (!file)
+ file = (char *)getenv(X509_get_default_cert_file_env());
if (file)
ok = (X509_load_cert_crl_file(ctx, file,
X509_FILETYPE_PEM) != 0);
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/dbus/default.nix
@@ -1,8 +1,9 @@
{ lib, fetchurl, mkPythonDerivation, python, pkgconfig, dbus, dbus_glib, dbus_tools, isPyPy
{ lib, fetchurl, buildPythonPackage, python, pkgconfig, dbus, dbus_glib, dbus_tools, isPyPy
, ncurses, pygobject3 }:

if isPyPy then throw "dbus-python not supported for interpreter ${python.executable}" else mkPythonDerivation rec {
if isPyPy then throw "dbus-python not supported for interpreter ${python.executable}" else buildPythonPackage rec {
name = "dbus-python-1.2.4";
format = "other";

src = fetchurl {
url = "http://dbus.freedesktop.org/releases/dbus-python/${name}.tar.gz";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/koji/default.nix
@@ -1,7 +1,8 @@
{ stdenv, fetchurl, mkPythonDerivation, pycurl }:
{ stdenv, fetchurl, buildPythonPackage, pycurl }:

mkPythonDerivation rec {
buildPythonPackage rec {
name = "koji-1.8";
format = "other";

src = fetchurl {
url = "https://fedorahosted.org/released/koji/koji-1.8.0.tar.bz2";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/libsexy/default.nix
@@ -1,8 +1,9 @@
{ stdenv, fetchurl, mkPythonDerivation, libsexy, pkgconfig, libxml2, pygtk, pango, gtk2, glib }:
{ stdenv, fetchurl, buildPythonPackage, libsexy, pkgconfig, libxml2, pygtk, pango, gtk2, glib }:

mkPythonDerivation rec {
buildPythonPackage rec {
name = "libsexy-${version}";
version = "0.1.9";
format = "other";

src = fetchurl {
url = "http://releases.chipx86.com/libsexy/sexy-python/sexy-python-${version}.tar.gz";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/pycairo/default.nix
@@ -1,8 +1,9 @@
{ lib, fetchurl, fetchpatch, python, mkPythonDerivation, pkgconfig, cairo, xlibsWrapper, isPyPy, isPy35, isPy3k }:
{ lib, fetchurl, fetchpatch, python, buildPythonPackage, pkgconfig, cairo, xlibsWrapper, isPyPy, isPy35, isPy3k }:

if (isPyPy) then throw "pycairo not supported for interpreter ${python.executable}" else mkPythonDerivation rec {
if (isPyPy) then throw "pycairo not supported for interpreter ${python.executable}" else buildPythonPackage rec {
version = "1.10.0";
name = "pycairo-${version}";
format = "other";
src = if isPy3k
then fetchurl {
url = "http://cairographics.org/releases/pycairo-${version}.tar.bz2";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/pygobject/3.nix
@@ -1,9 +1,10 @@
{ stdenv, fetchurl, mkPythonDerivation, python, pkgconfig, glib, gobjectIntrospection, pycairo, cairo, which, ncurses}:
{ stdenv, fetchurl, buildPythonPackage, python, pkgconfig, glib, gobjectIntrospection, pycairo, cairo, which, ncurses}:

mkPythonDerivation rec {
buildPythonPackage rec {
major = "3.22";
minor = "0";
name = "pygobject-${major}.${minor}";
format = "other";

src = fetchurl {
url = "mirror://gnome/sources/pygobject/${major}/${name}.tar.xz";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/pygobject/default.nix
@@ -1,8 +1,9 @@
{ stdenv, fetchurl, python, mkPythonDerivation, pkgconfig, glib }:
{ stdenv, fetchurl, python, buildPythonPackage, pkgconfig, glib }:

mkPythonDerivation rec {
buildPythonPackage rec {
name = "pygobject-${version}";
version = "2.28.6";
format = "other";

src = fetchurl {
url = "mirror://gnome/sources/pygobject/2.28/${name}.tar.xz";
Expand Down
5 changes: 3 additions & 2 deletions pkgs/development/python-modules/pygtksourceview/default.nix
@@ -1,9 +1,10 @@
{ lib, fetchurl, python, mkPythonDerivation, pkgconfig, pygobject2, glib, pygtk, gnome2 }:
{ lib, fetchurl, python, buildPythonPackage, pkgconfig, pygobject2, glib, pygtk, gnome2 }:

let version = "2.10.1"; in

mkPythonDerivation {
buildPythonPackage {
name = "pygtksourceview-${version}";
format = "other";

src = fetchurl {
url = "http://ftp.gnome.org/pub/gnome/sources/pygtksourceview/2.10/pygtksourceview-${version}.tar.bz2";
Expand Down

0 comments on commit 5954e76

Please sign in to comment.