> Date: Tue, 13 Jan 2009 19:29:48 +0000
> From: Jonathan Gazeley
> <jonathan.gaze...@bristol.ac.uk>
> Subject: [timidity-talk] Running Timidity as a service

. . .

> [jonat...@poseidon ~]$ sudo service timidity start
> [jonat...@poseidon ~]$ file mcoputils.cc: line 499 (static
> std::string 
> Arts::MCOPUtils::mcopDirectory()): assertion failed: (home
> != 0)
> HOME environment variable not set?
> jack_client_new: deprecated
> Cannot connect to server socket err = No such file or
> directory
> Cannot connect to server socket
> jack server is not running or cannot be started
> no message buffer overruns
> Couldn't open output device
> 
> 
> I tested that I can successfully run timidity using sudo:
> 
> [jonat...@poseidon ~]$ sudo timidity -iA
> TiMidity starting in ALSA server mode
> Opening sequencer port: 128:0 128:1 128:2 128:3
> 
> Does anyone have any ideas what might be up?
> 
> Cheers,
> Jonathan

I use Debian, not Fedora, so there might be some config differences.

I don't know about the HOME environment thing right off the bat.  If someone 
knows, please answer.  Else, someone may have to look into Timidity source code 
to figure out.

As for server socket error, and "jack server is not running or cannot be 
started", I think it is one and the same.  The problem is the new "jackd" 
version, the message "jack_client_new: deprecated" points to the real cause.

Timidity code still uses jack_client_new() as a mean to connect to jackd.  
However, with the new jackd, and libjack0 both are at version 0.116.1-2 in 
Debian Sid (unstable), the call to jack_client_new() doesn't seem to work.

I tried the following code in jack_a.c

static int detect(void)
{
        jack_client_t *client;
        jack_status_t status;
        /* ---OLD--- client = jack_client_new(TIMIDITY_JACK_CLIENT_NAME); */
        /* open a connection to the JACK server */
        client = jack_client_open (TIMIDITY_JACK_CLIENT_NAME, JackNullOption, 
&status);
        if (! client) {
                ctl->cmsg(CMSG_ERROR, VERB_NORMAL,
                        "jack_client_open() failed, status = 0x%2.0x\n", 
status);
                return 0;
        }

        jack_client_close(client);
        return 1; /* found */
}


and equivalent code in

   static int open_jack(void)

function of the same file.  It seems jackd deliberately breaks that old 
jack_client_new() API call.  Otherwise, they could have easily use similar code 
as shown above to implement jack_client_new(), which is simple enough to keep 
old apps working without changes.  Either that or they don't care for backward 
compatibility in this case, and force everyone to use new code.

Jimmy




      

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Timidity-talk mailing list
Timidity-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/timidity-talk

Reply via email to