Created attachment 173968 [details] Patch Requesting exp-run to test this patch. Actually, only CONFIGURE_ARGS modification is expected to cause any problems. Though even old configure scripts support --disable-silent-rules and configure does ignore unknown arguments so even if it doesn't support --disable-silent-rules adding it shouldn't break the build, you can never be sure with autotools, so exp-run is required. It may also reveal some misuses of GNU_CONFIGURE.
Related differential: https://reviews.freebsd.org/D7534
Exp-run results on 10.3 i386: http://package18.nyi.freebsd.org/build.html?mastername=103i386-default-PR212075&build=2016-09-03_05h47m10s More than 5850 ports were skipped due to new failures New failures: + {"origin"=>"audio/speex", "pkgname"=>"speex-1.2.r2,1", "phase"=>"package", "errortype"=>"manpage"} + {"origin"=>"biology/ncbi-blast+", "pkgname"=>"ncbi-blast+-2.2.30_2", "phase"=>"configure", "errortype"=>"configure_error"} + {"origin"=>"devel/libclc", "pkgname"=>"libclc-0.2.0.20151006", "phase"=>"configure", "errortype"=>"???"} + {"origin"=>"devel/poco-devel", "pkgname"=>"poco-devel-1.6.0", "phase"=>"configure", "errortype"=>"configure_error"} + {"origin"=>"irc/bitlbee", "pkgname"=>"bitlbee-3.4.2", "phase"=>"build", "errortype"=>"makefile"} + {"origin"=>"net-p2p/mldonkey-core", "pkgname"=>"mldonkey-core-3.1.5_1", "phase"=>"configure", "errortype"=>"configure_error"} + {"origin"=>"net/pacemaker", "pkgname"=>"pacemaker-1.1.14", "phase"=>"build", "errortype"=>"???"} Failure logs: http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/speex-1.2.r2,1.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/ncbi-blast+-2.2.30_2.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/libclc-0.2.0.20151006.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/poco-devel-1.6.0.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/bitlbee-3.4.2.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/mldonkey-core-3.1.5_1.log http://package18.nyi.freebsd.org/data/103i386-default-PR212075/2016-09-03_05h47m10s/logs/errors/pacemaker-1.1.14.log
A commit references this bug: Author: amdmi3 Date: Tue Sep 6 13:30:49 UTC 2016 New revision: 421424 URL: https://svnweb.freebsd.org/changeset/ports/421424 Log: - Make configure script handle --disable-silent-rules gracefully PR: 212075 Approved by: portmgr blanket Changes: head/biology/ncbi-blast+/files/patch-src_build-system_configure
A commit references this bug: Author: amdmi3 Date: Tue Sep 6 13:32:57 UTC 2016 New revision: 421425 URL: https://svnweb.freebsd.org/changeset/ports/421425 Log: - Fix configure handling, this is not really a GNU configure PR: 212075 Approved by: portmgr blanket Changes: head/devel/poco-devel/Makefile
A commit references this bug: Author: amdmi3 Date: Tue Sep 6 13:33:01 UTC 2016 New revision: 421426 URL: https://svnweb.freebsd.org/changeset/ports/421426 Log: - Fix configure handling, this is not really a GNU configure PR: 212075 Approved by: portmgr blanket Changes: head/irc/bitlbee/Makefile
A commit references this bug: Author: amdmi3 Date: Tue Sep 6 13:34:07 UTC 2016 New revision: 421427 URL: https://svnweb.freebsd.org/changeset/ports/421427 Log: - Disable strict configure options checking in preparation for portswide --disable-silent-rules PR: 212075 Approved by: portmgr blanket Changes: head/net-p2p/mldonkey/Makefile
(In reply to Antoine Brodin from comment #2) > + {"origin"=>"audio/speex", "pkgname"=>"speex-1.2.r2,1", "phase"=>"package", > "errortype"=>"manpage"} PR submitted > + {"origin"=>"biology/ncbi-blast+", "pkgname"=>"ncbi-blast+-2.2.30_2", > "phase"=>"configure", "errortype"=>"configure_error"} Fixed > + {"origin"=>"devel/libclc", "pkgname"=>"libclc-0.2.0.20151006", > "phase"=>"configure", "errortype"=>"???"} PR submitted > + {"origin"=>"devel/poco-devel", "pkgname"=>"poco-devel-1.6.0", > "phase"=>"configure", "errortype"=>"configure_error"} Fixed > + {"origin"=>"irc/bitlbee", "pkgname"=>"bitlbee-3.4.2", "phase"=>"build", > "errortype"=>"makefile"} Fixed > + {"origin"=>"net-p2p/mldonkey-core", "pkgname"=>"mldonkey-core-3.1.5_1", > "phase"=>"configure", "errortype"=>"configure_error"} Fixed > + {"origin"=>"net/pacemaker", "pkgname"=>"pacemaker-1.1.14", > "phase"=>"build", "errortype"=>"???"} Investigating
A commit references this bug: Author: amdmi3 Date: Tue Sep 6 14:27:29 UTC 2016 New revision: 421435 URL: https://svnweb.freebsd.org/changeset/ports/421435 Log: - Fix build with --disable-silent-rules With verbose build all utilities are called with --help and --version arguments just to show their output. This, however, may fail: PATH=/wrkdirs/usr/ports/net/pacemaker/work/pacemaker-Pacemaker-1.1.14/tools:$PATH /wrkdirs/usr/ports/net/pacemaker/work/pacemaker-Pacemaker-1.1.14/tools/crm_standby --help Error signing on to the CIB service: Socket is not connected Error signing on to the CIB service: Socket is not connected So just remove these calls, they have no use anyway. PR: 212075 Approved by: portmgr blanket Changes: head/net/pacemaker/files/patch-Makefile.common
pacemaker fixed, only speex and libclc left, pending reviews.
Created attachment 174417 [details] Patch v2 Just realized we don't need to wait for PRs and do an exp-run with speex and libclc fixes included. Requesting additional exp-run with fresh portstree and this new patch.
Created attachment 174427 [details] Proposed patch (since 421387 revision) Hello Dmitry Marakasov and Antoine Brodin. I reviewed the proposed patch (attachment #173968 [details]) and wanted to suggest different approach: - Intoruduce CONFIGURE_VERBOSE variable - Add the same BATCH and PACKAGE_BUILDING checks for NINJA_VERBOSE and CONFIGURE_VERBOSE, as for CMAKE_VERBOSE This way, the possibility to enable/disable verbose builds will remain. The compact build output also useful, e.g. for rebuilds of the same port, in my opinion. While verbose build output is useful for fixing issue(s).
Created attachment 174429 [details] Proposed patch (since 421387 revision) Cosmetic fix.
(In reply to lightside from comment #11) > Created attachment 174427 [details] > Proposed patch (since 421387 revision) > > Hello Dmitry Marakasov and Antoine Brodin. > > I reviewed the proposed patch (attachment #173968 [details]) and wanted to > suggest different approach: > - Intoruduce CONFIGURE_VERBOSE variable > - Add the same BATCH and PACKAGE_BUILDING checks for NINJA_VERBOSE and > CONFIGURE_VERBOSE, as for CMAKE_VERBOSE > > This way, the possibility to enable/disable verbose builds will remain. > The compact build output also useful, e.g. for rebuilds of the same port, in > my opinion. While verbose build output is useful for fixing issue(s). I don't see a need for this, and I'm against allowing silent builds at all. The whole purpose for this change is to _always_ have complete build logs to debug port problems more easily. If users are allowed to make build look more beautiful, they will, and when a port breaks, valuable information will be lost. Also such feature will be crippled and non-generic as it requires specific tweaking depending on build system and only works for small fraction of ports. It's not worth maintenance burden. On the other hand, I tend to think we'll need SILENT_RULES_UNSAFE after all. I've just ran into openjdk8 not able to handle --disable-silent-rules, so we may need to turn it off on per-port basis after all. It is only required for GNU_CONFIGURE, as more sane build systems do not have this problem.
(In reply to Dmitry Marakasov from comment #13) Can't _LATE_CONFIGURE_ARGS be used for ports like openjdk8?
(In reply to lightside from comment #11) > This way, the possibility to enable/disable verbose builds will remain. > The compact build output also useful, e.g. for rebuilds of the same port, in > my opinion. While verbose build output is useful for fixing issue(s). What does having non verbose builds add ? I mean, if you want your builds to be silent, you can make install > /dev/null.
(In reply to Antoine Brodin from comment #14) > (In reply to Dmitry Marakasov from comment #13) > > Can't _LATE_CONFIGURE_ARGS be used for ports like openjdk8? Mmm, _LATE_CONFIGURE_ARGS could be the place where --disable-silent-rules is set, depending on the result on shell test, yes. What is the reason openjdk8 can't use it ? Is it really using a GNU configure script ?
(In reply to Mathieu Arnold from comment #16) > (In reply to Antoine Brodin from comment #14) > > (In reply to Dmitry Marakasov from comment #13) > > > > Can't _LATE_CONFIGURE_ARGS be used for ports like openjdk8? > > Mmm, _LATE_CONFIGURE_ARGS could be the place where --disable-silent-rules is > set, depending on the result on shell test, yes. Hm, I'm totally missed it. Yes, it seems to be the right place. > What is the reason openjdk8 can't use it ? Is it really using a GNU > configure script ? It does. There are two ports which use (actual) GNU configure but lack support for --disable-silent-rules I know of now: openjdk8 and mldonkey.
Created attachment 174431 [details] Patch v3 - Switch to _LATE_CONFIGURE_ARGS: only use --disable-silent-rules if configure supports it - Rollback some hacks to support the flag which are no longer needed - Remove bunch of --disable-silent-rules set by individual ports
(In reply to comment #15) > What does having non verbose builds add ? I mean, if you want your builds to > be silent, you can make install > /dev/null. The "compact" build output (as it is now, before proposed change(s) by Dmitry Marakasov): -8<-- % make -C /usr/ports/multimedia/assimp clean build ... ===> Building for assimp-3.3.1 Scanning dependencies of target assimp [ 0%] Building CXX object code/CMakeFiles/assimp.dir/Assimp.cpp.o [ 0%] Building CXX object code/CMakeFiles/assimp.dir/BaseProcess.cpp.o [ 1%] Building CXX object code/CMakeFiles/assimp.dir/BaseImporter.cpp.o ... -->8- The verbose build output: -8<-- % make CMAKE_VERBOSE=yes -C /usr/ports/multimedia/assimp clean build ... ===> Building for assimp-3.3.1 /usr/local/bin/cmake -H/usr/ports/multimedia/assimp/work/assimp-3.3.1 -B/usr/ports/multimedia/assimp/work/assimp-3.3.1 --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bin/cmake -E cmake_progress_start /usr/ports/multimedia/assimp/work/assimp-3.3.1/CMakeFiles /usr/ports/multimedia/assimp/work/assimp-3.3.1/CMakeFiles/progress.marks /usr/bin/make -f CMakeFiles/Makefile2 all --- code/CMakeFiles/assimp.dir/all --- /usr/bin/make -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/depend --- code/CMakeFiles/assimp.dir/depend --- cd /usr/ports/multimedia/assimp/work/assimp-3.3.1 && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /usr/ports/multimedia/assimp/work/assimp-3.3.1 /usr/ports/multimedia/assimp/work/assimp-3.3.1/code /usr/ports/multimedia/assimp/work/assimp-3.3.1 /usr/ports/multimedia/assimp/work/assimp-3.3.1/code /usr/ports/multimedia/assimp/work/assimp-3.3.1/code/CMakeFiles/assimp.dir/DependInfo.cmake --color= Scanning dependencies of target assimp /usr/bin/make -f code/CMakeFiles/assimp.dir/build.make code/CMakeFiles/assimp.dir/build --- code/CMakeFiles/assimp.dir/Assimp.cpp.o --- --- code/CMakeFiles/assimp.dir/BaseImporter.cpp.o --- --- code/CMakeFiles/assimp.dir/BaseProcess.cpp.o --- --- code/CMakeFiles/assimp.dir/Assimp.cpp.o --- [ 0%] Building CXX object code/CMakeFiles/assimp.dir/Assimp.cpp.o --- code/CMakeFiles/assimp.dir/BaseProcess.cpp.o --- [ 0%] Building CXX object code/CMakeFiles/assimp.dir/BaseProcess.cpp.o --- code/CMakeFiles/assimp.dir/BaseImporter.cpp.o --- [ 1%] Building CXX object code/CMakeFiles/assimp.dir/BaseImporter.cpp.o --- code/CMakeFiles/assimp.dir/Assimp.cpp.o --- cd /usr/ports/multimedia/assimp/work/assimp-3.3.1/code && /usr/bin/c++ -DASSIMP_BUILD_DLL_EXPORT -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_OWN_ZLIB -DOPENDDLPARSER_BUILD -DOPENDDL_NO_USE_CPP11 -Dassimp_EXPORTS -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/. -I/usr/ports/multimedia/assimp/work/assimp-3.3.1 -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/rapidjson/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/openddlparser/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/.. -O2 -pipe -fstack-protector -fno-strict-aliasing -fvisibility=hidden -Wall -Wno-long-long -pedantic -std=c++11 -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -o CMakeFiles/assimp.dir/Assimp.cpp.o -c /usr/ports/multimedia/assimp/work/assimp-3.3.1/code/Assimp.cpp --- code/CMakeFiles/assimp.dir/BaseProcess.cpp.o --- cd /usr/ports/multimedia/assimp/work/assimp-3.3.1/code && /usr/bin/c++ -DASSIMP_BUILD_DLL_EXPORT -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_OWN_ZLIB -DOPENDDLPARSER_BUILD -DOPENDDL_NO_USE_CPP11 -Dassimp_EXPORTS -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/. -I/usr/ports/multimedia/assimp/work/assimp-3.3.1 -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/rapidjson/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/openddlparser/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/.. -O2 -pipe -fstack-protector -fno-strict-aliasing -fvisibility=hidden -Wall -Wno-long-long -pedantic -std=c++11 -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -o CMakeFiles/assimp.dir/BaseProcess.cpp.o -c /usr/ports/multimedia/assimp/work/assimp-3.3.1/code/BaseProcess.cpp --- code/CMakeFiles/assimp.dir/BaseImporter.cpp.o --- cd /usr/ports/multimedia/assimp/work/assimp-3.3.1/code && /usr/bin/c++ -DASSIMP_BUILD_DLL_EXPORT -DASSIMP_BUILD_NO_C4D_IMPORTER -DASSIMP_BUILD_NO_OWN_ZLIB -DOPENDDLPARSER_BUILD -DOPENDDL_NO_USE_CPP11 -Dassimp_EXPORTS -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/. -I/usr/ports/multimedia/assimp/work/assimp-3.3.1 -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/rapidjson/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/../contrib/openddlparser/include -I/usr/ports/multimedia/assimp/work/assimp-3.3.1/code/.. -O2 -pipe -fstack-protector -fno-strict-aliasing -fvisibility=hidden -Wall -Wno-long-long -pedantic -std=c++11 -O2 -pipe -fstack-protector -fno-strict-aliasing -fPIC -o CMakeFiles/assimp.dir/BaseImporter.cpp.o -c /usr/ports/multimedia/assimp/work/assimp-3.3.1/code/BaseImporter.cpp ... -->8- And no build output at all: -8<-- % make -C /usr/ports/multimedia/assimp clean build > /dev/null CMake Warning: Manually-specified variables were not used by the project: CMAKE_CXX_FLAGS_DEBUG CMAKE_C_FLAGS_DEBUG CMAKE_MODULE_LINKER_FLAGS THREADS_HAVE_PTHREAD_ARG -->8- are different things, isn't it?
Created attachment 174443 [details] Proposed patch (since 421387 revision) (In reply to comment #18) > - Switch to _LATE_CONFIGURE_ARGS: only use --disable-silent-rules if configure > supports it Added this feature to the patch with CONFIGURE_VERBOSE check.
Created attachment 174446 [details] Proposed patch (since 421387 revision) - Clarified description for CONFIGURE_VERBOSE variable.
(In reply to lightside from comment #19) > are different things, isn't it? Really, we don't need cosmetic build output tweaking. Just no. egrep '\[[0-9 ]{3}%\]' if you need.
(In reply to comment #22) > Really, we don't need cosmetic build output tweaking. Just no. > egrep '\[[0-9 ]{3}%\]' if you need. This is not my opinion, so don't we. The verbose output is configurable option (for cmake, make, ninja, etc.), which is disabled by default. The ability to switch verbose build output is a plus, in my opinion, but always enable (for all cases) is not. The way I proposed it is the same as used for CMAKE_VERBOSE: https://svnweb.freebsd.org/ports/head/Mk/Uses/cmake.mk?revision=411970&view=markup#l87 i.e. enabled, when BATCH or PACKAGE_BUILDING is set. This covers poudriere build logs. Do you really want to read verbose build output (e.g. in console with limited buffer; basically, with the same repeating information about CFLAGS, CXXFLAGS, etc., for example) for all building ports or better to use verbose build output as a tool, when issue raised? This is just a different level of information, where your proposal is removal of one of them (V=0 in favor of V=1, in case of make).
(In reply to lightside from comment #23) > (In reply to comment #22) > > Really, we don't need cosmetic build output tweaking. Just no. > > egrep '\[[0-9 ]{3}%\]' if you need. > This is not my opinion, so don't we. It is your opinion. The goal of this is that the builds are always verbose.
If leaving it configurable is as simple as lightside's patch seems to suggest, why take away options from users?
(In reply to Vladimir Krstulja from comment #25) > If leaving it configurable is as simple as lightside's patch seems to > suggest, why take away options from users? Because the goal is that the builds are always verbose.
(In reply to comment #26) > Because the goal is that the builds are always verbose. Then why don't propose to make this configurable also? For example, defining BATCH?=yes and converting defined(BATCH) checks to "${BATCH:tl} == yes"? This will allow to disable it, when needed, at least.
Keeping it cool is one of the hardest parts of being a member of portmgr. What part of "always" do you not understand ?
(In reply to comment #28) > Keeping it cool is one of the hardest parts of being a member of portmgr. I don't take it personal. I know how to deal with issue on source code level. (In reply to comment #28) > What part of "always" do you not understand ? No comments. Will see how other people react after commit.
Comment on attachment 174446 [details] Proposed patch (since 421387 revision) My proposed patch was obsoleted, to not block the proposal in this PR.
The build has finished, I see no failures with configure stage, so it seems like the patch is OK.
Exp-run looks fine.