Jump to content

Forking Paint.Net


Recommended Posts

Rick,

First let me say this is just a general inquiry not a statement of intent. That said since v3.0 no longer supports Win2k and never fully supported it (printing/scanning) and I assume the 2.x series will no longer be developed what are your feelings on having your project forked? More specifically:

The idea would be to take the source for the last 2.x version and use that as the basis for a project. The main goal of the project would be to continue supporting Win2k, expand that support to possibly include printing/scanning, and potentially even try to rework some things to make a mono version easier to develop in the future.

This fork would of course not continue to be called Paint.Net but you and the other Paint.Net developers would be credited as appropriate. Also it would be made clear that Paint.Net did form the basis of the project. I believe this is all allowable by the licensing but I'm looking for both clarification on that as well as a personal statement on your opinion of this. If this were to happen, and it is far from certain that it would, I would only want it to do so with your approval even if it is not strictly required by the license. Again, just testing the waters not a statement of intent.

Link to comment
Share on other sites

You are correct in that 2.xx will not be further developed. There's no reason to: 3.0 is obviously the future of Paint.NET. This isn't like Windows where Microsoft will continue to provide updates and support for XP even though Vista has shipped. For me there is zero benefit or purpose to focus on anything except 3.0 anymore.

I'm going to tell you why forking the project with these intentions is stupid*. Then I'll tell you where I stand on the "permission" aspect.

First, I personally see forking Paint.NET with the main goal being to support Windows 2000 as a stillborn idea. Why in the world would you want to do that? I'm dropping support for 2000 because the userbase is 3% and dropping**, and because I want to start using things like .NET 3.0 which requires XP, and because it's not worth my time (it would take at least 1 full week of my time to ensure Win2K support for PDN 3.0, which I do not have). Your project is immediately a dead-end unless you have some large corporate customer who's footing the bill -- in which case I'm surprised they didn't start by contacting me first. You'd be supporting users who are gradually migrating to newer versions of Windows anyway, at which point they'll just go and grab the latest Paint.NET at their next opportunity, thus shrinking your userbase further. What's next? Are you going to want to start supporting the zero*** people who still use Windows 98? I used to get e-mails all the time asking for Win98/ME support, and over the last two years they have completely stopped**** even though the download rate of Paint.NET has steadily, and even explosively, increased.

Second, making Paint.NET "easier to port to Mono" isn't really a productive goal to have. I've already done a lot of work to make sure that Paint.NET's code is organized in a disciplined fashion to divorce all of the platform-specific code in to 1 DLL. Platform-specific code includes things like P/Invokes to native Win32 API's, and hacks around bugs in the Windows implementation of .NET / WinForms. So there's really no work to do on this front, unless you're actually on or working with the Mono team in which case I'd encourage you to make code changes to Mono itself instead of Paint.NET. Changes to Mono would help all .NET WinForms apps to run on Mono, whereas code changes to Paint.NET would only help Paint.NET on Mono.

Third, if you're hoping to update the 2.xx codebase to 3.0 while maintaining "enhanced Win2K and Mono" support, and then trail the updates that come out periodically, forget about it. Doing a diff on the two codebases will give you a heart attack. You cannot just patch 2.xx's code to make it have the features of 3.0. You're better off working straight from 3.0's code.

I cannot stress enough that forking Paint.NET with these goals is not a good project. There's little benefit to you or the public to doing this, and it would be a lot of work.

Anyway, as for the permission aspect that you asked for: Yes, you may do this. You may not use the Paint.NET name, logo, icon, or any of the website or help content. You must make sure that all references to our website are removed or changed: you don't want your app to ping our server for updates, and I don't want your users to e-mail me with feedback and bugs. This is not an exhaustive list of "you may not" items. It's fine to have a link to our website where you would say something like "Based on Paint.NET", however. My previous statements are meant to ensure that you don't link to our forum or contact pages (get your own dang website!, in other words).

I do have two ideas that I think are much, much better.

1) Start a new project that builds off all the functionality that is in the Paint.NET DLL's. I don't know ... some kind of image viewer or album program like ACDsee.

2) Port it to Linux***** with a full, "native" Linux installer and shell integration. Paint.NET on Windows, for instance, makes use of many platform-specific components which would not survive any jump to Linux. For instance, there is the Photo Printing Wizard, and we also have a shell extension that provides thumbnails in the file explorer.

* I use this word not to disparage you, but to discourage you. Please don't take it personally.

** This figure is based off of download counts for the update manifest files. The filename for the update manifest includes a component that states the Windows version and CPU platform (x86 or x64).

*** Before I get quoted on slashdot: this is hyperbole.

**** This, however, is not hyperbole.

***** Or port it to whatever. Port it to BeOS or OS/2 if you want.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

