summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libre/handbrake/PKGBUILD130
-rw-r--r--libre/handbrake/handbrake-fix-missing-x265-link-flag.patch13
-rw-r--r--libre/handbrake/handbrake-no-download.patch15
-rw-r--r--libre/handbrake/handbrake-supress-clip_id.patch38
-rw-r--r--libre/handbrake/libav-fix_libvpxenc.patch22
5 files changed, 104 insertions, 114 deletions
diff --git a/libre/handbrake/PKGBUILD b/libre/handbrake/PKGBUILD
index 337745016..cc213bab8 100644
--- a/libre/handbrake/PKGBUILD
+++ b/libre/handbrake/PKGBUILD
@@ -1,97 +1,43 @@
-# Maintainer: Luke Shumaker <lukeshu@sbcglobal.net>
+# $Id$
# Maintainer (Arch): Evangelos Foutras <evangelos@foutrelis.com>
# Contributor (Arch): Giovanni Scafora <giovanni@archlinux.org>
# Contributor (Arch): Sebastien Piccand <sebcactus gmail com>
+# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
pkgname=('handbrake' 'handbrake-cli')
-pkgver=0.10.5
-pkgrel=2.parabola3
-url="http://handbrake.fr/"
-license=('GPL')
-
+pkgver=1.0.1
+pkgrel=1.parabola1
arch=('i686' 'x86_64' 'armv7h')
-depends=('gcc-libs')
-_gui_depends=('libnotify' 'dbus-glib' 'gtk3' 'gst-plugins-base')
-makedepends=('intltool' 'python2' "${_gui_depends[@]}")
+url="https://handbrake.fr/"
+license=('GPL')
+makedepends=('intltool' 'python2' 'yasm' 'wget' 'bzip2' 'gcc-libs' 'libnotify'
+ 'gst-plugins-base' 'gtk3' 'dbus-glib' 'fribidi' 'libass' 'lame'
+ 'fontconfig' 'freetype2' 'libxml2' 'libogg' 'libvorbis' 'cmake'
+ 'libtheora' 'libsamplerate' 'ffmpeg' 'x264' 'libx264' 'x265'
+ 'libvpx' 'libdvdnav' 'jansson' 'librsvg' 'libgudev'
+ 'libdvdread' 'libbluray')
source=(https://handbrake.fr/mirror/HandBrake-$pkgver.tar.bz2
- libav-fix_libvpxenc.patch)
-
-# HandBrake has a bunch of dependencies that may be either pacman
-# packages, or built in the contrib/ directory as "modules". This is
-# a big config section to decide which dependencies are going to be
-# pacman packages, and which dependencies are going to be modules.
-#
-# This list should pretty closely correspond to
-# `grep contrib/ make/include/main.defs`
-#
-# The format for _depends[n] is: handbrake_name[:pacman_name]
-# The format for _modules[n] is: handbrake_name:tarball_name
-makedepends+=('pkgconfig') # module if FEATURE.local_pkgconfig
-makedepends+=('cmake') # module if FEATURE.local_cmake
-makedepends+=('autoconf') # module if FEATURE.local_autotools
-makedepends+=('automake') # module if FEATURE.local_autotools
-makedepends+=('libtool') # module if FEATURE.local_autotools
-makedepends+=('m4') # module if FEATURE.local_autotools
-depends+=('bzip2') # module if !HAS.bz2
-depends+=('fontconfig') # module if on darwin, cygwin, or mingw
-depends+=('freetype2') # module if on darwin, cygwin, or mingw
-depends+=('fribidi') # module if on darwin, cygwin, or mingw
-depends+=('libxml2') # module if on darwin, cygwin, or mingw
-depends+=('libass') # module if on darwin, cygwin, or mingw
-depends+=('libogg') # module if on darwin, cygwin, or mingw
-depends+=('libvorbis') # module if on darwin, cygwin, or mingw
-depends+=('libtheora') # module if on darwin, cygwin, or mingw
-depends+=('libsamplerate') # module if on darwin, cygwin, or mingw
-depends+=('lame') # module if on darwin, cygwin, or mingw
-depends+=('libx264') # module if on darwin, cygwin, or mingw
-_depends+=('fdk-aac:libfdk-aac') # enable as module if FEATURE.fdk_aac
-_depends+=('x265') # enable as module if FEATURE.x265
-# Using system ffmpeg will break PGS subtitle processing
-# https://forum.handbrake.fr/viewtopic.php?f=13&t=27581
-_modules+=('ffmpeg:libav-v10.1.tar.bz2') # always a module
-_depends+=('libvpx') # always a module
-_depends+=('libdvdread') # always a module; also forced in Arch
-_depends+=('libdvdnav') # always a module; also forced in Arch
-_depends+=('libbluray') # always a module; also forced in Arch
-_depends+=('libgudev') # always a module; also forced in Arch
-#_depends+=('pthreadw32') # module if !HAS.pthread (glibc)
-#_depends+=('libmfx') # enable as module if FEATURE.qsv
-#_depends+=('libiconv') # module if !HAS.iconv (glibc)
-depends+=('zlib') # module if !HAS.libz
-#_depends+=('libgnurx') # module if !HAS.regex (glibc)
-makedepends+=('yasm') # module if FEATURE.local_yasm
-
-depends+=("${_depends[@]#*:}")
-source+=("${_modules[@]/#*:/http://download.handbrake.fr/handbrake/contrib/}")
-#noextract+=("${_modules[@]#*:}")
-
-# Lock the specific version of libx264, as it changes often.
-depends+=('libx264.so')
-
-sha256sums=('fb9230dd121b456f6829d1d25ac8bbf76e503b51c4efc70f0a7fd2bb8607e2f0'
- 'fabf99d9492345af058c502e83b613b23f939c7f9092c9e80aa260b72cbed595'
- 'bc3807426d4e73fe8c245730b0df4ba95766cf7e17e47c738ee302f73d066ac9')
+ handbrake-fix-missing-x265-link-flag.patch
+ handbrake-no-download.patch
+ handbrake-supress-clip_id.patch)
+sha256sums=('af4badcdf56465abc798e5e11fe0e437e23ea89bbee20798408980a34c4d5876'
+ '05e212e76b6e0b94a04de02cbeb7bf9db607059e19297b5bd3d0d143135285c4'
+ 'd8116caa83f870803581f0d02e1302b3b8990479d446e4c73bedd35bed531042'
+ '6407a96c59baa030a4e5fa46c53ddb3e841c7d4787613d391e032a62600d527f')
prepare() {
- # Fixing libav
- cd "$srcdir/libav-v10.1"
- patch -Np1 -i ../libav-fix_libvpxenc.patch
-
cd "$srcdir/HandBrake-$pkgver"
- local dep
+ # https://bugs.gentoo.org/show_bug.cgi?id=552792
+ patch -Np1 -i ../handbrake-fix-missing-x265-link-flag.patch
+ patch -Np1 -i ../handbrake-no-download.patch
+ patch -Np1 -i ../handbrake-supress-clip_id.patch
- # Use more system libraries
- for dep in "${_depends[@]}"; do
- sed -i \
- -e "s/MODULES += contrib\/${dep%:*}\$/#& # provided by ${dep#*:}/" \
- make/include/main.defs
+ # Use more system libs
+ # Bundled libbluray is kept because it is patched locally
+ for _lib in ffmpeg x265 libvpx libdvdnav libdvdread; do
+ sed -i "/MODULES += contrib\/$_lib/d" make/include/main.defs
done
- echo 'TEST.GCC.l += fdk-aac x265' >> test/module.defs
-
- # Use the libav patched
- mkdir -p download
- bsdtar -cjf download/libav-v10.1.tar.bz2 -C .. libav-v10.1
}
build() {
@@ -99,31 +45,31 @@ build() {
./configure \
--prefix=/usr \
- --force \
--disable-gtk-update-checks
- cd build
- make
+ make -C build
}
package_handbrake() {
pkgdesc="Multithreaded video transcoder"
- depends+=("${_gui_depends[@]}" 'hicolor-icon-theme' 'desktop-file-utils')
+ depends=('bzip2' 'gcc-libs' 'gst-plugins-base' 'libnotify' 'dbus-glib'
+ 'fribidi' 'libass' 'lame' 'gtk3' 'fontconfig' 'freetype2' 'libxml2'
+ 'libogg' 'libvorbis' 'libtheora' 'libsamplerate' 'ffmpeg' 'libx264'
+ 'x265' 'libvpx' 'libdvdnav' 'jansson' 'librsvg' 'libgudev'
+ 'desktop-file-utils' 'hicolor-icon-theme')
optdepends=('gst-plugins-good: for video previews'
'gst-libav: for video previews')
- conflicts=("$pkgname-svn")
- replaces=("$pkgname-svn")
-
cd "$srcdir/HandBrake-$pkgver/build"
+
make DESTDIR="$pkgdir" install
rm "$pkgdir/usr/bin/HandBrakeCLI"
}
package_handbrake-cli() {
- pkgdesc+="Multithreaded video transcoder (CLI)"
-
- conflicts=("$pkgname-svn")
- replaces=("$pkgname-svn")
+ pkgdesc="Multithreaded video transcoder (CLI)"
+ depends=('bzip2' 'gcc-libs' 'zlib' 'fribidi' 'libass' 'lame' 'libxml2'
+ 'libtheora' 'libsamplerate' 'ffmpeg' 'libx264' 'x265' 'libvpx'
+ 'libdvdnav' 'jansson')
cd "$srcdir/HandBrake-$pkgver/build"
install -D HandBrakeCLI "$pkgdir/usr/bin/HandBrakeCLI"
diff --git a/libre/handbrake/handbrake-fix-missing-x265-link-flag.patch b/libre/handbrake/handbrake-fix-missing-x265-link-flag.patch
new file mode 100644
index 000000000..a963fe0af
--- /dev/null
+++ b/libre/handbrake/handbrake-fix-missing-x265-link-flag.patch
@@ -0,0 +1,13 @@
+Written by: Peter Foley <pefoley2@pefoley.com>
+Gentoo Bug: #552792
+
+--- a/test/module.defs
++++ b/test/module.defs
+@@ -25,6 +25,7 @@
+
+ ifeq (1,$(FEATURE.x265))
+ TEST.GCC.D += USE_X265
++ TEST.GCC.l += x265
+ endif
+
+ TEST.GCC.l += $(foreach m,$(MODULES.NAMES),$($m.OSL.libs))
diff --git a/libre/handbrake/handbrake-no-download.patch b/libre/handbrake/handbrake-no-download.patch
new file mode 100644
index 000000000..561fd98b1
--- /dev/null
+++ b/libre/handbrake/handbrake-no-download.patch
@@ -0,0 +1,15 @@
+--- HandBrake-1.0.1.orig/make/include/main.defs 2016-12-29 16:07:59.000000000 -0500
++++ HandBrake-1.0.1/make/include/main.defs 2017-01-03 17:06:19.446985505 -0500
+@@ -77,12 +77,6 @@
+ MODULES += contrib/x265
+ endif
+
+-MODULES += contrib/ffmpeg
+-MODULES += contrib/libvpx
+-MODULES += contrib/libdvdread
+-MODULES += contrib/libdvdnav
+-MODULES += contrib/libbluray
+-
+ ifneq (,$(filter $(BUILD.system),mingw))
+ ifneq ($(HAS.pthread),1)
+ ifneq ($(HAS.pthreadGC2),1)
diff --git a/libre/handbrake/handbrake-supress-clip_id.patch b/libre/handbrake/handbrake-supress-clip_id.patch
new file mode 100644
index 000000000..0570f23e8
--- /dev/null
+++ b/libre/handbrake/handbrake-supress-clip_id.patch
@@ -0,0 +1,38 @@
+--- HandBrake-1.0.1.orig/libhb/bd.c 2016-12-29 16:07:59.000000000 -0500
++++ HandBrake-1.0.1/libhb/bd.c 2017-01-03 16:59:37.551990672 -0500
+@@ -234,24 +234,6 @@
+ return 1;
+ }
+
+-static void show_clip_list( BLURAY_TITLE_INFO * ti )
+-{
+- int ii;
+-
+- for (ii = 0; ii < ti->clip_count; ii++)
+- {
+- BLURAY_CLIP_INFO * ci = &ti->clips[ii];
+- int64_t duration = ci->out_time - ci->in_time;
+- int hh, mm, ss;
+-
+- hh = duration / (90000 * 60 * 60);
+- mm = (duration / (90000 * 60)) % 60;
+- ss = (duration / 90000) % 60;
+- hb_log("bd:\t\t%s.M2TS -- Duration: %02d:%02d:%02d",
+- ti->clips[ii].clip_id, hh, mm, ss);
+- }
+-}
+-
+ /***********************************************************************
+ * hb_bd_title_scan
+ **********************************************************************/
+@@ -335,10 +317,6 @@
+ hb_log( "bd: ignoring title (too short)" );
+ goto fail;
+ }
+- if (global_verbosity_level >= 2)
+- {
+- show_clip_list(ti);
+- }
+
+ BLURAY_STREAM_INFO * bdvideo = &ti->clips[0].video_streams[0];
+
diff --git a/libre/handbrake/libav-fix_libvpxenc.patch b/libre/handbrake/libav-fix_libvpxenc.patch
deleted file mode 100644
index 01536ab41..000000000
--- a/libre/handbrake/libav-fix_libvpxenc.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- libav-v10.1.orig/libavcodec/libvpxenc.c 2014-05-10 11:03:46.000000000 -0500
-+++ libav-v10.1/libavcodec/libvpxenc.c 2015-12-12 05:20:25.659521508 -0500
-@@ -70,19 +70,11 @@
-
- /** String mappings for enum vp8e_enc_control_id */
- static const char *const ctlidstr[] = {
-- [VP8E_UPD_ENTROPY] = "VP8E_UPD_ENTROPY",
-- [VP8E_UPD_REFERENCE] = "VP8E_UPD_REFERENCE",
-- [VP8E_USE_REFERENCE] = "VP8E_USE_REFERENCE",
-- [VP8E_SET_ROI_MAP] = "VP8E_SET_ROI_MAP",
-- [VP8E_SET_ACTIVEMAP] = "VP8E_SET_ACTIVEMAP",
-- [VP8E_SET_SCALEMODE] = "VP8E_SET_SCALEMODE",
- [VP8E_SET_CPUUSED] = "VP8E_SET_CPUUSED",
- [VP8E_SET_ENABLEAUTOALTREF] = "VP8E_SET_ENABLEAUTOALTREF",
- [VP8E_SET_NOISE_SENSITIVITY] = "VP8E_SET_NOISE_SENSITIVITY",
-- [VP8E_SET_SHARPNESS] = "VP8E_SET_SHARPNESS",
- [VP8E_SET_STATIC_THRESHOLD] = "VP8E_SET_STATIC_THRESHOLD",
- [VP8E_SET_TOKEN_PARTITIONS] = "VP8E_SET_TOKEN_PARTITIONS",
-- [VP8E_GET_LAST_QUANTIZER] = "VP8E_GET_LAST_QUANTIZER",
- [VP8E_SET_ARNR_MAXFRAMES] = "VP8E_SET_ARNR_MAXFRAMES",
- [VP8E_SET_ARNR_STRENGTH] = "VP8E_SET_ARNR_STRENGTH",
- [VP8E_SET_ARNR_TYPE] = "VP8E_SET_ARNR_TYPE",