Jump to content
Ketarin forum


  • Content Count

  • Joined

  • Last visited

  1. Floele, What's a better way to contact you about a question I've got? I think JimH44 sent you one of my email addresses, so if email is good, just send me a note at that address, please. But for now, here's the question... Why are the menus built on MenuItem instead of the newer MenuStrip class? One of the bugs recently reported to me is actually a bug in Mono, as far as I can determine, but one which (mostly) goes away if I use a MenuStrip. But that's a lot of code changes, especially if there's a particular reason to avoid MenuStrip on Windows. Given that MenuStrip has been available since .NET 2.0, it seems like compatibility isn't an issue. Thanks!
  2. All right. I just sent 4 pull requests for things that affect Windows, too, and don't require any kind of conditional compilation. It might make more sense to duplicate the issues in your repository, but that can look a little funny, too. I tried to copy enough context to see why the change is made.
  3. I'll submit a couple of pull requests later this week. As I said, I'd rather avoid the conditional compilation when possible. Some of the changes are removing functionality that doesn't make sense -- like running Windows installers, DOS-style batch files, Powershell scripts, etc, on Linux. Others are using alternate functionality -- for example, the Scintilla library doesn't work on Linux. There are also places where Win32 API code is called for an underlying object, even though there's a .NET method. I'm not sure if you're working around a bug of some sort or what. One example of this can be found in ControlRedrawLock. .NET provides SuspendLayout and ResumeLayout methods which work fine on Linux under Mono, but calling SendMessage obviously would not. There's enough of this, especially the disabling of power shell, running the installers, etc., that I think conditional compilation does start to get messy. I'm not looking forward to maintaining it, anyway. The only one I'm aware of so far is the use of MyDownloader, which is under the Code Project Open License (CPOL). See https://www.gnu.org/licenses/license-list.html#cpol for info on why it's incompatible with the GPL. I've asked the original author if he would consider releasing it also under the GPL or another license which is compatible, but I haven't seen a response yet. Fortunately, you appear to be using only its most basic functionality, which is simple enough to replicate, although still annoying. Some licenses, like MIT and BSD-derived licenses don't require that you re-license the code in order to distribute it, so either of those would be compatible with CPOL code. The GPL requires that everything on which the code depends either be GPL or in a separate library that came with the operating environment. As I said, it's a grey area for original authors, and it's accepted practice to distribute an original work under the GPL with some dependent code that's not under the GPL, but it's always been clear that derivative works can't do that.
  4. For the moment, you can find the fork at https://github.com/franc6/Ketarin. Look in the Mono branch for all of the changes together. For now, the changes all fall into a few categories: Bugs or enhancements in Ketarin affecting Windows, and by extension, Linux. Modifications to allow Ketarin to run on Linux. GPL compliance. For the first category, there are only a few. I can easily submit pull requests for them, without including any of the other changes. For the second category, most of the changes right now are quick-and-dirty. That is, making use of conditional compilation and new build targets in the project file. I don't really like that method, but it's easy to maintain if you're not interested in having any of this category of changes. If you are interested, let me know, and we can discuss how you'd like to see them done -- dependency inversion, composition, or some other pattern when it's not a simple "replace '\\' with Path.DirectorySeparator"Char type of thing. For the last category, that's probably the most difficult. While it's a legal grey area on if you, as the original author, need to follow all the terms of the GPL, and it's generally accepted that you can have exceptions to the GPL, I can't. It's very much black-and-white. I must follow all the terms of the GPL, which means replacing all non-GPL code, too. I do have some other questions, but they'll only become important if you're interested in taking any of my changes.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.