Conversation
mouse makes rocks do math (licensing edition)
Show content

So today's plan is to play some licensing games.

Select projects of mine will be going FHH (a non-opensource, non-free license). Projects that I wish to keep open source (but not free software) will need a new license.

Before relicensing under a custom license, or existing + additional clause (where the root license allows additional clauses), I figured I'll go through the OSI approved licenses, see if there's any that already fit my needs.

This thread will be about that exploration.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

The zlib/libpng license says:

  1. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

This means that any GitHub mirror with modifications (which will be all of them, unless they want a porn image in their README) would need to carry a plainly marked notice that it is altered.

This renders 1:1 mirrors to GitHub practically impossible, but still allows distributing modified versions.

This would be a step forward, and would make mirrors harder, but would not prevent them. Sadly, this is not enough.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Oh, right. I will not be mentioning every OSI-approved license in this thread. Only those that have some kind of conditions or measures that feel relevant to my cause (making my code appear on GitHub technically possible, but practically illegitimate).

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Sleepycat

Redistributions in any form must be accompanied by information on how to obtain complete source code for the DB software and any accompanying software that uses the DB software. The source code must either be included in the distribution or be available for no more than the cost of distribution plus a nominal fee, and must be freely redistributable under reasonable conditions.

Close, but not strong enough. This allows one to distribute modified copies and provide a way to obtain the original through other means. Linking back to me would not satisfy that, because it's not the distributor providing it.

But putting up a tarball on GitHub would satisfy it, but a tarball prevents me from doing the image fuckery, and as such, makes modified mirrors legit.

I need a way to make such mirrors impossible.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

QPL-1.0

  1. You may copy and distribute the Software in unmodified form provided that the entire package, including – but not restricted to – copyright, trademark notices and disclaimers, as released by the initial developer of the Software, is distributed.

So far, this is promising.

  1. You may make modifications to the Software and distribute your modifications, in a form that is separate from the Software, such as patches. The following restrictions apply to modifications: (restrictions are irrelevant for my purpose)

Hm. These two combined may require them to distribute unmodified copies. But, again, this allows distributing a tarball, which is contrary to my goal.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

At this point, I'm pretty sure that no existing license will be satisfactory, and the wording I originally planned, adapted from the LaTeX Project Public LIcense is insufficient too.

Because that allows them to provide an unmodified tarball, without me being able to mess with the images.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Armchair license lawyering is funny business, tbfh.

I should have went to law school.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

OSL-3.0

  1. Grant of Source Code License. The term “Source Code” means the preferred form of the Original Work for making modifications to it and all available documentation describing how to modify the Original Work. Licensor agrees to provide a machine-readable copy of the Source Code of the Original Work along with each copy of the Original Work that Licensor distributes. Licensor reserves the right to satisfy this obligation by placing a machine-readable copy of the Source Code in an information repository reasonably calculated to permit inexpensive and convenient access by You for as long as Licensor continues to distribute the Original Work.

Same problem as identified before: allows the original work to be distributed as a tarball, which in turn, prevents me from messing with the images.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

NetHack

  1. You may modify your copy or copies of NetHack or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above (including distributing this License Agreement), provided that you also do the following:a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and

b) cause the whole of any work that you distribute or publish, that in whole or in part contains or is a derivative of NetHack or any part thereof, to be licensed at no charge to all third parties on terms identical to those contained in this License Agreement (except that you may choose to grant more extensive warranty protection to some or all third parties, at your option)

c) You may charge a distribution fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

Mmm.. Kinda, but no. In my reading, this allows removing the README, and even if not, replacing it with "We removed the badges on $date" satisfied the license.

Not strong enough.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

BSD-3-clause:

  1. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Say, a project under this license gets mirrored to GitHub, and badges get removed. That so far satisfies the first two clauses (not listed here), and in my interpretation, constitutes derived work.

But distribution on GitHub is likely neither endorsement, nor promotion. Otherwise GitHub would be unlikely to be able to host BSD-3-Clause software, and yet, it does.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

PHP-3.01

  1. Products derived from this software may not be called “PHP”, nor may “PHP” appear in their name, without prior written permission from group at php.net. You may indicate that your software works in conjunction with PHP by saying “Foo for PHP” instead of calling it “PHP Foo” or “phpfoo”

This means that modified versions would have to be renamed, which would mean one wouldn't be able to mirror under the "iocaine" name, but pretty much any other name would work.

Hm. That does not prevent mirroring, but... it makes mirroring under the same name a license violation. But it also makes distribution's job harder, because they'd need to rename too.

I'm not sure I want to go down this path.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Artistic-2.0

I'll stop quoting from the licenses (sorry), because it's a pain in the ass, and the numbering gets fucked up anyway, because markdown is stupid.

Anyway, Artistic-2.0 requires modified versions to have a different name, which is a path I'd like to avoid. It does not require the Standard Version to be published unmodified, which makes this license inadequate for my needs.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

I'm getting bored. I'll go the simple route: $existing_license (or changing to MIT) + source code integrity clause.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Aight. Time to come up with that source code integrity clause!

