Hi, First quick reply only, without reading your proposal carefully: see last section of
https://docs.einsteintoolkit.org/et-docs/Improving_the_treatment_of_external_libraries#Proposal which also addresses the treatment of external libraries. I agree it is a very annoying system at the moment. -- Ian Hinder http://members.aei.mpg.de/ianhin > On 25 Sep 2018, at 14:14, Boud Roukema <[email protected]> wrote: > > Dear Cactus developers/users, > > I could not find an appropiate place for proposing wishlist items > for Cactus - please tell me if there is such a place, or add this > as a new wishlist item. > > WISHLIST: GetComponents --avoid-useless-downloads --propose-system-installs > > AIM: reduce download volume by about 40 percent or so; reduce compile time; > increase likelihood of having wider-software-community-verified versions of > external libraries > > 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 (i) --avoid-useless-downloads and (ii) --propose-system-installs. > > DETAILS: > > Superfluous downloads on my system: > > du -sh Cactus/arrangements/ > 200M Cactus/arrangements/ > > ls -l $(find ./Cactus/arrangements/ExternalLibraries -name "*\.t*gz") | awk > '{b+=$5} END {print "b=",b," Mb=",b/1024/1024}' > > b= 101248488 Mb= 96.5581 > > du -s ./Cactus/arrangements/ExternalLibraries/*/.svn/pristine/* | awk > '{b+=$1} > END {print " Mb=",b/1024}' > > Mb= 98.5 > > So it seems to me that 200 Mb (out of 500Mb) total download should have been > avoided - > this gets to proposal (i). The compilation of some of these is for proposal > (ii) - users > could avoid compiling packages that are better matched to their system using > their > native package manager. > > [The download was probably, but not certainly, done as per > https://docs.einsteintoolkit.org/et-docs/Simplified_Tutorial_for_New_Users > i.e. > > curl -O -L > https://raw.githubusercontent.com/gridaphobe/CRL/ET_2018_09/GetComponents > > chmod u+x GetComponents > > ./GetComponents > https://bitbucket.org/einsteintoolkit/manifest/raw/ET_2018_09/einsteintoolkit.th > ] > > > COMMENTS: > > Several of the packages provided by the above install are older than the > Debian > stable > versions, so a counterargument of "but the recommended Cactus source packages > are > more up-to-date" does not apply, at least in this case. Debian stable > versions > of > packages are quite conservative in terms of security support and bug fixing. > > > (i) Politer names for --avoid-useless-downloads could be: > > --avoid-redundant-downloads > > --avoid-superfluous-downloads # but people are likely to misspell this > > > (ii) My idea for --propose-system-installs is *not* to try to do the > install, since asking a user to give the root or sudo password seems > to me unwise, given the whole idea of by default installing Cactus/ET > in user space. I'm only proposing that the perl script do something like > output to the user: > > # should find something like "libfftw3-dev liblapack-dev libopenmpi-dev > openssl"; > system_installable = ... # search in Cactus/arrangements/ExternalLibraries/ > > if(length($system_installable) > 0){ > print("Before doing a full download, you may wish to install the > following\n > packages instead of compiling from source, using"); > print(if $OS == debian_derivative ( "aptitude or > apt-get" else "your package manager:\n")); > print("$system_installable"); > }; > > > I don't really know perl - the above syntax is just a quick guess. > > For the same reasons, I'm probably not the best person to propose a patch. > Cactus+ET have become much easier to install since several years ago - > these two options could make them even more attractive to newbie users. > > Cheers > Boud > _______________________________________________ > Users mailing list > [email protected] > http://cactuscode.org/mailman/listinfo/users
_______________________________________________ Users mailing list [email protected] http://cactuscode.org/mailman/listinfo/users
