ports/167971: [PATCH] audio/jack: ALSA driver is broken

Dmitry Marakasov amdmi3 at amdmi3.ru
Wed May 16 16:20:03 UTC 2012


>Number:         167971
>Category:       ports
>Synopsis:       [PATCH] audio/jack: ALSA driver is broken
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed May 16 16:20:02 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Dmitry Marakasov
>Release:        FreeBSD 9.0-RELEASE amd64
>Organization:
>Environment:
System: FreeBSD hades.panopticon 9.0-RELEASE FreeBSD 9.0-RELEASE #0: Tue Jan 10 01:33:18 MSK 2012
>Description:
ALSA driver is broken:

---
% jackd -d alsa
jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details

could not open driver .so '/usr/local/lib/jack/jack_alsa.so': /usr/local/lib/jack/jack_alsa.so: Undefined symbol "clock_nanosleep"

could not open driver .so '/usr/local/lib/jack/jack_alsa_midi.so': /usr/local/lib/jack/jack_alsa_midi.so: Undefined symbol "clock_nanosleep"

jackd: unknown driver 'alsa'
---

The cause:

---
% grep -R clock_nanosleep work
work/jack-audio-connection-kit-0.121.3/drivers/alsa-midi/alsa_rawmidi.c:                     clock_nanosleep(CLOCK_MONOTONIC, 0, &ts, NULL);
---

but this function is not supported on FreeBSD:

---
% grep clock_nanosleep /usr/include/time.h 
/* XXX missing: clock_nanosleep() */
---

and though jack builds:

---
/bin/sh ../../libtool --tag=CC   --mode=compile cc -DHAVE_CONFIG_H -I. -I../..   -I/usr/local/include -I../../config -I../.. -I../.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall  -g -O2 -pipe -march=nocona  -fno-strict-aliasing -I../../config -I../.. -I../.. -D_
REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall  -g -MT alsa_rawmidi.lo -MD -MP -MF .deps/alsa_rawmidi.Tpo -c -o alsa_rawmidi.lo alsa_rawmidi.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I../.. -I/usr/local/include -I../../config -I../.. -I../.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall -g -O2 -pipe -march=nocona -fno-strict-aliasing -I../../config -I../.. -I../.. -D_REENTRANT -D_POSIX_PTHREAD_SEMANT
ICS -Wall -g -MT alsa_rawmidi.lo -MD -MP -MF .deps/alsa_rawmidi.Tpo -c alsa_rawmidi.c  -fPIC -DPIC -o .libs/alsa_rawmidi.o
alsa_rawmidi.c: In function 'midi_thread':
alsa_rawmidi.c:856: warning: implicit declaration of function 'clock_nanosleep'
---

the driver is unuseable.

Port maintainer (multimedia at FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.99_6 (mode: change, diff: CVS)
>How-To-Repeat:
Try to use ALSA driver
>Fix:
Since the second argument of clock_nanosleep (flags) is 0, ts still specifies a relative time, so theoretically the call may be replaced with simple nanosleep(&ts, NULL). I'm, however, unaware of differences between CLOCK_MONOTONIC and other clock types, as well as which of them is used by FreeBSD's nanosleep(), so it may have implications.
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list