From 42f203569bc3dd2e4a6adb56803f34290f581c08 Mon Sep 17 00:00:00 2001 From: S-P Chan Date: Thu, 5 Oct 2023 10:55:26 +0800 Subject: [PATCH] pkg: RPM - add mock config for EL8/EL9 based on alma+epel-(8|9)-x86_64 This mock config can be used to build RPM packages from a kamailio src.rpm. - update pkg/kamailio/obs/README -> README.md to include mock instructions - add script create-src-rpm.sh to create src.rpm for package building Cherry-pick from 9de780b8a7 --- pkg/kamailio/obs/README | 16 -------- pkg/kamailio/obs/README.md | 35 ++++++++++++++++++ pkg/kamailio/obs/kamailio-8-x86_64.cfg | 19 ++++++++++ pkg/kamailio/obs/kamailio-9-x86_64.cfg | 19 ++++++++++ pkg/kamailio/scripts/create-src-rpm.sh | 37 +++++++++++++++++++ pkg/{ => kamailio}/scripts/git-archive-all.sh | 3 +- 6 files changed, 111 insertions(+), 18 deletions(-) delete mode 100644 pkg/kamailio/obs/README create mode 100644 pkg/kamailio/obs/README.md create mode 100644 pkg/kamailio/obs/kamailio-8-x86_64.cfg create mode 100644 pkg/kamailio/obs/kamailio-9-x86_64.cfg create mode 100755 pkg/kamailio/scripts/create-src-rpm.sh rename pkg/{ => kamailio}/scripts/git-archive-all.sh (76%) diff --git a/pkg/kamailio/obs/README b/pkg/kamailio/obs/README deleted file mode 100644 index aa3ce92746d..00000000000 --- a/pkg/kamailio/obs/README +++ /dev/null @@ -1,16 +0,0 @@ -# RPM Specs For OpenSuse Build Service (OBS) # - -Here are the RPM packaging specs for openSUSE Build Service: - - * https://build.opensuse.org/ - -It builds RPM packages for following distributions: - - * CentOS 6 and 7 - * RHEL 6 and 7 - * Fedora 25 and 26 - * openSUSE 42.2 and 42.3 - -Kamailio's RPMs bulding projects for various versions can be found at: - - * https://build.opensuse.org/project/subprojects/home:kamailio diff --git a/pkg/kamailio/obs/README.md b/pkg/kamailio/obs/README.md new file mode 100644 index 00000000000..193139e77ec --- /dev/null +++ b/pkg/kamailio/obs/README.md @@ -0,0 +1,35 @@ +# RPM Specs + +## For OpenSuse Build Service (OBS) + +Here are the RPM packaging specs for openSUSE Build Service: + + * https://build.opensuse.org/ + +It builds RPM packages for following distributions: + +* CentOS 6 and 7 +* RHEL 6 and 7 +* Fedora 25 and 26 +* openSUSE 42.2 and 42.3 + +Kamailio's RPMs bulding projects for various versions can be found at: + +* https://build.opensuse.org/project/subprojects/home:kamailio + +## For local build using mock + + # prepare source tarball from repo + cd kamailio/ + mkdir -p ../rpmbuild/SOURCES ../rpmbuild/SPECS + ./pkg/kamailio/scripts/git-archive-all.sh kamailio-5.8.0 ../rpmbuild/SOURCES/kamailio-5.8.0_src + # prepare src.rpm with version/release: replace MYVER/MYREL below + cp pkg/kamailio/obs/kamailio.spec ../rpmbuild/SPECS/ + sed -i -e s'/^%define ver.*/%define ver MYVER/' -e s'/^%define rel.*/%define rel MYREL/' ../rpmbuild/SPECS/kamailio.spec + rpmbuild -bs --define "_topdir $PWD/../rpmbuild" ../rpmbuild/SPECS/kamailio.spec + + # build for EL8/9 + mock -r pkg/kamailio/obs/kamailio-8-x86_64.cfg ../rpmbuild/SRPMS/*src.rpm + mock -r pkg/kamailio/obs/kamailio-9-x86_64.cfg ../rpmbuild/SRPMS/*src.rpm + + diff --git a/pkg/kamailio/obs/kamailio-8-x86_64.cfg b/pkg/kamailio/obs/kamailio-8-x86_64.cfg new file mode 100644 index 00000000000..29dfdfb1945 --- /dev/null +++ b/pkg/kamailio/obs/kamailio-8-x86_64.cfg @@ -0,0 +1,19 @@ +include('almalinux-8-x86_64.cfg') +include('templates/epel-8.tpl') + +config_opts['root'] = "kamailio-8-{{ target_arch }}" +config_opts['description'] = 'Kamailio- AlmaLinux 8 + EPEL' + +config_opts['dnf.conf'] += """ +# you must copy the kamailio RPM signing key to the host as +# /etc/pki/mock/kamailio-rpm-pub.key +# curl https://rpm.kamailio.org/rpm-pub.key | sudo tee /etc/pki/mock/kamailio-rpm-pub.key + +[kamailio] +name=Support packages for kamailio +baseurl=http://rpm.kamailio.org/centos/$releasever/master/master/$basearch/ +gpgkey=file:///etc/pki/mock/kamailio-rpm-pub.key +""" + +# since EL9 the chroots don't include C/C++ development tools +config_opts['chroot_additional_packages'] = "gcc gcc-c++ make GeoIP-devel autoconf automake libtool" diff --git a/pkg/kamailio/obs/kamailio-9-x86_64.cfg b/pkg/kamailio/obs/kamailio-9-x86_64.cfg new file mode 100644 index 00000000000..2c78b5f7e63 --- /dev/null +++ b/pkg/kamailio/obs/kamailio-9-x86_64.cfg @@ -0,0 +1,19 @@ +include('almalinux-9-x86_64.cfg') +include('templates/epel-9.tpl') + +config_opts['root'] = "kamailio-9-{{ target_arch }}" +config_opts['description'] = 'Kamailio- AlmaLinux 9 + EPEL' + +config_opts['dnf.conf'] += """ +# you must copy the kamailio RPM signing key to the host as +# /etc/pki/mock/kamailio-rpm-pub.key +# curl https://rpm.kamailio.org/rpm-pub.key | sudo tee /etc/pki/mock/kamailio-rpm-pub.key + +[kamailio] +name=Support packages for kamailio +baseurl=http://rpm.kamailio.org/centos/$releasever/master/master/$basearch/ +gpgkey=file:///etc/pki/mock/kamailio-rpm-pub.key +""" + +# since EL9 the chroots don't include C/C++ development tools +config_opts['chroot_additional_packages'] = "gcc gcc-c++ make GeoIP-devel autoconf automake libtool" diff --git a/pkg/kamailio/scripts/create-src-rpm.sh b/pkg/kamailio/scripts/create-src-rpm.sh new file mode 100755 index 00000000000..ebe792a22bb --- /dev/null +++ b/pkg/kamailio/scripts/create-src-rpm.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# + +usage() { + echo Usage: create-src-rpm.sh '' '' +} + +# creates a src.rpm for mock +VER=$1 +REL=$2 +[[ -n $VER ]] || { echo "Version not specified"; usage; exit 1; } +[[ -n $REL ]] || { echo "Release not specified"; usage; exit 2; } + +git submodule update --init + +TMP=$(date +"%s") +RPMBUILD=rpmbuild.${TMP} + +rm -rf $RPMBUILD/* +mkdir -p $RPMBUILD/{SRPMS,SPECS,SOURCES} +./pkg/kamailio/scripts/git-archive-all.sh kamailio-${VER} $RPMBUILD/SOURCES/kamailio-${VER}_src + +# prepare src.rpm with version/release +cp pkg/kamailio/obs/kamailio.spec $RPMBUILD/SPECS/ +sed -i -e s"/^%define ver.*/%define ver ${VER}/" -e s"/^%define rel.*/%define rel ${REL}/" ${RPMBUILD}/SPECS/kamailio.spec + +rm -f ${RPMBUILD}/SRPMS/*.src.rpm +rpmbuild -bs --define "_topdir $PWD/$RPMBUILD" $RPMBUILD/SPECS/kamailio.spec + +echo "src.rpm is created in $RPMBUILD/SRPMS" +echo "To build:" +echo Run: mock -r pkg/kamailio/obs/kamailio-8-x86_64.cfg $RPMBUILD/SRPMS/*src.rpm +echo Run: mock -r pkg/kamailio/obs/kamailio-9-x86_64.cfg $RPMBUILD/SRPMS/*src.rpm + + +exit 0 + diff --git a/pkg/scripts/git-archive-all.sh b/pkg/kamailio/scripts/git-archive-all.sh similarity index 76% rename from pkg/scripts/git-archive-all.sh rename to pkg/kamailio/scripts/git-archive-all.sh index 71bacc7d896..4c85ca83cc4 100755 --- a/pkg/scripts/git-archive-all.sh +++ b/pkg/kamailio/scripts/git-archive-all.sh @@ -1,10 +1,9 @@ #!/usr/bin/env bash # packaging script to include submodules # modified from: https://gist.github.com/arteymix/03702e3eb05c2c161a86b49d4626d21f -# Usage: pkg/scripts/git-archive-all.sh kamailio-5.8.0 ../output/kamailio-5.8.0_src usage() { - echo Usage: pkg/scripts/git-archive-all.sh kamailio-5.8.0 ../output/kamailio-5.8.0_src + echo Usage: pkg/kamailio/scripts/git-archive-all.sh kamailio-5.8.0 ../output/kamailio-5.8.0_src } if [ -z $1 ]; then