ET:L on FreeBSD

Added by bar over 6 years ago

I’ve succesfully build ET: Legacy (2.71rc1) on FreeBSD with few tweak, so I was thinking about creating a "port" (http://www.freebsd.org/ports/).
The client starts but I’m receiving various error after I connect to a server, also with etlegacy.com server.
I noticed that even connecting to etlegacy.com a couple of pk3 are downloaded.
As it seems that some pk3 files contain OS dependent files (e.g. so/dll/...), and I think this is what is causing troubles, I’m wondering if running a client on OS other than Win32, Linux and Mac is practically infeasible. Or am I missing something?

BTW, the Linux client run very well and smooth on FreeBSD!


Replies (10)

RE: ET:L on FreeBSD - Added by Radegast over 6 years ago

Hi. You are right. The mod libraries are OS dependent and as we had no one to compile FreeBSD mod libs for us, our test server does not support FreeBSD.

bar wrote:

As it seems that some pk3 files contain OS dependent files (e.g. so/dll/...), and I think this is what is causing troubles, I’m wondering if running a client on OS other than Win32, Linux and Mac is practically infeasible. Or am I missing something?

Right again. Our official Legacy mod is technically the only mod that supports FreeBSD and it is run only on a few servers, so even if we provided FreeBSD mod libs, your choice of servers would be very limited.

RE: ET:L on FreeBSD - Added by IR4T4 over 6 years ago

Radegast wrote:

... so even if we provided FreeBSD mod libs, your choice of servers would be very limited.

Regardless providing the mod libs for ET:L it doesn’t harm to adjust the code base and have a ready to compile status for this OS

bar, tell us your adjustments and received errors. http://www.etlegacy.com/projects/etlegacy/wiki/How_to_commit_your_code#Get-ready-to-commitprovide-your-code - see pull requests on github
I have no clue about BSD in general but I’ve already realized there are issues at least on OpenBSD systems: http://www.etlegacy.com/issues/223

RE: ET:L on FreeBSD - Added by bar over 6 years ago

Radegast wrote:

Hi. You are right. The mod libraries are OS dependent and as we had no one to compile FreeBSD mod libs for us, our test server does not support FreeBSD.

bar wrote:

As it seems that some pk3 files contain OS dependent files (e.g. so/dll/...), and I think this is what is causing troubles, I’m wondering if running a client on OS other than Win32, Linux and Mac is practically infeasible. Or am I missing something?

Right again. Our official Legacy mod is technically the only mod that supports FreeBSD and it is run only on a few servers, so even if we provided FreeBSD mod libs, your choice of servers would be very limited.

Unfortunately that was something I wouldn’t like to hear.
That’s a pity as the code has proven to be very portable
Anyway, thank you very much for your fast response, Radegast.

RE: ET:L on FreeBSD - Added by bar over 6 years ago

IR4T4 wrote:

Radegast wrote:

... so even if we provided FreeBSD mod libs, your choice of servers would be very limited.

Regardless providing the mod libs for ET:L it doesn’t harm to adjust the code base and have a ready to compile status for this OS

bar, tell us your adjustments and received errors. http://www.etlegacy.com/projects/etlegacy/wiki/How_to_commit_your_code#Get-ready-to-commitprovide-your-code - see pull requests on github
I have no clue about BSD in general but I’ve already realized there are issues at least on OpenBSD systems: http://www.etlegacy.com/issues/223

Well, I started my tests downloading the branch v2.71 zip file.
Then I tried running cmake with some combinations of options. I didn’t understand all the conditions about 32 bit cross compiling and FEATURE_OGG_VORBIS as I’m running a 32 bit system and I have both libogg.so and libvorbis.so, but I had no time to investigate further as I was too impatient to see some results.
So I run these commands (maybe some path are not so good):
$ mkdir build
$ cd build
$ cmake .. \
-DCMAKE_INSTALL_PREFIX=/home/bar/etlegacy \
-DINSTALL_DEFAULT_BASEDIR=/home/bar/etlegacy/lib/enemy-territory \
-DINSTALL_DEFAULT_MODDIR=/home/bar/etlegacy/lib/enemy-territory \
-DBUILD_PAK3_PK3=ON \
-DBUILD_MOD_PK3=ON \
-DBUNDLED_SDL=OFF \
-DBUNDLED_CURL=OFF -DFEATURE_CURL=ON \
-DBUNDLED_JPEG=OFF \
-DBUNDLED_LUA=OFF -DFEATURE_LUA=OFF \
-DFEATURE_OGG_VORBIS=OFF
$ make

I had some errors about MAC_STATIC, so I decided to start simply cloning the OPENBSD part in src/qcommon/q_shared.h and it worked.
Then I had some errors while linking and also here I cloned a OpenBSD part in CMakeLists.txt and it worked again resulting in a successful build.
Then I linked the original pk3 files under etmain directory and, after running ./etl, I got an error about the missing ui.mp.i386.so. Again, cloning the OpenBSD part in src/qcommon/qcommon.h did the trick.
That’s all.
That’s way I’m sad about the fact that a "nice to have" client is unusable!

I’m attaching the three unified diffs; you apply them running the following command inside the etlegacy-2.71 directory (which comes from the zip file):
$ patch < $downloaded_filename
but the changes are so trivial that can by applied by hand.

If you need any other test, please ask! I’m very busy with my work but I would be happy to help.

patch_src_qcommon_q_shared.h Magnifier - patch_src_qcommon_q_shared.h (695 Bytes)

patch_CMakeLists.txt Magnifier - patch_CMakeLists.txt (504 Bytes)

patch_src_qcommon_qcommon.h Magnifier - patch_src_qcommon_qcommon.h (509 Bytes)

RE: ET:L on FreeBSD - Added by IR4T4 over 6 years ago

Your code is committed and there are actually some options ...

1.) One of the 211890 forum members of freebsd.org hosts an ET: Legacy FreeBSD community server

