Bug 1201662 - Review Request: wiredtiger - A data storage engine
Summary: Review Request: wiredtiger - A data storage engine
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jonathan Underwood
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-03-13 08:45 UTC by Marek Skalický
Modified: 2015-04-25 23:51 UTC (History)
2 users (show)

Fixed In Version: wiredtiger-2.5.2-1.el7
Clone Of:
Environment:
Last Closed: 2015-04-25 23:51:45 UTC
Type: ---
Embargoed:
jonathan.underwood: fedora-review+
puiterwijk: fedora-cvs+


Attachments (Terms of Use)

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.


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