diff --git a/README b/README index e4ea56c5ea..4d6fb26362 100644 --- a/README +++ b/README @@ -1,8 +1,8 @@ http://www.OpenELEC.tv -The Open Embedded Linux Enterainment Center – OpenELEC.tv +OpenELEC - Open Embedded Linux Enterainment Center -OpenELEC.tv runs XBMC, a complete media center solution (xbmc.org). +OpenELEC runs XBMC, a complete media center solution (xbmc.org). The base system has been designed and built from the ground up to be as efficient as possible – consuming only a tiny footprint, cutting edge hardware support and a set-top box experience. @@ -52,4 +52,4 @@ freenode. Happy XBMC'ing -OpenELEC.tv Development Team +OpenELEC Development Team diff --git a/config/addon/addon.xml b/config/addon/addon.xml index d55418fa6b..7b53c47393 100644 --- a/config/addon/addon.xml +++ b/config/addon/addon.xml @@ -1,14 +1,15 @@ +@REQUIRES@ - + executable diff --git a/config/addon/default.py b/config/addon/default.py deleted file mode 100644 index 6ad5d8a9a5..0000000000 --- a/config/addon/default.py +++ /dev/null @@ -1,26 +0,0 @@ -################################################################################ -# Copyright (C) 2009-2010 OpenELEC.tv -# http://www.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, 675 Mass Ave, Cambridge, MA 02139, USA. -# http://www.gnu.org/copyleft/gpl.html -################################################################################ - -import sys -import xbmcaddon -import os - -if ( __name__ == "__main__" ): - os.system("sh start.sh") diff --git a/config/arch.arm b/config/arch.arm new file mode 100644 index 0000000000..a688f8f80b --- /dev/null +++ b/config/arch.arm @@ -0,0 +1,42 @@ +# determines TARGET_CPU, if not forced by user + if [ -z "$TARGET_CPU" ]; then + TARGET_CPU=cortex-a8 + fi + +# TARGET_CPU: +# arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm620 arm7 arm7m arm7d +# arm7dm arm7di arm7dmi arm70 arm700 arm700i arm710 arm710c +# arm7100 arm720 arm7500 arm7500fe arm7tdmi arm7tdmi-s arm710t +# arm720t arm740t strongarm strongarm110 strongarm1100 +# strongarm1110 arm8 arm810 arm9 arm9e arm920 arm920t arm922t +# arm946e-s arm966e-s arm968e-s arm926ej-s arm940t arm9tdmi +# arm10tdmi arm1020t arm1026ej-s arm10e arm1020e arm1022e +# arm1136j-s arm1136jf-s mpcore mpcorenovfp arm1156t2-s +# arm1176jz-s arm1176jzf-s cortex-a8 cortex-a9 cortex-r4 +# cortex-r4f cortex-m3 cortex-m1 xscale iwmmxt iwmmxt2 ep9312. + +# TARGET_FPU: +# This specifies what floating point hardware (or hardware emulation) is +# available on the target. Permissible names are: +# fpa fpe2 fpe3 maverick vfp vfpv3 vfpv3-fp16 vfpv3-d16 vfpv3-d16-fp16 +# vfpv3xd vfpv3xd-fp16 neon neon-fp16 vfpv4 vfpv4-d16 fpv4-sp-d16 +# neon-vfpv4. + +# determine architecture's family + case $TARGET_CPU in + cortex-a8) + TARGET_SUBARCH=armv7-a + TARGET_ABI=eabi + TARGET_FPU="neon" + ;; + cortex-a9) + TARGET_SUBARCH=armv7-a + TARGET_ABI=eabi + TARGET_FPU="neon" + ;; + esac + +# setup ARCH specific *FLAGS + TARGET_CFLAGS="-fPIC -march=$TARGET_SUBARCH -mtune=$TARGET_CPU -mabi=aapcs-linux" + [ -n "$TARGET_FPU" ] && TARGET_CFLAGS="$TARGET_CFLAGS -mfpu=$TARGET_FPU" + TARGET_LDFLAGS="-fPIC -march=$TARGET_SUBARCH -mtune=$TARGET_CPU" diff --git a/config/arch.i386 b/config/arch.i386 new file mode 100644 index 0000000000..9b49f81788 --- /dev/null +++ b/config/arch.i386 @@ -0,0 +1,11 @@ +# determines TARGET_CPU, if not forced by user + if [ -z "$TARGET_CPU" ]; then + TARGET_CPU=i686 + fi + +# determine architecture's family + TARGET_SUBARCH=i686 + +# setup ARCH specific *FLAGS + TARGET_CFLAGS="-march=$TARGET_CPU -m32" + TARGET_LDFLAGS="-march=$TARGET_CPU -m32" diff --git a/config/arch.x86_64 b/config/arch.x86_64 new file mode 100644 index 0000000000..e0d6b2ae0f --- /dev/null +++ b/config/arch.x86_64 @@ -0,0 +1,11 @@ +# determines TARGET_CPU, if not forced by user + if [ -z "$TARGET_CPU" ]; then + TARGET_CPU=core2 + fi + +# determine architecture's family + TARGET_SUBARCH=x86_64 + +# setup ARCH specific *FLAGS + TARGET_CFLAGS="-fPIC -march=$TARGET_CPU -m64" + TARGET_LDFLAGS="-fPIC -march=$TARGET_CPU -m64" diff --git a/config/functions b/config/functions index a2eb652494..4ab3eb1e6a 100644 --- a/config/functions +++ b/config/functions @@ -134,7 +134,7 @@ do_autoreconf() { export AUTORECONF="$ROOT/$TOOLCHAIN/bin/autoreconf -v -f -i -I $ACLOCAL_DIR" mkdir -p $ACLOCAL_DIR - autoreconf --verbose --force --install -I $ACLOCAL_DIR $@ + autoreconf --force --install -I $ACLOCAL_DIR $@ fi } @@ -154,8 +154,3 @@ strip_linker_plugin() { # strip out usage from linker plugin LDFLAGS=`echo $LDFLAGS | sed -e "s|-fuse-linker-plugin||"` } - -strip_kmod() { - [ -z $1 ] && echo "usage strip_kmod " && exit 1 - find $1 -type f -name '*.ko' | xargs -r $STRIP --strip-debug -} diff --git a/config/optimize b/config/optimize index f345fcddb0..ddd6d83579 100644 --- a/config/optimize +++ b/config/optimize @@ -26,3 +26,31 @@ LD_OPTIM="$LD_OPTIM -fuse-linker-plugin" LD_OPTIM="$LD_OPTIM -fuse-ld=gold" LD_OPTIM="$LD_OPTIM -Wl,--as-needed" +if [ "$DEBUG" = yes ]; then + TARGET_CFLAGS="$TARGET_CFLAGS -ggdb" + TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb" + TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb" +else + TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer" + TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer" + TARGET_LDFLAGS="$TARGET_LDFLAGS -s" +fi + +TARGET_CPPFLAGS= +TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" +TARGET_CXXFLAGS="$TARGET_CFLAGS" +TARGET_LDFLAGS="$TARGET_LDFLAGS $GCC_OPTIM $LD_OPTIM" + +HOST_CPPFLAGS="" +HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include" +HOST_CXXFLAGS="$HOST_CFLAGS" +HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib" + +# use -fPIC when necessary + case "`uname -m`" in + x86_64|ppc64|arm|armeb|armel) + HOST_CFLAGS="$HOST_CFLAGS -fPIC" + HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC" + HOST_LDFLAGS="$HOST_LDFLAGS -fPIC" + ;; + esac diff --git a/config/options b/config/options index 8be7749531..e79b189752 100644 --- a/config/options +++ b/config/options @@ -6,7 +6,7 @@ else PROJECT="$PROJECT" fi -# determines TARGET_ARCH, if not forced by user (i386 / x86_64 / powerpc) +# determines TARGET_ARCH, if not forced by user (i386 / x86_64 / arm) # default is i386 if [ -z "$ARCH" ]; then TARGET_ARCH="i386" @@ -20,7 +20,7 @@ PROJECT_DIR="$ROOT/projects" OPENELEC_VERSION=`cat VERSION` if [ "$OPENELEC_VERSION" = "devel" ]; then - OS_VERSION="0.90" + OS_VERSION="0.99" else OS_MAJOR_VERSION=`echo "$OPENELEC_VERSION" | cut -f1 -d "."` OS_MINOR_VERSION=`echo "$OPENELEC_VERSION" | cut -f2 -d "."` @@ -63,7 +63,6 @@ fi # set jpeg library depending on ARCH if [ "$TARGET_ARCH" = "i386" -o "$TARGET_ARCH" = "x86_64" ]; then LIBJPEG="libjpeg-turbo" -# LIBJPEG="jpeg" else LIBJPEG="jpeg" fi @@ -89,6 +88,7 @@ get_graphicdrivers() { [ "$drv" = "r600" ] && MESA_DRIVERS="$MESA_DRIVERS,r600" [ "$drv" = "radeon" ] && MESA_DRIVERS="$MESA_DRIVERS,radeon" [ "$drv" = "nouveau" ] && MESA_DRIVERS="$MESA_DRIVERS,nouveau" + [ "$drv" = "omapfb" ] && MESA_DRIVERS="$MESA_DRIVERS,swrast" if [ "$drv" = "i915" -o "$drv" = "i965" ]; then XORG_DRIVERS="$XORG_DRIVERS intel" @@ -107,6 +107,10 @@ get_graphicdrivers() { XINERAMA_SUPPORT="yes" fi + if [ "$drv" = "omapfb" ]; then + XORG_DRIVERS="$XORG_DRIVERS ompafb" + fi + if [ "$drv" = "vmware" ]; then XINERAMA_SUPPORT="yes" fi diff --git a/config/path b/config/path index 7441e58b52..f992b30df0 100644 --- a/config/path +++ b/config/path @@ -1,30 +1,6 @@ set -e -# determine architecture's family -case $TARGET_ARCH in - i386) - TARGET_FAMILY=i686 - ;; - - x86_64) - TARGET_FAMILY=x86_64 - ;; -esac - -# determines TARGET_CPU, if not forced by user -if [ -z "$TARGET_CPU" ]; then - case $TARGET_ARCH in - i386) - TARGET_CPU=i686 - ;; - - x86_64) - TARGET_CPU=i686 - ;; - esac -fi - -# setup initial directorys +# setup initial directorys (relative to root) CONFIG=config SCRIPTS=scripts PACKAGES=packages @@ -33,8 +9,11 @@ fi TARGET=target ADDONS=addons +# include ARCH specific options + . config/arch.$TARGET_ARCH + HOST_NAME=`$SCRIPTS/configtools/config.guess` -TARGET_NAME=$TARGET_FAMILY-openelec-linux-gnu +TARGET_NAME=$(echo $TARGET_SUBARCH | sed -e "s,-,,")-openelec-linux-gnu${TARGET_ABI} BUILD=$BUILD_BASE.$DISTRONAME-$PROJECT.$TARGET_ARCH-$OPENELEC_VERSION TARGET_IMG=$ROOT/$TARGET @@ -85,9 +64,6 @@ SED="sed -i" [ -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}[-_.]${PKG_VERSION}` [ -d $BUILD/${PKG_NAME}${PKG_VERSION} ] && PKG_BUILD=`ls -d $BUILD/${PKG_NAME}${PKG_VERSION}` -XORG_PATH_ENCODINGS=/usr/share/X11/encodings -XORG_PATH_FONTS=/usr/share/X11/fonts -XORG_PATH_MAPS=$XORG_PATH_FONTS/util XORG_PATH_DRI=/usr/lib/dri XORG_PATH_XKB=/usr/share/X11/xkb XORG_PATH_XKB_OUTPUT=/var/lib/xkb @@ -98,8 +74,6 @@ XORG_PATH_DRIVERS=/usr/lib/xorg/modules/drivers TOOLCHAIN_LANGUAGES=c [ "$TOOLCHAIN_CXX" = yes ] && TOOLCHAIN_LANGUAGES=${TOOLCHAIN_LANGUAGES},c++ -. config/optimize - TARGET_CC=${TARGET_PREFIX}gcc TARGET_CXX=${TARGET_PREFIX}g++ TARGET_LD=${TARGET_PREFIX}ld @@ -110,38 +84,12 @@ TARGET_RANLIB=${TARGET_PREFIX}ranlib TARGET_OBJCOPY=${TARGET_PREFIX}objcopy TARGET_STRIP=${TARGET_PREFIX}strip -TARGET_CPPFLAGS= -TARGET_CFLAGS="-Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS" -TARGET_CXXFLAGS="$TARGET_CFLAGS" -TARGET_LDFLAGS="$GCC_OPTIM $LD_OPTIM" - -case $TARGET_ARCH in - i386) - TARGET_CFLAGS="$TARGET_CFLAGS -march=$TARGET_CPU -m32" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -march=$TARGET_CPU -m32" - TARGET_LDFLAGS="$TARGET_LDFLAGS -march=$TARGET_CPU -m32" - ;; - x86_64) - TARGET_CFLAGS="$TARGET_CFLAGS -fPIC -march=$TARGET_CPU -m64" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fPIC -march=$TARGET_CPU -m64" - TARGET_LDFLAGS="$TARGET_LDFLAGS -fPIC -march=$TARGET_CPU -m64" - ;; -esac +. config/optimize TARGET_PKG_CONFIG_PATH="" TARGET_PKG_CONFIG_LIBDIR="$SYSROOT_PREFIX/usr/lib/pkgconfig:$SYSROOT_PREFIX/usr/share/pkgconfig" TARGET_PKG_CONFIG_SYSROOT_DIR="$SYSROOT_PREFIX" -if [ "$DEBUG" = yes ]; then - TARGET_CFLAGS="$TARGET_CFLAGS -ggdb" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb" - TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb" -else - TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer" - TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer" - TARGET_LDFLAGS="$TARGET_LDFLAGS -s" -fi - HOST_AWK=gawk HOST_CC=$ROOT/$TOOLCHAIN/bin/host-gcc HOST_CXX=$ROOT/$TOOLCHAIN/bin/host-g++ @@ -153,20 +101,6 @@ HOST_RANLIB=ranlib HOST_OBJCOPY=objcopy HOST_STRIP=strip -HOST_CPPFLAGS="" -HOST_CFLAGS="-O2 -Wall -pipe -I$ROOT/$TOOLCHAIN/include" -HOST_CXXFLAGS="$HOST_CFLAGS" -HOST_LDFLAGS="-Wl,-rpath,$ROOT/$TOOLCHAIN/lib -L$ROOT/$TOOLCHAIN/lib" - -# use -fPIC when necessary - case "`uname -m`" in - x86_64|ppc64|arm|armeb|armel) - HOST_CFLAGS="$HOST_CFLAGS -fPIC" - HOST_CXXFLAGS="$HOST_CXXFLAGS -fPIC" - HOST_LDFLAGS="$HOST_LDFLAGS -fPIC" - ;; - esac - HOST_PKG_CONFIG_PATH="" HOST_PKG_CONFIG_LIBDIR="$ROOT/$TOOLCHAIN/lib/pkgconfig:$ROOT/$TOOLCHAIN/share/pkgconfig" HOST_PKG_CONFIG_SYSROOT_DIR="" diff --git a/config/release/create_installstick b/config/release/create_installstick index f3a0b718a0..f82a792952 100755 --- a/config/release/create_installstick +++ b/config/release/create_installstick @@ -110,7 +110,7 @@ fi # find UUID echo -n "finding UUID from $PART ..." - UUID=`blkid $PART -s UUID -o export` + UUID=`blkid $PART -s UUID -o value` echo "$UUID" # create bootloader @@ -121,7 +121,7 @@ fi echo " " >> /tmp/usb_install/syslinux.cfg echo "LABEL linux" >> /tmp/usb_install/syslinux.cfg echo " KERNEL /KERNEL" >> /tmp/usb_install/syslinux.cfg - echo " APPEND boot=$UUID installer quiet" >> /tmp/usb_install/syslinux.cfg + echo " APPEND boot=UUID=$UUID installer quiet" >> /tmp/usb_install/syslinux.cfg # copy files echo "copy files to $PART..." @@ -136,14 +136,28 @@ fi cp README /tmp/usb_install cp RELEASE /tmp/usb_install -# syncing disk - echo "syncing disk..." - sync - # unmount partition echo "unmounting partition $PART..." umount "$PART" +# write mbr + echo "writing mbr..." + if [ -f /usr/lib/syslinux/mbr.bin ]; then + MBR="/usr/lib/syslinux/mbr.bin" # example: ubuntu + elif [ -f /usr/share/syslinux/mbr.bin ]; then + MBR="/usr/share/syslinux/mbr.bin" # example: fedora + else + echo "Dont find mbr.bin on Host OS" + fi + + if [ -n "$MBR" ]; then + cat "$MBR" > "$DISK" + fi + +# syncing disk + echo "syncing disk..." + sync + # cleaning echo "cleaning tempdir..." rmdir /tmp/usb_install diff --git a/config/release/create_installstick.bat b/config/release/create_installstick.bat index 4198fbe4f3..d5589d269b 100644 --- a/config/release/create_installstick.bat +++ b/config/release/create_installstick.bat @@ -91,7 +91,7 @@ echo PROMPT 0 >> %DRIVE%\syslinux.cfg echo. >> %DRIVE%\syslinux.cfg echo LABEL linux >> %DRIVE%\syslinux.cfg echo KERNEL /KERNEL >> %DRIVE%\syslinux.cfg -echo APPEND boot=UUID=%DRIVEUUID% installer quiet >> %DRIVE%\syslinux.cfg +echo APPEND boot=LABEL=OPENELEC installer quiet >> %DRIVE%\syslinux.cfg GOTO END :BADMD5 diff --git a/packages/accessibility/atk/meta b/packages/accessibility/atk/meta index dfca2ba542..7aec38fe1f 100644 --- a/packages/accessibility/atk/meta +++ b/packages/accessibility/atk/meta @@ -19,12 +19,12 @@ ################################################################################ PKG_NAME="atk" -PKG_VERSION="1.32.0" +PKG_VERSION="2.0.0" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="GPL" PKG_SITE="http://library.gnome.org/devel/atk/" -PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/1.32/$PKG_NAME-$PKG_VERSION.tar.bz2" +PKG_URL="http://ftp.gnome.org/pub/gnome/sources/$PKG_NAME/2.0/$PKG_NAME-$PKG_VERSION.tar.bz2" PKG_DEPENDS="glib" PKG_BUILD_DEPENDS="toolchain glib" PKG_PRIORITY="optional" diff --git a/packages/addons/downloadmanager/CouchPotato/addon b/packages/addons/downloadmanager/CouchPotato/addon new file mode 100755 index 0000000000..a6d6b3cab7 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/addon @@ -0,0 +1,28 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com) +# +# 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/$1 + cp -PR $PKG_BUILD/* $ADDON_BUILD/$PKG_ADDON_ID/$1 + diff --git a/packages/addons/downloadmanager/CouchPotato/changelog.txt b/packages/addons/downloadmanager/CouchPotato/changelog.txt new file mode 100644 index 0000000000..feb3355a71 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/changelog.txt @@ -0,0 +1,2 @@ +0.99.1 +- initial version CouchPotato diff --git a/packages/addons/downloadmanager/CouchPotato/icon/icon.png b/packages/addons/downloadmanager/CouchPotato/icon/icon.png new file mode 100644 index 0000000000..d189fe8ba2 Binary files /dev/null and b/packages/addons/downloadmanager/CouchPotato/icon/icon.png differ diff --git a/packages/linux-firmware/ipw2100-fw/meta b/packages/addons/downloadmanager/CouchPotato/meta similarity index 67% rename from packages/linux-firmware/ipw2100-fw/meta rename to packages/addons/downloadmanager/CouchPotato/meta index b09408acce..e4f92d7d35 100644 --- a/packages/linux-firmware/ipw2100-fw/meta +++ b/packages/addons/downloadmanager/CouchPotato/meta @@ -1,6 +1,7 @@ ################################################################################ # This file is part of OpenELEC - http://www.openelec.tv # Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com) # # 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 @@ -18,19 +19,22 @@ # http://www.gnu.org/copyleft/gpl.html ################################################################################ -PKG_NAME="ipw2100-fw" -PKG_VERSION="1.3" +PKG_NAME="CouchPotato" +PKG_VERSION="ded60e1" PKG_REV="1" PKG_ARCH="any" -PKG_LICENSE="Free-to-use" -PKG_SITE="http://ipw2100.sourceforge.net/" +PKG_LICENSE="OSS" +PKG_SITE="https://github.com/RuudBurger/CouchPotato" PKG_URL="$OPENELEC_SRC/$PKG_NAME-$PKG_VERSION.tar.bz2" -PKG_DEPENDS="" -PKG_BUILD_DEPENDS="toolchain" +PKG_DEPENDS="Python SABnzbd" +PKG_BUILD_DEPENDS="toolchain Python" PKG_PRIORITY="optional" -PKG_SECTION="linux-firmware" -PKG_SHORTDESC="ipw2100-fw: Intel PRO/Wireless 2100 Driver for Linux" -PKG_LONGDESC="This project was created by Intel to enable support for the Intel PRO/Wireless 2100 Network Connection mini PCI adapter. This project (IPW2100) is intended to be a community effort as much as is possible given some working constraints (mainly, no HW documentation is available)." -PKG_IS_ADDON="no" +PKG_SECTION="downloadmanager" +PKG_SHORTDESC="CouchPotato: automated movie downloading." +PKG_LONGDESC="CouchPotato: automated movie downloading." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" +PKG_ADDON_REQUIRES="addon.downloadmanager.SABnzbd:0.99.1" PKG_AUTORECONF="no" diff --git a/packages/addons/downloadmanager/CouchPotato/patches/CouchPotato-ded60e1-000-add_datadir_and_config_support-0.1.patch b/packages/addons/downloadmanager/CouchPotato/patches/CouchPotato-ded60e1-000-add_datadir_and_config_support-0.1.patch new file mode 100644 index 0000000000..afa884f705 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/patches/CouchPotato-ded60e1-000-add_datadir_and_config_support-0.1.patch @@ -0,0 +1,186 @@ +diff -Naur CouchPotato-ded60e1/app/config/db.py CouchPotato-ded60e1.patch/app/config/db.py +--- CouchPotato-ded60e1/app/config/db.py 2011-04-23 19:55:33.000000000 +0200 ++++ CouchPotato-ded60e1.patch/app/config/db.py 2011-04-23 20:26:44.495557932 +0200 +@@ -10,6 +10,7 @@ + import datetime + import os + import sys ++import app.config + + log = CPLog(__name__) + +@@ -24,7 +25,7 @@ + else: + path = os.path.join(os.path.abspath(os.path.curdir), 'data.db') + else: +- path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), 'data.db') ++ path = os.path.join(app.config.DATADIR, 'data.db') + + engine = create_engine('sqlite:///%s' % path) + metadata = MetaData(engine) +diff -Naur CouchPotato-ded60e1/app/config/__init__.py CouchPotato-ded60e1.patch/app/config/__init__.py +--- CouchPotato-ded60e1/app/config/__init__.py 2011-04-23 19:55:33.000000000 +0200 ++++ CouchPotato-ded60e1.patch/app/config/__init__.py 2011-04-23 20:26:44.480558230 +0200 +@@ -0,0 +1 @@ ++DATADIR=None +diff -Naur CouchPotato-ded60e1/app/controllers/log.py CouchPotato-ded60e1.patch/app/controllers/log.py +--- CouchPotato-ded60e1/app/controllers/log.py 2011-04-23 19:55:33.000000000 +0200 ++++ CouchPotato-ded60e1.patch/app/controllers/log.py 2011-04-23 20:26:44.505557734 +0200 +@@ -4,6 +4,7 @@ + from markupsafe import escape + import cherrypy + import os ++import app.config + + log = CPLog(__name__) + file = 'CouchPotato.log' +@@ -56,7 +57,7 @@ + return redirect(url(controller = 'log', action = 'index')) + + def logDir(self): +- return os.path.join(cherrypy.config.get('runPath'), 'logs') ++ return os.path.join(app.config.DATADIR, 'logs') + + def logFile(self): + return os.path.join(self.logDir(), file) +diff -Naur CouchPotato-ded60e1/CouchPotato.py CouchPotato-ded60e1.patch/CouchPotato.py +--- CouchPotato-ded60e1/CouchPotato.py 2011-04-23 19:55:33.000000000 +0200 ++++ CouchPotato-ded60e1.patch/CouchPotato.py 2011-04-23 20:26:50.127445945 +0200 +@@ -3,6 +3,7 @@ + import os + + rundir = os.path.dirname(os.path.abspath(__file__)) ++ + try: + frozen = sys.frozen + except AttributeError: +@@ -20,28 +21,9 @@ + sys.path.insert(0, path_base) + sys.path.insert(0, os.path.join(path_base, 'library')) + +-# Configure logging +-from app.config.cplog import CPLog +-debug = os.path.isfile(os.path.join(path_base, 'debug.conf')) +-log = CPLog() +-log.config(os.path.join(rundir, 'logs'), debug) +- +-# Create cache dir +-cachedir = os.path.join(rundir, 'cache') +-if not os.path.isdir(cachedir): +- os.mkdir(cachedir) +- +-import cherrypy +-import app.config.render +-from app.config.db import initDb +-from optparse import OptionParser +-from app.config.configApp import configApp +-from app.config.routes import setup as Routes +-from app.lib.cron import CronJobs +-from app.config.updater import Updater +-from cherrypy.process import plugins +- + def server_start(): ++ from optparse import OptionParser ++ + p = OptionParser() + p.add_option('-d', action = "store_true", + dest = 'daemonize', help = "Run the server as a daemon") +@@ -50,19 +32,80 @@ + p.add_option('-p', '--pidfile', + dest = 'pidfile', default = None, + help = "Store the process id in the given file") ++ p.add_option('--config', ++ dest = 'config', default = None, ++ help = "Path to config.ini file") ++ p.add_option('--datadir', ++ dest = 'datadir', default = None, ++ help = "Path to the data directory") ++ + + options, args = p.parse_args() ++ ++ if options.datadir: ++ datadir = options.datadir ++ ++ if not os.path.isdir(datadir): ++ os.makedirs(datadir) ++ ++ else: ++ datadir = rundir ++ ++ datadir = os.path.abspath(datadir) ++ ++ if not os.access(datadir, os.W_OK): ++ raise SystemExit("Data dir must be writeable '" + datadir + "'") ++ ++ import app.config ++ app.config.DATADIR = datadir ++ ++ if options.config: ++ config = options.config ++ else: ++ config = os.path.join(datadir, 'config.ini') ++ ++ config = os.path.abspath(config) + +- config = os.path.join(rundir, 'config.ini') ++ if not os.access(os.path.dirname(config), os.W_OK) and not os.access(config, os.W_OK): ++ if not os.path.exists(os.path.dirname(config)): ++ os.makedirs(os.path.dirname(config)) ++ else: ++ raise SystemExit("Directory for config file must be writeable") ++ ++ import cherrypy ++ import app.config.render ++ ++ # Configure logging ++ from app.config.cplog import CPLog ++ ++ # Setup logging ++ debug = os.path.isfile(os.path.join(datadir, 'debug.conf')) ++ log = CPLog() ++ log.config(os.path.join(datadir, 'logs'), debug) ++ ++ # Create cache dir ++ cachedir = os.path.join(datadir, 'cache') ++ if not os.path.isdir(cachedir): ++ os.mkdir(cachedir) + + # Stop logging + if options.quiet or options.daemonize: + cherrypy.config.update({'log.screen': False}) ++ + + # Config app ++ from app.config.configApp import configApp + ca = configApp(config) ++ ++ # Setup db ++ from app.config.db import initDb + initDb() + ++ from app.config.routes import setup as Routes ++ from app.lib.cron import CronJobs ++ from app.config.updater import Updater ++ from cherrypy.process import plugins ++ + # Check an see if CP is already running + import socket + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +@@ -129,7 +172,7 @@ + }, + '/cache':{ + 'tools.staticdir.on': True, +- 'tools.staticdir.root': rundir, ++ 'tools.staticdir.root': datadir, + 'tools.staticdir.dir': "cache", + 'tools.expires.on': True, + 'tools.expires.secs': 3600 * 24 * 7 +@@ -173,7 +216,6 @@ + if hasattr(cherrypy.engine, "console_control_handler"): + cherrypy.engine.console_control_handler.subscribe() + +- + ## start the app + try: + cherrypy.engine.start() diff --git a/packages/addons/downloadmanager/CouchPotato/source/bin/ini_tool b/packages/addons/downloadmanager/CouchPotato/source/bin/ini_tool new file mode 100755 index 0000000000..97f7b4c433 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/source/bin/ini_tool @@ -0,0 +1,117 @@ +#!/usr/bin/env python + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2011 Travis Glenn Hansen (travisghansen@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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +from configobj import ConfigObj +import sys +import os +import string + +python_major = sys.version_info[0] +python_minor = sys.version_info[1] + +prog="ini_tool" +description="""Read/Write config files. + +Examples: + %(prog)s --file config.ini --action read --option [section:]username + %(prog)s --file config.ini --action write --option [section:]username --value foo""" % {'prog':prog} + +def option_required_error(option): + parser.print_usage() + print prog + ": error: " + option + " is required" + exit(2) + +if python_major > 2 or (python_major == 2 and python_minor >= 7): + import argparse + + parser = argparse.ArgumentParser( + prog=prog, + description=description, + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + + parser.add_argument('--file', help='file to read/write to/from', required=True) + parser.add_argument('--action', help='read|write', required=True) + parser.add_argument('--option', help='the option key', required=True) + parser.add_argument('--value', help='value to store in the given option (only for write action)') + + options = parser.parse_args() + +else: + import optparse + + parser = optparse.OptionParser( + prog=prog, + description=description, + ) + + parser.add_option('--file', help='file to read/write to/from') + parser.add_option('--action', help='read|write') + parser.add_option('--option', help='the option key') + parser.add_option('--value', help='value to store in the given option (only for write action)') + + (options, args) = parser.parse_args() + + if not options.file: + option_required_error("--file") + if not options.action: + option_required_error("--action") + if not options.option: + option_required_error("--option") + + +if options.action != "read" and options.action != "write": + print "'" + options.action + "' is not a valid action" + parser.print_help() + exit(2) + +if options.action == "read" and not os.path.isfile(options.file): + print "'" + options.file + "' is not a file" + exit(2) + +config = ConfigObj(options.file) +keys = string.split(options.option, ":") +key_len = len(keys) +current_section = config + +if options.action == 'read': + i = 1 + for key in keys: + if i == key_len: + print current_section[key] + exit(0) + else: + current_section = current_section[key] + i += 1 +elif options.action == 'write': + i = 1 + for key in keys: + if i == key_len: + current_section[key] = options.value + elif key not in current_section: + current_section[key] = {} + current_section = current_section[key] + i += 1 + + config.write() +else: + exit(1) \ No newline at end of file diff --git a/packages/addons/downloadmanager/CouchPotato/source/default.py b/packages/addons/downloadmanager/CouchPotato/source/default.py new file mode 100644 index 0000000000..08ea1c0de4 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/source/default.py @@ -0,0 +1,26 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +import sys +import xbmcaddon +import os + +if ( __name__ == "__main__" ): + os.system("start.sh") diff --git a/packages/addons/downloadmanager/CouchPotato/source/start.sh b/packages/addons/downloadmanager/CouchPotato/source/start.sh new file mode 100755 index 0000000000..7f956d88a2 --- /dev/null +++ b/packages/addons/downloadmanager/CouchPotato/source/start.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com) +# +# 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + + export PATH="$PATH:./bin" + export PYTHONPATH="$PYTHONPATH:./pylib" + + COUCHPOTATO_HOME="$HOME/.xbmc/userdata/addon_data/addon.downloadmanager.CouchPotato" + SABNZBD_SETTINGS="$HOME/.xbmc/userdata/addon_data/addon.downloadmanager.SABnzbd/sabnzbd.ini" + XBMC_SETTINGS="$HOME/.xbmc/userdata/guisettings.xml" + + write_ini() { + python bin/ini_tool --action=write \ + --file=$COUCHPOTATO_HOME/config.ini \ + --option="$1:$2" \ + --value="$3" + } + + read_sabconfig() { + python bin/ini_tool --action=read \ + --file=$SABNZBD_SETTINGS \ + --option="$1:$2" + } + + read_xbmcconfig() { + grep "<$1>" $XBMC_SETTINGS | sed -e "s,[[:space:]]*<$1>,," -e "s,,," + } + + mkdir -p $COUCHPOTATO_HOME + chmod +x ./bin/* + + sleep 5 + + if [ ! -f "$COUCHPOTATO_HOME/config.ini" ]; then + COUCHPOTATO_FIRSTRUN="yes" + fi + + # default values + COUCHPOTATO_LAUNCHBROWSER="False" + COUCHPOTATO_VERSIONCHECK="False" + COUCHPOTATO_PORT="8083" + COUCHPOTATO_USEXBMC="True" + COUCHPOTATO_UPDATEXBMC="True" + + # read xbmc settings + XBMC_HOST="127.0.0.1" + XBMC_PORT=`read_xbmcconfig webserverport` + XBMC_USER=`read_xbmcconfig webserverusername` + XBMC_PWD=`read_xbmcconfig webserverpassword` + + # read sabnzbd settings + SABNZBD_HOST="127.0.0.1" + SABNZBD_PORT="8081" + SABNZBD_APIKEY=`read_sabconfig misc api_key` + SABNZBD_WEBUSERNAME=`read_sabconfig misc username` + SABNZBD_WEBPASSWORD=`read_sabconfig misc password` + + if [ -z "$COUCHPOTATO_HOST" ]; then + COUCHPOTATO_HOST="0.0.0.0" + fi + + write_ini global host $COUCHPOTATO_HOST + write_ini global port $COUCHPOTATO_PORT + write_ini global username $SABNZBD_WEBUSERNAME + write_ini global password $SABNZBD_WEBPASSWORD + write_ini global launchbrowser $COUCHPOTATO_LAUNCHBROWSER + write_ini global updater $COUCHPOTATO_VERSIONCHECK + + write_ini Sabnzbd username $SABNZBD_WEBUSERNAME + write_ini Sabnzbd password $SABNZBD_WEBPASSWORD + write_ini Sabnzbd apikey $SABNZBD_APIKEY + write_ini Sabnzbd host "$SABNZBD_HOST:$SABNZBD_PORT" + + write_ini XBMC enabled $COUCHPOTATO_USEXBMC + write_ini XBMC host "$XBMC_HOST:$XBMC_PORT" + write_ini XBMC username $XBMC_USER + write_ini XBMC password $XBMC_PWD + + if [ "$COUCHPOTATO_FIRSTRUN" = "yes" ]; then + write_ini XBMC updateoneonly $COUCHPOTATO_UPDATEXBMC + fi + + python ./CouchPotato/CouchPotato.py -d --datadir $COUCHPOTATO_HOME --config $COUCHPOTATO_HOME/config.ini diff --git a/packages/addons/downloadmanager/SABnzbd/addon b/packages/addons/downloadmanager/SABnzbd/addon new file mode 100755 index 0000000000..88dd090e00 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/addon @@ -0,0 +1,37 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/$1 + cp -PR $PKG_BUILD/* $ADDON_BUILD/$PKG_ADDON_ID/$1 + cp -PR $PKG_DIR/config/settings.xml* $ADDON_BUILD/$PKG_ADDON_ID/settings-default.xml + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $BUILD/par2cmdline*/par2 $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $BUILD/unrar/unrar $ADDON_BUILD/$PKG_ADDON_ID/bin + cp $BUILD/unzip*/unzip $ADDON_BUILD/$PKG_ADDON_ID/bin + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib + cp -R $BUILD/Cheetah*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib + cp -R $BUILD/pyOpenSSL*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib + cp -R $BUILD/yenc*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib diff --git a/packages/addons/downloadmanager/SABnzbd/changelog.txt b/packages/addons/downloadmanager/SABnzbd/changelog.txt new file mode 100644 index 0000000000..86e63d6a63 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/changelog.txt @@ -0,0 +1,2 @@ +0.99.1 +- initial version SABnzbd-0.6.0RC2 \ No newline at end of file diff --git a/packages/addons/downloadmanager/SABnzbd/config/settings.xml b/packages/addons/downloadmanager/SABnzbd/config/settings.xml new file mode 100644 index 0000000000..20c2a69b4e --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/config/settings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/packages/addons/downloadmanager/SABnzbd/icon/icon.png b/packages/addons/downloadmanager/SABnzbd/icon/icon.png new file mode 100644 index 0000000000..2c62900063 Binary files /dev/null and b/packages/addons/downloadmanager/SABnzbd/icon/icon.png differ diff --git a/packages/network/SABnzbd/meta b/packages/addons/downloadmanager/SABnzbd/meta similarity index 64% rename from packages/network/SABnzbd/meta rename to packages/addons/downloadmanager/SABnzbd/meta index 02ab002901..5ba1ae8918 100644 --- a/packages/network/SABnzbd/meta +++ b/packages/addons/downloadmanager/SABnzbd/meta @@ -19,18 +19,21 @@ ################################################################################ PKG_NAME="SABnzbd" -PKG_VERSION="0.5.6" +PKG_VERSION="0.6.0RC2" PKG_REV="1" PKG_ARCH="any" PKG_LICENSE="OSS" PKG_SITE="http://sabnzbd.org/" -PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/${PKG_NAME}-${PKG_VERSION}-src.tar.gz" -PKG_DEPENDS="Cheetah pyOpenSSL yenc unrar unzip par2cmdline" -PKG_BUILD_DEPENDS="toolchain" +#PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/${PKG_NAME}-${PKG_VERSION}-src.tar.gz" +PKG_URL="$SOURCEFORGE_SRC/sabnzbdplus/sabnzbdplus-beta/sabnzbd-${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}-src.tar.gz" +PKG_DEPENDS="Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline" +PKG_BUILD_DEPENDS="toolchain Python Cheetah pyOpenSSL yenc unrar unzip par2cmdline" PKG_PRIORITY="optional" -PKG_SECTION="plugins" -PKG_SHORTDESC="SABnzbd: makes Usenet as simple and streamlined as possible by automating everything we can." -PKG_LONGDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction." -PKG_IS_ADDON="no" +PKG_SECTION="downloadmanager" +PKG_SHORTDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can." +PKG_LONGDESC="SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add a .nzb file. SABnzbd+ takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" PKG_AUTORECONF="no" diff --git a/packages/addons/downloadmanager/SABnzbd/patches/SABnzbd-0.6.0RC2-001_remove_default_settings-0.2.patch b/packages/addons/downloadmanager/SABnzbd/patches/SABnzbd-0.6.0RC2-001_remove_default_settings-0.2.patch new file mode 100644 index 0000000000..6929607456 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/patches/SABnzbd-0.6.0RC2-001_remove_default_settings-0.2.patch @@ -0,0 +1,214 @@ +diff -Naur SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_directories.tmpl SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_directories.tmpl +--- SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_directories.tmpl 2011-04-10 16:06:26.000000000 +0200 ++++ SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_directories.tmpl 2011-04-22 15:08:09.323174151 +0200 +@@ -109,49 +109,6 @@ + + + +-
+-
+-

