Skip to contentSkip to conversation

pulseaudio: fix tow issues.

PATCH In review [email protected] 3 participants 6 messages Nov 22, 2012 – Nov 28, 2012

lore
Share & tools
lore
#0 lore raw

cover pulseaudio: fix tow issues.

From: Jackie Huang <[email protected]>

We added these tow fixes for pulseaudio 1.1 as bbappend in our own layer and worked well, but pulseaudio in oe-core is updated to 2.1 and the bbappend became dangling, so if they are accepted in or-core, we don't have to mantain and update the bbappend and clean it up, thanks!

Also added the authors of these fixed in CC list.

* Test info:
1) MACHINE=qemux86-64/qemux86/qemuppc

$ bitbake core-image-sato 
$ bitbake pulseaudio

The following changes since commit 654d5816f8ff696d42d72cfb881d5e51330a79b6:

build-appliance-image: Update to dee77eca39f406f90e60d9c5ef7a66fcc8f57dbf commit (2012-11-21 20:38:47 +0000)

are available in the git repository at:
git://git.pokylinux.org/poky-contrib jhuang0/d_pulseaudio_1122_2
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=jhuang0/d_pulseaudio_1122_2

Jackie Huang (2):
pulseaudio: fix compilation on RHEL-5.8 64bit machine
pulseaudio: The audio over Adipts ALC888 audio effect chip on Sabino
does not work

 ...ulseaudio-fix-compilation-on-RHEL-machine.patch |   35 ++++++++++++++++++++
 .../pulseaudio/pulseaudio_2.1.bb                   |    9 ++++-
 2 files changed, 42 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-fix-compilation-on-RHEL-machine.patch
Signature · 1 line
1.7.4
#1 lore raw

PATCH 1/2 pulseaudio: fix compilation on RHEL-5.8 64bit machine

From: Jackie Huang <[email protected]>

This fixes the following issue when pulseaudio is built with the oe-core toolchain:

../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRGetOutputInfo' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRGetScreenResourcesCurrent' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRFreeOutputInfo' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRFreeScreenResources' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRGetOutputPrimary' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to XRRFreeCrtcInfo' ../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetCrtcInfo'
collect2: ld returned 1 exit status

---
 ...ulseaudio-fix-compilation-on-RHEL-machine.patch |   35 ++++++++++++++++++++
 .../pulseaudio/pulseaudio_2.1.bb                   |    6 ++-
 2 files changed, 39 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-fix-compilation-on-RHEL-machine.patch
meta/recipes-multimedia/pulseaudio/pulseaudio/pulseaudio-fix-compilation-on-RHEL-machine.patch new file +35 -0
new file mode 100644
index 0000000..4630dea
@@ -0,0 +1,35 @@
+commit da81efa600ca7f5657ee4cb877e405fdfc6eee24
+Author: Aws Ismail <[email protected]>
+Date:   Wed Aug 15 16:34:52 2012 +0800
+
+    Fix compilation on RHEL-5.8 64bit machine
+    
+    This fixes the following issue when pulseaudio is built
+    with the oe-core toolchain:
+    
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetOutputInfo'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetScreenResourcesCurrent'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRFreeOutputInfo'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRFreeScreenResources'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetOutputPrimary'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRFreeCrtcInfo'
+../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetCrtcInfo'
+    collect2: ld returned 1 exit status
+    
+    Upstream-Status: Pending
+    
+    Signed-off-by: Aws Ismail <[email protected]>
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index e3af12f..58dad5e 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -51,7 +51,7 @@ AM_CFLAGS = \
+ SERVER_CFLAGS = -D__INCLUDED_FROM_PULSE_AUDIO
+ 
+ AM_LIBADD = $(PTHREAD_LIBS) $(INTLLIBS)
+-AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS)
++AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS) -lXrandr
+ AM_LDFLAGS = $(NODELETE_LDFLAGS)
+ 
+ if STATIC_BINS
meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb +4 -2
index 811dc0f..35137a8 100644
@@ -1,13 +1,15 @@
 require pulseaudio.inc
 
