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 <[email protected]>: >> 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 <[email protected]>: >>> 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 >> > > _______________________________________________ devel mailing list [email protected] https://lists.opencsw.org/mailman/listinfo/devel
