Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package squashfuse for openSUSE:Factory checked in at 2025-06-02 22:00:59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/squashfuse (Old) and /work/SRC/openSUSE:Factory/.squashfuse.new.16005 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "squashfuse" Mon Jun 2 22:00:59 2025 rev:3 rq:1281869 version:0.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/squashfuse/squashfuse.changes 2025-04-22 17:27:33.805269214 +0200 +++ /work/SRC/openSUSE:Factory/.squashfuse.new.16005/squashfuse.changes 2025-06-02 22:01:16.543000717 +0200 @@ -1,0 +2,7 @@ +Sat May 17 14:03:02 UTC 2025 - Andreas Stieger <andreas.stie...@gmx.de> + +- update to 0.6.1: + * portability changes for other platform +- drop build-time autoconf + +------------------------------------------------------------------- @@ -13 +20 @@ - support is sufficient. + support is sufficient (boo#1242079) Old: ---- squashfuse-0.6.0.tar.gz New: ---- squashfuse-0.6.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ squashfuse.spec ++++++ --- /var/tmp/diff_new_pack.RRwBHd/_old 2025-06-02 22:01:16.975018634 +0200 +++ /var/tmp/diff_new_pack.RRwBHd/_new 2025-06-02 22:01:16.975018634 +0200 @@ -2,6 +2,7 @@ # spec file for package squashfuse # # Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 Andreas Stieger <andreas.stie...@gmx.de> # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,20 +19,16 @@ %define so_version 0 Name: squashfuse -Version: 0.6.0 +Version: 0.6.1 Release: 0 Summary: FUSE module to mount squashfs images License: BSD-2-Clause Group: System/Filesystems URL: https://github.com/vasi/squashfuse Source: %{url}/releases/download/%{version}/squashfuse-%{version}.tar.gz -BuildRequires: autoconf -BuildRequires: automake BuildRequires: fdupes BuildRequires: gcc BuildRequires: libattr-devel -BuildRequires: libtool -BuildRequires: make BuildRequires: pkgconfig BuildRequires: sed BuildRequires: pkgconfig(fuse3) @@ -80,7 +77,6 @@ %autosetup %build -./autogen.sh %configure \ --disable-static \ %{nil} @@ -111,10 +107,12 @@ %{_bindir}/squashfuse_ll %files tools +%license LICENSE %{_bindir}/squashfuse_ls %{_bindir}/squashfuse_extract %files devel +%license LICENSE %{_libdir}/*.so %{_libdir}/pkgconfig/* %{_includedir}/squashfuse ++++++ squashfuse-0.6.0.tar.gz -> squashfuse-0.6.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/Makefile.am new/squashfuse-0.6.1/Makefile.am --- old/squashfuse-0.6.0/Makefile.am 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/Makefile.am 2025-04-26 07:53:34.000000000 +0200 @@ -33,7 +33,7 @@ util.h fs.h libsquashfuse_convenience_la_CPPFLAGS = $(ZLIB_CPPFLAGS) $(XZ_CPPFLAGS) $(LZO_CPPFLAGS) \ $(LZ4_CPPFLAGS) $(ZSTD_CPPFLAGS) $(FUSE_CPPFLAGS) -libsquashfuse_convenience_la_LIBADD = $(COMPRESSION_LIBS) $(FUSE_LIBS) +libsquashfuse_convenience_la_LIBADD = $(COMPRESSION_LIBS) # Main library: libsquashfuse lib_LTLIBRARIES += libsquashfuse.la diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/Makefile.in new/squashfuse-0.6.1/Makefile.in --- old/squashfuse-0.6.0/Makefile.in 2025-03-04 22:41:30.000000000 +0100 +++ new/squashfuse-0.6.1/Makefile.in 2025-04-26 07:54:06.000000000 +0200 @@ -211,8 +211,7 @@ libsquashfuse_la_DEPENDENCIES = libsquashfuse_convenience.la am_libsquashfuse_la_OBJECTS = libsquashfuse_la_OBJECTS = $(am_libsquashfuse_la_OBJECTS) -libsquashfuse_convenience_la_DEPENDENCIES = $(am__DEPENDENCIES_2) \ - $(am__DEPENDENCIES_1) +libsquashfuse_convenience_la_DEPENDENCIES = $(am__DEPENDENCIES_2) am_libsquashfuse_convenience_la_OBJECTS = \ libsquashfuse_convenience_la-swap.lo \ libsquashfuse_convenience_la-cache.lo \ @@ -752,6 +751,8 @@ pkgconfig_fuse3_LIBS = @pkgconfig_fuse3_LIBS@ pkgconfig_fuse_CFLAGS = @pkgconfig_fuse_CFLAGS@ pkgconfig_fuse_LIBS = @pkgconfig_fuse_LIBS@ +pkgconfig_fuse_t_CFLAGS = @pkgconfig_fuse_t_CFLAGS@ +pkgconfig_fuse_t_LIBS = @pkgconfig_fuse_t_LIBS@ pkgconfigdir = @pkgconfigdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ @@ -807,7 +808,7 @@ libsquashfuse_convenience_la_CPPFLAGS = $(ZLIB_CPPFLAGS) $(XZ_CPPFLAGS) $(LZO_CPPFLAGS) \ $(LZ4_CPPFLAGS) $(ZSTD_CPPFLAGS) $(FUSE_CPPFLAGS) -libsquashfuse_convenience_la_LIBADD = $(COMPRESSION_LIBS) $(FUSE_LIBS) +libsquashfuse_convenience_la_LIBADD = $(COMPRESSION_LIBS) libsquashfuse_la_SOURCES = libsquashfuse_la_CPPFLAGS = $(ZLIB_CPPFLAGS) $(XZ_CPPFLAGS) $(LZO_CPPFLAGS) \ $(LZ4_CPPFLAGS) $(ZSTD_CPPFLAGS) $(FUSE_CPPFLAGS) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/NEWS new/squashfuse-0.6.1/NEWS --- old/squashfuse-0.6.0/NEWS 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/NEWS 2025-04-26 07:53:34.000000000 +0200 @@ -1,3 +1,8 @@ +0.6.1 - 26 April 2025 + + * Build out-of-the-box with FUSE-T + * Disable parts of tests that fail on macOS + 0.6.0 - 4 March 2025 * Add `.` and `..` in directory listings. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/configure new/squashfuse-0.6.1/configure --- old/squashfuse-0.6.0/configure 2025-03-04 22:41:29.000000000 +0100 +++ new/squashfuse-0.6.1/configure 2025-04-26 07:54:05.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for squashfuse 0.6.0. +# Generated by GNU Autoconf 2.71 for squashfuse 0.6.1. # # Report bugs to <d...@vasilevsky.ca>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='squashfuse' PACKAGE_TARNAME='squashfuse' -PACKAGE_VERSION='0.6.0' -PACKAGE_STRING='squashfuse 0.6.0' +PACKAGE_VERSION='0.6.1' +PACKAGE_STRING='squashfuse 0.6.1' PACKAGE_BUGREPORT='d...@vasilevsky.ca' PACKAGE_URL='' @@ -689,6 +689,8 @@ SQ_WANT_LOWLEVEL_TRUE SQ_WANT_HIGHLEVEL_FALSE SQ_WANT_HIGHLEVEL_TRUE +pkgconfig_fuse_t_LIBS +pkgconfig_fuse_t_CFLAGS pkgconfig_fuse_LIBS pkgconfig_fuse_CFLAGS pkgconfig_fuse3_LIBS @@ -884,7 +886,9 @@ pkgconfig_fuse3_CFLAGS pkgconfig_fuse3_LIBS pkgconfig_fuse_CFLAGS -pkgconfig_fuse_LIBS' +pkgconfig_fuse_LIBS +pkgconfig_fuse_t_CFLAGS +pkgconfig_fuse_t_LIBS' # Initialize some variables set by options. @@ -1433,7 +1437,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures squashfuse 0.6.0 to adapt to many kinds of systems. +\`configure' configures squashfuse 0.6.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1505,7 +1509,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of squashfuse 0.6.0:";; + short | recursive ) echo "Configuration of squashfuse 0.6.1:";; esac cat <<\_ACEOF @@ -1590,6 +1594,10 @@ C compiler flags for pkgconfig_fuse, overriding pkg-config pkgconfig_fuse_LIBS linker flags for pkgconfig_fuse, overriding pkg-config + pkgconfig_fuse_t_CFLAGS + C compiler flags for pkgconfig_fuse_t, overriding pkg-config + pkgconfig_fuse_t_LIBS + linker flags for pkgconfig_fuse_t, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1658,7 +1666,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -squashfuse configure 0.6.0 +squashfuse configure 0.6.1 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2023,7 +2031,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by squashfuse $as_me 0.6.0, which was +It was created by squashfuse $as_me 0.6.1, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3415,7 +3423,7 @@ # Define the identity of the package. PACKAGE='squashfuse' - VERSION='0.6.0' + VERSION='0.6.1' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -16479,6 +16487,318 @@ fi + # Use pkgconfig to look for fuse-t + if test "x$sq_fuse_found" = xyes +then : + +else $as_nop + + +printf "%s\n" "#define FUSE_USE_VERSION 26" >>confdefs.h + + + + + + sq_save_LIBS_1=$LIBS + + + sq_save_CPPFLAGS_1=$CPPFLAGS + + + + + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fuse-t" >&5 +printf %s "checking for fuse-t... " >&6; } + +if test -n "$pkgconfig_fuse_t_CFLAGS"; then + pkg_cv_pkgconfig_fuse_t_CFLAGS="$pkgconfig_fuse_t_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse-t\""; } >&5 + ($PKG_CONFIG --exists --print-errors "fuse-t") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_pkgconfig_fuse_t_CFLAGS=`$PKG_CONFIG --cflags "fuse-t" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$pkgconfig_fuse_t_LIBS"; then + pkg_cv_pkgconfig_fuse_t_LIBS="$pkgconfig_fuse_t_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"fuse-t\""; } >&5 + ($PKG_CONFIG --exists --print-errors "fuse-t") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_pkgconfig_fuse_t_LIBS=`$PKG_CONFIG --libs "fuse-t" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + pkgconfig_fuse_t_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "fuse-t" 2>&1` + else + pkgconfig_fuse_t_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "fuse-t" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$pkgconfig_fuse_t_PKG_ERRORS" >&5 + + : +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + : +else + pkgconfig_fuse_t_CFLAGS=$pkg_cv_pkgconfig_fuse_t_CFLAGS + pkgconfig_fuse_t_LIBS=$pkg_cv_pkgconfig_fuse_t_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + + LIBS="$LIBS $pkgconfig_fuse_t_LIBS" + # yes, CFLAGS, we want the preprocessor to work + CPPFLAGS="$CPPFLAGS $pkgconfig_fuse_t_CFLAGS" + + # FUSE-T bug can mis-install header path: https://github.com/macos-fuse-t/fuse-t/issues/77 + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -I/Library/Frameworks/fuse_t.framework/Headers" + + sq_fuse_ok=yes + as_sq_cv_lib=`printf "%s\n" "sq_cv_lib_fuse_""fuse-t""_""$LIBS" | $as_tr_sh` + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUSE library" >&5 +printf %s "checking for FUSE library... " >&6; } +if eval test \${$as_sq_cv_lib+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + for sq_lib in '' fuse-t + do + + + + + sq_save_LIBS_2=$LIBS + + + sq_save_CPPFLAGS_2=$CPPFLAGS + + + if test "x$sq_lib" = x +then : + +else $as_nop + LIBS="$LIBS -l$sq_lib" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char fuse_get_context (); +int +main (void) +{ +return fuse_get_context (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + if test "x$sq_lib" = x +then : + sq_lib_out="already present" +else $as_nop + sq_lib_out="-l$sq_lib" +fi + eval "$as_sq_cv_lib=\$sq_lib_out" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + + + LIBS=$sq_save_LIBS_2 + + + + + CPPFLAGS=$sq_save_CPPFLAGS_2 + + + + + + if eval test \${$as_sq_cv_lib+y} +then : + break +fi + done + if eval test \${$as_sq_cv_lib+y} +then : + +else $as_nop + eval "$as_sq_cv_lib=no" +fi + +fi +eval ac_res=\$$as_sq_cv_lib + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_sq_cv_lib"\" = x"no" +then : + sq_fuse_ok=no +fi + + if test "x$sq_fuse_ok" = "xno" +then : + +else $as_nop + + as_sq_cv_hdr=`printf "%s\n" "sq_cv_header_fuse_""$CPPFLAGS" | $as_tr_sh` + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FUSE header" >&5 +printf %s "checking for FUSE header... " >&6; } +if eval test \${$as_sq_cv_hdr+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <fuse.h> + #include <fuse_opt.h> + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_sq_cv_hdr=yes" +else $as_nop + eval "$as_sq_cv_hdr=no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +eval ac_res=\$$as_sq_cv_hdr + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test \"x\$"$as_sq_cv_hdr"\" = x"yes" +then : + +else $as_nop + sq_fuse_ok=no +fi + + +fi + + if test "x$sq_fuse_ok" = "xno" +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Can't find fuse-t with pkgconfig +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + + eval sq_lib_res=\$$as_sq_cv_lib + if test "x$sq_lib_res" = "xalready present" +then : + +else $as_nop + LIBS="$LIBS $sq_lib_res" +fi + sq_fuse_found=yes + +fi + + + + +fi + + + + + + if test "x$sq_fuse_found" = x +then : + +else $as_nop + + FUSE_LIBS=`echo | $AWK '{ i=index(v,o); if(i>0){print substr(v,1,i-1) substr(v,i+length(o))}else{print v} }' v="$LIBS" o="$sq_save_LIBS_1"` + + +fi + + + + + + if test "x$sq_fuse_found" = x +then : + +else $as_nop + + FUSE_CPPFLAGS=`echo | $AWK '{ i=index(v,o); if(i>0){print substr(v,1,i-1) substr(v,i+length(o))}else{print v} }' v="$CPPFLAGS" o="$sq_save_CPPFLAGS_1"` + + +fi + + + + + + + LIBS=$sq_save_LIBS_1 + + + + + CPPFLAGS=$sq_save_CPPFLAGS_1 + + + + + + + +fi # Default search locations if test "x$sq_cv_lib_fuse_LIBS" = x @@ -17629,6 +17949,102 @@ then : + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to disable macFUSE extensions" >&5 +printf %s "checking if we need to disable macFUSE extensions... " >&6; } +if test ${sq_cv_decl_fuse_macfuse_extensions+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + + + + + sq_save_LIBS_1=$LIBS + + + sq_save_CPPFLAGS_1=$CPPFLAGS + + + LIBS="$LIBS $FUSE_LIBS" + CPPFLAGS="$CPPFLAGS $FUSE_CPPFLAGS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <fuse.h> +int +main (void) +{ + + struct fuse_operations ops; + int (*getattr_func)(const char*, struct stat*, struct fuse_file_info*); + ops.getattr = getattr_func; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + sq_cv_decl_fuse_macfuse_extensions=no +else $as_nop + + CPPFLAGS="$CPPFLAGS -DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <fuse.h> +int +main (void) +{ + + struct fuse_operations ops; + int (*getattr_func)(const char*, struct stat*, struct fuse_file_info*); + ops.getattr = getattr_func; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + sq_cv_decl_fuse_macfuse_extensions=yes +else $as_nop + sq_cv_decl_fuse_macfuse_extensions=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + + + LIBS=$sq_save_LIBS_1 + + + + + CPPFLAGS=$sq_save_CPPFLAGS_1 + + + + + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sq_cv_decl_fuse_macfuse_extensions" >&5 +printf "%s\n" "$sq_cv_decl_fuse_macfuse_extensions" >&6; } + + if test "x$sq_cv_decl_fuse_macfuse_extensions" = xyes +then : + + CPPFLAGS="$CPPFLAGS -DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + +fi + + if test "x$sq_low_level" = xno then : @@ -19110,7 +19526,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by squashfuse $as_me 0.6.0, which was +This file was extended by squashfuse $as_me 0.6.1, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -19178,7 +19594,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -squashfuse config.status 0.6.0 +squashfuse config.status 0.6.1 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/configure.ac new/squashfuse-0.6.1/configure.ac --- old/squashfuse-0.6.0/configure.ac 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/configure.ac 2025-04-26 07:53:34.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([squashfuse], [0.6.0], [d...@vasilevsky.ca]) +AC_INIT([squashfuse], [0.6.1], [d...@vasilevsky.ca]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) @@ -46,6 +46,7 @@ # FUSE SQ_FUSE_API AS_IF([test "x$sq_fuse_found" = xyes],[ + SQ_FUSE_API_MACFUSE_EXTENSIONS SQ_FUSE_API_LOWLEVEL SQ_FUSE_API_VERSION SQ_FUSE_API_XATTR_POSITION diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/m4/squashfuse_fuse.m4 new/squashfuse-0.6.1/m4/squashfuse_fuse.m4 --- old/squashfuse-0.6.0/m4/squashfuse_fuse.m4 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/m4/squashfuse_fuse.m4 2025-04-26 07:53:34.000000000 +0200 @@ -163,6 +163,18 @@ [:]) SQ_KEEP_FLAGS([FUSE],[$sq_fuse_found]) ]) + # Use pkgconfig to look for fuse-t + AS_IF([test "x$sq_fuse_found" = xyes],,[ + AC_DEFINE([FUSE_USE_VERSION], [26], [Version of FUSE API to use]) + SQ_SAVE_FLAGS + SQ_PKG([fuse_t],[fuse-t],[ + # FUSE-T bug can mis-install header path: https://github.com/macos-fuse-t/fuse-t/issues/77 + CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -I/Library/Frameworks/fuse_t.framework/Headers" + SQ_TRY_FUSE([fuse-t],[sq_fuse_found=yes], + [AC_MSG_FAILURE([Can't find fuse-t with pkgconfig])]) + ], [:]) + SQ_KEEP_FLAGS([FUSE],[$sq_fuse_found]) + ]) # Default search locations AS_IF([test "x$sq_cv_lib_fuse_LIBS" = x],[SQ_SEARCH_FUSE_DIRS],[ @@ -322,3 +334,35 @@ SQ_RESTORE_FLAGS ]) + +# SQ_FUSE_API_MACFUSE_EXTENSIONS +# +# Check if we need to disable macFUSE extensions +AC_DEFUN([SQ_FUSE_API_MACFUSE_EXTENSIONS],[ + AC_DEFUN([SQ_FUSE_API_MACFUSE_EXTENSIONS_SOURCE],[ + AC_LANG_PROGRAM([#include <fuse.h>],[ + struct fuse_operations ops; + int (*getattr_func)(const char*, struct stat*, struct fuse_file_info*); + ops.getattr = getattr_func; + ])]) + + AC_CACHE_CHECK([if we need to disable macFUSE extensions], + [sq_cv_decl_fuse_macfuse_extensions],[ + SQ_SAVE_FLAGS + LIBS="$LIBS $FUSE_LIBS" + CPPFLAGS="$CPPFLAGS $FUSE_CPPFLAGS" + AC_COMPILE_IFELSE([SQ_FUSE_API_MACFUSE_EXTENSIONS_SOURCE], + [sq_cv_decl_fuse_macfuse_extensions=no], + [ + CPPFLAGS="$CPPFLAGS -DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + AC_COMPILE_IFELSE([SQ_FUSE_API_MACFUSE_EXTENSIONS_SOURCE], + [sq_cv_decl_fuse_macfuse_extensions=yes], + [sq_cv_decl_fuse_macfuse_extensions=no]) + ]) + SQ_RESTORE_FLAGS + ]) + + AS_IF([test "x$sq_cv_decl_fuse_macfuse_extensions" = xyes],[ + CPPFLAGS="$CPPFLAGS -DFUSE_DARWIN_ENABLE_EXTENSIONS=0" + ]) +]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/tests/lib.sh.in new/squashfuse-0.6.1/tests/lib.sh.in --- old/squashfuse-0.6.0/tests/lib.sh.in 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/tests/lib.sh.in 2025-04-26 07:53:34.000000000 +0200 @@ -28,3 +28,16 @@ fi echo "Found compressors:$compressors" } + +sq_skip_notify() { + case @build_os@ in + darwin*) + if otool -L ./squashfuse | grep -q fuse-t; then + echo "yes" + return 0 + fi + ;; + esac + echo "no" + return 1 +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/tests/ll-smoke.sh.in new/squashfuse-0.6.1/tests/ll-smoke.sh.in --- old/squashfuse-0.6.0/tests/ll-smoke.sh.in 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/tests/ll-smoke.sh.in 2025-04-26 07:53:34.000000000 +0200 @@ -11,7 +11,6 @@ trap cleanup EXIT set -e - WORKDIR=$(mktemp -d) cleanup() { @@ -27,6 +26,19 @@ fi } +test_nonexistent_mountpoint=yes +test_idle_timeout=yes +wait_sleeping=$(sq_skip_notify || true) +case "$OSTYPE" in + darwin*) + # macOS may auto-create mountpoints, weird! + test_nonexistent_mountpoint=no + + # macOS background processes can inhibit timeout + test_idle_timeout=no + ;; +esac + find_compressors echo "Generating random test files..." @@ -47,26 +59,31 @@ echo "Mounting squashfs image..." FIFO_1=$(mktemp -u) mkfifo "$FIFO_1" - $SFLL -f $SFLL_EXTRA_ARGS -o notify_pipe="$FIFO_1" "$WORKDIR/squashfs.image" "$WORKDIR/mount" >"$WORKDIR/squahfs_ll.log" 2>&1 & + $SFLL -f $SFLL_EXTRA_ARGS -o notify_pipe="$FIFO_1" "$WORKDIR/squashfs.image" "$WORKDIR/mount" >"$WORKDIR/squashfs_ll.log" 2>&1 & # Wait for the archive to be mounted. TSAN builds can take some time to mount. + if [ "x$wait_sleeping" = xyes ]; then + sleep 5 + fi STATUS=$(head -c1 "$FIFO_1") if [ "$STATUS" != "s" ]; then echo "Image did not mount successfully" - cp "$WORKDIR/squahfs_ll.log" /tmp/squahfs_ll.smoke.log - echo "There may be clues in /tmp/squahfs_ll.smoke.log" + cp "$WORKDIR/squashfs_ll.log" /tmp/squashfs_ll.smoke.log + echo "There may be clues in /tmp/squashfs_ll.smoke.log" exit 1 fi - FIFO_2=$(mktemp -u) - mkfifo "$FIFO_2" - $SFLL -f $SFLL_EXTRA_ARGS -o notify_pipe="$FIFO_2" "$WORKDIR/squashfs.image" "$WORKDIR/nonexistent_mount" >"$WORKDIR/squahfs_ll.log" 2>&1 & - # This time the mount command should fail because the mountpoint doesn't exist - STATUS=$(head -c1 "$FIFO_2") - if [ "$STATUS" != "f" ]; then - echo "Image mounted successfully when it should have failed" - cp "$WORKDIR/squahfs_ll.log" /tmp/squahfs_ll.smoke.log - echo "There may be clues in /tmp/squahfs_ll.smoke.log" - exit 1 + if [ "x$test_nonexistent_mountpoint" = xyes ]; then + FIFO_2=$(mktemp -u) + mkfifo "$FIFO_2" + $SFLL -f $SFLL_EXTRA_ARGS -o notify_pipe="$FIFO_2" "$WORKDIR/squashfs.image" "$WORKDIR/nonexistent_mount" >"$WORKDIR/squashfs_ll.log" 2>&1 & + # This time the mount command should fail because the mountpoint doesn't exist + STATUS=$(head -c1 "$FIFO_2") + if [ "$STATUS" != "f" ]; then + echo "Image mounted successfully when it should have failed" + cp "$WORKDIR/squashfs_ll.log" /tmp/squashfs_ll.smoke.log + echo "There may be clues in /tmp/squashfs_ll.smoke.log" + exit 1 + fi fi if command -v fio >/dev/null; then @@ -137,7 +154,7 @@ sq_umount "$WORKDIR/mount" # Only test timeouts once, it takes a long time - if [ -z "$did_timeout" ]; then + if [ "x$test_idle_timeout" = xyes -a -z "$did_timeout" ]; then echo "Remounting with idle unmount option..." $SFLL $SFLL_EXTRA_ARGS -otimeout=$IDLE_TIMEOUT "$WORKDIR/squashfs.image" "$WORKDIR/mount" if ! sq_is_mountpoint "$WORKDIR/mount"; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/squashfuse-0.6.0/tests/notify_test.sh new/squashfuse-0.6.1/tests/notify_test.sh --- old/squashfuse-0.6.0/tests/notify_test.sh 2025-03-04 22:40:57.000000000 +0100 +++ new/squashfuse-0.6.1/tests/notify_test.sh 2025-04-26 07:53:34.000000000 +0200 @@ -20,6 +20,12 @@ rm -rf "$WORKDIR" fi } + +if sq_skip_notify >/dev/null; then + echo exit + exit 77 +fi + echo "Generating random test files..." mkdir -p "$WORKDIR/source" mkdir -p "$WORKDIR/mount"