Opened 2 years ago

Last modified 5 months ago

#65098 new defect

avidemux @2.7.6_2: error: expected unqualified-id

Reported by: cooljeanius (Eric Gallager) Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.7.2
Keywords: Cc: worldleather, macportsraf, mkuron (Michael Kuron), cbitterfield (Colin Bitterfield)
Port: avidemux

Description

Trimmed to just the first error; looks its bundled copy of ffmpeg comes with a bad version file being used as a header:

[  3%] Building CXX object ADM_core/src/CMakeFiles/ADM_core6.dir/ADM_cpuCap.cpp.o
cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/build_core/ADM_core/src && /usr/bin/clang++ -DADM_core6_EXPORTS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/build_core/config -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_core/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudioFilter/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudioParser/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudio/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudioDevice/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudioEncoder/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreDemuxer/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreDemuxer/include/unix -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreDemuxerMpeg/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreImage/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreMuxer/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreScript/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreUI/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreUtils/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreVideoEncoder/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreVideoFilter/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreVideoCodec/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreImageLoader/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreJobs/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreSocket/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_coreAudioCodec/include -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/build_core/ffmpeg/source -I/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/build_core/ffmpeg/build -Os -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=1 -stdlib=libc++ -D__STRICT_ANSI__ -Qunused-arguments   -fsanitize=address -fno-omit-frame-pointer -fvisibility=hidden -fvisibility-inlines-hidden -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -mmacosx-version-min=11.0 -fPIC -MD -MT ADM_core/src/CMakeFiles/ADM_core6.dir/ADM_cpuCap.cpp.o -MF CMakeFiles/ADM_core6.dir/ADM_cpuCap.cpp.o.d -o CMakeFiles/ADM_core6.dir/ADM_cpuCap.cpp.o -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_core/src/ADM_cpuCap.cpp
In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_core/src/ADM_cpuCap.cpp:13:
In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_core/include/ADM_default.h:32:
In file included from /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/avidemux_2.7.6/avidemux_core/ADM_core/include/ADM_assert.h:35:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/include/c++/v1/new:90:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/include/c++/v1/exception:80:
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/usr/include/c++/v1/cstddef:37:
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_avidemux/avidemux/work/build_core/ffmpeg/source/version:1:1: error: expected unqualified-id
4.2.3
^

I'll attach the full log next.

Attachments (1)

avidemux_main.log (1.4 MB) - added by cooljeanius (Eric Gallager) 2 years ago.
main.log for avidemux

Download all attachments as: .zip

Change History (9)

Changed 2 years ago by cooljeanius (Eric Gallager)

Attachment: avidemux_main.log added

main.log for avidemux

comment:1 Changed 2 years ago by cooljeanius (Eric Gallager)

I think I remember seeing some similar issue with some other port within the last few years or so, but I forget what it was now...

comment:2 Changed 2 years ago by kencu (Ken)

in compilers that default to a newer c++ std, on case-insensitive file systems, the build is pulling in a file called VERSION in the source tree instead of the cxx header <version>.

usual trick is to delete or rename the VERSION file in the source tree to VERSION.txt for example, in a post-extract block.

and report it upstream, open an PR, etc, etc, etc, of course when you can.

comment:3 in reply to:  2 Changed 22 months ago by cooljeanius (Eric Gallager)

Replying to kencu:

in compilers that default to a newer c++ std, on case-insensitive file systems, the build is pulling in a file called VERSION in the source tree instead of the cxx header <version>.

usual trick is to delete or rename the VERSION file in the source tree to VERSION.txt for example, in a post-extract block.

and report it upstream, open an PR, etc, etc, etc, of course when you can.

Looks like I'd have to create an account on the avidemux forums to report it upstream; does anyone already have an account there? I prefer to avoid creating new accounts places if I can help it...

comment:4 in reply to:  2 ; Changed 17 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: worldleather macportsraf mkuron added

Has duplicates #66275, #62136.

Replying to kencu:

in compilers that default to a newer c++ std, on case-insensitive file systems, the build is pulling in a file called VERSION in the source tree instead of the cxx header <version>.

As far as I know it's not even about compilers that default to a newer C++ standard; it's about compilers that just support a newer C++ standard, specifically C++20. Compilers that support C++20 implement its <version> header, and other headers include it, even when you are building with an earlier C++ standard.

usual trick is to delete or rename the VERSION file in the source tree to VERSION.txt for example, in a post-extract block.

While renaming the VERSION file is one option, the failure is really because the directory that contains the VERSION file was specified as an include path (i.e. with the -I flag). Ideally the project should stop including that directory. If that directory contains files that need to be included (such as a config.h file), it may be preferable to change the build system so that the config.h file is located in a different directory.

The failure is in the bundled copy of ffmpeg. The problem might already be solved by updating avidemux to a newer version (avidemux 2.8.1 is available; their release notes say the bundled ffmpeg was updated to 4.4.1 in avidemux 2.8.0 and to 4.4.2 in avidemux 2.8.1), or the ffmpeg developers may already have fixed it and their fix can be backported to the bundled avidemux version, or avidemux can be fixed to use MacPorts ffmpeg instead of a bundled version.

comment:5 Changed 17 months ago by kencu (Ken)

Yes indeed, I was mistaken. The error happens no matter what the c++ standard is set to, on newer compilers. Thanks, Ryan.

comment:6 Changed 11 months ago by ryandesign (Ryan Carsten Schmidt)

Cc: cbitterfield added
Summary: avidemux @2.7.6_2 +aac+debug+dts+gettext+jack+lame+opus+sqlite+twolame+vorbis+vpx+x264+x265+xvid upgrade fails with error: expected unqualified-idavidemux @2.7.6_2: error: expected unqualified-id

Has duplicate #67326.

comment:7 in reply to:  4 ; Changed 8 months ago by barracuda156

Replying to ryandesign:

The failure is in the bundled copy of ffmpeg. The problem might already be solved by updating avidemux to a newer version (avidemux 2.8.1 is available; their release notes say the bundled ffmpeg was updated to 4.4.1 in avidemux 2.8.0 and to 4.4.2 in avidemux 2.8.1)

It is not: https://github.com/macports/macports-ports/pull/19721#issuecomment-1662269804

comment:8 in reply to:  7 Changed 5 months ago by cooljeanius (Eric Gallager)

Replying to barracuda156:

Replying to ryandesign:

The failure is in the bundled copy of ffmpeg. The problem might already be solved by updating avidemux to a newer version (avidemux 2.8.1 is available; their release notes say the bundled ffmpeg was updated to 4.4.1 in avidemux 2.8.0 and to 4.4.2 in avidemux 2.8.1)

It is not: https://github.com/macports/macports-ports/pull/19721#issuecomment-1662269804

This PR was eventually merged, so I take it that means that the problem eventually did get solved?

Note: See TracTickets for help on using tickets.