Is there anybody that has managed to configure wine for voddler in linux? I have been trying but after started voddler in wine the logo comes up but then screen goes all black.
Subject: Re: Voddler + wine Sun Oct 25, 2009 2:04 pm
I've tried, using wine 1.0.1 on Ubuntu 9.04, with no luck.
I think focusing on getting the VNetManager.exe to run is prio 1, instead of trying to make the player run. This is what I get from "wine VNetManager.exe":
Code:
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" err:module:import_dll Library MSVCR90.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\LIBEAY32.dll") not found err:module:import_dll Library LIBEAY32.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\SSLEAY32.dll") not found err:module:import_dll Library MSVCR90.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\SSLEAY32.dll") not found err:module:import_dll Library SSLEAY32.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\curllib.dll") not found fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" err:module:import_dll Library MSVCR90.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\LIBEAY32.dll") not found err:module:import_dll Library LIBEAY32.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\curllib.dll") not found fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT" err:module:import_dll Library MSVCR90.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\libsasl.dll") not found err:module:import_dll Library libsasl.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\OpenLDAP.dll") not found err:module:import_dll Library OpenLDAP.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\curllib.dll") not found err:module:import_dll Library MSVCR90.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\curllib.dll") not found err:module:import_dll Library curllib.dll (which is needed by L"C:\\Program Files\\Voddler\\service\\VNetManager.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"C:\\Program Files\\Voddler\\service\\VNetManager.exe" failed, status c0000135
So, copying the missing dll files from a windows installation into the wine config would be step one in this case.
However, my experience is that if something doesn't run with wine right away, if you're not a seasoned wine hacker, it rarely pays to tinker with it. It won't work anyway.
Subject: Re: Voddler + wine Sun Oct 25, 2009 4:43 pm
Just a crazy idea here... if you've managed to get the VNetManager.exe running, but the player itself crashes... how about connecting a standard XBMC instance to the VNetManager player?
It looks as you could do this by editing your sources.xml in XBMC to make it look like the source.xml file that the voddler player uses:
Subject: Re: Voddler + wine Sun Oct 25, 2009 6:02 pm
I found this, posted by "Henrik", on voddler.com. All "\" seems to be missing, but I think you can figure out where to put them.
Quote :
Hi folks, I just got Voddler to work on wine under Linux.
There are 2 things that has to be solved, the first thing is that the GetSystemTimes() function are not implemented in Wine and i found a patch on internet to solve this, the other thing is to edit the registry to enable the VoddlerNet service.
First of get the latest wine source from the git and apply the following patch: diff --git a/dlls/kernel32/time.c b/dlls/kernel32/time.c index 2b7bd6c..f717139 100644 --- a/dlls/kernel32/time.c +++ b/dlls/kernel32/time.c @@ -1026,9 +1026,17 @@ BOOL WINAPI FileTimeToDosDateTime( const FILETIME *ft, LPWORD fatdate, * RETURNS * TRUE if success, FALSE otherwise. */ -BOOL WINAPI GetSystemTimes(LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime) +VOID WINAPI GetSystemTimes(LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime) { - FIXME("(%p,%p,%p): Stub!n", lpIdleTime, lpKernelTime, lpUserTime); - - return FALSE; + // FIXME("(%p,%p,%p): Stub!n", lpIdleTime, lpKernelTime, lpUserTime); + struct tms tms; + times(&tms); + /* FIXME: Calculate based on Idle process time + if (lpIdleTime) + TIME_ClockTimeToFileTime(tms.tms_utime+tms.tms_stime,lpIdleTime); + */ + if (lpKernelTime) + TIME_ClockTimeToFileTime(tms.tms_stime,lpKernelTime); + if (lpUserTime) + TIME_ClockTimeToFileTime(tms.tms_utime,lpUserTime); } diff --git a/include/winbase.h b/include/winbase.h index 791d58e..6e30e6d 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1726,6 +1726,7 @@ WINBASEAPI BOOL WINAPI GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); WINBASEAPI VOID WINAPI GetSystemTime(LPSYSTEMTIME); WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment(PDWORD,PDWORD,PBOOL); WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime(LPFILETIME); +WINBASEAPI VOID WINAPI GetSystemTimes(LPFILETIME,LPFILETIME,LPFILETIME); WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA(LPSTR,UINT); WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW(LPWSTR,UINT); #define GetSystemWindowsDirectory WINELIB_NAME_AW(GetSystemWindowsDirectory)
Compile and install... dont forget to install the dependencies such as libasound2-dev etc.. to get things to work the right way with wine..
Then you should create a registry file 'voddler.reg' with this content:
Subject: Re: Voddler + wine Mon Oct 26, 2009 7:33 am
I am working on a wine deb-package for Ubuntu 9.10 Karmic Koala with the applied patch. I got it working yesterday, but had to quit the deb-compilation before it was finished.
I will try again today after work. Does anybody know where I can share the package?
Subject: Re: Voddler + wine Mon Oct 26, 2009 7:52 am
franzjesus wrote:
I am working on a wine deb-package for Ubuntu 9.10 Karmic Koala with the applied patch. I got it working yesterday, but had to quit the deb-compilation before it was finished.
I will try again today after work. Does anybody know where I can share the package?
I guess megaupload and the other file store sites are an option.
If you want to be fancy, perhaps you could get yourself a PPA? "Personal Package Archive", some sort of infrastructure that Ubuntu runs where you can publish your own packages and have an URL that others can add to their synaptic settings.
I don't know if those are strictly for Ubuntu devs or if anyone can have a PPA, but it might be worth looking in to.
Subject: Re: Voddler + wine Mon Oct 26, 2009 8:08 am
Thanks!
I don't think I will go for the repository-solution, I think we all hope that the native linux client isn't to far away... But I will see how Megaupload works.
But it is compiled as a standard Ubuntu package so the UpdateManager will try to upgrade the package later. I don't know how to change that. Does anyone know how?
But it is compiled as a standard Ubuntu package so the UpdateManager will try to upgrade the package later. I don't know how to change that. Does anyone know how?
Would you (or someone else that knows the stuff) mind writing a small guide about Voddler + Wine/Linux/Ubuntu to put in the FAQ (if you think it's working good enough)?
Ubuntu and Linux isn't my cup of tea (what was quoted by Henrik is just pure jiddish to me) so I don't know what's important and needed and what's not. =)
I have installed Voddler in Linux using Wine and I am able to run the VNetManager.exe. My plan was to to use the original xbmc running natively in Linux to connect to this using the same entry in the file sources.xml, as someone else mentioned previous in this thread i.e.,
The problem is that the connection is refused. The VNetManager.exe outputs a message like: [Fri Oct 30 21:13:17 2009] [error] [client -] accept_new_connection: 0.0.0.0 is not allowed to connect
If I look in my xbmc.log I see the following corresponding error message. 21:13:17 T:3078997872 M:1250615296 DEBUG: CGUIMediaWindow::GetDirectory (rss://127.0.0.1:50726/meta/movie/) 21:13:17 T:3078997872 M:1250615296 DEBUG: ParentPath = [] 21:13:17 T:3078997872 M:1250615296 INFO: Initializing feed: http://127.0.0.1:50726/meta/movie 21:13:17 T:3078997872 M:1250615296 DEBUG: FileCurl::Open(0xbfc93ac0) http://127.0.0.1:50726/meta/movie 21:13:17 T:3078997872 M:1250615296 INFO: easy_aquire - Created session to http://127.0.0.1 21:13:17 T:3078997872 M:1250582528 DEBUG: FillBuffer: curl failed with code 52 21:13:17 T:3078997872 M:1250582528 ERROR: CFileCurl::CReadState::Open, didn't get any data from stream. 21:13:17 T:3078997872 M:1250582528 DEBUG: FileCurl::Close(0xbfc93ac0) http://127.0.0.1:50726/meta/movie 21:13:17 T:3078997872 M:1250582528 ERROR: GetDirectory - Error getting rss://127.0.0.1:50726/meta/movie/ 21:13:17 T:3078997872 M:1250582528 ERROR: CGUIMediaWindow::GetDirectory(rss://127.0.0.1:50726/meta/movie/) failed
Does anyone have any ideas about what the problem might be? I see that the error message says 0.0.0.0 instead of 127.0.0.1 is this significant? Maybe the connection is refused because it seems to be different from 127.0.0.1? If so, does anyone have a good idea of how that could be fixed? I would really love to be able to use the native xbmc in Linux instead of being forced into windows.
You need to analyze what goes on between the voddlerplayer.exe and VNetManager.exe by sniffing the traffic between them. Then, when you try to connect with standard XBMC, you do the same thing and try to figure out where that rss negotiation differs from the previous one.
And it might help to check the voddler source code to see what changes they've made to standard XBMC in the rss implementation.
Subject: Re: Voddler + wine Sat Oct 31, 2009 7:32 pm
Some success but not complete.
I sniffed the data sent to the VNetManager listening on port 50726 on a working installation in Windows. The data that is sent it is indeed quite different (no surprise) when connecting with the voddlerPlayer and XBMC. XBMC does something like:
Code:
GET /meta/movie HTTP/1.1 User-Agent: XBMC/9.04.1 r20672 (Windows; Windows XP Home Edition Service Pack 3 build 2600; http://www.xbmc.org) Host: 127.0.0.1:50726 Accept: */* Connection: keep-alive
While voddler seems to perform a log in procedure.
I copied the working c:\Voddler folder from the real windows installation into my wine c:\ to get the same setup with user profiles. I then tried to replay log in procedure that I sniffed from the VoddlerPlayer and it is partly working, but not completely. It fails on the last step:
All transmissions are started using: telnet 127.0.0.1 50726
First we ask for registered users:
Code:
GET /voddler/users HTTP/1.1 Accept-Encoding: identity Host: 127.0.0.1:50726 Connection: close User-agent: Python-urllib/2.4
And VNetManager.exe replies:
Code:
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 74 Accept-Ranges: bytes Connection: close Cache-Control: no-cache
GET /key HTTP/1.1 User-Agent: XBMC/pre-9.10 r3542 (Windows; Windows XP Home Edition Service Pack 3 build 2600; http://www.xbmc.org) Host: 127.0.0.1:50726 Accept: */* Connection: keep-alive
The second number seems to increment for each time we ask the questions above. Then we try to log on to the system:
Code:
GET /voddler/login?userid=6291&token=2b225b4d74a084cfa9feb3c81d0ac98537caa4a06ebbe4143f894256f9634660&keyid=00000001 HTTP/1.1 User-Agent: XBMC/pre-9.10 r3542 (Windows; Windows XP Home Edition Service Pack 3 build 2600; http://www.xbmc.org) Host: 127.0.0.1:50726 Accept: */* Connection: keep-alive
And VNetManager.exe replies:
Code:
HTTP/1.1 200 OK Content-Type: text/html Content-Length: 44 Accept-Ranges: bytes Connection: close Cache-Control: no-cache
<login><result>UNAUTHORIZED</result></login>
As you can see I am not allowed to log on in the final step. When I get some more time I will try to do the telnet stuff on the windows machine to see if there is a difference, but otherwise I'm not sure of what to do. If someone else is interested in getting voddler to work in XBMC, now is the time to step up as I will have very limited time to investigate this further the following days (two sick children and a newly bought house...).
Last edited by Ohlin on Sun Nov 01, 2009 8:45 pm; edited 1 time in total
Subject: Re: Voddler + wine Sun Nov 01, 2009 5:21 pm
Tested it on windows, and got the same result. I also found out why it is not working. It seems as if you have to do something with the key you get from the VNetManager before you can use it as a token when you log on. It is quite obvious if you think about it, but I blame it on sheer tiredness. I think it is a system with public and secret keys and if the secret key is not found, then I guess there is not much to do. It is probably time to diff the code between voddler and XBMC to find out what is really going on. I really hope that everything is there, but I am not so sure. So far I have found two function declarations without the corresponding definitions... Either they are not used or they have been stripped out of the source...
Subject: Re: Voddler + wine Sun Nov 01, 2009 5:35 pm
So VNetManager sends voddlerplayer a hex key that is processed by voddlerplayer in some way and then sent back to VNetManager in an authorization request? (Could you edit your post with the protocol example and mark what lines are sent by you to VNetManager and vice versa? I'm having difficulties reading it.)
You're probably right though, it's likely that the player must authorize itself against the VNetManager.
And if it is indeed the case, that Voddler simply deleted those parts of the code before releasing the source, are they still complying with the GPL?
Subject: Re: Voddler + wine Sun Nov 01, 2009 8:36 pm
I think that there is a mismatch between the current VoddlerPlayer.exe binary and the source code that is published by voddler. If you look at the code that voddler has published it looks as if the log-in procedure is performed in CUtil::doVoddlerUserLogin where a string is built up like this CStdString loginurl = "http://127.0.0.1:50726/voddler/login?userid=" + userid; and if the user has entered a password then loginurl += "&password=" + pass;
The problem is that this is not the string that was sent on the loopback device to VNetManager by my VoddlerPlayer.exe. There the string looked like it should have been something like: http://127.0.0.1:50726/voddler/login?userid=XXXXXXXXX&token=XXXXXXXXXXX&keyid=XXXXXXX where XXX is dependent on the user. If I search the supplied source I can not find a string of this type being built up anywhere!!!
If I use the dumpbin tool on VoddlerPlayer then I can see that it contains a string of the following form: "http://127.0.0.1:50726/voddler/login?userid=&password=&token=&keyid=" It looks very much like the one I see that VoddlerPlayer.exe is sending to VNetManager.exe, but as I said above, I have not been able to find a similar string being built in the supplied source code.
I can also see the following string using the dumpbin tool
Code:
"<login><result>UNAUTHORIZED</result></login>"
Which is exactly the result I get when I try to do a telnet connection. I can not find this string either in the supplied source code. The place where it should probably be is CUtil::doVoddlerUserLogin but in the source code that I have, the only response that is checked for is
Code:
"<login><result>OK</result></login>"
.
Based on the stuff above, I can draw no other conclusion than that the source code that voddler has published is not the one used in the client. If this is intentional or not I do not know. Hopefully we will see an update of the source code soon...
p.s. I downloaded my version of the source code 2009-10-30 13:18. d.s.
Subject: Re: Voddler + wine Sun Nov 01, 2009 9:01 pm
Just want to share a success story - I really didn't believe the solution on how to get Voddler working on wine... ...but after some struggling I have managed to get it running now on Ubuntu 9.04 Jaunty x64. And it works good, very smooth, no buffering problem and with good sound.
But I had to install chroot for getting the 32-bit wine to work. So, I'm running the 32-bit enviroment with Ubuntu Hardy 8.04.
No major issues to apply the patch on wine manually by changing the code, compiling and installing went good. Some additional packages was missing, but it was just to install the missing dependencies. And I also had to modify your registry-file with some slashes.
The last problem was when launching Voddler, didn't check if I had to use any parameters. When not using -fs -p, or just -p, Voddler crashed.
So, thanks for your information, even if it could have been a bit more detailed. And finally I still have the hope we're going to get a official linux-release on Voddler, but I am not so sure anymore...
EDIT: btw, I am also quit curious if somone have managed to build the supplied source-code from voddler. I am not a specialist, so it is maybe my own fault I haven't managed to do it, but on my computer it complains it missing som c-files