summaryrefslogtreecommitdiff
path: root/community/fuseiso
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-08-23 23:14:30 +0000
committerroot <root@rshg054.dnsready.net>2011-08-23 23:14:30 +0000
commit9254c2bc6500471b22eead69781ddef84f87e2bf (patch)
treec4afa4b28422f98d69f9b2594705e164e8c3049c /community/fuseiso
parent64e290184042563a240e2d6d15c02e06703d00ee (diff)
Tue Aug 23 23:14:30 UTC 2011
Diffstat (limited to 'community/fuseiso')
-rw-r--r--community/fuseiso/PKGBUILD25
-rw-r--r--community/fuseiso/fuseiso-20070708-largeiso.patch48
2 files changed, 63 insertions, 10 deletions
diff --git a/community/fuseiso/PKGBUILD b/community/fuseiso/PKGBUILD
index 53071f272..cfc87ea2c 100644
--- a/community/fuseiso/PKGBUILD
+++ b/community/fuseiso/PKGBUILD
@@ -1,28 +1,33 @@
-# $Id: PKGBUILD 22459 2010-07-21 20:26:36Z lcarlier $
+# $Id: PKGBUILD 54617 2011-08-22 06:10:07Z lcarlier $
# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
-# Maintainer: Daniel J Griffiths <ghost1227@archlinux.us>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=fuseiso
pkgver=20070708
-pkgrel=2
+pkgrel=3
pkgdesc="FUSE module to mount ISO filesystem images"
arch=('i686' 'x86_64')
url="http://sourceforge.net/projects/fuseiso/"
license=('GPL')
depends=('fuse' 'glib2' 'zlib')
makedepends=('pkgconfig')
-source=(http://ubiz.ru/dm/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('4bb50412b6d01f337565e28afddca3a5')
+source=("http://ubiz.ru/dm/${pkgname}-${pkgver}.tar.bz2"
+ 'fuseiso-20070708-largeiso.patch')
+md5sums=('4bb50412b6d01f337565e28afddca3a5'
+ '5c4dce932aba735727221f4e1695f277')
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/${pkgname}-${pkgver}
- ./configure --prefix=/usr
- make
+ # Fix for isos larger than 4Go https://bugzilla.redhat.com/show_bug.cgi?id=440436
+ patch -p1 -i "${srcdir}/fuseiso-20070708-largeiso.patch"
+
+ ./configure --prefix=/usr
+ make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ make DESTDIR=${pkgdir} install
}
diff --git a/community/fuseiso/fuseiso-20070708-largeiso.patch b/community/fuseiso/fuseiso-20070708-largeiso.patch
new file mode 100644
index 000000000..e323768d2
--- /dev/null
+++ b/community/fuseiso/fuseiso-20070708-largeiso.patch
@@ -0,0 +1,48 @@
+http://bugzilla.redhat.com/show_bug.cgi?id=440436
+
+diff -ur fuseiso-20070708.orig/src/isofs.c fuseiso-20070708/src/isofs.c
+--- fuseiso-20070708.orig/src/isofs.c 2007-07-08 15:22:59.000000000 +0300
++++ fuseiso-20070708/src/isofs.c 2009-10-25 12:02:16.000000000 +0200
+@@ -178,7 +178,7 @@
+ context.data_size = isonum_723(context.pd.logical_block_size);
+
+ if(!context.block_size) {
+- fprintf(stderr, "init: wrong block data size %d, using default 2048\n", context.data_size);
++ fprintf(stderr, "init: wrong block data size %Lu, using default 2048\n", context.data_size);
+ context.data_size = 2048;
+ };
+
+@@ -324,7 +324,7 @@
+
+ if(context.block_size != 2048) {
+ // report unusual data block size
+- printf("Data block size: %d\n", context.block_size);
++ printf("Data block size: %Lu\n", context.block_size);
+ };
+
+ char buf[129];
+@@ -479,7 +479,7 @@
+ };
+ size_t len = read(context.fd, buf, context.data_size);
+ if(len != context.data_size) {
+- fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %d required; errno %d, message %s\n",
++ fprintf(stderr, "isofs_read_raw_block: can`t read full block, read only %d bytes from offset %d, %Lu required; errno %d, message %s\n",
+ len, (int) off, context.data_size, errno, strerror(errno));
+ fprintf(stderr, "isofs_read_raw_block: huh? reading zeros beyond file end? someone want to save a penny?\n");
+ memset(buf + len, 0, context.data_size - len);
+diff -ur fuseiso-20070708.orig/src/isofs.h fuseiso-20070708/src/isofs.h
+--- fuseiso-20070708.orig/src/isofs.h 2006-10-17 04:50:39.000000000 +0300
++++ fuseiso-20070708/src/isofs.h 2009-10-25 12:02:16.000000000 +0200
+@@ -38,9 +38,9 @@
+ struct iso_directory_record *root;
+ int file_offset; // offset to begin of useful data (for .nrg files)
+ int id_offset; // offset to CD001 inside file
+- size_t block_size; // raw block size
+- size_t block_offset; // offset from block start to data
+- size_t data_size; // data size inside block
++ off_t block_size; // raw block size
++ off_t block_offset; // offset from block start to data
++ off_t data_size; // data size inside block
+ int susp; // parse susp entries
+ int susp_skip; // skip bytes from susp SP entry
+ int joliet_level; // joliet extension level (1, 2 or 3)