Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
This commit is contained in:
136
pkgs/development/libraries/openssl/1.0.1-cygwin64.patch
Normal file
136
pkgs/development/libraries/openssl/1.0.1-cygwin64.patch
Normal file
@@ -0,0 +1,136 @@
|
||||
--- openssl-1.0.1e/config 2014-10-23 15:53:23.436600000 +0200
|
||||
+++ openssl-1.0.1e/config 2014-10-23 15:55:33.837000000 +0200
|
||||
@@ -832,6 +832,7 @@
|
||||
# these are all covered by the catchall below
|
||||
# *-dgux) OUT="dgux" ;;
|
||||
mips-sony-newsos4) OUT="newsos4-gcc" ;;
|
||||
+ x86_64-*-cygwin) OUT="Cygwin-x86_64" ;;
|
||||
*-*-cygwin_pre1.3) OUT="Cygwin-pre1.3" ;;
|
||||
*-*-cygwin) OUT="Cygwin" ;;
|
||||
t3e-cray-unicosmk) OUT="cray-t3e" ;;
|
||||
--- openssl-1.0.1e/Configure 2013-02-17 17:06:18.682058900 -0600
|
||||
+++ openssl-1.0.1e/Configure 2013-02-17 16:38:08.000000000 -0600
|
||||
@@ -550,6 +550,7 @@ my %table=(
|
||||
"Cygwin-pre1.3", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall::(unknown):CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${no_asm}:win32",
|
||||
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_asm}:coff:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||
"debug-Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations -Werror:::CYGWIN32:::${no_asm}:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||
+"Cygwin-x86_64", "gcc:-DTERMIOS -DL_ENDIAN -O3 -Wall:::CYGWIN32::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:mingw64:dlfcn:cygwin-shared:-D_WINDLL:-shared:.dll.a",
|
||||
|
||||
# NetWare from David Ward (dsward@novell.com)
|
||||
# requires either MetroWerks NLM development tools, or gcc / nlmconv
|
||||
@@ -1128,7 +1129,7 @@ foreach (sort @experimental)
|
||||
|
||||
my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
|
||||
|
||||
-$exe_ext=".exe" if ($target eq "Cygwin" || $target eq "DJGPP" || $target =~ /^mingw/);
|
||||
+$exe_ext=".exe" if ($target =~ /^Cygwin/ || $target eq "DJGPP" || $target =~ /^mingw/);
|
||||
$exe_ext=".nlm" if ($target =~ /netware/);
|
||||
$exe_ext=".pm" if ($target =~ /vos/);
|
||||
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
|
||||
--- openssl-1.0.1e/Makefile.org 2013-02-11 09:26:04.000000000 -0600
|
||||
+++ openssl-1.0.1e/Makefile.org 2013-02-17 16:38:08.000000000 -0600
|
||||
@@ -326,9 +326,9 @@ clean-shared:
|
||||
done; \
|
||||
fi; \
|
||||
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
|
||||
- if [ "$(PLATFORM)" = "Cygwin" ]; then \
|
||||
+ case "$(PLATFORM)" in Cygwin*) \
|
||||
( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
|
||||
- fi; \
|
||||
+ esac; \
|
||||
done
|
||||
|
||||
link-shared:
|
||||
@@ -571,11 +571,7 @@ install_sw:
|
||||
do \
|
||||
if [ -f "$$i" -o -f "$$i.a" ]; then \
|
||||
( echo installing $$i; \
|
||||
- if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
||||
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||
- else \
|
||||
+ case "$(PLATFORM)" in Cygwin*) \
|
||||
c=`echo $$i | sed 's/^lib\(.*\)\.dll\.a/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \
|
||||
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||
chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \
|
||||
@@ -583,7 +579,12 @@ install_sw:
|
||||
cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||
- fi ); \
|
||||
+ ;; \
|
||||
+ *) \
|
||||
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
+ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new; \
|
||||
+ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/$$i; \
|
||||
+ esac ); \
|
||||
if expr $(PLATFORM) : 'mingw' > /dev/null; then \
|
||||
( case $$i in \
|
||||
*crypto*) i=libeay32.dll;; \
|
||||
@@ -643,9 +644,9 @@ install_docs:
|
||||
@pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
|
||||
here="`pwd`"; \
|
||||
filecase=; \
|
||||
- if [ "$(PLATFORM)" = "DJGPP" -o "$(PLATFORM)" = "Cygwin" -o "$(PLATFORM)" = "mingw" ]; then \
|
||||
+ case "$(PLATFORM)" in DJGPP|Cygwin*|mingw*) \
|
||||
filecase=-i; \
|
||||
- fi; \
|
||||
+ esac; \
|
||||
set -e; for i in doc/apps/*.pod; do \
|
||||
fn=`basename $$i .pod`; \
|
||||
sec=`$(PERL) util/extract-section.pl 1 < $$i`; \
|
||||
--- openssl-1.0.1e/engines/ccgost/Makefile 2013-02-11 09:26:04.000000000 -0600
|
||||
+++ openssl-1.0.1e/engines/ccgost/Makefile 2013-02-17 17:05:47.759290200 -0600
|
||||
@@ -45,7 +45,11 @@ install:
|
||||
set -e; \
|
||||
echo installing $(LIBNAME); \
|
||||
pfx=lib; \
|
||||
- if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
||||
+ case "$(PLATFORM)" in Cygwin*) \
|
||||
+ sfx=".so"; \
|
||||
+ cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
|
||||
+ ;; \
|
||||
+ *) \
|
||||
case "$(CFLAGS)" in \
|
||||
*DSO_BEOS*) sfx=".so";; \
|
||||
*DSO_DLFCN*) sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;; \
|
||||
@@ -54,10 +58,7 @@ install:
|
||||
*) sfx=".bad";; \
|
||||
esac; \
|
||||
cp $${pfx}$(LIBNAME)$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
|
||||
- else \
|
||||
- sfx=".so"; \
|
||||
- cp cyg$(LIBNAME).dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
|
||||
- fi; \
|
||||
+ esac; \
|
||||
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new; \
|
||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$${pfx}$(LIBNAME)$$sfx; \
|
||||
fi
|
||||
--- openssl-1.0.1i/engines/Makefile 2014-10-23 16:08:19.360200000 +0200
|
||||
+++ openssl-1.0.1i/engines/Makefile 2014-10-23 16:10:54.205800000 +0200
|
||||
@@ -111,7 +111,11 @@
|
||||
for l in $(LIBNAMES); do \
|
||||
( echo installing $$l; \
|
||||
pfx=lib; \
|
||||
- if [ "$(PLATFORM)" != "Cygwin" ]; then \
|
||||
+ case "$(PLATFORM)" in Cygwin*) \
|
||||
+ sfx=".so"; \
|
||||
+ cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
|
||||
+ ;; \
|
||||
+ *) \
|
||||
case "$(CFLAGS)" in \
|
||||
*DSO_BEOS*) sfx=".so";; \
|
||||
*DSO_DLFCN*) sfx=`expr "$(SHLIB_EXT)" : '.*\(\.[a-z][a-z]*\)' \| ".so"`;; \
|
||||
@@ -120,10 +124,7 @@
|
||||
*) sfx=".bad";; \
|
||||
esac; \
|
||||
cp $$pfx$$l$$sfx $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
|
||||
- else \
|
||||
- sfx=".so"; \
|
||||
- cp cyg$$l.dll $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
|
||||
- fi; \
|
||||
+ esac; \
|
||||
chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new; \
|
||||
mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
|
||||
done; \
|
||||
84
pkgs/development/libraries/openssl/1.0.2.x.nix
Normal file
84
pkgs/development/libraries/openssl/1.0.2.x.nix
Normal file
@@ -0,0 +1,84 @@
|
||||
{ stdenv, fetchurl, perl
|
||||
, withCryptodev ? false, cryptodevHeaders }:
|
||||
|
||||
with stdenv.lib;
|
||||
let
|
||||
opensslCrossSystem = attrByPath [ "openssl" "system" ]
|
||||
(throw "openssl needs its platform name cross building" null)
|
||||
stdenv.cross;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "openssl-1.0.2d";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"http://www.openssl.org/source/${name}.tar.gz"
|
||||
"http://openssl.linux-mirror.org/source/${name}.tar.gz"
|
||||
];
|
||||
sha1 = "d01d17b44663e8ffa6a33a5a30053779d9593c3d";
|
||||
};
|
||||
|
||||
patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch;
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
|
||||
|
||||
# On x86_64-darwin, "./config" misdetects the system as
|
||||
# "darwin-i386-cc". So specify the system type explicitly.
|
||||
configureScript =
|
||||
if stdenv.system == "x86_64-darwin" then "./Configure darwin64-x86_64-cc"
|
||||
else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc"
|
||||
else "./config";
|
||||
|
||||
configureFlags = [
|
||||
"shared"
|
||||
"--libdir=lib"
|
||||
"--openssldir=etc/ssl"
|
||||
] ++ stdenv.lib.optionals withCryptodev [
|
||||
"-DHAVE_CRYPTODEV"
|
||||
"-DUSE_CRYPTODEV_DIGESTS"
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"MANDIR=$(out)/share/man"
|
||||
];
|
||||
|
||||
# Parallel building is broken in OpenSSL.
|
||||
enableParallelBuilding = false;
|
||||
|
||||
postInstall = ''
|
||||
# If we're building dynamic libraries, then don't install static
|
||||
# libraries.
|
||||
if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
|
||||
rm "$out/lib/"*.a
|
||||
fi
|
||||
|
||||
# remove dependency on Perl at runtime
|
||||
rm -r $out/etc/ssl/misc $out/bin/c_rehash
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Check to make sure we don't depend on perl
|
||||
if grep -r '${perl}' $out; then
|
||||
echo "Found an erroneous dependency on perl ^^^" >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
crossAttrs = {
|
||||
preConfigure=''
|
||||
# It's configure does not like --build or --host
|
||||
export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}"
|
||||
'';
|
||||
|
||||
configureScript = "./Configure";
|
||||
};
|
||||
|
||||
meta = {
|
||||
homepage = http://www.openssl.org/;
|
||||
description = "A cryptographic library that implements the SSL and TLS protocols";
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
maintainers = [ stdenv.lib.maintainers.simons ];
|
||||
priority = 10; # resolves collision with ‘man-pages’
|
||||
};
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
This patch, to be applied after `cert-file.patch', fixes compilation
|
||||
on GNU/Hurd where `PATH_MAX' is not defined.
|
||||
|
||||
diff -ubB --show-c-function openssl-1.0.0e/crypto/x509/x509_def.c.orig openssl-1.0.0e/crypto/x509/x509_def.c
|
||||
--- openssl-1.0.0e/crypto/x509/x509_def.c.orig 2012-01-06 00:08:48.000000000 +0100
|
||||
+++ openssl-1.0.0e/crypto/x509/x509_def.c 2012-01-06 00:11:29.000000000 +0100
|
||||
@@ -58,6 +58,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
+#include <string.h>
|
||||
#include <limits.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
@@ -76,14 +77,16 @@ const char *X509_get_default_cert_dir(vo
|
||||
|
||||
const char *X509_get_default_cert_file(void)
|
||||
{
|
||||
- static char buf[PATH_MAX] = X509_CERT_FILE;
|
||||
+ static char *buf;
|
||||
static int init = 0;
|
||||
if (!init) {
|
||||
init = 1;
|
||||
char * s = getenv("OPENSSL_X509_CERT_FILE");
|
||||
if (s && getuid() == geteuid()) {
|
||||
- strncpy(buf, s, sizeof(buf));
|
||||
- buf[sizeof(buf) - 1] = 0;
|
||||
+ buf = strdup(s);
|
||||
+ }
|
||||
+ if (!s) {
|
||||
+ buf = strdup(X509_CERT_FILE);
|
||||
}
|
||||
}
|
||||
return buf;
|
||||
@@ -1,39 +0,0 @@
|
||||
diff -ru openssl-1.0.1m-orig/crypto/x509/x509_def.c openssl-1.0.1m/crypto/x509/x509_def.c
|
||||
--- openssl-1.0.1m-orig/crypto/x509/x509_def.c 2015-03-19 14:19:00.000000000 +0100
|
||||
+++ openssl-1.0.1m/crypto/x509/x509_def.c 2015-03-19 15:50:44.676683616 +0100
|
||||
@@ -57,6 +57,10 @@
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <limits.h>
|
||||
+#include <unistd.h>
|
||||
+#include <sys/types.h>
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/x509.h>
|
||||
@@ -78,7 +82,23 @@
|
||||
|
||||
const char *X509_get_default_cert_file(void)
|
||||
{
|
||||
- return (X509_CERT_FILE);
|
||||
+ static char buf[PATH_MAX] = X509_CERT_FILE;
|
||||
+ static int init = 0;
|
||||
+ if (!init) {
|
||||
+ init = 1;
|
||||
+ char * s = getenv("OPENSSL_X509_CERT_FILE");
|
||||
+ if (s) {
|
||||
+#ifndef OPENSSL_SYS_WINDOWS
|
||||
+ if (getuid() == geteuid()) {
|
||||
+#endif
|
||||
+ strncpy(buf, s, sizeof(buf));
|
||||
+ buf[sizeof(buf) - 1] = 0;
|
||||
+#ifndef OPENSSL_SYS_WINDOWS
|
||||
+ }
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
+ return buf;
|
||||
}
|
||||
|
||||
const char *X509_get_default_cert_dir_env(void)
|
||||
@@ -1,62 +1,31 @@
|
||||
{ stdenv, fetchurl, perl
|
||||
, withCryptodev ? false, cryptodevHeaders }:
|
||||
|
||||
with stdenv.lib;
|
||||
let
|
||||
name = "openssl-1.0.1m";
|
||||
|
||||
opensslCrossSystem = stdenv.lib.attrByPath [ "openssl" "system" ]
|
||||
opensslCrossSystem = attrByPath [ "openssl" "system" ]
|
||||
(throw "openssl needs its platform name cross building" null)
|
||||
stdenv.cross;
|
||||
|
||||
patchesCross = isCross: let
|
||||
isDarwin = stdenv.isDarwin || (isCross && stdenv.cross.libc == "libSystem");
|
||||
in
|
||||
[ # Allow the location of the X509 certificate file (the CA
|
||||
# bundle) to be set through the environment variable
|
||||
# ‘OPENSSL_X509_CERT_FILE’. This is necessary because the
|
||||
# default location ($out/ssl/cert.pem) doesn't exist, and
|
||||
# hardcoding something like /etc/ssl/cert.pem is impure and
|
||||
# cannot be overriden per-process. For security, the
|
||||
# environment variable is ignored for setuid binaries.
|
||||
# FIXME: drop this patch; it really isn't necessary, because
|
||||
# OpenSSL already supports a ‘SSL_CERT_FILE’ variable.
|
||||
./cert-file.patch
|
||||
]
|
||||
|
||||
++ stdenv.lib.optionals (isCross && opensslCrossSystem == "hurd-x86")
|
||||
[ ./cert-file-path-max.patch # merge with `cert-file.patch' eventually
|
||||
./gnu.patch # submitted upstream
|
||||
]
|
||||
|
||||
++ stdenv.lib.optionals (stdenv.system == "x86_64-kfreebsd-gnu")
|
||||
[ ./gnu.patch
|
||||
./kfreebsd-gnu.patch
|
||||
]
|
||||
|
||||
++ stdenv.lib.optional isDarwin ./darwin-arch.patch;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
inherit name;
|
||||
stdenv.mkDerivation rec {
|
||||
name = "openssl-1.0.1p";
|
||||
|
||||
src = fetchurl {
|
||||
urls = [
|
||||
"http://www.openssl.org/source/${name}.tar.gz"
|
||||
"http://openssl.linux-mirror.org/source/${name}.tar.gz"
|
||||
];
|
||||
sha256 = "0x7gvyybmqm4lv62mlhlm80f1rn7il2qh8224rahqv0i15xhnpq9";
|
||||
sha1 = "9d1977cc89242cd11471269ece2ed4650947c046";
|
||||
};
|
||||
|
||||
patches = patchesCross false;
|
||||
patches = optional stdenv.isCygwin ./1.0.1-cygwin64.patch
|
||||
++ optional (stdenv.isDarwin || (stdenv ? cross && stdenv.cross.libc == "libSystem")) ./darwin-arch.patch;
|
||||
|
||||
outputs = [ "dev" "out" "man" "bin" ];
|
||||
setOutputFlags = false;
|
||||
|
||||
buildInputs = [ ]
|
||||
++ stdenv.lib.optional withCryptodev cryptodevHeaders;
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
buildInputs = stdenv.lib.optional withCryptodev cryptodevHeaders;
|
||||
|
||||
# On x86_64-darwin, "./config" misdetects the system as
|
||||
# "darwin-i386-cc". So specify the system type explicitly.
|
||||
@@ -65,26 +34,25 @@ stdenv.mkDerivation {
|
||||
else if stdenv.system == "x86_64-solaris" then "./Configure solaris64-x86_64-gcc"
|
||||
else "./config";
|
||||
|
||||
configureFlags = "shared --libdir=lib --openssldir=etc/ssl" +
|
||||
stdenv.lib.optionalString withCryptodev " -DHAVE_CRYPTODEV -DUSE_CRYPTODEV_DIGESTS" +
|
||||
stdenv.lib.optionalString (stdenv.system == "x86_64-cygwin") " no-asm";
|
||||
configureFlags = [
|
||||
"shared"
|
||||
"--libdir=lib"
|
||||
"--openssldir=etc/ssl"
|
||||
] ++ stdenv.lib.optionals withCryptodev [
|
||||
"-DHAVE_CRYPTODEV"
|
||||
"-DUSE_CRYPTODEV_DIGESTS"
|
||||
];
|
||||
|
||||
preBuild = stdenv.lib.optionalString (stdenv.system == "x86_64-cygwin") ''
|
||||
sed -i -e "s|-march=i486|-march=x86-64|g" Makefile
|
||||
'';
|
||||
|
||||
makeFlags = "MANDIR=$(man)/share/man";
|
||||
|
||||
# Parallel building is broken in OpenSSL.
|
||||
enableParallelBuilding = false;
|
||||
|
||||
postInstall =
|
||||
''
|
||||
# If we're building dynamic libraries, then don't install static
|
||||
# libraries.
|
||||
if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib)" ]; then
|
||||
rm $out/lib/*.a
|
||||
fi
|
||||
postInstall = ''
|
||||
# If we're building dynamic libraries, then don't install static
|
||||
# libraries.
|
||||
if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
|
||||
rm "$out/lib/"*.a
|
||||
fi
|
||||
|
||||
mkdir -p $bin
|
||||
mv $out/bin $bin/
|
||||
@@ -97,19 +65,26 @@ stdenv.mkDerivation {
|
||||
# OpenSSL installs readonly files, which otherwise we can't strip.
|
||||
# FIXME: Can remove this after the next stdenv merge.
|
||||
chmod -R +w $out
|
||||
''; # */
|
||||
|
||||
# remove dependency on Perl at runtime
|
||||
rm -r $out/etc/ssl/misc $out/bin/c_rehash
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Check to make sure we don't depend on perl
|
||||
if grep -r '${perl}' $out; then
|
||||
echo "Found an erroneous dependency on perl ^^^" >&2
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
crossAttrs = {
|
||||
patches = patchesCross true;
|
||||
|
||||
preConfigure=''
|
||||
# It's configure does not like --build or --host
|
||||
export configureFlags="--libdir=lib --cross-compile-prefix=${stdenv.cross.config}- shared ${opensslCrossSystem}"
|
||||
export configureFlags="${concatStringsSep " " (configureFlags ++ [ opensslCrossSystem ])}"
|
||||
'';
|
||||
|
||||
configureScript = "./Configure";
|
||||
} // stdenv.lib.optionalAttrs (opensslCrossSystem == "darwin64-x86_64-cc") {
|
||||
CC = "gcc";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
Patch to fix compilation on GNU/Hurd and GNU/kFreeBSD.
|
||||
|
||||
--- openssl-1.0.0e/Configure 2012-01-06 00:39:49.000000000 +0100
|
||||
+++ openssl-1.0.0e/Configure 2012-01-06 00:39:51.000000000 +0100
|
||||
@@ -563,7 +563,7 @@ my %table=(
|
||||
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
|
||||
|
||||
##### GNU Hurd
|
||||
-"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
||||
+"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
##### OS/2 EMX
|
||||
"OS2-EMX", "gcc::::::::",
|
||||
|
||||
--- openssl-1.0.0e/crypto/dso/dso_dlfcn.c 2012-01-06 00:05:47.000000000 +0100
|
||||
+++ openssl-1.0.0e/crypto/dso/dso_dlfcn.c 2012-01-06 00:21:05.000000000 +0100
|
||||
@@ -60,7 +60,7 @@
|
||||
that handle _GNU_SOURCE and other similar macros. Defining it later
|
||||
is simply too late, because those headers are protected from re-
|
||||
inclusion. */
|
||||
-#ifdef __linux
|
||||
+#if defined __linux || defined __GNU__ || defined __GLIBC__
|
||||
# ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE /* make sure dladdr is declared */
|
||||
# endif
|
||||
@@ -1,12 +0,0 @@
|
||||
diff -Naur openssl-1.0.0d-orig/Configure openssl-1.0.0d/Configure
|
||||
--- openssl-1.0.0d-orig/Configure 2010-11-30 17:19:26.000000000 -0500
|
||||
+++ openssl-1.0.0d/Configure 2011-11-16 13:52:57.614416683 -0500
|
||||
@@ -563,7 +563,7 @@
|
||||
"newsos4-gcc","gcc:-O -DB_ENDIAN::(unknown):NEWS4:-lmld -liberty:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_RISC1 DES_UNROLL BF_PTR::::",
|
||||
|
||||
##### GNU Hurd
|
||||
-"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
||||
+"hurd-x86","gcc:-DL_ENDIAN -DTERMIOS -O3 -Wa,--noexecstack -g -mtune=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
|
||||
##### OS/2 EMX
|
||||
"OS2-EMX", "gcc::::::::",
|
||||
@@ -1,36 +0,0 @@
|
||||
Allow compilation on GNU/kFreeBSD. Ideally, there'd be a single way to process
|
||||
all glibc-based system, but the build system is soooo broken.
|
||||
|
||||
--- openssl-1.0.0i/config
|
||||
+++ openssl-1.0.0i/config
|
||||
@@ -170,6 +170,10 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${
|
||||
echo "${MACHINE}-whatever-linux1"; exit 0
|
||||
;;
|
||||
|
||||
+ GNU/kFreeBSD*)
|
||||
+ echo "kfreebsd-gnu"; exit 0;
|
||||
+ ;;
|
||||
+
|
||||
GNU*)
|
||||
echo "hurd-x86"; exit 0;
|
||||
;;
|
||||
@@ -810,6 +814,7 @@ case "$GUESSOS" in
|
||||
beos-*) OUT="$GUESSOS" ;;
|
||||
x86pc-*-qnx6) OUT="QNX6-i386" ;;
|
||||
*-*-qnx6) OUT="QNX6" ;;
|
||||
+ kfreebsd-gnu) OUT="kfreebsd-gnu";;
|
||||
*) OUT=`echo $GUESSOS | awk -F- '{print $3}'`;;
|
||||
esac
|
||||
|
||||
|
||||
--- openssl-1.0.0i/Configure
|
||||
+++ openssl-1.0.0i/Configure
|
||||
@@ -565,6 +565,9 @@ my %table=(
|
||||
##### GNU Hurd
|
||||
"hurd-x86", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC",
|
||||
|
||||
+##### GNU/kFreeBSD on x86_64, copied from "linux-x86_64"
|
||||
+"kfreebsd-gnu", "gcc:-m64 -DL_ENDIAN -DTERMIOS -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
+
|
||||
##### OS/2 EMX
|
||||
"OS2-EMX", "gcc::::::::",
|
||||
Reference in New Issue
Block a user