The patch looks good, and I'll go ahead and see if it applies cleanly. The important thing is that it doesn't try to change too many things at the same time, and you've documented what it is intended to do. That's really really good. By the way -- in case you haven't figured it out yet, try not to change any of the <?_("output strings")> because, as you've probably guessed, those get fed into a translator for international languages and if you change the string it throws away all of the translations. And you probably also noticed that WebCit is being completely rewritten, because it's based on 27 year old spaghetti code that's been so badly abused that it isn't worth trying to fix. The template engine in particular is super ugly -- it was meant to separate the code from the markup but it ended up being even harder to work with than it was before. When you get your development system up and running you'll be able to look at webcit-ng and see how it's coming together. As for how to build the development system -- you can take a look at the build script for either the Docker container or Easy Install to get an idea of how it comes together. [ https://easyinstall.citadel.org/install ] That's a good place to start. Ignore the bit about `ctdlvisor` since that's container specific. Basically, the order goes like this: 1. Install the development packages for all dependencies ... on a CentOS system that would be yum groupinstall "Development Tools" yum install \ zlib-devel \ openldap-devel \ openssl-devel \ libcurl-devel \ libical-devel \ expat-devel \ readline-devel 2. Install the Berkeley DB library -- download it from https://easyinstall.citadel.org/db-6.2.32.NC.tar.gz and unpack it, then cd db-6.2.32.NC/build_unix ../dist/configure --prefix=/usr/local --disable-static --disable-compat185 --disable-cxx --disable-debug --disable-dump185 --disable-java --disable-tcl --disable-test --without-rpm make make install 3. Clone the git repository git clone git://git.citadel.org/citadel 4. Build and install libcitadel cd citadel/libcitadel ./bootstrap ./configure make make install 5. Build the Citadel Server. I usually run it from the build directory, in the foreground, when I'm using it. cd citadel/citadel ./bootstrap ./configure make and then run it with: ./citserver -x9 -h`pwd` 6. In another window, build WebCit. I usually run this from its build directory as well. cd citadel/webcit ./bootstrap ./configure make and then run it with: ./webcit -p80 uds ~/citadel/citadel 7. If you want the text mode client, it's the same routine again, but in citadel/textclient
That ought to be enough to get you started. Thanks for your interest in helping out with development!