[opensuse-packaging] Verbose builds enforcing
Hello everyone, I've noticed lately that some new incoming packages have the verbose build disabled. This means we can see build log like follows: [ 225s] [build ZIP] UIConfig/modules/dbquery/ss [ 225s] [build ZIP] UIConfig/modules/dbquery/st [ 225s] [build ZIP] UIConfig/modules/dbquery/sv [ 225s] [build ZIP] UIConfig/modules/dbquery/ta [ 225s] [build ZIP] UIConfig/modules/dbquery/te [ 225s] [build ZIP] UIConfig/modules/dbquery/th Instead of the full gcc calls. I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done. I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'. Thanks a bunch Tom
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On Wed, 2017-02-22 at 13:30 +0100, Tomas Chvatal wrote:
Hello everyone,
I've noticed lately that some new incoming packages have the verbose build disabled. This means we can see build log like follows: [ 225s] [build ZIP] UIConfig/modules/dbquery/ss [ 225s] [build ZIP] UIConfig/modules/dbquery/st [ 225s] [build ZIP] UIConfig/modules/dbquery/sv [ 225s] [build ZIP] UIConfig/modules/dbquery/ta [ 225s] [build ZIP] UIConfig/modules/dbquery/te [ 225s] [build ZIP] UIConfig/modules/dbquery/th
Instead of the full gcc calls.
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
Thanks a bunch
Tom Hello
I sometimes try, but sometimes results are mixed [1], note that this topic was also discussed of Factory some time ago [2]. Cheers Martin 1. https://build.opensuse.org/request/show/434593 2. https://lists.opensuse.org/opensuse-factory/2016-02/msg00020.html -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEwQnJ+Ps8HqIKhK3yWyRdZ/3eaFcFAlitjfIACgkQWyRdZ/3e aFfFmRAAmaefee9zT5LMk+OysjmiCbn1D20I3vKNdiiaGU8uly2JridwSi++jYxI FRQA4cxxX0yXUdqP8q+ncSgBfeQoFrnYdp0dPtWbjPTEhgQsNigAtMQUsBBjKjF2 /KvH8aatxh/eDVJOBp4Cm53s2eep21W+yDcbdcYtS+QRQeHgSGh7TASz3IMocgUE D8UORBd7jRulKTc0RDltRiPg/Mx6Kz/zEI3486osuvPQLoXm+hE6zdxg3mFUcZXJ Va0QCfZsuwVD+mB15gNBkje2eF7TxwWqp3EX8zcPjOFJmu1VrurB/12q63ZDU+hQ 5BHUo5FW1jr5NimtyEFo28RNPWPflOmw2lkZyvHs2R8zrhiiPZiiJwMTynhjjP1S YejWBQrKGm3YDSK5DOeHY/4gbzTTWRBQQHlC0pCrksytCNZGxlO5oHZwB/6ufLzx Tp8JqyUXEkz2/omqMzG4T4HZ6wdPP7iOdtppRu8R5W8HtxC2WxglUx6NNWSjSXWG yLGtAJ4wsSj7xy1GynGlIm2UHT4Um5PcFihkdFjELbLVIV6LRO/JRGHWJkk4+uQP u9sHMQaWew3ODhFRMWgobs+2AGRVu2zCxrJU04KtKEn3rmdBYFhZJfb2OBjp1LdM HbglLz+4dv9Nk58x91iipZMBfdsxvT0UW5MoHrBurgYI/8cISmA= =2LSw -----END PGP SIGNATURE----- -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wednesday 2017-02-22 14:11, Martin Pluskal wrote:
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
I sometimes try, but sometimes results are mixed [1], note that this topic was also discussed of Factory some time ago [2].
If rpmlint relies on seeing the command line, then %configure should be edited to pass --disable-silent-rules by default. Like it was done for --disable-dependency-tracking. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 22 Feb 15:04, Jan Engelhardt wrote:
On Wednesday 2017-02-22 14:11, Martin Pluskal wrote:
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
I sometimes try, but sometimes results are mixed [1], note that this topic was also discussed of Factory some time ago [2].
If rpmlint relies on seeing the command line, then %configure should be edited to pass --disable-silent-rules by default. Like it was done for --disable-dependency-tracking.
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated. We can instead check each object file for gcc compilation flags just before stripping debug info. This would be slower but it would be a better solution. Regards, ismail -- "Türkische Essen ist wirklich lecker, deshalb wir dicke Menschen sind." ~ my wife SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
Hi, On Wed, 22 Feb 2017, İsmail Dönmez wrote:
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated.
If people can't be bothered to read long lines then they should perhaps, ..., well, ... not read log files? Log files are a mean to analyze things after the fact, they are not primarily meant to look pretty. Ciao, Michael.
On Wed, 2017-02-22 at 15:44 +0100, Michael Matz wrote:
Hi,
On Wed, 22 Feb 2017, İsmail Dönmez wrote:
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated.
If people can't be bothered to read long lines then they should perhaps, ..., well, ... not read log files? Log files are a mean to analyze things after the fact, they are not primarily meant to look pretty.
The 'fun' thing: with verbose disable you can actually SEE Warnings in between the wild pool of characters... and Warnings (and Errors) are still printed without VERBOSE. So in fact VERBOSE OFF actually helps you FIND warnings and errors - much better than VERBOSE ON brp for example uses said warnings to raised 'portability-issues 64bit', which most commonly is 'implcit declaration'; as WARNINGS are still shown, even on 'silent build', it can still work. There is, to my knowledge, only one test that fails to operate properly, and that is "build does not use optflags" - The other log scan test work. Cheers Dominique
On Wed, 22 Feb 2017, Dominique Leuenberger / DimStar wrote:
On Wed, 2017-02-22 at 15:44 +0100, Michael Matz wrote:
Hi,
On Wed, 22 Feb 2017, İsmail Dönmez wrote:
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated.
If people can't be bothered to read long lines then they should perhaps, ..., well, ... not read log files? Log files are a mean to analyze things after the fact, they are not primarily meant to look pretty.
The 'fun' thing: with verbose disable you can actually SEE Warnings in between the wild pool of characters... and Warnings (and Errors) are still printed without VERBOSE.
So in fact VERBOSE OFF actually helps you FIND warnings and errors - much better than VERBOSE ON
brp for example uses said warnings to raised 'portability-issues 64bit', which most commonly is 'implcit declaration'; as WARNINGS are still shown, even on 'silent build', it can still work.
There is, to my knowledge, only one test that fails to operate properly, and that is "build does not use optflags" - The other log scan test work.
Well, then at least for errors the "pretty" machinery should output the verbose command-line as well. It's very annoying and a PITA to not have those when looking to fix stuff in the compiler. You have to figure out _how_ to enable verboseness which differs wildly from package to package. Richard.
Cheers Dominique
-- Richard Biener <rguenther@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
Hi, On Wed, 22 Feb 2017, Dominique Leuenberger / DimStar wrote:
The 'fun' thing: with verbose disable you can actually SEE Warnings in between the wild pool of characters... and Warnings (and Errors) are still printed without VERBOSE.
I hate to point out the obvious, but: % egrep 'warning:|error:' logfile
So in fact VERBOSE OFF actually helps you FIND warnings and errors - much better than VERBOSE ON
Apart from the dubiosity of having to visually scan log files to find warnings and errors (see above), even if you then find them. What then? You don't have the compiler command line, so you don't know which flags were active and if you want to fix the problem you have to fiddle with the .spec anyway to activate verboseness (in whatever way it needs it). (Well, or of course you randomly do changes and rebuild until the warning/error goes away). Some build systems get this right and print the compile command line also without verbose if the command resulted in errors or warnings. That's unfortunately the minority. Until that's the rule non-verbose compilation hurts more than it helps.
brp for example uses said warnings to raised 'portability-issues 64bit', which most commonly is 'implcit declaration'; as WARNINGS are still shown, even on 'silent build', it can still work.
brp works with and without verbosity. If it finds something objectionable you have to do more work when verbose is disabled. Pretty clear what should be the decision in my book.
There is, to my knowledge, only one test that fails to operate properly, and that is "build does not use optflags" - The other log scan test work.
Yeah, sure, and? That's no argument in favor of disabling verbose builds. In fact "it works with both ways" is no argument either way. Ciao, Michael. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hi,
On Wed, 22 Feb 2017, Dominique Leuenberger / DimStar wrote:
The 'fun' thing: with verbose disable you can actually SEE Warnings in between the wild pool of characters... and Warnings (and Errors) are still printed without VERBOSE. I hate to point out the obvious, but:
% egrep 'warning:|error:' logfile
So in fact VERBOSE OFF actually helps you FIND warnings and errors - much better than VERBOSE ON Apart from the dubiosity of having to visually scan log files to find warnings and errors (see above), even if you then find them. What then? You don't have the compiler command line, so you don't know which flags were active and if you want to fix the problem you have to fiddle with the .spec anyway to activate verboseness (in whatever way it needs it). (Well, or of course you randomly do changes and rebuild until the warning/error goes away).
Some build systems get this right and print the compile command line also without verbose if the command resulted in errors or warnings. That's unfortunately the minority. Until that's the rule non-verbose compilation hurts more than it helps.
brp for example uses said warnings to raised 'portability-issues 64bit', which most commonly is 'implcit declaration'; as WARNINGS are still shown, even on 'silent build', it can still work. brp works with and without verbosity. If it finds something objectionable you have to do more work when verbose is disabled. Pretty clear what should be the decision in my book.
There is, to my knowledge, only one test that fails to operate properly, and that is "build does not use optflags" - The other log scan test work. Yeah, sure, and? That's no argument in favor of disabling verbose builds. In fact "it works with both ways" is no argument either way.
Ciao, Michael. I must second the motion, it's nothing to either search for "waiting" in "waiting for unfinished jobs" or "error:" note the colon, to find the reason for the build failure. We're packagers it's part of the (non
On 27/02/2017 15:30, Michael Matz wrote: paying) job. Why have pretty non functional build logs, they are there to be examined. Gcc 7 is due to be released and some of those warnings are going to change to errors. Dave P -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Monday, 27 February 2017 14:30 Michael Matz wrote:
Apart from the dubiosity of having to visually scan log files to find warnings and errors (see above), even if you then find them. What then? You don't have the compiler command line, so you don't know which flags were active and if you want to fix the problem you have to fiddle with the .spec anyway to activate verboseness (in whatever way it needs it). (Well, or of course you randomly do changes and rebuild until the warning/error goes away).
From my point of view, the problem is that with verbose log, I most likely won't notice a warning at all. With non-verbose build, each warning sticks out and is hard to miss. Actually, I don't really agree with the claim that I always need the command line. I rarely do, most of the time, the information from gcc (what problem, which file, line number, include chain) is sufficient to see what the warning is about. Full command line is useful when I want to repeat the particular command; but this is only possible for local builds and even then it's not always trivial; for builds running in OBS I can't do it anyway. Right now I'm looking at a verbose build log and found a warning in it. Relevant command line (which I don't need at all) is 7 lines higher (where "line" is actually more than 3 lines on a 271 columns wide terminal) and two more such lines are intermixed with the warning itself. With non-verbose log, the warning would be way easier to both spot and read. Well, whatever. Personally I hope this verbosity enforcing will only apply to OBS builds and there will be a way to work around it for local builds ("osc build"). If it only applies to "official" projects (and not home:*), I would be even happier. Michal Kubeček -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Wed, 22 Feb 2017, İsmail Dönmez wrote:
On 22 Feb 15:04, Jan Engelhardt wrote:
On Wednesday 2017-02-22 14:11, Martin Pluskal wrote:
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
I sometimes try, but sometimes results are mixed [1], note that this topic was also discussed of Factory some time ago [2].
If rpmlint relies on seeing the command line, then %configure should be edited to pass --disable-silent-rules by default. Like it was done for --disable-dependency-tracking.
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated. We can instead check each object file for gcc compilation flags just before stripping debug info. This would be slower but it would be a better solution.
You can check final executables as well, flags are available in the debuginfo DW_AT_producer attributes of the individual CUs. This means after debuginfo extraction you need to process the debuginfo files. Richard. -- Richard Biener <rguenther@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
On 22 Feb 16:08, Richard Biener wrote:
On Wed, 22 Feb 2017, İsmail Dönmez wrote:
On 22 Feb 15:04, Jan Engelhardt wrote:
On Wednesday 2017-02-22 14:11, Martin Pluskal wrote:
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
I sometimes try, but sometimes results are mixed [1], note that this topic was also discussed of Factory some time ago [2].
If rpmlint relies on seeing the command line, then %configure should be edited to pass --disable-silent-rules by default. Like it was done for --disable-dependency-tracking.
Some people rightly complain they don't want verbose logs because it makes reading log files much more complicated. We can instead check each object file for gcc compilation flags just before stripping debug info. This would be slower but it would be a better solution.
You can check final executables as well, flags are available in the debuginfo DW_AT_producer attributes of the individual CUs. This means after debuginfo extraction you need to process the debuginfo files.
Ah perfect. Will look at how we can integrate this into rpmlint. Regards, ismail -- "Türkische Essen ist wirklich lecker, deshalb wir dicke Menschen sind." ~ my wife SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
On Wed, 2017-02-22 at 13:30 +0100, Tomas Chvatal wrote: Hello everyone, I've noticed lately that some new incoming packages have the verbose build disabled. This means we can see build log like follows: [ 225s] [build ZIP] UIConfig/modules/dbquery/ss [ 225s] [build ZIP] UIConfig/modules/dbquery/st [ 225s] [build ZIP] UIConfig/modules/dbquery/sv [ 225s] [build ZIP] UIConfig/modules/dbquery/ta [ 225s] [build ZIP] UIConfig/modules/dbquery/te [ 225s] [build ZIP] UIConfig/modules/dbquery/th Instead of the full gcc calls. I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done. I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'. Thanks a bunch Tom Some time ago I noticed for cmake you have to use make VERBOSE=1. V=1 did not work. Not sure if this has changed since then. Regards, Ferdinand -- Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 22/02/2017 16:43, Ferdinand Thiessen wrote:
On Wed, 2017-02-22 at 13:30 +0100, Tomas Chvatal wrote:
Hello everyone,
I've noticed lately that some new incoming packages have the verbose build disabled. This means we can see build log like follows: [ 225s] [build ZIP] UIConfig/modules/dbquery/ss [ 225s] [build ZIP] UIConfig/modules/dbquery/st [ 225s] [build ZIP] UIConfig/modules/dbquery/sv [ 225s] [build ZIP] UIConfig/modules/dbquery/ta [ 225s] [build ZIP] UIConfig/modules/dbquery/te [ 225s] [build ZIP] UIConfig/modules/dbquery/th
Instead of the full gcc calls.
I am well aware of that the logs look prettier but we have rpmlint and brp checks that validate all the calls to gcc and linker and ensure everything is correct. If one uses the silent calls like above it results in no verification being done.
I would like to ask you to check your packages if they are 'silent' and either run make with V=1 parameter or pass to configure option ' --disable-silent-rules'.
Thanks a bunch
Tom
Some time ago I noticed for cmake you have to use make VERBOSE=1. V=1 did not work.
Not sure if this has changed since then. Regards, Ferdinand -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON is part of the %cmake macro but AFAIR it's sometimes ignored. Dave P -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (10)
-
Dave Plater
-
Dominique Leuenberger / DimStar
-
Ferdinand Thiessen
-
İsmail Dönmez
-
Jan Engelhardt
-
Martin Pluskal
-
Michael Matz
-
Michal Kubecek
-
Richard Biener
-
Tomas Chvatal