File squashfuse_from_appimage.patch of Package squashfuse

diff --git a/Makefile.am b/Makefile.am
index 1507525..2491396 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -49,10 +49,10 @@ endif
 
 # Low-level squashfuse_ll, if supported
 if SQ_WANT_LOWLEVEL
-bin_PROGRAMS += squashfuse_ll
-squashfuse_ll_SOURCES = ll.c ll_inode.c nonstd-daemon.c ll.h
-squashfuse_ll_CPPFLAGS = $(FUSE_CPPFLAGS)
-squashfuse_ll_LDADD = libsquashfuse.la libfuseprivate.la $(COMPRESSION_LIBS) \
+lib_LTLIBRARIES += libsquashfuse_ll.la
+libsquashfuse_ll_la_SOURCES = ll.c ll_inode.c nonstd-daemon.c ll.h
+libsquashfuse_ll_la_CPPFLAGS = $(FUSE_CPPFLAGS)
+libsquashfuse_ll_la_LIBADD = libsquashfuse.la libfuseprivate.la $(COMPRESSION_LIBS) \
   $(FUSE_LIBS)
 
 endif
diff --git a/ll.c b/ll.c
index 0065639..91cbb2c 100644
--- a/ll.c
+++ b/ll.c
@@ -469,7 +469,7 @@ static sqfs_ll *sqfs_ll_open(const char *path, size_t offset) {
 	return NULL;
 }
 
-int main(int argc, char *argv[]) {
+int fusefs_main(int argc, char *argv[], void (*mounted) (void)) {
 	struct fuse_args args;
 	sqfs_opts opts;
 	
@@ -534,6 +534,8 @@ int main(int argc, char *argv[]) {
 							setup_idle_timeout(se, opts.idle_timeout_secs);
 						}
 						fuse_session_add_chan(se, ch.ch);
+				if (mounted)
+				  mounted ();
 						/* FIXME: multithreading */
 						err = fuse_session_loop(se);
 						teardown_idle_timeout();
@@ -550,6 +552,8 @@ int main(int argc, char *argv[]) {
 		}
 	}
 	fuse_opt_free_args(&args);
+	if (mounted)
+	  rmdir (mountpoint);
 	free(ll);
 	free(mountpoint);
 	
openSUSE Build Service is sponsored by