%if 0%{?fedora} || 0%{?rhel} > 7 %global python python3 %global python_pfx python3 %global python_build %py3_build %global python_install %py3_install %global rpm_python python3-rpm %else %global python python2 %global python_pfx python %global python_build %py2_build %global python_install %py2_install %global rpm_python rpm-python %endif Name: copr-rpmbuild Version: 0.20 Summary: Run COPR build tasks Release: 1%{?dist} URL: https://pagure.io/copr/copr License: GPLv2+ BuildArch: noarch # Source is created by: # git clone https://pagure.io/copr/copr.git # git checkout copr-rpmbuild-0.20 # cd copr/rpmbuild # rpkg spec --sources Source0: copr-rpmbuild-0.20.tar.gz BuildRequires: %python-devel BuildRequires: %rpm_python BuildRequires: asciidoc BuildRequires: %python-setuptools BuildRequires: %python-pytest BuildRequires: %python_pfx-munch BuildRequires: %python-requests BuildRequires: %python_pfx-jinja2 BuildRequires: %python-configparser %if %{?python} == "python2" BuildRequires: python2-mock %endif Requires: %python Requires: %python_pfx-jinja2 Requires: %python_pfx-munch Requires: %python-configparser Requires: %python-requests Requires: mock Requires: git Requires: git-svn Requires: expect Requires: rubygem-gem2rpm Requires: pyp2rpm Requires: rpkg Requires: tito %description Provides command capable of running COPR build-tasks. Example: copr-rpmbuild 12345-epel-7-x86_64 will locally build build-id 12345 for chroot epel-7-x86_64. %prep %setup -q %check PYTHON=%{python} ./run_tests.sh %build name="%{name}" version="%{version}" summary="%{summary}" %python_build a2x -d manpage -f manpage man/copr-rpmbuild.1.asciidoc %install install -d %{buildroot}%{_sysconfdir}/copr-rpmbuild install -d %{buildroot}%{_sharedstatedir}/copr-rpmbuild install -d %{buildroot}%{_sharedstatedir}/copr-rpmbuild/results install -d %{buildroot}%{_bindir} install -m 755 main.py %{buildroot}%{_bindir}/copr-rpmbuild sed -i '1 s|#.*|#! /usr/bin/%python|' %{buildroot}%{_bindir}/copr-rpmbuild install -m 644 main.ini %{buildroot}%{_sysconfdir}/copr-rpmbuild/main.ini install -m 644 mock.cfg.j2 %{buildroot}%{_sysconfdir}/copr-rpmbuild/mock.cfg.j2 install -m 644 rpkg.conf.j2 %{buildroot}%{_sysconfdir}/copr-rpmbuild/rpkg.conf.j2 install -m 644 make_srpm_mock.cfg %{buildroot}%{_sysconfdir}/copr-rpmbuild/make_srpm_mock.cfg install -d %{buildroot}%{_mandir}/man1 install -p -m 644 man/copr-rpmbuild.1 %{buildroot}/%{_mandir}/man1/ install -p -m 755 bin/copr-sources-custom %buildroot%_bindir name="%{name}" version="%{version}" summary="%{summary}" %python_install %files %license LICENSE %{expand:%%%{python}_sitelib}/* %{_bindir}/copr-rpmbuild %{_bindir}/copr-sources-custom %{_mandir}/man1/copr-rpmbuild.1* %dir %attr(0775, root, mock) %{_sharedstatedir}/copr-rpmbuild %dir %attr(0775, root, mock) %{_sharedstatedir}/copr-rpmbuild/results %dir %{_sysconfdir}/copr-rpmbuild %config(noreplace) %{_sysconfdir}/copr-rpmbuild/main.ini %config(noreplace) %{_sysconfdir}/copr-rpmbuild/mock.cfg.j2 %config(noreplace) %{_sysconfdir}/copr-rpmbuild/rpkg.conf.j2 %config(noreplace) %{_sysconfdir}/copr-rpmbuild/make_srpm_mock.cfg %changelog * Mon Aug 06 2018 clime 0.20-1 - for py3 use unittest.mock, otherwise mock from python2-mock - avoid subprocess.communicate(timeout=..) - BlockingIOError, IOError -> OSError - hack for optional argparse subparser - fix shebang for epel7 - use fcntl.lockf (works with python 2.7, too) - make copr-rpmbuild installable/buildable on el7 * Fri May 18 2018 clime 0.19-1 - add --with/--without rpmbuild options for build chroot * Thu Apr 26 2018 Dominik Turecek 0.18-1 - rpkg deployment into COPR - containers + releng continuation - updates for latest upstream rpkg - update rpkg.conf.j2 to the latest rpkg version - s|/bin/env|/usr/bin/env| in shebang * Fri Feb 23 2018 clime 0.17-1 - remove unused requires and rename rpm-python3 to python3-rpm - switch copr-sources-custom to python3 shebang - keep tmpfs data mounted acros mock invocations for custom method * Mon Feb 19 2018 clime 0.16-1 - new custom source method * Sun Feb 18 2018 clime 0.15-1 - add support for fetch_sources_only in task defition - allow building rpms from srpms fetched by providers, - extend cmdline with scm submode - optionally set a priority for a repo - add test for create_rpmmacros + refactoring - allow only https and ftps protocols for source fetch * Thu Jan 11 2018 clime 0.14-1 - copy out dnf and yum logs when using mock - introspection and --version argument * Mon Dec 11 2017 clime 0.13-1 - update man pages - update help - exclude 'tests' in package auto-discovery - don't install additional stuff into bootstrap of custom buildroot - Bug 1514221 - Copr fails to clone the repository. Build fails. * Thu Nov 09 2017 clime 0.12-1 - fix get_mock_uniqueext call - fortify make_srpm - add '--private-users=pick' to make_srpm container to improve security - compatibility with rpkg-client-0.11 - add config for src.stg.fedoraproject.org into default rpmbuild config - fix download url for new rpkg-client version * Wed Oct 18 2017 clime 0.11-1 - provide option to root spec file path in SCM with '/' - fix exception raising in scm provider - make command debug info nicer - print task structure in the beginning even without -v - add listdir after srpm production - some Git backends do not support --depth - remove unused run method - checkout master by default - with limited depth, we need to clone with --no-single-branch - remove original perl script and mock config for it - remove no longer needed options from rpkg.conf.j2 - SCM source types unification - apply continuing line filtering from f4561c149893 - increase clone depth to address pag#129 SCM source type error * Tue Sep 26 2017 clime 0.10-1 - use https for copr frontend in default config - Make error message when the build task does not exist more user- friendly - add --build-id switch instead of positional argument - do not fail when lockfile does not exist - change arguments to build_id and chroot - remove lockfile import - remove unused requires: - remove unused variables in try-excepts - #138 FileExistsError: [Errno 17] File exists: '/var/lib/copr- rpmbuild/lockfile.lock' * Fri Sep 15 2017 clime 0.9-1 - copy spec file to the result dir to have a quick overview on the package * Thu Sep 14 2017 clime 0.8-1 - provide more verbose exception logging - take timeout into account - fix downstream/upstream condition - set also use_host_resolv to False if enable_net is False - when building rpms, prebuild srpm in mock chroot * Thu Sep 07 2017 clime 0.7-1 - rewrite to python - build-srpm from upstream ability added * Fri Jul 07 2017 clime 0.6-1 - support for source downloading * Tue Jun 27 2017 clime 0.5-1 - use Perl Virtual naming for Requires * Fri Jun 23 2017 clime 0.4-1 - use dnf.conf for custom-1 chroots - also copy .spec to the build result directory - raise curl timeout for downloading sources to be built - changes according to review bz#1460630 - rpmbuild_networking option is now used to enable/disable net * Wed Jun 14 2017 clime 0.3-1 - support for mock's bootstrap container - check each line of sources file separately - allow multiple sources and use current dir for mock as source dir - also check for value of repos first before array referencing in mockcfg.tmpl - handle null for buildroot_pkgs in mockcfg.tmpl * Fri Jun 09 2017 clime 0.2-1 - new package built with tito * Fri Jun 02 2017 clime 0.1-1 - Initial version