diff options
-rwxr-xr-x | project | 24 | ||||
-rw-r--r-- | reproduce/software/config/checksums.conf | 3 | ||||
-rw-r--r-- | reproduce/software/config/urls.conf | 3 | ||||
-rw-r--r-- | reproduce/software/config/versions.conf | 3 | ||||
-rw-r--r-- | reproduce/software/make/basic.mk | 25 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 45 | ||||
-rwxr-xr-x | reproduce/software/shell/configure.sh | 2 |
7 files changed, 87 insertions, 18 deletions
@@ -494,22 +494,24 @@ case $operation in fi # Run the project's own shell without inheriting any environment - # from the host. + # from the host. The 'TERM' environment variable is necessary for + # tools like some text editors. bdir=`.local/bin/realpath .build` - instdir=$bdir/software/installed + instdir="$bdir"/software/installed .local/bin/env -i \ - HOME=$bdir \ + HOME="$bdir" \ + TERM="$TERM" \ CCACHE_DISABLE=1 \ - PATH=$instdir/bin \ - LDFLAGS=-L$instdir/lib \ - SHELL=$instdir/bin/bash \ - CPPFLAGS=-I$instdir/include \ - LD_LIBRARY_PATH=$instdir/lib \ + PATH="$instdir"/bin \ + LDFLAGS=-L"$instdir"/lib \ + SHELL="$instdir"/bin/bash \ + CPPFLAGS=-I"$instdir"/include \ + LD_LIBRARY_PATH="$instdir"/lib \ OMPI_MCA_plm_rsh_agent=/bin/false \ - PYTHONPATH=$instdir/lib/python/site-packages \ - PYTHONPATH3=$instdir/lib/python/site-packages \ + PYTHONPATH="$instdir"/lib/python/site-packages \ + PYTHONPATH3="$instdir"/lib/python/site-packages \ PS1="[\[\033[32m\](maneage)\[\033[00m\] \u@\h \W]$ " \ - $instdir/bin/bash + "$instdir"/bin/bash ;; diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf index b516a61..e7a0e63 100644 --- a/reproduce/software/config/checksums.conf +++ b/reproduce/software/config/checksums.conf @@ -44,6 +44,7 @@ make-checksum = ddf0fdcb9ee1b182ef294c5da70c1275288c99bef60e63a25c0abed2ddd44aba metastore-checksum = b2a5fdde9de5ddc1e6c368d5da1b2e97e4fdbaa138a7be281ccb40a81dd4a9bb1849d36b2d5d3f01205079bace60441f82a7002097ff3a7037340a35b0f1574a mpc-checksum = 72d657958b07c7812dc9c7cbae093118ce0e454c68a585bfb0e2fa559f1bf7c5f49b93906f580ab3f1073e5b595d23c6494d4d76b765d16dde857a18dd239628 mpfr-checksum = d583555d08863bf36c89b289ae26bae353d9a31f08ee3894520992d2c26e5683c4c9c193d7ad139632f71c0a476d85ea76182702a98bf08dde7b6f65a54f8b88 +nano-checksum = d101e7f4802c079254e79340b433749dcd699fa9adec3f96e4218ec12f066a1f6b0954c27254bb6f019bc370ee2116817717870f4e2bc782c552442f2cc75195 ncurses-checksum = 4c1333dcc30e858e8a9525d4b9aefb60000cfc727bc4a1062bace06ffc4639ad9f6e54f6bdda0e3a0e5ea14de995f96b52b3327d9ec633608792c99a1e8d840d openssl-checksum = 1523985ba90f38aa91aa6c2d57652f4e243cb2a095ce6336bf34b39b5a9b5b876804299a6825c758b65990e57948da532cca761aa12b10958c97478d04dd6d34 patchelf-checksum = 39745662651cf0a9915685b2767a611ceab4286f8fa57eace342b3f44248431616e8563d4ac6709c97d8534229c73c05470239e462b7e74b36bf629a876dfbad @@ -86,6 +87,7 @@ cdsclient-checksum = 2d7abf0079189b9dd19cb8919061445fd19ea9f7dfd54e8ceee26b74321 cfitsio-checksum = 08a13931726b0ee15bd4e2ad6dd4debb8268f3b0bc33adadec5c6a29295dd536bcccb3cc949721c6cebac6f43b6118e5e38332ac0ba8a07a43553416d8debae5 cmake-checksum = e0591d5fb234f3e7b74d6d2aad44fbf3e19e69547bd428681ba6ad0461d4f3d2a154605808b4733531d2c66f0e91eb39a179ae0d89a37e92a3f20e9cae691468 eigen-checksum = 34cf600914cce719d61511577ef9cd26fbdcb7a6fad1d0ab8396f98b887fac6a5577d3967e84a8f56225cc50de38f3b91f34f447d14312028383e32b34ea1972 +emacs-checksum = dfb26531d2c19cf9fb56505f03d799654b45e5f9528e777900e8280ed2c1d21e04c52f510528e31e015977c471ae63164cedee6174b7439ebcf479a21fc18064 expat-checksum = 514ff2ef3c93af0b1715b7a08732db33c13a113c4c72422716a22ee26c09235deed71ec55510cee24c33bcd6b2347602bd71ce70a432d5583fb63765ff9e0e09 fftw-checksum = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38 flex-checksum = b4ef58d4a1d66b213e2f59df06959decf46d26b253cdc3f51cd26e2e2b505461ef23dafa974dd2005b1f0cafa5a83fe9258baf78004b2fdae6dfc299bc17bfd1 @@ -130,6 +132,7 @@ swarp-checksum = 80f4ade59738df3d4c9b47bda04148b53c6ba995d523fa8d1e02fb5d952b607 swig-checksum = 5eaa2e06d8e4197fd02194051db1e518325dbb074a4c55a91099ad9c55193874f577764afc9029409a41bd520a95154095f26e33ef5add5c102bb2c1d98d33eb tides-checksum = c3360ff0d023b43749ba09a33302ca059f017a157b3ce7cdcf4f1a1578e90d3e7fa420077043adbee6b1ebf94bd698c8d6b279012f36d2a05b4de5351e30e108 util-linux-checksum = c95d26b9037d6b877a247e6aeb58d17aa80f7e1bd6b523a4e0fde559fe07b3d924ece6d373300fefb65d1f206b3f990aeddb3a03605040e72ce6d6ee88591021 +vim-checksum = 06ba43386fcf308520d88d7a68e9bc1fabd824b05078b8f9112500a2ad4e50a91f1a1c2925889b7c06dbce34307f12abf508e2172b05fd283f965cc06552eb6d wcslib-checksum = 8c98c4b575056e2d966b77a4bc951256d02ecee3a11847e140fd38d93afd0f76b3e906d590c952dc9fc58ceeb1ba062b19d8e1e676ee0032f5b7ed13a9dfa892 xlsxio-checksum = 22870fda7bd4eefd5fea2a9ad7530c9049135129d9b69805091777e6b54b2fc6c3f0e69c6954f36bce54eebbfeccaf637cce9e271a593221a4296d6632470a6c yaml-checksum = dadd7d8e0d88b5ebab005e5d521d56d541580198aa497370966b98c904586e642a1cd4f3881094eb57624f218d50db77417bbfd0ffdce50340f011e35e8c4c02 diff --git a/reproduce/software/config/urls.conf b/reproduce/software/config/urls.conf index 34c4d89..417f5ed 100644 --- a/reproduce/software/config/urls.conf +++ b/reproduce/software/config/urls.conf @@ -47,6 +47,7 @@ #metastore-url = http://akhlaghi.org/maneage-software #mpc-url = http://ftp.gnu.org/gnu/mpc #mpfr-url = http://www.mpfr.org/mpfr-current +#nano-url = https://www.nano-editor.org/dist/v$(word 1, $(subst ., ,$(nano-version))) #ncurses-url = http://ftp.gnu.org/gnu/ncurses #openssl-url = http://www.openssl.org/source #patchelf-url = http://nixos.org/releases/patchelf/patchelf-$(patchelf-version) @@ -88,6 +89,7 @@ #cfitsio-url = https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c #cmake-url = $(shell majv=$$(echo $(cmake-version) | sed -e's/\./ /' | awk '{printf("%d.%d", $$1, $$2)}'); echo https://cmake.org/files/v$$majv) #eigen-url = http://bitbucket.org/eigen/eigen/get/$(eigen-version).tar.gz +#emacs-url = http://ftp.gnu.org/gnu/emacs #expat-url = $(shell vstr=$$(echo $(expat-version) | sed -e's/\./_/g'); echo https://github.com/libexpat/libexpat/releases/download/R_$$vstr/expat-$(expat-version).tar.lz) #fftw-url = ftp://ftp.fftw.org/pub/fftw #flex-url = https://github.com/westes/flex/files/981163 @@ -133,6 +135,7 @@ #tides-url = http://akhlaghi.org/maneage-software #util-linux-url = https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.35/ #valgrind-url = https://sourceware.org/pub/valgrind +#vim-url = ftp://ftp.vim.org/pub/vim/unix #wcslib-url = ftp://ftp.atnf.csiro.au/pub/software/wcslib #xlsxio-url = https://github.com/brechtsanders/xlsxio/archive #yaml-url = pyyaml.org/download/libyaml diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf index 0a9e21e..0b3a4d2 100644 --- a/reproduce/software/config/versions.conf +++ b/reproduce/software/config/versions.conf @@ -44,6 +44,7 @@ make-version = 4.3 metastore-version = 1.1.2-23-fa9170b mpc-version = 1.1.0 mpfr-version = 4.0.2 +nano-version = 5.2 ncurses-version = 6.2 patchelf-version = 0.10 perl-version = 5.32.0 @@ -94,6 +95,7 @@ cdsclient-version = 3.84 cfitsio-version = 3.48 cmake-version = 3.18.1 eigen-version = 3.3.7 +emacs-version = 27.1 expat-version = 2.2.9 fftw-version = 3.3.8 flex-version = 2.6.4-91-ga631f5d @@ -134,6 +136,7 @@ swarp-version = 2.38.0 swig-version = 3.0.12 tides-version = 2.0 util-linux-version = 2.35 +vim-version = 8.2 xlsxio-version = 0.2.21 yaml-version = 0.2.5 diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk index 0b672d8..934580a 100644 --- a/reproduce/software/make/basic.mk +++ b/reproduce/software/make/basic.mk @@ -56,8 +56,13 @@ ibdir = $(BDIR)/software/installed/bin ildir = $(BDIR)/software/installed/lib ibidir = $(BDIR)/software/installed/version-info/proglib -# Ultimate Makefile target. -targets-proglib = low-level-links gcc-$(gcc-version) +# Ultimate Makefile target. GNU Nano (a simple and very light-weight text +# editor) is installed by default, it is recommended to have it in the +# 'basic.mk', so Maneaged projects can be edited on any system (even when +# there is no command-line text editor is available). +targets-proglib = low-level-links \ + gcc-$(gcc-version) \ + nano-$(nano-version) all: $(foreach p, $(targets-proglib), $(ibidir)/$(p)) # Define the shell environment @@ -852,7 +857,8 @@ $(ibidir)/diffutils-$(diffutils-version): \ $(ibidir)/file-$(file-version): $(ibidir)/coreutils-$(coreutils-version) tarball=file-$(file-version).tar.gz $(call import-source, $(file-url), $(file-checksum)) - $(call gbuild, file-$(file-version), static,,V=1) + $(call gbuild, file-$(file-version), static, \ + --disable-libseccomp, V=1) echo "File $(file-version)" > $@ $(ibidir)/findutils-$(findutils-version): \ @@ -1145,11 +1151,22 @@ $(ibidir)/texinfo-$(texinfo-version): \ echo "GNU Texinfo $(texinfo-version)" > $@ $(ibidir)/which-$(which-version): $(ibidir)/coreutils-$(coreutils-version) - tarball=/which-$(which-version).tar.gz + tarball=which-$(which-version).tar.gz $(call import-source, $(which-url), $(which-checksum)) $(call gbuild, which-$(which-version), static) echo "GNU Which $(which-version)" > $@ +# GNU Nano is a very light-weight and small, command-line text editor (in +# total around 3.5 Mb after installation!). It is top-level target in the +# basic tools (nothing depends on it, it just depends on GCC). This is +# because some projects may choose to not have it by manually removing it +# from 'targets-proglib' above (it has no effect on processing after all!). +$(ibidir)/nano-$(nano-version): $(ibidir)/gcc-$(gcc-version) + tarball=nano-$(nano-version).tar.xz + $(call import-source, $(nano-url), $(nano-checksum)) + $(call gbuild, nano-$(nano-version), static) + echo "GNU Nano $(nano-version)" > $@ + diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index cf9c5a1..3c5e518 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -449,6 +449,25 @@ $(ibidir)/eigen-$(eigen-version): rm -rf $(ddir)/eigen-eigen-* echo "Eigen $(eigen-version)" > $@ +# GNU Emacs is an advanced text editor (among many other things!), so it +# isn't directly related to the analysis phase of a project. However, it +# can be useful during the development of a project on systems that don't +# have it natively. So probably after the project is finished and is ready +# for publication, you can remove it from 'TARGETS.conf'. +# +# However, the full Emacs build has a very large number of dependencies +# which aren't necessary in many scenarios so we are disabling everything +# except the core Emacs functionality (using '--without-all') and we are +# also disabling all graphic user interface features (using '--without-x'). +$(ibidir)/emacs-$(emacs-version): + tarball=emacs-$(emacs-version).tar.xz + $(call import-source, $(emacs-url), $(emacs-checksum)) + $(call gbuild, emacs-$(emacs-version), static, \ + --without-all --without-x \ + --without-gnutls --with-ns=no, \ + -j$(numthreads) V=1) + echo "GNU Emacs $(emacs-version)" > $@ + $(ibidir)/expat-$(expat-version): tarball=expat-$(expat-version).tar.lz $(call import-source, $(expat-url), $(expat-checksum)) @@ -1374,8 +1393,30 @@ $(ibidir)/xlsxio-$(xlsxio-version): \ rm $(ibdir)/example_xlsxio_* echo "XLSX I/O $(xlsxio-version)" > $@ - - +# VIM is a text editor which doesn't directly affect processing but can be +# useful in projects during its development, for more see the comment above +# GNU Emacs. +$(ibidir)/vim-$(vim-version): + tarball=vim-$(vim-version).tar.bz2 + $(call import-source, $(vim-url), $(vim-checksum)) + cd $(ddir) + tar xf $(tdir)/$$tarball + n=$$(echo $(vim-version) | sed -e's|\.||') + cd $(ddir)/vim$$n + ./configure --prefix=$(idir) \ + --disable-canberra \ + --enable-multibyte \ + --disable-netbeans \ + --disable-fontset \ + --disable-gpm \ + --disable-acl \ + --disable-gui \ + --with-x=no + make -j$(numthreads) + make install + cd .. + rm -rf vim$$n + echo "VIM $(vim-version)" > $@ diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh index 2b4300b..21fe1d6 100755 --- a/reproduce/software/shell/configure.sh +++ b/reproduce/software/shell/configure.sh @@ -254,7 +254,7 @@ elif [ x$on_mac_os = xyes ]; then if [ x$hw_byteorder = x1234 ]; then byte_order="Little Endian"; elif [ x$hw_byteorder = x4321 ]; then byte_order="Big Endian"; fi - address_size_physical=$(sysctl -n machdep.cpu.address_bits.phyiscal) + address_size_physical=$(sysctl -n machdep.cpu.address_bits.physical) address_size_virtual=$(sysctl -n machdep.cpu.address_bits.virtual) address_sizes="$address_size_physical bits physical, " address_sizes+="$address_size_virtual bits virtual" |