Bug 679980

Summary: Review Request: octopuslb - TCP/IP Load Balancer
Product: [Fedora] Fedora Reporter: Al Reay <alreay1>
Component: Package ReviewAssignee: David Nalley <david>
Status: CLOSED INSUFFICIENT_DATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: david, fedora-package-review, mrunge, sergiobelkin, susi.lehtola
Target Milestone: ---Flags: david: fedora‑review?
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: Stalled Submitter
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-29 02:51:23 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Al Reay 2011-02-23 20:50:38 EST
Spec URL: http://octopuslb.sourceforge.net/octopus.spec
SRPM URL: http://octopuslb.sourceforge.net/octopus-1.10-1.fc13.src.rpm
Description: Hi there, this is my first Fedora package and I'm seeking a sponsor. Octopus is an extremely fast TCP load balancer with extensions for HTTP to allow balancing based on URI. Features include: server health checks and load polling, dynamic configuration, and the ability to carbon copy incoming requests.
Comment 1 Al Reay 2011-02-23 20:55:55 EST
rpmlint has run without any errors or warnings

[makerpm@legionx rpmbuild]$ rpmlint ./SPECS/octopus.spec ./RPMS/x86_64/octopus-1.10-1.fc13.x86_64.rpm ./SRPMS/octopus-1.10-1.fc13.src.rpm 
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
Comment 2 Susi Lehtola 2011-02-26 07:59:09 EST

"When naming a package, the name should match the upstream tarball or project name from which this software came."

Here, "octopus" is clearly the wrong name. IMHO the name of the package should be "octopus-load-balancer" or "octopuslb".

In addition to this load balancer, there is a GPL-licensed quantum chemistry program called Octopus
and also there seems to be something called Octopus on sourceforge as well
but it doesn't seem very active.
Comment 3 Al Reay 2011-02-27 17:32:01 EST
Hi Jussi,
thanks for the feedback I will update the RPM name to be "octopuslb" and then post new SRPM and SPEC file links
Comment 4 Michael Schwendt 2011-03-01 12:47:17 EST
* Please enter your real name in your bugzilla.redhat.com account preferences.
Currently, you are listed as "(none)" on the NEEDSPONSOR list, which isn't

> BuildRequires: net-snmp-devel >= 5.0, net-snmp-libs => 5.0, autoconf

Why autoconf? The spec file doesn't do anything with autoconf.

> Requires: net-snmp-libs >= 5.0



In case the file 'INSTALL' is the same as (or very similar to) /usr/share/autoconf/INSTALL, it is not relevant to RPM package users and only adds confusion.
Comment 5 Al Reay 2011-03-02 18:25:03 EST
Hi guys, thanks for the advice. 

I've actually made a new build of the software with all filesystem objects renamed to 'octopuslb' instead of just 'octopus'. I don't want to deal with the binaries being called one thing when using RPM files and other when using the source tar.gz.

I've added my real name to bugzilla, removed the explicit requires, autoconf from buildrequires, and the INSTALL file is no longer bundled with the RPM

Here are the current SPEC and SRPM files. Neither has any rpmlint errors or warnings.

Comment 6 Sergio Belkin 2011-03-06 17:05:26 EST
Hi Al,

Some quick note:

*Perhaps is not :

Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz

*net-snmp-libs => 5.0 is required to build?

*And Is BuildRoot and %clean section really needed?

Comment 7 Al Reay 2011-03-06 17:55:54 EST
Hi Sergio,

Thanks for that sourceforge link with downloads subdomain at the front. Much cleaner. I've made this changes in the spec file linked above.

About the "net-snmp-libs => 5.0" the libraries are needed. When installing "net-snmp-devel" this is a dependency. Does that mean I shouldn't bother listing the "libs" component as it'll be installed implicitly by yum?

You're right about the %clean section; I know that it's no longer neccessary for Fedora but keeping it in there means I can build for RHEL/EPEL using the same RPM. Does it cause any problems for Fedora?

