# EPEL 9 Next setup
# Outline
- koji
- create external repo
- mirror [c9s buildroot](https://kojihub.stream.centos.org/kojifiles/repos/c9s-build/latest/$basearch/) (with reposync due to symlinks) ([releng ticket](https://pagure.io/releng/issue/10235)) ✓
- (No need for grobisplitter as stream 9 has no modules in buildroot)
- create epel9-next build target ✓
- dist macro override `.el9.next` ✓
- koji build groups (see section below) ✓
- fedpkg-minimal bootstrap
- tag epel8 build to override tag ✓
- build for epel9-next ✓
- tag epel9-next build to override tag ✓
- untag epel8 build from override tag ✓
- signing
- epel9 key setup ✓
- [configure robosignatory](https://pagure.io/fedora-infra/ansible/pull-request/808) to use epel9 key for epel9 and epel9-next ✓
- add epel9 product to PDC ✓
- fedscm-admin
- [add branch SLAs](https://pagure.io/fedscm-admin/pull-request/72) ✓
- [check c9s compose metadata for valid epel package names](https://pagure.io/fedscm-admin/pull-request/72) ✓
- fedpkg
- [update assert_valid_epel_package function](https://pagure.io/fedpkg/pull-request/453) ✓
- [add above change as a patch to fedpkg package](https://src.fedoraproject.org/rpms/fedpkg/pull-request/33) ✓
- bodhi
- [update backend sync script](https://pagure.io/fedora-infra/ansible/pull-request/815) to include epel9-next release ✓
- [add epel9 tag to koji_sync_listener](https://pagure.io/fedora-infra/ansible/pull-request/819) ✓
- [add epel9-next tag to koji_sync_listener](https://pagure.io/fedora-infra/ansible/pull-request/826) ✓
- [add release](https://pagure.io/releng/issue/10360) ✓
- [add epel9 key id to bodhi pungi config](https://pagure.io/fedora-infra/ansible/pull-request/864) ✓
- [add initial epel9-next comps file](https://pagure.io/fedora-comps/pull-request/689) ([no empty group allowed](https://pagure.io/fedora-comps/pull-request/690)) ✓
- [update repomd template](https://pagure.io/fedora-infra/ansible/pull-request/866) ✓
- [use xz compression option for createrepo](https://pagure.io/fedora-infra/ansible/blob/main/f/roles/bodhi2/backend/templates/pungi.rpm.conf.j2#_89) ([original change](https://pagure.io/fedora-infra/ansible/c/a1e49de8d601f929202ab352d7fc9fedd564284b))
- run infra playbook ✓
- [epel-release](https://koji.fedoraproject.org/koji/buildinfo?buildID=1845105) ✓
- [epel-rpm-macros](https://koji.fedoraproject.org/koji/buildinfo?buildID=1848629) ✓
- [s390x refresh](https://issues.redhat.com/browse/PLTSBMAAS-336) ✓
- add epel9-next to mirrormanager (verified automatic detection) ✓
- [add epel9 key to distribution-gpg-keys](https://github.com/xsuchy/distribution-gpg-keys/pull/51) ✓
- [add epel9-next to mock-core-configs](https://github.com/rpm-software-management/mock/pull/786) ✓
- announcement email
# fedpkg-minimal bootstrap
- `koji tag-build epel9-next-override fedpkg-minimal-1.2.0-4.el8` [build](https://koji.fedoraproject.org/koji/buildinfo?buildID=1806102) ✓
- `fedpkg --release epel9-next build` from rawhide checkout [build](https://koji.fedoraproject.org/koji/buildinfo?buildID=1836381) ✓
- `koji tag-build epel9-next-override fedpkg-minimal-1.2.0-4.el9.next` ✓
- `koji untag-build epel9-next-override fedpkg-minimal-1.2.0-4.el8` ✓
- request epel9-next branch for fedpkg-minimal ([co-maintainer request](https://bugzilla.redhat.com/show_bug.cgi?id=2007051)) (optional)
# release package
https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-9
# koji tags
```
# main, base, and override tags
koji add-tag epel9
koji add-tag --arches "aarch64 ppc64le s390x x86_64" epel9-base
# no rhel9 repo yet
#koji add-external-repo --mode bare --tag epel9-base rhel9-base \
# 'https://infrastructure.fedoraproject.org/repo/rhel/rhel9/$arch/'
koji add-tag --parent epel9 epel9-override
# build tag
koji add-tag --arches "aarch64 ppc64le s390x x86_64" epel9-build
koji add-tag-inheritance --priority 10 epel9-build epel9-override
koji add-tag-inheritance --priority 20 epel9-build epel9-base
koji add-group epel9-build build
koji add-group-pkg epel9-build build \
redhat-release \
bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros \
fedpkg-minimal findutils gawk glibc-minimal-langpack grep gzip info make \
patch redhat-rpm-config rpm-build sed shadow-utils tar unzip util-linux \
which xz
koji add-group epel9-build srpm-build
koji add-group-pkg epel9-build srpm-build \
redhat-release \
bash epel-release epel-rpm-macros fedpkg-minimal glibc-minimal-langpack \
gnupg2 redhat-rpm-config rpm-build shadow-utils
koji regen-repo epel9-build
# other tags
koji add-tag --parent epel9 epel9-pending
koji add-tag --parent epel9 epel9-testing
koji add-tag --parent epel9 epel9-testing-candidate
koji add-tag --parent epel9-testing epel9-testing-pending
koji add-tag --parent epel9-testing-pending epel9-signing-pending
# targets
#koji add-target epel9 epel9-build epel9-testing-candidate
#koji add-target epel9-candidate epel9-build epel9-testing-candidate
```
```
# main, base, and override tags
koji add-tag epel9-next
koji add-tag --parent epel9 --arches "aarch64 ppc64le s390x x86_64" epel9-next-base
koji add-external-repo --mode bare --tag epel9-next-base c9s-buildroot \
'https://infrastructure.fedoraproject.org/repo/centos/centos-9-stream/$arch/'
koji add-tag --parent epel9-next epel9-next-override
# build tag
koji add-tag --arches "aarch64 ppc64le s390x x86_64" epel9-next-build
koji add-tag-inheritance --priority 10 epel9-next-build epel9-next-override
koji add-tag-inheritance --priority 20 epel9-next-build epel9-next-base
koji edit-tag --extra rpm.macro.dist=.el9.next epel9-next-build
koji add-group epel9-next-build build
koji add-group-pkg epel9-next-build build \
centos-stream-release \
bash bzip2 coreutils cpio diffutils epel-release epel-rpm-macros \
fedpkg-minimal findutils gawk glibc-minimal-langpack grep gzip info make \
patch redhat-rpm-config rpm-build sed shadow-utils tar unzip util-linux \
which xz
koji add-group epel9-next-build srpm-build
koji add-group-pkg epel9-next-build srpm-build \
centos-stream-release \
bash epel-release epel-rpm-macros fedpkg-minimal glibc-minimal-langpack \
gnupg2 redhat-rpm-config rpm-build shadow-utils
koji regen-repo epel9-next-build
# other tags
koji add-tag --parent epel9-next epel9-next-pending
koji add-tag --parent epel9-next epel9-next-testing
koji add-tag --parent epel9-next epel9-next-testing-candidate
koji add-tag --parent epel9-next-testing epel9-next-testing-pending
koji add-tag --parent epel9-next-testing-pending epel9-next-signing-pending
# targets
koji add-target epel9-next epel9-next-build epel9-next-testing-candidate
koji add-target epel9-next-candidate epel9-next-build epel9-next-testing-candidate
```
# Koji build groups
```
$ koji list-groups epel8-build
build [epel8-build]
bash: None, mandatory [epel8-build]
bzip2: None, mandatory [epel8-build]
coreutils: None, mandatory [epel8-build]
cpio: None, mandatory [epel8-build]
diffutils: None, mandatory [epel8-build]
epel-release: None, mandatory [epel8-build]
epel-rpm-macros: None, mandatory [epel8-build]
fedpkg-minimal: None, mandatory [epel8-build]
findutils: None, mandatory [epel8-build]
gawk: None, mandatory [epel8-build]
gcc: None, mandatory [epel8-build]
gcc-c++: None, mandatory [epel8-build]
grep: None, mandatory [epel8-build]
gzip: None, mandatory [epel8-build]
info: None, mandatory [epel8-build]
make: None, mandatory [epel8-build]
patch: None, mandatory [epel8-build]
redhat-release: None, mandatory [epel8-build]
redhat-release-everything: None, mandatory [epel8-build]
redhat-release-server: None, mandatory [epel8-build]
redhat-rpm-config: None, mandatory [epel8-build]
rpm-build: None, mandatory [epel8-build]
sed: None, mandatory [epel8-build]
shadow-utils: None, mandatory [epel8-build]
tar: None, mandatory [epel8-build]
unzip: None, mandatory [epel8-build]
util-linux: None, mandatory [epel8-build]
util-linux-ng: None, mandatory [epel8-build]
which: None, mandatory [epel8-build]
xz: None, mandatory [epel8-build]
srpm-build [epel8-build]
bash: None, mandatory [epel8-build]
epel-release: None, mandatory [epel8-build]
epel-rpm-macros: None, mandatory [epel8-build]
fedpkg-minimal: None, mandatory [epel8-build]
git: None, mandatory [epel8-build]
gnupg: None, mandatory [epel8-build]
make: None, mandatory [epel8-build]
redhat-release: None, mandatory [epel8-build]
redhat-release-everything: None, mandatory [epel8-build]
redhat-release-server: None, mandatory [epel8-build]
redhat-rpm-config: None, mandatory [epel8-build]
rpm-build: None, mandatory [epel8-build]
shadow-utils: None, mandatory [epel8-build]
```
- The above is for epel8/rhel8. Build options have changed with rhel8. Below is suggested groups
- build
- bash
- bzip2
- centos-stream-release
- coreutils
- cpio
- diffutils
- epel-release
- epel-rpm-macros
- fedpkg-minimal
- findutils
- gawk
- glibc-minimal-langpack
- grep
- gzip
- info
- make
- patch
- redhat-rpm-config
- rpm-build
- sed
- shadow-utils
- tar
- unzip
- util-linux
- which
- xz
- srpm-build
- bash
- centos-stream-release
- fedpkg-minimal
- glibc-minimal-langpack
- gnupg2
- redhat-rpm-config
- rpm-build
- shadow-utils
# PDC
https://pdc.fedoraproject.org/rest_api/v1/product-versions/#tab_create
https://pagure.io/releng/blob/main/f/scripts/pdc/create-product-release.py
# EPEL 8 Reference
- https://hackmd.io/@carlwgeorge/ry-qCXDYv