Many a commercial product relies on open source software underneath. Depending on license, publishing elements of their code may be a requirement if so, but I wouldn’t hold my breath.
(See John Deere and their refusal to comply with GPL for details - hopefully that’ll end in a lawsuit soon enough)
As a developer, of course I know about that,I have only recently started researching IOSBUS solutions. If the project team ultimately confirms the use of AgIsoStack++, I will definitely remind them of the rules they need to follow。
IsoAgStack-plus-plus is MIT licensed. It can be used in a proprietary, closed-source product, provided you include a notice that tells your users there is some code in your product that is copyright the IsoAgStack developer (Copyright (c) 2022 Adrian Del Grosso). See https://github.com/Open-Agriculture/AgIsoStack-plus-plus/blob/main/LICENSE
AgOpenGPS is also licensed under the same MIT license.
Obviously the AOG devs and the IsoAgStack devs hope that proprietary users will contribute bug fixes and enhancements back, but that is not required.
Personally I prefer to default all my projects to GPLv3, and then re-license if someone wished to negotiate some kind of proprietary license.
The license in the root AOG directory is GPL v3. The license in the GPS directory is MIT. A search of the entire AgOpenGPS repository does not show any license embedded into the source files.
The root AOG boards repository does not list a license file. The source files have a a mix of MIT, CERN, GPLv2, COO and snippets of licenses.
Overall it is hard to tell what license the various authors of the code intend for their works.
GPL v3 recommends placing the “short form” of the GPL license in every source file. The instructions on what to include are near the bottom of the GPL v3 license. https://www.gnu.org/licenses/gpl-3.0.html
Good points. The current state of licenses in the git repo is confusing. The “GPS” folder is AgOpenGPS itself, and as I understand it Brian switched it from the GPL to MIT. There is no license file at all in the AgIO directory. So maybe that means it defaults to GPLv3? Hard to know. Might be worth bringing this up in its own topic.
As you say, things are a bit murkier with the Arduino sketches, since they use third-party libraries.
Definitely there are pitfalls to open source licensing. Any company wishing to use open source code in their project, including code from IsoAgStack-plus-plus, should talk with their own lawyers about it first to make sure they can comply with the license.
The only real way to actually validate it that I know of is to become a member of AEF and license their conformance test (at considerable expense I might add). Since we’re just open source contributors, we don’t have the funds to do this by ourselves, so we have to rely on following the documents as close as possible and testing with the limited implements at our disposal.
If someone did eventually conformance test our stack and submit any issues to us, we would of course address them, as we want to be conformant.
But, even if our stack had previously been AEF conformance tested, they (AEF) actually require testing each product not the stack, so even if our stack was 100% conformant, that’s not enough to put the ISOBUS conformance attestation or logo on any product that consumes it, unless that product also is conformance tested. So it’s quite a rabbit hole to validate these things.
Completely agree, and it can be fairly nuanced as well. Our stack’s license for example depends slightly on what CAN driver you use. Some of our drivers are MIT, and the main stack is MIT, but some drivers are not, and linking against those in an application can have legal implications in a closed source project. Using the PEAK PCAN driver for example requires also agreeing to PEAK’s license. It’s always best to find out from a lawyer what needs to be done if you’re going to use an open source library in a commercial (and especially closed source) project.
I have found this IsoBus++ project and started with it today, very very interesting ! I’m a developer myself but the C++ and VS Code area is not my cup of tea. I can’t manage to build it , because the structure of the repo doesn’t seem to match with the includes in the files. I’m trying to figure this out.
I would be very interested in writing the visual software to create a VT. i just need lots and lots of info of the structures.
I managed to build the example correctly for ESP32 , but i keep struggling to upload it to the board . I’ve tried a ton of things i’ve found on the internet, but none work, i still get the
“A fatal error occurred: Failed to connect to ESP32: No serial data received.” error in PlatformIO.