Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 915858 - media-sound/mpg123[pulseaudio]: circular dependency with media-libs/libsndfile[-minimal]
Summary: media-sound/mpg123[pulseaudio]: circular dependency with media-libs/libsndfil...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Sound Team
URL:
Whiteboard:
Keywords: PullRequest
Depends on: 921387
Blocks:
  Show dependency tree
 
Reported: 2023-10-16 17:26 UTC by Nathan Shearer
Modified: 2024-01-06 09:06 UTC (History)
2 users (show)

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


Attachments
emerge --info (emerge-info.txt,5.49 KB, text/plain)
2023-10-16 17:26 UTC, Nathan Shearer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nathan Shearer 2023-10-16 17:26:25 UTC
kde-plasma/plasma-meta has circular dependencies when first setting up on a fresh stage3. Default use flags should not have circular dependencies, or they should be automatically enabled/disabled during build time to resolve the conflict.

1. Unpack a stage3
2. Switch to the desktop/plasma profile
3. Attempt to emerge kde-plasma/plasma-meta

Total: 80 packages (80 new), Size of downloads: 238,871 KiB

 * Error: circular dependencies:

(media-libs/libsndfile-1.2.2:0/0::gentoo, ebuild scheduled for merge) depends on
 (media-sound/mpg123-1.31.3-r1:0/0::gentoo, ebuild scheduled for merge) (buildtime_slot_op)
  (media-libs/libpulse-16.1-r2:0/0::gentoo, ebuild scheduled for merge) (buildtime)
   (media-libs/libsndfile-1.2.2:0/0::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying any of the following changes:
- media-libs/libsndfile-1.2.2 (Change USE: +minimal)
- media-sound/mpg123-1.31.3-r1 (Change USE: -pulseaudio)
Comment 1 Nathan Shearer 2023-10-16 17:26:48 UTC
Created attachment 872994 [details]
emerge --info
Comment 2 Igor V. Kovalenko 2023-11-18 08:26:18 UTC
Added upstream PR https://github.com/madebr/mpg123/pull/11 and upstream already applied the change to move internal headers from libmpg123 to shared source directory.

Upstream suggests they probably need to add runtime checking for lib versions to make this change generally available.

For Gentoo we can use this change already because we can guarantee version match between installed mpg123 and libmpg123 as Sam noted on the upstream PR.
Comment 3 Larry the Git Cow gentoo-dev 2023-11-20 14:29:13 UTC
The bug has been referenced in the following commit(s):

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

commit a5043ad9fdbf0f7c6e8a5efa7449489bdbd091d1
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-06 12:55:23 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-20 14:28:03 +0000

    media-video/vlc: Depend on media-libs/libmpg123
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/33689
    Signed-off-by: Sam James <sam@gentoo.org>

 media-video/vlc/vlc-3.0.20-r1.ebuild | 517 +++++++++++++++++++++++++++++++++++
 media-video/vlc/vlc-3.0.9999.ebuild  |   2 +-
 media-video/vlc/vlc-9999.ebuild      |   2 +-
 3 files changed, 519 insertions(+), 2 deletions(-)

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

commit b81edc15f1a3c922d290b2524cf509d172df3e7c
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-06 12:55:23 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-20 14:28:01 +0000

    media-plugins/gst-plugins-mpg123: Depend on media-libs/libmpg123
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 .../gst-plugins-mpg123-1.22.3-r1.ebuild                   | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=56d9f7cd7d782014755c4ed0e7dbe068f5ec3610

commit 56d9f7cd7d782014755c4ed0e7dbe068f5ec3610
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-06 12:55:23 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-20 14:27:58 +0000

    media-libs/libsndfile: Depend on media-libs/libmpg123
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libsndfile/libsndfile-1.2.2-r1.ebuild | 70 ++++++++++++++++++++++++
 media-libs/libsndfile/libsndfile-9999.ebuild     |  2 +-
 2 files changed, 71 insertions(+), 1 deletion(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c2663a76b16800dc83d1c8df19c99b4ddec0748

commit 2c2663a76b16800dc83d1c8df19c99b4ddec0748
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-06 15:29:32 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-20 14:27:56 +0000

    media-sound/mpg123: Depend on media-libs/libmpg123
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 .../mpg123-1.32.3-build-programs-component.patch   |  55 +++++
 .../mpg123-1.32.3-build-with-installed-libs.patch  | 252 +++++++++++++++++++++
 media-sound/mpg123/mpg123-1.32.3-r1.ebuild         | 107 +++++++++
 3 files changed, 414 insertions(+)

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

commit a61300708917d19556d18dfb93352817d5c687fe
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-06 15:28:34 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-20 14:27:53 +0000

    media-libs/libmpg123: Add 1.32.3, split out from media-sound/mpg123
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libmpg123/Manifest                      |   1 +
 .../mpg123-1.32.3-build-programs-component.patch   |  55 +++++
 .../mpg123-1.32.3-build-with-installed-libs.patch  | 252 +++++++++++++++++++++
 media-libs/libmpg123/libmpg123-1.32.3.ebuild       | 104 +++++++++
 media-libs/libmpg123/metadata.xml                  |  17 ++
 profiles/arch/amd64/package.use.mask               |   1 +
 .../prefix/darwin/macos/arch/ppc/package.use.mask  |   1 +
 .../prefix/darwin/macos/arch/x64/package.use.mask  |   1 +
 8 files changed, 432 insertions(+)
Comment 4 Larry the Git Cow gentoo-dev 2023-11-22 18:01:39 UTC
The bug has been referenced in the following commit(s):

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

commit d6e8e5ce363161ef66f039fbee8c25f99047280e
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-22 15:38:29 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-22 17:54:55 +0000

    media-libs/libmpg123: Clean up after package split
    
    Drop moving mpg123 binary which is not built for this library package.
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/33936
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild | 1 -
 1 file changed, 1 deletion(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=41d9b20811698aee8b56703cb58b2256dda4a531

commit 41d9b20811698aee8b56703cb58b2256dda4a531
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-11-22 15:38:19 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-11-22 17:54:55 +0000

    media-sound/mpg123: Add missing die check
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-sound/mpg123/mpg123-1.32.3-r1.ebuild | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 5 Igor V. Kovalenko 2023-12-10 06:45:55 UTC
After discussing things with mpg123 team I did another PR https://github.com/gentoo/gentoo/pull/34190 using suggested package split method. Here mpg123 is a metapackage pulling mpg123-base with everything but output plugins and mpg123-output-plugins with just output plugins which could form dependency cycle.

Pkgcheck does complain about detected package move but the rest of PR 34190 should be fine. Please have a look if this looks better than original split with libmpg123.
Comment 6 Michael Weiser 2023-12-24 09:15:53 UTC
This split leads to an error for me when trying to play mp3s with mpg123:

[/var/tmp/portage/media-libs/libmpg123-1.32.3-r1/work/mpg123-1.32.3/src/libout123/module.c:INT123_open_module():184] error: Failure getting module directory! (Perhaps set MPG123_MODDIR?)
[/var/tmp/portage/media-libs/libmpg123-1.32.3-r1/work/mpg123-1.32.3/src/libout123/libout123.c:out123_open():483] error: Found no driver out of [pulse] working with device <default>.
main: [/var/tmp/portage/media-sound/mpg123-1.32.3-r1/work/mpg123-1.32.3/src/mpg123.c:check_fatal_output():337] error: out123 error 3: failure loading driver module

This is caused by all output modules being missing from /usr/lib64/mpg123 (as well as the whole directory).

Adding libout modules enablement from the mpg123 ebuild to the libmpg123 ebuild fixes it for me:

--- /var/db/repos/gentoo/media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild.orig   2023-12-24 10:06:14.642177225 +0100
+++ /var/db/repos/gentoo/media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild        2023-12-24 10:04:44.874452255 +0100
@@ -80,6 +80,7 @@
        )

        multilib_is_native_abi || myconf+=( --disable-modules )
+       multilib_is_native_abi && myconf+=( --enable-libout123-modules )

        ECONF_SOURCE="${S}" econf "${myconf[@]}"

It appears, the logic for selecting output modules remained in the mpg123 ebuild while libout123 moved to libmpg123 without any output module selection or enabling.

Also, module selection in libmpg123 is now automagic and no longer honours use flags.

I can't help but wonder if there actually are any users of libout123 aside from mpg123 itself. revdep-rebuild on my system says no. So could/should it perhaps remain in the mpg123 ebuild?

$ revdep-rebuild -L libmpg123.so.0 -p
emerge --pretend --oneshot --complete-graph=y media-plugins/gst-plugins-mpg123:1.0 media-video/vlc:0/5-9 media-plugins/audacious-plugins:
0 media-libs/sdl-sound:0 media-sound/mpg123:0 media-libs/libsndfile:0

$ revdep-rebuild -L libout123.so.0 -p
emerge --pretend --oneshot --complete-graph=y media-sound/mpg123:0
Comment 7 Igor V. Kovalenko 2023-12-24 13:39:48 UTC
(In reply to Michael Weiser from comment #6)
> This split leads to an error for me when trying to play mp3s with mpg123:
> 
> [/var/tmp/portage/media-libs/libmpg123-1.32.3-r1/work/mpg123-1.32.3/src/
> libout123/module.c:INT123_open_module():184] error: Failure getting module
> directory! (Perhaps set MPG123_MODDIR?)
> [/var/tmp/portage/media-libs/libmpg123-1.32.3-r1/work/mpg123-1.32.3/src/
> libout123/libout123.c:out123_open():483] error: Found no driver out of
> [pulse] working with device <default>.
> main:
> [/var/tmp/portage/media-sound/mpg123-1.32.3-r1/work/mpg123-1.32.3/src/mpg123.
> c:check_fatal_output():337] error: out123 error 3: failure loading driver
> module
> 
> This is caused by all output modules being missing from /usr/lib64/mpg123
> (as well as the whole directory).
> 
> Adding libout modules enablement from the mpg123 ebuild to the libmpg123
> ebuild fixes it for me:
> 
> ---
> /var/db/repos/gentoo/media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild.orig  
> 2023-12-24 10:06:14.642177225 +0100
> +++ /var/db/repos/gentoo/media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild    
> 2023-12-24 10:04:44.874452255 +0100
> @@ -80,6 +80,7 @@
>         )
> 
>         multilib_is_native_abi || myconf+=( --disable-modules )
> +       multilib_is_native_abi && myconf+=( --enable-libout123-modules )
> 
>         ECONF_SOURCE="${S}" econf "${myconf[@]}"
> 
> It appears, the logic for selecting output modules remained in the mpg123
> ebuild while libout123 moved to libmpg123 without any output module
> selection or enabling.
> 
> Also, module selection in libmpg123 is now automagic and no longer honours
> use flags.
> 
> I can't help but wonder if there actually are any users of libout123 aside
> from mpg123 itself. revdep-rebuild on my system says no. So could/should it
> perhaps remain in the mpg123 ebuild?
> 
> $ revdep-rebuild -L libmpg123.so.0 -p
> emerge --pretend --oneshot --complete-graph=y
> media-plugins/gst-plugins-mpg123:1.0 media-video/vlc:0/5-9
> media-plugins/audacious-plugins:
> 0 media-libs/sdl-sound:0 media-sound/mpg123:0 media-libs/libsndfile:0
> 
> $ revdep-rebuild -L libout123.so.0 -p
> emerge --pretend --oneshot --complete-graph=y media-sound/mpg123:0

Yes libmpg123 should have corresponding USE flags and also this audio section similar to what I did for base/output-plugins split later https://github.com/gentoo/gentoo/pull/34190/files#diff-24009af3a6ab92a8b52d1f9609e21a243989c810b5451ce26d5f2fbe8bbbba4aR83-R84
Comment 8 Larry the Git Cow gentoo-dev 2024-01-05 09:53:00 UTC
The bug has been referenced in the following commit(s):

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

commit f5b85f21e57fd8aa0ef74fd97dd9c745c8a7e344
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-12-09 11:52:39 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 09:52:35 +0000

    media-libs/libmpg123: Drop, replaced with media-sound/mpg123-base and mpg123 metapackage
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Closes: https://github.com/gentoo/gentoo/pull/34190
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libmpg123/Manifest                      |   1 -
 .../mpg123-1.32.3-build-programs-component.patch   |  55 -----
 .../mpg123-1.32.3-build-with-installed-libs.patch  | 252 ---------------------
 media-libs/libmpg123/libmpg123-1.32.3-r1.ebuild    |  94 --------
 media-libs/libmpg123/metadata.xml                  |  17 --
 profiles/arch/amd64/package.use.mask               |   1 -
 .../prefix/darwin/macos/arch/ppc/package.use.mask  |   1 -
 .../prefix/darwin/macos/arch/x64/package.use.mask  |   1 -
 8 files changed, 422 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=678ac3aa7124df6309e213caa7b5efa189939a35

commit 678ac3aa7124df6309e213caa7b5efa189939a35
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-12-09 10:58:14 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 09:52:35 +0000

    media-libs/mpg123: Convert into metapackage and drop libmpg123, 1.32.3-r100
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-libs/libsndfile/libsndfile-9999.ebuild       |   2 +-
 media-plugins/mpg123-output-plugins/Manifest       |   1 +
 media-plugins/mpg123-output-plugins/metadata.xml   |  18 ++
 .../mpg123-output-plugins-1.32.3.ebuild            | 106 +++++++++
 media-sound/mpg123-base/Manifest                   |   1 +
 media-sound/mpg123-base/metadata.xml               |  18 ++
 .../mpg123-base-1.32.3.ebuild}                     |  61 ++---
 .../mpg123-1.32.3-build-programs-component.patch   |  55 -----
 .../mpg123-1.32.3-build-with-installed-libs.patch  | 252 ---------------------
 media-sound/mpg123/mpg123-1.32.3-r100.ebuild       |  23 ++
 profiles/arch/amd64/package.use.mask               |   1 +
 .../prefix/darwin/macos/arch/ppc/package.use.mask  |   1 +
 .../prefix/darwin/macos/arch/x64/package.use.mask  |   1 +
 13 files changed, 204 insertions(+), 336 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35fd261aa34f05341693ae765bde160cdbb7591c

commit 35fd261aa34f05341693ae765bde160cdbb7591c
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-12-09 11:09:17 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 09:52:34 +0000

    media-video/vlc: Depend on media-sound/mpg123-base
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 media-video/vlc/vlc-3.0.20-r1.ebuild               | 517 ---------------------
 .../{vlc-3.0.20-r2.ebuild => vlc-3.0.20-r3.ebuild} |   2 +-
 media-video/vlc/vlc-3.0.9999.ebuild                |   2 +-
 media-video/vlc/vlc-9999.ebuild                    |   2 +-
 4 files changed, 3 insertions(+), 520 deletions(-)

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

commit a8bf0bfb44b924138482572cb1b635e3ad1834ae
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-12-09 11:07:01 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 09:52:34 +0000

    media-libs/libsndfile: Depend on media-sound/mpg123-base
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 .../{libsndfile-1.2.2-r1.ebuild => libsndfile-1.2.2-r2.ebuild}          | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bf233988e37a9c7ee4c69fd14d9286e339020b6

commit 6bf233988e37a9c7ee4c69fd14d9286e339020b6
Author:     Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
AuthorDate: 2023-12-09 11:04:45 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 09:52:34 +0000

    media-plugins/gst-plugins-mpg123: Depend on media-sound/mpg123-base
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko@gmail.com>
    Signed-off-by: Sam James <sam@gentoo.org>

 ...gins-mpg123-1.22.3-r1.ebuild => gst-plugins-mpg123-1.22.3-r2.ebuild} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 9 Larry the Git Cow gentoo-dev 2024-01-05 10:24:30 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=67a1d632449fbf83f4469b187e3d50c4b3931332

commit 67a1d632449fbf83f4469b187e3d50c4b3931332
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2024-01-05 10:22:59 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-01-05 10:24:23 +0000

    media-plugins/gst-plugins-mpg123: Depend on media-sound/mpg123-base for 1.20.x
    
    Bug: https://bugs.gentoo.org/915858
    Signed-off-by: Sam James <sam@gentoo.org>

 .../gst-plugins-mpg123-1.20.6-r1.ebuild                   | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
Comment 10 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-01-06 09:06:47 UTC
All done. Thank you very much Igor.