pilot-link[1] is a Free Software project to communicate and syncronize Palm handheld devices under Linux and Unix systems. It is covered under the GNU General[2] and Lesser Public Licenses[3] (GPL/LGPL). It was originally created in 1998 by a group of developers and volunteers, and has evolved through the years through many maintainers and changed many hands.
The current code needs a thorough professional "audit", to make sure it complies with C99 standards, and to remove any redundant, old, and unused code from the source tree.
The Palm market is moving fast, and there aren't enough resources for us to add NEW features, as well as fix the existing codebase to support these new features and close any existing bugs, so we need help.
All functions in the codebase must be documented as part of this deliverable (90% of them are, at this point). Some functions are missing documentation in the source files, but the function headers are there, ready to be filled in.
What is needed is an experienced developer, or group of developers, fluent in serial/usb/IrDA communications and socket programming, to go through the entire codebase (userland tools and libraries), and clean up any and all incorrect code, structures, and APIs, so the code compiles cleanly with a rigid set of compiler options to eliminate common type errors and other problems. This includes memory leaks and potential security problems.
It is **absolutely imperative** that the existing interfaces remain the same during this process. The code and libraries are used by many other projects, so we can't change things rapidly without breaking these other applications. If possible, a backwards-compatible layer can be added to assist bringing any "legacy" interfaces to current standards during this maturation of the codebase.
**Please note:** The code is already written. We just need someone to go through it and fix any obvious "bad code" and update any existing functions to be more streamlined and efficient.
*All payment for this work comes from **community donations**. Anyone interested in doing this work gratis, for the Free Software community, is more than welcome.*
There is a lot of additional work for the right developers who wish to contribute their time and resources to help out after this stage is completed.
References:
[login to view URL]
[login to view URL]
[login to view URL]
## Deliverables
1.) Complete and fully-functional working program(s) in source form only (no executable code please) of all work done.
2.) All work done on this codebase must be absolutely clean and free of any copyrighted materials. The existing project is covered by the GPL/LGPL, and any additional code added to that will also be covered by the same licensing. The developer bears the burdon to ensure that the code remains free of any proprietary licensing.
3.) Submitted work must be approved by community peers and myself, prior to being accepted. This means it must be tested against real devices, on the target platforms for functionality. We have many resources to help, including irc, mailing lists, and other means. Please use them if you get stuck or have questions.
## Platform
The code currently runs on Unix (FreeBSD, NetBSD, Solaris, AIX, HPUX), as well as Linux systems. It must continue to run cleanly on these platforms.
A portion of the codebase works on OS/2, for serial interfaces. We would eventually like to make this work for USB devices on OS/2 and Win32, but that isn't a high priority at this stage.