-PR = "r14"
+PR = "r15"
 
-DEPENDS += "libjson gdbm speex libxml-parser-perl-native"
+DEPENDS += "libjson gdbm speex libxml-parser-perl-native \
+  ${@base_contains('DISTRO_FEATURES', 'x11', 'libxrandr', '', d)}"
 
 inherit gettext perlnative
 
 SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${PV}.tar.xz \
   file://volatiles.04_pulse \
+  ${@base_contains('DISTRO_FEATURES', 'x11', 'file://pulseaudio-fix-compilation-on-RHEL-machine.patch', '', d)} \
 "
 
 SRC_URI[md5sum] = "33e85023259d530f0a763d5204e8bad9"
Signature · 1 line
1.7.4
#2 lore raw

Re: [PATCH 1/2] pulseaudio: fix compilation on RHEL-5.8 64bit machine

Hi,

This patch is too hacky to go in at the moment.

Quoted 1 line · On 22 November 2012 06:46, <[email protected]> wrote:

../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetOutputInfo'

Which means your GTK+ linkage is broken, because libgdk should be linking to libXrandr. Mine is, can you verify that yours is too?

Quoted 2 lines

+-AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS)
++AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS) -lXrandr

You're adding linkage to libXrandr to every part of PulseAudio. What binary in pulseaudio is failing to compile with this error?

meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb line 6

Quoted 3 lines
meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb +2 -1
-DEPENDS += "libjson gdbm speex libxml-parser-perl-native"
+DEPENDS += "libjson gdbm speex libxml-parser-perl-native \
+  ${@base_contains('DISTRO_FEATURES', 'x11', 'libxrandr', '', d)}"

pulseaudio.inc has:

DEPENDS = "libatomics-ops liboil avahi libsamplerate0 libsndfile1 libtool \
           ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11

libxtst libice libsm libxcb gtk+', '', d)}"

As gtk+ pulls in libxrandr, this is redundant.

Ross

author
#3 lore raw

Re: [PATCH 1/2] pulseaudio: fix compilation on RHEL-5.8 64bit machine

Quoted 3 lines · Ross

Hi,

This patch is too hacky to go in at the moment.

Hi Ross,

Thanks for your comments, in fact the patch was for a weird edge case in the old version, I looked for the history and it seemed to be added as a workaround. And I tried some days but couldn't reproduce the issue in current pulseaudio 2.1, so I shouldn't have send this, sorry about that.

Aws, please correct me if I'm wrong, thanks!

Thanks,
Jackie

Quoted 28 lines · On 22 November 2012 06:46, <[email protected]> wrote:
Quoted 1 line

../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetOutputInfo'

Which means your GTK+ linkage is broken, because libgdk should be linking to libXrandr. Mine is, can you verify that yours is too?

Quoted 2 lines

+-AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS)
++AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS) -lXrandr

You're adding linkage to libXrandr to every part of PulseAudio. What binary in pulseaudio is failing to compile with this error?

meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb line 6

Quoted 3 lines
meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb +2 -1
-DEPENDS += "libjson gdbm speex libxml-parser-perl-native"
+DEPENDS += "libjson gdbm speex libxml-parser-perl-native \
+  ${@base_contains('DISTRO_FEATURES', 'x11', 'libxrandr', '', d)}"

pulseaudio.inc has:

DEPENDS = "libatomics-ops liboil avahi libsamplerate0 libsndfile1 libtool \
            ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11

libxtst libice libsm libxcb gtk+', '', d)}"

As gtk+ pulls in libxrandr, this is redundant.

Ross

Signature · 5 lines
Jackie Huang
WIND RIVER | China Development Center
MSN:[email protected]
Tel: +86 8477 8594
Mobile: +86 138 1027 4745
#4 lore raw

