Bug 1285042 - (KPMcore) Review Request: KPMcore - Library for managing partitions by KDE programs
Review Request: KPMcore - Library for managing partitions by KDE programs
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Tom Hughes
Fedora Extras Quality Assurance
:
Depends On:
Blocks: kde-reviews
  Show dependency treegraph
 
Reported: 2015-11-24 12:59 EST by Mattia Verga
Modified: 2016-01-16 15:59 EST (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2015-12-01 03:43:03 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
tom: fedora‑review+


Attachments (Terms of Use)

  None (edit)
Description Mattia Verga 2015-11-24 12:59:21 EST
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
Comment 1 Mattia Verga 2015-11-24 13:11:29 EST
Link to koji build:
http://koji.fedoraproject.org/koji/taskinfo?taskID=11970669
Comment 2 Upstream Release Monitoring 2015-11-24 13:21:15 EST
mattia's scratch build of kpmcore-1.9.50-2.fc23.src.rpm for rawhide completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11970669
Comment 3 Mattia Verga 2015-11-25 15:58:05 EST
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
Comment 4 Upstream Release Monitoring 2015-11-25 16:13:00 EST
mattia's scratch build of kpmcore-1.9.50-3.fc23.src.rpm for rawhide completed http://koji.fedoraproject.org/koji/taskinfo?taskID=11980343
Comment 5 Tom Hughes 2015-11-28 14:24:59 EST
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
Comment 6 Tom Hughes 2015-11-28 14:28:02 EST
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?
Comment 7 Mattia Verga 2015-11-29 04:25:21 EST
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.
Comment 8 Tom Hughes 2015-11-29 04:34:50 EST
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?
Comment 9 Mattia Verga 2015-11-29 04:57:10 EST
(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."
Comment 10 Tom Hughes 2015-11-29 06:46:50 EST
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.
Comment 11 Mattia Verga 2015-11-29 07:04:48 EST
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
Comment 12 Tom Hughes 2015-11-29 07:11:47 EST
Great. That looks good now, so package approved.
Comment 13 Till Maas 2015-11-29 10:51:10 EST
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/KPMcore
Comment 14 Mattia Verga 2015-12-01 03:43:03 EST
KPMcore has been built in rawhide.

Thanks.
Comment 15 Tom Hughes 2015-12-01 03:51:38 EST
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.
Comment 16 Kevin Kofler 2016-01-16 09:50:06 EST
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!
Comment 17 Mattia Verga 2016-01-16 10:01:26 EST
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.
Comment 18 Tom Hughes 2016-01-16 10:04:01 EST
There shouldn't be any need for that - a rename review should be enough.
Comment 19 Tom Hughes 2016-01-16 10:04:51 EST
See https://fedoraproject.org/wiki/Package_Renaming_Process for details - it's basically a new review aimed at ensuring the obsoletes etc are right.
Comment 20 Kevin Kofler 2016-01-16 10:16:58 EST
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.
Comment 21 Mattia Verga 2016-01-16 11:38:24 EST
done
https://bugzilla.redhat.com/show_bug.cgi?id=1299147

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