Created by Raph Levien for Advogato.org in 1999 and maintained by him until 2006. Also used for my robots.net website and maintained by me after 2006. Development stopped around 2012. Two branches: "master" - last rev of mod_virgule as maintained by me ca 2012 and "raph" - last rev of mod_virgule maintained by Raph Levien ca 2006.
C Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
sample_db
COPYING
ChangeLog
INSTALL
Makefile
README
acct_maint.c
acct_maint.h
aggregator.c
aggregator.h
apache_util.c
apache_util.h
article.c
article.h
auth.c
auth.h
buffer.c
buffer.h
certs.c
certs.h
db.c
db.h
db_ops.c
db_ops.h
db_xml.c
db_xml.h
diary.c
diary.h
eigen.c
eigen.h
foaf.c
foaf.h
hashtable.c
hashtable.h
mod_virgule.c
net_flow.c
net_flow.h
private.h
proj.c
proj.h
rating.c
rating.h
req.c
req.h
rss_export.c
rss_export.h
schema.c
schema.h
site.c
site.h
style.c
style.h
tmetric.c
tmetric.h
util.c
util.h
wiki.c
wiki.h
xml_util.c
xml_util.h
xmlrpc-methods.c
xmlrpc-methods.h
xmlrpc.c
xmlrpc.h

README

------------------------------------------------------------------------
Notes on Steve's for of mod_virgule:

This is not the "classic" mod_virgule code. Mod_virgule classic was
used to run Advogato.org from it's creation until Oct 1, 2006. I created
this fork for my robots.net website and have maintained it since about 2000.
On Oct 1, 2006, Advogato was transitioned to this codebase as well. So I 
think this version is at least "semi-official" at this point. :-)

The main difference is that this code is much closer to being usable
out of the box for a new site. There are no hard coded references to URLs
or site names, etc. Everything like that can be configured in a handy XML
file at run time.  Here are a few of the other improvements found in this
codebase over the original mod_virgule:

-RSS 2.0 support
-FOAF support
-Built-in RSS/Atom aggregator
-Person pages are template based
-Diary pages are template based
-Project pages are template based
-User accounts may be deleted by the administrator
-A built in admin page now exists
-Function names now follows Apache module guidelines
-Compiles against Apache 2.0 (roughly based on James Henstridge's patch)
-User list is configurable, paged, and sorted by cert level
-Article index page is a configurable template
-The sitemap (main navigation menu) is configurable instead of hard-coded.
-Forgotten password feature (based on Steve Kemp's patch)
-Headers include link elements for RSS discovery (James Henstridge's patch)
-Compiles against current libxml2 (Martijn van Beers' libxml2 patch)
-Usernames may have spaces, dashes, underscores, and dots
-Articles can have topic/icons like slash or scoop sites
-Article titles are links to articles
-Headers include link element for favicons
-RSS exports 15 (the RSS max) rather than 10 headlines
-User account page has consistent, easy to read menu layout
-Users cannot certify themselves
-Project list is alphabetized
-Improved, detailed diagnostic info on test page
-Posting, replying, and project creation authorized independently based
user certification level
-Comments added to code to explain purpose
-Several compiler warnings fixed
-Underlying code now has the ability to delete as well as add db entries
-Removed certs are actually deleted
-Removed project relations are actually deleted
-XML tag for an externally updated field

Features that have also been integrated into the "official" codebase:
-Permalinks for diary entries
-Usernames are passed to Apache and logged
-Configurable pass-through directories
-XML tag that renders differently based on user login state
-Code to prevent duplicate replies to articles
-External CSS used to configure color scheme
-External CSS used to configure cert colors
-Cert levels are configurable
-Trust metric seeds are configurable
-Removed much illegal HTML
-DoS vulnerability in cookie parsing fixed


What follows is the original mod_virgule readme file
------------------------------------------------------------------------

This is mod_virgule, the source code to Advogato,
http://www.advogato.org/ . I am releasing it under GPL with the hope
that members of the free software community will:

* Enhance Advogato.

* Develop mod_virgule as a generic tool for creating community web
  sites.

* Learn from mod_virgule's design and implementation, which is unusual
  in a number of respects.

mod_virgule is implemented as an Apache C module, using gnome-xml to
store the state as a XML files in the filesystem. There is an
abstraction layer, however, which means that using a different backend
(such as a "real" database) should be possible.

Right now, there's quite a bit of stuff in the C code that's specific
to Advogato. A medium-term goal is to push most of that stuff into the
XML, so the code itself is more generic. There are a fair number of
core changes here, so it's probably not a good place to hack in
without coordinating with me.

Raph Levien
13 Nov 1999

Development continues slowly. There's a new canonical home for
mod_virgule in ghostscript cvs. You can access it thus:

cvs -z3 -d:pserver:anonymous@cvs.ghostscript.com:/cvs/mod_virgule login
[just press 'enter' if asked for a password]
cvs -z3 -d:pserver:anonymous@cvs.ghostscript.com:/cvs/mod_virgule \
	checkout mod_virgule

There's also a discussion mailing list (virgule-dev) hosted at zork.net.
You can sign up in the usual way, or visit the web interface at

http://zork.net/mailman/listinfo/virgule-dev

Happy Hacking,
rillian
2002 March 25