Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MON-34908 Sync Centreon next 23.10 (Jira release #19662#) #1143

Merged
merged 8 commits into from
Feb 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/docker/Dockerfile.centreon-collect-alma8
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ dnf --best install -y cmake \

dnf update libarchive

pip3 install conan==1.57.0 --prefix=/usr --upgrade
pip3 install conan==1.62.0 --prefix=/usr --upgrade
rm -rf ~/.conan/profiles/default

EOF
Expand Down
2 changes: 1 addition & 1 deletion .github/docker/Dockerfile.centreon-collect-alma9
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ dnf --best install -y cmake \
nfpm \
sudo

pip3 install conan==1.57.0 --prefix=/usr --upgrade
pip3 install conan==1.62.0 --prefix=/usr --upgrade
rm -rf ~/.conan/profiles/default

EOF
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ localedef -i en_US -c -f UTF-8 -A /usr/share/locale/locale.alias en_US.UTF-8

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip3 install conan==1.57.0
pip3 install conan==1.62.0
ln -s /usr/local/bin/conan /usr/bin/conan
rm -rf ~/.conan/profiles/default

Expand Down
2 changes: 1 addition & 1 deletion .github/docker/Dockerfile.centreon-collect-mysql-alma9
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ dnf --best install -y cmake \
nfpm \
sudo

pip3 install conan==1.57.0 --prefix=/usr --upgrade
pip3 install conan==1.62.0 --prefix=/usr --upgrade
rm -rf ~/.conan/profiles/default

EOF
Expand Down
214 changes: 214 additions & 0 deletions .github/workflows/libzmq.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
name: libzmq

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/libzmq.yml'
push:
branches:
- develop
- dev-[2-9][0-9].[0-9][0-9].x
- master
- "[2-9][0-9].[0-9][0-9].x"
paths:
- '.github/workflows/libzmq.yml'

jobs:
get-version:
uses: ./.github/workflows/get-version.yml

package-rpm:
needs: [get-version]

strategy:
fail-fast: false
matrix:
include:
- image: packaging-alma8
distrib: el8
arch: amd64
- image: packaging-alma9
distrib: el9
arch: amd64

runs-on: ubuntu-22.04

container:
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:${{ needs.get-version.outputs.version }}
credentials:
username: ${{ secrets.DOCKER_REGISTRY_ID }}
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }}

name: package ${{ matrix.distrib }}

steps:
- name: package rpm
run: |
dnf install -y wget rpmdevtools rpmlint epel-release
if [ "${{ matrix.distrib }}" = "el8" ]; then
dnf config-manager --set-enabled powertools
rpm --import https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux
else
dnf config-manager --set-enabled crb
fi
dnf install -y asciidoc autoconf automake gcc gcc-c++ glib2-devel libbsd-devel libtool make rpm-build xmlto

cd /github/home
wget -O - https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.5.tar.gz | tar zxvf -
mkdir -p /github/home/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
cp libzmq-4.3.5/packaging/redhat/zeromq.spec /github/home/rpmbuild/SPECS/
wget https://github.com/zeromq/libzmq/releases/download/v4.3.5/zeromq-4.3.5.tar.gz -O /github/home/rpmbuild/SOURCES/zeromq-4.3.5.tar.gz
rpmbuild -bb /github/home/rpmbuild/SPECS/zeromq.spec
cd -

