diff --git a/lib32-libarchive/0001-mtree-fix-line-filename-length-calculation.patch b/lib32-libarchive/0001-mtree-fix-line-filename-length-calculation.patch new file mode 100644 index 0000000..2299f5f --- /dev/null +++ b/lib32-libarchive/0001-mtree-fix-line-filename-length-calculation.patch @@ -0,0 +1,28 @@ +From e65bf287f0133426b26611fe3e80b51267987106 Mon Sep 17 00:00:00 2001 +From: Dave Reisner +Date: Thu, 21 Feb 2013 19:01:06 -0500 +Subject: [PATCH] mtree: fix line filename length calculation. Fixes #301. + Signed-off-by: Andres Mejia + +--- + libarchive/archive_write_set_format_mtree.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libarchive/archive_write_set_format_mtree.c b/libarchive/archive_write_set_format_mtree.c +index 9c0613c..f37f723 100644 +--- a/libarchive/archive_write_set_format_mtree.c ++++ b/libarchive/archive_write_set_format_mtree.c +@@ -1855,9 +1855,9 @@ mtree_entry_setup_filenames(struct archive_write *a, struct mtree_entry *file, + return (ret); + } + +- /* Make a basename from dirname and slash */ ++ /* Make a basename from file->parentdir.s and slash */ + *slash = '\0'; +- file->parentdir.length = slash - dirname; ++ file->parentdir.length = slash - file->parentdir.s; + archive_strcpy(&(file->basename), slash + 1); + return (ret); + } +-- +1.8.1.4 diff --git a/lib32-libarchive/PKGBUILD b/lib32-libarchive/PKGBUILD new file mode 100644 index 0000000..26359c8 --- /dev/null +++ b/lib32-libarchive/PKGBUILD @@ -0,0 +1,45 @@ +# Maintainer: Evgeniy Alekseev +# Contributor: josephgbr + +_pkgname=libarchive +pkgname=lib32-${_pkgname} +pkgver=3.1.2 +pkgrel=2 +pkgdesc="library that can create and read several streaming archive formats (32 bit)" +arch=('x86_64') +url="http://libarchive.org" +license=('BSD') +depends=('lib32-acl' 'lib32-bzip2' 'lib32-expat' 'lib32-lzo' 'lib32-openssl' 'lib32-xz' "${_pkgname}") +makedepends=('gcc-multilib' 'lib32-zlib') +source=("http://libarchive.org/downloads/${_pkgname}-${pkgver}.tar.gz" + '0001-mtree-fix-line-filename-length-calculation.patch') +md5sums=('efad5a503f66329bb9d2f4308b5de98a' + '9727baf88b928417d5d1269891b1209a') + +prepare() { + cd "${_pkgname}-${pkgver}" + + # https://code.google.com/p/libarchive/issues/detail?id=301 + # upstream commit e65bf287f0133426b26611fe3e80b51267987106 + patch -Np1 -i "${srcdir}/0001-mtree-fix-line-filename-length-calculation.patch" +} + +build() { + export CC="gcc -m32" + export CXX="g++ -m32" + export PKG_CONFIG_PATH="/usr/lib32/pkgconfig" + + cd "${_pkgname}-${pkgver}" + ./configure --prefix=/usr --without-xml2 --libdir=/usr/lib32 \ + --without-nettle --libexecdir="/usr/lib32/${_pkgname}" + make +} + +package() { + cd "${_pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install + rm -rf "${pkgdir}"/usr/{bin,include,share} + + install -dm755 "${pkgdir}"/usr/share/licenses + ln -s ${_pkgname} "${pkgdir}"/usr/share/licenses/${pkgname} +}