I'll start with LPPL-1.3c as inspiration, because it's the closest thing to what I had in mind.

The LPPL itself is not a good fit, because it's too complicated, and allows distributing the unmodified source as a tarball, which is not what I want.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Y'know. I might have a better idea.

What if I didn't lift a finger?

I already made sure the ai-bro in the current case will have to be extra careful if they ever wish to pull changes from me, because I can - and I will - introduce ways I can screw with them whenever I'm in the mood.

I can add prominent banners asking for the code not to be mirrored to GitHub: those who respect that, will, those who don't, will try to find workarounds anyway, no matter what kind of licensing games I play, as long as the license remains an open source license.

In other words, while I believe I would be able to prevent mirroring to GitHub, making that either very risky, or a license violation, doing so would come at a cost I'm not sure I wish to pay.

If anyone else mirrors my shit to GitHub, I have ways to mess with them, and force them to do more work than I do. That's good enough, it's the same thing iocaine does. It doesn't make the baddies go away, it makes their jobs much more difficult.

2
0
0

@algernon I’ve been moving to PolyForm licenses but the slop angle is missing from them.

1
0
0

@autumnwinds I've considered those too, yep. I even used Komorebi for a bit for a few projects, a derivative from one of the PolyForm licenses.

But there are three problems with them:

  • They're not OSI-approved, which, in case of iocaine, is important.
  • No anti-AI provisions.
  • I'm not a lawyer, and the licenses are too long and complicated for my tiny brain.

Hence my choice of Filthy Human Hands for anything that I don't need to be FLOSS: it's short, simple, has anti-AI provisions, and anti-(big)corporate provisions too.

0
0
0
mouse makes rocks do math (licensing edition)
Show content

As far as license choices go, I now have three defaults:

  • Filthy Human Hands for anything personal, and projects where I can afford to be non-FLOSS.
  • EUPL-1.2 if I want a FLOSS & Copyleft license.
  • MIT if for some reason I don't want copyleft.

FHH cannot be put on GitHub, that'd be a license violation. EUPL-1.2 & MIT can be, but I can mess with badges to make 1:1 trivial mirroring impossible, and thus make their jobs harder.

I think this is good enough for me. Unapproved forks will eventually die, and I can always point and laugh.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

So iocaine's last change, the banner asking to not be mirrored to GitHub, will be removed, as it is not necessary anymore.

The license of both will remain unchanged, for now.

Though: once I'm further along with iocaine 4, NSoE's license will change to FHH + EUPL-1.2. Since it will remain a literate program, the text parts will be FHH, the code will be EUPL-1.2. The program that tangles the code out will either be Emacs, or my FHH-licensed tool. NSoE's CI will use the latter.

The consequence of this is that the source code will not be distributable by GitHub, only the tangled out source, and that's gonna be a pain in the ass to maintain and sync with me, should any ai-bro wish to do so.

But! I will provide tarballs (and a code-only branch, kept in sync via CI) with code-only, and those tarballs will be EUPL-1.2, so distributions and users who aren't interested in contributing, can use it under a FLOSS license. That's gonna be the vast majority.

I will also accept contributions to the text under either FHH or EUPL-1.2 (the combination will be undistributable by GitHub anyway).

2
0
0
mouse makes rocks do math (licensing edition)
Show content

Now, there's one tiny problem with this plan: distributions usually require source  to be in the preferred form of modification. In case of iocaine, that will remain the case.

However, iocaine4 will embed NSoE, but only the code parts. The preferred form of modifying NSoE is modifying the literate source, which is non-free.

In Debian terms, this would render iocaine contrib material. It's not non-free, because you can absolutely replace the part where the source isn't in preferred form for modification. But it's not main-material either.

Hmm hmm. I wonder if I can resolve that. And I wonder what kind of issues that'd cause for other potential packaging efforts.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

I could argue that for anyone other than me, the tangled out source is a much more appropriate form for applying modifications. Not sure that'd fly.

2
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@algernon if you understand that such an argument would be wrong, dont make it

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@hsza I will not be making it. Just dumping my thought process into this thread.

0
0
0
mouse makes rocks do math (licensing edition)
Show content

Perhaps a compromise could work? The entire repo is EUPL-1.2, but the (default) tool used to tangle the code out is not FHH, but under a custom license that forbids using it to tangle out code hosted on GitHub. It would also refuse to run via GitHub Actions.

Distributions can use Emacs as an alternative "build system" (which is also going to be fully supported, that's how I tangle it out locally anyway), and thus compile it entirely with free tools.

But if the repo gets mirrored to GitHub? They'll have to bring their own CI, and their own tooling to tangle shit out. If they locally change my non-free tool, I will know, and will take appropriate measures.

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content
@algernon please don't use FHH for parts of iocaine. I'm unsure if the tangled out form counts as source code. I use the GPL's definition of source code, which is the preferred form for making modifications, and for literate programs that includes the text (even for non-literate programs, it would include comments)
1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@noisytoot See followups :)

