Linux support.

Talk about general things concerning Forged Alliance Forever.

Moderators: FtXCommando, Ze Dogfather

Linux support.

Postby Ze_PilOt » 07 May 2013, 10:19

This has been requested many time in the tech forum, and my answer was (and still is) : I don't have linux, so I can't support it.
I can install linux in a VM, but I don't have the time to port it.
But the code is open sourced so...

I've hoped it was a hint big enough, but so far nobody step forward to make a linux port.

So I make it more or less official : FAF is searching for a linux guy/team to make a linux port AND linux support.

This mean this :

- Porting FAF to native linux.
- Make the adjustments so it can run FA in wine correctly (why not pack it up with the FAF installer ?).
- Make the adjustments so all the files goes in the right place too.
- Package all new versions to keep up with windows.
- Answer to support questions regarding linux.

For porting FAF itself, some things that are windows-related :
- The unique ID DLL : I can easily port it to .so at some point.
- uPnP : it use win32 API to set it up. You need to find a linux equivalent.
- Mumble : Same as uPnP, it look at some windows registry to get the install folder.
- FA itself : you need to adapt it so it run through wine correctly.
- Map/replays : You need to be sure they go in the wine folder.
- Make sure to adapt the ProgramData folder for Cache folders,....
- They are probably some others stuff here and there regarding win32 API or windows path that you need to fix.
Nossa wrote:I've never played GPG or even heard of FA until FAF started blowing up.
User avatar
Ze_PilOt
Supreme Commander
 
Posts: 8985
Joined: 24 Aug 2011, 18:41
Location: fafland
Has liked: 18 times
Been liked: 376 times
FAF User Name: Ze_PilOt

Re: Linux support.

Postby rootbeer23 » 07 May 2013, 10:47

with the VM detector in place i cannot log onto the server from linux.
rootbeer23
Supreme Commander
 
Posts: 1001
Joined: 18 May 2012, 15:38
Has liked: 0 time
Been liked: 31 times
FAF User Name: root2342

Re: Linux support.

Postby heelix » 07 May 2013, 18:16

I'd be interested in lending a hand making it work in WINE as well as making sure we can avoid/fix the reason we don't allow VMs. Don't want to dig into it only to get my account banned - so if there is a way to white list, I've got a couple RHEL/Centos boxes and was able to get FA up and running on Linux and fixed a couple Oracle issues had with WINE years back. Fairly competent in C, Java, and xquery... no python, but how hard could it be? (grin)

Not offering to take this on yet...
heelix
Crusader
 
Posts: 28
Joined: 13 Jan 2013, 05:59
Has liked: 0 time
Been liked: 0 time
FAF User Name: heelix

Re: Linux support.

Postby Ze_PilOt » 07 May 2013, 20:03

heelix wrote:I'd be interested in lending a hand making it work in WINE as well as making sure we can avoid/fix the reason we don't allow VMs. Don't want to dig into it only to get my account banned - so if there is a way to white list, I've got a couple RHEL/Centos boxes and was able to get FA up and running on Linux and fixed a couple Oracle issues had with WINE years back. Fairly competent in C, Java, and xquery... no python, but how hard could it be? (grin)

Not offering to take this on yet...


- Making it working in wine is not possible. The function the lobby are using are not supported by wine.
- Making it compatible with VM is not an option due to cheaters. Unless you remove cheaters from the surface of the earth, you won't avoid it.
Nossa wrote:I've never played GPG or even heard of FA until FAF started blowing up.
User avatar
Ze_PilOt
Supreme Commander
 
Posts: 8985
Joined: 24 Aug 2011, 18:41
Location: fafland
Has liked: 18 times
Been liked: 376 times
FAF User Name: Ze_PilOt

Re: Linux support.

Postby heelix » 07 May 2013, 23:21

<I> Making it working in wine is not possible. The function the lobby are using are not supported by wine.</i>

Might be able to help with that part - getting WINE to implement the missing function. Do you remember which DLL was giving grief?
heelix
Crusader
 
Posts: 28
Joined: 13 Jan 2013, 05:59
Has liked: 0 time
Been liked: 0 time
FAF User Name: heelix

Re: Linux support.

Postby Ze_PilOt » 07 May 2013, 23:24

I don't think it's an option.
Nossa wrote:I've never played GPG or even heard of FA until FAF started blowing up.
User avatar
Ze_PilOt
Supreme Commander
 
Posts: 8985
Joined: 24 Aug 2011, 18:41
Location: fafland
Has liked: 18 times
Been liked: 376 times
FAF User Name: Ze_PilOt

Re: Linux support.

Postby Ragora » 07 May 2013, 23:45

Ze_PilOt wrote:I don't think it's an option.


Despite that I have at least tried a quick, hacky port of the lobby.

