reproduce-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[task #15667] Install Gzip and Make before calling basic.mk


From: Mohammad Akhlaghi
Subject: [task #15667] Install Gzip and Make before calling basic.mk
Date: Sun, 31 May 2020 00:24:04 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0

URL:
  <https://savannah.nongnu.org/task/?15667>

                 Summary: Install Gzip and Make before calling basic.mk
                 Project: Reproducible paper template
            Submitted by: makhlaghi
            Submitted on: Sun 31 May 2020 05:24:03 AM BST
         Should Start On: Sun 31 May 2020 12:00:00 AM BST
   Should be Finished on: Sun 31 May 2020 12:00:00 AM BST
                Category: Software
                Priority: 5 - Normal
                  Status: In Progress
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: makhlaghi
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

Make the basis of Maneage and currently we use the hosts's Make implementation
for 'basic.mk' which builds make pretty early on: just after installing the
compressing libraries. This has the following problems:

* On macOS, for some reason, the parallel building of its default Make fails
(we have seen this in more than one macOS). So macOS users have to build their
full 'basic.mk' on a single thread! Which is very slow :-(.

* As described in bug #58465, on FreeBSD, the host 'make' doesn't recognize
the conditionals we have put.

Fortunately GNU Make is a relatively small program itself, and its creators
have even included a 'build.sh' script to use to build itself (instead of
calling 'make' to build 'make'!) So the system can even not have Make at all!


I am thus proposing to build GNU Make in 'configure.sh', just like the way we
currently build 'flock' now and use our own GNU Make even for 'basic.mk' on
any host. Doing this will make 'basic.mk' much more similar to 'high-level.mk'
or 'python.mk' (allowing us to use GNU Make conventions!), while fixing the
issues above.

Fortunately Make is also released with Lzip <http://ftp.gnu.org/gnu/make/>
compression and Lzip is arguably the most elegant simple little program I have
seen (uncompressed it is only 436 KB)! So we can also install Lzip before Make
in 'configure.sh'. 

We can then install 'flock' after Lzip and Make in 'configure.sh'. For Flock,
we can make an Lzip tarball and download/use that instead of its standard
Gzip-based tarball. 

Finally, in 'basic.mk', we can also make an Lzip-based tarball for Gzip and
use that to build Gzip before any package that has a 'tar.gz' tarball. 

Generally, 'tar.lz' has a much higher compression ratio for source code
(almost double!), so it may not be bad to later only use 'tar.lz' for our
source-code archive. But this is just a brainstorm now!




    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/task/?15667>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]