Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 536780 - media-sound/pulseaudio - split off media-libs/libpulse from media-sound/pulseaudio
Summary: media-sound/pulseaudio - split off media-libs/libpulse from media-sound/pulse...
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: AMD64 Linux
: Normal enhancement (vote)
Assignee: Gentoo Linux Gnome Desktop Team
Depends on:
Reported: 2015-01-16 15:52 UTC by Manuel Ullmann
Modified: 2018-07-16 10:17 UTC (History)
0 users

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


Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Ullmann 2015-01-16 15:52:07 UTC

I´m using the proprietary oneplay-dvd to play DVDs, which installs fine with rpm. To support distributions, which use and install pulseaudio by default, they include their own versions of the necessary libraries, like liborc, libglib and whatelse they need. However these libraries have to statically link to libpulse, although they are supporting plain alsa output. So pulseaudio does not have to run, but libpulse has to be present.
I stripped down pulseaudio of anything unnecessary, so that it is now built with USE="glib orc" and nothing else. However I´m not sure, whether pulseaudio does not pull in more dependencies, than a libpulse ebuild would require.
If this would be the case, an additional media-libs/libpulse ebuild would be useful, so that I could depclean any overhead.

If you would like to test this out, you could use the trial version of oneplay-dvd. Note, that it uses Wibu´s CodeMeter as copy protection.

Reproducible: Always

Steps to Reproduce:
1. Try to execute a binary, which uses libraries statically linking to libpulse.
Actual Results:  
Error while loading shared libraries.

Expected Results:  
Clean startup.

$ emerge --info
Portage 2.2.14 (python 2.7.9-final-0, !../../var/lib/layman/distros/profiles/CLD/amd64, gcc-4.8.3, glibc-2.19-r1, 3.18.2-calculate x86_64)
System uname: Linux-3.18.2-calculate-x86_64-AMD_Turion-tm-X2_Ultra_DualCore_Mobile_ZM-84-with-gentoo-14.12.1
KiB Mem:     3788116 total,   1252484 free
KiB Swap:    4882428 total,   4882332 free
Timestamp of tree: Fri, 16 Jan 2015 08:00:01 +0000
ld GNU ld (Gentoo 2.24 p1.4) 2.24
ccache version 3.1.9 [disabled]
app-shells/bash:          4.2_p53
dev-java/java-config:     2.2.0
dev-lang/perl:            5.18.2-r2
dev-lang/python:          2.7.9-r1
dev-util/ccache:          3.1.9-r4
dev-util/pkgconfig:       0.28-r1
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.11.6-r1, 1.13.4                                                                                                              
sys-devel/binutils:       2.24-r3                                                                                                                        
sys-devel/gcc:            4.8.3                                                                                                                          
sys-devel/gcc-config:     1.7.3                                                                                                                          
sys-devel/libtool:        2.4.2-r1
sys-devel/make:           4.0-r1
sys-kernel/linux-headers: 3.16 (virtual/os-headers)
sys-libs/glibc:           2.19-r1::calculate
Repositories: gentoo distros calculate
Installed sets: @custom
CFLAGS="-O2 -march=native -pipe"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -march=x86-64 -pipe"
EMERGE_DEFAULT_OPTS=" --binpkg-respect-use=y --quiet-build=n --with-bdeps=y"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles getbinpkg merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch usersandbox usersync"
FFLAGS="-O2 -pipe"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/var/lib/layman/distros /var/lib/layman/calculate"
USE="3dnow 3dnowext X a52 aac acl acpi alsa amd64 amr audiofile avi berkdb bittorrent bluetooth bzip2 cairo cdda cddb cdparanoia cdr chm cli consolekit cpudetection cracklib crypt css cue cups cxx dbus djvu dri dv dvd dvdr dvdread ebook encode exif faac ffmpeg flac flash foomaticdb fortran ftp gd gdbm gif gphoto2 gpm gtk iconv id3tag ieee1394 imagemagick ios ipod ipv6 irc jabber jingle jpeg jpeg2k kde libnotify libwww logrotate lzo mad matroska mbox mikmod mmx mmxext mng modules mp3 mpeg mplayer multilib musepack ncurses networkmanager nfs nls nptl nsplugin ogg oggvorbis openal opencore-amr openexr opengl openmp oscar pam pcre pdf png policykit portaudio ppp qt3support qt4 quicktime raw rdesktop readline real samba scanner sdl semantic-desktop session smp speex spell srt sse sse2 sse3 sse4.1 sse4.2 sse4a sse5 ssl ssse3 svg tcpd tga theora tiff truetype udev unicode usb userlocales v4l v4l2 vaapi vcd vdpau vhosts vorbis wavpack webkit webp wimax win32codecs wmf wxwindows x264 xanim xcomposite xinerama xpm xv xvid xvmc yahoo zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="* ptp2" CL="builder client desktop console consolegui" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="dmraid dmsquash-live plymouth lvm mdraid nfs" ELIBC="glibc" FOO2ZJS_DEVICES="*" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="efi-64 efi-32 pc" INPUT_DEVICES="keyboard mouse evdev mutouch synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en bg de es es_ES fr it pl pt pt_BR ro ru ru_RU uk" LIRC_DEVICES="devinput" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7" RUBY_TARGETS="ruby20" THEMES="CLD" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware nouveau nvidia i915 i965 r100 r200 r300 r600 radeonhd dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

Note: The calculate overlay does not include media-sound/pulseaudio, so I´m filing it here.
Comment 1 Gilles Dartiguelongue gentoo-dev 2015-01-18 23:45:36 UTC
We don't generally split packages unless there is an advantage that surpasses the cost of extra maintenance.
Comment 2 Manuel Ullmann 2015-01-19 15:51:33 UTC
Well, I assume then, that it depends on how high the advantage of support for binary packages hard linking to libpulse is measured. As these binary packages are usually proprietary, thus not in the portage tree, where USE flags could change the libpulse dependency, I guess, that this advantage is not measured too high.
I wouldn´t mind a resolve as won´t fix, but still think, that this is actually a valid request.
Should there be lots of binaries (e.g. Steam games optionally supporting pulseaudio) linking to libpulse in the future, the advantage might be reconsidered. For now it would be fine by me leaving a crippled pulseaudio package installed. I just thought there might be interest in this, because the libpulse package is available in Debian and Redhat repositories and the users could use such a package for similar use cases.
Comment 3 Gilles Dartiguelongue gentoo-dev 2017-09-11 20:40:15 UTC
Binary distributions can split packages a lot more easily than we do.
Would it be satisfactory as a middle ground to provide static-libs from the pulseaudio ebuild directly ?
Comment 4 Manuel Ullmann 2017-09-12 12:47:21 UTC
That would be fine. Thanks.