Make orxonox distributable

Propose and discuss new features yet to come.

Moderator: PPS-Leaders

User avatar
1337
Baron Vladimir Harkonnen
Posts: 521
Joined: Wed Oct 10, 2007 7:59 am

Re: Make orxonox distributable

Post by 1337 » Thu Apr 23, 2009 4:13 pm

If that works then, yes of course. But until then we have CMake and all the libraries you need to get.
CMake also includes CPack. I suppose that might be of larger assistance.
http://www.xkcd.com/
A webcomic of romance, sarcasm, math, and language.

User avatar
beni
Baron Vladimir Harkonnen
Posts: 949
Joined: Tue Oct 03, 2006 9:15 am
Location: Zurich
Contact:

Re: Make orxonox distributable

Post by beni » Thu Apr 23, 2009 6:27 pm

Making the code distributable implies the presence of a packet of some Linux distribution (rpm, deb etc.), at least for me it does.

For Windows it's enough to offer a download of the fully compiled binary with all the libs in a zip. Of course we can also offer an installer.

When talking about distributing Orxonox I always mean for the end user, the gamer and not for the developer. For the end user there have to be a minimum of steps to make the game playable.
Preferably:

Code: Select all

$ sudo aptitude install orxonox
...
$ orxonox
Does anybody of you guys know how to create a package of some sort? For Debian/Ubuntu for instance, it's of course cool if Orxonox also is added into the menu so the player can find Orxonox at "Applications->Games->Orxonox" and stuff like this. I guess there are guides out there which explain this. If we could prepare the trunk so the server can easily create all sorts of packages for all sorts of OS and distributions it would be really great.
"I'm Commander Shepard and this is my favorite forum on the internet."

User avatar
Nowic
Thanathon, God of the lower Planes
Posts: 186
Joined: Tue Oct 03, 2006 7:53 pm
Location: Zürich
Contact:

Re: Make orxonox distributable

Post by Nowic » Fri Aug 21, 2009 10:26 pm

Official Debian (and Ubuntu) packaging documentation:
http://www.debian.org/doc/devel-manuals#maint-guide

I created several Debian/Ubuntu packages. It's an easy task, if your build system (and code) allows the following:

It has to be possible to set a custom install prefix. Something like:
./configure --prefix=/usr/local

Working:
make
make install
make clean
make dist (very useful, creates a tar.gz ready for release)
make distclean (optional, if the package is not part of the official debian archive)

And it should obey the unix file system hierarchy when installing. (
http://wiki.debian.org/FilesystemHierarchyStandard )
PREFIX/bin for the executable
PREFIX/share/orxonox for your architecture-independent data.
PREFIX/share/applications for your orxonox.desktop (menu) file ( http://standards.freedesktop.org/menu-spec/latest/ )

CMake should be able to support all these features (e.g. KDE can do it).
"I've always lived cheaply. I live like a student, basically. And I like that because it means that money is not telling me what to do. I can do what I think is important for me to do. It freed me to do what seemed worth doing." -- Richard Stallman

User avatar
1337
Baron Vladimir Harkonnen
Posts: 521
Joined: Wed Oct 10, 2007 7:59 am

Re: Make orxonox distributable

Post by 1337 » Sat Aug 22, 2009 11:37 am

Thx now for summing up the tasks. Here comes a status update:
As far as I can see I have implemented most of it up until make dist. Just the paths are probably not correct. Since I don't exactly know to much about Linux, I simply asked those guys ;)

Our build system supports copyable installations, which means everything gets into one folder with different subfolders (bin, lib, lib/static, data, config, log, lib/modules). This is very useful for "installing" on systems where you don't have the rights to install as usual. And it is extremely useful for Windows since you can simply move things around without worrying.

But the default installation for Linux is of course with hard coded paths. Here are the currently used paths (extract from InstallConfig.cmake from the resource2 branch):

Code: Select all

SET(RUNTIME_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)
SET(LIBRARY_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib/orxonox)
SET(ARCHIVE_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib/orxonox/static)
SET(DOC_INSTALL_DIRECTORY     ${CMAKE_INSTALL_PREFIX}/share/doc/orxonox)
SET(DATA_INSTALL_DIRECTORY    ${CMAKE_INSTALL_PREFIX}/share/orxonox)
${CMAKE_INSTALL_PREFIX} is a CMake Cache variable so you can easily configure it. The default points to "/usr/local".
Is that remotely correct? The config and log folders go to ~/.orxonox, but at runtime.
And orxonox still runs smoothly if you use the executable from any other directory (as long as the binary path is in the PATH variable). It was quite a pain, but I found code for all three platforms to perform this.

make, make install and make clean should work properly.
However I haven't yet had a look at CPack to generate the packages. It seems to offer quite a lot, but with sparse documentation.
If I can find the time I shall have a look at it.
http://www.xkcd.com/
A webcomic of romance, sarcasm, math, and language.

User avatar
beni
Baron Vladimir Harkonnen
Posts: 949
Joined: Tue Oct 03, 2006 9:15 am
Location: Zurich
Contact:

Re: Make orxonox distributable

Post by beni » Sat Aug 22, 2009 3:13 pm

1337 wrote:Is that remotely correct?
Having installed many things on Ubuntu "/usr/local" is only the path to go when I do "sudo make install" having downloaded the source of a library or application.
Usually when I install a deb-package the path used is "/usr". Maybe this counts only for official packages, but that's not something that I have observed so far.
"I'm Commander Shepard and this is my favorite forum on the internet."

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests