Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Need feedback: interface for ffmpeg/libav pref selection
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  

Which of variants in post 1 would you prefer?
A (USE=libav for libav, USE=-libav for ffmpeg, USE=ffmpeg for optional libav/ffmpeg)
24%
 24%  [ 18 ]
B (USE=ffmpeg/libav to select, and USE=avcodec for optional either of them)
29%
 29%  [ 22 ]
C (FFMPEG_IMPL=ffmpeg/libav to select, USE=ffmpeg for optional either of the impls)
45%
 45%  [ 34 ]
Total Votes : 74

Author Message
derk
Guru
Guru


Joined: 10 Mar 2003
Posts: 347
Location: St Thomas Ontario

PostPosted: Tue Feb 03, 2015 4:02 pm    Post subject: Reply with quote

so if you have libav set as your default and want either mplayer or k9copy will portage now be designed to automaticly switch you to ffmpeg instead .. via autounmask and friends etc.. ?

Actually will the postproc avcodec avformat swscale flags (VLC) also be effected by the switch? .. some of these seem redundant already.


Last edited by derk on Tue Feb 03, 2015 4:53 pm; edited 1 time in total
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Tue Feb 03, 2015 4:52 pm    Post subject: Reply with quote

miket wrote:
Here's my option E (option D already having been claimed):
Code:
USE=prefer_libav
that works independently of the setting of USE=ffmpeg.

This is option A with just a different name for the USE-flag. So if you want this, you should vote A.
However, since you claim that this is a generic solution for possibly also other virtuals: It is not; it works only if you have exactly two choices for the virtual. More chocie practically require B or C (if there are subslot dependenceis).
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Tue Feb 03, 2015 5:23 pm    Post subject: Reply with quote

Dr.Willy wrote:
khayyam wrote:
As for a "working solution" not so far covered, we could drop libav entirely ...

Probably because that is not a "working solution" for anyone who wants to use libav.

Dr.Willy ... yes, but as I stated above this problem seems to me casually the outcome of poor decisions made previously, namely libav entering the tree. Now, it wasn't the case that users were clamouring to have libav, most users just take whatever is provided by virtual/ffmpeg, it was added because of the relationship between developers and the fork. This wasn't a decision that was the express wish of a subset of users (least of all a majority, and/or a good percentage) it came to be as a decision made by one or two persons. The fact that it has brought with it these issues it directly attributable to that decision ... and the main point is that it hasn't benefited users at all. So, the "working solution" above is meant to underline that decisions have consequences ... and that those consequences often lead to situations like we have presented here ... none of which per se benefits users.

best ... khay
Back to top
View user's profile Send private message
229566
Tux's lil' helper
Tux's lil' helper


Joined: 16 Aug 2010
Posts: 127

PostPosted: Tue Feb 03, 2015 6:29 pm    Post subject: Reply with quote

Am I assuming correctly that this issue is not unlike OpenSSL with several implementations of it (Open, Polar), and one more coming up - LibreSSL?

To me the cleanest solution would be for ffmpeg to install/build against ffmpeg, and libav to install/build against libav, and then portage ensuring that both can't be defined. However, that approach would probably make impossible any combinations where one package would build against ffmpeg, and another against libav - if something like that is at all desirable (and imho it is, for choice is good). In which case I really think that a global (or per-package) USE flag of ffmpeg should mean both/any of the two, and then packages define FFMPEG_IMPL, or whatever.
Back to top
View user's profile Send private message
gotyaoi
Tux's lil' helper
Tux's lil' helper


Joined: 01 Apr 2013
Posts: 137

PostPosted: Tue Feb 03, 2015 6:57 pm    Post subject: Reply with quote

I'm not sure any of the given options are all that good. Given that the virtual package doesn't work since the two are not binary compatible, and given that some packages can only build against one or the other, what advantage can come of specifying which package you want in this manner, as opposed to through masking the undesirable package or `emerge -1`'ing the package that you want? What can a package do in the case where it finds you prefer the implementation it can't work with other than say you can't install it. Is that really any clearer or better than blocking?
Back to top
View user's profile Send private message
Ant P.
Watchman
Watchman


