multimedia/avidemux depends on gcc and require recompile after update gcc from 11 to 12. ([offtopic] also ports depends on gcc and require recompile: math/py-numpy math/suitesparse-umfpack math/suitesparse-cholmod math/suitesparse-colamd math/suitesparse-ccolamd math/suitesparse-camd math/suitesparse-amd math/suitesparse-config emulators/wine-proton emulators/wine-devel multimedia/x264 multimedia/avidemux-plugins multimedia/avidemux-qt5 multimedia/avidemux-cli math/openblas devel/kBuild) ================================================================= Part of build log: ================================================================= -- Checking for Bourne shell -- ************************* -- Found Bourne shell -- Configuring FFmpeg CMake Error at /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_helpers.cmake:282 (MESSAGE): configure returned <1> Call Stack (most recent call first): /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_native.cmake:61 (ADM_FF_BUILD_UNIX_STYLE) /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild.cmake:16 (include) CMakeLists.txt:95 (include) CMake Error at /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_helpers.cmake:283 (MESSAGE): configure output is <ERROR: nvenc requested, but not all dependencies are satisfied: ffnvcodec If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. > Call Stack (most recent call first): /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_native.cmake:61 (ADM_FF_BUILD_UNIX_STYLE) /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild.cmake:16 (include) CMakeLists.txt:95 (include) CMake Error at /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_helpers.cmake:284 (MESSAGE): An error occured Call Stack (most recent call first): /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild_native.cmake:61 (ADM_FF_BUILD_UNIX_STYLE) /tmp/work/usr/ports/multimedia/avidemux/work/avidemux_2.7.8/cmake/admFFmpegBuild.cmake:16 (include) CMakeLists.txt:95 (include) -- Configuring incomplete, errors occurred! See also "/tmp/work/usr/ports/multimedia/avidemux/work/.build/CMakeFiles/CMakeOutput.log". *** Error code 1 Stop. make[1]: stopped in /usr/ports/multimedia/avidemux *** Error code 1 Stop. make: stopped in /usr/ports/multimedia/avidemux ================================================================= Part of "ffbuild/config.log": ================================================================= /usr/local/bin/gcc12 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -I/usr/local/include/ffnvcodec -O2 -pipe -march=core2 -fno-omit-frame-pointer -DLIBICONV_PLUG -fstack-protector-strong -Wl,-rpath=/usr/local/lib/gcc12 -fno-strict-aliasing -fmessage-length=0 -std=c11 -fomit-frame-pointer -fPIC -I/usr/local/include -pthread -I/usr/local/include -I/usr/local/include -pthread -I/usr/local/include -pthread -I/usr/local/include -pthread -I/usr/local/include -pthread -I/usr/local/include -I/usr/local/include -I/usr/local/include -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes -Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses -Wno-switch -Wno-format-zero-length -Wno-pointer-sign -Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3 -fno-math-errno -fno-signed-zeros -flto -fno-tree-vectorize -Werror=format-security -Werror=implicit-function-declaration -Werror=missing-prototypes -Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto -Wmaybe-uninitialized -c -o /tmp/ffconf.jIirdfZs/test.o /tmp/ffconf.jIirdfZs/test.c ERROR: nvenc requested, but not all dependencies are satisfied: ffnvcodec
Same error with DEFAULT_VERSIONS+=gcc=11 in make.conf.
AMR : on AOM : on CLI : on DCA : on FAAC : on FAAD : on FDK : on FONTCONFIG : on FREETYPE : on FRIBIDI : on JACK : off LAME : on NLS : on OPUS : on OSS : on PULSEAUDIO : off QT5 : on TINYPY : on TWOLAME : on VAAPI : on VAPOURSYNTH : on VDPAU : on VORBIS : on VPX : on X264 : on X265 : on XVID : on XVIDEO : on
Same error with all options off.
I am the maintainer of the GCC ports. For the last few updates of GCC default version it has been avoided to bump PORTREVISIONs of dependent ports as it was observed that things continued to work fine without it: the rationale of this choice is to reduce the number of ports recompilations for users installing software through ports. If things are now broken I will of course change strategy and go back to bumping PORTREVISIONs as it used to be done. However, please note that according to FreshPorts (https://www.freshports.org/lang/gcc12/), only three ports depend at runtime on GCC 12, and none of them are in your list. All ports you listed use GCC only at build time. Then, while it is still possible that something breaks without PORTREVISION bumping, it is quite unlikely, at least for the ports in your list. So I am unsure there is a relation between GCC default version update and the build error you received. This is even more unlikely since according to your comment #1 you still get the same error with DEFAULT_VERSIONS+=gcc=11.
I believe I still have the tools around to for the massive PORTREVISION bump associated with GCC_DEFAULT update and could do that. Note that, as Lorenzo explained, if done to the fullest of extents we are looking at thousands and thousands of ports and it has not been necessary for the last few updates.
(In reply to Lorenzo Salvadore from comment #4) $ pkg info -r gcc11 gcc11-11.3.0_5: py310-numpy-1.23.5,1 suitesparse-umfpack-6.0.1 suitesparse-cholmod-4.0.1 suitesparse-amd-3.0.0 suitesparse-camd-3.0.0 suitesparse-ccolamd-3.0.0 suitesparse-colamd-3.0.0 suitesparse-config-6.0.1 wine-proton-7.0.4 wine-devel-7.21,1 x264-0.164.3095 avidemux-plugins-2.7.8_3 avidemux-qt5-2.7.8_1 avidemux-cli-2.7.8_1 avidemux-2.7.8_1 openblas-0.3.20,1 gcc-11_4 kBuild-0.1.9998_14 On other host with replaced gcc11 with gcc12: $ pkg info -r gcc12 gcc12-12.2.0_5: avidemux-plugins-2.7.8_3 avidemux-qt5-2.7.8_1 avidemux-cli-2.7.8_1 kBuild-0.1.9998_14 x264-0.164.3095 wine-devel-7.21,1 wine-proton-7.0.4 py310-numpy-1.23.5,1 suitesparse-umfpack-6.0.1 suitesparse-cholmod-4.0.1 suitesparse-colamd-3.0.0 suitesparse-ccolamd-3.0.0 suitesparse-camd-3.0.0 suitesparse-amd-3.0.0 suitesparse-config-6.0.1 openblas-0.3.20,1 gcc-12_4 $ pkg check -d Checking all packages: 100% avidemux has a missing dependency: gcc11 Maybe they can work with gcc12 without recompile, but dependency still from gcc11. And "fails to build" is here…
See "git show ea8c8ec7da96df12146a2cc428077258141791cf" for what I believe is the last PORTREVISION bump we did for a GCC version update.
(In reply to Gerald Pfeifer from comment #7) I'm using portsnap.
(In reply to VVD from comment #8) See here: https://cgit.freebsd.org/ports/commit/?id=ea8c8ec7da96df12146a2cc428077258141791cf
(In reply to VVD from comment #6) The argument about dependencies according to pkg info might be a good point for bumping PORTREVISIONs again, however Gerald has shown in comment #7 how complex the operation is. I would still refrain from bumping again at least until we find something which is really broken. And even then, we could just bump a few PORTREVISIONs to fix such issues. > And "fails to build" is here… Nothing suggests that this depends on GCC except the recent update from 11 to 12. You have already explained that you still get the error by enforcing GCC 11 as default version and two exp-runs in PR #265948 did not find any issue in avidemux, so I still doubt that GCC is the problem here. I would rather dig into the error message you get. It complains about nvenc. Is it possible that you have multimedia/ffmpeg installed on your system with the NVENC option OFF? Maybe try enabling it? Or install multimedia/ffnvcodec-headers? Maybe multimedia/avidemux needs to implement an option to properly deal with nvenc?
(In reply to Lorenzo Salvadore from comment #10) > multimedia/ffmpeg installed on your system with the NVENC option OFF? It looks like avidemux builds a bundled copy of ffmpeg*, so whatever we do with our ffmpeg port is not its concern. As for the proud example of dumpster fire that is CMake, I'm going to dodge the question by unsubscribing from this conversation. * work/avidemux_2.7.8/avidemux_core/ffmpeg_package/ffmpeg-4.2.4.tar.bz2
(In reply to Lorenzo Salvadore from comment #10) You are right - the reason this build fails is not in gcc. Avidemux use embedded ffmpeg, not from ports. I have multimedia/ffnvcodec-headers installed and after remove it avidemux build without errors.
(In reply to VVD from comment #12) Thanks for double-checking. One more reason to use poudriere and build ports in a clean environment.
Ports must build without errors on real systems, not just in "greenhouse conditions". I'll try to create bug report in upstream.
Created attachment 238535 [details] Fix build with multimedia/ffnvcodec-headers installed and add option NVENC This is the ffmpeg's build bug on the FreeBSD. The multimedia/ffmpeg already have the patch for this bug in multimedia/ffmpeg/files/patch-configure: @@ -6758,7 +6752,7 @@ if enabled x86; then if enabled x86; then case $target_os in - mingw32*|mingw64*|win32|win64|linux|cygwin*) + freebsd|mingw32*|mingw64*|win32|win64|linux|cygwin*) ;; *) disable ffnvcodec cuvid nvdec nvenc
Created attachment 238545 [details] Update to 2.8.1 Or we can update to 2.8.1 (same patch included).
1st patch need this in multimedia/avidemux-plugins/pkg-plist: lib/ADM_plugins6/videoEncoders/libADM_ve_ffFlv1.so lib/ADM_plugins6/videoEncoders/libADM_ve_ffMpeg2.so lib/ADM_plugins6/videoEncoders/libADM_ve_ffMpeg4.so +%%NVENC%%lib/ADM_plugins6/videoEncoders/libADM_ve_ffNvencH264.so +%%NVENC%%lib/ADM_plugins6/videoEncoders/libADM_ve_ffNvencHEVC.so %%VAAPI%%lib/ADM_plugins6/videoEncoders/libADM_ve_ffVaEncH264.so %%VAAPI%%lib/ADM_plugins6/videoEncoders/libADM_ve_ffVaEncHEVC.so
Thanks a lot for the patch, I'll take a look! Regarding "Ports must build without errors on real systems", the TLDR is: I totally agree with you that they should. The bad and the ugly is: Sadly, it is an unrealistic expectation that we will achieve this in the foreseeable future. Pretty much the entire world has decided that automagical detection of stuff during build and procedures like `curl <some URL > | sudo bash` are the greatest software engineering ideas since bread came sliced. Port/package maintainers are suffering everywhere because of it, so sooner or later ~every OS community derives some build automation framework that works around this crap by leveraging defined, minimal build environments. Because that scales much better than trying to educate tens of thousands of upstream projects to abandon the automagic crap they love so much. Ultimately that is the reason why in FreeBSD land we certainly will accept patches that fix builds in dirty environments, but it cannot be a hard requirement that a port must build in every conceivable permutation of other packages installed on the system. Hence, if there are problems, folks will ask for a poudriere build, as it gives us MUCH better reproducibility, especially considering the time available to maintainers. (Also it gives MUCH better peace of mind for the users compared to portmaster/portupgrade. Personally I really have a hard time understanding why anyone would use those today.)
(In reply to VVD from comment #16) Question regarding pulseaudio in your patch. Tripped by a plist error in avidemux-plugins, I noticed that it builds and installs libADM_av_pulseAudio.so (not the -Simple.so). Can you double-check whether this is the case in your environment too?
(In reply to Thomas Zander from comment #19) Maybe. I did't build with pulseaudio on (installed pulseaudio break my sound).
Created attachment 238617 [details] Update to 2.8.1 v2 Fixed PULSEAUDIO option.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=2d011fa6c08eb8446dad1f92fc052557d5c71ec8 commit 2d011fa6c08eb8446dad1f92fc052557d5c71ec8 Author: VVD <vvd@unislabs.com> AuthorDate: 2022-12-06 19:22:09 +0000 Commit: Thomas Zander <riggs@FreeBSD.org> CommitDate: 2022-12-08 21:39:54 +0000 multimedia/avidemux-* Update to upstream release 2.8.1 Details: - Update to upstream release 2.8.1 - Introduce NVENC OPTION for HW accelerated NVIDIA codecs PR: 268145 Reported by: VVD <vvd@unislabs.com> Reviewed by: riggs multimedia/avidemux-cli/Makefile | 1 - multimedia/avidemux-cli/pkg-plist | 4 +- multimedia/avidemux-plugins/Makefile | 2 - multimedia/avidemux-plugins/pkg-plist | 62 +- multimedia/avidemux-qt5/Makefile | 1 - multimedia/avidemux-qt5/pkg-plist | 19 +- multimedia/avidemux/Makefile | 1 - multimedia/avidemux/Makefile.common | 21 +- multimedia/avidemux/distinfo | 8 +- ...mux_core-ffmpeg_package-patches-configure.patch | 15 +- .../patch-cmake_admCheckAudioDeviceLibs.cmake | 2 +- multimedia/avidemux/pkg-plist | 835 +++++++++++---------- 12 files changed, 527 insertions(+), 444 deletions(-)