Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 643480 - www-plugins/gnash-0.8.10_p20160329-r1 should depend on media-libs/speex and media-libs/speexdsp
Summary: www-plugins/gnash-0.8.10_p20160329-r1 should depend on media-libs/speex and m...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All All
: Normal normal (vote)
Assignee: Chí-Thanh Christopher Nguyễn
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-01-04 19:43 UTC by silver_ghost
Modified: 2018-04-17 07:15 UTC (History)
2 users (show)

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


Attachments
Switch speex dependency for gnash (file_643480.txt,361 bytes, patch)
2018-02-05 10:10 UTC, CyberLeo Kitsana
Details | Diff
Patch that works with both older and newer media-libs/speex (file_643480.txt,399 bytes, patch)
2018-02-24 02:43 UTC, Mike Thompson
Details | Diff
Patch for gnash-0.8.10_p20160329-r1.ebuild (patch,1.18 KB, patch)
2018-04-15 01:22 UTC, silver_ghost
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description silver_ghost 2018-01-04 19:43:16 UTC
However useflag utils was added to media-libs/speex. It enables dependency on media-libs/libogg like ogg useflag did. Do these useflags have the same meaning? If they do, why ogg was renamed and could media-libs/speex[utils] dependency be used in www-plugins/gnash?
Comment 1 Arfrever Frehtes Taifersar Arahesis 2018-01-05 01:18:47 UTC
www-plugins/gnash does not need speexdec and speexenc tools which are provided by media-libs/speex[utils].
www-plugins/gnash needs media-libs/speexdsp:

