Merge branch 'master' into staging

This commit is contained in:
Vladimír Čunát
2017-04-06 00:16:59 +02:00
169 changed files with 3608 additions and 1557 deletions

View File

@@ -1,19 +1,11 @@
{ stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan
, useGnupg1 ? false, gnupg1 ? null }:
{ stdenv, fetchurl, libgpgerror, gnupg, pkgconfig, glib, pth, libassuan }:
assert useGnupg1 -> gnupg1 != null;
assert !useGnupg1 -> gnupg != null;
let
gpgStorePath = if useGnupg1 then gnupg1 else gnupg;
gpgProgram = if useGnupg1 then "gpg" else "gpg2";
in
stdenv.mkDerivation rec {
name = "gpgme-1.8.0";
name = "gpgme-1.9.0";
src = fetchurl {
url = "mirror://gnupg/gpgme/${name}.tar.bz2";
sha256 = "0csx3qnycwm0n90ql6gs65if5xi4gqyzzy21fxs2xqicghjrfq2r";
sha256 = "1ssc0gs02r4fasabk7c6v6r865k2j02mpb5g1vkpbmzsigdzwa8v";
};
outputs = [ "out" "dev" "info" ];
@@ -24,20 +16,24 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig gnupg ];
configureFlags = [
"--enable-fixed-path=${gpgStorePath}/bin"
"--enable-fixed-path=${gnupg}/bin"
];
# https://www.gnupg.org/documentation/manuals/gpgme/Largefile-Support-_0028LFS_0029.html
NIX_CFLAGS_COMPILE =
with stdenv; lib.optional (system == "i686-linux") "-D_FILE_OFFSET_BITS=64";
AM_CXXFLAGS =
with stdenv; lib.optional (isDarwin) "-D_POSIX_C_SOURCE=200809L";
meta = with stdenv.lib; {
homepage = "http://www.gnupg.org/related_software/gpgme";
homepage = "https://gnupg.org/software/gpgme/index.html";
description = "Library for making GnuPG easier to use";
license = licenses.gpl2;
longDescription = ''
GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
easier for applications. It provides a High-Level Crypto API for
encryption, decryption, signing, signature verification and key
management.
'';
license = with licenses; [ lgpl21Plus gpl3Plus ];
platforms = platforms.unix;
maintainers = [ maintainers.fuuzetsu ];
maintainers = with maintainers; [ fuuzetsu primeos ];
};
}

View File

