[csw-devel] SF.net SVN: gar:[14667] csw/mgar/pkg/graphviz/trunk/Makefile
John Ellson
ellson at opencsw.org
Mon May 30 22:04:38 CEST 2011
I'm subscribed now.
Still feeling cranky though ;-(
John
On 05/30/2011 03:56 PM, Maciej Bliziński wrote:
> This is John's email, which didn't make it to the list (I think that
> John is not subscribed to devel@).
>
> 2011/5/30 John Ellson <ellson at opencsw.org>:
>>> If you have any questions, please ask!
>>>
>>> Thanks,
>>> Maciej
>> Yes, basically this is getting to be too much work. There isn't that much change in graphviz that it should be this hard.
>>
>> Why do I have to spend an hour building this (admittedly large) package, without errors, only to get all these errors when trying to post it?
>>
>> Isn't there some preliminary checking that could be done during the build on the first platform?
>>
>> Aren't most of the dependencies automatically derivable?
>>
>> I don't understand the dynamic library problems ... I'm used to having libtool take care of it all. Whats this Rpath stuff? Doesn't OpenCSW automatically have /opt/csw/lib in its library path? (I mean, I know what Rpath is, but I don't know why its needed if libraries are stored in standard lib directories. Fedora doesn't use Rpath at all. Whats the difference?)
>>
>> I'm sure Imagemagick just needs a rebuild. I'd do that except, no way, not with this kind of hassle during the packaging process.
>>
>> Personally I'd like to avoid multiple library versions installed in parallel. It can be a support nightmare.
>>
>>
>> John
>>
>>
>> On 05/30/2011 11:52 AM, Maciej Bliziński wrote:
>>> Hi John,
>>>
>>> Here's a review of the change you submitted to the code repository.
>>> There are some overrides that I suspect might be actual problems with
>>> the packages. There could be overrides that you put in because you
>>> have verified that checkpkg returned false positives. If this is the
>>> case, could you point these out? This way, we could improve checkpkg
>>> and reduce the rate of false positives.
>>>
>>> More comments below.
>>>
>>> 2011/5/30 <ellson at users.sourceforge.net>:
>>>> Revision: 14667
>>>> http://gar.svn.sourceforge.net/gar/?rev=14667&view=rev
>>>> Author: ellson
>>>> Date: 2011-05-30 14:54:34 +0000 (Mon, 30 May 2011)
>>>>
>>>> Log Message:
>>>> -----------
>>>> graphviz: why aren't transitive dependencies handled automatically?
>>>>
>>>> Modified Paths:
>>>> --------------
>>>> csw/mgar/pkg/graphviz/trunk/Makefile
>>>>
>>>> Modified: csw/mgar/pkg/graphviz/trunk/Makefile
>>>> ===================================================================
>>>> --- csw/mgar/pkg/graphviz/trunk/Makefile 2011-05-30 11:23:50 UTC (rev 14666)
>>>> +++ csw/mgar/pkg/graphviz/trunk/Makefile 2011-05-30 14:54:34 UTC (rev 14667)
>>>> @@ -62,24 +62,28 @@
>>>> BUILD_DEP_PKGS =
>>>>
>>>> RUNTIME_DEP_PKGS_CSWgraphviz = CSWexpat CSWpango CSWlibcairo CSWgts CSWlibxrender \
>>>> - CSWgs CSWfconfig CSWftype2 CSWggettextrt CSWglib2 CSWgtk2 CSWiconv \
>>>> - CSWlibatk CSWliblasi CSWpng CSWzlib CSWxpm CSWlibrsvg
>>>> + CSWgs CSWfconfig CSWftype2 CSWglib2 CSWgtk2 CSWiconv \
>>>> + CSWlibatk CSWliblasi CSWpng CSWzlib CSWxpm CSWlibrsvg \
>>>> + CSWgcc4corert CSWgcc4g++rt CSWlibltdl7
>>>> RUNTIME_DEP_PKGS_CSWgraphvizdevel = CSWgraphviz
>>>> RUNTIME_DEP_PKGS_CSWgraphvizdoc =
>>>> RUNTIME_DEP_PKGS_CSWgraphvizgraphs =
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizgd = CSWgd CSWjpeg CSWgraphviz
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizdevil = CSWdevil
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizsharp = CSWmono CSWexpat CSWgraphviz CSWzlib
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizguile = CSWguile
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizjava = CSWjava
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizlua = CSWlua
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizocaml = CSWocaml
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizperl = CSWperl
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizphp = CSWphp5
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizpython = CSWpython CSWexpat CSWgraphviz CSWzlib
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizr = CSWr
>>>> -RUNTIME_DEP_PKGS_CSWgraphvizruby = CSWruby
>>>> -RUNTIME_DEP_PKGS_CSWgraphviztcl = CSWtcl CSWtk CSWgraphviz
>>>> +RUNTIME_DEP_PKGS_CSWgraphvizgd = CSWgd CSWjpeg CSWglib2 CSWxpm CSWftype2 CSWiconv CSWgts \
>>>> + CSWpango CSWlibintl8 CSWpng CSWfconfig CSWlibcairo CSWexpat CSWzlib \
>>>> + CSWgcc4corert CSWgcc4g++rt CSWlibltdl7 CSWgraphviz
>>> At OpenCSW, we use += to append to variables:
>>>
>>> RUNTIME_DEP_PKGS_CSWgraphvizgd = CSWgd (...)
>>> RUNTIME_DEP_PKGS_CSWgraphvizgd += CSWpango CSWlibintl8 (...)
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizperl += file-with-bad-content|/usr/local|root/opt/csw/share/graphviz/demo/modgraph.pl
>>> This is probably OK to override, especially since it's a demo. But if
>>> you notice /usr/local inside binaries, it's worth investigating
>>> (hardcoded paths → potential bugs).
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizperl += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/perl/libgv_perl.so
>>> Are you sure this is safe to override? Are these loaded via dlopen so
>>> RPATH doesn't matter?
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizperl += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/perl/libgv_perl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizperl += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/perl/libgv_perl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizsharp += surplus-dependency|CSWmono
>>> If you have an idea how checkpkg can detect a dependency on CSWmono,
>>> we could make this one go away.
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizsharp += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/sharp/libgv_sharp.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizsharp += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/sharp/libgv_sharp.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizsharp += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/sharp/libgv_sharp.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz2 += surplus-dependency|CSWgraphviz
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWglib2
>>> Why this override, are you sure that overriding this is the right thing to do?
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += surplus-dependency|CSWgd
>>> Is this dependency actually needed?
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWexpat
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWxpm
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWzlib
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWftype2
>>> checkpkg likely gave explenations why these dependencies are required.
>>> Can you look at these? It might turn out that not having them is a
>>> bug.
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_gd.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWlibltdl7
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWiconv
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWgts
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWpango
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWlibintl8
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWpng
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWfconfig
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgd += missing-dependency|CSWlibcairo
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWlibcairo
>>> Are you sure these dependencies are not needed?
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += surplus-dependency|CSWtcl
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWfconfig
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWgcc3corert|or|CSWgcc4corert
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWpango
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWftype2
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWgts
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/usr/local|root/opt/csw/share/man/man3/tcldot.3tcl
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/export/medusa|root/opt/csw/lib/graphviz/tcl/libtcldot.so.0.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/export/medusa|root/opt/csw/lib/graphviz/tcl/libtclplan.so.0.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/export/medusa|root/opt/csw/lib/graphviz/tcl/libtcldot_builtin.so.0.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/export/medusa|root/opt/csw/lib/graphviz/tcl/libtkspline.so.0.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += file-with-bad-content|/export/medusa|root/opt/csw/lib/graphviz/tcl/libgv_tcl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/tcl/libgv_tcl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/tcl/libtcldot.so.0.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/tcl/libgv_tcl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/tcl/libgv_tcl.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWlibltdl7
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWexpat
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWgcc3g++rt|or|CSWgcc4g++rt
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWlibintl8
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWglib2
>>>> +CHECKPKG_OVERRIDES_CSWgraphviztcl += missing-dependency|CSWzlib
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_lasi.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_pango.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/libgraph.so.5.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/libcgraph.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += file-with-bad-content|/usr/local|root/opt/csw/bin/gvpr_static
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += file-with-bad-content|/usr/local|root/opt/csw/lib/libgvpr.so.2.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += non-uniform-lib-versions-in-package|sonames=libcdt.so.5,libcgraph.so.6,libgraph.so.5,libgvc.so.6,libgvpr.so.2,libpathplan.so.4,libxdot.so.4
>>> Since libgvc.so.6 supersedes libgvc.so.5, you need to take care to
>>> include the libgvc.so.5 file as well. I would suggest splitting the
>>> shared libraries, to help with shared libraries in the future.
>>> libgvc.so.5 could be packaged as CSWlibgvc5 and libgvc.so.6 as
>>> CSWlibgvc6.
>>>
>>> From looking at the package database, libgvc.so.5 is required for
>>> imagemagick to work, so you need to take care not to break it.
>>>
>>> I would suggest creating the following dependency chain:
>>>
>>> CSWimagemagick → CSWgraphviz → CSWlibgvc5
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_neato_layout.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/libgvc.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/libgvplugin_lasi.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/libgvplugin_lasi.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libcgraph.so.5|is|needed|by|opt/csw/lib/libgvpr.so.2.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_core.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_gs.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_rsvg.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_dot_layout.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphviz += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/libgvplugin_gdk_pixbuf.so.6.0.0
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizpython += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/python/libgv_python.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizpython += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/python/libgv_python.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizpython += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/python/libgv_python.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizgraphs += file-with-bad-content|/usr/share|root/opt/csw/share/graphviz/graphs/directed/pmpipe.gv
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/share|root/opt/csw/share/graphviz/doc/html/FAQ.html
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/local|root/opt/csw/share/graphviz/doc/html/FAQ.html
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/local|root/opt/csw/share/graphviz/doc/ChangeLog
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/local|root/opt/csw/share/graphviz/doc/html/winbuild.html
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/local|root/opt/csw/share/graphviz/doc/html/build.html
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content|/usr/share|root/opt/csw/share/graphviz/doc/html/info/command.html
>>> Since it's a doc package, you can substitue all the specific overrides
>>> with one general override:
>>>
>>> CHECKPKG_OVERRIDES_CSWgraphvizdoc += file-with-bad-content
>>>
>>> It will apply to all the instances of the file-with-bad-content error
>>> for the CSWgraphvizdoc package.
>>>
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizguile += soname-not-found|libcdt.so.4|is|needed|by|opt/csw/lib/graphviz/guile/libgv_guile.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizguile += soname-not-found|libgraph.so.4|is|needed|by|opt/csw/lib/graphviz/guile/libgv_guile.so
>>>> +CHECKPKG_OVERRIDES_CSWgraphvizguile += soname-not-found|libgvc.so.5|is|needed|by|opt/csw/lib/graphviz/guile/libgv_guile.so
>>> These are essentially repetitions of the previous errors.
>>>
>>> Generally, I would suggest scrolling up (checkpkg output is probably
>>> quite long) and reading explanations that checkpkg gives. For
>>> instance, if you see soname-not-found, checkpkg will explain why is it
>>> not found, what is the RPATH, and where are the files that could be
>>> found. For other errors, checkpkg tries to give additional details to
>>> help figure out what is the exact problem that checkpkg reports.
>>>
>>> If you have any questions, please ask!
>>>
>>> Thanks,
>>> Maciej
>>>
>>
More information about the devel
mailing list