From 45a259ecb1cd41f2ccf2038a17df4616ce8afa29 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 1/8] libmediainfo: add package --- .../depends/libmediainfo/package.mk | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/depends/libmediainfo/package.mk diff --git a/packages/addons/addon-depends/multimedia-tools-depends/depends/libmediainfo/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/depends/libmediainfo/package.mk new file mode 100644 index 0000000000..54ce7410ba --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/depends/libmediainfo/package.mk @@ -0,0 +1,59 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="libmediainfo" +PKG_VERSION="0.7.83" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://mediaarea.net/en/MediaInfo/Download/Source" +PKG_URL="http://mediaarea.net/download/source/libmediainfo/$PKG_VERSION/libmediainfo_$PKG_VERSION.tar.bz2" +PKG_SOURCE_DIR="MediaInfoLib" +PKG_DEPENDS_TARGET="toolchain libzen" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_LONGDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + + +make_target() { + cd Project/GNU/Library + do_autoreconf + ./configure \ + --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --enable-static \ + --disable-shared \ + --prefix=/usr \ + --enable-visibility \ + --disable-libcurl \ + --disable-libmms + make +} + +post_makeinstall_target() { + mkdir -p $SYSROOT_PREFIX/usr/include/MediaInfo + cp -aP ../../../Source/MediaInfo/* $SYSROOT_PREFIX/usr/include/MediaInfo + for i in Archive Audio Duplicate Export Image Multiple Reader Tag Text Video ; do + mkdir -p $SYSROOT_PREFIX/usr/include/MediaInfo/$i/ + cp -aP ../../../Source/MediaInfo/$i/*.h $SYSROOT_PREFIX/usr/include/MediaInfo/$i/ + done + cp -P libmediainfo-config $ROOT/$TOOLCHAIN/bin +} From 5575eebc57cda4a84bc3ddad97a4de18b57f4733 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 2/8] libzen: add package --- .../depends/libzen/package.mk | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/depends/libzen/package.mk diff --git a/packages/addons/addon-depends/multimedia-tools-depends/depends/libzen/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/depends/libzen/package.mk new file mode 100644 index 0000000000..1fad136eda --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/depends/libzen/package.mk @@ -0,0 +1,56 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="libzen" +PKG_VERSION="0.4.33" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://mediaarea.net/en/MediaInfo/" +PKG_URL="http://mediaarea.net/download/source/libzen/$PKG_VERSION/libzen_$PKG_VERSION.tar.bz2" +PKG_SOURCE_DIR="ZenLib" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_LONGDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +make_target() { + cd Project/GNU/Library + do_autoreconf + ./configure \ + --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --enable-static \ + --disable-shared \ + --prefix=/usr + + make +} + +post_makeinstall_target() { + mkdir -p $SYSROOT_PREFIX/usr/include/ZenLib + cp -aP ../../../Source/ZenLib/*.h $SYSROOT_PREFIX/usr/include/ZenLib + for i in HTTP_Client Format/Html Format/Http ; do + mkdir -p $SYSROOT_PREFIX/usr/include/ZenLib/$i/ + cp -aP ../../../Source/ZenLib/$i/*.h $SYSROOT_PREFIX/usr/include/ZenLib/$i/ + done + cp -P libzen-config $ROOT/$TOOLCHAIN/bin +} From b3583a6e76682bba8134c97c08aa02d7fbe163a4 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 3/8] mediainfo: add package --- .../mediainfo/package.mk | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/mediainfo/package.mk diff --git a/packages/addons/addon-depends/multimedia-tools-depends/mediainfo/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/mediainfo/package.mk new file mode 100644 index 0000000000..4a4e023d94 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/mediainfo/package.mk @@ -0,0 +1,47 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="mediainfo" +PKG_VERSION="0.7.83" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://mediaarea.net/en/MediaInfo/Download/Source" +PKG_URL="http://mediaarea.net/download/source/mediainfo/$PKG_VERSION/mediainfo_$PKG_VERSION.tar.bz2" +PKG_SOURCE_DIR="MediaInfo" +PKG_DEPENDS_TARGET="toolchain libmediainfo" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_LONGDESC="MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files" +PKG_AUTORECONF="no" + +make_target() { + cd Project/GNU/CLI + do_autoreconf + echo $PATH + ./configure \ + --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr + make +} + +makeinstall_target() { + : # nop +} From 74c35d36f3ca55f54367fb0533d4adc0748c84f7 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 4/8] mesa-demos: add package --- .../mesa-demos/package.mk | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/mesa-demos/package.mk diff --git a/packages/addons/addon-depends/multimedia-tools-depends/mesa-demos/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/mesa-demos/package.mk new file mode 100644 index 0000000000..39cfeaa03f --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/mesa-demos/package.mk @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="mesa-demos" +PKG_VERSION="8.3.0" +PKG_REV="0" +PKG_ARCH="i386 x86_64" +PKG_LICENSE="OSS" +PKG_SITE="http://www.mesa3d.org/" +PKG_URL="ftp://ftp.freedesktop.org/pub/mesa/demos/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libX11 mesa glu glew" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="mesa-demos: Mesa 3D demos" +PKG_LONGDESC="Mesa 3D demos - installed are the well known glxinfo and glxgears." +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--without-glut" + +makeinstall_target() { + : # nop +} From 59f7eb7c4001ca7d54e79103a9bb74892ab6c528 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 5/8] opencaster: add package --- .../opencaster/package.mk | 35 ++ .../patches/opencaster-01_crosscompile.patch | 504 ++++++++++++++++++ .../patches/opencaster-02_headers.patch | 13 + .../opencaster-03_dont-build-dvbobjects.patch | 10 + 4 files changed, 562 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-01_crosscompile.patch create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-02_headers.patch create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-03_dont-build-dvbobjects.patch diff --git a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk new file mode 100644 index 0000000000..0a2a2969f9 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/package.mk @@ -0,0 +1,35 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="opencaster" +PKG_VERSION="3.2.2" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.avalpa.com/the-key-values/15-free-software/33-opencaster" +PKG_URL="http://ftp.de.debian.org/debian/pool/main/o/opencaster/opencaster_${PKG_VERSION}+dfsg.orig.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="MPEG2 transport stream data generator and packet manipulator" +PKG_LONGDESC="OpenCaster is a free and open source MPEG2 transport stream data generator and packet manipulator" +PKG_AUTORECONF="no" + +pre_makeinstall_target() { + mkdir -p $ROOT/$PKG_BUILD/.install_pkg +} diff --git a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-01_crosscompile.patch b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-01_crosscompile.patch new file mode 100644 index 0000000000..7e7854de5f --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-01_crosscompile.patch @@ -0,0 +1,504 @@ +diff --git a/libs/sectioncrc/Makefile b/libs/sectioncrc/Makefile +index 87e4627..ad8a0e5 100755 +--- a/libs/sectioncrc/Makefile ++++ b/libs/sectioncrc/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS = -g -MD -Wall -I. -I../../include + + OBJ = sectioncrc.o +diff --git a/tools/dsmcc-receive/Makefile b/tools/dsmcc-receive/Makefile +index 891a50c..ee2d82e 100644 +--- a/tools/dsmcc-receive/Makefile ++++ b/tools/dsmcc-receive/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc -lz + +diff --git a/tools/eitsecactualtoanother/Makefile b/tools/eitsecactualtoanother/Makefile +index be3a790..723c857 100644 +--- a/tools/eitsecactualtoanother/Makefile ++++ b/tools/eitsecactualtoanother/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/eitsecfilter/Makefile b/tools/eitsecfilter/Makefile +index f4e5fc4..cc94b71 100644 +--- a/tools/eitsecfilter/Makefile ++++ b/tools/eitsecfilter/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/eitsecmapper/Makefile b/tools/eitsecmapper/Makefile +index 9c6ce8f..29dbc39 100644 +--- a/tools/eitsecmapper/Makefile ++++ b/tools/eitsecmapper/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/esaudio2pes/Makefile b/tools/esaudio2pes/Makefile +index 349b187..607f0a3 100644 +--- a/tools/esaudio2pes/Makefile ++++ b/tools/esaudio2pes/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/esaudioinfo/Makefile b/tools/esaudioinfo/Makefile +index 2c014b2..69a38a0 100644 +--- a/tools/esaudioinfo/Makefile ++++ b/tools/esaudioinfo/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/esvideompeg2info/Makefile b/tools/esvideompeg2info/Makefile +index aaa8065..ac91058 100644 +--- a/tools/esvideompeg2info/Makefile ++++ b/tools/esvideompeg2info/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/esvideompeg2pes/Makefile b/tools/esvideompeg2pes/Makefile +index a905e7b..7020503 100644 +--- a/tools/esvideompeg2pes/Makefile ++++ b/tools/esvideompeg2pes/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/i13942ts/Makefile b/tools/i13942ts/Makefile +index 72e4b2d..0c020f8 100644 +--- a/tools/i13942ts/Makefile ++++ b/tools/i13942ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + + OBJS = i13942ts.o +diff --git a/tools/ip2sec/Makefile b/tools/ip2sec/Makefile +index 3a90c82..7580ca3 100644 +--- a/tools/ip2sec/Makefile ++++ b/tools/ip2sec/Makefile +@@ -1,4 +1,3 @@ +-CC = gcc + CFLAGS += -g -O2 -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lpcap + +diff --git a/tools/m2ts2cbrts/Makefile b/tools/m2ts2cbrts/Makefile +index a2ed89f..778efb8 100644 +--- a/tools/m2ts2cbrts/Makefile ++++ b/tools/m2ts2cbrts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/mpe2sec/Makefile b/tools/mpe2sec/Makefile +index 5c29efd..55cbe4d 100644 +--- a/tools/mpe2sec/Makefile ++++ b/tools/mpe2sec/Makefile +@@ -1,4 +1,3 @@ +-CC = gcc + CFLAGS += -g -O2 -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + + OBJS = mpe.o sectioncrc.o +diff --git a/tools/mpeg2videovbv/Makefile b/tools/mpeg2videovbv/Makefile +index 8635e67..4074c93 100644 +--- a/tools/mpeg2videovbv/Makefile ++++ b/tools/mpeg2videovbv/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/oddparity/Makefile b/tools/oddparity/Makefile +index 7970590..6839a36 100644 +--- a/tools/oddparity/Makefile ++++ b/tools/oddparity/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pes2es/Makefile b/tools/pes2es/Makefile +index a598df9..c3e803f 100644 +--- a/tools/pes2es/Makefile ++++ b/tools/pes2es/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pes2txt/Makefile b/tools/pes2txt/Makefile +index d65922e..50057a1 100644 +--- a/tools/pes2txt/Makefile ++++ b/tools/pes2txt/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pesaudio2ts/Makefile b/tools/pesaudio2ts/Makefile +index 6fec027..ab75796 100644 +--- a/tools/pesaudio2ts/Makefile ++++ b/tools/pesaudio2ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pesdata2ts/Makefile b/tools/pesdata2ts/Makefile +index 3e180f7..d541485 100644 +--- a/tools/pesdata2ts/Makefile ++++ b/tools/pesdata2ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pesinfo/Makefile b/tools/pesinfo/Makefile +index 5c9cbb3..3ffc1d7 100644 +--- a/tools/pesinfo/Makefile ++++ b/tools/pesinfo/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/pesvideo2ts/Makefile b/tools/pesvideo2ts/Makefile +index a8de20e..a2ebab0 100644 +--- a/tools/pesvideo2ts/Makefile ++++ b/tools/pesvideo2ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/sec2ts/Makefile b/tools/sec2ts/Makefile +index 0607bcf..df22126 100644 +--- a/tools/sec2ts/Makefile ++++ b/tools/sec2ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/ts2m2ts/Makefile b/tools/ts2m2ts/Makefile +index b70c018..28104fd 100644 +--- a/tools/ts2m2ts/Makefile ++++ b/tools/ts2m2ts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/ts2pes/Makefile b/tools/ts2pes/Makefile +index 61301f4..349c29e 100644 +--- a/tools/ts2pes/Makefile ++++ b/tools/ts2pes/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/ts2sec/Makefile b/tools/ts2sec/Makefile +index ebbe4be..baad160 100644 +--- a/tools/ts2sec/Makefile ++++ b/tools/ts2sec/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tscbrmuxer/Makefile b/tools/tscbrmuxer/Makefile +index aa93c07..38cd632 100644 +--- a/tools/tscbrmuxer/Makefile ++++ b/tools/tscbrmuxer/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsccc/Makefile b/tools/tsccc/Makefile +index 44340fb..85ec0f8 100755 +--- a/tools/tsccc/Makefile ++++ b/tools/tsccc/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tscrypt/Makefile b/tools/tscrypt/Makefile +index 3ce49f5..9cec259 100644 +--- a/tools/tscrypt/Makefile ++++ b/tools/tscrypt/Makefile +@@ -1,4 +1,3 @@ +-CC = gcc + CFLAGS += -g -O2 -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -ldvbcsa + +diff --git a/tools/tsdiscont/Makefile b/tools/tsdiscont/Makefile +index bed498e..78329c1 100644 +--- a/tools/tsdiscont/Makefile ++++ b/tools/tsdiscont/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsdoubleoutput/Makefile b/tools/tsdoubleoutput/Makefile +index e35c8a2..e8927fe 100644 +--- a/tools/tsdoubleoutput/Makefile ++++ b/tools/tsdoubleoutput/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsfilter/Makefile b/tools/tsfilter/Makefile +index 5e8a3fc..9397197 100755 +--- a/tools/tsfilter/Makefile ++++ b/tools/tsfilter/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsfixcc/Makefile b/tools/tsfixcc/Makefile +index cdf93ae..ebd894f 100755 +--- a/tools/tsfixcc/Makefile ++++ b/tools/tsfixcc/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsinputswitch/Makefile b/tools/tsinputswitch/Makefile +index 5b2f205..3a08c7a 100644 +--- a/tools/tsinputswitch/Makefile ++++ b/tools/tsinputswitch/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsloop/Makefile b/tools/tsloop/Makefile +index 0781c2c..71dc3c6 100755 +--- a/tools/tsloop/Makefile ++++ b/tools/tsloop/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsmask/Makefile b/tools/tsmask/Makefile +index afe3fe8..914a1ef 100755 +--- a/tools/tsmask/Makefile ++++ b/tools/tsmask/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsmodder/Makefile b/tools/tsmodder/Makefile +index 72a4fde..2199b8a 100644 +--- a/tools/tsmodder/Makefile ++++ b/tools/tsmodder/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsnullfiller/Makefile b/tools/tsnullfiller/Makefile +index fd7bf5a..3b6898f 100644 +--- a/tools/tsnullfiller/Makefile ++++ b/tools/tsnullfiller/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsnullshaper/Makefile b/tools/tsnullshaper/Makefile +index 2071129..3b89b7e 100644 +--- a/tools/tsnullshaper/Makefile ++++ b/tools/tsnullshaper/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc -lrt + +diff --git a/tools/tsororts/Makefile b/tools/tsororts/Makefile +index 408c924..0687c55 100644 +--- a/tools/tsororts/Makefile ++++ b/tools/tsororts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsorts/Makefile b/tools/tsorts/Makefile +index 1b4d287..96db276 100644 +--- a/tools/tsorts/Makefile ++++ b/tools/tsorts/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsoutputswitch/Makefile b/tools/tsoutputswitch/Makefile +index c2d0b09..6abfddb 100644 +--- a/tools/tsoutputswitch/Makefile ++++ b/tools/tsoutputswitch/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tspcrmeasure/Makefile b/tools/tspcrmeasure/Makefile +index 819a25e..f39efd3 100644 +--- a/tools/tspcrmeasure/Makefile ++++ b/tools/tspcrmeasure/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tspcrrestamp/Makefile b/tools/tspcrrestamp/Makefile +index 3f05709..43f37b4 100644 +--- a/tools/tspcrrestamp/Makefile ++++ b/tools/tspcrrestamp/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tspcrstamp/Makefile b/tools/tspcrstamp/Makefile +index 5520ef3..6c050bc 100644 +--- a/tools/tspcrstamp/Makefile ++++ b/tools/tspcrstamp/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tspidmapper/Makefile b/tools/tspidmapper/Makefile +index c02853a..f237a77 100644 +--- a/tools/tspidmapper/Makefile ++++ b/tools/tspidmapper/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsstamp/Makefile b/tools/tsstamp/Makefile +index 80393fe..f288f09 100644 +--- a/tools/tsstamp/Makefile ++++ b/tools/tsstamp/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tstcpreceive/Makefile b/tools/tstcpreceive/Makefile +index 4f1cac7..ebbba5f 100644 +--- a/tools/tstcpreceive/Makefile ++++ b/tools/tstcpreceive/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tstcpsend/Makefile b/tools/tstcpsend/Makefile +index 8894859..fb8a573 100644 +--- a/tools/tstcpsend/Makefile ++++ b/tools/tstcpsend/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc -lrt + +diff --git a/tools/tstdt/Makefile b/tools/tstdt/Makefile +index 1873adb..c5eb23d 100644 +--- a/tools/tstdt/Makefile ++++ b/tools/tstdt/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tstimedwrite/Makefile b/tools/tstimedwrite/Makefile +index 3ad1432..7a34191 100644 +--- a/tools/tstimedwrite/Makefile ++++ b/tools/tstimedwrite/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc -lrt + +diff --git a/tools/tstimeout/Makefile b/tools/tstimeout/Makefile +index 0dbc314..c37b97e 100644 +--- a/tools/tstimeout/Makefile ++++ b/tools/tstimeout/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsudpreceive/Makefile b/tools/tsudpreceive/Makefile +index 2e08cee..3a6c3cb 100644 +--- a/tools/tsudpreceive/Makefile ++++ b/tools/tsudpreceive/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/tsudpsend/Makefile b/tools/tsudpsend/Makefile +index 0d55bd4..bd6f39e 100644 +--- a/tools/tsudpsend/Makefile ++++ b/tools/tsudpsend/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc -lrt + +diff --git a/tools/tsvbr2cbr/Makefile b/tools/tsvbr2cbr/Makefile +index 01cc992..65d670c 100644 +--- a/tools/tsvbr2cbr/Makefile ++++ b/tools/tsvbr2cbr/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/txt2pes/Makefile b/tools/txt2pes/Makefile +index f506da7..55f0d5e 100644 +--- a/tools/txt2pes/Makefile ++++ b/tools/txt2pes/Makefile +@@ -1,4 +1,3 @@ +-C = gcc + CFLAGS += -g -MD -Wall -I. -I../../include $(CPPFLAGS) + LDFLAGS += -lc + +diff --git a/tools/zpipe/Makefile b/tools/zpipe/Makefile +index 5997129..707647d 100644 +--- a/tools/zpipe/Makefile ++++ b/tools/zpipe/Makefile +@@ -1,4 +1,3 @@ +-CC = gcc + CFLAGS += -g -O2 -MD -Wall -I. -I../../include -D_FILE_OFFSET_BITS=64 $(CPPFLAGS) + LDFLAGS += -lz + diff --git a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-02_headers.patch b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-02_headers.patch new file mode 100644 index 0000000000..3535c6087f --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-02_headers.patch @@ -0,0 +1,13 @@ +diff --git a/tools/mpe2sec/mpe.c b/tools/mpe2sec/mpe.c +index 18417af..3b71f64 100644 +--- a/tools/mpe2sec/mpe.c ++++ b/tools/mpe2sec/mpe.c +@@ -12,7 +12,7 @@ + #include + #include + +-#include ++#include + + #include "sectioncrc.h" + diff --git a/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-03_dont-build-dvbobjects.patch b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-03_dont-build-dvbobjects.patch new file mode 100644 index 0000000000..1c1e0c5a47 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/opencaster/patches/opencaster-03_dont-build-dvbobjects.patch @@ -0,0 +1,10 @@ +diff --git a/libs/Makefile b/libs/Makefile +index 23d951b..c442057 100755 +--- a/libs/Makefile ++++ b/libs/Makefile +@@ -1,4 +1,4 @@ +-SUBDIRS = sectioncrc dvbobjects ++SUBDIRS = sectioncrc + + subdirs: $(SUBDIRS) + $(SUBDIRS): From 570f1d1e5732a89a3dd903b91b676de33462343d Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 6/8] tsdecrypt: add package --- .../tsdecrypt/package.mk | 37 +++++++++++++++++++ .../patches/tsdecrypt-makefile.patch | 29 +++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/package.mk create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/patches/tsdecrypt-makefile.patch diff --git a/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/package.mk new file mode 100644 index 0000000000..9a8c574dd6 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/package.mk @@ -0,0 +1,37 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="tsdecrypt" +PKG_VERSION="10.0" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://georgi.unixsol.org/programs/tsdecrypt" +PKG_URL="http://georgi.unixsol.org/programs/tsdecrypt/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain libdvbcsa" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="tsdecrypt" +PKG_LONGDESC="tsdecrypt reads incoming mpeg transport stream over UDP/RTP and then decrypts it using libdvbcsa/ffdecsa and keys obtained from OSCAM or similar cam server" +PKG_AUTORECONF="no" + +makeinstall_target() { + : # nop +} diff --git a/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/patches/tsdecrypt-makefile.patch b/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/patches/tsdecrypt-makefile.patch new file mode 100644 index 0000000000..979cd7eff5 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/tsdecrypt/patches/tsdecrypt-makefile.patch @@ -0,0 +1,29 @@ +diff -Naur tsdecrypt-10.0/libfuncs/Makefile tsdecrypt-10.0.patch/libfuncs/Makefile +--- tsdecrypt-10.0/libfuncs/Makefile 2013-09-12 12:53:27.000000000 +0200 ++++ tsdecrypt-10.0.patch/libfuncs/Makefile 2014-07-20 12:23:54.900762191 +0200 +@@ -1,5 +1,4 @@ +-CC = $(CROSS)$(TARGET)gcc +-LINK = $(CROSS)$(TARGET)ld -o ++LINK = $(LD) -o + MKDEP = $(CC) -M -o $*.d $< + + LIBRARY_LINK_OPTS = -L. -r +diff -Naur tsdecrypt-10.0/libtsfuncs/Makefile tsdecrypt-10.0.patch/libtsfuncs/Makefile +--- tsdecrypt-10.0/libtsfuncs/Makefile 2013-09-12 12:53:30.000000000 +0200 ++++ tsdecrypt-10.0.patch/libtsfuncs/Makefile 2014-07-20 12:23:54.901762318 +0200 +@@ -1,5 +1,4 @@ +-CC = $(CROSS)$(TARGET)gcc +-LINK = $(CROSS)$(TARGET)ld -o ++LINK = $(LD) -o + MKDEP = $(CC) -M -o $*.d $< + + LIBRARY_LINK_OPTS = -L. -r +diff -Naur tsdecrypt-10.0/Makefile tsdecrypt-10.0.patch/Makefile +--- tsdecrypt-10.0/Makefile 2013-09-12 12:53:16.000000000 +0200 ++++ tsdecrypt-10.0.patch/Makefile 2014-07-20 12:24:11.303809770 +0200 +@@ -1,5 +1,3 @@ +-CC = $(CROSS)$(TARGET)cc +-STRIP = $(CROSS)$(TARGET)strip + MKDEP = $(CC) -MP -MM -o $*.d $< + RM = rm -f + MV = mv -f From 63212d06e214f0f1ad1948d94fc19e82596ac608 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 7/8] tstools: add package --- .../tstools/package.mk | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 packages/addons/addon-depends/multimedia-tools-depends/tstools/package.mk diff --git a/packages/addons/addon-depends/multimedia-tools-depends/tstools/package.mk b/packages/addons/addon-depends/multimedia-tools-depends/tstools/package.mk new file mode 100644 index 0000000000..f152bb8a67 --- /dev/null +++ b/packages/addons/addon-depends/multimedia-tools-depends/tstools/package.mk @@ -0,0 +1,41 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv) +# +# This Program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This Program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenELEC.tv; see the file COPYING. If not, write to +# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="tstools" +PKG_VERSION="1.11" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://tstools.berlios.de/" +PKG_URL="$SOURCEFORGE_SRC/project/tstools.berlios/tstools-1_11.tgz" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="command line tools for working with MPEG data" +PKG_LONGDESC="This is a set of cross-platform command line tools for working with MPEG data." +PKG_AUTORECONF="no" + +make_target() { + make -j1 CROSS_COMPILE=$TARGET_PREFIX +} + +makeinstall_target() { + : # nop +} From 2705f80d497caabec26fd4f2446cbe2e51448bac Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:25:40 -0700 Subject: [PATCH 8/8] multimedia-tools: initial add-on --- .../tools/multimedia-tools/changelog.txt | 2 + .../tools/multimedia-tools/icon/icon.png | Bin 0 -> 53170 bytes .../addons/tools/multimedia-tools/package.mk | 67 ++++++++++++++++++ .../tools/multimedia-tools/source/default.py | 22 ++++++ 4 files changed, 91 insertions(+) create mode 100644 packages/addons/tools/multimedia-tools/changelog.txt create mode 100644 packages/addons/tools/multimedia-tools/icon/icon.png create mode 100644 packages/addons/tools/multimedia-tools/package.mk create mode 100644 packages/addons/tools/multimedia-tools/source/default.py diff --git a/packages/addons/tools/multimedia-tools/changelog.txt b/packages/addons/tools/multimedia-tools/changelog.txt new file mode 100644 index 0000000000..f6abfd1747 --- /dev/null +++ b/packages/addons/tools/multimedia-tools/changelog.txt @@ -0,0 +1,2 @@ +8.0.100 +- Initial Release diff --git a/packages/addons/tools/multimedia-tools/icon/icon.png b/packages/addons/tools/multimedia-tools/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..86ae5d644de5c2c6ee0c7d3455df89798f9164c7 GIT binary patch literal 53170 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 literal 0 HcmV?d00001 diff --git a/packages/addons/tools/multimedia-tools/package.mk b/packages/addons/tools/multimedia-tools/package.mk new file mode 100644 index 0000000000..c4e3085cf0 --- /dev/null +++ b/packages/addons/tools/multimedia-tools/package.mk @@ -0,0 +1,67 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +PKG_NAME="multimedia-tools" +PKG_VERSION="" +PKG_REV="100" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="" +PKG_URL="" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="virtual" +PKG_SHORTDESC="A bundle of multimedia tools and programs" +PKG_LONGDESC="A bundle of multimedia tools and programs" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="Multimedia Tools" +PKG_ADDON_TYPE="xbmc.python.script" +PKG_ADDON_PROVIDES="" +PKG_ADDON_REPOVERSION="8.0" + +PKG_AUTORECONF="no" + +PKG_DEPENDS_TARGET="toolchain \ + mediainfo \ + mesa-demos \ + opencaster \ + tsdecrypt \ + tstools" + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ + # mediainfo + cp -P $(get_build_dir mediainfo)/Project/GNU/CLI/mediainfo $ADDON_BUILD/$PKG_ADDON_ID/bin + + # mesa-demos + cp -P $(get_build_dir mesa-demos)/.$TARGET_NAME/src/xdemos/glxdemo $ADDON_BUILD/$PKG_ADDON_ID/bin 2>/dev/null || : + cp -P $(get_build_dir mesa-demos)/.$TARGET_NAME/src/xdemos/glxgears $ADDON_BUILD/$PKG_ADDON_ID/bin 2>/dev/null || : + cp -P $(get_build_dir mesa-demos)/.$TARGET_NAME/src/xdemos/glxinfo $ADDON_BUILD/$PKG_ADDON_ID/bin 2>/dev/null || : + + # opencaster + cp -P $(get_build_dir opencaster)/.install_pkg/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ + + # tsdecrypt + cp -P $(get_build_dir tsdecrypt)/tsdecrypt $ADDON_BUILD/$PKG_ADDON_ID/bin + + # tstools + cp -P $(get_build_dir tstools)/bin/* $ADDON_BUILD/$PKG_ADDON_ID/bin/ + + debug_strip $ADDON_BUILD/$PKG_ADDON_ID/bin +} diff --git a/packages/addons/tools/multimedia-tools/source/default.py b/packages/addons/tools/multimedia-tools/source/default.py new file mode 100644 index 0000000000..67e12970fe --- /dev/null +++ b/packages/addons/tools/multimedia-tools/source/default.py @@ -0,0 +1,22 @@ +################################################################################ +# This file is part of LibreELEC - http://www.libreelec.tv +# Copyright (C) 2016 Team LibreELEC +# +# LibreELEC is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# LibreELEC is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LibreELEC. If not, see . +################################################################################ + +import xbmcgui + +dialog = xbmcgui.Dialog() +dialog.ok('', 'This is a console-only addon')