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} +}