diff options
author | B. Stack <bgstack15@gmail.com> | 2022-05-17 21:32:43 -0400 |
---|---|---|
committer | B. Stack <bgstack15@gmail.com> | 2022-05-17 21:32:43 -0400 |
commit | 0d737af02d0b27bb4d9fbb453f09c293036d1a39 (patch) | |
tree | 9eaada241675221ee9129ebd7e1d46519df1fd6e /1-build-srpms.sh | |
download | build-radicale-el7-0d737af02d0b27bb4d9fbb453f09c293036d1a39.tar.gz build-radicale-el7-0d737af02d0b27bb4d9fbb453f09c293036d1a39.tar.bz2 build-radicale-el7-0d737af02d0b27bb4d9fbb453f09c293036d1a39.zip |
initial commit
Diffstat (limited to '1-build-srpms.sh')
-rwxr-xr-x | 1-build-srpms.sh | 107 |
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 |