eg-blog

Feed Rss

Archive for the ‘Allgemein’ Category

Subsonic 4.7 came out on Wednesday, but I am busy till Friday next Week (09-21-2012). I am afraid to tell you that you can’t expect the new package before this date. As Subsonic is a (java based) program and not just a bunch of web sides like ownCloud it requires some more work. This also is a major release and I don’t want to cause any installation bugs, so I will keep testing it a few days and install, update and deinstall it many times in every possible way, which takes a lot of time (and patience). So relax another Week, 4.7 will definitely come out in September.

btw: DSM 4.1 is running fine on my system.

Hi,

I’m back in town and got the new package running:

The update button will appear in your package center soon.

There are no special features in this one just the updated version of ownCloud.

Manual download from my Dropbox folder here:

https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2?%20m

E

I am on vacation till 4th of September, so I won’t upload any new packages before then. I hope ownCloud 5 and Subsonic 4.7 will be released until then so I can upload the new version as quickly as possible.

Happy Holidays to everyone, have fun and relax ;)

 

Just a quick update of ownCloud itself, no changes concerning installation or the DSM.

Download from package hub or Dropbox Folder.

So this is probably the last ownCloud 4 package as version 5 is about to come in August.

It fixes a few bugs.

I have also done a few little things with the package. Since DSM 3.0 Synology uses a “config” file instead of the “application.cfg” to set links from the DSM to applications. But the construction of the config file is very badly documented (for example there is no description how to change the target port) in the official “3rd Party Apps Developer Guide” so I was always working with the old application.cfg. But now I have been analyzing many of the official package config files, found many undocumented properties and a working solution.

So, what’s different for you?  Nothing but a larger icon in the DSM menu (48×48 instead of 36×36)

Beside this I have changed the way of providing the packages. Now there is a public Dropbox folder with all versions in it, so you can easily look for new version or install old versions when you’ve got problems with new ones. If you are already downloading via repo nothing will change, you will see all further updates in the DSM.

Download from Dropbox folder:

https://www.dropbox.com/sh/4i5mjlhlnoe1qg4/B-SLEOoZH2

or repo.

Ich verkaufe mein komplettes DJ-Case mit folgendem Inhalt:

  • 2x Pioneer CDJ 400 -> Tabletop CD/USB Player und Midi Controller
  • 1x Pioneer DJM 400 -> 2 Kanal Mixer mit diversen digitalen Effekten und automatischer BPM Erkennung
  • 1x Serato Scratch Live SL1 -> DJ Software und Hardware vom feinsten (inkl. 2x schwarze Vinyl, unbenutzt! und 2x scratch/steuer CD)
  • 1x Akai LPD8 -> Midi Controller mit 8 Fadern und 8 anschlagdynamischen Buttons
  • 1x Conrad Aktives USB 2.0 Hub mit Metallgehäuse -> Zum Anschließen von 2xCDJ, Externe Festplatte, Akai LPD8
  • 1x Millenium Laptopstand -> Passt genau über/hinter den DJM 400 und auf das Case
  • 1x Zomo DJ Case -> hier passt alles perfekt rein (siehe Fotos): zwischen Player und Mixer auf der einen Seite das LPD 8, auf der anderen Seite ist Platz für ein Mikro. Hinter dem Mixer liegt das SL1, hinter dem rechten CDJ ist platz für ne externe Festplatte (USB Kabel liegt schon dort, siehe Foto), hinter dem rechten ist platz für einen Drahtlos-Mikrofon-Empfänger (z.B. Sennheiser EW 100/300/500; XLR Kabel liegt schon dort, siehe Foto). Darunter ist eine dreier Steckdose mit Unterverteilung, sodass nur 1 Schukokabel aus dem Case führt.
  • Diverse Kabel: 5x Stereo Chinch<->Chinch, 1x XLR(F)<->Klinke, 1x Stereo Chinch<->XLR(M), 5x USB Kabel (für 2x CDJ, SL1, LPD8, Externe Platte)
  • Zubehör: OVPs zu: CDJ, DJM, SSL; Rechnungen zu: Case, CDJ, SSL, LPD8; Bedienungsanleitungen zu: DJM, CDJ, SSL

Es funktioniert alles top und war zuletzt selten im Einsatz, deswegen verkaufe ich es auch. Der optische zustand ist OK, wer kleine Kratzer sucht, der findet sie, aber es gibt keine großen Macken o.ä..

Den Laptop, der auf einigen Fotos zu sehen ist, verkaufe ich nicht.

Schreibt ne mail an eric-gigon [at] web [punkt] de

Am besten Ihr kommt mal bei mir in Düsseldorf vorbei und schaut euch alles in Ruhe an und probiert alles aus. Versand ist mir trotz Case doch ein bisschen zu gewagt. -kein Vesand!-

Das Set ist noch zu haben, für 1500€ gehört es euch!

Sorry an alle, denen ich nicht geantwortet habe, war lange unterwegs, bin jetzt aber wieder da und offen für eure mails ;) .

Aber seht selbst, Fotos:

The new 4.0.4 update is online.

For some reason I am stuck in the implementation of adding existing folders to the file system of owncloud. Neither the creation of symlinks nor the official “Custom Mount Configuration” works. If you have found a proper solution for this, please post it here so I can see what I can do to implement it into the package.

My first aim is that every user can see and use the existing “public” folder in owncloud. If this works it won’t be that hard to add custom folders.

Until then you can – as always – download the updated package via repo or here:

ownCloud4.0.4-008.spk (5,6 MB)

Have fun, Eric

This package fixes the file/folder listing bug.

I haven’t changed anything else at the package / installer.

Download: repo or here:

ownCloud4.0.3a-007.spk (5,6 MB)

edit: the repo is down for whatever reason, will check it again tonight.

Now everything is up and running…

I have just packed the new ownCloud update into the package, changed nothing else, have fun.

 

Download via repo or here:

ownCloud4.0.3-006.spk (5,6 MB)

Finally here it is: the new Subsonic package, including new features and many improvements.

I have scripted and tested a lot for this update and this is the result:

1. MashupMod integrated: Thanks to the great work of Subsonic Forum user MadEvil who collected many Mods and created his own MashupMod Subsonic version you now have many many new features (list and support here). As the MashupMod comes along as a stand alone, out of the box version you can either install the regular Subsonic OR the MashupMod version. This version of MashupMod is just a technical preview which might have some bugs and the registration feature is not available. If you want to use your own purchased key do not install the MashupMod, if you want to discover new features, have fun installing it ;)

2. Additional features (MashupMod / MiniSub / Subtunes) are now being downloaded during the install process (if selected) and are not included in the downloadable .spk anymore. This saves time for those who don’t want to install them but requires an Internet connection of your Diskstation during install.

3. Many bug fixes in the script. I have worked out many little bugs in the install script. Updating for example now takes 90secs less then before.

I have also talked to patters from pcloadletter.co.uk again who fixed a time-zone bug (fix version included here) and discovered shineenc which might be a great alternative for ffmpeg for transcoding audio, it is 13 times faster than lame, if we can get it to work…enough challenges for the next package.

Install Notes:

This is still a beta (especially the MashupMod version)!

When you install it: Select “fresh install” during the install process or uninstall Subsonic before updating. Otherwise you will get a database error in Subsonic. Your database will be deleted and re-created at the first start of Subsonic. All configurations will be reseted!

Ignore the error message at the End of the installation process, just start Subsonic, I really don’t know what causes this, but Subsonic works, so its not that serious.

I have put a lot of work into this package and changed almost every script, if you encounter problems during installing or upgrading please let me know.

Now have fun testing it ;)

Download as usual via German Synology package repo (more info here)

or directly from here:

ARM version: Subsonic4.7b2-024-ARM.spk (37 MB)

x86 version:   Subsonic4.7b2-024-x86.spk (36,2 MB)

Scripts:

preinst:

#!/bin/sh

#--------Subsonic preinstall script
#--------package maintained at synology-forum.de

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
	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
	exit 1
fi

