diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
deleted file mode 100644
index 32ca073..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3776fd0b42e473fe51d3678bf26cdaa37e1d8e0d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 8 Apr 2017 13:36:12 -0700
-Subject: [PATCH] Add format attribute to _synctex_malloc
-
-Helps in avoiding compile errors about formating with clang
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- cut-n-paste/synctex/synctex_parser_utils.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c
-index 08053f0..0519b38 100644
---- a/cut-n-paste/synctex/synctex_parser_utils.c
-+++ b/cut-n-paste/synctex/synctex_parser_utils.c
-@@ -136,6 +136,7 @@ int _synctex_log(int level, const char * prompt, const char * reason,va_list arg
- 	return result;
- }
- 
-+__attribute__((__format__ (__printf__, 1, 0)))
- int _synctex_error(const char * reason,...) {
-     va_list arg;
-     int result;
--- 
-2.20.1
-
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
deleted file mode 100644
index 94794a5..0000000
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince/0002-add-a-formatting-attribute-check.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From ef170dda7fbab53682c9bc287dec93fa86130bc9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 9 Sep 2018 21:49:59 -0700
-Subject: [PATCH] add a formatting attribute check
-
-Tell Clang that parameter is a printf style format using the
-attribute flag
-
-This helps in avoiding below warnings seen with clang
-
-unarr.c:106:22: error: format string is not a string literal
-[-Werror,-Wformat-nonliteral]
-|     vfprintf(stderr, msg, args);
-|                      ^~~
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- cut-n-paste/unarr/common/unarr.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/cut-n-paste/synctex/synctex_parser_utils.c
-+++ b/cut-n-paste/synctex/synctex_parser_utils.c
-@@ -87,11 +87,11 @@ void _synctex_free(void * ptr) {
- #   include <syslog.h>
- #endif
- 
--int _synctex_error(const char * reason, ...) __attribute__((__format__ (__printf__, 1, 2)));
--int _synctex_log(int level, const char * prompt, const char * reason, va_list arg) __attribute__((__format__ (__printf__, 3, 0)));
--
--int _synctex_log(int level, const char * prompt, const char * reason,va_list arg) {
-+static int _synctex_log(int level, const char * prompt, const char * reason, ...) SYNCTEX_PRINTF_FORMAT(3, 0);
-+static int _synctex_log(int level, const char * prompt, const char * reason, ...) {
-+	va_list arg;
- 	int result;
-+	va_start(arg, reason);
- #	ifdef SYNCTEX_RECENT_WINDOWS
- 	{/*	This code is contributed by William Blum.
-         As it does not work on some older computers,
-@@ -133,10 +133,10 @@ int _synctex_log(int level, const char *
-     result += vfprintf(where, reason, arg);
-     result += fprintf(where,"\n");
- #   endif
-+    va_end(arg);
- 	return result;
- }
- 
--__attribute__((__format__ (__printf__, 1, 0)))
- int _synctex_error(const char * reason,...) {
-     va_list arg;
-     int result;
-@@ -355,6 +355,7 @@ char * _synctex_merge_strings(const char
- 		size_t len = strlen(temp);
- 		if(UINT_MAX-len<size) {
- 			_synctex_error("!  _synctex_merge_strings: Capacity exceeded.");
-+			va_end(arg);
- 			return NULL;
- 		}
- 		size+=len;
-@@ -374,6 +375,7 @@ char * _synctex_merge_strings(const char
- 					if(dest != strncpy(dest,temp,size)) {
- 						_synctex_error("!  _synctex_merge_strings: Copy problem");
- 						free(result);
-+						va_end(arg);
- 						result = NULL;
- 						return NULL;
- 					}
---- a/cut-n-paste/synctex/synctex_parser_utils.h
-+++ b/cut-n-paste/synctex/synctex_parser_utils.h
-@@ -85,7 +85,11 @@ extern "C" {
- #	else
- #		define SYNCTEX_ARE_PATH_CHARACTERS_EQUAL(left,right) (toupper(left) != toupper(right))
- #	endif
--    
-+#	ifdef __GNUC__
-+#		define SYNCTEX_PRINTF_FORMAT(si, ftc) __attribute__ ((format (printf, si, ftc)))
-+#	else
-+#		define SYNCTEX_PRINTF_FORMAT(si, ftc)
-+#	endif    
- /*  This custom malloc functions initializes to 0 the newly allocated memory.
-  *  There is no bzero function on windows. */
- void *_synctex_malloc(size_t size);
-@@ -97,8 +101,8 @@ void _synctex_free(void * ptr);
- /*  This is used to log some informational message to the standard error stream.
-  *  On Windows, the stderr stream is not exposed and another method is used.
-  *	The return value is the number of characters printed.	*/
--    int _synctex_error(const char * reason,...);
--    int _synctex_debug(const char * reason,...);
-+    int _synctex_error(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
-+    int _synctex_debug(const char * reason,...) SYNCTEX_PRINTF_FORMAT(1, 2);
- 
- /*  strip the last extension of the given string, this string is modified!
-  *  This function depends on the OS because the path separator may differ.
diff --git a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.36.7.bb b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb
similarity index 81%
rename from meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.36.7.bb
rename to meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb
index 3ea5410..9c1d864 100644
--- a/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.36.7.bb
+++ b/meta-openembedded/meta-gnome/recipes-gnome/evince/evince_3.38.0.bb
@@ -20,12 +20,7 @@
 
 inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection upstream-version-is-even gettext mime-xdg gtk-doc
 
-SRC_URI[archive.md5sum] = "a7ebf1f76552579be71fc63947a15297"
-SRC_URI[archive.sha256sum] = "65d61a423e3fbbe07001f65e87422dfb7d2e42b9edf0ca6a1d427af9a04b8f32"
-SRC_URI += " \
-    file://0001-Add-format-attribute-to-_synctex_malloc.patch \
-    file://0002-add-a-formatting-attribute-check.patch \
-"
+SRC_URI[archive.sha256sum] = "26df897a417545b476d2606b14731122e84278ae994bd64ea535449c3cf01948"
 
 GTKDOC_MESON_OPTION = "gtk_doc"
 
