Spec URL: https://src.fedoraproject.org/fork/almac/rpms/lz4-java/raw/master/f/lz4-java.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-33-x86_64/01680271-lz4-java/lz4-java-1.7.1-5.fc33.src.rpm Description: This is my first package. I am seeking a sponsor. This package is currently orphaned and unmaintained. LZ4 compression for Java, based on Yann Collet's work. This library provides access to two compression methods that both generate a valid LZ4 stream: * fast scan (LZ4): ° low memory footprint (~ 16 KB), ° very fast (fast scan with skipping heuristics in case the input looks incompressible), ° reasonable compression ratio (depending on the redundancy of the input). * high compression (LZ4 HC): ° medium memory footprint (~ 256 KB), ° rather slow (~ 10 times slower than LZ4), ° good compression ratio (depending on the size and the redundancy of the input). The streams produced by those 2 compression algorithms use the same compression format, are very fast to decompress and can be decompressed by the same decompressor instance. Fedora Account System Username: almac Successful Copr Build: https://copr.fedorainfracloud.org/coprs/almac/lz4-java/build/1680271/
Created attachment 1715571 [details] rpmlint - spec
Created attachment 1715572 [details] rpmlint - srpm
Created attachment 1715573 [details] rpmlint - rpm
> Description: This is my first package. I am seeking a sponsor. This package is currently orphaned and unmaintained. Hello and welcome! Please, have a look at this doc: https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group and set your bug report to block the FE-NEEDSPONSOR bug report for tracking: https://bugzilla.redhat.com/show_bug.cgi?id=FE-NEEDSPONSOR
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Issues: ======= - None ===== MUST items ===== 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: "Unknown or generated", "*No copyright* Apache License (v2.0)", "BSD 2-clause "Simplified" License", "GPL (v2 or later)", "*No copyright* GPL (v2 or later)", "BSD (unspecified)". 141 files have unknown license. Detailed output of licensecheck in /home/jkang/1881169-lz4-java/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 contains no bundled libraries without FPC exception. [x]: Changelog in prescribed format. [x]: Sources contain only permissible code or content. [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [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. [-]: Package obeys FHS, except libexecdir and /usr/target. [-]: 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]: Package is not known to require an ExcludeArch tag. [-]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 30720 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]: 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]: 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 must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [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 ===== 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]: Package functions as described. [x]: Latest version is packaged. [-]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [-]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not 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. [x]: %check is present and all tests pass. [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]: Fully versioned dependency in subpackages if applicable. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [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 all installed packages. Note: There are rpmlint messages (see attachment). [x]: Spec file according to URL is the same as in SRPM. Rpmlint ------- Checking: lz4-java-1.7.1-5.fc34.noarch.rpm lz4-java-javadoc-1.7.1-5.fc34.noarch.rpm lz4-java-1.7.1-5.fc34.src.rpm lz4-java.noarch: W: spelling-error %description -l en_US incompressible -> in compressible, in-compressible, incomprehensible lz4-java.noarch: W: spelling-error %description -l en_US decompressor -> decompress or, decompress-or, decompress lz4-java.noarch: W: only-non-binary-in-usr-lib lz4-java.src: W: spelling-error %description -l en_US incompressible -> in compressible, in-compressible, incomprehensible lz4-java.src: W: spelling-error %description -l en_US decompressor -> decompress or, decompress-or, decompress 3 packages and 0 specfiles checked; 0 errors, 5 warnings. Rpmlint (installed packages) ---------------------------- warning: Found bdb Packages database while attempting sqlite backend: using bdb backend. warning: Found bdb Packages database while attempting sqlite backend: using bdb backend. lz4-java.noarch: W: spelling-error %description -l en_US incompressible -> in compressible, in-compressible, incomprehensible lz4-java.noarch: W: spelling-error %description -l en_US decompressor -> decompress or, decompress-or, decompress lz4-java.noarch: W: invalid-url URL: https://github.com/lz4/lz4-java <urlopen error [Errno -3] Temporary failure in name resolution> lz4-java.noarch: W: only-non-binary-in-usr-lib warning: Found bdb Packages database while attempting sqlite backend: using bdb backend. lz4-java-javadoc.noarch: W: invalid-url URL: https://github.com/lz4/lz4-java <urlopen error [Errno -3] Temporary failure in name resolution> 2 packages and 0 specfiles checked; 0 errors, 5 warnings.
(In reply to Andy Mender from comment #4) > > Description: This is my first package. I am seeking a sponsor. This package is currently orphaned and unmaintained. > > Hello and welcome! Please, have a look at this doc: > https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group > and set your bug report to block the FE-NEEDSPONSOR bug report for tracking: > https://bugzilla.redhat.com/show_bug.cgi?id=FE-NEEDSPONSOR Thanks Andy. I can sponsor Alex once packages are reviewed.
Jie, please assign to yourself since you are doing the review.
Same here, it's not been determined what the outcome of the review is. Let's keep it at '?' and move it to '+/-' once we have a clear picture.
A couple of comments: 1. lz4-java seems to include lz4 itself (in the current form) 2. lz4 included in this spec also include xxhash 3. lz4[1] and xxhash[2] are available in Fedora themselves 4. If the spec was changed to use system xxhash and lz4, then what's left to compile with cpptasks is two JNI files. Consider compiling those manually and drop the build dependency on cpptasks. cpptasks seems seems largely dead upstream. No release since 2008. 5. Why are tests disabled? I'd try to run the tests during the build. 6. If you opt to include lz4 with lz4-java, then a 'Provides: bundled(lz4) = <version>' is needed. [1] https://koji.fedoraproject.org/koji/packageinfo?packageID=17099 Add BR: lz4-devel [2] https://koji.fedoraproject.org/koji/packageinfo?packageID=25457 Add BR: xxhash-devel
SPEC URL: https://src.fedoraproject.org/fork/almac/rpms/lz4-java/blob/master/f/lz4-java.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-33-x86_64/01808727-lz4-java/lz4-java-1.7.1-9.fc33.src.rpm Thank you Severin for the comments, I've addressed the comments you've added in my latest commits. Previously I was bundling lz4, and have changed this to use BR lz4-devel & xxhash-devel instead, and now compile the JNI files manually to drop the dependency on cpptasks. I did this by introducing a basic Makefile in a patch [0], that compiles the JNI files and generates the expected shared object "liblz4-java.so". The tests were previously disabled because of a lack of the randomizedtesting dependency, however there are quite a few tests that can run without that dependency so I've tweaked the build.xml to run those test classes now. There's a unit test in LZ4FrameIOStreamTest that uses LZ4 CLI, so there's a BR on lz4 now. Successful Copr Build: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-rawhide-x86_64/01808727-lz4-java/builder-live.log.gz [0] https://src.fedoraproject.org/fork/almac/rpms/lz4-java/blob/master/f/2-remove-cpptasks.patch#_1
I wonder why you're not reusing some of the patches that were previously used for the fedora package? https://src.fedoraproject.org/rpms/lz4-java/tree/f32
Hi Fabio, 3 of the 4 patches are not required as is any more, those being: lz4-java-1.3.0.junit_Assert.patch && lz4-java-1.3.0-test.patch both patch test files that previously used randomizedtesting, which is no longer maintained. lz4-java-1.3.0-system-lz4.patch: this patched the cpptasks task in the compile-jni build target. The dependency on cpptasks is dropped now. Some of the lz4-java-1.3.0-build.patch could be reverted if desired, it dealt with removing lines from a build targets that aren't used, or providing a path to mvel (which is currently in review for maintainer-ship as well).
Ah, okay, that makes sense. Thanks! I was just curious since I was one of the previous maintainers of this package, at least for a time.
Hey Alex, I think the cpptasks replacements needs some more tweaking. The artifact produced is now noarch, but really is for linux amd64 (x86_64). We (jmc) still want the other 64-bit arches: aarch64, ppc64le, and s390x. Here's an old build of lz4-java for comparison: https://koji.fedoraproject.org/koji/buildinfo?buildID=1557740 And a build of JMC for arches we're on: https://koji.fedoraproject.org/koji/buildinfo?buildID=1643483
(In reply to Jie Kang from comment #14) > Hey Alex, I think the cpptasks replacements needs some more tweaking. The > artifact produced is now noarch, but really is for linux amd64 (x86_64). We > (jmc) still want the other 64-bit arches: aarch64, ppc64le, and s390x. I'd think one reason for this is that the spec claims its 'BuildArch: noarch' which it really isn't: https://src.fedoraproject.org/fork/almac/rpms/lz4-java/blob/master/f/lz4-java.spec#_46 Remove this line from the spec and try again. > Here's an old build of lz4-java for comparison: > https://koji.fedoraproject.org/koji/buildinfo?buildID=1557740 This is a build of lz4, not lz4-java, unless I'm missing something :)
(In reply to Severin Gehwolf from comment #15) > (In reply to Jie Kang from comment #14) > > Hey Alex, I think the cpptasks replacements needs some more tweaking. The > > artifact produced is now noarch, but really is for linux amd64 (x86_64). We > > (jmc) still want the other 64-bit arches: aarch64, ppc64le, and s390x. > > I'd think one reason for this is that the spec claims its 'BuildArch: > noarch' which it really isn't: > https://src.fedoraproject.org/fork/almac/rpms/lz4-java/blob/master/f/lz4- > java.spec#_46 > > Remove this line from the spec and try again. > > > Here's an old build of lz4-java for comparison: > > https://koji.fedoraproject.org/koji/buildinfo?buildID=1557740 > > This is a build of lz4, not lz4-java, unless I'm missing something :) Ah shoot, sorry. This should be an lz4-java one... https://koji.fedoraproject.org/koji/buildinfo?buildID=1441537
(In reply to Jie Kang from comment #16) > (In reply to Severin Gehwolf from comment #15) > > (In reply to Jie Kang from comment #14) > > > Hey Alex, I think the cpptasks replacements needs some more tweaking. The > > > artifact produced is now noarch, but really is for linux amd64 (x86_64). We > > > (jmc) still want the other 64-bit arches: aarch64, ppc64le, and s390x. > > > > I'd think one reason for this is that the spec claims its 'BuildArch: > > noarch' which it really isn't: > > https://src.fedoraproject.org/fork/almac/rpms/lz4-java/blob/master/f/lz4- > > java.spec#_46 > > > > Remove this line from the spec and try again. > > > > > Here's an old build of lz4-java for comparison: > > > https://koji.fedoraproject.org/koji/buildinfo?buildID=1557740 > > > > This is a build of lz4, not lz4-java, unless I'm missing something :) > > Ah shoot, sorry. This should be an lz4-java one... > > https://koji.fedoraproject.org/koji/buildinfo?buildID=1441537 Ah, thanks for catching that. I had put the BuildArch in there a while ago trying to cleanup rpmlint errors ("no-binary" in particular). I've removed it, and a new copr build can be found at: COPR: https://copr.fedorainfracloud.org/coprs/almac/lz4-java/build/1822635/ SRPM: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-33-x86_64/01822635-lz4-java/lz4-java-1.7.1-10.fc33.x86_64.rpm
I've updated one of the local patches to better handle paths in the makefile that replaces cpptasks. In the previous revision there was a hardcoded path on "[..]/linux/amd64/[..]", but now it will use the proper platform and arch values supplied in the build xml. I've updated the copr repo to try building more than just x86_64, and noticed that there seems to be something wrong with the mvel f33/rawhide s390x builds.. which is why I've ran the last copr build without that arch. commit: https://src.fedoraproject.org/fork/almac/rpms/lz4-java/c/ee5d39c4b84403d94a0d45b6cb05bd781e2bb37c?branch=master COPR: https://copr.fedorainfracloud.org/coprs/almac/lz4-java/build/1879015/ SRPM: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-32-x86_64/01879015-lz4-java/lz4-java-1.7.1-11.fc32.src.rpm
I missed one path that should be fixed. There was a path to /usr/lib64 in the makefile for finding lz4 and xxhash, but this was causing an issue in a build in i386 which should be resolved now that it will use /usr/lib instead. commit: https://src.fedoraproject.org/fork/almac/rpms/lz4-java/c/f90487c133b820240e33bd256f7aa680bce31336?branch=master COPR: https://copr.fedorainfracloud.org/coprs/almac/lz4-java/build/1879200/ SRPM: https://download.copr.fedorainfracloud.org/results/almac/lz4-java/fedora-32-x86_64/01879200-lz4-java/lz4-java-1.7.1-12.fc32.src.rpm
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated Issues: ======= ===== MUST items ===== C/C++: [x]: Package does not contain kernel modules. [x]: Package contains no static executables. [x]: If your application is a C or C++ application you must list a BuildRequires against gcc, gcc-c++ or clang. [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: "Unknown or generated", "*No copyright* Apache License (v2.0)". 30 files have unknown license. Detailed output of licensecheck in /home/jkang/lz4-java/licensecheck.txt [-]: License file installed when any subpackage combination is installed. [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. [-]: Package contains desktop file if it is a GUI application. [-]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: Package consistently uses macros (instead of hard-coded directory names). [x]: Package is named according to the Package Naming Guidelines. [x]: Package does not generate any conflict. [x]: Package obeys FHS, except libexecdir and /usr/target. [x]: If the package is a rename of another package, proper Obsoletes and Provides are present. [x]: Requires correct, justified where necessary. [x]: Spec file is legible and written in American English. [-]: Package contains systemd file(s) if in need. [-]: 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 30720 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]: 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]: 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 must not depend on deprecated() packages. [x]: Package use %makeinstall only when make install DESTDIR=... doesn't work. [x]: Package is named using only allowed ASCII characters. [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 ===== 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]: Package functions as described. [x]: Latest version is packaged. [x]: Package does not include license text files separate from upstream. [x]: Patches link to upstream bugs/comments/lists or are otherwise justified. [x]: Sources are verified with gpgverify first in %prep if upstream publishes signatures. Note: gpgverify is not used. [x]: Description and summary sections in the package spec file contains translations for supported Non-English languages, if available. [x]: Package should compile and build into binary rpms on all supported architectures. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [x]: 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]: Fully versioned dependency in subpackages if applicable. [x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [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 all installed packages. Note: No rpmlint messages. [x]: Large data in /usr/share should live in a noarch subpackage if package is arched. Rpmlint ------- Checking: lz4-java-1.7.1-12.fc34.x86_64.rpm lz4-java-javadoc-1.7.1-12.fc34.noarch.rpm lz4-java-1.7.1-12.fc34.src.rpm lz4-java.x86_64: W: spelling-error %description -l en_US incompressible -> in compressible, in-compressible, incomprehensible lz4-java.x86_64: W: spelling-error %description -l en_US decompressor -> decompress or, decompress-or, decompress lz4-java.x86_64: E: no-binary lz4-java.x86_64: W: only-non-binary-in-usr-lib lz4-java.src: W: spelling-error %description -l en_US incompressible -> in compressible, in-compressible, incomprehensible lz4-java.src: W: spelling-error %description -l en_US decompressor -> decompress or, decompress-or, decompress 3 packages and 0 specfiles checked; 1 errors, 5 warnings. Rpmlint (installed packages) ---------------------------- (none): E: no installed packages by name lz4-java 0 packages and 0 specfiles checked; 0 errors, 0 warnings. (none): E: no installed packages by name lz4-java-javadoc Source checksums ---------------- https://github.com/lz4/lz4-java/archive/1.7.1.tar.gz : CHECKSUM(SHA256) this package : 2e5c4546788eddc76dd91008faa60f96059b216997a7e6009c97b0b2ba2b4ff7 CHECKSUM(SHA256) upstream package : 2e5c4546788eddc76dd91008faa60f96059b216997a7e6009c97b0b2ba2b4ff7 Requires -------- lz4-java (rpmlib, GLIBC filtered): java-headless javapackages-filesystem lz4-java-javadoc (rpmlib, GLIBC filtered): javapackages-filesystem Provides -------- lz4-java: lz4-java lz4-java(x86-64) mvn(org.lz4:lz4-java) mvn(org.lz4:lz4-java:pom:) osgi(lz4-java) lz4-java-javadoc: lz4-java-javadoc
What's done so far looks okay to me. Setting flag to +.
(In reply to Alex Macdonald from comment #0) > Description: This is my first package. I am seeking a sponsor. This package > is currently orphaned and unmaintained. According to .fasinfo you are in the packager group already: User: almac, Name: Alex Macdonald, email: almacdon, Creation: 2016-07-27, IRC Nick: None, Timezone: UTC, Locale: en, GPG key ID: None, Status: active Approved Groups: cla_fpca cla_done packager fedorabugs No need for a sponsor. It should be fine for you to take ownership of the package. Just follow the steps in: https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers#Claiming_Ownership_of_a_Retired_Package I believe what's left is filing the releng ticket to adopt it. E.g. via going to: https://src.fedoraproject.org/rpms/lz4-java and clicking on the "Retired" button.
Thanks for the help everyone, a bit late on closing this one but I've been able to work on the repo now and have a build in koji for f34.