diff --git a/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch b/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch
new file mode 100644
index 000000000..727f18b37
--- /dev/null
+++ b/libgpod/0001-323-Segmentation-fault-when-opening-ipod.patch
@@ -0,0 +1,43 @@
+From 8dc5015ae036b219c4c9579a156886aa3a722aa5 Mon Sep 17 00:00:00 2001
+From: phantomjinx
+Date: Sat, 9 Aug 2014 19:57:10 +0100
+Subject: [PATCH] #323 Segmentation fault when opening ipod
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Patch submitted in bug report from François Melchior / James Burton
+---
+ src/itdb_itunesdb.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c
+index 4cc771a..1e85476 100644
+--- a/src/itdb_itunesdb.c
++++ b/src/itdb_itunesdb.c
+@@ -1156,6 +1156,7 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
+ GHashTable *pc_dict, *track_dict;
+ GValue *to_parse;
+ GArray *array;
++ GValue value;
+ gint i;
+ guint32 mac_time;
+ guint64 *dbid;
+@@ -1175,11 +1176,12 @@ static gboolean playcounts_plist_read (FImport *fimp, GValue *plist_data)
+
+ array = (GArray*)g_value_get_boxed (to_parse);
+ for (i = 0; i < array->len; i++) {
+- if (!G_VALUE_HOLDS (g_array_index (array, GValue *, i), G_TYPE_HASH_TABLE)) {
++ value = g_array_index (array, GValue, i);
++ if (!G_VALUE_HOLDS (&value, G_TYPE_HASH_TABLE)) {
+ continue;
+ }
+
+- track_dict = g_value_get_boxed (g_array_index (array, GValue *, i));
++ track_dict = g_value_get_boxed (&value);
+ if (track_dict == NULL)
+ continue;
+
+--
+2.12.2
+
diff --git a/libgpod/PKGBUILD b/libgpod/PKGBUILD
new file mode 100644
index 000000000..e05a0f133
--- /dev/null
+++ b/libgpod/PKGBUILD
@@ -0,0 +1,38 @@
+pkgname=libgpod
+pkgver=0.8.3
+pkgrel=6
+pkgdesc="A shared library to access the contents of an iPod"
+arch=('x86_64')
+license=('LGPL')
+depends=('gdk-pixbuf2' 'mutagen' 'sg3_utils' 'libimobiledevice' 'libplist')
+makedepends=('intltool' 'swig' 'docbook-xsl' 'pygobject2-devel')
+url="http://www.gtkpod.org/libgpod/"
+source=(https://downloads.sourceforge.net/sourceforge/gtkpod/${pkgname}-${pkgver}.tar.bz2
+ libgpod-0.8.2-pkgconfig_overlinking.patch
+ libgpod-fixswig.patch
+ 0001-323-Segmentation-fault-when-opening-ipod.patch)
+options=('!emptydirs')
+sha256sums=('638a7959d04e95f1e62abad02bd33702e4e8dfef98485ac7d9d50395c37e955d'
+ '02daa2b46d0cfdee14c9d96eabf903ba4638694e669c5cb0ec462076837ac2ff'
+ '86f7054dc53ee2aa756c98dc893af6718bbeb6361a0785a5c93a5592b8cc8cdd'
+ 'b181131ee5b42673074f8217155b4f147623cc63dd382ee4bfa2cb81cd281b20')
+
+prepare() {
+ cd $pkgname-$pkgver
+ patch -Np1 -i ../libgpod-0.8.2-pkgconfig_overlinking.patch
+ patch -Np1 -i ../libgpod-fixswig.patch
+ patch -Np1 -i ../0001-323-Segmentation-fault-when-opening-ipod.patch
+}
+
+build() {
+ cd $pkgname-$pkgver
+ MCS=/usr/bin/mcs ./configure --prefix=/usr --with-udev-dir=/usr/lib/udev \
+ --enable-udev --with-python=/usr/bin/python2
+ make PREFIX=/usr
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make PREFIX=/usr DESTDIR="${pkgdir}" install
+}
diff --git a/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch b/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch
new file mode 100644
index 000000000..a5dafb285
--- /dev/null
+++ b/libgpod/libgpod-0.8.2-pkgconfig_overlinking.patch
@@ -0,0 +1,11 @@
+diff -up libgpod-0.8.2/libgpod-1.0.pc.in.pkgconfig_overlinking libgpod-0.8.2/libgpod-1.0.pc.in
+--- libgpod-0.8.2/libgpod-1.0.pc.in.pkgconfig_overlinking 2011-04-15 03:37:34.000000000 -0500
++++ libgpod-0.8.2/libgpod-1.0.pc.in 2012-08-10 13:53:00.294631805 -0500
+@@ -6,6 +6,6 @@ includedir=@includedir@
+ Name: libgpod
+ Description: A library to manipulate songs and playlists stored on an ipod
+ Version: @VERSION@
+-Requires: glib-2.0 >= 2.8.0 gobject-2.0 @GDKPIXBUF_REQ@ @LIBIMOBILEDEVICE_REQ@
++Requires.private: glib-2.0 >= 2.8.0 gobject-2.0 @GDKPIXBUF_REQ@ @LIBIMOBILEDEVICE_REQ@
+ Libs: -L${libdir} -lgpod
+ Cflags: -I${includedir}/gpod-1.0
diff --git a/libgpod/libgpod-fixswig.patch b/libgpod/libgpod-fixswig.patch
new file mode 100644
index 000000000..23e49c592
--- /dev/null
+++ b/libgpod/libgpod-fixswig.patch
@@ -0,0 +1,14 @@
+--- libgpod-0.8.3/bindings/python/gpod.i.in 2015-02-12 08:43:11.058975384 +0100
++++ libgpod-0.8.3/bindings/python/gpod.i.in.orig 2015-02-12 08:44:08.185561253 +0100
+@@ -298,9 +298,11 @@ PyObject* sw_get_photo(GList *list, gint
+ %include "gpod_doc.i"
+ %include "@top_builddir@/config.h"
+
++/*
+ # be nicer to decode these utf8 strings into Unicode objects in the C
+ # layer. Here we are leaving it to the Python side, and just giving
+ # them utf8 encoded Strings.
++*/
+ typedef char gchar;
+
+ %typemap(in) time_t {
diff --git a/libgpod/swig_gpod.patch b/libgpod/swig_gpod.patch
new file mode 100644
index 000000000..5adcb8021
--- /dev/null
+++ b/libgpod/swig_gpod.patch
@@ -0,0 +1,15 @@
+--- bindings/python/gpod.i.in.orig 2013-07-09 17:34:38.000000000 +0200
++++ bindings/python/gpod.i.in 2015-01-18 20:42:48.144869429 +0100
+@@ -298,9 +298,9 @@
+ %include "gpod_doc.i"
+ %include "@top_builddir@/config.h"
+
+-# be nicer to decode these utf8 strings into Unicode objects in the C
+-# layer. Here we are leaving it to the Python side, and just giving
+-# them utf8 encoded Strings.
++/* be nicer to decode these utf8 strings into Unicode objects in the C
++ layer. Here we are leaving it to the Python side, and just giving
++ them utf8 encoded Strings. */
+ typedef char gchar;
+
+ %typemap(in) time_t {
diff --git a/mutagen/PKGBUILD b/mutagen/PKGBUILD
new file mode 100644
index 000000000..3fa12352b
--- /dev/null
+++ b/mutagen/PKGBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Neophytos Kolokotronis
+# Contributor from Arch: Eric Belanger
+
+pkgbase=mutagen
+pkgname=('mutagen' 'python3-mutagen')
+pkgver=1.37
+pkgrel=1
+arch=('any')
+url="https://github.com/quodlibet/mutagen"
+license=('GPL2')
+makedepends=('python2-setuptools' 'python3-setuptools')
+checkdepends=('python2-pytest' 'python3-pytest')
+source=($pkgname-$pkgver::https://github.com/quodlibet/mutagen/archive/release-${pkgver}.tar.gz)
+sha1sums=('4c9725f0b613d54e8ae522dac3d716c36ef10095')
+
+prepare() {
+ cp -aT $pkgbase-release-$pkgver python3-$pkgbase-$pkgver
+}
+
+check() {
+ cd $pkgbase-release-$pkgver
+ LANG=en_US.UTF8 python2 setup.py test
+ cd ../python3-$pkgbase-$pkgver
+# LANG=en_US.UTF8 python3 setup.py test
+}
+
+package_mutagen() {
+ pkgdesc="An audio metadata tag reader and writer"
+ depends=('python2')
+
+ cd $pkgbase-release-$pkgver
+ python2 setup.py install --root="${pkgdir}"
+}
+
+package_python3-mutagen() {
+ pkgdesc="An audio metadata tag reader and writer library for Python 3"
+ depends=('python3')
+
+ cd python3-$pkgbase-$pkgver
+ python3 setup.py install --root="${pkgdir}"
+
+ rm -r "${pkgdir}"/usr/{bin,share}
+}