[petsc-users] petsc externalpackage directory

Satish Balay balay at mcs.anl.gov
Wed Feb 3 23:25:26 CST 2016


On Wed, 3 Feb 2016, Jed Brown wrote:

> Satish Balay <balay at mcs.anl.gov> writes:
> > My point here is - we haven't have problems with it. [if we had - then you would be doing 'rm -rf PETSC_ARCH' 20 times every day..]
> 
> I don't understand this logic.  We tell users to do this several times
> every day.  We might attribute it to having something "old" (like from a
> different version of PETSc), but we never really know.  I don't consider
> the unpacked, dirty source tree in PETSC_ARCH/externalpackages to be in
> any way equivalent to a tarball.  We could insist on out-of-source
> builds, though not all packages support that.  I just don't think it's a
> good idea to advise people to copy the externalpackages directory
> around.  Download the tarballs and copy them wherever you need them.  Or
> open a proxy (easy with ssh) so you don't have to waste effort on the
> silly firewall.

Can you list the externalpackages [with inplace builds] that currently break with the following?

./configure [or make.inc] && make clean && make [lib] && make install [or cp]
./configure [or make.inc] {with different option} && make clean   && make  [lib] && make install [or cp]

Or do you recall any bugreports where we identified this as the issue?

Note: doing the following with petsc configure does not bypass the above usage internally within petsc configure.

./configure --download-package=foo.tar.gz
./configure --download-package=foo.tar.gz {with different options}

As mentioned before - most of the petsc-maint issues you refere to are
due to 'git pull' causing version conflicts or conflicts in
PETSC_ARCH/include in between the above configure runs with different
options - and not the extracted externalpackage sources.

The current system is not ideal - but to me the above 2 usages are
equivalent.

Sure you can say one should always do:

./configure --download-package=foo.tar.gz
rm -rf PETSC_ARCH
./configure --download-package=foo.tar.gz {with different options}

Or configure should do this automatically. But We've always reused
externalpakcages and avoided redownling for all these years - and
suggest 'rm -rf PETSC_ARCH' only when one sees broken builds when
conflicts come up.

In petsc 'master' - the support for git repos is almost ideal [for any
changes with git pull or switch branch or any such thing] - where a
'rm externalpackages' is never necessary [rm PETSC_ARCH/include might
still be needed - i.e 'git clean -f -d -x' could suffice].

So One way to improve current infrastructure is to have every
externalpackage hosted in a git repo.  Alternative - as you suggest is
to add the extra infrastructure needed for tarballs/checksums and
stash them them as primary source. [somehow have to manage
simultaneous download of the same tarball potentially invoked by
different simultaneous configure runs - so that a common taball cache
can be used by all petsc versions/builds]. Then we can discard the
extracted sources [along with the corresponding build files] - with
each configure run - that might result in a rebuild of the
externalpackage.

Satish




More information about the petsc-users mailing list