diff --git a/.gitignore b/.gitignore
index 8bcb45a..6ba9fd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/systemtap-4.1.tar.gz
+SOURCES/systemtap-4.2.tar.gz
diff --git a/.systemtap.metadata b/.systemtap.metadata
index bbcb4c0..e0f0963 100644
--- a/.systemtap.metadata
+++ b/.systemtap.metadata
@@ -1 +1 @@
-d3653e17960ac8bb23be3bb57dfa4b17dcb9d27d SOURCES/systemtap-4.1.tar.gz
+efdb0d6e09ebdfa2acbfdb725542885db2195bb6 SOURCES/systemtap-4.2.tar.gz
diff --git a/SOURCES/pr23074.patch b/SOURCES/pr23074.patch
deleted file mode 100644
index 76e0201..0000000
--- a/SOURCES/pr23074.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-commit 83071bc877b462eacca309fa49c9e8112fc16bdf
-Author: Jafeer Uddin <juddin@redhat.com>
-Date:   Thu May 9 16:18:46 2019 -0400
-
-    PR23074: fix guru mode issue with generated calls to register get/set
-
-diff --git a/elaborate.cxx b/elaborate.cxx
-index 9ebf30b..fcd1d1d 100644
---- a/elaborate.cxx
-+++ b/elaborate.cxx
-@@ -3073,7 +3073,7 @@ public:
-     }
- 
-   // Don't allow /* guru */ functions unless caller is privileged.
--  if (!call->tok->location.file->privileged &&
-+  if (!call->synthetic && !call->tok->location.file->privileged &&
-       s->tagged_p ("/* guru */"))
-     throw SEMANTIC_ERROR (_("function may not be used unless -g is specified"),
- 			  call->tok);
-diff --git a/loc2stap.cxx b/loc2stap.cxx
-index c1a48d0..d4fd051 100644
---- a/loc2stap.cxx
-+++ b/loc2stap.cxx
-@@ -1745,6 +1745,7 @@ location_context::handle_GNU_parameter_ref (Dwarf_Op expr)
-   // it and we want to be able to restore the registers back.
-   functioncall *get_ptregs = new functioncall;
-   get_ptregs->tok = e->tok;
-+  get_ptregs->synthetic = true;
-   if (this->userspace_p)
-     get_ptregs->function = std::string("__get_uregs");
-   else
-@@ -1870,6 +1871,7 @@ location_context::handle_GNU_parameter_ref (Dwarf_Op expr)
-   // Translation done, restore the pt_regs to its original value
-   functioncall *set_ptregs = new functioncall;
-   set_ptregs->tok = e->tok;
-+  set_ptregs->synthetic = true;
-   if (this->userspace_p)
-     set_ptregs->function = std::string("__set_uregs");
-   else
-diff --git a/staptree.h b/staptree.h
-index d63156f..2735808 100644
---- a/staptree.h
-+++ b/staptree.h
-@@ -464,6 +464,7 @@ struct functioncall: public expression
-   interned_string function;
-   std::vector<expression*> args;
-   std::vector<functiondecl*> referents;
-+  bool synthetic;
-   functioncall ();
-   void print (std::ostream& o) const;
-   void visit (visitor* u);
diff --git a/SPECS/systemtap.spec b/SPECS/systemtap.spec
index f895ec6..90f51be 100644
--- a/SPECS/systemtap.spec
+++ b/SPECS/systemtap.spec
@@ -14,7 +14,7 @@
 %{!?elfutils_version: %global elfutils_version 0.142}
 %{!?pie_supported: %global pie_supported 1}
 %{!?with_boost: %global with_boost 0}
-%ifarch %{ix86} x86_64 ppc ppc64
+%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
 %{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
 %else
 %{!?with_dyninst: %global with_dyninst 0}
@@ -38,6 +38,7 @@
 %{!?with_python2_probes: %global with_python2_probes (0%{?fedora} <= 28 && 0%{?rhel} <= 7)}
 %{!?with_python3_probes: %global with_python3_probes (0%{?fedora} >= 23 || 0%{?rhel} > 7)}
 %{!?with_httpd: %global with_httpd 0}
+%{!?with_specific_python: %global with_specific_python 0%{?fedora} >= 31}
 
 # Virt is supported on these arches, even on el7, but it's not in core EL7
 %if 0%{?rhel} <= 7
@@ -86,8 +87,8 @@
 %define __brp_mangle_shebangs_exclude_from .stp$
 
 Name: systemtap
-Version: 4.1
-Release: 3%{?release_override}%{?dist}
+Version: 4.2
+Release: 1%{?release_override}%{?dist}
 # for version, see also configure.ac
 
 
@@ -123,9 +124,6 @@ License: GPLv2+
 URL: http://sourceware.org/systemtap/
 Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
 
-Patch10: pr23074.patch
-
-
 # Build*
 BuildRequires: gcc-c++
 BuildRequires: cpio
@@ -133,7 +131,7 @@ BuildRequires: gettext-devel
 BuildRequires: pkgconfig(nss)
 BuildRequires: pkgconfig(avahi-client)
 %if %{with_dyninst}
-BuildRequires: dyninst-devel >= 8.0
+BuildRequires: dyninst-devel >= 10.0
 BuildRequires: pkgconfig(libselinux)
 %endif
 %if %{with_sqlite}
@@ -206,6 +204,9 @@ BuildRequires: python-setuptools
 BuildRequires: python3-devel
 BuildRequires: python3-setuptools
 %endif
+%if %{with_specific_python}
+BuildRequires: /usr/bin/pathfix.py
+%endif
 
 %if %{with_httpd}
 BuildRequires: libmicrohttpd-devel
@@ -426,6 +427,7 @@ URL: http://sourceware.org/systemtap/
 Requires: systemtap-runtime = %{version}-%{release}
 Requires: byteman > 2.0
 Requires: iproute
+Requires: java-devel
 
 %description runtime-java
 This package includes support files needed to run systemtap scripts
@@ -524,8 +526,6 @@ find . \( -name configure -o -name config.h.in \) -print | xargs touch
 cd ..
 %endif
 
-%patch10 -p1
-
 %build
 
 %if %{with_bundled_elfutils}
@@ -771,6 +771,11 @@ done
    touch $RPM_BUILD_ROOT%{dracutstap}/params.conf
 %endif
 
+%if %{with_specific_python}
+# Some files got ambiguous python shebangs, we fix them after everything else is done
+pathfix.py -pni "%{__python3} %{py3_shbang_opts}" %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/*
+%endif
+
 %pre runtime
 getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
 getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
@@ -1261,6 +1266,18 @@ done
 
 # PRERELEASE
 %changelog
+* Tue Nov 19 2019 Frank Ch. Eigler <fche@redhat.com> - 4.2-1
+- rhbz1744989: Upstream release.
+
+* Tue Aug 06 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-6
+- rhbz1732514: add java-devel prereq to systemtap-runtime-java
+
+* Wed Jul 31 2019 Serguei Makarov <smakarov@redhat.com> - 4.1-5
+- rhbz1734973: Fix possible stapbpf segfault with foreach string key iteration.
+
+* Mon Jul 29 2019 Frank Ch. Eigler <fche@redhat.com> - 4.1-4
+- rhbz1732173 (arm64 syscall parameters)
+
 * Tue Jun 04 2019 Stan Cox <scox@redhat.com> - 4.1-3
 - Rebuilt for dyninst 10.1.0