I have the following problems with the pacemaker-1.1.4 ebuild from the science overlay: 1, Pacemaker openais dependency Pacemaker should depend on Corosync, which is a full cluster framework in itself, nowdays the Openais layer is only needed by some applications (such as OCFS2 and GFS2) [1], also according to Andrew Beekhof Pacemaker does not use any Openais 1.1.x features [2]. Openais should be optional. I have pacemaker-1.1.4 + corosync-1.2.8-r2 + cluster-glue-1.0.7 + resource-agents-1.0.3 installed, works like a charm. 2, On a fully patched x86_64 paravirtualized Hardened Gentoo I have compile errors when upgrading Pacemaker from 1.1.3 to 1.1.4. My guess is that some libtool generated file's library paths contain the system libs (/usr/lib64) before the work environment libraries, thus conflicting with the already installed libs. The errors are like: ../pengine/pengine metadata | /usr/bin/xsltproc --nonet --novalid --stringparam man.name pengine ../xml/ocf-meta2man.xsl - > ../pengine/pengine.xml /usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs/pengine: symbol lookup error: /usr/lib64/libcib.so.1: undefined symbol: print_xml_formatted -:1: parser error : Document is empty ^ -:1: parser error : Start tag expected, '<' not found ^ unable to parse - gmake[1]: *** [pengine.xml] Error 6 From sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine: # Generated by libtool (GNU libtool) 2.2.10 # Add our own library path to LD_LIBRARY_PATH .... LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:$LD_LIBRARY_PATH" Affected files: sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/crmd/crmd sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/crm_simulate sys-cluster/pacemaker-1.1.4/work/Pacemaker-1-1-Pacemaker-1.1.4/tools/crm_attribute I could manually compile and install the ebuild after removing all ':/usr/lib64' entries. Emerge --info and compile log attached. [1] http://www.clusterlabs.org/wiki/FAQ#What_is_the_Project.27s_Relationship_with_OpenAIS.3F [2] http://oss.clusterlabs.org/pipermail/pacemaker/2010-August/007068.html
Created attachment 259500 [details] emerge --info
Created attachment 259502 [details] build log
As for the second problem: that's usually caused by an upstream mistake - when you add _LIBADD deps for a lib (_LDADD deps for a program), you need to ensure all your built la files are listed before system libs. And in this particular case, they seem to do it completely wrong. In lib/cib/Makefile.am: libcib_la_LDFLAGS = -version-info 1:1:0 $(top_builddir)/lib/common/libcrmcommon.la $(CRYPTOLIB) should be libcib_la_LDFLAGS = -version-info 1:1:0 libcib_la_LIBADD = $(top_builddir)/lib/common/libcrmcommon.la $(CRYPTOLIB) In lib/common/Makefile.am: libcrmcluster_la_LIBADD = $(CLUSTERLIBS) libcrmcommon.la libcrmcommon_la_LDFLAGS = -version-info 2:0:0 $(GNUTLSLIBS) should be: libcrmcluster_la_LIBADD = libcrmcommon.la $(CLUSTERLIBS) ibcrmcommon_la_LDFLAGS = -version-info 2:0:0 libcrmcommon_la_LDADD = $(GNUTLSLIBS) (well, that just from a quick glance at the sources)
Sorry, typo. That corrected line obviously should be libcrmcommon_la_LIBADD, not libcrmcommon_la_LDADD.
Hi and thanks for giving feedback on sys-cluster/pacemaker-1.1.x ebuild. @Lorand Kelemen: about first part of your comment, I modified the dependency and ebuild accordingly. About the second part, I made up a patch according to Rafał Mużyło's proposal with LIBADD, thanks a lot for your input. @Loran: As I am not able to reproduce your bug, would you please give us a feedback as to this fix this issue or not please ? All available in science overlay as sys-cluster/pacemaker-1.1.4-r1 Regards
Downgraded to 1.1.3, tried emerging 1.1.4-r1. I still see a wrong order, buildlog attached. work # grep -R ':/usr/lib64' * Pacemaker-1-1-Pacemaker-1.1.4/pengine/pengine: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:$LD_LIBRARY_PATH" Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:$LD_LIBRARY_PATH" Pacemaker-1-1-Pacemaker-1.1.4/mcp/pacemakerd: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r1/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH" Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libcrmcommon.so.2.0.0 Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libplumb.so.2.1.0 Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libcoroipcc.so.4.0.0
Created attachment 259690 [details] pacemaker-1.1.4-r1 build log
Please note "just from a quick glance at the sources" part - I've never said it was complete, just shows the direction of changes. Next on the list is libstonithd.la - same split/order as above. But, it seems that what *you* need to do for a complete patch is comb the tree for Makefile.am that are passing libs through _LDFLAGS and move those to either _LIBADD or _LDADD. Then make sure upstream applies the patch.
Could you try =sys-cluster/pacemaker-1.1.4-r4 ?
Created attachment 259924 [details] pacemaker-1.1.4-r4 buildlog Getting there, testing is not a problem. Just a little more! work # grep -R ':/usr/lib64' * Pacemaker-1-1-Pacemaker-1.1.4/pengine/ptest: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH" Pacemaker-1-1-Pacemaker-1.1.4/mcp/pacemakerd: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH" Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libcrmcommon.so.2.0.0 Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libplumb.so.2.1.0 Pacemaker-1-1-Pacemaker-1.1.4/cts/cts.supp: obj:/usr/lib64/libcoroipcc.so.4.0.0
(In reply to comment #10) Paths look ok to me, /usr/lib64 is at the very end... > Created an attachment (id=259924) [details] > pacemaker-1.1.4-r4 buildlog ../lib/pengine/.libs/libpe_status.so: undefined reference to `get_object_root' Now you have, as-needed failure. Funny that I cannot reproduce it, I'm fixing it blindly... Uploaded new version in overlay without revbump. Please sync and try again.
Created attachment 259928 [details] pacemaker-1.1.4-r4 buildlog Died quite early.
(In reply to comment #12) > Died quite early. > My fault, try again
Created attachment 259929 [details] pacemaker-1.1.4-r4 buildlog Getting close, crmd libs still seem to be wrong. # grep -R ':/usr/lib64' * cib/cib: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH" cib/cibpipe: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH" cib/cibmon: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/lib64:$LD_LIBRARY_PATH" crmd/atest: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH" crmd/crmd: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/fencing/.libs:/usr/lib64:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:$LD_LIBRARY_PATH" cts/cts.supp: obj:/usr/lib64/libcrmcommon.so.2.0.0 cts/cts.supp: obj:/usr/lib64/libplumb.so.2.1.0 cts/cts.supp: obj:/usr/lib64/libcoroipcc.so.4.0.0 mcp/pacemakerd: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/lib64:$LD_LIBRARY_PATH" pengine/pengine: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH" pengine/ptest: LD_LIBRARY_PATH="/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/cib/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/transition/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/common/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/lib/pengine/.libs:/usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.4-r4/work/Pacemaker-1-1-Pacemaker-1.1.4/pengine/.libs:/usr/lib64:$LD_LIBRARY_PATH"
Meanwhile Pacemaker 1.1.5 was released [1], I'd love to see it in the overlay to test if the issue has changed over the releases. [1] http://theclusterguy.clusterlabs.org/post/3462561268/pacemaker-1-1-5-released
(In reply to comment #15) > Meanwhile Pacemaker 1.1.5 was released [1], I'd love to see it in the overlay > to test if the issue has changed over the releases. > > [1] > http://theclusterguy.clusterlabs.org/post/3462561268/pacemaker-1-1-5-released I've not pushed it yet as I wanted to test some more things but it is available in the 'ultrabug' overlay fyi.
Created attachment 272175 [details] pacemaker-1.1.5 buildlog
Created attachment 272177 [details] pacemaker-1.1.5 usr/lib64 grep output Finally I got around to try and update sys-cluster/pacemaker-1.1.4-r4, I used the pacemaker-1.1.5 ebuild from the specified Ultrabug overlay. Same behaviour, grep -R ':/usr/lib64' /usr/egatrop/tmp/portage/sys-cluster/pacemaker-1.1.5/work/* output and buildlog attached. I will upgrade using the unmerge/merge "workaround" for now.