Building Drizzle from Source

Obtaining the Source

The latest source code can always be found on OpenDev.

git clone https://opendev.org/drizzle/drizzle

Building the Image

Drizzle focuses its attention on containerized deployments. This is not only the sane way to run a service like Drizzle, but also allows us to keep our focus on a single userspace and compiler version.

podman build .

or

docker build -f Containerfile .

Compiling the Source

If you really must, and you’re on the most recent Ubuntu or Debian, things should work. But seriously, just build the container image.

bindep

The OS dependencies are expressed in bindep.txt. It’s human readable, but you should grab bindep and use it.

You can either install the python version with pip (recommend using pipx for utilities like this):

pipx install bindep

or you can copy the rust version out of a container image:

podman unshare sh -c '
  mount_path=$(podman image mount quay.io/inaugust/bindep-rs)
  cp "$mount_path/usr/local/bin/bindep" ./bindep
  chmod +x bindep
  podman image unmount quay.io/inaugust/bindep-rs'

You can do the same thing with docker, but you have to launch a container first then copy the file out of the running container.

Dependencies

To get the list of packages you need to build, run:

bindep -b compile

or, you know:

apt install $(bindep -b compile)

Compiling

Compiling is done by performing the standard automake commands from the top level directory inside the source:

autoreconf -i
./configure
make