Menu

#527 Licensing issues

6.36
closed
Licensing (1)
1
2022-02-23
2022-01-26
No

CoolPrj is currently licensed using GPL, which is incompatible with our current license. Luckily, the author, Yura Bidus, has no objections to changing the license.

There are additional licensing issues in the code, with some contributors requiring acknowledgment in the About dialog of the software using their contributions. This is not compatible with our current project license. We need to contact them to change the terms, or remove their contributions from the project.

Other licensing issues may exist, so we need to do a full review of the code.

Also, we should consider changing our project license from the zlib/libpng license we currently use to the more conventional MIT license, which seems de-facto standard for our purposes (see choosealicense.com). That should be less confusing for users, since MIT is better known as an open source license, and OWLNext has nothing to do with zlib (compression) or libpng (image processing).

See [discussion:8cbc674381#b27c]:

https://sourceforge.net/p/owlnext/discussion/97175/thread/8cbc674381/?limit=100#b27c

Related

Discussion: CoolEdit and C++Builder
Discussion: CoolEdit and C++Builder
Discussion: Preparing OWLNext 7.0.7, 6.44.17 and 6.36.6 updates
News: 2022/01/we-are-changing-our-license
Wiki: Frequently_Asked_Questions
Wiki: OWLNext_Stable_Releases
Wiki: OWLNext_modules_description

Discussion

  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-26

    None of the copyright notices in the core conflicts with our open source license.

    Dieter Windau copyrights:
    • checklst.(h|cpp)

    Manic Software copyrights:
    • property.h

    Ognyan "Jogy" Chernokozhev copyrights:
    • notetab.cpp
    • progressbar.(h|cpp)

    Credited for underlying work for the Winsock for OWL subsystem.

    • wsk*.(h|cpp)

    Vidar Hasfjord copyrights:
    • all.rc
    • commctrl.h
    • dispatch.h
    • eventhan.h
    • gdiplus.h
    • listviewctrl.(h|cpp)
    • private/owllink.h
    • syslink.(h|cpp)
    • tooltip.(h|cpp)
    • transfer.(h|cpp)
    • transferbuffer.(h|cpp)
    • windowev.h
    • parse_version.bat
    • update_version_header.bat
    • vc_detection.inc
    • documentation/makefile

    Yura Bidus copyrights:
    • bardescr.(h|cpp)
    • btntextg.(h|cpp) (code and ideas from Dieter Windau and Joseph Parrello)
    • buttonga.cpp
    • checks.cpp
    • combobex.(h|cpp)
    • commview.(h|cpp)
    • configfl.(h|cpp)
    • coolbar.(h|cpp)
    • datetime.(h|cpp)
    • drawitem.(h|cpp)
    • dumpstack.cpp
    • file.(h|cpp)
    • fscroll.(h|cpp)
    • functor.h
    • hlpmanag.(rh|rc)
    • ipaddress.(h|cpp)
    • memcbox.(h|cpp)
    • monthcal.(h|cpp)
    • msgthred.h
    • objstrm.h
    • pager.(h|cpp)
    • picker.(h|cpp) (ideas from Chris Maunder, Alexander Bischofberger, Dieter Windau, Joseph Parrello)
    • popugad.(h|cpp) (contributions by Dieter Windau and Joseph Parrello)
    • private/gnuc.h
    • private/number.h
    • private/owllink.h
    • private/strmdefs.h
    • property.h (credits to Colin Hastie)
    • psview.(h|cpp)
    • richedv.(h|cpp|rh) (credits to Russel Morris)
    • signatur.h
    • tabbed.(h|cpp)
    • template.h
    • time.cpp
    • thread.h
    • tracewnd.(h|cpp)
    • trayicon.(h|cpp)
    • version.h
     

    Last edit: Vidar Hasfjord 2022-02-08
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-26

    None of the copyright notices in the OCFNext extension library conflicts with our open source license.

    Mohsen Jahanshahi copyrights:
    • safearray.h

    Ognyan "Jogy" Chernokozhev copyrights:
    • ocflink.h

    Vidar Hasfjord copyrights:
    • ocflink.h
    • version.h
     

    Last edit: Vidar Hasfjord 2022-01-26
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-26

    Many files have a copyright notice or file header saying that the work "may be used without permission, if appropriate credit is given". There are also notices that say that the work "may not be sold for profit". These restrictions are not compatible with our open source license.

    AutoMedia Ltd

    This seems to be a superfluous data file with application specific contents, so should be removed.

    • tipfile.tip

    Antony Corbett copyrights:

    These seem fine.

    • comboexp.(h|cpp)

    Borland International copyrights:

    These files may conflict with our license, unless their use is covered by the OWL license.

    • notebook.(h|cpp)
    • version.rc

    Dieter Windau copyrights:

    He consistently includes a copyright notice that requires that it is left intact, and that his work "may not be sold for profit". The latter may conflict with our open license, which allows any use, including in commercial closed software.

    • bmpmenu.(h|cpp) (credits to Iuri Apollonio, Brent Corkum, Riho Ellermaa, Michael Mogensen, Jürgen Welzenbach, Rob Beckers, Jo Parrello, Mark Hatsell and Yura Bidus)
    • butappdlg.(h|cpp) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)
    • colorhls.(h|cpp)
    • colpick.(h|cpp|rc) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)
    • ctxhelpm.(h|cpp)
    • dlgtoolb.(h|cpp)
    • dockingex.(h|cpp|rc) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)
    • gadg*.(h|cpp) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)
    • harborex.(h|cpp) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)
    • hlinkctl.(h|cpp|rc) (credits to PJ Naughter)
    • menubtn.(h|cpp)
    • toolcustdlg.(h|cpp) (credits to Alan Chambers, Christopher Kohlhoff, Jo Parrello, Mark Hatsell, Michael Mogensen and Yura Bidus)

    Kent Reisdorph copyrights:

    These seem fine.

    • dirdialg.(h|cpp)

    Manic Software copyrights:

    Some copyright notices and file headers (especially resource files) mention that the contribution "may be used without permission, if appropriate credit is given". This is not compatible with our open source license, which does not require such credit.

    • all.h
    • busy.(h|cpp) (credits to and usage permission from author Don Griffin)
    • comboexp.(h|cpp) (based on code by Antony Corbett)
    • core.h
    • defs.h
    • dlgapp.h (credits to Ron Reynolds)
    • editlist.(h|cpp) (credits to and usage permission from author Chris Kohlhoff)
    • enumwnd.(h|cpp) (credits to and usage permission from author Don Griffin)
    • gaugegad.(h|cpp) (credits to Rich Goldstein, "may be used without permission, if appropriate credit is given")
    • keyhook.(h|cpp) (credits to and usage permission from author Don Griffin)
    • mousehk.(h|cpp) (credits to and usage permission from author Don Griffin)
    • msghook.(h|cpp) (credits to and usage permission from author Don Griffin)
    • multiwin.(h|cpp)
    • owlext.(h|cpp|rc)
    • pictdeco.(h|cpp)
    • pictdlg.h
    • progress.(h|cpp|rc) (credits to Rich Goldstein, "may be used without permission, if appropriate credit is given")
    • property.h (credits to Colin Hastie)
    • rcptr.h (credits to Scott Meyers)
    • simplapp.(h|cpp)
    • singltn.h
    • staticbm.(h|cpp) (credits to Richard Brown)
    • tabwin.(h|cpp)
    • thredprg.(h|cpp) (credits to Rich Goldstein, "may be used without permission, if appropriate credit is given")
    • timer.(h|cpp) (credits to and usage permission from author Don Griffin)
    • util.h (credits to and usage permission from author Don Griffin)

    Rich Goldstein copyrights:

    In his copyright notice, he includes that his work "may be used without permission, if appropriate credit is given". This is not compatible with our open source license.

    • gaugegad.(h|cpp) ("may be used without permission, if appropriate credit is given")
    • progress.(h|cpp|rc) ("may be used without permission, if appropriate credit is given")
    • thredprg.(h|cpp) ("may be used without permission, if appropriate credit is given")

    Vidar Hasfjord copyrights:

    These are fine.

    • owlxlink.h
    • version.h

    Yura Bidus copyrights:

    Most of these seem fine, although some are based on the work of other contributors, that have more restrictive usage conditions (credit requirement).

    • dirdialg.(h|cpp|rh|rc) (based on code by Kent Reisdorph, "may be used without permission, if appropriate credit is given")
    • owlxlink.h
    • pch.h
    • progress.rh (credits to author Rich Goldstein, "may be used without permission, if appropriate credit is given")
    • tipdialg.(h|cpp|rh|rc)
    • urllink.(h|cpp|rh|rc)
    • owlext.rc
     

    Last edit: Vidar Hasfjord 2022-01-27
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-27

    Contributions to the syntax highlighting in TCoolEdit by Ferdinand Pratl and Andrei Stcherbatchenko have conditions that are not compatible with our open source license. These contributions must be removed and rewritten as needed, unless the authors can be contacted and agree to a change of license terms.

    Contributions by Marko Macek for regular expressions have similar conditions, but this component can presumably be removed and std::regex used instead.

    Andrei Stcherbatchenko copyrights:

    He requires intact copyright notice ("leave this header intact") and acknowledgment in the About box of the software using his work. This is not compatible with our open source license.

    • cplusplus.cpp
    • is.cpp (contributions by Ferdinand Prantl)

    Borland International copyrights:

    This is covered by the OWL license and hence fine.

    • version.rc

    Ferdinand Prantl copyrights:

    He requires intact copyright notice ("leave this header intact") and acknowledgment in the About box of the software using his work. This is not compatible with our open source license.

    • basic.cpp
    • batch.cpp
    • basic.cpp
    • dcl.cpp
    • fortran.cpp
    • html.cpp
    • java.cpp
    • lisp.cpp
    • pascal.cpp
    • perl.cpp
    • python.cpp
    • rex.cpp
    • rsrc.cpp
    • sgml.cpp
    • sh.cpp
    • siod.cpp
    • sql.cpp
    • tcl.cpp
    • tex.cpp

    Marko Macek copyrights:

    He requires intact copyright notice ("leave this header intact") and acknowledgment in the About box of the software using his work. This is not compatible with our open source license.

    I recommend this component is simply removed and that std::regex is used instead.

    • regexp.(h|cpp)

    Vidar Hasfjord copyrights:

    These are fine.

    • coolprjlink.h
    • version.h

    Yura Bidus copyrights:

    Some of these currently use GPL, but he has been contacted and has no objections to using our license instead.

    • cooldoc.(h|cpp)
    • cooledit.(h|cpp|rh) (GPLv2)
    • coolgrid.(h|cpp) (GPLv2)
    • coolprjlink.h
    • coolutil.cpp (GPLv2)
    • defs.h (GPLv2)
    • dragdrop.cpp (GPLv2)
    • hexdocument.(h|cpp)
    • hexedit.(h|cpp) (GPLv2)
    • pch.h
     

    Last edit: Vidar Hasfjord 2022-01-27
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-27

    GPL license terms in CoolPrj have been removed in [r5768], after permission from Yura Bidus was given to change the license to our overall project license.

    See: https://sourceforge.net/p/owlnext/discussion/97175/thread/8cbc674381/?limit=100#64c3/25ee

    Regarding CoolPrj, I have also attempted to email Ferdinand Prantl and Andrei Stcherbatchenko about changing their terms, and I am currently awaiting answer.

    Regarding OWLExt, please review my earlier post and give me your thoughts on how to proceed.

    The OWLNext core and OCFNext both look good, though, without any licensing issues, as far as I see.

     

    Related

    Commit: [r5768]

    • Ognyan Chernokozhev

      My thoughts are that almost all of those copyrights are more than 20 years old. Those people have moved on long time ago and not expressed any interest in enforcing them. The OWLNext libraries, including OWLExt, had been used in a number of commercial applications without objections.
      We could try to contact them, but if that is not possible - due to out-of-date or missing contact info, we can leave the code as it is in the stable branches - 6.44, 7.0. And for the trunk we can slowly look to rewriting some of the classes, keeping the interface, but using Modern C++ in the implementations.

       
      👍
      1
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-27

    @jogybl wrote:

    My thoughts are that almost all of those copyrights are more than 20 years old. Those people have moved on long time ago and not expressed any interest in enforcing them. The OWLNext libraries, including OWLExt, had been used in a number of commercial applications without objections.

    Those are very pertinent observations. I very much doubt these authors are looking eagle-eyed for proper acknowledgment in About dialog boxes --- not anymore, at least! :-)

    we can leave the code as it is in the stable branches - 6.44, 7.0.

    Agree, the release branches must be kept stable. However, it will not hurt to update our license text to mention these (archaic) terms that remain in the source code of OWLExt and CoolPrj, if we cannot get permission to remove them. I think this is the proper (and legally correct) thing to do. And we can update our overall license to MIT at the same time (presuming it is compatible with zlib/libpng).

    I will of course also update CoolPrj on the release branches, removing the GPL terms, now that we have permission from Yura Bidus. That was the most pressing issue, since GPL prohibits use in closed software.

    And for the trunk we can slowly look to rewriting some of the classes, keeping the interface, but using Modern C++ in the implementations.

    Agree, rewriting the affected components would eliminate the issue, and be an exercise in healthy modernisation and improvement of the code as well. For example, on the trunk we only need syntax highlighting for C++ (for use in OWLMaker), so we can remove the CoolPrj files for all the other languages. And the regex implementation can presumably be replaced by std::regex, as mentioned in my review.

     
    • Ognyan Chernokozhev

      For example, on the trunk we only need syntax highlighting for C++ (for use in OWLMaker), so we can remove the CoolPrj files for all the other languages.

      Ideally, the language parsers should not be a part of the library, but instead use some kind of pluggable architecture, so that everyone who wants to use it can provide the customized parsers. So then we can put them just as examples, and whoever wants to use them, to include them in their own application code and also provide acknowledgments.

       
      👍
      1
  • Ognyan Chernokozhev

    And , just to state it clearly, any of my OWLNext contributions, whether in the library code, or in the provided examples, or articles or documentation, are free to use without any restrictions or conditions.

     
    ❤️
    1
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-27

    By the way, regarding OWLExt and Dieter Windau's term "may not be sold for profit", I presume he refers to his source code, not the compiled work (library target binaries and linked user application). If so, the term is pretty much irrelevant in this day and age, as selling open source code that is readily available on the Internet is a fool's business, and hardly profitable.

    Is this a sensible interpretation?

     

    Last edit: Vidar Hasfjord 2022-01-27
    • Ognyan Chernokozhev

      Yes, we can go with the interpretation, unless the author objects. After all, the code is contributed to an open-source library that has not explicitly stated that it cannot be used in commercial projects.

       
      👍
      1
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-27

    Hi, I have now made a new draft of our license text [r5772]. Please have a look, and let me know if you have any objections, corrections or suggestions for improvement.

    Note that the new license text changes our overall license from zlib/libpng to MIT.

    https://choosealicense.com/licenses/zlib
    https://choosealicense.com/licenses/mit

    The licenses are largely compatible, except that MIT does not have terms about state changes (zlib/libpng has conditions about misrepresentation and about clearly marking changed versions as such), so MIT is less prescriptive. It only has a condition that the copyright and license notice "shall be included in all copies or substantial portions of the Software".

    Also, note that the MIT license has more emphasis and substantial legalese in the warranty disclaimer than zlib/libpng.

     

    Related

    Commit: [r5772]


    Last edit: Vidar Hasfjord 2022-01-27
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-28

    Please review my draft news release about this issue.

     

    Related

    News: 2022/01/we-are-changing-our-license

    • Ognyan Chernokozhev

      It looks great!

      I'd change "with him allowing us to remove his license" to "with him permitting to remove his license" to emphasize that he has given a permission.

       
      👍
      1
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-28

    I'd change "with him allowing us to remove his license" to "with him permitting to remove his license" to emphasize that he has given a permission.

    Thanks for the feedback! I have made the change.

    I will give it some more time before I publish tomorrow.

     
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-29
    • status: open --> pending
     
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-01-29

    By the way, if anyone who loves file editing (or is a wizard with regular expressions and search-and-replace) wants to make the effort, I propose updating all of our source code to use a standardised file description comment [feature-requests:#193].

    PS. If you take the effort to update existing files, be careful not to remove copyright notices or any terms included by the copyright holders (unless they have given permission, of course).

     

    Related

    Feature Requests: #193


    Last edit: Vidar Hasfjord 2022-02-08
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-02-18
    • Group: 6.44 --> 6.36
     
  • Vidar Hasfjord

    Vidar Hasfjord - 2022-02-23
    • Status: pending --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB