diff --git a/groups/251.native_packages_lib.group b/groups/251.native_packages_lib.group
index 40e0164..5e150c0 100644
--- a/groups/251.native_packages_lib.group
+++ b/groups/251.native_packages_lib.group
@@ -193,8 +193,8 @@ libxslt libz libzip lzo sdl1 sdl1_net sdl1_image sdl2 sdl2_image sdl2_ttf wolfss
 : ${PKG_LIBTHEORA_IN_TREE:=1};
 : ${PKG_LIBTHEORA_MAKEFLAGS_BUILD:=-j1};
 : ${PKG_LIBTIRPC_DEPENDS:="musl_compat"};
-: ${PKG_LIBTIRPC_SHA256SUM:=4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc};
-: ${PKG_LIBTIRPC_VERSION:=1.2.6};
+: ${PKG_LIBTIRPC_SHA256SUM:=245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17};
+: ${PKG_LIBTIRPC_VERSION:=1.3.1};
 : ${PKG_LIBTIRPC_URL:=https://ftp.osuosl.org/pub/blfs/conglomeration/libtirpc/libtirpc-${PKG_LIBTIRPC_VERSION}.tar.bz2};
 : ${PKG_LIBTIRPC_CONFIGURE_ARGS_EXTRA:="--disable-gssapi"};
 : ${PKG_LIBUDNS_URLS_GIT:=libudns=https://github.com/shadowsocks/libudns.git@master};
diff --git a/patches/libtirpc-1.2.6.local.patch b/patches/libtirpc-1.2.6.local.patch
deleted file mode 100644
index 55b2194..0000000
--- a/patches/libtirpc-1.2.6.local.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff -ru libtirpc-1.0.3.orig/src/bindresvport.c libtirpc-1.0.3/src/bindresvport.c
---- libtirpc-1.0.3.orig/src/bindresvport.c	2018-03-14 14:55:12.000000000 +0100
-+++ libtirpc-1.0.3/src/bindresvport.c	2018-08-04 19:37:31.972078008 +0200
-@@ -61,7 +61,7 @@
-         return bindresvport_sa(sd, (struct sockaddr *)sin);
- }
- 
--#ifdef __linux__
-+#if defined(__linux__) || defined(__midipix__)
- 
- #define STARTPORT 600
- #define LOWPORT 512
-diff -ru libtirpc-1.0.3.orig/src/clnt_dg.c libtirpc-1.0.3/src/clnt_dg.c
---- libtirpc-1.0.3.orig/src/clnt_dg.c	2018-03-14 14:55:12.000000000 +0100
-+++ libtirpc-1.0.3/src/clnt_dg.c	2018-08-04 19:41:06.325266026 +0200
-@@ -54,12 +54,16 @@
- #include <err.h>
- #include "rpc_com.h"
- 
--#ifdef IP_RECVERR
-+#if defined(IP_RECVERR) && !defined(__midipix__)
- #include <asm/types.h>
- #include <linux/errqueue.h>
- #include <sys/uio.h>
- #endif
- 
-+#ifdef __midipix__
-+#include <sys/uio.h>
-+#endif
-+
- 
- #define MAX_DEFAULT_FDS                 20000
- 
-@@ -421,7 +425,7 @@
-                 }
-                 break;
-         }
--#ifdef IP_RECVERR
-+#if defined(IP_RECVERR) && !defined(__midipix__)
-       if (fd.revents & POLLERR)
- 	{
- 	  struct msghdr msg;
-diff -ru libtirpc-1.0.3.orig/src/rtime.c libtirpc-1.0.3/src/rtime.c
---- libtirpc-1.0.3.orig/src/rtime.c	2018-03-14 14:55:12.000000000 +0100
-+++ libtirpc-1.0.3/src/rtime.c	2018-08-04 19:47:49.089270334 +0200
-@@ -46,7 +46,7 @@
- #include <unistd.h>
- #include <errno.h>
- #include <sys/types.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/socket.h>
- #include <sys/time.h>
- #include <netinet/in.h>
-diff -ru libtirpc-1.0.3.orig/src/svc_run.c libtirpc-1.0.3/src/svc_run.c
---- libtirpc-1.0.3.orig/src/svc_run.c	2018-03-14 14:55:12.000000000 +0100
-+++ libtirpc-1.0.3/src/svc_run.c	2018-08-04 19:48:02.569155655 +0200
-@@ -37,7 +37,7 @@
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
--#include <sys/poll.h>
-+#include <poll.h>
- 
- 
- #include <rpc/rpc.h>
-diff -ru libtirpc-1.0.3.orig/tirpc/reentrant.h libtirpc-1.0.3/tirpc/reentrant.h
---- libtirpc-1.0.3.orig/tirpc/reentrant.h	2018-03-14 14:55:12.000000000 +0100
-+++ libtirpc-1.0.3/tirpc/reentrant.h	2018-08-04 19:23:48.165632436 +0200
-@@ -36,7 +36,7 @@
-  * These definitions are only guaranteed to be valid on Linux. 
-  */
- 
--#if defined(__linux__)
-+#if defined(__linux__) || defined(__midipix__)
- 
- #include <pthread.h>
- 
diff --git a/patches/libtirpc-1.3.1.local.patch b/patches/libtirpc-1.3.1.local.patch
new file mode 100644
index 0000000..55b2194
--- /dev/null
+++ b/patches/libtirpc-1.3.1.local.patch
@@ -0,0 +1,78 @@
+diff -ru libtirpc-1.0.3.orig/src/bindresvport.c libtirpc-1.0.3/src/bindresvport.c
+--- libtirpc-1.0.3.orig/src/bindresvport.c	2018-03-14 14:55:12.000000000 +0100
++++ libtirpc-1.0.3/src/bindresvport.c	2018-08-04 19:37:31.972078008 +0200
+@@ -61,7 +61,7 @@
+         return bindresvport_sa(sd, (struct sockaddr *)sin);
+ }
+ 
+-#ifdef __linux__
++#if defined(__linux__) || defined(__midipix__)
+ 
+ #define STARTPORT 600
+ #define LOWPORT 512
+diff -ru libtirpc-1.0.3.orig/src/clnt_dg.c libtirpc-1.0.3/src/clnt_dg.c
+--- libtirpc-1.0.3.orig/src/clnt_dg.c	2018-03-14 14:55:12.000000000 +0100
++++ libtirpc-1.0.3/src/clnt_dg.c	2018-08-04 19:41:06.325266026 +0200
+@@ -54,12 +54,16 @@
+ #include <err.h>
+ #include "rpc_com.h"
+ 
+-#ifdef IP_RECVERR
++#if defined(IP_RECVERR) && !defined(__midipix__)
+ #include <asm/types.h>
+ #include <linux/errqueue.h>
+ #include <sys/uio.h>
+ #endif
+ 
++#ifdef __midipix__
++#include <sys/uio.h>
++#endif
++
+ 
+ #define MAX_DEFAULT_FDS                 20000
+ 
+@@ -421,7 +425,7 @@
+                 }
+                 break;
+         }
+-#ifdef IP_RECVERR
++#if defined(IP_RECVERR) && !defined(__midipix__)
+       if (fd.revents & POLLERR)
+ 	{
+ 	  struct msghdr msg;
+diff -ru libtirpc-1.0.3.orig/src/rtime.c libtirpc-1.0.3/src/rtime.c
+--- libtirpc-1.0.3.orig/src/rtime.c	2018-03-14 14:55:12.000000000 +0100
++++ libtirpc-1.0.3/src/rtime.c	2018-08-04 19:47:49.089270334 +0200
+@@ -46,7 +46,7 @@
+ #include <unistd.h>
+ #include <errno.h>
+ #include <sys/types.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/socket.h>
+ #include <sys/time.h>
+ #include <netinet/in.h>
+diff -ru libtirpc-1.0.3.orig/src/svc_run.c libtirpc-1.0.3/src/svc_run.c
+--- libtirpc-1.0.3.orig/src/svc_run.c	2018-03-14 14:55:12.000000000 +0100
++++ libtirpc-1.0.3/src/svc_run.c	2018-08-04 19:48:02.569155655 +0200
+@@ -37,7 +37,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ 
+ 
+ #include <rpc/rpc.h>
+diff -ru libtirpc-1.0.3.orig/tirpc/reentrant.h libtirpc-1.0.3/tirpc/reentrant.h
+--- libtirpc-1.0.3.orig/tirpc/reentrant.h	2018-03-14 14:55:12.000000000 +0100
++++ libtirpc-1.0.3/tirpc/reentrant.h	2018-08-04 19:23:48.165632436 +0200
+@@ -36,7 +36,7 @@
+  * These definitions are only guaranteed to be valid on Linux. 
+  */
+ 
+-#if defined(__linux__)
++#if defined(__linux__) || defined(__midipix__)
+ 
+ #include <pthread.h>
+