Page 1 of 2

Folder structure for the installation

Posted: Mon Feb 02, 2009 7:22 pm
by 1337
Last semester Adi has added CMake code to make an install target. Today I fixed an issue for Windows and successfully tested it.

Very well so far, but how should the installation folder look like? I think by now we should be able to estimate the contents.

I'll start and make a suggestion:

Code: Select all

bin    (executable and DLLs on windows)
lib    (shared libraries under unix)
media  (content of the media folder)
doc    (html or whatever format documentation)
config (ALL configuration files, including the log)
Unfortunately I really have absolutely no idea about how a program folder structure should look like on Unix.


And since we're talking about binaries: Am I right to assume that we still want to use the CMake binary directory for development purposes? What I mean is simply running Orxonox from there and not from any installation folder.

Btw: There is a certain message behind the fact where this thread has been created :twisted: Anybody knowing a place where it isn't wrong according to the subject is allowed to move it.

Posted: Mon Feb 02, 2009 7:42 pm
by beni
I like your proposed folder structure. It does not differ that much from what we would need for a Linux installation.

I can give you a small overview at how I think Orxonox could look like in a Linux folder structure.

Code: Select all

/usr/bin                    (executable)
/usr/lib                    (shared libraries)
/usr/share/orxonox          (media)
/home/<username>/.orxonox   (config files)
This would be the structure after a "make install" or installation of a package

I'm not sure what to do with the documentation and the log, but there is a place for them for sure. We should get somebody who is experienced with Linux packages and installations.

Small things like putting Orxonox into the "Games" application category and similar things would be cool.

I think building Orxonox into the CMake folder is not a problem. In fact that is what you usually do when compiling with Linux (make, make install) where "make install" just copies the compiled stuff to the appropriate places.

This also means that there is not a particular installer needed for Linux as we just have to copy some stuff around.

About the location of the thread: I had this problem more than once as well.. The structure is not really good and a review of it is necessary.[/quote]

Posted: Mon Feb 02, 2009 8:18 pm
by greenman
afaik the default paths under unix are as follows:

Code: Select all

binary:             /usr/bin/orxonox
shared libraries:   /usr/lib/orxonox/libXXX.so
media:              /usr/share/orxonox/
configuration:      ~/.orxonox/config/  ( ~ means /home/${USER} )
doc/readme:         /usr/share/doc/orxonox/
logs:               ~/.orxonox/logs/
please correct me if i'm wrong

edit: appended some things

Posted: Mon Feb 02, 2009 8:22 pm
by 1337
Thanks a lot for that overview.

All right, I'm glad you also like to develop directly within the binary directory created by CMake. That makes things easier.

I also don't think we need to support debug installs, sounds useless to me. The reason why there is that orxonox.ini might differ (gets configured by CMake) between debug and release builds.
Furthermore, differentiating between install types is very difficult with MSVC or XCode.

Posted: Tue Feb 03, 2009 12:36 pm
by 1337
Best fitting category anyway, but it still doesn't fit ^^
I suggest something like a "General Development" category.

Posted: Tue Feb 03, 2009 7:41 pm
by x3n
Hey, it's called "survival of the fittest" and not "the optimal" :P

Posted: Tue Feb 03, 2009 7:52 pm
by 1337
yeah well, evolution has long stopped to work in a civilised world like ours...

Posted: Tue Feb 03, 2009 10:42 pm
by beni
Well fitting avatar then ^^

Posted: Wed Feb 04, 2009 10:05 am
by x3n
At least something fits^^

Posted: Wed Feb 04, 2009 3:00 pm
by 1337
So I'm gonna stick to v0.0.3 "Bellatrix"? Is that ok?

You can easily change it later anyway.

Posted: Wed Feb 04, 2009 3:01 pm
by beni
It's "Castor"

Posted: Wed Feb 04, 2009 3:05 pm
by 1337
Thanks.

btw: Why are we naming the patch versions?
I'd rather name the minors, since the patch version shouldn't break any interface. And yes, I know that the latter is impossible to do at this stage of development.

Posted: Wed Feb 11, 2009 10:47 am
by greenman
i would also suggest to only name the minor versions, as they correspond to the milestones now (or at least thats what i think we decided)

Posted: Wed Feb 11, 2009 9:34 pm
by 1337
Back to the topic:
Is it usr/lib/orxonox or usr/lib on Linux? You don't seem to see eye to eye regarding this matter... Personally I would prefer usr/lib because it's easier to implement since that doesn't require any windows/unix distinguishing.


As for Windows I think we should follow the strategy of most games: Copying is installing. That also means no files in any "Application Data" folder. Would you agree? In the yes-case I will stick to the folder structure I posted.

Posted: Thu Feb 12, 2009 10:28 am
by 1337
Status Update:

- Files originally in bin/ are still there and get installed to bin/, but there is a ticket (314) for that.
- Media files get installed to /usr/share/orxonox (Unix) or C:/Program Files/Orxonox/media (Windows), without the .svn folders.
- DLLs from a precompiled package also get copied to the bin folder on Windows.
- Debug installation is not officially supported, but should work.

Can somebody please test the installation on Linux since my tardis account doesn't exactly allow this..