#########################################
#check if Subsonic folder is in public folder wehn restore is selected
if [ ! -z ${install_restore} ]; then
	PUBLIC=`cat /usr/syno/etc/smb.conf | sed -r '/\/public$/!d;s/^.*path=(\/volume[0-9]{1,3}\/public).*$/\1/'`

	if [ ! -d $PUBLIC/Subsonic ]; then
		echo "Can't find a folder named 'Subsonic' in your public folder. " > $SYNOPKG_TEMP_LOGFILE
		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
		exit 1
	fi
fi

exit 0

postinst

#!/bin/sh

#--------SUBSONIC postinstall script
#--------package maintained at eg-blog.de

#variable for process ID
PID=""

subsonic_get_pid ()
{
	PID=`ps | grep java | grep subsonic | awk '{print $1}'`
}

####################################
##subsonic user settings

#create subsonic daemon user
synouser --add subsonic `${SYNOPKG_PKGDEST}/Subsonic/passgen 1 20` "Subsonic daemon user" 0 "" ""

#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"

#set ownership of Subsonic folder tree
chown -R subsonic ${SYNOPKG_PKGDEST}

#####################################
##other stuff

#select the right mods / version to download/install
if [ ! -z ${mashupmod_install} ]; then
	#download and install MashupMod
	wget https://dl.dropbox.com/u/33279357/synology_packages/addons/MashupMod_4.7B2030.tgz --no-check-certificate --output-document=${SYNOPKG_PKGDEST}/MashupMod.tgz
	if [ -f ${SYNOPKG_PKGDEST}/MashupMod.tgz ]; then
		tar xzf ${SYNOPKG_PKGDEST}/MashupMod.tgz -C ${SYNOPKG_PKGDEST}
	else
		echo "Error: MashupMod 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}/MashupMod/* ${SYNOPKG_PKGDEST}/Subsonic
	rm -r ${SYNOPKG_PKGDEST}/MashupMod
else
	#install standart Subsonic
	cp -r ${SYNOPKG_PKGDEST}/install_standart/* ${SYNOPKG_PKGDEST}/Subsonic
fi

rm -r ${SYNOPKG_PKGDEST}/install_standart

#make the Subsonic start script executable
chmod +x ${SYNOPKG_PKGDEST}/Subsonic/subsonic.sh

#####################################
##start Subsonic

#set up symlink for the DSM GUI
ln -s ${SYNOPKG_PKGDEST}/Subsonic /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

#give it some time to start up
sleep 90

#stop subsonic
subsonic_get_pid
kill $PID
sleep 5

####################################
##download and install additional features
#MiniSub
chown -R root ${SYNOPKG_PKGDEST}
if [ ! -z ${minisub_install} ]; then
	wget https://dl.dropbox.com/u/33279357/synology_packages/addons/MiniSub_2.0.2.tgz --no-check-certificate --output-document=${SYNOPKG_PKGDEST}/MiniSub.tgz
	if [ -f ${SYNOPKG_PKGDEST}/MiniSub.tgz ]; then
		tar xzf ${SYNOPKG_PKGDEST}/MiniSub.tgz -C ${SYNOPKG_PKGDEST}
	else
		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

	cp -r ${SYNOPKG_PKGDEST}/MiniSub /usr/syno/synoman/webman/3rdparty/Subsonic/jetty/*/webapp/
	rm -r ${SYNOPKG_PKGDEST}/MiniSub
fi

#Subtunes
if [ ! -z ${subtunes_install} ]; then
	wget https://dl.dropbox.com/u/33279357/synology_packages/addons/Subtunes_0.9.4b.tgz --no-check-certificate --output-document=${SYNOPKG_PKGDEST}/Subtunes.tgz
	if [ -f ${SYNOPKG_PKGDEST}/Subtunes.tgz ]; then
		tar xzf ${SYNOPKG_PKGDEST}/Subtunes.tgz -C ${SYNOPKG_PKGDEST}
	else
		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
fi

chown -R subsonic ${SYNOPKG_PKGDEST}/

####################################

#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

#########################################
#install user backup from public folder

