At 12:46 PM 8/30/2005, KY1K wrote:
Hey guys...........

I'm not a programmer, never have been and never will. I don't understand 2/3rds of the terms used in the original message. But, I know the hardware and the concept of the QSD and that software is needed to make it run.......hardware implementations become quite complex for a variety of reasons.

The SDR-1000 page makes a very big deal about being flexible and the source code being available.

Software is the heart of the SDR. While I can't speak as a software person, I can speak with great authority as a potential purchaser of the SDR-1000. If there is a problem with distribution or with anything that affects the ability of third parties to add features in software, I think the customers have a right to know this BEFORE they buy.

Maybe this matter needs more public exposure.

As a potential customer who wants one of these units, I think I have the right to know if the source code isn't 'available' (as it's advertised to be). Is this a topic that should be further explored by the ARRL before they publish the third Product Review of the SDR-1000 (scheduled for publication in June 2006)?

The source code IS available (right on the http://www.flex-radio.com/ website) . And it's available under the Gnu General Public License. That license (in partial summary) essentially says that if you modify it *AND* redistribute the modified version, that the license has to continue with the modified version.

You can't, for instance, take PowerSDR, add a bunch of nifty features throughout, call it (for example) "LuxSuperSDR" and sell it (or give it away) with a license that doesn't let people make copies or imposes other restrictions that the original PowerSDR GPL didn't.

If you want to modify it for your own use (and not redistribute), you can do whatever you darn well please in the privacy of your own home, as far as GPL is concerned.

If you're happy with GPL and it's terms (most folks are.. I certainly am), then for work you do for yourself, you're in great shape. The hiccup comes when someone else is paying for the work and THEY aren't happy with GPL.

One scenario where this is the case is the one I outlined in my original post: JPL has problems with distribution of GPLed software because it doesn't match their NASA contractual requirements, which also require them to distribute software developed with taxpayer money. (This IS being dealt with, by the way, but "The gears of the law grind slow and exceedingly fine"...)

The other scenario is where a third party vendor wants to add functionality, but for some reason, needs to keep a proprietary component. I give a lengthy example below.

My plea was to make sure that the software architecture is built in a way that lets me add something to it in a way that's separate from the GPLed software, and that I could do my thing without having to modify the GPL software.


Here's a practical example.. Say you wanted the the PowerSDR software to control your antenna rotator. The rotator manufacturer supplies a program that controls their rotator, but it's proprietary. You'd click on some menu option, and PowerSDR would just fire off a command to that program (something like "LuxRotate 137" would point the antenna to 137 degrees).

It might well be that Lux Rotator company isn't interested in releasing the details of their proprietary computer to rotator interface. Lux Rotator is a hardware company, making money selling rotators... they have no interest in producing super duper software, BUT, they do want to keep people from making knockoff rotators. However, they might be willing to license it to another company who wants to create a program that will translate call signs off DXCluster into lat/lon and then into heading.

So, they license the control protocol to Art's Software Mill, who then creates a new program called OwlRotate. Lux Rotator, though, requires Art to keep that protocol secret, which means that Art cannot distribute source code (since that would reveal the command protocol). Hopefully, you could configure some file in PowerSDR that would fire off "OwlRotate W6RMK" and life would be good. Art's Software Mill can then sell their OwlRotate program happily, complying with their agreement with Lux Rotator. And, PowerSDR stays totally open and GPLed, because NO modifications were made to PowerSDR.

You can do this integration at a somewhat finer level (i.e. rather than a standalone program that gets called, maybe it's a library routine that gets called, or compiled in).


However, IF the architecture of PowerSDR (or dttsp) is incorrectly formulated, then it might not be possible to do this. Maybe PowerSDR requires the program names and syntax to be compiled into the code, so that changing from LuxRotate to OwlRotate requires modifying PowerSDR. Then, Art's Software Mill is faced with trying to do two things.. distributing a modified (GPLed) version of PowerSDR (as source, because GPL requires it) and their proprietary (no source available) OwlRotate program. Then, what happens if a Art decides it's not worth it to keep updating the modified version.

You wind up with a horrible compatibility nightmare:

Art does all this GPLing stuff, and distributes a modified version of PowerSDR 1.2 (call it OwlSoftPowerSDR) that will fire off OwlRotate. Several years later, FlexRadio is distributing and supporting version 2.3 of Power SDR, which does NOT support OwlRotate. Art is still distributing version 1.2 with OwlSoft mods, which does support OwlRotate. Because Art actually hired Bob, an ambitious undergrad, during the summer, to do his coding, and Bob has graduated, gotten married and moved to Lower Elbonia, even Art wanted to produce a revised version of PowerSDR, based on the latest release, he couldn't.





Note that this is not sent to the reflector or any other public domain newsgroup or mailing list.

Art


Jim, W6RMK

Reply via email to