Bug 1201662

Summary: Review Request: wiredtiger - A data storage engine
Product: [Fedora] Fedora Reporter: Marek Skalický <mskalick>
Component: Package ReviewAssignee: Jonathan Underwood <jonathan.underwood>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: jonathan.underwood, package-review
Target Milestone: ---Flags: jonathan.underwood: fedora-review+
puiterwijk: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: wiredtiger-2.5.2-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-25 23:51:45 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:

Description Marek Skalický 2015-03-13 08:45:39 UTC
Spec URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger.spec
SRPM URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger-2.5.1-1.fc23.src.rpm

Description:
Hi,
I've just finished packaging up WiredTiger, and I would appreciate a review so that I can get it into Fedora.

WiredTiger is storage engine used in mongodb 3.0.
 
Fedora Account System Username: mskalick

Comment 1 Jonathan Underwood 2015-03-23 13:51:37 UTC
Output of rpmlint following a mock rebuild of the packages:

$ rpmlint *.rpm
wiredtiger.src: W: name-repeated-in-summary C WiredTiger
wiredtiger.src:64: W: rpm-buildroot-usage %prep sed -i -r "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir %{buildroot}%{python_sitelib}|" lang/python/Makefile.am
wiredtiger.src: W: invalid-url Source0: https://github.com/wiredtiger/wiredtiger/releases/download/2.5.1/wiredtiger-2.5.1.tar.bz2 HTTP Error 403: Forbidden
wiredtiger.x86_64: W: name-repeated-in-summary C WiredTiger
wiredtiger-devel.x86_64: W: spelling-error %description -l en_US libs -> lobs, lib, lbs
wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
wiredtiger-devel.x86_64: W: no-documentation
wiredtiger-java.x86_64: W: no-documentation
wiredtiger-java.x86_64: W: devel-file-in-non-devel-package /usr/lib64/libwiredtiger_java.so
wiredtiger-python.x86_64: W: no-documentation
wiredtiger-python.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/wiredtiger/packing.py 0644L /usr/bin/env
wiredtiger-python.x86_64: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
wiredtiger-python.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/wiredtiger/packing-test.py 0644L /usr/bin/env
wiredtiger-python.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/wiredtiger/fpacking.py 0644L /usr/bin/env
wiredtiger-python.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/wiredtiger/intpacking.py 0644L /usr/bin/env
wiredtiger-python.x86_64: E: non-executable-script /usr/lib/python2.7/site-packages/wiredtiger/intpack-test.py 0644L /usr/bin/env
7 packages and 0 specfiles checked; 6 errors, 10 warnings.

Comment 2 Jonathan Underwood 2015-03-23 14:30:43 UTC
Hi Merek,

A number of those rpmlint messages need fixes, so I'll wait for an updated package before doing the full review.

