Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Re: Re: licensing confusion

by footpad (Abbot)
on Oct 30, 2001 at 20:50 UTC ( [id://122132]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: licensing confusion
in thread licensing confusion

Well, my experience is mostly based on off-topic compilers, e.g. Borland's Delphi and Microsoft's products, but there is a tendency to give you interesting things to play with, but limit the redistribution of the run-time libraries that support those. These also tend to limit redistribution of any utilities provided with the product.1

With Delphi's Professional Edition, for example, you are provided with redistributables for the Borland Database Engine (BDE),2 but are not allowed to redistribute the SQL Link libraries that connect to most remote databases (save InterBase, for obvious reasons), even if you have the relevant SQL Links from other products. Both Paradox and dBASE (no longer Borland products) provided SQL Links for several remote databases. Thus, some developers thought they'd redistribute the SQL Link provided with the database product along with the programs they developed with the compiler. Such people were in violation of their licensing agreements.

Similarly, if you're using their MIDAS technology (in the form of TClientDataSet components) to enable data exchange between multiple computers (e.g. to a remote server), then you have additional restrictions:

Purchase of Delphi Enterprise edition, however, does not include deployment rights for this software. Customers who wish to deploy applications that use MIDAS must purchase a separate license for each server on which MIDAS is installed.
-- Delphi 5 DEPLOY.TXT, emphasis added.

While I've not heard of any legal actions taken against small violations, I'm told that these multi-server restrictions are taken very seriously. Also, with Microsoft's recent focus on corporate growth through aggressive license enforcement, I'd be very careful in this regard.

Other limitations prevent you from creating competing products. For example, the license for Paradox for Windows Runtime specifically forbade you from providing tools to features that'd been disabled in the Runtime version, e.g. interactive design tools and so forth. Similarly, Corel has provided Merant's Paradox ODBC driver with the last few versions of Paradox for Windows, however, if you read the enclosed information carefully, you'll note that said driver is only licensed for end-use and not for developer distribution. You must obtain a separate license for that and it's not cheap.

Similar restrictions can be found in Delphi's EULA3 as well. For example, you're not allowed to create a Delphi clone with Delphi.4 I've seen similar terminology in Microsoft's EULA's. For example, tilly recently pointed out some rather surprising terms in a Microsoft EULA that may affect our local community.

Even ActiveX controls aren't safe, for while they come with end-user license keys, they do not traditionally come with redistribution rights. Here's what Delphi's License Agreement has to say on the matter:

The Software might include source code, redistributable files, and/or other files provided by a third party vendor (Third Party Software). Since use of Third Party Software might be subject to license restrictions imposed by the third party vendor, you should refer to the on-line documentation (if any) provided with Third Party Software for any license restrictions imposed by the third party vendor. In any event, any license restrictions imposed by a third party vendor are in addition to, not in lieu of, the terms and conditions of the License Agreement.
--Delphi 5 LICENSE.TXT.

The bottom line is that you need to carefully review the licensing terms of all elements in your application, regardless of platform5 or source. If you use someone else's code and sell your solution, then you need to make sure you have permission to redistribute their work to others. In the Perl community, the GPL tends to gives us some freedom in that respect, however, different worlds handle this differently. And you need to be proactive in your quest for financial freedom. When in doubt, contact the publisher/author before you ship your product.

This is one reason why 99% of the code I release on an unsuspecting public is licensed with the following: Share and Enjoy. Yes, I have some code that isn't released freely, but I tend to keep that to myself.

Trivia: The biggest difference between Delphi's Professional and Enterprise Editions lies not in the additional components and tools, but in the allowed redistributions.

BTW, I'm not picking on Borland or Corel in this. I'm just more familiar with their EULA's than I am with Microsoft's. In my experience, both companies provide less restrictive license agreements than others do. You have to be especially careful with third-party components/add-in's. For example, one vendor of my acquaintance charges a royalty for each redistribution.

Face it: commercial software sucks and it's not a cheap business to be in. Many vendors find ways to "increase their revenue stream" and many of those are buried in those license agreements you tend to click through without reading. This is why we (those wanting to be professional programmers) must be especially vigilant regarding things like UCITA and other legislative actions currently in progress.

Again, this is something that the casual Perl developer doesn't have to worry too much about. We have a tradition of information and code sharing. If you like using other people's code, then I encourage you to share freely. Personally, I do not believe that technical information should be restricted, hidden, or otherwise unavailable for some ephemeral competitive edge. And, yes, I'm also against software patents for certain algorithms, especially those that could be created by anyone with minimal amount of skill. (Did somebody say Amazon's One-Click patent?)

Finally, I need to remind you all that I'm not a lawyer.6 If you're worried about it (and you should at least check into it), then I highly suggest you contact a qualified and competent attorney.

--f

1 - Case in point: Delphi 5 comes with a grep utility. However, you are specifically constrained from redistributing it. (See DEPLOY.TXT for details.)

2 - Strictly speaking, you're not allowed to redistribute the BDE without a corresponding application. This means creating a separate installation designed to solely update a client's BDE is a violation of license...unless you include a program with that. I've gotten around this by creating a small utility for checking your version and configuring the client PC (including support for command-line configuration for use during installation).

3 - I confess that I've not fully reviewed the latest agreements provided with Delphi 6 or Kylix; I suspect, though, little has changed.

4 - Which is slightly amusing (from a morbid sense of humor) given that one of the traditional selling points for Delphi (and Kylix) is that "It's written in itself."

5 - I wouldn't be at all surprised to learn of restrictions regarding certain elements of Windows itself, such as COMCTL32.DLL, WININET.DLL, .NET, and so on. As I've said before, Microsoft loves to find ways to make you pay.

6 - I was, in a prior life, a product manager for one of the products mentioned above, so I do have some inside information, however, that information is woefully out of date.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://122132]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-26 08:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found