views:

44

answers:

2

Hi everyone,

I'm working on an Open Source VB6 application, the components that my application uses are as follows:

MS Forms 2.0 object Library - FM20.dll

MS Rich Text box Control 6.0 - RICHTX32.OCX

MS Windows Common Controls 6.0 - MSCOMCT2.OCX

MS Windows Common Dialog Controls - COMDLG32.OCX

Since, these components are Microsoft proprietary, and my application is open source under GNU GPL-3, as far as I know about the GPL, I can't deploy these closed source components. Also, I'll not be using Visual Studio 6.0 Package and Deployment wizard to create my application installer, as I'll be using NSIS and supply binary of my application inside setup.

I know that from Windows XP, common controls DLLs are deployed with operating system so developers don't need to deploy ActiveX for the same. How can I use above mentioned components in my application, without deploying their ActiveX in client machine?

A: 

Most of those components need to be distributed if you use them. See the list of VB6 components that must be distributed and those that are now part of Windows.

I have no idea whether redistributing proprietary components is allowed under GPLv3. The GNU website suggests that it is allowed, provided you add a standard notice to the licence. Disclaimer: I am not a lawyer, you should take legal advice before modifying any legal agreement.

I understand that Microsoft don't allow anyone to distribute Forms 2 at all under any licence. You can tell the users to download this free product which includes Forms 2. Anyway it will likely make your VB6 crash according to a Microsoft Knowledge Base article:

FM20.DLL is known to have many problems when used with Visual Basic and other developer products. Its use is neither recommended nor supported in any Visual Studio product.

MarkJ
A: 

The way I look at it is that what being placed under the GPL is YOUR code. The fact it needs restributable components to run one is no different than the fact is can only run under Windows using the Visual Basic 6.0 runtime. In fact your code is the only thing that you can give permission for.

What has happened in the past with other open source project that relied on proprietary components or even OS is that the community developed open source alternatives. But prior to that there were GPLed running on various proprietary UNIX systems and other Operating Systems.

The short answer is that release your code under the GPL.

Note that MarkJ is right in bringing up the issues with FM20.dll. You may want to consider why you are using that library and try to use an alternate has it is a barrier for people to try to use your code over and above everything else.

RS Conley
It sounds reasonable that you can place your code under the GPL, and it doesn't matter that it requires redistributable components. But (and I Am Not A Lawyer) it appears that under standard GPLv3 you are actually denying the users permission to redistribute your app with the proprietary redistributable components.
MarkJ