On 30/10/20 9:17 pm, Paul Wise wrote: > On Fri, Oct 30, 2020 at 7:24 AM David Bannon wrote: > >> .... of necessity, the source package contains some third party code called >> KControls, > I'd like to hear more about what "of necessity" means.
This has been discussed at some length, I really don't know why I have not created an article on the subject on the FreePascal Wiki. Firstly, I do recognize that the way it works is different from what a lot of people are used to. Its not really inherent in the Language itself but it is most certainly inherent in how we work with the Free Pascal and Lazarus tool kit. It is possible to build C style Libraries with FeePascal units but it not efficient with time, space or performance in practice. People who make Units for others to use almost always distribute the source. Lazarus, the IDE, has built in tools that import such source based units, there is an excellent tool, the Online Package Manager in the IDE that lets you install one of several hundred (?) such units with a couple of clicks. When you do so, the Package is compiled but so too is the whole IDE ! When you are using it, you can browse directly from your own source into the source of an 'external' package, even make changes as you go. Free Pascal people believe that code needs to be not just free but accessible too ! That said, it would be possible to make KControls into a Library but it will be a lot of work, work that I am not willing to undertake, it would make for a much bigger install and would probably make for a slower application. I guess it would be a different situation if there were someone else out there also wanting to use KControls but there is not. The Free Pascal Compiler and linker are quite efficient, my application is about 5Meg when stripped. It replaces the original Tomboy Notes, that was also about 5Meg (from memory) but that depends on the huge Mono runtime ! tomboy-ng is, for most operating systems, just that 5Meg. As you suggest, it would be possible to build a stand alone deb for KControls source. (But I am not using all of KControls, only KMemo, maybe a quarter of the whole package). I really cannot imagine where a standalone KControls deb would put the source so that a later installed tomboy-ng source deb would find it at compile time. Something that fragile and hard to maintain is not something I would be interested in doing. >> source/spelling.pas, has some code that is, again, pascal libary >> bindings, this time to hunspell. This code has been pasted in several >> forums etc, over a number of years without attribution. As such, I >> consider it public domain. It makes up only a small part of the file. I >> have therefore stamped that file too as BSD Clear. > As far as I know the public domain doesn't work this way. Code that is > floating around is still under copyright (since that lasts a long time > by default), people are just ignoring that fact and pretending they > are allowed to use it. In some jurisdictions it is possible to > explicitly release code into the public domain but in many that isn't > possible. The CC0 license was created as a way to release things into > the public domain where possible and give a very permissive license > where that is not possible. > > https://creativecommons.org/share-your-work/public-domain/cc0 > > Which part of the file are you talking about here? Just the bindings to the hunspell library. Every Lazarus install includes a tool, h2pas, that will generate such a set of bindings from the relevant .h files with little effort. As such, I would not expect anyone to claim copyright to the result. Earliest reference I can find is https://forum.lazarus.freepascal.org/index.php?topic=20401.0 where FreePascal wiki user Graham posted what was, I suspect, an early version. The forum rules state - "....You also agree not to post any copyrighted material unless you own the copyright or you have written consent from the owner of the copyrighted material...." Graham's snippit contains the binding and some pretty standard, template stuff. Further reference to current usage is here - https://wiki.freepascal.org/spelling David