0
0
0
mouse makes rocks do math (licensing edition)
Show content

In this scenario, all parts are available under a FLOSS license (MIT / EUPL-1.2). The only part that isn't, is the default build system of NSoE, which is very strictly non-free.

But: it can be trivially replaced with a 5-line emacs lisp file. Said emacs lisp file will be part of the text. You can either copy it by hand, or whatever.

It will not stop a determined ai-bro from mirroring it to GitHub, but it will make it considerably harder for them to do so.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Yep, I think that's settles it.

Another day, another useful thought exercise that resulted in me having to do absolutely nothing for now!

That's the best kind of outcome.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

And NSoE is now public again. I think this concludes my license thread for the day.

1
0
0
mouse makes rocks do math (licensing edition)
Show content

Eh, okay, fine, one more update: one thing I still consider doing is temporarily relicensing iocaine and NSoE to FHH, only until the first release candidate. Then it goes back to MIT/EUPL-1.2 (or whatever FLOSS license I settle on, it's gonna be a while).

The idea behind is that this prevents cherry picking onto GitHub while major features are in development. I highly discourage running iocaine main while it's in a state where I break things, and stable releases remain MIT. Once the RC hits, I switch it back to a FLOSS license. Anyone wishing to pick it to GitHub, will have to squash the commits, and be careful not to leave traces of FHH behind. Trivial work for me, risky job for ai bros.

So this should have little impact of normal uses. But: this is something I'm mulling over. If I end up doing it, it won't be in the next few weeks at least, and I'll give ample notice to anyone who may care.

If. That's a very big if. There's a whole lot of factors that may play into this decision. Including how mean I feel at the time.

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@algernon that would make sense; then the stuff distributions would be interested in is under a distribution-friendly license, and the rest is under a good license, so a win win

1
1
0
re: mouse makes rocks do math (licensing edition)
Show content

@hsza 'tis more than just distributions I have to keep in mind here. (Potential) contributors, early adopters - they'd all benefit from a FLOSS license, and FHH is a barrier.

Will have to find a good balance!

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@algernon how would FHH make for a barrier to the good kind of contributors and adopters?

1
1
0
re: mouse makes rocks do math (licensing edition)
Show content

@hsza Some people do not like non-FLOSS licenses. That is a stance I do not share anymore, but I can accept, and try to accommodate in cases - like iocaine - where I feel it worth to do so.

I was in those shoes ~2 years ago. "Not an open source license? Fuck that!", no matter what kind of promises they made that it will be FLOSS at $date.

The promise that I'll license it back to a FLOSS license requires trust, deep trust. If I try to imagine myself in someone else's shoes, I wouldn't trust me to deliver on this promise. Not enough to rely on it longer term.

Yes, yes, I've been showing some spine and all that. But so have many who then  turned to slop. How am I different than the next tech-bro?

I'd like to think I am, that I have the track record to show for it, but... it's just words on the internet. From a white cishet guy.

Darn, sometimes I wish I was a furry! You can always trust a furry.

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@algernon you are seeming more and more like a therian in denial

1
2
0
re: mouse makes rocks do math (licensing edition)
Show content

@hsza Part of the play, I'm afraid. :)

And another reason not to trust me! If you think I'm a therian in denial, I'm too good at acting. What else I might be insincere or in denial about?

1
0
0
re: mouse makes rocks do math (licensing edition)
Show content

@algernon you are setting off all the flags ever still! if you refer to yourself as a mouse, and repeatedly mention wanting to have a tail or to be a furry or similar, and now claim to be “acting” which mind you is a very common pattern of self-doubt among transgender people - to that, you’re only acting if that’s the explicit intention, if it comes naturally, you are not acting! - there is surely some questioning to be done as to your species identity

embrace it already!! be a furry!! be nonhuman!! its awesome and you know it!! :3

1
1
0
re: mouse makes rocks do math (licensing edition)
Show content

@hsza That's the thing, though, I'm perfectly fine in my body1, and do not wish to be anyone else2.

It's fun to mention furry, because of the avatar3, and years of leaning into this furry-in-denial thing it makes it plausible. But that is all it is. I've had a few decades to figure out who and what I am, and I did. Thoroughly.

But it remains entertaining to leave misinterpretable hints. That's my inner troll/shitposter at work. :)


  1. Mostly. Could do with less fat, less old, creaky bones, perhaps more (or less4) hair, but otherwise my skinsuit's fine. ↩︎

  2. Maybe someone more richer? A lottery winner? Doesn't everyone fantasize about that, though? ↩︎

  3. Which I had long before I knew wtf furries are, long before I came to the conclusion5 that I'm happy with who I am. I've been "algernon" (after a mouse) since ~1994 or so. I was 13. ↩︎

  4. I'd love to shave my head bald, get rid of this silly interim state of having some hair at the side, mad scientist-style, but Wife doesn't let me. flan_piteous​ ↩︎

  5. All the self-exploration came after the name, and it took waaaay into my 30s to arrive to the conclusion that I'm happy with who I am. ↩︎

0
0
0