diff --git a/mock-2.2.tar.gz b/mock-2.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..addaf0d04c72fa72e2063e929ae3e680894b23ed Binary files /dev/null and b/mock-2.2.tar.gz differ diff --git a/mock.spec b/mock.spec new file mode 100644 index 0000000000000000000000000000000000000000..d4df753d3fd6cfe85f56810cb4c9f589f5ea4590 --- /dev/null +++ b/mock.spec @@ -0,0 +1,152 @@ +%global use_python3 1 +%global use_python2 0 +%global __python %{__python3} +%global python_sitelib %{python3_sitelib} + +Summary: Builds packages inside chroots +Name: mock +Version: 2.2 +Release: 1 +License: GPLv2+ +Source: %{name}-%{version}.tar.gz +URL: https://github.com/rpm-software-management/mock/ +Source1: mock_config.default +BuildArch: noarch +BuildRequires: bash-completion +BuildRequires: perl-interpreter +%if %{use_python3} +Requires: python3-distro +Requires: python3-jinja2 +Requires: python3-six >= 1.4.0 +Requires: python3-requests +Requires: python3-rpm +Requires: python3-pyroute2 +BuildRequires: python3-devel +%endif + + +Requires: tar +Requires: pigz +Requires: usermode +Requires: createrepo_c +Requires: systemd +Requires: systemd-container +Requires: coreutils +Requires: util-linux +Requires: coreutils +Requires: procps-ng +Requires: dnf +Requires: dnf-plugins-core + + +%description +Mock takes an SRPM and builds it in a chroot. + +%package plugins +Summary: Mock plugins integration module +Requires: %{name} = %{version}-%{release} +Requires: lvm2 +Recommends: cvs git subversion tar + +%description plugins +Mock plugins integration module. + +%prep +%setup -q +for file in py/mock.py py/mock-parse-buildlog.py; do + sed -i 1"s|#!/usr/bin/python3 |#!%{__python} |" $file +done + +%build +for i in py/mock.py py/mock-parse-buildlog.py; do + perl -p -i -e 's|^__VERSION__\s*=.*|__VERSION__="%{version}"|' $i + perl -p -i -e 's|^SYSCONFDIR\s*=.*|SYSCONFDIR="%{_sysconfdir}"|' $i + perl -p -i -e 's|^PYTHONDIR\s*=.*|PYTHONDIR="%{python_sitelib}"|' $i + perl -p -i -e 's|^PKGPYTHONDIR\s*=.*|PKGPYTHONDIR="%{python_sitelib}/mockbuild"|' $i +done +for i in docs/mock.1 docs/mock-parse-buildlog.1; do + perl -p -i -e 's|\@VERSION\@|%{version}"|' $i +done + +%install +install -d %{buildroot}%{_bindir} +install -d %{buildroot}%{_libexecdir}/mock +install mockchain %{buildroot}%{_bindir}/mockchain +install py/mock-parse-buildlog.py %{buildroot}%{_bindir}/mock-parse-buildlog +install py/mock.py %{buildroot}%{_libexecdir}/mock/mock +ln -s consolehelper %{buildroot}%{_bindir}/mock +install create_default_route_in_container.sh %{buildroot}%{_libexecdir}/mock/ + +install -d %{buildroot}%{_sysconfdir}/pam.d +cp -a etc/pam/* %{buildroot}%{_sysconfdir}/pam.d/ + +install -d %{buildroot}%{_sysconfdir}/mock +cp -a etc/mock/* %{buildroot}%{_sysconfdir}/mock/ + +install -d %{buildroot}%{_sysconfdir}/security/console.apps/ +cp -a etc/consolehelper/mock %{buildroot}%{_sysconfdir}/security/console.apps/%{name} + +install -d %{buildroot}%{_datadir}/bash-completion/completions/ +cp -a etc/bash_completion.d/* %{buildroot}%{_datadir}/bash-completion/completions/ +ln -s mock %{buildroot}%{_datadir}/bash-completion/completions/mock-parse-buildlog + +install -d %{buildroot}%{_sysconfdir}/pki/mock +cp -a etc/pki/* %{buildroot}%{_sysconfdir}/pki/mock/ + +install -d %{buildroot}%{python_sitelib}/ +cp -a py/mockbuild %{buildroot}%{python_sitelib}/ + +install -d %{buildroot}%{_mandir}/man1 +cp -a docs/mock.1 docs/mock-parse-buildlog.1 %{buildroot}%{_mandir}/man1/ +install -d %{buildroot}%{_datadir}/cheat +cp -a docs/mock.cheat %{buildroot}%{_datadir}/cheat/mock + +install -d %{buildroot}/var/lib/mock +install -d %{buildroot}/var/cache/mock + + +mkdir -p %{buildroot}%{_pkgdocdir} +install -p -m 0644 %{SOURCE1} %{buildroot}%{_pkgdocdir}/site-defaults.cfg +install -p -m 0644 %{SOURCE1} %{buildroot}/etc/mock/site-defaults.cfg + +%check + +%files +%defattr(-, root, root) +%{_bindir}/mockchain +%{_bindir}/mock +%{_bindir}/mock-parse-buildlog + +%{python_sitelib}/* +%exclude %{python_sitelib}/mockbuild/scm.* +%exclude %{python_sitelib}/mockbuild/plugins/lvm_root.* + +# config files +%config(noreplace) %{_sysconfdir}/%{name}/*.ini +%config(noreplace) %{_sysconfdir}/%{name}/site-defaults.cfg +%config(noreplace) %{_sysconfdir}/pam.d/%{name} +%config(noreplace) %{_sysconfdir}/security/console.apps/%{name} +%dir %{_sysconfdir}/pki/mock +%config(noreplace) %{_sysconfdir}/pki/mock/* + +%{_mandir}/man1/* +%{_datadir}/cheat/mock +%{_datadir}/bash-completion/completions/mock +%{_pkgdocdir}/site-defaults.cfg +%{_datadir}/bash-completion/completions/mock-parse-buildlog +%{_libexecdir}/mock + +%dir %{_localstatedir}/cache/mock +%dir %{_localstatedir}/lib/mock + +%files plugins +%{python_sitelib}/mockbuild/scm.py* +%{python_sitelib}/mockbuild/plugins/lvm_root.* +%if %{use_python3} +%{python3_sitelib}/mockbuild/__pycache__/scm.*.py* +%{python3_sitelib}/mockbuild/plugins/__pycache__/lvm_root.*.py* +%endif + +%changelog +* Fri May 15 2020 hexiaowen 2.2-1 +- first build diff --git a/mock_config.default b/mock_config.default new file mode 100644 index 0000000000000000000000000000000000000000..dc73cf26582b0cb0b617a20ceae5edbd1d7f4c7c --- /dev/null +++ b/mock_config.default @@ -0,0 +1,41 @@ +config_opts['chroot_setup_cmd'] = 'install openEuler-rpm-config openEuler-release shadow rpm-build dnf-plugins-core gcc make' +config_opts['package_manager'] = 'dnf' +config_opts['more_buildreqs'] = 'gdb-headless' +config_opts['plugin_conf']['root_cache_enable'] = False +config_opts['plugin_conf']['selinux_enable'] = False +config_opts['plugin_conf']['procenv_enable'] = True +config_opts['nosync'] = True + +config_opts['root'] = 'openEuler-LTS-{{ target_arch }}-1' + +config_opts['target_arch'] = '{{ target_arch }}' +config_opts['use_bootstrap_container'] = False +config_opts['dnf_disable_plugins'] = ['local', 'spacewalk'] +config_opts['use_nspawn'] = False +config_opts['useradd'] = '/usr/sbin/useradd -o -m -u %(uid)s -g %(gid)s -d %(home)s -N %(user)s' + +config_opts['yum.conf'] = """ +[main] +keepcache=1 +debuglevel=2 +reposdir=/dev/null +logfile=/var/log/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +syslog_ident=mock +syslog_device= +install_weak_deps=0 +metadata_expire=0 +best=1 +protected_packages= + +# repos +[openEuler] +name=Euler +baseurl=http://9.82.1.253/productrepo/openEuler1.0/EULEROS_BASIC/ARM64/openEuler1.0/2020-03-20-06-30-06 +enabled=1 +gpgcheck=0 +gpgkey=http://9.82.1.253/productrepo/openEuler1.0/EULEROS_BASIC/ARM64/openEuler1.0/2020-03-20-06-30-06/RPM-GPG-KEY-openEuler +""" \ No newline at end of file