Joined: 18 Apr 2009
Posts: 6920

PostPosted: Tue Feb 03, 2015 7:41 pm    Post subject: Reply with quote

I personally would prefer libav to be removed until it's had an in-depth security audit like ffmpeg has - stealing upstream fixes to four-year-old CVEs is not an acceptable or responsible alternative.
Back to top
View user's profile Send private message
miket
Guru
Guru


Joined: 28 Apr 2007
Posts: 488
Location: Gainesville, FL, USA

PostPosted: Tue Feb 03, 2015 8:15 pm    Post subject: Reply with quote

Sorry, but you have mistaken the interpretation on two counts.
mv wrote:
miket wrote:
Here's my option E (option D already having been claimed):
Code:
USE=prefer_libav
that works independently of the setting of USE=ffmpeg.

This is option A with just a different name for the USE-flag. So if you want this, you should vote A.
However, since you claim that this is a generic solution for possibly also other virtuals: It is not; it works only if you have exactly two choices for the virtual. More chocie practically require B or C (if there are subslot dependenceis).


    * Solution A as stated is ambiguous. USE=libav could signify either of "build package X having an optional direct dependency on media-video/libav with that dependency" or "use libav when choosing the dependency to resolve virtual/ffmpeg". That USE flag would lurk around fooling people into thinking it was an ordinary USE flag.
    * There is nothing to constrain a prefer_* prefix to a binary selection for a virtual. Here's an example of multiple flags: prefer_mariadb, prefer_mysql, prefer_percona, and prefer_mariadb-galera. The prefix does eliminate the ambiguity between the virtual-influencing USE flag and a "normal" one.


Yes, the solution does fall down in the face of slotted dependencies. There are cases that might warrant introducing a special new variable. Is there really a need for that kind of thing for most packages? Indeed, do you need that kind of control for the case of virtual/ffmpeg?

As is the case with most USE flags, it would likely be better to apply the prefer_* USE flags directly in package.use for the virtual. Using the prefer_ prefix retains an advantage even in this case: it lowers the risk that inadvertently forgetting to unset a globally applied ffmpeg.

Here's what I mean by this last item. Here's the situation I'm trying to avoid:
Code:
# grep virtual/ffmpeg /etc/portage/package.use
virtual/ffmpeg libav
# USE=ffmpeg emerge sox
which sets up an ambiguity between ffmpeg and libav because the line from package.use did not unset ffmpeg.
I would have it as
Code:
# grep virtual/ffmpeg /etc/portage/package.use
virtual/ffmpeg prefer_libav
# USE=ffmpeg emerge sox


This has to be said: I never actually install packages with the USE flag in the emerge environment like that. On the other hand, it is a very useful idiom for doing pretend emerges.

This takes me to choice F: require explicit setting of USE flags for virtuals. I could live with this one--and it means introducing no new USE flags. Make the virtual ebuild complain if multiple dependency USE flags are enabled and insist that people use the package.use to make the selections:
Code:
# grep virtual/ffmpeg /etc/portage/package.use
virtual/ffmpeg -ffmpeg libav
Back to top
View user's profile Send private message
Tony0945
Watchman
Watchman


Joined: 25 Jul 2006
Posts: 5127
Location: Illinois, USA

PostPosted: Tue Feb 03, 2015 8:29 pm    Post subject: Reply with quote

Modified B (USE=ffmpeg/libav to select, forget the third flag for either)

I believe portage already has a mechanism for one of two flags to be required. Otherwise go with the virtual. Three flags for two choices is one flag too many.

USE="-libav" doesn't mean USE="ffmpeg", it means don't use libav. I think this being made overly complex in order to deprecate ffmpeg.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10589
Location: Somewhere over Atlanta, Georgia

PostPosted: Tue Feb 03, 2015 8:49 pm    Post subject: Reply with quote

miket wrote:
...
Solution A as stated is ambiguous.
...
I don't think these simple tokens need to be unambiguous (in the sense you mean). It's okay in my mind for the USE flag descriptions to explain and disambiguate the meaning.