Comment 8 Sergio Belkin 2011-03-06 19:28:30 EST
(In reply to comment #7)
> Hi Sergio,


> Thanks for that sourceforge link with downloads subdomain at the front. Much
> cleaner. I've made this changes in the spec file linked above.
> About the "net-snmp-libs => 5.0" the libraries are needed. When installing
> "net-snmp-devel" this is a dependency. Does that mean I shouldn't bother
> listing the "libs" component as it'll be installed implicitly by yum?

Try to build it with mock or koji removing net-snmp-libs from BuildRequires. It looks like it's not needed.

Take a look at:


> You're right about the %clean section; I know that it's no longer neccessary
> for Fedora but keeping it in there means I can build for RHEL/EPEL using the
> same RPM. Does it cause any problems for Fedora?

AFAIK it doesn't

As you changed the spec, you should make the proper changes to EVR and changelog.

> Cheers
> Al
Comment 9 Al Reay 2011-03-06 20:20:13 EST
Thanks for that; I did a koji build for f13-updates and f15 with "net-snmp-libs" omitted and it was automatically added as a dependency in both cases. I've updated the EVR and changelog in the SPEC file too.


I appreciate your help Sergio.

Here are the new links

Comment 10 Matthias Runge 2011-09-01 09:09:52 EDT
To make some progress here,

did you do some informal reviews or did you introduce yourself?
Please refer for the details

Comment 11 Matthias Runge 2011-09-01 09:14:19 EDT
just a small note: you should download sources using wget, to prevent warnings like the following
rpmlint /home/mrunge/rpmbuild/SRPMS/octopuslb-1.11-2.fc15.src.rpm

octopuslb.src: W: file-size-mismatch octopuslb-1.11.tar.gz = 135518, http://downloads.sourceforge.net/octopuslb/octopuslb-1.11.tar.gz = 135464
Comment 12 Al Reay 2011-09-07 18:43:26 EDT
Thanks Matthias,
I'll upgrade the RPM to the latest upstream, make a systemd script, go through and re-reintroduce myself to the mailing list and take it from there.
Comment 13 Al Reay 2011-09-15 19:29:49 EDT
New Spec file and SRPM for version 1.13 including systemd service script. rpmlint is happy about it all (apart from the spell checker not acknowledging the word 'balancer')

Comment 15 David Nalley 2011-09-15 22:41:37 EDT
I'll work on a review for this tomorrow - In the meantime feel free to pick up a few more unofficial reviews, and link to them in this review. 

Thanks for taking initiative on this.
Comment 16 David Nalley 2011-09-25 13:45:20 EDT
Sorry that it has taken me this long to circle back around. 
The package looks good. Review follows. If you don't mind, can you list the package reviews you have done in this ticket as well? 

OK MUST: rpmlint must be run on every package

False positive
[ke4qqq@nalleyx200 SPECS]$ rpmlint ./octopuslb.spec ../SRPMS/octopuslb-1.13-1.fc15.src.rpm ../RPMS/x86_64/octopuslb-*
octopuslb.src: W: spelling-error %description -l en_US balancer -> balance, balances, balanced
octopuslb.x86_64: W: spelling-error %description -l en_US balancer -> balance, balances, balanced
3 packages and 1 specfiles checked; 0 errors, 2 warnings.

OK MUST: The package must be named according to the Package Naming 
OK MUST: The spec file name must match the base package %{name} [...]
[      ] MUST: The package must meet the Packaging Guidelines
OK MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines
OK MUST: The License field in the package spec file must match the 
         actual license
OK MUST: If (and only if) the source package includes the text of the 
         license(s) in its own file, then that file, containing the text of 
         the license(s) for the package must be included in %doc
OK MUST: The spec file must be written in American English.
OK MUST: The spec file for the package MUST be legible.
OK MUST: The sources used to build the package must match the upstream 
         source, as provided in the spec URL. Reviewers should use md5sum for 
         this task. If no upstream URL can be specified for this package, 
         please see the Source URL Guidelines for how to deal with this.
[ke4qqq@nalleyx200 SOURCES]$ md5sum octopuslb-1.13.tar.gz*
96006009e6a0f91496af3807e604f404  octopuslb-1.13.tar.gz
96006009e6a0f91496af3807e604f404  octopuslb-1.13.tar.gz.1
OK MUST: The package MUST successfully compile and build into binary 
         rpms on at least one primary architecture
NA MUST: If the package does not successfully compile, build or work on 
         an architecture, then those architectures should be listed in the 
         spec in ExcludeArch. Each architecture listed in ExcludeArch MUST 
         have a bug filed in bugzilla, describing the reason that the package 
         does not compile/build/work on that architecture. The bug number MUST 
         be placed in a comment, next to the corresponding ExcludeArch line
OK MUST: All build dependencies must be listed in BuildRequires, except 
         for any that are listed in the exceptions section of the Packaging 
         Guidelines ; inclusion of those as BuildRequires is optional. Apply 
         common sense.
NA MUST: The spec file MUST handle locales properly. This is done by 
         using the %find_lang macro. Using %{_datadir}/locale/* is strictly 
NA MUST: Every binary RPM package (or subpackage) which stores shared 
         library files (not just symlinks) in any of the dynamic linker's 
         default paths, must call ldconfig in %post and %postun.
NA MUST: If the package is designed to be relocatable, the packager must 
         state this fact in the request for review, along with the 
         rationalization for relocation of that specific package. Without 
         this, use of Prefix: /usr is considered a blocker.
OK MUST: A package must own all directories that it creates. If it does 
         not create a directory that it uses, then it should require a package 
         which does create that directory.
OK MUST: A package must not contain any duplicate files in the %files 
OK MUST: Permissions on files must be set properly. Executables should 
         be set with executable permissions, for example. Every %files section 
         must include a %defattr(...) line.
OK MUST: Each package must have a %clean section, which contains rm -rf
         %{buildroot} (or $RPM_BUILD_ROOT).
OK MUST: Each package must consistently use macros.
OK MUST: The package must contain code, or permissable content.
NA MUST: Large documentation files must go in a -doc subpackage. (The 
         definition of large is left up to the packager's best judgement, but 
         is not restricted to size. Large can refer to either size or 
OK MUST: If a package includes something as %doc, it must not affect the 
         runtime of the application. To summarize: If it is in %doc, the 
         program must run properly if it is not present.
NA MUST: Header files must be in a -devel package.
NA MUST: Static libraries must be in a -static package.
OK MUST: Packages containing pkgconfig(.pc) files must 'Requires: 
         pkgconfig' (for directory ownership and usability).
NA MUST: If a package contains library files with a suffix (e.g. 
         libfoo.so.1.1), then library files that end in .so (without suffix) 
         must go in a -devel package.
NA MUST: In the vast majority of cases, devel packages must require the 
         base package using a fully versioned dependency: Requires: %{name} =
OK MUST: Packages must NOT contain any .la libtool archives, these must 
         be removed in the spec if they are built.
NA MUST: Packages containing GUI applications must include a
         %{name}.desktop file, and that file must be properly installed with 
         desktop-file-install in the %install section. If you feel that your 
         packaged GUI application does not need a .desktop file, you must put 
         a comment in the spec file with your explanation.
OK MUST: Packages must not own files or directories already owned by 
         other packages. The rule of thumb here is that the first package to 
         be installed should own the files or directories that other packages 
         may rely upon. This means, for example, that no package in Fedora 
         should ever share ownership with any of the files or directories 
         owned by the filesystem or man package. If you feel that you have a 
         good reason to own a file or directory that another package owns, 
         then please present that at package review time.
OK MUST: At the beginning of %install, each package MUST run rm -rf
         %{buildroot} (or $RPM_BUILD_ROOT).
OK MUST: All filenames in rpm packages must be valid UTF-8.
Comment 17 Al Reay 2011-09-27 04:43:10 EDT
Hi David,
Thanks for the comprehensive review there.

The packages I have informally review are as below


I'm going to get the F16 RC3 candidate tomorrow and get testing on that too.

Comment 18 Matthias Runge 2012-03-24 15:12:47 EDT
Any progress here? Al, did you do some other reviews?
Comment 19 Matthias Runge 2012-12-14 04:12:48 EST
Another ping. Al, are you still interested?