$ grep -ir speexdsp *
ChangeLog:      * configure.ac: Recommend installing the libspeexdsp library when
Makefile.am:    @echo " SPEEXDSP_CFLAGS is $(SPEEXDSP_CFLAGS)"
Makefile.am:    @echo " SPEEXDSP_LIBS is $(SPEEXDSP_LIBS)"
configure.ac:GNASH_PKG_FIND(speexdsp, [speex/speex_resampler.h], [speex DSP utilities], speex_resampler_process_int)
configure.ac:if test x$has_speexdsp = xyes ; then
configure.ac:if test x"$SPEEXDSP_LIBS" != x; then
configure.ac:  if test x"$SPEEXDSP_CFLAGS" != x; then
configure.ac:    echo "        Speex DSP flags are: $SPEEXDSP_CFLAGS"
configure.ac:    echo "        Speex DSP libs are: $SPEEXDSP_LIBS"
configure.ac:  PKG_SUGGEST([Install libspeexdsp from http://speex.org])
configure.ac:  DEB_INSTALL([libspeexdsp-dev])
configure.ac:  RPM_INSTALL([speexdsp-devel])
libmedia/Makefile.am:   $(SPEEXDSP_CFLAGS) \
libmedia/Makefile.am:   $(SPEEXDSP_LIBS) \
Comment 2 CyberLeo Kitsana 2018-02-05 10:10:24 UTC
Created attachment 517848 [details, diff]
Switch speex dependency for gnash

I just tested this in my overlay and I can confirm that changing the dependency media-libs/speex[ogg] to media-libs/speexdsp allows gnash to build.
Comment 3 Mike Thompson 2018-02-24 02:43:19 UTC
Created attachment 520822 [details, diff]
Patch that works with both older and newer media-libs/speex

No new dependency.  If speex is an older version, it must have the ogg USE flag.
Comment 4 Mike Thompson 2018-02-24 03:00:11 UTC
(Oops--did not realize that adding an attachment would remove comments entered on the main bug page.  This comment applies to "Patch that works with both older and newer media-libs/speex.)

There was not a renaming of USE flags in speex:  what happened is that libogg became a hard dependency of media-libs/speex starting with version 1.2.0-r1.  Older versions has an optional dependency on libogg and hence the ogg USE flag.

As it happens, media-libs/speexdsp depends on versions of speex no older than 1.2.0-r1, therefore the ogg dependency comes along automatically.

In gnash, neither of speex or speexdsp are hard dependencies.  It will use them if they are available at build time but otherwise build quite happily without them.

Changing gnash to require speexdsp would have the unfortunate effect of forcing users to new things they might rather not have.  Ghash should build OK with older or newer versions of speex.  If a user is restricted from newer speex versions (say because of older alsa-utils), adding the speexdsp dependency would force him or her away from building gnash.  With my patch, older speex versions still work.
Comment 5 Arfrever Frehtes Taifersar Arahesis 2018-02-24 03:18:23 UTC
(In reply to Mike Thompson from comment #4)
> In gnash, neither of speex or speexdsp are hard dependencies.  It will use
> them if they are available at build time but otherwise build quite happily
> without them.

Automagic dependencies are unacceptable.

> Changing gnash to require speexdsp would have the unfortunate effect of
> forcing users to new things they might rather not have.

speexdsp was part of speex in versions <1.2.0 (including 1.2_rc1) and was split by upstream into separate package. So no new thing actually.


In the meantime, the following can be used:
|| (
        (
            >=media-libs/speex-1.2.0
            media-libs/speexdsp
        )
        <media-libs/speex-1.2.0
)
Comment 6 silver_ghost 2018-04-15 01:22:10 UTC
Created attachment 527416 [details, diff]
Patch for gnash-0.8.10_p20160329-r1.ebuild

I've modified code from comment #5 to return ogg useflag.
It builds successfully.
Comment 7 Larry the Git Cow gentoo-dev 2018-04-16 18:29:15 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3544dd4186e1b060bb446d449c1878a80ce38467

commit 3544dd4186e1b060bb446d449c1878a80ce38467
Author:     Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
AuthorDate: 2018-04-16 18:10:28 +0000
Commit:     Mike Gilbert <floppym@gentoo.org>
CommitDate: 2018-04-16 18:27:35 +0000

    www-plugins/gnash: Update dependencies.
    
    Closes: https://bugs.gentoo.org/643480

 www-plugins/gnash/gnash-0.8.10_p20160329-r1.ebuild | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
Comment 8 silver_ghost 2018-04-16 19:02:02 UTC
Why was ability to use both >=media-libs/speex-1.2.0 and <media-libs/speex-1.2.0 removed?
Comment 9 Arfrever Frehtes Taifersar Arahesis 2018-04-16 19:51:46 UTC
media-libs/speex-1.2.0-r1 is now stable on all architectures (bug #641504).
media-libs/speex-1.2_rc1-r2 will be deleted soon.
Comment 10 silver_ghost 2018-04-16 20:15:43 UTC
I can't emerge gnash ([0.8.10_p20160329-r2::gentoo] is [0]). There is a conflict:
# emerge -avt gnash

These are the packages that would be merged, in reverse order:

Calculating dependencies... done!
[ebuild     UD ] www-plugins/gnash-0.8.10_p20160329-r1::gentoo [0.8.10_p20160329-r2::gentoo] USE="X agg cairo dbus doc ffmpeg gtk nls opengl sdl sdl-sound ssl -cygnal (-directfb) -dump -egl -fbcon -gnome -harden -jemalloc -libav -libressl -lirc -mysql -nsplugin (-openvg) -python -ssh {-test} (-vaapi) (-ogg%*)" 0 KiB
[ebuild     UD ]  media-libs/speex-1.2_rc1-r2::gentoo [1.2.0-r1::gentoo] USE="ogg%* -static-libs (-utils%) (-vbr%*)" ABI_X86="32 (64) (-x32)" CPU_FLAGS_X86="sse" 0 KiB
[blocks B      ] <media-libs/speex-1.2.0 ("<media-libs/speex-1.2.0" is blocking media-libs/speexdsp-1.2_rc3-r2)

Total: 2 packages (2 downgrades), Size of downloads: 0 KiB
Conflict: 1 block (1 unsatisfied)

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

media-libs/speex:0

  (media-libs/speex-1.2_rc1-r2:0/0::gentoo, ebuild scheduled for merge) pulled in by
    media-libs/speex[ogg] required by (www-plugins/gnash-0.8.10_p20160329-r1:0/0::gentoo, ebuild scheduled for merge)
                     ^^^                                                                                                                                 
    <media-libs/speex-1.2.0 required by (media-sound/pulseaudio-11.1:0/0::gentoo, installed)
    ^                 ^^^^^                                                                                                                        

  (media-libs/speex-1.2.0-r1:0/0::gentoo, installed) pulled in by
    >=media-libs/speex-1.2.0:0 required by (media-video/vlc-2.2.8-r1:0/5-8::gentoo, installed)
    ^^                 ^^^^^^^                                                                                                                                          


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.


 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (media-libs/speexdsp-1.2_rc3-r2:0/0::gentoo, installed) pulled in by
    media-libs/speexdsp:0 required by (media-video/vlc-2.2.8-r1:0/5-8::gentoo, installed)
    media-libs/speexdsp required by (net-analyzer/wireshark-2.4.6:0/2.4.6::gentoo, installed)

[0] https://bugs.gentoo.org/attachment.cgi?id=527416
Comment 11 Arfrever Frehtes Taifersar Arahesis 2018-04-16 20:21:46 UTC
This is off-topic here.

Anyway, firstly wait some hours, next synchronize the tree, next run:

emerge -atv1 ">=media-libs/speex-1.2.0" media-libs/speexdsp www-plugins/gnash media-sound/pulseaudio media-video/vlc
Comment 12 silver_ghost 2018-04-17 07:15:37 UTC
My mistake. Ebuild hadn't been synced that time yet. Now it works.