diff --git a/main/strace/APKBUILD b/main/strace/APKBUILD
index 1000b12be219f98cbc6f8e244f6708d6fc47259d..d8b1200c0f71fdea5abbd59802afcd247673384d 100644
--- a/main/strace/APKBUILD
+++ b/main/strace/APKBUILD
@@ -1,7 +1,7 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
 pkgname=strace
-pkgver=4.8
-pkgrel=4
+pkgver=4.9
+pkgrel=0
 pkgdesc="A useful diagnositic, instructional, and debugging tool"
 url="http://sourceforge.net/projects/strace/"
 arch="all"
@@ -10,8 +10,7 @@ depends=
 makedepends=
 subpackages="$pkgname-doc"
 source="http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.xz
-	strace-musl.patch
-	uclibc-fix.patch
+	sysinfo.patch
 	"
 
 _builddir="$srcdir/$pkgname-$pkgver"
@@ -44,12 +43,9 @@ package() {
 	cd "$srcdir/$pkgname-$pkgver"
 	make -j1 DESTDIR="$pkgdir" install
 }
-md5sums="c575ef43829586801f514fd91bfe7575  strace-4.8.tar.xz
-4dca5e173da85798ad4d628774db6053  strace-musl.patch
-4906d85aaf996831cca1dcbd13f3f5b5  uclibc-fix.patch"
-sha256sums="f492291f07a7c805c07a8395cce1ea054a6401ad414f4cc12185672215e1d7f8  strace-4.8.tar.xz
-47875682d64258806b76202c9d05f9b0547a93dca52bfb4d1fb62cd3993771cd  strace-musl.patch
-b089fc949aab33d791acb5939ef64cc74726fa0e599300be4fcb41ca005be78f  uclibc-fix.patch"
-sha512sums="c3316382f60cd4d02eec1eef46a0ef2d000afbccf2c176a6fec652e1b3391685f0e33f184497cb3ccf54d72d460471a4945d3a864fb5bce1f45f32fdf132cfe3  strace-4.8.tar.xz
-79cf73c292afe8ed6a78792f32a763bb39ba643f3696f0931867a6e93fb0f32ee1833e872c54bf5509c50dc382999202de677f37242356952df5dee367b0cc50  strace-musl.patch
-672b5b240bd79ca0b7145cda33e29d9aea4067ff78eae993062381010868a5e31d2d58fc3329dfa5dbe76f029a057710489d50ba6a104adc727f287704622125  uclibc-fix.patch"
+md5sums="885eafadb10f6c60464a266d3929a2a4  strace-4.9.tar.xz
+ed853f7bc7b87cc598f1a2c65ca09165  sysinfo.patch"
+sha256sums="095bfea5c540b91d297ccac73b21b92fd54a24599fd70395db87ff9eb7fd6f65  strace-4.9.tar.xz
+727b2d56ebf4941726c21ea77bbde5b841581f4a5bde8c2954937032ee05b93b  sysinfo.patch"
+sha512sums="70d03b74067ad03940cda72dc057a44a8a33fc55790a8a3bfffb1c4d7442c2de7f3e975a01dc7c7b0430342e492579b2f3a007242d13c8a0feba1a1989f42b7b  strace-4.9.tar.xz
+d0da5ed3eb1cee04d07297253445725c86abb55f0f4b80e3e1b7587c581a8c252e895dd7d8a32f410e457c5382194d1b27682215d0304e1dd7ebc8d69cb8e4e7  sysinfo.patch"
diff --git a/main/strace/strace-musl.patch b/main/strace/strace-musl.patch
deleted file mode 100644
index b0fb3f9cbd59b1300f45fc7c8e409382224fadea..0000000000000000000000000000000000000000
--- a/main/strace/strace-musl.patch
+++ /dev/null
@@ -1,190 +0,0 @@
---- strace-4.8.orig/defs.h
-+++ strace-4.8/defs.h
-@@ -155,7 +155,7 @@
-     || defined(METAG) \
-     || defined(TILE) \
-     || defined(XTENSA) \
--    ) && defined(__GLIBC__)
-+    ) && defined(__linux__)
- # include <sys/ptrace.h>
- #else
- /* Work around awkward prototype in ptrace.h. */
-@@ -222,7 +222,7 @@
- # define PTRACE_EVENT_EXIT	6
- #endif
- 
--#if !defined(__GLIBC__)
-+#if !defined(__GLIBC__) && !defined(PTRACE_PEEKUSER)
- # define PTRACE_PEEKUSER PTRACE_PEEKUSR
- # define PTRACE_POKEUSER PTRACE_POKEUSR
- #endif
---- strace-4.8.orig/desc.c
-+++ strace-4.8/desc.c
-@@ -299,7 +299,7 @@
- #ifdef X32
- 	tprintf(", start=%lld, len=%lld", fl.l_start, fl.l_len);
- #else
--	tprintf(", start=%ld, len=%ld", fl.l_start, fl.l_len);
-+	tprintf(", start=%ld, len=%ld", (long) fl.l_start, (long) fl.l_len);
- #endif
- 	if (getlk)
- 		tprintf(", pid=%lu}", (unsigned long) fl.l_pid);
---- strace-4.8.orig/file.c
-+++ strace-4.8/file.c
-@@ -632,7 +632,7 @@
- 	return 0;
- }
- 
--#if _LFS64_LARGEFILE
-+#if defined _LFS64_LARGEFILE || defined HAVE_LONG_LONG_OFF_T
- int
- sys_truncate64(struct tcb *tcp)
- {
-@@ -654,7 +654,7 @@
- 	return 0;
- }
- 
--#if _LFS64_LARGEFILE
-+#if defined _LFS64_LARGEFILE || defined HAVE_LONG_LONG_OFF_T
- int
- sys_ftruncate64(struct tcb *tcp)
- {
-@@ -2322,7 +2322,7 @@
- 	return 0;
- }
- 
--#if _LFS64_LARGEFILE
-+#if defined _LFS64_LARGEFILE || defined HAVE_LONG_LONG_OFF_T
- int
- sys_getdents64(struct tcb *tcp)
- {
---- strace-4.8.orig/net.c
-+++ strace-4.8/net.c
-@@ -95,12 +95,14 @@
- #endif
- 
- /* Under Linux these are enums so we can't test for them with ifdef. */
-+#if !defined(IPPROTO_MAX)
- #define IPPROTO_EGP IPPROTO_EGP
- #define IPPROTO_PUP IPPROTO_PUP
- #define IPPROTO_IDP IPPROTO_IDP
- #define IPPROTO_IGMP IPPROTO_IGMP
- #define IPPROTO_RAW IPPROTO_RAW
- #define IPPROTO_MAX IPPROTO_MAX
-+#endif
- 
- static const struct xlat domains[] = {
- #ifdef PF_UNSPEC
---- strace-4.8.orig/process.c
-+++ strace-4.8/process.c
-@@ -55,7 +55,7 @@
- # endif
- #endif
- 
--#ifdef HAVE_LINUX_PTRACE_H
-+#if defined HAVE_LINUX_PTRACE_H && defined __GLIBC__
- # undef PTRACE_SYSCALL
- # ifdef HAVE_STRUCT_IA64_FPREG
- #  define ia64_fpreg XXX_ia64_fpreg
-@@ -2857,7 +2857,7 @@
- 		if (umove(tcp, tcp->u_arg[2], &p) < 0)
- 			tprintf(", %#lx", tcp->u_arg[2]);
- 		else
--			tprintf(", { %d }", p.__sched_priority);
-+			tprintf(", { %d }", p.sched_priority);
- 	}
- 	return 0;
- }
-@@ -2872,7 +2872,7 @@
- 		if (umove(tcp, tcp->u_arg[1], &p) < 0)
- 			tprintf("%#lx", tcp->u_arg[1]);
- 		else
--			tprintf("{ %d }", p.__sched_priority);
-+			tprintf("{ %d }", p.sched_priority);
- 	}
- 	return 0;
- }
-@@ -2885,7 +2885,7 @@
- 		if (umove(tcp, tcp->u_arg[1], &p) < 0)
- 			tprintf("%d, %#lx", (int) tcp->u_arg[0], tcp->u_arg[1]);
- 		else
--			tprintf("%d, { %d }", (int) tcp->u_arg[0], p.__sched_priority);
-+			tprintf("%d, { %d }", (int) tcp->u_arg[0], p.sched_priority);
- 	}
- 	return 0;
- }
---- strace-4.8.orig/signal.c
-+++ strace-4.8/signal.c
-@@ -59,6 +59,7 @@
- #ifdef IA64
- # include <asm/ptrace_offsets.h>
- #endif
-+#include <asm/ptrace.h>
- 
- #if defined(SPARC) || defined(SPARC64) || defined(MIPS)
- typedef struct {
---- strace-4.8.orig/strace.c
-+++ strace-4.8/strace.c
-@@ -506,7 +506,7 @@
- 				perror_msg_and_die("dup2");
- 			close(fds[0]);
- 		}
--		execl(_PATH_BSHELL, "sh", "-c", command, NULL);
-+		execl(_PATH_BSHELL, "sh", "-c", command, (void*) 0);
- 		perror_msg_and_die("Can't execute '%s'", _PATH_BSHELL);
- 	}
- 
---- strace-4.8.orig/syscall.c
-+++ strace-4.8/syscall.c
-@@ -72,13 +72,7 @@
- # include <elf.h>
- #endif
- 
--#if defined(AARCH64)
--# include <asm/ptrace.h>
--#endif
--
--#if defined(XTENSA)
--# include <asm/ptrace.h>
--#endif
-+#include <asm/ptrace.h>
- 
- #ifndef ERESTARTSYS
- # define ERESTARTSYS	512
---- strace-4.8.orig/time.c
-+++ strace-4.8/time.c
-@@ -774,7 +774,11 @@
- 			/* _pad[0] is the _tid field which might not be
- 			   present in the userlevel definition of the
- 			   struct.  */
-+#if defined(__GLIBC__)
- 			tprintf("{%d}", sev._sigev_un._pad[0]);
-+#else
-+			tprintf("{%d}", (int) sev.__pad[0]);
-+#endif
- 		else if (sev.sigev_notify == SIGEV_THREAD)
- 			tprintf("{%p, %p}", sev.sigev_notify_function,
- 				sev.sigev_notify_attributes);
---- ./resource.c.orig
-+++ ./resource.c
-@@ -31,6 +31,7 @@
- #include "defs.h"
- #include <sys/resource.h>
- #include <sys/times.h>
-+#include <sys/sysinfo.h>
- #include <linux/kernel.h>
- 
- static const struct xlat resources[] = {
---- strace-4.8.org/process.c
-+++ strace-4.8/process.c
-@@ -91,6 +91,10 @@
- # include <asm/rse.h>
- #endif
- 
-+#ifdef __arm__
-+#include <asm/ptrace.h>
-+#endif
-+
- #ifdef HAVE_PRCTL
- # include <sys/prctl.h>
- 
diff --git a/main/strace/sysinfo.patch b/main/strace/sysinfo.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1a655d629c49dc8dc82a3dbcf6a91cc4fcdfb0b5
--- /dev/null
+++ b/main/strace/sysinfo.patch
@@ -0,0 +1,12 @@
+diff --git a/resource.c b/resource.c
+index 12e218f..2b72ee2 100644
+--- a/resource.c
++++ b/resource.c
+@@ -31,6 +31,7 @@
+ #include "defs.h"
+ #include <sys/resource.h>
+ #include <sys/times.h>
++#include <sys/sysinfo.h>
+ #include <linux/kernel.h>
+ 
+ #include "xlat/resources.h"
diff --git a/main/strace/uclibc-fix.patch b/main/strace/uclibc-fix.patch
deleted file mode 100644
index 1265df76ce9bed6868bfbe637256f588e65e159f..0000000000000000000000000000000000000000
--- a/main/strace/uclibc-fix.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./resource.c.orig	2014-03-26 10:51:41.868389136 +0000
-+++ ./resource.c	2014-03-26 10:52:15.395449771 +0000
-@@ -31,7 +31,9 @@
- #include "defs.h"
- #include <sys/resource.h>
- #include <sys/times.h>
-+#ifndef __GLIBC__
- #include <sys/sysinfo.h>
-+#endif
- #include <linux/kernel.h>
- 
- static const struct xlat resources[] = {