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 1174097 - Review Request: nodebrain - Rule Engine for State and Event Monitoring
Summary: Review Request: nodebrain - Rule Engine for State and Event Monitoring
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: NotReady
Depends On:
Blocks: FE-NEEDSPONSOR FE-DEADREVIEW
TreeView+ depends on / blocked
 
Reported: 2014-12-15 06:44 UTC by Ed Trettevik
Modified: 2020-08-10 00:50 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-08-10 00:50:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Ed Trettevik 2014-12-15 06:44:09 UTC
Spec URL: http://nodebrain.org/package/nb/version/0.9/release/0.9.03/file/nodebrain.spec.txt

SRPM URL: http://nodebrain.org/package/nb/version/0.9/release/0.9.03/file/nodebrain-0.9.03-1.el6.src.rpm

Description: 

NodeBrain is a rule engine for construction of state and event monitoring
applications. It interacts with other monitoring components to perform
simple element state monitoring or complex event correlation based on user
specified rules. It is extended through the development of plug-in modules
using the C API, and servant programs that may be written in any language
to interact with the rule engine via standard input, output, and error. The
package includes a small set of plug-in modules to provide capabilities
often required for monitoring applications.

Fedora Account System Username: Trettevik

This is my first request and I need a sponsor.  A review request was submit by John Ellson in 2011 as bug 592504.  It was reviewed by Jason Tibbitts, but the ticket was closed when John was unable to follow up.  I believe I've addressed all the issues identified by Jason.

I am the upstream developer of NodeBrain and my motive in submitting this request is to make it more convenient for others to use NodeBrain as a rule engine component in monitoring applications they develop.  For users in large enterprises my hope is for this package to eventually make it into RHEL for convenient use, which was John Ellson's original motive in submitting the package.

This package built successfully on multiple platforms, include Fedora 17, 18, 19 and 20 at the openSUSE Build Service, https://build.opensuse.org/package/show/home:trettevik/nodebrain. I've tried to follow the Fedora packaging guidelines, but am prepared to respond quickly to an suggestions or issues identified by reviewers.

Ed Tretttevik
eat

Comment 1 Ed Trettevik 2014-12-16 01:18:49 UTC
Here's a link to koji build results for targets f22, f21, f19, and f20.

http://nodebrain.org/package/nb/version/0.9/release/0.9.03/file/koji.txt

The initial attempt for f20 had two failures.  I don't know enough about koji builds yet to find the referenced root.log to investigate, but will continue browsing the documentation.  A second attempt was successful---at bottom of linked paged.

Comment 2 Ed Trettevik 2014-12-16 15:50:37 UTC
Here are the links to the NodeBrain koji scratch builds.

f19 http://koji.fedoraproject.org/koji/taskinfo?taskID=8392033
f20 http://koji.fedoraproject.org/koji/taskinfo?taskID=8392110
f21 http://koji.fedoraproject.org/koji/taskinfo?taskID=8391318
f22 http://koji.fedoraproject.org/koji/taskinfo?taskID=8391202

