A random thought struck me. Freedom 1 of the four software freedoms says: "The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1)." and it seems to only care about the end result "so it does your computing as you wish". This leads me to believe that it should be possible to limit the development models through licensing as long as that model can produce that result in theory. Has this loophole already been discussed? #freesoftware #opensource
For example, a license could say: "you can change this to do anything you wish, as long as you are not using SCRUM to get there" or "you can change this to do anything you wish, as long as you are not using a proprietary code repository platform". In both, anyone still have the freedom to get to the end, but the road there is limited.
@ainali i feel like this kind of thing would tend to sit alongside the opinionated licenses. There's ones out there that say things like 'this is free to use unless you're a cop' or various similar statements. a slightly different flavour of opinion, but obviously a license with an agenda of its own. Most such licenses, to my (albeit limited) knowledge, have not yet been tested in a court of law, so their validity and ability to achieve their goals is unknown.
@yayroos My point is that those are usually adding restrictions breaking one of the four freedoms, whereas, I think, my examples don't do that. Not literally at least, perhaps in spirit.
@ainali It's a slippery slope towards a field-of-use restriction though...
@nemobis Possibly, but are my examples too far down the hill already?
@ainali I don't know, what about "you shall only compile this software in LLVM or apache-licensed compilers" then
@nemobis Yes, what about it? Does it restrict any of the four freedoms? You may still use the compiled code however you want, you can still study the source and modify it to whatever you want, and distribute and redistribute both source and compiled code.
I am not saying this is good, I am just saying that there might be an unintentional glitch here.
@ainali I think it's clearly an use restriction and therefore not free, unless written in an extremely narrow way which I can't imagine.
@nemobis You mean a restriction against "The freedom to run the program as you wish, for any purpose"?
I read that as it is about what you can use the compiled code (the program) for.
@ainali Yes. I should be able to use the program for any purpose I like, even if it's testing my preferred compiler. Building the program is part of running the program, as far as I'm concerned, otherwise I don't know how to treat JIT compilation/VM-based languages. But even if it wasn't, I should be allowed to run the program in the specific flavor I need, even if it requires a specific compiler the author dislikes.
Say I require Apple CPUs. Are users still free just because they can buy a Mac?
@nemobis So perhaps some software, that requires building it to run it, gets around that specific example. But how about my original examples?
And no, those users are not free in a semantic sense. I am saying that there might be an unintentional missing freedom for the user due to a glitch. So I am not arguing for this, I am saying that this might be what it is, no matter if we like it or not.
@lxo I know it is not supposed to. It is kind of my point that it does anyway as generous interpretation shouldn't be needed in definitions like these.
@lxo I think you are likely right, and then an ambiguous license wouldn't be deemed to be aligned.
I haven't thought much yet but something like this might be enough "The freedom to study how the program works, and in any manner change it so it does your computing as you wish (freedom 1)."
@ainali I would disagree. I interpret the phrase "does your computing as you wish" to mean the actual processing and not the end result. Otherwise it should say "computes the result you wish" or something like that.
@johan Hmm, I think I meant what you said, and that still would be covered by my two examples in the following toot. Do you agree? Or what do you mean by "processing"?
@ainali Now I think I get what you're saying. I don't know. Let's add another example. which I think is more realistic, maybe. All code must be human contributed, i.e. you're not allowed to use AI in any way to modify the code. That might seem like a reasonable restriction in some cases.
The main problem would be that it's a very hard policy to police. The exact same code would be forbidden or allowed, depending on tools used. What if I break the rules, and then rewrite that code manually?
@johan In my first thought I wasn't that concerned about policing or if it would even be useful to create a license like this, just if I found a possible "loophole" of sorts. And perhaps a bit of a philosophical question of what that freedom *should* cover.
@johan And I agree that it is a very realistic example! "you can change this so it does your computing as you wish, as long as all code is developed by humans" (the Human license).
One could also go to the more extreme (perhaps named the Solitary license
"you may only make changes to this software using the initial open source release of vi from 1978."
@ainali a middle-ground?