Re: [PATCH 1/2] pulseaudio: fix compilation on RHEL-5.8 64bit machine

Quoted 5 lines · On 11/26/2012 09:34 PM, jhuang0 wrote:
Quoted 2 lines · Ross

Hi,

Quoted 8 lines
Quoted 1 line

This patch is too hacky to go in at the moment.

Hi Ross,

Thanks for your comments, in fact the patch was for a weird edge case in the old version, I looked for the history and it seemed to be added as a workaround. And I tried some days but couldn't reproduce the issue in current pulseaudio 2.1, so I shouldn't have send this, sorry about that.

Aws, please correct me if I'm wrong, thanks!

Agreed. This was a quick fix for a very specific case. If you can confirm that it is not there anymore, which, by the looks of it, seems that you have done; then let's get rid of it.

Thanks Jackie.

Aws\

Quoted 33 lines

Thanks,
Jackie

Quoted 28 lines · On 22 November 2012 06:46, <[email protected]> wrote:
Quoted 1 line

../bitbake_build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so: undefined reference to `XRRGetOutputInfo'

Which means your GTK+ linkage is broken, because libgdk should be linking to libXrandr. Mine is, can you verify that yours is too?

Quoted 2 lines

+-AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS)
++AM_LDADD = $(PTHREAD_LIBS) $(INTLLIBS) -lXrandr

You're adding linkage to libXrandr to every part of PulseAudio. What binary in pulseaudio is failing to compile with this error?

meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb line 6

Quoted 3 lines
meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb +2 -1
-DEPENDS += "libjson gdbm speex libxml-parser-perl-native"
+DEPENDS += "libjson gdbm speex libxml-parser-perl-native \
+  ${@base_contains('DISTRO_FEATURES', 'x11', 'libxrandr', '', d)}"

pulseaudio.inc has:

DEPENDS = "libatomics-ops liboil avahi libsamplerate0 libsndfile1 libtool \
            ${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11

libxtst libice libsm libxcb gtk+', '', d)}"

As gtk+ pulls in libxrandr, this is redundant.

Ross

#5 lore raw

PATCH 2/2 pulseaudio: The audio over Adipts ALC888 audio effect chip on Sabino does not work

In reply to [email protected]

From: Jackie Huang <[email protected]>

root cause:

the default settings for audio devices are installed by the udev script 90-alsa-restore.rules. This script is installed into /lib/udev/rules.d, but a recent change moved the udev files to /usr/lib*, so the alsa script doesn't get run.

the configure of package pulseaudio set the udev rules default directory to "/lib/udev/rules.d", while its bb file specifies "${base_libdir}/udev" as udev rules directory. So the file in "/lib/udev/rules.d" will be missing when packaging on 64bit platforms.

solution: set parameter "udevrulesdir" to "${libdir}/udev/rules.d" for configure of pulseaudio

---
 .../pulseaudio/pulseaudio_2.1.bb                   |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
meta/recipes-multimedia/pulseaudio/pulseaudio_2.1.bb +4 -1
index 35137a8..b41addb 100644
@@ -1,6 +1,6 @@
 require pulseaudio.inc
 
-PR = "r15"
+PR = "r16"
 
 DEPENDS += "libjson gdbm speex libxml-parser-perl-native \
   ${@base_contains('DISTRO_FEATURES', 'x11', 'libxrandr', '', d)}"
@@ -15,6 +15,9 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${PV}.
 SRC_URI[md5sum] = "33e85023259d530f0a763d5204e8bad9"
 SRC_URI[sha256sum] = "ef6b347bf47abfb98080795f1583018ac959b4aeb4df916b879f9e1eaba0ca7f"
 
+EXTRA_OECONF += "--with-udev-rules-dir=${libdir}/udev/rules.d"
+FILES_${PN}-server += " ${libdir}/udev/rules.d/*.rules"
+
 do_compile_prepend() {
     cd ${S}
     mkdir -p ${S}/libltdl
Signature · 1 line
1.7.4