A new package arrived again with a lot of fixes…
Dropbox is already updated, repo will follow soon.
Have a nice Weekend, Eric
A new package arrived again with a lot of fixes…
Dropbox is already updated, repo will follow soon.
Have a nice Weekend, Eric
The 5.0.3 fixes a few bugs
If you had problems updating from 4.5.x this update should fix them.
Have a nice weekend, Eric
As many of you are struggling with my „new scripted“ versions 029 and 030 I rolled back to the 028, which means:
Another point is the separation of Subsonic and Madsonic (aka MashupMod) which means that from now on there are two independent packages. You can only install one at a time. I had to do this because a package that contains both would just be to large. Also I can now update the Madsonic package without touching the original one.
Also I have removed the Subtunes interface because I didn’t like it and it doesn’t seem to be continued anymore.
In DSM 4.2 „Perl“ becomes an official Synology package. It was installed by default before, so I didn’t care about whether it’s installed or not. It is required during the installation process. Please make sure it is installed before you start the Subsonic installation.
By now both packages are available in my Dropbox beta Folder only:
https://www.dropbox.com/sh/y9lcl2xsznvve80/31mcnc5gpE
Please let me know whats wrong with these ones, especially during install and startup (I haven’t worked on the transcoding problems)
I haven’t encountered any problems using DSM 4.2. In fact I like the new package center design. I’ve added a few screen shots to the information section of Subsonic and ownCloud.
Finally 😉
ownCloud 5 is out and updating should be no big deal. Simply hit the update button, follow the usual instructions and install ownCloud.
After the installation is finished browse to your ownCloud page (click the DSM link) and wait for the update to complete (this takes another few seconds…)
You will be redirected to the login page afterwards.
It is already online in my Dropbox Folder
https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2
The repo will be online soon.
___________________________________
Now: Fixing Subsonic package again =(…
Nothing special here just the an usual ownCloud update…
Edit: As you can see in the comments many of you are still having problems on this use the 029 version from my dropbox folder!
https://www.dropbox.com/sh/vd06e2fn2157gh0/kE6FO5J1cD
Hey I am back online and made a new package.
I’m sorry that it won’t please all of you (e.g. the flac transcoding still doesn’t work).
But there are a few fixes in it. All download problems should have been fixed. The Process ID check needed for start and stop procedure has been updated again. All additional packages are now up to date…
The Hibernation should work now (at least with the MashupMod version). I have done a lot of testing with this one, it doesn’t work right from the start but after a few hours when everything is scanned and sorted out the HDDs should stop, and the DiskStation goes into hibernation mode. After that the hibernation behaves like configured in DSM. The DS seems to wake up from time to time for no reason, but I encountered that before even with Subsonic stopped or uninstalled.
Because I just own an ARM DiskStation I can’t do any bug fixing on other DiskStations so please let me know if everything woks as described above or not.
Now have fun with it 😉
PS: I have to work away for the next Weeks so I’m not able to fix anything until I’m home again, but I will try to help you as much as I can 😉
Scripts:
installer.sh
#!/bin/sh #--------Subsonic installer script #--------package maintained at eg-blog.de DOWNLOAD_URL_STANDARD="http://sourceforge.net/projects/subsonic/files/subsonic/4.7/subsonic-4.7-standalone.tar.gz/download" DOWNLOAD_URL_MASHUPMOD="https://www.dropbox.com/s/71lxyirndqv0dgr/MashupMod-4.7_B3158SE.zip" DOWNLOAD_URL_SUBTUNES="http://subtunes.googlecode.com/files/subtunes-0.9.4b.zip" DOWNLOAD_URL_MINISUB="https://github.com/tsquillario/MiniSub/tarball/master" SYNO_CPU_ARCH="`uname -m`" NATIVE_BINS_URL="http://eg-blog.de/download/serviio-native-${SYNO_CPU_ARCH}.tgz" NATIVE_BINS_FILE="`echo ${NATIVE_BINS_URL} | sed -r "s%^.*/(.*)%\1%"`" SHA256_MINISUB="ce4acaa38dc9f3f893f04e49db9f98cd1e4d01a9451539a283156cd0c1158079" SHA256_SUBTUNES="9b9be0d3be3dcb0154032d282e144f1a1ba59530aa437e0e5dd4eb01bc6b2c5d" SHA256_MASHUPMOD="47a274b30d1387a069c13b72789bbfdca57e182d6efc7e5c64f14d216518746b" SHA256_STANDARD="cb798a007a862b2e66ab1d7d345753b157ae287e5dccb094976d02305926bad0" SHA256_armv5tel="9eeb23f4c5746ba495a014b6e30326c7762de0fd06f728e1092b40d59b7d019b" SHA256_ppc="26ee8e796d752ee6c26fdd64726fb7aa4240d381efe2a26a464ca21a4949e11b" SHA256_x86_64="62301d3461166b52724b55d32fb493f9b564aded9eba4fdff9b98bb3c83fdca1" source /etc/profile TEMP_FOLDER="`find / -maxdepth 2 -name '@tmp' | head -n 1`" PUBLIC_FOLDER="`cat /usr/syno/etc/smb.conf | sed -r '/\/public$/!d;s/^.*path=(\/volume[0-9]{1,4}\/public).*$/\1/'`" PID="" subsonic_get_pid () { PID=`ps | grep java | grep subsonic | awk '{print $1}'` echo "$(date +%d.%m.%y_%H:%M:%S): looking for PID" >> ${SYNOPKG_PKGDEST}/subsonic_package.log } preinst () { source /etc/profile ######################################## #check if Java is installed if [ -z ${JAVA_HOME} ]; then echo "Java is not installed or not properly configured. JAVA_HOME is not defined. " > $SYNOPKG_TEMP_LOGFILE echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE echo "$(date +%d.%m.%y_%H:%M:%S): Download and install the Java Synology package from http://wp.me/pVshC-z5" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 fi if [ ! -f ${JAVA_HOME}/bin/java ]; then echo "Java is not installed or not properly configured. The Java binary could not be located. " > $SYNOPKG_TEMP_LOGFILE echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE echo "$(date +%d.%m.%y_%H:%M:%S): Download and install the Java Synology package from http://wp.me/pVshC-z5" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 else echo "$(date +%d.%m.%y_%H:%M:%S): found Java in ${JAVA_HOME}" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi ######################################### #check if Subsonic folder is in public folder wehn restore is selected if [ ! -z ${install_restore} ]; then if [ ! -d $PUBLIC_FOLDER/Subsonic ]; then echo "Can't find a folder named 'Subsonic' in your public folder. " > $SYNOPKG_TEMP_LOGFILE echo "$(date +%d.%m.%y_%H:%M:%S): Can't find a folder named 'Subsonic' in your public folder. " >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "Please check your public folder and make sure there is a folder called Subsonic (with Capital S) in it. Or select 'No' if you don't want to restore anything and just install Subsonic normally" >> $SYNOPKG_TEMP_LOGFILE echo "$(date +%d.%m.%y_%H:%M:%S): Please check your public folder and make sure there is a folder called Subsonic (with Capital S) in it. Or select 'No' if you don't want to restore anything and just install Subsonic normally" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 fi fi ######################################### #is the User Home service enabled? UH_SERVICE=maybe synouser --add userhometest Testing123 "User Home test user" 0 "" "" UHT_HOMEDIR=`cat /etc/passwd | sed -r '/User Home test user/!d;s/^.*:User Home test user:(.*):.*$/\1/'` if echo $UHT_HOMEDIR | grep '/var/services/homes/' > /dev/null; then if [ ! -d $UHT_HOMEDIR ]; then UH_SERVICE=false fi fi synouser --del userhometest if [ ${UH_SERVICE} == "false" ]; then echo "The User Home service is not enabled. Please enable this feature in the User control panel in DSM." >> $SYNOPKG_TEMP_LOGFILE echo "The User Home service is not enabled. Please enable this feature in the User control panel in DSM." >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 else echo "$(date +%d.%m.%y_%H:%M:%S): User home is enabled" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi exit 0 } postinst () { #create subsonic daemon user synouser --add subsonic `${SYNOPKG_PKGDEST}/passgen 1 20` "Subsonic daemon user" 0 "" "" echo "$(date +%d.%m.%y_%H:%M:%S): create subsonic daemon user" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #determine the subsonic user homedir and save that variable in the user's profile #this is needed because librtmp needs to write a file called ~/.swfinfo #and new users seem to inherit a HOME value of /root which they have no permissions for SUBSONIC_HOMEDIR=`cat /etc/passwd | sed -r '/Subsonic daemon user/!d;s/^.*:Subsonic daemon user:(.*):.*$/\1/'` su - subsonic -s /bin/sh -c "echo export HOME=${SUBSONIC_HOMEDIR} >> .profile" ######################################### ##download stuff #select the right mods / version to download/install if [ ! -z ${mashupmod_install} ]; then echo "$(date +%d.%m.%y_%H:%M:%S): download and install MashupMod" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #download Mashupmod wget ${DOWNLOAD_URL_MASHUPMOD} --no-check-certificate --output-document=${SYNOPKG_PKGDEST}/MashupMod.zip if [ -f ${SYNOPKG_PKGDEST}/MashupMod.zip ]; then echo "$(date +%d.%m.%y_%H:%M:%S): downloaded MashupMod from $DOWNLOAD_URL_MASHUPMOD" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #CheckSum if [ `/opt/bin/sha256sum ${SYNOPKG_PKGDEST}/MashupMod.zip | awk '{ print $1 }` = $SHA256_MASHUPMOD ]; then echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum OK" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum failed for MashupMod.zip" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "SHA256 checksum failed for MashupMod.zip. The file was probaply modified or updated" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi else if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/Mashupmod.zip ]; then cp ${PUBLIC_FOLDER}/Mashupmod.zip ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): copied Mashupmod install files from public folder" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "There was a problem downloading Mashupmod from the official download link, " >> $SYNOPKG_TEMP_LOGFILE echo "which was ${DOWNLOAD_URL_MASHUPMOD}" >> $SYNOPKG_TEMP_LOGFILE echo "Alternatively, you may download this file manually and place it in the 'public' shared folder. and name it Mashupmod.zip" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi fi unzip ${SYNOPKG_PKGDEST}/MashupMod.zip -d ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): extracted MashupMod" >> ${SYNOPKG_PKGDEST}/subsonic_package.log rm ${SYNOPKG_PKGDEST}/MashupMod.zip echo "$(date +%d.%m.%y_%H:%M:%S): deleted downloaded files" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else #download Subsonic echo "$(date +%d.%m.%y_%H:%M:%S): download and install Subsonic standard" >> ${SYNOPKG_PKGDEST}/subsonic_package.log wget ${DOWNLOAD_URL_STANDARD} --output-document=${SYNOPKG_PKGDEST}/Subsonic.tgz if [ -f ${SYNOPKG_PKGDEST}/Subsonic.tgz ]; then echo "$(date +%d.%m.%y_%H:%M:%S): downloaded Subsonic install file from $DOWNLOAD_URL_STANDARD" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Checksum if [ `/opt/bin/sha256sum ${SYNOPKG_PKGDEST}/Subsonic.tgz | awk '{ print $1 }` = $SHA256_STANDARD ]; then echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum OK" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum failed for Subsonic.tgz" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "SHA256 checksum failed for Subsonic.tgz. The file was probaply modified or updated" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi else if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/Subsonic.tar.gz ]; then cp ${PUBLIC_FOLDER}/Subsonic.tgz ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): copied Subsonic install files from public folder" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "There was a problem downloading Subsonic from the official download link, " >> $SYNOPKG_TEMP_LOGFILE echo "which was ${DOWNLOAD_URL_STANDARD}" >> $SYNOPKG_TEMP_LOGFILE echo "Alternatively, you may download this file manually and place it in the 'public' shared folder. and name it Subsonic.tgz" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi fi tar xzf ${SYNOPKG_PKGDEST}/Subsonic.tgz -C ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): extracted Subsonic" >> ${SYNOPKG_PKGDEST}/subsonic_package.log rm ${SYNOPKG_PKGDEST}/Subsonic.tgz echo "$(date +%d.%m.%y_%H:%M:%S): deleted downloaded files" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #delete the original subsonic.sh and use the edited file for Synology if [ -f ${SYNOPKG_PKGDEST}/subsonic.sh ]; then rm ${SYNOPKG_PKGDEST}/subsonic.sh echo "$(date +%d.%m.%y_%H:%M:%S): deleted original subsonic.sh file" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ -f ${SYNOPKG_PKGDEST}/subsonic_synology.sh ]; then mv ${SYNOPKG_PKGDEST}/subsonic_synology.sh ${SYNOPKG_PKGDEST}/subsonic.sh echo "$(date +%d.%m.%y_%H:%M:%S): now using edited subsonic.sh file for Synology" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #download and install ffmpeg binarys wget ${NATIVE_BINS_URL} --output-document=${SYNOPKG_PKGDEST}/ffmpeg.tgz if [ -f ${SYNOPKG_PKGDEST}/ffmpeg.tgz ]; then echo "$(date +%d.%m.%y_%H:%M:%S): downloaded ffmpeg files from $NATIVE_BINS_URL" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Checksum if [ `/opt/bin/sha256sum ${SYNOPKG_PKGDEST}/ffmpeg.tgz | awk '{ print $1 }` = $(eval "echo \$SHA256_$SYNO_CPU_ARCH") ]; then echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum OK" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum failed for ffmpeg.tgz" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "SHA256 checksum failed for ffmpeg.tgz. The file was probaply modified or updated" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi else if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/ffmpeg.tgz ]; then cp ${PUBLIC_FOLDER}/ffmpeg.tgz ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): copied ffmpeg files from public folder" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "There was a problem downloading ffmpeg from the official download link, " >> $SYNOPKG_TEMP_LOGFILE echo "which was ${NATIVE_BINS_URL}" >> $SYNOPKG_TEMP_LOGFILE echo "Alternatively, you may download this file manually and place it in the 'public' shared folder and neme it ffmpeg.tgz" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi fi if [ ! -d ${SYNOPKG_PKGDEST}/transcode ]; then mkdir ${SYNOPKG_PKGDEST}/transcode echo "$(date +%d.%m.%y_%H:%M:%S): created transcode directory" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ ! -d ${SYNOPKG_PKGDEST}/lib ]; then mkdir ${SYNOPKG_PKGDEST}/lib echo "$(date +%d.%m.%y_%H:%M:%S): created lib directory" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi tar xzvf ${SYNOPKG_PKGDEST}/ffmpeg.tgz -C ${SYNOPKG_PKGDEST}/transcode cp -r ${SYNOPKG_PKGDEST}/transcode/lib* ${SYNOPKG_PKGDEST}/lib/ rm -r ${SYNOPKG_PKGDEST}/transcode/lib* rm ${SYNOPKG_PKGDEST}/ffmpeg.tgz echo "$(date +%d.%m.%y_%H:%M:%S): copied ffmpeg file and libraries" >> ${SYNOPKG_PKGDEST}/subsonic_package.log ######################################### ##start Subsonic #fix file permissions chmod +x ${SYNOPKG_PKGDEST}/subsonic.sh chmod 775 ${SYNOPKG_PKGDEST}/subsonic-booter-jar-with-dependencies.jar chmod 775 ${SYNOPKG_PKGDEST}/subsonic.war chown -R subsonic:users ${SYNOPKG_PKGDEST} echo "$(date +%d.%m.%y_%H:%M:%S): start Subsonic for first initialisation" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #set up symlink for the DSM GUI ln -s ${SYNOPKG_PKGDEST}/ /usr/syno/synoman/webman/3rdparty/Subsonic #create custom temp folder so temp files can be bigger if [ ! -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then mkdir ${SYNOPKG_PKGDEST}/../../@tmp/subsonic chown -R subsonic ${SYNOPKG_PKGDEST}/../../@tmp/subsonic fi #create symlink to the created directory if [ ! -L /tmp/subsonic ]; then ln -s ${SYNOPKG_PKGDEST}/../../@tmp/subsonic /tmp/ fi #start subsonic as subsonic user su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh sleep 5 subsonic_get_pid if [ ! -z $PID ]; then echo "$(date +%d.%m.%y_%H:%M:%S): started Subsonic successfully. PID is: $PID" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "Error: Can not start Subsonic during install" >> $SYNOPKG_TEMP_LOGFILE echo "$(date +%d.%m.%y_%H:%M:%S): Error: Can not start Subsonic during install" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 fi #give it some time to start up sleep 90 #stop subsonic kill $PID sleep 5 echo "$(date +%d.%m.%y_%H:%M:%S): Stopped Subsonic" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #################################### ##download and install additional features echo "$(date +%d.%m.%y_%H:%M:%S): Download and install additional Features" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Subtunes if [ ! -z ${subtunes_install} ]; then wget ${DOWNLOAD_URL_SUBTUNES} --output-document=${SYNOPKG_PKGDEST}/Subtunes.zip if [ -f ${SYNOPKG_PKGDEST}/Subtunes.zip ]; then echo "$(date +%d.%m.%y_%H:%M:%S): Downloaded Subtunes" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Checksum if [ `/opt/bin/sha256sum ${SYNOPKG_PKGDEST}/Subtunes.zip | awk '{ print $1 }` = $SHA256_SUBTUNES ]; then echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum OK" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum failed for Subtunes.zip" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "SHA256 checksum failed for Subtunes.zip. The file was probaply modified or updated" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi mkdir ${SYNOPKG_PKGDEST}/Subtunes unzip ${SYNOPKG_PKGDEST}/Subtunes.zip -d ${SYNOPKG_PKGDEST}/Subtunes/ echo "$(date +%d.%m.%y_%H:%M:%S): extracted Subtunes" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): Error: Subtunes could not be downloaded" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "$(date +%d.%m.%y_%H:%M:%S): Please check the internet connection of your Diskstation" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "Error: Subtunes could not be downloaded" > $SYNOPKG_TEMP_LOGFILE echo "Please check the internet connection of your Diskstation" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi cp -r ${SYNOPKG_PKGDEST}/Subtunes /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/ rm -r ${SYNOPKG_PKGDEST}/Subtunes rm ${SYNOPKG_PKGDEST}/Subtunes.zip echo "$(date +%d.%m.%y_%H:%M:%S): copied Subtunes and deleted downloaded files" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Subtuneslink if [ -d ${SYNOPKG_PKGDEST}/Subtuneslink ]; then cp ${SYNOPKG_PKGDEST}/Subtuneslink/* /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/Subtunes/ fi fi rm -r ${SYNOPKG_PKGDEST}/Subtuneslink #MiniSub Update if [ ! -z ${minisub_install} ]; then wget ${DOWNLOAD_URL_MINISUB} --no-check-certificate --output-document=${SYNOPKG_PKGDEST}/MiniSub.tgz if [ -f ${SYNOPKG_PKGDEST}/MiniSub.tgz ]; then echo "$(date +%d.%m.%y_%H:%M:%S): Downloaded MiniSub" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #Checksum #if [ `/opt/bin/sha256sum ${SYNOPKG_PKGDEST}/MiniSub.tgz | awk '{ print $1 }` = $SHA256_MINISUB ]; then # echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum OK" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #else # echo "$(date +%d.%m.%y_%H:%M:%S): SHA256 checksum failed for MiniSub.tgz" >> ${SYNOPKG_PKGDEST}/subsonic_package.log # echo "SHA256 checksum failed for MiniSub.tgz. The file was probaply modified or updated" >> $SYNOPKG_TEMP_LOGFILE #fi mkdir ${SYNOPKG_PKGDEST}/MiniSub tar xzf ${SYNOPKG_PKGDEST}/MiniSub.tgz -C ${SYNOPKG_PKGDEST}/MiniSub echo "$(date +%d.%m.%y_%H:%M:%S): extracted MiniSub" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): Error: MiniSub could not be downloaded" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "$(date +%d.%m.%y_%H:%M:%S): Please check the internet connection of your Diskstation" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "Error: MiniSub could not be downloaded" > $SYNOPKG_TEMP_LOGFILE echo "Please check the internet connection of your Diskstation" >> $SYNOPKG_TEMP_LOGFILE exit 1 fi if [ -d /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/mini/ ]; then rm -r /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/mini/* cp -r ${SYNOPKG_PKGDEST}/MiniSub/*/* /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/mini/ else echo "$(date +%d.%m.%y_%H:%M:%S): Error: Can't find the MiniSub directory -> MiniSub will not be updated " >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "Error: Can't find the MiniSub directory -> MiniSub will not be updated " >> ${SYNOPKG_PKGDEST}/subsonic_package.log >> $SYNOPKG_TEMP_LOGFILE exit 1 fi rm -r ${SYNOPKG_PKGDEST}/MiniSub rm ${SYNOPKG_PKGDEST}/MiniSub.tgz echo "$(date +%d.%m.%y_%H:%M:%S): copied MiniSub and deleted downloaded files" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #MiniSub Link echo "$(date +%d.%m.%y_%H:%M:%S): create MiniSub DSM link" >> ${SYNOPKG_PKGDEST}/subsonic_package.log if [ -d ${SYNOPKG_PKGDEST}/MiniSublink/ ]; then cp ${SYNOPKG_PKGDEST}/MiniSublink/* /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/mini/ fi rm -r ${SYNOPKG_PKGDEST}/MiniSublink #################################### #delete symlink rm /usr/syno/synoman/webman/3rdparty/Subsonic #delete temp files if [ -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then rm -r ${SYNOPKG_PKGDEST}/../../@tmp/subsonic fi #check Podcast folder for right permissions if [ -d /volume1/music/Podcast ]; then echo "$(date +%d.%m.%y_%H:%M:%S): reset permissions of Podcast folder (subsonic user has new uid)" >> ${SYNOPKG_PKGDEST}/subsonic_package.log chown -R admin:users /volume1/music/Podcast chmod -R 775 /volume1/music/Podcast fi ######################################### #install user backup from public folder if [ ! -z ${install_restore} ]; then echo "$(date +%d.%m.%y_%H:%M:%S): restore previously made backup fron public folder" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #copy files cp -r ${PUBLIC_FOLDER}/Subsonic/* ${SYNOPKG_PKGDEST}/ #new files might not be owned by subsonic user chown -R subsonic ${SYNOPKG_PKGDEST}/ #make the Subsonic start script executable chmod +x ${SYNOPKG_PKGDEST}/subsonic.sh fi echo "$(date +%d.%m.%y_%H:%M:%S): ----installation complete----" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 0 } preuninst () { ############################################## stop Subsonic if it is running subsonic_get_pid if [ -z $PID ]; then sleep 1 else echo "$(date +%d.%m.%y_%H:%M:%S): stopping Subsonic" >> ${SYNOPKG_PKGDEST}/subsonic_package.log kill $PID sleep 5 if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic ]; then rm /usr/syno/synoman/webman/3rdparty/Subsonic fi if [ -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then rm -r ${SYNOPKG_PKGDEST}/../../@tmp/subsonic fi fi ############################################## # create a backup in public folder in public folder if [ ! -z ${uninstall_backup} ]; then echo "$(date +%d.%m.%y_%H:%M:%S): Create a backup of Subsonic in public folder" >> ${SYNOPKG_PKGDEST}/subsonic_package.log if [ ! -d ${PUBLIC_FOLDER}/Subsonic ]; then mkdir ${PUBLIC_FOLDER}/Subsonic fi cp ${SYNOPKG_PKGDEST}/subsonic.properties *.index ${PUBLIC_FOLDER}/Subsonic cp -r ${SYNOPKG_PKGDEST}/db ${PUBLIC_FOLDER}/Subsonic cp -r ${SYNOPKG_PKGDEST}/lucene ${PUBLIC_FOLDER}/Subsonic cp -r ${SYNOPKG_PKGDEST}/thumbs ${PUBLIC_FOLDER}/Subsonic fi exit 0 } postuninst () { synouser --del subsonic #remove DSM icon symlink if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic ]; then rm /usr/syno/synoman/webman/3rdparty/Subsonic fi #remove temp symlink rm /tmp/subsonic exit 0 } preupgrade () { ########################### #stop Subsonic if it is runing subsonic_get_pid if [ ! -z $PID ]; then echo "$(date +%d.%m.%y_%H:%M:%S): stopping subsonic" >> ${SYNOPKG_PKGDEST}/subsonic_package.log kill $PID sleep 5 fi if [ -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then rm -r ${SYNOPKG_PKGDEST}/../../@tmp/subsonic fi ########################### #backup subsonic.properties and db Folder if [ -z ${install_restore} ]; then echo "$(date +%d.%m.%y_%H:%M:%S): create backup of Subsonic db in temporary backup dir" >> ${SYNOPKG_PKGDEST}/subsonic_package.log if [ ! -d ${SYNOPKG_PKGDEST}/../subsonic_update_backup ]; then mkdir ${SYNOPKG_PKGDEST}/../subsonic_update_backup cp ${SYNOPKG_PKGDEST}/subsonic.properties ${SYNOPKG_PKGDEST}*.index ${SYNOPKG_PKGDEST}/../subsonic_update_backup/ cp -r ${SYNOPKG_PKGDEST}/db ${SYNOPKG_PKGDEST}/../subsonic_update_backup cp -r ${SYNOPKG_PKGDEST}/lucene ${SYNOPKG_PKGDEST}/../subsonic_update_backup cp -r ${SYNOPKG_PKGDEST}/thumbs ${SYNOPKG_PKGDEST}/../subsonic_update_backup fi fi exit 0 } postupgrade () { ############################### #restore subsonic db index and settings if [ ! -z ${install_update} ]; then echo "$(date +%d.%m.%y_%H:%M:%S): restore from temporary backup dir" >> ${SYNOPKG_PKGDEST}/subsonic_package.log cp -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup/* ${SYNOPKG_PKGDEST}/ fi #remove backup folder #remove the next lines to keep a backup in the @appstore folder if [ -d ${SYNOPKG_PKGDEST}/../subsonic_update_backup ]; then echo "$(date +%d.%m.%y_%H:%M:%S): remove temporary backup dir" >> ${SYNOPKG_PKGDEST}/subsonic_package.log rm -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup fi #subsonic may not own all new files chown -R subsonic ${SYNOPKG_PKGDEST}/ #make the Subsonic start script executable chmod +x ${SYNOPKG_PKGDEST}/subsonic.sh echo "$(date +%d.%m.%y_%H:%M:%S): ----update complete----" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 0 }
start-stop-status
#!/bin/sh #--------Subsonic start-stop-status script #--------package maintained at eg-blog.de ############################################## #function to get the process id of Subsonic PID="" subsonic_get_pid () { PID=`ps | grep java | grep subsonic | awk '{print $1}'` #echo "$(date +%d.%m.%y_%H:%M:%S): looking for PID" >> ${SYNOPKG_PKGDEST}/subsonic_package.log } get_time() { TIME=$(date +%d.%m.%y_%H:%M:%S) } case "$1" in start) ###---copied from patters start-stop-status.sh of his crashplan proe package--- DAEMON_ID="${SYNOPKG_PKGNAME} daemon user" DAEMON_HOME="`cat /etc/passwd | grep "${DAEMON_ID}" | cut -f6 -d':'`" #set the current timezone for Java so that log timestamps are accurate #we need to use the modern timezone names so that Java can figure out DST SYNO_TZ=`cat /etc/synoinfo.conf | grep timezone | cut -f2 -d'"'` SYNO_TZ=`grep "^${SYNO_TZ}" /usr/share/zoneinfo/Timezone/tzname | sed -e "s/^.*= //"` grep "^export TZ" ${DAEMON_HOME}/.profile > /dev/null \ && sed -i "s%^export TZ=.*$%export TZ='${SYNO_TZ}'%" ${DAEMON_HOME}/.profile \ ###---end of copy--------------------------------------------------------------- #set up symlinks for the DSM GUI icon #Subsonic main if [ -d /usr/syno/synoman/webman/3rdparty ]; then ln -s ${SYNOPKG_PKGDEST}/ /usr/syno/synoman/webman/3rdparty/Subsonic echo "$(date +%d.%m.%y_%H:%M:%S): Subsonic DSM link created" >> ${SYNOPKG_PKGDEST}/subsonic_package.log #MiniSub if [ -d ${SYNOPKG_PKGDEST}/jetty/*/webapp/mini ]; then ln -s ${SYNOPKG_PKGDEST}/jetty/*/webapp/mini /usr/syno/synoman/webman/3rdparty/Subsonic_MiniSub echo "$(date +%d.%m.%y_%H:%M:%S): MiniSub DSM link created" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #Subtunes if [ -d ${SYNOPKG_PKGDEST}/jetty/*/webapp/Subtunes ]; then ln -s ${SYNOPKG_PKGDEST}/jetty/*/webapp/Subtunes /usr/syno/synoman/webman/3rdparty/Subsonic_Subtunes echo "$(date +%d.%m.%y_%H:%M:%S): Subtunes DSM link created" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi else echo "$(date +%d.%m.%y_%H:%M:%S) : Error: Directory for Subsonic DSM link was not found" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #create custom temp folder so temp files can be bigger if [ ! -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then mkdir ${SYNOPKG_PKGDEST}/../../@tmp/subsonic chown -R subsonic ${SYNOPKG_PKGDEST}/../../@tmp/subsonic echo "$(date +%d.%m.%y_%H:%M:%S): Temp directory created" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi #create symlink to the created directory if [ ! -L /tmp/subsonic ]; then ln -s ${SYNOPKG_PKGDEST}/../../@tmp/subsonic /tmp/ echo "$(date +%d.%m.%y_%H:%M:%S): Temp directory link created" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi # starting subsonic as subsonic daemon user echo "$(date +%d.%m.%y_%H:%M:%S): starting Subsonic as subsonic daemon user" >> ${SYNOPKG_PKGDEST}/subsonic_package.log su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh sleep 10 echo "$(date +%d.%m.%y_%H:%M:%S): started Subsonic as subsonic daemon user" >> ${SYNOPKG_PKGDEST}/subsonic_package.log subsonic_get_pid if [ ! -z $PID ]; then echo "$(date +%d.%m.%y_%H:%M:%S): started Subsonic successfully. PID is: $PID" >> ${SYNOPKG_PKGDEST}/subsonic_package.log echo "$(date +%d.%m.%y_%H:%M:%S): ----subsonic is running----" >> ${SYNOPKG_PKGDEST}/subsonic_package.log else echo "$(date +%d.%m.%y_%H:%M:%S): Error: Can not start Subsonic" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 1 fi exit 0 ;; stop) #stop subsonic subsonic_get_pid kill $PID echo "$(date +%d.%m.%y_%H:%M:%S) : killed Subsonic PID: $PID" >> ${SYNOPKG_PKGDEST}/subsonic_package.log sleep 2 #delete Symlinks and DSM icon if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic ]; then rm /usr/syno/synoman/webman/3rdparty/Subsonic echo "$(date +%d.%m.%y_%H:%M:%S): Subsonic DSM link deleted" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic_MiniSub ]; then rm /usr/syno/synoman/webman/3rdparty/Subsonic_MiniSub echo "$(date +%d.%m.%y_%H:%M:%S): MiniSub DSM link deleted" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic_Subtunes ]; then rm /usr/syno/synoman/webman/3rdparty/Subsonic_Subtunes echo "$(date +%d.%m.%y_%H:%M:%S): Subtunes DSM link deleted" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then rm -r ${SYNOPKG_PKGDEST}/../../@tmp/subsonic echo "$(date +%d.%m.%y_%H:%M:%S): Temp files deleted" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi if [ -L /tmp/subsonic ]; then rm /tmp/subsonic echo "$(date +%d.%m.%y_%H:%M:%S): Temp link deleted" >> ${SYNOPKG_PKGDEST}/subsonic_package.log fi echo "$(date +%d.%m.%y_%H:%M:%S): ----subsonic is stopped----" >> ${SYNOPKG_PKGDEST}/subsonic_package.log exit 0 ;; status) subsonic_get_pid if [ -z $PID ]; then #Subsonic is not running exit 1 else #subsonic is running exit 0 fi ;; log) echo "${SYNOPKG_PKGDEST}/subsonic_package.log" exit 0 ;; esac
I’ve added a new test file to my beta folder.
It works fine for me, but I’m not releasing it, yet.
Pleas tell me if it works fine for you.
Happy New Year =)
2013 arrived and with it the promised ownCloud update.
Nothing special with this update again.
I am currently working on some more tutorials.
Hope your Hangover didn’t last too long, have fun with the package, Eric
Dropbox download:
https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2
Repo will be online soon (hope there are no problems this time).
The new package is up and running, nothing special, have fun 😉
https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2
PS: have a look at my new Advanced Setup guide.
After having some troubles with the last two packages, the new one should work smoothly.
4.5.1. is basically a bugfix package without major changes.
Dropbox Folder is already updated:
https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2
The package has been successfully uploaded to the community package hub and the update button appears soon.
For those of you, updating from 4.5.0: Please read the release announcement of the 4.5.1 package.
Have a nice Weekend and 1st Advent, Eric