Loading...
  OR  Zero-K Name:    Password:   

Build ZeroLobby on Linux

9 posts, 977 views
Post comment
Filter:    Player:  
sort
11 years ago
Hello,

I want to write some enhancements and fix some of the UI issues of the ZeroLobby on Linux. I have been trying to build ZeroLobby using Monodevelop, but there are quite a few missing dependency errors (some of which are not available on Mono).

Short of re-configuring all the projects and possibly removing features, is there an easy way to build the ZeroLobby on Linux (ie. some type of build configuration)?
+6 / -0
Hi, took a crack at it. Fixed the first thing, running NuGet, by downloading Microsoft.Build.dll from here:

http://headsigned.com/article/running-nuget-command-line-on-linux

And then doing

export EnableNuGetPackageRestore="true"

NuGet.exe is in trunk/other/.nuget/

The next error is that PlasmaShared does not find ServiceStack, even though it was just downloaded by NuGet.

I am using xbuild that is included with mono to build. You might have better luck with MonoDevelop.
+3 / -0
11 years ago
Hey Vermind,

Thanks for the reply :)

Having an alternative to Monodevelop (xbuild) makes me no longer want to stab my eyes out.

I followed your tutorial and fixed zero-k/other/.nugut/NuGet.targets

Not it can resolve packages, but there are some file resolution issues (due to case sensitivity). I hope there aren't too many issues.

I couldn't paste the HTML into this forum, so I created a blog post here:
http://hekar.github.io/blog/#/post/10 (may take a while for Github to update the page)
+0 / -0
11 years ago
It is building correctly now. This should work without any modification on Windows too. I used conditions in the ZeroKLobby.csproj file to deal with the differences between Windows and Linux.

Unfortunately, I did not deal with the "PostBuild" "ILMerge" step, so this does not create a single Zero-K.exe assembly (instead it requires that the DLLs also be present). However, this will not affect Windows. MSBuild will still correctly output a single assembly.

This is a diff of the "NuGet.targets" and "ZeroKLobby.csproj" files:
http://pastebin.com/9DNgghx5

I created a Github repository for continuing the work:
https://github.com/hekar/ZeroKLobby/tree/master/other/ZeroKLobby

I will eventually create a patch to submit to the official Subversion repository. I am not familiar with Subversion, so it may take a while.

Thanks
+7 / -0


11 years ago
Good job!
You don't really have to care about post build steps that much, it's auto built on server anyway when we deploy new version.
However if you test on local, dll vs single exe versions have slightly different serializers meaning it will lose cache/rescan maps. Otherwise it should work fine.
+2 / -0
CArankhekar I am sure you fixed this, but xbuild/mono lets you ignore case.
Run:
export MONO_IOMAP=all
xbuild

There are 3 possible values for the option:
quote:

case: makes all file system access case insensitive.
drive: strips drive name from pathnames.
all: enables both case and drive.
+0 / -0
11 years ago
FIrankVermind

Thanks Vermind. That's a pretty useful command!
+0 / -0


11 years ago
I took a minute to check out your git repo.

Whoa, second commit has 40k lines? :-0

Now i feel obliged to try to build it...
+0 / -0
EErankAdminAnarchid

The repo is simply a mirror of ZeroKLobby. Only two files have actually been changed (project files http://pastebin.com/9DNgghx5).

There is a bug in my version of Mono.
UserControl.MaximumSize and UserControl.MinimumSize are not correctly honored. Widgets continually shrink as they are re-rendered.

I am not sure, how to go about fixing the issue or, whether it needs to be fixed.


Recently, noticed that Mono enables autoscaling by default (where as .NET does not). Not sure if this would have an effect, but it is worth investigating.
http://www.mono-project.com/FAQ:_Winforms

Will try to disable autoscaling tonight, to see if it makes a difference.
export MONO_MWF_SCALING=disable

Also, found this http://nuget.codeplex.com/workitem/3332 in a comment in Vermind's blog post. The path for .nuget/NuGet.targets is incorrect (will not work on Windows). I will fix that tonight.
+0 / -0