aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/software')
-rw-r--r--reproduce/software/config/checksums.conf2
-rw-r--r--reproduce/software/config/versions.conf7
-rw-r--r--reproduce/software/make/basic.mk1
-rw-r--r--reproduce/software/make/high-level.mk36
-rw-r--r--reproduce/software/patches/valgrind-3.15.0-mpi-fix1.patch37
-rw-r--r--reproduce/software/patches/valgrind-3.15.0-mpi-fix2.patch23
6 files changed, 105 insertions, 1 deletions
diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf
index f19d831..643be9c 100644
--- a/reproduce/software/config/checksums.conf
+++ b/reproduce/software/config/checksums.conf
@@ -53,6 +53,7 @@ sed-checksum = e0be5db4cdf8226b34aaa9071bc5ae0eafde1c52227cee3512eea7fe2520d6c5c
tar-checksum = 4be18afeac54aec4af074cf2358cfade5aaebe2041c5075c5764a81114df4d002e90b28f4444bd1430783e7d6bed82abd0440ef5cb244695f2e56a9a41b42fbc
texinfo-checksum = 96e0764d0808152d3662e65c3287fb0f86ed918912cdc036380637dbadaacd6a489b516543c07b08105686575e8d495a945f73e23ff0909d5a0f12026e4131e0
unzip-checksum = 0694e403ebc57b37218e00ec1a406cae5cc9c5b52b6798e0d4590840b6cdbf9ddc0d9471f67af783e960f8fa2e620394d51384257dca23d06bcd90224a80ce5d
+valgrind-checksum = 5695d1355226fb63b0c80809ed43bb077b6eed4d427792d9d7ed944c38b557a84fe3c783517b921e32f161228e10e4625bea0550faa4685872bb4454450cfa7f
wget-checksum = 95fb064f0d79b0a3178a83322f58a85a3a036fb300ed759eb67a538f0bbacdd552f6cbeb60d63b4f0113e8467d923a5ce7ac5570b7a4ce1733b3dfd559bb33b2
which-checksum = d2f04a5c5291f2d7d1226982da7cf999d36cfe24d3f7bda145508efcfb359511251d3c68b860c0ddcedd66b15a0587b648a35ab6d1f173707565305c506dfc61
xz-checksum = e5bf6eb88365d2dbdc774db49261fb9fae0544ed297891fc20f1ed223f4072cb0357cbd98146ac35b6d29410a12b6739bbd111cd57d4a225bef255ed46988578
@@ -110,6 +111,7 @@ netpbm-checksum = 064720f8a9d0a502488e1af4daecdbf3936910996507ca6f311073a0ad8423
openblas-checksum = 91b3074eb922453bf843158b4281cde65db9e8bbdd7590e75e9e6cdcb486157f7973f2936f327bb3eb4f1702ce0ba51ae6729d8d4baf2d986c50771e8f696df0
openmpi-checksum = 760716974cb6b25ad820184622e1ee7926bc6fda87db6b574f76792bc1ca99522e52195866c14b7cb2df5a4981efdaf9f71d2c5533cc0e8e45c2c4b3b74cbacc
openssh-checksum = e280fa2d56f550efd37c5d2477670326261aa8b94d991f9eb17aad90e0c6c9c939efa90fe87d33260d0f709485cb05c379f0fd1bd44fc0d5190298b6398c9982
+patch-checksum = 75d4e1544484da12185418cd4a1571994398140a91ac606fa08dd067004187dad77d1413f0eb3319b3fe4df076714615c98b29df06af052bb65960fa8b0c86bf
pixman-checksum = 1b0205dbe9d9185c68813ce577a889f3c83e83fbd9955c3a72d411c3b476e6be93fc246b5b6ef4ee17e2bb8eb6fb5559e01dff7feb6a6c4c6314f980e960d690
python-checksum = c25a72ad792f7c1b4c2f79faebbe9608d04b04b2fe58ab804cb4732cdaa75ea93d175f5e52b38e91cb6ae0559ea6b645d802c8b6a869584e8bb9b5018367ce3d
R-checksum = 17513e9f4dd27c61c11f7aa45227aeeeefb375bf5d4e193b471724f379a1b2da33e127cbe91aa175cbbbb048b892047e2f610280585c8159242a6c94790b07f9
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf
index 7df4539..e9aad2e 100644
--- a/reproduce/software/config/versions.conf
+++ b/reproduce/software/config/versions.conf
@@ -104,6 +104,7 @@ missfits-version = 2.8.0
openblas-version = 0.3.5
openmpi-version = 4.0.1
openssh-version = 8.0p1
+patch-version = 2.7.6
pixman-version = 0.38.0
python-version = 3.7.4
R-version = 3.6.2
@@ -216,4 +217,8 @@ minizip-version = $(zlib-version)
# From version 1.2 OpenSSL may not need a manual addition, as described in
# its comments and `https://savannah.nongnu.org/bugs/?58263'. If it doesn't
# cause problems, put it back in the list of "Basic/low-level" tools.
-openssl-version = 1.1.1a \ No newline at end of file
+openssl-version = 1.1.1a
+
+# Version 3.15.0 needs two patches, please check if they are necessary on
+# any future release.
+valgrind-version = 3.15.0
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 9119930..8b216fe 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -311,6 +311,7 @@ $(ibidir)/low-level-links: | $(ibdir) $(ildir)
$(call makelink,clang++)
# Mac OS specific
+ $(call makelink,mig)
$(call makelink,sysctl)
$(call makelink,sw_vers)
$(call makelink,dsymutil)
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 7e9c723..3ad4468 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -42,6 +42,7 @@ ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
iidir = $(BDIR)/software/installed/include
dtexdir = $(shell pwd)/reproduce/software/bibtex
+patchdir= $(shell pwd)/reproduce/software/patches
itidir = $(BDIR)/software/installed/version-info/tex
ictdir = $(BDIR)/software/installed/version-info/cite
ipydir = $(BDIR)/software/installed/version-info/python
@@ -188,6 +189,7 @@ tarballs = $(foreach t, apachelog4cxx-$(apachelog4cxx-version).tar.lz \
openblas-$(openblas-version).tar.gz \
openmpi-$(openmpi-version).tar.gz \
openssh-$(openssh-version).tar.gz \
+ patch-$(patch-version).tar.gz \
pixman-$(pixman-version).tar.gz \
R-$(R-version).tar.gz \
scamp-$(scamp-version).tar.lz \
@@ -198,6 +200,7 @@ tarballs = $(foreach t, apachelog4cxx-$(apachelog4cxx-version).tar.lz \
rpcsvc-proto-$(rpcsvc-proto-version).tar.xz \
tides-$(tides-version).tar.gz \
tiff-$(libtiff-version).tar.gz \
+ valgrind-$(valgrind-version).tar.bz2 \
wcslib-$(wcslib-version).tar.bz2 \
xlsxio-$(xlsxio-version).tar.gz \
yaml-$(yaml-version).tar.gz \
@@ -294,6 +297,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
majorver=$$(echo $(openmpi-version) | sed -e 's/\./ /g' | awk '{printf("%d.%d", $$1, $$2)}')
w=https://download.open-mpi.org/release/open-mpi/v$$majorver/$*
elif [ $$n = openssh ]; then c=$(openssh-checksum); w=https://artfiles.org/openbsd/OpenSSH/portable
+ elif [ $$n = patch ]; then c=$(patch-checksum); w=http://ftp.gnu.org/gnu/patch
elif [ $$n = pixman ]; then c=$(pixman-checksum); w=https://www.cairographics.org/releases
elif [ $$n = R ]; then c=$(R-checksum);
majver=$$(echo $(R-version) | sed -e's/\./ /g' | awk '{print $$1}')
@@ -309,6 +313,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = swig ]; then c=$(swig-checksum); w=https://sourceforge.net/projects/swig/files/swig/swig-$(swig-version)
elif [ $$n = tides ]; then c=$(tides-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = tiff ]; then c=$(libtiff-checksum); w=https://download.osgeo.org/libtiff
+ elif [ $$n = valgrind ]; then c=$(valgrind-checksum); w=https://sourceware.org/pub/valgrind
elif [ $$n = wcslib ]; then c=$(wcslib-checksum); w=ftp://ftp.atnf.csiro.au/pub/software/wcslib
elif [ $$n = xlsxio ]; then
mergenames=0
@@ -737,6 +742,33 @@ $(ibidir)/tides: $(tdir)/tides-$(tides-version).tar.gz
&& cp $(dtexdir)/tides.tex $(ictdir)/ \
&& echo "TIDES $(tides-version) \citep{tides}" > $@
+$(ibidir)/valgrind: $(ibidir)/patch \
+ $(ibidir)/autoconf \
+ $(ibidir)/automake \
+ $(tdir)/valgrind-$(valgrind-version).tar.bz2
+ # For valgrind-3.15.0, see
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946329 for a
+ # report on an MPI-related compile bug and the two patches
+ # below. These two patches and `automake` should allow valgrind to
+ # compile with gcc-9.2.0.
+ cd $(ddir) \
+ && tar -x -f $(word 1,$(filter $(tdir)/%,$^)) \
+ && valgrinddir=valgrind-$(valgrind-version) \
+ && cd $${valgrinddir} \
+ && printf "valgrindir=$${valgrinddir} ; pwd = %s .\n" $$($(ibdir)/pwd) \
+ && if [ "x$(valgrind-version)" = "x3.15.0" ]; then \
+ patch --verbose -p1 < $(patchdir)/valgrind-3.15.0-mpi-fix1.patch; \
+ patch --verbose -p1 < $(patchdir)/valgrind-3.15.0-mpi-fix2.patch; \
+ fi \
+ && autoreconf \
+ && ./configure --prefix=$(idir) \
+ && make -j$(numthreads) \
+ && if ! make check -j$(numthreads); then \
+ echo; echo "Valgrind's 'make check' failed!"; echo; \
+ fi \
+ && make install \
+ && echo "Valgrind $(valgrind-version)" > $@
+
$(ibidir)/yaml: $(tdir)/yaml-$(yaml-version).tar.gz
$(call gbuild, yaml-$(yaml-version), static) \
&& echo "LibYAML $(yaml-version)" > $@
@@ -1099,6 +1131,10 @@ $(ibidir)/netpbm: $(ibidir)/unzip \
&& rm -rf $$unpackdir \
&& echo "Netpbm $(netpbm-version)" > $@
+$(ibidir)/patch: $(tdir)/patch-$(patch-version).tar.gz
+ $(call gbuild, patch-$(patch-version), static, ,V=1) \
+ && echo "GNU Patch $(patch-version)" > $@
+
# R programming language
$(ibidir)/R: $(ibidir)/libpng \
$(ibidir)/libjpeg \
diff --git a/reproduce/software/patches/valgrind-3.15.0-mpi-fix1.patch b/reproduce/software/patches/valgrind-3.15.0-mpi-fix1.patch
new file mode 100644
index 0000000..94dcab5
--- /dev/null
+++ b/reproduce/software/patches/valgrind-3.15.0-mpi-fix1.patch
@@ -0,0 +1,37 @@
+---
+ mpi/libmpiwrap.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+ Patch by Samuel Thibault:
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946329;msg=10
+ and hacked further by Boud Roukema 2020-05-10.
+--- a/mpi/libmpiwrap.c
++++ b/mpi/libmpiwrap.c
+@@ -278,8 +278,12 @@ static void showTy ( FILE* f, MPI_Dataty
+ else if (ty == MPI_LONG_INT) fprintf(f,"LONG_INT");
+ else if (ty == MPI_SHORT_INT) fprintf(f,"SHORT_INT");
+ else if (ty == MPI_2INT) fprintf(f,"2INT");
++# if defined(MPI_UB_ENABLED_IN_MPI1)
+ else if (ty == MPI_UB) fprintf(f,"UB");
++# endif
++# if defined(MPI_LB_ENABLED_IN_MPI1)
+ else if (ty == MPI_LB) fprintf(f,"LB");
++# endif
+ # if defined(MPI_WCHAR)
+ else if (ty == MPI_WCHAR) fprintf(f,"WCHAR");
+ # endif
+@@ -733,8 +737,14 @@ void walk_type ( void(*f)(void*,long), c
+ f(base + offsetof(Ty,loc), sizeof(int));
+ return;
+ }
+- if (ty == MPI_LB || ty == MPI_UB)
++#if defined(MPI_LB_ENABLED_IN_MPI1)
++ if (ty == MPI_LB)
++ return; /* have zero size, so nothing needs to be done */
++#endif
++#if defined(MPI_UB_ENABLED_IN_MPI1)
++ if (ty == MPI_UB)
+ return; /* have zero size, so nothing needs to be done */
++#endif
+ goto unhandled;
+ /*NOTREACHED*/
+ }
diff --git a/reproduce/software/patches/valgrind-3.15.0-mpi-fix2.patch b/reproduce/software/patches/valgrind-3.15.0-mpi-fix2.patch
new file mode 100644
index 0000000..12b50a2
--- /dev/null
+++ b/reproduce/software/patches/valgrind-3.15.0-mpi-fix2.patch
@@ -0,0 +1,23 @@
+Index: valgrind-3.15.0/mpi/Makefile.am
+===================================================================
+ Patch by Samuel Thibault:
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=946329;msg=22
+--- valgrind-3.15.0.orig/mpi/Makefile.am
++++ valgrind-3.15.0/mpi/Makefile.am
+@@ -42,14 +42,14 @@ libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@
+ libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_srcdir)/include
+ libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_CFLAGS = \
+ $(CFLAGS_MPI) $(MPI_FLAG_M3264_PRI) -Wno-deprecated-declarations
+-libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDFLAGS = $(LDFLAGS_MPI)
++libmpiwrap_@VGCONF_ARCH_PRI@_@VGCONF_OS@_so_LDADD = $(LDFLAGS_MPI)
+ endif
+ if BUILD_MPIWRAP_SEC
+ libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_SOURCES = libmpiwrap.c
+ libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CPPFLAGS = -I$(top_srcdir)/include
+ libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_CFLAGS = \
+ $(CFLAGS_MPI) $(MPI_FLAG_M3264_SEC) -Wno-deprecated-declarations
+-libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDFLAGS = $(LDFLAGS_MPI)
++libmpiwrap_@VGCONF_ARCH_SEC@_@VGCONF_OS@_so_LDADD = $(LDFLAGS_MPI)
+ endif
+
+ #----------------------------------------------------------------------------