Comment 3 Marek Skalický 2015-03-23 14:41:32 UTC
(In reply to Jonathan Underwood from comment #1)
> Output of rpmlint following a mock rebuild of the packages:
> 
> $ rpmlint *.rpm
> wiredtiger.src: W: name-repeated-in-summary C WiredTiger

Upstream rpm template - https://github.com/wiredtiger/wiredtiger/blob/master/dist/package/wiredtiger.spec

> wiredtiger.src:64: W: rpm-buildroot-usage %prep sed -i -r
> "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir
> %{buildroot}%{python_sitelib}|" lang/python/Makefile.am

OK. Fixed.

> wiredtiger.src: W: invalid-url Source0:
> https://github.com/wiredtiger/wiredtiger/releases/download/2.5.1/wiredtiger-
> 2.5.1.tar.bz2 HTTP Error 403: Forbidden

This url is functional... try it.

> wiredtiger.x86_64: W: name-repeated-in-summary C WiredTiger
> wiredtiger-devel.x86_64: W: spelling-error %description -l en_US libs ->
> lobs, lib, lbs

Fixed. Typo error  wiredtiger-libs ->  wiredtiger-devel

> wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
> wiredtiger-devel.x86_64: W: no-documentation
> wiredtiger-java.x86_64: W: no-documentation

devel and java subpackages requires -libs subpackage, which have the documentation. Its a normal usage of -devel, to ship .so and .pc files...

> wiredtiger-java.x86_64: W: devel-file-in-non-devel-package
> /usr/lib64/libwiredtiger_java.so

I thought that this library is not for ordinary use. It is used only by .jar files...

> wiredtiger-python.x86_64: W: no-documentation
> wiredtiger-python.x86_64: E: non-executable-script
> /usr/lib/python2.7/site-packages/wiredtiger/packing.py 0644L /usr/bin/env
> wiredtiger-python.x86_64: E: non-standard-executable-perm
> /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
> wiredtiger-python.x86_64: E: non-executable-script
> /usr/lib/python2.7/site-packages/wiredtiger/packing-test.py 0644L
> /usr/bin/env
> wiredtiger-python.x86_64: E: non-executable-script
> /usr/lib/python2.7/site-packages/wiredtiger/fpacking.py 0644L /usr/bin/env
> wiredtiger-python.x86_64: E: non-executable-script
> /usr/lib/python2.7/site-packages/wiredtiger/intpacking.py 0644L /usr/bin/env
> wiredtiger-python.x86_64: E: non-executable-script
> /usr/lib/python2.7/site-packages/wiredtiger/intpack-test.py 0644L
> /usr/bin/env
> 7 packages and 0 specfiles checked; 6 errors, 10 warnings.

Why should python2.7 modules file have exec right? If I try "ls -l /usr/lib/python2.7/site-packages/", scripts there doesn't have exec right too...

Comment 5 Jonathan Underwood 2015-03-23 15:29:04 UTC
(In reply to Marek Skalický from comment #3)
> (In reply to Jonathan Underwood from comment #1)
> > Output of rpmlint following a mock rebuild of the packages:
> > 
> > $ rpmlint *.rpm
> > wiredtiger.src: W: name-repeated-in-summary C WiredTiger
> 
> Upstream rpm template -
> https://github.com/wiredtiger/wiredtiger/blob/master/dist/package/wiredtiger.
> spec

Nonetheless, the name doesn't need to be repeated in the Summary. "A data storage engine" would be sufficient, and silence the warning.


> > wiredtiger.src: W: invalid-url Source0:
> > https://github.com/wiredtiger/wiredtiger/releases/download/2.5.1/wiredtiger-
> > 2.5.1.tar.bz2 HTTP Error 403: Forbidden
> 
> This url is functional... try it.

It is now - but it wasn't earlier - must have been some sort of connectivity issue. Anyway, confirmed, it is valid.



> > wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
> > wiredtiger-devel.x86_64: W: no-documentation
> > wiredtiger-java.x86_64: W: no-documentation
> 
> devel and java subpackages requires -libs subpackage, which have the
> documentation. Its a normal usage of -devel, to ship .so and .pc files...
> 

The .so should have the executable bit set.

> > wiredtiger-java.x86_64: W: devel-file-in-non-devel-package
> > /usr/lib64/libwiredtiger_java.so
> 
> I thought that this library is not for ordinary use. It is used only by .jar
> files...
> 

OK, is this a plugin used only by wiredtiger? If so, it should be in a private directory, rather than on the linker search path.


> > wiredtiger-python.x86_64: W: no-documentation
> > wiredtiger-python.x86_64: E: non-executable-script
> > /usr/lib/python2.7/site-packages/wiredtiger/packing.py 0644L /usr/bin/env
> > wiredtiger-python.x86_64: E: non-standard-executable-perm
> > /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
> > wiredtiger-python.x86_64: E: non-executable-script
> > /usr/lib/python2.7/site-packages/wiredtiger/packing-test.py 0644L
> > /usr/bin/env
> > wiredtiger-python.x86_64: E: non-executable-script
> > /usr/lib/python2.7/site-packages/wiredtiger/fpacking.py 0644L /usr/bin/env
> > wiredtiger-python.x86_64: E: non-executable-script
> > /usr/lib/python2.7/site-packages/wiredtiger/intpacking.py 0644L /usr/bin/env
> > wiredtiger-python.x86_64: E: non-executable-script
> > /usr/lib/python2.7/site-packages/wiredtiger/intpack-test.py 0644L
> > /usr/bin/env
> > 7 packages and 0 specfiles checked; 6 errors, 10 warnings.
> 
> Why should python2.7 modules file have exec right? If I try "ls -l
> /usr/lib/python2.7/site-packages/", scripts there doesn't have exec right
> too...

You've misunderstood the rpmlint error message. What it's saying is that these files have a shebang set at the top, and yet are non-executable. If the files are not meant to be executable files, you also need to remove the shebang at the top of the files. A recipe something like this would work (untested):

find %{buildroot}%{python_sitearch}/wiredtiger -name '*.py' \
    -exec sed -i '1{\@^#!/usr/bin/env python@d}' {} \;

Comment 6 Marek Skalický 2015-03-23 17:06:51 UTC
(In reply to Jonathan Underwood from comment #5)
> (In reply to Marek Skalický from comment #3)
> > (In reply to Jonathan Underwood from comment #1)
> > > Output of rpmlint following a mock rebuild of the packages:
> > > 
> > > $ rpmlint *.rpm
> > > wiredtiger.src: W: name-repeated-in-summary C WiredTiger
> > 
> > Upstream rpm template -
> > https://github.com/wiredtiger/wiredtiger/blob/master/dist/package/wiredtiger.
> > spec
> 
> Nonetheless, the name doesn't need to be repeated in the Summary. "A data
> storage engine" would be sufficient, and silence the warning.
> 

Fixed.

> 
> > > wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
> > > wiredtiger-devel.x86_64: W: no-documentation
> > > wiredtiger-java.x86_64: W: no-documentation
> > 
> > devel and java subpackages requires -libs subpackage, which have the
> > documentation. Its a normal usage of -devel, to ship .so and .pc files...
> > 
> 
> The .so should have the executable bit set.

libwiredtiger.so has it... any other?

> 
> > > wiredtiger-java.x86_64: W: devel-file-in-non-devel-package
> > > /usr/lib64/libwiredtiger_java.so
> > 
> > I thought that this library is not for ordinary use. It is used only by .jar
> > files...
> > 
> 
> OK, is this a plugin used only by wiredtiger? If so, it should be in a
> private directory, rather than on the linker search path.
> 

Yes, you are right. I fixed it - guidelines about JNI.

> 
> > > wiredtiger-python.x86_64: W: no-documentation
> > > wiredtiger-python.x86_64: E: non-executable-script
> > > /usr/lib/python2.7/site-packages/wiredtiger/packing.py 0644L /usr/bin/env
> > > wiredtiger-python.x86_64: E: non-standard-executable-perm
> > > /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
> > > wiredtiger-python.x86_64: E: non-executable-script
> > > /usr/lib/python2.7/site-packages/wiredtiger/packing-test.py 0644L
> > > /usr/bin/env
> > > wiredtiger-python.x86_64: E: non-executable-script
> > > /usr/lib/python2.7/site-packages/wiredtiger/fpacking.py 0644L /usr/bin/env
> > > wiredtiger-python.x86_64: E: non-executable-script
> > > /usr/lib/python2.7/site-packages/wiredtiger/intpacking.py 0644L /usr/bin/env
> > > wiredtiger-python.x86_64: E: non-executable-script
> > > /usr/lib/python2.7/site-packages/wiredtiger/intpack-test.py 0644L
> > > /usr/bin/env
> > > 7 packages and 0 specfiles checked; 6 errors, 10 warnings.
> > 
> > Why should python2.7 modules file have exec right? If I try "ls -l
> > /usr/lib/python2.7/site-packages/", scripts there doesn't have exec right
> > too...
> 
> You've misunderstood the rpmlint error message. What it's saying is that
> these files have a shebang set at the top, and yet are non-executable. If
> the files are not meant to be executable files, you also need to remove the
> shebang at the top of the files. A recipe something like this would work
> (untested):
> 
> find %{buildroot}%{python_sitearch}/wiredtiger -name '*.py' \
>     -exec sed -i '1{\@^#!/usr/bin/env python@d}' {} \;

Thanks for explanation. Fixed.

Comment 7 Jonathan Underwood 2015-03-23 18:19:45 UTC
OK, great - don't forget to upload the fixed spec and srpm. :)

Comment 8 Marek Skalický 2015-03-23 19:09:06 UTC
Yes I know, sorry. I weren't able to connect fedorapeople...

Spec URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger.spec
SRPM URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger-2.5.1-3.fc23.src.rpm

Comment 9 Jonathan Underwood 2015-03-23 23:11:36 UTC
Still some rpmlint flagged issues:

(1)
wiredtiger.src:66: W: rpm-buildroot-usage %build sed -i -r "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir %{buildroot}%{python_sitelib}|" lang/python/Makefile.am
$RPM_BUILD_ROOT should not be touched during %build or %prep stage, as it may
break short circuit builds.


This is because you're doing loads of stuff in %build that should be done in %prep. All of this should be in %prep:

# Fix installing python files into BUILDROOT
sed -i -r "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir %{buildroot}%{python_sitelib}|" lang/python/Makefile.am

%configure --disable-static --with-builtins=zlib,snappy --enable-python --enable-java JAR="%{java_home}/bin/jar"

# Stop the build setting up an rpath
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool


The only thing in %build should be:
make %{?_smp_mflags} CFLAGS="%{optflags}"


(2)
wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
There are only non binary files in /usr/lib so they should be in /usr/share.

This one is because /usr/lib64/libwiredtiger.so is a symbolic link - no action needed.


(3)
wiredtiger-python.x86_64: E: non-standard-executable-perm /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
A standard executable should have permission set to 0755. If you get this
message, it means that you have a wrong executable permissions in some files
included in your package.

This is a compiled extension, and so should be under %{python_sitearch}, rather than under %{python_sitelib}. The former is for compiled extension modules, the latter for pure python (arch independent) modules. See:

http://fedoraproject.org/wiki/Packaging:Python

Comment 10 Jonathan Underwood 2015-03-23 23:25:51 UTC
Also, small nits:

(1) This:

%files python
%dir %{python_sitelib}/%{name}
%{python_sitelib}/%{name}/*

is redundant... simply:

%files python
%{python_sitelib}/%{name}


would make the package own the directory and the files under it. Similarly for the java package. (Of course, in the python case, you'll be moving to using sitearch instead/as well).



(2) For readability add a blank line before %package libs

(3) For readability, break long lines with trailing "\", eg.

%configure --disable-static \
           --with-builtins=zlib,snappy \
           --enable-python \
           --enable-java JAR="%{java_home}/bin/jar"

etc.


(4) This weird white space is very unusual, reduces readability, and hinders others helping to maintain your package:

mkdir  %{buildroot}%{_libdir}/%{name}
mv     %{buildroot}%{_javadir}/%{name}-%{version}/lib* %{buildroot}%{_libdir}/%{name}
rm     %{buildroot}%{_libdir}/%{name}/lib*.so
mkdir  %{buildroot}%{_jnidir}
mv     %{buildroot}%{_javadir}/%{name}-%{version}/%{name}.jar %{buildroot}%{_jnidir}/
rmdir  %{buildroot}%{_javadir}/%{name}-%{version}

... just have a single space separating the commands and their arguments.

Comment 11 Marek Skalický 2015-03-25 11:23:22 UTC
(In reply to Jonathan Underwood from comment #9)
> Still some rpmlint flagged issues:
> 
> (1)
> wiredtiger.src:66: W: rpm-buildroot-usage %build sed -i -r
> "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir
> %{buildroot}%{python_sitelib}|" lang/python/Makefile.am
> $RPM_BUILD_ROOT should not be touched during %build or %prep stage, as it may
> break short circuit builds.
> 
> 
> This is because you're doing loads of stuff in %build that should be done in
> %prep. All of this should be in %prep:

I am not really sure about this. In all examples of RPM on fedora wiki, confingure is in %build (https://fedoraproject.org/wiki/How_to_create_an_RPM_package). I wrong understood this warning, so the first version was right:
sed -i -r "s|(\(PYTHON_INSTALL_ARG\))|\1 --no-compile --install-dir %{buildroot}%{python_sitelib}|" lang/python/Makefile.am
-> should be in %prep and later stuff needs to be in %build.
So this warning is false, because with sed, I am not touching buildroot.
I changed this and BUILDROOT is used with configure. I think this warning remains...

> (3)
> wiredtiger-python.x86_64: E: non-standard-executable-perm
> /usr/lib/python2.7/site-packages/wiredtiger/_wiredtiger.so 0775L
> A standard executable should have permission set to 0755. If you get this
> message, it means that you have a wrong executable permissions in some files
> included in your package.
> 
> This is a compiled extension, and so should be under %{python_sitearch},
> rather than under %{python_sitelib}. The former is for compiled extension
> modules, the latter for pure python (arch independent) modules. See:
> 
> http://fedoraproject.org/wiki/Packaging:Python

Fixed.



Spec URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger.spec
SRPM URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger-2.5.1-4.fc23.src.rpm

Comment 12 Jonathan Underwood 2015-03-26 12:04:40 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- Packages have proper BuildRequires/Requires on jpackage-utils

The -java package should Require jpackage-utils (which owns
/usr/lib/java). See:

https://fedoraproject.org/wiki/Packaging:Java

- Package contains BR: python2-devel or python3-devel

You currently have a BR for python-devel - this should be
python2-devel.  Also, you might consider building a python3
sub-package if that is supported too - Fedora will eventually move to
python 3 as the default. See:

http://fedoraproject.org/wiki/Packaging:Python

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

C/C++:
[x]: Package does not contain kernel modules.
[x]: Package contains no static executables.
[x]: 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.
[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:
[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.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "BSD (3 clause)", "MIT/X11 (BSD like)", "*No copyright* GPL (v2 or
     later)", "Apache (v2.0)", "Unknown or generated". 663 files have unknown
     license. Detailed output of licensecheck in
     /home/jgu/rpmbuild/1201662-wiredtiger/licensecheck.txt
[x]: License file installed when any subpackage combination is installed.
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[!]: Package requires other packages for directories it uses.
     Note: No known owner of /usr/share/licenses

Need to Require jpackage-utils in the -java package.

/usr/share/licenses is owned by the filsystem package, but I see no
other packages Requiring filesystem, so perhaps this is OK.

[!]: Package must own all directories that it creates.
     Note: Directories without known owners: /usr/lib/java,
     /usr/share/licenses

As above.

[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.
[x]: 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.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[!]: Requires correct, justified where necessary.

jpackage-utils

[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Useful -debuginfo package or justification otherwise.
[x]: 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.
     Note: Documentation size is 92160 bytes in 2 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.
     Note: There are rpmlint messages (see attachment).
[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]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Java:
[x]: Bundled jar/class files should be removed before build

Maven:
[-]: If package contains pom.xml files install it (including depmaps) even
     when building with ant
[x]: Old add_to_maven_depmap macro is not being used

Python:
[x]: Python eggs must not download any dependencies during the build process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[!]: Package meets the Packaging Guidelines::Python

python2-devel BuildRequires needed as described above. Also, consider
a python3 package.

[x]: Binary eggs must be removed in %prep

===== 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.
     Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in wiredtiger-
     libs , wiredtiger-devel , wiredtiger-python , wiredtiger-java
[x]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[-]: 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.
[ ]: 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]: 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.

Java:
[x]: Packages are noarch unless they use JNI
     Note: wiredtiger subpackage is not noarch. Please verify manually
[x]: Package uses upstream build method (ant/maven/etc.)

===== 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]: Package should not use obsolete m4 macros
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: wiredtiger-2.5.1-4.fc20.x86_64.rpm
          wiredtiger-libs-2.5.1-4.fc20.x86_64.rpm
          wiredtiger-devel-2.5.1-4.fc20.x86_64.rpm
          wiredtiger-python-2.5.1-4.fc20.x86_64.rpm
          wiredtiger-java-2.5.1-4.fc20.x86_64.rpm
          wiredtiger-2.5.1-4.fc20.src.rpm
wiredtiger-devel.x86_64: W: only-non-binary-in-usr-lib
wiredtiger-devel.x86_64: W: no-documentation
wiredtiger-python.x86_64: W: no-documentation
wiredtiger-java.x86_64: W: no-documentation
wiredtiger.src:70: W: rpm-buildroot-usage %build --with-python-prefix=%{buildroot}%{python_sitearch} \
wiredtiger.src: W: invalid-url Source0: https://github.com/wiredtiger/wiredtiger/releases/download/2.5.1/wiredtiger-2.5.1.tar.bz2 HTTP Error 403: Forbidden
6 packages and 0 specfiles checked; 0 errors, 6 warnings.




Rpmlint (installed packages)
----------------------------
Cannot parse rpmlint output:


Requires
--------
wiredtiger-libs (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libsnappy.so.1()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)

wiredtiger-python (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libpthread.so.0()(64bit)
    libpython2.7.so.1.0()(64bit)
    libwiredtiger.so.0()(64bit)
    python(abi)
    rtld(GNU_HASH)
    wiredtiger-libs(x86-64)

wiredtiger (rpmlib, GLIBC filtered):
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libsnappy.so.1()(64bit)
    libwiredtiger.so.0()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)
    wiredtiger-libs(x86-64)

wiredtiger-java (rpmlib, GLIBC filtered):
    /sbin/ldconfig
    libc.so.6()(64bit)
    libdl.so.2()(64bit)
    libpthread.so.0()(64bit)
    librt.so.1()(64bit)
    libsnappy.so.1()(64bit)
    libwiredtiger.so.0()(64bit)
    libz.so.1()(64bit)
    rtld(GNU_HASH)
    wiredtiger-libs(x86-64)

wiredtiger-devel (rpmlib, GLIBC filtered):
    /usr/bin/pkg-config
    libwiredtiger.so.0()(64bit)
    wiredtiger-libs(x86-64)



Provides
--------
wiredtiger-libs:
    libwiredtiger.so.0()(64bit)
    wiredtiger-libs
    wiredtiger-libs(x86-64)

wiredtiger-python:
    wiredtiger-python
    wiredtiger-python(x86-64)

wiredtiger:
    wiredtiger
    wiredtiger(x86-64)

wiredtiger-java:
    libwiredtiger_java.so.0()(64bit)
    wiredtiger-java
    wiredtiger-java(x86-64)

wiredtiger-devel:
    pkgconfig(wiredtiger)
    wiredtiger-devel
    wiredtiger-devel(x86-64)



Unversioned so-files
--------------------
wiredtiger-python: /usr/lib64/python2.7/site-packages/wiredtiger/_wiredtiger.so

Source checksums
----------------
https://github.com/wiredtiger/wiredtiger/releases/download/2.5.1/wiredtiger-2.5.1.tar.bz2 :
  CHECKSUM(SHA256) this package     : 589fbad039b26e37be6eaa449d657f4914f9fdaad8ff2afbe3fde041de4aaeef
  CHECKSUM(SHA256) upstream package : 589fbad039b26e37be6eaa449d657f4914f9fdaad8ff2afbe3fde041de4aaeef


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

Comment 13 Marek Skalický 2015-03-27 07:14:17 UTC
(In reply to Jonathan Underwood from comment #12)
> Package Review
> Issues:
> =======
> - Packages have proper BuildRequires/Requires on jpackage-utils
> 
> The -java package should Require jpackage-utils (which owns
> /usr/lib/java). See:
> 
> https://fedoraproject.org/wiki/Packaging:Java

Fixed.

> 
> - Package contains BR: python2-devel or python3-devel
> 
> You currently have a BR for python-devel - this should be
> python2-devel.  Also, you might consider building a python3
> sub-package if that is supported too - Fedora will eventually move to
> python 3 as the default. See:
> 
> http://fedoraproject.org/wiki/Packaging:Python
> 

Fixed. I will ask upstream about supporting python3...


Spec URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger.spec
SRPM URL: https://mskalick.fedorapeople.org/wiredtiger/wiredtiger-2.5.1-5.fc23.src.rpm

Comment 14 Jonathan Underwood 2015-03-27 12:12:00 UTC
Hmm... You've put the Requires: jpackage-utils in the main package, rather than the -java sub-package. I believe it should be in the -java sub-package.

Comment 16 Jonathan Underwood 2015-03-30 09:12:08 UTC
OK, great, approved.

But can you change the Require: jpackage-utils to javapackages-tools - the Java packaging guidelines was updated yesterday.

Comment 17 Marek Skalický 2015-03-30 10:06:08 UTC
Changed...

Jonathan, thank you very much for the review.

Comment 18 Marek Skalický 2015-03-30 10:08:32 UTC
New Package SCM Request
=======================
Package Name: wiredtiger
Short Description: A data storage engine
Upstream URL: http://www.wiredtiger.com/
Owners: mskalick
Branches: epel7
InitialCC:

Comment 19 Patrick Uiterwijk 2015-03-30 20:14:44 UTC
Git done (by process-git-requests).

Comment 20 Fedora Update System 2015-04-02 10:39:43 UTC
wiredtiger-2.5.1-6.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/wiredtiger-2.5.1-6.el7

Comment 21 Fedora Update System 2015-04-02 17:51:18 UTC
Package wiredtiger-2.5.1-6.el7:
* should fix your issue,
* was pushed to the Fedora EPEL 7 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing wiredtiger-2.5.1-6.el7'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2015-1555/wiredtiger-2.5.1-6.el7
then log in and leave karma (feedback).

Comment 22 Fedora Update System 2015-04-09 05:59:34 UTC
wiredtiger-2.5.2-1.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/wiredtiger-2.5.2-1.el7

Comment 23 Fedora Update System 2015-04-25 23:51:45 UTC
wiredtiger-2.5.2-1.el7 has been pushed to the Fedora EPEL 7 stable repository.  If problems still persist, please make note of it in this bug report.