Giter Club home page Giter Club logo

Comments (7)

Andrettin avatar Andrettin commented on August 19, 2024

Yes, this is a very good idea. I'll get working on that.

from wyrmgus.

akien-mga avatar akien-mga commented on August 19, 2024

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.

akien-mga avatar akien-mga commented on August 19, 2024

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.

AMDmi3 avatar AMDmi3 commented on August 19, 2024

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.

akien-mga avatar akien-mga commented on August 19, 2024

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.

AMDmi3 avatar AMDmi3 commented on August 19, 2024

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.

 avatar commented on August 19, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.