First off, all I managed to get was a crash window after hacking at all of the dependency issues (adding if statements to execute certain code on WINDOWS only and installing dependencies where I can).
Image

Though after that I had issues with the mumble connector, as of now if this does go anywhere there won't be mumble support on Linux.

After disabling the mumble support, I finally managed to get it to display the login window.
Image

However, after attempting to login it reports I am missing a DLL (obviously) and points me to download the .NET runtime.
Image

I have yet to try and see if Forged Alliance runs to begin with, though. :lol:

heelix wrote:Do you remember which DLL was giving grief?


Mono doesn't implement the functionality?

Edit:
After looking over the crash log, I found that I'm looking for "uid.dll".

Code: Select all

**FAF Username:** pre-login

**FAF Version:** undefined

**FAF Directory:** /home/ragora/

**FA Path:** None

**Home Directory:** /home/ragora/user


**FA Forever Log (last 128 lines):**
{{{
2013-05-07 17:32:40,815 INFO     faf.fa.proxies       binding socket 3 on port 12006

2013-05-07 17:32:40,815 INFO     faf.fa.proxies       binding socket 4 on port 12010

2013-05-07 17:32:40,815 INFO     faf.fa.proxies       binding socket 5 on port 12015

2013-05-07 17:32:40,816 INFO     faf.fa.proxies       binding socket 6 on port 12021

2013-05-07 17:32:40,816 INFO     faf.fa.proxies       binding socket 7 on port 12028

2013-05-07 17:32:40,816 INFO     faf.fa.proxies       binding socket 8 on port 12036

2013-05-07 17:32:40,817 INFO     faf.fa.proxies       binding socket 9 on port 12045

2013-05-07 17:32:40,817 INFO     faf.fa.proxies       binding socket 10 on port 12055

2013-05-07 17:32:40,825 INFO     faf.util             Read common stylesheet: client/client.css

2013-05-07 17:32:40,913 INFO     faf.util             Read common stylesheet: stats/formatters/style.css

2013-05-07 17:32:40,925 INFO     faf.util             Read common stylesheet: tournaments/formatters/style.css

2013-05-07 17:32:40,925 DEBUG    faf.vault            Map Vault tab instantiating

2013-05-07 17:32:40,963 INFO     faf.replays          Replays Widget instantiated.

2013-05-07 17:32:41,029 INFO     faf.tutorials        Tutorials instantiated.

2013-05-07 17:32:41,038 INFO     faf.client           Outgoing JSON Message: {"action": "requestavatars", "command": "admin"}

2013-05-07 17:32:41,040 INFO     faf.fa.replayserver  listening on address 127.0.0.1:15000

2013-05-07 17:32:41,040 INFO     faf.fa.relayserver   relay listening on address 127.0.0.1:41669

2013-05-07 17:32:41,176 INFO     faf.client           Outgoing JSON Message: {"command": "ask_session"}

2013-05-07 17:32:41,291 ERROR    faf.util             UniqueID Failure

Traceback (most recent call last):

  File "/home/ragora/Desktop/client_env/modular-client/src/util/__init__.py", line 534, in uniqueID

    mydll = cdll.LoadLibrary("uid.dll")

  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary

    return self._dlltype(name)

  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__

    self._handle = _dlopen(self._name, mode)

OSError: uid.dll: cannot open shared object file: No such file or directory

2013-05-07 17:33:05,966 INFO     faf.client           Attempting to login as: Liukcairo

2013-05-07 17:34:27,245 INFO     faf.main             <<< --------------------------- Application Shutdown

2013-05-07 17:34:30,474 INFO     faf.main             >>> --------------------------- Application Launch

2013-05-07 17:34:31,164 DEBUG    faf.fa.relayserver   initializing...

2013-05-07 17:34:31,164 INFO     faf.fa.proxies       binding socket 0 on port 12000

2013-05-07 17:34:31,165 INFO     faf.fa.proxies       binding socket 1 on port 12001

2013-05-07 17:34:31,165 INFO     faf.fa.proxies       binding socket 2 on port 12003

2013-05-07 17:34:31,165 INFO     faf.fa.proxies       binding socket 3 on port 12006

2013-05-07 17:34:31,166 INFO     faf.fa.proxies       binding socket 4 on port 12010

2013-05-07 17:34:31,166 INFO     faf.fa.proxies       binding socket 5 on port 12015

2013-05-07 17:34:31,167 INFO     faf.fa.proxies       binding socket 6 on port 12021

2013-05-07 17:34:31,167 INFO     faf.fa.proxies       binding socket 7 on port 12028

2013-05-07 17:34:31,167 INFO     faf.fa.proxies       binding socket 8 on port 12036

2013-05-07 17:34:31,168 INFO     faf.fa.proxies       binding socket 9 on port 12045

2013-05-07 17:34:31,168 INFO     faf.fa.proxies       binding socket 10 on port 12055

2013-05-07 17:34:31,176 INFO     faf.util             Read common stylesheet: client/client.css

2013-05-07 17:34:31,266 INFO     faf.util             Read common stylesheet: stats/formatters/style.css

2013-05-07 17:34:31,278 INFO     faf.util             Read common stylesheet: tournaments/formatters/style.css

2013-05-07 17:34:31,278 DEBUG    faf.vault            Map Vault tab instantiating

2013-05-07 17:34:31,335 INFO     faf.replays          Replays Widget instantiated.

2013-05-07 17:34:31,408 INFO     faf.tutorials        Tutorials instantiated.

2013-05-07 17:34:31,417 INFO     faf.client           Outgoing JSON Message: {"action": "requestavatars", "command": "admin"}

2013-05-07 17:34:31,419 INFO     faf.fa.replayserver  listening on address 127.0.0.1:15000

2013-05-07 17:34:31,419 INFO     faf.fa.relayserver   relay listening on address 127.0.0.1:59902

2013-05-07 17:34:31,572 INFO     faf.client           Outgoing JSON Message: {"command": "ask_session"}

2013-05-07 17:34:31,772 ERROR    faf.util             UniqueID Failure

Traceback (most recent call last):

  File "/home/ragora/Desktop/client_env/modular-client/src/util/__init__.py", line 534, in uniqueID

    mydll = cdll.LoadLibrary("uid.dll")

  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary

    return self._dlltype(name)

  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__

    self._handle = _dlopen(self._name, mode)

OSError: uid.dll: cannot open shared object file: No such file or directory

2013-05-07 17:34:37,645 INFO     faf.main             <<< --------------------------- Application Shutdown

2013-05-07 18:07:42,951 INFO     faf.main             >>> --------------------------- Application Launch

2013-05-07 18:07:43,641 DEBUG    faf.fa.relayserver   initializing...

2013-05-07 18:07:43,642 INFO     faf.fa.proxies       binding socket 0 on port 12000

2013-05-07 18:07:43,642 INFO     faf.fa.proxies       binding socket 1 on port 12001

2013-05-07 18:07:43,642 INFO     faf.fa.proxies       binding socket 2 on port 12003

2013-05-07 18:07:43,643 INFO     faf.fa.proxies       binding socket 3 on port 12006

2013-05-07 18:07:43,643 INFO     faf.fa.proxies       binding socket 4 on port 12010

2013-05-07 18:07:43,644 INFO     faf.fa.proxies       binding socket 5 on port 12015

2013-05-07 18:07:43,644 INFO     faf.fa.proxies       binding socket 6 on port 12021

2013-05-07 18:07:43,644 INFO     faf.fa.proxies       binding socket 7 on port 12028

2013-05-07 18:07:43,645 INFO     faf.fa.proxies       binding socket 8 on port 12036

2013-05-07 18:07:43,645 INFO     faf.fa.proxies       binding socket 9 on port 12045

2013-05-07 18:07:43,645 INFO     faf.fa.proxies       binding socket 10 on port 12055

2013-05-07 18:07:43,655 INFO     faf.util             Read common stylesheet: client/client.css

2013-05-07 18:07:43,745 INFO     faf.util             Read common stylesheet: stats/formatters/style.css

2013-05-07 18:07:43,756 INFO     faf.util             Read common stylesheet: tournaments/formatters/style.css

2013-05-07 18:07:43,756 DEBUG    faf.vault            Map Vault tab instantiating

2013-05-07 18:07:43,805 INFO     faf.replays          Replays Widget instantiated.

2013-05-07 18:07:43,876 INFO     faf.tutorials        Tutorials instantiated.

2013-05-07 18:07:43,888 INFO     faf.client           Outgoing JSON Message: {"action": "requestavatars", "command": "admin"}

2013-05-07 18:07:43,890 INFO     faf.fa.replayserver  listening on address 127.0.0.1:15000

2013-05-07 18:07:43,891 INFO     faf.fa.relayserver   relay listening on address 127.0.0.1:58778

2013-05-07 18:07:44,219 INFO     faf.client           Outgoing JSON Message: {"command": "ask_session"}

2013-05-07 18:07:44,410 ERROR    faf.util             UniqueID Failure

Traceback (most recent call last):

  File "/home/ragora/Desktop/client_env/modular-client/src/util/__init__.py", line 534, in uniqueID

    mydll = cdll.LoadLibrary("uid.dll")

  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary

    return self._dlltype(name)

  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__

    self._handle = _dlopen(self._name, mode)

OSError: uid.dll: cannot open shared object file: No such file or directory

2013-05-07 18:07:50,856 INFO     faf.client           Attempting to login as:

2013-05-07 18:07:51,646 INFO     faf.main             <<< --------------------------- Application Shutdown

2013-05-07 18:09:14,491 INFO     faf.main             >>> --------------------------- Application Launch

2013-05-07 18:09:15,230 DEBUG    faf.fa.relayserver   initializing...

2013-05-07 18:09:15,231 INFO     faf.fa.proxies       binding socket 0 on port 12000

2013-05-07 18:09:15,231 INFO     faf.fa.proxies       binding socket 1 on port 12001

2013-05-07 18:09:15,232 INFO     faf.fa.proxies       binding socket 2 on port 12003

2013-05-07 18:09:15,232 INFO     faf.fa.proxies       binding socket 3 on port 12006

2013-05-07 18:09:15,233 INFO     faf.fa.proxies       binding socket 4 on port 12010

2013-05-07 18:09:15,233 INFO     faf.fa.proxies       binding socket 5 on port 12015

2013-05-07 18:09:15,234 INFO     faf.fa.proxies       binding socket 6 on port 12021

2013-05-07 18:09:15,234 INFO     faf.fa.proxies       binding socket 7 on port 12028

2013-05-07 18:09:15,235 INFO     faf.fa.proxies       binding socket 8 on port 12036

2013-05-07 18:09:15,235 INFO     faf.fa.proxies       binding socket 9 on port 12045

2013-05-07 18:09:15,236 INFO     faf.fa.proxies       binding socket 10 on port 12055

2013-05-07 18:09:15,243 INFO     faf.util             Read common stylesheet: client/client.css

2013-05-07 18:09:15,339 INFO     faf.util             Read common stylesheet: stats/formatters/style.css

2013-05-07 18:09:15,351 INFO     faf.util             Read common stylesheet: tournaments/formatters/style.css

2013-05-07 18:09:15,351 DEBUG    faf.vault            Map Vault tab instantiating

2013-05-07 18:09:15,401 INFO     faf.replays          Replays Widget instantiated.

2013-05-07 18:09:15,469 INFO     faf.tutorials        Tutorials instantiated.

2013-05-07 18:09:15,483 INFO     faf.client           Outgoing JSON Message: {"action": "requestavatars", "command": "admin"}

2013-05-07 18:09:15,486 INFO     faf.fa.replayserver  listening on address 127.0.0.1:15000

2013-05-07 18:09:15,486 INFO     faf.fa.relayserver   relay listening on address 127.0.0.1:58633

2013-05-07 18:09:15,739 INFO     faf.client           Outgoing JSON Message: {"command": "ask_session"}

2013-05-07 18:09:16,218 ERROR    faf.util             UniqueID Failure

Traceback (most recent call last):

  File "/home/ragora/Desktop/client_env/modular-client/src/util/__init__.py", line 534, in uniqueID

    mydll = cdll.LoadLibrary("uid.dll")

  File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary

    return self._dlltype(name)

  File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__

    self._handle = _dlopen(self._name, mode)

OSError: uid.dll: cannot open shared object file: No such file or directory

}}}


