Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

forked-daapd (firefly replacement) on unraid?

Featured Replies

Hi there,

 

I'm not so great with slackware, and I'm wondering if anyone would be willing to take a look at this application, and provide any level of help, guidance, comments, etc.

 

Basically, Firefly (formerly mt-daapd) is essentially an iTunes server, using DAAP protocol which clients can connect to and stream music from.  Well, it's been neglected for a long time now, but out of it has come something called forked-daapd ( http://www.technologeek.org/projects/daapd/index.html ).  There is a github mirror of it here: https://github.com/oldmanuk/forked-daapd

 

Now, the dependencies list is pretty big here, and like I said, I'm not so great at tracking this all down, but I'm hoping someone may be able to help out.

System-specific requirements:
- Linux:
   + glibc 2.9+ (for signalfd)
   + libasound (ALSA sound support - or you can use OSS4)
- FreeBSD:
   + OSS4 sound support
   + libiconv

Tools:
- pkg-config

Libraries:
- libantlr3c (ANTLR3 C runtime, version 3.2 for tarball builds)
        from <http://www.antlr.org/download/C>
- Avahi client libraries (avahi-client), 0.6.24 minimum
        from <http://avahi.org/>
- sqlite3 3.5.0+ with unlock notify API enabled (read below)
        from <http://sqlite.org/download.html>
- ffmpeg 0.5.1+
        from <http://ffmpeg.org/releases/>
- libconfuse
        from <http://www.nongnu.org/confuse/>
- libevent 1.4+
        from <http://www.monkey.org/~provos/libevent/>
- libavl
        /!\ Read below
- MiniXML (aka mxml or libmxml)
        from <http://minixml.org/software.php>
- gcrypt 1.2.0+
        from <http://gnupg.org/download/index.en.html#libgcrypt>
- zlib
        from <http://zlib.net/>
- libunistring 0.9.3+
        from <http://www.gnu.org/software/libunistring/#downloading>
- libflac (optional - FLAC support)
        from <http://flac.sourceforge.net/download.html>
- taglib (optional - Musepack support)
        from <http://developer.kde.org/~wheeler/taglib.html>
- libplist 0.16+ (optional - iTunes XML support)
        from <http://github.com/JonathanBeck/libplist/downloads>

 

Does anyone see any huge problems with getting this working?  I see glibc needs to be 2.9+ but I did find a Slackware 13.0 package for this which seemed to install without issue...  I am having a hard time finding packages for many other libraries, which would mean installing from source.  What is the best way to do this?  Should I setup a slackware 13.0 install somewhere and compile all these libraries, and then try and create slackware packages from the compiled copies?

 

Any help is appreciated!  Thanks! ???

It is probably do-able and it is on my list of things to look into... but there is not enough time in the day to get to them all.

 

I have some interest in getting something like this running, though it is not a pressing need for me, nor something that I absolutely need.  What that means is that I will get to it when I have some free time to debug it all and figure out what all needs to be installed for it to work properly on an unRAID machine.

 

Probably will not start on it for a couple of months if I had to take a wild stab at a time frame.

  • 2 months later...
  • Author

Anybody at all interested in this?  I'd love to try and help out, but i need a bit of direction here.. :(

I've gotten Firefly SVN1696 working on unRaid 4.7.

I install libid3tag, then my mt-daapd pkg (which has the vorbis, ogg, sqlite, sqlite3, and FLAC libs in it).

My conf file resides on the flash drive.

My db resides in a subfolder in the music directory.  I've set for no rescan (I scan manually with the web interface).

It doesn't automatically start, I have start and stop buttons on my unMenu user script page.

No offense to Weebotech, the version he compiled worked, but it was an older version without smart playlists.  I wanted to feed my old Roku SB, and this works.

Does it work with the latest itunes?

People reported mt-daapd as to having problems with itunes 10.

 

If it works can you upload the packages so we may download them?

 

Let me work on posting the package somehow. My handy ZIP file with the packages is 2.43MB

 

  • Author

Let me work on posting the package somehow. My handy ZIP file with the packages is 2.43MB

 

 

Any chance you'd be interested in trying to get forked-daapd working instead?  The author basically picked up where Firefly left off, and has made it work with iTunes remote, and the like.  This is why I'm really interested in forked-daapd instead of firefly :)

  • Author

