Need help with linux licensing.... lazarus / 32-Linux ---------------------------------------------------------------------- nomad · 2020-07-29 04:44 Hi everyone, I love the lazarus ide. I also like the idea of developing commercial apps with it. I also like linux because my clients do not need to spend extra money for an operating system. I am considering switching from windows to linux. Moving code base from windows to linux would be easy with lazarus. My concern is that the GPL licensing is very very confusing. I am afraid to violate the GPL licensing. 1. I will use the components shipped with the default ide. 2. I use the process component to call a linux program and get the returned results. 3. If I link to any so file then does that violate the GPL licensing. Suggestion Maybe the Ide should have a way to allow you to install only components that will not violate GPL. Do not want to release my source. Thanks in advance. ---------------------------------------------------------------------- zamronypj · 2020-07-29 04:58 Disclaimer: I am not a lawyer. FreePascal/Lazarus is using LGPL. https://wiki.lazarus.freepascal.org/licensing So long as you use FreePascal/Lazarus to compile your application and not redistribute it with your application then you can build commercial closed-source application. ---------------------------------------------------------------------- nomad · 2020-07-29 05:07 thanks for your prompt reply. I still have a concern if I use the tprocess component to call a linux shell program to do a task and harvest the results from the tprocess and use it in my app. Is using a program through tprocess constitute a GPL violation. I am also considering saas because it might fit my model since I could connect to my client's database and pull images and do some processing on my linux box and return it to their server. Something alone this line. The tprocess is still very important part i need clarity on. Thanks for any further help. ---------------------------------------------------------------------- process_1 · 2020-07-29 05:34 Quote from: nomad on July 29, 2020, 06:44:20 amMy concern is that the GPL licensing is very very confusing. I am afraid to violate the GPL licensing. I'm as well not a lawyer, but briefly: - GPL is "greedy" license - you would have to release your full project source even if you use source of one function only licesed as it. - LGPL is a bit relaxed, have no obligation to release your source nor to make it public. - MPL is similar to LGPL but these are incompatible and cannot use the code licensed with only one and mix them. - Some code is double licensed by GPL and MPL, to use it with both. Anyway, all upper licensing models are plain stupidity, instead to write one sentence: "Use it as you like!"  All these licensing nonsense for free software are annoying and have no sense at all. Who made it and who would care about? For instance, I had some 20 years ago some libs I released under MPL, but I have seen people used it with his own libs which are actually  GPL licensed, as an integrated part of if. So what, to report them for license infringement? I don't care, I have released it in public for people to use it without a fee (for free), but I was lazy to read all these lawyers stupidities and pick one license model which was popular at the time. Nowadays I would simply wrote just: "Use it as you like!". Plain waste of time to bother with such stupidities! BTW, you can change the license as you like if you are the author of it. ---------------------------------------------------------------------- nomad · 2020-07-29 05:54 process_1 Your thoughts are very interesting. I do find the whole licensing things really stupid. I do agree with you. My personal belief is that we need an open source operating system which does not force you to release your application code. Developers are free to release their code if they want. Only the operating system has to have all code declared. This would ensure the operating system is patched and maintained properly. So opensource developers and commercial developers can compete equally. If the commercial developer makes a component then the opensource developer can do the same. If linux was like this then microsoft would have been dead a long time ago. These are just my thoughts. ---------------------------------------------------------------------- process_1 · 2020-07-29 06:30 @nomad But lawyers also have to eat, right?  His whole life is in lies, deception and fog. They produce nothing but a mess all over the world, living on others back and their hard work. No matter where you live, you know that you have to obey each sentence in the law blindly, even you are not a lawyer and do not understand the most of them even if you read it, because it it is far from clear imperatives, but need to be interprete in court. Thus, if you are not guilty for anything, you may also be convinced for any accusation. With patetnting, things are even worst than licenses. The whole legal system is one global mess full with nonsense all over the world. With current COVID-19 madness you can clearly see that... Anyway, if you release something in public, you are the author of that and give it for free to the whole world. Problem is that you can, as the author to restrict it use as you like, thus there is many models available, from one sentence to several. And then, lawyers have make all much complicated and make some complicated models with small or big crucial differences in his own language I believe no body who use such models fully understand. ---------------------------------------------------------------------- marcov · 2020-07-29 06:38 (Note btw that the GPL has a very important exception clause that doesn't trigger on linking to GPL libs that were delivered as part of the system.  ) ---------------------------------------------------------------------- 440bx · 2020-07-29 06:44 I don't make it a habit to defend lawyers... I believe a fair percentage of them deserve the poor opinions they get but... laws are difficult to interpret because _where_ the rights of one person/company end and the ones of another start is rarely clear cut. Mathematics often gets criticized for being cryptic (it often is) but, that is a result of the absolute precision and accuracy it requires.  "more or less" or "ballpark" doesn't cut it and, it is much more difficult to create a complete set of precise and accurate human laws than it is to do it in a mathematical field. The licencing is a pain but, it's also present to prevent people/companies from taking advantage of the efforts some put into the development of software without giving anything back. Unfortunately, the law is like a knife.  It can be used (abused) for nefarious purposes. ---------------------------------------------------------------------- nomad · 2020-07-29 06:47 process_1 I agree. the whole legal system is one big mess. if people are to be governed by law then they must understand the said law. how can you follow a law that you do not understand. it seems we have never freed ourselves from the king and queens of this world. if the law was easy to understand then we would not need lawyers. when elites loose power they resort to desperate means to fool the populations in order to create confusion. they thrive in conflict and confusion. COVID is just a tool in their toolbox. a means to and end. There is an old saying "the masses are asses". Simply put the majority of people are like asses. Easy to fool. I might not be a lawyer but I am not stupid. If source code was the law then lawyers will be in our position. Tales turned. Kinda funny in a way. I believe the whole patent system is void because they have violated the very foundation by patenting nature. Software patents make no sense. Lawyers try to twist the english language to justify greed. As you said. People got to eat. I got to eat and money is required. In a way we are all parasites sucking the blood of each other just to survive. ---------------------------------------------------------------------- nomad · 2020-07-29 06:53 Quote from: marcov on July 29, 2020, 08:38:36 am(Note btw that the GPL has a very important exception clause that doesn't trigger on linking to GPL libs that were delivered as part of the system.  ) Can you tell me if I use the tprocess in lazarus to call a shell program in linux and use the results in my program then is that violating GPL if I do not release my source code? ---------------------------------------------------------------------- trev · 2020-07-29 07:09 Quote from: nomad on July 29, 2020, 07:54:26 amMy personal belief is that we need an open source operating system which does not force you to release your application code. Developers are free to release their code if they want. Only the operating system has to have all code declared. You do realise that such operating systems exist, right? FreeBSD which I use for example. See https://www.freebsd.org/internal/software- license.html ---------------------------------------------------------------------- PascalDragon · 2020-07-29 07:12 Quote from: nomad on July 29, 2020, 06:44:20 am1. I will use the components shipped with the default ide. 2. I use the process component to call a linux program and get the returned results. 3. If I link to any so file then does that violate the GPL licensing. You need to take care not to link your program against packages provided by Lazarus that are supposed to be used inside the IDE (e.g. the design time package AnchorDockingDsgn is GPL2 while the runtime package AnchorDocking that it uses is LGPL with static linking exception). You can of course use that package for development inside the IDE, but the program itself should not link against it (mainly make sure that you don't have a dependency in your project inspector one such a package). Please note that this also applies on any non- Linux operating system. Quote from: nomad on July 29, 2020, 08:53:08 amQuote from: marcov on July 29, 2020, 08:38:36 am(Note btw that the GPL has a very important exception clause that doesn't trigger on linking to GPL libs that were delivered as part of the system.  ) Can you tell me if I use the tprocess in lazarus to call a shell program in linux and use the results in my program then is that violating GPL if I do not release my source code? Simply interacting with the operating system, especially if you use TProcess, does not violate the GPL in any way. Even if you'd use the C library and it would be GPL (it's LGPL) it would be fine, because it's considered a system library. Quote from: process_1 on July 29, 2020, 07:34:27 am- GPL is "greedy" license - you would have to release your full project source even if you use source of one function only licesed as it. - LGPL is a bit relaxed, have no obligation to release your source nor to make it public. - MPL is similar to LGPL but these are incompatible and cannot use the code licensed with only one and mix them. - Some code is double licensed by GPL and MPL, to use it with both. MPL 2.0 is compatible with the GPL. Quote from: nomad on July 29, 2020, 07:54:26 amMy personal belief is that we need an open source operating system which does not force you to release your application code. Developers are free to release their code if they want. Linux does not force you to release your application code. It's perfectly fine to create closed source applications for Linux. You just need to make sure that you don't use libraries that are GPL (compared to LGPL or BSD or MPL or ...). ---------------------------------------------------------------------- nomad · 2020-07-29 07:13 Quote from: trev on July 29, 2020, 09:09:16 amQuote from: nomad on July 29, 2020, 07:54:26 amMy personal belief is that we need an open source operating system which does not force you to release your application code. Developers are free to release their code if they want. Only the operating system has to have all code declared. You do realise that such operating systems exist, right? FreeBSD which I use for example. See https://www.freebsd.org/internal/software- license.html I did look into freebsd in the past. It is very powerful operating system. It is possibility to try freebsd for my project. Have you test lazarus ide on freebsd? Any issues with it? Here is an interesting question. If I compile a GPL linux app on freebsd then it is GPL or BSD? ---------------------------------------------------------------------- nomad · 2020-07-29 07:17 Quote from: PascalDragon on July 29, 2020, 09:12:02 amQuote from: nomad on July 29, 2020, 06:44:20 am1. I will use the components shipped with the default ide. 2. I use the process component to call a linux program and get the returned results. 3. If I link to any so file then does that violate the GPL licensing. You need to take care not to link your program against packages provided by Lazarus that are supposed to be used inside the IDE (e.g. the design time package AnchorDockingDsgn is GPL2 while the runtime package AnchorDocking that it uses is LGPL with static linking exception). You can of course use that package for development inside the IDE, but the program itself should not link against it (mainly make sure that you don't have a dependency in your project inspector one such a package). Please note that this also applies on any non- Linux operating system. Quote from: nomad on July 29, 2020, 08:53:08 amQuote from: marcov on July 29, 2020, 08:38:36 am(Note btw that the GPL has a very important exception clause that doesn't trigger on linking to GPL libs that were delivered as part of the system.  ) Can you tell me if I use the tprocess in lazarus to call a shell program in linux and use the results in my program then is that violating GPL if I do not release my source code? Simply interacting with the operating system, especially if you use TProcess, does not violate the GPL in any way. Even if you'd use the C library and it would be GPL (it's LGPL) it would be fine, because it's considered a system library. Quote from: process_1 on July 29, 2020, 07:34:27 am- GPL is "greedy" license - you would have to release your full project source even if you use source of one function only licesed as it. - LGPL is a bit relaxed, have no obligation to release your source nor to make it public. - MPL is similar to LGPL but these are incompatible and cannot use the code licensed with only one and mix them. - Some code is double licensed by GPL and MPL, to use it with both. MPL 2.0 is compatible with the GPL. Quote from: nomad on July 29, 2020, 07:54:26 amMy personal belief is that we need an open source operating system which does not force you to release your application code. Developers are free to release their code if they want. Linux does not force you to release your application code. It's perfectly fine to create closed source applications for Linux. You just need to make sure that you don't use libraries that are GPL (compared to LGPL or BSD or MPL or ...). PascalDragon, Like your username. Very interesting. You answered the very question I wanted to answered. the part with using the tprocess. I figure if I compile and use the default shipped components with lazarus then it should be alright.  Do you have any suggestions about software as a service on linux. I read an article about this. They say it is a loophole in GPL. I could take this route since my server will only provide service and my source is not shipped. It remains on the server which is my property. My server will read data (blob, string etc) from a database (client) and process it on my server and write it back to the client database. What do you think? ---------------------------------------------------------------------- trev · 2020-07-29 07:25 Quote from: nomad on July 29, 2020, 09:13:21 amI did look into freebsd in the past. It is very powerful operating system. It is possibility to try freebsd for my project. Have you test lazarus ide on freebsd? Any issues with it? I compile an application for use with Great Cow BASIC on macOS (and cross-compile for Windows on macOS), Ubuntu and FreeBSD with no issues. See https://wiki.freepascal.org/Installing_Lazarus_on_FreeBSD ---------------------------------------------------------------------- nomad · 2020-07-29 07:29 Quote from: trev on July 29, 2020, 09:25:29 amQuote from: nomad on July 29, 2020, 09:13:21 amI did look into freebsd in the past. It is very powerful operating system. It is possibility to try freebsd for my project. Have you test lazarus ide on freebsd? Any issues with it? I compile an application for use with Great Cow BASIC on macOS (and cross-compile for Windows on macOS), Ubuntu and FreeBSD with no issues. See https://wiki.freepascal.org/Installing_Lazarus_on_FreeBSD I might look into bsd as an option because of the license. Very straight forward. You are right to say such an operating system exists. Wonder why people shy away from freebsd. Maybe they scared of the little devil. ---------------------------------------------------------------------- Handoko · 2020-07-29 07:30 This is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing ---------------------------------------------------------------------- PascalDragon · 2020-07-29 07:35 Quote from: Handoko on July 29, 2020, 09:30:28 amThis is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing You can modify/enhance the LCL, it's just that you then need to publish your modified LCL (not the whole application). ---------------------------------------------------------------------- nomad · 2020-07-29 07:36 Quote from: process_1 on July 29, 2020, 09:28:00 amQuote from: nomad on July 29, 2020, 08:47:35 amI might not be a lawyer but I am not stupid. And this is your claim that all (or at least the most of) lawyers are judges smart! It is far from that how it is in reality. The specific cryptic law is wrote by one or group of lawers and legitimized in paramnet, by woting of the representatives of these who already have power. They are far from smart. The most of amandmans will be denied, even they radically improve all. Thus, theyer is always a place for lawyers and judges to bring whatever they want. An that is in my country calling "Hunting in the fog or mud!" Quote As you said. People got to eat. I got to eat and money is required. In a way we are all parasites sucking the blood of each other just to survive. Whish get to the point: the law and the money itself is important as a tool to keep people slaved. Otherwise they may die! In great world we living! We all know that, but we have no choice. There is no mercy, no remorse and no regret. In order your kid to live, you have to ruin other people life and his own kid. We already know all that very well: "Homo homini lupus!". Otherwise this world will be utopia. But for now, there is no way than minority (with "God complex") have full control over mazority of billions people without restrictions and punihing for any nonsense. We all also know Orwell's "1984" is not a fictiontional, novel but reality, not to mention WW1 and WW2. Orwell's reality is already here. Hello COVID. People get scared easily. They are like sheep to be scattered by wolves. If you could scare people enough then you could make them do anything you want. I do not want to sound all biblical on you but I believe the book of revelation is coming to past. The events I see happening lines up with the book. People tend to laugh at me for saying this. I guess one day in the future we will all know the truth. ---------------------------------------------------------------------- nomad · 2020-07-29 07:36 Quote from: Handoko on July 29, 2020, 09:30:28 amThis is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing Thanks ---------------------------------------------------------------------- process_1 · 2020-07-29 07:39 Additionaly, does anyone know how many GPL, LGPL etc license versions exists until now and what exactly is the difference between? I doubt, which create much bigger mess! ---------------------------------------------------------------------- nomad · 2020-07-29 07:40 Quote from: PascalDragon on July 29, 2020, 09:35:15 amQuote from: Handoko on July 29, 2020, 09:30:28 amThis is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing You can modify/enhance the LCL, it's just that you then need to publish your modified LCL (not the whole application). good point ---------------------------------------------------------------------- nomad · 2020-07-29 07:42 Quote from: process_1 on July 29, 2020, 09:39:19 amAdditionaly, does anyone know how many GPL, LGPL etc license versions exists until now and what exactly is the difference between? I doubt, which create much bigger mess! When I really think about this whole GPL thing. Programmers are walking over mine field and the lawyers are the ones who put the mines in the field. ---------------------------------------------------------------------- PascalDragon · 2020-07-29 07:48 Quote from: nomad on July 29, 2020, 09:13:21 amHere is an interesting question. If I compile a GPL linux app on freebsd then it is GPL or BSD? It does not depend what you compile it on or for. It depends on the license of the used code and linked libraries (with the exception of system libraries, though most libraries are LGPL anyway). E.g. if you use some GPL code on Windows then your application needs to be GPL as well. Quote from: nomad on July 29, 2020, 09:17:54 amDo you have any suggestions about software as a service on linux. I read an article about this. They say it is a loophole in GPL. I could take this route since my server will only provide service and my source is not shipped. It remains on the server which is my property. My server will read data (blob, string etc) from a database (client) and process it on my server and write it back to the client database. What do you think? That's a possibility as well. Though in my opinion your blowing this up to be a problem where there is none. Just make sure that you don't use GPL libraries, only LGPL ones (e.g. the libraries for GTK, Qt, X11, etc. are all LGPL) and you're perfectly fine. The main problem will be to make sure that your application can run on as many distributions as possible as different distributions might provide different versions of the libraries and unlike in Windows the libraries on *nix systems are usually versioned. ---------------------------------------------------------------------- nomad · 2020-07-29 07:55 Quote from: PascalDragon on July 29, 2020, 09:48:57 amQuote from: nomad on July 29, 2020, 09:13:21 amHere is an interesting question. If I compile a GPL linux app on freebsd then it is GPL or BSD? It does not depend what you compile it on or for. It depends on the license of the used code and linked libraries (with the exception of system libraries, though most libraries are LGPL anyway). E.g. if you use some GPL code on Windows then your application needs to be GPL as well. Quote from: nomad on July 29, 2020, 09:17:54 amDo you have any suggestions about software as a service on linux. I read an article about this. They say it is a loophole in GPL. I could take this route since my server will only provide service and my source is not shipped. It remains on the server which is my property. My server will read data (blob, string etc) from a database (client) and process it on my server and write it back to the client database. What do you think? That's a possibility as well. Though in my opinion your blowing this up to be a problem where there is none. Just make sure that you don't use GPL libraries, only LGPL ones (e.g. the libraries for GTK, Qt, X11, etc. are all LGPL) and you're perfectly fine. The main problem will be to make sure that your application can run on as many distributions as possible as different distributions might provide different versions of the libraries and unlike in Windows the libraries on *nix systems are usually versioned. I guess executing this with tprocess should be alright. I already compiled and tested it. Managed to generate a wsq. Works well. Done everything from shell and automated using tprocess. I used ramdisk to speed up the processing. https://github.com/lessandro/nbis ---------------------------------------------------------------------- nomad · 2020-07-29 08:04 Just in case anyone wants to know how to generate a wsq using the nist nbis library on debian linux then use the script below. Going offline now. Thanks everyone your help. #!/bin/bash # Convert jpg to jp2 /usr/bin/mogrify -path . -verbose -quality 95 -format jp2 *.jpg  # Convert jp2 to raw file # openjpen library required /home/OOO/Desktop/opj_decompress -ImgDir . -OutFor RAW # Get coordinates of each jpg image to process for RAW and WSQ file... # Loop Files...     # Generate wsq     /home/OOO/nbis/bin/cwsq .95 wsq /home/OOO/Desktop/samples/a011p_02.raw -r 320,528,8,500     # View wsq file     /home/OOO/nbis/bin/dpyimage -r 320,528,8,0 /home/OOO/Desktop/samples/a011p_02.wsq ---------------------------------------------------------------------- Handoko · 2020-07-29 08:18 Quote from: PascalDragon on July 29, 2020, 09:35:15 amQuote from: Handoko on July 29, 2020, 09:30:28 amThis is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing You can modify/enhance the LCL, it's just that you then need to publish your modified LCL (not the whole application). Yes, we should publish any modification and enhancement made to the LCL. But, can anyone tell me does it mean I have to release the code enhancements I made by inheriting the component runtime? For example. I am writing my graphics engine, which internally uses OpenGLContext unit. I checked the source code it said see the file COPYING.modifiedLGPL.txt, which means it is under LGPL, isn't it? The TOpenGLControl does not offer all the functions I need. So I interited it by TScreenObject = class(TOpenGLControl); and added many new functions. It is sure I enhanced it runtime but I didn't modify nor enhance it 'physically'. Do I have the to release the enhancement code and license it under LGPL? ---------------------------------------------------------------------- marcov · 2020-07-29 08:28 Quote from: nomad on July 29, 2020, 08:53:08 amQuote from: marcov on July 29, 2020, 08:38:36 am(Note btw that the GPL has a very important exception clause that doesn't trigger on linking to GPL libs that were delivered as part of the system.  ) Can you tell me if I use the tprocess in lazarus to call a shell program in linux and use the results in my program then is that violating GPL if I do not release my source code? As you said yourself, GPL is a linking license, and executing binaries over tprocess is not linking ---------------------------------------------------------------------- PascalDragon · 2020-07-29 11:45 Quote from: Handoko on July 29, 2020, 10:18:22 amQuote from: PascalDragon on July 29, 2020, 09:35:15 amQuote from: Handoko on July 29, 2020, 09:30:28 amThis is a list of all LCL Components: https://wiki.freepascal.org/LCL_Components According to Lazarus FAQ, the LCL is licensed under the LGPL with an exception, which basically means we are allowed to use it to build commercial and non-open-source projects as long as we do not modify/enhance the LCL: https://wiki.freepascal.org/Lazarus_Faq#Licensing You can modify/enhance the LCL, it's just that you then need to publish your modified LCL (not the whole application). Yes, we should publish any modification and enhancement made to the LCL. But, can anyone tell me does it mean I have to release the code enhancements I made by inheriting the component runtime? For example. I am writing my graphics engine, which internally uses OpenGLContext unit. I checked the source code it said see the file COPYING.modifiedLGPL.txt, which means it is under LGPL, isn't it? The TOpenGLControl does not offer all the functions I need. So I interited it by TScreenObject = class(TOpenGLControl); and added many new functions. It is sure I enhanced it runtime but I didn't modify nor enhance it 'physically'. Do I have the to release the enhancement code and license it under LGPL? Open Source licenses are about the source code, not language mechanisms. So you only need to release your changes to the original source if you modified the original source even if it only was to add a single space. Otherwise you wouldn't be able to release any closed source binary with the LCL, cause each and every form inherits from TCustomForm that's also part of the LCL and thus licensed as modified LGPL, just like your example with TOpenGLControl. ---------------------------------------------------------------------- MarkMLl · 2020-07-29 11:57 Quote from: marcov on July 29, 2020, 10:28:49 amAs you said yourself, GPL is a linking license, and executing binaries over tprocess is not linking I am not a lawyer, but I agree with one caveat: the FSF seems to define an executable as having a single entry point, and a library as either being in a linkable format or having more than one entry point. From having dug into this sort of thing in the past, using the Windows APIs and tools you can define a binary which is both an executable and a (dynamically linkable) library, while there is stuff in glibc (note: NOT the Linux kernel) that explicitly prevents that. If you were, for example, to write a disassembler using the BFD libraries (GPLed) it would be entirely safe to call it from TProcess. If, on the other hand, you were to incorporate the BFD libraries into a plugin with multiple entry points it probably wouldn't. Or at least, that appears to be the FSF's philosophy. As corollary, the original Win-16 organisation where programs had secondary "print" etc. entry points would appear to make those into libraries by the FSF's definition. Again, with the caveat that I am not a lawyer. MarkMLl ---------------------------------------------------------------------- marcov · 2020-07-29 12:21 Quote from: MarkMLl on July 29, 2020, 01:57:26 pmQuote from: marcov on July 29, 2020, 10:28:49 amAs you said yourself, GPL is a linking license, and executing binaries over tprocess is not linking I am not a lawyer, but I agree with one caveat: the FSF seems to define an executable as having a single entry point, and a library as either being in a linkable format or having more than one entry point. Where in the license is that? Anyway, afaik also ELF can export identifiers. QuoteFrom having dug into this sort of thing in the past, using the Windows APIs and tools you can define a binary which is both an executable and a (dynamically linkable) library, while there is stuff in glibc (note: NOT the Linux kernel) that explicitly prevents that. Glibc on *nix doesn't matter anyway, since there OS exception would apply. QuoteIf you were, for example, to write a disassembler using the BFD libraries (GPLed) it would be entirely safe to call it from TProcess. If, on the other hand, you were to incorporate the BFD libraries into a plugin with multiple entry points it probably wouldn't. Or at least, that appears to be the FSF's philosophy. Seems totally arbitrary to me, and impossible to enforce. But yeah, that's what you get with a technical license ("linking"), an enormous slew of technical details and gray areas. ---------------------------------------------------------------------- bylaardt · 2020-07-29 13:03 rule #1: it's free, you can use it and your software too, just don't change anything and keep it compiled. rule #2: if your software is commercial, you are responsible for bugs/errors in your software, even the bug is in the external libraries, regardless of the license. rule # 3: each country has laws and licenses cannot suppress the law. rule # 4: if you change the third party code, keep the original license and compile it as library if it's possible, publishing the sources if necessary. ---------------------------------------------------------------------- MarkMLl · 2020-07-29 13:10 Quote from: marcov on July 29, 2020, 02:21:09 pmWhere in the license is that? Anyway, afaik also ELF can export identifiers. It's not in there explicitly, but it appears to be the FSF's philosophy. I agree about ELF, but this is a glibc issue. QuoteGlibc on *nix doesn't matter anyway, since there OS exception would apply. Except that the various exec() calls are in glibc. As I said, if you want to go to low-level memory-management calls etc you can work round the limitation. So basically, the FSF-controlled glibc has explicit code in it (don't ask me to go back and try to find it right now) which makes their decision as to whether to sue somebody easier. QuoteSeems totally arbitrary to me, and impossible to enforce. But yeah, that's what you get with a technical license ("linking"), an enormous slew of technical details and gray areas. Yes, but it's one of the better-defined possibilities. As I've said, it's what the FSF appears to use when they're making a decision whether to finger somebody for abusing the GPL. MarkMLl ---------------------------------------------------------------------- PascalDragon · 2020-07-29 14:17 Quote from: MarkMLl on July 29, 2020, 03:10:08 pmQuoteGlibc on *nix doesn't matter anyway, since there OS exception would apply. Except that the various exec() calls are in glibc. As I said, if you want to go to low-level memory-management calls etc you can work round the limitation. The various exec functions in glibc are rather simple wrappers around the kernel's execve syscall. Quote from: MarkMLl on July 29, 2020, 03:10:08 pmSo basically, the FSF-controlled glibc has explicit code in it (don't ask me to go back and try to find it right now) which makes their decision as to whether to sue somebody easier. Well, I do ask, because right now you claim something rather significant (and also kinda confusing) without any source. Though I don't ask you to find it right now. ---------------------------------------------------------------------- MarkMLl · 2020-07-29 14:35 Quote from: PascalDragon on July 29, 2020, 04:17:45 pmWell, I do ask, because right now you claim something rather significant (and also kinda confusing) without any source. Though I don't ask you to find it right now. OK I'll try to take a look at some point. MarkMLl ---------------------------------------------------------------------- nomad · 2020-07-29 15:02 I just saw your comments. I will say one thing in conclusion. Better I look int the freebsd as see if it can do what I need. If free bsd can do that then I will just forget about linux. At least the bad license gives me the power to not release my source. Just my view at the moment. Here is a good reason... https://www.youtube.com/watch?v=1f5Ww3nPLck ---------------------------------------------------------------------- process_1 · 2020-07-29 16:02 This also may be interesting to look, regarding many licenses version I mentioned. It is 6 years old from some conference Linus Torvals commented difference between GPL v2 and v3 and lawyers "sneekiness" games. https://www.youtube.com/watch?v=PaKIZ7gJlRU IIRC, he also had some legal battle on court actually regarding Linux kernel licesning. It is really Don Quixote attempt for any programmer to waste his time to read and fully understand all these lawyers nonsense, instead to focus on that what he know the best - to progamming! Because of all these  lawyers nonsences, the progress in the world is really slow. There is many briliant people restrain themself to contribute their invetions to the world for free, but they restrain themself because they can be legally prosecuted for any act, someone else may claim that is his own patent or license infringement... Plain paradoxes, nothing else. ---------------------------------------------------------------------- PascalDragon · 2020-07-29 21:02 Quote from: nomad on July 29, 2020, 05:02:18 pmI just saw your comments. I will say one thing in conclusion. Better I look int the freebsd as see if it can do what I need. If free bsd can do that then I will just forget about linux. At least the bad license gives me the power to not release my source. Just my view at the moment. Please note that even if the OS is licensed under BSD license you still need to look out for the licenses of other libraries (e.g. GUI libraries like GTK or Qt) as these are not part of the OS and have their own licenses. Of course the same issue also applies to using libraries on Windows. ---------------------------------------------------------------------- nomad · 2020-07-29 23:33 Quote from: PascalDragon on July 29, 2020, 11:02:15 pmQuote from: nomad on July 29, 2020, 05:02:18 pmI just saw your comments. I will say one thing in conclusion. Better I look int the freebsd as see if it can do what I need. If free bsd can do that then I will just forget about linux. At least the bad license gives me the power to not release my source. Just my view at the moment. Please note that even if the OS is licensed under BSD license you still need to look out for the licenses of other libraries (e.g. GUI libraries like GTK or Qt) as these are not part of the OS and have their own licenses. Of course the same issue also applies to using libraries on Windows. Good point. It is beginning to make me wonder if sticking with microsoft is better than to go through all this hassle. The open- source community is damaging their own selves by scaring away small commercial developers. I will have to weigh my options and see what happens. Watch this video... https://www.youtube.com/watch?v=s7u9wTtJ9Mk ---------------------------------------------------------------------- nomad · 2020-07-29 23:52 I came across this. Operating Systems written in free pascal. These are really cool. Maybe lazarus should have its own operating system with its own bindings. This is a project worth working on. I am sure if a base system is developed with supporting tools then security experts, ISV's and small developers like myself will help to develop it. These projects are a good demonstration of what can be done. Really cool. https://wiki.freepascal.org/Operating_Systems_written_in_FPC ---------------------------------------------------------------------- MarkMLl · 2020-07-30 06:57 Quote from: process_1 on July 29, 2020, 06:02:48 pmBecause of all these  lawyers nonsences, the progress in the world is really slow. There is many briliant people restrain themself to contribute their invetions to the world for free, but they restrain themself because they can be legally prosecuted for any act, someone else may claim that is his own patent or license infringement... But we must also consider the possibility that lawyers and politicians are the ones with a realistic understanding of the complexity of the World- even if it scares them into dithering ineffectuality. Saying "Let's assume the World works like this" is a delusion. Saying "Let's assume we can make the World work like this" is a fantasy. MarkMLl ---------------------------------------------------------------------- PascalDragon · 2020-07-30 07:23 Quote from: nomad on July 30, 2020, 01:33:41 amQuote from: PascalDragon on July 29, 2020, 11:02:15 pmQuote from: nomad on July 29, 2020, 05:02:18 pmI just saw your comments. I will say one thing in conclusion. Better I look int the freebsd as see if it can do what I need. If free bsd can do that then I will just forget about linux. At least the bad license gives me the power to not release my source. Just my view at the moment. Please note that even if the OS is licensed under BSD license you still need to look out for the licenses of other libraries (e.g. GUI libraries like GTK or Qt) as these are not part of the OS and have their own licenses. Of course the same issue also applies to using libraries on Windows. Good point. It is beginning to make me wonder if sticking with microsoft is better than to go through all this hassle. The open- source community is damaging their own selves by scaring away small commercial developers. I will have to weigh my options and see what happens. I still think that you're blowing this “problem” way out of proportions... ---------------------------------------------------------------------- process_1 · 2020-07-30 12:28 Quote from: MarkMLl on July 30, 2020, 08:57:47 amBut we must also consider the possibility that lawyers and politicians are the ones with a realistic understanding of the complexity of the World- even if it scares them into dithering ineffectuality. I believe we all see that that doesn't work and that lawyers, politicians and they army of poltrons are just slave/cattle chasers. Whenever minority want to rule over majority forcing them to do what they want, there is no difference between pure slavery and proclamated so called democracy, constitutional rights etc.,  which in reality actually doesn't exists and can be suspended at any time. In the socites where power and money are primary motives to live, but not benefit for all, things are exactly as they are. QuoteSaying "Let's assume the World works like this" is a delusion. Saying "Let's assume we can make the World work like this" is a fantasy. Translated in one sentence: Minority decide what is the best for them, majority is forced to execute his wishes. By your upper definition that is delusion and in the same time fantasy and exactly how thing works today. Lawyers and politicians have no clue how this word should be, they only making it to their personal wishes to rule them, keeping status quo or make it much worst just for their personal benefit... We simply living in dystopian world. But is it that just too obvious to all of us? ---------------------------------------------------------------------- MarkMLl · 2020-08-07 15:18 Quote from: PascalDragon on July 29, 2020, 04:17:45 pmQuote from: MarkMLl on July 29, 2020, 03:10:08 pmSo basically, the FSF-controlled glibc has explicit code in it (don't ask me to go back and try to find it right now) which makes their decision as to whether to sue somebody easier. Well, I do ask, because right now you claim something rather significant (and also kinda confusing) without any source. Though I don't ask you to find it right now. This is apropos the distinction between an executable and a library. My confident recollection is that at some point circa 2013 I was looking in the glibc sources and found explicit code which prevented an executable being opened as a library, i.e. the distinction was being made in code under the FSF's control rather than in the kernel. My further belief from things I was reading at the time is that the FSF was using the distinction between a single-entry executable and a multiple-entry shared object as a test of the extent to which the GPL applied. I can't say for certain what version of glibc sources I was looking at, and so far I've found nothing definite in my notes. However I notice this from elf/dl-load.c in the current sources: Code: [Select]    /* dlopen of an executable is not valid because it is not possible        to perform proper relocations, handle static TLS, or run the        ELF constructors.  For PIE, the check needs the dynamic        section, so there is another check below.  */ My recollection is that the stuff I saw before had a different implementation, but it's reasonable to expect the functionality to be similar. Note that this relates to dynamic loading of a shared object library which is a libc operation, as distinct from execve() etc. which are kernel operations. My recollection is that when I first saw it it certainly appeared that glibc's dlopen() could have been reimplemented without the limitation, since it was basically a comparatively simple (but non-trivial) wrapper around kernel memory management etc. As an aside, it /is/ possible for a dynamically-loaded .so to ask for the address of an entry point into the main executable. I've had this running reliably on 32-bit x86 Linux, but not yet on AMD64. MarkMLl ---------------------------------------------------------------------- ASBzone · 2020-08-07 16:30 Quote from: nomad on July 30, 2020, 01:33:41 amGood point. It is beginning to make me wonder if sticking with microsoft is better than to go through all this hassle. The open-source community is damaging their own selves by scaring away small commercial developers. I will have to weigh my options and see what happens. The GPL and similar licenses are actually designed to help the random everyday person to be able to generate code for fun or profit, and not have it usurped by someone with more resources, who then turns around and sues you for using it. Things would be very unfriendly if the world only knew/used proprietary code.