I'm a developer on the Gentoo Linux project (http://www.gentoo.org).
Our meta-distribution is geared towards developers and administrators,
who enjoy the power and flexibility of building their systems from source.
Without going into gory detail of our methodolgies, technologies and
features, suffice it to say that I personally find it the best Linux distribution
on the planet, and that's why I work on it. I invite you to try it and read
the website if you're interested. </plug>

Anyhoo.. I decided to cook up a freeamp-2.1.0 package; mostly because
as a musician who travels to sessions with my notebook computer, on
batteries, and being unsatisfied with mp3blaster's ncurses based player
(it doesnt even have pause, a feature I desparately need! -- which Im not
sure if your console player supports either; I havent gotten that far yet,
but I digress..), I need a decent, robust mp3 player operable in the Linux
console. Using X eats the battery quicker.. so Im not at all interested in
trying xmms or the million others. Oh and we dont have a freeamp
package in our portage tree yet either, so thats another reason I'm
working on it ;)

I've heard good things about your player and from the features list, its just
what I need. Im especially interested in trying the cmdline and ncurses

So I began to write the Gentoo .ebuild for freeamp-2.1.0. This is where
I found some things I'd like to ask you guys about. I've checked your
configure script, and apparently there's no support for enabling/disabling:
 -> arts, vorbis, ORBit, gdk-pixbuf, freetype, X
Upon further investigation it appears that gdk-pixbuf and freetype arent
even required, but you cant turn them off! So basically I'm asking if you
guys could #ifdef your stuff a little more, and allow us users to choose
whether or not we want all those optional things built, rather than just
having configure look for them and decide for us. That or by all means
if there *is* a way of selectively enabling/disabling those, Id really like
to know about it! <g>

Allow me to show you a snippet of my package code. I dont expect you
to fully understand what its all about, but you can get the jist of how our
build system works, and how we allow users to choose which kinds of
things they want their packages compiled with. Here's what I have so far:

        X? ( virtual/x11 )
        arts? ( kde-base/kdelibs )
        esd? ( media-sound/esound )
        alsa? ( media-libs/alsa-lib )
        vorbis? ( media-libs/libvorbis )
        gnome? ( gnome-base/ORBit >=media-libs/gdk-pixbuf-0.8 )"

Basically, the foo? stuff is designed so that if the user has setup his
preferences (his /etc/make.conf file) for that particular support (he has
included those knobs in his USE variable), then those flags will be turned
on in the configure command with --disable/--enable (or maybe even
patching or something else if we can figure it out). Without spamming
the whole "ebuild" into here, I hope you can see what Im asking you for.
Basically Im not going to be able to do that, because your current
release does not support those features as selectable. Or does it?

Could you please make more of the features in freeamp choosable at
configure time, obviously done by pains of #ifdef'ing your core code and
I guess configure and makefile changes. It'd be great for everybody, not
just Gentoo users. One particular ugly reason is this: Lets say I want to
build a freeamp package on a computer where gdk-pixbuf and KDE are
installed, with the idea of installing this package onto a different computer
that has neither. Not pretty. Its not going to work.

Id appreciate any comments, suggestions, critiques you might offer. I was
unable to determine the version requirements for the libraries above that
you see with no version numbers appended. So if somebody could clue
me in on those too, that'd be great! But of course primarily I'm *very*
interested in finding out how/when/if I can selectively compile those
features that are not absolutely neccesary. The best example is probably
to think of a user who only wants the cmdline and ncurses interfaces, no
X stuff. How does he do that? What if he has X installed, but he still
doesnt want it? I hope I've raised some good, vaild points here today.

Thanking you in advance.



Reply via email to