media-video/makemkv: Add Qt5 support, closes bug #569768
authorJames Le Cuirot <chewi@gentoo.org>
Sun, 27 Dec 2015 12:05:23 +0000 (12:05 +0000)
committerJames Le Cuirot <chewi@gentoo.org>
Sun, 27 Dec 2015 12:09:49 +0000 (12:09 +0000)
Qt5 always trumps Qt4 if it is available. There are no configure
options or variables to control this and there is no publicly
available configure.ac either so we have to selectively patch the raw
configure script directly.

Also make a couple of simplifications. src_configure checked for a
configure script even though there is always one there now. I also
couldn't see any reason for having virtual/opengl as a dependency.

Package-Manager: portage-2.2.26

media-video/makemkv/files/makemkv-qt4.patch [new file with mode: 0644]
media-video/makemkv/files/makemkv-qt5.patch [new file with mode: 0644]
media-video/makemkv/makemkv-1.9.8-r1.ebuild [moved from media-video/makemkv/makemkv-1.9.8.ebuild with 85% similarity]

diff --git a/media-video/makemkv/files/makemkv-qt4.patch b/media-video/makemkv/files/makemkv-qt4.patch
new file mode 100644 (file)
index 0000000..cbc2fa0
--- /dev/null
@@ -0,0 +1,34 @@
+--- makemkv-oss-1.9.8/configure.orig   2015-12-20 16:22:19.000000000 +0000
++++ makemkv-oss-1.9.8/configure        2015-12-26 23:59:44.601387071 +0000
+@@ -5048,6 +5048,7 @@
+ if test "$enable_gui" != "no"; then
++: '
+ pkg_failed=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt5" >&5
+ $as_echo_n "checking for qt5... " >&6; }
+@@ -5105,6 +5106,7 @@
+         fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$qt5_PKG_ERRORS" >&5
++'
+@@ -5271,6 +5273,7 @@
+ fi
++: '
+ else
+       qt5_CFLAGS=$pkg_cv_qt5_CFLAGS
+       qt5_LIBS=$pkg_cv_qt5_LIBS
+@@ -5283,6 +5286,7 @@
+     QT_MOC="$qt5_host_bins/moc";
+ fi
++'
+ QT_INC=$QT_INC
diff --git a/media-video/makemkv/files/makemkv-qt5.patch b/media-video/makemkv/files/makemkv-qt5.patch
new file mode 100644 (file)
index 0000000..58b5e41
--- /dev/null
@@ -0,0 +1,28 @@
+--- makemkv-oss-1.9.8/configure.orig   2015-12-20 16:22:19.000000000 +0000
++++ makemkv-oss-1.9.8/configure        2015-12-27 00:05:18.659860655 +0000
+@@ -5108,6 +5108,7 @@
++: '
+ pkg_failed=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for qt4" >&5
+ $as_echo_n "checking for qt4... " >&6; }
+@@ -5257,7 +5258,9 @@
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+ $as_echo "no" >&6; }
++'
+       as_fn_error $? "Qt library (version 5 or 4) is required to build GUI" "$LINENO" 5
++: '
+ else
+       qt4_CFLAGS=$pkg_cv_qt4_CFLAGS
+@@ -5270,6 +5273,7 @@
+       QT_MOC=`$PKG_CONFIG --variable moc_location "QtCore" 2>/dev/null`;
+ fi
++'
+ else
+       qt5_CFLAGS=$pkg_cv_qt5_CFLAGS
similarity index 85%
rename from media-video/makemkv/makemkv-1.9.8.ebuild
rename to media-video/makemkv/makemkv-1.9.8-r1.ebuild
index 74150adfc94b5663ec775d127af0d6ca3eb7a9c6..252dc7308f67325854420be043ee4f8782907ec5 100644 (file)
@@ -16,7 +16,8 @@ SRC_URI="http://www.makemkv.com/download/${MY_P}.tar.gz
 LICENSE="LGPL-2.1 MPL-1.1 MakeMKV-EULA openssl"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="libav multilib qt4"
+IUSE="libav multilib qt4 qt5"
+REQUIRED_USE="?? ( qt4 qt5 )"
 
 QA_PREBUILT="opt/bin/makemkvcon opt/bin/mmdtsdec"
 
@@ -26,11 +27,16 @@ RDEPEND="
        dev-libs/openssl:0
        sys-libs/zlib
        qt4? (
-               virtual/opengl
                dev-qt/qtcore:4
                dev-qt/qtdbus:4
                dev-qt/qtgui:4
        )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtdbus:5
+               dev-qt/qtgui:5
+               dev-qt/qtwidgets:5
+       )
        !libav? ( >=media-video/ffmpeg-1.0.0:0= )
        libav? ( >=media-video/libav-0.8.9:0= )
 "
@@ -40,14 +46,25 @@ S=${WORKDIR}/makemkv-oss-${PV}
 
 src_prepare() {
        epatch "${FILESDIR}"/${PN}-{makefile,path}.patch
+
+       # Qt5 always trumps Qt4 if it is available. There are no configure
+       # options or variables to control this and there is no publicly
+       # available configure.ac either.
+       if use qt4; then
+               epatch "${FILESDIR}"/${PN}-qt4.patch
+       elif use qt5; then
+               epatch "${FILESDIR}"/${PN}-qt5.patch
+       fi
 }
 
 src_configure() {
+       # See bug #439380.
        replace-flags -O* -Os
-       local args=""
-       use qt4 || args="--disable-gui"
-       if [[ -x ${ECONF_SOURCE:-.}/configure ]] ; then
-               econf $args
+
+       if use qt4 || use qt5; then
+               econf --enable-gui
+       else
+               econf --disable-gui
        fi
 }
 
@@ -68,7 +85,7 @@ src_install() {
        dosym libmmbd.so.0    /usr/$(get_libdir)/libmmbd.so.0.${PV}
        into /opt
 
-       if use qt4; then
+       if use qt4 || use qt5; then
                dobin out/makemkv
 
                local res