Split parallel build patch up a bit to match how they've been sent upstream.
authorMike Frysinger <vapier@gentoo.org>
Fri, 3 Apr 2015 05:43:32 +0000 (05:43 +0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 3 Apr 2015 05:43:32 +0000 (05:43 +0000)
dev-libs/openssl/ChangeLog
dev-libs/openssl/files/openssl-1.0.2a-parallel-build.patch
dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch [new file with mode: 0644]
dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch [new file with mode: 0644]
dev-libs/openssl/openssl-1.0.2a.ebuild

index 218a7b1a403118c9b277b0d80af5950b12ccaae7..a4aace73a5f9c3c03c56d11e716eabe7eba85275 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for dev-libs/openssl
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.645 2015/04/03 05:41:21 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/ChangeLog,v 1.646 2015/04/03 05:43:32 vapier Exp $
+
+  02 Apr 2015; Mike Frysinger <vapier@gentoo.org> openssl-1.0.2a.ebuild,
+  files/openssl-1.0.2a-parallel-build.patch,
+  +files/openssl-1.0.2a-parallel-install-dirs.patch,
+  +files/openssl-1.0.2a-parallel-obj-headers.patch:
+  Split parallel build patch up a bit to match how they've been sent upstream.
 
   02 Apr 2015; Mike Frysinger <vapier@gentoo.org> openssl-1.0.2a.ebuild,
   files/openssl-1.0.2a-malloc-typo.patch, files/openssl-1.0.2a-x32-asm.patch:
index 280b8e0b574233f9c920373ae417066bcbff5253..f4226c3b6d38c196d6da4d832600e0ab67624a7c 100644 (file)
@@ -1,4 +1,5 @@
-http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest
+https://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest
+https://rt.openssl.org/Ticket/Display.html?id=3738&user=guest&pass=guest
 
 --- openssl-1.0.2a/crypto/Makefile
 +++ openssl-1.0.2a/crypto/Makefile
@@ -43,23 +44,6 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest
  
  lint:
        @target=lint; $(RECURSIVE_MAKE)
---- openssl-1.0.2a/crypto/objects/Makefile
-+++ openssl-1.0.2a/crypto/objects/Makefile
-@@ -44,11 +44,11 @@
- # objects.pl both reads and writes obj_mac.num
- obj_mac.h: objects.pl objects.txt obj_mac.num
-       $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
--      @sleep 1; touch obj_mac.h; sleep 1
- 
--obj_xref.h: objxref.pl obj_xref.txt obj_mac.num
-+# This doesn't really need obj_mac.h, but since that rule reads & writes
-+# obj_mac.num, we can't run in parallel with it.
-+obj_xref.h: objxref.pl obj_xref.txt obj_mac.num obj_mac.h
-       $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
--      @sleep 1; touch obj_xref.h; sleep 1
- 
- files:
-       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
 --- openssl-1.0.2a/engines/Makefile
 +++ openssl-1.0.2a/engines/Makefile
 @@ -72,7 +72,7 @@
@@ -96,55 +80,31 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest
  
  build_crypto:
 -      @dir=crypto; target=all; $(BUILD_ONE_CMD)
--build_ssl:
--      @dir=ssl; target=all; $(BUILD_ONE_CMD)
--build_engines:
--      @dir=engines; target=all; $(BUILD_ONE_CMD)
--build_apps:
--      @dir=apps; target=all; $(BUILD_ONE_CMD)
--build_tests:
--      @dir=test; target=all; $(BUILD_ONE_CMD)
--build_tools:
--      @dir=tools; target=all; $(BUILD_ONE_CMD)
 +      +@dir=crypto; target=all; $(BUILD_ONE_CMD)
+-build_ssl:
 +build_ssl: build_crypto
+-      @dir=ssl; target=all; $(BUILD_ONE_CMD)
 +      +@dir=ssl; target=all; $(BUILD_ONE_CMD)
+-build_engines:
 +build_engines: build_crypto
+-      @dir=engines; target=all; $(BUILD_ONE_CMD)
 +      +@dir=engines; target=all; $(BUILD_ONE_CMD)
+-build_apps:
 +build_apps: build_libs
+-      @dir=apps; target=all; $(BUILD_ONE_CMD)
 +      +@dir=apps; target=all; $(BUILD_ONE_CMD)
+-build_tests:
 +build_tests: build_libs
+-      @dir=test; target=all; $(BUILD_ONE_CMD)
 +      +@dir=test; target=all; $(BUILD_ONE_CMD)
+-build_tools:
 +build_tools: build_libs
+-      @dir=tools; target=all; $(BUILD_ONE_CMD)
 +      +@dir=tools; target=all; $(BUILD_ONE_CMD)
  
  all_testapps: build_libs build_testapps
  build_testapps:
-@@ -536,9 +536,9 @@
- dist_pem_h:
-       (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
- 
--install: all install_docs install_sw
-+install: install_docs install_sw
- 
--install_sw:
-+install_dirs:
-       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
-               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
-               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
-@@ -547,12 +547,19 @@
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
-               $(INSTALL_PREFIX)$(OPENSSLDIR)/private
-+      @$(PERL) $(TOP)/util/mkdir-p.pl \
-+              $(INSTALL_PREFIX)$(MANDIR)/man1 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man3 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man5 \
-+              $(INSTALL_PREFIX)$(MANDIR)/man7
-+
-+install_sw: install_dirs
-       @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
-       do \
+@@ -555,7 +555,7 @@
        (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
        chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
        done;
@@ -153,20 +113,6 @@ http://rt.openssl.org/Ticket/Display.html?id=2084&user=guest&pass=guest
        @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
        do \
                if [ -f "$$i" ]; then \
-@@ -636,12 +643,7 @@
-               done; \
-       done
- 
--install_docs:
--      @$(PERL) $(TOP)/util/mkdir-p.pl \
--              $(INSTALL_PREFIX)$(MANDIR)/man1 \
--              $(INSTALL_PREFIX)$(MANDIR)/man3 \
--              $(INSTALL_PREFIX)$(MANDIR)/man5 \
--              $(INSTALL_PREFIX)$(MANDIR)/man7
-+install_docs: install_dirs
-       @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
-       here="`pwd`"; \
-       filecase=; \
 --- openssl-1.0.2a/Makefile.shared
 +++ openssl-1.0.2a/Makefile.shared
 @@ -105,6 +105,7 @@
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch b/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch
new file mode 100644 (file)
index 0000000..0198818
--- /dev/null
@@ -0,0 +1,64 @@
+https://rt.openssl.org/Ticket/Display.html?id=3736&user=guest&pass=guest
+
+From aba899f2eca21e11e5e9797bf8258e7265dea9f5 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 8 Mar 2015 01:32:01 -0500
+Subject: [PATCH] fix parallel install with dir creation
+
+The mkdir-p.pl does not handle parallel creation of directories.
+This comes up when the install_sw and install_docs rules run and
+both call mkdir-p.pl on sibling directory trees.
+
+Instead, lets create a single install_dirs rule that makes all of
+the dirs we need, and have these two install steps depend on that.
+---
+ Makefile.org | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile.org b/Makefile.org
+index a6d9471..78e6143 100644
+--- a/Makefile.org
++++ b/Makefile.org
+@@ -536,9 +536,9 @@
+ dist_pem_h:
+       (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
+ 
+-install: all install_docs install_sw
++install: install_docs install_sw
+ 
+-install_sw:
++install_dirs:
+       @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
+               $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
+@@ -547,6 +547,13 @@
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
+               $(INSTALL_PREFIX)$(OPENSSLDIR)/private
++      @$(PERL) $(TOP)/util/mkdir-p.pl \
++              $(INSTALL_PREFIX)$(MANDIR)/man1 \
++              $(INSTALL_PREFIX)$(MANDIR)/man3 \
++              $(INSTALL_PREFIX)$(MANDIR)/man5 \
++              $(INSTALL_PREFIX)$(MANDIR)/man7
++
++install_sw: install_dirs
+       @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
+       do \
+       (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
+@@ -636,12 +643,7 @@
+               done; \
+       done
+ 
+-install_docs:
+-      @$(PERL) $(TOP)/util/mkdir-p.pl \
+-              $(INSTALL_PREFIX)$(MANDIR)/man1 \
+-              $(INSTALL_PREFIX)$(MANDIR)/man3 \
+-              $(INSTALL_PREFIX)$(MANDIR)/man5 \
+-              $(INSTALL_PREFIX)$(MANDIR)/man7
++install_docs: install_dirs
+       @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
+       here="`pwd`"; \
+       filecase=; \
+-- 
+2.3.4
+
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch b/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch
new file mode 100644 (file)
index 0000000..a7d6f4e
--- /dev/null
@@ -0,0 +1,37 @@
+https://rt.openssl.org/Ticket/Display.html?id=3737&user=guest&pass=guest
+
+From ce279d4361e07e9af9ceca8a6e326e661758ad53 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 8 Mar 2015 01:34:48 -0500
+Subject: [PATCH] fix parallel generation of obj headers
+
+The current code has dummy sleep/touch commands to try and work
+around the parallel issue, but that is obviously racy.  Instead
+lets force one of the files to depend on the other so we know
+they'll never run in parallel.
+---
+ crypto/objects/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/crypto/objects/Makefile b/crypto/objects/Makefile
+index ad2db1e..7d32504 100644
+--- a/crypto/objects/Makefile
++++ b/crypto/objects/Makefile
+@@ -44,11 +44,11 @@
+ # objects.pl both reads and writes obj_mac.num
+ obj_mac.h: objects.pl objects.txt obj_mac.num
+       $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
+-      @sleep 1; touch obj_mac.h; sleep 1
+ 
+-obj_xref.h: objxref.pl obj_xref.txt obj_mac.num
++# This doesn't really need obj_mac.h, but since that rule reads & writes
++# obj_mac.num, we can't run in parallel with it.
++obj_xref.h: objxref.pl obj_xref.txt obj_mac.num obj_mac.h
+       $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
+-      @sleep 1; touch obj_xref.h; sleep 1
+ 
+ files:
+       $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
+-- 
+2.3.4
+
index a02ef6ecb013aab774fb41558f372339253b4adf..6539d343081d2e1136aa23dd2b80a769b27135a5 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.2a.ebuild,v 1.7 2015/04/03 05:41:21 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-libs/openssl/openssl-1.0.2a.ebuild,v 1.8 2015/04/03 05:43:32 vapier Exp $
 
 EAPI="4"
 
@@ -60,6 +60,8 @@ src_prepare() {
                epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
                epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
                epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-build.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-obj-headers.patch
+               epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-install-dirs.patch
                epatch "${FILESDIR}"/${PN}-1.0.2-ipv6.patch
                epatch "${FILESDIR}"/${PN}-1.0.2-s_client-verify.patch #472584
                epatch "${FILESDIR}"/${P}-malloc-typo.patch #543828