Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 180897
Summary: | Review Request: heartbeat | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Joost Soeterbroek <joost.soeterbroek> | ||||||||
Component: | Package Review | Assignee: | Orion Poplawski <orion> | ||||||||
Status: | CLOSED NEXTRELEASE | QA Contact: | Fedora Package Reviews List <fedora-package-review> | ||||||||
Severity: | medium | Docs Contact: | |||||||||
Priority: | medium | ||||||||||
Version: | rawhide | CC: | alanr, beekhof, gauret, wtogami | ||||||||
Target Milestone: | --- | Flags: | wtogami:
fedora-cvs+
|
||||||||
Target Release: | --- | ||||||||||
Hardware: | All | ||||||||||
OS: | Linux | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | Doc Type: | Bug Fix | |||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2006-03-03 12:24:55 UTC | Type: | --- | ||||||||
Regression: | --- | Mount Type: | --- | ||||||||
Documentation: | --- | CRM: | |||||||||
Verified Versions: | Category: | --- | |||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||
Embargoed: | |||||||||||
Bug Depends On: | 180952 | ||||||||||
Bug Blocks: | 163779 | ||||||||||
Attachments: |
|
Description
Joost Soeterbroek
2006-02-10 12:44:30 UTC
Still generates a number of rpmlint errors and warnings. Need help on determining which are valid and which can be safely ignored. Build fails for me on FC-4 i386 in send_arp.c; I'll attach a log. Created attachment 124503 [details]
Tail end of failed build log
BTW, I can't build in mock either, because libnet10 and libnet-devel conflict. I've opened bug 180952, which I'll add as a blocker for this one. Rebuild - removed BuildRequires libnet-devel Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.2-2.src.rpm Description: Heartbeat subsystem for High-Availability Linux Jason, Can you uninstall libnet-devel and try again? A mock build proceeds further than before, but the various confgure runs die because glib2-devel is not installed. Did you mean to BuildRequire: glib2-devel instead of glib-devel? A build attempt on an FC4 box with glib2-devel already installed fails as before in send_arp.c. (In reply to comment #6) > A build attempt on an FC4 box with glib2-devel already installed fails as before > in send_arp.c. Jason, Can you send me (or attach) the output of 'rpm -qa | sort' command on the FC4 box? Created attachment 124535 [details]
Package list from host unable to compile send_arp.c
Created attachment 124541 [details]
rpmlint output for heartbeat-2.0.2-2.fc4.i386.rpm
rpmlint output for heartbeat-2.0.2-2.fc4.i386.rpm
I would like some help on determining which are valid errors/warnings and which
can be safely ignored.
From a look at the configure.in it seems that it may use both old and new libnet api. So the best is to use the newer, by having Buildrequires: libnet-devel instead of libnet10. (In reply to comment #10) > From a look at the configure.in it seems that it may use both old and new libnet > api. So the best is to use the newer, by having > > Buildrequires: libnet-devel > > instead of libnet10. Done.. Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.2-3.src.rpm - remove BuildRequire libnet10 - add BuildRequire libnet-devel Builds fine in mock (FC4-i386). (In reply to comment #11) > (In reply to comment #10) > > From a look at the configure.in it seems that it may use both old and new libnet > > api. So the best is to use the newer, by having > > > > Buildrequires: libnet-devel > > > > instead of libnet10. > > Done.. > > Spec Name or Url: > http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec > SRPM Name or Url: > http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.2-3.src.rpm > > - remove BuildRequire libnet10 > - add BuildRequire libnet-devel > > Builds fine in mock (FC4-i386). I think some parts use either API for historical reasons, but I believe the IPv6 code (which is newer) only uses the newer libnet API. Let me know if there's anything we should change in the project's packaging to make this easier for you. There are also lots of bug fixes and some nice new features (GUI, etc.) in 2.0.3 which just came out yesterday. Thanks! -- Alan Robertson alanr Rebuilt for 2.0.3 Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-1.src.rpm Builds fine in mock (FC4-i386). Needs reviewer. Not full review yet, but close. - rpmlint checks return: W: heartbeat non-standard-group Networking/Daemons E: heartbeat hardcoded-library-path in $RPM_BUILD_ROOT/usr/lib/heartbeat/crmtest/helper.sh E: heartbeat hardcoded-library-path in /usr/lib/libhbmgmt.* E: heartbeat hardcoded-library-path in /usr/lib/libhbmgmtclient.* E: heartbeat hardcoded-library-path in /usr/lib/libhbmgmtcommon.* E: heartbeat hardcoded-library-path in /usr/lib/libhbmgmttls.* Needs work: * Spec file: some paths are not replaced with RPM macros (wiki: QAChecklist item 7) * The BuildRoot must be cleaned at the beginning of %install - Why split into -stonith and -pils packages but have the base package require them? Good: - package meets naming guidelines - package meets packaging guidelines - license (GPL/LGPL) OK, text in %doc, matches source - spec file legible, in am. english - source matches upstream - package compiles on devel (x86) - no missing BR - no unnecessary BR - no locales - not relocatable - owns all directories that it creates - no duplicate files - permissions ok - %clean ok - macro use consistent - code, not content - no need for -docs - nothing in %doc affects runtime - no need for .desktop file Nitpicks: - use %setup -q Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-2.src.rpm * Wed Feb 15 2006 Joost Soeterbroek <fedora> - 2.0.3-2 - enable mgmt option - fixes for various rpmlint errors and warnings: - fixed setup -q - make subpackages depend on basepackage, not reverse - clean buildroot at beginning of install - replaced a number of hardcoded paths with RPM macros - Changed Group from Networking/Daemons to System Environment/Daemons - Get rid of: Requires: python Requires: gnutls rpmbuild auto-detects this Do you really need: Requires: sysklogd Requires: python-gtk >= 2.4 Requires: gettext Requires: swig nothing seems to reference them for run time. - Instead of echo '#!/bin/sh' > /tmp/tmp.$$ ; cat $RPM_BUILD_ROOT/%{_libdir}/heartbeat/crmtest/helper.sh >> \ /tmp/tmp.$$ ; mv /tmp/tmp.$$ $RPM_BUILD_ROOT/%{_libdir}/heartbeat/crmtest/helper.sh how about: sed -i -e '1i#!/bin/sh' $RPM_BUILD_ROOT/%{_libdir}/heartbeat/crmtest/helper.sh - ocf stuff gets installed to /usr/lib on 64-bit, so: %{_prefix}/lib/ocf though perhaps /usr/share/heartbeat/ocf would be a better location. Not sure what heartbeats requirements are. The reasons for having the pils package separate is that this is a general purpose library - usable without heartbeat. The same is true of the stonith libraries. Indeed, Red Hat has historically used these same packages in some of their products. We probably need to re-do some of these subpackages, but being compatible with how the project distributes them is also helpful. (i.e., if it's a mistake, at least it's a consistent mistake). The project distributes everything as RPMs, so having the RH RPMs consistent with the other RPMs we distribute has some value, IMHO... AFAIK, we do indeed use SWIG, and python-gtk, but I don't know about the version issues, but I suspect they´re there for a reason. I'm sure he's just copying what Huang Zhen (the developer of this code) put in the project's RPM. (In reply to comment #17) > The reasons for having the pils package separate is that this is a general > purpose library - usable without heartbeat. > > The same is true of the stonith libraries. Indeed, Red Hat has historically > used these same packages in some of their products. So, an install of heartbeart *must* have -pils and -stonith, but -pils and -stonith can be used independently for other things? Then the original Requires was correct. (In reply to comment #18) > AFAIK, we do indeed use SWIG, and python-gtk, but I don't know about the version > issues, but I suspect they´re there for a reason. I'm sure he's just copying > what Huang Zhen (the developer of this code) put in the project's RPM. swig is definitely used during compile (hence the BR), but I see no runtine dependency (so no Requires). Okay, found the pygtk requirement, so Requires: python-gtk stays. Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-3.src.rpm * Thu Feb 16 2006 Joost Soeterbroek <fedora> - 2.0.3-3 - removed Requires: python and gnutls - changed _libdir/ocf -> _prefix/lib/ocf - reversed subpackages depend on basepackage - removed Req swig (kept BuildReq) - added Req pygtk2 Okay, moving on.. :-) %package ldirectord Summary: Monitor daemon for maintaining high availability resources Group: System Environment/Daemons Requires: perl-libwww-perl Requires: perl-Crypt-SSLeay Requires: ipvsadm Requires: perl-HTML-Parser Requires: perl-LDAP #Requires: perl-Mail-IMAPClient Requires: perl-Net-DNS None of the perl stuff is needed as rpmbuild automatically picks up perl module dependencies. - Trying to install heartbeat gave me: useradd: cannot create directory /home/hacluster error: %pre(heartbeat-2.0.3-3.fc5.i386) scriptlet failed, exit status 12 error: install: %pre scriptlet failed (2), skipping heartbeat-2.0.3-3.fc5 The user creation section has to be changed. Fedora Extras packages can't create system users. You might check out http://fedoraproject.org/wiki/Packaging/UserCreation?action=show&redirect=PackageUserCreation Also, I get: useradd: cannot create directory /var/lib/heartbeat/cores/hacluster with the current useradd command, so I think you need to create the directory as part of the package (perhaps useradd doesn't use mkdir -p). - rpmlint: # rpmlint heartbeat-pils W: heartbeat-pils devel-file-in-non-devel-package /usr/lib/libpils.so ^ this should be in heartbeat-devel (or heartbeat-pils-devel) E: heartbeat-pils library-without-ldconfig-postin /usr/lib/libpils.so.1.0.0 E: heartbeat-pils library-without-ldconfig-postun /usr/lib/libpils.so.1.0.0 ^ needs: %post pils -p /sbin/ldconfig %postun pils -p /sbin/ldconfig # rpmlint heartbeat-stonith E: heartbeat-stonith library-without-ldconfig-postin /usr/lib/libstonith.so.1.0.0 E: heartbeat-stonith library-without-ldconfig-postun /usr/lib/libstonith.so.1.0.0 ^ needs: %post stonith -p /sbin/ldconfig %postun stonith -p /sbin/ldconfig W: heartbeat-stonith devel-file-in-non-devel-package /usr/lib/libstonith.so ^ should be in heartbeat-devel (or heartbeat-stonith-devel) # rpmlint -i heartbeat-ldirectord W: heartbeat-ldirectord devel-file-in-non-devel-package /usr/sbin/supervise-ldirectord-config A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. E: heartbeat-ldirectord incoherent-logrotate-file /etc/logrotate.d/ldirectord Your logrotate file should be named /etc/logrotate.d/<package name>. W: heartbeat-ldirectord non-conffile-in-etc /etc/logrotate.d/ldirectord A non-executable file in your package is being installed in /etc, but is not a configuration file. All non-executable files in /etc should be configuration files. Mark the file as %config in the spec file. E: heartbeat-ldirectord init-script-without-chkconfig-postin /etc/init.d/ldirectord The package contains an init script but doesn't contain a %post with a call to chkconfig. E: heartbeat-ldirectord init-script-without-chkconfig-preun /etc/init.d/ldirectord The package contains an init script but doesn't contain a %preun with a call to chkconfig. W: heartbeat-ldirectord service-default-enabled /etc/init.d/ldirectord The service is enabled by default after "chkconfig --add"; for security reasons, most services should not be. Use "-" as the default runlevel in the init script's chkconfig line to fix this if appropriate for this service. E: heartbeat-ldirectord subsys-not-used /etc/init.d/ldirectord While your daemon is running, you have to put a lock file in /var/lock/subsys/. To see an example, look at this directory on your machine and examine the corresponding init scripts. W: heartbeat-ldirectord incoherent-init-script-name ldirectord The init script name should be the same as the package name in lower case. (In reply to comment #22) Some questions regarding last comment #22: > None of the perl stuff is needed as rpmbuild automatically picks up perl module > dependencies. > Ok, fair enough. I did not know rpmbuild did this. > > - Trying to install heartbeat gave me: > > useradd: cannot create directory /home/hacluster > error: %pre(heartbeat-2.0.3-3.fc5.i386) scriptlet failed, exit status 12 > error: install: %pre scriptlet failed (2), skipping heartbeat-2.0.3-3.fc5 > > The user creation section has to be changed. Fedora Extras packages can't > create system users. You might check out > http://fedoraproject.org/wiki/Packaging/UserCreation?action=show&redirect=PackageUserCreation > I am not sure I understand what you mean by this. I think you want me to change this line: USEROPT="-g haclient -u 17 -d /var/lib/heartbeat/cores/hacluster" to: USEROPT="-g haclient -u $[ $(cat /etc/fedora/usermgmt/baseuid) + 17 ] -d /var/lib/heartbeat/cores/hacluster" Correct? > - rpmlint: > > # rpmlint heartbeat-pils > W: heartbeat-pils devel-file-in-non-devel-package /usr/lib/libpils.so > ^ this should be in heartbeat-devel (or heartbeat-pils-devel) > I am unsure what to do here: * Do *.so files always go in a seperate -devel package or just in this case? What to do with /usr/lib/pils/plugins/InterfaceMgr/generic.so file? * You know that /usr/lib/libpils.so symlinks to /usr/lib/libpils.so.1.0.0; should this also go in -devel package? > E: heartbeat-pils library-without-ldconfig-postin /usr/lib/libpils.so.1.0.0 > E: heartbeat-pils library-without-ldconfig-postun /usr/lib/libpils.so.1.0.0 > ^ needs: > %post pils -p /sbin/ldconfig > %postun pils -p /sbin/ldconfig If these files go to -devel package, then it should be %post devel -p /sbin/ldconfig correct? Regarding helper.sh It is *never* supposed to be executed on its own and should not have #!/bin/sh added to to it. (In reply to comment #23) > > I am not sure I understand what you mean by this. I think you want me to change > this line: > USEROPT="-g haclient -u 17 -d /var/lib/heartbeat/cores/hacluster" > to: > USEROPT="-g haclient -u $[ $(cat /etc/fedora/usermgmt/baseuid) + 17 ] -d > /var/lib/heartbeat/cores/hacluster" > Correct? > Well, if you can live without a fixed user id, drop the '-u 17'. If you need a fixed one, register with http://fedoraproject.org/wiki/Packaging/UserRegistry and use that offset rather than 17. I think I would drop the redirection to /dev/null as well. > > - rpmlint: > > > > # rpmlint heartbeat-pils > > W: heartbeat-pils devel-file-in-non-devel-package /usr/lib/libpils.so > > ^ this should be in heartbeat-devel (or heartbeat-pils-devel) > > > I am unsure what to do here: > * Do *.so files always go in a seperate -devel package or just in this case? > What to do with /usr/lib/pils/plugins/InterfaceMgr/generic.so file? > * You know that /usr/lib/libpils.so symlinks to > /usr/lib/libpils.so.1.0.0; should this also go in -devel package? > .so files always go in -devel (and just the .so links, not the actual libraries). > > E: heartbeat-pils library-without-ldconfig-postin /usr/lib/libpils.so.1.0.0 > > E: heartbeat-pils library-without-ldconfig-postun /usr/lib/libpils.so.1.0.0 > > ^ needs: > > %post pils -p /sbin/ldconfig > > %postun pils -p /sbin/ldconfig > > If these files go to -devel package They don't. (In reply to comment #24) > Regarding helper.sh > > It is *never* supposed to be executed on its own and should not have #!/bin/sh added to to it. If this is the case, then you can safely ignore the rpmlint warning here Joost. > USEROPT="-g haclient -u $[ $(cat /etc/fedora/usermgmt/baseuid) + 17 ] -d
> /var/lib/heartbeat/cores/hacluster"
> Correct?
No. The baseuid is not for immediate use. Use /usr/sbin/fedora-useradd
Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-5.src.rpm * Fri Feb 24 2006 Joost Soeterbroek <fedora> - 2.0.3-5 - added heartbeat to fedoraproject.org/wiki/Packaging/UserRegistry with uid 24 - group/useradd with fedora-usermgmt - added *.so file to -devel sub-package > %postun -p /sbin/ldconfig
> test "$1" != 0 || /usr/sbin/fedora-userdel hacluster &>/dev/null || :
> test "$1" != 0 || /usr/sbin/fedora-groupdel haclient &>/dev/null || :
This is broken. What "-p /sbin/ldconfig" does is making /sbin/ldconfig
the interpreter for the following lines up to the beginning of the next
section in the .spec file. Here you try to execute the two lines of shell
code with /sbin/ldconfig instead of the default /bin/sh used for RPM
scriptlets. Try "rpm --erase heartbeat" which gives fatal errors.
Need: Requires(post): /sbin/chkconfig Requires(preun): /sbin/chkconfig Change: %{_libdir}/pils/plugins to %{_libdir}/pils/ so that it owns the directory and everything below. You might want the devel files section to look like: %{_includedir}/heartbeat/ %{_includedir}/clplumbing/ %{_includedir}/saf/ %{_includedir}/ocf/ %{_includedir}/stonith/ %{_includedir}/pils/ To be clear that they are directories. Similar with %{_libdir}/stonith/ - Your *.so are duplicated in heartbeat and heartbeat-devel. Change file lines in heartbeat to: %{_libdir}/libapphb.so.* - Various programs are checked for a config time and not found: checking for lynx... no checking for ssh... no checking for scp... no checking for mail... no checking for raidstart... no checking for raidstop... no checking for mdadm... no checking for iptables... no checking for md5... no checking for drbdadm... no checking for drbdsetup... no I have no idea if this affects functionality or not... - Is this important? checking for owcimomd... no configure: WARNING: Cimom not found, MOF will not be installed! - Looks like the user ID might get hardcoded? HA user user id = "17" - Do you want to add snmp support? Probably just needs BuildRequires: net-snmp-devel. Build snmp subagent = "no" SNMP libraries = "" Probably also need an enable flag and another subpackage. - I think you need a BR: libtool-ltdl-devel , perhaps instead of BR: libtool (as it seems to use $(top_builddir)/libtool in either case), to get: Use system LTDL = "yes" rpmlint -i heartbeat (edited) W: heartbeat non-conffile-in-etc /etc/ha.d/README.config A non-executable file in your package is being installed in /etc, but is not a configuration file. All non-executable files in /etc should be configuration files. Mark the file as %config in the spec file. W: heartbeat dangling-symlink /etc/ha.d/resource.d/ldirectord /usr/sbin/ldirectord The symbolic link points nowhere. ^ I think this might be duplicate ownership: # rpm -qf /etc/ha.d/resource.d/ldirectord heartbeat-2.0.3-5.fc5 heartbeat-ldirectord-2.0.3-5.fc5 perhaps only in heartbeat-ldirectord W: heartbeat non-conffile-in-etc /etc/ha.d/shellfuncs A non-executable file in your package is being installed in /etc, but is not a configuration file. All non-executable files in /etc should be configuration files. Mark the file as %config in the spec file. W: heartbeat non-conffile-in-etc /etc/pam.d/hbmgmtd A non-executable file in your package is being installed in /etc, but is not a configuration file. All non-executable files in /etc should be configuration files. Mark the file as %config in the spec file. W: heartbeat service-default-enabled /etc/init.d/heartbeat The service is enabled by default after "chkconfig --add"; for security reasons, most services should not be. Use "-" as the default runlevel in the init script's chkconfig line to fix this if appropriate for this service. E: heartbeat subsys-not-used /etc/init.d/heartbeat While your daemon is running, you have to put a lock file in /var/lock/subsys/. To see an example, look at this directory on your machine and examine the corresponding init scripts. # rpmlint -i heartbeat-devel W: heartbeat-devel no-dependency-on heartbeat Should have a Requires: heartbeat = %{version}-%{release} in the devel package section. # rpmlint -i heartbeat-ldirectord W: heartbeat-ldirectord devel-file-in-non-devel-package /usr/sbin/supervise-ldirectord-config A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. E: heartbeat-ldirectord incoherent-logrotate-file /etc/logrotate.d/ldirectord Your logrotate file should be named /etc/logrotate.d/<package name>. W: heartbeat-ldirectord non-conffile-in-etc /etc/logrotate.d/ldirectord A non-executable file in your package is being installed in /etc, but is not a configuration file. All non-executable files in /etc should be configuration files. Mark the file as %config in the spec file. E: heartbeat-ldirectord init-script-without-chkconfig-postin /etc/init.d/ldirectord The package contains an init script but doesn't contain a %post with a call to chkconfig. E: heartbeat-ldirectord init-script-without-chkconfig-preun /etc/init.d/ldirectord The package contains an init script but doesn't contain a %preun with a call to chkconfig. W: heartbeat-ldirectord service-default-enabled /etc/init.d/ldirectord The service is enabled by default after "chkconfig --add"; for security reasons, most services should not be. Use "-" as the default runlevel in the init script's chkconfig line to fix this if appropriate for this service. E: heartbeat-ldirectord subsys-not-used /etc/init.d/ldirectord While your daemon is running, you have to put a lock file in /var/lock/subsys/. To see an example, look at this directory on your machine and examine the corresponding init scripts. W: heartbeat-ldirectord incoherent-init-script-name ldirectord The init script name should be the same as the package name in lower case. # rpmlint -i heartbeat-stonith E: heartbeat-stonith library-without-ldconfig-postin /usr/lib/libapphb.so.0.0.0 This package contains a library and provides no %post scriptlet containing a call to ldconfig. Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-6.src.rpm * Sat Feb 25 2006 Joost Soeterbroek <fedora> - 2.0.3-6 - fixed number of rpmlint warnings and errors - generate 'predictable' uid and gid with fedora-usermgmt to use with configure flag -with-ccmuser-id and groupadd, useradd - added Buildreq's: libtool-ltdl-devel, fedora-usermgmt-setup net-snmp-devel, bzip2-devel - removed *.so duplication in heartbeat and heartbeat-devel - changed file sections Builds in mock. There are still some libtool and rpmlint errors and warnings that I am not sure about what do do with.. (In reply to comment #33) > Builds in mock. There are still some libtool and rpmlint errors and warnings > that I am not sure about what do do with.. Please read the "rpmlint -i" messages and the packaging guidelines on the wiki for guidance. Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-7.src.rpm * Tue Feb 28 2006 Joost Soeterbroek <fedora> - 2.0.3-7 - fixed more rpmlint errors and warnings remaining rpmlint issues: W: heartbeat unstripped-binary-or-object /usr/bin/cl_status - I do not know how to fix. Is this warning safe to ignore? W: heartbeat dangling-symlink /etc/ha.d/resource.d/ldirectord /usr/sbin/ldirectord The symbolic link points nowhere. - I do not know how to fix. Is this warning safe to ignore? W: heartbeat dangerous-command-in-%postun userdel - I do not know how to fix. Is this warning safe to ignore? W: heartbeat-ldirectord devel-file-in-non-devel-package /usr/sbin/supervise-ldirectord-config A development file (usually source code) is located in a non-devel package. If you want to include source code in your package, be sure to create a development package. - I think this is an error on the part of rpmlint. I can not see any reason this file would be flagged as a 'development file', while it isn't. E: heartbeat-ldirectord incoherent-logrotate-file /etc/logrotate.d/ldirectord Your logrotate file should be named /etc/logrotate.d/<package name>. - Agree with the error, but changing /etc/logrotate.d/ldirectord to /etc/logrotate.d/heartbeat-ldirectord would mean changing a lot of non-trivial things in source package. Can we safely ignore this? W: heartbeat-ldirectord incoherent-init-script-name ldirectord The init script name should be the same as the package name in lower case. - same as above. Can we safely ignore this? (In reply to comment #35) > remaining rpmlint issues: > > W: heartbeat unstripped-binary-or-object /usr/bin/cl_status > - I do not know how to fix. Is this warning safe to ignore? Why isn't it stripped? What permissions does it get installed with? > W: heartbeat dangling-symlink /etc/ha.d/resource.d/ldirectord /usr/sbin/ldirectord > The symbolic link points nowhere. > - I do not know how to fix. Is this warning safe to ignore? This symlink is explicitly created in the spec file: ( cd $RPM_BUILD_ROOT/etc/ha.d/resource.d ln -s /usr/sbin/ldirectord ldirectord ) Is it pointing from the right place to the right place? > W: heartbeat dangerous-command-in-%postun userdel > - I do not know how to fix. Is this warning safe to ignore? Don't delete user or group accounts on package deletion, leave them there. > W: heartbeat-ldirectord devel-file-in-non-devel-package > /usr/sbin/supervise-ldirectord-config > A development file (usually source code) is located in a non-devel > package. If you want to include source code in your package, be sure to > create a development package. > - I think this is an error on the part of rpmlint. I can not > see any reason this file would be flagged as a > 'development file', while it isn't. It's probably the "-config" suffix of the name (without looking at the rpmlint code). Looks bogus to me too. > E: heartbeat-ldirectord incoherent-logrotate-file /etc/logrotate.d/ldirectord > Your logrotate file should be named /etc/logrotate.d/<package name>. > - Agree with the error, but changing /etc/logrotate.d/ldirectord > to /etc/logrotate.d/heartbeat-ldirectord would mean changing a > lot of non-trivial things in source package. Can we safely ignore > this? Why wouldn't it just be a "mv"? Having said that, heartbeat-ldirectord is a bit of a mouthful. > W: heartbeat-ldirectord incoherent-init-script-name ldirectord > The init script name should be the same as the package name in lower case. > - same as above. Can we safely ignore this? I'd say so, yes. (In reply to comment #35) > W: heartbeat unstripped-binary-or-object /usr/bin/cl_status > - I do not know how to fix. Is this warning safe to ignore? I can't reproduce, might be a local build issue. > W: heartbeat dangling-symlink /etc/ha.d/resource.d/ldirectord /usr/sbin/ldirectord > The symbolic link points nowhere. > - I do not know how to fix. Is this warning safe to ignore? > The link is in both heartbeat and heartbeat-ldirectord. Remove from heartbeat: --- heartbeat.spec.orig 2006-02-28 15:38:00.000000000 -0700 +++ heartbeat.spec 2006-02-28 16:50:52.000000000 -0700 @@ -200,6 +200,7 @@ %{_libdir}/libstonithd.so.* %{_prefix}/lib/ocf %{_sysconfdir}/ha.d/resource.d/ +%exclude %{_sysconfdir}/ha.d/resource.d/ldirectord %{_sysconfdir}/init.d/heartbeat %config(noreplace) %{_sysconfdir}/logrotate.d/heartbeat %dir %{_var}/lib/heartbeat > W: heartbeat dangerous-command-in-%postun userdel > - I do not know how to fix. Is this warning safe to ignore? As above, don't delete the user. > W: heartbeat-ldirectord devel-file-in-non-devel-package > /usr/sbin/supervise-ldirectord-config > A development file (usually source code) is located in a non-devel > package. If you want to include source code in your package, be sure to > create a development package. > - I think this is an error on the part of rpmlint. I can not > see any reason this file would be flagged as a > 'development file', while it isn't. Agreed. > E: heartbeat-ldirectord incoherent-logrotate-file /etc/logrotate.d/ldirectord > Your logrotate file should be named /etc/logrotate.d/<package name>. > - Agree with the error, but changing /etc/logrotate.d/ldirectord > to /etc/logrotate.d/heartbeat-ldirectord would mean changing a > lot of non-trivial things in source package. Can we safely ignore > this? > > W: heartbeat-ldirectord incoherent-init-script-name ldirectord > The init script name should be the same as the package name in lower case. > - same as above. Can we safely ignore this? > Yes, or alternative is to name the subpackage "ldirectord" instead of "heartbeat-ldirectord". %package -n ldirectord does this (and same for %files, %post, etc). Might be a good idea if it seems likely that this will be split off (the description indicates that it is "standalone"). > As above, don't delete the user.
Whether to delete a user in %postun depends merely on whether you can
erase _all_ traces of the package including any files it has created
at run-time owned by that user. If any files owned by that user remain
after package removal, the next package which creates a new user might
get the same uid and get access to the files, which bears a risk.
Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-8.src.rpm * Wed Mar 1 2006 Joost Soeterbroek <fedora> - 2.0.3-8 - specifically excluded ldirectord symlink from heartbeat package - removed user and group deletion in postun - renamed subpackages ldirectord, pils and stonith to lose prefix heartbeat by using -n package builds in mock rpmlint (virtually) clean - Big issue: You've changed the user creation: %define fuid $[ $(cat /etc/fedora/usermgmt/baseuid) + 24 ] %define guid $[ $(cat /etc/fedora/usermgmt/basegid) + 24 ] (configure) --with-ccmuser-id=%{fuid} \ %pre /usr/sbin/groupadd -g %{guid} -r haclient &>/dev/null || : /usr/sbin/useradd -u %{fuid} -r -s /sbin/nologin -d /var/lib/heartbeat/cores/hacluster -M \ -c 'heartbeat user' -g haclient hacluster &>/dev/null || : This won't work for several reasons: - /etc/fedora/usermgmt/baseuid/gid can be different on different machines. This is NOT constant across Fedora installs. - Michael Schwendt pointed out that baseuid is not ready for use, and to use fedora-useradd/group add instead. Now it *appears* that heartbeat requires a user id at build time, but the only place I see it used in the code is ./cts/CM_LinuxHAv2.py.in: self.rsh.remote_python_call(node, "os", "system", "chown @HA_CCMUID@ @HA_VARLIBDIR@/heartbeat/crm/cib.xml") which I believe could be changed to: ./cts/CM_LinuxHAv2.py.in: self.rsh.remote_python_call(node, "os", "system", "chown @HA_CCMUSER@ @HA_VARLIBDIR@/heartbeat/crm/cib.xml") since the username will be constant. - After looking at ConfigureMe, you are better off calling %configure with the appropriate options directly: %configure \ --disable-fatal-warnings \ --disable-static \ %if %{ENABLE_MGMT} --enable-mgmt %else --disable-mgmt - You need to fix up your Requires(pre/post/etc), especially when you move back to fedora-useradd/groupadd. Spec Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat.spec SRPM Name or Url: http://www.soeterbroek.com/linux/fedora/extras/heartbeat/heartbeat-2.0.3-9.src.rpm * Wed Mar 1 2006 Joost Soeterbroek <fedora> - 2.0.3-9 - changed user creation - added patch2 heartbeat-2.0.3-fedora-ccmuser.patch With the following: --- heartbeat.spec.orig 2006-03-01 13:30:52.000000000 -0700 +++ heartbeat.spec 2006-03-01 13:31:28.000000000 -0700 @@ -63,6 +63,8 @@ Summary: Monitor daemon for maintaining high availability resources Group: System Environment/Daemons Requires: ipvsadm +Requires(post): /sbin/chkconfig +Requires(preun):/sbin/chkconfig %description -n ldirectord ldirectord is a stand-alone daemon to monitor services of real @@ -71,7 +73,6 @@ and works with the heartbeat code (http://www.linux-ha.org/). %package -n stonith -#Requires: telnet Requires: pils = %{version}-%{release} Summary: Provides an interface to Shoot The Other Node In The Head Group: System Environment/Daemons It is APPROVED. Plague Job failed on arch x86_64 Build logs may be found at http://buildsys.fedoraproject.org/logs/fedora-development-extras/5703-heartbeat-2.0.3-9.fc5/ Could be due to a broken/incomplete libtool dependency chain in the libpils.la libtool archive. packacge built successfuly in plague: 5766 (heartbeat): Build on target fedora-development-extras succeeded. Hey Joost. Per your post on fedora-extras list: https://www.redhat.com/archives/fedora-extras-list/2007-February/msg00100.html I would be happy to take over maintainership of this package (heartbeat). I am setting the fedora-cvs flag here to request a cvsadmin change the ownership in the owners.list file. Thanks for packaging this! Why is fedora-cvs set to ? It is unclear. See comment #46. The current maintainer is going to orphan this package, and I said I would take over maintainership. This requires changes to owners.list. -Fedora Extras|heartbeat|Heartbeat subsystem for High-Availability Linux|joost.soeterbroek|extras-qa| +Fedora Extras|heartbeat|Heartbeat subsystem for High-Availability Linux|kevin|extras-qa| Sorry if I was unclear. |