aboutsummaryrefslogtreecommitdiff
path: root/1-build-srpms.sh
diff options
context:
space:
mode:
Diffstat (limited to '1-build-srpms.sh')
-rwxr-xr-x1-build-srpms.sh107
1 files changed, 107 insertions, 0 deletions
diff --git a/1-build-srpms.sh b/1-build-srpms.sh
new file mode 100755
index 0000000..994835c
--- /dev/null
+++ b/1-build-srpms.sh
@@ -0,0 +1,107 @@
+#!/bin/sh
+# File: 1-build-srpms.sh
+# Author: bgstack15
+# SPDX-License-Identifier: GPL-3.0
+# Startdate: 2022-05-17 10:20
+# Title: Build SRPMs for radicale3 for el7
+# Project: build-radicale-centos7
+# Purpose: Build srpms for upload to copr
+# History:
+# Improve:
+# Reference:
+# Dependencies:
+# git
+# Run this on CentOS 7
+# radicale-proxy-ldap-auth-fn.js.patch from this repo
+# Documentation:
+# README.md
+
+SCRIPTDIR="$( dirname "$(readlink -f "${0}" )" )"
+
+. "${SCRIPTDIR}/lib.sh"
+
+# If you actually compile these packages locally, you need to install these packages.
+if test -n "${BUILD_PACKAGES}" ;
+then
+ need_packages=
+ rpm -q python36-bcrypt 1>/dev/null || need_packages="${need_packages} python36-bcrypt"
+ rpm -q python36-dateutil 1>/dev/null || need_packages="${need_packages} python36-dateutil"
+ test -n "${need_packages}" && sudo yum install ${need_packages}
+fi
+
+mkdir -p "${WORKDIR}"
+cd "${WORKDIR}"
+
+# need python3-coverage
+git clone https://src.fedoraproject.org/rpms/python-coverage python-coverage
+( cd python-coverage ; git checkout -- *.spec ; git checkout "${FEDORA_VER}" ; cp -pf * ~/rpmbuild/SOURCES/ ; rpmbuild -bs *.spec )
+# generated ~/rpmbuild/SRPMS/python-coverage*.src.rpm
+
+# need python3-nose
+git clone https://src.fedoraproject.org/rpms/python-nose python-nose
+( cd python-nose ; git checkout -- *.spec ; git checkout "${FEDORA_VER}" ; cp -pf * ~/rpmbuild/SOURCES/ ; rpmbuild -bs *.spec )
+
+# need python36-passlib
+# This needs python36-bcrypt when compiling, for some inexplicable reason.
+git clone https://src.fedoraproject.org/rpms/python-passlib python-passlib
+(
+ cd python-passlib
+ git checkout -- *.spec ; git checkout "${FEDORA_VER}"
+ sed -i -r python-passlib.spec \
+ -e '/BuildRequires.*nose/aBuildRequires: python36-bcrypt'
+ cp -pf * ~/rpmbuild/SOURCES/ ;
+ rpmbuild -bs *.spec
+)
+
+# need a newer version of python36-dateutil than what CentOS 7 provides
+git clone https://src.fedoraproject.org/rpms/python-dateutil python-dateutil
+(
+ cd python-dateutil
+ git checkout -- *.spec ; git checkout "${FEDORA_VER}"
+ # Disable tests. Fix some python3 to python36 names. Disable docs which are needlessly complicated.
+ sed -i -r python-dateutil.spec \
+ -e '/%bcond.*tests/s/_without/_with/' \
+ -e '/^\w*Requires:.*(sphinx|setuptools|freezegun|hypothesis|pytest|six)/s/python3-/python36-/;' \
+ -e '/docs.*html/{s/^/#/;s/%/%%/g;};' ;
+ cp -pf * ~/rpmbuild/SOURCES/ ;
+ rpmbuild -bs *.spec ;
+)
+
+# need python36-vobject to use adjusted dateutil package name, and also add buildrequires: python36-six
+# This needs python36-dateutil when compiling
+git clone https://src.fedoraproject.org/rpms/python-vobject python-vobject
+(
+ cd python-vobject ;
+ git checkout -- *.spec ; git checkout "${FEDORA_VER}"
+ sed -i -r python-vobject.spec \
+ -e '/^\w*Requires:.*(dateutil)/s/python3-/python36-/;' \
+ -e '/^Summary/aBuildRequires: python36-six\' \
+ -e 'Requires: python36-six'
+ cp -pf * ~/rpmbuild/SOURCES/ ;
+ rpmbuild -bs *.spec ;
+)
+
+# and now prepare radicale3
+git clone https://src.fedoraproject.org/rpms/radicale radicale
+(
+ cd radicale ;
+ git checkout -- *.spec ; git checkout "${FEDORA_VER}"
+ sed -i -r radicale.spec \
+ -e '/^(\w*Requires(\(\w*\))?:|%package|%post|%files|#echo|#\/usr|%description|%\{\?python_provide|Conflicts|Suggests:|Recommends:)/{s/python3-/\%{pyver}-/g;}' \
+ -e '/^sed/s/python3/%{pyver}/g;' \
+ -e '/^SELinux|^httpd example/s/Python3/%{pyver}/;' \
+ -e '/^\w*Requires(\(\w*\))?:/{s/policycoreutils-python-utils/policycoreutils-python/g;};' \
+ -e 's/^(Suggests|Recommends):/Requires:/;' \
+ -e '/%define.*radicale_major/a# stackrpms, 5\' \
+ -e '%define pyver python3\' \
+ -e '%if 0%{?centos}\' \
+ -e '%define pyver python36\' \
+ -e '%endif' \
+ -e '/^%autosetup/s/$/ -p1/;' \
+ -e '/Patch0:/aPatch1: %{name}-proxy-ldap-auth-fn.js.patch' ;
+ cp -pf "${SCRIPTDIR}/"*.patch ~/rpmbuild/SOURCES/
+ cp -pf * ~/rpmbuild/SOURCES/
+ rpmbuild -bs *.spec ;
+)
+
+# Next steps: run script 2
bgstack15