Varieties of 'nux?
Moderator: Moderators
Varieties of 'nux?
I am obviously out of the loop on 'nux but would like to know more.
What varieties of 'nux are out there?
which ones can run spring?
How are the directories organized different from 'doze(don't get into a one os is better than the other please, I am trying to get data on how things are sorted)?
Would there be a linux version of nsis?
Thanks in advance, this will help me try and better accommodate those 'nux guys who want a gundam installer.
What varieties of 'nux are out there?
which ones can run spring?
How are the directories organized different from 'doze(don't get into a one os is better than the other please, I am trying to get data on how things are sorted)?
Would there be a linux version of nsis?
Thanks in advance, this will help me try and better accommodate those 'nux guys who want a gundam installer.
Last edited by smoth on 03 Apr 2011, 23:56, edited 4 times in total.
Re: Varieties of 'nux?
not go get spring, get gundam figure it all out.smoth wrote:'nux guys who want a gundam installer.
Re: Varieties of 'nux?
Gundam would be a good candidate to package up for some common distros. Ubuntu is a must - due to popularity. Gentoo and Fedora are good choices as well.
I have a personal interest in seeing more games on linux so I'm happy to start maintaining linux packages for interested parties.
There is a big question mark though. Have we resolved the multiple engine versions thing yet? In some cases it will make sense to allow a package to choose an older version of Spring if a Spring update has broken it. In some cases it may even make sense to include Spring in the game package, rather than treat it as a dependency.
Distros like Gentoo allow multiple versions of the same program. I'm not sure about other distros.
Once i've got the packages stable I'll look into automating the process so your releases are faster.
To make this practical I really need your releases to be a minimum of 1-2 months apart. If they are too regular it complicates things. I believe this was given as a reason for not allowing CA as an official Gentoo package a few years back.
Other requirements I need:
* A nice hi-res icon (any format though SVG preferred).
* A short 1 paragraph description.
* A license file, copy of GPL if applicable.
* Absolutely no OTA content or other dubious copyright.
I have a personal interest in seeing more games on linux so I'm happy to start maintaining linux packages for interested parties.
There is a big question mark though. Have we resolved the multiple engine versions thing yet? In some cases it will make sense to allow a package to choose an older version of Spring if a Spring update has broken it. In some cases it may even make sense to include Spring in the game package, rather than treat it as a dependency.
Distros like Gentoo allow multiple versions of the same program. I'm not sure about other distros.
Once i've got the packages stable I'll look into automating the process so your releases are faster.
To make this practical I really need your releases to be a minimum of 1-2 months apart. If they are too regular it complicates things. I believe this was given as a reason for not allowing CA as an official Gentoo package a few years back.
Other requirements I need:
* A nice hi-res icon (any format though SVG preferred).
* A short 1 paragraph description.
* A license file, copy of GPL if applicable.
* Absolutely no OTA content or other dubious copyright.
Re: Varieties of 'nux?
Maybe you should distill our pm conversation from last night and update your post, smoth.
Re: Varieties of 'nux?
Can't for another 8 hours or so
Re: Varieties of 'nux?
Installers on Linux are one of the hairiest issues.
Here's the thing: every Linux distro has its own packagers, its own versions of common libraries and often its own C++ compiler. What that means is that unlike on windows, you can't just make an executable and give it to Linux users and they'll run it.
Instead, the exe has to be compiled specifically for that distro. An Ubuntu version of a game won't work on the Slackware distro, which won't work on the Fedora distro, etc.
The workaround is to use the raw source-code and compile it yourself. You can imagine how tricky that often is - for some projects it's as simple as unzipping the source and running two console commands. For others, it's incredibly complex. Spring is in the latter category.
Remember that, in Linux, bundling in your dependancies into your program is *extremely* frowned upon. Each library is expected to exist once and only once on the client system - so while every SDL-based app on Windows will have their own copy of SDL, corresponding Linux apps are all expected to share SDL - if two versions of the same lib can't live side-by-side for some reason, and you need both versions, you're in trouble.
Because of this mess, the most common way to get packages for a distro is to get them from first-party sources. Most people getting programs for Ubuntu (the most popular Linux distro) don't download them from other companies... they use the integrated package-fetching system (apt) and it pulls down the program and all its dependancies from Ubuntu's main servers. It's too much truoble to get X working right, so we just trust Ubuntu to do it for us - we open up the package manager and say "I want XXX" and it fetches it for us and configures it for our system seamlessly and silently, and has a built-in updater.
Kernel Panic, for example, is already in Ubuntu's repository. However, the version that lives in the repo is limited by the 6-month release cycle. It may not even be able to go online since it's running an old version of the Spring engine itself.
Ubuntu only allows their packaging system to be updated once every 6 months. So if you want to release anything that isn't a pure bugfix for a dangerous problem between now and the next release? Too bad.
So, because of that, we have PPAs. PPAs are plug-ins for the packaging system where the user can say "I want to add this repository so I'm not just getting stuff from Ubuntu, but this Ubuntu-compatible thing that's updated more than twice a year". Spring has its own PPA for this here:
https://launchpad.net/~spring/+archive/ppa
You can also create .deb and .rpm installers, which are analogous to installers under Windows, but they generally aren't popular these days.
Probably the best approach would be to see if you could get all Gundam's content packed up into a release on the Spring PPA and add SpringLobby as a dependancy. Then you'd have to give players instructions how to add the Spring PPA and then tell them to fetch Gundam - fetching Gundam would in turn fetch the lobby, which would in turn fetch the engine.
This will get you into Ubuntu which is the most popular Linux version. Debian is often compatible with Ubuntu, but no guarantees, and there are several unofficial Ubuntu derivatives that are generally compatible with mainline Ubuntu - EG Mint.
Really, installing software is something that seems shockingly simple that, unless you're willing to play nice with the 1st-party sources, is actually really pathetically overcomplicated.
Here's the thing: every Linux distro has its own packagers, its own versions of common libraries and often its own C++ compiler. What that means is that unlike on windows, you can't just make an executable and give it to Linux users and they'll run it.
Instead, the exe has to be compiled specifically for that distro. An Ubuntu version of a game won't work on the Slackware distro, which won't work on the Fedora distro, etc.
The workaround is to use the raw source-code and compile it yourself. You can imagine how tricky that often is - for some projects it's as simple as unzipping the source and running two console commands. For others, it's incredibly complex. Spring is in the latter category.
Remember that, in Linux, bundling in your dependancies into your program is *extremely* frowned upon. Each library is expected to exist once and only once on the client system - so while every SDL-based app on Windows will have their own copy of SDL, corresponding Linux apps are all expected to share SDL - if two versions of the same lib can't live side-by-side for some reason, and you need both versions, you're in trouble.
Because of this mess, the most common way to get packages for a distro is to get them from first-party sources. Most people getting programs for Ubuntu (the most popular Linux distro) don't download them from other companies... they use the integrated package-fetching system (apt) and it pulls down the program and all its dependancies from Ubuntu's main servers. It's too much truoble to get X working right, so we just trust Ubuntu to do it for us - we open up the package manager and say "I want XXX" and it fetches it for us and configures it for our system seamlessly and silently, and has a built-in updater.
Kernel Panic, for example, is already in Ubuntu's repository. However, the version that lives in the repo is limited by the 6-month release cycle. It may not even be able to go online since it's running an old version of the Spring engine itself.
Ubuntu only allows their packaging system to be updated once every 6 months. So if you want to release anything that isn't a pure bugfix for a dangerous problem between now and the next release? Too bad.
So, because of that, we have PPAs. PPAs are plug-ins for the packaging system where the user can say "I want to add this repository so I'm not just getting stuff from Ubuntu, but this Ubuntu-compatible thing that's updated more than twice a year". Spring has its own PPA for this here:
https://launchpad.net/~spring/+archive/ppa
You can also create .deb and .rpm installers, which are analogous to installers under Windows, but they generally aren't popular these days.
Probably the best approach would be to see if you could get all Gundam's content packed up into a release on the Spring PPA and add SpringLobby as a dependancy. Then you'd have to give players instructions how to add the Spring PPA and then tell them to fetch Gundam - fetching Gundam would in turn fetch the lobby, which would in turn fetch the engine.
This will get you into Ubuntu which is the most popular Linux version. Debian is often compatible with Ubuntu, but no guarantees, and there are several unofficial Ubuntu derivatives that are generally compatible with mainline Ubuntu - EG Mint.
Really, installing software is something that seems shockingly simple that, unless you're willing to play nice with the 1st-party sources, is actually really pathetically overcomplicated.
Re: Varieties of 'nux?
That's nonsense really. I get a bit tired of the FUD being spread about compiling Spring lately. (While on windows it may be somewhat true simply because no one CBA to maintain project files (& vclibs?) on Linux it really is nonsense.)Pxtl wrote:The workaround is to use the raw source-code and compile it yourself. You can imagine how tricky that often is - for some projects it's as simple as unzipping the source and running two console commands. For others, it's incredibly complex. Spring is in the latter category.
I just tried it:
Code: Select all
git clone git://github.com/spring/spring.git
cd spring
cmake . # this is equivalent with ./configure in some other projects
make
sudo make install
On Ubuntu/Debian prepend something like `apt-get build-dep spring' to install all build dependencies automagically. Or look in the wiki for a list. Nothing different from 90% of other open source projects. (And the other 10% are harder to compile, not easier.)
TL;DR: Spring isn't significantly harder to compile on Linux than other projects, really.
Re: Varieties of 'nux?
My bad. I guess my perception of that comes from all the people grousing on the forum about Boost versions or the tricky compile flags needed to maintain sync.
Re: Varieties of 'nux?
That's all handled in the build system, really.
Only real problems you can have is missing dependencies (can happen for any package, and is usually a matter of installing those dependencies and retrying) or occasionally hitting compiler bugs (can happen for any package) if you are using newer/older compiler than any of the devs.
Only real problems you can have is missing dependencies (can happen for any package, and is usually a matter of installing those dependencies and retrying) or occasionally hitting compiler bugs (can happen for any package) if you are using newer/older compiler than any of the devs.
Re: Varieties of 'nux?
Since the boost upgrade it is on windows it is a joke, too. PPl are just too stubborn to use something different than their MSVC.Tobi wrote:That's nonsense really. I get a bit tired of the FUD being spread about compiling Spring lately. (While on windows it may be somewhat true simply because no one CBA to maintain project files (& vclibs?) on Linux it really is nonsense.
-
- Posts: 451
- Joined: 03 Jul 2011, 11:54
Re: Varieties of 'nux?
Then what am i doing wrong, when ubuntu greets me with this at cmake .Tobi wrote:That's nonsense really. I get a bit tired of the FUD being spread about compiling Spring lately. (While on windows it may be somewhat true simply because no one CBA to maintain project files (& vclibs?) on Linux it really is nonsense.)Pxtl wrote:The workaround is to use the raw source-code and compile it yourself. You can imagine how tricky that often is - for some projects it's as simple as unzipping the source and running two console commands. For others, it's incredibly complex. Spring is in the latter category.
I just tried it:
Works.Code: Select all
git clone git://github.com/spring/spring.git cd spring cmake . # this is equivalent with ./configure in some other projects make sudo make install
On Ubuntu/Debian prepend something like `apt-get build-dep spring' to install all build dependencies automagically. Or look in the wiki for a list. Nothing different from 90% of other open source projects. (And the other 10% are harder to compile, not easier.)
TL;DR: Spring isn't significantly harder to compile on Linux than other projects, really.
Code: Select all
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE):
Could NOT find DevIL (missing: DEVIL_IL_HEADER DEVIL_INCLUDE_DIR
DEVIL_IL_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE)
rts/build/cmake/FindDevIL.cmake:115 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:149 (FIND_PACKAGE)
Thanks.
Last edited by varikonniemi on 03 Jul 2011, 12:02, edited 1 time in total.
Re: Varieties of 'nux?
Tobi wrote:On Ubuntu/Debian prepend something like `apt-get build-dep spring' to install all build dependencies automagically. Or look in the wiki for a list.
-
- Posts: 451
- Joined: 03 Jul 2011, 11:54
Re: Varieties of 'nux?
Thanks for your thorough elaboration over how spring really is no harder to build than other projects and why it requires more HD space than my linux disk is in size.
i have no doubt i could find out how to do almost anything with the help of google. This was however a response to a message claiming spring to be easy to compile, which encouraged me to try it, just because.
Well, i got my answer.
Thanks.
i have no doubt i could find out how to do almost anything with the help of google. This was however a response to a message claiming spring to be easy to compile, which encouraged me to try it, just because.
Well, i got my answer.
Thanks.
Re: Varieties of 'nux?
You didn't install DevIL, which is a required dependency.varikonniemi wrote: Then what am i doing wrong, when ubuntu greets me with this at cmake .
apt-get build-dep spring cannot be what was supposed to be used, since it wants to install nearly 1000MB worth of files. This cannot be normal for installing a game. Other projects i have tried building work fine.Code: Select all
CMake Error at /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE): Could NOT find DevIL (missing: DEVIL_IL_HEADER DEVIL_INCLUDE_DIR DEVIL_IL_LIBRARY) Call Stack (most recent call first): /usr/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE) rts/build/cmake/FindDevIL.cmake:115 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:149 (FIND_PACKAGE)
Thanks.
(apt-get build-dep spring is what is supposed to be used, unless you want to manually install all dependencies, which is a lot more work...)
-
- Posts: 451
- Joined: 03 Jul 2011, 11:54
Re: Varieties of 'nux?
My question i guess would be: is there some way short of switching to windows to get building spring to work on this computer? Restriction being only 500 megs free disk.
Last edited by varikonniemi on 04 Jul 2011, 15:48, edited 1 time in total.
-
- Posts: 1398
- Joined: 17 Sep 2008, 04:36
Re: Varieties of 'nux?
Any reason you can't install from ppa?
http://springrts.com/wiki/Ubuntu_install
Your tiny amount free disk space will mean very limited numbers of games and maps though.
http://springrts.com/wiki/Ubuntu_install
Your tiny amount free disk space will mean very limited numbers of games and maps though.
-
- Posts: 451
- Joined: 03 Jul 2011, 11:54
Re: Varieties of 'nux?
I have spring up and running fine. I was just curious to build Spring when Tobi said it would be easy :)luckywaldo7 wrote:Any reason you can't install from ppa?
http://springrts.com/wiki/Ubuntu_install
Your tiny amount free disk space will mean very limited numbers of games and maps though.
- Forboding Angel
- Evolution RTS Developer
- Posts: 14673
- Joined: 17 Nov 2005, 02:43
Re: Varieties of 'nux?
As an example: https://launchpad.net/~evorts/+archive/stable << Evo on launchpad
^^ I'm sure the same could be done for gundam
^^ I'm sure the same could be done for gundam