Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 441476 - media-sound/qsampler should not depend on media-sound/linuxsampler
Summary: media-sound/qsampler should not depend on media-sound/linuxsampler
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-03 08:43 UTC by Cedric Sodhi
Modified: 2012-11-14 08:56 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Cedric Sodhi 2012-11-03 08:43:46 UTC
To my knowledge QSampler is a frontend which can be build without linuxsampler being installed. The ebuild should not unconditionally pull it in.
Comment 1 Ben de Groot (RETIRED) gentoo-dev 2012-11-04 07:00:28 UTC
This is why it's only a runtime dependency. And unless you have a very convincing reason why the frontend could be useful without the backend, it's going to stay the way it is.
Comment 2 Cedric Sodhi 2012-11-04 09:19:48 UTC
Can you please define "very convincing"? There are, most positively, reasons (I don't know whether you'd call them "convincing" or even "very") for which one may want the frontend without the backend but, on the other hand, there are absolutely no reasons for *not* allowing the user to choose whether he wants to install LinuxSampler.

I don't know about you, but in my vocabulary "dependency" expresses the state of "dependence" which means something "depends" on something else. As a matter of fact, Wikipedia (and other encyclopedia) confirms that quite explicitly:

http://en.wikipedia.org/w/index.php?title=Dependency_(computer_science)

So here are two reasons in favour of not making LinuxSampler a hard dependency of QSampler:

* There are reasons for which one may only want to install qsampler
* It's not a (hard) dependency by definition

On the other hand there are zero reasons in favour of making LinuxSampler a hard dependency of QSampler:

*

As the package management system which is designed by rational thought, which portage is, I'm sure, as the reasonable person who you certainly are, you agree that the only valid conclusion is thus to remove the dependency or subject it to a USE flag.
Comment 3 Ben de Groot (RETIRED) gentoo-dev 2012-11-04 09:44:14 UTC
> * There are reasons for which one may only want to install qsampler

This is the crux of the matter. What reasons could our users have to only install the frontend? Isn't it pretty much useless without having LinuxSampler?
Comment 4 Cedric Sodhi 2012-11-04 11:57:03 UTC
Although I think that everyone is free to have arbitrarily stupid reasons not to want it and should *still* be able to choose so, for the simple fact that there appears to be no reason *not* to give them that choice (!), here are two reasons I can think of:

* The respective person has developed or uses a different backend for that frontend (generally a reasonable possiblity for frontends of any sort)

