Bug 1117077 - Review Request: accumulo - A software platform for processing vast amounts of data
Summary: Review Request: accumulo - A software platform for processing vast amounts of...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Mikolaj Izdebski
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: bigdata-review 1089196
TreeView+ depends on / blocked
 
Reported: 2014-07-08 01:06 UTC by Christopher Tubbs
Modified: 2014-07-15 08:52 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-07-15 08:52:53 UTC
Type: ---
Embargoed:
mizdebsk: fedora-review+
kevin: fedora-cvs+


Attachments (Terms of Use)

Description Christopher Tubbs 2014-07-08 01:06:08 UTC
Spec URL: http://ctubbsii.fedorapeople.org/packages/reviews/accumulo.spec
SRPM URL: http://ctubbsii.fedorapeople.org/packages/reviews/accumulo-1.6.0-1.fc21.src.rpm
Description: Apache Accumulo
Fedora Account System Username: ctubbsii

This package provides all the jars for Accumulo. There's a few kinks to work out in the startup scripts to run the services, and I think there's probably some other improvements to be made, but the basic compiled code is available and ready for use as dependencies for other apps.

Comment 1 Christopher Meng 2014-07-08 04:39:21 UTC
What is "1.6.0 packaging"?

Comment 2 Mikolaj Izdebski 2014-07-08 08:40:22 UTC
Removing block on FE-NEEDSPONSOR, ctubbsii has already been sponsored.

Comment 3 Christopher Meng 2014-07-08 08:53:18 UTC
Yes my bad, the pkgdb still cna't get refresh.

But it seems that the sponsoring process is quite easy, where is the informal reviews?

http://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group#Show_Your_Expertise_by_Commenting_on_other_Review_Requests

Comment 4 Mikolaj Izdebski 2014-07-08 08:57:21 UTC
There are other ways of showing experience, its up to the sponsor to decide. In this case packaging something non-trivial in a good way was more than enough for me.

Comment 5 Christopher Tubbs 2014-07-08 14:20:50 UTC
(In reply to Christopher Meng from comment #1)
> What is "1.6.0 packaging"?

Sorry for the confusing subject. I was trying to find an appropriate description for the subject and couldn't think of a better one. I just meant that this package is from the upstream version 1.6.0.

Comment 6 Mikolaj Izdebski 2014-07-08 14:27:03 UTC
(In reply to Christopher Tubbs from comment #5)
> (In reply to Christopher Meng from comment #1)
> > What is "1.6.0 packaging"?
> 
> Sorry for the confusing subject. I was trying to find an appropriate
> description for the subject and couldn't think of a better one. I just meant
> that this package is from the upstream version 1.6.0.

Fixed. The subject was supposed to match package summary (aka short description).

Let me know when the package is ready for review. It doesn't need to be perfect, I'll go through it and point any blocker problems and add some suggestions if needed.

Comment 7 Christopher Tubbs 2014-07-08 14:45:39 UTC
Okay, I'm removing NotReady for review.

Comment 8 Mikolaj Izdebski 2014-07-08 16:00:33 UTC
I did partial review, the problems I found so far are below.
I will continue the review once these problems are fixed.

1) Invalid license tags for some subpackages.  If unspecified, license
   tags are inherited from the previous package, so they need to be
   explicitly reset in a few packages.

2) Prebuilt bundled binaries in server/monitor/src/main/resources/web.
   There are 2 problems with some code in the above location:

   * Bundled libraries are not allowed in Fedora.  Bundled files must
     be removed and packaged separately.

   * Prebuilt binaries are not allowed in Fedora - everything must be
     built from source.  Obfuscated or "minified" code is not "real"
     source code in terms of neither The Free Software Definition [1]
     nor The Open Source Definition [2].  Prebuild code must not be
     installed.

3) accumulo-native should respect Fedora default compiler flags
   ($RPM_OPT_FLAGS and $RPM_LD_FLAGS).

4) IMO fedora-integration.patch should be split into separate parts
   for better readability (one for different version of commons-math,
   one for skipping some tests and so on), but this is not a blocker.

5) Reason for skipping tests should be documented. Also, some tests
   are skipped with a patch, which seems redundant.

6) Config files should probably be marked as %config(noreplace) to
   prevent RPM from overwriting user config during update.

[1] http://www.gnu.org/philosophy/free-sw.html
[2] http://opensource.org/osd

Comment 9 Christopher Tubbs 2014-07-08 18:42:21 UTC
(In reply to Mikolaj Izdebski from comment #8)

I've updated the SPEC and SRPM linked above to address the above issues. I disabled the optional monitor module for now, until the flot/jquery libraries can be addressed.

Comment 10 Mikolaj Izdebski 2014-07-08 19:54:36 UTC
Package Review
==============

Legend:
[x] = Pass, [-] = Not applicable


Issues:
=======
- Package must own all directories that it creates.
  Directories without owner:
    /usr/share/maven-poms/accumulo (should be owned by core)
    /usr/lib/java/accumulo (should be owned by tserver)
- These BR are not needed: make gcc-c++
  See: http://fedoraproject.org/wiki/Packaging/Guidelines#Exceptions_2
- Scriplets calling ldconfig should be removed because the installed .so
  file is not in default linker searth path
- Description lines must be limited to 80 characters, see rpmlint output
  below (there is one lite that is too long)


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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[-]: Development (unversioned) .so files in -devel subpackage, if present.
[x]: Package does not contain any libtool archives (.la)
[x]: Rpath absent or only used for internal libs.

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
[x]: License file installed when any subpackage combination is installed.
[x]: Package requires other packages for directories it uses.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[x]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[x]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[x]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[-]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
[x]: 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.
[x]: 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.
[x]: Package does not own files or directories owned by other packages.
[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]: 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]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local
[x]: Permissions on files are set properly.

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

