From b15818ddc06d499bac1bac5640682d40901e9588 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Sat, 17 Nov 2018 04:43:08 +0000 Subject: TeX Live also built within the pipeline (no extra packages yet) TeX Live is now also downloaded and built by the reproduction pipeline. Currently on the basic (TeX and LaTeX) source is built but no extra packages, so the PDF building will fail. We'll add them in the next commit. --- reproduce/config/pipeline/dependency-versions.mk | 2 +- reproduce/config/pipeline/texlive.conf | 29 ++++++++++++++++++++++++ reproduce/src/make/dependencies-build-rules.mk | 2 +- reproduce/src/make/dependencies.mk | 24 ++++++++++++++++++-- reproduce/src/make/initialize.mk | 11 ++++----- reproduce/src/make/paper.mk | 4 ++-- 6 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 reproduce/config/pipeline/texlive.conf (limited to 'reproduce') diff --git a/reproduce/config/pipeline/dependency-versions.mk b/reproduce/config/pipeline/dependency-versions.mk index 9f8d99a..c123f55 100644 --- a/reproduce/config/pipeline/dependency-versions.mk +++ b/reproduce/config/pipeline/dependency-versions.mk @@ -9,7 +9,7 @@ coreutils-version = 8.30 gawk-version = 4.2.1 ghostscript-version = 9.25 git-version = 2.19.1 -gnuastro-version = 0.7.62-13b0 +gnuastro-version = 0.7.63-39ab grep-version = 3.1 gzip-version = 1.9.10-051e libtool-version = 2.4.6 diff --git a/reproduce/config/pipeline/texlive.conf b/reproduce/config/pipeline/texlive.conf new file mode 100644 index 0000000..3aa5db5 --- /dev/null +++ b/reproduce/config/pipeline/texlive.conf @@ -0,0 +1,29 @@ +# Basic profile for build. Values to set: +# +# installdir: Install directory +# topdir: Top pipeline directory +selected_scheme scheme-basic +TEXDIR @installdir@/texlive/2018 +TEXMFCONFIG @topdir@/.texlive2018/texmf-config +TEXMFLOCAL @installdir@/texlive/texmf-local +TEXMFSYSCONFIG @installdir@/texlive/2018/texmf-config +TEXMFSYSVAR @installdir@/texlive/2018/texmf-var +TEXMFVAR @topdir@/.texlive2018/texmf-var +instopt_adjustpath 0 +instopt_adjustrepo 1 +instopt_letter 0 +instopt_portable 0 +instopt_write18_restricted 1 +tlpdbopt_autobackup 1 +tlpdbopt_backupdir @installdir@/texlive/2018/backups +tlpdbopt_create_formats 1 +tlpdbopt_desktop_integration 1 +tlpdbopt_file_assocs 1 +tlpdbopt_generate_updmap 0 +tlpdbopt_install_docfiles 1 +tlpdbopt_install_srcfiles 1 +tlpdbopt_post_code 1 +tlpdbopt_sys_bin @installdir@/bin +tlpdbopt_sys_info @installdir@/share/info +tlpdbopt_sys_man @installdir@/share/man +tlpdbopt_w32_multi_user 1 diff --git a/reproduce/src/make/dependencies-build-rules.mk b/reproduce/src/make/dependencies-build-rules.mk index 99e0b25..e0d91ef 100644 --- a/reproduce/src/make/dependencies-build-rules.mk +++ b/reproduce/src/make/dependencies-build-rules.mk @@ -48,7 +48,7 @@ # 4: Extra configuration options. # 5: Extra options/arguments to pass to Make. # 6: Step to run between `make' and `make install': usually `make check'. -gbuild = if [ x$(static_build) = xyes ] && $(3)x = staticx ]; then \ +gbuild = if [ x$(static_build) = xyes ] && [ $(3)x = staticx ]; then \ export LDFLAGS="$$LDFLAGS -static"; \ fi; \ check="$(6)"; \ diff --git a/reproduce/src/make/dependencies.mk b/reproduce/src/make/dependencies.mk index f24fafc..70b0a9e 100644 --- a/reproduce/src/make/dependencies.mk +++ b/reproduce/src/make/dependencies.mk @@ -42,7 +42,7 @@ ildir = $(BDIR)/dependencies/installed/lib # Define the top-level programs to build (installed in `.local/bin', so for # Coreutils, only one of its executables is enough). -top-level-programs = ls gawk gs grep libtool sed git astnoisechisel +top-level-programs = ls gawk gs grep libtool sed git tex astnoisechisel all: $(foreach p, $(top-level-programs), $(ibdir)/$(p)) # Other basic environment settings. @@ -239,4 +239,24 @@ $(ibdir)/astnoisechisel: $(tdir)/gnuastro-$(gnuastro-version).tar.lz \ $(ildir)/libgit2.a \ $(call gbuild,$(subst $(tdir)/,,$<), gnuastro-$(gnuastro-version), \ - static, , -j8, make check -j8) + static, --enable-static=yes --enable-shared=no, -j8, \ + make check -j8) + +$(ibdir)/tex: + + # First we'll download the tarball. Note that since the most recent + # installer is downloaded by day, the installer's version is hard + # to configure at this stage. + #wget -O$(tdir)/install-tl-unx.tar.gz \ + # http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz + + # Unpack, enter the directory and run the installer. + topdir=$$(pwd) + cd $(ddir) + tar xf $(tdir)/install-tl-unx.tar.gz + cd install-tl-* + sed -e's|@installdir[@]|$(idir)|g' -e's|@topdir[@]|'"$$topdir"'|g' \ + $$topdir/reproduce/config/pipeline/texlive.conf > texlive.conf + ./install-tl --profile=texlive.conf + cd .. + rm -rf install-tl-* diff --git a/reproduce/src/make/initialize.mk b/reproduce/src/make/initialize.mk index 5c0aac5..943efdd 100644 --- a/reproduce/src/make/initialize.mk +++ b/reproduce/src/make/initialize.mk @@ -55,7 +55,7 @@ pconfdir = reproduce/config/pipeline # built programs). sys-path := $(PATH) sys-rm := $(shell which rm) - +curdir := $(shell echo $$(pwd)) # High level environment @@ -71,11 +71,11 @@ sys-rm := $(shell which rm) # build here. .ONESHELL: .SHELLFLAGS = -ec -LD_LIBRARY_PATH := .local/lib -PATH := .local/bin -LDFLAGS := -L.local/lib SHELL := .local/bin/bash -CPPFLAGS := -I.local/include +LD_LIBRARY_PATH := $(curdir)/.local/lib +LDFLAGS := -L$(curdir)/.local/lib +CPPFLAGS := -I$(curdir)/.local/include +PATH := $(curdir)/.local/bin:$(shell ls -d $$(pwd)/.local/texlive/2018/bin/*) @@ -211,7 +211,6 @@ $(mtexdir)/initialize.tex: | $(mtexdir) $(call pvcheck, xz, $(xz-version), XZ Utils, xzversion) # Bzip2 prints its version in standard error, not standard output! - echo "here0" echo "" | bzip2 --version &> $@_bzip2_ver; v=$$(awk 'NR==1 && /'$(bzip2-version)'/{print "y"; exit 0}' \ $@_bzip2_ver); \ diff --git a/reproduce/src/make/paper.mk b/reproduce/src/make/paper.mk index eaa1948..aec29c7 100644 --- a/reproduce/src/make/paper.mk +++ b/reproduce/src/make/paper.mk @@ -39,7 +39,7 @@ $(texbdir)/paper.bbl: tex/references.tex \ | $(tikzdir) $(texbdir) tex/pipeline.tex # To find LaTeX (which currently isn't internally installed). - PATH=$(sys-path) + #PATH=$(sys-path) # We'll run LaTeX first to generate the `.bcf' file (necessary for # `biber') and then run `biber' to generate the `.bbl' file. @@ -65,7 +65,7 @@ paper.pdf: tex/pipeline.tex paper.tex $(texbdir)/paper.bbl \ | $(tikzdir) $(texbdir) # To find LaTeX (which currently isn't internally installed). - PATH=$(sys-path) + #PATH=$(sys-path) # Go into the top TeX build directory and make the paper. p=$$(pwd) -- cgit v1.2.1