I prefer B or something close to it. I also don't like creating a new USE_EXPAND unless there's a strong technical justification for it, basically for reasons others have stated.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
mgorny
Developer
Developer


Joined: 27 Apr 2007
Posts: 83

PostPosted: Tue Feb 03, 2015 9:00 pm    Post subject: Reply with quote

Tony0945 wrote:
Modified B (USE=ffmpeg/libav to select, forget the third flag for either)

I believe portage already has a mechanism for one of two flags to be required. Otherwise go with the virtual. Three flags for two choices is one flag too many.

Do you really want to make me angry? Is it thard hard to read the part why this won't work? Do I have to repeat myself for tenth time today?

Tony0945 wrote:
USE="-libav" doesn't mean USE="ffmpeg", it means don't use libav. I think this being made overly complex in order to deprecate ffmpeg.

Yes, it's a conspiracy. I'm wasting two days of my life to bring doom to ffmpeg.
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54239
Location: 56N 3W

PostPosted: Tue Feb 03, 2015 9:13 pm    Post subject: Reply with quote

There are no good answers.
The least worst is the USE_EXPAND as it provides consistency.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
mgorny
Developer
Developer


Joined: 27 Apr 2007
Posts: 83

PostPosted: Tue Feb 03, 2015 9:25 pm    Post subject: Reply with quote

Thanks for all your replies. This is really a minor issue, and I didn't suspect it may bring this much discussion, this many conflicting ideas and so much anger between different parties. Neither did I expect the votes to be this evenly split. But as NeddySeagoon said, there are no good solutions here.

So to avoid further delays and conflicts I'm going to with option A. More precisely, restore the previous news item and just unmask the packages. While it may not be perfect, it's a least-effort solution for the current mess. Option C would be my choice if not how many people were strongly opposed to it and how many people wanted an eclass because of it. Complexity over complexity, that's what it is. So I'd rather go with the typical Gentoo 'we made something a mess, now you RTFM to figure out how to do it'.

I'm sorry for all the issues. If you have any ideas how to get ffmpeg/libav upstreams sane, I think that's the better thing to do here than finding a solution for their insanity. For a start, we may consider boycotting both packages and all their reverse dependencies for a better world :P.
Back to top
View user's profile Send private message
229566
Tux's lil' helper
Tux's lil' helper


Joined: 16 Aug 2010
Posts: 127

PostPosted: Tue Feb 03, 2015 9:31 pm    Post subject: Reply with quote

NeddySeagoon wrote:
There are no good answers.
The least worst is the USE_EXPAND as it provides consistency.


I'd give that solution a bit more credit than just calling it "least worst". :) So many kinds of relations between packages can't be solved with a flat one-dimensional list without sacrificing usability and "faking" other dimensions with prefixes like linguas_, or in this case ffmpeg_impl_, and others.
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Tue Feb 03, 2015 9:56 pm    Post subject: Reply with quote

mgorny wrote:
So to avoid further delays and conflicts I'm going to with option A.

I'd call that a classic show election ... what "conflict", and what "anger"? ... except for perhaps your making Tony0945 a show distraction for more substantive points, there wasn't any.

mgorny wrote:
I'm sorry for all the issues. If you have any ideas how to get ffmpeg/libav upstreams sane, I think that's the better thing to do here than finding a solution for their insanity.

You could take this up with your fellow developers, after all *someone* started us down this path ... and it wasn't the users inundating devs with requests for libav.

mgorny wrote:
For a start, we may consider boycotting both packages and all their reverse dependencies for a better world :P.

Indeed, and we could start with libav, see how that goes, and then when "problems" arise we could turn on ffmpeg.

best ... khay
Back to top
View user's profile Send private message
mgorny
Developer
Developer


Joined: 27 Apr 2007
Posts: 83

PostPosted: Tue Feb 03, 2015 10:22 pm    Post subject: Reply with quote

khayyam wrote:
mgorny wrote:
So to avoid further delays and conflicts I'm going to with option A.

