From 18c87849dc5d7026e7c8fe02e8a7a44500fb63e5 Mon Sep 17 00:00:00 2001 From: Ian Leonard Date: Tue, 4 Dec 2018 06:27:54 +0000 Subject: [PATCH 1/3] generic: switch from yasm to nasm; update libass to 0.14.0 to support Signed-off-by: Ian Leonard --- .../ffmpegx-depends/libvpx/package.mk | 4 +-- packages/lang/yasm/package.mk | 25 ------------------- packages/multimedia/SDL2/package.mk | 2 +- packages/multimedia/ffmpeg/package.mk | 4 +-- packages/multimedia/libass/package.mk | 7 +++--- packages/virtual/toolchain/package.mk | 2 +- 6 files changed, 10 insertions(+), 34 deletions(-) delete mode 100644 packages/lang/yasm/package.mk diff --git a/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk b/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk index 215a52c3a5..33a5bcaef9 100644 --- a/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk +++ b/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="1fec931eb5c94279ad219a5b6e0202358e94a93a90cfb1603578c326abfc1238" PKG_LICENSE="BSD" PKG_SITE="https://www.webmproject.org" PKG_URL="https://github.com/webmproject/libvpx/archive/v${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain yasm:host" +PKG_DEPENDS_TARGET="toolchain nasm:host" PKG_LONGDESC="WebM VP8/VP9 Codec" configure_target() { @@ -26,7 +26,7 @@ configure_target() { $PKG_CONFIGURE_SCRIPT --prefix=/usr \ --extra-cflags="$CFLAGS" \ - --as=yasm \ + --as=nasm \ --target=$PKG_TARGET_NAME_LIBVPX \ --disable-docs \ --disable-examples \ diff --git a/packages/lang/yasm/package.mk b/packages/lang/yasm/package.mk deleted file mode 100644 index 955c883924..0000000000 --- a/packages/lang/yasm/package.mk +++ /dev/null @@ -1,25 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-or-later -# Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) - -PKG_NAME="yasm" -PKG_VERSION="1.3.0" -PKG_SHA256="3dce6601b495f5b3d45b59f7d2492a340ee7e84b5beca17e48f862502bd5603f" -PKG_LICENSE="BSD" -PKG_SITE="http://www.tortall.net/projects/yasm/" -PKG_URL="http://www.tortall.net/projects/yasm/releases/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_HOST="ccache:host" -PKG_LONGDESC="A complete rewrite of the NASM assembler under the new BSD License." -PKG_TOOLCHAIN="configure" - -PKG_CONFIGURE_OPTS_HOST="--disable-debug \ - --disable-warnerror \ - --disable-profiling \ - --disable-gcov \ - --disable-python \ - --disable-python-bindings \ - --enable-nls \ - --disable-rpath \ - --without-dmalloc \ - --with-gnu-ld \ - --without-libiconv-prefix \ - --without-libintl-prefix" diff --git a/packages/multimedia/SDL2/package.mk b/packages/multimedia/SDL2/package.mk index cd070197f6..894d5f4618 100644 --- a/packages/multimedia/SDL2/package.mk +++ b/packages/multimedia/SDL2/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="edc77c57308661d576e843344d8638e025a7818bff73f8fbfab09c3c5fd092ec" PKG_LICENSE="GPL" PKG_SITE="https://www.libsdl.org/" PKG_URL="https://www.libsdl.org/release/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain yasm:host alsa-lib systemd dbus" +PKG_DEPENDS_TARGET="toolchain nasm:host alsa-lib systemd dbus" PKG_LONGDESC="A cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. " PKG_BUILD_FLAGS="+pic" diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 2f2a31676a..7baea61a87 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -9,7 +9,7 @@ PKG_SHA256="f25559d4b803321483b28ac9b513671200bdc8e3531c02f0affdd622846a9c5e" PKG_LICENSE="LGPLv2.1+" PKG_SITE="https://ffmpeg.org" PKG_URL="https://github.com/xbmc/FFmpeg/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain yasm:host zlib bzip2 openssl speex" +PKG_DEPENDS_TARGET="toolchain nasm:host zlib bzip2 openssl speex" PKG_LONGDESC="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video." PKG_BUILD_FLAGS="-gold" @@ -61,7 +61,7 @@ else fi if [ "$TARGET_ARCH" = "x86_64" ]; then - PKG_FFMPEG_X86ASM="--enable-x86asm --x86asmexe=yasm" + PKG_FFMPEG_X86ASM="--enable-x86asm --x86asmexe=nasm" else PKG_FFMPEG_X86ASM="--disable-x86asm" fi diff --git a/packages/multimedia/libass/package.mk b/packages/multimedia/libass/package.mk index 92d6396292..249912e8fb 100644 --- a/packages/multimedia/libass/package.mk +++ b/packages/multimedia/libass/package.mk @@ -1,9 +1,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="libass" -PKG_VERSION="0.13.7" -PKG_SHA256="7065e5f5fb76e46f2042a62e7c68d81e5482dbeeda24644db1bd066e44da7e9d" +PKG_VERSION="0.14.0" +PKG_SHA256="881f2382af48aead75b7a0e02e65d88c5ebd369fe46bc77d9270a94aa8fd38a2" PKG_LICENSE="BSD" PKG_SITE="https://github.com/libass/libass" PKG_URL="https://github.com/libass/libass/releases/download/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.xz" @@ -17,6 +18,6 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-test \ --with-gnu-ld" if [ $TARGET_ARCH = "x86_64" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET yasm:host" + PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nasm:host" PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-asm" fi diff --git a/packages/virtual/toolchain/package.mk b/packages/virtual/toolchain/package.mk index 08fb1fa7a1..87d29ac302 100644 --- a/packages/virtual/toolchain/package.mk +++ b/packages/virtual/toolchain/package.mk @@ -6,6 +6,6 @@ PKG_VERSION="" PKG_LICENSE="GPL" PKG_SITE="https://libreelec.tv" PKG_URL="" -PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host intltool:host libtool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host yasm:host p7zip:host ninja:host meson:host" +PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host intltool:host libtool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host nasm:host p7zip:host ninja:host meson:host" PKG_SECTION="virtual" PKG_LONGDESC="LibreELEC.tv' toolchain to compile all packages" From a3c001541e35981d2c1727e0cf58257641164cb8 Mon Sep 17 00:00:00 2001 From: Ian Leonard Date: Tue, 4 Dec 2018 20:09:00 +0000 Subject: [PATCH 2/3] build: use nasm with x86_64 only Signed-off-by: Ian Leonard --- .../addon-depends/ffmpegx-depends/libvpx/package.mk | 3 ++- packages/addons/addon-depends/ffmpegx/package.mk | 4 ++++ packages/lang/nasm/package.mk | 1 + packages/multimedia/SDL2/package.mk | 13 +++++++++++-- packages/multimedia/ffmpeg/package.mk | 7 ++----- packages/multimedia/libass/package.mk | 4 ++-- packages/virtual/toolchain/package.mk | 2 +- 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk b/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk index 33a5bcaef9..00cfe65f38 100644 --- a/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk +++ b/packages/addons/addon-depends/ffmpegx-depends/libvpx/package.mk @@ -7,7 +7,7 @@ PKG_SHA256="1fec931eb5c94279ad219a5b6e0202358e94a93a90cfb1603578c326abfc1238" PKG_LICENSE="BSD" PKG_SITE="https://www.webmproject.org" PKG_URL="https://github.com/webmproject/libvpx/archive/v${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain nasm:host" +PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="WebM VP8/VP9 Codec" configure_target() { @@ -20,6 +20,7 @@ configure_target() { PKG_TARGET_NAME_LIBVPX="armv7-linux-gcc" ;; x86_64) + PKG_DEPENDS_TARGET+=" nasm:host" PKG_TARGET_NAME_LIBVPX="x86_64-linux-gcc" ;; esac diff --git a/packages/addons/addon-depends/ffmpegx/package.mk b/packages/addons/addon-depends/ffmpegx/package.mk index 95dd8f6f4e..6471c227a2 100644 --- a/packages/addons/addon-depends/ffmpegx/package.mk +++ b/packages/addons/addon-depends/ffmpegx/package.mk @@ -18,6 +18,10 @@ if [ "$KODIPLAYER_DRIVER" == "bcm2835-driver" ]; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET bcm2835-driver" fi +if [ "$TARGET_ARCH" = "x86_64" ]; then + PKG_DEPENDS_TARGET+=" nasm:host" +fi + if [[ ! $TARGET_ARCH = arm ]] || target_has_feature neon; then PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libvpx" fi diff --git a/packages/lang/nasm/package.mk b/packages/lang/nasm/package.mk index 1ea833bdee..a081a3647f 100644 --- a/packages/lang/nasm/package.mk +++ b/packages/lang/nasm/package.mk @@ -5,6 +5,7 @@ PKG_NAME="nasm" PKG_VERSION="2.14" PKG_SHA256="97c615dbf02ef80e4e2b6c385f7e28368d51efc214daa98e600ca4572500eec0" +PKG_ARCH="x86_64" PKG_LICENSE="BSD" PKG_SITE="https://www.nasm.us/" PKG_URL="http://www.nasm.us/pub/nasm/releasebuilds/${PKG_VERSION}/nasm-${PKG_VERSION}.tar.xz" diff --git a/packages/multimedia/SDL2/package.mk b/packages/multimedia/SDL2/package.mk index 894d5f4618..330996dc7d 100644 --- a/packages/multimedia/SDL2/package.mk +++ b/packages/multimedia/SDL2/package.mk @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2009-2016 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv) PKG_NAME="SDL2" PKG_VERSION="2.0.8" @@ -7,15 +8,23 @@ PKG_SHA256="edc77c57308661d576e843344d8638e025a7818bff73f8fbfab09c3c5fd092ec" PKG_LICENSE="GPL" PKG_SITE="https://www.libsdl.org/" PKG_URL="https://www.libsdl.org/release/$PKG_NAME-$PKG_VERSION.tar.gz" -PKG_DEPENDS_TARGET="toolchain nasm:host alsa-lib systemd dbus" +PKG_DEPENDS_TARGET="toolchain alsa-lib systemd dbus" PKG_LONGDESC="A cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. " PKG_BUILD_FLAGS="+pic" +if [ "$TARGET_ARCH" = "x86_64" ]; then + PKG_DEPENDS_TARGET+=" nasm:host" + PKG_SDL2_X86ASM="-DASSEMBLY=ON" +else + # Only x86(-64) and ppc assembly present as of 2.0.8 + PKG_SDL2_X86ASM="-DASSEMBLY=OFF" +fi + PKG_CMAKE_OPTS_TARGET="-DSDL_STATIC=ON \ -DSDL_SHARED=OFF \ -DLIBC=ON \ -DGCC_ATOMICS=ON \ - -DASSEMBLY=ON \ + $PKG_SDL2_X86ASM \ -DALTIVEC=OFF \ -DOSS=OFF \ -DALSA=ON \ diff --git a/packages/multimedia/ffmpeg/package.mk b/packages/multimedia/ffmpeg/package.mk index 7baea61a87..246b3966f4 100644 --- a/packages/multimedia/ffmpeg/package.mk +++ b/packages/multimedia/ffmpeg/package.mk @@ -9,7 +9,7 @@ PKG_SHA256="f25559d4b803321483b28ac9b513671200bdc8e3531c02f0affdd622846a9c5e" PKG_LICENSE="LGPLv2.1+" PKG_SITE="https://ffmpeg.org" PKG_URL="https://github.com/xbmc/FFmpeg/archive/${PKG_VERSION}.tar.gz" -PKG_DEPENDS_TARGET="toolchain nasm:host zlib bzip2 openssl speex" +PKG_DEPENDS_TARGET="toolchain zlib bzip2 openssl speex" PKG_LONGDESC="FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video." PKG_BUILD_FLAGS="-gold" @@ -61,9 +61,7 @@ else fi if [ "$TARGET_ARCH" = "x86_64" ]; then - PKG_FFMPEG_X86ASM="--enable-x86asm --x86asmexe=nasm" -else - PKG_FFMPEG_X86ASM="--disable-x86asm" + PKG_DEPENDS_TARGET+=" nasm:host" fi if target_has_feature "(neon|sse)"; then @@ -189,7 +187,6 @@ configure_target() { --enable-asm \ --disable-altivec \ $PKG_FFMPEG_FPU \ - $PKG_FFMPEG_X86ASM \ --disable-symver } diff --git a/packages/multimedia/libass/package.mk b/packages/multimedia/libass/package.mk index 249912e8fb..b85b831913 100644 --- a/packages/multimedia/libass/package.mk +++ b/packages/multimedia/libass/package.mk @@ -18,6 +18,6 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-test \ --with-gnu-ld" if [ $TARGET_ARCH = "x86_64" ]; then - PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET nasm:host" - PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --enable-asm" + PKG_DEPENDS_TARGET+=" nasm:host" + PKG_CONFIGURE_OPTS_TARGET+=" --enable-asm" fi diff --git a/packages/virtual/toolchain/package.mk b/packages/virtual/toolchain/package.mk index 87d29ac302..537758c8cc 100644 --- a/packages/virtual/toolchain/package.mk +++ b/packages/virtual/toolchain/package.mk @@ -6,6 +6,6 @@ PKG_VERSION="" PKG_LICENSE="GPL" PKG_SITE="https://libreelec.tv" PKG_URL="" -PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host intltool:host libtool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host nasm:host p7zip:host ninja:host meson:host" +PKG_DEPENDS_TARGET="configtools:host make:host xz:host sed:host pkg-config:host autoconf:host automake:host intltool:host libtool:host autoconf-archive:host gcc:host bison:host flex:host cmake:host xmlstarlet:host p7zip:host ninja:host meson:host" PKG_SECTION="virtual" PKG_LONGDESC="LibreELEC.tv' toolchain to compile all packages" From 625709c0d2147a761d4940bd5b3832d3043d8a55 Mon Sep 17 00:00:00 2001 From: CvH Date: Wed, 5 Dec 2018 11:46:45 +0100 Subject: [PATCH 3/3] x264: add nasm dep --- .../ffmpegx-depends/x264/package.mk | 34 +++++++++++++------ 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk b/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk index d700f358e4..7b1f663d92 100644 --- a/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk +++ b/packages/addons/addon-depends/ffmpegx-depends/x264/package.mk @@ -2,30 +2,42 @@ # Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv) PKG_NAME="x264" -PKG_VERSION="20181120" -PKG_SHA256="03ea83026c999d30bc8724eb7c230303ff94897abf759b6fc6829d303b74bcc3" +PKG_VERSION="545de2ffec6ae9a80738de1b2c8cf820249a2530" +PKG_SHA256="74725cf7036b2c96387c2c014ef00d181942d00230f21e16277f11d2d9683adc" PKG_LICENSE="GPL" PKG_SITE="http://www.videolan.org/developers/x264.html" -PKG_URL="https://download.videolan.org/x264/snapshots/$PKG_NAME-snapshot-$PKG_VERSION-2245.tar.bz2" +PKG_URL="http://repo.or.cz/x264.git/snapshot/$PKG_VERSION.tar.gz" PKG_DEPENDS_TARGET="toolchain" PKG_LONGDESC="x264 codec" +if [ "$TARGET_ARCH" = "x86_64" ]; then + PKG_DEPENDS_TARGET+=" nasm:host" +fi + pre_configure_target() { cd $PKG_BUILD rm -rf .$TARGET_NAME + + if [ "$TARGET_ARCH" = "x86_64" ]; then + export AS="$TOOLCHAIN/bin/nasm" + PKG_X264_ASM="--enable-asm" + else + PKG_X264_ASM="--disable-asm" + fi } configure_target() { ./configure \ - --prefix="/usr" \ + --cross-prefix="$TARGET_PREFIX" \ --extra-cflags="$CFLAGS" \ --extra-ldflags="$LDFLAGS" \ - --disable-cli \ - --enable-static \ - --enable-strip \ - --disable-asm \ - --enable-pic \ --host="$TARGET_NAME" \ - --cross-prefix="$TARGET_PREFIX" \ - --sysroot="$SYSROOT_PREFIX" + --prefix="/usr" \ + --sysroot="$SYSROOT_PREFIX" \ + $PKG_X264_ASM \ + --disable-cli \ + --enable-lto \ + --enable-pic \ + --enable-static \ + --enable-strip }