Gentoo Archives: gentoo-commits

From: Samuel Bernardo <samuelbernardo.mail@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/user/ssnb:master commit in: media-video/handbrake/, media-video/handbrake/files/
Date: Mon, 15 Oct 2018 00:58:54
Message-Id: 1539565106.ea7c7a03acf04e21056d0757f8b07540f5912528.samuelbernardo@gentoo
1 commit: ea7c7a03acf04e21056d0757f8b07540f5912528
2 Author: Samuel Bernardo <samuelbernardo.mail <AT> gmail <DOT> com>
3 AuthorDate: Mon Oct 15 00:58:26 2018 +0000
4 Commit: Samuel Bernardo <samuelbernardo.mail <AT> gmail <DOT> com>
5 CommitDate: Mon Oct 15 00:58:26 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/user/ssnb.git/commit/?id=ea7c7a03
7
8 add handbrake 1.0.7 version, otherwise actual portage will try to build most recent version that is keyword masked and that needs ffpmeg that is currently masked
9
10 media-video/handbrake/Manifest | 7 +
11 .../handbrake/files/handbrake-0.10.3-nolibav.patch | 76 ++++++++++
12 ...handbrake-9999-fix-missing-x265-link-flag.patch | 13 ++
13 .../files/handbrake-9999-remove-dvdnav-dup.patch | 20 +++
14 .../handbrake-9999-remove-faac-dependency.patch | 84 +++++++++++
15 media-video/handbrake/handbrake-1.0.7.ebuild | 156 +++++++++++++++++++++
16 media-video/handbrake/metadata.xml | 18 +++
17 7 files changed, 374 insertions(+)
18
19 diff --git a/media-video/handbrake/Manifest b/media-video/handbrake/Manifest
20 new file mode 100644
21 index 0000000..0d923f1
22 --- /dev/null
23 +++ b/media-video/handbrake/Manifest
24 @@ -0,0 +1,7 @@
25 +AUX handbrake-0.10.3-nolibav.patch 2821 BLAKE2B 78294506e6b3efe71d7d14537c2e605d10067fd9e637f06ff3b01a9d8e6bea34dfb2c871bb2558e35310bebdb4922ae99f63d9f7911f7236a28ea1a4dc3d6832 SHA512 88a0b5df6cc198a8383a2d1dcf6d4c71f24445ea71e29dac570a2b3987cdaa0a563b56c7cccd291b58099dbdb15130bdcc0cd4527bdaeb442aefe4fa06455ec7
26 +AUX handbrake-9999-fix-missing-x265-link-flag.patch 281 BLAKE2B 623f902bb31586513a51db95a63841e6234d4841d6332d2be9a6a0d7fd07f3e9cc694eb8945bebf718e10538fa390bbaa9dcbea81ba5324cbf20bd64bc582fdb SHA512 30d457258dd287cae3df66e7899b66480be2212a3969fe3a4e4f99ed383740e8f597fa7cf869922f29f501f100313b7efd78ebe09e2949ed4c235e2df22d22e5
27 +AUX handbrake-9999-remove-dvdnav-dup.patch 809 BLAKE2B 16cde838dcf59753e5438df0d2c2b81f45667058bd0687a7368c528f61bd2a2fedc4462894daad58c3acb5c51bdd53df3b30e28adba93a0fb2838416e4226217 SHA512 e2005155adf29e8253f4313d209b2ccc642fb1d7f63256d3bdf675ddd0e6b0e15bc6bffd98e19aa7dab3907e161e29c5268dc5656590ce9254b12a91ac3ff6b0
28 +AUX handbrake-9999-remove-faac-dependency.patch 3697 BLAKE2B b0f7d0a1c4d464d3287ab233b756f5036d6ffa7e9e59a2f98a8ffb2ae59e46d25e56edb3e5bf9c04a16330f3dc50f4c2426f252b35834b7c9c9e6b4904244368 SHA512 9d070e50a9b7d4b8ac25b7d56bd341aca6dc979ba506c84f4b95109909f70020723915cd120bed24e84a8fc242ee3c3a5775f43a78b7995e53cd499444c9f6dc
29 +DIST handbrake-1.0.7.tar.bz2 12650549 BLAKE2B 54fa6f4ee053de3ce1840695e66b0fef5ac09aed79f61755f146dbf990c624608e9acf2f81e69871ece85daf5a3f09780a75f43567c5b08afc55863495958ec7 SHA512 bacc5ff105893a0fdea95174839663e00027c87a13f00fb67d39c347b55e35869c0b998ec52181389b98cc2cc358d221e41d729e76952e4cb21fe8d12ee5a44a
30 +EBUILD handbrake-1.0.7.ebuild 3524 BLAKE2B 26efd30bd6f2e359fb5059aa2713645b7b7a3a1ae929b5492fb4589d2b76f454653994d88d8bbb875212080cc75933bf1cb8a90b1443022de0e7e2a7c0476786 SHA512 b519a8842dbd5a1420e1b3bd4256b2edbf5b1163c0a2eac90a6386798d86af63cdf18aa519f4244b51042a38a14a10cfae6fbf3211dbd9e1c981f730011dfb99
31 +MISC metadata.xml 842 BLAKE2B c494d233f5eb83c6ad5f1eb02e332a8335cf908019942bd0526b45fd9186f300676474a7d814dcf221c8379e6d196f3eb9f14aba04ec10065c12b334176dba1c SHA512 d503d78aefd9a994d3197093f97dd3f958fb8347e6eff7598d9d5ef11a5eb17e0088bac4bb676dfa617dd0377ee185e2d0e80fe91feecd53e5257cbf9adc5f0e
32
33 diff --git a/media-video/handbrake/files/handbrake-0.10.3-nolibav.patch b/media-video/handbrake/files/handbrake-0.10.3-nolibav.patch
34 new file mode 100644
35 index 0000000..8539186
36 --- /dev/null
37 +++ b/media-video/handbrake/files/handbrake-0.10.3-nolibav.patch
38 @@ -0,0 +1,76 @@
39 +From 75549414927212d4d1666730133805b33447de79 Mon Sep 17 00:00:00 2001
40 +From: John Stebbins <jstebbins.hb@×××××.com>
41 +Date: Tue, 3 Nov 2015 10:16:01 -0800
42 +Subject: [PATCH] muxavformat: add support for mp4 fallback audio signalling
43 +
44 +---
45 +diff --git a/libhb/muxavformat.c b/libhb/muxavformat.c
46 +index 0d70597..373c2ab 100644
47 +--- a/libhb/muxavformat.c
48 ++++ b/libhb/muxavformat.c
49 +@@ -121,7 +121,7 @@ static int avformatInit( hb_mux_object_t * m )
50 + hb_mux_data_t * track;
51 + int meta_mux;
52 + int max_tracks;
53 +- int ii, ret;
54 ++ int ii, jj, ret;
55 +
56 + int clock_min, clock_max, clock;
57 + hb_video_framerate_get_limits(&clock_min, &clock_max, &clock);
58 +@@ -589,6 +589,56 @@ static int avformatInit( hb_mux_object_t * m )
59 + }
60 + }
61 +
62 ++ // Check for audio track associations
63 ++ for (ii = 0; ii < hb_list_count(job->list_audio); ii++)
64 ++ {
65 ++ audio = hb_list_item(job->list_audio, ii);
66 ++ switch (audio->config.out.codec & HB_ACODEC_MASK)
67 ++ {
68 ++ case HB_ACODEC_FFAAC:
69 ++ case HB_ACODEC_CA_AAC:
70 ++ case HB_ACODEC_CA_HAAC:
71 ++ case HB_ACODEC_FDK_AAC:
72 ++ case HB_ACODEC_FDK_HAAC:
73 ++ break;
74 ++
75 ++ default:
76 ++ {
77 ++ // Mark associated fallback audio tracks for any non-aac track
78 ++ for(jj = 0; jj < hb_list_count( job->list_audio ); jj++ )
79 ++ {
80 ++ hb_audio_t * fallback;
81 ++ int codec;
82 ++
83 ++ if (ii == jj) continue;
84 ++
85 ++ fallback = hb_list_item( job->list_audio, jj );
86 ++ codec = fallback->config.out.codec & HB_ACODEC_MASK;
87 ++ if (fallback->config.in.track == audio->config.in.track &&
88 ++ (codec == HB_ACODEC_FFAAC ||
89 ++ codec == HB_ACODEC_CA_AAC ||
90 ++ codec == HB_ACODEC_CA_HAAC ||
91 ++ codec == HB_ACODEC_FDK_AAC ||
92 ++ codec == HB_ACODEC_FDK_HAAC))
93 ++ {
94 ++ hb_mux_data_t * fallback_track;
95 ++ int * sd;
96 ++
97 ++ track = audio->priv.mux_data;
98 ++ fallback_track = fallback->priv.mux_data;
99 ++ sd = (int*)av_stream_new_side_data(track->st,
100 ++ AV_PKT_DATA_FALLBACK_TRACK,
101 ++ sizeof(int));
102 ++ if (sd != NULL)
103 ++ {
104 ++ *sd = fallback_track->st->index;
105 ++ }
106 ++ }
107 ++ }
108 ++ } break;
109 ++ }
110 ++ }
111 ++
112 + char * subidx_fmt =
113 + "size: %dx%d\n"
114 + "org: %d, %d\n"
115
116 diff --git a/media-video/handbrake/files/handbrake-9999-fix-missing-x265-link-flag.patch b/media-video/handbrake/files/handbrake-9999-fix-missing-x265-link-flag.patch
117 new file mode 100644
118 index 0000000..a963fe0
119 --- /dev/null
120 +++ b/media-video/handbrake/files/handbrake-9999-fix-missing-x265-link-flag.patch
121 @@ -0,0 +1,13 @@
122 +Written by: Peter Foley <pefoley2@×××××××.com>
123 +Gentoo Bug: #552792
124 +
125 +--- a/test/module.defs
126 ++++ b/test/module.defs
127 +@@ -25,6 +25,7 @@
128 +
129 + ifeq (1,$(FEATURE.x265))
130 + TEST.GCC.D += USE_X265
131 ++ TEST.GCC.l += x265
132 + endif
133 +
134 + TEST.GCC.l += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs))
135
136 diff --git a/media-video/handbrake/files/handbrake-9999-remove-dvdnav-dup.patch b/media-video/handbrake/files/handbrake-9999-remove-dvdnav-dup.patch
137 new file mode 100644
138 index 0000000..7dc1f69
139 --- /dev/null
140 +++ b/media-video/handbrake/files/handbrake-9999-remove-dvdnav-dup.patch
141 @@ -0,0 +1,20 @@
142 +--- a/libhb/dvdnav.c
143 ++++ b/libhb/dvdnav.c
144 +@@ -1225,16 +1225,7 @@
145 + {
146 + for (kk = 0; kk < buttons; kk++)
147 + {
148 +- dvdnav_t *dvdnav_copy;
149 +-
150 +- result = dvdnav_dup( &dvdnav_copy, d->dvdnav );
151 +- if (result != DVDNAV_STATUS_OK)
152 +- {
153 +- hb_log("dvdnav dup failed: %s", dvdnav_err_to_string(d->dvdnav));
154 +- goto done;
155 +- }
156 +- title = try_button( dvdnav_copy, kk, list_title );
157 +- dvdnav_free_dup( dvdnav_copy );
158 ++ title = try_button( d->dvdnav, kk, list_title );
159 +
160 + if ( title >= 0 )
161 + {
162
163 diff --git a/media-video/handbrake/files/handbrake-9999-remove-faac-dependency.patch b/media-video/handbrake/files/handbrake-9999-remove-faac-dependency.patch
164 new file mode 100644
165 index 0000000..7e8ab99
166 --- /dev/null
167 +++ b/media-video/handbrake/files/handbrake-9999-remove-faac-dependency.patch
168 @@ -0,0 +1,84 @@
169 +--- a/libhb/common.c
170 ++++ b/libhb/common.c
171 +@@ -243,7 +243,6 @@
172 + {
173 + // legacy encoders, back to HB 0.9.4 whenever possible (disabled)
174 + { { "", "dts", NULL, HB_ACODEC_DCA_PASS, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_DTS_PASS, },
175 +- { { "AAC (faac)", "faac", NULL, 0, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AAC, },
176 + { { "AAC (ffmpeg)", "ffaac", NULL, HB_ACODEC_FFAAC, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AAC, },
177 + { { "AC3 (ffmpeg)", "ffac3", NULL, HB_ACODEC_AC3, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_AC3, },
178 + { { "MP3 (lame)", "lame", NULL, HB_ACODEC_LAME, HB_MUX_MASK_MP4|HB_MUX_MASK_MKV, }, NULL, 0, HB_GID_ACODEC_MP3, },
179 +--- a/scripts/manicure.rb
180 ++++ b/scripts/manicure.rb
181 +@@ -349,7 +349,7 @@
182 + audioEncoders << "copy:dtshd"
183 + when /AAC Pass/
184 + audioEncoders << "copy:aac"
185 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
186 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
187 + audioEncoders << "av_aac"
188 + when "AAC (FDK)"
189 + audioEncoders << "fdk_aac"
190 +@@ -466,7 +466,7 @@
191 + case hash["AudioEncoderFallback"]
192 + when /AC3/
193 + audioEncoderFallback << "ac3"
194 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
195 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
196 + audioEncoderFallback << "av_aac"
197 + when "AAC (FDK)"
198 + audioEncoderFallback << "fdk_aac"
199 +@@ -753,7 +753,7 @@
200 + audioEncoders << "copy:dtshd"
201 + when /AAC Pass/
202 + audioEncoders << "copy:aac"
203 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
204 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
205 + audioEncoders << "av_aac"
206 + when "AAC (FDK)"
207 + audioEncoders << "fdk_aac"
208 +@@ -870,7 +870,7 @@
209 + case hash["AudioEncoderFallback"]
210 + when /AC3/
211 + audioEncoderFallback << "ac3"
212 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
213 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
214 + audioEncoderFallback << "av_aac"
215 + when "AAC (FDK)"
216 + audioEncoderFallback << "fdk_aac"
217 +@@ -1163,7 +1163,7 @@
218 + audioEncoders << "copy:dtshd"
219 + when /AAC Pass/
220 + audioEncoders << "copy:aac"
221 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
222 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
223 + audioEncoders << "av_aac"
224 + when "AAC (FDK)"
225 + audioEncoders << "fdk_aac"
226 +@@ -1298,7 +1298,7 @@
227 + case hash["AudioEncoderFallback"]
228 + when /AC3/
229 + audioEncoderFallback << "ac3"
230 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
231 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
232 + audioEncoderFallback << "av_aac"
233 + when "AAC (FDK)"
234 + audioEncoderFallback << "fdk_aac"
235 +@@ -1615,7 +1615,7 @@
236 + audioEncoders << "copy:dtshd"
237 + when /AAC Pass/
238 + audioEncoders << "copy:aac"
239 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
240 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
241 + audioEncoders << "av_aac"
242 + when "AAC (FDK)"
243 + audioEncoders << "fdk_aac"
244 +@@ -1732,7 +1732,7 @@
245 + case hash["AudioEncoderFallback"]
246 + when /AC3/
247 + audioEncoderFallback << "ac3"
248 +- when "AAC (ffmpeg)", "AAC (avcodec)", "AAC (faac)"
249 ++ when "AAC (ffmpeg)", "AAC (avcodec)"
250 + audioEncoderFallback << "av_aac"
251 + when "AAC (FDK)"
252 + audioEncoderFallback << "fdk_aac"
253
254 diff --git a/media-video/handbrake/handbrake-1.0.7.ebuild b/media-video/handbrake/handbrake-1.0.7.ebuild
255 new file mode 100644
256 index 0000000..0ce6364
257 --- /dev/null
258 +++ b/media-video/handbrake/handbrake-1.0.7.ebuild
259 @@ -0,0 +1,156 @@
260 +# Copyright 1999-2017 Gentoo Foundation
261 +# Distributed under the terms of the GNU General Public License v2
262 +
263 +EAPI=6
264 +
265 +PYTHON_COMPAT=( python2_7 )
266 +
267 +inherit autotools eutils gnome2-utils python-any-r1
268 +
269 +if [[ ${PV} = *9999* ]]; then
270 + EGIT_REPO_URI="https://github.com/HandBrake/HandBrake.git"
271 + inherit git-r3
272 + KEYWORDS=""
273 +else
274 + MY_P="HandBrake-${PV}"
275 + SRC_URI="http://handbrake.fr/rotation.php?file=${MY_P}.tar.bz2 -> ${P}.tar.bz2"
276 + S="${WORKDIR}/${MY_P}"
277 + KEYWORDS="~amd64 ~x86"
278 +fi
279 +
280 +DESCRIPTION="Open-source, GPL-licensed, multiplatform, multithreaded video transcoder"
281 +HOMEPAGE="http://handbrake.fr/"
282 +LICENSE="GPL-2"
283 +
284 +SLOT="0"
285 +IUSE="+fdk gstreamer gtk libav libav-aac x265"
286 +
287 +REQUIRED_USE="^^ ( fdk libav-aac )"
288 +
289 +RDEPEND="
290 + dev-libs/jansson
291 + media-libs/a52dec
292 + media-libs/libass:=
293 + >=media-libs/libbluray-1.0
294 + media-libs/libdvdnav
295 + media-libs/libdvdread
296 + media-libs/libsamplerate
297 + media-libs/libtheora
298 + media-libs/libvorbis
299 + media-libs/libvpx
300 + media-libs/opus
301 + media-libs/x264:=
302 + media-sound/lame
303 + sys-libs/zlib
304 + libav? ( >=media-video/libav-10.1:0=[fdk?] )
305 + !libav? ( >=media-video/ffmpeg-2.3:0=[fdk?] )
306 + gstreamer? (
307 + media-libs/gstreamer:1.0
308 + media-libs/gst-plugins-base:1.0
309 + media-libs/gst-plugins-good:1.0
310 + media-libs/gst-plugins-bad:1.0
311 + media-libs/gst-plugins-ugly:1.0
312 + media-plugins/gst-plugins-a52dec:1.0
313 + media-plugins/gst-plugins-libav:1.0
314 + media-plugins/gst-plugins-x264:1.0
315 + )
316 + gtk? (
317 + >=x11-libs/gtk+-3.10
318 + dev-libs/dbus-glib
319 + dev-libs/glib:2
320 + x11-libs/cairo
321 + x11-libs/gdk-pixbuf:2
322 + x11-libs/libnotify
323 + x11-libs/pango
324 + virtual/libgudev:=
325 + )
326 + fdk? ( media-libs/fdk-aac )
327 + x265? ( >=media-libs/x265-1.7:0= )
328 + "
329 +
330 +DEPEND="${RDEPEND}
331 + ${PYTHON_DEPS}
332 + dev-lang/yasm
333 + dev-util/intltool
334 + sys-devel/automake"
335 +
336 +PATCHES=(
337 + # Remove libdvdnav duplication and call it on the original instead.
338 + # It may work this way; if not, we should try to mimic the duplication.
339 + "${FILESDIR}/${PN}-9999-remove-dvdnav-dup.patch"
340 +
341 + # Remove faac dependency; TODO: figure out if we need to do this at all.
342 + "${FILESDIR}/${PN}-9999-remove-faac-dependency.patch"
343 +
344 + # Fix missing x265 link flag
345 + "${FILESDIR}/${PN}-9999-fix-missing-x265-link-flag.patch"
346 +)
347 +
348 +pkg_setup() {
349 + python-any-r1_pkg_setup
350 +}
351 +
352 +src_prepare() {
353 + # Get rid of leftover bundled library build definitions,
354 + sed -i 's:.*\(/contrib\|contrib/\).*::g' \
355 + "${S}"/make/include/main.defs \
356 + || die "Contrib removal failed."
357 +
358 + default
359 +
360 + # Get rid of libav specific code when using ffmpeg
361 + use libav || eapply -R "${FILESDIR}/${PN}-0.10.3-nolibav.patch"
362 +
363 + cd "${S}/gtk"
364 + # Don't run autogen.sh.
365 + sed -i '/autogen.sh/d' module.rules || die "Removing autogen.sh call failed"
366 + eautoreconf
367 +}
368 +
369 +src_configure() {
370 + ./configure \
371 + --force \
372 + --verbose \
373 + --prefix="${EPREFIX}/usr" \
374 + --disable-gtk-update-checks \
375 + $(use_enable libav-aac) \
376 + $(use_enable fdk fdk-aac) \
377 + $(use_enable gtk) \
378 + $(usex !gstreamer --disable-gst) \
379 + $(use_enable x265) || die "Configure failed."
380 +}
381 +
382 +src_compile() {
383 + emake -C build
384 +
385 + # TODO: Documentation building is currently broken, try to fix it.
386 + #
387 + # if use doc ; then
388 + # emake -C build doc
389 + # fi
390 +}
391 +
392 +src_install() {
393 + emake -C build DESTDIR="${D}" install
394 +
395 + dodoc README.markdown AUTHORS.markdown NEWS.markdown THANKS.markdown
396 +}
397 +
398 +pkg_postinst() {
399 + einfo "For the CLI version of HandBrake, you can use \`HandBrakeCLI\`."
400 +
401 + if use gtk ; then
402 + einfo ""
403 + einfo "For the GTK+ version of HandBrake, you can run \`ghb\`."
404 + fi
405 +
406 + gnome2_icon_cache_update
407 +}
408 +
409 +pkg_preinst() {
410 + gnome2_icon_savelist
411 +}
412 +
413 +pkg_postrm() {
414 + gnome2_icon_cache_update
415 +}
416
417 diff --git a/media-video/handbrake/metadata.xml b/media-video/handbrake/metadata.xml
418 new file mode 100644
419 index 0000000..1c5819c
420 --- /dev/null
421 +++ b/media-video/handbrake/metadata.xml
422 @@ -0,0 +1,18 @@
423 +<?xml version="1.0" encoding="UTF-8"?>
424 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
425 +<pkgmetadata>
426 + <maintainer type="person">
427 + <email>thev00d00@g.o</email>
428 + <name>Ian Whyman</name>
429 + </maintainer>
430 + <longdescription>
431 + Open-source, GPL-licensed, multiplatform, multithreaded video transcoder.
432 + </longdescription>
433 + <use>
434 + <flag name="gstreamer">Support for the streaming media framework from <pkg>media-libs/gstreamer</pkg>.</flag>
435 + <flag name="gtk">Install the GTK UI, ghb.</flag>
436 + <flag name="fdk">Support for encoding AAC using <pkg>media-libs/fdk-aac</pkg>.</flag>
437 + <flag name="libav-aac">Support for encoding AAC using <pkg>media-video/libav</pkg>'s internal encoder.</flag>
438 + <flag name="x265">Support for encoding h265 using <pkg>media-libs/x265</pkg>.</flag>
439 + </use>
440 +</pkgmetadata>