[Bug 511246] New: Review Request: Pacemaker - cman/rgmanager replacement

bugzilla at redhat.com bugzilla at redhat.com
Tue Jul 14 12:37:08 UTC 2009


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.

Summary: Review Request: Pacemaker - cman/rgmanager replacement

https://bugzilla.redhat.com/show_bug.cgi?id=511246

           Summary: Review Request: Pacemaker - cman/rgmanager replacement
           Product: Fedora
           Version: rawhide
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: medium
          Priority: low
         Component: Package Review
        AssignedTo: nobody at fedoraproject.org
        ReportedBy: andrew at beekhof.net
         QAContact: extras-qa at fedoraproject.org
                CC: notting at redhat.com, fedora-package-review at redhat.com
   Estimated Hours: 0.0
    Classification: Fedora


Spec URL: http://oss.clusterlabs.org/~beekhof/fedora/pacemaker.spec

SRPM URL:
http://oss.clusterlabs.org/~beekhof/fedora/pacemaker-1.0.4-1.fc11.src.rpm

Description: Advanced High Availability cluster manager.

Pacemaker is an advanced, scalable High-Availability cluster resource
manager for Linux-HA (Heartbeat) and/or OpenAIS.

It supports "n-node" clusters with significant capabilities for
managing resources and dependencies.

It will run scripts at initialization, when machines go up or down,
when related resources fail and can be configured to periodically check
resource health.

Background:  I've recently been hired by RedHat in order to work on Pacemaker.
We'd like to include it in F12 so that we can offer it as a tech preview in
RHEL6. 

This package requires cluster-glue and the current version of corosync from the
upstream SVN in order to build.

Please note, along with cluster-glue, this is my first package so I am looking
for a sponsor.

I. rpmlint output:

[beekhof at f11 pacemaker]$ rpmlint x86_64/* pacemaker.spec
pacemaker-1.0.4-1.fc11.src.rpm 
libpacemaker3.x86_64: W: no-documentation
libpacemaker3.x86_64: W: shared-lib-calls-exit /usr/lib64/libcib.so.1.0.1
exit at GLIBC_2.2.5
libpacemaker3.x86_64: W: shared-lib-calls-exit
/usr/lib64/libcrmcluster.so.1.0.0 exit at GLIBC_2.2.5
libpacemaker3.x86_64: W: shared-lib-calls-exit /usr/lib64/libpengine.so.3.0.0
exit at GLIBC_2.2.5
libpacemaker-devel.x86_64: W: no-dependency-on
libpacemaker/libpacemaker-libs/liblibpacemaker
libpacemaker-devel.x86_64: W: no-documentation
pacemaker.spec:191: E: hardcoded-library-path in /usr/lib/ocf
pacemaker.spec:192: E: hardcoded-library-path in /usr/lib/ocf/resource.d
pacemaker.spec:193: E: hardcoded-library-path in
/usr/lib/ocf/resource.d/pacemaker
pacemaker.src:191: E: hardcoded-library-path in /usr/lib/ocf
pacemaker.src:192: E: hardcoded-library-path in /usr/lib/ocf/resource.d
pacemaker.src:193: E: hardcoded-library-path in
/usr/lib/ocf/resource.d/pacemaker
pacemaker.x86_64: E: non-standard-dir-perm /var/lib/heartbeat/crm 0750
pacemaker.x86_64: E: non-standard-dir-perm /var/lib/pengine 0750
pacemaker.x86_64: E: non-standard-dir-perm /var/run/crm 0750
pacemaker.x86_64: E: script-without-shebang
/usr/share/pacemaker/constraints-1.0.rng
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/crm.dtd
pacemaker.x86_64: E: script-without-shebang
/usr/share/pacemaker/crm-transitional.dtd
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/nvset-1.0.rng
pacemaker.x86_64: E: script-without-shebang
/usr/share/pacemaker/pacemaker-1.0.rng
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/pacemaker.rng
pacemaker.x86_64: E: script-without-shebang
/usr/share/pacemaker/resources-1.0.rng
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/rule-1.0.rng
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/score.rng
pacemaker.x86_64: E: script-without-shebang /usr/share/pacemaker/upgrade06.xsl
pacemaker.x86_64: E: wrong-script-interpreter
/usr/share/pacemaker/cts/CTSlab.py "env"
pacemaker.x86_64: E: wrong-script-interpreter
/usr/share/pacemaker/cts/extracttests.py "env"
pacemaker.x86_64: E: wrong-script-interpreter
/usr/share/pacemaker/cts/OCFIPraTest.py "env"
5 packages and 1 specfiles checked; 22 errors, 6 warnings.

II. Errors

a. There are many script-without-shebang errors which appears to be an rpmlint
bug.
These files are XML related, not scripts, and should not include a shebang.

b. There are three instances of wrong-script-interpreter, which I also believe
to be an rpmlint problem.
The use of 'env' redirection allows us to execute with the version of python
preferred by the user.

c. The instances of non-standard-dir-perm would also appear to be incorrect, it
is not intended that users other than daemon should be allowed to write to
these locations.

d. The most controversial errors are probably the hardcoded-library-path ones,
which I also believe to be a bug in rpmlint.  
Rpmlint expects %{_libdir}, which is generally the right thing to do.  However,
the OCF RA API specifies the use of /usr/lib/ocf:

http://www.opencf.org/cgi-bin/viewcvs.cgi/specs/ra/resource-agent-api.txt?rev=1.10&content-type=text/vnd.viewcvs-markup

Despite being unconventional from a Fedora perspective, this is not a violation
of the LSB nor the FHS:

http://www.pathname.com/fhs/pub/fhs-2.3.html#USRLIBLIBRARIESFORPROGRAMMINGANDPA

There is nothing which states that packages on x86_64 must use /usr/lib64 and
so forth, and using %{_libdir} in this case would violate OCF standards.  
This could, in turn, break third-party OCF resource agents installed in
/usr/lib/ocf as per the OCF standard.

III. Warnings

a. I believe the no-documentation warnings should be ignored as the
documentation is included in the main package.

b. The no-dependency-on appears to be an rpmlint bug as the subpackage is
libpacemaker3 and the -devel package does indeed have a dependancy on it. 

c. The shared-lib-calls-exit are legitimate.
They result from the way the library handles OOM conditions.
The library was initially a private one and as such took the easy way out by
calling exit().

If this is a particularly offensive warning, I can investigate options for
conditionally disabling it.

-- 
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.




More information about the Fedora-package-review mailing list