* The person wants to manually take care of LinuxSampler (as it's the case for me, needing the SVN version, as most people would). This argument is, by the way, not invalidated by package.provided: package.provided is the subsequently correct method to manually take care of a dependency, *provided* it actually *is* a dependency - it does *not* pose an argument in favor of making something a dependency in the first place (just in case you were going to respond that).
Comment 5 Cedric Sodhi 2012-11-04 12:00:31 UTC
Needless to say, I disagree with your assumption that this was actually "the crux of the matter".
Comment 6 Ben de Groot (RETIRED) gentoo-dev 2012-11-04 14:07:06 UTC
The thing is, users *do* have a choice: package.provided. 

But we assume that users will not want to circumvent the package manager in almost all cases, so we provide a correct dependency graph. As there are no other backends in the wild (as far as I know), there is no need to specifically provide for that. And as the frontend is useless without a backend, LinuxSampler is in fact a runtime dependency.

If you want to use your own linuxsampler build, then you have the choice between writing your own ebuild (adapting the existing one for live svn should be easy), and using package.provided.
Comment 7 Cedric Sodhi 2012-11-04 14:22:29 UTC
I wonder why I made the effort to anticipate your argument with package.provided, you just seem to ignore it...

Do you agree that...

...LinuxSampler is, by technical definition, not a dependency of QSampler? (pro remove it)

...someone may not want LinuxSampler but only QSampler, and it's not reasonable for you or any maintainer to tell that person that "you definitely want it because I, Ben de Groot (or any other maintainer), say it so"? (pro remove it)

...there are no reasons for not giving the user the choice of pulling it in or not? (no contra remove it)

And, even though I repeat myself: package.provided is meant to allow the user to prevent portage from pulling in a dependency. It's *not* meant as an excuse for making something, which is not a dependency per se, a dependency and then say "but the user can forgo it by means of package.provided".

You're surely aware of Gentoo being all about choice. That includes that (hard) dependencies are not abused as means to slip in what a maintainer finds reasonable to do.
Comment 8 Ben de Groot (RETIRED) gentoo-dev 2012-11-04 14:55:55 UTC
(In reply to comment #7)
> I wonder why I made the effort to anticipate your argument with
> package.provided, you just seem to ignore it...
> 
> Do you agree that...
> 
> ...LinuxSampler is, by technical definition, not a dependency of QSampler?
> (pro remove it)

No, I don't agree. It is a runtime dependency, as QSampler is useless without it.

> ...someone may not want LinuxSampler but only QSampler, and it's not
> reasonable for you or any maintainer to tell that person that "you
> definitely want it because I, Ben de Groot (or any other maintainer), say it
> so"? (pro remove it)

I don't agree, since I haven't so far seen any reason why someone would want QSampler but not LinuxSampler for which it is a frontend. Even you yourself say you use it with LinuxSampler.

> ...there are no reasons for not giving the user the choice of pulling it in
> or not? (no contra remove it)

The user does have the choice, by providing his own ebuild for linuxsampler, or by using package.provided. The great majority of users, however, will expect linuxsampler to be pulled in, as it is in fact a runtime dependency.

> And, even though I repeat myself: package.provided is meant to allow the
> user to prevent portage from pulling in a dependency. It's *not* meant as an
> excuse for making something, which is not a dependency per se, a dependency
> and then say "but the user can forgo it by means of package.provided".

But as I have said before, QSampler being a frontend actually needs LinuxSampler as a runtime dependency to function.

> You're surely aware of Gentoo being all about choice. That includes that
> (hard) dependencies are not abused as means to slip in what a maintainer
> finds reasonable to do.

Yes, it is about choice. It is also about convenience. Don't you agree that the majority of users would expect linuxsampler to be pulled in, since it is the backend needed for qsampler to function?

You also have the choice to use your own ebuild, if you don't like the choices a package maintainer makes.

Now please stop reopening this bug just because you think you are right. I'm done with this edit war. If you do reopen it again, I will reassign it to User Relations.
Comment 9 Cedric Sodhi 2012-11-04 15:22:47 UTC
> Yes, it is about choice. It is also about convenience. Don't you agree that
> the majority of users would expect linuxsampler to be pulled in, since it is
> the backend needed for qsampler to function?

Yes I agree. That's what USE Flags and their defaults are for.

Long story short: You've still failed to provide *any* reason, whatsoever, why you wouldn't allow one more line in the ebuild and thereby give the user the choice of whether he wants LinuxSampler or not.

Instead, you've ended this discussion with a proof of (your) ignorance. Congratulations. Of course, I'll refrain from reopening it, because, obviously, *you* are right, and not me.

> Now please stop reopening this bug just because you think you are right. I'm
> done with this edit war. If you do reopen it again, I will reassign it to
> User Relations.
Comment 10 Ben de Groot (RETIRED) gentoo-dev 2012-11-04 15:32:16 UTC
(In reply to comment #9)
> > Yes, it is about choice. It is also about convenience. Don't you agree that
> > the majority of users would expect linuxsampler to be pulled in, since it is
> > the backend needed for qsampler to function?
> 
> Yes I agree. That's what USE Flags and their defaults are for.

No, USE flags are for compile-time options.

> Long story short: You've still failed to provide *any* reason, whatsoever,
> why you wouldn't allow one more line in the ebuild and thereby give the user
> the choice of whether he wants LinuxSampler or not.

Actually, I have provided a reason: QSampler isn't functional without LinuxSampler.

> Instead, you've ended this discussion with a proof of (your) ignorance.
> Congratulations.

Thanks for the insult. That's really helpful.
Comment 11 Samuli Suominen (RETIRED) gentoo-dev 2012-11-04 17:02:11 UTC
If qsampler has a way of using linuxsampler from a remote host and has all the path(s) as well as, for example, TCP host (and/or) port configurable within the Qt4 GUI and it's "Preferences" dialog then this would be like media-sound/mpd and adding the dep would be wrong

But I don't think that is the case for *sampler at all, so +1 for adding the _correct required dependency to unbreak the default installation_.
Comment 12 Cedric Sodhi 2012-11-04 18:09:27 UTC
(In reply to comment #10)
> Thanks for the insult. That's really helpful.

I apologize. That was indeed uncalled for.

> No, USE flags are for compile-time options.

Please cite your source and, if possible, explain why it's not allowed to use a USE-flag for configuring a dependency which is not compile-time? If that's indeed true I can relate to your argument.
Comment 13 Ben de Groot (RETIRED) gentoo-dev 2012-11-14 08:56:19 UTC
(In reply to comment #12)
> > No, USE flags are for compile-time options.
> 
> Please cite your source and, if possible, explain why it's not allowed to
> use a USE-flag for configuring a dependency which is not compile-time? If
> that's indeed true I can relate to your argument.

http://devmanual.gentoo.org/general-concepts/use-flags/index.html paragraph 4:
"The usage of a USE flag should not control runtime dependencies when the package does not link to it. Doing so will create extra configuration for the package and re-compilation for no underlying file change on disk. This should be avoided and instead can be conveyed to the user via post install messages if needed."