diff options
-rw-r--r-- | libre/handbrake/PKGBUILD | 130 | ||||
-rw-r--r-- | libre/handbrake/handbrake-fix-missing-x265-link-flag.patch | 13 | ||||
-rw-r--r-- | libre/handbrake/handbrake-no-download.patch | 15 | ||||
-rw-r--r-- | libre/handbrake/handbrake-supress-clip_id.patch | 38 | ||||
-rw-r--r-- | libre/handbrake/libav-fix_libvpxenc.patch | 22 |
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", |