On 10/20/11 09:52, Kristin Beatty wrote:
Mark,

Sorry for the confusion. I first was using "c++" but the data I gave you the last time was again
"fortran". Let me keep it to "c++" below.


On 10/20/2011 12:20 PM, Mark J. Nelson wrote:
On 10/20/11 10:00, Kristin Beatty wrote:

On 10/20/2011 11:28 AM, Mark J. Nelson wrote:
Are you trying to manually maintain dependencies AND use pkgdepend to
automatically generate dependencies?
no
If so, then you should stick with pkgdepend, and not put the manual
entries there in the first place.

If not, then the generation of duplicate dependencies is a bug.

But the fact that one of the backend dependencies is versioned and the
other isn't suggests that you're supplying the non-versioned one explicitly.
Manifest for c++ shows:
depend fmri=pkg:/solarisstudio/solarisstudio12.2/cc type=require
depend fmri=pkg:/solarisstudio/solarisstudio12.2/backend type=require
depend fmri=pkg:/solarisstudio/solarisstudio12.2/c++-libs type=require

After running "pkgdepend resolve -s .pre-dedup -m manifest" manifest.pre-dedup shows: depend fmri=pkg://solarisstudio/solarisstudio12.2/[email protected] type=require
depend fmri=pkg:/solarisstudio/solarisstudio12.2/backend type=require
depend fmri=pkg:/solarisstudio/solarisstudio12.2/c++-libs type=require
depend fmri=pkg:/solarisstudio/solarisstudio12.2/cc type=require

For some reason resolve is adding another backend with a dependency. I could remove
all the @12.2-0.x entries but then I run into a problem like in fortran.

Fortran manifest:
depend fmri=pkg://solarisstudio/solarisstudio12.2/backend type=require
depend fmri=pkg://solarisstudio/solarisstudio12.2/f90-libs type=require

Fortran manifest.pre-dedup after "pkgdepend resolve": (Note addition of math-libs)
depend fmri=pkg://solarisstudio/solarisstudio12.2/backend type=require
depend fmri=pkg://solarisstudio/solarisstudio12.2/[email protected] type=require
depend fmri=pkg://solarisstudio/solarisstudio12.2/f90-libs type=require
depend fmri=pkg://solarisstudio/solarisstudio12.2/[email protected] type=require

You state I can remove the "depends" from the manifest list but we have to have them in there to insure that bug fixes that has dependencies on other packages
get updated too.


If I understood Mark correctly, he wasn't asking you to remove the @12.2-0.x entries, he was asking you to remove the unversioned dependencies in your original manifest that pkgdepend is finding (in the examples above the dependency on backend). Fundamentally, if you don't want versioned dependencies, don't use pkgdepend resolve, at least not right now. If you don't want them versioned, I'd be very interested to hear why.

Like Mark, I'd also be interested to know how the fortran package depends on f90-libs since this appears to be a gap in pkgdepend's analysis. (Maybe that would be obvious with the full package to examine.) The same question also applies for the c++ package depending on the cc package and the c++-libs package.

I also noticed an important difference in the dependencies that pkgdepend has found and the ones that you're annotating (assuming that what's above is an exact replica of what the output is). The manifest for c++ has pkg:/solairsstudio/..., note the single slash. That has a different meaning for pkg than pkg://solarisstudio... I'd suggest changing the c++ manifests to be consistent and use the double slash so that pkg knows that solarisstudio is a publisher and not the first level in the name hierarchy.

Brock
[snip]
_______________________________________________
pkg-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/pkg-discuss

Reply via email to