I'd call that a classic show election ... what "conflict", and what "anger"? ... except for perhaps your making Tony0945 a show distraction for more substantive points, there wasn't any.

No, it wasn't, and I'd appreciate if you weren't such an ass. In fact, before this thread I was convinced on going with C. You can judge only what you see here. I'm really tired, you know?
Back to top
View user's profile Send private message
NeddySeagoon
Administrator
Administrator


Joined: 05 Jul 2003
Posts: 54239
Location: 56N 3W

PostPosted: Tue Feb 03, 2015 10:27 pm    Post subject: Reply with quote

khayyam,

There has been a heated discussion on the -dev ml. Far more than this issue warrants.
_________________
Regards,

NeddySeagoon

Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail.
Back to top
View user's profile Send private message
Tony0945
Watchman
Watchman


Joined: 25 Jul 2006
Posts: 5127
Location: Illinois, USA

PostPosted: Tue Feb 03, 2015 10:33 pm    Post subject: Reply with quote

Quote:
... I'd appreciate if you weren't such an ass.


Likewise. YOU were the one who asked for opinions. If you were going to just stare into your navel on Mount Olympus, why did you bother asking?

Personally, I'm offended by your tantrum at my reasonably worded reply. You wouldn't by any chance be 15 years old, would you?
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Tue Feb 03, 2015 11:09 pm    Post subject: Reply with quote

Quote:
... I'd appreciate if you weren't such an ass.

Tony0945 wrote:
Likewise. YOU were the one who asked for opinions. If you were going to just stare into your navel on Mount Olympus, why did you bother asking?

Personally, I'm offended by your tantrum at my reasonably worded reply. You wouldn't by any chance be 15 years old, would you?

Lol, no though he sometimes acts like it. As stated, I think someone's just near burnout and needs a bit of downtime.

Happens to the best of us.
Back to top
View user's profile Send private message
davidm
Guru
Guru


Joined: 26 Apr 2009
Posts: 557
Location: US

PostPosted: Tue Feb 03, 2015 11:35 pm    Post subject: Reply with quote

C is what I voted for out of the options I see available. It is the least ambiguous and allows a way to make a clear choice with little work.

However personally I think the 'ffmpeg' flag should have always been just ffmpeg and the new libav should have used the libav flag. The traditional default should always remain the default absent extreme reasons to do otherwise such as a major licensing change incompatible with FOSS or the upstream no longer being maintained. When you go against this you create messes like this. If after the fork to libav people wanted to have libav instead let them then manually change their use flags.

BTW I completely respect the work of the libav developers. Thank you (if you read this) for creating a viable choice. :) All I'm saying is that people should have a reasonable choice and it should not be made for them.
Back to top
View user's profile Send private message
davidm
Guru
Guru


Joined: 26 Apr 2009
Posts: 557
Location: US

PostPosted: Tue Feb 03, 2015 11:42 pm    Post subject: Reply with quote

ulm wrote:
Both options B and C violate the KISS principle, because where one flag would be sufficient, you will have two. Which are mutually exclusive, so you must jump through hoops (i.e. REQUIRED_USE) to suppress the meaningless combinations.

With regard to option C: I fear that the USE_EXPAND setting will be hard to find for users who prefer the implementation that is not the default (i.e. if they want ffmpeg). Tools like ufed and flaggie support normal USE flags only.


True. But making 'ffmpeg' mean 'libav' by default already did that IMHO. As a returning user (in December) I found it quite unintuitive and you could say "rude" that libav was selected by default when there did not appear to be a significant reason to do that. I read a couple forum topics on that and even then did not see a real reason for it other than it seems a developer pushed the choice seemingly without a lot of scrutiny (I may not have the whole picture though). I fixed the issue by masking libav but was a bit annoyed. I doubt I am the only one. I would be more upset if I still had my old P4 as it would have meant losing half a day recompiling related packages after the new install.

