<div dir="ltr">Thanks everybody for your help.  I'll use this in the future, but for now, building from source with minimal features is working for me.<div><br></div><div>Jeff</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, May 31, 2020 at 9:06 PM Drew Parsons <<a href="mailto:dparsons@debian.org">dparsons@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 2020-06-01 10:48, Satish Balay wrote:<br>
> This is likely a dependency of a dependency.<br>
> <br>
> In rpm world - you can do something like:<br>
> <br>
> [root@sb ~]# repoquery --whatrequires SuperLU.x86_64<br>
> Last metadata expiration check: 0:07:55 ago on Sun 31 May 2020 09:38:39 <br>
> PM CDT.<br>
> SuperLU-devel-0:5.2.1-8.fc32.x86_64<br>
> SuperLU-doc-0:5.2.1-8.fc32.x86_64<br>
> armadillo-0:9.860.1-1.fc32.x86_64<br>
> armadillo-0:9.880.1-1.fc32.x86_64<br>
> freefem++-0:4.4.2-2.fc32.x86_64<br>
> freefem++-0:4.6-1.fc32.x86_64<br>
> hypre-0:2.18.1-2.fc32.x86_64<br>
> mld2p4-serial-0:2.2.1-5.fc32.x86_64<br>
> octave-iso2mesh-0:1.9.1-5.fc32.x86_64<br>
> petsc-0:3.12.3-2.fc32.x86_64<br>
> <br>
> I don't know what the equivalent in deb world is.<br>
> <br>
> So I would manually check on some of the petsc dependencies<br>
> <br>
> apt install libblas-dev<br>
> <br>
> apt install libsuitesparse-dev<br>
> <br>
> etc..<br>
> <br>
> cc: Drew, perhaps has a better answer.<br>
> <br>
> Satish<br>
> <br>
> <br>
> <br>
> On Sun, 31 May 2020, Jeff Hammond wrote:<br>
> <br>
>> I understand a lot of these but how does PETSc depend on OpenCoarrays?<br>
>> <br>
>> Obviously, I do not fault the PETSc developers for this, because I <br>
>> know<br>
>> they are not using coarray Fortran, but maybe somebody on this list <br>
>> knows<br>
>> who is creating the Ubuntu packages for PETSc.<br>
>> <br>
>> If there is a simple way to understand this using Apt, please share.  <br>
>> I ran<br>
>> apt-rdepend but do not see any reference to the coarrays stuff, so I <br>
>> don't<br>
>> know how it is getting included here.<br>
>> <br>
>> Jeff<br>
>> <br>
>> $ sudo apt-get install petsc-dev<br>
>> [sudo] password for jrhammon:<br>
>> Reading package lists... Done<br>
>> Building dependency tree<br>
>> Reading state information... Done<br>
>> The following additional packages will be installed:<br>
>>   ksh libaec-dev libaec0 libamd2 libblas-dev libbtf1 *libcaf-openmpi-3<br>
>> *libcamd2<br>
>> libccolamd2 libcholmod3 *libcoarrays-openmpi-dev* libcolamd2<br>
<br>
tl;dr: "apt-cache rdepends", "apt-rdepends -r"<br>
<br>
Needed library dependencies get embedded in the shared libraries and can <br>
be read with objdump,<br>
$objdump -p <br>
/usr/lib/petscdir/petsc3.12/x86_64-linux-gnu-real/lib/libpetsc_real.so.3.12.4<br>
<br>
But you're asking at package level for the reverse dependencies of a <br>
package, which other packages depend on a given package. There are a <br>
couple of tools for that.<br>
<br>
apt-cache from the apt package is short and simple, using the rdepends <br>
action<br>
<br>
$ apt-cache rdepends libcoarrays-openmpi-dev libcamd2 libcaf-openmpi-3<br>
libcoarrays-openmpi-dev<br>
Reverse Depends:<br>
   libopenmpi-dev<br>
libcamd2<br>
Reverse Depends:<br>
   libsuitesparse-dev<br>
   libcholmod3<br>
libcaf-openmpi-3<br>
Reverse Depends:<br>
   libcoarrays-openmpi-dev<br>
<br>
"apt-cache show <pkg>" prints the description for the package, including <br>
its Dependencies. Handy for double-checking that rdepends is giving you <br>
reverse-dependencies, not dependencies (it's easy to forget if you're <br>
looking forwards or backwards).<br>
<br>
apt-rdepends (in the apt-rdepends package) gives the whole chain right <br>
to the end, possibly Too Much Information. Despite the name, <br>
"apt-rdepends libcamd2" actually gives forward dependencies (what <br>
libcamd2 depends on) (in apt-rdepends it's r for recursive, not <br>
reverse). To find the chain of reverse dependencies in the opposite <br>
direction, use "apt-rdepends -r libcamd2".<br>
<br>
"apt-rdepend -b" generates the list of build-dependencies that the <br>
package needs to build it (sadly "apt-rdepends -b -r" does not work, so <br>
it's less straightforward to know which other packages use it as a <br>
Reverse-Dependency)<br>
<br>
apt-rdepends and apt-cache might miss some references (e.g. Suggests <br>
rather than Depends).  This search from Rebecca Palmer can be useful for <br>
those cases<br>
   pkg=libcamd2; grep-dctrl -w -F Pre-Depends,Depends,Recommends,Suggests <br>
-s Source "$pkg" <br>
/var/lib/apt/lists/*_debian_dists_unstable_main_binary-amd64_Packages ; <br>
grep-dctrl -w -s Package "$pkg" <br>
/var/lib/apt/lists/*_debian_dists_unstable_main_source_Sources<br>
<br>
"apt-rdepends -r" libcamd2 tells us the chain is petsc - libcholmod3 - <br>
libcamd2<br>
libcaf-openmpi-3 is needed by libcoarrays-openmpi-dev<br>
libcoarrays-openmpi-dev is not a dependency for any package. It might be <br>
a build dependency for something, or possibly it's simply not used yet. <br>
Just an OpenMPI tool available for use.<br>
<br>
In short, libcholmod3 from suitesparse uses libcamd2.<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>