On 21/03/2012 13:00, Brock Pytlik wrote:
On 03/20/12 18:51, Niall Power wrote:
On 21/03/2012 12:50, Brock Pytlik wrote:
On 03/20/12 18:45, Niall Power wrote:
Hi Tim & Brock,


On 21/03/2012 12:19, Tim Foster wrote:
On 03/21/12 02:06 PM, Brock Pytlik wrote:
The pkgdepend man page describes what you need to do in detail. At a
high level, you'll tag the action(s) which produce the dependency on
system/library/[email protected],5.11-0.175.1.0.0.11 (in your case,
at minimum the file action that delivers installadm since it imports
bootmgmt) so you'd do something like 'pkg.depend.bypass-generate=bootmgmt'.

That's the correct thing to do here. Be sure to add a comment saying why you're bypassing dependency generation on this file, and add a comment warning developers to check that the manual dependency always exists, and is kept up to date lest the file you're actually depending on within that package gets refactored into another package without the manual dependency being updated.

I'll try that out. So I am guessing that it would look something like the following?

file \
path=usr/lib/python2.6/vendor-packages/osol_install/auto_install/set_service.py \ group=sys pkg.depend.bypass-generate=system/library/boot-management

I assume both .py and .pyc files need to be correspondingly tagged also.

You should only need to tag the .py files, pyc files aren't analyzed. Remember that the value of bypass-generate is the file name/path, not the package name.

Ah ok. Thanks for the clarification. So that suggests that all other automatic package dependency generation will be bypassed also? Is that correct? Is there no way to restrict it to system/library/boot-management ?

I don't understand. You restrict it based on files. So, in this case, I imagine you'd set the value of bypass-generate to be something like "bootmgmt" on the action delivering installadm. Now, if another action also delivers a file which causes a dependency on system/library/boot-management to be inferred, then you'll likely need to bypass that one as well.

My bad. I mis-interepreted the man page description and missed the example. Will try that and see how I get on.

Thanks!
Niall

Brock


Thanks,
Niall

Brock

Thanks,
Niall

3: I tried this (by adding the property pkg.linted=true to the depend
line above. It built and linted correctly however it resulted in 2
dependencies listed against boot-management
     system/library/[email protected],5.11-0.175.1.0.0.11.0
     system/library/[email protected],5.11-0.175.1.0.0.13

    Will this double dependency be a problem?
I am not aware of any problems this causes, but you aren't in a well
tested space at this point I think. Perhaps someone else will feel
confident to state that it is not (or is) a problem.

I'm not sure what happens here either. I would also say that "pkg.linted=true" is too big a hammer, since that will disable all linting for that particular action. Better would be:

pkg.linted.pkglint.action005.1=true

which would cause just this lint error to be ignored. Adding the bypass is almost certainly the right thing to do, rather than using pkg.linted tags. The syntax for bypass tags is documented in pkgdepend(1)

    cheers,
            tim





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

Reply via email to