diff --git a/.gitignore b/.gitignore
index 382c22d..d35cf16 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/libsolv-0.7.19.tar.gz
+SOURCES/libsolv-0.7.20.tar.gz
diff --git a/.libsolv.metadata b/.libsolv.metadata
index 70e2f6a..dbbe771 100644
--- a/.libsolv.metadata
+++ b/.libsolv.metadata
@@ -1 +1 @@
-b4101632c56b00e0bd8f41d772a7998a3d000a74 SOURCES/libsolv-0.7.19.tar.gz
+35be0bb4422af55bc8434f3c33367dbb7dc50cba SOURCES/libsolv-0.7.20.tar.gz
diff --git a/SOURCES/0002-Fix-Memory-leaks-in-SWIG-generated-code-for-Python.patch b/SOURCES/0002-Fix-Memory-leaks-in-SWIG-generated-code-for-Python.patch
deleted file mode 100644
index 8753b85..0000000
--- a/SOURCES/0002-Fix-Memory-leaks-in-SWIG-generated-code-for-Python.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8615575144e6fd3d708a30983ed2415db479ef4c Mon Sep 17 00:00:00 2001
-From: Jaroslav Rohel <jrohel@redhat.com>
-Date: Thu, 8 Apr 2021 12:17:09 +0200
-Subject: [PATCH] Fix: Memory leaks in SWIG generated code (for Python)
-
-There were memory leaks in the `Chksum_from_bin`, `Chksum_add`,
-`SolvFp_write` functions wrapper for Python.
-
-The problem was in "freearg" typemap argument defined in "solv.i".
-Therefore, the typemap was not applied.
----
- bindings/solv.i | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bindings/solv.i b/bindings/solv.i
-index 1882b13..3bbeca0 100644
---- a/bindings/solv.i
-+++ b/bindings/solv.i
-@@ -63,7 +63,7 @@ typedef struct {
-   $2 = size;
- }
- 
--%typemap(freearg,noblock=1,match="in") (const unsigned char *str, int len) {
-+%typemap(freearg,noblock=1,match="in") (const unsigned char *str, size_t len) {
-   if (alloc$argnum == SWIG_NEWOBJ) %delete_array(buf$argnum);
- }
- 
---
-libgit2 1.0.1
-
diff --git a/SPECS/libsolv.spec b/SPECS/libsolv.spec
index 54b31b0..0ac91b4 100644
--- a/SPECS/libsolv.spec
+++ b/SPECS/libsolv.spec
@@ -36,8 +36,8 @@
 %define __cmake_switch(b:) %{expand:%%{?with_%{-b*}:ON}}%{expand:%%{!?with_%{-b*}:OFF}}
 
 Name:           lib%{libname}
-Version:        0.7.19
-Release:        1%{?commit:.git.%{commitnum}.%{?shortcommit}}%{?dist}
+Version:        0.7.20
+Release:        1%{?dist}
 Summary:        Package dependency solver
 
 License:        BSD
@@ -49,7 +49,6 @@ Source:         %{url}/archive/%{version}/%{name}-%{version}.tar.gz
 %endif
 # https://bugzilla.redhat.com/show_bug.cgi?id=1630300
 Patch1:         0001-Add-support-for-computing-hashes-using-OpenSSL.patch
-Patch2:         0002-Fix-Memory-leaks-in-SWIG-generated-code-for-Python.patch
 
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
@@ -278,6 +277,14 @@ export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
 %endif
 
 %changelog
+* Tue Nov 09 2021 Pavla Kratochvilova <pkratoch@redhat.com> - 0.7.20-1
+- Update to 0.7.20
+- new SOLVER_EXCLUDEFROMWEAK job to ignore pkgs for weak dependencies
+- support for environments in comps parser
+- fix misparsing of '&' in attributes with libxml2
+- choice rules: treat orphaned packages as newest
+- fix compatibility with Python 3.10
+
 * Tue Jul 27 2021 Pavla Kratochvilova <pkratoch@redhat.org> - 0.7.19-1
 - Update to 0.7.19
 - repo_add_conda: add flag to skip v2 packages