My only question is why would anyone who is unwilling to upgrade from Windows (notXP) needs to upgrade to Paint.NET (*requiresXP+)?

I don't plan on upgrading to Vista; so if Paint.NET gets to the point where it no longer supports XP I guess that I will either have to live with the features of older versions of Paint.NET or switch to a different program.

Link to comment
Share on other sites

First let me say I didn't mean to imply that I beleived the direction you are going is not correct. I believe you are doing the right thing for the future of Paint.Net in moving to newer technology that the user base will all eventually migrate to. The point of the fork would NOT be to draw users from Paint.Net, I don't see it competing with Paint.Net at all because it's specifically targeting users that you no longer support.

That said I represent a group of people that still have many Win2k systems (primarily in corporate environments). I already KNOW my user base and I'm sure it's a TINY fraction of the number of people who download Paint.Net but again the point isn't to compete with Paint.Net. These corporate Win2k boxes will NEVER be UPGRADED to XP. XP offers virtually ZERO value to a corporate seat over an already installed Win2k box. New seats are purchased with XP but in order to standardize applications all new seats will likewise use this fork. Eventually all these Win2k computers be REPLACED with new ones running Vista at which time it is VERY likely that we would move to Paint.Net version 3+. Corporate policy however states that this will not occur however until Vista sp1 is released or 1 year has passed since the Vista launch whichever is LONGER. This means from the point you released the last Paint.Net 2.x version (already happened?) to sometime in 2008 the people I represent would have no support and no updates to the product they use, thus the fork.

As for making it easier to port to Mono that really is just an afterthought and there is no specific plans in that respect. It may very well be that there is nothing to do in order to achieve that and of course if the problem lied in mono we aren't going to make work arounds in the fork when fixing mono would be the better solution. That said the things you mention are great candidates. Making a linux installer, replacing the shell extension with a nautilus extension, and removing the photo printing wizard in favor of a linux specific print dialog. That last one works out great anyway because removing that XP specific wizard and adding a Win2k compatible print dialog is one of the desired features anyway. The goal here would be to be able to standardize our corporate tools even across platforms (something we don't currently do but has some appeal) though admittedly this is probably not going to happen.

Personally I'll continue to use the latest version of Paint.Net on my HOME PC as it's currently running XP and I'll likely upgrade it to Vista early in 2007. That said I'll be running Win2k on my work PC for quite some time yet (2008?) and so will many of my coworkers. I guess the question we are asking ourselves is how many people does it take to merit a fork. We are in the dozens only and while that is insignificant to you it seems like a good enough number to us. Plus if we put the code repository in a public vcs (sourceforge?) maybe we'll also pick up some random outside contributions (we aren't banking on that though). Anyway nothing is certain yet like I said we're just testing the waters.

Link to comment
Share on other sites

My only question is why would anyone who is unwilling to upgrade from Windows (notXP) needs to upgrade to Paint.NET (*requiresXP+)?

I'm not sure what you're asking here. If you're asking why someone who is unwilling to upgrade from Windows 2000 to XP or Vista need to upgrade to Paint.Net 3+ then they don't. It's not possible. Paint.Net 2.x runs just fine on Windows 2000 though and when Paint.Net moves to 3+ all those users (which is admittedly a TINY percentage of the overall Paint.Net user base) will have an unsupported and no longer developed piece of software.

I don't plan on upgrading to Vista; so if Paint.NET gets to the point where it no longer supports XP I guess that I will either have to live with the features of older versions of Paint.NET or switch to a different program.

Well you're probably not a programmer either. In my situation I have an installed user base who uses a tool that is going to (has?) become unsupported. The user base likes the tool and are themselves programmers and the source for the tool is available. While it doesn't make sense for Rick to derail progress for such a small user base it does seem potentially worthwhile for a fork to occur so that we may continue to support the product ourselves (and perhaps pick up some outside contributions) until such a time as we meet the requirements to upgrade to a supported version.

Link to comment
Share on other sites

My only question is why would anyone who is unwilling to upgrade from Windows (notXP) needs to upgrade to Paint.NET (*requiresXP+)?

I'm not sure what you're asking here. If you're asking why someone who is unwilling to upgrade from Windows 2000 to XP or Vista need to upgrade to Paint.Net 3+ then they don't. It's not possible. Paint.Net 2.x runs just fine on Windows 2000 though and when Paint.Net moves to 3+ all those users (which is admittedly a TINY percentage of the overall Paint.Net user base) will have an unsupported and no longer developed piece of software.

So the question stands, since Windows 2000 will become a piece of software that is not longer developed or supported.
I don't plan on upgrading to Vista; so if Paint.NET gets to the point where it no longer supports XP I guess that I will either have to live with the features of older versions of Paint.NET or switch to a different program.

