Bug 1475483 - Review Request: qbs - Cross platform build tool
Review Request: qbs - Cross platform build tool
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: Zbigniew Jędrzejewski-Szmek
Fedora Extras Quality Assurance
Depends On:
Blocks: 1466775
  Show dependency treegraph
Reported: 2017-07-26 14:51 EDT by Sandro Mani
Modified: 2017-08-02 07:33 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2017-08-02 07:33:32 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
zbyszek: fedora‑review+

Attachments (Terms of Use)

  None (edit)
Description Sandro Mani 2017-07-26 14:51:51 EDT
Spec URL: https://smani.fedorapeople.org/review/qbs.spec
SRPM URL: https://smani.fedorapeople.org/review/qbs-1.8.1-1.fc27.src.rpm
Description: Cross platform build tool
Fedora Account System Username: smani

This package used to be built out of the qt-creator SRPM, but upstream notified me that this is the wrong approach, in particular the version should not be the one of qt-creator, but the actual qbs version (which is currently 1.8.1, hence the epoch bump to obsolete the qbs using the qt-creator version, currently 4.3.2).

Scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=20772211
Comment 1 Zbigniew Jędrzejewski-Szmek 2017-07-27 13:58:57 EDT
http://wiki.qt.io/Qbs → https://
http://download.qt.io/official_releases/ → https://

> LGPLv2 and LGPLv3, with exceptions

I think this should be "LGPLv2 with exceptions and LGPLv3 with exceptions" (following https://fedoraproject.org/wiki/Licensing:Main#Software_License_List).

> # qbs was previously packaged as part of qt-creator, using the qt-creator version
> Obsoletes:      %{name} < 0:4.4.0

Shouldn't this be "qt-creator < 0:4.4.0" instead?
Also, note that the new qt-creator package should have Obsoletes: %{name} < 0:4.4.0, so called self-obsoletes, so that both packages are installed during upgrade.

s/Examples for projects/Example projects/

https://fedoraproject.org/wiki/Packaging:Scriptlets#Shared_libraries are needed.

Looks good otherwise.
Comment 2 Sandro Mani 2017-07-31 07:05:39 EDT
Thanks for the comments and sorry for the late reply, I was trying to get the tests working with upstream - still having some issues.

Uhm why obsoletes qt-creator? Qbs is currently a subpackage of qt-creator, it's that package that should be obsoleted, not the entire qt-creator. Or am I missing something?

Current version:
SPEC: https://smani.fedorapeople.org/review/qbs.spec
SRPM: https://smani.fedorapeople.org/review/qbs-1.8.1-2.fc27.src.rpm
Comment 3 Zbigniew Jędrzejewski-Szmek 2017-07-31 11:26:20 EDT
dnf does not care which srpm a subpackage is built from. But there's no qbs package with a version < 0:4.4.0, so the Obsoletes line right now does nothing.

But there's a different consideration: when upgrading, users who had qt-creator-4.2.rpm installed, should get *both* qt-creator-4.4.rpm and qbs.rpm. For that to happen, you make both packages obsolete the old name:

qt-creator: Obsoletes: %{name} < 0:4.4.0
qbs: Obsoletes: qt-creator < 0:4.4.0

Then when upgrading, dnf should install both subpackages. At least that's what happened at some time with yum and should happen with dnf. There are bugs open for some corner cases, it seems it doesn't always work, but doing this better than nothing: https://bugzilla.redhat.com/show_bug.cgi?id=1261034, "Scenario C".

> http://wiki.qt.io/Qbs → https://
> http://download.qt.io/official_releases/ → https://
Still there.

Package is APPROVED. Please fix the http URL when uploading. I think you should add the Obsoletes, push qt-creator-4.4 and qbs in a single bodhi update, and test if the upgrades work as expected.
Comment 4 Sandro Mani 2017-07-31 11:34:35 EDT
The qbs subpackage is only f27+ with qt-creator-4.3.x, see [1]. This actually makes it tricky now that I think of it though, since Obsoleting qbs will work fine for current rawhide users, but users updating from f26 to f27 will indeed hit the scenario you describe. So I think I actually have to obsolete both qt-creator and qbs?

[1] https://koji.fedoraproject.org/koji/packageinfo?packageID=8039
Comment 5 Zbigniew Jędrzejewski-Szmek 2017-07-31 11:41:55 EDT
OK, I wasn't aware of the subpackage in rawhide. But this doesn't really change anything: dnf doesn't care from what srpm a binary subpackage originates. So when you just move the subpackage from qt-creator to a new srpm, nothing needs to be done (and the Obsoletes is not useful but harmless). So yeah, I still think you need to add the two Obsoletes as described for F26→F27+ upgrades.
Comment 6 Sandro Mani 2017-07-31 11:45:25 EDT
Okay, thanks for the review!
Comment 7 Sandro Mani 2017-07-31 18:57:29 EDT

 Problem 1: both package qbs-1:1.9.0-0.1.gita2fd0f3.fc27.x86_64 and qt-creator-4.4.0-0.1.beta1.fc27.x86_64 obsolete qt-creator < 4.4.0
  - cannot install the best update candidate for package qbs-4.3.1-2.fc27.x86_64

Would that be one of the issues in #1261034?
Comment 8 Zbigniew Jędrzejewski-Szmek 2017-07-31 19:19:18 EDT
What was the command that gave this error?
Comment 9 Sandro Mani 2017-07-31 19:23:00 EDT
Just a plain

# dnf update

By the way, since there is a DSO dependency 

/usr/lib64/qtcreator/plugins/libQbsProjectManager.so -> libqbscore.so.1.8

it is already taken care of that updating qt-creator will also install the new qbs. So actually I think no Obsoletes are even necessary.
Comment 10 Gwyn Ciesla 2017-08-01 08:20:26 EDT
Package request has been approved: https://admin.fedoraproject.org/pkgdb/package/rpms/qbs

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