AudunVN / Navmap

Browser-based system map viewer for the Freelancer mod Discovery.
http://space.discoverygc.com/navmap
8 stars 8 forks source link

License Request #93

Open dd84ai opened 5 months ago

dd84ai commented 5 months ago

hi @AudunVN . Your project is very interesting and wished to be continued at least in the form of adding auto update feature for some maintanance effort. It would be nice to fork the project and going from there. Could u add license please, to ensure there are no legal objections about it? :slightly_smiling_face: I can suggest going with Affero GPL3 license if you don't mind.

AudunVN commented 5 months ago

Hi - thank you for the kind words and interest in the project, auto-updating would indeed be nice!

The main reason this hasn't got a license right now is that all the data required for rendering the maps (including data files, textures and images copied from Discovery and Freelancer) are unfortunately also stored in this repository, all of which I very much do not have the rights to relicense or distribute. They're used and redistributed here on slightly dubious legal grounds to begin with, as often is the case in game modding. My long-term plan for this has been to move the map data and textures out of the repository - they shouldn't have been there to begin with, but back in 2016 my fastest method for getting this published and working was via GitHub Pages so... yeah.

So while I'd very much like people to freely fork and continue work on this project, I cannot as things are right now quickly apply a free/open software license to the entire repository. Any legal objections wouldn't be from me: They'd be from Microsoft and possibly contributors to the Discovery mod whose works are directly or indirectly included here, which I can't speak for nor guarantee won't one day pursue legal action for the contents of this repository.

One quick fix could possibly be for me to edit my code files to add a permissive license at the top of each file and a note in the readme, to make it very clear what in the repository is made by me and free to modify and redistribute, and what isn't.


PS: Had planned to probably use the MIT license and/or a very permissive Creative Commons license to simplify things for future users and forks (partially since there's more than a few non-code assets in here too), but I do appreciate the copyleft license suggestion - it's a good one, will consider it! :) A combination of something GPL3-like and CC-ShareAlike is what I'd usually consider "ideal" for my own standalone projects, but there are already a few private forks/copies of this I know of out in the wild which that wouldn't work for. And besides - I don't know if I even could license this project under a copyleft license, it's an old mess based on various sources that may not be GPL-compatible as-is.

PPS: This is also why auto-updating as I've looked at it earlier has partially been a matter of creating a clear client-server split in the project to help cleanly separate map client/renderer, data server/provider and third-party map data and assets from each other. Much easier to both license and work with the code when it's not all tangled up in one project and repository along with a bunch of third-party assets.

dd84ai commented 5 months ago

Hi - thank you for the kind words and interest in the project, auto-updating would indeed be nice!

The main reason this hasn't got a license right now is that all the data required for rendering the maps (including data files, textures and images copied from Discovery and Freelancer) are unfortunately also stored in this repository, all of which I very much do not have the rights to relicense or distribute. They're used and redistributed here on slightly dubious legal grounds to begin with, as often is the case in game modding. My long-term plan for this has been to move the map data and textures out of the repository - they shouldn't have been there to begin with, but back in 2016 my fastest method for getting this published and working was via GitHub Pages so... yeah.

Understandable difficulties. One of reasons why i in advance developed web flstat with having Disco files separate in another repo And pulling my program on CI run to the repo for its deploy to Github Pages too :smile:

For unit testing purposes i checkout the repository with Discovery/Vanilla data to another repo https://github.com/darklab8/fl-darkstat/blob/ea49e822e0771e688e6b6303a1c7a5a29e485b87/.github/workflows/deploy.yml#L23 And run my checks on it.

I could cook up for you easy to use Github Action "Action" that checks out repository, and runs autoupdates for you :)

PS: Had planned to probably use the MIT license and/or a very permissive Creative Commons license to simplify things for future users and forks (partially since there's more than a few non-code assets in here too), but I do appreciate the copyleft license suggestion - it's a good one, will consider it! :) A combination of something GPL3-like and CC-ShareAlike is what I'd usually consider "ideal" for my own standalone projects, but there are already a few private forks/copies of this I know of out in the wild which that wouldn't work for. And besides - I don't know if I even could license this project under a copyleft license, it's an old mess based on various sources that may not be GPL-compatible as-is.

I can imagine it should be at least compatible with Lesser GPL, which makes project itself GPL, but can be linked with anything else without "viraling" its license on those projects as long as it is not "statically linked" together. Which in our cases it is not, so copy lefting should not happen.

PPS: This is also why auto-updating as I've looked at it earlier has partially been a matter of creating a clear client-server split in the project to help cleanly separate map client/renderer, data server/provider and third-party map data and assets from each other. Much easier to both license and work with the code when it's not all tangled up in one project and repository along with a bunch of third-party assets.

Feel free to make a call, i can open Pull Request with providing auto updated data on CI run to desired folder :)

P.S. as a side result of having files for different Freelancer mods in separate repos, it was easy to automate deployment for different mods, and well as running auto tests in same repo for multiple mods automatically. So makes room to support easier more than only Freelancer Discovery. That was one of my main goals for repo separations as well.

dd84ai commented 5 months ago

Having hearing your concerns, i will make sure to clean up my repositories for same clean separation just in case too. Technically it is possible even making Freelancer data as private repo and just pulling it on build, for a complete perfection of someone accidentally not finding it :thinking: But it will make my projects less friendly for new devs to step in and develop. That's what i would not like to have. Ergh, probably not an issue as they can in my case just point their Env var to a Freelancer version they downloaded on their own. Okay then it should not be an issue.

Since i don't modify original game files in any way, it should be completely fine

I think i'll refactor then pulling data from private repo for deployments and auto tests in public repos. I will offer you resulting repo downloading github action and access to private repo if u wish

dd84ai commented 5 months ago

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository Found there are tools to wipe files from git history with preserving commits :) bfg looks like what i need to clean my stuff

dd84ai commented 5 months ago

Yay. managed to refactor all Freelancer files to private repo That i pull on Github compose action for deployments and tests :) https://github.com/darklab8/fl-data-discovery/blob/master/.github/workflows/publish.yaml#L26 An example of usage.

It is only missing to make autopatcher as part of a same action for happiness may be.