[mythtv-users] MythExpress, a browser based mythtv client

Robert Longbottom rongblor at googlemail.com
Sat Oct 13 08:24:30 UTC 2012


On 13/10/2012 06:48, George Nassas wrote:
> On 2012-10-12, at 5:51 PM, Robert Longbottom wrote:
>
>> Sounds interesting, so I thought I'd give it a try,
>
> Yay! My first paying customer.

:-)

>> but when I start it, it just bombs out straight away.  I'm running Mythtv 0.25 on Gentoo and I've applied the mythtv patches mentioned.  I'm running this all on the same box.
>>
>> Where do I start debugging? :-)
>>
>> events.js:68
>>         throw arguments[1]; // Unhandled 'error' event
>>                        ^
>> Error: dns service error: unknown
>>     at MDNSService.on_resolver_done (/home/robert/dev/mythexpress/MythExpress/node_modules/mdns/lib/resolver_sequence_tasks.js:19:30)
>>     at IOWatcher.MDNSService.self.watcher.callback (/home/robert/dev/mythexpress/MythExpress/node_modules/mdns/lib/mdns_service.js:17:38)
>
> mdns isn't my code, it's a bonjour library hosted at https://github.com/agnat/node_mdns. I took a look at those lines in the two source files but they don't say anything revealing.
>
> A first step might be running the project's tests as described in the readme:
>
>      git clone http://github.com/agnat/node_mdns
>      cd node_mdns
>      npm link && npm test

Ok, I tried this.  npm link fails with what appears to be a permissions 
error.  (And I'm always nervous about just running things as root when I 
don't know what they are going to do exactly!)

robert at quad ~/dev/mythexpress/node_mdns $ npm link
npm ERR! Error: EACCES, symlink '/home/robert/dev/mythexpress/node_mdns'
npm ERR!  { [Error: EACCES, symlink 
'/home/robert/dev/mythexpress/node_mdns']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/home/robert/dev/mythexpress/node_mdns' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.3.8
npm ERR! command "node" "/usr/bin/npm" "link"
npm ERR! cwd /home/robert/dev/mythexpress/node_mdns
npm ERR! node -v v0.8.11
npm ERR! npm -v 1.1.62
npm ERR! path /home/robert/dev/mythexpress/node_mdns
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, symlink 
'/home/robert/dev/mythexpress/node_mdns'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /home/robert/dev/mythexpress/node_mdns/npm-debug.log
npm ERR! not ok code 0

robert at quad ~/dev/mythexpress/node_mdns $ cat npm-debug.log
0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/bin/npm', 'link' ]
2 info using npm at 1.1.62
3 info using node at v0.8.11
4 verbose linkPkg /home/robert/dev/mythexpress/node_mdns
5 verbose read json /home/robert/dev/mythexpress/node_mdns/package.json
6 error Error: EACCES, symlink '/home/robert/dev/mythexpress/node_mdns'
6 error  { [Error: EACCES, symlink '/home/robert/dev/mythexpress/node_mdns']
6 error   errno: 3,
6 error   code: 'EACCES',
6 error   path: '/home/robert/dev/mythexpress/node_mdns' }
7 error Please try running this command again as root/Administrator.
8 error System Linux 3.3.8
9 error command "node" "/usr/bin/npm" "link"
10 error cwd /home/robert/dev/mythexpress/node_mdns
11 error node -v v0.8.11
12 error npm -v 1.1.62
13 error path /home/robert/dev/mythexpress/node_mdns
14 error code EACCES
15 error errno 3
16 error stack Error: EACCES, symlink 
'/home/robert/dev/mythexpress/node_mdns'
17 verbose exit [ 3, true ]



npm test, appears to pass most of the tests (56/58), so I'm guessing 
this is "good enough":

robert at quad ~/dev/mythexpress/node_mdns $ npm test

 > mdns at 0.0.7 test /home/robert/dev/mythexpress/node_mdns
 > utils/testrun


test_functional
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
â simple browsing    [56/58]
AssertionError: addresses must not be empty
{ name: 'AssertionError',
   message: 'addresses must not be empty',
   actual: false,
   expected: true,
   operator: '==' }
AssertionError: 'addresses' must not be empty
{ name: 'AssertionError',
   message: '\'addresses\' must not be empty',
   actual: false,
   expected: true,
   operator: '==' }
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9



> perhaps there is something funky about your network setup and the tests will expose it.
>
> I can try creating a gentoo instance in virtualbox and see if that also has the error. Is there anything out of the ordinary about your machine? I'll pull down a standard install iso and pick 64 bit unless you tell me otherwise.

I'm running gentoo 32bit if it make any difference.  Installed many 
years ago, but up to date.  The only extra packages I've added to try 
and make this work is net-libs/nodejs-0.8.11 which installed fine.  I've 
had airplay working, so I think avahi is working ok.


Ah-ha, though some success suddenly.  My myth setup is a server running 
mythbackend and a remote frontend.  I've been trying this with no 
frontend running, and now that I've started up a frontend, I'm getting 
somewhere.  Does it require a frontend to be running to work?

However when I browse to http://myip:6565 I just get a page with 9 
squares in the top left and a message saying "No recordings are 
present".  I tried it from chrome (windows) and Safari on an Ipod touch. 
Both the same.  Ah-ha, the squares are a menu! :-)  The menu works, but 
it can't find any of my recordings....

Here's the output from the console.  My Default recording group has 169 
programs in it according to mythweb.

Cheers,
Rob.

robert at quad ~/dev/mythexpress/MythExpress $ node app.js
WARNING: don't use IOWatcher, it'll be removed in v0.9
*** WARNING *** The program 'node' uses the Apple Bonjour compatibility 
layer of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see 
<http://0pointer.de/avahi-compat?s=libdns_sd&e=node>
     Boot frontends.js
     Boot manifest.js
     Boot watch.js
     Boot recordings.js
     Boot videos.js
     Boot about.js
     Boot streams.js
     Boot index.js
     Boot ui.js
create a socket server on:
{ address: '0.0.0.0', family: 'IPv4', port: 6565 }
MythTV Express server listening on port 6565 in development mode
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
WARNING: don't use IOWatcher, it'll be removed in v0.9
new client (1)
blast {"Frontends":[]} (0)
new client (2)
blast {"Frontends":[]} (1)
ws client closed
manifest built with last time @ 1350058419000
sent manifest to Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, 
like Gecko) Chrome/22.0.1229.94 Safari/537.4
{ View: 'Programs', Group: 'Default', _: '1350116546685' }
{ View: 'Programs', Group: 'Default', _: '1350116546684' }
new client (3)
blast {"Frontends":[]} (2)
buttons for Programs
{ View: 'Programs' }



More information about the mythtv-users mailing list