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.
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
Errors errors errors…fixes fixes fixes (hopefully)
Many of you had troubles starting my last build of the Subsonic package. I changed the detection method of the PID. Now it will most certainly run. But As I din’t have any errors I can’t really guarantee a smooth operation because there was no real bug fixing possible to me…
The rest is equal to the previous package.
Download from Dropbox folder:
https://www.dropbox.com/sh/vd06e2fn2157gh0/kE6FO5J1cD
Update button in the Package Center will appear soon.
Hi Guys,
sorry for being away for a while, but I had some more important things to do last week, but I am back now, my favorite football club Borussia Dortmund has made it to the CL finals and the weather is fine, so everything is OK now 😉
Anything else? Ah Yeah, the new ownCloud package!:
It fixes many bugs, so install it and be happy, no special tricks n this one.
Download from Dropbox folder:
https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2
Update button in the Package Center should appear soon…
Edit: After some delays the package is online now and will be approved soon.
For those of you updating from 4.5.0: please read this post.
Attention: There are some serious issues with this package on x86 and ppc Disk Stations. I will fix them as soon as I can. Until then: Don’t update if your Subsonic runs fine now!
Hi everyone,
I’ve spent the last 2 days completely rewriting the install script, updating ffmpeg and adding power pc support for this package and here it is:
What is different?
But my Diskstation is not connected to the Internet, what can I do?
Note for MashupMod users who use transcoding:
Download from Dropbox: https://www.dropbox.com/sh/vd06e2fn2157gh0/kE6FO5J1cD
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="http://uploaded.net/file/6kzehtl6/from/zryfjb" 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%"`" 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}'` } 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 wget ${DOWNLOAD_URL_MASHUPMOD} --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 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 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 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 else echo "$(date +%d.%m.%y_%H:%M:%S): downloaded ffmpeg files from $NATIVE_BINS_URL" >> ${SYNOPKG_PKGDEST}/subsonic_package.log 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 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/mini/ 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 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 2 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 2 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}'` } 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
Hi guys its an official Holiday today which means I’ve got a lot of time to take care of my Synology packages.
The first one is the owncloud package, which has been updated to 4.5.1. Nothing special so far, but then Synology-Version-Number-Counting strikes!
For some reason it detects the 4.5.1 to be lower than the previous 4.5 and quits the update process. This wouldn’t be a problem if at least one of the scripts in the package would be executed so I could change the number by running this script and you wouldn’t recognize anything, but it fails before anything is done to the package. It also means there will be no update button in the package center for the people who installed 4.5 because the installed version is detected to be newer.
There are a few workarounds to update from 4.5 to 4.5.1
1. Quick and dirty: Uninstall ownCloud and install the new one -> You will loose all your data and settings
2. owerwrite the INFO file which contains the version number
cp /volumeX/public/INFO /var/packages/owncloud
replace the X with the volume number that contains your public folder
3. DIY: Edit the version in the INFO file (afterwards the update button appears)
cd /var/packages/owncloud
vi INFO
the text editor vi should start
Another way is to backup the data and config folder in the /web folder, deinstall owncloud, install the new version and recover it. If you do this you have to take care of the folder permissions.
I apologize for the circumstances, if you know an easier way to update, let me know.
Manual Download link:
Good news for everyone with a new DS 423 or DS 213+. These DiskStations are powered by a 1GHz PPC CPU so the the java package had do be reconfigured to match these devices. This job was thankfully done by patters from pcloadletter.co.uk. See his release notes to download and install the package on your new NAS.
This means it is now possible to run Subsonic (and all other java based programs) on every DiskStation exept the old PPCs from 2010 and earlier.
You can’t install Subsonic on these DiskStations, yet because I have to upload a specified package for that. Also I have to look for a special compiled ffmpeg file to enable transcoding.
I will work on this package during the next week, so you can expect the release for the next weekend.
I just wanted to thank everybody for your support and confidence in my work. Everyone who downloads a package from the package center motivates me to create new and better packages. Thanks to everyone who leaves comments, making this a community project. I will continue to provide packages as long as this blog is „alive“. My next step is to get an Atom powered Disk Station. Not only because my 4TB 211+ is nearly spilling over, but also to have both environments to test on. Some statistics from my side:
Keep on rocking…
Hi everyone,
good news again. Somewhere in the depths of one of the onwCloud sides I found a link to this side owncloud.org/releases. Not a design masterpiece I must admit, but it has the brand new 4.5 version on it.
Now it is 2:30 AM and the Synology package is ready.
I added a little log which is stored in /volumeX/@appstore/owncloud/owncloud_package.log and can be seen at the package center.
The other thing I added was the selection of the DSM link type:
As ownCloud runs on the build-in apache of the Disk Station you can install your own certificates directly in DSM to provide certificate error messages.
Of course you can still connect both ways by typing the URL.
You can select your link type during the update process.
As always: Back up your data before updating! Your files and settings should be kept but I can’t guarantee it.
Now have fun with it (update button should appear soon)
First of all: I can’t give real support for this just because I just don’t have the time. I will try to update it as fast as I can, but it won’t be as quick as the Subsonic or ownCloud package.
So what is it all about?
Serviio is a pretty neat dlna streaming server written by Petr Nejedly (Zip). In February 2011 patters got it running on Synology Disk Stations (his packages taught me how to build my own). At first he didn’t include an interface in his package which wasn’t really a problem because there is a full access remote console available. Then he integrated the PHP web console whis is basically just a bunch of files. Then he began to include the full java-based console and even got it working in one jvm with the server application. Sadly but comprehensible he excluded the console from his packages since version 1.0 because it is just to much work to do for getting the same results you can have by installing the remote console.
But as I am operating my DS from a multitude of devices a build-in console is the simplest solution for me. So I was looking for an easy way to get a console running on my DS and found Marks (mpemberton5s) PHP Web Ui at the serviio Forum, ask him for a permission to puplish it and here it is. 😉
Sadly I can’t get it to work in an iframe window inside DSM (the icon is clickable but nothing happens. Bug?). Now it opens a new Tab, looks a bit stretched on my 16:9 screen, but works fine.
How do I use this?
First of all you have to install patters serviio package carefully and follow the first five steps in instructions. You don’t have to install serviio on your local computer, thats what this package is for.
To install the console package add http://update.10trum.de/packageupdate/getpackages.php to your 3rd party sources like the one you added from patters to install serviio.
After installing serviio and this serviio console read patters notes carefully!
Now you are good to go.
Screen shot: