Tiny Core Linux
Tiny Core Extensions => TCE Talk => Topic started by: donquixote2u on August 17, 2010, 05:24:38 PM
-
Just wondering now that tc3 is here whether its time for another look at mpd?
There seems to be quite a bit of interest in music players, and the arrival of mpd in the repos was clearly well received, with maybe a few mpd clients in the pipeline.
there seem to be a few recurring issues though, some easily dealt with.
the auto starting of mpd with a default config seems to be more of a hindrance than help, (most seem to have to kill it and restart) given mpd's wide variability of configs, so one config never fits all. Maybe forget the startup script and just put hints in tthe info file?
Like many others I had alsa problems, whereas OSS "just worked" - the alsa stuff it dragged in seemed to stop OSS working when I restarted mpd (to pick up a custom config file) from bootlocal, but not when i moved the restart to the .X.d dir? WTF? - maybe an OSS-only version would be good? (and a lot leaner)
At any rate the libao2 dependency is now redundant since with the new recursive dependency resolution liba0 is pulled in by the vorbis-tools dependency, so a recompile under libao should fix this, no? or do I misunderstand the situation?
I must say that the mpd modules creator, Davor Serfez, did a great job of documenting his build on his own site (serfez.net) which was a huge help in understanding not only the process of compiling mpd, but extension building in general.
Anyway I would be interested in other opinions on those two changes and possible alternative version.
-
The alsa dep should be libasound instead of the full set, so that it doesn't interfere with OSS. Fixed. Also did that to wine-gl, wine-gl-dev, and speech-dispatcher.
-
the auto starting of mpd with a default config seems to be more of a hindrance than help, (most seem to have to kill it and restart) given mpd's wide variability of configs, so one config never fits all. Maybe forget the startup script and just put hints in tthe info file?
Anyway I would be interested in other opinions on those two changes and possible alternative version.
I also use this stop and restart method in order to obtain the MPD configuration I require; it is clumsy but does work. I would like to see the current boot-up default of /etc/mpd.conf being discontinued in favour of /opt/.mpd/mpd.conf. This will provide a user editable file in an area well suited to both local backup by filetool and also where /opt is persistent storage.
I have recently been informed by the developer of MPD that the next version will be released later this month (August) and contains lots of bug-fixes/new features. Perhaps any update of mpd.tcz could also incorporate the forthcoming release.
-
I would like to see the current boot-up default of /etc/mpd.conf being discontinued in favour of /opt/.mpd/mpd.conf. This will provide a user editable file in an area well suited to both local backup by filetool and also where /opt is persistent storage.
SamK , you and I are in synch on this one - thats exactly what i did! I am also still doubtful about the value of starting mpd at load time, in my case before my second usb drive with all my music on it can be mounted.
Curaga thanks for that fast work on the alsa issue - I have fired up a TC3 version of my setup today. MPD seems to work fine starting from bootlocal without killing OSS now. The libao/liba02 redundancy is a minor issue (theyre tiny) that can wait for an mpd recompile.
Have you all noticed that b1ackmai1er has submitted an mpc extension? good lad! - I was trying to do learn how to that , but I can run with his now - I'm blown away by the pace of tc development, great stuff!
-
Hi donquixote2u,
Thanks for the kind words. This was my first extension and all based on Davor Serfez great work. I made some notes on how I did this which I have posted below, if you are interested.
Install compiletc.tcz
Install squashfs-tools-4.0.tcz
Install mpd.tcz
Download libmpdclient-2.3.tar.bz2 to /home/tc
Download mpc-0.19.tar.gz to /home/tc
export CFLAGS=”-march=i486 -mtune=i686 -Os -pipe”
export CXXFLAGS=”-march=i486 -mtune=i686 -Os -pipe -fno-exceptions -fno-rtti”
export LDFLAGS=”-Wl, -O1”
cd /home/tc
tar xjvf libmpdclient-2.3.tar.bz2
cd libmpdclient-2.3
sudo ./configure --prefix=/usr/local
sudo make -j2
sudo make DESTDIR=/tmp/mpc install-strip
cd /home/tc
tar xjvf mpc-0.19.tar.gz
cd mpc-0.19
sudo ./configure --prefix=/usr/local
sudo make -j2
sudo make DESTDIR=/tmp/mpc install-strip
cd /tmp/mpc
sudo mkdir usr/local/tce.installed
sudo touch usr/local/tce.installed/mpc
sudo chown root:staff usr/local/tce.installed/mpc
sudo chmod 775 usr/local/tce.installed/mpc
sudo rm -rf usr/local/include
sudo rm usr/local/lib/libmpdclient.a
sido rm usr/local/lib/libmpdclient.la
sudo rm -rf usr/local/lib/pkgconfig
sudo rm -rf usr/local/share
find usr -not -type d > ../mpc.tcz.list
cd ..
mksquashfs mpc mpc.tcz
md5sum mpc.tzc > mpc.tcz.md5.txt
-
So if these are the available options for MPD... What options should be compiled in?
########### MPD CONFIGURATION ############
Archive support:
(-bzip2) (-ISO9660) (-ZIP)
Client support:
(+IPv6) (+TCP) (+UNIX Domain Sockets)
File format support:
(+AAC) (-C64 SID) (-FFMPEG) (+FLAC) (-FluidSynth) (-GME) (+libsndfile)
(-MikMod) (-MODPLUG) (+MAD) (-MPG123) (+MP4) (+Musepack) (+OggFLAC)
(-OggTremor) (+OggVorbis) (+WAVE) (+WavPack) (-WildMidi)
Other features:
(+libsamplerate) (+inotify) (+SQLite)
Metadata support:
(-cue) (+ID3)
Playback support:
(+ALSA) (+FIFO) (+File Recorder) (+HTTP Daemon) (+JACK) (+libao) (+OSS)
(-OpenAL) (-OS X) (-Pipeline) (+PulseAudio) (-Media MVP) (-SHOUTcast)
(-Solaris) (-WIN32 wave)
Streaming encoder support:
(+FLAC) (-LAME) (+Ogg Vorbis) (-TwoLAME) (+WAVE)
Streaming support:
(+CURL) (-Last.FM) (+MMS)
????
-
So if these are the available options for MPD... What options should be compiled in?
erm - you've lost me there, b1ackmai1er! are you taking a poll on what most people want in MPD, or just what is needed to compile it at all? if the latter, the doco says "The only requirement is you must compile with at least one audio output, and one decoder"
for example I have experimentally built for my use a version that plays only mp3s to OSS output with optional mp3 streaming via the mpd internal server;
that only has OSS and lame as tc dependencies (ie no ogg, vorbis, flac, etc) and if I left out the streaming it wouldnt even need lame.
This wiki list was helpful; http://mpd.wikia.com/wiki/Dependencies (http://mpd.wikia.com/wiki/Dependencies)
hope this helps! ;D
-
@b1ackmai1er
Is there a particular reason why your extension (mpc) loads mpd as a dep and starts it? On a client computer that is not necessary, right?
-
@b1ackmai1er
Is there a particular reason why your extension (mpc) loads mpd as a dep and starts it? On a client computer that is not necessary, right?
Tao I am unaware that mpc has any remote capabilities, being just a local cli for mpd, so the mpd dependency is valid, but please correct me if I am wrong.
However when it comes to mpd, I wonder if ANY dependencies should be listed? Surely the y are only dependencies if and when they are required according to the mode that mpd is configured for? e.g. if I want to play mp3s to OSS without streaming, there would be no dependencies required for the current version as it is compiled?
IMHO there should just be a list of modal dependencies in the info.
-
Tao I am unaware that mpc has any remote capabilities,
Of course ...
tc@box:~$ mpc playlist --host 192.168.252.137 --port 6600
2raumwohnung - Da sind wir
2raumwohnung - Ich weiss warum
2raumwohnung - Ich und Elaine
BTW: Yesterday I built ncmpcpp and it is now available in the repo. Although it is slightly larger then mpc, but can also much more.
For this I have also built libmpdclient as an extra extension. So you can take this part out of your mpc extension and instead use libmpdclient as a dep.
e.g. if I want to play mp3s to OSS without streaming
Have you already tried out "moc"?
-
Another graphical console player with very low CPU and memory usage and nice features like a playlist editor and a builtin sound mixer would be mp3blaster, if anyone would care to compile it.
http://mp3blaster.sourceforge.net/
-
@taotepuh
Yes you are right. mpd should not be a dependency.
I will submit a new version shortly with dependencies corrected and your new libmpdclient.tcz
I have compiled the new mpd which I will submit for people to play with and get some feedback.
@donquixote2u
I see what you mean in regard to mpd dependencies but I do not have enough experience to know what dependencies are truly needed. I will have a play
regards b1ackmai1er
-
My way to determine the dependencies is :
- Start TC with bootcodes "base norestore"
- mount your tce-dir
- load your Extension
- start your extension in aterm and look at the error messages
- load the missing extension manually (tce-load -i extension) and note it down in the .dep file
- repeat the last step until the application starts without error
-
ldd 'app'
might also be useful.
-
I have built mpd 0.15.12 (last stable) and before sending it to the repo, this is a feature request to the community.
Currently it looks like this:
########### MPD CONFIGURATION ############
Client Support:
IPv6 support ..................enabled
TCP support ...................enabled
Unix domain socket support ....enabled
Playback Support:
ALSA support ..................enabled
FIFO support ..................enabled
HTTP daemon support ...........enabled
JACK support ..................disabled
libao support .................enabled
OSS support ...................enabled
OS X support ..................disabled
Pipeline output support .......disabled
PulseAudio support ............enabled
Media MVP support .............disabled
SHOUTcast support .............disabled
Solaris /dev/audio support ....disabled
Streaming Encoder Support:
LAME mp3 encoder ..............enabled
Ogg Vorbis encoder ............enabled
File Format Support:
AAC support ...................enabled
C64 SID support ...............disabled
FFMPEG support ................enabled
FLAC support ..................enabled
fluidsynth MIDI support .......disabled
MikMod support ................disabled
MODPLUG support ...............enabled
MAD mp3 decoder support .......enabled
MP4 support ...................enabled
Musepack (MPC) support ........enabled
OggFLAC support ...............enabled(FLAC 1.1.3)
Ogg Vorbis support ............enabled
using tremor.................no
Wave file support .............enabled
WavPack support ...............enabled
wildmidi MIDI support .........disabled
Archive support:
BZ2 archives support ..........enabled
ISO 9660 archives support .....enabled
ZIP archives support ..........enabled
Streaming support:
last.fm radio support .........enabled
libcurl support (streaming) ...enabled
libmms support ................enabled
Other features:
ID3 tag support ...............enabled
libsamplerate support .........enabled
Zeroconf support ..............disabled
libcue support ................disabled
##########################################
Any special demands?
-
Any special demands?
Not a demand but a request.
It will be helpful if mpd.conf is placed in a editable location rather than the default of /etc. This will negate the current requirement to stop the running instance and restart it pointing to an editable mpd.conf.
An example of how I currently do this is given earlier in this thread - see post 2.
-
I believe that it is good to keep the mpd.conf in its usual place. Otherwise, experienced users would get problems because they presuppose the file at that location.
But since I do not intend to start mpd automatically, you can specify a different location while starting: "/usr/local/bin/mpd /opt/mpd.conf".
-
The other option is to compile such that mpd.conf ends up in /usr/local/etc and then:
1. move the default mpd.conf to somewhere like /usr/local/share/mpd/files/mpd.conf
2. create a start-up script in /usr/local/tce.installed that checks for the presence of /usr/local/etc/mpd.conf and copies /usr/local/share/mpd/files/mpd.conf to /usr/local/etc if it doesn't already exist
This way a modified mpd.conf can be kept in a backup and will not be over-written when the extension is loaded again
-
Thanks for the idea but there is no "default mpd.conf" in my extension. The settings are too individual.
There is only a "example conf" in /usr/local/share/doc/mpd/mpdconf.example but this will never work without manual adjustment.
I would like to place the following hint in the info file for the Appbrowser:
CONFIGURATION
-------------
Copy example configuration
tce-load -i mpd-0.15.12-doc
sudo cp /usr/local/share/doc/mpd/mpdconf.example /etc/mpd.conf
Modify (with sudo) /etc/mpd.conf according to your requirements
Put mpd.conf in your backup if /etc is not persistent
echo "etc/mpd.conf" >> /opt/.filetool.lst
START mpd
---------
sudo /usr/local/bin/mpd /etc/mpd.conf
STOP mpd
--------
sudo killall mpd
-
I have compiled and submitted the latest alpha version which supports the mpd.conf file in /opt/.mpd
Have been having trouble getting it submitted to the tiny core extensions repository.
If you want to try the package, please PM me with your email and I will send through.
regards b1ackmai1er
-
Thanks for the idea but there is no "default mpd.conf" in my extension. The settings are too individual.
There is only a "example conf" in /usr/local/share/doc/mpd/mpdconf.example but this will never work without manual adjustment.
I would like to place the following hint in the info file for the Appbrowser:
CONFIGURATION
-------------
Copy example configuration
tce-load -i mpd-0.15.12-doc
sudo cp /usr/local/share/doc/mpd/mpdconf.example /etc/mpd.conf
Modify (with sudo) /etc/mpd.conf according to your requirements
Put mpd.conf in your backup if /etc is not persistent
echo "etc/mpd.conf" >> /opt/.filetool.lst
START mpd
---------
sudo /usr/local/bin/mpd /etc/mpd.conf
STOP mpd
--------
sudo killall mpd
If my understanding is correct /etc is only persistent when using a traditional (scatter) type install. Although this is possible with TC the wiki suggests that pristine setups are preferred.
I use one of the preferred installation methods outlined in the wiki which uses persistent /home /opt and /tce. With this setup backup is not conducted via filetool.lst. Your proposed method of dealing with mpd.conf is well suited to users backing up via filetool.lst. Others who use persistent storage as outlined in the Core Concepts page of the wiki may have a pristine /etc which is not backed up.
-
Blackmailer has submitted mpd.tcz, which was previously done by Davor Serfez.
And TaoTePuh has submitted the closely related gmpc set of extensions.
Since this all has been discussed in this thread at length, I am assuming everyone is ok with it.
Any concerned parties can contact me if this is an issue.
-
Blackmailer has submitted mpd.tcz, which was previously done by Davor Serfez.
And TaoTePuh has submitted the closely related gmpc set of extensions.
Since this all has been discussed in this thread at length, I am assuming everyone is ok with it.
Any concerned parties can contact me if this is an issue.
Jason W I am glad you posted this, since I was wrestling with some of the issues involved. I dont own mpd, but certainly do own the starting of this thread, so felt a bit responsible when it looked like we were going to have two versions of mpd!
As it has happened it seems to have worked out well. We havent heard from Davor so I assume he is off doing other things - hopefully this thread circumvents the issue we have had recently with original extension submitters having their toes trod on by new versions surfacing without appropriate consultation.
Blackmailer put his hand up for the re-compilation so it looks like he's "it" as mpd maintainer now. Between his proposed compile options and TaoTePuh , the only question I have (and probably an ignorant one ;) ) - what about icecast streaming? Is shoutcast the same thing? This seems to be quite commonly used mpd feature with other distros. It (streaming) is on my to-do-one-day list so I'd better find out!
Anyway good to see the prolific TaoTePuh has now added gmpc! he certainly has become a very good mpd client contributor now.
Now to a few more comments:
I have compiled and submitted the latest alpha version which supports the mpd.conf file in /opt/.mpd
well that is where I think both I and SamK put our mpd config, so ok by me , BUT I hope mpd isnt being started out of tce.installed since I dont have my mounts done by that stage - so to that extent I like TaoTePuh's roll-your-own approach to config. Thanks for the idea but there is no "default mpd.conf" in my extension. The settings are too individual.
There is only a "example conf" in /usr/local/share/doc/mpd/mpdconf.example but this will never work without manual adjustment.
I would like to place the following hint in the info file for the Appbrowser:
CONFIGURATION
-------------
Copy example configuration
tce-load -i mpd-0.15.12-doc
sudo cp /usr/local/share/doc/mpd/mpdconf.example /etc/mpd.conf
Modify (with sudo) /etc/mpd.conf according to your requirements
Put mpd.conf in your backup if /etc is not persistent
echo "etc/mpd.conf" >> /opt/.filetool.lst
START mpd
---------
sudo /usr/local/bin/mpd /etc/mpd.conf
STOP mpd
--------
sudo killall mpd
It bypasses both the stop/start issue with mpd, and that of where the config file is - just put it where you like, before you start mpd! Blackmailer, what was your approach here?
-
@b1ackmai1er
Thanks for the update of MPD!
Unfortunately, I am unhappy with this version.
Installing MPD:
tc@box:~$ tce-load -i mpd
libogg.tcz: OK
speex.tcz: OK
flac.tcz: OK
libvorbis.tcz: OK
libao.tcz: OK
vorbis-tools.tcz: OK
libsndfile.tcz: OK
libsamplerate.tcz: OK
libltdl.tcz: OK
libgdbm.tcz: OK
libpulseaudio.tcz: OK
celt.tcz: OK
jack.tcz: OK
mpg123.tcz: OK
tcp_wrappers.tcz: OK
nano.tcz: OK
usage: sudo -h | -K | -k | -L | -V
usage: sudo -v [-AknS] [-p prompt]
usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U username] [-u username|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] file ...
usage: sudo -h | -K | -k | -L | -V
usage: sudo -v [-AknS] [-p prompt]
usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U username] [-u username|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u username|#uid] file ...
mpd.tcz: OK
The thing is also, I do not like the configuration in /opt (I can not remember this in six months) and I do not need the directory /home/tc/.mpd and its content.
And when I try to start MPD:
tc@box:~$ sudo mpd /etc/mpd.conf
Failed to load database: Database format mismatch, discarding database file
output: line 224: No such encoder: lame
Aborted
Obviously you have built mpd without "Streaming Encoder Support : LAME mp3 encoder".
I also wonder, why all the libraries are in your extension?
tc@box:~$ tree /tmp/tcloop/mpd/
/tmp/tcloop/mpd/
`-- usr
`-- local
|-- bin
| `-- mpd
|-- lib
| |-- libcue.so -> libcue.so.1.0.4
| |-- libcue.so.1 -> libcue.so.1.0.4
| |-- libcue.so.1.0.4
| |-- libmp3lame.so -> libmp3lame.so.0.0.0
| |-- libmp3lame.so.0 -> libmp3lame.so.0.0.0
| |-- libmp3lame.so.0.0.0
| |-- libshout.so -> libshout.so.3.2.0
| |-- libshout.so.3 -> libshout.so.3.2.0
| `-- libshout.so.3.2.0
|-- share
| `-- doc
| `-- mpd
| `-- mpdconf.example
`-- tce.installed
`-- mpd
8 directories, 12 files
This will certainly be problems with future updates.
-
in such cases i static link libraries instead of providing shared libs within the extension (see vlc)
for example compiling libshout with "--enable-static --disable-shared" will do the trick
or if you wish you can create an extension for them libshout.tcz etc.
Also I don't recommend alpha version over a stable version
-
And the libmp3lame.so* files are in the lame.tcz extension.
For libraries in extensions already existing in the repo, have the .dep file load those extensions instead of packing the files from other extensions in mpd.tcz. That will cause file conflicts and errors when the other extension is updated.
And if libraries are needed from a seperate source that is not already in an extension in the repo, make an extension for it and list it as a dependency.
-
I built mpd 0.15.12 (last stable) and sent it to Jason for inclusion in the repo. Everything else is in the info file.
-
Once again I will assume that the parties involved are ok with the update.
-
@Jason
In principle, I support your intentions. But my version is also different in functionality.
The original TC version (and also the version of b1ackmai1er) supports e.g. no mp3 streaming (I need it but for my iPod) etc ...
I have included in my version as much as possible options. This makes this version of course, larger (more dependencies) :
########### MPD CONFIGURATION ############
Client Support:
IPv6 support ..................enabled
TCP support ...................enabled
Unix domain socket support ....enabled
Playback Support:
ALSA support ..................enabled
FIFO support ..................enabled
HTTP daemon support ...........enabled
JACK support ..................enabled
libao support .................enabled
OSS support ...................enabled
OS X support ..................disabled
Pipeline output support .......disabled
PulseAudio support ............enabled
Media MVP support .............enabled
SHOUTcast support .............enabled
Solaris /dev/audio support ....disabled
Streaming Encoder Support:
LAME mp3 encoder ..............enabled
Ogg Vorbis encoder ............enabled
File Format Support:
AAC support ...................enabled
C64 SID support ...............disabled
FFMPEG support ................enabled
FLAC support ..................enabled
fluidsynth MIDI support .......disabled
MikMod support ................disabled
MODPLUG support ...............enabled
MAD mp3 decoder support .......enabled
MP4 support ...................enabled
Musepack (MPC) support ........enabled
OggFLAC support ...............enabled(FLAC 1.1.3)
Ogg Vorbis support ............enabled
using tremor.................no
Wave file support .............enabled
WavPack support ...............enabled
wildmidi MIDI support .........disabled
Archive support:
BZ2 archives support ..........enabled
ISO 9660 archives support .....enabled
ZIP archives support ..........enabled
Streaming support:
last.fm radio support .........enabled
libcurl support (streaming) ...enabled
libmms support ................enabled
Other features:
ID3 tag support ...............enabled
libsamplerate support .........enabled
Zeroconf support ..............avahi
libcue support ................enabled
##########################################
Maybe we can escape this catch 21 situation by renaming my version to "mpd-max"?
-
I just noticed the mpd extension you sent in has a version number in its name, meaning if other apps will depend on this one then the dep files of those apps will be broken upon an update of the mpd with a version in it's name.
As for who provides the final mpd.tcz, it is up to you and blackmailer, as the original submitter has not been heard from in a long time.
The mpd that blackmailer sent in does not meet criteria since it has libs packed in it. It needs to be replaced or at least the libs taken out and deps added to the dep file.
If there needs to be two extensions, then an mpd.tcz and perhaps a mpd-full or mpd-max could be done.
-
@Jason
In principle, I support your intentions. But my version is also different in functionality.
The original TC version (and also the version of b1ackmai1er) supports e.g. no mp3 streaming (I need it but for my iPod) etc ...
I have included in my version as much as possible options. This makes this version of course, larger (more dependencies) :
########### MPD CONFIGURATION ############
Client Support:
IPv6 support ..................enabled
TCP support ...................enabled
Unix domain socket support ....enabled
Playback Support:
ALSA support ..................enabled
FIFO support ..................enabled
HTTP daemon support ...........enabled
JACK support ..................enabled
libao support .................enabled
OSS support ...................enabled
OS X support ..................disabled
Pipeline output support .......disabled
PulseAudio support ............enabled
Media MVP support .............enabled
SHOUTcast support .............enabled
Solaris /dev/audio support ....disabled
Streaming Encoder Support:
LAME mp3 encoder ..............enabled
Ogg Vorbis encoder ............enabled
File Format Support:
AAC support ...................enabled
C64 SID support ...............disabled
FFMPEG support ................enabled
FLAC support ..................enabled
fluidsynth MIDI support .......disabled
MikMod support ................disabled
MODPLUG support ...............enabled
MAD mp3 decoder support .......enabled
MP4 support ...................enabled
Musepack (MPC) support ........enabled
OggFLAC support ...............enabled(FLAC 1.1.3)
Ogg Vorbis support ............enabled
using tremor.................no
Wave file support .............enabled
WavPack support ...............enabled
wildmidi MIDI support .........disabled
Archive support:
BZ2 archives support ..........enabled
ISO 9660 archives support .....enabled
ZIP archives support ..........enabled
Streaming support:
last.fm radio support .........enabled
libcurl support (streaming) ...enabled
libmms support ................enabled
Other features:
ID3 tag support ...............enabled
libsamplerate support .........enabled
Zeroconf support ..............avahi
libcue support ................enabled
##########################################
Maybe we can escape this catch 21 situation by renaming my version to "mpd-max"?
TaoTePuh's version now includes icecast/shoutcast capability, thereby addressing my concerns about weaknesses in previous versions, so is just fine for my use;
I found my own cut-down local mp3/OSS version wasnt THAT much smaller, so I'd be happy to run with this version as the official mpd 0.15 version. I think the "generic" mpd.tcz version does need to cover as many bases as this one does.
In the meantime I'd like to suggest to blackmailer that he could perhaps ready an 0.16 "mpd-testing.tcz" version along the same lines (ie libs in separate packages), or maybe do a bundled "nodeps" version?
oh and btw TaoTePuh I stand corrected on the mpc remote capability, thanks for pointing that out, so mpc CAN stand without the mpd dependency.
-
I think donquixote has a good idea for this extension.
-
I have finally got a script for compiling mpd. I can quickly adapt this to all needs (git-version, more/less options etc).
But I am waiting for b1ackmai1er's and the community's answer whether to continue or not ...
-
mpd.tcz in the repo needs to be at least corrected in regards to file contents. And I see mpc.tcz has three instances of appended data to it, indicated by the top level usr_1, usr_2, and usr_3 directories. I have a check for appended data in the audit script, but somehow it slipped past me.
Tonight I will correct the appended data issue with the mpc.tcz extension.
Tao has taken the steps to communicate and resolve the mpd issue, and his build appears to be best suited for being the main mpd.tcz extension. So please submit the latest stable one as mpd.tcz, I see no reason for further delay.
-
Okay, I'll send version 0.15.12 (last stable) as mpd.tcz.
But how shall I name version 0.16 (git, alpha)?
mpd-testing.tcz
mpd-git.tcz
mpd???
Or do you not want me to submit it?
-
-git or -svn is a pretty good name for a cutting edge version, as git or svn versions may change in between alpha and beta and RC status.
-
Blackmailer has submitted mpd.tcz, which was previously done by Davor Serfez.
And TaoTePuh has submitted the closely related gmpc set of extensions.
Since this all has been discussed in this thread at length, I am assuming everyone is ok with it.
Any concerned parties can contact me if this is an issue.
Jason W I am glad you posted this, since I was wrestling with some of the issues involved. I dont own mpd, but certainly do own the starting of this thread, so felt a bit responsible when it looked like we were going to have two versions of mpd!
As it has happened it seems to have worked out well. We havent heard from Davor so I assume he is off doing other things - hopefully this thread circumvents the issue we have had recently with original extension submitters having their toes trod on by new versions surfacing without appropriate consultation.
Blackmailer put his hand up for the re-compilation so it looks like he's "it" as mpd maintainer now. Between his proposed compile options and TaoTePuh , the only question I have (and probably an ignorant one ;) ) - what about icecast streaming? Is shoutcast the same thing? This seems to be quite commonly used mpd feature with other distros. It (streaming) is on my to-do-one-day list so I'd better find out!
Anyway good to see the prolific TaoTePuh has now added gmpc! he certainly has become a very good mpd client contributor now.
Now to a few more comments:
I have compiled and submitted the latest alpha version which supports the mpd.conf file in /opt/.mpd
well that is where I think both I and SamK put our mpd config, so ok by me , BUT I hope mpd isnt being started out of tce.installed since I dont have my mounts done by that stage - so to that extent I like TaoTePuh's roll-your-own approach to config. Thanks for the idea but there is no "default mpd.conf" in my extension. The settings are too individual.
There is only a "example conf" in /usr/local/share/doc/mpd/mpdconf.example but this will never work without manual adjustment.
I would like to place the following hint in the info file for the Appbrowser:
CONFIGURATION
-------------
Copy example configuration
tce-load -i mpd-0.15.12-doc
sudo cp /usr/local/share/doc/mpd/mpdconf.example /etc/mpd.conf
Modify (with sudo) /etc/mpd.conf according to your requirements
Put mpd.conf in your backup if /etc is not persistent
echo "etc/mpd.conf" >> /opt/.filetool.lst
START mpd
---------
sudo /usr/local/bin/mpd /etc/mpd.conf
STOP mpd
--------
sudo killall mpd
It bypasses both the stop/start issue with mpd, and that of where the config file is - just put it where you like, before you start mpd! Blackmailer, what was your approach here?
Hi, Davor Serfez here.
Thanks for all the nice words for my work with building the mpd extension and documenting the procedure. I'm very glad if it helped in learning and creating an improved extension which deserves to carry the 'mpd' name. I am not a tinycore user but I find microcore to be a fantastic platform for building virtual or embedded appliances for the x86 architecture (that's why I created the mpd and postal extensions).
Keep on the good work.
-
Good to see Davor approves of the work done in his footsteps! ;)
- further to recent discussion on the minimal/nodeps version, it may be difficult to define what to leave out, but I'm gonna leap in where others fear to tread anyway!
Davor's v2.x version left out shoutcast, so maybe the mini version should be a local player only? leave out the lame, httpd etc? mpd-player anyone?
I must admit I eventually went with my own cut-down version for the same dep-bloat reasons, but it is an mp3-only version, with lame and httpd for mp3 streaming. Thats another version possibility, mpd-mp3?
we almost need a poll with a few popular options , eh!!!
-
This should be mpd.tcz: mp3,flac,vorbis,aac,wave,curl,samplerate,cue,id3-tag,oss
Minimal enough for me.
-
FYI: I have just submitted mpd 0.16 and some stuff for usage.
Here is the summary of compiling options:
########### MPD CONFIGURATION ############
Archive support:
(+bzip2) (+ISO9660) (+ZIP)
Autodiscovery support:
(-Avahi) (-Bonjour)
Client support:
(+IPv6) (+TCP) (+UNIX Domain Sockets)
File format support:
(+AAC) (+C64 SID) (+FFMPEG) (+FLAC) (+FluidSynth) (+GME) (-libsndfile)
(+MikMod) (+MODPLUG) (+MAD) (+MPG123) (+MP4) (+Musepack) (+OggFLAC)
(-OggTremor) (+OggVorbis) (+WAVE) (+WavPack) (+WildMidi)
Other features:
(+libsamplerate) (+inotify) (+SQLite)
Metadata support:
(+cue) (+ID3)
Playback support:
(+ALSA) (+FFADO) (+FIFO) (+File Recorder) (+HTTP Daemon) (+JACK) (+libao) (+OSS)
(+OpenAL) (-OS X) (+Pipeline) (+PulseAudio) (+Media MVP) (+SHOUTcast)
(-Solaris) (-WinMM)
Streaming encoder support:
(+FLAC) (+LAME) (+Ogg Vorbis) (+TwoLAME) (+WAVE)
Streaming support:
(+CURL) (+Last.FM) (+MMS)
##########################################
Some notes on configuration :
- Support for Avahi was enabled for compiling but is displayed with (-Avahi) --> (Bug?).
- Support for libsndfile is disabled (-libsndfile) because it conflicts with libmodplug (both have a file named sndfile.h)
- The support for "FireWire based audio devices" (+FFADO) is new in mpd 0.16 but not tested by myself - I don't have the necessary equipment
And here is the resulting support :
Supported decoders:
[mad] mp3 mp2
[mpg123] mp3
[vorbis] ogg oga
[oggflac] ogg oga
[flac] flac
[audiofile] wav au aiff aif
[faad] aac
[mp4ff] m4a m4b mp4
[mpcdec] mpc
[wavpack] wv
[modplug] 669 amf ams dbm dfm dsm far it med mdl mod mtm mt2 okt s3m stm ult umx xm
[mikmod] amf dsm far gdm imf it med mod mtm s3m stm stx ult uni xm
[sidplay] sid mus str prg P00
[wildmidi] mid
[fluidsynth] mid
[ffmpeg] 16sv 3g2 3gp 4xm 8svx aa3 aac ac3 afc aif aifc aiff al alaw amr anim apc ape asf atrac au aud avi avm2 avs bap bfi c93 cak cin cmv cpk daud dct divx dts dv dvd dxa eac3 film flac flc fli fll flx flv g726 gsm gxf iss m1v m2v m2t m2ts m4a m4b m4v mad mj2 mjpeg mjpg mka mkv mlp mm mmf mov mp+ mp1 mp2 mp3 mp4 mpc mpeg mpg mpga mpp mpu mve mvi mxf nc nsv nut nuv oga ogm ogv ogx oma ogg omg psp pva qcp qt r3d ra ram rl2 rm rmvb roq rpl rvc shn smk snd sol son spx str swf tgi tgq tgv thp ts tsp tta xa xvid uv uv2 vb vid vob voc vp6 vmd wav wma wmv wsaud wsvga wv wve
[gme] ay gbs gym hes kss nsf nsfe sap spc vgm vgz
Supported outputs:
shout null fifo pipe alsa ao oss openal pulse mvp jack httpd recorder ffado
Supported encoders:
null vorbis lame twolame wave flac
Supported archives:
bz2 zip iso
Supported protocols:
file:// http:// mms:// mmsh:// mmst:// mmsu:// gopher:// rtp:// rtsp:// rtmp:// rtmpt:// rtmps://
no message buffer overruns
And no, I have not tested all the possible variants ...
-
I saw these new extensions. Most of the dependencies are overkill.
The dependency files from my old extensions in the 2.x archives might be a starting point.
In general I suggest people should not build extensions they don't ever use.
Test them at least one time.
If there is any demand I can support ffado and similar extensions. I didn't update them, because there weren't any other users anyway and I still use tc 2.x on my daw.
-
@Tao: at least libffado needs rework, please put only libffado.so* into the libffado extension and the rest splitted into ffado. there are many people who don't want to (or cannot) use these drivers at all, and they surely don't need qt or ffado python scripts or pyqt etc. for running mpd. if libffado requires too many compromising trade-offs, then think about leaving it out completely...
[edit]
I would also suggest to include in the mpd info file that you don't have to run mpd as root, it's sufficient to be run as normal user on port 6600 with own configuration data in the home directory. It's not very common to run processes as root if you're not forced to do so.
[/edit]
-
... the libffado extension ...
I have just submitted an updated version. I hope it's better that way.
I would also suggest to include in the mpd info file that you don't have to run mpd as root, it's sufficient to be run as normal user on port 6600 with own configuration data in the home directory. It's not very common to run processes as root if you're not forced to do so.
There is no problem with the "sudo" if you deal correctly with the option "user" in "mpd.conf".
But if you change "user" to something different than "tc" (maybe "user mpdrun"), you have to start with "sudo" if you logged in as tc. Okay, I admit that this case at TCL is relatively unlikely. But "sudo" is the universal variant.
I agree we should probably write more about this problem.
But we should not forget that many people start mpd out from the script bootlocal.sh and then (if option user is unused) mpd runs at root, doesn't it?
Here is my suggestion for the .info file
START mpd
---------
/usr/local/bin/mpd /etc/mpd.conf
Save this in your /opt/bootlocal.sh if mpd should
be started automatically at boot time.
Note if start mpd out from /opt/bootlocal.sh:
You should deal with the option "user" in
mpd.conf so that mpd doesn't run as root.
-
from bootlocal.sh I run mpd with
su -c '/usr/local/bin/mpd' tc
which prevents mpd from getting root privileges.
my .mpdconf file in /home/tc looks like this
port "6600"
music_directory "/mnt"
playlist_directory "~/.mpd/playlists"
db_file "~/.mpd/mpd.db"
log_file "~/.mpd/mpd.log"
the drives under /mnt are user rw (in my case ntfs-3g).
I'm not saying that there aren't any good reasons to start mpd as root (although I cannot think of one atm) but as long as it is just unnecessary I wouldn't go this way because it's only providing a certain risk, no gain at all.
-
Today I wanted to start the ffado-mixer, but there is none in libffado. Perhaps you could create a ffado-tools package or something like that?
-
Today I wanted to start the ffado-mixer, but there is none in libffado. Perhaps you could create a ffado-tools package or something like that?
Obviously you mean me. May I quote you?
In general I suggest people should not build extensions they don't ever use.
Test them at least one time.
I have written that I can not test ffado, so it should take another this job better.
-
Yeah, no problem, I wasn't sure if you wanted me to take over these packages.
As you see there might be a few problems communicating by means of this forum. I also tried to pm you, but didn't get a response.
To get on-topic again:
What do you think of mpd-minimal? Would you like to maintain it in addition to your mpd.tcz?
-
I also tried to pm you, but didn't get a response.
Ooops, that was my first pm in this forum and I have taken no notice of it - I will pay more attention in the future.
To get on-topic again:
What do you think of mpd-minimal? Would you like to maintain it in addition to your mpd.tcz?
I have several problems with this :
1.) I am a novice in building extensions. Most of what I do is trial and error. Very little is superior work.
2.) I am (actually) not the maintainer of this extension.
3.) This minimal extension is very minimal in my opinion. I personally have no use for them. I need e.g. mp3 streaming (iPod touch) and support for sid and some midi formats ... another user wrote that he needs shoutcast ...
I have started a discussion in this thread "how minimal is minimal enough" but there were few answers.
-
Ooops, that was my first pm in this forum and I have taken no notice of it - I will pay more attention in the future.
Yeah, the forum is a lot more complex than tinycore I guess ;)
3.) This minimal extension is very minimal in my opinion. I personally have no use for them. I need e.g. mp3 streaming (iPod touch) and support for sid and some midi formats ... another user wrote that he needs shoutcast ...
I understand. I'll update it because current bugs are getting annoying;)
It will support low-memory environments, so that you can build embedded audio players with it. It will support the most important audio formats, curl for web radio, and an OSS output.
That's my New Year's pledge...