Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package snapraid for openSUSE:Factory 
checked in at 2026-06-18 21:37:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/snapraid (Old)
 and      /work/SRC/openSUSE:Factory/.snapraid.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "snapraid"

Thu Jun 18 21:37:35 2026 rev:10 rq:1360281 version:14.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/snapraid/snapraid.changes        2026-06-08 
14:28:22.912678084 +0200
+++ /work/SRC/openSUSE:Factory/.snapraid.new.1981/snapraid.changes      
2026-06-18 21:38:50.847654371 +0200
@@ -1,0 +2,8 @@
+Thu Jun 11 15:03:44 UTC 2026 - Paolo Stivanin <[email protected]>
+
+- Update to 14.7:
+  * Fix the 'touch' command on Windows for files with the read-only
+    attribute. The read-only attribute is temporarily removed and
+    then restored. No need to update if you are not on Windows.
+
+-------------------------------------------------------------------

Old:
----
  snapraid-14.6.tar.gz

New:
----
  snapraid-14.7.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ snapraid.spec ++++++
--- /var/tmp/diff_new_pack.BpzX1j/_old  2026-06-18 21:38:51.535683084 +0200
+++ /var/tmp/diff_new_pack.BpzX1j/_new  2026-06-18 21:38:51.535683084 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           snapraid
-Version:        14.6
+Version:        14.7
 Release:        0
 Summary:        Disk array backup for many large rarely-changed files
 License:        GPL-3.0-or-later

++++++ snapraid-14.6.tar.gz -> snapraid-14.7.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/.version new/snapraid-14.7/.version
--- old/snapraid-14.6/.version  2026-06-03 21:16:21.000000000 +0200
+++ new/snapraid-14.7/.version  2026-06-10 15:23:47.000000000 +0200
@@ -1 +1 @@
-14.6
\ No newline at end of file
+14.7
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/HISTORY new/snapraid-14.7/HISTORY
--- old/snapraid-14.6/HISTORY   2026-06-03 21:14:30.000000000 +0200
+++ new/snapraid-14.7/HISTORY   2026-06-10 14:50:56.000000000 +0200
@@ -1,6 +1,12 @@
 SnapRAID HISTORY
 ================
 
+14.7 2026/06
+============
+ * Fix the 'touch' command on Windows for files with the read-only
+   attribute. The read-only attribute is temporarily removed and 
+   then restored. No need to update if you are not on Windows.
+
 14.6 2026/06
 ============
  * Fix stack overflow in deep directory trees on platforms with a small
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/Makefile.am 
new/snapraid-14.7/Makefile.am
--- old/snapraid-14.6/Makefile.am       2026-06-03 21:14:30.000000000 +0200
+++ new/snapraid-14.7/Makefile.am       2026-06-10 15:22:22.000000000 +0200
@@ -203,12 +203,13 @@
        rm -f lcov.info
        rm -f gmon.out
        rm -f makeslackware.sh makeslackdist.sh pkg/snapraid.SlackBuild 
pkg/snapraid.info makedeb.sh pkg/control makerpm.sh pkg/snapraid.spec
-       rm -f pkg/snapraid-*.txz pkg/snapraid_*.deb pkg/snapraid-*.rpm
 
 maintainer-clean-local:
        rm -f $(LIST_MAN)
        rm -f $(LIST_TXT)
        rm -f $(LIST_XML)
+       rm -f snapraid-*.txz snapraid_*.deb snapraid-*.rpm snapraid-*.tar.zst 
snapraid-*.zip snapraid-*.tar.gz
+       rm -f snapraid.src.tar.gz snapraid.tar.gz
 
 # Install localized manpages
 install-data-hook:
@@ -680,7 +681,7 @@
        $(MSG) Silently corrupt some files, scrub and fix filtering for error. 
