Re: [Jack-Devel] Install wipes out Graphics Drivers, user suggestions for JACK team.

PrevNext  Index
DateMon, 07 Jan 2013 09:51:05 +0100
From Kaj Ailomaa <[hidden] at mousike dot me>
To[hidden] at lists dot jackaudio dot org
In-Reply-ToPatrick Shirkey Re: [Jack-Devel] Install wipes out Graphics Drivers, user suggestions for JACK team.
On Mon, 07 Jan 2013 05:05:45 +0100, Patrick Shirkey  
<[hidden]> wrote:

>> Ubuntu imports directly from Debian. I haven't gone deeper into looking  
>> at
>> the specifics, but the code is the same. And I can't believe the  
>> packaging
>> is doing much to change how jack behaves.
>>
>
> Ubuntu do not import directly from Debian. They have their own
> professional packaging team who purposefully fucked up pulseaudio support
> for many years. Recently (in the past two years) they have gotten better
> because Mark Shuttleworth stepped in and made some changes to the team)
> but this specific issue of pulse and jack integration is a regression IMO
> which is caused by poor QA by the packagers and should have been picked  
> up
> before it went into the repos.
>

atm, the Ubuntu 13.04 raring (dev release) package of jackd2 is a direct  
import from debian experimental. Not even the changelog diffs.

As for 12.10 Quantal, the diff between git tag  
debian/1.9.8_dfsg.4+20120529git007cdc37-2 at  
git://git.debian.org/git/pkg-multimedia/jackd2.git, and the source package  
for jackd2 in Quantal is as follows:

diff -r  
jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/changelog  
jack-debian-git/jackd2/debian/changelog
1,9d0
< jackd2 (1.9.8~dfsg.4+20120529git007cdc37-2ubuntu1) quantal; urgency=low
<
<   * Merge from Debian, remaining changes:
<     - Mangle wscript to make the build work with --as-needed
<     - Build using dh_python2
<   * Clean up --as-needed patch to be more upstreamable
<
<  -- Adam Conrad <[hidden]>  Fri, 03 Aug 2012 00:16:40 -0600
<
15,27d5
<
< jackd2 (1.9.8~dfsg.4+20120529git007cdc37-1ubuntu2) quantal; urgency=low
<
<   * Mangle wscript to make the build work with --as-needed
<
<  -- Adam Conrad <[hidden]>  Sun, 22 Jul 2012 07:16:07 -0600
<
< jackd2 (1.9.8~dfsg.4+20120529git007cdc37-1ubuntu1) quantal; urgency=low
<
<   * Resynchronize on Debian, remaining diff:
<     - Build using dh_python2
<
<  -- Sebastien Bacher <[hidden]>  Thu, 19 Jul 2012 13:36:33 +0200
diff -r jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/control  
jack-debian-git/jackd2/debian/control
4,5c4
< Maintainer: Ubuntu Developers <[hidden]>
< XSBC-Original-Maintainer: Debian Multimedia Maintainers  
<[hidden]>
---
> Maintainer: Debian Multimedia Maintainers  
> <[hidden]>
11c10,11
<  python (>= 2.6.6-3~),
---
>  python,
>  python-support,
diff -r  
jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/control.in  
jack-debian-git/jackd2/debian/control.in
4,5c4
< Maintainer: Ubuntu Developers <[hidden]>
< XSBC-Original-Maintainer: Debian Multimedia Maintainers  
<[hidden]>
---
> Maintainer: Debian Multimedia Maintainers  
> <[hidden]>
9c8,9
<  python (>= 2.6.6-3~),
---
>  python,
>  python-support,
Only in  
jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/patches:  
fix-as-needed-linking.patch
diff -r  
jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/patches/series  
jack-debian-git/jackd2/debian/patches/series
3d2
< fix-as-needed-linking.patch
diff -r jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/debian/rules  
jack-debian-git/jackd2/debian/rules
92c92
< 	dh_python2 -pjackd2
---
> 	dh_pysupport -pjackd2
Only in jack-debian-git/jackd2/debian/source: local-options
Only in jack-debian-git/jackd2/: .git
Only in jack-debian-git/jackd2/: .gitignore
Only in jack-ubuntu/jackd2-1.9.8~dfsg.4+20120529git007cdc37/:  
.waf-1.6.11-30618c54883417962c38f5d395f83584




As for the diffing patch, which only resides in the Ubuntu package:


Description: Mangle wscript to make the build work with --as-needed
Author: Adam Conrad <[hidden]>
Forwarded: no
Last-Update: 2012-07-22

Index: jackd2-1.9.8~dfsg.4+20120529git007cdc37/wscript
===================================================================
--- jackd2-1.9.8~dfsg.4+20120529git007cdc37.orig/wscript	2012-07-22  
07:21:48.822535235 -0600
+++ jackd2-1.9.8~dfsg.4+20120529git007cdc37/wscript	2012-07-22  
07:24:12.694530145 -0600
@@ -176,6 +176,8 @@
      conf.env['LIB_PTHREAD'] = ['pthread']
      conf.env['LIB_DL'] = ['dl']
      conf.env['LIB_RT'] = ['rt']
