Opened 7 months ago
Closed 7 months ago
#69735 closed defect (fixed)
mkvtoolnix-legacy is broken on legacy systems
Reported by: | barracuda156 | Owned by: | i0ntempest |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.9.3 |
Keywords: | mountainlion, lion, snowleopard, leopard, tiger | Cc: | |
Port: | mkvtoolnix-legacy |
Description
Perhaps if no testing was possible, older systems should have been kept at version which actually built. Now the port is broken: it fails even to configure.
---> Configuring mkvtoolnix-legacy Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_mkvtoolnix-legacy/mkvtoolnix-legacy/work/mkvtoolnix-58.0.0" && ./configure --prefix=/opt/local --mandir=/opt/local/share/man --with-boost=/opt/local/libexec/boost/1.76 --with-extra-libs=/opt/local/lib --with-extra-includes=/opt/local/include --with-xsltproc=/opt/local/bin/xsltproc --with-docbook-xsl-root=/opt/local/share/xsl/docbook-xsl-nons --with-po4a=/opt/local/bin/po4a --with-po4a-translate=/opt/local/bin/po4a-translate --disable-qt6 --disable-update-check --disable-qt checking build system type... powerpc-apple-darwin10.0.0d2 checking host system type... powerpc-apple-darwin10.0.0d2 checking target system type... powerpc-apple-darwin10.0.0d2 checking for gcc... /opt/local/bin/gcc-mp-13 checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether /opt/local/bin/gcc-mp-13 accepts -g... yes checking for /opt/local/bin/gcc-mp-13 option to enable C11 features... none needed checking whether /opt/local/bin/gcc-mp-13 and cc understand -c and -o together... yes checking how to run the C preprocessor... /opt/local/bin/gcc-mp-13 -E checking whether the compiler supports GNU C++... yes checking whether /opt/local/bin/g++-mp-13 accepts -g... yes checking for /opt/local/bin/g++-mp-13 option to enable C++11 features... none needed checking how to run the C++ preprocessor... /opt/local/bin/g++-mp-13 -E checking whether make sets $(MAKE)... yes checking for a BSD-compatible install... /usr/bin/install -c checking for ranlib... ranlib checking for strip... strip checking for ar... ar checking for ld... ld checking for strings... strings checking for objdump... no checking for pkg-config... /opt/local/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for grep that handles long lines and -e... /opt/local/bin/ggrep checking for egrep... /opt/local/bin/ggrep -E checking for inttypes.h... (cached) yes checking for stdint.h... (cached) yes checking for sys/types.h... (cached) yes checking for sys/syscall.h... yes checking for stropts.h... no checking for syscall... yes checking compiler type and version... gcc 13.2.0 checking for lld... no checking for support for the "-std=c++17" flag... -std=c++17 checking for support for C++17 feature "attribute 'maybe_unused'"... yes checking for support for C++17 feature "nested namespace definition"... yes checking for support for C++17 feature "structured bindings"... yes checking for support for C++17 feature "std::optional"... yes checking for support for C++17 feature "std::gcd"... yes checking for support for C++17 feature "constexpr if"... yes checking for support for C++17 feature "file system library"... yes checking for libraries to link against for the file system library... -lstdc++fs checking whether the byte order is big-endian... yes checking if being compiled with mingw32... no checking for int64_t... yes checking for uint64_t... yes checking size of int... 4 checking size of long... 4 checking size of long long... 8 checking for iconv.h... yes checking for iconv... yes checking for iconv declaration... extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); checking for nl_langinfo... yes checking for ogg_sync_init in -logg... yes checking for ogg/ogg.h... yes checking for vorbis_synthesis_init in -lvorbis... yes checking for vorbis/codec.h... yes checking for FLAC__stream_decoder_new in -lFLAC... yes checking for FLAC__StreamMetadata_StreamInfo.sample_rate... yes checking for FLAC__stream_decoder_skip_single_frame in -lFLAC... yes checking for EBML... yes checking for MATROSKA... yes checking for PUGIXML... yes configure: Using the system version of the pugixml library checking nlohmann's json-cpp... yes configure: Using the system version of nlohmann json-cpp checking for utf8.h... no configure: Using the internal version of UTF8-CPP checking fmt... yes checking for PCRE2... yes checking for JPCRE2... no configure: Using the internal version of jpcre2 checking for ZLIB... yes checking for Qt 6... no: disabled by user request checking for Qt 5... no: disabled by user request checking for MAGIC... yes checking for boostlib >= 1.66.0... yes checking for boost/multiprecision/cpp_int.hpp... no configure: error: Boost's multi-precision library is required but wasn't found Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_multimedia_mkvtoolnix-legacy/mkvtoolnix-legacy/work/mkvtoolnix-58.0.0" && ./configure --prefix=/opt/local --mandir=/opt/local/share/man --with-boost=/opt/local/libexec/boost/1.76 --with-extra-libs=/opt/local/lib --with-extra-includes=/opt/local/include --with-xsltproc=/opt/local/bin/xsltproc --with-docbook-xsl-root=/opt/local/share/xsl/docbook-xsl-nons --with-po4a=/opt/local/bin/po4a --with-po4a-translate=/opt/local/bin/po4a-translate --disable-qt6 --disable-update-check --disable-qt Exit code: 1
On buildbots po4a
is broken, so it does not reach to trying to install the port itself: https://build.macports.org/builders/ports-10.8_x86_64-builder/builds/170359/steps/install-dependencies/logs/dependencies
- S. For the reference,
mkvtoolnix
@41.0.0 was building fine.
Change History (7)
comment:1 Changed 7 months ago by ryandesign (Ryan Carsten Schmidt)
Cc: | i0ntempest removed |
---|---|
Owner: | changed from ryandesign to i0ntempest |
comment:2 follow-ups: 3 4 Changed 7 months ago by i0ntempest
comment:3 Changed 7 months ago by barracuda156
Replying to i0ntempest:
Again I don't think 10.5 was ever supported because it never supported qt5. For 10.8-10.6, if the multiprecision library is the only problem then falling back one more version to v57 should work, since v58 introduced the requirement.
Is your configure log from 10.8? If it has boost 1.76 it should have
boost/multiprecision/cpp_int.hpp
.
I do not have 10.8 at hand, the log is from 10.6.
I will look into multiprecision
, I was not aware Boost lacks something on ppc
. And I can try v57, if indeed Boost does not have that lib and it cannot be built on 32-bit.
UPD. It does have multiprecision
.
comment:4 Changed 7 months ago by barracuda156
Replying to i0ntempest:
Again I don't think 10.5 was ever supported because it never supported qt5. For 10.8-10.6, if the multiprecision library is the only problem then falling back one more version to v57 should work, since v58 introduced the requirement.
Is your configure log from 10.8? If it has boost 1.76 it should have
boost/multiprecision/cpp_int.hpp
.
Ok, this is a bug in Boost, which was fixed in 1.81.
configure:11270: checking for boost/multiprecision/cpp_int.hpp configure:11270: /opt/local/bin/g++-mp-13 -c -pipe -I/opt/local/libexec/boost/1.76/include -Os -std=c++17 -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc -I/opt/local/include -I/opt/local/libexec/boost/1.76/include -isystem/opt/local/include/LegacySupport -I/opt/local/include -I/opt/local/include -I/opt/local/libexec/boost/1.76/include conftest.cpp >&5 In file included from /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include/immintrin.h:29, from /opt/local/libexec/boost/1.76/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp:68, from /opt/local/libexec/boost/1.76/include/boost/multiprecision/cpp_int/add_unsigned.hpp:10, from /opt/local/libexec/boost/1.76/include/boost/multiprecision/cpp_int/add.hpp:12, from /opt/local/libexec/boost/1.76/include/boost/multiprecision/cpp_int.hpp:2286, from conftest.cpp:67: /opt/local/lib/gcc13/gcc/powerpc-apple-darwin10/13.2.0/include/mmintrin.h:52:2: error: #error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error." 52 | #error "Please read comment above. Use -DNO_WARN_X86_INTRINSICS to disable this error." | ^~~~~
Is it okay to switch to Boost 1.81? If not, then I need to backport a fix into 1.76.
comment:5 follow-up: 6 Changed 7 months ago by i0ntempest
I don't think there's an upper limit for boost version, but v58 being released before boost 1.81 may not be compatible. You can try.
comment:6 Changed 7 months ago by barracuda156
Replying to i0ntempest:
I don't think there's an upper limit for boost version, but v58 being released before boost 1.81 may not be compatible. You can try.
So Boost 1.81 seems to work, but the new libfmt
does not, apparently:
:info:build In file included from /opt/local/include/fmt/format.h:49, :info:build from src/common/common.h:39, :info:build from src/common/common_pch.h:1: :info:build /opt/local/include/fmt/core.h: In instantiation of 'constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = mtx::kax_analyzer_x; typename std::enable_if<PACKED, int>::type <anonymous> = 0]': :info:build /opt/local/include/fmt/core.h:1842:51: required from 'constexpr fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {mtx::kax_analyzer_x}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {mtx::kax_analyzer_x}]' :info:build /opt/local/include/fmt/core.h:1860:18: required from 'constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = basic_format_context<appender, char>; T = {mtx::kax_analyzer_x}]' :info:build /opt/local/include/fmt/core.h:2835:44: required from 'std::string fmt::v10::format(format_string<T ...>, T&& ...) [with T = {mtx::kax_analyzer_x&}; std::string = std::basic_string<char>; format_string<T ...> = basic_format_string<char, mtx::kax_analyzer_x&>]' :info:build src/merge/mkvmerge.cpp:1650:24: required from here :info:build /opt/local/include/fmt/core.h:1600:63: error: 'fmt::v10::detail::type_is_unformattable_for<mtx::kax_analyzer_x, char> _' has incomplete type :info:build 1600 | type_is_unformattable_for<T, typename Context::char_type> _; :info:build | ^ :info:build compilation terminated due to -Wfatal-errors.
Did someone test this version or was it picked randomly?
It may need to use an older version of libfmt.
UPD. Wait, this is perhaps a build conflict with an unrelated port. Lumme sort it out.
comment:7 Changed 7 months ago by barracuda156
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Again I don't think 10.5 was ever supported because it never supported qt5. For 10.8-10.6, if the multiprecision library is the only problem then falling back one more version to v57 should work, since v58 introduced the requirement.
Is your configure log from 10.8? If it has boost 1.76 it should have
boost/multiprecision/cpp_int.hpp
.