$T('systemFolders')

+-

$T('base-folder'):
$my_lcldata

+-
+-
+-
+- +- +- +-
+-
+- +- +-
+-
+- +- +-
+-
+-
+- +
+
+

 

+diff -Naur SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_general.tmpl SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_general.tmpl +--- SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_general.tmpl 2011-04-10 16:06:26.000000000 +0200 ++++ SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_general.tmpl 2011-04-22 14:59:06.304131312 +0200 +@@ -14,82 +14,6 @@ +
+
+
+- +- +-
+-
+- +- +-
+-
+- +- +-
+-
+- +- +-
+-
+- +- +-
+-
+- +- +-
+-
+ +-
+
+
+ +@@ -152,36 +69,6 @@ + $T('explain-enable_https') + + +-
+- +- +-
+-
+- +- +-
+-
+- +- +-
+ + + +diff -Naur SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_switches.tmpl SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_switches.tmpl +--- SABnzbd-0.6.0RC2/interfaces/Plush/templates/config_switches.tmpl 2011-04-10 16:06:26.000000000 +0200 ++++ SABnzbd-0.6.0RC2.patch/interfaces/Plush/templates/config_switches.tmpl 2011-04-22 15:21:32.791455752 +0200 +@@ -12,20 +12,6 @@ +

