[opensuse-packaging] rpmlint(?): W: no-version-in-last-changelog
Hi, can we please remove this obviously broken check? [ 6s] RPMLINT report: [ 6s] =============== [ 6s] vdr-plugin-satip.x86_64: I: binary-or-shlib-calls-gethostbyname /usr/lib64/vdr/libvdr-satip.so.2.4.0 [ 6s] The binary calls gethostbyname(). Please port the code to use getaddrinfo(). [ 6s] [ 6s] vdr-plugin-satip.src: W: no-version-in-last-changelog [ 6s] vdr-plugin-satip.x86_64: W: no-version-in-last-changelog [ 6s] The latest changelog entry doesn't contain a version. Please insert the [ 6s] version that is coherent with the version of the package and rebuild it. [ 6s] [ 6s] 2 packages and 0 specfiles checked; 0 errors, 2 warnings. [ 6s] [ 6s] [ 6s] strolchi finished "build vdr-plugin-satip.spec" at Wed Dec 26 17:14:57 UTC 2018. seife@strolchi:~/buildservice/vdr:unstable/vdr-plugin-satip> head -5 *es ------------------------------------------------------------------- Wed Dec 26 16:56:03 UTC 2018 - Stefan Seyfried <seife+obs@b1-systems.com> - update to version 2.4.0 (2018-04-15): - Updated for vdr-2.4.0 BTW the warning is absolutely useless, because I can make lots of changes to a package that don't affect the version at all. -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wed, Dec 26, 2018 at 12:16 PM Stefan Seyfried <stefan.seyfried@googlemail.com> wrote:
Hi,
can we please remove this obviously broken check?
[ 6s] RPMLINT report: [ 6s] =============== [ 6s] vdr-plugin-satip.x86_64: I: binary-or-shlib-calls-gethostbyname /usr/lib64/vdr/libvdr-satip.so.2.4.0 [ 6s] The binary calls gethostbyname(). Please port the code to use getaddrinfo(). [ 6s] [ 6s] vdr-plugin-satip.src: W: no-version-in-last-changelog [ 6s] vdr-plugin-satip.x86_64: W: no-version-in-last-changelog [ 6s] The latest changelog entry doesn't contain a version. Please insert the [ 6s] version that is coherent with the version of the package and rebuild it. [ 6s] [ 6s] 2 packages and 0 specfiles checked; 0 errors, 2 warnings. [ 6s] [ 6s] [ 6s] strolchi finished "build vdr-plugin-satip.spec" at Wed Dec 26 17:14:57 UTC 2018.
seife@strolchi:~/buildservice/vdr:unstable/vdr-plugin-satip> head -5 *es ------------------------------------------------------------------- Wed Dec 26 16:56:03 UTC 2018 - Stefan Seyfried <seife+obs@b1-systems.com>
- update to version 2.4.0 (2018-04-15): - Updated for vdr-2.4.0
BTW the warning is absolutely useless, because I can make lots of changes to a package that don't affect the version at all.
The purpose of this check is to ensure that each newest changelog entry mapped to the version-release built of the package. However, openSUSE changelogs are not structured that way, so this particular check has never been satisfied properly. If you look at Fedora or Mageia packages, the changelog entries are structured in such a way that this warning never triggers. The SUSE-style changes format doesn't include enough information for that check to pass post-conversion.Thus, I agree it should be disabled in openSUSE, or at least have a variation of the check that makes more sense. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 12/26/18 8:15 PM, Neal Gompa wrote:
The purpose of this check is to ensure that each newest changelog entry mapped to the version-release built of the package. However, openSUSE changelogs are not structured that way, so this particular check has never been satisfied properly. If you look at Fedora or Mageia packages, the changelog entries are structured in such a way that this warning never triggers. The SUSE-style changes format doesn't include enough information for that check to pass post-conversion.Thus, I agree it should be disabled in openSUSE, or at least have a variation of the check that makes more sense.
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example: https://src.fedoraproject.org/cgit/rpms/systemd.git/tree/systemd.spec#n691 I agree that this check should be disabled in openSUSE, unless we want to introduce the same format of changelog which Fedora has. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki <mrostecki@suse.de> wrote:
On 12/26/18 8:15 PM, Neal Gompa wrote:
The purpose of this check is to ensure that each newest changelog entry mapped to the version-release built of the package. However, openSUSE changelogs are not structured that way, so this particular check has never been satisfied properly. If you look at Fedora or Mageia packages, the changelog entries are structured in such a way that this warning never triggers. The SUSE-style changes format doesn't include enough information for that check to pass post-conversion.Thus, I agree it should be disabled in openSUSE, or at least have a variation of the check that makes more sense.
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example:
https://src.fedoraproject.org/cgit/rpms/systemd.git/tree/systemd.spec#n691
I agree that this check should be disabled in openSUSE, unless we want to introduce the same format of changelog which Fedora has.
I'm surprised and impressed that someone knows where to look for Fedora packaging sources. I always had the impression that most folks seemed to be ignorant of how it's done in Fedora. That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hello, Am Donnerstag, 27. Dezember 2018, 22:19:42 CET schrieb Neal Gompa:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki wrote:
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example: [...] That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
And now for the funny part - I (and even rpmlint) have to disagree about "completely fail" ;-) https://rpmlint.opensuse.org/ says we have 8197 (source) packages in Factory x86_64. However, if you filter https://rpmlint.opensuse.org/rules/openSUSE:Factory/x86_64/standard for "no-version-in-last-changelog", it will "only" list 2396 packages (about 30% of all packages).
From what I've read in this discussion, I'd expect that _all_ packages show this warning, not only 30%.
Did I misunderstand the check and/or overlook something? ;-) Regards, Christian Boltz PS: If you want to explain by example - apparmor in factory currently shows the warning, but in security:apparmor it doesn't. Note that there's a pending SR with a version update, so security:apparmor currently has a newer version. -- * The Arch Way: "Do it yourself, it's a learning exercise" * The Gentoo Way: "Do it yourself, and you can read the Arch wiki while everything is compiling" [Richard Brown at FOSDEM 2017] -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 12/27/18 11:42 PM, Christian Boltz wrote:
Hello,
Am Donnerstag, 27. Dezember 2018, 22:19:42 CET schrieb Neal Gompa:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki wrote:
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example: [...] That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
And now for the funny part - I (and even rpmlint) have to disagree about "completely fail" ;-)
https://rpmlint.opensuse.org/ says we have 8197 (source) packages in Factory x86_64. However, if you filter https://rpmlint.opensuse.org/rules/openSUSE:Factory/x86_64/standard for "no-version-in-last-changelog", it will "only" list 2396 packages (about 30% of all packages).
From what I've read in this discussion, I'd expect that _all_ packages show this warning, not only 30%.
Did I misunderstand the check and/or overlook something? ;-)
It seems that no-version-in-last-changelog check passes when the first line of changelog entry contains only email, not the full name, which is a weird false positive. In example, the following entry passes the check: ------------------------------------------------------------------- Tue Nov 27 17:08:00 UTC 2018 - mrostecki@suse.de - Initial version 3.1 But the following does not pass the check: ------------------------------------------------------------------- Tue Nov 27 17:08:00 UTC 2018 - Michał Rostecki <mrostecki@suse.de> - Initial version 3.1
PS: If you want to explain by example - apparmor in factory currently shows the warning, but in security:apparmor it doesn't. Note that there's a pending SR with a version update, so security:apparmor currently has a newer version.
So, apparmor package passes the check only because the last entry starts with: Fri Dec 21 13:41:32 UTC 2018 - mt@suse.de instead of Fri Dec 21 13:41:32 UTC 2018 - Marius Tomaschewski <mt@suse.de> But the proper fix should look like: Fri Dec 21 13:41:32 UTC 2018 - Marius Tomaschewski <mt@suse.de> - 2.13.2-1 -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Am 28.12.18 um 11:49 schrieb Michal Rostecki:
But the proper fix should look like:
Fri Dec 21 13:41:32 UTC 2018 - Marius Tomaschewski <mt@suse.de> - 2.13.2-1
No, because we cannot even know the build revision when writing the changelog (and it might be different for same source built in different projects, and addititonally it will get the build counter added by OBS). The check is just wrong for openSUSE. It is a distribution specific check and should never have gotten into upstream RPM (IMVHO). -- Stefan Seyfried "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." -- Richard Feynman -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 12/28/18 1:14 PM, Stefan Seyfried wrote:
Am 28.12.18 um 11:49 schrieb Michal Rostecki:
But the proper fix should look like:
Fri Dec 21 13:41:32 UTC 2018 - Marius Tomaschewski <mt@suse.de> - 2.13.2-1
No, because we cannot even know the build revision when writing the changelog (and it might be different for same source built in different projects, and addititonally it will get the build counter added by OBS).
The check is just wrong for openSUSE. It is a distribution specific check and should never have gotten into upstream RPM (IMVHO).
Revision is not needed, the version itself (2.13.2) is also fine and passes the check. But anyway, I'm totally cool with disabling it. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Dec 28, 2018 at 7:14 AM Stefan Seyfried <stefan.seyfried@googlemail.com> wrote:
Am 28.12.18 um 11:49 schrieb Michal Rostecki:
But the proper fix should look like:
Fri Dec 21 13:41:32 UTC 2018 - Marius Tomaschewski <mt@suse.de> - 2.13.2-1
No, because we cannot even know the build revision when writing the changelog (and it might be different for same source built in different projects, and addititonally it will get the build counter added by OBS).
The check is just wrong for openSUSE. It is a distribution specific check and should never have gotten into upstream RPM (IMVHO).
It's pretty much only an invalid check in openSUSE. Fedora, Mageia, ALT, PLD, and every other distribution I know of that maintains RPM changelogs does it the way Fedora does. And rpmlint was created by Mandrake, so of course this check is in there, since they're the one that created the practice. Since it's trivial to disable, I'm not removing it from upstream. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 2018-12-27 at 23:42 +0100, Christian Boltz wrote:
Hello,
Am Donnerstag, 27. Dezember 2018, 22:19:42 CET schrieb Neal Gompa:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki wrote:
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example: [...] That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
And now for the funny part - I (and even rpmlint) have to disagree about "completely fail" ;-)
https://rpmlint.opensuse.org/ says we have 8197 (source) packages in Factory x86_64. However, if you filter https://rpmlint.opensuse.org/rules/openSUSE:Factory/x86_64/standard for "no-version-in-last-changelog", it will "only" list 2396 packages (about 30% of all packages).
From what I've read in this discussion, I'd expect that _all_ packages show this warning, not only 30%.
Did I misunderstand the check and/or overlook something? ;-)
The test started failing after the format change of the .changes file to contain the full name; I'd assume the regex need to be updated to be correct again. Cheers Dominique
On Fri, 2018-12-28 at 12:00 +0100, Dominique Leuenberger / DimStar wrote:
On Thu, 2018-12-27 at 23:42 +0100, Christian Boltz wrote:
Hello,
Am Donnerstag, 27. Dezember 2018, 22:19:42 CET schrieb Neal Gompa:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki wrote:
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example: [...] That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
And now for the funny part - I (and even rpmlint) have to disagree about "completely fail" ;-)
https://rpmlint.opensuse.org/ says we have 8197 (source) packages in Factory x86_64. However, if you filter https://rpmlint.opensuse.org/rules/openSUSE:Factory/x86_64/standard for "no-version-in-last-changelog", it will "only" list 2396 packages (about 30% of all packages).
From what I've read in this discussion, I'd expect that _all_ packages show this warning, not only 30%.
Did I misunderstand the check and/or overlook something? ;-)
The test started failing after the format change of the .changes file to contain the full name; I'd assume the regex need to be updated to be correct again.
Cheers Dominique
Oh, and for the record: of course this was already filed as an issue: https://github.com/openSUSE/rpmlint-checks/issues/37 Cheers, Dominique
On 12/27/18 10:19 PM, Neal Gompa wrote:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki <mrostecki@suse.de> wrote:
On 12/26/18 8:15 PM, Neal Gompa wrote:
The purpose of this check is to ensure that each newest changelog entry mapped to the version-release built of the package. However, openSUSE changelogs are not structured that way, so this particular check has never been satisfied properly. If you look at Fedora or Mageia packages, the changelog entries are structured in such a way that this warning never triggers. The SUSE-style changes format doesn't include enough information for that check to pass post-conversion.Thus, I agree it should be disabled in openSUSE, or at least have a variation of the check that makes more sense.
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example:
https://src.fedoraproject.org/cgit/rpms/systemd.git/tree/systemd.spec#n691
I agree that this check should be disabled in openSUSE, unless we want to introduce the same format of changelog which Fedora has.
I'm surprised and impressed that someone knows where to look for Fedora packaging sources. I always had the impression that most folks seemed to be ignorant of how it's done in Fedora.
That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
Could you be more specific? What exactly makes this check fail anyway in openSUSE packages? What's wrong with the structure of specs and changelogs in openSUSE? You mentioned earlier that "SUSE-style changes format doesn't include enough information". What information is missing except the version in the first line of changelog entries? I tried out whether adding version to last changelog entries makes that warning disappear in several openSUSE packages - and indeed it does. I also didn't notice anything else when taking a look at random openSUSE and Fedora rpmspecs. I see that some packages in Fedora also started to include versions at some point, not from the beginning, i.e.: https://src.fedoraproject.org/rpms/emacs/blob/master/f/emacs.spec#_1877 So, in case we decide to keep no-version-in-last-changelog check, fixing it is not a big deal. But yeah, I'm probably "ignorant" and I hope that you are going to enlighten me. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Fri, Dec 28, 2018 at 5:29 AM Michal Rostecki <mrostecki@suse.de> wrote:
On 12/27/18 10:19 PM, Neal Gompa wrote:
On Thu, Dec 27, 2018 at 2:17 PM Michal Rostecki <mrostecki@suse.de> wrote:
On 12/26/18 8:15 PM, Neal Gompa wrote:
The purpose of this check is to ensure that each newest changelog entry mapped to the version-release built of the package. However, openSUSE changelogs are not structured that way, so this particular check has never been satisfied properly. If you look at Fedora or Mageia packages, the changelog entries are structured in such a way that this warning never triggers. The SUSE-style changes format doesn't include enough information for that check to pass post-conversion.Thus, I agree it should be disabled in openSUSE, or at least have a variation of the check that makes more sense.
To be more concrete - rpmlint expects a version in the same line where you have date, time, name and email. Example:
https://src.fedoraproject.org/cgit/rpms/systemd.git/tree/systemd.spec#n691
I agree that this check should be disabled in openSUSE, unless we want to introduce the same format of changelog which Fedora has.
I'm surprised and impressed that someone knows where to look for Fedora packaging sources. I always had the impression that most folks seemed to be ignorant of how it's done in Fedora.
That said, it's technically also supposed to be able to be satisfied by the first line of the changelog text including it, but again, the way openSUSE does packaging and changelogs makes this completely fail anyway.
Could you be more specific? What exactly makes this check fail anyway in openSUSE packages? What's wrong with the structure of specs and changelogs in openSUSE?
You mentioned earlier that "SUSE-style changes format doesn't include enough information". What information is missing except the version in the first line of changelog entries? I tried out whether adding version to last changelog entries makes that warning disappear in several openSUSE packages - and indeed it does. I also didn't notice anything else when taking a look at random openSUSE and Fedora rpmspecs.
I see that some packages in Fedora also started to include versions at some point, not from the beginning, i.e.:
https://src.fedoraproject.org/rpms/emacs/blob/master/f/emacs.spec#_1877
So, in case we decide to keep no-version-in-last-changelog check, fixing it is not a big deal.
But yeah, I'm probably "ignorant" and I hope that you are going to enlighten me.
We didn't always do it in Red Hat/Fedora, yes. We actually picked up the behavior from Mandrake, who started the practice and *also* created rpmlint. In fact, the whole concept of marking each changelog entry with the version-release started with Mandrake. They took it a step further and also always included the VCS revision of the package sources the package was built from as the first line in the changelog entry. This practice was carried over into Mageia. For example, generated RPM changelogs look like this in Mageia: * Sun Feb 21 2016 Rémi Verschelde <akien@mageia.org> 2.0-0.dev.1.mga6 + Revision: 975107 - imported package godot (Source: https://src.fedoraproject.org/rpms/godot/blob/93e6af9cdac55edd1cae52f165f7d4... ) In fact, the concept of a distribution tag in the package release also came from Mandrake, as they used it to distinguish their packages from Red Hat's whenever they forked packages or created their own. Today, every distribution except openSUSE uses a distribution tag for various reasons. I'm pretty sure that we started putting the version-release in changelogs sometime late 2000 or early 2001, which I think corresponds to when Red Hat started using rpmlint. The usage of a DistTag in Fedora started sometime in 2006 with the introduction of Koji (https://koji.build/ / https://koji.fedoraproject.org/koji/). I don't mean to be rude about the ignorant thing, I meant that it surprised me that someone from SUSE knew a bit about how Fedora packaging worked. Most folks seemed to have little idea about how it's done in Fedora. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Am 28.12.18 um 15:59 schrieb Neal Gompa:
We didn't always do it in Red Hat/Fedora, yes. We actually picked up the behavior from Mandrake, who started the practice and *also* created rpmlint. In fact, the whole concept of marking each changelog entry with the version-release started with Mandrake. They took it a step further and also always included the VCS revision of the package sources the package was built from as the first line in the changelog entry. This practice was carried over into Mageia.
For example, generated RPM changelogs look like this in Mageia:
* Sun Feb 21 2016 Rémi Verschelde <akien@mageia.org> 2.0-0.dev.1.mga6 + Revision: 975107 - imported package godot
(Source: https://src.fedoraproject.org/rpms/godot/blob/93e6af9cdac55edd1cae52f165f7d4... )
In fact, the concept of a distribution tag in the package release also came from Mandrake, as they used it to distinguish their packages from Red Hat's whenever they forked packages or created their own. Today, every distribution except openSUSE uses a distribution tag for various reasons. I'm pretty sure that we started putting the version-release in changelogs sometime late 2000 or early 2001, which I think corresponds to when Red Hat started using rpmlint. The usage of a DistTag in Fedora started sometime in 2006 with the introduction of Koji (https://koji.build/ / https://koji.fedoraproject.org/koji/).
I don't mean to be rude about the ignorant thing, I meant that it surprised me that someone from SUSE knew a bit about how Fedora packaging worked. Most folks seemed to have little idea about how it's done in Fedora.
OK, thanks a lot for explanation and I'm sorry for being rude. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (5)
-
Christian Boltz
-
Dominique Leuenberger / DimStar
-
Michal Rostecki
-
Neal Gompa
-
Stefan Seyfried