mv /github/home/rpmbuild/RPMS/x86_64/*.rpm ./
rm -f zeromq-debugsource-*.rpm libzmq5-debuginfo-*.rpm
shell: bash

- name: cache rpm
uses: actions/cache/save@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
with:
path: ./*.rpm
key: ${{ github.run_id }}-${{ github.sha }}-rpm-libzmq-${{ matrix.distrib }}-${{ matrix.arch }}

package-deb:
needs: [get-version]

strategy:
fail-fast: false
matrix:
include:
- image: packaging-bullseye
distrib: bullseye
runner: ubuntu-22.04
arch: amd64
- image: packaging-bullseye-arm64
distrib: bullseye
runner: ["self-hosted", "collect-arm64"]
arch: arm64

runs-on: ${{ matrix.runner }}

container:
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}:${{ needs.get-version.outputs.version }}
credentials:
username: ${{ secrets.DOCKER_REGISTRY_ID }}
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }}

name: package ${{ matrix.distrib }} ${{ matrix.arch }}

steps:
- name: package deb
run: |
apt-get update
apt-get install -y debhelper dh-autoreconf dpkg-dev libkrb5-dev libnorm-dev libpgm-dev libsodium-dev libunwind8-dev libnss3-dev libgnutls28-dev libbsd-dev pkg-config asciidoc wget xmlto
wget -O - https://github.com/zeromq/libzmq/releases/download/v4.3.5/zeromq-4.3.5.tar.gz | tar zxvf -

cd zeromq-4.3.5
./configure
make
make install
cd ..

wget -O - https://github.com/zeromq/libzmq/archive/refs/tags/v4.3.5.tar.gz | tar zxvf -
cd libzmq-4.3.5
ln -s packaging/debian
sed -Ei 's/([0-9]+.[0-9]+.[0-9]+-[0-9]+.[0-9]+)/\1~${{ matrix.distrib }}/' debian/changelog
sed -Ei 's/UNRELEASED/${{ matrix.distrib }}/' debian/changelog
dpkg-buildpackage -us -uc -nc
cd ..

rm -f libzmq5-dbg_*.deb
shell: bash

- name: cache deb
uses: actions/cache/save@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
with:
path: ./*.deb
key: ${{ github.run_id }}-${{ github.sha }}-deb-libzmq-${{ matrix.distrib }}-${{ matrix.arch }}

deliver-rpm:
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }}
needs: [get-version, package-rpm]
environment: ${{ needs.get-version.outputs.environment }}
runs-on: [self-hosted, common]
strategy:
matrix:
include:
- distrib: el8
arch: amd64
- distrib: el9
arch: amd64

name: deliver ${{ matrix.distrib }}

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Publish RPM packages
uses: ./.github/actions/delivery
with:
module_name: libzmq
distrib: ${{ matrix.distrib }}
version: ${{ needs.get-version.outputs.version }}
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
cache_key: ${{ github.run_id }}-${{ github.sha }}-rpm-libzmq-${{ matrix.distrib }}-${{ matrix.arch }}
stability: ${{ needs.get-version.outputs.stability }}

deliver-deb:
if: ${{ contains(fromJson('["testing", "unstable"]'), needs.get-version.outputs.stability) }}
needs: [get-version, package-deb]
environment: ${{ needs.get-version.outputs.environment }}
runs-on: [self-hosted, common]
strategy:
matrix:
include:
- distrib: bullseye
arch: amd64
- distrib: bullseye
arch: arm64

name: deliver ${{ matrix.distrib }} ${{ matrix.arch }}

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Publish DEB packages
uses: ./.github/actions/delivery
with:
module_name: libzmq
distrib: ${{ matrix.distrib }}
version: ${{ needs.get-version.outputs.version }}
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
cache_key: ${{ github.run_id }}-${{ github.sha }}-deb-libzmq-${{ matrix.distrib }}-${{ matrix.arch }}
stability: ${{ needs.get-version.outputs.stability }}

promote:
needs: [get-version]
if: ${{ contains(fromJson('["stable"]'), needs.get-version.outputs.stability) && github.event_name != 'workflow_dispatch' }}
runs-on: [self-hosted, common]
strategy:
matrix:
distrib: [el8, el9, bullseye]

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Promote ${{ matrix.distrib }} to stable
uses: ./.github/actions/promote-to-stable
with:
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
module_name: libzmq
distrib: ${{ matrix.distrib }}
major_version: ${{ needs.get-version.outputs.version }}
minor_version: ${{ needs.get-version.outputs.patch }}
stability: ${{ needs.get-version.outputs.stability }}
repository_name: standard
2 changes: 1 addition & 1 deletion .github/workflows/package-collect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ jobs:

- name: Compile sources
run: |
sudo pip3 install conan==1.57.0 --prefix=/usr --upgrade
sudo pip3 install conan==1.62.0 --prefix=/usr --upgrade

sudo conan install . -s compiler.cppstd=17 -s compiler.libcxx=libstdc++11 --build=missing

Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ endif()
# Version.
set(COLLECT_MAJOR 23)
set(COLLECT_MINOR 10)
set(COLLECT_PATCH 2)
set(COLLECT_PATCH 3)
set(COLLECT_VERSION "${COLLECT_MAJOR}.${COLLECT_MINOR}.${COLLECT_PATCH}")
add_definitions(-DCENTREON_CONNECTOR_VERSION=\"${COLLECT_VERSION}\")

Expand Down
2 changes: 1 addition & 1 deletion engine/doc/engine-doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Whitelist (since 23.10)

In order to enforce security, user can add a whitelist to centreon-engine.
When the user add a file in /etc/centreon-engine-whitelist or in /usr/share/centreon-engine-whitelist, centengine only executes commands that match to the expressions given in these files.
When the user add a file in /etc/centreon-engine-whitelist or in /usr/share/centreon-engine/whitelist.conf.d, centengine only executes commands that match to the expressions given in these files.
Beware, Commands are checked after macros replacement by values, the entire line is checked, the script and his arguments.

### whitelist format
Expand Down
2 changes: 1 addition & 1 deletion engine/src/configuration/whitelist.cc
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,6 @@ whitelist& whitelist::instance() {

void whitelist::reload() {
static constexpr std::string_view directories[] = {
"/etc/centreon-engine-whitelist", "/usr/share/centreon-engine-whitelist"};
"/etc/centreon-engine-whitelist", "/usr/share/centreon-engine/whitelist.conf.d"};
_instance = std::make_unique<whitelist>(directories, directories + 2);
}