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

software

#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.


#21

I’m reading that thread now.

I don’t envy them for the problems they had/have making that work.


#22

Interesting. I didn’t see that, but I like the idea. However, it still only requires them to make the Linux software available that they used and any software that links to GPL libraries/software as you stated previously. Of course, only the GF folks know at the moment if such links are used; although, plenty of other vendors have been caught out by not paying attention to this requirement.

Yes, I was not accurate in the way that I phrased my comment.

I will grant the GF team the benefit of the doubt that they are complying with the GPL at the moment, but if it comes to light that they are not, then that would be upsetting.


#23

Close - the GPL requires that anyone that gets the executable code be able to get the source code. It doesn’t require that Glowforge make the source code accessible to anyone else, though anyone who gets the source code could redistribute it. The GPL doesn’t specify the mechanism for getting the source code - in “the olden days” programs complied with the GPL by telling people that they could write a letter to an address, and receive a 9-track tape back with the source code in a month or two, and required the requestor covered the cost of media and shipping. These days most programs put their source in GitHub or something similar, and they do so generally before it’s formally requested, and they make it public rather than restricting to their customers, but that is not required by the GPL.

As others pointed out, it doesn’t matter how many copies of the software are distributed, or whether you call it beta or release - the legal requirement is triggered by even one copy of the firmware going to even one customer - that customer has the legal right to request the source code and redistribute it to the world.

Pragmatically, many companies delay releasing source until they feel “ready” so that’s not unusual - but if someone wanted to force the issue, the right to request the software was triggered the first time they shipped a printer to any non-employee. But that request would have to come from someone who received a Glowforge unit. IANAL, but I’d say that Glowforge is in compliance with the GPL (assuming there’s GPL’d code in the Glowforge) unless someone makes that request and is rejected.


#24

I may be missing something here but…

I never heard anything per se about the GF software/firmware using GPL’d code.
They said they would release their firmware under a GPL license.

Could be wonrg, but I think that is a pretty big difference.


#25

I don’t think anyone is saying that they aren’t, at this point.

This whole thread was starting with a simple question:


#26

That’s essentially what I said. I have contributed code to many GPL programs over the last 20+ years, including the Linux kernel itself. While I did not accurately phrase my comment previously, I am aware of how the licensing works.


#27

They have stated that the hardware inside the GF runs Linux. In normal terms, the OS in an embedded device is considered part of the firmware, and Linux is covered under the GPL.

So, under the GPL, they are required to release that portion of the code (and any other GPL’d code) with the firmware.

And… No one has said that they haven’t. :slightly_smiling_face:


#28

Very cool!


#29

Yep.though if it’s “off the shelf” Linux, which is already released source code, there’s nothing unique for Glowforge to release. Most of the routers, etc., that use FOSS components (like Linux) just document that they use Linux, and don’t share their own copy.

All we know is that Glowforge promised to release their firmware under the GPL. But until they do, their code can stay hidden. With a caveat - if they used GPLd code in their app, then the GPL was triggered when they shipped their first printer.


#30

It doesn’t really matter “where” they got their copy of Linux from. The license goes with it.

Sooo, they still have to abide by the GPL and either provide the source with it or offer to provide it.

The routers that have open source in them -do- offer to provide the source.

Here’s a copy from the manual included with my Linksys router: