Spec URL: http://www.coolbits.it/fedora/kpmcore.spec SRPM URL: http://www.coolbits.it/fedora/kpmcore-1.9.50-2.fc23.src.rpm Description: KPMcore contains common code for managing partitions by KDE Partition Manager and other KDE projects. Fedora Account System Username: mattia
Link to koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=11970669
mattia's scratch build of kpmcore-1.9.50-2.fc23.src.rpm for rawhide completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11970669
Update version to fix soname versioning: Spec URL: http://www.coolbits.it/fedora/kpmcore.spec SRPM URL: http://www.coolbits.it/fedora/kpmcore-1.9.50-3.fc23.src.rpm
mattia's scratch build of kpmcore-1.9.50-3.fc23.src.rpm for rawhide completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11980343
Package Review ============== Legend: [x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated [ ] = Manual review needed Issues: ======= - Package installs properly. Note: Installation errors (see attachment) See: https://fedoraproject.org/wiki/Packaging:Guidelines - Package installs a %{name}.desktop using desktop-file-install or desktop- file-validate if there is such a file. ===== 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 (2 clause)", "GPL (v3 or later)", "Unknown or generated", "*No copyright* Public domain". 70 files have unknown license. Detailed output of licensecheck in /home/tom/1285042-kpmcore/licensecheck.txt [x]: 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. [x]: Development files must be in a -devel package [x]: Package uses nothing in %doc for runtime. [x]: The spec file handles locales properly. [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. [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]: 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]: Package contains desktop file if it is a GUI application. [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]: Packager, Vendor, PreReq, Copyright tags should not be in spec file [-]: 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 kpmcore- debuginfo [?]: 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]: 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. [x]: Packages should try to preserve timestamps of original installed files. [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]: Spec use %global instead of %define unless justified. ===== EXTRA items ===== Generic: [!]: Rpmlint is run on all installed packages. Note: Mock build failed See: http://fedoraproject.org/wiki/Packaging/Guidelines#rpmlint [-]: Large data in /usr/share should live in a noarch subpackage if package is arched. Note: Arch-ed rpms have a total of 2344960 bytes in /usr/share [x]: Spec file according to URL is the same as in SRPM. Installation errors ------------------- INFO: mock.py version 1.2.13 starting (python version = 3.4.3)... Start: init plugins INFO: selinux disabled Finish: init plugins Start: run Start: chroot init INFO: calling preinit hooks INFO: enabled root cache INFO: enabled dnf cache Start: cleaning dnf metadata Finish: cleaning dnf metadata INFO: enabled ccache Mock Version: 1.2.13 INFO: Mock Version: 1.2.13 Finish: chroot init INFO: installing package(s): /home/tom/1285042-kpmcore/results/kpmcore-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-devel-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-debuginfo-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-debuginfo-1.9.50-3.fc24.x86_64.rpm ERROR: Command failed. See logs for output. # /usr/bin/dnf --installroot /var/lib/mock/compton-rawhide-x86_64/root/ --releasever 24 install /home/tom/1285042-kpmcore/results/kpmcore-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-devel-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-debuginfo-1.9.50-3.fc24.x86_64.rpm /home/tom/1285042-kpmcore/results/kpmcore-debuginfo-1.9.50-3.fc24.x86_64.rpm Rpmlint ------- Checking: kpmcore-1.9.50-3.fc24.x86_64.rpm kpmcore-devel-1.9.50-3.fc24.x86_64.rpm kpmcore-debuginfo-1.9.50-3.fc24.x86_64.rpm kpmcore-1.9.50-3.fc24.src.rpm kpmcore.x86_64: W: summary-ended-with-dot C Library for managing partitions by KDE programs. kpmcore.x86_64: W: obsolete-not-provided kde-partitionmanager kpmcore.x86_64: W: no-documentation kpmcore-devel.x86_64: W: only-non-binary-in-usr-lib kpmcore-devel.x86_64: W: no-documentation kpmcore.src: W: summary-ended-with-dot C Library for managing partitions by KDE programs. 4 packages and 0 specfiles checked; 0 errors, 6 warnings. Requires -------- kpmcore (rpmlib, GLIBC filtered): /sbin/ldconfig e2fsprogs kf5-filesystem libKF5ConfigCore.so.5()(64bit) libKF5CoreAddons.so.5()(64bit) libKF5I18n.so.5()(64bit) libKF5IconThemes.so.5()(64bit) libKF5KIOCore.so.5()(64bit) libKF5Service.so.5()(64bit) libQt5Core.so.5()(64bit) libQt5Gui.so.5()(64bit) libQt5Widgets.so.5()(64bit) libatasmart.so.4()(64bit) libblkid.so.1()(64bit) libblkid.so.1(BLKID_1.0)(64bit) libc.so.6()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libkpmcore.so.1()(64bit) libm.so.6()(64bit) libparted-fs-resize.so.0()(64bit) libparted-fs-resize.so.0(LIBPARTED_FS_RESIZE_0.0.0)(64bit) libparted.so.2()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) parted rtld(GNU_HASH) kpmcore-debuginfo (rpmlib, GLIBC filtered): kpmcore-devel (rpmlib, GLIBC filtered): kpmcore(x86-64) libkpmcore.so.1()(64bit) qt5-qtbase-devel Provides -------- kpmcore: kpmcore kpmcore(x86-64) libkpmcore.so.1()(64bit) libpmdummybackendplugin.so()(64bit) libpmlibpartedbackendplugin.so()(64bit) kpmcore-debuginfo: kpmcore-debuginfo kpmcore-debuginfo(x86-64) kpmcore-devel: cmake(KPMcore) kpmcore-devel kpmcore-devel(x86-64) Unversioned so-files -------------------- kpmcore: /usr/lib64/qt5/plugins/libpmdummybackendplugin.so kpmcore: /usr/lib64/qt5/plugins/libpmlibpartedbackendplugin.so Source checksums ---------------- http://download.kde.org/unstable/kpmcore/1.9.50/src/kpmcore-1.9.50.tar.xz : CHECKSUM(SHA256) this package : 941040daaf5a7cc3df6c386cc84c9e44c85ae9d6fe4b111eb058d23640bbfd93 CHECKSUM(SHA256) upstream package : 941040daaf5a7cc3df6c386cc84c9e44c85ae9d6fe4b111eb058d23640bbfd93 Generated by fedora-review 0.6.0 (3c5c9d7) last change: 2015-05-20 Command line :/usr/bin/fedora-review -m compton-rawhide-x86_64 -b 1285042 Buildroot used: compton-rawhide-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
A few rpmlint warnings: kpmcore.x86_64: W: summary-ended-with-dot C Library for managing partitions by KDE programs. kpmcore.x86_64: W: obsolete-not-provided kde-partitionmanager kpmcore.src: W: summary-ended-with-dot C Library for managing partitions by KDE programs. Other than that (and one of the warnings relates to this) the biggest issue is the Obsoletes you have added I think. Does this really obsolete kde-partitionmanager? It looks to me like that still exists but this library has been split out from it?
Yes, kde-partitionmanager has been splitted in the program itself and this library. I need to obsolete kde-partitionmanager < 1.9.50 by KPMcore to avoid file conflicts (qt5/plugins/ libraries) and then update kde-partitionmanager to 1.9.50 which depends on KPMcore.
So firstly if you're going to have the obsoletes then the guidelines are here: https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming.2FReplacing_Existing_Packages Which would require that the obsolete should be "< 1.2.1-7" by my calculation. I still don't think it's right though - if you push this with the obsolete in order to build the new kde-partitionmanager then there will be a gap where somebody who updates will have kde-partitionmanager removed. If you push this without the obsolete then you're right that nobody with the current kde-partitionanager will be able to update this because of the conflict but once you push the new kde-partitionanager then I think that an update will work right?
(In reply to Tom Hughes from comment #8) > So firstly if you're going to have the obsoletes then the guidelines are > here: > > https://fedoraproject.org/wiki/Packaging:Guidelines#Renaming. > 2FReplacing_Existing_Packages > > Which would require that the obsolete should be "< 1.2.1-7" by my > calculation. > You're right, my mistake. > I still don't think it's right though - if you push this with the obsolete > in order to build the new kde-partitionmanager then there will be a gap > where somebody who updates will have kde-partitionmanager removed. > > If you push this without the obsolete then you're right that nobody with the > current kde-partitionanager will be able to update this because of the > conflict but once you push the new kde-partitionanager then I think that an > update will work right? Well, to have kde-partitionmanager removed a user should choose to install KPMcore, at present there's nothing that automatically requires KPMcore. I think we're in the case stated in the guidelines: "If a package supersedes/replaces an existing package without being a compatible enough replacement as defined in above, use only the Obsoletes from above."
No, just doing an update is enough because yum/dnf treat an obsolete as an update for the package being obsoleted: fedora23 [~] % sudo dnf update Last metadata expiration check performed 0:00:39 ago on Sun Nov 29 11:45:16 2015. Dependencies resolved. =============================================================================================================================== Package Arch Version Repository Size =============================================================================================================================== Installing: kpmcore x86_64 1.9.50-3.fc23 compton 515 k replacing kde-partitionmanager.x86_64 1.2.1-6.fc23 Transaction Summary =============================================================================================================================== Install 1 Package Total download size: 515 k Installed size: 3.0 M Is this ok [y/N]: n Operation aborted.
Ok, I've found a better case in Guidelines: https://fedoraproject.org/wiki/Packaging:Conflicts#Splitting_Packages I've made a new version: Spec URL: http://www.coolbits.it/fedora/kpmcore.spec SRPM URL: http://www.coolbits.it/fedora/kpmcore-1.9.50-4.fc23.src.rpm
Great. That looks good now, so package approved.
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/KPMcore
KPMcore has been built in rawhide. Thanks.
For the record it should be noted that this package was reviewed and approved on the basis of the name as given in the spec file (kpmcore) which was in compliance with https://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming but was then accidentally created as KPMcore in pkgdb.
We really need to get this fixed! The camel-case name is a major annoyance and does not comply to the packaging guidelines, nor was the package approved for being imported under that name. The specfile does not even Provide the lowercase name!
Should I fill another review request with lowercase name and retire KPMcore after the new package will be approved? Or there's the way to rename the existing one? Actually the only package that depends on KPMcore is kde-partitionmanager.
There shouldn't be any need for that - a rename review should be enough.
See https://fedoraproject.org/wiki/Package_Renaming_Process for details - it's basically a new review aimed at ensuring the obsoletes etc are right.
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/NWPAGLMY6HJTN6VYYFMH3US6ZFDD7PZK/ > Actually the only package that depends on KPMcore is kde-partitionmanager. Calamares 2.0 (which is currently at beta 6 and will soon be released officially) also depends on kpmcore, that's why it was turned into a library to begin with.
done https://bugzilla.redhat.com/show_bug.cgi?id=1299147