Spec URL: https://jjames.fedorapeople.org/jmol/jmol.spec SRPM URL: https://jjames.fedorapeople.org/jmol/jmol-14.31.4-1.fc34.src.rpm Fedora Account System Username: jjames Description: Jmol is a free, open source molecule viewer for students, educators, and researchers in chemistry and biochemistry. NOTE: The jmol package was previously in Fedora. This is a re-review due to it being absent for some months.
Since you're using the old spec, please keep at least some parts of the old %changelog.
Which parts do you think are worth keeping? Certainly not the automatic rebuilds. Even the "update to <version>" entries aren't worth keeping, in my opinion, since we're starting out on a newer version than the last build. Which ones do you think should be kept?
The unretiring guideline https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers says: "Restore the contents in GIT and prepare a new build and update (if necessary)" which means that the changelog shouldn't be purged, as for any other update. If the old changelog is much too long, you can just keep e.g. the last 5 or 10 entries so that you have at least one that is not an automatic rebuild. Looks like 14.6.0 had 8 releases, and 14.4.0 had 2; if you keep 10 then you keep 5 years of history which is surely sufficient, and still won't take too much space in the spec. Note that the changelog is anyway trimmed from the binary packages so you don't have to trim it from the spec https://www.spinics.net/lists/fedora-devel/msg260690.html
Thanks a lot for packaging Jmol! I remember using it quite a bit during my PhD studies. COPR project with jmol and its dependency naga: https://copr.fedorainfracloud.org/coprs/andymenderunix/jmol/ If you'd like to get write access to it, please request permissions via COPR :). > Name: jmol > Version: 14.31.4 > Release: 1%{?dist} > Summary: Java viewer for chemical structures in 3D A couple of new versions were recently released, newest being 14.31.8: https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.31/Jmol%2014.31.8/ > Requires: apache-commons-cli > Requires: hicolor-icon-theme > Requires: java > Requires: javapackages-tools > Requires: naga The Java Packaging Guidelines mention also that a Requires on javapackages-filesystem and java-headless should be added as well: https://docs.fedoraproject.org/en-US/packaging-guidelines/Java/#_buildrequires_and_requires > Requires: java-headless > Requires: javapackages-filesystem > %files -n jsmol > %doc appletweb/jsmol/README.TXT > %{_jsdir}/jsmol/ If jsmol is an independent package, it needs to provide its own license file with the %license macro. If it's not independent, it needs to explicitly Requires the main jmol package: > Requires: %{name} = %{version}-%{release} > # Icons from Nuvola are included, but at different sizes than Fedora provides > Provides: bundled(nuvola-icon-theme) Is the license on this icon set compatible with the other licenses? Full review below: Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Package installs properly. Note: Installation errors (see attachment) See: https://docs.fedoraproject.org/en-US/packaging-guidelines/ - This seems like a Java package, please install fedora-review-plugin-java to get additional checks Review: not maintained anymore. - Package does not use a name that already exists. Note: A package with this name already exists. Please check https://src.fedoraproject.org/rpms/jmol See: https://docs.fedoraproject.org/en-US/packaging- guidelines/Naming/#_conflicting_package_names Review: It's fine, since it's a re-review of a retired package. ===== MUST items ===== Generic: [x]: Package successfully compiles and builds into binary rpms on at least one supported primary architecture. Note: Using prebuilt packages Review: Tested in COPR. [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", "GNU Lesser General Public License (v2.1 or later)", "*No copyright* IBM Public License 1.0", "BSD 2-clause "Simplified" License", "GPL (v2 or later) (with incorrect FSF address)", "BSD 2-clause "Simplified" License GNU Lesser General Public License (v2.1 or later)", "GPL (v2)", "*No copyright* GNU Lesser General Public License (v2.1 or later)", "GNU Lesser General Public License", "BSD 3-clause "New" or "Revised" License", "*No copyright* Apache License 2.0", "*No copyright* Creative Commons Attribution-ShareAlike 3.0 Unported License". 840 files have unknown license. Detailed output of licensecheck in /home/amender/rpmbuild/SPECS/jmol/jmol/licensecheck.txt [!]: License file installed when any subpackage combination is installed. Review: missing in jsmol. [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. Review: contains 3 bundled libraries. Were FPC exceptions granted for these? [x]: Changelog in prescribed format. Review: Yes, but should include past entries as suggested by Susi Lehtola. [x]: Sources contain only permissible code or content. [-]: Development files must be in a -devel package [?]: 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. Review: Obsoletes for jspecview properly indicated. [x]: Requires correct, justified where necessary. Review: yes, but see earlier comments. [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. [x]: Large documentation must go in a -doc subpackage. Large could be size (~1MB) or number of files. Note: Documentation size is 593920 bytes in 4 files. [x]: Package complies to the Packaging Guidelines [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]: Package contains desktop file if it is a GUI application. [x]: Package installs a %{name}.desktop using desktop-file-install or desktop-file-validate if there is such a file. [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]: Reviewer should test that the package builds in mock. [-]: 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 jsmol Review: mentioned in earlier comment. [?]: Package functions as described. [!]: Latest version is packaged. Review: No, see earlier comments. [x]: 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. [-]: 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. Review: verified in COPR. [-]: %check is present and all tests pass. [x]: Packages should try to preserve timestamps of original installed files. [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]: 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: [!]: Rpmlint is run on all installed packages. Note: Mock build failed See: https://docs.fedoraproject.org/en-US/packaging- guidelines/#_use_rpmlint Installation errors ------------------- INFO: mock.py version 2.6 starting (python version = 3.8.5)... Start: init plugins INFO: selinux enabled Finish: init plugins INFO: Signal handler active Start: run Start: chroot init INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin Mock Version: 2.6 INFO: Mock Version: 2.6 Finish: chroot init INFO: installing package(s): /home/amender/rpmbuild/SPECS/jmol/jmol-javadoc-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jsmol-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jmol-doc-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jmol-14.31.4-1.fc34.noarch.rpm ERROR: Command failed: # /usr/bin/dnf --installroot /var/lib/mock/fedora-rawhide-x86_64/root/ --releasever 34 --setopt=deltarpm=False --allowerasing --disableplugin=local --disableplugin=spacewalk install /home/amender/rpmbuild/SPECS/jmol/jmol-javadoc-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jsmol-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jmol-doc-14.31.4-1.fc34.noarch.rpm /home/amender/rpmbuild/SPECS/jmol/jmol-14.31.4-1.fc34.noarch.rpm --setopt=tsflags=nocontexts Rpmlint ------- Checking: jmol-14.31.4-1.fc34.noarch.rpm jsmol-14.31.4-1.fc34.noarch.rpm jmol-javadoc-14.31.4-1.fc34.noarch.rpm jmol-doc-14.31.4-1.fc34.noarch.rpm jmol-14.31.4-1.fc34.src.rpm jmol.noarch: W: obsolete-not-provided jspecview jmol.noarch: E: incorrect-fsf-address /usr/share/licenses/jmol/COPYRIGHT.txt jmol.noarch: W: no-manual-page-for-binary jmol jsmol.noarch: W: spelling-error %description -l en_US jmol -> moll jsmol.noarch: W: spelling-error %description -l en_US sourceforge -> Sourceforge, source forge, source-forge jmol-javadoc.noarch: W: obsolete-not-provided jspecview-javadoc jmol-javadoc.noarch: E: incorrect-fsf-address /usr/share/licenses/jmol-javadoc/COPYRIGHT.txt jmol-doc.noarch: E: incorrect-fsf-address /usr/share/licenses/jmol-doc/COPYRIGHT.txt jmol.src:56: W: unversioned-explicit-provides bundled(jspecview) jmol.src:59: W: unversioned-explicit-provides bundled(sparshui) jmol.src:62: W: unversioned-explicit-provides bundled(nuvola-icon-theme) 5 packages and 0 specfiles checked; 3 errors, 8 warnings. Source checksums ---------------- http://biomodel.uah.es/Jmol/logos/Jmol_icon13.svg : CHECKSUM(SHA256) this package : 247d373230b127826809480183b624d0ceff3b22a49ac1626ff31aa526af0b5a CHECKSUM(SHA256) upstream package : 247d373230b127826809480183b624d0ceff3b22a49ac1626ff31aa526af0b5a http://downloads.sourceforge.net/jmol/Jmol-14.31.4-full.tar.gz : CHECKSUM(SHA256) this package : 3700a7a684a0ff20decee2817f1ea3ffa1d09effbba534ee116dca9ec9ac8670 CHECKSUM(SHA256) upstream package : 3700a7a684a0ff20decee2817f1ea3ffa1d09effbba534ee116dca9ec9ac8670 Requires -------- jmol (rpmlib, GLIBC filtered): /usr/bin/bash apache-commons-cli hicolor-icon-theme java javapackages-tools naga jsmol (rpmlib, GLIBC filtered): web-assets-filesystem jmol-javadoc (rpmlib, GLIBC filtered): javapackages-tools jmol-doc (rpmlib, GLIBC filtered): Provides -------- jmol: application() application(jmol.desktop) bundled(jspecview) bundled(nuvola-icon-theme) bundled(sparshui) jmol jsmol: jsmol jmol-javadoc: jmol-javadoc jmol-doc: jmol-doc
(In reply to Susi Lehtola from comment #3) > The unretiring guideline > https://fedoraproject.org/wiki/Orphaned_package_that_need_new_maintainers > says: "Restore the contents in GIT and prepare a new build and update (if > necessary)" > > which means that the changelog shouldn't be purged, as for any other update. I missed that. Thanks for pointing it out. I have restored the entire changelog. (In reply to Andy Mender from comment #4) > A couple of new versions were recently released, newest being 14.31.8: > https://sourceforge.net/projects/jmol/files/Jmol/Version%2014.31/Jmol%2014. > 31.8/ Upstream seems to release frequently. I'm sure that will make maintaining this package ... interesting. :-) I have updated to version 14.31.8. > The Java Packaging Guidelines mention also that a Requires on > javapackages-filesystem and java-headless should be added as well: > https://docs.fedoraproject.org/en-US/packaging-guidelines/Java/ I have added javapackages-filesystem. However, java-headless is not good enough. This package uses Java's GUI features, so the dependency has to be on java. This is covered by https://docs.fedoraproject.org/en-US/packaging-guidelines/Java/#_buildrequires_and_requires. > If jsmol is an independent package, it needs to provide its own license file > with the %license macro. If it's not independent, it needs to explicitly > Requires the main jmol package: > > Requires: %{name} = %{version}-%{release} I have added the license files to jsmol. > > # Icons from Nuvola are included, but at different sizes than Fedora provides > > Provides: bundled(nuvola-icon-theme) > > Is the license on this icon set compatible with the other licenses? Good catch. The icons are GPLv2, so I have added that license to the License field. New URLs: Spec URL: https://jjames.fedorapeople.org/jmol/jmol.spec SRPM URL: https://jjames.fedorapeople.org/jmol/jmol-14.31.8-1.fc34.src.rpm
> I have added javapackages-filesystem. However, java-headless is not good enough. This package uses Java's GUI features, so the dependency has to be on java. This is covered by https://docs.fedoraproject.org/en-US/packaging-guidelines/Java/#_buildrequires_and_requires. Makes sense! > Good catch. The icons are GPLv2, so I have added that license to the License field. I ran a license check against this doc, since the package has multiple licenses: https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses There are some aspects of LGPLv2 vs GPLv2 which make certain scenarios not permissible, but I think in this case it's okay. A follow-up COPR build with latest naga: https://copr.fedorainfracloud.org/coprs/andymenderunix/jmol/build/1690301/ Before I approve, could you have a look at the failed builds on Fedora 32? It seems like it's picking up Java 8 and not 11. Or is the package not compatible with Java < 11 and should only go into Fedora 33+?
Thank you for the review, Andy. (In reply to Andy Mender from comment #6) > Before I approve, could you have a look at the failed builds on Fedora 32? > It seems like it's picking up Java 8 and not 11. Or is the package not > compatible with Java < 11 and should only go into Fedora 33+? I have a comment at the top of the spec file about this. My intention is to leave the package alone in <= F32 and only build this version of it in F33+. There is a conditional %if 0%{fedora} <= 32 on line 128 of the spec file from when I tried to get this all to work on F32, but I think I will remove that before importing. The problem is that patch0 sets target to 11, which makes JDK 8 unhappy.
Sounds good, package approved!
FEDORA-2020-f28bd01371 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-f28bd01371
FEDORA-2020-f28bd01371 has been pushed to the Fedora 33 testing repository. In short time you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-f28bd01371` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-f28bd01371 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2020-f28bd01371 has been pushed to the Fedora 33 stable repository. If problem still persists, please make note of it in this bug report.