2.) We add FreeBSD to the next release

Option 1 would be limited to FreeBSD users - option 2 to legacy mod servers.
If you want to do the task of the FreeBSD release - any help is appreciated

RE: ET:L on FreeBSD - Added by bar over 6 years ago

IR4T4 wrote:

Your code is committed and there are actually some options ...

1.) One of the 211890 forum members of freebsd.org hosts an ET: Legacy FreeBSD community server

2.) We add FreeBSD to the next release

Option 1 would be limited to FreeBSD users - option 2 to legacy mod servers.

I’ve understood those 2 options.

If you want to do the task of the FreeBSD release - any help is appreciated

Please, tell me, how can I help?
What are you asking me to do exactly?

RE: ET:L on FreeBSD - Added by Spyhawk over 6 years ago

bar wrote:

Please, tell me, how can I help?
What are you asking me to do exactly?

Probably to maintain an official etlegacy FreeBSD port, and to ensure that it stays up-to-date
See All about distribution packages in the wiki.

RE: ET:L on FreeBSD - Added by IR4T4 over 6 years ago

Basically you just have to compile the sources on FreeBSD when we are doing the release.

RE: ET:L on FreeBSD - Added by bar over 6 years ago

IR4T4 wrote:

Basically you just have to compile the sources on FreeBSD when we are doing the release.

That’s ok for me.
Yesterday I wrote a port using de45548 and it works. I run fuel dump (alone) and it seems that there are no problem so far. ET:Legacy rocks!
I only have to do some other tests and add some options and hopefully test it on a 64bit OS (I’m running i386); then I’ll ask my mentors if it’s ok to commit on our ports repository.
Unluckily today perl has been updated and I have to rebuild a lot of packages, so my poors cpus are quite busy.

For other technical questions, should I ask here in the forum or could we use email?

RE: ET:L on FreeBSD - Added by Radegast over 6 years ago

Better use this forum or IRC channel #etlegacy @ Freenode.net, so everyone can participate in the debate. We don’t have a mailing list.

(1-10/10)