diff --git a/patches/libtheora-1.1.1.local.patch b/patches/libtheora-1.1.1.local.patch
new file mode 100644
index 0000000..b9e145e
--- /dev/null
+++ b/patches/libtheora-1.1.1.local.patch
@@ -0,0 +1,21 @@
+diff -ru libtheora-1.1.1.orig/lib/Makefile.in libtheora-1.1.1/lib/Makefile.in
+--- libtheora-1.1.1.orig/lib/Makefile.in	2009-10-01 20:04:07.000000000 +0200
++++ libtheora-1.1.1/lib/Makefile.in	2018-08-04 17:38:41.912201898 +0200
+@@ -179,7 +179,7 @@
+ 	x86_vc
+ 
+ 
+-lib_LTLIBRARIES = libtheoradec.la libtheoraenc.la libtheora.la
++lib_LTLIBRARIES = libtheoradec.la libtheora.la libtheoraenc.la
+ 
+ @THEORA_DISABLE_ENCODE_TRUE@encoder_uniq_sources = \
+ @THEORA_DISABLE_ENCODE_TRUE@	encoder_disabled.c
+@@ -357,7 +357,7 @@
+ libtheoradec_la_LIBADD =
+ am_libtheoradec_la_OBJECTS = $(am__objects_3)
+ libtheoradec_la_OBJECTS = $(am_libtheoradec_la_OBJECTS)
+-libtheoraenc_la_LIBADD =
++libtheoraenc_la_LIBADD = $(top_srcdir)/lib/libtheora.la
+ @THEORA_DISABLE_ENCODE_FALSE@am__objects_8 = mmxfrag.lo mmxidct.lo \
+ @THEORA_DISABLE_ENCODE_FALSE@	mmxstate.lo x86state.lo
+ @THEORA_DISABLE_ENCODE_FALSE@am__objects_9 =
diff --git a/patches/libtheora/fix-mmx.patch b/patches/libtheora/fix-mmx.patch
new file mode 100644
index 0000000..63fb9f7
--- /dev/null
+++ b/patches/libtheora/fix-mmx.patch
@@ -0,0 +1,31 @@
+http://bugs.alpinelinux.org/issues/6132
+https://trac.xiph.org/ticket/2287
+
+patch rebased for libtheory 1.1.1 stable
+
+diff -ru libtheora-1.1.1.orig/lib/encode.c libtheora-1.1.1/lib/encode.c
+--- libtheora-1.1.1.orig/lib/encode.c	2009-08-22 18:14:04.000000000 +0000
++++ libtheora-1.1.1/lib/encode.c	2016-09-15 05:27:02.065785527 +0000
+@@ -864,6 +864,9 @@
+ }
+ 
+ static void oc_enc_frame_pack(oc_enc_ctx *_enc){
++  /*musl libc malloc()/realloc() calls might use floating point, so make sure
++     we've cleared the MMX state for them.*/
++  oc_restore_fpu(&_enc->state);
+   oggpackB_reset(&_enc->opb);
+   /*Only proceed if we have some coded blocks.
+     If there are no coded blocks, we can drop this frame simply by emitting a
+diff -ru libtheora-1.1.1.orig/lib/decode.c libtheora-1.1.1/lib/decode.c
+--- libtheora-1.1.1.orig/lib/decode.c	2009-09-26 20:55:21.000000000 +0000
++++ libtheora-1.1.1/lib/decode.c	2016-09-15 05:29:45.912196850 +0000
+@@ -1181,6 +1181,9 @@
+ 
+ 
+ static int oc_dec_postprocess_init(oc_dec_ctx *_dec){
++  /*musl libc malloc()/realloc() calls might use floating point, so make sure
++     we've cleared the MMX state for them.*/
++  oc_restore_fpu(&_dec->state);
+   /*pp_level 0: disabled; free any memory used and return*/
+   if(_dec->pp_level<=OC_PP_LEVEL_DISABLED){
+     if(_dec->dc_qis!=NULL){
diff --git a/patches/libtheora/fix-sizeof.patch b/patches/libtheora/fix-sizeof.patch
new file mode 100644
index 0000000..e84685a
--- /dev/null
+++ b/patches/libtheora/fix-sizeof.patch
@@ -0,0 +1,15 @@
+diff -ru libtheora-1.1.1.orig/examples/png2theora.c libtheora-1.1.1/examples/png2theora.c
+--- libtheora-1.1.1.orig/examples/png2theora.c	2009-08-22 20:14:04.000000000 +0200
++++ libtheora-1.1.1/examples/png2theora.c	2018-08-04 18:02:49.568313482 +0200
+@@ -462,9 +462,9 @@
+   png_set_strip_alpha(png_ptr);
+ 
+   row_data = (png_bytep)png_malloc(png_ptr,
+-    3*height*width*png_sizeof(*row_data));
++    3*height*width*sizeof(*row_data));
+   row_pointers = (png_bytep *)png_malloc(png_ptr,
+-    height*png_sizeof(*row_pointers));
++    height*sizeof(*row_pointers));
+   for(y = 0; y < height; y++) {
+     row_pointers[y] = row_data + y*(3*width);
+   }
diff --git a/patches/libtheora/fix-timeb.patch b/patches/libtheora/fix-timeb.patch
new file mode 100644
index 0000000..5344c07
--- /dev/null
+++ b/patches/libtheora/fix-timeb.patch
@@ -0,0 +1,75 @@
+--- libtheora-1.1.1.orig/examples/dump_psnr.c
++++ libtheora-1.1.1/examples/dump_psnr.c
+@@ -37,7 +37,6 @@
+ #endif
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/timeb.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ /*Yes, yes, we're going to hell.*/
+--- libtheora-1.1.1.orig/examples/dump_video.c
++++ libtheora-1.1.1/examples/dump_video.c
+@@ -37,7 +37,7 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/timeb.h>
++#include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ /*Yes, yes, we're going to hell.*/
+@@ -205,9 +205,9 @@
+   int long_option_index;
+   int c;
+ 
+-  struct timeb start;
+-  struct timeb after;
+-  struct timeb last;
++  struct timeval start;
++  struct timeval after;
++  struct timeval last;
+   int fps_only=0;
+   int frames = 0;
+ 
+@@ -418,8 +418,8 @@
+   }
+ 
+   if(fps_only){
+-    ftime(&start);
+-    ftime(&last);
++    gettimeofday(&start, NULL);
++    gettimeofday(&last, NULL);
+   }
+ 
+   while(!got_sigint){
+@@ -433,7 +433,7 @@
+           videobuf_ready=1;
+           frames++;
+           if(fps_only)
+-            ftime(&after);
++            gettimeofday(&after, NULL);
+         }
+ 
+       }else
+@@ -442,16 +442,16 @@
+ 
+     if(fps_only && (videobuf_ready || fps_only==2)){
+       long ms =
+-        after.time*1000.+after.millitm-
+-        (last.time*1000.+last.millitm);
++        after.tv_sec*1000.+after.tv_usec/1000-
++        (last.tv_sec*1000.+last.tv_usec/1000);
+ 
+       if(ms>500 || fps_only==1 ||
+          (feof(infile) && !videobuf_ready)){
+         float file_fps = (float)ti.fps_numerator/ti.fps_denominator;
+         fps_only=2;
+ 
+-        ms = after.time*1000.+after.millitm-
+-          (start.time*1000.+start.millitm);
++        ms = after.tv_sec*1000.+after.tv_usec/1000-
++          (start.tv_sec*1000.+start.tv_usec/1000);
+ 
+         fprintf(stderr,"\rframe:%d rate:%.2fx           ",
+                 frames,
diff --git a/patches/libxslt-1.1.32.local.patch b/patches/libxslt-1.1.32.local.patch
new file mode 100644
index 0000000..1cf2531
--- /dev/null
+++ b/patches/libxslt-1.1.32.local.patch
@@ -0,0 +1,15 @@
+diff -ru libxslt-1.1.32.orig/Makefile.in libxslt-1.1.32/Makefile.in
+--- libxslt-1.1.32.orig/Makefile.in	2017-11-02 21:34:22.000000000 +0100
++++ libxslt-1.1.32/Makefile.in	2018-08-04 15:15:09.283854093 +0200
+@@ -415,10 +415,7 @@
+ SUBDIRS = \
+ 	libxslt \
+ 	libexslt \
+-	xsltproc \
+-	doc \
+-	$(PYTHON_SUBDIR) \
+-	tests
++	xsltproc
+ 
+ DIST_SUBDIRS = libxslt libexslt xsltproc python doc tests
+ confexecdir = $(libdir)
diff --git a/vars/build.vars b/vars/build.vars
index 12612ac..ea7fe96 100644
--- a/vars/build.vars
+++ b/vars/build.vars
@@ -397,10 +397,10 @@ NATIVE_PACKAGES_DEPS_CONFIGURE_ARGS="-C --disable-nls --host=${DEFAULT_TARGET} -
 NATIVE_PACKAGES_DEPS_LDFLAGS_CONFIGURE="--sysroot=${PREFIX_NATIVE}";
 NATIVE_PACKAGES_DEPS_MAKEFLAGS_INSTALL="PREFIX= prefix=";
 NATIVE_PACKAGES_DEPS_PACKAGES="
-expat libxml2 alsa_lib apr apr_util bzip2 libdmtx libressl libnettle
+expat libxml2 libxslt alsa_lib apr apr_util bzip2 libdmtx libressl libnettle
 libunistring gnutls curl libz lmdb libpng libjpeg_turbo tiff giflib libffi
 gdbm geoip pcre glib gzip libarchive libatomic_ops musl_compat libbsd
-libpipeline libevent libfetch libogg libvorbis libsndfile libgpg_error libassuan
+libpipeline libevent libfetch libogg libvorbis libtheora libsndfile libgpg_error libassuan
 libfirm libgcrypt libksba libudns lua ncurses ncursestw ncursesw
 libreadline npth popt file xz zstd rpm libsolv tdnf shared_mime_info
 sqlite3 w32api w32lib libuv cmake qrencode util_linux slang";
@@ -413,6 +413,9 @@ NATIVE_PACKAGES_DEPS_PYTHON="${PREFIX}/bin/python";
 : ${PKG_LIBXML2_VERSION:=2.9.8};
 : ${PKG_LIBXML2_URL:=ftp://xmlsoft.org/libxml2/libxml2-${PKG_LIBXML2_VERSION}.tar.gz};
 : ${PKG_LIBXML2_CONFIGURE_ARGS_EXTRA:="--with-python=no"};
+: ${PKG_LIBXSLT_SHA256SUM:=526ecd0abaf4a7789041622c3950c0e7f2c4c8835471515fd77eec684a355460};
+: ${PKG_LIBXSLT_VERSION:=1.1.32};
+: ${PKG_LIBXSLT_URL:=ftp://xmlsoft.org/libxslt/libxslt-${PKG_LIBXSLT_VERSION}.tar.gz};
 : ${PKG_ALSA_LIB_SHA256SUM:=91bb870c14d1c7c269213285eeed874fa3d28112077db061a3af8010d0885b76};
 : ${PKG_ALSA_LIB_VERSION:=1.1.6};
 : ${PKG_ALSA_LIB_URL:=ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.4.1.tar.bz2};
@@ -531,6 +534,11 @@ NATIVE_PACKAGES_DEPS_PYTHON="${PREFIX}/bin/python";
 : ${PKG_LIBVORBIS_SHA256SUM:=54f94a9527ff0a88477be0a71c0bab09a4c3febe0ed878b24824906cd4b0e1d1};
 : ${PKG_LIBVORBIS_VERSION:=1.3.5};
 : ${PKG_LIBVORBIS_URL:=https://ftp.osuosl.org/pub/xiph/releases/vorbis/libvorbis-${PKG_LIBVORBIS_VERSION}.tar.xz};
+: ${PKG_LIBTHEORA_SHA256SUM:=b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc};
+: ${PKG_LIBTHEORA_VERSION:=1.1.1};
+: ${PKG_LIBTHEORA_URL:=http://downloads.xiph.org/releases/theora/libtheora-${PKG_LIBTHEORA_VERSION}.tar.bz2};
+: ${PKG_LIBTHEORA_IN_TREE:=1};
+: ${PKG_LIBTHEORA_MAKEFLAGS_BUILD:=-j1};
 : ${PKG_LIBSNDFILE_SHA256SUM:=1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9};
 : ${PKG_LIBSNDFILE_VERSION:=1.0.28};
 : ${PKG_LIBSNDFILE_URL:=http://www.mega-nerd.com/libsndfile/files/libsndfile-${PKG_LIBSNDFILE_VERSION}.tar.gz};
@@ -1225,7 +1233,7 @@ fi;
 # Packages list native_packages_inet
 NATIVE_PACKAGES_INET_PACKAGES="
 apk_tools aria2 bind dropbear git gnupg httpd inetutils irssi ldns lighttpd lynx
-mailutils mtr mutt nginx openlitespeed openssh pacman rsync socat thttpd weechat wget whois";
+mailutils mtr mutt microsocks nginx openlitespeed openssh pacman rsync socat thttpd weechat wget whois";
 : ${PKG_APK_TOOLS_SHA256SUM:=def2b2c23cd12fd2a9c19be49653b0d1bf9d81a26dac5a0ee79a1351d674f93b};
 : ${PKG_APK_TOOLS_VERSION:=2.6.8};
 : ${PKG_APK_TOOLS_URL:=http://git.alpinelinux.org/cgit/apk-tools/snapshot/apk-tools-${PKG_APK_TOOLS_VERSION}.tar.bz2};
@@ -1295,6 +1303,8 @@ mailutils mtr mutt nginx openlitespeed openssh pacman rsync socat thttpd weechat
 : ${PKG_MUTT_VERSION:=1.10.1};
 : ${PKG_MUTT_URL:=ftp://ftp.mutt.org/pub/mutt/mutt-${PKG_MUTT_VERSION}.tar.gz};
 : ${PKG_MUTT_CONFIGURE_ARGS_EXTRA:="--enable-imap --enable-pop --enable-smtp --enable-sidebar --with-curses --with-mailpath=/var/spool/mail --without-included-gettext --with-ssl --disable-doc"};
+: ${PKG_MICROSOCKS_URLS_GIT:=microsocks=https://github.com/rofl0r/microsocks.git@master};
+: ${PKG_MICROSOCKS_BUILD_DIR:=microsocks};
 : ${PKG_NGINX_SHA256SUM:=4a667f40f9f3917069db1dea1f2d5baa612f1fa19378aadf71502e846a424610};
 : ${PKG_NGINX_VERSION:=1.11.3};
 : ${PKG_NGINX_URL:=http://nginx.org/download/nginx-${PKG_NGINX_VERSION}.tar.gz};