Project info for mod_virgule

Share This Created 13 Nov 1999 at 00:28 UTC by raph, last modified 30 Oct 2017 at 18:04 UTC by sye.


Freshmeat page:


Old Project homepage URL:

mod_virgule is the Apache module developed to power the web site. Mod_virgule was created by Raph Levien. His code, which we'll call classic mod_virgule, was used to run Advogato through Oct 1, 2006. On that date, Advogato was migrated to a newer fork of the mod_virgule code maintained by Steve Rainwater. This codebase is now used to run both _this_ Advogato and It was actively maintained through 2012. Raph's classic version of mod_virgule is no longer maintained. A third
fork of mod_virgule, unrelated to Advogato, was created by Luke Kenneth
Casson Leighton and is called xmlvl.

Mod_virgule is written in C and relies on GLib , libxml++, and Apache%20Portable%20Runtime

Your Help is Needed!

Below are a few of the things where we most need some help right now

Remove GLib dependency: Building mod_virgule now relies on GLib only for the GHash functions in netflow.c.
These could be rewritten to use the Apache APR hash
functions instead. This would reduce the compiled module
size and simplify the build requirements. Because this code
affects the trust metrics, any patch would need to be throughly
tested before being accepted.

Document the existing codebase using Doxygen

The mod_virgule codebase is large and poorly documented. Some
sections of code have no comments at all. The comments that
do exist are not in a consistent style. In order to facilitate continued improvements to the code, it would be very helpful to have well-commented code in Doxygen style. This task is more
complicated than it sounds. Much of the existing code is
less than ideal and may take substantial research to
document fully. The current maintainer as well as the
original author of significant portions of the code will
attempt to answer questions about the
functionality where possible.

Improved build system: At present, building
mod_virgule is complicated and generally doesn't work if the
target platform varies slightly from the development
platform. It would be nice if a potential user could
download mod_virgule, type configure, make, and get a
functional mod_virgule or a meaningful explanation of any
missing libraries that need to be installed. Completing this
project would involve using the GNU autotools (e.g.
autoconf, automake, etc). At a minimum, the goal would be to
achieve successful builds on Red Hat Enterprise Linux,
CentOS Enterprise Linux, Debian, Ubuntu, and other common
Linux distros.

Razvan Cojocaru has submitted a patch for
this item.

Automated testing framework for mod_virgule: With the increased development activity surrounding mod_virgule,
it would be helpful to have an automated method of
regression testing for new builds. This work could be
completed in any of a variety of scripting languages such as
Python or Perl. An existing web testing framework such as twill might
simplify this process.

Updating Legacy APR and libxml API Use:
Mod_virgule has been patched over the years to use more recent
versions of the Apache Portable Runtime (APR) library andDV's libxml++ but,
in many cases, this was done using backward compatibility
layers to minimize the effort of moving to the newer
libraries. We still rely on deprecated functions and
old-style API usage that we can't be sure will present in
future versions of these libraries. It would be very helpful
to have someone audit the codebase, looking for deprecated
API usage, and offering patches to bring the code up to
date. Additionally, the APR library shipped with Apache 2.x
is much more extensive than the API available on Apache 1.3.
There may be cases where mod_virgule utility functions can
be removed altogether and replaced with APR API calls.

Developer Links


Websites based on mod_virgule

Help us improve this list by adding a link to your
mod_virgule-based website.

License: GNU GPL

This project has the following developers:

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page