O Source Code, Source Code, wherefore art thou Source Code?

software

#1

As production units are now shipping, and one could assume the firmware has sufficiently stabilized after ~2 years, when will Glowforge be releasing the promised GPL’d source code for the firmware?


Formal Request for Open Source Code
#2

Valid question, but saying production units are shipping - in any actual volume - appears to still be a bit of a stretch. Expecting anything like thisin the next few months before most people even have the hardware to go with said firmware would be really surprising.


#3

agreed. and especially since they’re still tweaking things in their own software. i suspect releasing source code is fairly far down their “to do” list.


#4

I know that GF :glowforge: is tweaking the firmware very regularly (and until the thermal components, feature sets and GFUI are finalized), there probably is not going to be any open-sourcing (like how Redhat EL gets ported to CentOS).

Open-source is great, but the GF :glowforge: firmware is not even close to getting into maintenance mode (versus development and feature implementation)


#5

Personally I’d love to see the active firmware development, even just as a case study. It’s always a useful learning experience to see how changes get propagated within the code rather than just seeing a more or less finalized version that may or may not be under active development.


#6

That really depends.

Some of the code has to be released, or at least an offer to obtain it, under the GPL. @dan has stated already that the :glowforge: runs Linux. As such, they need to notify those who receive the units that the devices contain software licensed under the GPL, and they need to either include the source code, or make the source code available at a website or by other means.

If their proprietary code only uses LGPL’d libraries, and they haven’t modified any other GPL’d code to fit their needs (i.e. some customized version of LinuxCNC components), then they need not be in any hurry to release the code - at least under the terms of the GPL.

However, if any of their proprietary code is derived from software licensed under the GPL, or uses GPL’d libraries, then they must make the source available even if it is under active development. They need to make each version available for a period of three years. For instance, if they released firmware version 1.0, and then a day later released version 1.01, they need to make the code covered by the GPL available for both of those versions.

They are under no obligation to release development code that is undergoing in-house testing, but anything that is covered by the GPL that is released (i.e. pushed out to units in the field), must have the source available.


#7

I think the GPLv3 license could be interpreted that upon public release of the software (so release of the hardware using said software), the code must be made available at the same time. So if they are indeed using derivatives of GPL licensed software within their firmware they would have to release that code… Or I should say it should have been release upon the first shipment of an actual production unit.
However, I’m not sure it requires releasing the code to the general public but at bare minimum to those in possession of the modified code. Section 6 of the GPLv3 license requires more interpretation than I’m willing to make at this point in time.

Either way, I do hope that :glowforge: do release the firmware code sooner than later. I think there are enough competent coders that have sunk their teeth in that :glowforge: and the community as a whole could benefit from their input.


#8

This is one of those complicated areas of the GPL.

Every project I have been involved with interprets it this way: We are only required to provide the source to those in possession of the binaries. However, since we can’t restrict the redistribution of those binaries, or the redistribution of the source once we provide it (NDA’s and redistribution restrictions are prohibited in most cases), we might as well make the source available to anyone who asks.

Of course, we’re only talking about GPL’d code. There are metric ton of other FOSS licenses, all with their own caveats. And, I am certain that :glowforge: has had an army of attorneys on this and has covered their bases.

I just want to know where to find the code. :slight_smile:


#9

I believe the current live code is still in beta and may be for years to come.

Since it’s all in the cloud, I don’t think anything gets pushed to the units expect for firmware. Not sure if that qualifies.


#10

I’m actually only talking about the firmware that resides on the actual Glowforge. That is all that @dan stated would be released as open source. We also know that it runs Linux, so, at the very least, they need to make that source code available to anyone who has a copy of the firmware.

From a GPL perspective, it doesn’t matter if Glowforge considers their code to be beta. If their code is covered by the GPL, they have to make it available at the same time they push out into the field (release it).


#11

REALLY. How 'bout that. Doesn’t that cause a big risk for devs? Risking a competitor reaching a release version before the rightful originator?


#12

This is only as it relates to software that is developed under the GPL, or any software that was derived from GPL’d source.

The GPL is complicated beast, but it essentially is like a toddler: if you touch a sticky one, you are sticky now, too.

If all of their software was developed without using GPL’d source, then they don’t have to release their code.

They do, on the other hand, have to make the code available for any GPL’d software they do ship out along with their unit - even if they did nothing to it. It’s sort of redundant, because if they didn’t modify any of it, then the source is the same you can find from the original developers. But, that’s still the rule.


#13

I don’t think if they have simply written code that runs on Linux they have to release their source code do they? If they modified the Linux they would have release the source to those mods.


#14

Correct, they would not likely have to release their code if it runs in userspace and was not derived from any software that is GPL’d.

However, like I stated earlier, they -do- have to make the source code for anything contained in the firmware that is licensed under the GPL, whether they wrote it or not. And if the hardware runs Linux, there’s a lot that would need to be released.


#15

Where did he make this statement? I only recall him mentioning that they would release the firmware under the GPL, which–if they are using only their own code–they can do whenever they want.

But they are only obligated to provide such code to the people to which they sell or provide a Glowforge. They have no obligation to release such code publicly; however, they cannot prevent others from distributing the code.

Because you choose to do this, does not mean that it is required. Only Glowforge customers are entitled to receive the code directly from Glowforge. Those customers would then have to provide the source code to anyone that they also provide the binaries.

Correct, but they are still only obligated to offer the code to people that they have sent product.


#16

Here for one:

Agreed. I was merely stating that since the GPL’d binaries can be redistributed freely, it becomes ridiculous for a company to try and verify that someone has actual possession of the binary before they will send them the source.

Partially correct.

  1. If they include the source with the product, then their obligation ends there.
  2. If they only offer it via some other medium (physical mailing, web repository), they must make that offer valid for 3rd parties as well.

Option 1 is not likely feasible. They are continuously updating the firmware after it has been deployed. The only way they could fulfill option 1 is if they included the source code in the firmware itself. Few, if any, embedded devices have the storage capacity for this.


#17

Remember they said they would release A version of the firmware, not necessarily THE active final one. Also we know they are doing all the motion planning in the cloud so it is doubtful the firmware in the unit has much if any CNC capability in and of itself. I would guess it is mainly just comms and low level hardware interface. Guessing is useless though.


#18

You wouldn’t really be able to do much of the actual control from the cloud. That requires real-time.

Most likely to see that the cloud does all the of the pre-processing and then submits the job to the printer as g-code.

I suspect LinuxCNC is running under the hood.

Which is exactly why I can’t wait to the see what’s in there… :grinning:


#19

@dan has explicitly stated that this is not true. They are doing motion planning in the cloud and sending to the board as stepper control waveforms. The machine runs open loop.


#20

Found it, using this forum on a phone on a bus is a drag.