Spec URL: https://fedorapeople.org/~mmuzila/rocksdb/rocksdb.spec SRPM URL: https://fedorapeople.org/~mmuzila/rocksdb/rocksdb-3.12-1.fc21.src.rpm Description: Rocksdb is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it specially suitable for storing multiple terabytes of data in a single database. Fedora Account System Username: mmuzila
Package Review ============== I've spotted those issues, that should be fixed: - soname is librocksdb.so.3.12, is this desired? I'd expect just librocksdb.so.3, but maybe upstream decided differently. It might be correct, but just wanted to be sure. - %defattr(-,root,root,-) is not needed - Package seems to contain bundled libraries: from build.log: CC third-party/gtest-1.7.0/fused-src/gtest/gtest-all.o and from spec (no gtest BuildRequirement) it seems gtest is bundled and used For third-party/fbson and third-party/flashcache I don't see them in build.log, but it would be better if we can remove all the third-party/ directory. - (not blocker) changing compiler flags should be done by setting variables like EXTRA_CFLAGS or EXTRA_CXXFLAGS, rather than redefining RPM_OPT_FLAGS: RPM_OPT_FLAGS="$RPM_OPT_FLAGS -std=c++11" Makefile doesn't have to be patched then. - I don't think we need to use explicit Requires, if those are libraries: Requires: jemalloc Requires: snappy Requires: bzip2 Requirements are specified automatically by RPM in those cases: libbz2.so.1()(64bit) libjemalloc.so.1()(64bit) libsnappy.so.1()(64bit) - (not blocker) no links nor comments in patches Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [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. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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 (2 clause)", "Unknown or generated". 137 files have unknown license. [x]: License file installed when any subpackage combination is installed. [x]: %build honors applicable compiler flags or justifies otherwise. [!]: Package contains no bundled libraries without FPC exception. - Package seems to contain bundled libraries: from build.log: CC third-party/gtest-1.7.0/fused-src/gtest/gtest-all.o and from spec (no gtest BuildRequirement) it seems gtest is bundled and used For third-party/fbson and third-party/flashcache I don't see them in build.log, but it would be better if we can remove all the third-party/ directory. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [x]: Each %files section contains %defattr if rpm < 4.4 Note: %defattr present but not needed [-]: 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. - I don't think we need to use explicit Requires, if those are libraries: Requires: jemalloc Requires: snappy Requires: bzip2 Requirements are specified automatically by RPM in those cases: libbz2.so.1()(64bit) libjemalloc.so.1()(64bit) libsnappy.so.1()(64bit) [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]: 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]: 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 %license. [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]: Dist tag is present. [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 does not use a name that already exists. [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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== 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). [!]: Fully versioned dependency in subpackages if applicable. Note: No Requires: %{name}%{?_isa} = %{version}-%{release} in rocksdb- devel - devel package should include %{?_isa} [?]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [ ]: Patches link to upstream bugs/comments/lists or are otherwise justified. - no links nor comments in patches [-]: Scriptlets must be sane, if used. [-]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: %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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Uses parallel make %{?_smp_mflags} macro. [x]: SourceX is a working URL. [x]: Package should compile and build into binary rpms on all supported architectures. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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: rocksdb-3.12-1.fc21.x86_64.rpm rocksdb-devel-3.12-1.fc21.x86_64.rpm rocksdb-3.12-1.fc21.src.rpm rocksdb.x86_64: W: spelling-error %description -l en_US tradeoffs -> trade offs, trade-offs, takeoffs rocksdb.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti rocksdb.x86_64: W: spelling-error %description -l en_US compactions -> compaction, comp actions, comp-actions rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.3.12.0 exit.5 rocksdb.x86_64: W: no-documentation rocksdb-devel.x86_64: W: only-non-binary-in-usr-lib rocksdb-devel.x86_64: W: no-documentation rocksdb.src: W: spelling-error %description -l en_US tradeoffs -> trade offs, trade-offs, takeoffs rocksdb.src: W: spelling-error %description -l en_US multi -> mulch, mufti rocksdb.src: W: spelling-error %description -l en_US compactions -> compaction, comp actions, comp-actions 3 packages and 0 specfiles checked; 0 errors, 10 warnings. Rpmlint (debuginfo) ------------------- Checking: rocksdb-debuginfo-3.12-1.fc21.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- Cannot parse rpmlint output: Requires -------- rocksdb (rpmlib, GLIBC filtered): /sbin/ldconfig bzip2 jemalloc ld-linux-x86-64.so.2()(64bit) libbz2.so.1()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgflags.so.2.1()(64bit) libjemalloc.so.1()(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libsnappy.so.1()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.8)(64bit) rtld(GNU_HASH) snappy rocksdb-devel (rpmlib, GLIBC filtered): librocksdb.so.3.12()(64bit) rocksdb Provides -------- rocksdb: librocksdb.so.3.12()(64bit) rocksdb rocksdb(x86-64) rocksdb-devel: rocksdb-devel rocksdb-devel(x86-64) Source checksums ---------------- https://github.com/facebook/rocksdb/archive/v3.12.tar.gz#/rocksdb-3.12.tar.gz : CHECKSUM(SHA256) this package : eeb3cadb544e6eac8a3b6fde3c4b82e2de6a4c9bd721d426e2dde44285d48293 CHECKSUM(SHA256) upstream package : eeb3cadb544e6eac8a3b6fde3c4b82e2de6a4c9bd721d426e2dde44285d48293 Generated by fedora-review 0.5.3 (bcf15e3) last change: 2015-05-04 Command line :/usr/bin/fedora-review -o=--dnf -m fedora-21-x86_64 --rpm-spec -n rocksdb-3.12-1.fc21.src.rpm Buildroot used: fedora-21-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
I've updated the package Spec URL: https://mmuzila.fedorapeople.org/rocksdb.spec SRPM URL: https://mmuzila.fedorapeople.org/rocksdb-4.11-1.fc22.src.rpm Description: Rocksdb is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it specially suitable for storing multiple terabytes of data in a single database. Fedora Account System Username: mmuzila
Package Review ============== Here is the list of issues that MUST and SHOULD be fixed: MUST * Build flag %opt_flags missing and no justification present. * Latest version is packaked: latest version available from upstream GIT is 4.9. https://github.com/facebook/rocksdb/releases Where the 4.11 version come from? * rpmlint output: rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.4.11.0 exit.5 library should not quit with exit or maybe it shouldn't be a library ? SHOULD * Included patch doesn't match app version * Included patch doesn't link to upstream bugs/comments/lists or are otherwise justified. * %check not present * description contain 2 typos: Typo: "compactions" -> "compaction" Typo: "multi-threaded" -> "multithreaded" * Documentation should be added or upstream should be queried to create some. * It would be nice to add licence file to -debuginfo subpackage as it can be installed as a standalone package. * In specfile, Source0 should be changed from "...zip/4.11.fb#/%{name}-%{version}.fb.zip" to "...zip/%{name}.%{version}.fb#/%{name}-%{version}.fb.zip" * Same for Patch0, after it will be updated to matching version * BuildRequires should be aligned with equal number of whitespaces Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [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. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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: BSD licence in standalone licence file [x]: License file installed when any subpackage combination is installed. [x]: %build honors applicable compiler flags or justifies otherwise. Note: use opt_flags macro [?]: Package contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. (only FOSS) [-]: 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. [?]: 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 are correct, justified where necessary. Note: whitespace [x]: Spec file is legible and written in American English. Note: Typo: "compactions" -> "compaction" Note: Typo: "multi-threaded" -> "multithreaded" Note: no documentation. [-]: Package contains systemd file(s) if in need. [x]: Useful -debuginfo package or justification otherwise. (Source codes bundled) [x]: Package is not known to require an ExcludeArch tag. [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]: 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 %license. [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]: Dist tag is present. [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 does not use a name that already exists. [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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: 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. [?]: Package functions as described. [!]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: 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. Note: %check SHOULD be added [?]: Packages should try to preserve timestamps of original installed files. [x]: Reviewer should test that the package builds in mock. [x]: Buildroot macro is not present [x]: Package has no %clean section with rm -rf %{buildroot} (or $RPM_BUILD_ROOT) [x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Uses parallel make %{?_smp_mflags} macro. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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: rocksdb-4.11-1.fc24.x86_64.rpm rocksdb-devel-4.11-1.fc24.x86_64.rpm rocksdb-debuginfo-4.11-1.fc24.x86_64.rpm rocksdb-4.11-1.fc24.src.rpm rocksdb.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti rocksdb.x86_64: W: spelling-error %description -l en_US compactions -> compaction, comp actions, comp-actions rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.4.11.0 exit.5 rocksdb.x86_64: W: no-documentation rocksdb-devel.x86_64: W: only-non-binary-in-usr-lib rocksdb-devel.x86_64: W: no-documentation rocksdb.src: W: spelling-error %description -l en_US multi -> mulch, mufti rocksdb.src: W: spelling-error %description -l en_US compactions -> compaction, comp actions, comp-actions 4 packages and 0 specfiles checked; 0 errors, 8 warnings. Rpmlint (debuginfo) ------------------- Checking: rocksdb-debuginfo-4.11-1.fc24.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- sh: /usr/bin/python: No such file or directory rocksdb.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti rocksdb.x86_64: W: spelling-error %description -l en_US compactions -> compaction, comp actions, comp-actions rocksdb.x86_64: W: unused-direct-shlib-dependency /usr/lib64/librocksdb.so.4.11.0 /lib64/libgflags.so.2.1 rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.4.11.0 exit.5 rocksdb.x86_64: W: no-documentation rocksdb-devel.x86_64: W: only-non-binary-in-usr-lib rocksdb-devel.x86_64: W: no-documentation 3 packages and 0 specfiles checked; 0 errors, 7 warnings. Requires -------- rocksdb (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libbz2.so.1()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgflags.so.2.1()(64bit) libjemalloc.so.2()(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libsnappy.so.1()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.8)(64bit) rtld(GNU_HASH) rocksdb-devel (rpmlib, GLIBC filtered): librocksdb.so.4.11()(64bit) rocksdb(x86-64) rocksdb-debuginfo (rpmlib, GLIBC filtered): Provides -------- rocksdb: librocksdb.so.4.11()(64bit) rocksdb rocksdb(x86-64) rocksdb-devel: rocksdb-devel rocksdb-devel(x86-64) rocksdb-debuginfo: rocksdb-debuginfo rocksdb-debuginfo(x86-64) ------- Buildroot used: fedora-24-x86_64 Source checksums ---------------- https://codeload.github.com/facebook/rocksdb/zip/4.11.fb#/rocksdb-4.11.fb.zip : CHECKSUM(SHA256) this package : a024de949fd113eb1c25704581c729abd78c903b5c2ea811ce88cfadc1550590 CHECKSUM(SHA256) upstream package : a024de949fd113eb1c25704581c729abd78c903b5c2ea811ce88cfadc1550590
I've updated the package Spec URL: https://fedorapeople.org/~mmuzila/rocksdb/rocksdb.spec SRPM URL: https://fedorapeople.org/~mmuzila/rocksdb/rocksdb-5.2.1-1.fc24.src.rpm Description: Rocksdb is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible trade offs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multithreaded compaction, making it specially suitable for storing multiple terabytes of data in a single database. Fedora Account System Username: mmuzila Notes: * Library calls exit(). It is caused by bad design. * %check is not present, because the check we need was not provided by upstream.
I don't know if is this a big problem, because the package is supposed to be included only in the upcoming F26 (F27?)... But I think that it's worthy to mention: The i686 build is not working in F25 (and just in F25). And it seems that it's not a problem in the package itself, but probably a bug in gcc. I've first tried a koji scratch build and after some time I realized that the i686 build was never finishing (I had to cancel the task - https://koji.fedoraproject.org/koji/taskinfo?taskID=20095030) Then I tried a local build using "mock -r fedora-25-i386" and the same happened... It seems that gcc enters in an infinite loop. For F26 and F27 the build works well for all supported architectures: https://koji.fedoraproject.org/koji/taskinfo?taskID=20114843 https://koji.fedoraproject.org/koji/taskinfo?taskID=20114856
The build time is unusual long given the size of the software... More than 6 minutes on my machine. The cause is that the Makefile has a problem and as a consequence it doesn't use parallel jobs in the building process (even with the proper utilization of %{?_smp_mflags} in the spec file). This problem is already fixed in the upstream master branch... Here is the complete explanation: "Previously, the shared library (make shared_lib) was built with only one compile line, compiling all .cc files and linking the shared library in one step. That step would often take 10+ minutes on one machine, and could not take advantage of multiple CPUs (it's only one invocation of the compiler). This commit changes the shared_lib build to compile .o files individually (placing the resulting .o files in the directory shared-objects) and then link them into the shared library at the end, similarly to how the java static build (jls) does it." https://github.com/facebook/rocksdb/pull/2165 Maybe would be a good idea to apply this patch downstream... On my machine the building time was cut by more than half.
Package Review ============== MUST * Package contains no bundled libraries without FPC exception. There are 2 third-party libraries in the source tarball: gtest and fbson gtest is probably only needed for tests and is being removed in %prep. fbson is used (It's a C++ header-only library), just to mention because I think that there isn't much we can do about it. SHOULD * Latest version is packaged: Upstream seems to be very active and is releasing very often, the latest version is 5.4.6 (https://github.com/facebook/rocksdb/releases). * Package should compile and build into binary rpms on all supported architectures: On F25 i686 gcc hangs during compilation (maybe a bug in gcc), On F26 i686 and F27 i686 the compilation is successful. * %check is present and all tests pass: There is a test suite, but 'make check' needs recompilation in debug mode. * Reviewer should test that the package builds in mock: Yes, except for F25 i686 (compilation hangs) * Uses parallel make %{?_smp_mflags} macro: Yes, but this option has no effect due to a problem in the Makefile (Explanation in a previous comment). Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [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. [x]: Development (unversioned) .so files in -devel subpackage, if present. 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)", "BSD (2 clause)", "Unknown or generated", "*No copyright* Apache (v2.0)". 1072 files have unknown license. Detailed output of licensecheck in /home/acaringi/reviews/1250025-rocksdb/licensecheck.txt [x]: License file installed when any subpackage combination is installed. [x]: %build honors applicable compiler flags or justifies otherwise. [?]: Package contains no bundled libraries without FPC exception. There are 2 thirdy-party libraries in the source tarball: gtest and fbson gtest is probably only needed for tests and are being removed in spec file. fbson is used (It's a C++ header-only library) [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: 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. [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. [-]: 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]: 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]: 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 %license. [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]: Dist tag is present. [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 does not use a name that already exists. [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]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 0 bytes in 0 files. [x]: Packages must not store files under /srv, /opt or /usr/local ===== SHOULD items ===== Generic: [-]: 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 rocksdb- debuginfo [?]: Package functions as described. [!]: Latest version is packaged. Upstream seems very active and releasing very often, the latest version is 5.4.6 [x]: Package does not include license text files separate from upstream. [!]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: Scriptlets must be sane, if used. [-]: 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. Scratch build in koji worked without any problem. [?]: %check is present and all tests pass. make check needs recompilation in debug mode. [x]: Packages should try to preserve timestamps of original installed files. [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]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [x]: Uses parallel make %{?_smp_mflags} macro. [x]: Sources can be downloaded from URI in Source: tag [x]: SourceX is a working URL. [x]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [x]: Rpmlint is run on debuginfo package(s). Note: No rpmlint messages. [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: rocksdb-5.2.1-1.fc25.x86_64.rpm rocksdb-devel-5.2.1-1.fc25.x86_64.rpm rocksdb-debuginfo-5.2.1-1.fc25.x86_64.rpm rocksdb-5.2.1-1.fc25.src.rpm rocksdb.x86_64: W: spelling-error %description -l en_US multithreaded -> multicolored rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.5.2.1 exit.5 rocksdb.x86_64: W: no-documentation rocksdb-devel.x86_64: W: only-non-binary-in-usr-lib rocksdb-devel.x86_64: W: no-documentation rocksdb.src: W: spelling-error %description -l en_US multithreaded -> multicolored 4 packages and 0 specfiles checked; 0 errors, 6 warnings. Rpmlint (debuginfo) ------------------- Checking: rocksdb-debuginfo-5.2.1-1.fc25.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. Rpmlint (installed packages) ---------------------------- rocksdb.x86_64: W: spelling-error %description -l en_US multithreaded -> multicolored rocksdb.x86_64: W: shared-lib-calls-exit /usr/lib64/librocksdb.so.5.2.1 exit.5 rocksdb.x86_64: W: no-documentation rocksdb-devel.x86_64: W: only-non-binary-in-usr-lib rocksdb-devel.x86_64: W: no-documentation 3 packages and 0 specfiles checked; 0 errors, 5 warnings. Requires -------- rocksdb (rpmlib, GLIBC filtered): /sbin/ldconfig ld-linux-x86-64.so.2()(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libm.so.6()(64bit) libpthread.so.0()(64bit) librt.so.1()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(CXXABI_1.3.3)(64bit) libstdc++.so.6(CXXABI_1.3.5)(64bit) libstdc++.so.6(CXXABI_1.3.8)(64bit) rtld(GNU_HASH) rocksdb-devel (rpmlib, GLIBC filtered): librocksdb.so.5.2()(64bit) rocksdb(x86-64) rocksdb-debuginfo (rpmlib, GLIBC filtered): Provides -------- rocksdb: librocksdb.so.5.2()(64bit) rocksdb rocksdb(x86-64) rocksdb-devel: rocksdb-devel rocksdb-devel(x86-64) rocksdb-debuginfo: rocksdb-debuginfo rocksdb-debuginfo(x86-64) Source checksums ---------------- https://github.com/facebook/rocksdb/archive/v5.2.1.tar.gz#/rocksdb-5.2.1.tar.gz : CHECKSUM(SHA256) this package : cb27afeaa3dea4369e7b982ce336c16ec2848879e7275043b94e9b42570158ec CHECKSUM(SHA256) upstream package : cb27afeaa3dea4369e7b982ce336c16ec2848879e7275043b94e9b42570158ec Generated by fedora-review 0.6.1 (f03e4e7) last change: 2016-05-02 Command line :/usr/bin/fedora-review -b 1250025 Buildroot used: fedora-25-x86_64 Active plugins: Generic, Shell-api, C/C++ Disabled plugins: Java, Python, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6
Hi, I have a few comments to the pakcage review. MUST: - Bundled gtest is removed before compilation so it shouldn't be a problem. (rocksdb.spec:35 rm -rf third-party/gtest-1.7.0) - fbson doesn't seem to be released separately. Facebook just bundles it into its projects. SHOULD: - Yes, new versions are released very often. At the time of submitting rocksdb package for review, the highiest available version was packaged. - Package can be built on all supported architectures [1]. It was not intended to be added to fedora < f26. - The Makefile bug (use of parallel jobs) was already fixed by upstream so we do not need to fix it downstream. Could you please reconsider the package review? [1] https://fedoraproject.org/wiki/Architectures
(In reply to Matej Mužila from comment #8) > Hi, > > I have a few comments to the pakcage review. > > MUST: > - Bundled gtest is removed before compilation so it shouldn't be a > problem. > (rocksdb.spec:35 rm -rf third-party/gtest-1.7.0) > > - fbson doesn't seem to be released separately. Facebook just bundles > it into its projects. > > SHOULD: > - Yes, new versions are released very often. At the time of submitting > rocksdb package for review, the highiest available version was > packaged. > - Package can be built on all supported architectures [1]. It was not > intended to be added to fedora < f26. > - The Makefile bug (use of parallel jobs) was already fixed by upstream > so we do not need to fix it downstream. > > > Could you please reconsider the package review? For me it's ok... Just suggestions.
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/rocksdb
Can it be built for f26?