Comments (7)
Yes, this is a very good idea. I'll get working on that.
from wyrmgus.
Allowing a complete coexistence with stratagus implies more than just renaming the binary actually. Everything would have to be renamed to ensure that there are no conflicts. The downside of this would be that the code base would grow incompatible with stratagus, if @Andrettin did something roughly like sed -i 's/stratagus/wyrmgus/g' *
.
It all boils down to how compatible you wish to remain with stratagus, to be able to include stratagus changes in wyrmgus. As far as distros and users are concerned, I think the simplest solution currently is to just build wyrmgus, and install manually the stratagus binary as /usr/games/wyrmgus
, without bothering about the other targets like png2stratagus (that would also conflict with a system-installed stratagus).
from wyrmgus.
I see now that wyrmgus is in sync with stratagus 2.3.0 which was released recently, so that answers the question about making sure the engine can easily be synced with upstream.
A compromise that could make it easier to build and install wyrmsun/wyrmgus without touching too much the original stratagus files could be to do the following:
- Add the wyrmgus repo as a submodule in the wyrmsun repo, e.g. in a wyrmgus subfolder.
- Write a CMakeLists.txt script that would chain load the one in wyrmgus/CMakeLists.txt, but then use different installation instructions to install only the engine binary and give it a proper name, and install the game data at the same time.
(or a plain Makefile or a Shell script, is that's easier)
from wyrmgus.
Allowing a complete coexistence with stratagus implies more than just renaming the binary actually. Everything would have to be renamed to ensure that there are no conflicts.
Please elaborate. For FreeBSD port, I could seemingly escape with just installing stratagus binary from wyrmgus as ${PREFIX}/bin/wyrmgus. Wyrmsun port installs wrapper which just calls wyrmgus on installed game data.
from wyrmgus.
Allowing a complete coexistence with stratagus implies more than just renaming the binary actually. Everything would have to be renamed to ensure that there are no conflicts.
Please elaborate. For FreeBSD port, I could seemingly escape with just installing stratagus binary from wyrmgus as ${PREFIX}/bin/wyrmgus. Wyrmsun port installs wrapper which just calls wyrmgus on installed game data.
Exactly, but for such scenario you don't really need upstream to rename the binary. You just have to adapt your build script as you described. When I talk about "complete coexistence", I mean running make install
after building wyrmgus to have the engine and the corresponding development tools installed, as you would with a stratagus package. For example on Mageia the stratagus package comprises:
/usr/bin/png2stratagus
/usr/games/stratagus
/usr/sbin/metaserver
/usr/share/doc/stratagus/*
/usr/share/man/man6/stratagus.6.xz
So if one wanted to provide a full wyrmgus package, then the metaserver and png2stratagus binaries should also be renamed, etc.. Not that's it undoable though, it just makes syncing with upstream harder because of the rebranding.
from wyrmgus.
Exactly, but for such scenario you don't really need upstream to rename the binary
Well, yes - I came with mentioned solution after I've opened the bug. Given that that is possible, I think minimizing changes with stratagus should come in the first place and this issue may be closed. Though when using git properly, maintaining changeset of either size is easy, but unfortunately that's not the case with wyrmgus as it's developed completely independent of upstream.
Back to the problem, I really like your solution:
Write a CMakeLists.txt script that would chain load the one in wyrmgus/CMakeLists.txt, but then use different installation instructions to install only the engine binary and give it a proper name, and install the game data at the same time
however the proper one would be of course merging all bits required for wyrmsun into stratagus.
from wyrmgus.
From what I can see on current code, most of incompatibilities comes from "version.h" and autogen. This have other impacts that annoys me so Im working on a patch that may help this issue too.
from wyrmgus.
Related Issues (20)
- Potential Desync Issue for Unit Circle Selection HOT 1
- wyrmgus binary no longer installed, instead it's the libstratagus.a
- Segfault after starting first scenario HOT 1
- 4.1.3 installs static library instead of a binary HOT 2
- Compilation error HOT 25
- Incorrect window size in game with multimonitor configuration HOT 2
- 5.1.1 does not build HOT 11
- Steam game crash after selecting Smithy to build HOT 7
- Cannot save a game HOT 17
- Missing include files HOT 5
- A Bargain is Struck Raft Crash HOT 1
- Compile error, no return in non-void function HOT 1
- -Werror=format-security HOT 3
- Crash when trying to create multiplayer game HOT 1
- Crash when loading a savegame HOT 2
- Problem with translation via module
- Conditional Requirement Strings on Wyrmsun HOT 10
- Compiling error when build on macOS
- Clarification on how Factions can be set to upgrade to/from one another HOT 3
- Compilation error with recommended version of Boost
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wyrmgus.