@@ -1,6 +1,6 @@
{ kdeFramework, lib, extra-cmake-modules, kconfig, kconfigwidgets
, kcoreaddons , kdbusaddons, kdoctools, ki18n, kiconthemes
, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt
, knotifications , kservice, kwidgetsaddons, kwindowsystem, libgcrypt, gpgme
}:
kdeFramework {
@@ -9,6 +9,6 @@ kdeFramework {
nativeBuildInputs = [ extra-cmake-modules kdoctools ];
propagatedBuildInputs = [
kconfig kconfigwidgets kcoreaddons kdbusaddons ki18n kiconthemes
knotifications kservice kwidgetsaddons kwindowsystem libgcrypt
knotifications kservice kwidgetsaddons kwindowsystem libgcrypt gpgme
];
}

View File

@@ -27,12 +27,17 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig autoconf ];
propagatedBuildInputs =
if gtkVersion == "2"
then [ gtk2 libdbusmenu-gtk2 ]
else [ gtk3 libdbusmenu-gtk3 ];
buildInputs = [
glib dbus_glib
python pygobject2 pygtk gobjectIntrospection vala_0_23
] ++ (if gtkVersion == "2"
then [ gtk2 libindicator-gtk2 libdbusmenu-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
else [ gtk3 libindicator-gtk3 libdbusmenu-gtk3 ]);
then [ libindicator-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
else [ libindicator-gtk3 ]);
postPatch = ''
substituteInPlace configure.ac \

View File

@@ -0,0 +1,29 @@
{ stdenv, fetchFromGitHub, bap, ocaml, findlib, ctypes, autoreconfHook,
which }:
stdenv.mkDerivation rec {
name = "libbap-${version}";
version = "master-2017-02-08";
src = fetchFromGitHub {
owner = "BinaryAnalysisPlatform";
repo = "bap-bindings";
rev = "b3da5bd5cdb3d646015ccdeb886b5ea8fd85a108";
sha256 = "0cwfyfpxbi9bm4kkpamyd7mgsm5b6j1rh217fqb5gi05wg45rkbb";
};
nativeBuildInputs = [ autoreconfHook which ];
buildInputs = [ ocaml bap findlib ctypes ];
preInstall = ''
mkdir -p $out/lib
mkdir -p $out/include
'';
meta = {
homepage = http://github.com/binaryanalysisplatform/bap-bindings;
description = "A C library for interacting with BAP";
maintainers = [ stdenv.lib.maintainers.maurer ];
platforms = stdenv.lib.platforms.unix;
};
}

View File

@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
propagatedBuildInputs = [ libxml2 glib gdk_pixbuf libiconv ]
++ libintlOrEmpty;
outputs = [ "out" "dev" ];
doCheck = true;
preCheck = "patchShebangs ./tests/";

View File

@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, pkgconfig, cmake
, dbus, networkmanager, spidermonkey_1_8_5 }:
, dbus, networkmanager, webkitgtk214x, pcre, python2 }:
stdenv.mkDerivation rec {
name = "libproxy-${version}";
@@ -16,7 +16,13 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ pkgconfig cmake ];
buildInputs = [ dbus networkmanager spidermonkey_1_8_5 ];
buildInputs = [ dbus networkmanager webkitgtk214x pcre ];
cmakeFlags = [
"-DWITH_WEBKIT3=ON"
"-DWITH_MOZJS=OFF"
"-DPYTHON_SITEPKG_DIR=$(out)/${python2.sitePackages}"
];
meta = with stdenv.lib; {
platforms = platforms.linux;

View File

@@ -0,0 +1,18 @@
{stdenv, pkgconfig, fetchurl}:
stdenv.mkDerivation rec {
name = "libspiro-${version}";
version = "0.5.20150702";
src = fetchurl {
url = "https://github.com/fontforge/libspiro/releases/download/${version}/${name}.tar.gz";
sha256 = "0z4zpxd3nwwchqdsbmmjbp13aw5jg8v5p1993190bpykkrjlh6nv";
};
nativeBuildInputs = [pkgconfig];
meta = with stdenv.lib; {
description = "A library that simplifies the drawing of beautiful curves";
homepage = "https://github.com/fontforge/libspiro";
license = licenses.gpl3Plus;
};
}

View File

@@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram $out/bin/melt --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
# Remove an unnecessary reference to movit.dev.
s=${movit.dev}/include
t=$(for ((i = 0; i < ''${#s}; i++)); do echo -n X; done)
sed -i $out/lib/mlt/libmltopengl.so -e "s|$s|$t|g"
'';
meta = with stdenv.lib; {

View File

@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
ladspa-sdk
];
outputs = [ "out" "dev" ];
# Mostly taken from:
# http://www.kdenlive.org/user-manual/downloading-and-installing-kdenlive/installing-source/installing-mlt-rendering-engine
configureFlags = [
@@ -31,6 +33,16 @@ stdenv.mkDerivation rec {
postInstall = ''
wrapProgram $out/bin/melt --prefix FREI0R_PATH : ${frei0r}/lib/frei0r-1
# Remove an unnecessary reference to movit.dev.
s=${movit.dev}/include
t=$(for ((i = 0; i < ''${#s}; i++)); do echo -n X; done)
sed -i $out/lib/mlt/libmltopengl.so -e "s|$s|$t|g"
# Remove an unnecessary reference to movit.dev.
s=${qtbase.dev}/include
t=$(for ((i = 0; i < ''${#s}; i++)); do echo -n X; done)
sed -i $out/lib/mlt/libmltqt.so -e "s|$s|$t|g"
'';
passthru = {

View File

@@ -1,17 +1,16 @@
{ stdenv, fetchgit, nix }:
{ stdenv, fetchFromGitHub, nix, boehmgc }:
let version = "2.0.7"; in
stdenv.mkDerivation {
name = "nix-plugins-1.0.0";
name = "nix-plugins-${version}";
src = fetchgit {
url = git://github.com/shlevy/nix-plugins.git;
rev = "refs/tags/1.0.0";
sha256 = "1w7l4mdwgf5w1g48mbng4lcg2nihixvp835mg2j7gghnya309fxl";
src = fetchFromGitHub {
owner = "shlevy";
repo = "nix-plugins";
rev = version;
sha256 = "1q4ydp2w114wbfm41m4qgrabha7ifa17xyz5dr137vvnj6njp4vs";
};
buildInputs = [ nix ];
buildFlags = [ "NIX_INCLUDE=${nix}/include" ];
buildFlags = [ "NIX_INCLUDE=${nix.dev}/include" "GC_INCLUDE=${boehmgc.dev}/include" ];
installFlags = [ "PREFIX=$(out)" ];
@@ -20,6 +19,5 @@ stdenv.mkDerivation {
homepage = https://github.com/shlevy/nix-plugins;
license = stdenv.lib.licenses.mit;
platforms = stdenv.lib.platforms.all;
broken = true;
};
}

View File

@@ -9,7 +9,7 @@ let
opensslCrossSystem = stdenv.cross.openssl.system or
(throw "openssl needs its platform name cross building");
common = args@{ version, sha256, patches ? [], configureFlags ? [], makeDepend ? false }: stdenv.mkDerivation rec {
common = args@{ version, sha256, patches ? [] }: stdenv.mkDerivation rec {
name = "openssl-${version}";
src = fetchurl {
@@ -47,10 +47,7 @@ let
] ++ stdenv.lib.optionals withCryptodev [
"-DHAVE_CRYPTODEV"
"-DUSE_CRYPTODEV_DIGESTS"
] ++ stdenv.lib.optional enableSSL2 "enable-ssl2"
++ args.configureFlags or [];
postConfigure = if makeDepend then "make depend" else null;
] ++ stdenv.lib.optional enableSSL2 "enable-ssl2";
makeFlags = [ "MANDIR=$(man)/share/man" ];
@@ -121,12 +118,4 @@ in {
sha256 = "0k47sdd9gs6yxfv6ldlgpld2lyzrkcv9kz4cf88ck04xjwc8dgjp";
};
openssl_1_0_2-steam = common {
version = "1.0.2k";
sha256 = "1h6qi35w6hv6rd73p4cdgdzg732pdrfgpp37cgwz1v9a3z37ffbb";
configureFlags = [ "no-engine" ];
makeDepend = true;
patches = [ ./openssl-fix-cpuid_setup.patch ];
};
}

View File

@@ -1,105 +0,0 @@
diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
index 1925428..d2e42d2 100644
--- a/crypto/cryptlib.c
+++ b/crypto/cryptlib.c
@@ -676,10 +676,15 @@ typedef unsigned __int64 IA32CAP;
# else
typedef unsigned long long IA32CAP;
# endif
+
+/* Compat function for STEAM */
+extern IA32CAP OPENSSL_ia32_cpuid_new(unsigned int*);
+IA32CAP OPENSSL_ia32_cpuid(void) { return OPENSSL_ia32_cpuid_new(OPENSSL_ia32cap_P); }
+
void OPENSSL_cpuid_setup(void)
{
static int trigger = 0;
- IA32CAP OPENSSL_ia32_cpuid(unsigned int *);
+ IA32CAP OPENSSL_ia32_cpuid_new(unsigned int *);
IA32CAP vec;
char *env;
@@ -697,9 +702,9 @@ void OPENSSL_cpuid_setup(void)
vec = strtoul(env + off, NULL, 0);
# endif
if (off)
- vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P) & ~vec;
+ vec = OPENSSL_ia32_cpuid_new(OPENSSL_ia32cap_P) & ~vec;
else if (env[0] == ':')
- vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P);
+ vec = OPENSSL_ia32_cpuid_new(OPENSSL_ia32cap_P);
OPENSSL_ia32cap_P[2] = 0;
if ((env = strchr(env, ':'))) {
@@ -713,7 +718,7 @@ void OPENSSL_cpuid_setup(void)
OPENSSL_ia32cap_P[2] = vecx;
}
} else
- vec = OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P);
+ vec = OPENSSL_ia32_cpuid_new(OPENSSL_ia32cap_P);
/*
* |(1<<10) sets a reserved bit to signal that variable
diff --git a/crypto/cryptlib.h b/crypto/cryptlib.h
index fba180a..b927c79 100644
--- a/crypto/cryptlib.h
+++ b/crypto/cryptlib.h
@@ -99,6 +99,9 @@ extern "C" {
# define HEX_SIZE(type) (sizeof(type)*2)
void OPENSSL_cpuid_setup(void);
+#pragma GCC visibility push(hidden)
+unsigned long long OPENSSL_ia32_cpuid(void);
+#pragma GCC visibility pop
extern unsigned int OPENSSL_ia32cap_P[];
void OPENSSL_showfatal(const char *fmta, ...);
void *OPENSSL_stderr(void);
diff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl
index d208d02..d4c0b24 100644
--- a/crypto/x86_64cpuid.pl
+++ b/crypto/x86_64cpuid.pl
@@ -52,10 +52,10 @@ OPENSSL_rdtsc:
ret
.size OPENSSL_rdtsc,.-OPENSSL_rdtsc
-.globl OPENSSL_ia32_cpuid
-.type OPENSSL_ia32_cpuid,\@function,1
+.globl OPENSSL_ia32_cpuid_new
+.type OPENSSL_ia32_cpuid_new,\@function,1
.align 16
-OPENSSL_ia32_cpuid:
+OPENSSL_ia32_cpuid_new:
mov %rbx,%r8 # save %rbx
xor %eax,%eax
@@ -181,7 +181,7 @@ OPENSSL_ia32_cpuid:
mov %r8,%rbx # restore %rbx
or %r9,%rax
ret
-.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
+.size OPENSSL_ia32_cpuid_new,.-OPENSSL_ia32_cpuid_new
.globl OPENSSL_cleanse
.type OPENSSL_cleanse,\@abi-omnipotent
diff --git a/crypto/x86cpuid.pl b/crypto/x86cpuid.pl
index e95f627..0781010 100644
--- a/crypto/x86cpuid.pl
+++ b/crypto/x86cpuid.pl
@@ -8,7 +8,7 @@ require "x86asm.pl";
for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
-&function_begin("OPENSSL_ia32_cpuid");
+&function_begin("OPENSSL_ia32_cpuid_new");
&xor ("edx","edx");
&pushf ();
&pop ("eax");
@@ -153,7 +153,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
&mov ("eax","esi");
&mov ("edx","ebp");
&set_label("nocpuid");
-&function_end("OPENSSL_ia32_cpuid");
+&function_end("OPENSSL_ia32_cpuid_new");
&external_label("OPENSSL_ia32cap_P");

View File

@@ -1,29 +1,39 @@
{ stdenv, requireFile, libelf, gcc, glibc, patchelf, unzip, rpmextract, libaio }:
{ stdenv, requireFile, libelf, gcc, glibc, patchelf, unzip, rpmextract, libaio
, odbcSupport ? false, unixODBC
}:
let requireSource = version: part: hash: (requireFile rec {
name = "oracle-instantclient12.1-${part}-${version}.x86_64.rpm";
message = ''
This Nix expression requires that ${name} already
be part of the store. Download the file
manually at
assert odbcSupport -> unixODBC != null;
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
let optional = stdenv.lib.optional;
optionalString = stdenv.lib.optionalString;
requireSource = version: part: hash: (requireFile rec {
name = "oracle-instantclient12.1-${part}-${version}.x86_64.rpm";
message = ''
This Nix expression requires that ${name} already
be part of the store. Download the file
manually at
and add it to the Nix store with the following command:
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
nix-prefetch-url file://${name} ${hash} --type sha256
'';
url = "http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html";
sha256 = hash;
}); in stdenv.mkDerivation rec {
and add it to the Nix store using either:
nix-store --add-fixed sha256 ${name}
or
nix-prefetch-url --type sha256 file:///path/to/${name}
'';
url = "http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html";
sha256 = hash;
});
in stdenv.mkDerivation rec {
version = "12.1.0.2.0-1";
name = "oracle-instantclient-${version}";
srcBase = (requireSource version "basic" "f0e51e247cc3f210b950fd939ab1f696de9ca678d1eb179ba49ac73acb9a20ed");
srcDevel = (requireSource version "devel" "13b638882f07d6cfc06c85dc6b9eb5cac37064d3d594194b6b09d33483a08296");
srcSqlplus = (requireSource version "sqlplus" "16d87w1lii0ag47c8srnr7v4wfm9q4hy6gka8m3v6gp9cc065vam");
srcOdbc = optionalString odbcSupport (requireSource version "odbc" "d3aa1a4957a2f15ced05921dab551ba823aa7925d8fcb58d5b3a7f624e4df063");
buildInputs = [ glibc patchelf rpmextract ];
buildInputs = [ glibc patchelf rpmextract ] ++
optional odbcSupport unixODBC;
buildCommand = ''
mkdir -p "${name}"
@@ -31,6 +41,9 @@ let requireSource = version: part: hash: (requireFile rec {
${rpmextract}/bin/rpmextract "${srcBase}"
${rpmextract}/bin/rpmextract "${srcDevel}"
${rpmextract}/bin/rpmextract "${srcSqlplus}"
${optionalString odbcSupport ''
${rpmextract}/bin/rpmextract "${srcOdbc}"
''}
mkdir -p "$out/"{bin,include,lib,"share/${name}/demo/"}
mv "usr/share/oracle/12.1/client64/demo/"* "$out/share/${name}/demo/"
@@ -46,6 +59,13 @@ let requireSource = version: part: hash: (requireFile rec {
$lib
done
for lib in $out/lib/libsqora*; do
test -f $lib || continue
chmod +x $lib
patchelf --force-rpath --set-rpath "$out/lib:${unixODBC}/lib" \
$lib
done
for exe in $out/bin/sqlplus; do
patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
--force-rpath --set-rpath "$out/lib:${libaio}/lib" \