OpenVAS Change Request #11: Make OpenVAS-Client use (and depend on) glib
Status: Voted +2. Implemented with revision 949. Released with OpenVAS-Client 1.0.4.Purpose
To reduce code base of OpenVAS-Client by using storage, command line parsing and several other functionalities of glib instead and thus share the effort to maintain and optimize base functionalities among a broader developer/user base.
References
Change request #9 for other parts of OpenVAS
Rationale
Quite similar to the rest of the project, OpenVAS-Client includes a certain amount of features that were included through copying of third-party code. Other areas of the codebase contain (self-)implementations of concepts that could be replaced by implementations already available in broadly used, well maintained and portable libraries.
By using the functionality provided by those libraries for some of the features not unique to OpenVAS-Client, the size of the source code could be reduced while at the same time enabling significant gains in maintainability, performance and portability.
A first step towards this goal could be the use of the glib API for certain functions related to storage handling and command line parsing.
Effects
- The command line version of OpenVAS-Client would require glib to run.
- As with CR #9, the more functionality is moved over to glib the more complicated it will be to migrate to other APIs as glib does not implement any standard. In the case it should eventually be decided to not link against the upstream glib anymore (e.g. it gets abandoned or badly maintained), then it would be necessary to maintain a copy of glib with only the relevant features inside OpenVAS. At least until it might be decided to migrate to other API(s).
Design and Implementation
This is not worked out in great detail yet, as it is partly still to be evaluated which elements of glib are to be used in which way.
Basically, the idea is to have a initial step that creates the dependency to glib and delivers a first helpful feature easy to implement. Command line parsing appears to be this feature.
- Adapt the configure and make process for OpenVAS-Client to consider glib even for the command line tool. (done)
- Migrate the command line parsing from getopt to glib. See glib API for command line parsing (done).
- Remove any occurrence and handling of the getopt copies. (done)
- Evaluate which of the GLib Data Types to be used to replacing arglist and other data management.
History
- 2008-06-23 Michael Wiegand <michael.wiegand@intevation.de>:
Updated status. - 2008-06-18 Jan-Oliver Wagner <jan-oliver.wagner@intevation.de>:
Added voting result. - 2008-06-10 Michael Wiegand <michael.wiegand@intevation.de>:
Initial text adapted from CR #9.
