Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/mkvtoolnix/files/, media-video/mkvtoolnix/
Date: Wed, 18 May 2022 02:07:59
Message-Id: 1652839665.e20ef76c972a6bfbb900f5d8c36239013b288cd2.sam@gentoo
1 commit: e20ef76c972a6bfbb900f5d8c36239013b288cd2
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Wed May 18 02:07:08 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Wed May 18 02:07:45 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e20ef76c
7
8 media-video/mkvtoolnix: add 67.0.0
9
10 Quoting same comments I put in the patch:
11 """
12 We should only check for UIC (provided by qtwidgets) if we're building the GUI.
13
14 Qt (just qtcore) itself is *always* needed to build mkvtoolnix (it's used
15 for e.g. MIME type detection since 59.0.0), but the rest of Qt
16 (like qtwidgets) is only needed for the GUI build.
17
18 The build system incorrectly unconditionally checks for UIC. We fix it here
19 to only check for it when doing a GUI build.
20
21 First hunk (ac/qt5.m4, removing UIC check): Signed-off-by: Duane Robertson duane <AT> duanerobertson.com
22 Second hunk (rest, adding UIC check conditional on enable_gui): Signed-off-by: Sam James <sam <AT> gentoo.org>
23 """
24
25 Closes: https://bugs.gentoo.org/844097
26 Signed-off-by: Duane Robertson <duane <AT> duanerobertson.com>
27 Signed-off-by: Sam James <sam <AT> gentoo.org>
28
29 media-video/mkvtoolnix/Manifest | 1 +
30 .../files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch | 76 +++++++++++++
31 media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild | 126 +++++++++++++++++++++
32 3 files changed, 203 insertions(+)
33
34 diff --git a/media-video/mkvtoolnix/Manifest b/media-video/mkvtoolnix/Manifest
35 index 55b203cc0880..696b51f30dc3 100644
36 --- a/media-video/mkvtoolnix/Manifest
37 +++ b/media-video/mkvtoolnix/Manifest
38 @@ -2,3 +2,4 @@ DIST mkvtoolnix-57.0.0.tar.xz 7635780 BLAKE2B e0253dc0f48b0c98ee30590560daecbb7c
39 DIST mkvtoolnix-60.0.0.tar.xz 7657960 BLAKE2B 094c13ac7e73e79f3cc7eae0768625482c4808a4323239a93de34d1406583bfe676d71855dd1f7eae9a8a0ff0a7badf50c04c71f9d2fbb4afd9ff5f05b9353ea SHA512 90bbb95c3a7a91bd47f76aaec9459a1f6f26a381ff03db1047c0fdb41cb87bdd96160c448152357a2b306adbd26f478112ac5d5e8215ee37331a15fc89fa43c3
40 DIST mkvtoolnix-61.0.0.tar.xz 7662500 BLAKE2B de9d73658fe779b34b21fded8e6676b76fed5ce5ecd598aeff12e8c4f120353f63413f260bacc30c0a102a4eb6d4b907feaabdd84d80d20469a3ae8341bce5f1 SHA512 9f35b5af8784eb4b92b437f41b5df677aa7fc859827eaef4d0e2d8531ad9908331f70a852c7e6e965a5f8cec47b38c6c91b8fbdbcaee0edca54f8cbb000ba582
41 DIST mkvtoolnix-64.0.0.tar.xz 7700012 BLAKE2B f0c64786fdc3d05915650a08ca398dc7f5356b9a9ce9cb108fb40a4394a7518dd45143717fde7af1dccd3e7e43d343f81d69633c78f1201670924257529baede SHA512 252fdf0a9497d34f2a407ca0d3e584d1cd5a2f566b793a3a6b9af8473855d89e55ce79a8b4aff71d5a25f7a15ca991f84a3c4441168553af9feffdfe75e19844
42 +DIST mkvtoolnix-67.0.0.tar.xz 7791720 BLAKE2B 815172f1e120d90ec33cbc6dac1bb3aad793edc0b629f0bab9400a0732d3b692f983d7eca82c61c453ccd245dea948d0950bcb357e3104d2012554871e09c80c SHA512 eed390cb305b5fcaddf11d68a9021f9ddc22a62d1eb95f4c0a34161a7662dd62495c87193a2d951f0fe30fb9a6b5b93f06ed7fedc24ed674da531f2c2317c997
43
44 diff --git a/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch b/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
45 new file mode 100644
46 index 000000000000..a5f5fd2009b8
47 --- /dev/null
48 +++ b/media-video/mkvtoolnix/files/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
49 @@ -0,0 +1,76 @@
50 +https://bugs.gentoo.org/844097
51 +
52 +We should only check for UIC (provided by qtwidgets) if we're building the GUI.
53 +
54 +Qt (just qtcore) itself is *always* needed to build mkvtoolnix (it's used
55 +for e.g. MIME type detection since 59.0.0), but the rest of Qt
56 +(like qtwidgets) is only needed for the GUI build.
57 +
58 +The build system incorrectly unconditionally checks for UIC. We fix it here
59 +to only check for it when doing a GUI build.
60 +
61 +First hunk (ac/qt5.m4, removing UIC check): Signed-off-by: Duane Robertson duane@××××××××××××××.com
62 +Second hunk (rest, adding UIC check conditional on enable_gui): Signed-off-by: Sam James <sam@g.o>
63 +--- a/ac/qt5.m4
64 ++++ b/ac/qt5.m4
65 +@@ -51,7 +51,6 @@ check_qt5() {
66 + AC_PATH_PROG(LCONVERT, lconvert,, [$qt_searchpath])
67 + AC_PATH_PROG(MOC, moc,, [$qt_searchpath])
68 + AC_PATH_PROG(RCC, rcc,, [$qt_searchpath])
69 +- AC_PATH_PROG(UIC, uic,, [$qt_searchpath])
70 +
71 + if test x"$MOC" = x; then
72 + AC_MSG_CHECKING(for Qt 5)
73 +@@ -62,11 +61,6 @@ check_qt5() {
74 + AC_MSG_CHECKING(for Qt 5)
75 + AC_MSG_RESULT(no: could not find the rcc executable)
76 + return
77 +-
78 +- elif test x"$UIC" = x; then
79 +- AC_MSG_CHECKING(for Qt 5)
80 +- AC_MSG_RESULT(no: could not find the uic executable)
81 +- return
82 + fi
83 +
84 +
85 +
86 +--- a/ac/qt_common.m4
87 ++++ b/ac/qt_common.m4
88 +@@ -5,6 +5,37 @@ fi
89 + if test x"$enable_gui" = xyes; then
90 + BUILD_GUI=yes
91 +
92 ++ # Copied from ac/qt6.m4.
93 ++ qmake_properties="`mktemp`"
94 ++
95 ++ "$QMAKE" -query > "$qmake_properties"
96 ++
97 ++ qmake_ver="`$ac_cv_path_EGREP '^QT_VERSION:' "$qmake_properties" | sed 's/^QT_VERSION://'`"
98 ++
99 ++ AC_MSG_CHECKING(for qmake's version)
100 ++ if test -z "qmake_ver"; then
101 ++ AC_MSG_RESULT(unknown; please contact the author)
102 ++ return
103 ++ elif ! check_version $qt_min_ver $qmake_ver; then
104 ++ AC_MSG_RESULT(too old: $qmake_ver, neet at least $qt_mIN-ver)
105 ++ return
106 ++ else
107 ++ AC_MSG_RESULT($qmake_ver)
108 ++ fi
109 ++
110 ++ qt_bindir="`$ac_cv_path_EGREP '^QT_INSTALL_BINS:' "$qmake_properties" | sed 's/^QT_INSTALL_BINS://'`"
111 ++ qt_libexecdir="`$ac_cv_path_EGREP '^QT_INSTALL_LIBEXECS:' "$qmake_properties" | sed 's/^QT_INSTALL_LIBEXECS://'`"
112 ++ qt_searchpath="$qt_libexecdir:$qt_bindir:$PATH"
113 ++
114 ++ rm -f "$qmake_properties"
115 ++
116 ++ AC_PATH_PROG(UIC, uic,, [$qt_searchpath])
117 ++ if test x"$UIC" = x; then
118 ++ AC_MSG_CHECKING(for Qt 5 UIC (qtwidgets))
119 ++ AC_MSG_RESULT(no: could not find the uic executable)
120 ++ exit 1
121 ++ fi
122 ++
123 + if test x"$have_qt6" = "xyes" ; then
124 + opt_features_yes="$opt_features_yes\n * MKVToolNix GUI (with Qt 6)"
125 + else
126
127 diff --git a/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild b/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild
128 new file mode 100644
129 index 000000000000..e228b9bbe6b3
130 --- /dev/null
131 +++ b/media-video/mkvtoolnix/mkvtoolnix-67.0.0.ebuild
132 @@ -0,0 +1,126 @@
133 +# Copyright 1999-2022 Gentoo Authors
134 +# Distributed under the terms of the GNU General Public License v2
135 +
136 +EAPI=8
137 +
138 +inherit autotools flag-o-matic multiprocessing qmake-utils xdg
139 +
140 +if [[ ${PV} == *9999 ]] ; then
141 + EGIT_REPO_URI="https://gitlab.com/mbunkus/mkvtoolnix.git"
142 + EGIT_SUBMODULES=()
143 + inherit git-r3
144 +else
145 + SRC_URI="https://mkvtoolnix.download/sources/${P}.tar.xz"
146 + KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
147 +fi
148 +
149 +DESCRIPTION="Tools to create, alter, and inspect Matroska files"
150 +HOMEPAGE="https://mkvtoolnix.download/ https://gitlab.com/mbunkus/mkvtoolnix"
151 +
152 +LICENSE="GPL-2"
153 +SLOT="0"
154 +IUSE="dbus debug dvd gui nls pch test"
155 +RESTRICT="!test? ( test )"
156 +
157 +# check NEWS.md for build system changes entries for boost/libebml/libmatroska
158 +# version requirement updates and other packaging info
159 +RDEPEND="
160 + >=dev-libs/boost-1.66:=
161 + dev-libs/gmp:=
162 + >=dev-libs/libebml-1.4.2:=
163 + >=dev-libs/libfmt-8.0.1:=
164 + >=dev-libs/pugixml-1.11:=
165 + media-libs/flac:=
166 + >=media-libs/libmatroska-1.6.3:=
167 + media-libs/libogg:=
168 + media-libs/libvorbis:=
169 + sys-libs/zlib
170 + dvd? ( media-libs/libdvdread:= )
171 + dev-qt/qtcore:5
172 + gui? (
173 + dev-qt/qtgui:5
174 + dev-qt/qtnetwork:5
175 + dev-qt/qtwidgets:5
176 + dev-qt/qtconcurrent:5
177 + dev-qt/qtmultimedia:5
178 + )
179 + app-text/cmark:0=
180 + dbus? ( dev-qt/qtdbus:5 )
181 +"
182 +DEPEND="${RDEPEND}
183 + >=dev-cpp/nlohmann_json-3.9.1
184 + >=dev-libs/utfcpp-3.1.2
185 + test? ( dev-cpp/gtest )
186 +"
187 +BDEPEND="
188 + app-text/docbook-xsl-stylesheets
189 + dev-libs/libxslt
190 + dev-ruby/rake
191 + virtual/pkgconfig
192 + nls? (
193 + sys-devel/gettext
194 + app-text/po4a
195 + )
196 +"
197 +
198 +PATCHES=(
199 + "${FILESDIR}"/mkvtoolnix-58.0.0-qt5dbus.patch
200 + "${FILESDIR}"/mkvtoolnix-67.0.0-no-uic-qtwidgets.patch
201 +)
202 +
203 +src_prepare() {
204 + default
205 +
206 + if [[ ${PV} == *9999 ]]; then
207 + ./autogen.sh || die
208 + fi
209 +
210 + # bug #692018
211 + sed -i -e 's/pandoc/diSaBlEd/' ac/pandoc.m4 || die
212 +
213 + eautoreconf
214 +
215 + # remove bundled libs
216 + rm -r lib/{fmt,libebml,libmatroska,nlohmann-json,pugixml,utf8-cpp} || die
217 +}
218 +
219 +src_configure() {
220 + # bug #692322, use system dev-libs/utfcpp
221 + append-cppflags -I"${ESYSROOT}"/usr/include/utf8cpp
222 +
223 + local myeconfargs=(
224 + $(use_enable debug)
225 + $(usex pch "" --disable-precompiled-headers)
226 + $(use_enable dbus)
227 + $(use_enable gui)
228 + --disable-qt6
229 + --enable-qt5
230 + --with-qmake="$(qt5_get_bindir)"/qmake
231 + $(use_with dvd dvdread)
232 + $(use_with nls gettext)
233 + $(usex nls "" --with-po4a-translate=false)
234 + --disable-update-check
235 + --disable-optimization
236 + --with-boost="${ESYSROOT}"/usr
237 + --with-boost-libdir="${ESYSROOT}"/usr/$(get_libdir)
238 + )
239 +
240 + econf "${myeconfargs[@]}"
241 +}
242 +
243 +src_compile() {
244 + rake V=1 -j$(makeopts_jobs) || die
245 +}
246 +
247 +src_test() {
248 + rake V=1 -j$(makeopts_jobs) tests:unit || die
249 + rake V=1 -j$(makeopts_jobs) tests:run_unit || die
250 +}
251 +
252 +src_install() {
253 + DESTDIR="${D}" rake -j$(makeopts_jobs) install || die
254 +
255 + einstalldocs
256 + dodoc NEWS.md
257 + doman doc/man/*.1
258 +}