VFP, Linux and the Jack of Hearts

by Whil Hentzen

Intro

A lot of hubbub has been raised over the “Visual FoxPro running on Linux” issue over the last few weeks. Much of the hubbub has been based on incomplete or inaccurate information. Here’s the detailed chronology, including links to specific items, so that you’ve got all of the facts.

The Investigation of Linux

As many of you know, I’ve been working with Linux for a while now -since last summer. Declining business opportunities on the Windows platform combined with increased frustration with a variety of Microsoft’s practices led me to investigate Linux as a possible avenue of new business. Associates of mine have been following the same path, but the one thing we ‘knew’ for sure was that we’d have to leave our beloved Visual FoxPro behind, since it only ran on Windows.

The best we could hope for was connecting to Linux back end databases like MySQL or PostgreSQL through ODBC (see Bob Lee’s article on this topic in the March, 2002 issue of FoxTalk, “Going Cross-Platform Again: Using Visual FoxPro to Connect to a MySQL Database on Linux” – here.

VFP and Linux Research

Then, late in 2002, a clever fellow named Paul McNett announced that he’d been running VFP on Linux through the use of an open source project called Wine (more info). Wow. Over the next couple of months, he spent time working on the process, formalizing it and writing an article
for FoxTalk (March, 2003). All the while he’d been reporting on his progress in public on various on-line forums, such as Ed Leafe’s ProFox mailing list (here.)

The Phone Call – EULA Violation

I took up the cause, demonstrating this capability myself during presentations I was making throughout the 2002-03 winter/spring at conferences and user groups. About an hour before I was scheduled to do a presentation at the Bay Area Association of Database Developers in San Francisco on Wednesday, April 9, 2003, I received a call from Ken Levy, the marketing manager of Visual FoxPro at Microsoft. Ken had just seen the article in FoxTalk and told me that it was violating the EULA for VFP 7 and 8. This sort of surprised me as these conversations had been going on in public for a couple of months, on forums that the Fox team at Microsoft regularly monitored and participated on.

I was eating dinner at the time (with Paul McNett, coincidentally) and so was sort of taken by surprise; Ken didn’t offer any clarification and I didn’t have the presence of mind to ask for details. I did ask Ken for a confirmation of exactly what activities were and were not in violation of the EULA in writing, by the Microsoft legal department. Total time for the call – maybe 90 seconds.

The Resulting Firestorm

An hour later at the Bay Area meeting, I mentioned this call at the meeting as the explanation for why I wasn’t going to actually show VFP running on Linux that night.

One of the attendees, Chet Gardiner, was furious, and posted an irate message on Leafe’s mailing lists. This posting generated a firestorm, and it was carried over to two other popular Visual FoxPro forums, the Universal Thread (here) and the CompuServe forums (here). I didn’t find out about all of this for a couple of days because I was still out of town, attending a conference.

Shortly after the posts started appearing on the various forums, Ken called two other well-known VFP developers, Ted Roche and Ed Leafe, and told each of them that running VFP as a development environment was not prohibited by the EULA. Rather, it was the distribution of VFP applications on Linux machines that was targeted by the EULA. The EULA requires that the “Distributables” (defined in a separate file that’s part of the Visual FoxPro installation) could only be used “in conjunction with the Windows operating system”.

As I understand, Ken said to Ted and Ed (from my conversations with Ted and Ed – and, of course, any conversation repeated third-hand is subject to misunderstanding, thus my request for having all of this in writing) that you couldn’t distribute your compiled VFP application and the VFP runtime libraries to a Linux machine because this would bypass the requirement for a Windows OS to be in the vicinity. He did say, however, that you could distribute the app to Linux machines if each of those machines had a fully licensed copy of VFP on it.

When I returned on Monday, April 14, there were, well, a “lot” of messages waiting for me. Phone calls, emails, forum postings. It took a while to sort them all out, and I was headed to Denver in a couple of days for another presentation.

The Email to Microsoft Requesting Written Confirmation

I hadn’t heard anything from Microsoft since the previous Wednesday, so I figured I’d better set things straight, and I wrote a long, detailed email to Ken and other members of the Fox team and other involved parties at Microsoft, and posted the email to the ProFox mailing list and the Universal Thread so that everyone interested in the issue was kept abreast and had all of the facts. A copy of the email is here.

I requested an answer by the following Monday (April 21.) A few hours later I heard back from Ken, saying that a response was being worked on and while they weren’t sure they’d have it done by Monday, they’d try.

More P.R.

Nick Causton, a member of the ProFox mailing list, asked me if it would be OK if The Register, a U.K.-based online I.T. publication (www.theregister.co.uk), contacted me about this issue. Figuring it was better to get as many of the facts out in the open, I said sure. I chatted with them while I was in Denver on Thursday, April 17, and their story about the issue showed up the next day. The complete article in The Register is here.

The Technical Issues

There are three technical questions I’m wondering about with respect to the VFP EULAs.

Running the VFP Development Environment on Linux – The first thing we – Visual FoxPro developers – want to be able to do is run VFP as a development environment on a machine running the Linux operating system. This endeavor was the gist of McNett’s FoxTalk article and was the activity that Levy declared was a violation of the VFP 7 and 8 EULAs. However, Ken has since backtracked on this, stating that a developer could use VFP on a Linux machine as long as they had a
separate licensed copy for the Linux machine.

Deploying Custom VFP Applications on Linux Workstations (Part I) – According to verbal conversations with Ken Levy, the VFP 7 and 8 EULA requires that any “Distributables” (defined in REDIST.TXT, available as part of the VFP development environment installation) could only be used on Windows.

Like other programming langauges like C, VB, or Delphi, VFP is a development system that is used to build custom programs. The result of building an application is a .EXE file. By itself, this .EXE file doesn’t do the customer or end-user much good. It must be deployed to end-user machines in combination with runtime files (or libraries) that know how to interpret and execute the code in the EXE.

For many years, Visual FoxPro developers have been able to include their EXE and the runtime libraries (typically, a series of .DLL files) in a single package for installation and use on an end-user’s machine. In the earlier versions of VFP, the installation was simple – just copying the files to the target machine. In more recent versions, Microsoft has included a variety of mechanisms and tools that did the installation automatically. The latest version of Microsoft’s installer tool, the Windows Installer, relies on a series of files embodied in MSM files for installation. It is these MSM files that are listed in REDIST.TXT, not the specific Visual FoxPro DLLs.

Thus, it is technically possible for a Visual FoxPro developer to deploy their application without the use of Windows Installer technology, and thus the MSM files (and the others in the REDIST.TXT file) can be avoided.

Our first question regarding deployment, then, is whether or not this method – distributing custom EXEs and the VFP DLLs to customers – like VFP developers have been doing for nearly a decade – is allowed by the EULA. If it is, then the issue is moot. But it doesn’t appear that this is the case. If it’s not – if VFP developers must use Windows Installer technology to deploy their applications as of VFP 7, then there are two further issues that must be raised.

(1) There are a number of installer products in the market that do not rely on Windows Installer technology to do their installations. It would appear that
each of these tools is in violation of the VFP EULA.

(2) Why the sudden change from VFP 6 to VFP 7 without any sort of announcement? Normally, when a change in a product would affect a mechanism as critical as deployment to customers is made, that change is announced in the “Read Me” or “What’s New” notes that accompany a new product release. But this was slid into
the EULA without ever being mentioned anywhere else.

Deploying Custom VFP Applications on Linux Workstations (Part II) – OK, suppose that the VFP EULA prohibits the simple deployment of EXEs and DLLs, instead, requiring the use of Windows Installer technology, MSMs and the whole smash. And thus, in order to deploy a VFP app on Linux, a licensed copy of VFP must be installed on each Linux workstation.

The question is…. is this legal? This feels like Microsoft is tying their applications to their operating system, a stance that would raise eyebrows in many areas. Just because the EULA demands so doesn’t mean that it’s legally enforceable. But how many independent VFP developers have the money to take on this sort
of legal challenge?

The Business Issues

The ancestors of Visual FoxPro, FoxBase and FoxPro, as well as all versions of Visual FoxPro itself have held a significant competitive edge against the other companies in market for desktop database applications because they don’t require licenses for the runtime libraries. Back in the late 1980s and early 1990s, this was a major difference between dBASE and FoxPro applications – the customer didn’t have to pay a license for each end-user using a custom application.

This has continued with Visual FoxPro and Windows – you can build a VFP application and distribute it to literally thousands of users without the payment of additional license fees to Microsoft, and that makes a VFP application an excellent solution to a wide variety of business problems. Microsoft has long ignored Visual FoxPro for this diversion from their business model – they would much rather have an application developer use Visual Basic for the interface and SQL Server (which requires licenses for each user) for the database – more lucrative for Microsoft, but more expensive for the developer and the end-customer.

The possibility of Visual FoxPro applications running on Linux is a very attractive proposition for customers – an inexpensive (or free) operating system, an inexpensive and powerful development tool, and inexpensive (or free) backend databases (such as MySQL) makes a lot of sense for a lot of organizations. And it’s
easy to see why Microsoft would try to fight it and impose a different licensing restriction – to harm the attractive economics of VFP/Linux solutions for customers.

Slashdotted!

The story hit /. at 4:48 PM CST. Link is here. At 4:49 I started pouring buckets of cold water on the server to keep it from overheating. After several hours of this, I realized I could just move the server to the bathtub and run water on it overnight so I could get some rest.

LinuxWorld

A story about Wine that prominently talks about the VFP/Linux issue is here.

Current Status

As of midnight, Monday, April 21, 2003, I still haven’t heard from Microsoft on the status of VFP with Linux. Stay tuned, same bat-time, same bat-channel.

UPDATE: Next…

Powered by WordPress. Designed by Woo Themes

This work by Ted Roche is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States.