if [ ! -z ${install_restore} ]; then
	PUBLIC=`cat /usr/syno/etc/smb.conf | sed -r '/\/public$/!d;s/^.*path=(\/volume[0-9]{1,3}\/public).*$/\1/'`
	#copy files
	cp -r $PUBLIC/Subsonic/* ${SYNOPKG_PKGDEST}/Subsonic

	#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/subsonic.sh
fi
exit 0

preupgrade:

#!/bin/sh

#--------Subsonic preupgrade script
#--------package maintained at eg-blog.de

#variable for process ID
PID=""

##############################################
#function to get the process id of Subsonic

subsonic_get_pid ()
{
   PID=`ps | grep java | grep subsonic | awk '{print $1}'`
}

###########################
#stop Subsonic if it is runing

subsonic_get_pid

if [ ! -z $PID ]; then
	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
	if [ ! -d ${SYNOPKG_PKGDEST}/../subsonic_update_backup ]; then
		mkdir ${SYNOPKG_PKGDEST}/../subsonic_update_backup
		cp ${SYNOPKG_PKGDEST}/Subsonic/subsonic.properties ${SYNOPKG_PKGDEST}/Subsonic/*.index ${SYNOPKG_PKGDEST}/../subsonic_update_backup/
		cp -r ${SYNOPKG_PKGDEST}/Subsonic/db ${SYNOPKG_PKGDEST}/../subsonic_update_backup
		cp -r ${SYNOPKG_PKGDEST}/Subsonic/lucene ${SYNOPKG_PKGDEST}/../subsonic_update_backup
		cp -r ${SYNOPKG_PKGDEST}/Subsonic/thumbs ${SYNOPKG_PKGDEST}/../subsonic_update_backup
	fi
fi

exit 0

postupgrade:

#!/bin/sh

#--------SUBSONIC postupgrade script
#--------package maintained at eg-blog.de

###############################
#restore subsonic db index and settings
if [ ! -z ${normal_update} ]; then
	cp -r ${SYNOPKG_PKGDEST}/../subsonic_update_backup/* ${SYNOPKG_PKGDEST}/Subsonic/
fi

#remove backup folder
#remove the next lines to keep a backup in the @appstore folder
if [ -d ${SYNOPKG_PKGDEST}/../subsonic_update_backup ]; then
	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/subsonic.sh

exit 0

preuninst:

#!/bin/sh

#--------SUBSONIC preuninstall script
#--------package maintained at eg-blog.de

###############################################
##stop Subsonic if it is running

PID=`ps | grep java | grep subsonic | awk '{print $1}'`
if [ -z $PID ]; then
	sleep 1
else
	kill $PID
	sleep 2
	if [ -d /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
	PUBLIC=`cat /usr/syno/etc/smb.conf | sed -r '/\/public$/!d;s/^.*path=(\/volume[0-9]{1,3}\/public).*$/\1/'`
	if [ ! -d $PUBLIC/Subsonic ]; then
		mkdir $PUBLIC/Subsonic
	fi

	cp ${SYNOPKG_PKGDEST}/Subsonic/subsonic.properties *.index $PUBLIC/Subsonic
	cp -r ${SYNOPKG_PKGDEST}/Subsonic/db $PUBLIC/Subsonic
	cp -r ${SYNOPKG_PKGDEST}/Subsonic/lucene $PUBLIC/Subsonic
	cp -r ${SYNOPKG_PKGDEST}/Subsonic/thumbs $PUBLIC/Subsonic
fi

exit 0

postuninst:

#!/bin/sh

#--------SUBSONIC postuninstall script
#--------package maintained at eg-blog.de

#remove subsonic daemon user
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

start-stop-status:

#!/bin/sh

#--------Subsonic start-stop-status script
#--------package maintained at eg-blog.de

#variable for process ID
PID=""

##############################################
#function to get the process id of Subsonic

subsonic_get_pid ()
{
	PID=`ps | grep java | grep subsonic | awk '{print $1}'`
}

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}/Subsonic/ /usr/syno/synoman/webman/3rdparty/Subsonic
		#MiniSub
		if [ -d ${SYNOPKG_PKGDEST}/Subsonic/jetty/*/webapp/MiniSub ]; then
			ln -s ${SYNOPKG_PKGDEST}/Subsonic/jetty/*/webapp/MiniSub /usr/syno/synoman/webman/3rdparty/MiniSub
		fi
		#Subtunes
		if [ -d ${SYNOPKG_PKGDEST}/Subsonic/jetty/*/webapp/Subtunes ]; then
			ln -s ${SYNOPKG_PKGDEST}/Subsonic/jetty/*/webapp/Subtunes /usr/syno/synoman/webman/3rdparty/Subtunes
		fi
	  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
	  fi
	  #create symlink to the created directory
	  if [ ! -L /tmp/subsonic ]; then
		ln -s ${SYNOPKG_PKGDEST}/../../@tmp/subsonic /tmp/
	  fi
	  # starting subsonic as subsonic daemon user
      su - subsonic -s /bin/sh -c /usr/syno/synoman/webman/3rdparty/Subsonic/subsonic.sh
      sleep 5
	  exit 0
   ;;
   stop)
      #stop subsonic
	  subsonic_get_pid
      kill $PID
      sleep 2
	  #delete Symlinks and DSM icon
	  if [ -L /usr/syno/synoman/webman/3rdparty/Subsonic ]; then
		rm /usr/syno/synoman/webman/3rdparty/Subsonic
	  fi
	  if [ -L /usr/syno/synoman/webman/3rdparty/MiniSub ]; then
		rm /usr/syno/synoman/webman/3rdparty/MiniSub
	  fi
	  if [ -L /usr/syno/synoman/webman/3rdparty/Subtunes ]; then
		rm /usr/syno/synoman/webman/3rdparty/Subtunes
	  fi
	  if [ -d ${SYNOPKG_PKGDEST}/../../@tmp/subsonic ]; then
		rm -r ${SYNOPKG_PKGDEST}/../../@tmp/subsonic
	  fi
	  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.log"
	  exit 0
   ;;
esac

 

install_uifile:

[{
	"step_title": "Restore Backup",
	"items":
	[{
		"type": "singleselect",
		"desc": "Would you like to restore a backup of Subsonic? Create a folder with all relevant files in it, name it Subsonic (with capital S)and place it into your public folder",
		"subitems":
		[{
			"key": "No",
			"desc": "No"
		 },
		 {
			"key": "install_restore",
			"desc": "Yes"
		}]
	}]
},
{
	"step_title": "Add-ons / Mods",
	"items":
	[{
		"type": "multiselect",
		"desc": "Which mods or additional features would you like to download and install? Requires internet connection of your Diskstation",
		"subitems":
		[{
			"key": "minisub_install",
			"desc": "MiniSub html5 web interface (245 KB)"
		},
		{
			"key": "subtunes_install",
			"desc": "Subtunes html5 web interface (3,8 MB)"
		},
		{
			"key": "mashupmod_install",
			"desc": "Mashupmod (29,2MB) (beta/preview: If you don't know, what you are doing, don't install it! More info at eg-blog.de)"
		}]
	}]
}]

upgrade_uifile

[{
	"step_title": "Choose update mode",
	"items":
	[{
		"type": "singleselect",
		"desc": "A previously installed version of Subsonic has been detected. Which update mode would you like to perform?",
		"subitems":
		[{
			"key": "normal_update",
			"desc": "Just update normally (library will be kept)"
		 },
		 {
			"key": "install_restore",
			"desc": "Restore a previously made backup from /public/Subsonic folder"
		 },
		 {
			"key": "install_fresh",
			"desc": "Preform a fresh install. All previously created files of Subsonic will be deleted!"
		}]
	}]
},
{
	"step_title": "Add-ons / Mods",
	"items":
	[{
		"type": "multiselect",
		"desc": "Which mods or additional features would you like to download and install? Requires internet connection of your Diskstation",
		"subitems":
		[{
			"key": "minisub_install",
			"desc": "MiniSub html5 web interface (245 KB)"
		},
		{
			"key": "subtunes_install",
			"desc": "Subtunes html5 web interface (3,8 MB)"
		},
		{
			"key": "mashupmod_install",
			"desc": "Mashupmod (29,2MB) (beta/preview: If you don't know, what you are doing, don't install it! More info at eg-blog.de)"
		}]
	}]
}]

uninstall_uifile:

[{
	"step_title": "Create Backup",
	"items":
	[{
		"type": "singleselect",
		"desc": "Would you like to create a backup of Subsonic in the public folder?",
		"subitems":
		[{
			"key": "no",
			"desc": "No"
		},
		{
			"key": "uninstall_backup",
			"desc": "Yes"
		}]
	}]
}]

 
INFO

package="Subsonic"
version="4.7b2-024"
description="Subsonic is a free, web-based media streamer, providing ubiquitous access to your music."
maintainer="Subsonic is developed by Sindre Mehus (subsonic.org), MiniSub is developed by tsquillario (forum.subsonic.org), Subtunes is develpoed by mattgoldspink1 (code.google.com/p/subtunes/), MashupMod is developed by MadEvil (forum.subsonic.org), Synology package is maintained at eg-blog.de"
arch="88f6281 88f6282"
adminport="4040"
adminurl="/"
firmware="3.1-1594"
helpurl="http://eg-blog.de"
report_url="http://eg-blog.de"
package_icon="base 64 code, too long to post it here"
install_reboot="yes"

 
application.cfg (Subsonic):

text = Subsonic
description = Subsonic Music Streamer
icon_16 = images/icon_16.png
icon_32 = images/icon_32.png
type = popup
protocol = http
port = 4040
path = /
adminonly = false

application.cfg (MiniSub):

text = MiniSub
description = Subsonic Music Streamer - MiniSub html5 interface
icon_16 = images/icon_16.png
icon_32 = images/icon_32.png
type = popup
protocol = http
port = 4040
path = /MiniSub/
adminonly = false

application.cfg (Subtunes):

text = Subtunes
description = Subsonic Music Streamer - Subtunes html5 interface
icon_16 = images/icon_16.png
icon_32 = images/icon_32.png
type = popup
protocol = http
port = 4040
path = /Subtunes/
adminonly = false

 
subsonic.sh (changed)

#!/bin/sh

###################################################################################
# Shell script for starting Subsonic.  See http://subsonic.org.
#
# Author: Sindre Mehus
###################################################################################

###added by gigon, see eg-blog.de for details---------------------------
RAM=$((`free | grep Mem: | sed -e "s/^ *Mem: *\([0-9]*\).*$/\1/"`/1024))
if [ $RAM -le 128 ]; then
    SUBSONIC_MAX_MEMORY=80
elif [ $RAM -le 256 ]; then
    SUBSONIC_MAX_MEMORY=192
elif [ $RAM -gt 256 ]; then
	SUBSONIC_MAX_MEMORY=384
fi
###---------------------------------------------------------------------

SUBSONIC_HOME=/usr/syno/synoman/webman/3rdparty/Subsonic
SUBSONIC_HOST=0.0.0.0
SUBSONIC_PORT=4040
SUBSONIC_HTTPS_PORT=4041
SUBSONIC_CONTEXT_PATH=/

#remove the # in the next line if you want to set the max memory manually
#SUBSONIC_MAX_MEMORY=100

SUBSONIC_PIDFILE=
SUBSONIC_DEFAULT_MUSIC_FOLDER=/volume1/music
SUBSONIC_DEFAULT_PODCAST_FOLDER=/volume1/music/Podcast
SUBSONIC_DEFAULT_PLAYLIST_FOLDER=/volume1/music/playlists

quiet=0

usage() {
    echo "Usage: subsonic.sh [options]"
    echo "  --help               This small usage guide."
    echo "  --home=DIR           The directory where Subsonic will create files."
    echo "                       Make sure it is writable. Default: /var/subsonic"
    echo "  --host=HOST          The host name or IP address on which to bind Subsonic."
    echo "                       Only relevant if you have multiple network interfaces and want"
    echo "                       to make Subsonic available on only one of them. The default value"
    echo "                       will bind Subsonic to all available network interfaces. Default: 0.0.0.0"
    echo "  --port=PORT          The port on which Subsonic will listen for"
    echo "                       incoming HTTP traffic. Default: 4040"
    echo "  --https-port=PORT    The port on which Subsonic will listen for"
    echo "                       incoming HTTPS traffic. Default: 0 (disabled)"
    echo "  --context-path=PATH  The context path, i.e., the last part of the Subsonic"
    echo "                       URL. Typically '/' or '/subsonic'. Default '/'"
    echo "  --max-memory=MB      The memory limit (max Java heap size) in megabytes."
    echo "                       Default: 100"
    echo "  --pidfile=PIDFILE    Write PID to this file. Default not created."
    echo "  --quiet              Don't print anything to standard out. Default false."
    echo "  --default-music-folder=DIR    Configure Subsonic to use this folder for music.  This option "
    echo "                                only has effect the first time Subsonic is started. Default '/var/music'"
    echo "  --default-podcast-folder=DIR  Configure Subsonic to use this folder for Podcasts.  This option "
    echo "                                only has effect the first time Subsonic is started. Default '/var/music/Podcast'"
    echo "  --default-playlist-folder=DIR Configure Subsonic to use this folder for playlists.  This option "
    echo "                                only has effect the first time Subsonic is started. Default '/var/playlists'"
    exit 1
}

# Parse arguments.
while [ $# -ge 1 ]; do
    case $1 in
        --help)
            usage
            ;;
        --home=?*)
            SUBSONIC_HOME=${1#--home=}
            ;;
        --host=?*)
            SUBSONIC_HOST=${1#--host=}
            ;;
        --port=?*)
            SUBSONIC_PORT=${1#--port=}
            ;;
        --https-port=?*)
            SUBSONIC_HTTPS_PORT=${1#--https-port=}
            ;;
        --context-path=?*)
            SUBSONIC_CONTEXT_PATH=${1#--context-path=}
            ;;
        --max-memory=?*)
            SUBSONIC_MAX_MEMORY=${1#--max-memory=}
            ;;
        --pidfile=?*)
            SUBSONIC_PIDFILE=${1#--pidfile=}
            ;;
        --quiet)
            quiet=1
            ;;
        --default-music-folder=?*)
            SUBSONIC_DEFAULT_MUSIC_FOLDER=${1#--default-music-folder=}
            ;;
        --default-podcast-folder=?*)
            SUBSONIC_DEFAULT_PODCAST_FOLDER=${1#--default-podcast-folder=}
            ;;
        --default-playlist-folder=?*)
            SUBSONIC_DEFAULT_PLAYLIST_FOLDER=${1#--default-playlist-folder=}
            ;;
        *)
            usage
            ;;
    esac
    shift
done

# Use JAVA_HOME if set, otherwise assume java is in the path.
JAVA=java
if [ -e "${JAVA_HOME}" ]
    then
    JAVA=${JAVA_HOME}/bin/java
fi

# Create Subsonic home directory.
mkdir -p ${SUBSONIC_HOME}
LOG=${SUBSONIC_HOME}/subsonic_sh.log
rm -f ${LOG}

cd $(dirname $0)
if [ -L $0 ] && ([ -e /bin/readlink ] || [ -e /usr/bin/readlink ]); then
    cd $(dirname $(readlink $0))
fi

${JAVA} -Xmx${SUBSONIC_MAX_MEMORY}m \
  -Dsubsonic.home=${SUBSONIC_HOME} \
  -Dsubsonic.host=${SUBSONIC_HOST} \
  -Dsubsonic.port=${SUBSONIC_PORT} \
  -Dsubsonic.httpsPort=${SUBSONIC_HTTPS_PORT} \
  -Dsubsonic.contextPath=${SUBSONIC_CONTEXT_PATH} \
  -Dsubsonic.defaultMusicFolder=${SUBSONIC_DEFAULT_MUSIC_FOLDER} \
  -Dsubsonic.defaultPodcastFolder=${SUBSONIC_DEFAULT_PODCAST_FOLDER} \
  -Dsubsonic.defaultPlaylistFolder=${SUBSONIC_DEFAULT_PLAYLIST_FOLDER} \
  -Djava.awt.headless=true \
  -verbose:gc \
  -jar subsonic-booter-jar-with-dependencies.jar > ${LOG} 2>&1 &

# Write pid to pidfile if it is defined.
if [ $SUBSONIC_PIDFILE ]; then
    echo $! > ${SUBSONIC_PIDFILE}
fi

if [ $quiet = 0 ]; then
    echo Started Subsonic [PID $!, ${LOG}]
fi