$T('swtag-general')

+ +
+-
+- 0 then "checked=1" else ""#--> /> +- +-
+-
+- 0 then "checked=1" else ""#--> /> +- +-
+ +
+ 0 then "checked=1" else ""#--> /> diff --git a/packages/addons/downloadmanager/SABnzbd/source/bin/ini_tool b/packages/addons/downloadmanager/SABnzbd/source/bin/ini_tool new file mode 100755 index 0000000000..97f7b4c433 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/bin/ini_tool @@ -0,0 +1,117 @@ +#!/usr/bin/env python + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2011 Travis Glenn Hansen (travisghansen@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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +from configobj import ConfigObj +import sys +import os +import string + +python_major = sys.version_info[0] +python_minor = sys.version_info[1] + +prog="ini_tool" +description="""Read/Write config files. + +Examples: + %(prog)s --file config.ini --action read --option [section:]username + %(prog)s --file config.ini --action write --option [section:]username --value foo""" % {'prog':prog} + +def option_required_error(option): + parser.print_usage() + print prog + ": error: " + option + " is required" + exit(2) + +if python_major > 2 or (python_major == 2 and python_minor >= 7): + import argparse + + parser = argparse.ArgumentParser( + prog=prog, + description=description, + formatter_class=argparse.RawDescriptionHelpFormatter, + ) + + parser.add_argument('--file', help='file to read/write to/from', required=True) + parser.add_argument('--action', help='read|write', required=True) + parser.add_argument('--option', help='the option key', required=True) + parser.add_argument('--value', help='value to store in the given option (only for write action)') + + options = parser.parse_args() + +else: + import optparse + + parser = optparse.OptionParser( + prog=prog, + description=description, + ) + + parser.add_option('--file', help='file to read/write to/from') + parser.add_option('--action', help='read|write') + parser.add_option('--option', help='the option key') + parser.add_option('--value', help='value to store in the given option (only for write action)') + + (options, args) = parser.parse_args() + + if not options.file: + option_required_error("--file") + if not options.action: + option_required_error("--action") + if not options.option: + option_required_error("--option") + + +if options.action != "read" and options.action != "write": + print "'" + options.action + "' is not a valid action" + parser.print_help() + exit(2) + +if options.action == "read" and not os.path.isfile(options.file): + print "'" + options.file + "' is not a file" + exit(2) + +config = ConfigObj(options.file) +keys = string.split(options.option, ":") +key_len = len(keys) +current_section = config + +if options.action == 'read': + i = 1 + for key in keys: + if i == key_len: + print current_section[key] + exit(0) + else: + current_section = current_section[key] + i += 1 +elif options.action == 'write': + i = 1 + for key in keys: + if i == key_len: + current_section[key] = options.value + elif key not in current_section: + current_section[key] = {} + current_section = current_section[key] + i += 1 + + config.write() +else: + exit(1) \ No newline at end of file diff --git a/packages/addons/downloadmanager/SABnzbd/source/default.py b/packages/addons/downloadmanager/SABnzbd/source/default.py new file mode 100644 index 0000000000..5f07881ccc --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/default.py @@ -0,0 +1,26 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +import sys +import xbmcaddon +import os + +if ( __name__ == "__main__" ): + os.system("sh start.sh") diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/language/Dutch/strings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/language/Dutch/strings.xml new file mode 100644 index 0000000000..69ffefaeb3 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/language/Dutch/strings.xml @@ -0,0 +1,12 @@ + + + + + SABnzbd + Gebruikers instellingen + Gebruikersnaam + Wachtwoord + Netwerk instellingen + Toegestane IP adressen + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/language/English/strings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/language/English/strings.xml new file mode 100644 index 0000000000..68cb162a30 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/language/English/strings.xml @@ -0,0 +1,12 @@ + + + + + SABnzbd + User Settings + Username + Password + Network Settings + Allowed IP addresses + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/language/French/strings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/language/French/strings.xml new file mode 100644 index 0000000000..fb3f0fc1f9 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/language/French/strings.xml @@ -0,0 +1,12 @@ + + + + + SABnzbd + Préférences utilisateur + Nom d'utilisateur + Mot de passe + Préférences réseau + Adresses IP autorisées + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/language/German/strings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/language/German/strings.xml new file mode 100644 index 0000000000..ad209d26c7 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/language/German/strings.xml @@ -0,0 +1,12 @@ + + + + + SABnzbd + Benutzer Einstellungen + Benutzername + Passwort + Netzwerk Einstellungen + Erlaubte IP Adressen + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/language/Norwegian/strings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/language/Norwegian/strings.xml new file mode 100644 index 0000000000..a70961eb4c --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/language/Norwegian/strings.xml @@ -0,0 +1,12 @@ + + + + + SABnzbd + Bruker Instillinger + Brukernavn + Passord + Nettverksinstillinger + Tilatte IP addresser + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/resources/settings.xml b/packages/addons/downloadmanager/SABnzbd/source/resources/settings.xml new file mode 100644 index 0000000000..8ee2bb0ab2 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/resources/settings.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/packages/addons/downloadmanager/SABnzbd/source/start.sh b/packages/addons/downloadmanager/SABnzbd/source/start.sh new file mode 100755 index 0000000000..c272b269d3 --- /dev/null +++ b/packages/addons/downloadmanager/SABnzbd/source/start.sh @@ -0,0 +1,110 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +export PATH="$PATH:./bin" +export PYTHONPATH="$PYTHONPATH:./pylib" + +SABNZBD_HOME="$HOME/.xbmc/userdata/addon_data/addon.downloadmanager.SABnzbd" +SABNZBD_SETTINGS="$SABNZBD_HOME/settings.xml" + +SABNZBD_DISABLEAPIKEY="0" +SABNZBD_CHECKRELEASE="0" +SABNZBD_LAUNCHBROWSER="0" + +SABNZBD_HTTPPORT="8081" +SABNZBD_HTTPSPORT="9081" +SABNZBD_HTTPSCERT="server.cert" +SABNZBD_HTTPSKEY="server.key" + +SABNZBD_SKIN="Plush" +SABNZBD_SKIN2="Plush" +SABNZBD_WEBCOLOR="gold" +SABNZBD_WEBCOLOR2="gold" + +SABNZBD_LOGDIR="logs" +SABNZBD_ADMINDIR="admin" +SABNZBD_BACKUPDIR="backup" + +SABNZBD_INCOMPLETEDIR="/storage/downloads/incomplete" +SABNZBD_COMPLETEDIR="/storage/downloads" +SABNZBD_WATCHDIR="/storage/downloads/watch" + +write_ini() { +python bin/ini_tool --action=write \ + --file=$SABNZBD_HOME/sabnzbd.ini \ + --option="$1:$2" \ + --value="$3" +} + +mkdir -p $SABNZBD_HOME +chmod +x ./bin/* + +if [ ! -f "$SABNZBD_SETTINGS" ]; then + cp settings-default.xml $SABNZBD_SETTINGS +fi + +if [ ! -f "$SABNZBD_HOME/sabnzbd.ini" ]; then + SABNZBD_FIRSTRUN="yes" +fi + +# use settings from xbmc setup dialog +SABNZBD_USER=`grep SABNZBD_USER $SABNZBD_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"` +SABNZBD_PWD=`grep SABNZBD_PWD $SABNZBD_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"` +SABNZBD_IP=`grep SABNZBD_IP $SABNZBD_SETTINGS | awk '{print $3 }' | sed -e "s,value=,," -e "s,\",,g"` + +if [ -z "$SABNZBD_IP" ]; then + SABNZBD_IP="0.0.0.0" +fi + +write_ini misc disable_api_key $SABNZBD_DISABLEAPIKEY +write_ini misc check_new_rel $SABNZBD_CHECKRELEASE +write_ini misc auto_browser $SABNZBD_LAUNCHBROWSER +write_ini misc username $SABNZBD_USER +write_ini misc password $SABNZBD_PWD +write_ini misc port $SABNZBD_HTTPPORT +write_ini misc https_port $SABNZBD_HTTPSPORT +write_ini misc https_cert $SABNZBD_HTTPSCERT +write_ini misc https_key $SABNZBD_HTTPSKEY +write_ini misc host $SABNZBD_IP +write_ini misc web_dir $SABNZBD_SKIN +write_ini misc web_dir2 $SABNZBD_SKIN2 +write_ini misc web_color $SABNZBD_WEBCOLOR +write_ini misc web_color2 $SABNZBD_WEBCOLOR2 +write_ini misc log_dir $SABNZBD_LOGDIR +write_ini misc admin_dir $SABNZBD_ADMINDIR +write_ini misc nzb_backup_dir $SABNZBD_BACKUPDIR + +if [ "$SABNZBD_FIRSTRUN" = "yes" ]; then + mkdir -p "$SABNZBD_INCOMPLETEDIR" + mkdir -p "$SABNZBD_COMPLETEDIR" + mkdir -p "$SABNZBD_WATCHDIR" + write_ini misc download_dir $SABNZBD_INCOMPLETEDIR + write_ini misc complete_dir $SABNZBD_COMPLETEDIR + write_ini misc dirscan_dir $SABNZBD_WATCHDIR + + write_ini servers:localhost name "localhost" + write_ini servers:localhost host "localhost" + write_ini servers:localhost port "119" + write_ini servers:localhost enable "0" +fi + +python ./SABnzbd/SABnzbd.py -d -f $SABNZBD_HOME/sabnzbd.ini -l 0 diff --git a/packages/addons/downloadmanager/SickBeard/addon b/packages/addons/downloadmanager/SickBeard/addon new file mode 100755 index 0000000000..9b37c454b5 --- /dev/null +++ b/packages/addons/downloadmanager/SickBeard/addon @@ -0,0 +1,30 @@ +#!/bin/sh + +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com) +# +# 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +. config/options $1 + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/$1 + cp -PR $PKG_BUILD/* $ADDON_BUILD/$PKG_ADDON_ID/$1 + +mkdir -p $ADDON_BUILD/$PKG_ADDON_ID/pylib + cp -R $BUILD/Cheetah*/.install/usr/lib/python*/site-packages/* $ADDON_BUILD/$PKG_ADDON_ID/pylib \ No newline at end of file diff --git a/packages/addons/downloadmanager/SickBeard/changelog.txt b/packages/addons/downloadmanager/SickBeard/changelog.txt new file mode 100644 index 0000000000..7b85927133 --- /dev/null +++ b/packages/addons/downloadmanager/SickBeard/changelog.txt @@ -0,0 +1,2 @@ +0.99.1 +- initial version SickBeard-48caf04 \ No newline at end of file diff --git a/packages/addons/downloadmanager/SickBeard/icon/icon.png b/packages/addons/downloadmanager/SickBeard/icon/icon.png new file mode 100644 index 0000000000..682044c5cc Binary files /dev/null and b/packages/addons/downloadmanager/SickBeard/icon/icon.png differ diff --git a/packages/addons/downloadmanager/SickBeard/meta b/packages/addons/downloadmanager/SickBeard/meta new file mode 100644 index 0000000000..4f9ca06405 --- /dev/null +++ b/packages/addons/downloadmanager/SickBeard/meta @@ -0,0 +1,40 @@ +################################################################################ +# This file is part of OpenELEC - http://www.openelec.tv +# Copyright (C) 2009-2011 Stephan Raue (stephan@openelec.tv) +# Copyright (C) 2011 Anthony Nash (nash.ant@gmail.com) +# +# 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, 675 Mass Ave, Cambridge, MA 02139, USA. +# http://www.gnu.org/copyleft/gpl.html +################################################################################ + +PKG_NAME="SickBeard" +PKG_VERSION="48caf04" +PKG_REV="1" +PKG_ARCH="any" +PKG_LICENSE="OSS" +PKG_SITE="https://github.com/midgetspy/Sick-Beard" +PKG_URL="$OPENELEC_SRC/${PKG_NAME}-${PKG_VERSION}.tar.bz2" +PKG_DEPENDS="Python SABnzbd Cheetah" +PKG_BUILD_DEPENDS="toolchain Python Cheetah" +PKG_PRIORITY="optional" +PKG_SECTION="downloadmanager" +PKG_SHORTDESC="SickBeard: automated TV show downloading." +PKG_LONGDESC="SickBeard: automated TV show downloading." + +PKG_IS_ADDON="yes" +PKG_ADDON_TYPE="xbmc.service" +PKG_ADDON_REQUIRES="addon.downloadmanager.SABnzbd:0.99.1" + +PKG_AUTORECONF="no" diff --git a/packages/addons/downloadmanager/SickBeard/patches/SickBeard-48caf04-001-remove_logo_update-header_and_donate_button-0.1.patch b/packages/addons/downloadmanager/SickBeard/patches/SickBeard-48caf04-001-remove_logo_update-header_and_donate_button-0.1.patch new file mode 100644 index 0000000000..a8608033aa --- /dev/null +++ b/packages/addons/downloadmanager/SickBeard/patches/SickBeard-48caf04-001-remove_logo_update-header_and_donate_button-0.1.patch @@ -0,0 +1,44 @@ +diff -Naur SickBeard-48caf04/data/interfaces/default/config.tmpl SickBeard-48caf04.patch/data/interfaces/default/config.tmpl +--- SickBeard-48caf04/data/interfaces/default/config.tmpl 2011-04-22 19:15:10.000000000 +0200 ++++ SickBeard-48caf04.patch/data/interfaces/default/config.tmpl 2011-04-23 03:57:14.515808144 +0200 +@@ -24,9 +24,4 @@ + +
+ +- +- +- +-
[donate]Sickbeard is free, but you can contribute by giving a donation.
+- + #include $os.path.join($sickbeard.PROG_DIR, "data/interfaces/default/inc_bottom.tmpl") +diff -Naur SickBeard-48caf04/data/interfaces/default/inc_top.tmpl SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl +--- SickBeard-48caf04/data/interfaces/default/inc_top.tmpl 2011-04-22 19:15:10.000000000 +0200 ++++ SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl 2011-04-23 03:59:09.088665913 +0200 +@@ -147,19 +147,6 @@ + + + +-#if $sickbeard.NEWEST_VERSION_STRING: +-
+-
+- $sickbeard.NEWEST_VERSION_STRING +-
+-
+-
+-#end if +- + + #if $varExists('submenu'): + + +- +-
+-
+-

Libnotify Libnotify

+-

The standard desktop notification API for Linux/*nix systems. This notifier will only function if the pynotify module is installed (Ubuntu/Debian package python-notify).

+-
+- +-
+-
+- +- +-
+- +-
+-
+- +- +-
+- +-
+- +- +-
+- +-
Click below to test.
+- +- +- +-
+- +-
+-
+- +
+ +
+diff -Naur SickBeard-48caf04/data/interfaces/default/inc_top.tmpl SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl +--- SickBeard-48caf04/data/interfaces/default/inc_top.tmpl 2011-04-23 03:59:09.000000000 +0200 ++++ SickBeard-48caf04.patch/data/interfaces/default/inc_top.tmpl 2011-04-23 14:24:01.035048035 +0200 +@@ -172,7 +172,6 @@ + +