Test scrub patterns.
        $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) sync
        $(TESTENV) ./mktest$(EXEEXT) damage 1 1 1 bench/disk1/a/*
-       $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
--test-expect-recoverable --test-force-scrub-at 100000 scrub
+       $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
--test-expect-recoverable -p full scrub
        $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) status
        $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) fix -e
        $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) --percentage bad scrub
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/Makefile.in 
new/snapraid-14.7/Makefile.in
--- old/snapraid-14.6/Makefile.in       2026-06-03 21:14:51.000000000 +0200
+++ new/snapraid-14.7/Makefile.in       2026-06-10 15:22:41.000000000 +0200
@@ -1273,12 +1273,13 @@
        rm -f lcov.info
        rm -f gmon.out
        rm -f makeslackware.sh makeslackdist.sh pkg/snapraid.SlackBuild 
pkg/snapraid.info makedeb.sh pkg/control makerpm.sh pkg/snapraid.spec
-       rm -f pkg/snapraid-*.txz pkg/snapraid_*.deb pkg/snapraid-*.rpm
 
 maintainer-clean-local:
        rm -f $(LIST_MAN)
        rm -f $(LIST_TXT)
        rm -f $(LIST_XML)
+       rm -f snapraid-*.txz snapraid_*.deb snapraid-*.rpm snapraid-*.tar.zst 
snapraid-*.zip snapraid-*.tar.gz
+       rm -f snapraid.src.tar.gz snapraid.tar.gz
 
 # Install localized manpages
 install-data-hook:
@@ -1667,7 +1668,7 @@
 @HAVE_THREAD_CHECKER_FALSE@    $(MSG) Silently corrupt some files, scrub and 
fix filtering for error. Test scrub patterns.
 @HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
sync
 @HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) ./mktest$(EXEEXT) damage 1 1 1 
bench/disk1/a/*
-@HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
--test-expect-recoverable --test-force-scrub-at 100000 scrub
+@HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
--test-expect-recoverable -p full scrub
 @HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
status
 @HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
fix -e
 @HAVE_THREAD_CHECKER_FALSE@    $(TESTENV) $(SNAPRAID) $(CHECKFLAGS) -c $(CONF) 
--percentage bad scrub
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/cmdline/mingw.c 
new/snapraid-14.7/cmdline/mingw.c
--- old/snapraid-14.6/cmdline/mingw.c   2026-06-03 21:14:30.000000000 +0200
+++ new/snapraid-14.7/cmdline/mingw.c   2026-06-10 14:50:56.000000000 +0200
@@ -766,6 +766,31 @@
        return windows_info2stat(&info, &tag, st);
 }
 
+int windows_get_file_attributes(const char* file)
+{
+       wchar_t conv_buf[CONV_MAX];
+
+       DWORD ret = GetFileAttributesW(convert(conv_buf, file));
+       if (ret == INVALID_FILE_ATTRIBUTES) {
+               windows_errno(GetLastError());
+               return -1;
+       }
+
+       return ret;
+}
+
+int windows_set_file_attributes(const char* file, int attributes)
+{
+       wchar_t conv_buf[CONV_MAX];
+
+       if (!SetFileAttributesW(convert(conv_buf, file), attributes)) {
+               windows_errno(GetLastError());
+               return -1;
+       }
+
+       return 0;
+}
+
 int windows_lstat(const char* file, struct windows_stat* st)
 {
        wchar_t conv_buf[CONV_MAX];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/cmdline/mingw.h 
new/snapraid-14.7/cmdline/mingw.h
--- old/snapraid-14.6/cmdline/mingw.h   2026-06-03 21:14:30.000000000 +0200
+++ new/snapraid-14.7/cmdline/mingw.h   2026-06-10 14:50:56.000000000 +0200
@@ -381,6 +381,16 @@
  */
 size_t windows_direct_size(void);
 
+/**
+ * Like GetFileAttributes()
+ */
+int windows_get_file_attributes(const char* file);
+
+/**
+ * Like SetFileAttributes()
+ */
+int windows_set_file_attributes(const char* file, int attributes);
+
 /****************************************************************************/
 /* thread */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/cmdline/snapraid.c 
