Codeberg/Community
54
325
Fork
You've already forked Community
12

Question about hidden source code (licensed under libre license) #1845

Closed
opened 2025年04月07日 10:40:24 +02:00 by dustdfg · 6 comments

Comment

Hello!

I ask here because absolutely not sure where to ask it and how to describe it in the title too...

I have an idea which is a bit controversial. The code is going to be under libre license but it is going to be hidden from end user. Yeah very controversial and a bit against libre software ideas...

I want to know if project structured in a way I describe here is allowed here on Codeberg.

So how it is going to be implemented. Many engines have an idea of "resource packs" which are archives with audio, sprites, scripts and etc and usually allow loading them at runtime but they also can include the source code. But they can be encrypted/unencrypted at runtime...

Example: there is a puzzle game with several levels. Lets just imagine it is math quiz game. Structure of project

main.pck (Main archive file which contains entire game (obviously unencrypted)
| - Logic for initial game starting
| - Source code of initial logic
| - 1 level (unencrypted)
| - source code of level 1
| - level2.pck (encrypted archive which can be unencrypted with a key. Key is a correct answer for level 1)
| - | - 2 level (unecrypted)
| - | - source code of level 2
| - | - level3.pck (encrypted archive which can be unencrypted with a key. Key is a correct answer for level 2)
| - | - | - level4.pck
| - | - | - | - .....

So repository will contain only one big "binary" file. Maybe also some README with explanations how to run it

### Comment Hello! I ask here because absolutely not sure where to ask it and how to describe it in the title too... I have an idea which is a bit controversial. The code is going to be under libre license but it is going to be hidden from end user. Yeah very controversial and a bit against libre software ideas... I want to know if project structured in a way I describe here is allowed here on Codeberg. So how it is going to be implemented. Many engines have an idea of "resource packs" which are archives with audio, sprites, scripts and etc and usually allow loading them at runtime but they also can include the source code. But they can be encrypted/unencrypted at runtime... Example: there is a puzzle game with several levels. Lets just imagine it is math quiz game. Structure of project main.pck (Main archive file which contains entire game (obviously unencrypted) | - Logic for initial game starting | - Source code of initial logic | - 1 level (unencrypted) | - source code of level 1 | - level2.pck (encrypted archive which can be unencrypted with a key. Key is a correct answer for level 1) | - | - 2 level (unecrypted) | - | - source code of level 2 | - | - level3.pck (encrypted archive which can be unencrypted with a key. Key is a correct answer for level 2) | - | - | - level4.pck | - | - | - | - ..... So repository will contain only one big "binary" file. Maybe also some README with explanations how to run it

WHAT THE HECK?! idk.

WHAT THE HECK?! idk.

I have an idea which is a bit controversial. The code is going to be
under libre license but it is going to be hidden from end user. Yeah
very controversial and a bit against libre software ideas...

What do you mean? If you provide it under a libre software license,
you need to provide a way for the end user to acquire the code for
said software. If you do not wish to do that, simply don't license it
as free software.

allowed here on Codeberg.

[...]

So repository will contain only one big "binary" file. Maybe also
some README with explanations how to run it

Yeah, this is not allowed. You are distributing binaries, without
source code. You just saying that it is libre software matters not
here.

> I have an idea which is a bit controversial. The code is going to be > under libre license but it is going to be hidden from end user. Yeah > very controversial and a bit against libre software ideas... What do you mean? If you provide it under a libre software license, you need to provide a way for the end user to acquire the code for said software. If you do not wish to do that, simply don't license it as free software. > allowed here on Codeberg. > > [...] > > So repository will contain only one big "binary" file. Maybe also > some README with explanations how to run it Yeah, this is not allowed. You are distributing binaries, without source code. You just saying that it is libre software matters not here.
Author
Copy link

@tusharhero wrote in #1845 (comment):

I have an idea which is a bit controversial. The code is going to be
under libre license but it is going to be hidden from end user. Yeah
very controversial and a bit against libre software ideas...

What do you mean? If you provide it under a libre software license, you need to provide a way for the end user to acquire the code for said software. If you do not wish to do that, simply don't license it as free software.

Yeah just solve the game without looking at code and you will get access to the code... No it is something like a way to hide an Easter egg....

allowed here on Codeberg.
[...]
So repository will contain only one big "binary" file. Maybe also
some README with explanations how to run it

Yeah, this is not allowed. You are distributing binaries, without source code. You just saying that it is libre software matters not here.

Just formally source code is inside that binary...

@tusharhero wrote in https://codeberg.org/Codeberg/Community/issues/1845#issuecomment-3965012: > > I have an idea which is a bit controversial. The code is going to be > > under libre license but it is going to be hidden from end user. Yeah > > very controversial and a bit against libre software ideas... > > What do you mean? If you provide it under a libre software license, you need to provide a way for the end user to acquire the code for said software. If you do not wish to do that, simply don't license it as free software. Yeah just solve the game without looking at code and you will get access to the code... No it is something like a way to hide an Easter egg.... > > allowed here on Codeberg. > > [...] > > So repository will contain only one big "binary" file. Maybe also > > some README with explanations how to run it > > Yeah, this is not allowed. You are distributing binaries, without source code. You just saying that it is libre software matters not here. Just formally source code is inside that binary...

Just formally source code is inside that binary...

Is that how you work with the game? Is that others are supposed to
modify the game?

> Just formally source code is inside that binary... Is that how you work with the game? Is that others are supposed to modify the game?
Author
Copy link

@tusharhero wrote in #1845 (comment):

Just formally source code is inside that binary...

Is that how you work with the game? Is that others are supposed to modify the game?

  1. There two options. For the sake of the art and for the game described later
  2. The idea is that main packing/unpacking logic is not encrypted and formally fully viewable though inside that binary... Something like press the button inside the game and it will output you "all" the source code of packing/unpacking logic + source code of already solved parts. And using that logic you can repack everything again. For example in godot you can create extensions with your custom in-engine buttons which will perform actions you want so after unpacking you can easily just edit it as normal project.
  3. It is part of two different ideas:
    3.1. I was wondering how to hide an easter egg inside an open-source game so it couldn't be noticed by looking at source code
    3.2. One of the many ways to obscure the game which ruins the 4 wall and is a puzzle which would require you to mess with the files of the game to read the code of the game and etc. Basically the game which fully ruins usual workflow of using program and even source code of the program... But I am too inexperienced to implement this game idea and even normally a way to hide source code inside binary like described in the issue.

P.S I hate closed source and everything I create is open source and will be open source (just look here who but not a fan of floss could draw this)... But I feel that this obscured puzzle needs hiding source... I know, I also don't like it very much but...

@tusharhero wrote in https://codeberg.org/Codeberg/Community/issues/1845#issuecomment-3966545: > > Just formally source code is inside that binary... > > Is that how you work with the game? Is that others are supposed to modify the game? 1. There two options. For the sake of the art and for the game described later 2. The idea is that main packing/unpacking logic is not encrypted and formally fully viewable though inside that binary... Something like press the button inside the game and it will output you "all" the source code of packing/unpacking logic + source code of already solved parts. And using that logic you can repack everything again. For example in godot you can create extensions with your custom in-engine buttons which will perform actions you want so after unpacking you can easily just edit it as normal project. 3. It is part of two different ideas: 3.1. I was wondering how to hide an easter egg inside an open-source game so it couldn't be noticed by looking at source code 3.2. One of the many ways to obscure the game which ruins the 4 wall and is a puzzle which would require you to mess with the files of the game to read the code of the game and etc. Basically the game which fully ruins usual workflow of using program and even source code of the program... But I am too inexperienced to implement this game idea and even normally a way to hide source code inside binary like described in the issue. P.S I hate closed source and everything I create is open source and will be open source ([just look here who but not a fan of floss could draw this](https://www.gnu.org/graphics/babiichuk-devil-eula.html))... But I feel that this obscured puzzle needs hiding source... I know, I also don't like it very much but...

Just formally source code is inside that binary...

Is that how you work with the game? Is that others are supposed to
modify the game?

1. There two options. For the sake of the art and for the game
 described later
2. The idea is that main packing/unpacking logic is not
 encrypted and formally fully viewable though inside that
 binary... Something like press the button inside the game and
 it will output you "all" the source code of packing/unpacking
 logic + source code of already solved parts. And using that
 logic you can repack everything again. For example in godot
 you can create extensions with your custom in-engine buttons
 which will perform actions you want so after unpacking you
 can easily just edit it as normal project.

The repository is supposed to store the actual source, that is the
thing you actually work on to create the game. Not binaries, you
compile the binaries for distribution later on, those binaries need
not contain the source code. But if you mean this is how your actually
work on your own computer, "a project file", then sure.

3. It is part of two different ideas:
 3.1. I was wondering how to hide an easter egg inside an
 open-source game so it couldn't be noticed by looking at
 source code

It is alright, those who want to cheat will cheat. Most users aren't
programmers anyway.

> > > > Just formally source code is inside that binary... > > > > > > Is that how you work with the game? Is that others are supposed to > > modify the game? > > 1. There two options. For the sake of the art and for the game > described later > > 2. The idea is that main packing/unpacking logic is not > encrypted and formally fully viewable though inside that > binary... Something like press the button inside the game and > it will output you "all" the source code of packing/unpacking > logic + source code of already solved parts. And using that > logic you can repack everything again. For example in godot > you can create extensions with your custom in-engine buttons > which will perform actions you want so after unpacking you > can easily just edit it as normal project. > The repository is supposed to store the actual source, that is the thing you actually work on to create the game. Not binaries, you compile the binaries for distribution later on, those binaries need not contain the source code. But if you mean this is how your actually work on your own computer, "a project file", then sure. > > 3. It is part of two different ideas: > 3.1. I was wondering how to hide an easter egg inside an > open-source game so it couldn't be noticed by looking at > source code > It is alright, those who want to cheat will cheat. Most users aren't programmers anyway.
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Labels
Clear labels
accessibility

Reduces accessibility and is thus a "bug" for certain user groups on Codeberg.
bug

Something is not working the way it should. Does not concern outages.
bug
infrastructure

Errors evidently caused by infrastructure malfunctions or outages
Codeberg

This issue involves Codeberg's downstream modifications and settings and/or Codeberg's structures.
contributions welcome

Please join the discussion and consider contributing a PR!
docs

No bug, but an improvement to the docs or UI description will help
duplicate

This issue or pull request already exists
enhancement

New feature
infrastructure

Involves changes to the server setups, use `bug/infrastructure` for infrastructure-related user errors.
legal

An issue directly involving legal compliance
licence / ToS

involving questions about the ToS, especially licencing compliance
please chill
we are volunteers

Please consider editing your posts and remember that there is a human on the other side. We get that you are frustrated, but it's harder for us to help you this way.
public relations

Things related to Codeberg's external communication
question

More information is needed
question
user support

This issue contains a clearly stated problem. However, it is not clear whether we have to fix anything on Codeberg's end, but we're helping them fix it and/or find the cause.
s/Forgejo

Related to Forgejo. Please also check Forgejo's issue tracker.
s/Forgejo/migration

Migration related issues in Forgejo
s/Pages

Issues related to the Codeberg Pages feature
s/Weblate

Issue is related to the Weblate instance at https://translate.codeberg.org
s/Woodpecker

Woodpecker CI related issue
security

involves improvements to the sites security
service

Add a new service to the Codeberg ecosystem (instead of implementing into Gitea)
upstream

An open issue or pull request to an upstream repository to fix this issue (partially or completely) exists (i.e. Gitea, Forgejo, etc.)
wontfix

Codeberg's current set of contributors are not planning to spend time on delegating this issue.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Codeberg/Community#1845
Reference in a new issue
Codeberg/Community
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?