ports/104752: please update audio/jack to latest version

mark at darklogik.org mark at darklogik.org
Tue Oct 24 14:00:38 UTC 2006


>Number:         104752
>Category:       ports
>Synopsis:       please update audio/jack to latest version
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Tue Oct 24 14:00:35 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     mark at darklogik.org
>Release:        FreeBSD 6.1-SECURITY i386
>Organization:
n/a
>Environment:
System: FreeBSD logik.internal.network 6.1-SECURITY FreeBSD 6.1-SECURITY #0: Mon Aug 28 05:21:08 UTC 2006 root at builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
>Description:

This is a request to update audio/jack to the latest version. This may
have some remote chance of fixing ports/99323.

I realise this will probably have to happen later, due to the ports freeze.

>How-To-Repeat:

>Fix:

The latest version does not compile cleanly. There is one instance of
code using 'ENODATA', which FreeBSD doesn't have. I have notified the
original developers but have had no reply yet (I sent an email about 
ten minutes ago).

The following dirty hack will allow it to compile (ENODATA is only
used by clients wishing to check errors from the new MIDI code, it
should be fine as long as clients are compiled against this version of
the jack library, hopefully the original developers will come up with
something cleaner):

--- libjack/midiport.c.orig     Tue Oct 24 14:38:20 2006
+++ libjack/midiport.c  Tue Oct 24 14:38:41 2006
@@ -26,6 +26,11 @@
 #include <jack/midiport.h>
 #include <jack/port.h>
 
+/* FreeBSD (at least) does not have ENODATA */
+#ifndef ENODATA
+#define ENODATA (ELAST + 1)
+#endif
+
 typedef struct _jack_midi_port_info_private {
        jack_midi_port_info_t info;
        jack_nframes_t        last_write_loc; /**< Used for both writing and mixdown */

There is also one error which I've left it up to the maintainer to fix
because I'm not sure about the proper solution to it.

This code appears in config/os/generic/time.h:

inline jack_time_t
jack_get_microseconds (void) {
  return jack_get_microseconds_from_system ();
}

Later on this function is (accidentally?) redefined in libjack/time.c
as:

jack_time_t
jack_get_microseconds_from_system (void) {
...

This causes a compile error along the lines of:

In file included from ../config/sysdeps/time.h:9,
                 from ../jack/internal.h:56,
                 from time.c:35:
../config/os/generic/time.h: In function `jack_get_microseconds':
../config/os/generic/time.h:29: warning: implicit declaration of function `jack_get_microseconds_from_system'
time.c: At top level:
time.c:80: error: conflicting types for 'jack_get_microseconds_from_system'
../config/os/generic/time.h:29: error: previous implicit declaration of 'jack_get_microseconds_from_system' was here
*** Error code 1

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list