diff --git a/patches/Python-3.5.1.local.patch b/patches/Python-3.5.1.local.patch
deleted file mode 100644
index b96f19e..0000000
--- a/patches/Python-3.5.1.local.patch
+++ /dev/null
@@ -1,180 +0,0 @@
---- Python-3.5.1/configure.ac.orig	2015-12-07 01:39:11.000000000 +0000
-+++ Python-3.5.1/configure.ac	2016-04-23 12:49:17.142936229 +0000
-@@ -58,6 +58,15 @@
- 
- if test "$cross_compiling" = yes; then
-     AC_MSG_CHECKING([for python interpreter for cross build])
-+    AC_MSG_CHECKING(python for build)
-+    PYTHON_FOR_BUILD="${PYTHON_FOR_BUILD:-${PWD}/hostpython}"
-+    AC_MSG_RESULT($PYTHON_FOR_BUILD)
-+    AC_MSG_CHECKING(pgen for build)
-+    PGEN_FOR_BUILD="${PGEN_FOR_BUILD:-Parser/hostpgen}"
-+    AC_MSG_RESULT($PGEN_FOR_BUILD)
-+    AC_MSG_CHECKING(_freeze_importlib for build)
-+    _FIP_FOR_BUILD="${_FIP_FOR_BUILD:-Programs/host_freeze_importlib}"
-+    AC_MSG_RESULT($_FIP_FOR_BUILD)
-     if test -z "$PYTHON_FOR_BUILD"; then
-         for interp in python$PACKAGE_VERSION python3 python; do
- 	    which $interp >/dev/null 2>&1 || continue
-@@ -75,9 +84,16 @@
- elif test "$cross_compiling" = maybe; then
-     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
- else
--    PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
-+   PYTHON_FOR_BUILD='$(BUILDPYTHON)'
-+   PGEN_FOR_BUILD='$(PGEN)'
-+   _FIP_FOR_BUILD='$(_FIP)'
- fi
- AC_SUBST(PYTHON_FOR_BUILD)
-+AC_SUBST(PGEN_FOR_BUILD)
-+AC_SUBST(_FIP_FOR_BUILD)
-+AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python])
-+AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen])
-+AC_ARG_VAR(_FIP_FOR_BUILD,[build system Python _freeze_importlib])
- 
- dnl Ensure that if prefix is specified, it does not end in a slash. If
- dnl it does, we get path names containing '//' which is both ugly and
-@@ -373,6 +389,9 @@
- 	*-*-cygwin*)
- 		ac_sys_system=Cygwin
- 		;;
-+	*-*-midipix*)
-+		ac_sys_system=Midipix
-+		;;
- 	*)
- 		# for now, limit cross builds to known configurations
- 		MACHDEP="unknown"
-@@ -399,6 +418,7 @@
- 	cygwin*) MACHDEP="cygwin";;
- 	darwin*) MACHDEP="darwin";;
- 	irix646) MACHDEP="irix6";;
-+	midipix*) MACHDEP="midipix";;
- 	'')	MACHDEP="unknown";;
-     esac
- fi
-@@ -406,6 +426,9 @@
- AC_SUBST(_PYTHON_HOST_PLATFORM)
- if test "$cross_compiling" = yes; then
- 	case "$host" in
-+	*-*-midipix*)
-+		_host_cpu=
-+		;;
- 	*-*-linux*)
- 		case "$host_cpu" in
- 		arm*)
---- Python-3.5.1/Makefile.pre.in.orig	2015-12-07 01:39:09.000000000 +0000
-+++ Python-3.5.1/Makefile.pre.in	2016-04-23 12:09:05.162989761 +0000
-@@ -276,6 +276,9 @@
- ##########################################################################
- # Parser
- PGEN=		Parser/pgen$(EXE)
-+PGEN_FOR_BUILD=	@PGEN_FOR_BUILD@
-+_FIP=		Programs/_freeze_importlib$(EXE)
-+_FIP_FOR_BUILD=	@_FIP_FOR_BUILD@
- 
- PSRCS=		\
- 		Parser/acceler.c \
-@@ -597,6 +600,7 @@
- 	esac; \
- 	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- 		_TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
-+		_PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \
- 		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
- 
- # Build static library
-@@ -708,15 +712,15 @@
- 
- Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
- 
--Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
-+$(_FIP): Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
- 	$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
- 
--Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
--	./Programs/_freeze_importlib \
-+Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py $(_FIP_FOR_BUILD)
-+	./$(_FIP_FOR_BUILD) \
- 		$(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h
- 
--Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
--	./Programs/_freeze_importlib \
-+Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(_FIP_FOR_BUILD)
-+	./$(_FIP_FOR_BUILD) \
- 		$(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
- 
- 
-@@ -777,9 +781,9 @@
- 
- $(IO_OBJS): $(IO_H)
- 
--$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
-+$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN_FOR_BUILD)
- 		@$(MKDIR_P) Include
--		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
-+		$(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
- $(GRAMMAR_C): $(GRAMMAR_H)
- 		touch $(GRAMMAR_C)
- 
-@@ -1415,6 +1419,7 @@
- # Install the dynamically loadable modules
- # This goes into $(exec_prefix)
- sharedinstall: sharedmods
-+	_PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \
- 	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
- 	   	--prefix=$(prefix) \
- 		--install-scripts=$(BINDIR) \
---- Python-3.5.1/Modules/socketmodule.c.orig	2015-12-07 01:39:10.000000000 +0000
-+++ Python-3.5.1/Modules/socketmodule.c	2016-04-23 12:30:40.854961004 +0000
-@@ -1313,7 +1313,7 @@
-     }
- #endif
- 
--#ifdef AF_CAN
-+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
-     case AF_CAN:
-     {
-         struct sockaddr_can *a = (struct sockaddr_can *)addr;
-@@ -1810,7 +1810,7 @@
-     }
- #endif
- 
--#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM)
-+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM)
-     case AF_CAN:
-         switch (s->sock_proto) {
-         case CAN_RAW:
-@@ -2017,7 +2017,7 @@
-     }
- #endif
- 
--#ifdef AF_CAN
-+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
-     case AF_CAN:
-     {
-         *len_ret = sizeof (struct sockaddr_can);
-@@ -6298,7 +6298,7 @@
-     PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
- #endif
- 
--#ifdef AF_CAN
-+#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
-     /* Controller Area Network */
-     PyModule_AddIntMacro(m, AF_CAN);
- #endif
---- Python-3.5.1/setup.py.orig	2015-12-07 01:39:11.000000000 +0000
-+++ Python-3.5.1/setup.py	2016-04-23 15:59:20.902683131 +0000
-@@ -1294,7 +1294,13 @@
-         panel_library = 'panel'
-         if curses_library == 'ncursesw':
-             curses_defines.append(('HAVE_NCURSESW', '1'))
--            curses_includes.append('/usr/include/ncursesw')
-+            cflags = sysconfig.get_config_var('CFLAGS')
-+            m = re.search(r'-isysroot\s+(\S+)', cflags)
-+            if m is None:
-+                sysroot = '/usr'
-+            else:
-+                sysroot = m.group(1)
-+            curses_includes.append(sysroot + '/include/ncursesw')
-             # Bug 1464056: If _curses.so links with ncursesw,
-             # _curses_panel.so must link with panelw.
-             panel_library = 'panelw'
diff --git a/patches/alsa-lib-1.1.4.1.local.patch b/patches/alsa-lib-1.1.4.1.local.patch
deleted file mode 100644
index 3171801..0000000
--- a/patches/alsa-lib-1.1.4.1.local.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-diff -ru alsa-lib-1.1.4.1.orig/include/asoundlib-head.h alsa-lib-1.1.4.1/include/asoundlib-head.h
---- alsa-lib-1.1.4.1.orig/include/asoundlib-head.h	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/include/asoundlib-head.h	2017-08-08 21:10:17.989795195 +0200
-@@ -35,6 +35,6 @@
- #include <string.h>
- #include <fcntl.h>
- #include <assert.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <errno.h>
- #include <stdarg.h>
-diff -ru alsa-lib-1.1.4.1.orig/include/local.h alsa-lib-1.1.4.1/include/local.h
---- alsa-lib-1.1.4.1.orig/include/local.h	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/include/local.h	2017-08-07 19:47:39.843855153 +0200
-@@ -47,7 +47,7 @@
- #error Header defining endianness not defined
- #endif
- #include <stdarg.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/types.h>
- #include <errno.h>
- #if defined(__linux__)
-@@ -254,8 +254,10 @@
- /*
-  */
- #define HAVE_GNU_LD
-+#ifndef __midipix__
- #define HAVE_ELF
- #define HAVE_ASM_PREVIOUS_DIRECTIVE
-+#endif
- 
- /* Stolen from libc-symbols.h in GNU glibc */
- 
-diff -ru alsa-lib-1.1.4.1.orig/include/sound/asoc.h alsa-lib-1.1.4.1/include/sound/asoc.h
---- alsa-lib-1.1.4.1.orig/include/sound/asoc.h	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/include/sound/asoc.h	2017-08-07 19:53:15.000000000 +0200
-@@ -300,12 +300,12 @@
- 	__le32 size;            /* in bytes of this structure */
- 	__le32 id;		/* unique ID - - used to match */
- 	__le32 fmt;		/* SND_SOC_DAI_FORMAT_ format value */
--	__u8 clock_gated;	/* 1 if clock can be gated to save power */
--	__u8 invert_bclk;	/* 1 for inverted BCLK, 0 for normal */
--	__u8 invert_fsync;	/* 1 for inverted frame clock, 0 for normal */
--	__u8 bclk_master;	/* 1 for master of BCLK, 0 for slave */
--	__u8 fsync_master;	/* 1 for master of FSYNC, 0 for slave */
--	__u8 mclk_direction;    /* 0 for input, 1 for output */
-+	uint8_t clock_gated;	/* 1 if clock can be gated to save power */
-+	uint8_t invert_bclk;	/* 1 for inverted BCLK, 0 for normal */
-+	uint8_t invert_fsync;	/* 1 for inverted frame clock, 0 for normal */
-+	uint8_t bclk_master;	/* 1 for master of BCLK, 0 for slave */
-+	uint8_t fsync_master;	/* 1 for master of FSYNC, 0 for slave */
-+	uint8_t mclk_direction;    /* 0 for input, 1 for output */
- 	__le16 reserved;	/* for 32bit alignment */
- 	__le32 mclk_rate;	/* MCLK or SYSCLK freqency in Hz */
- 	__le32 bclk_rate;	/* BCLK freqency in Hz */
-diff -ru alsa-lib-1.1.4.1.orig/src/control/control_shm.c alsa-lib-1.1.4.1/src/control/control_shm.c
---- alsa-lib-1.1.4.1.orig/src/control/control_shm.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/control/control_shm.c	2017-08-07 20:05:09.000000000 +0200
-@@ -27,7 +27,7 @@
- #include <fcntl.h>
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <sys/mman.h>
-diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_direct.c alsa-lib-1.1.4.1/src/pcm/pcm_direct.c
---- alsa-lib-1.1.4.1.orig/src/pcm/pcm_direct.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/pcm/pcm_direct.c	2017-08-07 20:04:20.000000000 +0200
-@@ -30,7 +30,7 @@
- #include <grp.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/shm.h>
- #include <sys/sem.h>
- #include <sys/wait.h>
-diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_mmap.c alsa-lib-1.1.4.1/src/pcm/pcm_mmap.c
---- alsa-lib-1.1.4.1.orig/src/pcm/pcm_mmap.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/pcm/pcm_mmap.c	2017-08-07 20:02:18.000000000 +0200
-@@ -22,7 +22,7 @@
- #include <stdio.h>
- #include <malloc.h>
- #include <string.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #ifdef HAVE_SYS_SHM_H
- #include <sys/shm.h>
-diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_share.c alsa-lib-1.1.4.1/src/pcm/pcm_share.c
---- alsa-lib-1.1.4.1.orig/src/pcm/pcm_share.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/pcm/pcm_share.c	2017-08-07 20:02:49.000000000 +0200
-@@ -34,7 +34,7 @@
- #include <signal.h>
- #include <math.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <pthread.h>
- #include "pcm_local.h"
- 
-diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_shm.c alsa-lib-1.1.4.1/src/pcm/pcm_shm.c
---- alsa-lib-1.1.4.1.orig/src/pcm/pcm_shm.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/pcm/pcm_shm.c	2017-08-07 20:02:33.000000000 +0200
-@@ -36,7 +36,7 @@
- #include <sys/ioctl.h>
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/mman.h>
- #include <netinet/in.h>
-diff -ru alsa-lib-1.1.4.1.orig/src/seq/seq.c alsa-lib-1.1.4.1/src/seq/seq.c
---- alsa-lib-1.1.4.1.orig/src/seq/seq.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/seq/seq.c	2017-08-07 20:00:54.000000000 +0200
-@@ -777,7 +777,7 @@
- 
- */
- 
--#include <sys/poll.h>
-+#include <poll.h>
- #include "seq_local.h"
- 
- /****************************************************************************
-diff -ru alsa-lib-1.1.4.1.orig/src/shmarea.c alsa-lib-1.1.4.1/src/shmarea.c
---- alsa-lib-1.1.4.1.orig/src/shmarea.c	2017-06-01 08:27:36.000000000 +0200
-+++ alsa-lib-1.1.4.1/src/shmarea.c	2017-08-07 19:57:44.000000000 +0200
-@@ -27,7 +27,7 @@
- #include <malloc.h>
- #include <string.h>
- #include <errno.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #include <sys/shm.h>
- #include "list.h"
---- alsa-lib-1.1.4.1/include/alsa-symbols.h.orig	2017-06-01 06:27:36.000000000 +0000
-+++ alsa-lib-1.1.4.1/include/alsa-symbols.h	2017-09-13 16:07:27.720000000 +0000
-@@ -45,6 +45,8 @@
- #define use_default_symbol_version(real, name, version) \
-         __asm__ (".weak " ASM_NAME(#name)); \
-         __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real))
-+#elif defined(__midipix__)
-+#define use_default_symbol_version(real, name, version) /* nothing */
- #else
- #define use_default_symbol_version(real, name, version) \
- 	__asm__ (".weak " ASM_NAME(#name)); \
---- alsa-lib-1.1.4.1/src/control/control.c.orig	2017-06-01 06:27:36.000000000 +0000
-+++ alsa-lib-1.1.4.1/src/control/control.c	2017-09-13 16:19:34.464000000 +0000
-@@ -90,7 +90,7 @@
- #include <string.h>
- #include <fcntl.h>
- #include <signal.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <stdbool.h>
- #include "control_local.h"
- 
-@@ -2504,11 +2504,7 @@
-  * \param obj CTL element id/info
-  * \return zero value if no dimensions are defined, otherwise positive value with count of dimensions
-  */
--#ifndef DOXYGEN
--int INTERNAL(snd_ctl_elem_info_get_dimensions)(const snd_ctl_elem_info_t *obj)
--#else
- int snd_ctl_elem_info_get_dimensions(const snd_ctl_elem_info_t *obj)
--#endif
- {
- 	int i;
- 
-@@ -2526,11 +2522,7 @@
-  * \param idx The dimension index
-  * \return zero value if no dimension width is defined, otherwise positive value with with of specified dimension
-  */
--#ifndef DOXYGEN
--int INTERNAL(snd_ctl_elem_info_get_dimension)(const snd_ctl_elem_info_t *obj, unsigned int idx)
--#else
- int snd_ctl_elem_info_get_dimension(const snd_ctl_elem_info_t *obj, unsigned int idx)
--#endif
- {
- 	assert(obj);
- 	if (idx > 3)
---- alsa-lib-1.1.4.1/src/timer/timer.c.orig	2017-06-01 06:27:36.000000000 +0000
-+++ alsa-lib-1.1.4.1/src/timer/timer.c	2017-09-13 16:20:57.728000000 +0000
-@@ -736,11 +736,7 @@
-  * \param params pointer to #snd_timer_params_t structure
-  * \param filter The event filter bits to set
-  */
--#ifndef DOXYGEN
--void INTERNAL(snd_timer_params_set_filter)(snd_timer_params_t * params, unsigned int filter)
--#else
- void snd_timer_params_set_filter(snd_timer_params_t * params, unsigned int filter)
--#endif
- {
- 	assert(params);
- 	params->filter = filter;
---- alsa-lib-1.1.4.1/src/pcm/pcm.c.orig	2017-06-01 06:27:36.000000000 +0000
-+++ alsa-lib-1.1.4.1/src/pcm/pcm.c	2017-09-13 16:21:58.544000000 +0000
-@@ -651,7 +651,7 @@
- #include <stdarg.h>
- #include <signal.h>
- #include <ctype.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/mman.h>
- #include <limits.h>
- #include "pcm_local.h"
---- alsa-lib-1.1.4.1/aserver/aserver.c.orig	2017-06-01 06:27:36.000000000 +0000
-+++ alsa-lib-1.1.4.1/aserver/aserver.c	2017-09-13 16:24:10.272000000 +0000
-@@ -20,7 +20,7 @@
- 
- #include <sys/shm.h>
- #include <sys/socket.h>
--#include <sys/poll.h>
-+#include <poll.h>
- #include <sys/un.h>
- #include <sys/uio.h>
- #include <stdio.h>
-@@ -473,7 +473,7 @@
- 		ctrl->result = snd_pcm_rewind(pcm, ctrl->u.rewind.frames);
- 		break;
- 	case SND_PCM_IOCTL_FORWARD:
--		ctrl->result = snd_pcm_forward(pcm, ctrl->u.forward.frames);
-+		ctrl->result = INTERNAL(snd_pcm_forward(pcm, ctrl->u.forward.frames));
- 		break;
- 	case SNDRV_PCM_IOCTL_LINK:
- 	{
diff --git a/patches/alsa_lib-1.1.4.1.local.patch b/patches/alsa_lib-1.1.4.1.local.patch
new file mode 100644
index 0000000..3171801
--- /dev/null
+++ b/patches/alsa_lib-1.1.4.1.local.patch
@@ -0,0 +1,231 @@
+diff -ru alsa-lib-1.1.4.1.orig/include/asoundlib-head.h alsa-lib-1.1.4.1/include/asoundlib-head.h
+--- alsa-lib-1.1.4.1.orig/include/asoundlib-head.h	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/include/asoundlib-head.h	2017-08-08 21:10:17.989795195 +0200
+@@ -35,6 +35,6 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <assert.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <errno.h>
+ #include <stdarg.h>
+diff -ru alsa-lib-1.1.4.1.orig/include/local.h alsa-lib-1.1.4.1/include/local.h
+--- alsa-lib-1.1.4.1.orig/include/local.h	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/include/local.h	2017-08-07 19:47:39.843855153 +0200
+@@ -47,7 +47,7 @@
+ #error Header defining endianness not defined
+ #endif
+ #include <stdarg.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/types.h>
+ #include <errno.h>
+ #if defined(__linux__)
+@@ -254,8 +254,10 @@
+ /*
+  */
+ #define HAVE_GNU_LD
++#ifndef __midipix__
+ #define HAVE_ELF
+ #define HAVE_ASM_PREVIOUS_DIRECTIVE
++#endif
+ 
+ /* Stolen from libc-symbols.h in GNU glibc */
+ 
+diff -ru alsa-lib-1.1.4.1.orig/include/sound/asoc.h alsa-lib-1.1.4.1/include/sound/asoc.h
+--- alsa-lib-1.1.4.1.orig/include/sound/asoc.h	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/include/sound/asoc.h	2017-08-07 19:53:15.000000000 +0200
+@@ -300,12 +300,12 @@
+ 	__le32 size;            /* in bytes of this structure */
+ 	__le32 id;		/* unique ID - - used to match */
+ 	__le32 fmt;		/* SND_SOC_DAI_FORMAT_ format value */
+-	__u8 clock_gated;	/* 1 if clock can be gated to save power */
+-	__u8 invert_bclk;	/* 1 for inverted BCLK, 0 for normal */
+-	__u8 invert_fsync;	/* 1 for inverted frame clock, 0 for normal */
+-	__u8 bclk_master;	/* 1 for master of BCLK, 0 for slave */
+-	__u8 fsync_master;	/* 1 for master of FSYNC, 0 for slave */
+-	__u8 mclk_direction;    /* 0 for input, 1 for output */
++	uint8_t clock_gated;	/* 1 if clock can be gated to save power */
++	uint8_t invert_bclk;	/* 1 for inverted BCLK, 0 for normal */
++	uint8_t invert_fsync;	/* 1 for inverted frame clock, 0 for normal */
++	uint8_t bclk_master;	/* 1 for master of BCLK, 0 for slave */
++	uint8_t fsync_master;	/* 1 for master of FSYNC, 0 for slave */
++	uint8_t mclk_direction;    /* 0 for input, 1 for output */
+ 	__le16 reserved;	/* for 32bit alignment */
+ 	__le32 mclk_rate;	/* MCLK or SYSCLK freqency in Hz */
+ 	__le32 bclk_rate;	/* BCLK freqency in Hz */
+diff -ru alsa-lib-1.1.4.1.orig/src/control/control_shm.c alsa-lib-1.1.4.1/src/control/control_shm.c
+--- alsa-lib-1.1.4.1.orig/src/control/control_shm.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/control/control_shm.c	2017-08-07 20:05:09.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <fcntl.h>
+ #include <sys/shm.h>
+ #include <sys/socket.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/un.h>
+ #include <sys/uio.h>
+ #include <sys/mman.h>
+diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_direct.c alsa-lib-1.1.4.1/src/pcm/pcm_direct.c
+--- alsa-lib-1.1.4.1.orig/src/pcm/pcm_direct.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/pcm/pcm_direct.c	2017-08-07 20:04:20.000000000 +0200
+@@ -30,7 +30,7 @@
+ #include <grp.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/shm.h>
+ #include <sys/sem.h>
+ #include <sys/wait.h>
+diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_mmap.c alsa-lib-1.1.4.1/src/pcm/pcm_mmap.c
+--- alsa-lib-1.1.4.1.orig/src/pcm/pcm_mmap.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/pcm/pcm_mmap.c	2017-08-07 20:02:18.000000000 +0200
+@@ -22,7 +22,7 @@
+ #include <stdio.h>
+ #include <malloc.h>
+ #include <string.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #ifdef HAVE_SYS_SHM_H
+ #include <sys/shm.h>
+diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_share.c alsa-lib-1.1.4.1/src/pcm/pcm_share.c
+--- alsa-lib-1.1.4.1.orig/src/pcm/pcm_share.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/pcm/pcm_share.c	2017-08-07 20:02:49.000000000 +0200
+@@ -34,7 +34,7 @@
+ #include <signal.h>
+ #include <math.h>
+ #include <sys/socket.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <pthread.h>
+ #include "pcm_local.h"
+ 
+diff -ru alsa-lib-1.1.4.1.orig/src/pcm/pcm_shm.c alsa-lib-1.1.4.1/src/pcm/pcm_shm.c
+--- alsa-lib-1.1.4.1.orig/src/pcm/pcm_shm.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/pcm/pcm_shm.c	2017-08-07 20:02:33.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/shm.h>
+ #include <sys/socket.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/un.h>
+ #include <sys/mman.h>
+ #include <netinet/in.h>
+diff -ru alsa-lib-1.1.4.1.orig/src/seq/seq.c alsa-lib-1.1.4.1/src/seq/seq.c
+--- alsa-lib-1.1.4.1.orig/src/seq/seq.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/seq/seq.c	2017-08-07 20:00:54.000000000 +0200
+@@ -777,7 +777,7 @@
+ 
+ */
+ 
+-#include <sys/poll.h>
++#include <poll.h>
+ #include "seq_local.h"
+ 
+ /****************************************************************************
+diff -ru alsa-lib-1.1.4.1.orig/src/shmarea.c alsa-lib-1.1.4.1/src/shmarea.c
+--- alsa-lib-1.1.4.1.orig/src/shmarea.c	2017-06-01 08:27:36.000000000 +0200
++++ alsa-lib-1.1.4.1/src/shmarea.c	2017-08-07 19:57:44.000000000 +0200
+@@ -27,7 +27,7 @@
+ #include <malloc.h>
+ #include <string.h>
+ #include <errno.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #include <sys/shm.h>
+ #include "list.h"
+--- alsa-lib-1.1.4.1/include/alsa-symbols.h.orig	2017-06-01 06:27:36.000000000 +0000
++++ alsa-lib-1.1.4.1/include/alsa-symbols.h	2017-09-13 16:07:27.720000000 +0000
+@@ -45,6 +45,8 @@
+ #define use_default_symbol_version(real, name, version) \
+         __asm__ (".weak " ASM_NAME(#name)); \
+         __asm__ (ASM_NAME(#name) " = " ASM_NAME(#real))
++#elif defined(__midipix__)
++#define use_default_symbol_version(real, name, version) /* nothing */
+ #else
+ #define use_default_symbol_version(real, name, version) \
+ 	__asm__ (".weak " ASM_NAME(#name)); \
+--- alsa-lib-1.1.4.1/src/control/control.c.orig	2017-06-01 06:27:36.000000000 +0000
++++ alsa-lib-1.1.4.1/src/control/control.c	2017-09-13 16:19:34.464000000 +0000
+@@ -90,7 +90,7 @@
+ #include <string.h>
+ #include <fcntl.h>
+ #include <signal.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <stdbool.h>
+ #include "control_local.h"
+ 
+@@ -2504,11 +2504,7 @@
+  * \param obj CTL element id/info
+  * \return zero value if no dimensions are defined, otherwise positive value with count of dimensions
+  */
+-#ifndef DOXYGEN
+-int INTERNAL(snd_ctl_elem_info_get_dimensions)(const snd_ctl_elem_info_t *obj)
+-#else
+ int snd_ctl_elem_info_get_dimensions(const snd_ctl_elem_info_t *obj)
+-#endif
+ {
+ 	int i;
+ 
+@@ -2526,11 +2522,7 @@
+  * \param idx The dimension index
+  * \return zero value if no dimension width is defined, otherwise positive value with with of specified dimension
+  */
+-#ifndef DOXYGEN
+-int INTERNAL(snd_ctl_elem_info_get_dimension)(const snd_ctl_elem_info_t *obj, unsigned int idx)
+-#else
+ int snd_ctl_elem_info_get_dimension(const snd_ctl_elem_info_t *obj, unsigned int idx)
+-#endif
+ {
+ 	assert(obj);
+ 	if (idx > 3)
+--- alsa-lib-1.1.4.1/src/timer/timer.c.orig	2017-06-01 06:27:36.000000000 +0000
++++ alsa-lib-1.1.4.1/src/timer/timer.c	2017-09-13 16:20:57.728000000 +0000
+@@ -736,11 +736,7 @@
+  * \param params pointer to #snd_timer_params_t structure
+  * \param filter The event filter bits to set
+  */
+-#ifndef DOXYGEN
+-void INTERNAL(snd_timer_params_set_filter)(snd_timer_params_t * params, unsigned int filter)
+-#else
+ void snd_timer_params_set_filter(snd_timer_params_t * params, unsigned int filter)
+-#endif
+ {
+ 	assert(params);
+ 	params->filter = filter;
+--- alsa-lib-1.1.4.1/src/pcm/pcm.c.orig	2017-06-01 06:27:36.000000000 +0000
++++ alsa-lib-1.1.4.1/src/pcm/pcm.c	2017-09-13 16:21:58.544000000 +0000
+@@ -651,7 +651,7 @@
+ #include <stdarg.h>
+ #include <signal.h>
+ #include <ctype.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #include <limits.h>
+ #include "pcm_local.h"
+--- alsa-lib-1.1.4.1/aserver/aserver.c.orig	2017-06-01 06:27:36.000000000 +0000
++++ alsa-lib-1.1.4.1/aserver/aserver.c	2017-09-13 16:24:10.272000000 +0000
+@@ -20,7 +20,7 @@
+ 
+ #include <sys/shm.h>
+ #include <sys/socket.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/un.h>
+ #include <sys/uio.h>
+ #include <stdio.h>
+@@ -473,7 +473,7 @@
+ 		ctrl->result = snd_pcm_rewind(pcm, ctrl->u.rewind.frames);
+ 		break;
+ 	case SND_PCM_IOCTL_FORWARD:
+-		ctrl->result = snd_pcm_forward(pcm, ctrl->u.forward.frames);
++		ctrl->result = INTERNAL(snd_pcm_forward(pcm, ctrl->u.forward.frames));
+ 		break;
+ 	case SNDRV_PCM_IOCTL_LINK:
+ 	{
diff --git a/patches/apr-util-1.6.0.local.patch b/patches/apr-util-1.6.0.local.patch
deleted file mode 100644
index 0326dfd..0000000
--- a/patches/apr-util-1.6.0.local.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- apr-util-1.6.0/configure.orig	2017-05-04 01:16:59.000000000 +0200
-+++ apr-util-1.6.0/configure	2017-08-03 16:28:21.653082936 +0200
-@@ -20794,10 +20794,10 @@
-       if test "$apu_have_sqlite3" = "1"; then
- 
-   if test "x$LDADD_dbd_sqlite3" = "x"; then
--    test "x$silent" != "xyes" && echo "  setting LDADD_dbd_sqlite3 to \"$sqlite3_LDFLAGS -lsqlite3\""
--    LDADD_dbd_sqlite3="$sqlite3_LDFLAGS -lsqlite3"
-+    test "x$silent" != "xyes" && echo "  setting LDADD_dbd_sqlite3 to \"$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1\""
-+    LDADD_dbd_sqlite3="$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1"
-   else
--    apr_addto_bugger="$sqlite3_LDFLAGS -lsqlite3"
-+    apr_addto_bugger="$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1"
-     for i in $apr_addto_bugger; do
-       apr_addto_duplicate="0"
-       for j in $LDADD_dbd_sqlite3; do
---- apr-util-1.6.0/Makefile.in.orig	2017-05-04 01:18:52.000000000 +0200
-+++ apr-util-1.6.0/Makefile.in	2017-08-03 16:28:21.653082936 +0200
-@@ -23,7 +23,7 @@
- INSTALL_DATA = @INSTALL_DATA@
- 
- APU_MODULES = @APU_MODULES@
--LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
-+LINK_MODULE = slibtool $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
- APU_DSO_LIBDIR = @APU_DSO_LIBDIR@
- 
- LT_VERSION = @APU_LTVERSION@
-@@ -85,7 +85,7 @@
- 	list='$(INSTALL_SUBDIRS)'; for i in $$list; do \
- 		( cd $$i ; $(MAKE) DESTDIR=$(DESTDIR) install ); \
- 	done
--	$(LIBTOOL) --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
-+	slibtool --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
- 	$(INSTALL_DATA) aprutil.exp $(DESTDIR)$(libdir)
- 	$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG)
- 
-@@ -98,7 +98,7 @@
- 
- install-modules-yes: $(APU_MODULES)
- 	$(APR_MKDIR) $(DESTDIR)$(APU_DSO_LIBDIR)
--	@for m in $(APU_MODULES); do $(LIBTOOL) $(LT_LTFLAGS) $(LTFLAGS) --mode=install $(INSTALL) -m 755 $$m $(DESTDIR)$(APU_DSO_LIBDIR); done
-+	@for m in $(APU_MODULES); do slibtool $(LT_LTFLAGS) $(LTFLAGS) --mode=install $(INSTALL) -m 756 $$m $(DESTDIR)$(APU_DSO_LIBDIR); done
- 
- exports.c: $(HEADERS)
- 	$(APR_MKEXPORT) $(HEADERS) > $@
diff --git a/patches/apr_util-1.6.0.local.patch b/patches/apr_util-1.6.0.local.patch
new file mode 100644
index 0000000..0326dfd
--- /dev/null
+++ b/patches/apr_util-1.6.0.local.patch
@@ -0,0 +1,45 @@
+--- apr-util-1.6.0/configure.orig	2017-05-04 01:16:59.000000000 +0200
++++ apr-util-1.6.0/configure	2017-08-03 16:28:21.653082936 +0200
+@@ -20794,10 +20794,10 @@
+       if test "$apu_have_sqlite3" = "1"; then
+ 
+   if test "x$LDADD_dbd_sqlite3" = "x"; then
+-    test "x$silent" != "xyes" && echo "  setting LDADD_dbd_sqlite3 to \"$sqlite3_LDFLAGS -lsqlite3\""
+-    LDADD_dbd_sqlite3="$sqlite3_LDFLAGS -lsqlite3"
++    test "x$silent" != "xyes" && echo "  setting LDADD_dbd_sqlite3 to \"$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1\""
++    LDADD_dbd_sqlite3="$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1"
+   else
+-    apr_addto_bugger="$sqlite3_LDFLAGS -lsqlite3"
++    apr_addto_bugger="$sqlite3_LDFLAGS -lsqlite3 -lapr-1 -L/home/vxp/midipix/nt64/debug/tmp/apr-util-1.5.4/.libs -laprutil-1"
+     for i in $apr_addto_bugger; do
+       apr_addto_duplicate="0"
+       for j in $LDADD_dbd_sqlite3; do
+--- apr-util-1.6.0/Makefile.in.orig	2017-05-04 01:18:52.000000000 +0200
++++ apr-util-1.6.0/Makefile.in	2017-08-03 16:28:21.653082936 +0200
+@@ -23,7 +23,7 @@
+ INSTALL_DATA = @INSTALL_DATA@
+ 
+ APU_MODULES = @APU_MODULES@
+-LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
++LINK_MODULE = slibtool $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
+ APU_DSO_LIBDIR = @APU_DSO_LIBDIR@
+ 
+ LT_VERSION = @APU_LTVERSION@
+@@ -85,7 +85,7 @@
+ 	list='$(INSTALL_SUBDIRS)'; for i in $$list; do \
+ 		( cd $$i ; $(MAKE) DESTDIR=$(DESTDIR) install ); \
+ 	done
+-	$(LIBTOOL) --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
++	slibtool --mode=install $(INSTALL) -m 755 $(TARGET_LIB) $(DESTDIR)$(libdir)
+ 	$(INSTALL_DATA) aprutil.exp $(DESTDIR)$(libdir)
+ 	$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG)
+ 
+@@ -98,7 +98,7 @@
+ 
+ install-modules-yes: $(APU_MODULES)
+ 	$(APR_MKDIR) $(DESTDIR)$(APU_DSO_LIBDIR)
+-	@for m in $(APU_MODULES); do $(LIBTOOL) $(LT_LTFLAGS) $(LTFLAGS) --mode=install $(INSTALL) -m 755 $$m $(DESTDIR)$(APU_DSO_LIBDIR); done
++	@for m in $(APU_MODULES); do slibtool $(LT_LTFLAGS) $(LTFLAGS) --mode=install $(INSTALL) -m 756 $$m $(DESTDIR)$(APU_DSO_LIBDIR); done
+ 
+ exports.c: $(HEADERS)
+ 	$(APR_MKEXPORT) $(HEADERS) > $@
diff --git a/patches/gdk-2.36.10.local.patch b/patches/gdk-2.36.10.local.patch
new file mode 100644
index 0000000..3c19f61
--- /dev/null
+++ b/patches/gdk-2.36.10.local.patch
@@ -0,0 +1,12 @@
+diff -ru gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in gdk-pixbuf-2.36.10/thumbnailer/Makefile.in
+--- gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in	2017-09-11 13:00:44.000000000 +0200
++++ gdk-pixbuf-2.36.10/thumbnailer/Makefile.in	2017-09-15 20:57:24.196896220 +0200
+@@ -453,7 +453,7 @@
+ 	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GDK_PIXBUF_API_VERSION).la
+ 
+ thumbnailerdir = $(datadir)/thumbnailers/
+-thumbnailer_DATA = gdk-pixbuf-thumbnailer.thumbnailer
++thumbnailer_DATA = 
+ EXTRA_DIST = gdk-pixbuf-thumbnailer.thumbnailer.in
+ CLEANFILES = $(thumbnailer_DATA)
+ all: all-am
diff --git a/patches/gdk-pixbuf-2.36.10.local.patch b/patches/gdk-pixbuf-2.36.10.local.patch
deleted file mode 100644
index 3c19f61..0000000
--- a/patches/gdk-pixbuf-2.36.10.local.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in gdk-pixbuf-2.36.10/thumbnailer/Makefile.in
---- gdk-pixbuf-2.36.10.orig/thumbnailer/Makefile.in	2017-09-11 13:00:44.000000000 +0200
-+++ gdk-pixbuf-2.36.10/thumbnailer/Makefile.in	2017-09-15 20:57:24.196896220 +0200
-@@ -453,7 +453,7 @@
- 	$(top_builddir)/gdk-pixbuf/libgdk_pixbuf-$(GDK_PIXBUF_API_VERSION).la
- 
- thumbnailerdir = $(datadir)/thumbnailers/
--thumbnailer_DATA = gdk-pixbuf-thumbnailer.thumbnailer
-+thumbnailer_DATA = 
- EXTRA_DIST = gdk-pixbuf-thumbnailer.thumbnailer.in
- CLEANFILES = $(thumbnailer_DATA)
- all: all-am
diff --git a/patches/geoip-api-c_pre.local.patch b/patches/geoip-api-c_pre.local.patch
deleted file mode 100644
index c2319bf..0000000
--- a/patches/geoip-api-c_pre.local.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- geoip-api-c/bootstrap.orig	2017-02-11 15:15:17.545489844 +0000
-+++ geoip-api-c/bootstrap	2017-02-11 15:17:36.181821782 +0000
-@@ -2,7 +2,7 @@
- 
- # make sure  to use the installed libtool
- rm -f ltmain.sh
--autoreconf -fiv
-+autoreconf -iv
- 
- ###################################################
- # the steps below may help with outdated toolsets
diff --git a/patches/geoip_pre.local.patch b/patches/geoip_pre.local.patch
new file mode 100644
index 0000000..c2319bf
--- /dev/null
+++ b/patches/geoip_pre.local.patch
@@ -0,0 +1,11 @@
+--- geoip-api-c/bootstrap.orig	2017-02-11 15:15:17.545489844 +0000
++++ geoip-api-c/bootstrap	2017-02-11 15:17:36.181821782 +0000
+@@ -2,7 +2,7 @@
+ 
+ # make sure  to use the installed libtool
+ rm -f ltmain.sh
+-autoreconf -fiv
++autoreconf -iv
+ 
+ ###################################################
+ # the steps below may help with outdated toolsets
diff --git a/patches/gtk+-2.24.31.local.patch b/patches/gtk+-2.24.31.local.patch
deleted file mode 100644
index 050f26c..0000000
--- a/patches/gtk+-2.24.31.local.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-diff -ru gtk+-2.24.31.orig/gtk/gtksettings.c gtk+-2.24.31/gtk/gtksettings.c
---- gtk+-2.24.31.orig/gtk/gtksettings.c	2015-12-28 16:42:28.000000000 +0100
-+++ gtk+-2.24.31/gtk/gtksettings.c	2017-10-20 00:12:56.784947298 +0200
-@@ -32,7 +32,7 @@
- 
- #ifdef GDK_WINDOWING_X11
- #include "x11/gdkx.h"
--#include <pango/pangofc-fontmap.h>
-+#include <pango/pango-fontmap.h>
- #endif
- 
- #ifdef GDK_WINDOWING_QUARTZ
-@@ -2354,13 +2354,14 @@
-       gboolean update_needed = FALSE;
- 
-       /* bug 547680 */
-+#ifndef __midipix__
-       if (PANGO_IS_FC_FONT_MAP (fontmap) && !FcConfigUptoDate (NULL))
- 	{
- 	  pango_fc_font_map_cache_clear (PANGO_FC_FONT_MAP (fontmap));
- 	  if (FcInitReinitialize ())
- 	    update_needed = TRUE;
- 	}
--
-+#endif
-       last_update_timestamp = timestamp;
-       last_update_needed = update_needed;
-     }
-diff -ru gtk+-2.24.31.orig/gtk/Makefile.in gtk+-2.24.31/gtk/Makefile.in
---- gtk+-2.24.31.orig/gtk/Makefile.in	2016-09-09 21:33:09.000000000 +0200
-+++ gtk+-2.24.31/gtk/Makefile.in	2017-10-20 00:08:05.310575203 +0200
-@@ -1937,7 +1937,7 @@
- libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
- libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
- libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
--libgtk_x11_2_0_la_LIBADD = $(libadd)
-+libgtk_x11_2_0_la_LIBADD = $(libadd) -latk-1.0
- libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
- libgtk_quartz_2_0_la_LIBADD = $(libadd)
- libgtk_directfb_2_0_la_LIBADD = $(libadd)
-diff -ru gtk+-2.24.31.orig/Makefile.in gtk+-2.24.31/Makefile.in
---- gtk+-2.24.31.orig/Makefile.in	2016-09-09 21:33:07.000000000 +0200
-+++ gtk+-2.24.31/Makefile.in	2017-10-20 00:07:42.010704831 +0200
-@@ -564,7 +564,7 @@
- 	|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
- 	&& DISPLAY=:$$XID && export DISPLAY
- 
--SRC_SUBDIRS = gdk gtk modules demos tests perf
-+SRC_SUBDIRS = gdk gtk modules perf
- SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
- 
- # require automake 1.4
-
diff --git a/patches/gtk2-2.24.31.local.patch b/patches/gtk2-2.24.31.local.patch
new file mode 100644
index 0000000..050f26c
--- /dev/null
+++ b/patches/gtk2-2.24.31.local.patch
@@ -0,0 +1,53 @@
+diff -ru gtk+-2.24.31.orig/gtk/gtksettings.c gtk+-2.24.31/gtk/gtksettings.c
+--- gtk+-2.24.31.orig/gtk/gtksettings.c	2015-12-28 16:42:28.000000000 +0100
++++ gtk+-2.24.31/gtk/gtksettings.c	2017-10-20 00:12:56.784947298 +0200
+@@ -32,7 +32,7 @@
+ 
+ #ifdef GDK_WINDOWING_X11
+ #include "x11/gdkx.h"
+-#include <pango/pangofc-fontmap.h>
++#include <pango/pango-fontmap.h>
+ #endif
+ 
+ #ifdef GDK_WINDOWING_QUARTZ
+@@ -2354,13 +2354,14 @@
+       gboolean update_needed = FALSE;
+ 
+       /* bug 547680 */
++#ifndef __midipix__
+       if (PANGO_IS_FC_FONT_MAP (fontmap) && !FcConfigUptoDate (NULL))
+ 	{
+ 	  pango_fc_font_map_cache_clear (PANGO_FC_FONT_MAP (fontmap));
+ 	  if (FcInitReinitialize ())
+ 	    update_needed = TRUE;
+ 	}
+-
++#endif
+       last_update_timestamp = timestamp;
+       last_update_needed = update_needed;
+     }
+diff -ru gtk+-2.24.31.orig/gtk/Makefile.in gtk+-2.24.31/gtk/Makefile.in
+--- gtk+-2.24.31.orig/gtk/Makefile.in	2016-09-09 21:33:09.000000000 +0200
++++ gtk+-2.24.31/gtk/Makefile.in	2017-10-20 00:08:05.310575203 +0200
+@@ -1937,7 +1937,7 @@
+ libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
+ libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
+ libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
+-libgtk_x11_2_0_la_LIBADD = $(libadd)
++libgtk_x11_2_0_la_LIBADD = $(libadd) -latk-1.0
+ libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
+ libgtk_quartz_2_0_la_LIBADD = $(libadd)
+ libgtk_directfb_2_0_la_LIBADD = $(libadd)
+diff -ru gtk+-2.24.31.orig/Makefile.in gtk+-2.24.31/Makefile.in
+--- gtk+-2.24.31.orig/Makefile.in	2016-09-09 21:33:07.000000000 +0200
++++ gtk+-2.24.31/Makefile.in	2017-10-20 00:07:42.010704831 +0200
+@@ -564,7 +564,7 @@
+ 	|| { echo "Gtk+Tests:ERROR: Failed to start Xvfb environment for X11 target tests."; exit 1; } \
+ 	&& DISPLAY=:$$XID && export DISPLAY
+ 
+-SRC_SUBDIRS = gdk gtk modules demos tests perf
++SRC_SUBDIRS = gdk gtk modules perf
+ SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
+ 
+ # require automake 1.4
+
diff --git a/patches/libgpg-error-1.25.local.patch b/patches/libgpg-error-1.25.local.patch
deleted file mode 100644
index 5da8699..0000000
--- a/patches/libgpg-error-1.25.local.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h.orig	2016-12-17 21:12:38.401523100 +0100
-+++ libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h	2016-12-17 21:12:38.401523100 +0100
-@@ -0,0 +1,23 @@
-+## lock-obj-pub.i686-pc-linux-gnu.h
-+## File created by gen-posix-lock-obj - DO NOT EDIT
-+## To be included by mkheader into gpg-error.h
-+
-+typedef struct
-+{
-+  long _vers;
-+  union {
-+    volatile char _priv[24];
-+    long _x_align;
-+    long *_xp_align;
-+  } u;
-+} gpgrt_lock_t;
-+
-+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0}}}
-+##
-+## Local Variables:
-+## mode: c
-+## buffer-read-only: t
-+## End:
-+##
---- libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h.orig	2016-12-17 21:12:38.401523100 +0100
-+++ libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h	2016-12-17 21:12:38.401523100 +0100
-@@ -0,0 +1,25 @@
-+## lock-obj-pub.x86_64-pc-linux-musl.h
-+## File created by gen-posix-lock-obj - DO NOT EDIT
-+## To be included by mkheader into gpg-error.h
-+
-+typedef struct
-+{
-+  long _vers;
-+  union {
-+    volatile char _priv[40];
-+    long _x_align;
-+    long *_xp_align;
-+  } u;
-+} gpgrt_lock_t;
-+
-+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0, \
-+                                    0,0,0,0,0,0,0,0}}}
-+##
-+## Local Variables:
-+## mode: c
-+## buffer-read-only: t
-+## End:
-+##
diff --git a/patches/libgpg_error-1.25.local.patch b/patches/libgpg_error-1.25.local.patch
new file mode 100644
index 0000000..5da8699
--- /dev/null
+++ b/patches/libgpg_error-1.25.local.patch
@@ -0,0 +1,54 @@
+--- libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h.orig	2016-12-17 21:12:38.401523100 +0100
++++ libgpg-error-1.25/src/syscfg/lock-obj-pub.i686-nt64-midipix.h	2016-12-17 21:12:38.401523100 +0100
+@@ -0,0 +1,23 @@
++## lock-obj-pub.i686-pc-linux-gnu.h
++## File created by gen-posix-lock-obj - DO NOT EDIT
++## To be included by mkheader into gpg-error.h
++
++typedef struct
++{
++  long _vers;
++  union {
++    volatile char _priv[24];
++    long _x_align;
++    long *_xp_align;
++  } u;
++} gpgrt_lock_t;
++
++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0}}}
++##
++## Local Variables:
++## mode: c
++## buffer-read-only: t
++## End:
++##
+--- libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h.orig	2016-12-17 21:12:38.401523100 +0100
++++ libgpg-error-1.25/src/syscfg/lock-obj-pub.x86_64-nt64-midipix.h	2016-12-17 21:12:38.401523100 +0100
+@@ -0,0 +1,25 @@
++## lock-obj-pub.x86_64-pc-linux-musl.h
++## File created by gen-posix-lock-obj - DO NOT EDIT
++## To be included by mkheader into gpg-error.h
++
++typedef struct
++{
++  long _vers;
++  union {
++    volatile char _priv[40];
++    long _x_align;
++    long *_xp_align;
++  } u;
++} gpgrt_lock_t;
++
++#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0, \
++                                    0,0,0,0,0,0,0,0}}}
++##
++## Local Variables:
++## mode: c
++## buffer-read-only: t
++## End:
++##
diff --git a/patches/lynx-2.8.8rel.2.local.patch b/patches/lynx-2.8.8rel.2.local.patch
new file mode 100644
index 0000000..89b964d
--- /dev/null
+++ b/patches/lynx-2.8.8rel.2.local.patch
@@ -0,0 +1,11 @@
+--- lynx-2-8-8/WWW/Library/Implementation/HTTP.c.orig	2017-02-09 21:20:27 UTC
++++ lynx-2-8-8/WWW/Library/Implementation/HTTP.c
+@@ -721,7 +722,7 @@ static int HTLoadHTTP(const char *arg,
+ #elif SSLEAY_VERSION_NUMBER >= 0x0900
+ #ifndef USE_NSS_COMPAT_INCL
+ 	if (!try_tls) {
+-	    handle->options |= SSL_OP_NO_TLSv1;
++	    SSL_set_options(handle, SSL_OP_NO_TLSv1);
+ #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
+ 	} else {
+ 	    int ret = (int) SSL_set_tlsext_host_name(handle, ssl_host);
diff --git a/patches/lynx.local.patch b/patches/lynx.local.patch
deleted file mode 100644
index 89b964d..0000000
--- a/patches/lynx.local.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- lynx-2-8-8/WWW/Library/Implementation/HTTP.c.orig	2017-02-09 21:20:27 UTC
-+++ lynx-2-8-8/WWW/Library/Implementation/HTTP.c
-@@ -721,7 +722,7 @@ static int HTLoadHTTP(const char *arg,
- #elif SSLEAY_VERSION_NUMBER >= 0x0900
- #ifndef USE_NSS_COMPAT_INCL
- 	if (!try_tls) {
--	    handle->options |= SSL_OP_NO_TLSv1;
-+	    SSL_set_options(handle, SSL_OP_NO_TLSv1);
- #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
- 	} else {
- 	    int ret = (int) SSL_set_tlsext_host_name(handle, ssl_host);
diff --git a/patches/man-db-2.7.6.1.local.patch b/patches/man-db-2.7.6.1.local.patch
deleted file mode 100644
index 8f762e7..0000000
--- a/patches/man-db-2.7.6.1.local.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff -ru man-db-2.7.5.orig/lib/Makefile.am man-db-2.7.5/lib/Makefile.am
---- man-db-2.7.5.orig/lib/Makefile.am	2014-09-29 13:45:14.000000000 +0200
-+++ man-db-2.7.5/lib/Makefile.am	2017-01-19 01:29:38.000000000 +0100
-@@ -60,7 +60,7 @@
- 	xregcomp.h
- 
- libman_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS) \
--	$(LIBCOMPRESS) @LTLIBINTL@
-+	$(LIBCOMPRESS) -lpipeline @LTLIBINTL@
- 
- libman_la_LDFLAGS = \
- 	-avoid-version -release $(VERSION) -rpath $(pkglibdir) \
-diff -ru man-db-2.7.5.orig/lib/Makefile.in man-db-2.7.5/lib/Makefile.in
---- man-db-2.7.5.orig/lib/Makefile.in	2017-01-19 02:49:51.105766753 +0100
-+++ man-db-2.7.5/lib/Makefile.in	2017-01-19 02:48:18.390682563 +0100
-@@ -1447,7 +1447,7 @@
- 	xregcomp.h
- 
- libman_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS) \
--	$(LIBCOMPRESS) @LTLIBINTL@
-+	$(LIBCOMPRESS) -lpipeline @LTLIBINTL@
- 
- libman_la_LDFLAGS = \
- 	-avoid-version -release $(VERSION) -rpath $(pkglibdir) \
-diff -ru man-db-2.7.5.orig/libdb/db_lookup.c man-db-2.7.5/libdb/db_lookup.c
---- man-db-2.7.5.orig/libdb/db_lookup.c	2015-08-02 12:31:55.000000000 +0200
-+++ man-db-2.7.5/libdb/db_lookup.c	2017-01-19 02:35:48.000000000 +0100
-@@ -50,6 +50,8 @@
- #include "mydbm.h"
- #include "db_storage.h"
- 
-+char *database;
-+
- /* If using ndbm or BTREE, copy the static storage before doing anything
-  * interesting with it. If using gdbm, firstkey and nextkey need to copy the
-  * storage because our ordered wrappers keep an effectively static copy.
-diff -ru man-db-2.7.5.orig/libdb/db_ver.c man-db-2.7.5/libdb/db_ver.c
---- man-db-2.7.5.orig/libdb/db_ver.c	2015-04-08 11:23:25.000000000 +0200
-+++ man-db-2.7.5/libdb/db_ver.c	2017-01-19 02:35:30.000000000 +0100
-@@ -37,6 +37,8 @@
- 
- #include "mydbm.h"
- 
-+char *database;
-+
- int dbver_rd (MYDBM_FILE dbfile)
- {
- 	datum key, content;
---- man-db-2.7.6.1/src/Makefile.in.orig	2016-12-12 13:43:52.000000000 +0100
-+++ man-db-2.7.6.1/src/Makefile.in	2017-01-19 18:02:40.709802500 +0100
-@@ -2210,11 +2210,6 @@
- all-am: apropos$(EXEEXT)
- 
- install-exec-hook:
--	if [ "$(man_owner)" ] && [ "$(man_mode)" = 6755 ]; then \
--		chown $(man_owner):$(man_owner) \
--			$(DESTDIR)$(bindir)/$(TRANS_MAN) \
--			$(DESTDIR)$(bindir)/$(TRANS_MANDB); \
--	fi
- 	chmod $(man_mode) \
- 		$(DESTDIR)$(bindir)/$(TRANS_MAN) \
- 		$(DESTDIR)$(bindir)/$(TRANS_MANDB)
diff --git a/patches/man_db-2.7.6.1.local.patch b/patches/man_db-2.7.6.1.local.patch
new file mode 100644
index 0000000..8f762e7
--- /dev/null
+++ b/patches/man_db-2.7.6.1.local.patch
@@ -0,0 +1,62 @@
+diff -ru man-db-2.7.5.orig/lib/Makefile.am man-db-2.7.5/lib/Makefile.am
+--- man-db-2.7.5.orig/lib/Makefile.am	2014-09-29 13:45:14.000000000 +0200
++++ man-db-2.7.5/lib/Makefile.am	2017-01-19 01:29:38.000000000 +0100
+@@ -60,7 +60,7 @@
+ 	xregcomp.h
+ 
+ libman_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS) \
+-	$(LIBCOMPRESS) @LTLIBINTL@
++	$(LIBCOMPRESS) -lpipeline @LTLIBINTL@
+ 
+ libman_la_LDFLAGS = \
+ 	-avoid-version -release $(VERSION) -rpath $(pkglibdir) \
+diff -ru man-db-2.7.5.orig/lib/Makefile.in man-db-2.7.5/lib/Makefile.in
+--- man-db-2.7.5.orig/lib/Makefile.in	2017-01-19 02:49:51.105766753 +0100
++++ man-db-2.7.5/lib/Makefile.in	2017-01-19 02:48:18.390682563 +0100
+@@ -1447,7 +1447,7 @@
+ 	xregcomp.h
+ 
+ libman_la_LIBADD = ../gnulib/lib/libgnu.la $(LTLIBOBJS) \
+-	$(LIBCOMPRESS) @LTLIBINTL@
++	$(LIBCOMPRESS) -lpipeline @LTLIBINTL@
+ 
+ libman_la_LDFLAGS = \
+ 	-avoid-version -release $(VERSION) -rpath $(pkglibdir) \
+diff -ru man-db-2.7.5.orig/libdb/db_lookup.c man-db-2.7.5/libdb/db_lookup.c
+--- man-db-2.7.5.orig/libdb/db_lookup.c	2015-08-02 12:31:55.000000000 +0200
++++ man-db-2.7.5/libdb/db_lookup.c	2017-01-19 02:35:48.000000000 +0100
+@@ -50,6 +50,8 @@
+ #include "mydbm.h"
+ #include "db_storage.h"
+ 
++char *database;
++
+ /* If using ndbm or BTREE, copy the static storage before doing anything
+  * interesting with it. If using gdbm, firstkey and nextkey need to copy the
+  * storage because our ordered wrappers keep an effectively static copy.
+diff -ru man-db-2.7.5.orig/libdb/db_ver.c man-db-2.7.5/libdb/db_ver.c
+--- man-db-2.7.5.orig/libdb/db_ver.c	2015-04-08 11:23:25.000000000 +0200
++++ man-db-2.7.5/libdb/db_ver.c	2017-01-19 02:35:30.000000000 +0100
+@@ -37,6 +37,8 @@
+ 
+ #include "mydbm.h"
+ 
++char *database;
++
+ int dbver_rd (MYDBM_FILE dbfile)
+ {
+ 	datum key, content;
+--- man-db-2.7.6.1/src/Makefile.in.orig	2016-12-12 13:43:52.000000000 +0100
++++ man-db-2.7.6.1/src/Makefile.in	2017-01-19 18:02:40.709802500 +0100
+@@ -2210,11 +2210,6 @@
+ all-am: apropos$(EXEEXT)
+ 
+ install-exec-hook:
+-	if [ "$(man_owner)" ] && [ "$(man_mode)" = 6755 ]; then \
+-		chown $(man_owner):$(man_owner) \
+-			$(DESTDIR)$(bindir)/$(TRANS_MAN) \
+-			$(DESTDIR)$(bindir)/$(TRANS_MANDB); \
+-	fi
+ 	chmod $(man_mode) \
+ 		$(DESTDIR)$(bindir)/$(TRANS_MAN) \
+ 		$(DESTDIR)$(bindir)/$(TRANS_MANDB)
diff --git a/patches/ncursestw-6.0.local.patch b/patches/ncursestw-6.0.local.patch
new file mode 120000
index 0000000..59cdfd8
--- /dev/null
+++ b/patches/ncursestw-6.0.local.patch
@@ -0,0 +1 @@
+ncurses-6.0.local.patch
\ No newline at end of file
diff --git a/patches/ncursesw-6.0.local.patch b/patches/ncursesw-6.0.local.patch
new file mode 120000
index 0000000..59cdfd8
--- /dev/null
+++ b/patches/ncursesw-6.0.local.patch
@@ -0,0 +1 @@
+ncurses-6.0.local.patch
\ No newline at end of file
diff --git a/patches/pkg-cron.git.local.patch b/patches/pkg-cron.git.local.patch
deleted file mode 100644
index 4d6bc53..0000000
--- a/patches/pkg-cron.git.local.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- pkg-cron.git/Makefile.orig	2016-07-11 19:06:33.212362869 +0000
-+++ pkg-cron.git/Makefile	2016-09-11 20:37:42.714987721 +0000
-@@ -79,7 +79,7 @@
- #DEFS		=	-D_BSD_SIGNALS -Dconst=
- #<<the name of the BSD-like install program>>
- #INSTALL = installbsd
--INSTALL = install -s
-+INSTALL = install $(INSTALLFLAGS)
- #<<any special load flags>>
- # LDFLAGS		=	-s
- # Let install do the strip
-@@ -118,8 +118,8 @@
- 			$(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS)
- 
- install		:	all
--			$(INSTALL) -c -m  755 -o root cron    $(DESTSBIN)/
--			$(INSTALL) -c -m 4755 -o root crontab $(DESTBIN)/
-+			$(INSTALL) -c -m  755 cron    $(DESTSBIN)/
-+			$(INSTALL) -c -m 4755 crontab $(DESTBIN)/
- 			sh putman.sh crontab.1 $(DESTMAN)
- 			sh putman.sh cron.8    $(DESTMAN)
- 			sh putman.sh crontab.5 $(DESTMAN)
diff --git a/patches/pkg_cron.local.patch b/patches/pkg_cron.local.patch
new file mode 100644
index 0000000..4d6bc53
--- /dev/null
+++ b/patches/pkg_cron.local.patch
@@ -0,0 +1,22 @@
+--- pkg-cron.git/Makefile.orig	2016-07-11 19:06:33.212362869 +0000
++++ pkg-cron.git/Makefile	2016-09-11 20:37:42.714987721 +0000
+@@ -79,7 +79,7 @@
+ #DEFS		=	-D_BSD_SIGNALS -Dconst=
+ #<<the name of the BSD-like install program>>
+ #INSTALL = installbsd
+-INSTALL = install -s
++INSTALL = install $(INSTALLFLAGS)
+ #<<any special load flags>>
+ # LDFLAGS		=	-s
+ # Let install do the strip
+@@ -118,8 +118,8 @@
+ 			$(CC) $(LDFLAGS) -o crontab $(CRONTAB_OBJ) $(LIBS)
+ 
+ install		:	all
+-			$(INSTALL) -c -m  755 -o root cron    $(DESTSBIN)/
+-			$(INSTALL) -c -m 4755 -o root crontab $(DESTBIN)/
++			$(INSTALL) -c -m  755 cron    $(DESTSBIN)/
++			$(INSTALL) -c -m 4755 crontab $(DESTBIN)/
+ 			sh putman.sh crontab.1 $(DESTMAN)
+ 			sh putman.sh cron.8    $(DESTMAN)
+ 			sh putman.sh crontab.5 $(DESTMAN)
diff --git a/patches/python3-3.5.1.local.patch b/patches/python3-3.5.1.local.patch
new file mode 100644
index 0000000..b96f19e
--- /dev/null
+++ b/patches/python3-3.5.1.local.patch
@@ -0,0 +1,180 @@
+--- Python-3.5.1/configure.ac.orig	2015-12-07 01:39:11.000000000 +0000
++++ Python-3.5.1/configure.ac	2016-04-23 12:49:17.142936229 +0000
+@@ -58,6 +58,15 @@
+ 
+ if test "$cross_compiling" = yes; then
+     AC_MSG_CHECKING([for python interpreter for cross build])
++    AC_MSG_CHECKING(python for build)
++    PYTHON_FOR_BUILD="${PYTHON_FOR_BUILD:-${PWD}/hostpython}"
++    AC_MSG_RESULT($PYTHON_FOR_BUILD)
++    AC_MSG_CHECKING(pgen for build)
++    PGEN_FOR_BUILD="${PGEN_FOR_BUILD:-Parser/hostpgen}"
++    AC_MSG_RESULT($PGEN_FOR_BUILD)
++    AC_MSG_CHECKING(_freeze_importlib for build)
++    _FIP_FOR_BUILD="${_FIP_FOR_BUILD:-Programs/host_freeze_importlib}"
++    AC_MSG_RESULT($_FIP_FOR_BUILD)
+     if test -z "$PYTHON_FOR_BUILD"; then
+         for interp in python$PACKAGE_VERSION python3 python; do
+ 	    which $interp >/dev/null 2>&1 || continue
+@@ -75,9 +84,16 @@
+ elif test "$cross_compiling" = maybe; then
+     AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
+ else
+-    PYTHON_FOR_BUILD='./$(BUILDPYTHON) -E'
++   PYTHON_FOR_BUILD='$(BUILDPYTHON)'
++   PGEN_FOR_BUILD='$(PGEN)'
++   _FIP_FOR_BUILD='$(_FIP)'
+ fi
+ AC_SUBST(PYTHON_FOR_BUILD)
++AC_SUBST(PGEN_FOR_BUILD)
++AC_SUBST(_FIP_FOR_BUILD)
++AC_ARG_VAR(PYTHON_FOR_BUILD,[build system Python])
++AC_ARG_VAR(PGEN_FOR_BUILD,[build system Python pgen])
++AC_ARG_VAR(_FIP_FOR_BUILD,[build system Python _freeze_importlib])
+ 
+ dnl Ensure that if prefix is specified, it does not end in a slash. If
+ dnl it does, we get path names containing '//' which is both ugly and
+@@ -373,6 +389,9 @@
+ 	*-*-cygwin*)
+ 		ac_sys_system=Cygwin
+ 		;;
++	*-*-midipix*)
++		ac_sys_system=Midipix
++		;;
+ 	*)
+ 		# for now, limit cross builds to known configurations
+ 		MACHDEP="unknown"
+@@ -399,6 +418,7 @@
+ 	cygwin*) MACHDEP="cygwin";;
+ 	darwin*) MACHDEP="darwin";;
+ 	irix646) MACHDEP="irix6";;
++	midipix*) MACHDEP="midipix";;
+ 	'')	MACHDEP="unknown";;
+     esac
+ fi
+@@ -406,6 +426,9 @@
+ AC_SUBST(_PYTHON_HOST_PLATFORM)
+ if test "$cross_compiling" = yes; then
+ 	case "$host" in
++	*-*-midipix*)
++		_host_cpu=
++		;;
+ 	*-*-linux*)
+ 		case "$host_cpu" in
+ 		arm*)
+--- Python-3.5.1/Makefile.pre.in.orig	2015-12-07 01:39:09.000000000 +0000
++++ Python-3.5.1/Makefile.pre.in	2016-04-23 12:09:05.162989761 +0000
+@@ -276,6 +276,9 @@
+ ##########################################################################
+ # Parser
+ PGEN=		Parser/pgen$(EXE)
++PGEN_FOR_BUILD=	@PGEN_FOR_BUILD@
++_FIP=		Programs/_freeze_importlib$(EXE)
++_FIP_FOR_BUILD=	@_FIP_FOR_BUILD@
+ 
+ PSRCS=		\
+ 		Parser/acceler.c \
+@@ -597,6 +600,7 @@
+ 	esac; \
+ 	$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
+ 		_TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
++		_PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \
+ 		$(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
+ 
+ # Build static library
+@@ -708,15 +712,15 @@
+ 
+ Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
+ 
+-Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
++$(_FIP): Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
+ 	$(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+ 
+-Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
+-	./Programs/_freeze_importlib \
++Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py $(_FIP_FOR_BUILD)
++	./$(_FIP_FOR_BUILD) \
+ 		$(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h
+ 
+-Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
+-	./Programs/_freeze_importlib \
++Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py $(_FIP_FOR_BUILD)
++	./$(_FIP_FOR_BUILD) \
+ 		$(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
+ 
+ 
+@@ -777,9 +781,9 @@
+ 
+ $(IO_OBJS): $(IO_H)
+ 
+-$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN)
++$(GRAMMAR_H): $(GRAMMAR_INPUT) $(PGEN_FOR_BUILD)
+ 		@$(MKDIR_P) Include
+-		$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
++		$(PGEN_FOR_BUILD) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
+ $(GRAMMAR_C): $(GRAMMAR_H)
+ 		touch $(GRAMMAR_C)
+ 
+@@ -1415,6 +1419,7 @@
+ # Install the dynamically loadable modules
+ # This goes into $(exec_prefix)
+ sharedinstall: sharedmods
++	_PYTHON_HOST_PLATFORM='$(_PYTHON_HOST_PLATFORM)' \
+ 	$(RUNSHARED) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
+ 	   	--prefix=$(prefix) \
+ 		--install-scripts=$(BINDIR) \
+--- Python-3.5.1/Modules/socketmodule.c.orig	2015-12-07 01:39:10.000000000 +0000
++++ Python-3.5.1/Modules/socketmodule.c	2016-04-23 12:30:40.854961004 +0000
+@@ -1313,7 +1313,7 @@
+     }
+ #endif
+ 
+-#ifdef AF_CAN
++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
+     case AF_CAN:
+     {
+         struct sockaddr_can *a = (struct sockaddr_can *)addr;
+@@ -1810,7 +1810,7 @@
+     }
+ #endif
+ 
+-#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM)
++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM)
+     case AF_CAN:
+         switch (s->sock_proto) {
+         case CAN_RAW:
+@@ -2017,7 +2017,7 @@
+     }
+ #endif
+ 
+-#ifdef AF_CAN
++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
+     case AF_CAN:
+     {
+         *len_ret = sizeof (struct sockaddr_can);
+@@ -6298,7 +6298,7 @@
+     PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
+ #endif
+ 
+-#ifdef AF_CAN
++#if defined(HAVE_LINUX_CAN_H) && defined(AF_CAN)
+     /* Controller Area Network */
+     PyModule_AddIntMacro(m, AF_CAN);
+ #endif
+--- Python-3.5.1/setup.py.orig	2015-12-07 01:39:11.000000000 +0000
++++ Python-3.5.1/setup.py	2016-04-23 15:59:20.902683131 +0000
+@@ -1294,7 +1294,13 @@
+         panel_library = 'panel'
+         if curses_library == 'ncursesw':
+             curses_defines.append(('HAVE_NCURSESW', '1'))
+-            curses_includes.append('/usr/include/ncursesw')
++            cflags = sysconfig.get_config_var('CFLAGS')
++            m = re.search(r'-isysroot\s+(\S+)', cflags)
++            if m is None:
++                sysroot = '/usr'
++            else:
++                sysroot = m.group(1)
++            curses_includes.append(sysroot + '/include/ncursesw')
+             # Bug 1464056: If _curses.so links with ncursesw,
+             # _curses_panel.so must link with panelw.
+             panel_library = 'panelw'
diff --git a/patches/xcb-proto-1.12.local.patch b/patches/xcb-proto-1.12.local.patch
deleted file mode 100644
index 9930c12..0000000
--- a/patches/xcb-proto-1.12.local.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001
-From: Thomas Klausner <wiz@NetBSD.org>
-Date: Thu, 19 May 2016 17:30:04 +0200
-Subject: Make whitespace use consistent.
-
-At least python-3.5.x complains about this forcefully.
-
-Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
-Signed-off-by: Uli Schlachter <psychon@znc.in>
-
-diff --git a/xcbgen/align.py b/xcbgen/align.py
-index 5e31838..d4c12ee 100644
---- a/xcbgen/align.py
-+++ b/xcbgen/align.py
-@@ -16,12 +16,12 @@ class Alignment(object):
-         return self.align == other.align and self.offset == other.offset
- 
-     def __str__(self):
--	return "(align=%d, offset=%d)" % (self.align, self.offset)
-+        return "(align=%d, offset=%d)" % (self.align, self.offset)
- 
-     @staticmethod
-     def for_primitive_type(size):
--	# compute the required start_alignment based on the size of the type
--	if size % 8 == 0:
-+        # compute the required start_alignment based on the size of the type
-+        if size % 8 == 0:
-             # do 8-byte primitives require 8-byte alignment in X11?
-             return Alignment(8,0)
-         elif size % 4 == 0:
-@@ -33,7 +33,7 @@ class Alignment(object):
- 
- 
-     def align_after_fixed_size(self, size):
--	new_offset = (self.offset + size) % self.align
-+        new_offset = (self.offset + size) % self.align
-         return Alignment(self.align, new_offset)
- 
- 
-@@ -41,7 +41,7 @@ class Alignment(object):
-         '''
-         Assuming the given external_align, checks whether
-         self is fulfilled for all cases.
--	Returns True if yes, False otherwise.
-+        Returns True if yes, False otherwise.
-         '''
-         if self.align == 1 and self.offset == 0:
-             # alignment 1 with offset 0 is always fulfilled
-@@ -55,9 +55,9 @@ class Alignment(object):
-             # the external align guarantees less alignment -> not guaranteed
-             return False
- 
--	if external_align.align % self.align != 0:
-+        if external_align.align % self.align != 0:
-             # the external align cannot be divided by our align
--	    # -> not guaranteed
-+            # -> not guaranteed
-             # (this can only happen if there are alignments that are not
-             # a power of 2, which is highly discouraged. But better be
-             # safe and check for it)
-@@ -72,7 +72,7 @@ class Alignment(object):
- 
-     def combine_with(self, other):
-         # returns the alignment that is guaranteed when
--	# both, self or other, can happen
-+        # both, self or other, can happen
-         new_align = gcd(self.align, other.align)
-         new_offset_candidate1 = self.offset % new_align
-         new_offset_candidate2 = other.offset % new_align
-@@ -83,8 +83,8 @@ class Alignment(object):
-             new_align = gcd(new_align, offset_diff)
-             new_offset_candidate1 = self.offset % new_align
-             new_offset_candidate2 = other.offset % new_align
--	    assert new_offset_candidate1 == new_offset_candidate2
--	    new_offset = new_offset_candidate1
-+            assert new_offset_candidate1 == new_offset_candidate2
-+            new_offset = new_offset_candidate1
-         # return the result
-         return Alignment(new_align, new_offset)
- 
-@@ -92,44 +92,44 @@ class Alignment(object):
- class AlignmentLog(object):
- 
-     def __init__(self):
--	self.ok_list = []
--	self.fail_list = []
--	self.verbosity = 1
-+        self.ok_list = []
-+        self.fail_list = []
-+        self.verbosity = 1
- 
-     def __str__(self):
--	result = ""
-+        result = ""
- 
--	# output the OK-list
--	for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
--	    stacksize = len(callstack)
-+        # output the OK-list
-+        for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
-+            stacksize = len(callstack)
-             indent = '  ' * stacksize
--	    if self.ok_callstack_is_relevant(callstack):
-+            if self.ok_callstack_is_relevant(callstack):
-                 if field_name is None or field_name == "":
--	            result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
--		        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
--	        else:
--		    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
--		        % (indent, str(field_name), str(type_obj),
--		           indent, str(align_before), str(align_after)))
-+                    result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
-+                        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
-+                else:
-+                    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
-+                        % (indent, str(field_name), str(type_obj),
-+                           indent, str(align_before), str(align_after)))
-                 if self.verbosity >= 1:
--		    result += self.callstack_to_str(indent, callstack)
-+                    result += self.callstack_to_str(indent, callstack)
- 
--	# output the fail-list
--	for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
--	    stacksize = len(callstack)
-+        # output the fail-list
-+        for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
-+            stacksize = len(callstack)
-             indent = '  ' * stacksize
--	    if field_name is None or field_name == "":
--	        result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
--		    % (indent, str(align_before), indent, str(type_obj), indent, reason))
--	    else:
--		result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
--		    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
-+            if field_name is None or field_name == "":
-+                result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
-+                    % (indent, str(align_before), indent, str(type_obj), indent, reason))
-+            else:
-+                result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
-+                    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
- 
-             if self.verbosity >= 1:
--	        result += self.callstack_to_str(indent, callstack)
-+                result += self.callstack_to_str(indent, callstack)
- 
- 
--	return result
-+        return result
- 
- 
-     def callstack_to_str(self, indent, callstack):
-@@ -137,41 +137,41 @@ class AlignmentLog(object):
-         for stack_elem in callstack:
-             result += "\t  %s%s\n" % (indent, str(stack_elem))
-         result += "\t%s]\n" % indent
--	return result
-+        return result
- 
- 
-     def ok_callstack_is_relevant(self, ok_callstack):
-         # determine whether an ok callstack is relevant for logging
--	if self.verbosity >= 2:
--	    return True
-+        if self.verbosity >= 2:
-+            return True
- 
-         # empty callstacks are always relevant
--	if len(ok_callstack) == 0:
-+        if len(ok_callstack) == 0:
-             return True
- 
--	# check whether the ok_callstack is a subset or equal to a fail_callstack
-+        # check whether the ok_callstack is a subset or equal to a fail_callstack
-         for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list:
-             if len(ok_callstack) <= len(fail_callstack):
-                 zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
--		is_subset = all([i == j for i, j in zipped])
--		if is_subset:
-+                is_subset = all([i == j for i, j in zipped])
-+                if is_subset:
-                     return True
- 
-         return False
- 
- 
-     def ok(self, align_before, field_name, type_obj, callstack, align_after):
--	self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
-+        self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
- 
-     def fail(self, align_before, field_name, type_obj, callstack, reason):
--	self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
-+        self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
- 
-     def append(self, other):
--	self.ok_list.extend(other.ok_list)
--	self.fail_list.extend(other.fail_list)
-+        self.ok_list.extend(other.ok_list)
-+        self.fail_list.extend(other.fail_list)
- 
-     def ok_count(self):
--	return len(self.ok_list)
-+        return len(self.ok_list)
- 
- 
- 
--- 
-cgit v0.10.2
-
-From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001
-From: Thomas Klausner <wiz@NetBSD.org>
-Date: Thu, 19 May 2016 17:30:05 +0200
-Subject: print() is a function and needs parentheses.
-
-Fixes build with python-3.x.
-
-Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
-Signed-off-by: Uli Schlachter <psychon@znc.in>
-
-diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
-index c3b5758..b83b119 100644
---- a/xcbgen/xtypes.py
-+++ b/xcbgen/xtypes.py
-@@ -501,7 +501,7 @@ class ComplexType(Type):
-                 int(required_start_align_element.get('align', "4"), 0),
-                 int(required_start_align_element.get('offset', "0"), 0))
-             if verbose_align_log:
--                print "Explicit start-align for %s: %s\n" % (self, self.required_start_align)
-+                print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align))
- 
-     def resolve(self, module):
-         if self.resolved:
-@@ -592,7 +592,7 @@ class ComplexType(Type):
-                 if verbose_align_log:
-                     print ("calc_required_start_align: %s has start-align %s"
-                         % (str(self), str(self.required_start_align)))
--                    print "Details:\n" + str(log)
-+                    print ("Details:\n" + str(log))
-                 if self.required_start_align.offset != 0:
-                     print (("WARNING: %s\n\thas start-align with non-zero offset: %s"
-                         + "\n\tsuggest to add explicit definition with:"
-@@ -619,12 +619,12 @@ class ComplexType(Type):
-             for offset in range(0,align):
-                 align_candidate = Alignment(align, offset)
-                 if verbose_align_log:
--                    print "trying %s for %s" % (str(align_candidate), str(self))
-+                    print ("trying %s for %s" % (str(align_candidate), str(self)))
-                 my_log = AlignmentLog()
-                 if self.is_possible_start_align(align_candidate, callstack, my_log):
-                     log.append(my_log)
-                     if verbose_align_log:
--                        print "found start-align %s for %s" % (str(align_candidate), str(self))
-+                        print ("found start-align %s for %s" % (str(align_candidate), str(self)))
-                     return align_candidate
-                 else:
-                     my_ok_count = my_log.ok_count()
-@@ -641,7 +641,7 @@ class ComplexType(Type):
-         # none of the candidates applies
-         # this type has illegal internal aligns for all possible start_aligns
-         if verbose_align_log:
--            print "didn't find start-align for %s" % str(self)
-+            print ("didn't find start-align for %s" % str(self))
-         log.append(best_log)
-         return None
- 
-@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
-     # aux function for unchecked_get_alignment_after
-     def get_align_for_selected_case_field(self, case_field, start_align, callstack, log):
-         if verbose_align_log:
--            print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))
-+            print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)))
-         total_align = start_align
-         for field in self.bitcases:
-             my_callstack = callstack[:]
--- 
-cgit v0.10.2
-
diff --git a/patches/xcb_proto-1.12.local.patch b/patches/xcb_proto-1.12.local.patch
new file mode 100644
index 0000000..9930c12
--- /dev/null
+++ b/patches/xcb_proto-1.12.local.patch
@@ -0,0 +1,276 @@
+From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz@NetBSD.org>
+Date: Thu, 19 May 2016 17:30:04 +0200
+Subject: Make whitespace use consistent.
+
+At least python-3.5.x complains about this forcefully.
+
+Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+
+diff --git a/xcbgen/align.py b/xcbgen/align.py
+index 5e31838..d4c12ee 100644
+--- a/xcbgen/align.py
++++ b/xcbgen/align.py
+@@ -16,12 +16,12 @@ class Alignment(object):
+         return self.align == other.align and self.offset == other.offset
+ 
+     def __str__(self):
+-	return "(align=%d, offset=%d)" % (self.align, self.offset)
++        return "(align=%d, offset=%d)" % (self.align, self.offset)
+ 
+     @staticmethod
+     def for_primitive_type(size):
+-	# compute the required start_alignment based on the size of the type
+-	if size % 8 == 0:
++        # compute the required start_alignment based on the size of the type
++        if size % 8 == 0:
+             # do 8-byte primitives require 8-byte alignment in X11?
+             return Alignment(8,0)
+         elif size % 4 == 0:
+@@ -33,7 +33,7 @@ class Alignment(object):
+ 
+ 
+     def align_after_fixed_size(self, size):
+-	new_offset = (self.offset + size) % self.align
++        new_offset = (self.offset + size) % self.align
+         return Alignment(self.align, new_offset)
+ 
+ 
+@@ -41,7 +41,7 @@ class Alignment(object):
+         '''
+         Assuming the given external_align, checks whether
+         self is fulfilled for all cases.
+-	Returns True if yes, False otherwise.
++        Returns True if yes, False otherwise.
+         '''
+         if self.align == 1 and self.offset == 0:
+             # alignment 1 with offset 0 is always fulfilled
+@@ -55,9 +55,9 @@ class Alignment(object):
+             # the external align guarantees less alignment -> not guaranteed
+             return False
+ 
+-	if external_align.align % self.align != 0:
++        if external_align.align % self.align != 0:
+             # the external align cannot be divided by our align
+-	    # -> not guaranteed
++            # -> not guaranteed
+             # (this can only happen if there are alignments that are not
+             # a power of 2, which is highly discouraged. But better be
+             # safe and check for it)
+@@ -72,7 +72,7 @@ class Alignment(object):
+ 
+     def combine_with(self, other):
+         # returns the alignment that is guaranteed when
+-	# both, self or other, can happen
++        # both, self or other, can happen
+         new_align = gcd(self.align, other.align)
+         new_offset_candidate1 = self.offset % new_align
+         new_offset_candidate2 = other.offset % new_align
+@@ -83,8 +83,8 @@ class Alignment(object):
+             new_align = gcd(new_align, offset_diff)
+             new_offset_candidate1 = self.offset % new_align
+             new_offset_candidate2 = other.offset % new_align
+-	    assert new_offset_candidate1 == new_offset_candidate2
+-	    new_offset = new_offset_candidate1
++            assert new_offset_candidate1 == new_offset_candidate2
++            new_offset = new_offset_candidate1
+         # return the result
+         return Alignment(new_align, new_offset)
+ 
+@@ -92,44 +92,44 @@ class Alignment(object):
+ class AlignmentLog(object):
+ 
+     def __init__(self):
+-	self.ok_list = []
+-	self.fail_list = []
+-	self.verbosity = 1
++        self.ok_list = []
++        self.fail_list = []
++        self.verbosity = 1
+ 
+     def __str__(self):
+-	result = ""
++        result = ""
+ 
+-	# output the OK-list
+-	for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
+-	    stacksize = len(callstack)
++        # output the OK-list
++        for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list:
++            stacksize = len(callstack)
+             indent = '  ' * stacksize
+-	    if self.ok_callstack_is_relevant(callstack):
++            if self.ok_callstack_is_relevant(callstack):
+                 if field_name is None or field_name == "":
+-	            result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
+-		        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
+-	        else:
+-		    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
+-		        % (indent, str(field_name), str(type_obj),
+-		           indent, str(align_before), str(align_after)))
++                    result += ("    %sok: %s:\n\t%sbefore: %s, after: %s\n"
++                        % (indent, str(type_obj), indent, str(align_before), str(align_after)))
++                else:
++                    result += ("    %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n"
++                        % (indent, str(field_name), str(type_obj),
++                           indent, str(align_before), str(align_after)))
+                 if self.verbosity >= 1:
+-		    result += self.callstack_to_str(indent, callstack)
++                    result += self.callstack_to_str(indent, callstack)
+ 
+-	# output the fail-list
+-	for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
+-	    stacksize = len(callstack)
++        # output the fail-list
++        for (align_before, field_name, type_obj, callstack, reason) in self.fail_list:
++            stacksize = len(callstack)
+             indent = '  ' * stacksize
+-	    if field_name is None or field_name == "":
+-	        result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
+-		    % (indent, str(align_before), indent, str(type_obj), indent, reason))
+-	    else:
+-		result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
+-		    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
++            if field_name is None or field_name == "":
++                result += ("    %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n"
++                    % (indent, str(align_before), indent, str(type_obj), indent, reason))
++            else:
++                result += ("    %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n"
++                    % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason))
+ 
+             if self.verbosity >= 1:
+-	        result += self.callstack_to_str(indent, callstack)
++                result += self.callstack_to_str(indent, callstack)
+ 
+ 
+-	return result
++        return result
+ 
+ 
+     def callstack_to_str(self, indent, callstack):
+@@ -137,41 +137,41 @@ class AlignmentLog(object):
+         for stack_elem in callstack:
+             result += "\t  %s%s\n" % (indent, str(stack_elem))
+         result += "\t%s]\n" % indent
+-	return result
++        return result
+ 
+ 
+     def ok_callstack_is_relevant(self, ok_callstack):
+         # determine whether an ok callstack is relevant for logging
+-	if self.verbosity >= 2:
+-	    return True
++        if self.verbosity >= 2:
++            return True
+ 
+         # empty callstacks are always relevant
+-	if len(ok_callstack) == 0:
++        if len(ok_callstack) == 0:
+             return True
+ 
+-	# check whether the ok_callstack is a subset or equal to a fail_callstack
++        # check whether the ok_callstack is a subset or equal to a fail_callstack
+         for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list:
+             if len(ok_callstack) <= len(fail_callstack):
+                 zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)])
+-		is_subset = all([i == j for i, j in zipped])
+-		if is_subset:
++                is_subset = all([i == j for i, j in zipped])
++                if is_subset:
+                     return True
+ 
+         return False
+ 
+ 
+     def ok(self, align_before, field_name, type_obj, callstack, align_after):
+-	self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
++        self.ok_list.append((align_before, field_name, type_obj, callstack, align_after))
+ 
+     def fail(self, align_before, field_name, type_obj, callstack, reason):
+-	self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
++        self.fail_list.append((align_before, field_name, type_obj, callstack, reason))
+ 
+     def append(self, other):
+-	self.ok_list.extend(other.ok_list)
+-	self.fail_list.extend(other.fail_list)
++        self.ok_list.extend(other.ok_list)
++        self.fail_list.extend(other.fail_list)
+ 
+     def ok_count(self):
+-	return len(self.ok_list)
++        return len(self.ok_list)
+ 
+ 
+ 
+-- 
+cgit v0.10.2
+
+From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001
+From: Thomas Klausner <wiz@NetBSD.org>
+Date: Thu, 19 May 2016 17:30:05 +0200
+Subject: print() is a function and needs parentheses.
+
+Fixes build with python-3.x.
+
+Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+Signed-off-by: Uli Schlachter <psychon@znc.in>
+
+diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py
+index c3b5758..b83b119 100644
+--- a/xcbgen/xtypes.py
++++ b/xcbgen/xtypes.py
+@@ -501,7 +501,7 @@ class ComplexType(Type):
+                 int(required_start_align_element.get('align', "4"), 0),
+                 int(required_start_align_element.get('offset', "0"), 0))
+             if verbose_align_log:
+-                print "Explicit start-align for %s: %s\n" % (self, self.required_start_align)
++                print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align))
+ 
+     def resolve(self, module):
+         if self.resolved:
+@@ -592,7 +592,7 @@ class ComplexType(Type):
+                 if verbose_align_log:
+                     print ("calc_required_start_align: %s has start-align %s"
+                         % (str(self), str(self.required_start_align)))
+-                    print "Details:\n" + str(log)
++                    print ("Details:\n" + str(log))
+                 if self.required_start_align.offset != 0:
+                     print (("WARNING: %s\n\thas start-align with non-zero offset: %s"
+                         + "\n\tsuggest to add explicit definition with:"
+@@ -619,12 +619,12 @@ class ComplexType(Type):
+             for offset in range(0,align):
+                 align_candidate = Alignment(align, offset)
+                 if verbose_align_log:
+-                    print "trying %s for %s" % (str(align_candidate), str(self))
++                    print ("trying %s for %s" % (str(align_candidate), str(self)))
+                 my_log = AlignmentLog()
+                 if self.is_possible_start_align(align_candidate, callstack, my_log):
+                     log.append(my_log)
+                     if verbose_align_log:
+-                        print "found start-align %s for %s" % (str(align_candidate), str(self))
++                        print ("found start-align %s for %s" % (str(align_candidate), str(self)))
+                     return align_candidate
+                 else:
+                     my_ok_count = my_log.ok_count()
+@@ -641,7 +641,7 @@ class ComplexType(Type):
+         # none of the candidates applies
+         # this type has illegal internal aligns for all possible start_aligns
+         if verbose_align_log:
+-            print "didn't find start-align for %s" % str(self)
++            print ("didn't find start-align for %s" % str(self))
+         log.append(best_log)
+         return None
+ 
+@@ -900,7 +900,7 @@ class SwitchType(ComplexType):
+     # aux function for unchecked_get_alignment_after
+     def get_align_for_selected_case_field(self, case_field, start_align, callstack, log):
+         if verbose_align_log:
+-            print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))
++            print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)))
+         total_align = start_align
+         for field in self.bitcases:
+             my_callstack = callstack[:]
+-- 
+cgit v0.10.2
+
diff --git a/subr/ex_pkg_env.subr b/subr/ex_pkg_env.subr
index 240c628..25b0053 100644
--- a/subr/ex_pkg_env.subr
+++ b/subr/ex_pkg_env.subr
@@ -7,7 +7,7 @@ ex_pkg_env() {
 	if [ -z "${PKG_URL}" ]\
 	&& [ -z "${PKG_URLS_GIT}" ]\
 	&& [ -z "${PKG_VERSION}" ]\
-	&& ! test_cmd "pkg_${PKG_NAME}_all"; then
+	&& ! ex_test_cmd "pkg_${PKG_NAME}_all"; then
 		ex_log_msg failexit "Error: package \`${PKG_NAME}' missing in build.vars.";
 	elif [ "${PKG_DISABLED:-0}" -eq 1 ]; then
 		ex_log_msg vnfo "Skipping disabled package \`${PKG_NAME}.'";
diff --git a/subr/pkg_configure_patch.subr b/subr/pkg_configure_patch.subr
index 5dfda78..d15dc0d 100644
--- a/subr/pkg_configure_patch.subr
+++ b/subr/pkg_configure_patch.subr
@@ -5,19 +5,11 @@
 pkg_configure_patch() {
 	local _patch_fname _patches_done;
 	set +o noglob;
-	for _patch_fname in 											\
-			${WORKDIR}/chainport-host-invariants/chainport/${PKG_NAME}.midipix.patch		\
-			${WORKDIR}/chainport-host-invariants/chainport/${PKG_SUBDIR}.midipix.patch		\
-			${WORKDIR}/chainport-host-invariants/chainport/${PKG_SUBDIR%-*}.midipix.patch		\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}/*.patch					\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}/*.patch					\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR%-*}/*.patch					\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local.patch					\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}.local.patch					\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR%-*}.local.patch				\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}.local@${BUILD_HNAME}.patch			\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}.local@${BUILD_HNAME}.patch			\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR%-*}.local@${BUILD_HNAME}.patch; do
+	for _patch_fname in 														\
+			${WORKDIR}/chainport-host-invariants/chainport/${PKG_NAME%_host}${PKG_VERSION:+-${PKG_VERSION}}.midipix.patch	\
+			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}/*.patch								\
+			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}.local.patch				\
+			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}.local@${BUILD_HNAME}.patch; do
 		if ! ex_lmatch "${_patches_done}" " " "${_patch_fname}"\
 		&& [ -r "${_patch_fname}" ]; then
 			patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_fname}";
diff --git a/subr/pkg_configure_patch_pre.subr b/subr/pkg_configure_patch_pre.subr
index d228bd8..6843a78 100644
--- a/subr/pkg_configure_patch_pre.subr
+++ b/subr/pkg_configure_patch_pre.subr
@@ -4,11 +4,9 @@
 
 pkg_configure_patch_pre() {
 	local _patch_path;
-	for _patch_path in 										\
-			${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}_pre.local.patch				\
-			${MIDIPIX_BUILD_PWD}/../${PKG_SUBDIR}_pre.local@${BUILD_HNAME}.patch		\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}_pre.local.patch			\
-			${MIDIPIX_BUILD_PWD}/patches/${PKG_SUBDIR}_pre.local@${BUILD_HNAME}.patch; do
+	for _patch_path in 											\
+			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local.patch	\
+			${MIDIPIX_BUILD_PWD}/patches/${PKG_NAME}${PKG_VERSION:+-${PKG_VERSION}}_pre.local@${BUILD_HNAME}.patch; do
 		if [ -r "${_patch_path}" ]; then
 			patch -b -d "${PKG_BASE_DIR}/${PKG_SUBDIR}" -p1 < "${_patch_path}";
 		fi;