From baf0e7f368b24887f60e126573521f396c96a6d6 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 1/6] dvb-apps: add package --- .../dvb-tools-depends/dvb-apps/package.mk | 42 +++++++++++++++++++ .../dvb-apps-10_reorder-includes.patch | 11 +++++ .../dvb-apps-20_build-static-libs.patch | 13 ++++++ .../dvb-apps-30_remove-av7110_loadkeys.patch | 11 +++++ 4 files changed, 77 insertions(+) create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvb-apps/package.mk create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-10_reorder-includes.patch create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-20_build-static-libs.patch create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-30_remove-av7110_loadkeys.patch diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/package.mk b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/package.mk new file mode 100644 index 0000000000..1047b0d423 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/package.mk @@ -0,0 +1,42 @@ +################################################################################ +# 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="dvb-apps" +PKG_VERSION="3d43b280298c" +PKG_REV="0" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="https://www.linuxtv.org/wiki/index.php/LinuxTV_dvb-apps" +PKG_URL="http://linuxtv.org/hg/dvb-apps/archive/${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="Digitial Video Broadcasting (DVB) applications" +PKG_LONGDESC="Applications and utilities geared towards the initial setup, testing and operation of an DVB device supporting the DVB-S, DVB-C, DVB-T, and ATSC standards." +PKG_AUTORECONF="no" + +make_target() { + make -C lib + make -C util +} + +makeinstall_target() { + : # nop +} diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-10_reorder-includes.patch b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-10_reorder-includes.patch new file mode 100644 index 0000000000..40312e9338 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-10_reorder-includes.patch @@ -0,0 +1,11 @@ +diff -Naur dvb-apps-20090201/util/scan/diseqc.c dvb-apps-20090201a/util/scan/diseqc.c +--- dvb-apps-20090201/util/scan/diseqc.c 2009-02-01 13:57:16.000000000 +0100 ++++ dvb-apps-20090201a/util/scan/diseqc.c 2009-02-14 13:45:42.000000000 +0100 +@@ -1,6 +1,6 @@ ++#include + #include + #include +-#include + + #include "scan.h" + #include "diseqc.h" diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-20_build-static-libs.patch b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-20_build-static-libs.patch new file mode 100644 index 0000000000..18d6976e32 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-20_build-static-libs.patch @@ -0,0 +1,13 @@ +diff --git a/Make.rules b/Make.rules +index e867c3a..b2d8663 100644 +--- a/Make.rules ++++ b/Make.rules +@@ -9,7 +9,7 @@ ifneq ($(lib_name),) + CFLAGS_LIB ?= -fPIC + CFLAGS += $(CFLAGS_LIB) + +-libraries = $(lib_name).so $(lib_name).a ++libraries = $(lib_name).a + + .PHONY: library + diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-30_remove-av7110_loadkeys.patch b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-30_remove-av7110_loadkeys.patch new file mode 100644 index 0000000000..b4adc2cdc4 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvb-apps/patches/dvb-apps-30_remove-av7110_loadkeys.patch @@ -0,0 +1,11 @@ +diff -Naur a/util/Makefile b/util/Makefile +--- a/util/Makefile 2014-03-21 12:26:36.000000000 -0700 ++++ b/util/Makefile 2015-12-21 01:12:10.261957235 -0800 +@@ -4,7 +4,6 @@ + + all clean install: + $(MAKE) -C atsc_epg $@ +- $(MAKE) -C av7110_loadkeys $@ + $(MAKE) -C dib3000-watch $@ + $(MAKE) -C dst-utils $@ + $(MAKE) -C dvbdate $@ From 422a807c071330930b96f1251597665467fc1e50 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 2/6] dvb-fe-tool: add package --- .../dvb-tools-depends/dvb-fe-tool/package.mk | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvb-fe-tool/package.mk diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvb-fe-tool/package.mk b/packages/addons/addon-depends/dvb-tools-depends/dvb-fe-tool/package.mk new file mode 100644 index 0000000000..39161cd61c --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvb-fe-tool/package.mk @@ -0,0 +1,63 @@ +################################################################################ +# 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="dvb-fe-tool" +PKG_VERSION="fa2f7d9" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://linuxtv.org/" +PKG_URL="https://git.linuxtv.org/cgit.cgi/v4l-utils.git/snapshot/$PKG_VERSION.tar.xz" +PKG_SOURCE_DIR="$PKG_VERSION*" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="dvb-fe-tool: Linux V4L2 and DVB API utilities and v4l libraries (libv4l)." +PKG_LONGDESC="Linux V4L2 and DVB API utilities and v4l libraries (libv4l)." +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--disable-nls \ + --disable-rpath \ + --disable-libdvbv5 \ + --disable-libv4l \ + --disable-v4l-utils \ + --disable-qv4l2 \ + --without-jpeg \ + --without-libiconv-prefix \ + --without-libintl-prefix" + +post_patch() { + mkdir -p $ROOT/$PKG_BUILD/build-aux/ + touch $ROOT/$PKG_BUILD/build-aux/config.rpath + touch $ROOT/$PKG_BUILD/libdvbv5-po/Makefile.in.in + touch $ROOT/$PKG_BUILD/v4l-utils-po/Makefile.in.in +} + +make_target() { + cd $ROOT/$PKG_BUILD/.$TARGET_NAME/lib/libdvbv5 + make CFLAGS="$TARGET_CFLAGS" + + cd $ROOT/$PKG_BUILD/.$TARGET_NAME/utils/dvb + make CFLAGS="$TARGET_CFLAGS" +} + +makeinstall_target() { + : # nop +} From af1b50fbd6d28780e0d90cbb2fbfdc58fb2cb21a Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 3/6] dvblast: add package --- .../dvb-tools-depends/dvblast/package.mk | 43 +++++++++++++++++++ .../dvblast/patches/dvblast-ldflags.patch | 17 ++++++++ 2 files changed, 60 insertions(+) create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvblast/package.mk create mode 100644 packages/addons/addon-depends/dvb-tools-depends/dvblast/patches/dvblast-ldflags.patch diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvblast/package.mk b/packages/addons/addon-depends/dvb-tools-depends/dvblast/package.mk new file mode 100644 index 0000000000..28f4f13cf4 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvblast/package.mk @@ -0,0 +1,43 @@ +################################################################################ +# 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="dvblast" +PKG_VERSION="3.0" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.videolan.org" +PKG_URL="http://downloads.videolan.org/pub/videolan/dvblast/${PKG_VERSION}/dvblast-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain bitstream libev" +PKG_PRIORITY="optional" +PKG_SECTION="tools" +PKG_SHORTDESC="DVBlast is a simple and powerful MPEG-2/TS demux and streaming application" +PKG_LONGDESC="DVBlast is a simple and powerful MPEG-2/TS demux and streaming application" +PKG_AUTORECONF="no" + +MAKEFLAGS="V=1" + +pre_configure_target() { + export LDFLAGS="$LDFLAGS -lm" +} + +makeinstall_target() { + : # nop +} diff --git a/packages/addons/addon-depends/dvb-tools-depends/dvblast/patches/dvblast-ldflags.patch b/packages/addons/addon-depends/dvb-tools-depends/dvblast/patches/dvblast-ldflags.patch new file mode 100644 index 0000000000..9ad9e2080b --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/dvblast/patches/dvblast-ldflags.patch @@ -0,0 +1,17 @@ +diff -Naur dvblast-3.0/Makefile dvblast-3.0.patch/Makefile +--- dvblast-3.0/Makefile 2015-10-05 17:51:14.000000000 +0200 ++++ dvblast-3.0.patch/Makefile 2016-03-26 22:54:59.953303040 +0100 +@@ -55,11 +55,11 @@ + + dvblast: $(OBJ_DVBLAST) + @echo "LINK $@" +- $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLAST) $(LDLIBS_DVBLAST) $(LDLIBS) ++ $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLAST) $(LDFLAGS) $(LDLIBS_DVBLAST) $(LDLIBS) + + dvblastctl: $(OBJ_DVBLASTCTL) + @echo "LINK $@" +- $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLASTCTL) $(LDLIBS) ++ $(Q)$(CROSS)$(CC) -o $@ $(OBJ_DVBLASTCTL) $(LDFLAGS) $(LDLIBS) + + clean: + @echo "CLEAN $(CLEAN_OBJS)" From c35d0be3ce4646b719f89e7cce2e18e36d7c03a7 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 4/6] bitstream: add package --- .../depends/bitstream/package.mk | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 packages/addons/addon-depends/dvb-tools-depends/depends/bitstream/package.mk diff --git a/packages/addons/addon-depends/dvb-tools-depends/depends/bitstream/package.mk b/packages/addons/addon-depends/dvb-tools-depends/depends/bitstream/package.mk new file mode 100644 index 0000000000..2c6940bf5d --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/depends/bitstream/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="bitstream" +PKG_VERSION="1.1" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://www.videolan.org" +PKG_URL="http://download.videolan.org/pub/videolan/${PKG_NAME}/${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="biTStream is a set of C headers allowing a simpler access to binary structures such as specified by MPEG, DVB, IETF, etc." +PKG_LONGDESC="biTStream is a set of C headers allowing a simpler access to binary structures such as specified by MPEG, DVB, IETF, etc." + +PKG_IS_ADDON="no" +PKG_AUTORECONF="no" + +PKG_MAKEINSTALL_OPTS_TARGET="PREFIX=/usr" From 3d2f2a1b23d9a9f3baa08ccc57fd5c32950c117a Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 5/6] libev: add package --- .../depends/libev/package.mk | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 packages/addons/addon-depends/dvb-tools-depends/depends/libev/package.mk diff --git a/packages/addons/addon-depends/dvb-tools-depends/depends/libev/package.mk b/packages/addons/addon-depends/dvb-tools-depends/depends/libev/package.mk new file mode 100644 index 0000000000..a287632265 --- /dev/null +++ b/packages/addons/addon-depends/dvb-tools-depends/depends/libev/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="libev" +PKG_VERSION="4.22" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="GPL" +PKG_SITE="http://software.schmorp.de/pkg/libev.html" +PKG_URL="http://dist.schmorp.de/libev/${PKG_NAME}-${PKG_VERSION}.tar.gz" +PKG_DEPENDS_TARGET="toolchain" +PKG_PRIORITY="optional" +PKG_SECTION="multimedia" +PKG_SHORTDESC="libev: a full-featured and high-performance event loop" +PKG_LONGDESC="A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs." + +PKG_IS_ADDON="no" +PKG_AUTORECONF="yes" + +PKG_CONFIGURE_OPTS_TARGET="--disable-shared --enable-static" From 8b1c5a44cab3ac4f66f7c3b9c7a5e36347dc6e3a Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Mon, 25 Apr 2016 10:27:47 -0700 Subject: [PATCH 6/6] dvb-tools: initial add-on --- packages/addons/tools/dvb-tools/changelog.txt | 2 + packages/addons/tools/dvb-tools/icon/icon.png | Bin 0 -> 23437 bytes packages/addons/tools/dvb-tools/package.mk | 69 ++++++++++++++++++ .../addons/tools/dvb-tools/source/default.py | 22 ++++++ 4 files changed, 93 insertions(+) create mode 100644 packages/addons/tools/dvb-tools/changelog.txt create mode 100644 packages/addons/tools/dvb-tools/icon/icon.png create mode 100644 packages/addons/tools/dvb-tools/package.mk create mode 100644 packages/addons/tools/dvb-tools/source/default.py diff --git a/packages/addons/tools/dvb-tools/changelog.txt b/packages/addons/tools/dvb-tools/changelog.txt new file mode 100644 index 0000000000..f6abfd1747 --- /dev/null +++ b/packages/addons/tools/dvb-tools/changelog.txt @@ -0,0 +1,2 @@ +8.0.100 +- Initial Release diff --git a/packages/addons/tools/dvb-tools/icon/icon.png b/packages/addons/tools/dvb-tools/icon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..00401cefd85bf84b8c0de2757266ee33c8d589f6 GIT binary patch literal 23437 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 o?ZK$e2KfK*qr?43g`ApfFY3xf17ZVp)*$. +################################################################################ + +PKG_NAME="dvb-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 dvb tools and programs" +PKG_LONGDESC="A bundle of dvb tools and programs" + +PKG_IS_ADDON="yes" +PKG_ADDON_NAME="DVB Tools" +PKG_ADDON_TYPE="xbmc.python.script" +PKG_ADDON_PROVIDES="" +PKG_ADDON_REPOVERSION="8.0" + +PKG_AUTORECONF="no" + +PKG_DEPENDS_TARGET="toolchain \ + dvb-apps \ + dvb-fe-tool \ + dvblast" + +addon() { + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/lib/ + + mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin/ + # dvb-apps + cp -P $(get_build_dir dvb-apps)/util/dvbdate/dvbdate $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/dvbnet/dvbnet $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/dvbscan/dvbscan $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/dvbtraffic/dvbtraffic $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/femon/femon $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/scan/scan $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/szap/azap $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/szap/czap $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/szap/szap $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/szap/tzap $ADDON_BUILD/$PKG_ADDON_ID/bin + cp -P $(get_build_dir dvb-apps)/util/zap/zap $ADDON_BUILD/$PKG_ADDON_ID/bin + + # dvb-de-tool + cp -P $(get_build_dir dvb-fe-tool)/.$TARGET_NAME/utils/dvb/dvb-fe-tool $ADDON_BUILD/$PKG_ADDON_ID/bin + + # dvblast + cp -P $(get_build_dir dvblast)/dvblast $ADDON_BUILD/$PKG_ADDON_ID/bin + + debug_strip $ADDON_BUILD/$PKG_ADDON_ID/bin +} diff --git a/packages/addons/tools/dvb-tools/source/default.py b/packages/addons/tools/dvb-tools/source/default.py new file mode 100644 index 0000000000..67e12970fe --- /dev/null +++ b/packages/addons/tools/dvb-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')