Well you're probably not a programmer either. In my situation I have an installed user base who uses a tool that is going to (has?) become unsupported. The user base likes the tool and are themselves programmers and the source for the tool is available. While it doesn't make sense for Rick to derail progress for such a small user base it does seem potentially worthwhile for a fork to occur so that we may continue to support the product ourselves (and perhaps pick up some outside contributions) until such a time as we meet the requirements to upgrade to a supported version.

You are right, I'm not (much) of a programmer. Since the sources for the versions of Paint.NET that work with Windows 2000 are available, though, what is the problem? Are you waiting for Rick to extend new features to you or are you and whomever you represent ready to pay to add those features?

My main point is this: Windows 2000 has the features that you want and need. You do not want or need the features in Windows XP and beyond. Since Paint.NET is adding new features that will require Windows XP and beyond, you are hoping to have those features on your older operating systems. So you are hoping for new features in the application that you use without wanting to accept new features in the operating systems that you do not use.

Is that a correct assumption?

Oh, and like Rick said, if you represent some corporate consortium I guess it is not a problem if they are willing to make a donation to the project in order to maintain backwards compatability.

Link to comment
Share on other sites

So the question stands, since Windows 2000 will become a piece of software that is not longer developed or supported.

Quick correction: Windows 2000 is no longer supported by Microsoft.

My main point is this: Windows 2000 has the features that you want and need.

I think you and Nick aren't quite looking at things from the same perspective.

I believe Nick's motivation stems not from the fact that Windows 2000 is satisfactory to him (although it may very well be), but from the fact that it is the version of Windows that is assigned to the computers he and the others he mentions are using. They will not be migrated to a newer version of Windows for quite some time.

This is fairly standard at large corporations, and is completely rational. For you or me the cost of upgrading our personal computer is what, maybe $200? For a large corporation it's maybe $100 per seat*, and then multiplied by however many thousands of computers they're upgrading. 1000 computers at $100 each is $100,000, which is not insignificant. In fact, corporations usually don't "buy Windows." They buy computers which come with Windows. The chance to get another version of Windows comes when the computer is replaced.

Hopefully that clears things up.

* It may be. I don't know the actual volume pricing.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Thanks for the clarification, Rick, but I kind of understood that a little bit. Even though I may not have taken the full picture into consideration.

As an electronics technician, in production I've used software written by engineers that was never intended to be used in production much less be used on computers that have been upgraded past Windows 3.11 :!: so I have some appreciation for the situation.

It is just that as has been pointed out elsewhere there are other tools that may continue to work with Windows 2000 and earlier that may fit with his needs.

Or if he is in a corporate environment, maybe only a small subset of their computers need an upgrade in hardware and/or to a newer version of Windows to actually use the most recent version of Paint.NET.

Not that I have any problem with you doing any contract work or anything. I'm just saying...

Link to comment
Share on other sites

So the question stands, since Windows 2000 will become a piece of software that is not longer developed or supported.

I have no idea what this means. What question stands? It makes no difference at all to us that Windows 2000 is developed or supported. We're developers. The OS is supported by the Systems/Networking people (not us). Likewise it is their decision, NOT OURS, on when we can upgrade the OS. If it was our choise we'd upgrade the second Vista came out but then we don't have to deploy or support it either. They've decided we aren't upgrading to Vista till 2008 or so and thus we have a problem with a tool we using being unsupported until then. Since the source is available and we are developers a fork becomes an option. I've already stated all of this I don't know what it is you don't understand.

You are right, I'm not (much) of a programmer. Since the sources for the versions of Paint.NET that work with Windows 2000 are available, though, what is the problem? Are you waiting for Rick to extend new features to you or are you and whomever you represent ready to pay to add those features?

You have it completely wrong. I'm not asking Rick to DO anything, he should continue to work on v3. If we just take the source, post it up on sourceforge and start hacking away at it many developers would be pretty upset by this even if it is LEGAL to do so. So we're asking Rick how he feals about this because we have a great deal of respect for him and his work.

My main point is this: Windows 2000 has the features that you want and need. You do not want or need the features in Windows XP and beyond.

This is irrelevent to the discussion.

Since Paint.NET is adding new features that will require Windows XP and beyond, you are hoping to have those features on your older operating systems.

I have no idea where you got this from but we have ZERO intention of attempting to backport features of Paint.Net 3.x to the 2.x series. We want to have a public code base to fix any bugs that may crop up after Rick stops supporting the version and to add features that Rick doesn't even have that we would like (namely print and scanning support on Win2k). Again WE are going to do this, we aren't asking Rick to do anything but give us permission to do so.

So you are hoping for new features in the application that you use without wanting to accept new features in the operating systems that you do not use.

Is that a correct assumption?

No, you have clearly misunderstood the entire request.

