#2239: GetComponents --avoid-useless-downloads --propose-system-installs
Reporter:Boud Roukema
Status:new
Milestone:
Version:
Type:proposal
Priority:major
Component:GetComponents

Changes (by Boud Roukema):

WISHLIST: GetComponents --avoid-useless-downloads --propose-system-installs

AIMS: (1) increase likelihood of having wider-software-community-verified versions ("native" versions) of external libraries; (2) reduce download volume by about 40 percent or so; (3) reduce compile time;

ORIGINAL POST: http://cactuscode.org/pipermail/users/2018-September/003634.html

DESCRIPTION: In my recent (Sept 2018) download of Cactus, out of about 500 Mb total download, I have about 200Mb of downloaded external library source packages, most of which either (i) are superfluous because they already exist in my OS (Debian GNU/Linux), or (ii) should be superfluous, since they can more safely be installed using the apt/apt-get/aptitude/dpkg package management system. This proposal is to add an OS-dependent option to GetComponents that (i) checks if the OS is a debian derivative and if yes, then instead of downloading the source packages, extracts necessary versioning metadata from the OS, inserts this in the appropriate place in the Cactus system for defining -I include and -L library shell or makefile variables as appropriate; and/or (ii) checks if the OS is a debian derivative and if yes, proposes a list of system packages to install as root user that would avoid having to download and compile these. Proposed names for the options are (a) --avoid-useless-downloads and (b) --propose-system-installs.

(1) PREFER NATIVE software libraries

Even if --avoid-useless-downloads is not implemented, the point of --propose-system-installs is the overall software ecology. The Debian infrastructure will tend to lead to better checked scientific software in terms of portability, reproducibility, licence compatibility (reduce potential legal

--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2239/getcomponents-avoid-useless-downloads