diff options
Diffstat (limited to 'packaging/repoconfig')
-rw-r--r-- | packaging/repoconfig/Makefile | 31 | ||||
-rwxr-xr-x | packaging/repoconfig/build-deb.sh | 49 | ||||
-rwxr-xr-x | packaging/repoconfig/build-rpm.sh | 26 | ||||
-rw-r--r-- | packaging/repoconfig/debian/changelog | 12 | ||||
-rw-r--r-- | packaging/repoconfig/debian/compat | 1 | ||||
-rw-r--r-- | packaging/repoconfig/debian/control | 19 | ||||
-rw-r--r-- | packaging/repoconfig/debian/copyright | 10 | ||||
-rwxr-xr-x | packaging/repoconfig/debian/rules | 21 | ||||
-rw-r--r-- | packaging/repoconfig/debian/source/format | 1 | ||||
-rw-r--r-- | packaging/repoconfig/netdata-edge.repo.centos | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata-edge.repo.fedora | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata-edge.repo.ol | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata-edge.repo.suse | 19 | ||||
-rw-r--r-- | packaging/repoconfig/netdata-repo.spec | 102 | ||||
-rw-r--r-- | packaging/repoconfig/netdata.list.in | 2 | ||||
-rw-r--r-- | packaging/repoconfig/netdata.repo.centos | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata.repo.fedora | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata.repo.ol | 21 | ||||
-rw-r--r-- | packaging/repoconfig/netdata.repo.suse | 19 |
19 files changed, 438 insertions, 0 deletions
diff --git a/packaging/repoconfig/Makefile b/packaging/repoconfig/Makefile new file mode 100644 index 0000000..d0f246a --- /dev/null +++ b/packaging/repoconfig/Makefile @@ -0,0 +1,31 @@ +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__//" 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-archive-keyring.gpg: + curl -L https://packagecloud.io/netdata/netdata/gpgkey | gpg --dearmor > netdata-archive-keyring.gpg + +netdata-edge-archive-keyring.gpg: + curl -L https://packagecloud.io/netdata/netdata-edge/gpgkey | gpg --dearmor > netdata-edge-archive-keyring.gpg + +netdata-repoconfig-archive-keyring.gpg: + curl -L https://packagecloud.io/netdata/netdata-repoconfig/gpgkey | gpg --dearmor > netdata-repoconfig-archive-keyring.gpg + +debian/tmp: + mkdir -p debian/tmp + +install: $(FILES) debian/tmp + cp $(FILES) debian/tmp/ + +clean: + rm -f $(FILES) + +.PHONY: clean diff --git a/packaging/repoconfig/build-deb.sh b/packaging/repoconfig/build-deb.sh new file mode 100755 index 0000000..97f929a --- /dev/null +++ b/packaging/repoconfig/build-deb.sh @@ -0,0 +1,49 @@ +#!/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)" + +# 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 + +# 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 + +# 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 + +# 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)" + 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" + 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 diff --git a/packaging/repoconfig/build-rpm.sh b/packaging/repoconfig/build-rpm.sh new file mode 100755 index 0000000..6c07c66 --- /dev/null +++ b/packaging/repoconfig/build-rpm.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +prefix='/root/rpmbuild' + +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 +elif command -v yum > /dev/null ; then + yum distro-sync -y || exit 1 + yum install -y rpm-build || exit 1 +elif command -v zypper > /dev/null ; then + zypper update -y || exit 1 + zypper install -y rpm-build || exit 1 + prefix="/usr/src/packages" +fi + +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 + +rpmbuild -bb --rebuild "${prefix}/SPECS/netdata-repo.spec" || exit 1 + +[ -d /netdata/artifacts ] || mkdir -p /netdata/artifacts +find "${prefix}/RPMS/" -type f -name '*.rpm' -exec cp '{}' /netdata/artifacts \; || exit 1 + +chown -R --reference=/netdata /netdata/artifacts diff --git a/packaging/repoconfig/debian/changelog b/packaging/repoconfig/debian/changelog new file mode 100644 index 0000000..57c12d7 --- /dev/null +++ b/packaging/repoconfig/debian/changelog @@ -0,0 +1,12 @@ +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 new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/packaging/repoconfig/debian/compat @@ -0,0 +1 @@ +9 diff --git a/packaging/repoconfig/debian/control b/packaging/repoconfig/debian/control new file mode 100644 index 0000000..5fdcf14 --- /dev/null +++ b/packaging/repoconfig/debian/control @@ -0,0 +1,19 @@ +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: apt-transport-https, debian-archive-keyring, gnupg +Conflicts: netdata-repo-edge +Description: Configuration for the official Netdata Stable package repository. + +Package: netdata-repo-edge +Architecture:all +Depends: apt-transport-https, 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 new file mode 100644 index 0000000..193b45e --- /dev/null +++ b/packaging/repoconfig/debian/copyright @@ -0,0 +1,10 @@ +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 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 new file mode 100755 index 0000000..0151b96 --- /dev/null +++ b/packaging/repoconfig/debian/rules @@ -0,0 +1,21 @@ +#!/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 new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/packaging/repoconfig/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/packaging/repoconfig/netdata-edge.repo.centos b/packaging/repoconfig/netdata-edge.repo.centos new file mode 100644 index 0000000..af56384 --- /dev/null +++ b/packaging/repoconfig/netdata-edge.repo.centos @@ -0,0 +1,21 @@ +[netdata-edge] +name=Netdata Edge +baseurl=https://packagecloud.io/netdata/netdata-edge/el/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-edge/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/el/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +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 new file mode 100644 index 0000000..902e00c --- /dev/null +++ b/packaging/repoconfig/netdata-edge.repo.fedora @@ -0,0 +1,21 @@ +[netdata-edge] +name=Netdata Edge +baseurl=https://packagecloud.io/netdata/netdata-edge/fedora/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-edge/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/fedora/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +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 new file mode 100644 index 0000000..1d1ea40 --- /dev/null +++ b/packaging/repoconfig/netdata-edge.repo.ol @@ -0,0 +1,21 @@ +[netdata-edge] +name=Netdata Edge +baseurl=https://packagecloud.io/netdata/netdata-edge/ol/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-edge/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/ol/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +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 new file mode 100644 index 0000000..94db12a --- /dev/null +++ b/packaging/repoconfig/netdata-edge.repo.suse @@ -0,0 +1,19 @@ +[netdata-edge] +name=Netdata Edge +baseurl=https://packagecloud.io/netdata/netdata-edge/opensuse/$releasever/$basearch +repo_gpgcheck=1 +pkg_gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-edge/gpgkey +enabled=1 +type=rpm-md +autorefresh=1 + +[netdata-repoconfig] +name=Netdata Repoconfig +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/opensuse/$releasever/$basearch +repo_gpgcheck=1 +pkg_gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +enabled=1 +type=rpm-md +autorefresh=1 diff --git a/packaging/repoconfig/netdata-repo.spec b/packaging/repoconfig/netdata-repo.spec new file mode 100644 index 0000000..3e5f66b --- /dev/null +++ b/packaging/repoconfig/netdata-repo.spec @@ -0,0 +1,102 @@ +%{?rhel:%global centos_ver %rhel} + +Name: netdata-repo +Version: 1 +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 + +BuildArch: noarch + +%if 0%{?centos_ver} && 0%{?centos_ver} < 8 +Requires: yum-plugin-priorities +%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 + +%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 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 new file mode 100644 index 0000000..9c3ddba --- /dev/null +++ b/packaging/repoconfig/netdata.list.in @@ -0,0 +1,2 @@ +deb https://packagecloud.io/netdata/netdata__VARIANT__/__DISTRO__/ __SUITE__ main +deb https://packagecloud.io/netdata/netdata-repoconfig/__DISTRO__/ __SUITE__ main diff --git a/packaging/repoconfig/netdata.repo.centos b/packaging/repoconfig/netdata.repo.centos new file mode 100644 index 0000000..d9cb2bc --- /dev/null +++ b/packaging/repoconfig/netdata.repo.centos @@ -0,0 +1,21 @@ +[netdata] +name=Netdata +baseurl=https://packagecloud.io/netdata/netdata/el/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/el/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 diff --git a/packaging/repoconfig/netdata.repo.fedora b/packaging/repoconfig/netdata.repo.fedora new file mode 100644 index 0000000..82ec6ea --- /dev/null +++ b/packaging/repoconfig/netdata.repo.fedora @@ -0,0 +1,21 @@ +[netdata] +name=Netdata +baseurl=https://packagecloud.io/netdata/netdata/fedora/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/fedora/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +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 new file mode 100644 index 0000000..763504b --- /dev/null +++ b/packaging/repoconfig/netdata.repo.ol @@ -0,0 +1,21 @@ +[netdata] +name=Netdata +baseurl=https://packagecloud.io/netdata/netdata/ol/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata/gpgkey +enabled=1 +sslverify=1 +sslcacert=/etc/pki/tls/certs/ca-bundle.crt +priority=50 + +[netdata-repoconfig] +name=Netdata Repository Config +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/ol/$releasever/$basearch +repo_gpgcheck=1 +gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +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 new file mode 100644 index 0000000..55ad73e --- /dev/null +++ b/packaging/repoconfig/netdata.repo.suse @@ -0,0 +1,19 @@ +[netdata] +name=Netdata +baseurl=https://packagecloud.io/netdata/netdata/opensuse/$releasever/$basearch +repo_gpgcheck=1 +pkg_gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata/gpgkey +enabled=1 +type=rpm-md +autorefresh=1 + +[netdata-repoconfig] +name=Netdata Repoconfig +baseurl=https://packagecloud.io/netdata/netdata-repoconfig/opensuse/$releasever/$basearch +repo_gpgcheck=1 +pkg_gpgcheck=0 +gpgkey=https://packagecloud.io/netdata/netdata-repoconfig/gpgkey +enabled=1 +type=rpm-md +autorefresh=1 |