Oh, and like Rick said, if you represent some corporate consortium I guess it is not a problem if they are willing to make a donation to the project in order to maintain backwards compatability.

I've already stated I think Rick's course at present is correct (i.e. dropping support for Win2k in v3+). We are a VERY small portion of Rick's user base and it makes no sense for Rick to change development to support us. Even if we go forward I've already stated we're likely to switch to v3+ when we finally do go to Vista (but thats quite a ways off and our concern is what happens until then.) Why would we pay Rick to carry Win2k baggage along with it? It's a mute point however because we are a group of developers and have ZERO budget of our own. I don't represent a corporation I represent a group of developers who work in a corporate environment, there's a HUGE difference.

Link to comment
Share on other sites

Sorry, Nick, if I've implied anything. I have just assumed that it is just as easy to upgrade (for those that need to upgrade) Paint.NET as it is to upgrade to the required version of Windows or to hardware that will support the latest version of Windows.

As a user who knows that there may become a point where he cannot use the most recent version of Paint.NET I try to understand where you are coming from. That is, since I don't plan on upgrading to a newer version of Windows (I never planned on upgrading to XP even though I did eventually).

I just wonder what your actual question is. Forking should not be a problem for anything that is truly open source; taking whatever improvements are made to 3.x and backporting them to something that works on versions of Windows pre-XP SP2 should not be a problem in my opinion. That is what open source is all about--making software work on the hardware that you have.

Again, I didn't mean to imply anything negative if you were not demanding support from Rick Brewster for your specific configuration. I had to re-read the thread to see that that was the case.

Link to comment
Share on other sites

Sorry, Nick, if I've implied anything. I have just assumed that it is just as easy to upgrade (for those that need to upgrade) Paint.NET as it is to upgrade to the required version of Windows or to hardware that will support the latest version of Windows.

You're assumption is incorrect. We have MINIMAL say in when we can upgrade the OS on our corporate desktops. That decision has already been made by others and we won't be getting rid of Win2k till 2008 at the earliest. We DO have a lot of say in what applications we use to do our jobs. There are restrictions of course: budgetary, legal, as well as policy. Budgetary is fine with Paint.Net 'cause it's free (beer). Legal is fine with Paint.Net because the license permits its use. Policy is fine with Paint.Net as long as we standardize on it and each dev isn't using a different app or version. We've been happily using Paint.Net for a while now but the version we are able to use will soon be unsupported. Since the source is available and we are developers we are asking for Rick's opinion of a possible fork. We are NOT asking him to DO anything and we are aware that it is LEGAL for us to do the fork. We have a great deal of respect for Rick and we aren't going to do it if he does not want us to, call it professional courtesy.

As a user who knows that there may become a point where he cannot use the most recent version of Paint.NET I try to understand where you are coming from. That is, since I don't plan on upgrading to a newer version of Windows (I never planned on upgrading to XP even though I did eventually).

Your situation is entirely different from ours. We developers are not CHOOSING not to upgrade. If it were up to us we would do so. It's NOT up to us. We do PLAN to upgrade though it's just a long way off (2008 at the earliest). In the meantime we are considering supporting a Win2k version of Paint.Net.

I just wonder what your actual question is. Forking should not be a problem for anything that is truly open source;

That's true from a strictly LEGAL point of view. Many developers become quite upset however when someone comes along and forks their project. Especially when the project is still under active development. So sure we aren't REQUIRED to get Ricks permission but we're asking for it anyway out of respect for Rick and the excellent product he's given us.

taking whatever improvements are made to 3.x and backporting them to something that works on versions of Windows pre-XP SP2 should not be a problem in my opinion.

I'm going to assume you mean it woudn't be a problem LEGALLY. We agree there (see above). It would most certainly be a problem technically however and again we have ZERO intention of backporting improvements from 3.x to Win2k. Our intent is simply to support (i.e. provide fixes for bugs that pop up when Rick's solution would be: upgrade to the latest non-Win2k version) and possibly add printer and scanning support in Win2k.

That is what open source is all about--making software work on the hardware that you have.

I couldn't disagree more. Making software work on the hardware you have is NOT what open sourse is all about. It's about freedom not hardware but this isn't a discussion I want to take up in this thread.

Again, I didn't mean to imply anything negative if you were not demanding support from Rick Brewster for your specific configuration. I had to re-read the thread to see that that was the case.

We aren't DEMANDING anything of Rick. Quite the contratrary we are ASKING him his opinion of what we want to do even though we aren't strictly REQUIRED to do so. We're doing it out of respect for him and the tool he has provided for us and we aren't asking to him to DO anything.

Link to comment
Share on other sites

Anyway, Nick like I previously said but which may have been lost in the 80 pages of text above, you can go ahead and do this. You've got my permission / blessing.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...