All the translations are ready to go, and there was only 1 bug that had to be fixed which you can read about on the forum if you really want to. Now I just have to finish updating the help content. I’m hoping to have the final release of 3.20 available tonight or tomorrow.

Well, that and I have to finish drafting this update to the Paint.NET licensing. I had a discussion with Dioni, who manages the translations of Paint.NET, about the licensing of both the regular release and the source code release. I believe we have come to a good decision about how to change the licensing that won’t affect normal users and that will have minimal or insignificant impact on those who are interested in the source code.

There are 4 types of abuses of Paint.NET, or even simple hazards of otherwise legitimate use, that I want to protect against:

  1. Blatant and insulting “Backspaceware”, as detailed in my two previous fuming posts on the matter (first post, second post).
  2. Paint.NET being sold on eBay, or in an otherwise similar fashion. This includes burned on to a CD by itself and sold for shipping costs, or the typical selling of “information” (“Ooh I know where to get this awesome thing, send me $5 and I’ll tell you!”), or even charging for a mirrored download link. Yes, I’ve seen all of these.
  3. Renamed and resold versions of Paint.NET, such as Office ONE Paint. I find this to be inappropriate, but far less offensive than the aforementioned backspaceware, and so I’m calling it out separately. I believe it’s even within the rights of the Paint.NET license, so I have not pursued it. However, I still don’t like it and want to prevent it going forward.
  4. Honest and appropriate derivative works that are still using Paint.NET’s Internet resources accidentally. For example, the Help menu item, “Send feedback” should not have AT in the source code release. Otherwise I’ll get crash logs from forked projects. Also, the auto-updater will not be functional because I don’t want derivative projects to be pinging my server, nor do I want those users to get new versions of Paint.NET offered to them (which will uninstall their non-Paint.NET software). Derivative works must not be confused with Paint.NET, or vice versa.

Here are some of the things I do not want to hinder or prevent:

  1. Normal installation and use of Paint.NET. I don’t want any of Paint.NET’s licensing to “follow” or “infect” any files that are opened, modified, or saved with Paint.NET.
  2. Legitimate educational study of the source code.
  3. Legitimate and honest adoption of portions of Paint.NET source code in to other software. For example, I’m totally fine with someone using the code for Gaussian Blur.
  4. Translation of Paint.NET to another language, by way of releasing a language pack. Note that I am not opposed to someone charging for a language pack – I personally think that’d be weird, but it’s not really a concern of mine.
  5. Free-of-charge distribution of unmodified Paint.NET through channels such as websites or magazine/book CD-ROM’s. This includes the fact that I don’t want to be required to approve every website that wishes to do this. Just do it.

So, here are the changes to Paint.NET and its licensing:

  1. The source code for the installer will not be released. This also includes the project files for creating the MSI.
  2. The text / string and icon / graphic resources, which is *.resources and *.resx as well as all embedded graphics files within PaintDotNet.Resources.dll, will now be licensed under the Creative Commons Attribution-Noncommercial-No Derivate Works 3.0 United States License. An exception is provided for releasing a non-English translation of the text/string resources. I am having to be careful here so that people don’t think I’m trying to force images loaded or saved with Paint.NET to be “infected” with this license.
  3. The non-English translations will not be included in the released source code. This does not affect normal use of Paint.NET – the compiled translations will still be included there.
  4. Any place where URL’s or e-mails are included in the source code will be erased, along with a compiler-error inducing text such as, “You need to provide a URL or e-mail address here.” (Note: This has been in place for several releases, but I’m including it for completeness)
  5. The auto-update functionality will be disabled somehow in the released source code. Most likely this will be done by using the aforementioned “URL erasing”.
  6. The installer that is released will have text during installation that clearly spells out, “Paint.NET is FREE OF CHARGE. If you paid money for it (other than to donate at the Paint.NET website, of course) then we recommend that you get a refund!” (Note: This was in place for v3.20 from the beginning, I’m just including it for completeness)

I believe these will correctly prevent what I don’t want, while still protecting what I want to allow. There are still loophole opportunities in these provisions, but the goal is that any rhetorical loophole will present a huge barrier in the amount of work required to “jump through it”. For example, even though the RESX files are no longer released you can still generate them from the publicly available RESOURCES files. But the RESOURCES file doesn’t allow derivative works, so you’d have to rewrite all the UI text for Paint.NET anyway. And you wouldn’t be able to re-use any of the icons or graphics. Or, maybe you’d decide that you wanted to release a scam version in another language using the translation excuse. Well, then you’ll only be able to target a fraction of the market anyway. Etc. etc.