File fuseiso-fuse3.patch of Package fuseiso
diff -Pdpru fuseiso-20070708.orig/config.h.in fuseiso-20070708/config.h.in
--- fuseiso-20070708.orig/config.h.in 2007-07-08 17:15:53.000000000 +0400
+++ fuseiso-20070708/config.h.in 2025-05-13 12:31:23.807970397 +0300
@@ -3,13 +3,13 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
-/* Define to 1 if you have the <fuse.h> header file. */
+/* Define to 1 if you have the <fuse3/fuse.h> header file. */
#undef HAVE_FUSE_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
-/* Define to 1 if you have the `fuse' library (-lfuse). */
+/* Define to 1 if you have the `fuse3' library (-lfuse3). */
#undef HAVE_LIBFUSE
/* Define to 1 if you have the <memory.h> header file. */
diff -Pdpru fuseiso-20070708.orig/configure.in fuseiso-20070708/configure.in
--- fuseiso-20070708.orig/configure.in 2007-07-08 16:56:29.000000000 +0400
+++ fuseiso-20070708/configure.in 2025-05-13 12:39:01.414616472 +0300
@@ -7,13 +7,4 @@ AC_LANG_C
AC_PROG_CC
AM_PROG_LIBTOOL
-AC_CHECK_HEADERS(fuse.h, AC_CHECK_LIB(fuse, fuse_main, [],
- [ AC_MSG_ERROR([libfuse is required]) ]),
- [ AC_MSG_ERROR([libfuse is required]) ],
-[
-#ifndef _FILE_OFFSET_BITS
-#define _FILE_OFFSET_BITS 64
-#endif
-])
-
AC_OUTPUT(Makefile src/Makefile zAppRun/Makefile)
diff -Pdpru fuseiso-20070708.orig/linux/iso_fs.h fuseiso-20070708/linux/iso_fs.h
--- fuseiso-20070708.orig/linux/iso_fs.h 2006-09-27 06:42:10.000000000 +0400
+++ fuseiso-20070708/linux/iso_fs.h 2025-05-13 14:40:37.998140317 +0300
@@ -170,8 +170,6 @@ struct iso_directory_record {
#define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize)
#define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits)
-#define ISOFS_SUPER_MAGIC 0x9660
-
#ifdef __KERNEL__
/* Number conversion inlines, named after the section in ISO 9660
they correspond to. */
diff -Pdpru fuseiso-20070708.orig/src/fuseiso.c fuseiso-20070708/src/fuseiso.c
--- fuseiso-20070708.orig/src/fuseiso.c 2007-05-06 21:01:17.000000000 +0400
+++ fuseiso-20070708/src/fuseiso.c 2025-05-13 12:15:03.866171309 +0300
@@ -38,8 +38,8 @@
#include <linux/iso_fs.h>
-#define FUSE_USE_VERSION 22
-#include <fuse.h>
+#define FUSE_USE_VERSION 314
+#include <fuse3/fuse.h>
#include <zlib.h>
#include <locale.h>
@@ -214,7 +214,7 @@ int del_mtab_record() {
return 0;
};
-static int isofs_getattr(const char *path, struct stat *stbuf)
+static int isofs_getattr(const char *path, struct stat *stbuf, struct fuse_file_info *UNUSED(fi))
{
return isofs_real_getattr(path, stbuf);
}
@@ -238,7 +238,7 @@ static int isofs_flush(const char *UNUSE
return 0;
};
-static void* isofs_init() {
+static void* isofs_init(struct fuse_conn_info *UNUSED(conn), struct fuse_config *cfg) {
int rc;
if(maintain_mtab) {
rc = add_mtab_record();
@@ -246,6 +246,7 @@ static void* isofs_init() {
exit(EXIT_FAILURE);
};
};
+ cfg->use_ino = 1;
return isofs_real_init();
};
@@ -261,11 +262,11 @@ static int isofs_opendir(const char *pat
};
static int isofs_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t UNUSED(offset),
- struct fuse_file_info *UNUSED(fi)) {
+ struct fuse_file_info *UNUSED(fi), enum fuse_readdir_flags UNUSED(flags)) {
return isofs_real_readdir(path, buf, filler);
};
-static int isofs_statfs(const char *UNUSED(path), struct statfs *stbuf)
+static int isofs_statfs(const char *UNUSED(path), struct statvfs *stbuf)
{
return isofs_real_statfs(stbuf);
}
@@ -340,7 +341,7 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
};
- imagefile = normalize_name(argv[optind]);
+ imagefile = normalize_name(argv[optind++]);
image_fd = open(imagefile, O_RDONLY);
if(image_fd == -1) {
@@ -349,42 +350,16 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
};
- mount_point = normalize_name(argv[optind + 1]);
+ mount_point = normalize_name(argv[optind]);
- // with space for possible -o use_ino arguments
- char **nargv = (char **) malloc((argc + 2) * sizeof(char *));
- int nargc = argc - optind;
+ int nargc = 1 + argc - optind;
+ char **nargv = (char **) malloc((nargc) * sizeof(char *));
nargv[0] = argv[0];
int i;
- int next_opt = 0;
- int use_ino_found = 0;
for(i = 0; i < nargc - 1; ++i) {
- if(next_opt && !use_ino_found) {
- if(strstr(argv[i + optind + 1], "use_ino")) { // ok, already there
- use_ino_found = 1;
- nargv[i + 1] = argv[i + optind + 1];
- } else { // add it
- char* str = (char*) malloc(strlen(argv[i + optind + 1]) + 10);
- strcpy(str, argv[i + optind + 1]);
- strcat(str, ",use_ino");
- nargv[i + 1] = str;
- use_ino_found = 1;
- };
- } else {
- nargv[i + 1] = argv[i + optind + 1];
- };
- // check if this is -o string mean that next argument should be options string
- if(i > 1 && nargv[i + 1][0] == '-' && nargv[i + 1][1] == 'o') {
- next_opt = 1;
- };
- };
- if(!use_ino_found) {
- nargv[nargc] = "-o";
- nargc++;
- nargv[nargc] = "use_ino";
- nargc++;
+ nargv[i + 1] = argv[optind + i];
};
if(!iocharset) {
@@ -417,5 +392,5 @@ int main(int argc, char *argv[])
// will exit in case of failure
rc = isofs_real_preinit(imagefile, image_fd);
- return fuse_main(nargc, nargv, &isofs_oper);
+ return fuse_main(nargc, nargv, &isofs_oper, NULL);
};
diff -Pdpru fuseiso-20070708.orig/src/isofs.c fuseiso-20070708/src/isofs.c
--- fuseiso-20070708.orig/src/isofs.c 2007-07-08 16:22:59.000000000 +0400
+++ fuseiso-20070708/src/isofs.c 2025-05-13 14:57:31.626485224 +0300
@@ -18,8 +18,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-// for struct tm->tm_gmtoff
-#define _BSD_SOURCE
+#define _DEFAULT_SOURCE
#include <stdio.h>
#include <fcntl.h>
@@ -32,7 +31,7 @@
#include <zlib.h>
#include <dirent.h>
#include <pthread.h>
-#include <sys/statfs.h>
+#include <sys/statvfs.h>
#include <iconv.h>
#include "isofs.h"
@@ -1346,7 +1345,7 @@ int isofs_real_opendir(const char *path)
return 0;
};
-int isofs_real_readdir(const char *path, void *filler_buf, isofs_dir_fill_t filler) {
+int isofs_real_readdir(const char *path, void *filler_buf, fuse_fill_dir_t filler) {
if(path[0] == '\0') {
fprintf(stderr, "readdir: attempt to read empty path name\n");
return -EINVAL;
@@ -1517,7 +1516,7 @@ int isofs_real_readdir(const char *path,
struct stat st;
memset(& st, '\0', sizeof(struct stat));
isofs_direntry2stat(& st, inode);
- rc = filler(filler_buf, entry, & st, 0);
+ rc = filler(filler_buf, entry, & st, 0, 0);
if(rc) {
printf("readdir: filler return with %d, entry %s\n", rc, entry);
isofs_free_inode(inode);
@@ -1806,14 +1805,14 @@ int isofs_real_read(const char *path, ch
return total_size;
};
-int isofs_real_statfs(struct statfs *stbuf) {
- stbuf->f_type = ISOFS_SUPER_MAGIC;
+int isofs_real_statfs(struct statvfs *stbuf) {
stbuf->f_bsize = context.data_size; // or PAGE_CACHE_SIZE?
stbuf->f_blocks = 0; // while it is possible to calculate this, i see no reasons to do so
stbuf->f_bfree = 0;
stbuf->f_bavail = 0;
stbuf->f_files = 0;
stbuf->f_ffree = 0;
- stbuf->f_namelen = NAME_MAX - 1; // ? not sure..
+ stbuf->f_favail = 0;
+ stbuf->f_namemax = NAME_MAX - 1; // ? not sure..
return 0;
};
diff -Pdpru fuseiso-20070708.orig/src/isofs.h fuseiso-20070708/src/isofs.h
--- fuseiso-20070708.orig/src/isofs.h 2006-10-17 05:50:39.000000000 +0400
+++ fuseiso-20070708/src/isofs.h 2025-05-13 12:15:40.305888650 +0300
@@ -25,8 +25,8 @@
#include <linux/iso_fs.h>
#include <linux/rock.h>
-typedef int (*isofs_dir_fill_t) (void *buf, const char *name,
- const struct stat *stat, off_t off);
+#define FUSE_USE_VERSION 314
+#include <fuse3/fuse.h>
typedef struct _isofs_context {
char *imagefile;
@@ -154,11 +154,11 @@ int isofs_real_preinit(char* imagefile,
void* isofs_real_init();
int isofs_real_opendir(const char *path);
-int isofs_real_readdir(const char *path, void *filler_buf, isofs_dir_fill_t filler);
+int isofs_real_readdir(const char *path, void *filler_buf, fuse_fill_dir_t filler);
int isofs_real_getattr(const char *path, struct stat *stbuf);
int isofs_real_readlink(const char *path, char *target, size_t size);
int isofs_real_open(const char *path);
int isofs_real_read(const char *path, char *out_buf, size_t size, off_t offset);
-int isofs_real_statfs(struct statfs *stbuf);
+int isofs_real_statfs(struct statvfs *stbuf);
#endif // _ISOFS_H
diff -Pdpru fuseiso-20070708.orig/src/Makefile.am fuseiso-20070708/src/Makefile.am
--- fuseiso-20070708.orig/src/Makefile.am 2006-10-17 05:47:28.000000000 +0400
+++ fuseiso-20070708/src/Makefile.am 2025-05-13 12:21:42.312158417 +0300
@@ -8,5 +8,5 @@ INCLUDES= $(all_includes)
fuseiso_LDFLAGS = $(all_libraries)
noinst_HEADERS = isofs.h
-AM_CFLAGS = -D_FILE_OFFSET_BITS=64 `pkg-config --cflags fuse glib-2.0` -Wall
-AM_LDFLAGS = `pkg-config --libs fuse glib-2.0` -lz
+AM_CFLAGS = -D_FILE_OFFSET_BITS=64 `pkg-config --cflags fuse3 glib-2.0` -Wall
+LIBS = `pkg-config --libs fuse3 glib-2.0` -lz