Index: head/multimedia/kodi/Makefile =================================================================== --- head/multimedia/kodi/Makefile (revision 451724) +++ head/multimedia/kodi/Makefile (revision 451725) @@ -1,217 +1,220 @@ # $FreeBSD$ PORTNAME= kodi DISTVERSION= 17.3 PORTREVISION= 2 CATEGORIES= multimedia java MAINTAINER= mickael.maillot@gmail.com COMMENT= Award winning media center application LICENSE= GPLv2 BUILD_DEPENDS= enca:converters/enca \ gawk:lang/gawk \ gperf:devel/gperf \ cmake:devel/cmake \ zip:archivers/zip \ nasm:devel/nasm \ swig3.0:devel/swig30 LIB_DEPENDS= libass.so:multimedia/libass \ libFLAC.so:audio/flac \ libcdio.so:sysutils/libcdio \ libcrossguid.so:devel/libcrossguid \ libcurl.so:ftp/curl \ libdbus-1.so:devel/dbus \ libdcadec.so:multimedia/libdcadec \ libenca.so:converters/enca \ libexpat.so:textproc/expat2\ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libfribidi.so:converters/fribidi \ libgcrypt.so:security/libgcrypt \ libgmp.so:math/gmp \ libgpg-error.so:security/libgpg-error \ libgnutls.so:security/gnutls \ libidn.so:dns/libidn \ libinotify.so:devel/libinotify \ libjasper.so:graphics/jasper \ libltdl.so:devel/libltdl \ liblzo2.so:archivers/lzo2 \ libmodplug.so:audio/libmodplug \ libmpeg2.so:multimedia/libmpeg2 \ libnettle.so:security/nettle \ libogg.so:audio/libogg \ libp11-kit.so:security/p11-kit \ libpcre.so:devel/pcre \ libpng.so:graphics/png \ libsamplerate.so:audio/libsamplerate \ libsqlite3.so:databases/sqlite3 \ libtag.so:audio/taglib \ libtasn1.so:security/libtasn1 \ libtiff.so:graphics/tiff \ libtinyxml.so:textproc/tinyxml \ libtspi.so:security/trousers \ libunistring.so:devel/libunistring \ libuuid.so:misc/e2fsprogs-libuuid \ libvorbis.so:audio/libvorbis \ libxslt.so:textproc/libxslt \ libyajl.so:devel/yajl RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3 -ONLY_FOR_ARCHS= amd64 armv6 i386 +ONLY_FOR_ARCHS= amd64 armv6 armv7 i386 KODI_ARCH_i386= x86 KODI_ARCH_amd64=x86_64 KODI_ARCH_armv6=armv6 +KODI_ARCH_armv7=armv7 USES= autoreconf:build compiler:c++11-lib gettext gmake iconv jpeg \ libtool pkgconfig python:-2.7 ssl GNU_CONFIGURE= yes USE_JAVA= yes USE_GNOME= libxml2 USE_LDCONFIG= yes JAVA_BUILD= jre NOPRECIOUSMAKEVARS= yes CONFIGURE_ENV= OPENSSL_LIBS="-L${OPENSSLLIB}" \ OPENSSL_CFLAGS="-I${OPENSSLINC}" KODI_CODENAME= Krypton FFMPEG_VERS= 3.1.6 LIBDVDCSS_TAGNAME= 2f12236 LIBDVDNAV_TAGNAME= 981488f LIBDVDREAD_TAGNAME= 17d99db USE_GITHUB= yes GH_TUPLE= xbmc:xbmc:${PORTVERSION}-${KODI_CODENAME} \ xbmc:FFmpeg:${FFMPEG_VERS}-${KODI_CODENAME}:ffmpeg/tools/depends/target/ffmpeg \ xbmc:libdvdcss:${LIBDVDCSS_TAGNAME}:libdvdcss/tools/depends/target/libdvdcss/native \ xbmc:libdvdnav:${LIBDVDNAV_TAGNAME}:libdvdnav/tools/depends/target/libdvdnav/native \ xbmc:libdvdread:${LIBDVDREAD_TAGNAME}:libdvdread/tools/depends/target/libdvdread/native PLIST_SUB= ARCH=${KODI_ARCH_${ARCH}} OPTIONS_SUB= yes OPTIONS_DEFINE= AIRPLAY AIRTUNES AVAHI CEC DOCS \ LIBBLURAY LIRC MYSQL NFS NONFREE PULSEAUDIO RTMP \ SFTP SMB VAAPI VDPAU WEBSERVER OPTIONS_SINGLE= RPI OPTIONS_SINGLE_RPI= RPI1 RPI2 OPTIONS_EXCLUDE_armv6= LIRC VAAPI VDPAU +OPTIONS_EXCLUDE_armv7= LIRC VAAPI VDPAU OPTIONS_EXCLUDE_amd64= RPI1 RPI2 OPTIONS_EXCLUDE_i386= RPI1 RPI2 AIRPLAY_DESC= AirPlay support via libplist AIRTUNES_DESC= AirTunes support via libshairplay CEC_DESC= CEC adapter support NONFREE_DESC= Enable non-free components (rar, ccx, ffmpeg) SFTP_DESC= SSH SFTP support via libssh RPI1_DESC= build for RPI1-B (cpu=arm1176jzf-s) RPI2_DESC= build for RPI2 (cpu=cortex-a7, neon enabled) OPTIONS_DEFAULT= AIRPLAY AIRTUNES AVAHI CEC LIBBLURAY LIRC \ MYSQL NFS RTMP SFTP SMB VAAPI VDPAU WEBSERVER OPTIONS_DEFAULT_armv6= RPI1 +OPTIONS_DEFAULT_armv7= RPI1 AIRPLAY_LIB_DEPENDS= libplist.so:devel/libplist AIRPLAY_CONFIGURE_ENABLE= airplay AIRTUNES_LIB_DEPENDS= libshairplay.so:audio/shairplay AIRTUNES_CONFIGURE_ENABLE= airtunes AVAHI_LIB_DEPENDS= libavahi-client.so:net/avahi-app AVAHI_CONFIGURE_ENABLE= avahi CEC_BUILD_DEPENDS= libcec>=3.1.0:multimedia/libcec CEC_LIB_DEPENDS= libcec.so:multimedia/libcec CEC_CONFIGURE_ENABLE= libcec LIBBLURAY_LIB_DEPENDS= libbluray.so:multimedia/libbluray LIBBLURAY_CONFIGURE_ENABLE= libbluray LIRC_RUN_DEPENDS= lircd:comms/lirc MYSQL_USES= mysql MYSQL_CONFIGURE_ENABLE= mysql NFS_LIB_DEPENDS= libnfs.so:net/libnfs NFS_CONFIGURE_ENABLE= nfs NONFREE_CONFIGURE_ENABLE= non-free NONFREE_VARS= NO_CDROM="Restricted binary distribution" \ NO_PACKAGE="Restricted binary distribution" PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio PULSEAUDIO_CONFIGURE_ENABLE= pulse RPI1_CONFIGURE_ON= --with-platform=raspberry-pi RPI2_CONFIGURE_ON= --with-platform=raspberry-pi2 RTMP_LIB_DEPENDS= librtmp.so:multimedia/librtmp RTMP_CONFIGURE_ENABLE= rtmp SMB_USES= samba:lib SMB_CONFIGURE_ENABLE= samba VAAPI_LIB_DEPENDS= libva.so:multimedia/libva VAAPI_CONFIGURE_ENABLE= vaapi VDPAU_LIB_DEPENDS= libvdpau.so:multimedia/libvdpau VDPAU_CONFIGURE_ENABLE= vdpau WEBSERVER_LIB_DEPENDS= libmicrohttpd.so:www/libmicrohttpd WEBSERVER_CONFIGURE_ENABLE= webserver SFTP_BUILD_DEPENDS= ${LOCALBASE}/lib/libssh.so:security/libssh SFTP_RUN_DEPENDS= ${LOCALBASE}/lib/libssh.so:security/libssh SFTP_CONFIGURE_ENABLE= ssh CONFIGURE_ARGS+= --disable-debug --disable-alsa --disable-texturepacker .include -.if ${ARCH} != "armv6" +.if ${ARCH} != armv6 && ${ARCH} != armv7 BUILD_DEPENDS+= gtk-update-icon-cache:x11-toolkits/gtk20 LIB_DEPENDS+= libdrm.so:graphics/libdrm RUN_DEPENDS+= glxinfo:graphics/mesa-demos \ xdpyinfo:x11/xdpyinfo USE_XORG= x11 xcb xext xmu xrandr xt xtst USE_GL= egl gl glu glew USE_SDL= image sdl2 INSTALLS_ICONS= yes PLIST_SUB+= ARM="@comment " PLIST_SUB+= X86="" .else -# armv6 (rpi1 and rpi2 only) +# armv6 || armv7 (rpi1 and rpi2 only) EXTRA_PATCHES= ${FILESDIR}/extra-armv6_hal CONFIGURE_ARGS+= --enable-player=omxplayer LIB_DEPENDS+= libEGL.so:misc/raspberrypi-userland \ libhal.so:sysutils/hal \ libtiff.so:graphics/tiff PLIST_SUB+= ARM="" PLIST_SUB+= X86="@comment " SUB_FILES= pkg-message .endif post-patch: ${REINPLACE_CMD} 's;make;gmake;' \ ${WRKSRC}/bootstrap \ ${WRKSRC}/codegenerator.mk \ ${WRKSRC}/xbmc/Makefile.in ${REINPLACE_CMD} 's;which swig;&3.0;' ${WRKSRC}/codegenerator.mk ${RM} ${WRKSRC}/system/settings/rbp2.xml.orig pre-configure: cd ${WRKSRC} && ${SH} ./bootstrap post-install: ${INSTALL_MAN} ${WRKSRC}/docs/manpages/kodi.bin.1 ${STAGEDIR}${MAN1PREFIX}/man/man1 (cd ${STAGEDIR}${MAN1PREFIX}/man/man1 && ${LN} -sf kodi.bin.1.gz kodi.1.gz) ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi.bin ${FIND} ${STAGEDIR}${PREFIX}/lib/kodi -name '*.so' -or -name '*.xbs' -or -name '*.vis' \ | ${XARGS} ${STRIP_CMD} -.if ${ARCH} != armv6 +.if ${ARCH} != armv6 && ${ARCH} != armv7 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/kodi/kodi-xrandr .endif .include Index: head/multimedia/kodi/files/patch-configure.ac =================================================================== --- head/multimedia/kodi/files/patch-configure.ac (revision 451724) +++ head/multimedia/kodi/files/patch-configure.ac (revision 451725) @@ -1,169 +1,181 @@ ---- configure.ac.orig 2016-10-08 UTC -+++ configure.ac -@@ -564,12 +564,25 @@ case $host in +--- configure.ac.orig 2017-05-24 20:49:32.000000000 +0000 ++++ configure.ac 2017-08-28 14:09:04.029056190 +0000 +@@ -564,12 +564,36 @@ CORE_SYSTEM_NAME=linux ARCH="x86-freebsd" MAKE="gmake" + USE_STATIC_FFMPEG=1 ;; amd64-*-freebsd*) target_platform=target_linux CORE_SYSTEM_NAME=linux ARCH="x86_64-freebsd" MAKE="gmake" + USE_STATIC_FFMPEG=1 + ;; + armv6-*-freebsd*) + target_platform=target_linux + ARCH="armv6-freebsd" + MAKE="gmake" + USE_STATIC_FFMPEG=1 + use_arch="arm" + use_neon=no + use_gles=yes + use_gl=no + use_x11=no ++ ;; ++ armv7-*-freebsd*) ++ target_platform=target_linux ++ ARCH="armv7-freebsd" ++ MAKE="gmake" ++ USE_STATIC_FFMPEG=1 ++ use_arch="arm" ++ use_neon=no ++ use_gles=yes ++ use_gl=no ++ use_x11=no ;; arm-apple-darwin*) CORE_SYSTEM_NAME=ios -@@ -684,7 +697,7 @@ if test "$target_platform" = "target_ras +@@ -688,7 +712,7 @@ use_hardcoded_tables="yes" use_openmax=no CORE_SYSTEM_NAME=rbpi - ARCH="arm" + ARCH="armv6-freebsd" AC_DEFINE(HAS_EGLGLES, [1], [Define if supporting EGL based GLES Framebuffer]) USE_OMXLIB=1; AC_DEFINE([HAVE_OMXLIB],[1],["Define to 1 if OMX libs is enabled"]) USE_MMAL=1; AC_DEFINE([HAS_MMAL],[1],["Define to 1 if MMAL libs is enabled"]) -@@ -753,10 +766,16 @@ fi +@@ -759,10 +783,16 @@ # platform specific flags if echo "$ARCH" | grep -q "freebsd" ; then LOCALBASE="${LOCALBASE:-/usr/local}" - CFLAGS="$CFLAGS -I$LOCALBASE/include" - CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include" - CPPFLAGS="$CPPFLAGS -I$LOCALBASE/include" + CFLAGS="$CFLAGS -idirafter$LOCALBASE/include" + CXXFLAGS="$CXXFLAGS -idirafter$LOCALBASE/include" + CPPFLAGS="$CPPFLAGS -idirafter$LOCALBASE/include" LDFLAGS="$LDFLAGS -L$LOCALBASE/lib" + CC_FOR_BUILD="$CC" + CXX_FOR_BUILD="$CXX" + CFLAGS_FOR_BUILD="$CFLAGS" + CXXFLAGS_FOR_BUILD="$CXXFLAGS" + LDFLAGS_FOR_BUILD="$LDFLAGS" + FFMPEG_OPTS="--cc=$CC --cxx=$CXX" fi if test "$host_vendor" = "apple" ; then # standard application paths -@@ -796,8 +815,16 @@ if test "$host_vendor" = "apple" ; then +@@ -802,8 +832,17 @@ LIBS="$LIBS -framework CoreFoundation" fi elif test "$target_platform" = "target_raspberry_pi"; then - ARCH="arm" + CXXFLAGS="$CXXFLAGS -I$LOCALBASE/include/interface/vcos/pthreads/ -I$LOCALBASE/include/interface/vcos -I$LOCALBASE/include/interface/ -I$LOCALBASE/include/interface/vmcs_host/linux" + ARCH="armv6-freebsd" use_arch="arm" + FFMPEG_OPTS="--cc=$CC --cxx=$CXX --disable-fast-unaligned --disable-vfp --disable-xlib --disable-libxcb --disable-libxcb-shm --disable-libxcb-xfixes --disable-libxcb-shape" + if test "$use_platform" = "raspberry-pi2"; then + CFLAGS="$CFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon" + CXXFLAGS="$CXXFLAGS -march=armv7a -mtune=cortex-a7 -mfpu=neon" ++ ARCH="armv7-freebsd" + FFMPEG_OPTS="${FFMPEG_OPTS} --enable-neon" + fi + elif test "$use_arch" = "arm"; then CFLAGS="$CFLAGS -mno-apcs-stack-check" CXXFLAGS="$CXXFLAGS -mno-apcs-stack-check" -@@ -915,6 +942,7 @@ AC_LANG_POP([C++]) +@@ -921,6 +960,7 @@ # Check inotify availability AC_CHECK_HEADER([sys/inotify.h], AC_DEFINE([HAVE_INOTIFY],[1],[Define if we have inotify]),) +AC_CHECK_LIB([inotify], [main],,) # Python if test -z "$PYTHON_NOVERSIONCHECK"; then -@@ -1163,12 +1191,13 @@ AS_CASE([x$use_libbluray], +@@ -1169,12 +1209,13 @@ ) #Check to see if libs are needed for functions that are often built-in to libc -AC_SEARCH_LIBS([iconv_open],iconv,,AC_SEARCH_LIBS([libiconv_open],iconv,,AC_MSG_ERROR($missing_library))) +AC_CHECK_LIB([iconv],[libiconv_open],,AC_MSG_ERROR($missing_library)) AC_SEARCH_LIBS([dlopen],dl) AC_SEARCH_LIBS([clock_gettime],rt) AC_SEARCH_LIBS([dn_expand], resolv) AC_SEARCH_LIBS([_dn_expand], resolv) AC_SEARCH_LIBS([__dn_expand],resolv) +AC_SEARCH_LIBS([__atomic_load_8], [atomic]) # platform dependent libraries if test "$host_vendor" = "apple" ; then -@@ -1552,7 +1581,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th +@@ -1558,7 +1599,7 @@ if test "$cross_compiling" != "yes"; then if test "$use_debug" != "yes"; then - FFMPEG_OPTS="-r" + FFMPEG_OPTS="${FFMPEG_OPTS} -r" fi if test "$use_optimizations" != "yes"; then FFMPEG_OPTS="${FFMPEG_OPTS} --disable-optimizations" -@@ -1563,7 +1592,7 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th +@@ -1569,7 +1610,7 @@ SAVE_LIBS="$LIBS" # check for system installed ffmpeg. We require minimum versions. PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES], - [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"], + [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"], [FFMPEG_FOUND="false"]) if test "${USE_STATIC_FFMPEG}" = "1" && test "$FFMPEG_FOUND" = "true"; then -@@ -1590,7 +1619,11 @@ if test "${USE_STATIC_FFMPEG}" = "1"; th +@@ -1596,7 +1637,11 @@ elif test "$with_ffmpeg" = "force"; then # always build our ffmpeg AC_MSG_NOTICE("FFmpeg installation forced by user - installing our version") - CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} + if test "$use_arch" = "arm"; then + ASFLAGS="-no-integrated-as" CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1 + else + CC="$CC" CPP="$CPP" CXX="$CXX" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" ${ffmpeg_build}/autobuild.sh ${FFMPEG_OPTS} || exit 1 + fi export PKG_CONFIG_PATH="${ffmpeg_build}/ffmpeg-install/lib/pkgconfig:$PKG_CONFIG_PATH" elif test "$with_ffmpeg" != "no"; then -@@ -1603,7 +1636,7 @@ fi +@@ -1609,7 +1654,7 @@ if test "$FFMPEG_FOUND" != "true"; then PKG_CHECK_MODULES([FFMPEG], [$FFMPEG_LIBNAMES], - [INCLUDES="$INCLUDES $FFMPEG_CFLAGS"; LIBS="$LIBS $FFMPEG_LIBS"; FFMPEG_FOUND="true"], + [INCLUDES="$FFMPEG_CFLAGS $INCLUDES"; LIBS="$FFMPEG_LIBS $LIBS"; FFMPEG_FOUND="true"], [AC_MSG_ERROR("ffmpeg not found")]) fi -@@ -1627,9 +1660,9 @@ fi +@@ -1633,9 +1678,9 @@ echo "Checking for SWIG installation" AC_PATH_PROG(SWIG_EXE, swig, "none") if test "$SWIG_EXE" = "none"; then - AC_PATH_PROG(SWIG20_EXE, swig2.0, "none") - if test "$SWIG20_EXE" != "none" ; then - SWIG_EXE=$SWIG20_EXE + AC_PATH_PROG(SWIG30_EXE, swig3.0, "none") + if test "$SWIG30_EXE" != "none" ; then + SWIG_EXE=$SWIG30_EXE fi fi if test "$SWIG_EXE" = "none"; then -@@ -1922,7 +1955,7 @@ if test "x$use_texturepacker" != "xno"; +@@ -1928,7 +1973,7 @@ AC_PATH_PROG([TEXTUREPACKER], [TexturePacker], ["none"], [$PATH$PATH_SEPARATOR${abs_top_srcdir}/tools/depends/native/TexturePacker/bin]) if test "$TEXTUREPACKER" = "none"; then - make -C ${abs_top_srcdir}/tools/depends/native/TexturePacker + $MAKE -C ${abs_top_srcdir}/tools/depends/native/TexturePacker TEXTUREPACKER="${abs_top_srcdir}/tools/depends/native/TexturePacker/bin/TexturePacker" fi if test -x "$TEXTUREPACKER"; then -@@ -2142,6 +2175,8 @@ if test "$host_vendor" = "apple" ; then +@@ -2148,6 +2193,8 @@ LIBS="$LIBS -L\$(abs_top_srcdir)/lib/ffmpeg/libswscale -lswscale" fi +LIBS=$(echo "$LIBS" | tr "\n" " ") + OUTPUT_FILES="Makefile \ Makefile.include \ addons/skin.estuary/media/Makefile \ Index: head/multimedia/kodi/files/patch-m4_xbmc__arch.m4 =================================================================== --- head/multimedia/kodi/files/patch-m4_xbmc__arch.m4 (revision 451724) +++ head/multimedia/kodi/files/patch-m4_xbmc__arch.m4 (revision 451725) @@ -1,30 +1,30 @@ --- m4/xbmc_arch.m4.orig 2016-10-08 UTC +++ m4/xbmc_arch.m4 @@ -14,6 +14,9 @@ case $build in amd64-*-freebsd*) AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX") ;; -+ armv6-*-freebsd*) ++ armv*-*-freebsd*) + AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX") + ;; *86*-apple-darwin*) AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX") ;; @@ -45,6 +48,9 @@ case $host in amd64-*-freebsd*) AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX") ;; -+ armv6-*-freebsd*) ++ armv*-*-freebsd*) + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX") + ;; arm-apple-darwin*) AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_IOS -D_LINUX") ;; @@ -78,6 +84,6 @@ if test "$target_platform" = "target_and fi if test "$target_platform" = "target_raspberry_pi" ; then - AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") + AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX -D_ARMEL -DTARGET_RASPBERRY_PI") fi ])