#!/bin/sh # usage: ./mkdeb-atv2.sh release/debug (case insensitive) # Allows us to run mkdeb-atv2.sh from anywhere in the three, rather than the tools/darwin/packaging/atv2 folder only XBMC_DEPENDS_ROOT=@DEPENDS_ROOT_FOR_XCODE@ SWITCH=`echo $1 | tr [A-Z] [a-z]` DIRNAME=`dirname $0` DSYM_TARGET_DIR=${XBMC_DEPENDS_ROOT}/dSyms DSYM_FILENAME=@APP_NAME@.frappliance.dSYM if [ ${SWITCH:-""} = "debug" ]; then echo "Packaging Debug target for ATV2" APP="$DIRNAME/../../../../build/Debug-iphoneos/@APP_NAME@.frappliance" DSYM="$DIRNAME/../../../../build/Debug-iphoneos/$DSYM_FILENAME" elif [ ${SWITCH:-""} = "release" ]; then echo "Packaging Release target for ATV2" APP="$DIRNAME/../../../../build/Release-iphoneos/@APP_NAME@.frappliance" DSYM="$DIRNAME/../../../../build/Release-iphoneos/$DSYM_FILENAME" echo $APP else echo "You need to specify the build target" exit 1 fi #copy bzip2 of dsym to xbmc-depends install dir if [ -d $DSYM ]; then if [ -d $DSYM_TARGET_DIR ]; then tar -C $DSYM/.. -c $DSYM_FILENAME/ | bzip2 > $DSYM_TARGET_DIR/`$DIRNAME/../gitrev-posix`-${DSYM_FILENAME}.tar.bz2 fi fi if [ ! -d $APP ]; then echo "@APP_NAME@.frappliance not found! are you sure you built $1 target?" exit 1 fi if [ -f "$XBMC_DEPENDS_ROOT/buildtools-native/bin/fakeroot" ]; then SUDO="$XBMC_DEPENDS_ROOT/buildtools-native/bin/fakeroot" elif [ -f "/usr/libexec/fauxsu/libfauxsu.dylib" ]; then export DYLD_INSERT_LIBRARIES=/usr/libexec/fauxsu/libfauxsu.dylib elif [ -f "/usr/bin/sudo" ]; then SUDO="/usr/bin/sudo" fi if [ -f "$XBMC_DEPENDS_ROOT/buildtools-native/bin/dpkg-deb" ]; then # make sure we pickup our tar, gnutar will fail when dpkg -i bin_path=$(cd ${XBMC_DEPENDS_ROOT}/buildtools-native/bin; pwd) export PATH=${bin_path}:${PATH} fi PACKAGE=org.xbmc.@APP_NAME_LC@-atv2 VERSION=@APP_VERSION_MAJOR@.@APP_VERSION_MINOR@ REVISION=0 if [ "@APP_VERSION_TAG_LC@" != "" ]; then REVISION=$REVISION~@APP_VERSION_TAG_LC@ fi ARCHIVE=${PACKAGE}_${VERSION}-${REVISION}_iphoneos-arm.deb SIZE="$(du -s -k ${APP} | awk '{print $1}')" echo Creating $PACKAGE package version $VERSION revision $REVISION ${SUDO} rm -rf $DIRNAME/$PACKAGE ${SUDO} rm -rf $DIRNAME/$ARCHIVE # create debian control file. mkdir -p $DIRNAME/$PACKAGE/DEBIAN echo "Package: $PACKAGE" > $DIRNAME/$PACKAGE/DEBIAN/control echo "Priority: Extra" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Name: @APP_NAME@-ATV2" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Depends: curl, org.awkwardtv.whitelist, com.nito.updatebegone, org.xbmc.@APP_NAME_LC@-seatbeltunlock" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Version: $VERSION-$REVISION" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Architecture: iphoneos-arm" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Installed-Size: $SIZE" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Description: @APP_NAME@ Entertainment Center for AppleTV 2" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Homepage: http://kodi.tv/" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Maintainer: Memphiz" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Author: Team-@APP_NAME@" >> $DIRNAME/$PACKAGE/DEBIAN/control echo "Section: Multimedia" >> $DIRNAME/$PACKAGE/DEBIAN/control # prerm: called on remove and upgrade - get rid of existing bits. echo "#!/bin/sh" > $DIRNAME/$PACKAGE/DEBIAN/prerm echo "find /Applications/@APP_NAME@.frappliance -delete" >> $DIRNAME/$PACKAGE/DEBIAN/prerm echo "if [ \"\`uname -r\`\" = \"10.3.1\" ]; then" >> $DIRNAME/$PACKAGE/DEBIAN/prerm echo " find /Applications/Lowtide.app/Appliances/@APP_NAME@.frappliance -delete" >> $DIRNAME/$PACKAGE/DEBIAN/prerm echo "else" >> $DIRNAME/$PACKAGE/DEBIAN/prerm echo " find /Applications/AppleTV.app/Appliances/@APP_NAME@.frappliance -delete" >> $DIRNAME/$PACKAGE/DEBIAN/prerm echo "fi" >> $DIRNAME/$PACKAGE/DEBIAN/prerm chmod +x $DIRNAME/$PACKAGE/DEBIAN/prerm # postinst: symlink @APP_NAME@.frappliance into correct location and reload Lowtide/AppleTV. echo "#!/bin/sh" > $DIRNAME/$PACKAGE/DEBIAN/postinst echo "chown -R mobile:mobile /Applications/@APP_NAME@.frappliance" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "cp /Applications/@APP_NAME@.frappliance/AppIcon.png /Applications/AppleTV.app/com.apple.frontrow.appliance.@APP_NAME_LC@\@720p.png" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "mkdir -p /private/var/mobile/Library/Caches/AppleTV/MainMenu/" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "cp /Applications/@APP_NAME@.frappliance/AppIcon.png /private/var/mobile/Library/Caches/AppleTV/MainMenu/com.apple.frontrow.appliance.@APP_NAME_LC@@720.png" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "cp /Applications/@APP_NAME@.frappliance/AppIcon.png /Applications/@APP_NAME@.frappliance/TopRowIcon.png" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "if [ \"\`uname -r\`\" = \"10.3.1\" ]; then" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " ln -sf /Applications/@APP_NAME@.frappliance /Applications/Lowtide.app/Appliances/@APP_NAME@.frappliance" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " killall Lowtide" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "else" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " mkdir -p /Applications/AppleTV.app/Appliances" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " ln -sf /Applications/@APP_NAME@.frappliance /Applications/AppleTV.app/Appliances/@APP_NAME@.frappliance" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " killall AppleTV" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "fi" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "FILE=/var/mobile/Media/Photos/seas0nTV.png" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "if [ -f \$FILE ]; then" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " echo \"File \$FILE exists. removing...\"" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo " rm \$FILE" >> $DIRNAME/$PACKAGE/DEBIAN/postinst echo "fi" >> $DIRNAME/$PACKAGE/DEBIAN/postinst cat $DIRNAME/../migrate_to_kodi_ios.sh >> $DIRNAME/$PACKAGE/DEBIAN/postinst chmod +x $DIRNAME/$PACKAGE/DEBIAN/postinst # prep @APP_NAME@.frappliance mkdir -p $DIRNAME/$PACKAGE/Applications cp -r $APP $DIRNAME/$PACKAGE/Applications/ find $DIRNAME/$PACKAGE/Applications/ -name '.svn' -exec rm -rf {} \; find $DIRNAME/$PACKAGE/Applications/ -name '.git*' -exec rm -rf {} \; find $DIRNAME/$PACKAGE/Applications/ -name '.DS_Store' -exec rm -rf {} \; find $DIRNAME/$PACKAGE/Applications/ -name '*.xcent' -exec rm -rf {} \; # set ownership to root:root ${SUDO} chown -R 0:0 $DIRNAME/$PACKAGE echo Packaging $PACKAGE # Tell tar, pax, etc. on Mac OS X 10.4+ not to archive # extended attributes (e.g. resource forks) to ._* archive members. # Also allows archiving and extracting actual ._* files. export COPYFILE_DISABLE=true export COPY_EXTENDED_ATTRIBUTES_DISABLE=true # ${SUDO} dpkg-deb -bZ lzma $DIRNAME/$PACKAGE $DIRNAME/$ARCHIVE ${SUDO} chown 501:20 $DIRNAME/$ARCHIVE dpkg-deb --info $DIRNAME/$ARCHIVE dpkg-deb --contents $DIRNAME/$ARCHIVE # clean up by removing package dir ${SUDO} rm -rf $DIRNAME/$PACKAGE