The build with target f20 that failed, prior to the successful build on retry, shows what looks like a temporary connection error in root.log. (http://koji.fedoraproject.org/koji/taskinfo?taskID=8391841).  

DEBUG util.py:283:  http://kojipkgs.fedoraproject.org//repos/f20-build/439790/armhfp/toplink/packages/gettext/0.18.3.2/3.fc20/armv7hl/gettext-0.18.3.2-3.fc20.armv7hl.rpm: [Errno 14] curl#7 - "Failed connect to kojipkgs.fedoraproject.org:80; Connection refused"

So my package seems to build ok.  However, I see comments about %license and %defattr in other package reviews that may apply, so I'll investigate that a bit and update the spec file if appropriate.

Comment 3 Ed Trettevik 2014-12-21 21:47:29 UTC
Spec URL: http://nodebrain.org/package/nb/version/0.9/release/0.9.03/file/nodebrain-0.9.03-3.spec.txt
SRPM URL: http://nodebrain.org/package/nb/version/0.9/release/0.9.03/file/nodebrain-0.9.03-3.fc21.src.rpm

Scratch build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8455276

Responded to comments seen in other reviews about license and group.

Have been including the spec file upstream to support "make rpm", so it has conditionals to attempt conformance with Fedora Packaging Policy as well as multiple versions of other distributions.  Hope the conditionals are not too much of an annoyance to reviewers.  Can maintain a Fedora specific spec file if preferred.

Comment 4 Ed Trettevik 2014-12-30 18:26:09 UTC
Spec URL: http://nodebrain.org/fedora/nodebrain-0.9.03-4/nodebrain.spec
SRPM URL: http://nodebrain.org/fedora/nodebrain-0.9.03-4/nodebrain-0.9.03-4.f22.src.rpm

koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8497126

Made additional modifications based on fedora-review using prebuilt option on download of scratch build.  Modified spec url in attempt to get fedora-review -b 1174097 to find it.

Comment 6 Ed Trettevik 2014-12-31 04:04:51 UTC
Spec URL: http://nodebrain.org/fedora/nodebrain-0.9.03-5/nodebrain.spec
SRPM URL: http://nodebrain.org/fedora/nodebrain-0.9.03-5/nodebrain-0.9.03-5.fc21.src.rpm

koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8503433

Updates following a more complete fedora-review using -b option.

Comment 7 Ed Trettevik 2014-12-31 06:12:21 UTC
This is an unofficial informal practice review on my own package.  

Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[*] = Packager has considered and believes the package is compliant with policy.


Issues:
=======
- 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 is included in %doc.
  Note: Cannot find COPYING in rpm(s)
  See:
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

  - using %license instead of %doc for COPYING file
  - /usr/share/licenses/nodebrain/COPYING found after install 

===== MUST items =====

C/C++:
[*]: Package does not contain kernel modules.
[*]: Package contains no static executables.
     - Shared executables in main package, separate nodebrain-static package
[*]: Development (unversioned) .so files in -devel subpackage, if present.
     Note: Unversioned so-files in private %_libdir subdirectory (see
     attachment). Verify they are not in ld path.
     - not in ld path, these are plug-in modules in versioned subdirectory
[x]: Header files in -devel subpackage, if present.
[x]: ldconfig called in %post and %postun if required.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[*]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
     - MIT License
[*]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "GPL (v3 or later)", "Unknown or generated". 180 files have unknown
     license. 
     - File headers reference MIT License or equivalent NodeBrain License
     - Both provided in COPYING file
[*]: License file installed when any subpackage combination is installed.
[*]: %build honors applicable compiler flags or justifies otherwise.
[*]: Package contains no bundled libraries without FPC exception.
[*]: Changelog in prescribed format.
[*]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[*]: Development files must be in a -devel package
[*]: Package uses nothing in %doc for runtime.
[*]: Texinfo files are installed using install-info in %post and %preun if
     package has .info files.
     Note: Texinfo .info file(s) in nodebrain
[*]: Package consistently uses macros (instead of hard-coded directory names).
[*]: Package is named according to the Package Naming Guidelines.
[?]: Package does not generate any conflict.
[*]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[*]: Requires correct, justified where necessary.
[*]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[*]: Useful -debuginfo package or justification otherwise.
[*]: Package is not known to require an ExcludeArch tag.
[*]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 112640 bytes in 7 files.
[*]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
     - nodebrain-devel.x86_64: W: only-non-binary-in-usr-lib
     - Only installing libnb.so symbolic link to libnb.so.0 
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install' ' DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package do not use a name that already exist
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: Static libraries in -static or -devel subpackage, providing -devel if
     present.
     Note: Package has .a files: nodebrain-static.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

===== SHOULD items =====

Generic:
[*]: Buildroot is not present
     Note: Buildroot: present but not needed
     - Buildroot is conditionally present for other platforms - not for Fedora >= 19
[*]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
     Note: %clean present but not required
     - %clean section is conditionally present for other platforms - not Fedora >= 19
[-]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
	 - license text included
[*]: Final provides and requires are sane (see attachments).
[!]: Fully versioned dependency in subpackages if applicable.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in nodebrain-
     devel , nodebrain-static
     - using Requires: nodebrain = %{version}-%{release}
     - will change to %{name}%{?_isa}
[?]: Package functions as described.
[*]: Latest version is packaged.
[*]: Package does not include license text files separate from upstream.
[*]: Patches link to upstream bugs/comments/lists or are otherwise justified.
     - Patches have been applied upstream for next release
[*]: Scriptlets must be sane, if used.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[*]: Package should compile and build into binary rpms on all supported
     architectures.
[*]: %check is present and all tests pass.
[*]: Packages should try to preserve timestamps of original installed files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Uses parallel make %{?_smp_mflags} macro.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: nodebrain-0.9.03-5.fc21.x86_64.rpm
          nodebrain-devel-0.9.03-5.fc21.x86_64.rpm
          nodebrain-static-0.9.03-5.fc21.x86_64.rpm
          nodebrain-0.9.03-5.fc21.src.rpm
nodebrain-devel.x86_64: W: only-non-binary-in-usr-lib
4 packages and 0 specfiles checked; 0 errors, 1 warnings.

- This is libnb.so symbolic link to libnb.so.0

Rpmlint (installed packages)
----------------------------
^[]0;<mock-chroot>^G<mock-chroot>[root@ip-172-31-6-11 /]# rpmlint nodebrain nodebrain-devel nodebrain-static
nodebrain-devel.x86_64: W: only-non-binary-in-usr-lib
3 packages and 0 specfiles checked; 0 errors, 1 warnings.
^[]0;<mock-chroot>^G<mock-chroot>[root@ip-172-31-6-11 /]# echo 'rpmlint-done:'

Requires
--------
nodebrain (rpmlib, GLIBC filtered):
    /bin/sh
    /sbin/install-info
    /sbin/ldconfig
    libc.so.6()(64bit)
    libcrypto.so.10()(64bit)
    libcrypto.so.10(libcrypto.so.10)(64bit)
    libdl.so.2()(64bit)
    libedit.so.0()(64bit)
    libm.so.6()(64bit)
    libnb.so.0()(64bit)
    libpcre.so.1()(64bit)
    libssl.so.10()(64bit)
    libssl.so.10(libssl.so.10)(64bit)
    rtld(GNU_HASH)

nodebrain-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    glibc-devel
    libnb.so.0()(64bit)
    nodebrain
    openssl-devel
    pcre-devel
    pkgconfig

nodebrain-static (rpmlib, GLIBC filtered):
    nodebrain-devel

Provides
--------
nodebrain:
    libnb.so.0()(64bit)
    nodebrain
    nodebrain(x86-64)

nodebrain-devel:
    nodebrain-devel
    nodebrain-devel(x86-64)
    pkgconfig(nb)

nodebrain-static:
    nodebrain-static
    nodebrain-static(x86-64)

Unversioned so-files  [plug-in modules in versioned subdirectory]
--------------------
nodebrain: /usr/lib64/nb-0/nb_audit.so
nodebrain: /usr/lib64/nb-0/nb_baseline.so
nodebrain: /usr/lib64/nb-0/nb_cache.so
nodebrain: /usr/lib64/nb-0/nb_console.so
nodebrain: /usr/lib64/nb-0/nb_mail.so
nodebrain: /usr/lib64/nb-0/nb_message.so
nodebrain: /usr/lib64/nb-0/nb_netflow.so
nodebrain: /usr/lib64/nb-0/nb_peer.so
nodebrain: /usr/lib64/nb-0/nb_pipe.so
nodebrain: /usr/lib64/nb-0/nb_servant.so
nodebrain: /usr/lib64/nb-0/nb_set.so
nodebrain: /usr/lib64/nb-0/nb_snmptrap.so
nodebrain: /usr/lib64/nb-0/nb_string.so
nodebrain: /usr/lib64/nb-0/nb_syslog.so
nodebrain: /usr/lib64/nb-0/nb_toy.so
nodebrain: /usr/lib64/nb-0/nb_translator.so
nodebrain: /usr/lib64/nb-0/nb_tree.so
nodebrain: /usr/lib64/nb-0/nb_udp.so
nodebrain: /usr/lib64/nb-0/nb_webster.so

Source checksums
----------------
http://downloads.sourceforge.net/nodebrain/nodebrain-0.9.03.tar.gz :
  CHECKSUM(SHA256) this package     : e9fce23525da8c6b3e553492b724eb2122faf22aed92ed45b15c6018eb643fef
  CHECKSUM(SHA256) upstream package : e9fce23525da8c6b3e553492b724eb2122faf22aed92ed45b15c6018eb643fef


Generated by fedora-review 0.5.2 (63c24cb) last change: 2014-07-14
Command line :/usr/bin/fedora-review -b 1174097
Buildroot used: fedora-21-x86_64   [rawhide preferred]
Active plugins: Generic, Shell-api, C/C++
Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, EPEL5, BATCH, DISTTAG

Comment 8 Ed Trettevik 2014-12-31 08:12:59 UTC
Spec URL: http://nodebrain.org/fedora/nodebrain-0.9.03-6/nodebrain.spec
SRPM URL: http://nodebrain.org/fedora/nodebrain-0.9.03-6/nodebrain-0.9.03-6.fc21.src.rpm

koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8503730

Changed subpackage fully versioned dependency on main package to use %{name}%{?_isa} instead of hard coded package name.

Comment 9 Christopher Meng 2014-12-31 12:31:21 UTC
This doesn't match our requirement:

1. # Group will be dropped when no distribution complains
%if 0%{?rhel} || 0%{?centos} 
Group: Development/Languages
%else
# Drop group for fedora now, keep for others
%if 0%{?fedora} == 0
Group: Development/Languages/Other
%endif
%endif

Please, just drop them unless you're gonna package this for EPEL5.

2. Source: http://downloads.sourceforge.net/nodebrain/nodebrain-0.9.03.tar.gz
Patch: nodebrain-0.9.03-messages.patch
URL: http://nodebrain.org/

It's better to put URL tag above the Source tag.

And, for the link in the source, use %version macro will help you reduce the time to update the URL.

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

3. %if 0%{?fedora} >= 19 || 0%{?rhel} >= 6 || 0%{?centos} >= 6 || 0%{?suse_version} >= 1200
%else
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%endif 

I don't want to see any SUSE stuffs in Fedora package, I hope you can drop that.

And for the buildroot tag, you don't need to use such a long conditional line to satisfy the rpmlint or whatever, just drop this.

4. %if 0%{?fedora} >= 19 || 0%{?centos} >= 6 || 0%{?suse_version} >= 1200
BuildRequires: pkgconfig(libedit) pkgconfig(libpcre) pkgconfig(openssl) gettext pkgconfig
%else
BuildRequires: pcre-devel openssl-devel gettext pkgconfig
%endif

I think it's just a waste of space. It doesn't mean that Fedora 18 can't do this job.

5. 
%prep
%setup -q 
%patch -p1
%build
%configure 
make %{?_smp_mflags}

I hope you can leave a blank line above the %build.

6. %if 0%{?fedora} >= 19 || 0%{?rhel} >= 6 || 0%{?centos} >= 6 || 0%{?suse_version} >= 1200
%else
%clean
rm -rf %{buildroot}
%endif

Same applies to this.

7. Static packages are not welcome.


https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

8. Requires:       pkgconfig
Requires:       %{name}%{?_isa} = %{version}-%{release}
Requires:       pcre-devel
Requires:       openssl-devel
Requires:       glibc-devel

Drop R line of pkgconfig, if you install a pkgconfig file in this package, RPM will pick this dependency up automatically.

9. For the %{?_isa} macro, you should use it everywhere in -devel:

https://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package

10. %{_libdir}/*.so
%exclude %{_libdir}/*.so.*
%exclude %{_libdir}/nb-0

We always do like this:

%files
%{_libdir}/*.so.*

%files devel
%{_libdir}/*.so

Put your plugins in main packages as well, as you've put them to a nb-0 directory, I think it's OK. But don't misinclude other unversioned library files in the main package.

11. I think you don't have to mention glibc in most of packages, it's a default dep of the basic system.

Comment 10 Ed Trettevik 2014-12-31 22:11:40 UTC
Spec URL: http://nodebrain.org/fedora/nodebrain-0.9.03-7/nodebrain.spec
SRPM URL: http://nodebrain.org/fedora/nodebrain-0.9.03-7/nodebrain-0.9.03-7.fc21.src.rpm

koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=8508317

Thank you very much for the review. Think I've implemented all your recommended changes.

Comment 11 Ed Trettevik 2015-01-06 23:08:34 UTC
Package requires modification to comply with Packaging:CryptoPolicies.  Flagged as NotReady for now and will provide an update.

Comment 12 Upstream Release Monitoring 2015-10-09 18:56:42 UTC
trettevik's scratch build of nodebrain-0.10.0-1.fc22.src.rpm for f23 completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11388595

Comment 13 Package Review 2020-07-10 00:51:07 UTC
This is an automatic check from review-stats script.

This review request ticket hasn't been updated for some time. We're sorry
it is taking so long. If you're still interested in packaging this software
into Fedora repositories, please respond to this comment clearing the
NEEDINFO flag.

You may want to update the specfile and the src.rpm to the latest version
available and to propose a review swap on Fedora devel mailing list to increase
chances to have your package reviewed. If this is your first package and you
need a sponsor, you may want to post some informal reviews. Read more at
https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group.

Without any reply, this request will shortly be considered abandoned
and will be closed.
Thank you for your patience.

Comment 14 Package Review 2020-08-10 00:50:28 UTC
This is an automatic action taken by review-stats script.

The ticket submitter failed to clear the NEEDINFO flag in a month.
As per https://fedoraproject.org/wiki/Policy_for_stalled_package_reviews
we consider this ticket as DEADREVIEW and proceed to close it.


Note You need to log in before you can comment on or make changes to this bug.