Let me work on posting the package somehow. My handy ZIP file with the packages is 2.43MB

 

 

If you need help posting the package,  I can host it somewhere...

OK, here we go.  This is extremely YMMV and is for testing purposes only  ::).  It feeds the latest iTunes 10.xx (Windows) and my Roku.  (Running unRaid 4.7)

In the Zip file...

The 'go.txt' file has the additions to your go script to install the packages.

The packages are in the 'Custom' directory

The config file is in 'Custom/mt-daapd' which is where the start script looks for it.

Set your music and database directory in the config file.

I don't start it automatically.  I put a start and stop button in my unMenu/user scripts page.  The command is

/etc/rc.d/rc.mt-daapd start|stop

The web interface should work at port 3689.  Login with any name and 'mt-daapd' as the password.

 

I threw a bunch of libs in the mt-daapd package (or mt-daapd wouldn't start), so flac and ogg should work if you enable them in the config (you can edit the config with the web interface).

 

 

Package is at mediafire:

http://www.mediafire.com/?cc484nht8rfia4a

 

You can add Fireplay to the admin-root folder on the flash drive and it works.

Redth, I didn't do forked-daapd because it doesn't do smart playlists.

OK, here we go.  This is extremely YMMV and is for testing purposes only  ::).  It feeds the latest iTunes 10.xx (Windows) and my Roku.  (Running unRaid 4.7)

.

.

.

Redth, I didn't do forked-daapd because it doesn't do smart playlists.

 

Cool!  8)  Many thanks for doing this and for sharing - I was beginning to miss the later versions of Firefly since I switched to unRAID.

 

Well, I got it working after a bit of fiddling around, but I am very impressed.  I made a few changes outside the package so that the database and log file are on my cache drive.  I keep a copy of the mt-daapd.ini file on the flash drive outside of the package as well as my own version of the rc.mt-daapd file.  Then in the Go script I copy them out to /etc and /etc/rc.d before I start up mt-daapd so that it runs with my own settings.  Also, I could not get transcoding to work (from FLAC to LPCM), but that's not a huge worry - I have a copy of my library in Apple Lossless specifically for my Roku players anyway.

 

I'd love to be able to tweak the files inside the package and then get into tweaking the code as well, but I need someone to show the way... (not much idea how to even rebuild the package at this point)

 

Here are my files

 

extract from /boot/config/go...

 

# Firefly
installpkg /boot/custom/libx86-1.1-i486-1.tgz
installpkg /boot/custom/libid3tag-0.15.1b-i486-2.tgz
installpkg /boot/custom/mt-daapd-1696ur-b2.tgz

# overwrite a couple of files from the package with our own
cp /boot/custom/mt-daapd/mt-daapd.conf /etc
cp /boot/custom/mt-daapd/rc.mt-daapd /etc/rc.d

# start firefly 
/etc/rc.d/rc.mt-daapd start

 

and the mt-daapd.conf

[general]
web_root = /boot/custom/mt-daapd/admin-root
port = 3689
admin_pw = mt-daapd
mp3_dir = /mnt/user/ALAC/Firefly
servername = Firefly1696
runas = root
playlist = /mnt/cache/.mt-daapd/mt-daapd.playlist
extensions = .mp3,.m4a,.wma
logfile = /mnt/cache/.mt-daapd/mt-daapd.log
db_parms = /mnt/cache/.mt-daapd
debuglevel = 2
always_scan = 1
scan_type = 0
rescan_interval = 0
[scanning]
process_playlists = 0

 

and the rc.mt-daapd

#!/bin/sh
#
# mt-daapd	iTunes music server daemon. 
#

start() {
 if [ -x /usr/sbin/mt-daapd ]; then
 echo "Starting mt-daapd iTunes server: /usr/sbin/mt-daapd"
 /usr/sbin/mt-daapd -c /etc/mt-daapd.conf
 sleep 1 
 fi
}

stop() {
   echo "Killing mt-daapd iTunes server... "
   killall /usr/sbin/mt-daapd 2> /dev/null
}

# How to call it.
case "$1" in
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       stop
sleep 1
       start
       ;;
   *)
       echo $"Usage: $0 {start|stop|restart}"
       ;;
esac

 

(put them in full since it's much easier to read than opening several small attachments...)

 

Not worried about forked-mt-daapd either.

 

Cheers,

 

Les.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.