diff --git a/multimedia/handbrake/Makefile b/multimedia/handbrake/Makefile index 12fae398fed2..6c47659f710e 100644 --- a/multimedia/handbrake/Makefile +++ b/multimedia/handbrake/Makefile @@ -1,135 +1,138 @@ # Created by: Andrew Thompson PORTNAME= handbrake DISTVERSION= 1.4.0 CATEGORIES= multimedia DIST_SUBDIR= ${PORTNAME} MAINTAINER= naito.yuichiro@gmail.com COMMENT= Versatile DVD ripper and video transcoder LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 powerpc64le BUILD_DEPENDS= bash:shells/bash \ nasm:devel/nasm \ cmake:devel/cmake \ meson:devel/meson LIB_DEPENDS= libdbus-1.so:devel/dbus \ libgudev-1.0.so:devel/libgudev \ libharfbuzz.so:print/harfbuzz \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libfribidi.so:converters/fribidi \ libturbojpeg.so:graphics/libjpeg-turbo \ libxml2.so:textproc/libxml2 \ libass.so:multimedia/libass \ libspeex.so:audio/speex \ libogg.so:audio/libogg \ libvorbis.so:audio/libvorbis \ libvorbisenc.so:audio/libvorbis \ libtheoradec.so:multimedia/libtheora \ libtheoraenc.so:multimedia/libtheora \ libx264.so:multimedia/libx264 \ libvpx.so:multimedia/libvpx \ libmp3lame.so:audio/lame \ libopus.so:audio/opus \ libjansson.so:devel/jansson USES= autoreconf:build compiler:c11 gmake iconv libtool:build \ localbase:ldflags ninja:build pkgconfig python:3.6+,build CONTRIB_FILES= fdk-aac-2.0.1.tar.gz \ ffmpeg-4.4.tar.bz2 \ libbluray-1.3.0.tar.bz2 \ libdvdnav-6.1.1.tar.bz2 \ libdvdread-6.1.1.tar.bz2 \ dav1d-0.9.0.tar.bz2 \ x265_3.5.tar.gz \ zimg-3.0.1.tar.gz MASTER_SITES+= https://github.com/HandBrake/HandBrake-contribs/releases/download/contribs/:contrib DISTFILES+= ${CONTRIB_FILES:S/$/:contrib/} .if !defined(PACKAGE_BUILDING) # DVDCSS version hardcoded in contrib/libdvdread/libdvdread-5.0.0-6-gcb1ae87/src/dvd_input.c (dlopen'ed) LIB_DEPENDS+= libdvdcss.so:multimedia/libdvdcss .endif GNU_CONFIGURE= yes MAKE_ENV= V=1 ACLOCAL=${LOCALBASE}/bin/aclocal BINARY_ALIAS= python3=${PYTHON_VERSION} USE_GITHUB= yes GH_ACCOUNT= HandBrake GH_PROJECT= HandBrake CONFIGURE_ARGS= --force --enable-x265 CONFIGURE_TARGET= build BUILD_WRKSRC= ${WRKSRC}/build INSTALL_WRKSRC= ${WRKSRC}/build MAKEFILE= GNUmakefile ALL_TARGET= # INSTALL_TARGET= install-strip NOPRECIOUSMAKEVARS= yes # for ffmpeg and x264 # Enforce linking to bundled libraries instead of system libraries LDFLAGS+= -L${BUILD_WRKSRC}/contrib/lib OPTIONS_DEFINE= FDK_AAC MFX X11 OPTIONS_DEFAULT= MFX X11 OPTIONS_EXCLUDE_powerpc= MFX OPTIONS_EXCLUDE_powerpc64= MFX OPTIONS_EXCLUDE_powerpc64le= MFX OPTIONS_SUB= yes FDK_AAC_DESC= Enable non-free Fraunhofer FDK AAC codec MFX_DESC= Intel MediaSDK (aka Quick Sync Video) X11_DESC= Build GTK+3 based GUI program FDK_AAC_CONFIGURE_ENABLE= fdk-aac FDK_AAC_VARS= LICENSE+=FDK_AAC LICENSE_COMB=multi LICENSE_NAME_FDK_AAC= Software License for The Fraunhofer FDK AAC Codec Library for Android LICENSE_FILE_FDK_AAC= ${WRKDIR}/${DISTFILES:Mfdk*:R:R}/NOTICE LICENSE_PERMS_FDK_AAC= dist-mirror pkg-mirror auto-accept MFX_LIB_DEPENDS= libmfx.so:multimedia/intel-media-sdk \ libva-drm.so:multimedia/libva MFX_CONFIGURE_ON= --enable-qsv X11_CONFIGURE_ENV= COMPILER_PATH=${LOCALBASE}/bin X11_MAKE_ENV= COMPILER_PATH=${LOCALBASE}/bin X11_CONFIGURE_ON= --disable-gtk-update-checks X11_CONFIGURE_OFF= --disable-gtk X11_LIB_DEPENDS= libvpx.so:multimedia/libvpx \ libnotify.so:devel/libnotify X11_USES= gettext desktop-file-utils gnome X11_USE= gstreamer1=gdkpixbuf,libav \ gnome=gtk30,intltool,cairo,gdkpixbuf2 # HandBrake tries to fetch its dependencies during build phase, which is not # considered good in FreeBSD. Instead, we will provide the downloaded files. post-extract: .SILENT ${MKDIR} ${WRKSRC}/download pre-configure: cd ${DISTDIR}/${DIST_SUBDIR} && \ ${INSTALL_DATA} ${CONTRIB_FILES} \ ${WRKSRC}/download # Install version information. ${CP} ${FILESDIR}/version.txt ${WRKSRC} # Following patches reduces warnings with clang. ${CP} ${FILESDIR}/P00-freebsd-libavutil-x86-asm-h.patch ${WRKSRC}/contrib/ffmpeg ${CP} ${FILESDIR}/P01-freebsd-ifo_types.h.patch ${WRKSRC}/contrib/libdvdread +# for powerpc64 +# picked from multimedia/ffmpeg/files/patch-libswscale_ppc_yuv2rgb__altivec.c + ${CP} ${FILESDIR}/P02-freebsd-ppc-libswscale.patch ${WRKSRC}/contrib/ffmpeg post-install-X11-on: ${LN} -sf ghb ${STAGEDIR}${PREFIX}/bin/HandBrake .include diff --git a/multimedia/handbrake/files/P02-freebsd-ppc-libswscale.patch b/multimedia/handbrake/files/P02-freebsd-ppc-libswscale.patch new file mode 100644 index 000000000000..1b6b9966f066 --- /dev/null +++ b/multimedia/handbrake/files/P02-freebsd-ppc-libswscale.patch @@ -0,0 +1,15 @@ +Error: +libswscale/ppc/yuv2rgb_altivec.c:288:36: error: redeclaration of 'vec_xl' must have the 'overloadable' attribute +static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr) + +--- a/libswscale/ppc/yuv2rgb_altivec.c.orig 2021-04-08 21:28:40 UTC ++++ b/libswscale/ppc/yuv2rgb_altivec.c +@@ -284,7 +284,7 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector s + * ------------------------------------------------------------------------------ + */ + +-#if !HAVE_VSX ++#if !HAVE_VSX && !defined(__clang__) + static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr) + { + const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset);