mp3act is a music manager, based on php. It supports streaming and jukebox mode for mp3, support for oggvorbis, FLAC and others is planned for the next release. It supports multiple users with various access limitations and uses mysql databases for data storage. Since it uses AJAX it doesn't feel like a website but a full-featured app. There's currently nothing comparable to mp3act, and it's the only one I could find that is still actively maintained by upstream.
Created attachment 73334 [details] ebuild Here's my attempt at an ebuild. Haven't managed to get the stupid thing running yet, as it gives a 'Fatal error: Call to undefined function session_save_path() in /var/www/localhost/htdocs/mp3act/includes/sessions.php on line 2' error, but that's probably my fault. Note I've used stream as if it's a global use flag (it's currently local). I've also used sed where I shouldn't - someone with leeter bash knowledge than me can probably correct this in a moment. Anyway, hopefully I've done the hard work - if the reporter could help me get this to a comittable level, we'll both be glad for it!
Nice to see that others are interested too :) I've made some changes to your ebuild, trying to explain them in the diff just below: --- mp3act-1.2.ebuild.old 2005-11-22 15:08:36.000000000 +0100 +++ gentoo/cvs/gentoo-x86/media-sound/mp3act/mp3act-1.2.ebuild 2005-11-22 15:44:03.000000000 +0100 @@ -2,22 +2,23 @@ # Distributed under the terms of the GNU General Public License v2 # $Header: $ -inherit webapp +inherit webapp versionator DESCRIPTION="Web based (PHP Script) Jukebox" HOMEPAGE="http://www.mp3act.net/" -PV2=`echo ${PV} | sed s/\\\\.//` -SRC_URI="mirror://sourceforge/${PN}/${PN}_${PV2}.tar.bz2" +MY_PV=$(replace_version_separator 1 '') +SRC_URI="mirror://sourceforge/${PN}/${PN}_${MY_PV}.tar.bz2" # versionator.eclass is a nice tool to avoid cryptic sed or bash statements LICENSE="GPL-2" -KEYWORDS="~x86" -IUSE="stream" +KEYWORDS="~amd64 ~x86" # works fine on my amd64 ;) +IUSE="" # the streaming feature is always provided by mp3act, so there's no need for a use flag DEPEND="virtual/httpd-php dev-db/mysql - stream? (media-sound/xmms media-sound/lame) # no stream use flag anymore, depending on xmms doesn't make any sense: there are thousands of other players, and they might be playing on another box - media-sound/mpg123 -" + media-sound/lame + virtual/mpg123" # mpg321 also works, hence using the virtual src_unpack() { mkdir ${S} other than that, it might be nice to mention the exact webapp-config command the user has to run, but i'm not sure what it would look like.. webapp herd, any suggestions?
Created attachment 73373 [details] revised ebuild
blubb: many thanks for that. a word on use flags. Given that lame is required for streaming, if the user wants streaming, don't we want to force the installation of lame? If not, then they don't need it. also, I discovered why my install wasn't working - I didn't have the cli and session use flags set when I emerged php. Is there anything we can do about that? e.g. complain in the emerge if they're not set and tell the user to recompile their php?
The only other thing is that for the jukebox functionality to work, apache needs to be a member of the audio group. The functions in the eutils eclass don't appear to help with that, so is it worth adding to the pkg_postinst einfo section?
(In reply to comment #4) > a word on use flags. Given that lame is required for streaming, if the user > wants streaming, don't we want to force the installation of lame? If not, then > they don't need it. Since you can't disable streaming with a configure option like --disable-streaming, you have to assume that the user will use streaming, so we always have to force the dependency on lame. > also, I discovered why my install wasn't working - I didn't have the cli and > session use flags set when I emerged php. Is there anything we can do about > that? e.g. complain in the emerge if they're not set and tell the user to > recompile their php? basically, there is such a function: built_with_use from eutils.eclass. However, we only need that for dev-lang/php, dev-php/php doesn't have a cli use flag, since it only builds the cli variant. we'd probably have to do sth like this in RDEPEND: || ( dev-php/php dev-lang/php) and then later on check dev-lang/php for beeing built with the cli use flag. but that will break again if you're using dev-php/php. i'm not very familiar with the php cruft, and i really don't know how to work around this problem :/ (In reply to comment #5) > The only other thing is that for the jukebox functionality to work, apache needs > to be a member of the audio group. The functions in the eutils eclass don't > appear to help with that, so is it worth adding to the pkg_postinst einfo section? absolutely. will save quite some bug reports about jukebox mode not working
Created attachment 73953 [details] uses php helper functions This latest ebuild uses the depend.php eclass to make sure we have a php with http and command line support that has been built with the session flag. It also tells the user to add apache to the audio group. Hopefully that's all the outstanding problems covered so it should be ready for admission...
Hi, mp3act is now in our unofficial overlay: http://svn.gnqs.org/projects/gentoo-webapps-overlay/browser/www-apps/mp3act The overlay is intended to provide easier access to new web applications.