[csw-devel] SF.net SVN: gar:[14667] csw/mgar/pkg/graphviz/trunk/Makefile

Maciej Bliziński maciej at opencsw.org
Mon May 30 21:56:19 CEST 2011


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