Git Product home page Git Product logo

Comments (18)

Linjieqiang avatar Linjieqiang commented on August 22, 2024 3

When are we going to start writing new GUI programs and I'm interested in that and I want to get involved in code development. @pavel-kirienko

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

Is this a real problem?

Unfortunately, it seems to be so. So far I see the following solutions:

  • Relicense the tool under GPLv3.
  • Ask Dronecode to purchase a commercial PyQt5 license for €450. @LorenzMeier is it even a viable option?
  • Migrate away from PyQt5 to https://wiki.qt.io/Qt_for_Python (any volunteers out there?)

from gui_tool.

xoxota99 avatar xoxota99 commented on August 22, 2024

Would it be a possibility to migrate to some other UI framework (wxPython or something)?

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

I don't think so. We must stay with Qt lest we end up redoing the entire application from scratch. Too many things are dependent on Qt, the plotting engine is one of the most critical ones.

from gui_tool.

xoxota99 avatar xoxota99 commented on August 22, 2024

Sorry, I didn't see your third bullet point above for some reason. Ignore me :-$

from gui_tool.

thirtytwobits avatar thirtytwobits commented on August 22, 2024

It looks like PySide also uses GPL v3.

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

PySide 2 is LGPL according to their website.

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

Let me reply to OpenCyphal/pycyphal#38 (comment) here:

Any chance we can switch to wxwidgets or some other more liberally licensed GUI toolkit?

Will there be much objection to a web-based GUI? Does anybody have experience with Kivy?

from gui_tool.

scottdarch avatar scottdarch commented on August 22, 2024

Kivy looks slick but what graphing widgets does it provide?

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

So there are ugly widgets like Graph, Matplot lib integrations (which are definitely not good enough), and then there's Vispy which is OpenGL based and completely independent of Kivy.

from gui_tool.

kjetilkjeka avatar kjetilkjeka commented on August 22, 2024

Disclaimers: IANAL

I think an acceptable solution would be to get permission from all 6 pyuavcan contributors to dual license their contributions under both MIT and Apache2. (This is required as an MIT dep cannot go into a GPLv3 project). This is actually the preferred licensing option in the Rust community, meaning there should be no unexpected problems doing so.

Then get permission from all 6 uavcan_gui_tool contributor to license their contribution under GPLv3. Using the pyuavcan apache 2 license this can be included as a dependency without any problems.

What I have seen been done in similar situation is that an issue is created under the relevant repos. In this issue, all relevant persons are listed and they are encouraged to comment with a pre-written statement consenting to license their contributions under this and that license.

As long as uavcan_gui_tool is mostly about gui code, and all reusable (non-gui) components live inside pyuavcan (or another seperate repo) this should not be a problem. If we want to create a new uavcan_gui_tool without the GPLv3 lisence we will have to write most of the gui code from scratch anyway.

Since the uavcan_gui_tool isn't used as a dependency but instead as a free standing tool i don't think it will be any problems at all having it under the GPLv3 lisence.

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

This is required as an MIT dep cannot go into a GPLv3 project

Are you sure about that? The hivemind seems to disagree: https://opensource.stackexchange.com/questions/5477/release-code-with-mit-dependencies-under-gpl

Also if the following statement from the linked above page is true, we can add new licensing options without asking anybody:

the MIT license explicitly allows you to sublicense the code (i.e. republish with a completely different license), and only requires you to keep the copyright and license notice intact.

We can easily relicense the tool under GPL v3, but that'll make it impossible for some developers to contribute. Although, as is stands, they can't do it currently either, so we're not losing anything.

from gui_tool.

kjetilkjeka avatar kjetilkjeka commented on August 22, 2024

Are you sure about that?
I'm absolutely not in any way sure about any of the licensing related stuff.

I do not understand how MIT can work with GPL as the MIT license give "the right without limitations to modify the software". Although if the hivemind thinks I'm wrong, I probably am.

Also if the following statement from the linked above page is true, we can add new licensing options without asking anybody:

I'm pretty sure this is impossible. Dual licensing means that you can obtain a copy either following the MIT license or Apache2 license. Sub-license means that you can append the new license requirements on top of the original one. Even if it was possible to do so, it would be much nicer just to ask :), and in my experience people mainly want their code to be usable and would say yes without hesitation.

We can easily relicense the tool under GPL v3, but that'll make it impossible for some developers to contribute. Although, as is stands, they can't do it currently either, so we're not losing anything.

How I see it, they would only be unable to contribute to the parts that are already closely tied together with the GPL licensed library. To break free of the GPL license we will have to rewrite these parts anyway (since they're somewhat closely tied to the library). If we license this tool under GPLv3 now it's probably not going to cause us much extra work rewriting with a new gui library later compared to doing it without licensing. It is going to allow us to use the tool as is. In my opinion we gain significantly more than we lose.

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

@Linjieqiang Right now the best way to get involved is to stay up to date on things. We may or may not be able to secure some dev workforce with the help from @thirtytwobits and/or Iain Galloway. Please follow things on the forum at http://forum.uavcan.org and consider joining the next weekly dev call on Wed Dec 19.

from gui_tool.

thirtytwobits avatar thirtytwobits commented on August 22, 2024

I've been unsuccessful in recruiting additional help, unfortunately. @Linjieqiang, do you have experience developing javascript user interfaces?

from gui_tool.

Linjieqiang avatar Linjieqiang commented on August 22, 2024

@thirtytwobits I will have a try. I have a little experience.

from gui_tool.

Linjieqiang avatar Linjieqiang commented on August 22, 2024

@pavel-kirienko I couldn't sign up the https://forum.uavcan.org/. Could you help me check the my accout. My email is [email protected]. But I couldn't receive the email from the website.

from gui_tool.

pavel-kirienko avatar pavel-kirienko commented on August 22, 2024

@Linjieqiang I see that your user account is already created, so I just activated it manually: https://forum.uavcan.org/admin/users/181/linjieqiang. The confirmation email probably got into your spam folder, please check that.

from gui_tool.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.