dnf/dnf.spec

307 lines
12 KiB
RPMSpec
Raw Permalink Normal View History

%global py3pluginpath %{python3_sitelib}/%{name}-plugins
%global relate_libdnf_version 0.48.0-3
2019-09-30 10:37:03 -04:00
2020-01-08 20:13:09 +08:00
Name: dnf
Version: 4.2.23
Release: 11
2020-01-08 20:13:09 +08:00
Summary: A software package manager that manages packages on Linux distributions.
License: GPLv2+ and GPLv2 and GPL
URL: https://github.com/rpm-software-management/dnf
Source0: https://github.com/rpm-software-management/dnf/archive/%{version}/%{name}-%{version}.tar.gz
2020-01-17 09:14:37 +08:00
Patch0: Fix-module-remove-all-when-no-match.patch
Patch1: Prevent-traceback-catch-ValueError-if-pkg-is-from-cmdline.patch
Patch2: Check-for-specific-key-string-when-verifing-signatures.patch
Patch3: Use-rpmkeys-to-verify-package-signature-with-_pkgverify_level.patch
Patch4: Remove-key-regex-matching-rpm-sprintf-output-varies-too-much.patch
Patch5: Add-missing-check-if-path-exists-fixes-dead-code.patch
Patch6: dnf-rpm-miscutils.py-fix-usage-of-_.patch
Patch7: Pass-the-package-to-rpmkeys-stdin.patch
Patch8: Use-rpmkeys-alone-to-verify-signature.patch
Patch9: Add-fail_fast-parameter-to-download_payloads-methods.patch
Patch10: Fix-reporting-irrecoverable-errors-on-packages-downl.patch
Patch6000: backport-fix-dnf-mark-error-when-history-sqlite-missing.patch
Patch9000: fix-dnf-history-undo-error-when-history-sqlite-missing.patch
Patch6001: backport-switch-install-remove-parts-of-swap-command.patch
Patch6002: backport-fix-remove-when-no-repos-are-enabled.patch
Patch6003: backport-set-default-value-for-variable-to-prevent-crash.patch
Patch6004: backport-pass-whole-url-in-relativeUrl-to-packageTarget-for-rpm-url-download.patch
Patch6005: backport-ignore-processing-variable-files-with-unsupported-encoding.patch
Patch6006: backport-fix-AttributeError-when-IO-busy-and-press-ctrl-c.patch
2020-01-08 20:13:09 +08:00
BuildArch: noarch
BuildRequires: cmake gettext systemd bash-completion python3-sphinx
2021-08-03 08:19:00 +00:00
Requires: python3-%{name} = %{version}-%{release} libreport-filesystem
2020-01-08 20:13:09 +08:00
Recommends: (%{_bindir}/sqlite3 if bash-completion) (python3-dbus if NetworkManager)
Provides: dnf-command(alias) dnf-command(autoremove) dnf-command(check-update) dnf-command(clean)
Provides: dnf-command(distro-sync) dnf-command(downgrade) dnf-command(group) dnf-command(history)
Provides: dnf-command(info) dnf-command(install) dnf-command(list) dnf-command(makecache)
Provides: dnf-command(mark) dnf-command(provides) dnf-command(reinstall) dnf-command(remove)
Provides: dnf-command(repolist) dnf-command(repoquery) dnf-command(repository-packages)
Provides: dnf-command(search) dnf-command(updateinfo) dnf-command(upgrade) dnf-command(upgrade-to)
Conflicts: python2-dnf-plugins-core < 4.0.6 python3-dnf-plugins-core < 4.0.6
Provides: %{name}-data = %{version}-%{release} %{name}-conf = %{version}-%{release} %{name}-automatic = %{version}-%{release}
Obsoletes: %{name}-data < %{version}-%{release} %{name}-conf < %{version}-%{release} %{name}-automatic < %{version}-%{release}
2019-09-30 10:37:03 -04:00
%description
DNF is a software package manager that installs, updates, and removespackages
on RPM-based Linux distributions. It automatically computes dependencies and
determines the actions required to install packages.DNF also makes it easier
to maintain groups of machines, eliminating the need to manually update each
one using rpm.
2020-01-08 20:13:09 +08:00
%package -n yum
Requires: %{name} = %{version}-%{release}
Summary: Package manager
2019-09-30 10:37:03 -04:00
2020-01-08 20:13:09 +08:00
%description -n yum
Utility that allows users to manage packages on their systems.\
It supports RPMs, modules and comps groups & environments.
2019-09-30 10:37:03 -04:00
2020-01-08 20:13:09 +08:00
%package -n python3-%{name}
Summary: Python 3 interface to DNF
2019-09-30 10:37:03 -04:00
%{?python_provide:%python_provide python3-%{name}}
BuildRequires: python3-devel python3-hawkey >= 0.48.0 python3-libdnf >= 0.48.0
BuildRequires: python3-libcomps >= 0.1.8 libmodulemd >= 1.4.0
2020-01-08 20:13:09 +08:00
BuildRequires: python3-nose python3-gpg python3-rpm >= 4.14.0
Requires: python3-gpg %{name}-data = %{version}-%{release} libmodulemd >= 1.4.0
Requires: python3-hawkey >= 0.48.0 python3-libdnf >= %{relate_libdnf_version}
Requires: python3-libcomps >= 0.1.8 python3-rpm >= 4.14.0
Recommends: python3-unbound
2020-03-18 18:37:31 +08:00
Obsoletes: python2-%{name}
2019-09-30 10:37:03 -04:00
2020-01-08 20:13:09 +08:00
%description -n python3-%{name}
Python 3 interface to DNF.
2019-09-30 10:37:03 -04:00
%package help
Summary: Documents for dnf and yum
Buildarch: noarch
Requires: man info
Provides: yum-help = %{version}-%{release}
Obsoletes: yum-help < %{version}-%{release}
%description help
Man pages and other related documents for dnf and yum
2019-09-30 10:37:03 -04:00
%prep
%autosetup -p1
2020-01-08 20:13:09 +08:00
mkdir build-py3
2019-09-30 10:37:03 -04:00
%build
pushd build-py3
%cmake .. -DPYTHON_DESIRED:FILEPATH=%{__python3}
%make_build all doc-man
popd
2019-09-30 10:37:03 -04:00
%install
pushd build-py3
%make_install
popd
2019-09-30 10:37:03 -04:00
%find_lang %{name}
2020-01-08 20:13:09 +08:00
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/vars
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/aliases.d
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/plugins/
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.d
mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/dnf
mkdir -p %{buildroot}%{_sysconfdir}/%{name}/modules.defaults.d
mkdir -p %{buildroot}%{py3pluginpath}/__pycache__/
mkdir -p %{buildroot}%{_localstatedir}/log/
mkdir -p %{buildroot}%{_var}/cache/dnf/
2019-09-30 10:37:03 -04:00
touch %{buildroot}%{_localstatedir}/log/%{name}.log
ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/dnf
mv %{buildroot}%{_bindir}/dnf-automatic-3 %{buildroot}%{_bindir}/dnf-automatic
rm -vf %{buildroot}%{_bindir}/dnf-automatic-*
2020-01-08 20:13:09 +08:00
mv -f %{buildroot}%{_sysconfdir}/%{name}/%{name}-strict.conf %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf
ln -sr %{buildroot}%{_sysconfdir}/%{name}/%{name}.conf %{buildroot}%{_sysconfdir}/yum.conf
ln -sr %{buildroot}%{_bindir}/dnf-3 %{buildroot}%{_bindir}/yum
mkdir -p %{buildroot}%{_sysconfdir}/yum
ln -sr %{buildroot}%{_sysconfdir}/%{name}/plugins %{buildroot}%{_sysconfdir}/yum/pluginconf.d
ln -sr %{buildroot}%{_sysconfdir}/%{name}/protected.d %{buildroot}%{_sysconfdir}/yum/protected.d
ln -sr %{buildroot}%{_sysconfdir}/%{name}/vars %{buildroot}%{_sysconfdir}/yum/vars
2019-09-30 10:37:03 -04:00
%check
export TERM=linux
pushd build-py3
ctest -VV
popd
2020-01-08 20:13:09 +08:00
2019-09-30 10:37:03 -04:00
%post
%systemd_post dnf-makecache.timer
%systemd_post dnf-automatic.timer
%systemd_post dnf-automatic-notifyonly.timer
%systemd_post dnf-automatic-download.timer
%systemd_post dnf-automatic-install.timer
%preun
%systemd_preun dnf-automatic.timer
2020-01-08 20:13:09 +08:00
%systemd_preun dnf-makecache.timer
2019-09-30 10:37:03 -04:00
%systemd_preun dnf-automatic-notifyonly.timer
%systemd_preun dnf-automatic-download.timer
%systemd_preun dnf-automatic-install.timer
%postun
%systemd_postun_with_restart dnf-makecache.timer
%systemd_postun_with_restart dnf-automatic.timer
%systemd_postun_with_restart dnf-automatic-notifyonly.timer
%systemd_postun_with_restart dnf-automatic-download.timer
%systemd_postun_with_restart dnf-automatic-install.timer
2020-01-08 20:13:09 +08:00
%files
2019-09-30 10:37:03 -04:00
%license COPYING PACKAGE-LICENSING
%doc AUTHORS README.rst
%{_bindir}/%{name}
2020-01-08 20:13:09 +08:00
%{_bindir}/%{name}-automatic
%{_sysconfdir}/bash_completion.d/%{name}
%{_unitdir}/%{name}-automatic.timer
%{_unitdir}/%{name}-makecache.timer
%{_unitdir}/%{name}-automatic.service
%{_unitdir}/%{name}-makecache.service
%{_unitdir}/%{name}-automatic-notifyonly.service
%{_unitdir}/%{name}-automatic-notifyonly.timer
%{_unitdir}/%{name}-automatic-download.service
%{_unitdir}/%{name}-automatic-download.timer
%{_unitdir}/%{name}-automatic-install.service
%{_unitdir}/%{name}-automatic-install.timer
2019-09-30 10:37:03 -04:00
%{_var}/cache/%{name}/
%{python3_sitelib}/%{name}/automatic/
2020-01-08 20:13:09 +08:00
%dir %{_sysconfdir}/%{name}
%dir %{_sysconfdir}/%{name}/modules.d
%dir %{_sysconfdir}/%{name}/modules.defaults.d
%dir %{_sysconfdir}/%{name}/plugins
%dir %{_sysconfdir}/%{name}/protected.d
%dir %{_sysconfdir}/%{name}/vars
%dir %{_sysconfdir}/%{name}/aliases.d
%exclude %{_sysconfdir}/%{name}/aliases.d/zypper.conf
%config(noreplace) %{_sysconfdir}/%{name}/automatic.conf
%config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/protected.d/%{name}.conf
%ghost %attr(644,-,-) %{_localstatedir}/log/hawkey.log
%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.log
%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.librepo.log
%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.rpm.log
%ghost %attr(644,-,-) %{_localstatedir}/log/%{name}.plugin.log
%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}
%ghost %attr(644,-,-) %{_sharedstatedir}/%{name}/groups.json
%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/yumdb
%ghost %attr(755,-,-) %dir %{_sharedstatedir}/%{name}/history
2019-09-30 10:37:03 -04:00
%{_tmpfilesdir}/%{name}.conf
%{_sysconfdir}/libreport/events.d/collect_dnf.conf
2020-01-08 20:13:09 +08:00
%files -n yum
%{_bindir}/yum
%{_sysconfdir}/yum/vars
%{_sysconfdir}/yum.conf
%{_sysconfdir}/yum/pluginconf.d
%{_sysconfdir}/yum/protected.d
%config(noreplace) %{_sysconfdir}/%{name}/protected.d/yum.conf
2019-09-30 10:37:03 -04:00
%files -n python3-%{name}
%{_bindir}/%{name}-3
2020-01-08 20:13:09 +08:00
%exclude %{python3_sitelib}/%{name}/automatic
2019-09-30 10:37:03 -04:00
%{python3_sitelib}/%{name}/
%dir %{py3pluginpath}
%dir %{py3pluginpath}/__pycache__
%files help
2020-01-08 20:13:09 +08:00
%{_datadir}/locale/*
%{_datadir}/bash-completion/*
%{_mandir}/man8/yum.8*
%{_mandir}/man8/yum2dnf.8*
%{_mandir}/man8/%{name}.8*
2019-09-30 10:37:03 -04:00
%{_mandir}/man5/yum.conf.5.*
2020-01-08 20:13:09 +08:00
%{_mandir}/man8/yum-shell.8*
%{_mandir}/man1/yum-aliases.1*
2019-09-30 10:37:03 -04:00
%{_mandir}/man5/%{name}.conf.5*
2020-01-08 20:13:09 +08:00
%{_mandir}/man7/dnf.modularity.7*
%{_mandir}/man8/%{name}-automatic.8*
2019-09-30 10:37:03 -04:00
%changelog
* Fri May 5 2023 xzf1244 <xzf1244@hust.edu.cn> 4.2.23-11
- CVE:NA
- SUG:NA
- DESC:dnf:fix AttributeError when io busy and press ctrl c
* Tue Feb 14 2023 chenhaixing <chenhaixing@huawei.com> - 4.2.23-10
- Type:bugfix
- CVE:NA
- SUG:NA
- DESC:dnf:backport some patches
* Thu Nov 10 2022 chenhaixing <chenhaixing@huawei.com> - 4.2.23-9
- DESC:correct the bad date in changelog
* Tue Mar 29 2022 yangcheng <yangcheng87@h-partners.com> - 4.2.23-8
- fix dnf error when history sqlite missing
* Thu Mar 10 2022 zhangshaoning <zhangshaoning@uniontech.com> - 4.2.23-7
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:Add fail_fast parameter to _download_remote_payloads() method
* Tue Aug 3 2021 Jianmin <jianmin@iscas.ac.cn> - 4.2.23-6
2021-08-03 08:19:00 +00:00
- Type:enhancement
- ID:NA
- SUG:NA
- DESC:remove dnf-help dependency
* Thu Jul 15 2021 gaihuiying <gaihuiying1@huawei.com> - 4.2.23-5
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:remove recommends rpm-plugins-systemd-inhibit
backport community patches and fix CVE-2021-3445
delete duplicate python3-libdnf dependency
* Thu Apr 1 2021 gaihuiying <gaihuiying1@huawei.com> - 4.2.23-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix errors when use "yum module remove --all per:common" command
fix test test_mode_tty failed
2020-11-20 15:03:24 +08:00
* Fri Nov 20 2020 lunankun <lunankun@huawei.com> - 4.2.23-3
- Type:requirement
- ID:NA
- SUG:NA
- DESC:remove depend deltarpm
2020-11-07 17:15:51 +08:00
* Mon Nov 09 2020 quanhongfei <quanhongfei@huawei.com> - 4.2.23-2
- Type:requirement
- ID:NA
- SUG:NA
- DESC:add dnf-help dependency for dnf
* Sat Aug 29 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.23-1
- Type:enhancement
- ID:NA
- SUG:NA
- DESC:upgrade from 4.2.15 to 4.2.23
2020-08-18 21:00:19 +08:00
* Tue Aug 18 2020 chenyaqiang <chenyaqiang@huawei.com> - 2.2.53-8
- rebuild for package build
2020-03-18 18:37:31 +08:00
* Wed Mar 18 2020 songnannan <songnannan2@huawei.com> - 4.2.15-8
- add obsoletes the python2-dnf
2020-03-03 21:54:43 +08:00
* Tue Mar 3 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-7
- modify the patch name
2020-02-27 19:55:32 +08:00
* Thu Feb 27 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-6
- remove extra brace
* Mon Feb 24 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-5
- Revert Fix messages for starting and failing scriptlets
2020-02-17 20:49:53 +08:00
* Fri Feb 14 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-4
- remove python2
2020-01-17 09:14:37 +08:00
* Fri Jan 17 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-3
- bug fix format problem
2020-01-08 20:13:09 +08:00
* Mon Jan 6 2020 openEuler Buildteam <buildteam@openeuler.org> - 4.2.15-2
- Package Init