├── Makefile ├── README.md ├── doc ├── 01-Introduction.md ├── 02-Release-Packages.md ├── 03-Dependencies.md ├── 04-OS-EOL.md └── packages-boost.md └── scripts └── update-readme.py /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all update-readme 2 | 3 | all: update-readme 4 | 5 | update-readme: 6 | ./scripts/update-readme.py 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Icinga Packaging 2 | ================ 3 | 4 | ![Icinga Logo](https://www.icinga.com/wp-content/uploads/2014/06/icinga_logo.png) 5 | 6 | ##### Contents 7 | 8 | 9 | 10 | - [About](#about) 11 | - [Packages and Sources](#packages-and-sources) 12 | - [Documentation](#documentation) 13 | - [Contributing](#contributing) 14 | - [License](#license) 15 | 16 | 17 | ## About 18 | 19 | This repository is the main issue tracker and support channel for [packages.icinga.com]. 20 | 21 | All packages build for the Icinga repository have their own packaging repository for RPM and Debian/Ubuntu builds. Though there are no longer on GitHub since we are using GitLab CI for building. 22 | 23 | This repository is the place to file issues and requests, please [open an issue](https://github.com/Icinga/icinga-packaging/issues/new). 24 | 25 | If you have general questions you can also join the [Icinga Community](https://community.icinga.com). 26 | 27 | ## Build System 28 | 29 | The packages are built and tested using GitLab CI, with Docker images and scripts from the [Icinga Docker Build System](https://git.icinga.com/build-docker/docs). 30 | 31 | ## Packages and Sources 32 | 33 | All public packages are built from GIT repositories in our [Icinga GitLab packaging group](https://git.icinga.com/packaging). 34 | 35 | Package sources are split into several repositories, based on OS, support or update behavior. 36 | 37 | ### Main Products 38 | 39 | Package | RPM | Debian/Ubuntu | Raspbian | Windows 40 | -------------|-----|---------------|----------|-------- 41 | [icinga2] | [![rpm](https://git.icinga.com/packaging/rpm-icinga2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icinga2) | [![deb](https://git.icinga.com/packaging/deb-icinga2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icinga2) | [![raspbian](https://git.icinga.com/packaging/raspbian-icinga2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/raspbian-icinga2) | [![windows](https://git.icinga.com/packaging/windows-icinga2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/windows-icinga2) | 42 | [icingaweb2] | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2) | [![raspbian](https://git.icinga.com/packaging/raspbian-icingaweb2/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/raspbian-icingaweb2) | 43 | [icingaweb2-module-director] | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-director/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-director) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-director/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-director) | 44 | 45 | ### Icinga Web Modules 46 | 47 | 51 | Package | RPM | Debian/Ubuntu 52 | --------|-----|-------------- 53 | [icingaweb2-module-audit](https://github.com/Icinga/icingaweb2-module-audit) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-audit/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-audit) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-audit/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-audit) 54 | [icingaweb2-module-businessprocess](https://github.com/Icinga/icingaweb2-module-businessprocess) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-businessprocess/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-businessprocess) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-businessprocess/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-businessprocess) 55 | [icingaweb2-module-cube](https://github.com/Icinga/icingaweb2-module-cube) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-cube/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-cube) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-cube/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-cube) 56 | [icingaweb2-module-elasticsearch](https://github.com/Icinga/icingaweb2-module-elasticsearch) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-elasticsearch/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-elasticsearch) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-elasticsearch/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-elasticsearch) 57 | [icingaweb2-module-generictts](https://github.com/Icinga/icingaweb2-module-generictts) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-generictts/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-generictts) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-generictts/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-generictts) 58 | [icingaweb2-module-graphite](https://github.com/Icinga/icingaweb2-module-graphite) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-graphite/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-graphite) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-graphite/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-graphite) 59 | [icingaweb2-module-idoreports](https://github.com/Icinga/icingaweb2-module-idoreports) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-idoreports/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-idoreports) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-idoreports/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-idoreports) 60 | [icingaweb2-module-nagvis](https://github.com/Icinga/icingaweb2-module-nagvis) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-nagvis/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-nagvis) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-nagvis/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-nagvis) 61 | [icingaweb2-module-pdfexport](https://github.com/Icinga/icingaweb2-module-pdfexport) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-pdfexport/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-pdfexport) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-pdfexport/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-pdfexport) 62 | [icingaweb2-module-pnp](https://github.com/Icinga/icingaweb2-module-pnp) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-pnp/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-pnp) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-pnp/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-pnp) 63 | [icingaweb2-module-reporting](https://github.com/Icinga/icingaweb2-module-reporting) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-reporting/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-reporting) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-reporting/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-reporting) 64 | [icingaweb2-module-vspheredb](https://github.com/Icinga/icingaweb2-module-vspheredb) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-vspheredb/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-vspheredb) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-vspheredb/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-vspheredb) 65 | [icingaweb2-module-x509](https://github.com/Icinga/icingaweb2-module-x509) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-x509/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-x509) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-x509/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-x509) 66 | 67 | 68 | These modules are mainly add-ons to Icinga Director: 69 | 70 | 71 | Package | RPM | Debian/Ubuntu 72 | --------|-----|-------------- 73 | [icingaweb2-module-aws](https://github.com/Icinga/icingaweb2-module-aws) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-aws/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-aws) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-aws/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-aws) 74 | [icingaweb2-module-fileshipper](https://github.com/Icinga/icingaweb2-module-fileshipper) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-fileshipper/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-fileshipper) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-fileshipper/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-fileshipper) 75 | [icingaweb2-module-puppetdb](https://github.com/Icinga/icingaweb2-module-puppetdb) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-puppetdb/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-puppetdb) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-puppetdb/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-puppetdb) 76 | [icingaweb2-module-vsphere](https://github.com/Icinga/icingaweb2-module-vsphere) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-vsphere/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-vsphere) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-vsphere/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-vsphere) 77 | 78 | 79 | Some modules provide libraries and no direct functionality: 80 | 81 | 82 | Package | RPM | Debian/Ubuntu 83 | --------|-----|-------------- 84 | [icingaweb2-module-incubator](https://github.com/Icinga/icingaweb2-module-incubator) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-incubator/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-incubator) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-incubator/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-incubator) 85 | [icingaweb2-module-ipl](https://github.com/Icinga/icingaweb2-module-ipl) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-ipl/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-ipl) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-ipl/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-ipl) 86 | [icingaweb2-module-reactbundle](https://github.com/Icinga/icingaweb2-module-reactbundle) | [![rpm](https://git.icinga.com/packaging/rpm-icingaweb2-module-reactbundle/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/rpm-icingaweb2-module-reactbundle) | [![deb](https://git.icinga.com/packaging/deb-icingaweb2-module-reactbundle/badges/master/pipeline.svg?style=flat-square)](https://git.icinga.com/packaging/deb-icingaweb2-module-reactbundle) 87 | 88 | 89 | ### Other 90 | 91 | Also some libraries are built a fulfill requirements, especially on older OS releases: 92 | 93 | Package | Repositories 94 | -------------------|------------------------- 95 | icinga-rpm-release | [RPM][rpm-icinga-rpm-release] 96 | boost | see [separate documentation](doc/packages-boost.md) 97 | 98 | ## Documentation 99 | 100 | Other documentation can be found in the [doc](doc/) directory. 101 | 102 | * [Dependencies by OS](doc/03-Dependencies.md) 103 | * [OS EOL dates](doc/04-OS-EOL.md) 104 | 105 | ## License 106 | 107 | Icinga software and the Icinga documentation are licensed under the terms of the GNU 108 | General Public License Version 2, you will find a copy of this license in the 109 | COPYING file included in the source package. 110 | 111 | [packages.icinga.com]: https://packages.icinga.com 112 | 113 | [icinga2]: https://github.com/Icinga/icinga2 114 | [icingaweb2]: https://github.com/Icinga/icingaweb2 115 | [icingaweb2-module-director]: https://github.com/Icinga/icingaweb2-module-director 116 | 117 | [rpm-icinga-rpm-release]: https://git.icinga.com/packaging/rpm-icinga-rpm-release 118 | -------------------------------------------------------------------------------- /doc/01-Introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Each package repository should contain at least two branches: 4 | 5 | * `master` which contains the current developed state 6 | * `release` which is the current released version 7 | 8 | We are not using tags as of now, but plan to do so. 9 | 10 | ## RPM Packages 11 | 12 | Each project requires a spec file with the same name as the project. In addition to that optional patch and 13 | source files can be added here. 14 | 15 | Everything except the spec file is copied to the `SOURCES/` directory during the RPM package 16 | build jobs. 17 | 18 | Example contents: 19 | 20 | * icinga2.spec 21 | * icinga2-critical-bug-1234.patch 22 | * file-to-include-as-source.txt 23 | 24 | Some scripts are used by the build infrastructure and help during package development too: 25 | 26 | Script | Description 27 | ----------------------|------------ 28 | get_snapshot | **Required.** Used to generate a snapshot tarball by the build system 29 | testing/start_test.sh | **Required.** Used for install tests in the build system 30 | diff | Allows to diff the repository contents with e.g. upstream. 31 | 32 | These scripts may differ in the individual projects. 33 | 34 | ## Debian/Ubuntu Packages 35 | 36 | Each project has sub directories for the specific distribution they are built on. 37 | This also allows for virtual directory names exposed to the build system. 38 | 39 | * jessie/ 40 | * stretch/ 41 | * ubuntu/ 42 | 43 | Each distribution directory provides the `debian/` directory where the package build 44 | sources and control files are located. 45 | 46 | * jessie/ 47 | * debian/ 48 | * control 49 | * changelog 50 | * rules 51 | * ... 52 | 53 | > **Tip** 54 | > 55 | > You can only update a specific distribution and release minor package updates. 56 | 57 | Script | Description 58 | ----------------------|------------ 59 | get_snapshot | **Required.** Used to generate a snapshot tarball by the build system 60 | testing/start_test.sh | **Required.** Used for install tests in the build system 61 | diff | Allows to diff the repository contents with e.g. upstream. 62 | dch | Helper script to update all changelog entries for a new release. 63 | 64 | 65 | 66 | ## Package Development 67 | 68 | * The `master` branch is the main development target. 69 | * The `release` branch is updated for releases, usually by merging `master` into it 70 | 71 | **RPM:** 72 | 73 | * Upstream sources are pulled with `spectool`. This uses the `Source` URLs specified in the spec file. 74 | * The package version is controlled by the `Version` and `Revision` entries in the spec file. 75 | * For minor releases, make sure to increment the revision! 76 | 77 | **Debian/Ubuntu:** 78 | 79 | * The `dch` helper script requires the Git configuration entries for `user.name` and `user.email`. 80 | * The package version is controlled by `debian/changelog` version entry. 81 | * Ensure that the **package revision** is correctly set inside the `debian/changelog` file. 82 | This must be passed to the `dch` helper script too. 83 | 84 | ``` 85 | ./dch 2.8.1-2 "Update to 2.8.1-2" 86 | ``` 87 | 88 | ## Test Feature Branches 89 | 90 | The build system allows to build feature branches based on upstream feature branches. 91 | 92 | The Icinga 2 feature branch called `feature/api-pretty` can be built with the 93 | corresponding `rpm/` prefix to the branch name in this repository, e.g. `rpm/feature/api-pretty`. 94 | -------------------------------------------------------------------------------- /doc/02-Release-Packages.md: -------------------------------------------------------------------------------- 1 | # Release Packages 2 | 3 | ## Requirements 4 | 5 | * Upstream project has a Git tag and GitHub release 6 | * build.icinga.com jobs are ready and working 7 | * Snapshot package builds are not failing 8 | 9 | ## Preparations 10 | 11 | ### Debian Builds on macOS 12 | 13 | > **Note** 14 | > 15 | > This release package type requires the `dch` script which only is available on Debian/Ubuntu. 16 | 17 | Instructions for macOS: 18 | 19 | ``` 20 | docker run -v $HOME/coding/icinga/rpm-icinga2:/mnt/packaging -ti ubuntu:xenial bash 21 | 22 | apt-get update 23 | apt-get install git dev-tools vim 24 | cd /mnt/packaging 25 | 26 | git config --global user.name "Michael Friedrich" 27 | git config --global user.email "michael.friedrich@icinga.com" 28 | ``` 29 | 30 | ### Checklist 31 | 32 | ```markdown 33 | * [ ] Upstream version files are uptodate 34 | * [ ] RPM and Deb specific version bumps 35 | * [ ] Changelog entries: Spec file (RPM) and control file (Debian) 36 | * [ ] Only commit release specific changes, separate additional fixes into commits 37 | * [ ] Snapshot builds on build.icinga.com are ok 38 | ``` 39 | 40 | #### Icinga 2 41 | 42 | ```markdown 43 | ## Test Systems: icinga2 44 | 45 | * [ ] Test system is running the latest snapshot packages. 46 | * [ ] Icinga 2 is running (monitoring state ok). 47 | * [ ] Cluster health check is ok. 48 | * [ ] No late checks, or any other breaking changes. 49 | ``` 50 | 51 | #### Icinga Web 2 52 | 53 | ```markdown 54 | ## Test Systems: icingaweb2 55 | 56 | * [ ] Test system is running the latest snapshot packages. 57 | * [ ] Icinga Web 2 is accessible and the monitoring health is ok. 58 | * [ ] Dashboards and listings present current monitoring data. 59 | ``` 60 | 61 | ## RPM Release 62 | 63 | Update required files. Ensure that the release commit only affects 64 | release specific files. If you need to add for example specific 65 | patches, commit them separately. 66 | 67 | ``` 68 | git checkout master && git pull 69 | 70 | vim icinga2.spec 71 | ``` 72 | 73 | - Edit `Version` and `Revision` 74 | - Add a changelog entry 75 | 76 | ``` 77 | git commit -av -m "Release 2.8.1-1" 78 | git push origin master 79 | 80 | git checkout release && git pull 81 | git merge master 82 | git push origin release 83 | ``` 84 | 85 | For minor releases just update `release`, and merge it back to `master`. 86 | 87 | ## DEB Release 88 | 89 | Update required files. Ensure that the release commit only affects 90 | release specific files. If you need to add for example specific 91 | patches, commit them separately. 92 | 93 | ``` 94 | git checkout master && git pull 95 | 96 | ./dch 2.8.1-1 "Update to 2.8.1" 97 | 98 | git commit -av -m "Release 2.8.1-1" 99 | git push origin master 100 | 101 | git checkout release && git pull 102 | git merge master 103 | git push origin release 104 | ``` 105 | 106 | For minor releases just update `release`, and merge it back to `master`. 107 | 108 | ## Build Release Package 109 | 110 | Once the release commit is pushed to `release` branch, you can start with building the released packages. 111 | 112 | Go to [build.icinga.com](https://build.icinga.com) and log in. Navigate into the 113 | project's release tree. 114 | 115 | Each distribution needs to be started manually by kicking off the `-0source` build job. 116 | 117 | For example open the [icinga2-release](https://build.icinga.com/job/icinga2-release/) tab 118 | and start each `*-0source` job. 119 | 120 | The build pipeline triggers additional jobs: 121 | 122 | - Source package generation (started by you) 123 | - (Binary) package builds 124 | - Specific tests for this project 125 | 126 | It then stops for review. This allows to inspect possible build failures prior to releasing 127 | a broken package to users. 128 | 129 | ### Publish Release Package 130 | 131 | In order to publish the built release packages, start the `-3-publish` jobs for each 132 | distribution manually. 133 | 134 | > **Tip** 135 | > 136 | > Start with RPM package jobs and kick off the Debian package jobs once succeeded. 137 | 138 | Steps: 139 | 140 | * Click the `Build with parameters` button on a `*-3-publish` job. 141 | * Check the checkbox `allow_release` to actually publish the release. 142 | * Click the `Build` button. 143 | 144 | 145 | ### Windows Release Package 146 | 147 | > **Note** 148 | > 149 | > This builds the Icinga 2 Windows client package only. 150 | 151 | Navigate to the [icinga2-windoows-package](https://build.icinga.com/view/Icinga%202/job/icinga2-windows-package/) job 152 | and click on the `Build with Parameters` entry. 153 | 154 | - branch: `tags/v2.8.1` 155 | - pkgname: `v2.8.1` 156 | - Click the `Build` button 157 | 158 | This job publishes the binary package directly onto [packages.icinga.com](https://packages.icinga.com). 159 | 160 | Upload the package to [chocolatey](https://chocolatey.org/packages/upload). 161 | -------------------------------------------------------------------------------- /doc/03-Dependencies.md: -------------------------------------------------------------------------------- 1 | # Dependencies by OS 2 | 3 | The dependencies versions shipped by 4 | [the officially supported OSes](https://icinga.com/support/details/). 5 | 6 | ## Icinga 2 7 | 8 | Dependency | Debian 8 | 9 | Ubuntu 16.04 | 18.04 | 18.10 9 | -----------|----------|---------|--------------|--------|------- 10 | CMake | 3.0.2 | 3.7.2 | 3.5.1 | 3.10.2 | 3.12.1 11 | make | 4.0 | 4.1 | 4.1 | 4.1 | 4.2.1 12 | GCC | 4.9.2 | 6.3.0 | 5.3.1 | 7.3.0 | 8.2.0 13 | pkg-config | 0.28 | 0.29 | 0.29.1 | 0.29.1 | 0.29.1 14 | OpenSSL | 1.0.1t | 1.1.0j | 1.0.2g | 1.1.0g | 1.1.1 15 | Boost | 1.55.0 | 1.62.0 | 1.58.0 | 1.65.1 | 1.67.0 16 | bison | 3.0.2 | 3.0.4 | 3.0.4 | 3.0.4 | 3.0.4 17 | flex | 2.5.39 | 2.6.1 | 2.6.0 | 2.6.4 | 2.6.4 18 | systemd | 215 | 232 | 229 | 237 | 239 19 | MySQL | 5.5.62 | 10.1.37 | 5.7.25 | 5.7.25 | 5.7.25 20 | PostgreSQL | 9.4.21 | 9.6.11 | 9.5.14 | 10.6 | 10.6 21 | YAJL | 2.1.0 | 2.1.0 | 2.1.0 | 2.1.0 | 2.1.0 22 | libedit | 3.1 | 3.1 | 3.1 | 3.1 | 3.1 23 | 24 | Dependency | CentOS \* 6 | 7 | Fedora 28 | 29 25 | -----------|-------------|--------|-----------|-------- 26 | CMake | 3.6.1 | 3.13.4 | 3.11.2 | 3.12.1 27 | make | 3.81 | 3.82 | 4.2.1 | 4.2.1 28 | GCC | 7.3.1 | 8.2.1 | 8.2.1 | 8.2.1 29 | pkg-config | 0.23 | 0.27.1 | 0.29.1 | 0.29.1 30 | OpenSSL | 1.0.1e | 1.0.2k | 1.1.0i | 1.1.1a 31 | Boost | 1.48.0 | 1.53.0 | 1.66.0 | 1.66.0 32 | bison | 2.4.1 | 3.0.4 | 3.0.4 | 3.0.5 33 | flex | 2.5.35 | 2.5.37 | 2.6.1 | 2.6.1 34 | systemd | N/A | 219 | 238 | 239 35 | MySQL | 10.2.8 | 10.2.8 | 10.2.21 | 10.3.12 36 | PostgreSQL | 9.6.10 | 9.6.10 | 10.6 | 10.7 37 | YAJL | 1.0.7 | 2.0.4 | 2.1.0 | 2.1.0 38 | libedit | 2.11 | 3.0 | 3.1 | 3.1 39 | ncurses | 5.7 | 5.9 | 6.1 | 6.1 40 | 41 | \* with SCL and EPEL 42 | 43 | Dependency | SLES 11.4 | 12.3 | 12.4 | 15.0 | openSUSE 42.3 | 15.0 44 | -----------|-----------|---------|---------|---------|---------------|-------- 45 | CMake | | 3.5.2 | 3.5.2 | 3.10.2 | 3.5.2 | 3.10.2 46 | make | | 4.0 | 4.0 | 4.2.1 | 4.0 | 4.2.1 47 | GCC | | 4.8 | 4.8 | 7 | 4.8 | 7 48 | pkg-config | | 0.28 | 0.28 | 0.29.2 | 0.28 | 0.29.2 49 | OpenSSL | | 1.0.2j | 1.0.2p | 1.1.0i | 1.0.2j | 1.1.0i 50 | Boost | | 1.54.0 | 1.54.0 | 1.66.0 | 1.54.0 | 1.66.0 51 | bison | | 2.7 | 2.7 | 3.0.4 | 2.7 | 3.0.4 52 | flex | | 2.5.37 | 2.5.37 | 2.6.4 | 2.5.37 | 2.6.4 53 | systemd | | 228 | 228 | 234 | 228 | 234 54 | MariaDB | | 10.0.35 | 10.2.21 | 10.2.22 | 10.0.35 | 10.2.15 55 | PostgreSQL | | 10.6 | 10.6 | 10.6 | 9.6 | 10 56 | YAJL | | 2.0.1 | 2.0.1 | 2.1.0 | 2.0.1 | 2.1.0 57 | libedit | | 3.1 | 3.1 | 3.1 | 3.1 | 3.1 58 | ncurses | | 5.9 | 5.9 | 6.1 | 5.9 | 6.1 59 | 60 | Windows doesn't ship such dependencies by itself so the packagers 61 | have to install all of them from upstream. 62 | -------------------------------------------------------------------------------- /doc/04-OS-EOL.md: -------------------------------------------------------------------------------- 1 | # OS EOL dates 2 | 3 | [The officially supported OSes](https://icinga.com/support/support-details/) 4 | end-of-life dates: 5 | 6 | OS | Version | Supported until 7 | ---------|--------------|-------------------------- 8 | Debian | 8 jessie | 2020-06-06 9 | Debian | 9 stretch | approx. 2022 (LTS) 10 | Debian | 10 buster | approx. 2024 (LTS) 11 | Ubuntu | 16.04 xenial | 2021-04 (LTS) 12 | Ubuntu | 18.04 bionic | 2023-04 (LTS) 13 | Ubuntu | 20.04 focal | 2025-04 (LTS) 14 | Ubuntu | 21.04 hirsut | 2022-01 15 | RHEL | 6 | 2020-11-30 16 | RHEL | 7 | 2024-06-30 17 | RHEL | 8 | approx. 2027 18 | Fedora | 30 | (1 month after Fedora 32) 19 | Fedora | 31 | (1 month after Fedora 33) 20 | SLES | 12.4 | 2020-06-30 21 | SLES | 12.5 | (6 months after 12.6 release) 22 | SLES | 12.X | 2024-10-31 23 | SLES | 15.0 | 2019-12-31 24 | SLES | 15.1 | 2021-01-31 25 | SLES | 15.2 | 2021-12-31 26 | SLES | 15.3 | (6 months after 15.4 release) 27 | SLES | 15.X | 2028-06-31 28 | openSUSE | 15.1 | 2021-02-02 29 | openSUSE | 15.2 | 2021-12-31 30 | openSUSE | 15.3 | 2022-10-30 31 | Windows | Server 2012 | 2023-10-10 32 | Windows | Server 2016 | 2027-01-12 33 | Windows | Server 2019 | approx. 2028 34 | 35 | 36 | ## Supported Release Cycles 37 | 38 | OS | Type | Documentation 39 | -----------------------------|------------------------|--------------------------------------------------------------------------------------------------- 40 | Debian | Full Support and LTS | [wiki.debian.org](https://wiki.debian.org/DebianReleases#Production_Releases) 41 | Ubuntu | LTS and Standard | [wiki.ubuntu.com](https://wiki.ubuntu.com/Releases) 42 | RedHat Enterprise Linux | Maintainance Support 2 | [access.redhat.com](https://access.redhat.com/support/policy/updates/errata#Life_Cycle_Dates) 43 | Fedora | Normal Maintenance | [fedoraproject.org](https://fedoraproject.org/wiki/Fedora_Release_Life_Cycle#Maintenance_Schedule) 44 | SUSE Linux Enterprise Server | General Support | [suse.com](https://www.suse.com/lifecycle/) 45 | openSUSE | Lifetime Support | [opensuse.org](https://en.opensuse.org/Lifetime) 46 | Windows | Extended Support | [support.microsoft.com](https://support.microsoft.com/en-us/lifecycle/search/1163) 47 | 48 | Explicitly not supported are: 49 | * [Ubuntu EMS](https://www.ubuntu.com/esm) 50 | * [RedHat Extended Life-cycle Support / EUS Add-On](https://access.redhat.com/solutions/22763) 51 | * [SUSE LTSS - Long Term Service Pack Support](https://www.suse.com/de-de/products/long-term-service-pack-support/) 52 | -------------------------------------------------------------------------------- /doc/packages-boost.md: -------------------------------------------------------------------------------- 1 | Boost Packages 2 | ============== 3 | 4 | ## Icinga 2 Requirements 5 | 6 | Version | Minimum Boost 7 | --------|-------------- 8 | 2.11 | >= 1.66 9 | 2.9 | >= 1.53 10 | 2.8 | >= 1.48 11 | 12 | ## Repositories 13 | 14 | Packages provided from Icinga are built with the following sources: 15 | 16 | * [suse-boost](https://git.icinga.com/packaging/suse-boost) for SLES and openSUSE 17 | * [redhat-boost](https://git.icinga.com/packaging/redhat-boost) for RHEL and compatible 18 | * [deb-boost](https://git.icinga.com/packaging/deb-boost) for Debian and Ubuntu 19 | * [raspbian-boost](https://git.icinga.com/packaging/raspbian-boost) for Raspbian on Raspberry Pi 20 | 21 | ## Boost Package Distribution 22 | 23 | This list where the required Boost version is not available in the base Operating System, and has to be acquired 24 | from additional repositories. 25 | 26 | Usually we only reference semi-official repositories or the Icinga official releases. 27 | 28 | ### Icinga 2.11 29 | 30 | OS | Release | Package | Version | Distribution 31 | --------------|---------|-------------------------------|---------|------------------- 32 | RHEL / CentOS | 6 | icinga-boost169 | 1.69.0 | [Icinga EPEL] 33 | RHEL / CentOS | 7 | [boost169][epel-boost169] | 1.69.0 | [Fedora EPEL] 34 | SLES | 12.3 | icinga-boost169 | 1.69.0 | [Icinga SUSE] 35 | SLES | 12.4 | icinga-boost169 | 1.69.0 | [Icinga SUSE] 36 | openSUSE | 42.3 | icinga-boost169 | 1.69.0 | [Icinga openSUSE] 37 | Debian | jessie | icinga-boost1.67 | 1.67.0 | [Icinga Debian] 38 | Debian | stretch | [boost1.67][debian-boost1.67] | 1.67.0 | [Debian Backports] 39 | Ubuntu | trusty | icinga-boost1.67 | 1.67.0 | [Icinga Ubuntu] 40 | Ubuntu | xenial | icinga-boost1.67 | 1.67.0 | [Icinga Ubuntu] 41 | Ubuntu | bionic | icinga-boost1.67 | 1.67.0 | [Icinga Ubuntu] 42 | 43 | > Note: Raspbian jessie and stretch will be added in the future 44 | 45 | ### Icinga 2.8 46 | 47 | > Note: These are legacy builds after the release of Icinga 2.11 48 | 49 | * SLES 11.4 50 | * RHEL 5 51 | * RHEL 6 52 | 53 | You can find the old sources under [rpm-boost-old](https://git.icinga.com/packaging/rpm-boost-old). 54 | 55 | [Icinga EPEL]: https://packages.icinga.com/epel 56 | [Icinga SUSE]: https://packages.icinga.com/SUSE 57 | [Icinga openSUSE]: https://packages.icinga.com/openSUSE 58 | [Icinga Debian]: https://packages.icinga.com/debian 59 | [Icinga Ubuntu]: https://packages.icinga.com/ubuntu 60 | [Fedora EPEL]: https://fedoraproject.org/wiki/EPEL 61 | [Debian Backports]: https://backports.debian.org 62 | [debian-boost1.67]: https://tracker.debian.org/pkg/boost1.67 63 | [epel-boost169]: https://apps.fedoraproject.org/packages/boost 64 | 65 | -------------------------------------------------------------------------------- /scripts/update-readme.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import re 4 | 5 | README_FILE = 'README.md' 6 | 7 | PACKAGES_PATTERN = r"(.*?)\s*\n" 8 | PACKAGES_BADGES_PATTERN = r".*" 9 | 10 | BASEURL = "https://git.icinga.com/packaging" 11 | 12 | def build_badge(name, variant): 13 | project = variant + "-" + name 14 | return "[![%s](%s/%s/badges/master/pipeline.svg?style=flat-square)](%s/%s)" % ( 15 | variant, BASEURL, project, BASEURL, project) 16 | 17 | def render_badges(name, variants): 18 | text = " " % (name, ",".join(variants)) 19 | 20 | for variant in variants: 21 | text += build_badge(name, variant) + " | " 22 | 23 | return text 24 | 25 | def render_packages(config, 26 | pkgs=[], 27 | prefix='', 28 | upstream='https://github.com/Icinga/%s', 29 | sorted=True): 30 | text = "\n" % (config) 31 | 32 | text += "Package | RPM | Debian/Ubuntu\n" 33 | text += "--------|-----|--------------\n" 34 | 35 | if sorted: 36 | pkgs.sort() 37 | 38 | for package in pkgs: 39 | if prefix: 40 | package = prefix + package 41 | 42 | text += ("[%s](" + upstream + ") | ") % (package, package) 43 | text += build_badge(package, "rpm") 44 | text += " | " 45 | text += build_badge(package, "deb") 46 | text += "\n" 47 | 48 | text += "\n\n" 49 | 50 | return text 51 | 52 | def parse_config(text): 53 | config = {} 54 | (pkgs, options) = re.split(r"\s*\|\s*", text.strip(), 1, re.DOTALL) 55 | config['pkgs'] = re.split(r"[\s\r\n]*", pkgs.strip()) 56 | for opt in re.split(r"\s+", options.strip()): 57 | match = re.match(r"^(\w+)=(.+)$", opt) 58 | if match and match.group(1) != 'pkgs': 59 | config[match.group(1)] = match.group(2) 60 | else: 61 | raise Exception("Option '%s' is invalid!" % opt) 62 | return config 63 | 64 | def main(): 65 | with open(README_FILE, 'r') as _f: 66 | content = _f.read() 67 | 68 | for match in re.finditer(PACKAGES_PATTERN, content, re.DOTALL): 69 | config_line = match.group(1) 70 | config = parse_config(config_line) 71 | config['config'] = config_line 72 | result = render_packages(**config) 73 | 74 | content = re.sub(re.escape(match.group(0)), result, content, re.DOTALL) 75 | 76 | for match in re.finditer(PACKAGES_BADGES_PATTERN, content): 77 | name = match.group(1) 78 | variants = match.group(2).split(",") 79 | result = render_badges(name, variants) 80 | 81 | content = re.sub(re.escape(match.group(0)), result, content) 82 | 83 | with open(README_FILE, 'w') as _f: 84 | _f.write(content) 85 | 86 | main() 87 | --------------------------------------------------------------------------------