summaryrefslogtreecommitdiff
path: root/community/fuseiso
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-08-13 01:33:19 -0700
committerroot <root@rshg054.dnsready.net>2013-08-13 01:33:19 -0700
commit7a65a910b77ad191d69881098c47f9b0c852d92e (patch)
tree9564e611af1442f8952a8cbddb3b0ad25ed71aab /community/fuseiso
parent60da6abff6c9577a783d72865f11de7a585e912e (diff)
Tue Aug 13 01:31:08 PDT 2013
Diffstat (limited to 'community/fuseiso')
-rw-r--r--community/fuseiso/PKGBUILD33
-rw-r--r--community/fuseiso/fuseiso-20070708-largeiso.patch48
2 files changed, 81 insertions, 0 deletions
diff --git a/community/fuseiso/PKGBUILD b/community/fuseiso/PKGBUILD
new file mode 100644
index 000000000..39ee9bffc
--- /dev/null
+++ b/community/fuseiso/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 57911 2011-11-04 11:59:27Z lcarlier $
+# Contributor: Shinlun Hsieh <yngwiexx@yahoo.com.tw>
+# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
+
+pkgname=fuseiso
+pkgver=20070708
+pkgrel=4
+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"
+ 'fuseiso-20070708-largeiso.patch')
+md5sums=('4bb50412b6d01f337565e28afddca3a5'
+ '5c4dce932aba735727221f4e1695f277')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # 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}
+
+ 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)