Hi All, This is an update on work in progress related to KVASD. Sorry it's yet another long message but the KVASD situation is potentially toxic and is long overdue for a good solution.
Firstly some background as I see it. KVASD is closed source and must be dissociated from deployments of GPL licensed applications like WSJT-X. This dissociation doesn't prevent cooperation between WSJT-X and KVASD at run time so long as the interface between them is itself open. It also doesn't preclude WSJT-X from deploying a tool or tools to optionally install KVASD post installation. I view this as similar to an open source GPL licensed web browser being used to download closed source proprietary content, for example a plugin of some sort. To this end the current arrangement of the WSJT-X build system bundling KVASD in deployment packages and installers is not compatible with our GPL license. Having a step in the build to inject KVASD for development and testing purposes is, I believe, acceptable so long as it is optional. This last capability is currently in place, but as it stands the creation of installer packages for both Windows and Mac bundles a KVASD executable and this is not compliant. To move to proper compliance with the GPL licence there is currently work in progress as follows: Greg KI7MT is working on a non-free (as in not Free Open Source) Debian package to install KVASD as a stand alone executable. I believe Richard KF5OIM is looking at a similar package for RPM based systems. This is a good solution for Linux systems because they already have all the support libraries needed for KVASD, i.e. the LGPL licensed libgcc libraries to support dynamically linked C and Fortran based executables built using gcc/gfortran. Note that dynamic linking of LGPL libraries is required by their license terms for closed source applications. For Windows and Mac the provision of a standalone KVASD package is not such a good solution because in both cases the above mentioned libgcc support libraries are not available as standard system components and thus would have to be bundled with the KVASD installer. Although such bundling is possible, it does create a number of secondary issues including: * On Windows use of a separately installed package would require the system PATH to be modified to make the KVASD executable available to WSJT-X, alternatively the WSJT-X installation would have to be made aware of the location of the KVASD executable as some sort of post installation step. * On Mac there is no real mechanism for a command line executable to include its own support libraries, that is more normally done as an application bundle which is by definition not a command line application. To address these and other issues I propose to develop and enhanced installer for WSJT-X on Windows that optionally fetches the KVASD EULA and executable and injects it into the WSJT-X install. This fetch is done over the Internet at install time therefore not requiring any closed source content to be bundled in the WSJT-X installer. By using this process the KVASD executable ends up in the WSJT-X installation binary folder and therefore shares the libgcc DLLs with WSJT-X itself. On Mac life is a bit more complex as the installer we use has no scripting or programmatic content, it simply uses standard OS X facilities to present the user with a graphical Drag'N'Drop install step to place the fully self contained WSJT-X application bundle into the system /Applications folder, or elsewhere. This is a fairly normal and very common Mac installation mechanism which is made possible by the fully self contained Mac application bundle structure itself. This means that on Mac a post installation step becomes necessary to "inject" KVASD into the system. The best place by far for this "injection" is into the WSJT-X bundle itself, this is because the KVASD application can then, with a few adjustment commands on the executable, reference the libgcc dylibs that are already bundled with WSJT-X. These references are relative paths therefore including the KVASD executable inside the WSJT-X application bundle allows the bundle to be moved around or copied without issue just like any other application bundle. There is one gotcha associated with this approach on Windows and Mac and that is that we must ensure that the libgcc libraries KVASD is linked against are either the same or at least very close to the ones that are used to build WSJT-X and bundled with it. This is essential as KVASD would be sharing the WSJT-X support dylibs. This should not be beyond our capabilities given that we are largely in control of the building of KVASD. Another issue is the acceptance of the KVASD EULA by individual users, on Linux this is built into the package install system so long as the appropriate license text is included in the package itself. On Windows I propose to add a custom page to the NSIS installer that fetches the KVASD EULA and binary from the Internet and requests acceptance of the EULA before KVASD installation can be completed. On Mac I propose to write a small application that fetches the KVASD EULA and binary from the Internet and requests agreement of the EULA before injecting KVASD into a WSJT-X application bundle. This Mac only application would be included on the WSJT-X installation disk image and would be invoked by dragging the post installed WSJT-X application bundle back onto it. I already have a proof of concept implementation for Windows and am part way through developing a Mac application to install KVASD. Here is a sample of the enhanced Windows installer: https://dl.dropboxusercontent.com/u/4192709/wsjtx-1.4.0-rc3-win32-KVASD-installer.exe The remaining issue is what we do if the user chooses not to install KVASD, currently no KVASD executable will cause one missing KVASD program message box per session and many "KV decoder missing" errors in the "Rx Activity" window. In the past this has been limited to one error per session (the code is still there but commented out) but was changed to make it clear that running without KVASD is not optimal. I did consider a dummy KVASD program to include in install packages but this leads to more problems than it solves so I think I would prefer a modification to make the missing KVASD executable message more explicit perhaps with a link to a page that explains how to install it and no error messages in the "Rx Activity" window at all. Thoughts, comments and updates from the Linux packagers welcome. 73 Bill G4WJS. ------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel