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/kamailio/scripts/git-archive-all.sh b/pkg/kamailio/scripts/git-archive-all.sh new file mode 100755 index 00000000000..4c85ca83cc4 --- /dev/null +++ b/pkg/kamailio/scripts/git-archive-all.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# packaging script to include submodules +# modified from: https://gist.github.com/arteymix/03702e3eb05c2c161a86b49d4626d21f + +usage() { + echo Usage: pkg/kamailio/scripts/git-archive-all.sh kamailio-5.8.0 ../output/kamailio-5.8.0_src +} + +if [ -z $1 ]; then + echo "You must specify a prefix name." + usage + exit 1 +fi + +if [ -z $2 ]; then + echo "You must specify a super-archive name." + usage + exit 1 +fi + +git archive --prefix "$1/" -o "$2.tar" HEAD +git submodule foreach --recursive "git archive --prefix=$1/\$sm_path/ --output=\$sha1.tar HEAD && tar --concatenate --file=$(pwd)/$2.tar \$sha1.tar && rm \$sha1.tar" + +gzip "$2.tar"