new/snapraid-14.7/cmdline/snapraid.c
--- old/snapraid-14.6/cmdline/snapraid.c        2026-06-03 21:14:30.000000000 
+0200
+++ new/snapraid-14.7/cmdline/snapraid.c        2026-06-10 14:50:56.000000000 
+0200
@@ -1903,11 +1903,18 @@
        } else if (operation == OPERATION_REHASH) {
                state_read(&state);
 
-               /* intercept signals while operating */
-               signal_init();
-
                state_rehash(&state);
 
+               /*
+                * Intercept signals while operating
+                *
+                * Intentionally do this after the touch operation.
+                *
+                * The signal protection is meant only for saving the content 
file,
+                * or an early stop of long operations.
+                */
+               signal_init();
+
                /* save the new state if required */
                if (state.need_write)
                        state_write(&state);
@@ -1945,10 +1952,18 @@
 
                state_touch(&state);
 
-               /* intercept signals while operating */
+               /*
+                * Intercept signals while operating
+                *
+                * Intentionally do this after the touch operation.
+                *
+                * The signal protection is meant only for saving the content 
file,
+                * or an early stop of long operations.
+                */
                signal_init();
 
-               state_write(&state);
+               if (state.need_write)
+                       state_write(&state);
        } else if (operation == OPERATION_SPINUP) {
                ret = state_device(&state, DEVICE_UP, &filterlist_disk);
 #if HAVE_CHECKER
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/cmdline/touch.c 
new/snapraid-14.7/cmdline/touch.c
--- old/snapraid-14.6/cmdline/touch.c   2026-06-03 21:14:30.000000000 +0200
+++ new/snapraid-14.7/cmdline/touch.c   2026-06-10 14:50:56.000000000 +0200
@@ -11,6 +11,8 @@
 void state_touch(struct snapraid_state* state)
 {
        tommy_node* i;
+       unsigned counter = 0;
+
        msg_progress("Setting sub-second timestamps...\n");
 
        /* for all disks */
@@ -63,6 +65,24 @@
 
                                /* open it */
                                f = open(path, flags);
+#ifdef _WIN32
+                               if (f == -1) {
+                                       /* LCOV_EXCL_START */
+                                       if (errno == EACCES) {
+                                               int attributes = 
windows_get_file_attributes(path);
+                                               if (attributes != -1 && 
(attributes & FILE_ATTRIBUTE_READONLY) != 0) {
+                                                       /* remove read only 
attribute */
+                                                       if 
(windows_set_file_attributes(path, attributes & ~FILE_ATTRIBUTE_READONLY) == 0) 
{
+                                                               f = open(path, 
flags);
+                                                               if 
(windows_set_file_attributes(path, attributes) != 0) {
+                                                                       
log_error(errno, "Error restoring read-only attribute for '%s'. %s.\n", path, 
strerror(errno));
+                                                               }
+                                                       }
+                                               }
+                                       }
+                                       /* LCOV_EXCL_STOP */
+                               }
+#endif
                                if (f == -1) {
                                        /* LCOV_EXCL_START */
                                        log_error(errno, "Error opening file 
'%s'. %s.\n", path, strerror(errno));
@@ -123,8 +143,13 @@
 
                                log_tag("touch:%s:%s: %" PRIu64 ".%d\n", 
disk->name, esc_tag(file->sub), (uint64_t)st.st_mtime, STAT_NSEC(&st));
                                msg_info("touch %s\n", fmt_term(disk, 
file->sub));
+
+                               ++counter;
                        }
                }
        }
+
+       msg_status("\n");
+       msg_status("%8u touched files\n", counter);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/snapraid-14.6/configure new/snapraid-14.7/configure
--- old/snapraid-14.6/configure 2026-06-03 21:14:50.000000000 +0200
+++ new/snapraid-14.7/configure 2026-06-10 15:22:40.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for SnapRAID CLI 14.6.
+# Generated by GNU Autoconf 2.72 for SnapRAID CLI 14.7.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
@@ -600,8 +600,8 @@
 # Identity of this package.
 PACKAGE_NAME='SnapRAID CLI'
 PACKAGE_TARNAME='snapraid'
-PACKAGE_VERSION='14.6'
-PACKAGE_STRING='SnapRAID CLI 14.6'
+PACKAGE_VERSION='14.7'
+PACKAGE_STRING='SnapRAID CLI 14.7'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL='https://www.snapraid.it'
 
@@ -1336,7 +1336,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 SnapRAID CLI 14.6 to adapt to many kinds of systems.
+'configure' configures SnapRAID CLI 14.7 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1407,7 +1407,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of SnapRAID CLI 14.6:";;
+     short | recursive ) echo "Configuration of SnapRAID CLI 14.7:";;
    esac
   cat <<\_ACEOF
 
@@ -1530,7 +1530,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-SnapRAID CLI configure 14.6
+SnapRAID CLI configure 14.7
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2116,7 +2116,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by SnapRAID CLI $as_me 14.6, which was
+It was created by SnapRAID CLI $as_me 14.7, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3415,7 +3415,7 @@
 
 # Define the identity of the package.
  PACKAGE='snapraid'
- VERSION='14.6'
+ VERSION='14.7'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -9217,7 +9217,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by SnapRAID CLI $as_me 14.6, which was
+This file was extended by SnapRAID CLI $as_me 14.7, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9282,7 +9282,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-SnapRAID CLI config.status 14.6
+SnapRAID CLI config.status 14.7
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 

Reply via email to