**Forged Alliance Log (full):**
{{{
/home/ragora/logs/game.log
empty or not readable
}}}


Ze_PilOt wrote:For porting FAF itself, some things that are windows-related :
- The unique ID DLL : I can easily port it to .so at some point.


Would help. Would also help if I can find my game installer.
The Dragon
User avatar
Ragora
 
Posts: 5
Joined: 07 May 2013, 23:40
Location: Dras-Leona
Has liked: 0 time
Been liked: 0 time
FAF User Name: Liukcairo

Re: Linux support.

Postby rootbeer23 » 08 May 2013, 15:59

any news?
the best next step is to create an account that does not have the uid.dll restriction.
rootbeer23
Supreme Commander
 
Posts: 1001
Joined: 18 May 2012, 15:38
Has liked: 0 time
Been liked: 31 times
FAF User Name: root2342

Re: Linux support.

Postby Ze_PilOt » 08 May 2013, 16:04

Not possible.

I've quickly look how to port it to linux, it's nearly impossible without root mode.
Nossa wrote:I've never played GPG or even heard of FA until FAF started blowing up.
User avatar
Ze_PilOt
Supreme Commander
 
Posts: 8985
Joined: 24 Aug 2011, 18:41
Location: fafland
Has liked: 18 times
Been liked: 376 times
FAF User Name: Ze_PilOt

Re: Linux support.

Postby rootbeer23 » 08 May 2013, 16:07

function check_response(user, response) {
if (user == "foobaz") return 1;
else return orig_check_response(user, response);
}
rootbeer23
Supreme Commander
 
Posts: 1001
Joined: 18 May 2012, 15:38
Has liked: 0 time
Been liked: 31 times
FAF User Name: root2342

Next

Return to General Discussions

Who is online

Users browsing this forum: No registered users and 1 guest