Generic:
[x]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[x]: Fully versioned dependency in subpackages if applicable.
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise justified.
[x]: Scriptlets must be sane, if used.
[x]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[-]: %check is present and all tests pass.
[x]: 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]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: Dist tag is present (not strictly required in GL).
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[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.


Rpmlint
-------
Checking: accumulo-1.6.0-1.fc21.x86_64.rpm
          accumulo-core-1.6.0-1.fc21.noarch.rpm
          accumulo-server-base-1.6.0-1.fc21.noarch.rpm
          accumulo-master-1.6.0-1.fc21.noarch.rpm
          accumulo-tserver-1.6.0-1.fc21.noarch.rpm
          accumulo-gc-1.6.0-1.fc21.noarch.rpm
          accumulo-tracer-1.6.0-1.fc21.noarch.rpm
          accumulo-examples-1.6.0-1.fc21.noarch.rpm
          accumulo-native-1.6.0-1.fc21.x86_64.rpm
          accumulo-javadoc-1.6.0-1.fc21.noarch.rpm
          accumulo-1.6.0-1.fc21.src.rpm
accumulo.x86_64: E: no-binary
accumulo.x86_64: W: no-documentation
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/accumulo-metrics.xml accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/accumulo-metrics.xml 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/accumulo-env.sh accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/accumulo-env.sh 0750L
accumulo-core.noarch: E: non-standard-executable-perm /etc/accumulo/accumulo-env.sh 0750L
accumulo-core.noarch: E: executable-marked-as-config-file /etc/accumulo/accumulo-env.sh
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/auditLog.xml accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/auditLog.xml 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/monitor_logger.xml accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/monitor_logger.xml 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo accumulo
accumulo-core.noarch: E: non-standard-dir-perm /etc/accumulo 0750L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/accumulo-site.xml accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/accumulo-site.xml 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/accumulo.policy.example accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/accumulo.policy.example 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/log4j.properties accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/log4j.properties 0640L
accumulo-core.noarch: W: non-standard-uid /etc/accumulo/generic_logger.xml accumulo
accumulo-core.noarch: E: non-readable /etc/accumulo/generic_logger.xml 0640L
accumulo-core.noarch: W: non-standard-uid /var/cache/accumulo accumulo
accumulo-core.noarch: E: non-standard-dir-perm /var/cache/accumulo 0750L
accumulo-core.noarch: W: no-manual-page-for-binary accumulo
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-jar
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-rfile-info
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-zookeeper
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-create-token
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-classpath
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-version
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-info
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-login-info
accumulo-core.noarch: W: no-manual-page-for-binary accumulo-shell
accumulo-server-base.noarch: E: description-line-too-long C This package provides the base Java libraries for other Apache Accumulo services.
accumulo-server-base.noarch: W: no-documentation
accumulo-server-base.noarch: W: no-manual-page-for-binary accumulo-admin
accumulo-server-base.noarch: W: no-manual-page-for-binary accumulo-init
accumulo-master.noarch: W: no-documentation
accumulo-master.noarch: W: no-manual-page-for-binary accumulo-master
accumulo-tserver.noarch: W: no-documentation
accumulo-tserver.noarch: W: no-manual-page-for-binary accumulo-tserver
accumulo-gc.noarch: W: no-documentation
accumulo-gc.noarch: W: no-manual-page-for-binary accumulo-gc
accumulo-tracer.noarch: W: no-documentation
accumulo-tracer.noarch: W: no-manual-page-for-binary accumulo-tracer
accumulo-examples.noarch: W: no-documentation
accumulo-native.x86_64: W: spelling-error %description -l en_US tserver -> server, t server, serve
accumulo-native.x86_64: W: no-documentation
11 packages and 0 specfiles checked; 14 errors, 35 warnings.

Comment 11 Christopher Tubbs 2014-07-08 20:43:35 UTC
(In reply to Mikolaj Izdebski from comment #10)

I uploaded updated spec and srpm to same location with the changes.

Comment 12 Mikolaj Izdebski 2014-07-08 20:45:56 UTC
All issues have been resolved. Package is approved.

Comment 13 Christopher Tubbs 2014-07-08 21:02:01 UTC
New Package SCM Request
=======================
Package Name: accumulo
Short Description: A software platform for processing vast amounts of data
Upstream URL: http://accumulo.apache.org
Owners: ctubbsii mizdebsk
Branches: f20 f21 epel7
InitialCC: java-sig

Comment 14 Kevin Fenzi 2014-07-09 04:13:38 UTC
Git done (by process-git-requests).

Comment 15 Mikolaj Izdebski 2014-07-15 08:52:53 UTC
Built for rawhide: http://koji.fedoraproject.org/koji/buildinfo?buildID=542903
Closing.


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