<html>#2239: GetComponents --avoid-useless-downloads --propose-system-installs
<table style='border-spacing: 1ex 0pt; '>
<tr><td style='text-align:right'> Reporter:</td><td>Boud Roukema</td></tr>
<tr><td style='text-align:right'>   Status:</td><td>new</td></tr>
<tr><td style='text-align:right'>Milestone:</td><td></td></tr>
<tr><td style='text-align:right'>  Version:</td><td></td></tr>
<tr><td style='text-align:right'>     Type:</td><td>proposal</td></tr>
<tr><td style='text-align:right'> Priority:</td><td>major</td></tr>
<tr><td style='text-align:right'>Component:</td><td>GetComponents</td></tr>
</table>

<p>Changes (by Boud Roukema):</p>
<p><strong>WISHLIST:</strong> GetComponents --avoid-useless-downloads --propose-system-installs</p>
<p><strong>AIMS:</strong> (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;</p>
<p><em>ORIGINAL POST:</em>
<a href="http://cactuscode.org/pipermail/users/2018-September/003634.html" rel="nofollow" class="ap-connect-link">http://cactuscode.org/pipermail/users/2018-September/003634.html</a></p>
<p><strong>DESCRIPTION:</strong>
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) <em>should</em> 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 <code>GetComponents</code> 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) <code>--avoid-useless-downloads</code> and (b) <code>--propose-system-installs</code>.</p>
<p><strong>(1) PREFER NATIVE software libraries</strong></p>
<p>Even if <code>--avoid-useless-downloads</code> is not implemented,
the point of <code>--propose-system-installs</code> is the overall software
ecology. The Debian infrastructure will tend to lead to better checked
scientific software in terms of <em>portability, reproducibility,
licence compatibility</em> (reduce potential legal 
<p>--<br/>
Ticket URL: <a href='https://bitbucket.org/einsteintoolkit/tickets/issues/2239/getcomponents-avoid-useless-downloads'>https://bitbucket.org/einsteintoolkit/tickets/issues/2239/getcomponents-avoid-useless-downloads</a></p>
</html>