1.10.2 build fails on CentOS 6.8

The place to discuss linux version of MakeMKV
Post Reply
old-linux
Posts: 7
Joined: Tue Oct 04, 2016 1:32 am

1.10.2 build fails on CentOS 6.8

Post by old-linux »

I'm unable to build makemkv-oss-1.10.2 on CentOS 6.8.
(makemkv-oss-1.10.1 builds and works as expected.)

configure output :

[mike@x makemkv-oss-1.10.2]$ PKG_CONFIG_PATH=/tmp/ffmpeg/lib/pkgconfig CFLAGS="-D __STDC_FORMAT_MACROS" ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
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 we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for -objcopy... no
checking for objcopy... objcopy
checking for -ld... no
checking for ld... ld
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for compress2 in -lz... yes
checking openssl/opensslconf.h usability... yes
checking openssl/opensslconf.h presence... yes
checking for openssl/opensslconf.h... yes
checking for AES_encrypt in -lcrypto... yes
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for XML_ParserCreate in -lexpat... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ffmpeg... yes
checking whether LIBAVCODEC_VERSION_MAJOR is declared... yes
checking LIBAVCODEC_VERSION_MAJOR... 57
checking for AVFrame.nb_samples... yes
checking whether AV_SAMPLE_FMT_U8P is declared... yes
checking for avcodec_encode_audio2... yes
checking for AVCodecContext.refcounted_frames... yes
checking whether avcodec_free_frame is declared... no
checking whether av_frame_free is declared... yes
checking for av_log_format_line... yes
checking for enum AVCodecID... yes
checking whether AV_CODEC_ID_NONE is declared... yes
checking whether av_frame_get_channels is declared... yes
checking whether av_frame_get_sample_rate is declared... yes
checking whether av_frame_set_channel_layout is declared... yes
checking for AVCodecParserContext.duration... yes
checking whether AV_CH_TOP_BACK_CENTER is declared... yes
checking for qt5... no
checking for qt4... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libffabi/src/ffabicfg.h
[mike@x makemkv-oss-1.10.2]$

make output:

