summaryrefslogtreecommitdiffstats
path: root/packaging/repoconfig
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--packaging/repoconfig/CMakeLists.txt250
-rw-r--r--packaging/repoconfig/Makefile35
-rwxr-xr-xpackaging/repoconfig/build-deb.sh55
-rwxr-xr-xpackaging/repoconfig/build-rpm.sh44
-rw-r--r--packaging/repoconfig/deb.changelog49
-rw-r--r--packaging/repoconfig/debian/changelog25
-rw-r--r--packaging/repoconfig/debian/compat1
-rw-r--r--packaging/repoconfig/debian/control19
-rw-r--r--packaging/repoconfig/debian/copyright10
-rwxr-xr-xpackaging/repoconfig/debian/rules21
-rw-r--r--packaging/repoconfig/debian/source/format1
-rw-r--r--packaging/repoconfig/netdata-edge.repo.al21
-rw-r--r--packaging/repoconfig/netdata-edge.repo.centos21
-rw-r--r--packaging/repoconfig/netdata-edge.repo.fedora21
-rw-r--r--packaging/repoconfig/netdata-edge.repo.ol21
-rw-r--r--packaging/repoconfig/netdata-edge.repo.suse19
-rw-r--r--packaging/repoconfig/netdata-repo.spec117
-rw-r--r--packaging/repoconfig/netdata.list.in2
-rw-r--r--packaging/repoconfig/netdata.repo.al21
-rw-r--r--packaging/repoconfig/netdata.repo.centos21
-rw-r--r--packaging/repoconfig/netdata.repo.dnf19
-rw-r--r--packaging/repoconfig/netdata.repo.fedora21
-rw-r--r--packaging/repoconfig/netdata.repo.ol21
-rw-r--r--packaging/repoconfig/netdata.repo.suse19
-rw-r--r--packaging/repoconfig/netdata.repo.zypp19
-rw-r--r--packaging/repoconfig/netdata.sources.in15
-rw-r--r--packaging/repoconfig/rpm.changelog18
27 files changed, 428 insertions, 478 deletions
diff --git a/packaging/repoconfig/CMakeLists.txt b/packaging/repoconfig/CMakeLists.txt
new file mode 100644
index 000000000..415ad8807
--- /dev/null
+++ b/packaging/repoconfig/CMakeLists.txt
@@ -0,0 +1,250 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+cmake_minimum_required(VERSION 3.16.0...3.30)
+
+list(APPEND RHEL_DISTROS centos centos-stream rocky almalinux cloudlinux)
+list(APPEND SUSE_DISTROS opensuse-leap opensuse-tumbleweed)
+list(APPEND RPM_DISTROS rhel opensuse ol amzn fedora)
+list(APPEND DEB_DISTROS debian ubuntu)
+
+set(DEB_GPG_KEY_SOURCE "https://repo.netdata.cloud/netdatabot.gpg.key")
+
+set(PACKAGE_VERSION 3)
+set(PACKAGE_RELEASE 4)
+
+set(CPACK_THREADS 0)
+set(CPACK_STRIP_FILES NO)
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "netdata")
+set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/packages")
+set(CPACK_PACKAGING_INSTALL_PREFIX "/")
+set(CPACK_PACKAGE_VENDOR "Netdata Inc.")
+set(CPACK_COMPONENT_NETDATA-REPO_PACKAGE_DESCRIPTION "Configuration for the official Netdata Stable package repository.")
+set(CPACK_COMPONENT_NETDATA-REPO-EDGE_PACKAGE_DESCRIPTION "Configuration for the official Netdata Edge package repository.")
+
+project(netdata-repoconfig VERSION "${PACKAGE_VERSION}.${PACKAGE_RELEASE}"
+ DESCRIPTION "Repository configuration for Netdata’s official native packages."
+ HOMEPAGE_URL "https://www.netdata.cloud/"
+ LANGUAGES NONE)
+
+function(extract_release_item _variable _item)
+ if(DEFINED "${_variable}")
+ return()
+ endif()
+
+ if(DEFINED OS_RELEASE_FILE)
+ else()
+ message(CHECK_START "Searching for os-release file")
+ find_file(OS_RELEASE_FILE os-release PATHS /etc /lib /usr/lib NO_DEFAULT_PATH)
+ if(${OS_RELEASE_FILE} STREQUAL "OS_RELEASE_FILE-NOTFOUND")
+ message(CHECK_FAIL "failed")
+ message(FATAL_ERROR "Could not find os-release file")
+ endif()
+
+ message(CHECK_PASS "${OS_RELEASE_FILE}")
+ endif()
+
+ message(CHECK_START "Extracting ${_item} from ${OS_RELEASE_FILE}")
+ execute_process(COMMAND sh -c ". ${OS_RELEASE_FILE} && printf %s $${_item}"
+ RESULT_VARIABLE _result
+ OUTPUT_VARIABLE _output)
+
+ if(NOT ${_result} EQUAL 0)
+ message(CHECK_FAIL "failed to parse ${OS_RELEASE_FILE}")
+ return()
+ elseif(${_output} STREQUAL "")
+ message(CHECK_FAIL "variable ${_item} not defined in ${OS_RELEASE_FILE}")
+ return()
+ endif()
+
+ message(CHECK_PASS ${_output})
+ set(${_variable} ${_output} PARENT_SCOPE)
+endfunction()
+
+function(require_command _variable _cmd)
+ if(DEFINED ${_variable})
+ return()
+ endif()
+
+ message(CHECK_START "Looking for ${_cmd}")
+
+ find_program(_result_${_cmd} ${_cmd})
+
+ if(${_result_${_cmd}} STREQUAL "_result_${_cmd}-NOTFOUND")
+ message(CHECK_FAIL "failed")
+ message(FATAL_ERROR "Unable to find required command: ${_cmd}")
+ endif()
+
+ message(CHECK_PASS "${_result_${_cmd}}")
+ set(${_variable} ${_result_${_cmd}} PARENT_SCOPE)
+endfunction()
+
+if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ extract_release_item("DISTRO" ID)
+
+ if(NOT DEFINED DISTRO)
+ message(FATAL_ERROR "Failed to auto-detect distro ID")
+ endif()
+
+ extract_release_item(DISTRO_VERSION VERSION_ID)
+
+ if(NOT DEFINED DISTRO_VERSION)
+ message(FATAL_ERROR "Failed to auto-detect distro version ID.")
+ endif()
+else()
+ message(FATAL_ERROR "Repository configuration packages can only be built on Linux")
+endif()
+
+if(${DISTRO} IN_LIST RHEL_DISTROS)
+ set(DISTRO "rhel")
+elseif(${DISTRO} STREQUAL "opensuse-leap")
+ set(DISTRO "opensuse")
+elseif(${DISTRO} STREQUAL "opensuse-tumbleweed")
+ set(DISTRO "opensuse")
+ set(DISTRO_VERSION "tumbleweed")
+endif()
+
+if(${DISTRO} IN_LIST DEB_DISTROS)
+ extract_release_item(SUITE VERSION_CODENAME)
+
+ if(NOT DEFINED SUITE)
+ message(FATAL_ERROR "Failed to determine version codename")
+ endif()
+
+ require_command(DPKG dpkg)
+ require_command(CURL curl)
+ require_command(GPG gpg)
+
+ set(DIST_NAME ${DISTRO})
+ message(STATUS "Generating stable repository configuration for ${DISTRO} ${SUITE}")
+ set(VARIANT stable)
+ configure_file(netdata.sources.in netdata.sources @ONLY)
+ message(STATUS "Generating edge repository configuration for ${DISTRO} ${SUITE}")
+ set(VARIANT edge)
+ configure_file(netdata.sources.in netdata-edge.sources @ONLY)
+ message(STATUS "Preparing changelogs")
+ set(PKG_NAME netdata-repo)
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/netdata-repo)
+ configure_file(deb.changelog netdata-repo/changelog @ONLY)
+ set(PKG_NAME netdata-repo-edge)
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/netdata-repo-edge)
+ configure_file(deb.changelog netdata-repo-edge/changelog @ONLY)
+
+ install(FILES ${CMAKE_BINARY_DIR}/netdata.sources
+ DESTINATION etc/apt/sources.list.d
+ COMPONENT netdata-repo)
+ install(FILES ${CMAKE_BINARY_DIR}/netdata-edge.sources
+ DESTINATION etc/apt/sources.list.d
+ COMPONENT netdata-repo-edge)
+
+ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/netdatabot.gpg.key
+ COMMENT "Fetch GPG key from ${DEB_GPG_KEY_SOURCE}"
+ COMMAND ${CURL} -f -L -o ${CMAKE_BINARY_DIR}/netdatabot.gpg.key ${DEB_GPG_KEY_SOURCE})
+
+ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/netdata.gpg
+ COMMENT "Dearmor ${CMAKE_BINARY_DIR}/netdatabot.gpg.key"
+ DEPENDS ${CMAKE_BINARY_DIR}/netdatabot.gpg.key
+ COMMAND ${GPG} --dearmor --output ${CMAKE_BINARY_DIR}/netdata.gpg ${CMAKE_BINARY_DIR}/netdatabot.gpg.key)
+ add_custom_target(dearmor_gpg_key
+ ALL
+ COMMENT "Dearmor ${CMAKE_BINARY_DIR}/netdatabot.gpg.key"
+ DEPENDS ${CMAKE_BINARY_DIR}/netdata.gpg)
+
+ install(FILES ${CMAKE_BINARY_DIR}/netdata.gpg
+ DESTINATION usr/share/keyrings
+ RENAME netdata-archive-keyring.gpg
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+ COMPONENT netdata-repo)
+
+ install(FILES ${CMAKE_BINARY_DIR}/netdata.gpg
+ DESTINATION usr/share/keyrings
+ RENAME netdata-archive-keyring.gpg
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+ COMPONENT netdata-repo-edge)
+
+ set(CPACK_DEB_COMPONENT_INSTALL YES)
+ set(CPACK_DEBIAN_DEBUGINFO_PACKAGE NO)
+ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS NO)
+ set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS YES)
+ set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
+ set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Netdata Builder <bot@netdata.cloud>")
+ set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all")
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "debian-keyring, gnupg")
+ set(CPACK_DEBIAN_PACKAGE_SECTION "net")
+ set(CPACK_DEBIAN_PACKAGE_VERSION "${PACKAGE_VERSION}")
+ set(CPACK_DEBIAN_PACKAGE_RELEASE "${PACKAGE_RELEASE}")
+ set(CPACK_DEBIAN_NETDATA-REPO_PACKAGE_NAME "netdata-repo")
+ set(CPACK_DEBIAN_NETDATA-REPO-EDGE_PACKAGE_NAME "netdata-repo-edge")
+ set(CPACK_DEBIAN_NETDATA-REPO_PACKAGE_CONFLICTS "netdata-repo-edge")
+ set(CPACK_DEBIAN_NETDATA-REPO-EDGE_PACKAGE_CONFLICTS "netdata-repo")
+ set(CPACK_DEBIAN_NETDATA-REPO_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/netdata-repo/changelog")
+ set(CPACK_DEBIAN_NETDATA-REPO-EDGE_PACKAGE_CONTROL_EXTRA "${CMAKE_BINARY_DIR}/netdata-repo-edge/changelog")
+elseif(${DISTRO} IN_LIST RPM_DISTROS)
+ require_command(RPM rpm)
+
+ if(${RPM} STREQUAL "RPM-NOTFOUND")
+ message(FATAL_ERROR "Unable to find rpm, which is required for RPM package builds.")
+ endif()
+
+ set(REPO_CFG_PATH "yum.repos.d")
+ set(REPO_ID "dnf")
+ set(DIST_NAME "${DISTRO}")
+ set(DIST_VERSION "$releasever")
+
+ if(${DISTRO} STREQUAL "amzn")
+ set(DIST_NAME "amazonlinux")
+ if(${DISTRO_VERSION} VERSION_EQUAL 2)
+ # Nothing to do in this case, defaults work here.
+ elseif(${DISTRO_VERSION} VERSION_EQUAL 2023)
+ set(DIST_VERSION "2023")
+ else()
+ message(FATAL_ERROR "Unsupported version of Amazon Linux: ${DISTRO_VERSION}")
+ endif()
+ elseif(${DISTRO} STREQUAL "opensuse")
+ set(REPO_CFG_PATH "zypp/repos.d")
+ set(REPO_ID "zypp")
+ set(DIST_NAME "opensuse")
+ elseif(${DISTRO} STREQUAL "rhel")
+ set(DIST_NAME "el")
+
+ if(${DISTRO_VERSION} VERSION_LESS_EQUAL 8)
+ set(CPACK_RPM_PACKAGE_REQUIRES "yum-plugin-priorities, epel-release")
+ else()
+ set(CPACK_RPM_PACKAGE_REQUIRES "epel-release")
+ endif()
+ endif()
+
+ message(STATUS "Generating stable repository configuration for ${DISTRO} ${DISTRO_VERSION}")
+ set(VARIANT stable)
+ configure_file(netdata.repo.${REPO_ID} netdata.repo @ONLY)
+ message(STATUS "Generating edge repository configuration for ${DISTRO} ${DISTRO_VERSION}")
+ set(VARIANT edge)
+ configure_file(netdata.repo.${REPO_ID} netdata-edge.repo @ONLY)
+
+ install(FILES ${CMAKE_BINARY_DIR}/netdata.repo
+ COMPONENT netdata-repo
+ DESTINATION etc/${REPO_CFG_PATH})
+ install(FILES ${CMAKE_BINARY_DIR}/netdata-edge.repo
+ COMPONENT netdata-repo-edge
+ DESTINATION etc/${REPO_CFG_PATH})
+
+ set(CPACK_RPM_COMPONENT_INSTALL ON)
+ set(CPACK_RPM_PACAKGE_AUTOREQPROV OFF)
+ set(CPACK_RPM_DEBUGINFO_PACKAGE OFF)
+ set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
+ set(CPACK_RPM_PACKAGE_GROUP "System Environment/Base")
+ set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST "")
+ set(CPACK_RPM_PACKAGE_ARCHITECTURE "noarch")
+ set(CPACK_RPM_PACKAGE_VERSION "${PACKAGE_VERSION}")
+ set(CPACK_RPM_PACKAGE_RELEASE "${PACKAGE_RELEASE}")
+ set(CPACK_RPM_PACKAGE_CHANGELOG "${CMAKE_SOURCE_DIR}/rpm.changelog")
+ set(CPACK_RPM_NETDATA-REPO_FILE_NAME "netdata-repo-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.noarch.rpm")
+ set(CPACK_RPM_NETDATA-REPO_PACKAGE_NAME "netdata-repo")
+ set(CPACK_RPM_NETDATA-REPO_PACAKGE_CONFLICTS "netdata-repo-edge")
+ set(CPACK_RPM_NETDATA-REPO-EDGE_FILE_NAME "netdata-repo-edge-${PACKAGE_VERSION}-${PACKAGE_RELEASE}.noarch.rpm")
+ set(CPACK_RPM_NETDATA-REPO-EDGE_PACKAGE_NAME "netdata-repo-edge")
+ set(CPACK_RPM_NETDATA-REPO-EDGE_PACKAGE_CONFLICTS "netdata-repo")
+else()
+ message(FATAL_ERROR "Unsupported distribution ${DISTRO} ${DISTRO_VERSION}")
+endif()
+
+include(CPack)
diff --git a/packaging/repoconfig/Makefile b/packaging/repoconfig/Makefile
deleted file mode 100644
index 18b9887fe..000000000
--- a/packaging/repoconfig/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-FILES = netdata.list netdata-edge.list netdata-archive-keyring.gpg netdata-edge-archive-keyring.gpg netdata-repoconfig-archive-keyring.gpg
-
-all: $(FILES)
-
-netdata.list: netdata.list.in
- cp netdata.list.in netdata.list
- set -a && . /etc/os-release && sed -i -e "s/__DISTRO__/$${ID}/" -e "s/__SUITE__/$${VERSION_CODENAME}/" -e "s/__VARIANT__/stable/" netdata.list
-
-netdata-edge.list: netdata.list.in
- cp netdata.list.in netdata-edge.list
- set -a && . /etc/os-release && sed -i -e "s/__DISTRO__/$${ID}/" -e "s/__SUITE__/$${VERSION_CODENAME}/" -e "s/__VARIANT__/edge/" netdata-edge.list
-
-netdata.gpg.key:
- curl -L https://repo.netdata.cloud/netdatabot.gpg.key > $@
-
-netdata-archive-keyring.gpg: netdata.gpg.key
- gpg --dearmor > $@ < $<
-
-netdata-edge-archive-keyring.gpg: netdata.gpg.key
- gpg --dearmor > $@ < $<
-
-netdata-repoconfig-archive-keyring.gpg: netdata.gpg.key
- gpg --dearmor > $@ < $<
-
-debian/tmp:
- mkdir -p $@
-
-install: $(FILES) debian/tmp
- cp $(FILES) debian/tmp/
-
-clean:
- rm -f $(FILES)
-
-.PHONY: clean
-.INTERMEDIATE: netdatabot.gpg.key
diff --git a/packaging/repoconfig/build-deb.sh b/packaging/repoconfig/build-deb.sh
index 97f929a68..188d849cf 100755
--- a/packaging/repoconfig/build-deb.sh
+++ b/packaging/repoconfig/build-deb.sh
@@ -1,49 +1,46 @@
#!/bin/sh
-# Extract distro info from /etc/os-release
-DISTVERS="$(awk -F'"' '/VERSION_ID=/ {print $2}' /etc/os-release)"
-DISTNAME="$(awk -F'=' '/^ID=/ {print $2}' /etc/os-release)"
+set -e
+
+SRC_DIR="$(CDPATH='' cd -- "$(dirname -- "${0}")" && pwd -P)"
+BUILD_DIR=/build
+DISTRO="$(awk -F'=' '/^ID=/ {print $2}' /etc/os-release)"
+DISTRO_VERSION="$(awk -F'"' '/VERSION_ID=/ {print $2}' /etc/os-release)"
# Needed because dpkg is stupid and tries to configure things interactively if it sees a terminal.
export DEBIAN_FRONTEND=noninteractive
-# Pull in our dependencies
-apt update || exit 1
-apt upgrade -y || exit 1
-apt install -y build-essential debhelper curl gnupg || exit 1
+echo "::group::Installing Build Dependencies"
+apt update
+apt upgrade -y
+apt install -y --no-install-recommends ca-certificates cmake ninja-build curl gnupg
+echo "::endgroup::"
+
+echo "::group::Building Packages"
+cmake -S "${SRC_DIR}" -B "${BUILD_DIR}" -G Ninja
+cmake --build "${BUILD_DIR}"
-# Run the builds in an isolated source directory.
-# This removes the need for cleanup, and ensures anything the build does
-# doesn't muck with the user's sources.
-cp -a /netdata/packaging/repoconfig /usr/src || exit 1
-cd /usr/src/repoconfig || exit 1
+cd "${BUILD_DIR}"
+cpack -G DEB
+echo "::endgroup::"
-# pre/post options are after 1.18.8, is simpler to just check help for their existence than parsing version
-if dpkg-buildpackage --help | grep "\-\-post\-clean" 2> /dev/null > /dev/null; then
- dpkg-buildpackage --post-clean --pre-clean -b -us -uc || exit 1
-else
- dpkg-buildpackage -b -us -uc || exit 1
-fi
+[ -d "${SRC_DIR}/artifacts" ] || mkdir -p "${SRC_DIR}/artifacts"
# Embed distro info in package name.
-# This is required to make the repo actually standards compliant wthout packageclouds hacks.
-distid="${DISTNAME}${DISTVERS}"
-for pkg in /usr/src/*.deb; do
- pkgname="$(basename "${pkg}" .deb)"
+# This is required to make the repo actually standards compliant wthout packagecloud's hacks.
+distid="${DISTRO}${DISTRO_VERSION}"
+for pkg in "${BUILD_DIR}"/packages/*.deb; do
+ extension="${pkg##*.}"
+ pkgname="$(basename "${pkg}" "${extension}")"
name="$(echo "${pkgname}" | cut -f 1 -d '_')"
version="$(echo "${pkgname}" | cut -f 2 -d '_')"
arch="$(echo "${pkgname}" | cut -f 3 -d '_')"
- newname="$(dirname "${pkg}")/${name}_${version}+${distid}_${arch}.deb"
+ newname="${SRC_DIR}/artifacts/${name}_${version}+${distid}_${arch}${extension}"
mv "${pkg}" "${newname}"
done
-# Copy the built packages to /netdata/artifacts (which may be bind-mounted)
-# Also ensure /netdata/artifacts exists and create it if it doesn't
-[ -d /netdata/artifacts ] || mkdir -p /netdata/artifacts
-cp -a /usr/src/*.deb /netdata/artifacts/ || exit 1
-
# Correct ownership of the artifacts.
# Without this, the artifacts directory and it's contents end up owned
# by root instead of the local user on Linux boxes
-chown -R --reference=/netdata /netdata/artifacts
+chown -R --reference="${SRC_DIR}" "${SRC_DIR}/artifacts"
diff --git a/packaging/repoconfig/build-rpm.sh b/packaging/repoconfig/build-rpm.sh
index 6c07c6619..537b1524f 100755
--- a/packaging/repoconfig/build-rpm.sh
+++ b/packaging/repoconfig/build-rpm.sh
@@ -1,26 +1,46 @@
#!/bin/sh
-prefix='/root/rpmbuild'
+set -e
+SRC_DIR="$(CDPATH='' cd -- "$(dirname -- "${0}")" && pwd -P)"
+BUILD_DIR=/build
+
+echo "::group::Installing Build Dependencies"
if command -v dnf > /dev/null ; then
dnf distro-sync -y --nodocs || exit 1
- dnf install -y --nodocs --setopt=install_weak_deps=False rpm-build || exit 1
+ dnf install -y --nodocs --setopt=install_weak_deps=False rpm-build cmake make || exit 1
elif command -v yum > /dev/null ; then
yum distro-sync -y || exit 1
- yum install -y rpm-build || exit 1
+ yum install -y rpm-build make || exit 1
+ curl --fail -sSL --connect-timeout 20 --retry 3 --output "cmake-linux-$(uname -m).sh" "https://github.com/Kitware/CMake/releases/download/v3.27.6/cmake-3.27.6-linux-$(uname -m).sh" && \
+ if [ "$(uname -m)" = "x86_64" ]; then \
+ echo '8c449dabb2b2563ec4e6d5e0fb0ae09e729680efab71527b59015131cea4a042 cmake-linux-x86_64.sh' | sha256sum -c - ; \
+ elif [ "$(uname -m)" = "aarch64" ]; then \
+ echo 'a83e01ed1cdf44c2e33e0726513b9a35a8c09e3b5a126fd720b3c8a9d5552368 cmake-linux-aarch64.sh' | sha256sum -c - ; \
+ else \
+ echo "ARCH NOT SUPPORTED BY CMAKE" ; \
+ exit 1 ; \
+ fi && \
+ chmod +x "./cmake-linux-$(uname -m).sh" && \
+ mkdir -p /cmake && \
+ "./cmake-linux-$(uname -m).sh" --skip-license --prefix=/cmake
+ PATH="/cmake/bin:${PATH}"
elif command -v zypper > /dev/null ; then
zypper update -y || exit 1
- zypper install -y rpm-build || exit 1
- prefix="/usr/src/packages"
+ zypper install -y rpm-build cmake make || exit 1
fi
+echo "::endgroup::"
+
+echo "::group::Building Packages"
+cmake -S "${SRC_DIR}" -B "${BUILD_DIR}"
+cmake --build "${BUILD_DIR}"
-mkdir -p "${prefix}/BUILD" "${prefix}/RPMS" "${prefix}/SRPMS" "${prefix}/SPECS" "${prefix}/SOURCES" || exit 1
-cp -a /netdata/packaging/repoconfig/netdata-repo.spec "${prefix}/SPECS" || exit 1
-cp -a /netdata/packaging/repoconfig/* "${prefix}/SOURCES/" || exit 1
+cd "${BUILD_DIR}"
+cpack -G RPM
+echo "::endgroup::"
-rpmbuild -bb --rebuild "${prefix}/SPECS/netdata-repo.spec" || exit 1
+[ -d "${SRC_DIR}/artifacts" ] || mkdir -p "${SRC_DIR}/artifacts"
-[ -d /netdata/artifacts ] || mkdir -p /netdata/artifacts
-find "${prefix}/RPMS/" -type f -name '*.rpm' -exec cp '{}' /netdata/artifacts \; || exit 1
+find "${BUILD_DIR}/packages/" -type f -name '*.rpm' -exec cp '{}' "${SRC_DIR}/artifacts" \; || exit 1
-chown -R --reference=/netdata /netdata/artifacts
+chown -R --reference="${SRC_DIR}" "${SRC_DIR}/artifacts"
diff --git a/packaging/repoconfig/deb.changelog b/packaging/repoconfig/deb.changelog
new file mode 100644
index 000000000..6d1dca883
--- /dev/null
+++ b/packaging/repoconfig/deb.changelog
@@ -0,0 +1,49 @@
+@PKG_NAME@ (3-4) unstable; urgency=medium
+
+ * Convert sources to DEB822 format
+
+ -- Netdata Builder <bot@netdata.cloud> Mon, 19 Aug 2024 07:49:00 -0400
+
+@PKG_NAME@ (3-3) unstable; urgency=medium
+
+ * Version bump to keep in sync with RPM repo packages
+
+ -- Netdata Builder <bot@netdata.cloud> Fri, 9 Aug 2024 09:37:00 -0400
+
+@PKG_NAME@ (3-2) unstable; urgency=medium
+
+ * Version bump to keep in sync with RPM repo packages
+
+ -- Netdata Builder <bot@netdata.cloud> Mon, 24 Jun 2024 07:54:00 -0400
+
+@PKG_NAME@ (3-1) unstable; urgency=medium
+
+ * Migrate to CPack for package builds
+
+ -- Netdata Builder <bot@netdata.cloud> Fri, 14 Jun 2024 08:22:00 -0400
+
+@PKG_NAME@ (2-2) unstable; urgency=medium
+
+ * Version bump to keep in sync with RPM repo packages
+
+ -- Netdata Builder <bot@netdata.cloud> Mon, 13 Nov 2023 11:15:00 -0500
+
+@PKG_NAME@ (2-1) unstable; urgency=medium
+
+ * Switched to new package hosting infrastructure
+ * Removed apt-transport-https requirement
+
+ -- Netdata Builder <bot@netdata.cloud> Wed, 18 Jan 2023 08:30:00 -0500
+
+@PKG_NAME@ (1-2) unstable; urgency=medium
+
+ * Fixed package file naming for repo layout compliance
+
+ -- Netdata Builder <bot@netdata.cloud> Mon, 6 Jun 2022 09:30:00 -0400
+
+@PKG_NAME@ (1-1) unstable; urgency=medium
+
+ * Initial Release
+
+ -- Netdata Builder <bot@netdata.cloud> Mon, 14 Jun 2021 08:00:00 -0400
+
diff --git a/packaging/repoconfig/debian/changelog b/packaging/repoconfig/debian/changelog
deleted file mode 100644
index d056fa43b..000000000
--- a/packaging/repoconfig/debian/changelog
+++ /dev/null
@@ -1,25 +0,0 @@
-netdata-repo (2-2) unstable; urgency=medium
-
- * Version bump to keep in sync with RPM repo packages
-
- -- Netdata Builder <bot@netdata.cloud> Mon, 13 Nov 2023 11:15:00 -0500
-
-netdata-repo (2-1) unstable; urgency=medium
-
- * Switched to new package hosting infrastructure
- * Removed apt-transport-https requirement
-
- -- Netdata Builder <bot@netdata.cloud> Wed, 18 Jan 2023 08:30:00 -0500
-
-netdata-repo (1-2) unstable; urgency=medium
-
- * Fixed package file naming for repo layout compliance
-
- -- Netdata Builder <bot@netdata.cloud> Mon, 6 Jun 2022 09:30:00 -0500
-
-netdata-repo (1-1) unstable; urgency=medium
-
- * Initial Release
-
- -- Netdata Builder <bot@netdata.cloud> Mon, 14 Jun 2021 08:00:00 -0500
-
diff --git a/packaging/repoconfig/debian/compat b/packaging/repoconfig/debian/compat
deleted file mode 100644
index ec635144f..000000000
--- a/packaging/repoconfig/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-9
diff --git a/packaging/repoconfig/debian/control b/packaging/repoconfig/debian/control
deleted file mode 100644
index fdea6a829..000000000
--- a/packaging/repoconfig/debian/control
+++ /dev/null
@@ -1,19 +0,0 @@
-Source: netdata-repo
-Section: net
-Priority: optional
-Maintainer: Netdata Builder <bot@netdata.cloud>
-Standards-Version: 3.9.6
-Build-Depends: debhelper (>= 9), curl, gnupg
-Homepage: https://netdata.cloud
-
-Package: netdata-repo
-Architecture: all
-Depends: debian-archive-keyring, gnupg
-Conflicts: netdata-repo-edge
-Description: Configuration for the official Netdata Stable package repository.
-
-Package: netdata-repo-edge
-Architecture:all
-Depends: debian-archive-keyring, gnupg
-Conflicts: netdata-repo
-Description: Configuration for the official Netdata Edge package repository.
diff --git a/packaging/repoconfig/debian/copyright b/packaging/repoconfig/debian/copyright
deleted file mode 100644
index 44b59693d..000000000
--- a/packaging/repoconfig/debian/copyright
+++ /dev/null
@@ -1,10 +0,0 @@
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Upstream-Name: Netdata
-Upstream-Contact: Costa Tsaousis <costa@netdata.cloud>
-Source: https://github.com/netdata/netdata
-
-Files: *
-Copyright: 2021-2023 Netdata Inc.
-License: GPL-3+
- On Debian systems, the complete text of the GNU General Public
- License version 3 can be found in /usr/share/common-licenses/GPL-3.
diff --git a/packaging/repoconfig/debian/rules b/packaging/repoconfig/debian/rules
deleted file mode 100755
index 0151b96ea..000000000
--- a/packaging/repoconfig/debian/rules
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/make -f
-
-TOP = $(CURDIR)/debian/netdata-repo
-TOP_EDGE = $(CURDIR)/debian/netdata-repo-edge
-TEMPTOP = $(CURDIR)/debian/tmp
-
-%:
- dh $@
-
-override_dh_configure:
- true
-
-override_dh_install:
- mkdir -p $(TOP)/etc/apt/sources.list.d $(TOP)/etc/apt/trusted.gpg.d/
- mv -f $(TEMPTOP)/netdata.list $(TOP)/etc/apt/sources.list.d
- mv -f $(TEMPTOP)/netdata-archive-keyring.gpg $(TOP)/etc/apt/trusted.gpg.d
- cp $(TEMPTOP)/netdata-repoconfig-archive-keyring.gpg $(TOP)/etc/apt/trusted.gpg.d
- mkdir -p $(TOP_EDGE)/etc/apt/sources.list.d $(TOP_EDGE)/etc/apt/trusted.gpg.d/
- mv -f $(TEMPTOP)/netdata-edge.list $(TOP_EDGE)/etc/apt/sources.list.d
- mv -f $(TEMPTOP)/netdata-edge-archive-keyring.gpg $(TOP_EDGE)/etc/apt/trusted.gpg.d
- cp $(TEMPTOP)/netdata-repoconfig-archive-keyring.gpg $(TOP_EDGE)/etc/apt/trusted.gpg.d
diff --git a/packaging/repoconfig/debian/source/format b/packaging/repoconfig/debian/source/format
deleted file mode 100644
index 163aaf8d8..000000000
--- a/packaging/repoconfig/debian/source/format
+++ /dev/null
@@ -1 +0,0 @@
-3.0 (quilt)
diff --git a/packaging/repoconfig/netdata-edge.repo.al b/packaging/repoconfig/netdata-edge.repo.al
deleted file mode 100644
index 4a300a26e..000000000
--- a/packaging/repoconfig/netdata-edge.repo.al
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata-edge]
-name=Netdata Edge
-baseurl=https://repo.netdata.cloud/repos/edge/amazonlinux/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/amazonlinux/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata-edge.repo.centos b/packaging/repoconfig/netdata-edge.repo.centos
deleted file mode 100644
index fd96f0d71..000000000
--- a/packaging/repoconfig/netdata-edge.repo.centos
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata-edge]
-name=Netdata Edge
-baseurl=https://repo.netdata.cloud/repos/edge/el/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/el/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata-edge.repo.fedora b/packaging/repoconfig/netdata-edge.repo.fedora
deleted file mode 100644
index 03b0e9c7c..000000000
--- a/packaging/repoconfig/netdata-edge.repo.fedora
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata-edge]
-name=Netdata Edge
-baseurl=https://repo.netdata.cloud/repos/edge/fedora/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/fedora/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata-edge.repo.ol b/packaging/repoconfig/netdata-edge.repo.ol
deleted file mode 100644
index 89f74e712..000000000
--- a/packaging/repoconfig/netdata-edge.repo.ol
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata-edge]
-name=Netdata Edge
-baseurl=https://repo.netdata.cloud/repos/edge/ol/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/ol/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata-edge.repo.suse b/packaging/repoconfig/netdata-edge.repo.suse
deleted file mode 100644
index f65bd08d7..000000000
--- a/packaging/repoconfig/netdata-edge.repo.suse
+++ /dev/null
@@ -1,19 +0,0 @@
-[netdata-edge]
-name=Netdata Edge
-baseurl=https://repo.netdata.cloud/repos/edge/opensuse/$releasever/$basearch
-repo_gpgcheck=1
-pkg_gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-type=rpm-md
-autorefresh=1
-
-[netdata-repoconfig]
-name=Netdata Repoconfig
-baseurl=https://repo.netdata.cloud/repos/repoconfig/opensuse/$releasever/$basearch
-repo_gpgcheck=1
-pkg_gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-type=rpm-md
-autorefresh=1
diff --git a/packaging/repoconfig/netdata-repo.spec b/packaging/repoconfig/netdata-repo.spec
deleted file mode 100644
index 3c99b921f..000000000
--- a/packaging/repoconfig/netdata-repo.spec
+++ /dev/null
@@ -1,117 +0,0 @@
-%{?rhel:%global centos_ver %rhel}
-
-Name: netdata-repo
-Version: 2
-Release: 2
-Summary: Netdata stable repositories configuration.
-
-Group: System Environment/Base
-License: GPLv2
-
-Source0: netdata.repo.fedora
-Source1: netdata-edge.repo.fedora
-Source2: netdata.repo.suse
-Source3: netdata-edge.repo.suse
-Source4: netdata.repo.centos
-Source5: netdata-edge.repo.centos
-Source6: netdata.repo.ol
-Source7: netdata-edge.repo.ol
-Source8: netdata.repo.al
-Source9: netdata-edge.repo.al
-
-BuildArch: noarch
-
-%if 0%{?centos_ver} && 0%{?centos_ver} < 8
-Requires: yum-plugin-priorities
-%endif
-
-%if 0%{?centos_ver} && 0%{!?amazon_linux:1} && 0%{!?oraclelinux:1}
-Requires: epel-release
-%endif
-
-# Overlapping file installs
-Conflicts: netdata-repo-edge
-
-%description
-This package contains the official Netdata package repository configuration for stable versions of Netdata.
-
-%prep
-%setup -q -c -T
-
-%if 0%{?fedora}
-install -pm 644 %{SOURCE0} ./netdata.repo
-install -pm 644 %{SOURCE1} ./netdata-edge.repo
-%endif
-
-%if 0%{?suse_version}
-install -pm 644 %{SOURCE2} ./netdata.repo
-install -pm 644 %{SOURCE3} ./netdata-edge.repo
-%endif
-
-%if 0%{?centos_ver}
-install -pm 644 %{SOURCE4} ./netdata.repo
-install -pm 644 %{SOURCE5} ./netdata-edge.repo
-%endif
-
-%if 0%{?oraclelinux}
-install -pm 644 %{SOURCE6} ./netdata.repo
-install -pm 644 %{SOURCE7} ./netdata-edge.repo
-%endif
-
-%if 0%{?amzn}
-install -pm 644 %{SOURCE8} ./netdata.repo
-install -pm 644 %{SOURCE9} ./netdata-edge.repo
-%endif
-
-%build
-true
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-%if 0%{?suse_version}
-install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
-install -pm 644 netdata.repo $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
-install -pm 644 netdata-edge.repo $RPM_BUILD_ROOT%{_sysconfdir}/zypp/repos.d
-%else
-install -dm 755 $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d
-install -pm 644 netdata.repo $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d
-install -pm 644 netdata-edge.repo $RPM_BUILD_ROOT%{_sysconfdir}/yum.repos.d
-%endif
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files
-%if 0%{?suse_version}
-%attr(644,root,root) /etc/zypp/repos.d/netdata.repo
-%else
-%attr(644,root,root) /etc/yum.repos.d/netdata.repo
-%endif
-
-%package edge
-Summary: Netdata nightly repositories configuration.
-Group: System Environment/Base
-
-# Overlapping file installs
-Conflicts: netdata-repo
-
-%description edge
-This package contains the official Netdata package repository configuration for nightly versions of Netdata.
-
-%files edge
-%if 0%{?suse_version}
-%attr(644,root,root) /etc/zypp/repos.d/netdata-edge.repo
-%else
-%attr(644,root,root) /etc/yum.repos.d/netdata-edge.repo
-%endif
-
-%changelog
-* Mon Nov 13 2023 Austin Hemmelgarn <austin@netdata.cloud> 2-2
-- Add EPEL requirement for RHEL packages.
-* Wed Dec 7 2022 Austin Hemmelgarn <austin@netdata.cloud> 2-1
-- Switch to new hosting at repo.netdata.cloud.
-* Mon Jun 6 2022 Austin Hemmelgarn <austin@netdata.cloud> 1-2
-- Bump release to keep in sync with DEB package.
-* Mon Jun 14 2021 Austin Hemmelgarn <austin@netdata.cloud> 1-1
-- Initial revision
diff --git a/packaging/repoconfig/netdata.list.in b/packaging/repoconfig/netdata.list.in
deleted file mode 100644
index a49dbd91c..000000000
--- a/packaging/repoconfig/netdata.list.in
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://repo.netdata.cloud/repos/__VARIANT__/__DISTRO__/ __SUITE__/
-deb http://repo.netdata.cloud/repos/repoconfig/__DISTRO__/ __SUITE__/
diff --git a/packaging/repoconfig/netdata.repo.al b/packaging/repoconfig/netdata.repo.al
deleted file mode 100644
index 0bacb3a10..000000000
--- a/packaging/repoconfig/netdata.repo.al
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata]
-name=Netdata
-baseurl=https://repo.netdata.cloud/repos/stable/amazonlinux/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/amazonlinux/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata.repo.centos b/packaging/repoconfig/netdata.repo.centos
deleted file mode 100644
index 221e64513..000000000
--- a/packaging/repoconfig/netdata.repo.centos
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata]
-name=Netdata
-baseurl=https://repo.netdata.cloud/repos/stable/el/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/el/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata.repo.dnf b/packaging/repoconfig/netdata.repo.dnf
new file mode 100644
index 000000000..3a64a2a58
--- /dev/null
+++ b/packaging/repoconfig/netdata.repo.dnf
@@ -0,0 +1,19 @@
+[netdata]
+name=Netdata
+baseurl=https://repo.netdata.cloud/repos/@VARIANT@/@DIST_NAME@/@DIST_VERSION@/$basearch
+repo_gpgcheck=1
+gpgcheck=1
+gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
+enabled=1
+sslverify=1
+priority=50
+
+[netdata-repoconfig]
+name=Netdata Repository Config
+baseurl=https://repo.netdata.cloud/repos/repoconfig/@DIST_NAME@/@DIST_VERSION@/$basearch
+repo_gpgcheck=1
+gpgcheck=1
+gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
+enabled=1
+sslverify=1
+priority=50
diff --git a/packaging/repoconfig/netdata.repo.fedora b/packaging/repoconfig/netdata.repo.fedora
deleted file mode 100644
index e13262acb..000000000
--- a/packaging/repoconfig/netdata.repo.fedora
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata]
-name=Netdata
-baseurl=https://repo.netdata.cloud/repos/stable/fedora/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/fedora/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata.repo.ol b/packaging/repoconfig/netdata.repo.ol
deleted file mode 100644
index 0488670d4..000000000
--- a/packaging/repoconfig/netdata.repo.ol
+++ /dev/null
@@ -1,21 +0,0 @@
-[netdata]
-name=Netdata
-baseurl=https://repo.netdata.cloud/repos/stable/ol/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
-
-[netdata-repoconfig]
-name=Netdata Repository Config
-baseurl=https://repo.netdata.cloud/repos/repoconfig/ol/$releasever/$basearch
-repo_gpgcheck=1
-gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-sslverify=1
-sslcacert=/etc/pki/tls/certs/ca-bundle.crt
-priority=50
diff --git a/packaging/repoconfig/netdata.repo.suse b/packaging/repoconfig/netdata.repo.suse
deleted file mode 100644
index 8204d8d4d..000000000
--- a/packaging/repoconfig/netdata.repo.suse
+++ /dev/null
@@ -1,19 +0,0 @@
-[netdata]
-name=Netdata
-baseurl=https://repo.netdata.cloud/repos/stable/opensuse/$releasever/$basearch
-repo_gpgcheck=1
-pkg_gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-type=rpm-md
-autorefresh=1
-
-[netdata-repoconfig]
-name=Netdata Repoconfig
-baseurl=https://repo.netdata.cloud/repos/repoconfig/opensuse/$releasever/$basearch
-repo_gpgcheck=1
-pkg_gpgcheck=1
-gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
-enabled=1
-type=rpm-md
-autorefresh=1
diff --git a/packaging/repoconfig/netdata.repo.zypp b/packaging/repoconfig/netdata.repo.zypp
new file mode 100644
index 000000000..9ab847343
--- /dev/null
+++ b/packaging/repoconfig/netdata.repo.zypp
@@ -0,0 +1,19 @@
+[netdata]
+name=Netdata
+baseurl=https://repo.netdata.cloud/repos/@VARIANT@/@DIST_NAME@/@DIST_VERSION@/$basearch
+repo_gpgcheck=1
+pkg_gpgcheck=1
+gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
+enabled=1
+type=rpm-md
+autorefresh=1
+
+[netdata-repoconfig]
+name=Netdata Repoconfig
+baseurl=https://repo.netdata.cloud/repos/repoconfig/@DIST_NAME@/@DIST_VERSION@/$basearch
+repo_gpgcheck=1
+pkg_gpgcheck=1
+gpgkey=https://repo.netdata.cloud/netdatabot.gpg.key
+enabled=1
+type=rpm-md
+autorefresh=1
diff --git a/packaging/repoconfig/netdata.sources.in b/packaging/repoconfig/netdata.sources.in
new file mode 100644
index 000000000..926b2c453
--- /dev/null
+++ b/packaging/repoconfig/netdata.sources.in
@@ -0,0 +1,15 @@
+X-Repolib-Name: Netdata @VARIANT@ repository
+Types: deb
+URIs: http://repo.netdata.cloud/repos/@VARIANT@/@DIST_NAME@/
+Suites: @SUITE@/
+Signed-By: /usr/share/keyrings/netdata-archive-keyring.gpg
+By-Hash: No
+Enabled: Yes
+
+X-Repolib-Name: Netdata repository configuration repository
+Types: deb
+URIs: http://repo.netdata.cloud/repos/repoconfig/@DIST_NAME@/
+Suites: @SUITE@/
+Signed-By: /usr/share/keyrings/netdata-archive-keyring.gpg
+By-Hash: No
+Enabled: Yes
diff --git a/packaging/repoconfig/rpm.changelog b/packaging/repoconfig/rpm.changelog
new file mode 100644
index 000000000..dab81a2cf
--- /dev/null
+++ b/packaging/repoconfig/rpm.changelog
@@ -0,0 +1,18 @@
+* Mon Aug 19 2024 Austin Hemmelgarn <austin@netdata.cloud
+- Version bump to stay in sync with DEB packages.
+* Fri Aug 9 2024 Austin Hemmelgarn <austin@netdata.cloud> 3-3
+- Use system certificate config for Yum/DNF repos.
+* Mon Jun 24 2024 Austin Hemmelgarn <austin@netdata.cloud> 3-2
+- Fix package file names.
+* Fri Jun 14 2024 Austin Hemmelgarn <austin@netdata.cloud> 3-1
+- Migrate package build infrastructure to CPack.
+* Wed Apr 10 2024 Paul Szymanski <mail@pszy.de> 2-3
+- Fix repo specification for Amazon Linux 2023.
+* Mon Nov 13 2023 Austin Hemmelgarn <austin@netdata.cloud> 2-2
+- Add EPEL requirement for RHEL packages.
+* Wed Dec 7 2022 Austin Hemmelgarn <austin@netdata.cloud> 2-1
+- Switch to new hosting at repo.netdata.cloud.
+* Mon Jun 6 2022 Austin Hemmelgarn <austin@netdata.cloud> 1-2
+- Bump release to keep in sync with DEB package.
+* Mon Jun 14 2021 Austin Hemmelgarn <austin@netdata.cloud> 1-1
+- Initial revision