+    conf.env['LIB_M'] = ['m']
+    conf.env['LIB_STDC++'] = ['stdc++']
      conf.env['JACK_API_VERSION'] = JACK_API_VERSION
      conf.env['JACK_VERSION'] = VERSION

@@ -228,8 +230,6 @@
          if m != None:
              svnrev = m.group(1)

-    conf.env.append_unique('LINKFLAGS', ['-lm', '-lstdc++'])
-
      if Options.options.mixed == True:
          env_variant2 = conf.env.copy()
          conf.set_env_name('lib32', env_variant2)
Index: jackd2-1.9.8~dfsg.4+20120529git007cdc37/linux/wscript
===================================================================
--- jackd2-1.9.8~dfsg.4+20120529git007cdc37.orig/linux/wscript	2012-07-22  
07:26:54.000000000 -0600
+++ jackd2-1.9.8~dfsg.4+20120529git007cdc37/linux/wscript	2012-07-22  
07:26:54.000000000 -0600
@@ -38,9 +38,9 @@
          jackd.use = ['serverlib']
          if bld.env['IS_LINUX'] and bld.env['BUILD_JACKDBUS']:
              jackd.source += ['../dbus/reserve.c',  
'../dbus/audio_reserve.c']
-            jackd.use += ['PTHREAD', 'DL', 'RT', 'DBUS-1']
+            jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++', 'DBUS-1']
          else:
-            jackd.use += ['PTHREAD', 'DL', 'RT']
+            jackd.use += ['PTHREAD', 'DL', 'RT', 'M', 'STDC++']
          jackd.target = 'jackd'
    	
      create_jack_driver_obj(bld, 'dummy', '../common/JackDummyDriver.cpp')
Index: jackd2-1.9.8~dfsg.4+20120529git007cdc37/example-clients/wscript
===================================================================
---  
jackd2-1.9.8~dfsg.4+20120529git007cdc37.orig/example-clients/wscript	2012-07-22  
07:40:21.000000000 -0600
+++  
jackd2-1.9.8~dfsg.4+20120529git007cdc37/example-clients/wscript	2012-07-22  
07:40:21.000000000 -0600
@@ -86,10 +86,9 @@
              #prog.env.append_value("LINKFLAGS", "-arch i386 -arch ppc  
-arch x86_64")
              prog.env.append_value("LINKFLAGS", "")
          if bld.env['IS_LINUX']:
-            prog.use += ['RT']
-            prog.env.append_value("LINKFLAGS", "-lm")
+            prog.use += ['RT', 'M']
          if bld.env['IS_SUN']:
-            prog.env.append_value("LINKFLAGS", "-lm")
+            prog.use += ['M']

          prog.target = example_program



I may be missing something obvious, but I'm not detecting any signs of PA  
jack integration being affected by how Ubuntu packages jacd2. If there is  
a problem, it might be in Debian, and thus in the majority of all Linux  
based desktops. I wouldn't mind fixing that, if I knew what the problem  
was.


>> As it seems, jack2 is not able to grab the card from PA in all  
>> situations.
>> It works better when PA is not actively using the card for something. In
>> this case, it works 100% of the time for me.
>> I'm pretty sure it's a problem with the code, and not with the packaging
>> anyhow.
>
>
> Its a known bug in pulseaudio. Jack does not take over the soundcard from
> PA. Pulseaudio releases it and if "autospawn" is disabled it will allow
> jack to use it.

Did you actually use PA and jack for anything? This is not what's  
happening to anyone I've seen so far.
jack grabs the card just fine, if pulse is not using it actively.  
autospawn has nothing to do with it. Killing PA and keeping it dead of  
course let's anything grab the card.
in jack and PA, there's some code written by Poettering that enables jack  
to grab the card from Pulse while pulse is running. but, something is not  
working right. Having only a very superficial understanding of the code, I  
can't figure out why it's not working as intended.

Being one of the developers of Ubuntu Studio, I feel it is important for  
us to help fix and follow up bugs, by communicating upstream to both  
Debian and jack developers. This is something I am currently trying to  
help improve, by creating developer docs and later, trying to get more   
people involved, as we are quite undermanned.
As for other audio related packages, I'll want us to work with Debian  
Multimedia team to make sure the software is not suffering from serious  
bugs and are built in a way that ensures good performance and  
functionality.
Ubuntu does not stand in the way of achieving that. It's up to whoever  
wants to do the work.
In a way, Ubuntu Studio is the Ubuntu multiedia team, and I encourage  
anyone who is interested in helping out, contact us by mail list or on our  
irc channels

>
> The Debian package maintainers are aware of the issue but as yet there  
> has
> not been a fix for it.
>
> If you want perfect pulseaudio support then you should use Fedora as
> Redhat sponsor development of Pulseaudio whereas debian is maintained by
> volunteers.
>

Msybe you could explain what the difference is between Fedora and Debian  
pulseaudio?

> I've never heard of jack wiping out graphics drivers. That sounds like a
> dodgy harddrive or someone was making system wide changes on the
> commandline and zapped some libs that were in the same folder by  
> accident.
>

Neither have I. And since linux-lowlatency currently is linux-generic,  
butt with a different config, the chance for graphic drivers working on  
one but not the other stands against logic.
PrevNext  Index

1357548696.25303_0.ltw:2,a <op.wqi9jfvo2rg3it at euterpe>