diff --git a/.elfutils.metadata b/.elfutils.metadata
index 4e09f27..47e5453 100644
--- a/.elfutils.metadata
+++ b/.elfutils.metadata
@@ -1 +1 @@
-5f52d04105a89e50caf69cea40629c323c1eccd9 SOURCES/elfutils-0.178.tar.bz2
+c1ed871515b0f7fcdf2d94fea23e4b8ba67e8fe3 SOURCES/elfutils-0.180.tar.bz2
diff --git a/.gitignore b/.gitignore
index 259576d..7da1245 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/elfutils-0.178.tar.bz2
+SOURCES/elfutils-0.180.tar.bz2
diff --git a/SOURCES/elfutils-0.178-compressed-vmlinuz.patch b/SOURCES/elfutils-0.178-compressed-vmlinuz.patch
deleted file mode 100644
index 1df54a1..0000000
--- a/SOURCES/elfutils-0.178-compressed-vmlinuz.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-commit 4a90cb11140a6bb3712228861a32e4035013ad85
-Author: Mark Wielaard <mark@klomp.org>
-Date:   Thu Dec 5 15:03:54 2019 +0100
-
-    libdwfl: Find and handle compressed vmlinuz image.
-    
-    Both the dwfl_linux_kernel_find_elf callback and the
-    dwfl_linux_kernel_report_offline reporting function only handled
-    vmlinix images possibly compressed with .gz, .bz2 or .xz extension.
-    They did not find or handle the much more common vmlinuz compressed
-    images.
-    
-    It is not completely clear why we didn't up to now. Support for
-    compressed ELF files was added in 2009 and the code was updated to
-    to try to find the .gz, .bz2 or .xz extension variants in 2011.
-    But not the vmlinuz named variant.
-    
-    Reported-by: Aaron Merey <amerey@redhat.com>
-    Tested-by: Frank Ch. Eigler <fche@redhat.com>
-    Signed-off-by: Mark Wielaard <mark@klomp.org>
-
-diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
-index d46ab5aa..48fb1ff0 100644
---- a/libdwfl/linux-kernel-modules.c
-+++ b/libdwfl/linux-kernel-modules.c
-@@ -174,6 +174,8 @@ kernel_release (void)
- static int
- find_kernel_elf (Dwfl *dwfl, const char *release, char **fname)
- {
-+  /* First try to find an uncompressed vmlinux image.  Possibly
-+     including debuginfo.  */
-   if ((release[0] == '/'
-        ? asprintf (fname, "%s/vmlinux", release)
-        : asprintf (fname, "/boot/vmlinux-%s", release)) < 0)
-@@ -188,6 +190,27 @@ find_kernel_elf (Dwfl *dwfl, const char *release, char **fname)
-       fd = try_kernel_name (dwfl, fname, true);
-     }
- 
-+  /* There might be a compressed vmlinuz image.  Probably without
-+     debuginfo, but try to find it under the debug path also, just in
-+     case.  */
-+  if (fd < 0)
-+    {
-+      free (*fname);
-+      if ((release[0] == '/'
-+           ? asprintf (fname, "%s/vmlinuz", release)
-+           : asprintf (fname, "/boot/vmlinuz-%s", release)) < 0)
-+        return -1;
-+
-+      fd = try_kernel_name (dwfl, fname, true);
-+      if (fd < 0 && release[0] != '/')
-+	{
-+	  free (*fname);
-+	  if (asprintf (fname, MODULEDIRFMT "/vmlinuz", release) < 0)
-+	    return -1;
-+	  fd = try_kernel_name (dwfl, fname, true);
-+	}
-+    }
-+
-   return fd;
- }
- 
diff --git a/SOURCES/elfutils-0.178-curl-code-gcc-10.patch b/SOURCES/elfutils-0.178-curl-code-gcc-10.patch
deleted file mode 100644
index a1e2741..0000000
--- a/SOURCES/elfutils-0.178-curl-code-gcc-10.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-commit 374fbed3da0197f794a904e78e75e961c7e2e92c
-Author: Mark Wielaard <mark@klomp.org>
-Date:   Wed Dec 4 00:39:26 2019 +0100
-
-    debuginfod: Fix implicit conversion from 'CURLcode' to 'CURLMcode'
-    
-    GCC10 warns when converting the value of one enum type into another:
-    
-    debuginfod-client.c:530:24: error: implicit conversion from ‘CURLcode’
-                                       to ‘CURLMcode’ [-Werror=enum-conversion]
-      530 |               curl_res = curl_easy_getinfo(target_handle,
-          |                        ^
-    
-    libcurl has different error code enums. The "easy" interfaces return
-    a CURLcode error. The "multi" interface functions return a CURLMcode.
-    
-    Signed-off-by: Mark Wielaard <mark@klomp.org>
-
-diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
-index 6e62b86c..302ea2dc 100644
---- a/debuginfod/debuginfod-client.c
-+++ b/debuginfod/debuginfod-client.c
-@@ -509,8 +509,6 @@ debuginfod_query_server (debuginfod_client *c,
-   long loops = 0;
-   do
-     {
--      CURLMcode curl_res;
--
-       if (c->progressfn) /* inform/check progress callback */
-         {
-           loops ++;
-@@ -518,6 +516,7 @@ debuginfod_query_server (debuginfod_client *c,
-           long pb = 0;
-           if (target_handle) /* we've committed to a server; report its download progress */
-             {
-+              CURLcode curl_res;
- #ifdef CURLINFO_SIZE_DOWNLOAD_T
-               curl_off_t dl;
-               curl_res = curl_easy_getinfo(target_handle,
-@@ -564,10 +563,10 @@ debuginfod_query_server (debuginfod_client *c,
-           if (data[i].handle != target_handle)
-             curl_multi_remove_handle(curlm, data[i].handle);
- 
--      curl_res = curl_multi_perform(curlm, &still_running);
--      if (curl_res != CURLM_OK)
-+      CURLMcode curlm_res = curl_multi_perform(curlm, &still_running);
-+      if (curlm_res != CURLM_OK)
-         {
--          switch (curl_res)
-+          switch (curlm_res)
-             {
-             case CURLM_CALL_MULTI_PERFORM: continue;
-             case CURLM_OUT_OF_MEMORY: rc = -ENOMEM; break;
diff --git a/SOURCES/elfutils-0.178-debuginfod-no-cache.patch b/SOURCES/elfutils-0.178-debuginfod-no-cache.patch
deleted file mode 100644
index a05336b..0000000
--- a/SOURCES/elfutils-0.178-debuginfod-no-cache.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-commit d8bad02afc7b7f30402b4e0e458df874a6d600da
-Author: Mark Wielaard <mark@klomp.org>
-Date:   Mon Dec 9 19:38:19 2019 +0100
-
-    debuginfod: Check the DEBUGINFOD_URLS environment variable early in client.
-    
-    If the debuginfod-client isn't configured we should do as little
-    as possible. Simply return early with ENOSYS if no servers are
-    configured. This means we won't check
-    
-    This does change the behavior of the debuginfod_find calls slightly.
-    Previously we would setup and check the cache if the given build-id
-    was valid. Which might have provided a result if an earlier client
-    had run with the same cache and valid server URLs which knew about
-    that particular build-id. Now we don't return any cached results
-    unless at least one server is configured.
-    
-    This prevents selinux errors when the library is used in a confined
-    setup.
-    
-    Signed-off-by: Mark Wielaard <mark@klomp.org>
-
-diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
-index 302ea2dc..ab7b4e13 100644
---- a/debuginfod/debuginfod-client.c
-+++ b/debuginfod/debuginfod-client.c
-@@ -301,6 +301,16 @@ debuginfod_query_server (debuginfod_client *c,
-   char target_cache_tmppath[PATH_MAX*5];
-   char suffix[PATH_MAX*2];
-   char build_id_bytes[MAX_BUILD_ID_BYTES * 2 + 1];
-+  int rc;
-+
-+  /* Is there any server we can query?  If not, don't do any work,
-+     just return with ENOSYS.  Don't even access the cache.  */
-+  urls_envvar = getenv(server_urls_envvar);
-+  if (urls_envvar == NULL || urls_envvar[0] == '\0')
-+    {
-+      rc = -ENOSYS;
-+      goto out;
-+    }
- 
-   /* Copy lowercase hex representation of build_id into buf.  */
-   if ((build_id_len >= MAX_BUILD_ID_BYTES) ||
-@@ -373,7 +383,7 @@ debuginfod_query_server (debuginfod_client *c,
-   /* XXX combine these */
-   snprintf(interval_path, sizeof(interval_path), "%s/%s", cache_path, cache_clean_interval_filename);
-   snprintf(maxage_path, sizeof(maxage_path), "%s/%s", cache_path, cache_max_unused_age_filename);
--  int rc = debuginfod_init_cache(cache_path, interval_path, maxage_path);
-+  rc = debuginfod_init_cache(cache_path, interval_path, maxage_path);
-   if (rc != 0)
-     goto out;
-   rc = debuginfod_clean_cache(c, cache_path, interval_path, maxage_path);
-@@ -390,14 +400,6 @@ debuginfod_query_server (debuginfod_client *c,
-       return fd;
-     }
- 
--
--  urls_envvar = getenv(server_urls_envvar);
--  if (urls_envvar == NULL || urls_envvar[0] == '\0')
--    {
--      rc = -ENOSYS;
--      goto out;
--    }
--
-   if (getenv(server_timeout_envvar))
-     server_timeout = atoi (getenv(server_timeout_envvar));
- 
diff --git a/SOURCES/elfutils-0.178-pt-gnu-prop.patch b/SOURCES/elfutils-0.178-pt-gnu-prop.patch
deleted file mode 100644
index 917765b..0000000
--- a/SOURCES/elfutils-0.178-pt-gnu-prop.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/src/elflint.c b/src/elflint.c
-index 810c8bd..1acf1bc 100644
---- a/src/elflint.c
-+++ b/src/elflint.c
-@@ -4483,8 +4483,13 @@ only executables, shared objects, and core files can have program headers\n"));
- 	  continue;
- 	}
- 
-+#ifndef PT_GNU_PROPERTY
-+#define PT_GNU_PROPERTY (PT_LOOS + 0x474e553)
-+#endif
-+
-       if (phdr->p_type >= PT_NUM && phdr->p_type != PT_GNU_EH_FRAME
- 	  && phdr->p_type != PT_GNU_STACK && phdr->p_type != PT_GNU_RELRO
-+	  && phdr->p_type != PT_GNU_PROPERTY
- 	  /* Check for a known machine-specific type.  */
- 	  && ebl_segment_type_name (ebl, phdr->p_type, NULL, 0) == NULL)
- 	ERROR (gettext ("\
diff --git a/SPECS/elfutils.spec b/SPECS/elfutils.spec
index e6d96b2..54d1b2e 100644
--- a/SPECS/elfutils.spec
+++ b/SPECS/elfutils.spec
@@ -1,6 +1,6 @@
 Name: elfutils
-Version: 0.178
-%global baserelease 6
+Version: 0.180
+%global baserelease 1
 Release: %{baserelease}%{?dist}
 URL: http://elfutils.org/
 %global source_url ftp://sourceware.org/pub/elfutils/%{version}/
@@ -42,6 +42,7 @@ BuildRequires: pkgconfig(libarchive) >= 3.1.2
 BuildRequires: bzip2
 # For the run-debuginfod-find.sh test case in %check for /usr/sbin/ss
 BuildRequires: iproute
+BuildRequires: bsdtar
 BuildRequires: curl
 
 %global _gnu %{nil}
@@ -54,10 +55,6 @@ BuildRequires: curl
 %endif
 
 # Patches
-Patch1: elfutils-0.178-pt-gnu-prop.patch
-Patch2: elfutils-0.178-debuginfod-no-cache.patch
-Patch3: elfutils-0.178-curl-code-gcc-10.patch
-Patch4: elfutils-0.178-compressed-vmlinuz.patch
 
 %description
 Elfutils is a collection of utilities, including stack (to show
@@ -225,8 +222,8 @@ Requires(post):   systemd
 Requires(preun):  systemd
 Requires(postun): systemd
 Requires(pre): shadow-utils
-# For /usr/bin/cpio2rpm
-Requires: rpm
+# To extract .deb files with a bsdtar (= libarchive) subshell
+Requires: bsdtar
 
 %description debuginfod-client
 The elfutils-debuginfod-client package contains shared libraries
@@ -249,10 +246,6 @@ such servers to download those files on demand.
 %setup -q
 
 # Apply patches
-%patch1 -p1 -b .pt-gnu-prop
-%patch2 -p1 -b .debuginfod-client-cache
-%patch3 -p1 -b .curl-gcc-10
-%patch4 -p1 -b .vmlinuz
 
 # In case the above patches added any new test scripts, make sure they
 # are executable.
@@ -430,6 +423,13 @@ exit 0
 %systemd_postun_with_restart debuginfod.service
 
 %changelog
+* Thu Jun 11 2020 Mark Wielaard <mjw@redhat.com> - 0.180-1
+- New upstream release.
+
+* Fri Jan 10 2020 Mark Wielaard <mjw@redhat.com> - 0.178-7
+- Add elfutils-0.178-debuginfod-timeoutprogress.patch
+- Add elfutils-0.178-libasm-ebl.patch
+
 * Fri Dec 13 2019 Mark Wielaard <mjw@redhat.com> - 0.178-6
 - Add elfutils-0.178-curl-code-gcc-10.patch
 - Add elfutils-0.178-compressed-vmlinuz.patch