[mike@x makemkv-oss-1.10.2]$ make
mkdir -p out
gcc -D __STDC_FORMAT_MACROS -D_linux_ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D_REENTRANT -shared -Wl,-z,defs -oout/libdriveio.so.0.full -Ilibdriveio/inc libdriveio/src/infolist.cpp libdriveio/src/scsihlp.cpp libdriveio/src/srlist.cpp libdriveio/src/stdquery.cpp libdriveio/src/tipclient.cpp libdriveio/src/tipcommon.cpp libdriveio/src/tipserver.cpp libdriveio/src/drives/pioneer.cpp libdriveio/src/drives/xboxhddvd.cpp \
-fPIC -Xlinker -dy -Xlinker --version-script=libdriveio/src/libdriveio.vers \
-Xlinker -soname=libdriveio.so.0 -lc -lstdc++
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libdriveio.so.0.full out/libdriveio.so.0
mkdir -p tmp
echo "#define BUILDINFO_ARCH_NAME \"x86_64-redhat-linux\"" >> tmp/gen_buildinfo.h
echo "#define BUILDINFO_BUILD_DATE \"Thu Oct 6 19:28:43 CDT 2016\"" >> tmp/gen_buildinfo.h
mkdir -p out
gcc -D __STDC_FORMAT_MACROS -D_linux_ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -D_REENTRANT -shared -Wl,-z,defs -oout/libmakemkv.so.1.full -Ilibebml/inc -DEBML_NO_READ -DEBML_STRICT_API -DEBML_DEBUG -Ilibmatroska/inc \
-Ilibmakemkv/inc -Isstring/inc -Imakemkvgui/inc -Ilibabi/inc -Ilibffabi/inc -DDCA_LOG -DDCA_FFMALLOC \
libebml/src/EbmlBinary.cpp libebml/src/EbmlContexts.cpp libebml/src/EbmlCrc32.cpp libebml/src/EbmlDate.cpp libebml/src/EbmlDummy.cpp libebml/src/EbmlElement.cpp libebml/src/EbmlFloat.cpp libebml/src/EbmlHead.cpp libebml/src/EbmlMaster.cpp libebml/src/EbmlSInteger.cpp libebml/src/EbmlString.cpp libebml/src/EbmlSubHead.cpp libebml/src/EbmlUInteger.cpp libebml/src/EbmlUnicodeString.cpp libebml/src/EbmlVersion.cpp libebml/src/EbmlVoid.cpp libebml/src/IOCallback.cpp libebml/src/MemIOCallback.cpp libmatroska/src/FileKax.cpp libmatroska/src/KaxAttached.cpp libmatroska/src/KaxAttachments.cpp libmatroska/src/KaxBlock.cpp libmatroska/src/KaxBlockData.cpp libmatroska/src/KaxCluster.cpp libmatroska/src/KaxContexts.cpp libmatroska/src/KaxCues.cpp libmatroska/src/KaxCuesData.cpp libmatroska/src/KaxInfoData.cpp libmatroska/src/KaxSeekHead.cpp libmatroska/src/KaxSegment.cpp libmatroska/src/KaxTracks.cpp libmatroska/src/KaxVersion.cpp libmatroska/src/KaxSemantic.cpp libmakemkv/src/ebmlwrite.cpp libmakemkv/src/libmkv.cpp libmakemkv/src/version.cpp libmakemkv/src/world.cpp libmakemkv/src/stdstring.cpp sstring/src/sstring.cpp \
libabi/src/ossl_aes.c libabi/src/ossl_sha.c libabi/src/ossl_ec.c libabi/src/zlib.c libabi/src/xpat.c libabi/src/libm.c libabi/src/httplinux.cpp makemkvgui/src/api_linux.cpp libabi/src/sys_linux.c makemkvgui/src/spawn_posix.cpp libffabi/src/ffabi.c libffabi/src/mlp.c libffabi/src/log.c libffabi/src/audio_convert.c libffabi/src/audio_mix.c libffabi/src/audio_mix_matrix.c libffabi/src/dcadec/bitstream.cpp libffabi/src/dcadec/core_decoder.cpp libffabi/src/dcadec/dca_context.cpp libffabi/src/dcadec/dmix_tables.cpp libffabi/src/dcadec/exss_parser.cpp libffabi/src/dcadec/idct_fixed.cpp libffabi/src/dcadec/interpolator.cpp libffabi/src/dcadec/interpolator_fixed.cpp libffabi/src/dcadec/interpolator_float.cpp libffabi/src/dcadec/ta.cpp libffabi/src/dcadec/xll_decoder.cpp libffabi/src/dcadec/idct_float.cpp \
-DHAVE_BUILDINFO_H -Itmp -I/tmp/ffmpeg/include \
-fPIC -Xlinker -dy -Xlinker --version-script=libmakemkv/src/libmakemkv.vers \
-Xlinker -soname=libmakemkv.so.1 -lc -lstdc++ -lcrypto -lz -lexpat -pthread -L/tmp/ffmpeg/lib -L/usr/local/lib -lavcodec -lxcb-shm -lxcb-xfixes -lxcb-render -lxcb-shape -lxcb -lX11 -lfdk-aac -lbz2 -lz -lswresample -lavutil -lrt -lm -lm -lrt
libffabi/src/ffabi.c: In function ‘ffm_audio_decode_put_data’:
libffabi/src/ffabi.c:242: warning: ‘avcodec_decode_audio4’ is deprecated (declared at /tmp/ffmpeg/include/libavcodec/avcodec.h:4704)
libffabi/src/ffabi.c: In function ‘ffm_audio_encode_close’:
libffabi/src/ffabi.c:377: warning: ‘av_free_packet’ is deprecated (declared at /tmp/ffmpeg/include/libavcodec/avcodec.h:4414)
libffabi/src/ffabi.c: In function ‘ffm_audio_encode_put_frame’:
libffabi/src/ffabi.c:398: warning: ‘av_free_packet’ is deprecated (declared at /tmp/ffmpeg/include/libavcodec/avcodec.h:4414)
libffabi/src/ffabi.c:434: warning: ‘avcodec_encode_audio2’ is deprecated (declared at /tmp/ffmpeg/include/libavcodec/avcodec.h:5222)
objcopy --strip-all --strip-debug --strip-unneeded --discard-all out/libmakemkv.so.1.full out/libmakemkv.so.1
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_mainwnd.cpp makemkvgui/src/mainwnd.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_logtext.cpp makemkvgui/src/logtext.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_dirselectbox.cpp makemkvgui/src/dirselectbox.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_aboutbox.cpp makemkvgui/src/aboutbox.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_settingdlg.cpp makemkvgui/src/settingdlg.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_backupdlg.cpp makemkvgui/src/backupdlg.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_lineeditk.cpp makemkvgui/src/lineeditk.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_dvdbox.cpp makemkvgui/src/dvdbox.h
mkdir -p tmp
/usr/lib64/qt4/bin/moc -o tmp/moc_drivebox.cpp makemkvgui/src/drivebox.h
mkdir -p tmp
ld -r -b binary -o tmp/image_data.o makemkvgui/bin/image_data.bin
mkdir -p out
gcc -D __STDC_FORMAT_MACROS -D_linux_ -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -oout/makemkv.full -Imakemkvgui/inc -Ilibmakemkv/inc -Isstring/inc -Ilibdriveio/inc -Ilibabi/inc \
makemkvgui/src/aboutbox.cpp makemkvgui/src/client.cpp makemkvgui/src/dirselectbox.cpp makemkvgui/src/logic.cpp makemkvgui/src/logtext.cpp makemkvgui/src/main.cpp makemkvgui/src/nativefiledialog.cpp makemkvgui/src/mainwnd.cpp makemkvgui/src/marshall.cpp makemkvgui/src/progress.cpp makemkvgui/src/scsiinfo.cpp makemkvgui/src/settingdlg.cpp makemkvgui/src/uisync.cpp makemkvgui/src/viteminfo.cpp makemkvgui/src/margui.cpp makemkvgui/src/backupdlg.cpp makemkvgui/src/lstring.cpp makemkvgui/src/notify.cpp makemkvgui/src/str/en_utf16.cpp makemkvgui/src/image.cpp makemkvgui/src/abutton.cpp makemkvgui/src/lineeditk.cpp makemkvgui/src/dvdbox.cpp makemkvgui/src/drivebox.cpp makemkvgui/src/api_posix.cpp makemkvgui/src/api_linux.cpp makemkvgui/src/sem_posix.cpp makemkvgui/src/spawn_posix.cpp makemkvgui/src/logic_posix.cpp makemkvgui/src/notify_linux.cpp makemkvgui/src/image_linux.cpp tmp/image_data.o tmp/moc_mainwnd.cpp tmp/moc_logtext.cpp tmp/moc_dirselectbox.cpp tmp/moc_aboutbox.cpp tmp/moc_settingdlg.cpp tmp/moc_backupdlg.cpp tmp/moc_lineeditk.cpp tmp/moc_dvdbox.cpp tmp/moc_drivebox.cpp sstring/src/sstring.cpp libdriveio/src/srlist.cpp \
-DHAVE_BUILDINFO_H -Itmp \
-DQT_SHARED -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtDBus -I/usr/include/QtXml -lc -lstdc++ \
-lQtGui -lQtDBus -lQtXml -lQtCore -lpthread -lz -lrt
makemkvgui/src/dirselectbox.cpp: In member function ‘void CDirSelectBox::SlotButtonPressed()’:
makemkvgui/src/dirselectbox.cpp:123: error: conversion from ‘const QString*’ to ‘const QChar’ is ambiguous
/usr/include/QtCore/qchar.h:372: note: candidates are: QChar::QChar(int) <near match>
/usr/include/QtCore/qchar.h:371: note: QChar::QChar(uint) <near match>
/usr/include/QtCore/qchar.h:370: note: QChar::QChar(short int) <near match>
/usr/include/QtCore/qchar.h:81: note: QChar::QChar(ushort) <near match>
/usr/include/QtCore/qchar.h:77: note: QChar::QChar(uchar) <near match>
/usr/include/QtCore/qchar.h:76: note: QChar::QChar(char) <near match>
make: *** [out/makemkv.full] Error 1
[mike@x makemkv-oss-1.10.2]$

