<div dir="ltr">Dear Tim,<br><br>It seems that 99% of developers were asking themselves the same question and hesitated to examine the code.<br><br>Regardless, I think it's already good to have shared this small proof of concept with the community, demonstrating an integration between Django and QGIS, especially considering that it has been implemented with a rather robust certificate verification mechanism.<br><br>So, rest assured, my question does not hide an intention contrary to GPL policy, but I remain curious to understand the boundary between a process considered external and a process considered internal to QGIS, and therefore subject to the same GPL license. If I ever present a project to a client, I would like to be able to tell them that I applied a defense mechanism (albeit simple, such as compilation) to prevent the leakage of endpoints called by the REST APIs.<br><br>However, I think I have answered myself: after researching the issue online, I found that calling QGSTask in a function is considered an internal process to QGIS and thus subject to GPL. The subsequent question that emerged and that I still cannot answer is: would it be acceptable if only the run() function or a subsequent function were compiled, just enough to close the REST parameters? There probably isn't a definitive answer; could that portion of code be considered an extension of pycurl+certifi? Maybe yes, maybe no. It matters little, I guess.<br><br>Thank you for the time you spent writing this request for clarification.<br><br>Best regards,<br><br><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><table cellpadding="0" cellspacing="0" style="vertical-align:-webkit-baseline-middle;font-size:medium;font-family:Arial"><tbody><tr><td width="100px" style="vertical-align:middle"><span style="margin-right:20px;display:block"><img src="https://ci3.googleusercontent.com/mail-sig/AIorK4z3Cbi70_fq-1dRf4EXrRc2RXkME6D0HDvomq5ibfeDH6W3tl6gBayI2SjYW7IbRNJiawWqgxE"></span></td><td style="vertical-align:middle"><h3 style="margin:0px;font-size:18px;color:rgb(0,0,0)">Giordano Cetti</h3><p style="margin:0px;color:rgb(0,0,0);font-size:14px;line-height:22px">CTO @ByCloudSRL</p></td><td width="20"><div style="width:20px"></div></td><td width="1" style="width:1px;border-bottom:none;border-left:1px solid rgb(84,125,242)"></td><td width="20"><div style="width:20px"></div></td><td style="vertical-align:middle"><table cellpadding="0" cellspacing="0" style="vertical-align:-webkit-baseline-middle;font-family:Arial"><tbody><tr height="25" style="vertical-align:middle"><td style="padding:0px;color:rgb(0,0,0)"><br></td></tr><tr height="25" style="vertical-align:middle"><td style="padding:0px;color:rgb(0,0,0)"><span style="font-size:12px">pec: <a href="mailto:bycloud@pec.it" target="_blank">bycloud@pec.it</a></span></td></tr><tr height="25" style="vertical-align:middle"><td style="padding:0px"><span style="color:rgb(0,0,0);font-size:12px"><a href="mailto:giordano.cetti@bycloud.eu" target="_blank">giordano.cetti@bycloud.eu</a><br><a href="https://bycloud.eu" target="_blank">https://bycloud.eu</a></span></td></tr><tr height="25" style="vertical-align:middle"><td style="padding:0px"><br></td></tr></tbody></table></td></tr></tbody></table><br></div></div></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno sab 15 apr 2023 alle 22:39 Tim Sutton <<a href="mailto:tim@kartoza.com" target="_blank">tim@kartoza.com</a>> ha scritto:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Hi</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">I havent looked at your code, but perhaps you could add to your original message an explanation of why you don't just distribute it as a py / uncompiled python source file?</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Regards</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Tim</div></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 11, 2023 at 6:48 PM Giordano Cetti via QGIS-Developer <<a href="mailto:qgis-developer@lists.osgeo.org" target="_blank">qgis-developer@lists.osgeo.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">Greetings to QGIS developers,<div><br></div><div>I would greatly appreciate it if someone could check if the attached plugin complies with the licenses compared to the imported modules.</div><div><br></div><div>In this specific attached plugin, all the source code is open, but the question is: what if it comes with the following file: <b>'djangorest/include/djangorest_compiled.py'</b> really compiled as a .pyd file? Would it violate the GPL license terms or is it just enough to be considered as an acceptable external process?</div><div><br></div><div>The .pyd will just import QgsTask from qgis.core and use a session_path received as a text created by the open source part of the plugin using QgsProcessingUtils.</div><div><br></div><div>The attached one is a very simple plugin made for this demonstration, you can click on the button, just type <a href="http://google.it" target="_blank">google.it</a>, and it will download the 404 page found ( because it appends some string that google doesn't serve as content ). For user and password fields: just type anything, they are not used in the POC but there's still a check active on fields population. </div><div>The only action the plugin will do is just a single pycurl GET request to the address specified.</div><div><br></div><div>Any advice will be appreciated.</div><div>Thanks</div><div><br></div><div style="text-align:center"><i>ATTACHMENT BLOCKED BY GOOGLE SCAN BECAUSE IT INCLUDES PYCURL AND CERTIFI LIBRARY SO I SHARE USING GOOGLE DRIVE LINK. I TESTED IT ONLY ON QGIS 3.10</i></div><div><br></div><div><b><font size="4" style="color:rgb(0,0,0)"><a href="https://drive.google.com/file/d/1qS7h3LaZ6BlBAW3AItEjM5swpDocHbue/view?usp=sharing" target="_blank">https://drive.google.com/file/d/1qS7h3LaZ6BlBAW3AItEjM5swpDocHbue/view?usp=sharing</a></font></b><br><br></div></div>
</div></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<br>
QGIS-Developer mailing list<br>
<a href="mailto:QGIS-Developer@lists.osgeo.org" target="_blank">QGIS-Developer@lists.osgeo.org</a><br>
List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br>
</blockquote></div><br clear="all"><div><br></div><span>-- </span><br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div style="text-align:center">------------------------------------------------------------------------------------------</div><div style="text-align:center"><div style="font-family:arial,helvetica,sans-serif;font-size:small;display:inline;color:rgb(0,0,0)">​<img src="https://kartoza.com/files/KartozaNewLogoThumbnail.jpg" width="96" height="75" style="font-family: arial, helvetica, sans-serif;"></div><br></div><div style="text-align:center">Tim Sutton</div><div style="text-align:center">Kartoza Co-Founder</div><div style="text-align:center"><span style="text-align:start">Visit </span><a href="http://kartoza.com/" style="text-align:start" target="_blank">http://kartoza.com</a><span style="text-align:start"> to find out about open source:</span><br style="text-align:start"><span style="text-align:start"> * Desktop GIS programming services</span><br style="text-align:start"><span style="text-align:start"> * Geospatial web development</span></div><div style="text-align:center"><span style="text-align:start">* GIS Training</span></div><div style="text-align:center"><span style="text-align:start">* Consulting Services</span></div><div style="text-align:center"><div style="text-align:center"></div><div style="text-align:start"><div style="text-align:center">Tim is a member of the QGIS Project Steering Committee</div><div style="text-align:center">-------------------------------------------------------------------------------------------</div></div></div></div></div></div></div>
</blockquote></div></div>