diff --git a/dnf-2.7.5-openmamba-conf.patch b/dnf-2.7.5-openmamba-conf.patch new file mode 100644 index 0000000..8e03203 --- /dev/null +++ b/dnf-2.7.5-openmamba-conf.patch @@ -0,0 +1,8 @@ +--- dnf-2.7.5/etc/dnf/dnf.conf.orig 2019-06-01 13:24:12.531228206 +0200 ++++ dnf-2.7.5/etc/dnf/dnf.conf 2019-06-01 13:24:16.502247169 +0200 +@@ -1,4 +1,4 @@ + [main] +-gpgcheck=1 ++gpgcheck=0 + installonly_limit=3 + clean_requirements_on_remove=True diff --git a/dnf-2.7.5-python-2.7.15.patch b/dnf-2.7.5-python-2.7.15.patch new file mode 100644 index 0000000..383c87c --- /dev/null +++ b/dnf-2.7.5-python-2.7.15.patch @@ -0,0 +1,33 @@ +--- dnf-2.7.5/dnf/cli/output.py.orig 2019-06-02 13:54:58.348422061 +0200 ++++ dnf-2.7.5/dnf/cli/output.py 2019-06-02 13:55:32.693582235 +0200 +@@ -1032,14 +1032,14 @@ + easy-to-read format. + """ + +- forward_actions = { +- hawkey.UPGRADE, +- hawkey.UPGRADE_ALL, +- hawkey.DISTUPGRADE, +- hawkey.DISTUPGRADE_ALL, +- hawkey.DOWNGRADE, ++ forward_actions = \ ++ hawkey.UPGRADE|\ ++ hawkey.UPGRADE_ALL|\ ++ hawkey.DISTUPGRADE|\ ++ hawkey.DISTUPGRADE_ALL|\ ++ hawkey.DOWNGRADE|\ + hawkey.INSTALL +- } ++ + skipped_conflicts = set() + skipped_broken = set() + +@@ -1096,7 +1096,7 @@ + # show skipped conflicting packages + if not self.conf.best and forward_actions & self.base._goal.actions: + lines = [] +- upgrade_type = True if {hawkey.UPGRADE, hawkey.UPGRADE_ALL} & self.base._goal.actions \ ++ upgrade_type = True if (hawkey.UPGRADE|hawkey.UPGRADE_ALL) & self.base._goal.actions \ + else False + skipped_conflicts, skipped_broken = self._skipped_packages(upgrade_type=upgrade_type) + for pkg in sorted(skipped_conflicts): diff --git a/dnf-2.7.5-rpm-5-2.patch b/dnf-2.7.5-rpm-5-2.patch deleted file mode 100644 index 4a70504..0000000 --- a/dnf-2.7.5-rpm-5-2.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- dnf-2.7.5/dnf/rpm/__init__.py.orig 2019-06-01 12:01:13.245618282 +0200 -+++ dnf-2.7.5/dnf/rpm/__init__.py 2019-06-01 12:01:27.285686377 +0200 -@@ -37,7 +37,7 @@ - idx = ts.dbMatch('provides', distroverpkg) - except (TypeError, rpm.error) as e: - raise dnf.exceptions.Error('Error: %s' % str(e)) -- if not len(idx): -+ if idx: - continue - try: - hdr = next(idx) diff --git a/dnf-4.0.4-rpm5-CALLBACK.patch b/dnf-4.0.4-rpm5-CALLBACK.patch new file mode 100644 index 0000000..bf5a27f --- /dev/null +++ b/dnf-4.0.4-rpm5-CALLBACK.patch @@ -0,0 +1,32 @@ +Only in dnf-4.0.4/dnf/cli: output.py.orig +Only in dnf-4.0.4/dnf/cli: output.py.rej +diff -ru dnf-4.0.4.orig/dnf/yum/rpmtrans.py dnf-4.0.4/dnf/yum/rpmtrans.py +--- dnf-4.0.4.orig/dnf/yum/rpmtrans.py 2019-06-02 15:21:54.000000000 +0200 ++++ dnf-4.0.4/dnf/yum/rpmtrans.py 2019-06-02 15:30:53.916853857 +0200 +@@ -245,12 +245,8 @@ + pass + elif what == rpm.RPMCALLBACK_TRANS_PROGRESS: + self._trans_progress(amount, total) +- elif what == rpm.RPMCALLBACK_ELEM_PROGRESS: +- # This callback type is issued every time the next transaction +- # element is about to be processed by RPM, before any other +- # callbacks are issued. "amount" carries the index of the element. +- self._elemProgress(key, amount) + elif what == rpm.RPMCALLBACK_INST_OPEN_FILE: ++ self._elemProgress(key, amount) + return self._instOpenFile(key) + elif what == rpm.RPMCALLBACK_INST_CLOSE_FILE: + self._instCloseFile(key) +@@ -268,10 +264,6 @@ + self._unpackError(key) + elif what == rpm.RPMCALLBACK_SCRIPT_ERROR: + self._scriptError(amount, total, key) +- elif what == rpm.RPMCALLBACK_SCRIPT_START: +- self._script_start(key) +- elif what == rpm.RPMCALLBACK_SCRIPT_STOP: +- self._scriptStop() + except Exception: + exc_type, exc_value, exc_traceback = sys.exc_info() + except_list = traceback.format_exception(exc_type, exc_value, exc_traceback) +Only in dnf-4.0.4/dnf/yum: rpmtrans.py.orig +Only in dnf-4.0.4/dnf/yum: rpmtrans.py.rej diff --git a/dnf-4.0.4-rpm5-detect-release.patch b/dnf-4.0.4-rpm5-detect-release.patch new file mode 100644 index 0000000..baf8b20 --- /dev/null +++ b/dnf-4.0.4-rpm5-detect-release.patch @@ -0,0 +1,44 @@ +diff -ru dnf-4.0.4.orig/dnf/base.py dnf-4.0.4/dnf/base.py +--- dnf-4.0.4.orig/dnf/base.py 2019-06-02 15:26:56.912792437 +0200 ++++ dnf-4.0.4/dnf/base.py 2019-06-02 15:27:29.783939255 +0200 +@@ -1676,7 +1676,7 @@ + myts = dnf.rpm.transaction.initReadOnlyTransaction(root=installroot) + myts.pushVSFlags(~(rpm.RPMVSF_NODSAHEADER)) + idx = myts.dbMatch('name', 'gpg-pubkey') +- keys = len(idx) ++ keys = idx.count() + del idx + del myts + +Only in dnf-4.0.4/dnf: base.py.orig +diff -ru dnf-4.0.4.orig/dnf/const.py.in dnf-4.0.4/dnf/const.py.in +--- dnf-4.0.4.orig/dnf/const.py.in 2019-06-02 15:21:54.000000000 +0200 ++++ dnf-4.0.4/dnf/const.py.in 2019-06-02 15:27:59.991074300 +0200 +@@ -25,7 +25,7 @@ + CONF_AUTOMATIC_FILENAME='/etc/dnf/automatic.conf' + DISTROVERPKG=('system-release(releasever)', 'system-release', + 'distribution-release(releasever)', 'distribution-release', +- 'redhat-release', 'suse-release') ++ 'openmamba-release', 'redhat-release', 'suse-release') + GROUP_PACKAGE_TYPES = ('mandatory', 'default', 'conditional') # :api + INSTALLONLYPKGS=['kernel', 'kernel-PAE', + 'installonlypkg(kernel)', +Only in dnf-4.0.4/dnf: const.py.in.orig +Only in dnf-4.0.4/dnf: const.py.in.rej +diff -ru dnf-4.0.4.orig/dnf/rpm/__init__.py dnf-4.0.4/dnf/rpm/__init__.py +--- dnf-4.0.4.orig/dnf/rpm/__init__.py 2019-06-02 15:26:56.912792437 +0200 ++++ dnf-4.0.4/dnf/rpm/__init__.py 2019-06-02 15:27:29.783939255 +0200 +@@ -39,10 +39,10 @@ + idx = ts.dbMatch('provides', distroverpkg) + except (TypeError, rpm.error) as e: + raise dnf.exceptions.Error('Error: %s' % str(e)) +- if not len(idx): ++ if idx.count() == 0: + continue + try: +- hdr = next(idx) ++ hdr = idx.next() + except StopIteration: + msg = 'Error: rpmdb failed to list provides. Try: rpm --rebuilddb' + raise dnf.exceptions.Error(msg) +Only in dnf-4.0.4/dnf/rpm: __init__.py.orig diff --git a/dnf-2.7.5-rpm5.patch b/dnf-4.0.4-rpm5.patch similarity index 61% rename from dnf-2.7.5-rpm5.patch rename to dnf-4.0.4-rpm5.patch index 10a400d..e94dc71 100644 --- a/dnf-2.7.5-rpm5.patch +++ b/dnf-4.0.4-rpm5.patch @@ -1,21 +1,25 @@ -diff -ru dnf-2.7.5.orig/dnf/base.py dnf-2.7.5/dnf/base.py ---- dnf-2.7.5.orig/dnf/base.py 2019-06-01 09:35:45.000000000 +0200 -+++ dnf-2.7.5/dnf/base.py 2019-06-01 11:41:34.731888285 +0200 -@@ -473,10 +473,9 @@ +diff -ru dnf-4.0.4.orig/dnf/base.py dnf-4.0.4/dnf/base.py +--- dnf-4.0.4.orig/dnf/base.py 2019-06-02 15:21:54.000000000 +0200 ++++ dnf-4.0.4/dnf/base.py 2019-06-02 15:25:36.054431946 +0200 +@@ -513,14 +513,13 @@ 'nodocs': rpm.RPMTRANS_FLAG_NODOCS, 'test': rpm.RPMTRANS_FLAG_TEST, 'justdb': rpm.RPMTRANS_FLAG_JUSTDB, - 'nocontexts': rpm.RPMTRANS_FLAG_NOCONTEXTS, - 'nocrypto': rpm.RPMTRANS_FLAG_NOFILEDIGEST} -- _TS_VSFLAGS_TO_RPM = {'nocrypto': rpm._RPMVSF_NOSIGNATURES | -- rpm._RPMVSF_NODIGESTS} + 'nocontexts': 0, + 'nocrypto': 0} + if hasattr(rpm, 'RPMTRANS_FLAG_NOCAPS'): + # Introduced in rpm-4.14 + _TS_FLAGS_TO_RPM['nocaps'] = rpm.RPMTRANS_FLAG_NOCAPS + +- _TS_VSFLAGS_TO_RPM = {'nocrypto': rpm._RPMVSF_NOSIGNATURES | +- rpm._RPMVSF_NODIGESTS} + _TS_VSFLAGS_TO_RPM = {'nocrypto': rpm.RPMVSF_NODSAHEADER} @property - def _ts(self): -@@ -1663,7 +1662,7 @@ + def goal(self): +@@ -1675,7 +1674,7 @@ installroot = self.conf.installroot myts = dnf.rpm.transaction.initReadOnlyTransaction(root=installroot) @@ -24,9 +28,11 @@ diff -ru dnf-2.7.5.orig/dnf/base.py dnf-2.7.5/dnf/base.py idx = myts.dbMatch('name', 'gpg-pubkey') keys = len(idx) del idx -diff -ru dnf-2.7.5.orig/dnf/rpm/__init__.py dnf-2.7.5/dnf/rpm/__init__.py ---- dnf-2.7.5.orig/dnf/rpm/__init__.py 2019-06-01 09:35:45.000000000 +0200 -+++ dnf-2.7.5/dnf/rpm/__init__.py 2019-06-01 11:40:28.590565110 +0200 +Only in dnf-4.0.4/dnf: base.py.orig +Only in dnf-4.0.4/dnf: base.py.rej +diff -ru dnf-4.0.4.orig/dnf/rpm/__init__.py dnf-4.0.4/dnf/rpm/__init__.py +--- dnf-4.0.4.orig/dnf/rpm/__init__.py 2019-06-02 15:21:54.000000000 +0200 ++++ dnf-4.0.4/dnf/rpm/__init__.py 2019-06-02 15:24:13.154063464 +0200 @@ -31,7 +31,7 @@ """Calculate the release version for the system.""" @@ -34,11 +40,12 @@ diff -ru dnf-2.7.5.orig/dnf/rpm/__init__.py dnf-2.7.5/dnf/rpm/__init__.py - ts.pushVSFlags(~(rpm._RPMVSF_NOSIGNATURES | rpm._RPMVSF_NODIGESTS)) + ts.pushVSFlags(~(rpm.RPMVSF_NODSAHEADER)) for distroverpkg in dnf.const.DISTROVERPKG: - try: - idx = ts.dbMatch('provides', distroverpkg) -diff -ru dnf-2.7.5.orig/dnf/rpm/transaction.py dnf-2.7.5/dnf/rpm/transaction.py ---- dnf-2.7.5.orig/dnf/rpm/transaction.py 2019-06-01 09:35:45.000000000 +0200 -+++ dnf-2.7.5/dnf/rpm/transaction.py 2019-06-01 11:40:28.591565115 +0200 + if dnf.pycomp.PY3: + distroverpkg = bytes(distroverpkg, 'utf-8') +Only in dnf-4.0.4/dnf/rpm: __init__.py.orig +diff -ru dnf-4.0.4.orig/dnf/rpm/transaction.py dnf-4.0.4/dnf/rpm/transaction.py +--- dnf-4.0.4.orig/dnf/rpm/transaction.py 2019-06-02 15:21:54.000000000 +0200 ++++ dnf-4.0.4/dnf/rpm/transaction.py 2019-06-02 15:24:13.154063464 +0200 @@ -119,5 +119,5 @@ def initReadOnlyTransaction(root='/'): diff --git a/dnf.spec b/dnf.spec index 89d9641..3ad47b3 100644 --- a/dnf.spec +++ b/dnf.spec @@ -1,6 +1,6 @@ Name: dnf -Version: 2.7.5 -Release: 1mamba +Version: 4.0.4 +Release: 2mamba Summary: Package manager based on libdnf and libsolv Group: System/Management Vendor: openmamba @@ -8,9 +8,12 @@ Distribution: openmamba Packager: Silvan Calarco URL: https://github.com/rpm-software-management/dnf Source: https://github.com/rpm-software-management/dnf.git/%{version}/dnf-%{version}.tar.bz2 -Patch0: dnf-2.7.5-rpm5.patch -Patch1: dnf-2.7.5-rpm-5-2.patch +Patch0: dnf-4.0.4-rpm5.patch +Patch1: dnf-4.0.4-rpm5-detect-release.patch Patch2: dnf-2.7.5-hawkey-0.6.4.1.patch +Patch3: dnf-2.7.5-python-2.7.15.patch +Patch4: dnf-2.7.5-openmamba-conf.patch +Patch5: dnf-4.0.4-rpm5-CALLBACK.patch License: GPL ## AUTOBUILDREQ-BEGIN BuildRequires: libpython-devel @@ -23,6 +26,7 @@ Requires: libdnf Requires: python-gpg Requires: python-backports-lzma Requires: python-iniparse +Requires: python-enum34 BuildRoot: %{_tmppath}/%{name}-%{version}-root %description @@ -33,6 +37,9 @@ Package manager based on libdnf and libsolv. Replaces YUM. %patch0 -p1 %patch1 -p1 %patch2 -p1 +#%patch3 -p1 +%patch4 -p1 +%patch5 -p1 %build %cmake -d build @@ -56,6 +63,8 @@ install -d %{buildroot}/lib mv %{buildroot}%{_prefix}/lib/systemd %{buildroot}/lib/ mv %{buildroot}%{_mandir}/man8/yum.8 %{buildroot}%{_mandir}/man8/yum-dnf.8 +mv %{buildroot}%{_mandir}/man5/yum.conf.5 %{buildroot}%{_mandir}/man5/yum.conf-dnf.5 +mv %{buildroot}%{_mandir}/man8/yum-shell.8 %{buildroot}%{_mandir}/man8/yum-shell-dnf.8 %find_lang %{name} || touch %{name}.lang @@ -90,13 +99,27 @@ mv %{buildroot}%{_mandir}/man8/yum.8 %{buildroot}%{_mandir}/man8/yum-dnf.8 %{_tmpfilesdir}/dnf.conf %{_datadir}/bash-completion/completions/dnf %{_mandir}/man5/dnf.conf.5* +%{_mandir}/man5/yum.conf-dnf.5* %{_mandir}/man8/dnf.8* %{_mandir}/man8/dnf.automatic.8* %{_mandir}/man8/yum-dnf.8* %{_mandir}/man8/yum2dnf.8* +%{_mandir}/man8/yum-shell-dnf.8* %doc AUTHORS COPYING %changelog +* Sun Jun 02 2019 Silvan Calarco 4.0.4-2mamba +- remove man pages conflicting with yum + +* Sun Jun 02 2019 Silvan Calarco 4.0.4-1mamba +- update to 4.0.4 + +* Sun Jun 02 2019 Silvan Calarco 3.0.1-1mamba +- update to 3.0.1 + +* Sun Jun 02 2019 Silvan Calarco 2.7.5-2mamba +- modified patch to detect release using openmamba-release pkg + * Sat Jun 01 2019 Silvan Calarco 2.7.5-1mamba - backport to 2.7.5 with working deps and patches for rpm5