119 lines
3.6 KiB
Markdown
119 lines
3.6 KiB
Markdown
|
|
# Ubuntu Build Environment
|
||
|
|
|
||
|
|
## Table of contents
|
||
|
|
|
||
|
|
* [Introduction](#introduction)
|
||
|
|
* [Preparation](#preparation)
|
||
|
|
* [Installation for package building](#installation-for-package-building)
|
||
|
|
* [Install Docker](#install-docker)
|
||
|
|
* [Translation work](#translation-work)
|
||
|
|
* [Generate documents in Zonemaster/Zonemaster](#generate-documents-in-zonemasterzonemaster)
|
||
|
|
* [Installation for mdBook](#installation-for-mdbook)
|
||
|
|
|
||
|
|
## Introduction
|
||
|
|
|
||
|
|
These are instructions for creating a build environment for Zonemaster components
|
||
|
|
based on Perl. This is not meant as instructions for installing Zonemaster
|
||
|
|
itself. You should normally use the version of these instructions found in the
|
||
|
|
develop branch.
|
||
|
|
|
||
|
|
This instruction is for creating it on Ubuntu. See other files for other OSs.
|
||
|
|
|
||
|
|
This description targets to create a system that can be used for the following
|
||
|
|
needs for testing and releasing Zonemaster:
|
||
|
|
|
||
|
|
1. Git work on the Zonemaster repositories.
|
||
|
|
2. Creating distributing packages for testing or uploading to CPAN.
|
||
|
|
3. Creating Docker imaging for testing or uploading to Docker Hub.
|
||
|
|
4. Updating PO files (translation).
|
||
|
|
5. Generating the files listed in the [utils README].
|
||
|
|
|
||
|
|
|
||
|
|
## Preparation
|
||
|
|
|
||
|
|
1. Make a clean installation of [Ubuntu] 22.04.
|
||
|
|
|
||
|
|
2. Update the package database.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
sudo apt-get update
|
||
|
|
```
|
||
|
|
|
||
|
|
## Installation for package building
|
||
|
|
|
||
|
|
1. Install dependencies and tools:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
sudo apt-get install git cpanminus gettext autoconf automake build-essential libdevel-checklib-perl libextutils-pkgconfig-perl libmime-base32-perl libmodule-install-xsutil-perl libssl-dev libtest-exception-perl libidn2-dev libtool
|
||
|
|
```
|
||
|
|
|
||
|
|
2. Clone 'develop' branch from all Zonemaster repositories except GUI:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
git clone -b develop https://github.com/zonemaster/zonemaster.git
|
||
|
|
for d in ldns engine cli backend; do git clone -b develop https://github.com/zonemaster/zonemaster-$d.git; done
|
||
|
|
```
|
||
|
|
|
||
|
|
## Install Docker
|
||
|
|
|
||
|
|
This step is only needed if Docker images are to be built.
|
||
|
|
|
||
|
|
The Docker version installed by the command below is the version found in the
|
||
|
|
Ubuntu package repository. If a newer version is needed, follow the
|
||
|
|
instructions on the [Install Docker Engine on Ubuntu] page instead.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
sudo apt-get install docker.io
|
||
|
|
```
|
||
|
|
|
||
|
|
Add yourself to the Docker group.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
sudo usermod -aG docker $LOGNAME
|
||
|
|
```
|
||
|
|
|
||
|
|
## Translation work
|
||
|
|
|
||
|
|
Install for translation (handling PO files), only needed if PO files are to be
|
||
|
|
handled.
|
||
|
|
|
||
|
|
* Follow "Software preparation" in [Instructions for translators] for
|
||
|
|
Ubuntu (usually use the version in develop branch).
|
||
|
|
|
||
|
|
## Generate documents in Zonemaster/Zonemaster
|
||
|
|
|
||
|
|
Only needed if the files listed in [utils README] are to be generated (updated).
|
||
|
|
|
||
|
|
* Follow the [Installation instructions] for Zonemaster-Engine for Ubuntu.
|
||
|
|
* Only install the dependencies from binary packages and CPAN (if any).
|
||
|
|
* Do not install neither Zonemaster::LDNS nor Zonemaster::Engine at this stage.
|
||
|
|
|
||
|
|
## Installation for mdBook
|
||
|
|
|
||
|
|
> Note that building with Cargo below can be time consuming.
|
||
|
|
|
||
|
|
Needed for release process:
|
||
|
|
|
||
|
|
```
|
||
|
|
sudo apt install rustc
|
||
|
|
```
|
||
|
|
```
|
||
|
|
cargo install mdbook-linkcheck
|
||
|
|
```
|
||
|
|
Needed to build the mdBook (not part of release process):
|
||
|
|
|
||
|
|
```
|
||
|
|
sudo apt install rustc
|
||
|
|
```
|
||
|
|
```
|
||
|
|
cargo install mdbook mdbook-linkcheck
|
||
|
|
```
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
[Install Docker Engine on Ubuntu]: https://docs.docker.com/engine/install/ubuntu/
|
||
|
|
[Installation instructions]: ../../public/installation/zonemaster-engine.md
|
||
|
|
[Instructions for translators]: ../maintenance/Instructions-for-translators.md#software-preparation
|
||
|
|
[Ubuntu]: https://ubuntu.com/
|
||
|
|
[Utils README]: ../../../utils/README.md
|