Any suggestions on how to resolve this would be very welcome.
JoFuAZ
Posts: 1
Joined: Tue Oct 11, 2016 11:36 pm

Re: 1.10.2 build fails on CentOS 6.8

Post by JoFuAZ »

Did you get anywhere? I'm experiencing the same error with the same version of CentOS.
ghost2097
Posts: 1
Joined: Wed Oct 26, 2016 9:28 am

Re: 1.10.2 build fails on CentOS 6.8

Post by ghost2097 »

Building with the qt5 libraries from the EPEL repo works.

I have not managed to build with the qt4 libraries yet.
Bekar
Posts: 1
Joined: Tue Dec 27, 2016 8:33 am

Re: 1.10.2 build fails on CentOS 6.8

Post by Bekar »

On a CentOS box using EPEL QT4 libraries

With 1.10.4, I had the same issue.

I cheated and commented out the code block starting at 116 and ending at 128 (of makemkvgui/src/dirselectbox.cpp).

As shown in the make in the OP's post, line 123 is the culprit:

Code: Select all

if (dir.endsWith(appendName)) {
Reading it through, it's fairly innocuous, but something there needs casting properly. If someone knows QT better than I do and can fix that line, that would be great!

From what I can read, it's removing a string that is getting automatically appended if you type it there.

From my testing, it works OK without the block, but i'm sure there's a small landmine in there somewhere that will cause me grief if I misuse it.
old-linux
Posts: 7
Joined: Tue Oct 04, 2016 1:32 am

Re: 1.10.2 build fails on CentOS 6.8

Post by old-linux »

The announcement for 1.10.4 still calls for "qt4 or qt5". Perhaps it builds successfully on
some version of qt4 somewhere ... but on a fully up to date CentOS 6.8 with qt4 and no
qt5 makmkv-oss-1.10.4 still fails to build for me (as does 1.10.3 and 1.10.2).

I finally tried installing the CentOS 6 EPEL package "qt5-qtbase-devel". Adding that also
installs packages qt5-qtbase-common, qt5-qtbase, qt5-qtbase-gui, and qt5-rpm-macros.

This now lets me build and install makemkv-oss-1.10.4 on CentOS 6.8 with no error.
(I've not yet completed testing the executable but at this point I'm wildly optimistic.)
Post Reply