Again no disrespect to libav developers or even those in favor of libav by default for the 'ffmpeg' virtual package. I respect and appreciate your work assuming you have a positive intent to make Linux/Gentoo better.
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Wed Feb 04, 2015 12:15 am    Post subject: Reply with quote

Yeah but if you can't have both installed..

Anyhow, B makes the most sense from a user-perspective, imo.
Back to top
View user's profile Send private message
khayyam
Watchman
Watchman


Joined: 07 Jun 2012
Posts: 6227
Location: Room 101

PostPosted: Wed Feb 04, 2015 12:17 am    Post subject: Reply with quote

mgorny wrote:
khayyam wrote:
mgorny wrote:
So to avoid further delays and conflicts I'm going to with option A.

I'd call that a classic show election ... what "conflict", and what "anger"? ... except for perhaps your making Tony0945 a show distraction for more substantive points, there wasn't any.

No, it wasn't, and I'd appreciate if you weren't such an ass. In fact, before this thread I was convinced on going with C. You can judge only what you see here. I'm really tired, you know?

mgorny ... in which case 2015-02-01-use-libav must have been something of an unwanted premonition, as its oddly in conformity with the final outcome, but anyhow, I honestly try *not* to be an ass, but if you vent on one particular poster, when more substantive issues were there for the taking, then I read that as an attempt to draw attention away from those issues (and "conspiracy" makes for an easy subject for distraction). If I sense that in an argument, particularly if the discussion is then closed, then I'm gonna call it.

best ... khay
Back to top
View user's profile Send private message
Fitzcarraldo
Advocate
Advocate


Joined: 30 Aug 2008
Posts: 2034
Location: United Kingdom

PostPosted: Wed Feb 04, 2015 2:53 am    Post subject: Reply with quote

Code:
sed -i s/ffmpeg/ffmpeg\ -libav/ /etc/make.conf

In my case, thankfully very simple.
_________________
Clevo W230SS: amd64, VIDEO_CARDS="intel modesetting nvidia".
Compal NBLB2: ~amd64, xf86-video-ati. Dual boot Win 7 Pro 64-bit.
OpenRC udev elogind & KDE on both.

Fitzcarraldo's blog
Back to top
View user's profile Send private message
mgorny
Developer
Developer


Joined: 27 Apr 2007
Posts: 83

PostPosted: Wed Feb 04, 2015 7:21 am    Post subject: Reply with quote

khayyam wrote:
mgorny wrote:
khayyam wrote:
mgorny wrote:
So to avoid further delays and conflicts I'm going to with option A.

I'd call that a classic show election ... what "conflict", and what "anger"? ... except for perhaps your making Tony0945 a show distraction for more substantive points, there wasn't any.

No, it wasn't, and I'd appreciate if you weren't such an ass. In fact, before this thread I was convinced on going with C. You can judge only what you see here. I'm really tired, you know?

mgorny ... in which case 2015-02-01-use-libav must have been something of an unwanted premonition, as its oddly in conformity with the final outcome, but anyhow, I honestly try *not* to be an ass, but if you vent on one particular poster, when more substantive issues were there for the taking, then I read that as an attempt to draw attention away from those issues (and "conspiracy" makes for an easy subject for distraction). If I sense that in an argument, particularly if the discussion is then closed, then I'm gonna call it.

If you cared enough to take a look at the mailing list, you'd know that I already did the work for C, including a new news item and a big diff for all ebuilds. All that is wasted now. Does that make you happier?
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6747

PostPosted: Wed Feb 04, 2015 8:07 am    Post subject: Reply with quote

One guy not being able to understand why he is making technically impossible "suggestions", despite explanations in the first posting, and even being offended when this is told to him.
Another guy complaining that gentoo allowed choice and attacking the developers that gave him choice and attacking another developer for trying hard to make the choice more convenient and technically sane (please recall: easy choice is among the distribution's main philosophy).
A developer calling this kindergarden what it is and being attacked for doing so.
All in all due to some loud people a decision going overboard which has a clear majority of user's votes.
In this thread, I am really ashamed about the community. Gentoo what has become of you?
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page Previous  1, 2, 3  Next
Page 2 of 3

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum