|
|
Home » U++ Library support » U++ Core » How to distribute some parts of Core in another library?
How to distribute some parts of Core in another library? [message #46881] |
Mon, 05 September 2016 17:49  |
cbpporter
Messages: 1427 Registered: September 2007
|
Ultimate Contributor |
|
|
I think mentioned this before, but Vector, VectorMap and CParser are my favorite classes in U++. This goes only for Core, there are tons of favorites in CtrlLib.
CParser in particular has served me very well for years now, but alas, it is time to move on. Not because there is something wrong with it, but because of one of the projects is:
a. Not C++
b. It could still use CParser, but it feel like overkill but doable to hack C++ inter-op just for one class. The rest of Core is not needed here.
So I'm working on a leaner CParser like class, not in C++, which is re-implemented, so not a simple copy and paste, but in principle it is still the same thing. Sure, it may look a bit different, but on a logical level it is still CParser.
I would also like to OSS this class, under Apache License 2.0.
I have some weird memories of asking this before, but I can't find the thread, so here it goes: how would one go about this?
|
|
|
Re: How to distribute some parts of Core in another library? [message #46885 is a reply to message #46881] |
Tue, 06 September 2016 17:26   |
 |
mirek
Messages: 14257 Registered: November 2005
|
Ultimate Member |
|
|
cbpporter wrote on Mon, 05 September 2016 17:49I think mentioned this before, but Vector, VectorMap and CParser are my favorite classes in U++. This goes only for Core, there are tons of favorites in CtrlLib.
CParser in particular has served me very well for years now, but alas, it is time to move on. Not because there is something wrong with it, but because of one of the projects is:
a. Not C++
b. It could still use CParser, but it feel like overkill but doable to hack C++ inter-op just for one class. The rest of Core is not needed here.
So I'm working on a leaner CParser like class, not in C++, which is re-implemented, so not a simple copy and paste, but in principle it is still the same thing. Sure, it may look a bit different, but on a logical level it is still CParser.
I would also like to OSS this class, under Apache License 2.0.
I have some weird memories of asking this before, but I can't find the thread, so here it goes: how would one go about this?
If it is re-implemented (in what, btw?), I guess you do not even have to ask or mention the original author.
I will certainly NOT sue you
|
|
|
Re: How to distribute some parts of Core in another library? [message #46886 is a reply to message #46885] |
Tue, 06 September 2016 19:30   |
cbpporter
Messages: 1427 Registered: September 2007
|
Ultimate Contributor |
|
|
Well, it is certainly re-implemented, but visually it can range from different to 99% identical.
Some simple functions like Char, IsId and what-not are 100% identical in a language with C like syntax and there is no way around it.
And to be honest, for some functions, I did start of with cop and pasting the relevant code from CParser, making it compile as is and then redesigning it.
With redesign I mean things like making comments nest optionally (can give you the code for CParser too ), making it not null-terminated, making it more Unicode and so on.
But it is the same design.
And this is why it is confusing. I certainly do not wish to appropriate something that is not mine, nor to not pay proper respects.
Nor do I want a 30 page license like: http://www.ultimatepp.org/app$ide$About$en-us.html
|
|
|
|
|
|
Re: How to distribute some parts of Core in another library? [message #46892 is a reply to message #46891] |
Wed, 07 September 2016 13:41   |
cbpporter
Messages: 1427 Registered: September 2007
|
Ultimate Contributor |
|
|
mirek wrote on Wed, 07 September 2016 14:16
We distribute mingw with U++, that is why there is mingw license included.
BTW, for app released, there is now a nice tool "File/Project licenses", which scans packages and creates a complete list of licenses used...
Mirek
Thanks! Had no idea about that option. In TheIDE the only options from File I have ever used is Set main package, Edit file and Statistics .
BTW, I have never understood why if Zlib is a plugin, plugin/z, then why must it be part of Core too? Instead of simply adding a new package which uses plugin/z if and only if you need zlib support?
I have never used Zlib, ZCompressStream and ZDecompressStream, but they look like something very useful to have in their own package.
But that just as an idea, I really don't care one way or the other.
So I can use "File/Project licenses" and copy&paste that into a license.txt for the command line tool binaries? And do the same + Help menu option for GUI?
That leaves only the source code for the rest.
Still juggling 4 different license sets, exluding mingw.
|
|
|
|
|
Re: How to distribute some parts of Core in another library? [message #46895 is a reply to message #46894] |
Thu, 08 September 2016 10:19   |
cbpporter
Messages: 1427 Registered: September 2007
|
Ultimate Contributor |
|
|
Licenses are far too complex for sure.
Anyway, for now I included 4 LICENSE text files in the project + MINGW.
One, is for the library which is OSS and the original object of the discussion. This is Apache License 2.0.
I believe Apache can be combined with U++ licenses?
The library does not use U++, but it does include the CParser inspired class that I want to distribute.
So can you confirm that this scenario is OK?
Then I have 3 executables, which for now are not OSSed, but will be someday. They all use the library and are U++, so I took the Apache License and added all the content form File/Project licenses, obtaining 3 different LICENSE text files, one for each executable, because they use different packages. These are bundled in the distribution.
Then, there is the MINGW package, which includes all the original COPYING and README files.
Next, I need to figure out how to do the same for Clang because I would like to package that too.
|
|
|
|
|
|
|
|
|
|
|
|
Re: How to distribute some parts of Core in another library? [message #48470 is a reply to message #46881] |
Thu, 06 July 2017 03:22   |
mr_ped
Messages: 826 Registered: November 2005 Location: Czech Republic - Praha
|
Experienced Contributor |
|
|
Generally speaking MIT/Apache/BSD type of license allows you basically anything, just a credit in documentation is desirable.
GPL requires you to publish modified sources. But only to your customers, doesn't mean you must provide them as free download on Internet for everyone.. but the very first customer who will download it may freely post it on Internet, if he wish so, so count GPL as "must publish src". Also if you use just small library under GPL, it will "infect" the whole app src with the license, so you must publish the whole source, not just that small library.
LGPL, when used for some library, and you link the library dynamically from your app, does NOT require you to publish src of your app, only the source of the library is enough. When linked statically, IIRC it means you have to publish also app src.
That's how I understand the OSS licenses, this is of course not a lawyer quality advice...
|
|
|
Goto Forum:
Current Time: Fri May 09 18:07:14 CEST 2025
Total time taken to generate the page: 0.00776 seconds
|
|
|