LBPUnion / ProjectLighthouse

Project Lighthouse is a clean-room, open-source custom server for LittleBigPlanet.
GNU Affero General Public License v3.0
211 stars 53 forks source link

"Potential License Violation" #1032

Closed R3Skako closed 5 months ago

R3Skako commented 5 months ago

I did not modify anything in the code... Yet i get

Potential License Violation

This instance is a public-facing instance that has been modified without the changes published. You may be in violation of the [GNU Affero General Public License v3.0](https://github.com/LBPUnion/project-lighthouse/blob/main/LICENSE).

If you believe this is an error, please create an issue with the output of git status ran from the root of the server source code in the description on our [issue tracker](https://github.com/LBPUnion/project-lighthouse/issues).

If not, please publish the source code somewhere accessible to your users.

Here is the git status

On branch main
Your branch is up to date with 'origin/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        data/

nothing added to commit but untracked files present (use "git add" to track)

Considering that if i would ever like to edit the website, where should i publish the changes?

R3Skako commented 5 months ago

However, if that helps, i installed PHPMyAdmin alongside lighthouse so that may be the cause but i don't really know...

m88youngling commented 5 months ago

Ah yes, you have found one of the most notorious 'features' of Project Lighthouse: uncompromising compliance!

Here's a relevant line from the Project Lighthouse 2 goals post:

Customization: at the moment, Project Lighthouse is monolithic and ruthless when it comes to customization. Trying to change something as simple as an icon on the webpage might force an angry popup to appear. That’s unacceptable.

I don't really know for sure how to help with this issue, but I can reflect a bit about why Project Lighthouse is like this. At first glance it seems like it's to maintain license compliance. However, I can say that one of the primary reasons that we were motivated to support that 'feature' was because Lighthouse was early in development in 2021 and 2022 and it was being used in a public environment for the Catbox instance. We strongly advised against this because we weren't sure of the security threats that a public instance could cause back then at that stage of Lighthouse's development. So, the team felt that making it difficult to modify the software without throwing up annoying errors was good for the purposes of warning users that they might be getting themselves into a bit of a pickle by not using the trusted, unmodified version of the software.

So, tl;dr it was a combination of fear and pettiness. In all fairness, no one knew what custom servers were capable of back then. However, that fear does more harm than good these days. This feature is now just annoying and makes your life harder, especially since you didn't even intend to trip it! I have a feeling it is quite sensitive, so I would retrace your steps to see if there's anything you might have touched that might have set it off.

R3Skako commented 5 months ago

i do believe i modified the docker compose a bit to include phpmyadmin

m88youngling commented 5 months ago

LOL yeah it's so dumb that it's doing that to you...what you could do instead is create a fork of Project Lighthouse and publish the entire source code there. There are probably best practices to do this (you know, that involve not exposing your lighthouse.yml configurations and phpmyadmin credentials) so definitely do some research or more asking around about that. But if you had the source code out there, it would prevent the message from appearing. Plus, you might help someone else in case they need to run Lighthouse with phpmyadmin.

R3Skako commented 5 months ago

how can i publish the sc (source code) without leaking any private information? yk the mysql details etc

m88youngling commented 5 months ago

that is a great question....

turns to audience

.....do you know how to fork project lighthouse?

(I don't know how to use git 💀 (yet))

R3Skako commented 5 months ago

the point is, i know how to fork etc etc... just the problem is... with that method ill probably leak everything lmfao

jackcaver commented 5 months ago

You don't have to make forks or push commits to GitHub, you can just make a commit and the thing will disappear from what i remember

R3Skako commented 5 months ago

where should i make a commit? to a private repo maybe?

jackcaver commented 5 months ago

You can make it locally, no need to make it somewhere outside of your device

R3Skako commented 5 months ago

could you maybe tell me how to do it? i only know how to push to github tbh

jackcaver commented 5 months ago

Type git add . and then git commit and that should be everything you need to do

Slendy commented 5 months ago

This should probably be in the root .gitignore of our repository, but to make Git not recognize your stored data folder locally you need to modify the .git/info/exclude folder to include data. You can either do this by editing the text file manually or by running this in the root of the repository:

echo "data" >> .git/info/exclude

After that, running git status should no longer show the data directory as modified and your Lighthouse instance shouldn't have the license violation error.

R3Skako commented 5 months ago

dosen't work :/

Slendy commented 5 months ago

Does git status still show the data folder? If not then you may just need to rebuild the docker image with docker compose up -d —build

jvyden commented 5 months ago

Figured I'd chime in on this because I wrote that aspect originally.

However, I can say that one of the primary reasons that we were motivated to support that 'feature' was because Lighthouse was early in development in 2021 and 2022 and it was being used in a public environment for the Catbox instance

This was done because of Fridinator (we were all unsure of his behavior), but yes. I believe he had some modifications to the website that weren't anywhere on GitHub, which does infact violate the AGPLv3 license, in that your source code must be available to all users (including users interacting via network use, e.g. a website). So I added that as a "hey, we're serious about this," because I firmly believe that custom servers should be fully copyleft.

I wanted to make this verifiable for users too, which is why version pages exist in both Refresh and Lighthouse (though Refresh does not include Git information)

Customization: at the moment, Project Lighthouse is monolithic and ruthless when it comes to customization. Trying to change something as simple as an icon on the webpage might force an angry popup to appear. That’s unacceptable.

I don't see why you need a total rewrite to remove 19 lines of HTML... A lot of the problems mentioned on that page are mentality/culture issues but those don't really apply to Lighthouse as a codebase, because the codebase can always be changed.

However, that fear does more harm than good these days. This feature is now just annoying and makes your life harder, especially since you didn't even intend to trip it!

If the anti-feature has outlived its purpose, then why not remove it? I'm just trying to understand the hesitation :sweat_smile:

m88youngling commented 5 months ago

Fridinator totally slipped my mind. Yes, you're right

sudokoko commented 5 months ago

If the anti-feature has outlived its purpose, then why not remove it? I'm just trying to understand the hesitation 😅

Exactly right.

Going to end this debacle. Expect a PR momentarily

--

Edit: #1035 exists. Going to merge that forcibly once review comments are handled as it seems we are all in agreement in removing the banner.

R3Skako commented 5 months ago

ig ill just wait until this message will get removed ¯_(ツ)_/¯

TorutheRedFox commented 5 months ago

ig ill just wait until this message will get removed ¯(ツ)

unescaped backslash detected :eyes: