├── 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 | 
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] | [](https://git.icinga.com/packaging/rpm-icinga2) | [](https://git.icinga.com/packaging/deb-icinga2) | [](https://git.icinga.com/packaging/raspbian-icinga2) | [](https://git.icinga.com/packaging/windows-icinga2) |
42 | [icingaweb2] | [](https://git.icinga.com/packaging/rpm-icingaweb2) | [](https://git.icinga.com/packaging/deb-icingaweb2) | [](https://git.icinga.com/packaging/raspbian-icingaweb2) |
43 | [icingaweb2-module-director] | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-director) | [](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) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-audit) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-audit)
54 | [icingaweb2-module-businessprocess](https://github.com/Icinga/icingaweb2-module-businessprocess) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-businessprocess) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-businessprocess)
55 | [icingaweb2-module-cube](https://github.com/Icinga/icingaweb2-module-cube) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-cube) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-cube)
56 | [icingaweb2-module-elasticsearch](https://github.com/Icinga/icingaweb2-module-elasticsearch) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-elasticsearch) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-elasticsearch)
57 | [icingaweb2-module-generictts](https://github.com/Icinga/icingaweb2-module-generictts) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-generictts) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-generictts)
58 | [icingaweb2-module-graphite](https://github.com/Icinga/icingaweb2-module-graphite) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-graphite) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-graphite)
59 | [icingaweb2-module-idoreports](https://github.com/Icinga/icingaweb2-module-idoreports) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-idoreports) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-idoreports)
60 | [icingaweb2-module-nagvis](https://github.com/Icinga/icingaweb2-module-nagvis) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-nagvis) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-nagvis)
61 | [icingaweb2-module-pdfexport](https://github.com/Icinga/icingaweb2-module-pdfexport) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-pdfexport) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-pdfexport)
62 | [icingaweb2-module-pnp](https://github.com/Icinga/icingaweb2-module-pnp) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-pnp) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-pnp)
63 | [icingaweb2-module-reporting](https://github.com/Icinga/icingaweb2-module-reporting) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-reporting) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-reporting)
64 | [icingaweb2-module-vspheredb](https://github.com/Icinga/icingaweb2-module-vspheredb) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-vspheredb) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-vspheredb)
65 | [icingaweb2-module-x509](https://github.com/Icinga/icingaweb2-module-x509) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-x509) | [](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) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-aws) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-aws)
74 | [icingaweb2-module-fileshipper](https://github.com/Icinga/icingaweb2-module-fileshipper) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-fileshipper) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-fileshipper)
75 | [icingaweb2-module-puppetdb](https://github.com/Icinga/icingaweb2-module-puppetdb) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-puppetdb) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-puppetdb)
76 | [icingaweb2-module-vsphere](https://github.com/Icinga/icingaweb2-module-vsphere) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-vsphere) | [](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) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-incubator) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-incubator)
85 | [icingaweb2-module-ipl](https://github.com/Icinga/icingaweb2-module-ipl) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-ipl) | [](https://git.icinga.com/packaging/deb-icingaweb2-module-ipl)
86 | [icingaweb2-module-reactbundle](https://github.com/Icinga/icingaweb2-module-reactbundle) | [](https://git.icinga.com/packaging/rpm-icingaweb2-module-reactbundle) | [](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)" % (
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 |
--------------------------------------------------------------------------------