From 0bf1a81fdc579c06440fbd820a8b1b19f0f3aeda Mon Sep 17 00:00:00 2001 From: Carl George Date: Thu, 3 Jun 2021 04:37:19 -0500 Subject: [PATCH] Add epel-next-release subpackage --- README-epel-8-packaging.md | 24 ++++++++++++++++ epel-next-testing.repo | 30 ++++++++++++++++++++ epel-next.repo | 30 ++++++++++++++++++++ epel-release.spec | 56 ++++++++++++++++++++++++++++---------- 4 files changed, 125 insertions(+), 15 deletions(-) create mode 100644 epel-next-testing.repo create mode 100644 epel-next.repo diff --git a/README-epel-8-packaging.md b/README-epel-8-packaging.md index a561052..c835254 100644 --- a/README-epel-8-packaging.md +++ b/README-epel-8-packaging.md @@ -26,6 +26,30 @@ the package maintainer through to be tracked and if the primary maintainer is not interested in branching to EPEL, other ones can step in and do so. +## EPEL Next + +EPEL packages are built against RHEL. EPEL Next is an additional repository +that allows package maintainers to alternatively build against CentOS Stream. +This is sometimes necessary when CentOS Stream contains an upcoming RHEL +library rebase, or if an EPEL package has a minimum version build requirement +that is already in CentOS Stream but not yet in RHEL. EPEL Next has its own +distgit branches, koji build targets, and bodhi releases. + +EPEL Next packages have `.next` appended to the disttag (e.g. a disttag of +`.el8.next` for epel8-next) to provide an upgrade path from an EPEL package +that was built from the same distgit commit. A package maintainer can rebuild +the same commit for both EPEL and EPEL Next and get two different NVRs in koji. +Within six months, the build requirement necessitating building in EPEL Next +should be in RHEL, and at that time the package maintainer can do a normal +release bump commit in the EPEL branch and get a newer NVR than both the +previous EPEL and EPEL Next packages. + +To get started with EPEL Next, request the corresponding branch for the EPEL +release you are targeting, e.g. request an epel8-next branch to rebuild an +epel8 package against CentOS Stream 8. Once the branch is created you can +merge commits from other branches and submit a build just like you would for +other EPEL or Fedora branches. + ## EPEL Playground We have added an additional set of channels for EPEL-8 called diff --git a/epel-next-testing.repo b/epel-next-testing.repo new file mode 100644 index 0000000..fb46f46 --- /dev/null +++ b/epel-next-testing.repo @@ -0,0 +1,30 @@ +[epel-next-testing] +name=Extra Packages for Enterprise Linux $releasever - Next - Testing - $basearch +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/testing/next/$releasever/Everything/$basearch/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-testing-next-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=0 +gpgcheck=1 +countme=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 + +[epel-next-testing-debuginfo] +name=Extra Packages for Enterprise Linux $releasever - Next - Testing - $basearch - Debug +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/testing/next/$releasever/Everything/$basearch/debug/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-testing-next-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 +gpgcheck=1 + +[epel-next-testing-source] +name=Extra Packages for Enterprise Linux $releasever - Next - Testing - $basearch - Source +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/testing/next/$releasever/Everything/SRPMS/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-testing-next-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 +gpgcheck=1 diff --git a/epel-next.repo b/epel-next.repo new file mode 100644 index 0000000..59027c0 --- /dev/null +++ b/epel-next.repo @@ -0,0 +1,30 @@ +[epel-next] +name=Extra Packages for Enterprise Linux $releasever - Next - $basearch +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/next/$releasever/Everything/$basearch/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-next-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=1 +gpgcheck=1 +countme=1 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 + +[epel-next-debuginfo] +name=Extra Packages for Enterprise Linux $releasever - Next - $basearch - Debug +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/next/$releasever/Everything/$basearch/debug/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-next-debug-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 +gpgcheck=1 + +[epel-next-source] +name=Extra Packages for Enterprise Linux $releasever - Next - $basearch - Source +# It is much more secure to use the metalink, but if you wish to use a local mirror +# place it's address here. +#baseurl=https://download.example/pub/epel/next/$releasever/Everything/SRPMS/ +metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-next-source-$releasever&arch=$basearch&infra=$infra&content=$contentdir +enabled=0 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8 +gpgcheck=1 diff --git a/epel-release.spec b/epel-release.spec index 2a31753..6caac1c 100644 --- a/epel-release.spec +++ b/epel-release.spec @@ -1,6 +1,6 @@ Name: epel-release Version: 8 -Release: 10%{dist} +Release: 11%{dist} Summary: Extra Packages for Enterprise Linux repository configuration License: GPLv2 @@ -11,32 +11,45 @@ License: GPLv2 URL: http://download.fedoraproject.org/pub/epel Source0: http://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-8 Source1: GPL -Source2: epel.repo -Source3: epel-testing.repo -Source4: epel-playground.repo +Source2: README-epel-8-packaging.md # EPEL default preset policy (borrowed from fedora's 90-default.preset) -Source5: 90-epel.preset -Source6: README-epel-8-packaging.md +Source3: 90-epel.preset -Source100: epel-modular.repo -Source101: epel-testing-modular.repo + +Source100: epel.repo +Source101: epel-testing.repo +Source102: epel-next.repo +Source103: epel-next-testing.repo +Source104: epel-playground.repo +Source105: epel-modular.repo +Source106: epel-testing-modular.repo BuildArch: noarch Requires: redhat-release >= %{version} # epel-release is only for enterprise linux, not fedora Conflicts: fedora-release +Recommends: (epel-next-release if centos-stream-release) + %description This package contains the Extra Packages for Enterprise Linux (EPEL) repository GPG key as well as configuration for yum. + +%package -n epel-next-release +Summary: Extra Packages for Enterprise Linux Next repository configuration +Requires: %{name} = %{version}-%{release} + + +%description -n epel-next-release +This package contains the Extra Packages for Enterprise Linux (EPEL) Next +configuration for yum. + + %prep %setup -q -c -T -install -pm 644 %{SOURCE0} . install -pm 644 %{SOURCE1} . -install -pm 644 %{SOURCE6} . - -%build +install -pm 644 %{SOURCE2} . %install @@ -46,19 +59,32 @@ install -Dpm 644 %{SOURCE0} \ # yum install -dm 755 %{buildroot}%{_sysconfdir}/yum.repos.d -install -pm 644 %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE100} %{SOURCE101} \ +install -pm 644 %{SOURCE100} %{SOURCE101} %{SOURCE102} %{SOURCE103} %{SOURCE104} %{SOURCE105} %{SOURCE106} \ %{buildroot}%{_sysconfdir}/yum.repos.d -install -pm 644 -D %{SOURCE5} %{buildroot}%{_prefix}/lib/systemd/system-preset/90-epel.preset +install -pm 644 -D %{SOURCE3} %{buildroot}%{_prefix}/lib/systemd/system-preset/90-epel.preset %files %doc README-epel-8-packaging.md %license GPL -%config(noreplace) %{_sysconfdir}/yum.repos.d/* +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel.repo +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-testing.repo +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-modular.repo +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-testing-modular.repo +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-playground.repo %{_sysconfdir}/pki/rpm-gpg/* %{_prefix}/lib/systemd/system-preset/90-epel.preset + +%files -n epel-next-release +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-next.repo +%config(noreplace) %{_sysconfdir}/yum.repos.d/epel-next-testing.repo + + %changelog +* Thu Jun 03 2021 Carl George - 8-11 +- Add epel-next-release subpackage + * Sat Dec 05 2020 Kevin Fenzi - 8-10 - Add x509watch.timer enabled by default. Fixes bug #1901721