aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/software/make')
-rw-r--r--reproduce/software/make/basic.mk2
-rw-r--r--reproduce/software/make/high-level.mk46
-rw-r--r--reproduce/software/make/python.mk18
-rw-r--r--reproduce/software/make/xorg.mk2
4 files changed, 44 insertions, 24 deletions
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 68c40b3..628a0e2 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -774,7 +774,7 @@ $(ibidir)/openssl-$(openssl-version): $(ibidir)/podlators-$(podlators-version) \
# First download the certificates and copy them into the
# installation directory.
tarball=cert.pem-$(certpem-version)
- $(call import-source, $(cert-url), $(cert-checksum))
+ $(call import-source, $(certpem-url), $(certpem-checksum))
cp $(tdir)/cert.pem-$(certpem-version) $(idir)/etc/ssl/cert.pem
# Now download the OpenSSL tarball.
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 2274c45..fdab193 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -118,11 +118,16 @@ else
endif
+# Disable the TeXLive target if `--offline`
+ifneq ($(strip $(offline)),1)
+ target-texlive := $(itidir)/texlive
+endif
+
# Ultimate Makefile target.
all: $(foreach p, $(targets-proglib), $(ibidir)/$(p)) \
$(foreach p, $(targets-python), $(ipydir)/$(p)) \
$(foreach p, $(targets-r-cran), $(ircrandir)/$(p)) \
- $(itidir)/texlive
+ $(target-texlive)
# Define the shell environment
# ----------------------------
@@ -433,11 +438,14 @@ $(ibidir)/cfitsio-$(cfitsio-version):
# Continue the standard build on the customized tarball. Note that
# with the installation of CFITSIO, 'fpack' and 'funpack' are not
# installed by default. Because of that, they are added explicity.
+#
+# Note that older versions of CFITSIO (before 4.4.0) require a
+# specific 'shared' target for the building of the shared libraries.
export gbuild_tar=$(ddir)/$$customtar
$(call gbuild, cfitsio-$(cfitsio-version), , \
--enable-sse2 --enable-reentrant \
--with-bzip2=$(idir), , \
- make shared fpack funpack)
+ make fpack funpack)
rm $$customtar
echo "CFITSIO $(cfitsio-version)" > $@
@@ -921,8 +929,8 @@ $(ibidir)/libgit2-$(libgit2-version): $(ibidir)/cmake-$(cmake-version)
-DUSE_SSH=OFF -DBUILD_CLAR=OFF \
-DTHREADSAFE=ON -DUSE_ICONV=OFF )
if [ x$(on_mac_os) = xyes ]; then
- install_name_tool -id $(ildir)/libgit2.1.3.dylib \
- $(ildir)/libgit2.1.3.dylib
+ install_name_tool -id $(ildir)/libgit2.1.9.dylib \
+ $(ildir)/libgit2.1.9.dylib
fi
echo "Libgit2 $(libgit2-version)" > $@
@@ -1156,7 +1164,9 @@ $(ibidir)/ghostscript-$(ghostscript-version): \
--disable-cups \
--enable-dynamic \
--disable-compile-inits \
- CFLAGS="-DPNG_ARM_NEON_OPT=0"
+ --disable-hidden-visibility \
+ CFLAGS="-DPNG_ARM_NEON_OPT=0" \
+ LDFLAGS=-Wl,--copy-dt-needed-entries
# Build and install the program and the shared libraries.
make V=1 -j$(numthreads)
@@ -1642,7 +1652,10 @@ $(ibidir)/swig-$(swig-version):
# '$(ibdir)'. If any program does need 'util-linux' libraries, they can
# simply add the proper directories to the environment variables, see
# 'fontconfig' for example.
-$(ibidir)/util-linux-$(util-linux-version): | $(idircustom)
+$(ibidir)/util-linux-$(util-linux-version): \
+ $(ibidir)/autoconf-$(autoconf-version) \
+ $(ibidir)/automake-$(automake-version) \
+ | $(idircustom)
# Import the source.
tarball=util-linux-$(util-linux-version).tar.lz
@@ -1663,18 +1676,20 @@ $(ibidir)/util-linux-$(util-linux-version): | $(idircustom)
git apply util-linux-$(util-linux-version)-macos.patch
fi
-# The 'mkswap' feature needs low-level file system and kernel headers
-# that are not always available (in particular on older Linux
-# kernels). Also, creating SWAP space will need root permissions, so
-# its not something a Maneager may need! Unfortunately there is no
-# configuration option to disable this so we'll have to disable it
-# manually by commenting the relevant files in the
-# 'configure.ac'. Having a more recent 'configure.ac' will trigger
-# the './configure' script to be re-created after the first run, but
-# it is pretty fast and not a problem.
+# The 'mkswap' feature needs low-level file system and kernel headers
+# that are not always available (in particular on older Linux
+# kernels). Also, creating SWAP space will need root permissions, so
+# its not something a Maneager may need! Unfortunately there is no
+# configuration option to disable this so we'll have to disable it
+# manually by commenting the relevant files in the
+# 'configure.ac'.
sed -e's|UL_BUILD_INIT(\[mkswap\], \[yes\])|UL_BUILD_INIT(\[mkswap\], \[no\])|' \
-i configure.ac
+# Having updated 'configure.ac', we need to re-generate the
+# './configure' script with 'autoreconf' (which is part of Autoconf
+# and needs Automake; hence why they are dependencies.
+ autoreconf -f
# Configure Util-linux
export CONFIG_SHELL=$(ibdir)/bash
@@ -1682,6 +1697,7 @@ $(ibidir)/util-linux-$(util-linux-version): | $(idircustom)
--disable-dependency-tracking \
--enable-libmount-support-mtab \
--disable-silent-rules \
+ --disable-liblastlog2 \
--disable-mountpoint \
--disable-libmount \
--disable-unshare \
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index deeccf2..43e2e77 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -106,13 +106,17 @@ $(ibidir)/python-$(python-version): $(ibidir)/libffi-$(libffi-version)
# libraries to link to and those are blocked at this level). So we
# need to add an extra line on top of the 'os.system' funciton and
# put '/usr/lib' in 'LD_LIBRARY_PATH' within Python's environment for
-# system calls (with 'os.putenv').
- awk '{if(/os.system\(/) \
- { print " os.putenv(\"LD_LIBRARY_PATH\", \"$$LD_LIBRARY_PATH:$(sys_library_sh_path)\");"; \
- print $$0;} \
- else print $$0}' \
- setup.py > setup-tmp.py
- mv setup-tmp.py setup.py
+# system calls (with 'os.putenv'). As of Python 3.13.2 the tarball no
+# longer has an 'setup.py'. But when it did, the change below was
+# necessary.
+ if [ -f setup.py ]; then
+ awk '{if(/os.system\(/) \
+ { print " os.putenv(\"LD_LIBRARY_PATH\", \"$$LD_LIBRARY_PATH:$(sys_library_sh_path)\");"; \
+ print $$0;} \
+ else print $$0}' \
+ setup.py > setup-tmp.py
+ mv setup-tmp.py setup.py
+ fi
# Do the basic installation and delete the temporary directory.
./configure SHELL=$(ibdir)/bash \
diff --git a/reproduce/software/make/xorg.mk b/reproduce/software/make/xorg.mk
index 3f99fab..864c32a 100644
--- a/reproduce/software/make/xorg.mk
+++ b/reproduce/software/make/xorg.mk
@@ -79,7 +79,7 @@ $(ibidir)/libxau-$(libxau-version): $(ibidir)/xorgproto-$(xorgproto-version)
# Library implementing the X Display Manager Control Protocol.
$(ibidir)/libxdmcp-$(libxdmcp-version): $(ibidir)/libxau-$(libxau-version)
- tarball=libXdmcp-$(libxdmcp-version).tar.bz2
+ tarball=libXdmcp-$(libxdmcp-version).tar.lz
$(call import-source, $(libxdmcp-url), $(libxdmcp-checksum))
$(call gbuild, libXdmcp-$(libxdmcp-version),,$(XORG_CONFIG), V=1)
echo "libXdmcp (Xorg) $(libxdmcp-version)" > $@