Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fsarchiver for openSUSE:Factory checked in at 2023-03-21 17:41:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fsarchiver (Old) and /work/SRC/openSUSE:Factory/.fsarchiver.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fsarchiver" Tue Mar 21 17:41:51 2023 rev:28 rq:1073260 version:0.8.7 Changes: -------- --- /work/SRC/openSUSE:Factory/fsarchiver/fsarchiver.changes 2021-03-02 12:46:16.624398069 +0100 +++ /work/SRC/openSUSE:Factory/.fsarchiver.new.31432/fsarchiver.changes 2023-03-21 17:41:52.769931123 +0100 @@ -1,0 +2,12 @@ +Mon Mar 20 09:37:26 UTC 2023 - Michael Vetter <mvet...@suse.com> + +- Update to 0.8.7: + * Implement support for option "uuid=" for vfat + * Update list of btrfs supported features + * Add support for the "nrext64" feature on XFS + * Do not error out on deleted files when option -A is used + * Handle termination by signal in exec_command() + * Add support for the "orphan_file" feature in EXT4 + * Do not try to save xattrs if not supported by the filesystem + +------------------------------------------------------------------- Old: ---- fsarchiver-0.8.6.tar.gz New: ---- fsarchiver-0.8.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fsarchiver.spec ++++++ --- /var/tmp/diff_new_pack.PB40Tq/_old 2023-03-21 17:41:53.369933993 +0100 +++ /var/tmp/diff_new_pack.PB40Tq/_new 2023-03-21 17:41:53.377934031 +0100 @@ -1,7 +1,7 @@ # # spec file for package fsarchiver # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: fsarchiver -Version: 0.8.6 +Version: 0.8.7 Release: 0 Summary: Filesystem Archiver License: GPL-2.0-only ++++++ fsarchiver-0.8.6.tar.gz -> fsarchiver-0.8.7.tar.gz ++++++ ++++ 3040 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/ChangeLog new/fsarchiver-0.8.7/ChangeLog --- old/fsarchiver-0.8.6/ChangeLog 2021-02-27 12:54:56.000000000 +0100 +++ new/fsarchiver-0.8.7/ChangeLog 2023-03-19 14:53:17.000000000 +0100 @@ -1,5 +1,13 @@ fsarchiver: Filesystem Archiver for Linux [http://www.fsarchiver.org] ===================================================================== +* 0.8.7 (2023-03-19): + - Implement support for option "uuid=" for vfat (Marcos Mello) + - Update list of btrfs supported features (Marcos Mello) + - Add support for the "nrext64" feature on XFS (Marcos Mello) + - Do not error out on deleted files when option -A is used (Marcos Mello) + - Handle termination by signal in exec_command() (Marcos Mello) + - Add support for the "orphan_file" feature in EXT4 (Marcos Mello) + - Do not try to save xattrs if not supported by the filesystem (Marcos Mello) * 0.8.6 (2021-02-27): - Add support for EXT4 fast_commit feature (Marcos Mello) - Add support for XFS features inobtcount and bigtime (Marcos Mello) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/INSTALL new/fsarchiver-0.8.7/INSTALL --- old/fsarchiver-0.8.6/INSTALL 2021-02-27 12:56:08.000000000 +0100 +++ new/fsarchiver-0.8.7/INSTALL 2023-03-19 14:56:47.000000000 +0100 @@ -1,8 +1,8 @@ Installation Instructions ************************* - Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software -Foundation, Inc. + Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free +Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -225,7 +225,7 @@ and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX 'make' updates targets which have the same time stamps as their + HP-UX 'make' updates targets which have the same timestamps as their prerequisites, which makes it generally unusable when shipped generated files such as 'configure' are involved. Use GNU 'make' instead. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/compile new/fsarchiver-0.8.7/compile --- old/fsarchiver-0.8.6/compile 2021-02-27 12:56:08.000000000 +0100 +++ new/fsarchiver-0.8.7/compile 2023-03-19 14:56:47.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2020 Free Software Foundation, Inc. +# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tro...@cygnus.com>. # # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/configure.ac new/fsarchiver-0.8.7/configure.ac --- old/fsarchiver-0.8.6/configure.ac 2021-02-27 12:55:56.000000000 +0100 +++ new/fsarchiver-0.8.7/configure.ac 2023-03-19 14:53:17.000000000 +0100 @@ -3,8 +3,8 @@ AC_PREREQ(2.59) -AC_INIT([fsarchiver], 0.8.6) -AC_DEFINE([PACKAGE_RELDATE], "2021-02-27", [Define the date of the release]) +AC_INIT([fsarchiver], 0.8.7) +AC_DEFINE([PACKAGE_RELDATE], "2023-03-19", [Define the date of the release]) AC_DEFINE([PACKAGE_FILEFMT], "FsArCh_002", [Define the version of the file format]) AC_DEFINE([PACKAGE_VERSION_A], 0, [Major version number]) AC_DEFINE([PACKAGE_VERSION_B], 8, [Medium version number]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/distrib/rpm/fsarchiver.spec new/fsarchiver-0.8.7/distrib/rpm/fsarchiver.spec --- old/fsarchiver-0.8.6/distrib/rpm/fsarchiver.spec 2020-05-08 20:00:34.000000000 +0200 +++ new/fsarchiver-0.8.7/distrib/rpm/fsarchiver.spec 2023-03-19 14:54:55.000000000 +0100 @@ -1,5 +1,5 @@ Name: fsarchiver -Version: 0.8.6 +Version: 0.8.7 Release: 1%{?dist} Summary: Safe and flexible file-system backup/deployment tool diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/doc/fsarchiver.8 new/fsarchiver-0.8.7/doc/fsarchiver.8 --- old/fsarchiver-0.8.6/doc/fsarchiver.8 2020-09-13 17:49:37.000000000 +0200 +++ new/fsarchiver-0.8.7/doc/fsarchiver.8 2023-03-19 14:12:31.000000000 +0100 @@ -131,7 +131,8 @@ during the backup. Modifications can drive to inconsistencies in the backup. Using LVM snapshots is the recommended way to make backups since it will provide consistency, but it is only available for filesystems which -are on LVM logical volumes. +are on LVM logical volumes. Deleted files during the backup process are +ignored when this option is used. .IP "\fB\-a, \-\-allow-no-acl-xattr\fP" Allow to save a filesystem when ACLs and extended attributes are not supported (or are disabled) by the kernel. By default fsarchiver fails with diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/missing new/fsarchiver-0.8.7/missing --- old/fsarchiver-0.8.6/missing 2021-02-27 12:56:08.000000000 +0100 +++ new/fsarchiver-0.8.7/missing 2023-03-19 14:56:47.000000000 +0100 @@ -3,7 +3,7 @@ scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2020 Free Software Foundation, Inc. +# Copyright (C) 1996-2021 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/common.c new/fsarchiver-0.8.7/src/common.c --- old/fsarchiver-0.8.6/src/common.c 2020-05-08 20:00:34.000000000 +0200 +++ new/fsarchiver-0.8.7/src/common.c 2023-03-19 14:12:31.000000000 +0100 @@ -261,7 +261,6 @@ { char pathtest[PATH_MAX]; char delims[]=":\t\n"; - struct stat bufstat; char pathenv[4096]; char *saveptr=0; char *result; @@ -276,7 +275,7 @@ for(i=0; result != NULL; i++) { snprintf(pathtest, sizeof(pathtest), "%s/%s", result, prog); - if (stat(pathtest, &bufstat)==0 && access(pathtest, X_OK)==0) + if (access(pathtest, X_OK)==0) { snprintf(buffer, bufsize, "%s", pathtest); return 0; @@ -403,9 +402,10 @@ if ((stderrbuf!=NULL) && (errpos+1 < stderrsize)) read(mystderr, stderrbuf+errpos, stderrsize-errpos-1); - msgprintf(MSG_VERB1, "command [%s] returned %d\n", command, WEXITSTATUS(status)); + status = WIFSIGNALED(status) ? 128 + WTERMSIG(status) : WEXITSTATUS(status); + msgprintf(MSG_VERB1, "command [%s] returned %d\n", command, status); if (exitst) - *exitst=WEXITSTATUS(status); + *exitst=status; if ((stdoutbuf!=NULL) && (outpos>0)) msgprintf(MSG_DEBUG1, "\n----stdout----\n%s\n----stdout----\n\n", stdoutbuf); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_btrfs.h new/fsarchiver-0.8.7/src/fs_btrfs.h --- old/fsarchiver-0.8.6/src/fs_btrfs.h 2020-05-08 20:00:34.000000000 +0200 +++ new/fsarchiver-0.8.7/src/fs_btrfs.h 2023-03-19 14:12:31.000000000 +0100 @@ -29,33 +29,48 @@ int btrfs_get_reqmntopt(char *partition, struct s_strlist *reqopt, struct s_strlist *badopt); int btrfs_test(char *devname); -// compat flags: official definition from linux-3.14/fs/btrfs/ctree.h +// compat flags: official definition from linux-5.15/fs/btrfs/ctree.h +// and linux-5.15/include/uapi/linux/btrfs.h +#define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0) +#define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1) +#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2) + #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0) #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1) #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2) #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3) -#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4) +#define BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD (1ULL << 4) #define BTRFS_FEATURE_INCOMPAT_BIG_METADATA (1ULL << 5) #define BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF (1ULL << 6) #define BTRFS_FEATURE_INCOMPAT_RAID56 (1ULL << 7) #define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8) #define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9) +#define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10) +#define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11) +#define BTRFS_FEATURE_INCOMPAT_ZONED (1ULL << 12) // compat flags: btrfs features that this fsarchiver version supports #define FSA_BTRFS_FEATURE_COMPAT_SUPP 0ULL -#define FSA_BTRFS_FEATURE_COMPAT_RO_SUPP 0ULL + +#define FSA_BTRFS_FEATURE_COMPAT_RO_SUPP \ + (BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE | \ + BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID | \ + BTRFS_FEATURE_COMPAT_RO_VERITY) + #define FSA_BTRFS_FEATURE_INCOMPAT_SUPP \ (BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF | \ BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL | \ BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS | \ BTRFS_FEATURE_INCOMPAT_BIG_METADATA | \ BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO | \ - BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 | \ + BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD | \ BTRFS_FEATURE_INCOMPAT_RAID56 | \ BTRFS_FEATURE_INCOMPAT_EXTENDED_IREF | \ BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA | \ - BTRFS_FEATURE_INCOMPAT_NO_HOLES) - + BTRFS_FEATURE_INCOMPAT_NO_HOLES | \ + BTRFS_FEATURE_INCOMPAT_METADATA_UUID | \ + BTRFS_FEATURE_INCOMPAT_RAID1C34 | \ + BTRFS_FEATURE_INCOMPAT_ZONED) // disk layout definitions #define BTRFS_SUPER_MAGIC 0x9123683E diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_ext2.c new/fsarchiver-0.8.7/src/fs_ext2.c --- old/fsarchiver-0.8.6/src/fs_ext2.c 2021-02-21 09:54:32.000000000 +0100 +++ new/fsarchiver-0.8.7/src/fs_ext2.c 2023-03-19 14:12:31.000000000 +0100 @@ -59,7 +59,7 @@ // us and therefore is not preserved (i.e. present in FSA_FEATURE_INCOMPAT_SUPP but not listed // below). Users can easily enable it with tune2fs if desired. // -struct s_features mkfeatures[] = // cf e2fsprogs-1.46.0/lib/e2p/feature.c +struct s_features mkfeatures[] = // cf e2fsprogs-1.47.0/lib/e2p/feature.c { {"has_journal", FSA_EXT3_FEATURE_COMPAT_HAS_JOURNAL, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT3, PROGVER(1,39,0)}, {"ext_attr", FSA_EXT2_FEATURE_COMPAT_EXT_ATTR, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT2, PROGVER(1,40,5)}, @@ -67,6 +67,7 @@ {"dir_index", FSA_EXT2_FEATURE_COMPAT_DIR_INDEX, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT2, PROGVER(1,33,0)}, {"sparse_super2", FSA_EXT4_FEATURE_COMPAT_SPARSE_SUPER2, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT4, PROGVER(1,42,10)}, {"fast_commit", FSA_EXT4_FEATURE_COMPAT_FAST_COMMIT, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT4, PROGVER(1,46,0)}, + {"orphan_file", FSA_EXT4_FEATURE_COMPAT_ORPHAN_FILE, E2P_FEATURE_COMPAT, EXTFSTYPE_EXT4, PROGVER(1,47,0)}, {"filetype", FSA_EXT2_FEATURE_INCOMPAT_FILETYPE, E2P_FEATURE_INCOMPAT, EXTFSTYPE_EXT2, PROGVER(1,16,0)}, {"extent", FSA_EXT4_FEATURE_INCOMPAT_EXTENTS, E2P_FEATURE_INCOMPAT, EXTFSTYPE_EXT4, PROGVER(1,41,0)}, {"journal_dev", FSA_EXT3_FEATURE_INCOMPAT_JOURNAL_DEV, E2P_FEATURE_INCOMPAT, EXTFSTYPE_EXT3, PROGVER(1,39,0)}, @@ -176,7 +177,6 @@ u64 temp64; int exitst; int ret=0; - int res; int i; // init @@ -413,7 +413,7 @@ // http://marc.info/?l=linux-ext4&m=123246035924487&w=2 if (extfstype==EXTFSTYPE_EXT4 && !mke2fsuuid) { - if ( ((res=exec_command(command, sizeof(command), &exitst, NULL, 0, NULL, 0, "e2fsck -fy %s", partition))!=0) || ((exitst!=0) && (exitst!=1)) ) + if (exec_command(command, sizeof(command), &exitst, NULL, 0, NULL, 0, "e2fsck -fy %s", partition)!=0 || (exitst!=0 && exitst!=1)) { errprintf("command [%s] failed with return status=%d\n", command, exitst); ret=-1; goto extfs_mkfs_cleanup; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_ext2.h new/fsarchiver-0.8.7/src/fs_ext2.h --- old/fsarchiver-0.8.6/src/fs_ext2.h 2021-02-21 09:54:32.000000000 +0100 +++ new/fsarchiver-0.8.7/src/fs_ext2.h 2023-03-19 14:12:31.000000000 +0100 @@ -49,6 +49,7 @@ #define FSA_EXT4_FEATURE_COMPAT_SPARSE_SUPER2 0x0200 #define FSA_EXT4_FEATURE_COMPAT_FAST_COMMIT 0x0400 #define FSA_EXT4_FEATURE_COMPAT_STABLE_INODES 0x0800 +#define FSA_EXT4_FEATURE_COMPAT_ORPHAN_FILE 0x1000 /* for s_feature_ro_compat */ #define FSA_EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER 0x0001 @@ -63,6 +64,7 @@ #define FSA_EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400 #define FSA_EXT4_FEATURE_RO_COMPAT_READONLY 0x1000 #define FSA_EXT4_FEATURE_RO_COMPAT_PROJECT 0x2000 +#define FSA_EXT4_FEATURE_RO_COMPAT_ORPHAN_PRESENT 0x10000 /* for s_feature_incompat */ #define FSA_EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002 @@ -109,7 +111,8 @@ FSA_EXT2_FEATURE_COMPAT_DIR_INDEX|\ FSA_EXT2_FEATURE_COMPAT_LAZY_BG|\ FSA_EXT4_FEATURE_COMPAT_SPARSE_SUPER2|\ - FSA_EXT4_FEATURE_COMPAT_FAST_COMMIT) + FSA_EXT4_FEATURE_COMPAT_FAST_COMMIT|\ + FSA_EXT4_FEATURE_COMPAT_ORPHAN_FILE) #define FSA_FEATURE_RO_COMPAT_SUPP (u64)(FSA_EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER|\ FSA_EXT2_FEATURE_RO_COMPAT_LARGE_FILE|\ FSA_EXT2_FEATURE_RO_COMPAT_BTREE_DIR|\ @@ -121,7 +124,8 @@ FSA_EXT4_FEATURE_RO_COMPAT_BIGALLOC|\ FSA_EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|\ FSA_EXT4_FEATURE_RO_COMPAT_READONLY|\ - FSA_EXT4_FEATURE_RO_COMPAT_PROJECT) + FSA_EXT4_FEATURE_RO_COMPAT_PROJECT|\ + FSA_EXT4_FEATURE_RO_COMPAT_ORPHAN_PRESENT) #define FSA_FEATURE_INCOMPAT_SUPP (u64)(FSA_EXT2_FEATURE_INCOMPAT_FILETYPE|\ FSA_EXT3_FEATURE_INCOMPAT_RECOVER|\ FSA_EXT3_FEATURE_INCOMPAT_JOURNAL_DEV|\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_vfat.c new/fsarchiver-0.8.7/src/fs_vfat.c --- old/fsarchiver-0.8.6/src/fs_vfat.c 2020-05-10 10:43:28.000000000 +0200 +++ new/fsarchiver-0.8.7/src/fs_vfat.c 2023-03-19 14:12:31.000000000 +0100 @@ -65,7 +65,9 @@ strlcatf(mkfsopts, sizeof(mkfsopts), " -n '%.11s' ", buffer); // ---- filesystem serial - if (dico_get_u32(d, 0, FSYSHEADKEY_FSVFATSERIAL, &temp32)==0) + if (strlen(mkfsuuid) > 0) + strlcatf(mkfsopts, sizeof(mkfsopts), " -i '%.8s' ", mkfsuuid); + else if (dico_get_u32(d, 0, FSYSHEADKEY_FSVFATSERIAL, &temp32)==0) strlcatf(mkfsopts, sizeof(mkfsopts), " -i '%08X' ", temp32); // ---- mkfsopt from command line diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_xfs.c new/fsarchiver-0.8.7/src/fs_xfs.c --- old/fsarchiver-0.8.6/src/fs_xfs.c 2021-02-21 09:54:32.000000000 +0100 +++ new/fsarchiver-0.8.7/src/fs_xfs.c 2023-03-19 14:12:31.000000000 +0100 @@ -170,8 +170,7 @@ } // Determine if the "rmapbt" mkfs option should be enabled (reverse mapping btree) - // - starting with linux-4.8 XFS has added a btree that maps filesystem blocks to - // their owner + // - starting with linux-4.8 XFS has added a btree that maps filesystem blocks to their owner // - this feature relies on the V5 on-disk format but it is optional // - this feature will be enabled if the original filesystem was XFS V5 and had it if (xfstoolsver >= PROGVER(4,8,0)) // only use "rmapbt" option when it is supported by mkfs @@ -196,6 +195,7 @@ // to reduce mount times // - this optional feature relies on the V5 on-disk format and on the "finobt" // (free inode btree) mkfs option being enabled + // - this feature is enabled by default when using xfsprogs-5.15.0 or later // - this feature will be enabled if the original filesystem was XFS V5 and had it if (xfstoolsver >= PROGVER(5,10,0)) // only use "inobtcount" option when it is supported by mkfs { @@ -206,6 +206,7 @@ // Determine if the "bigtime" mkfs option should be enabled (large timestamps) // - starting with linux-5.10 XFS has added support for larger inode timestamps, beyond january 2038 // - this feature relies on the V5 on-disk format but it is optional + // - this feature is enabled by default when using xfsprogs-5.15.0 or later // - this feature will be enabled if the original filesystem was XFS V5 and had it if (xfstoolsver >= PROGVER(5,10,0)) // only use "bigtime" option when it is supported by mkfs { @@ -262,6 +263,16 @@ strlcatf(mkfsopts, sizeof(mkfsopts), " -i sparse=%d ", (int)optval); } + // Determine if the "nrext64" mkfs option should be enabled (large extent counters) + // - starting with linux-5.19 XFS has added support for larger number of per-file extents + // - this feature relies on the V5 on-disk format but it is optional + // - this feature will be enabled if the original filesystem was XFS V5 and had it + if (xfstoolsver >= PROGVER(5,19,0)) // only use "nrext64" option when it is supported by mkfs + { + optval = ((xfsver==XFS_SB_VERSION_5) && (sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NREXT64)); + strlcatf(mkfsopts, sizeof(mkfsopts), " -i nrext64=%d ", (int)optval); + } + // ---- mkfsopt from command line strlcatf(mkfsopts, sizeof(mkfsopts), " %s ", fsoptions); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/fs_xfs.h new/fsarchiver-0.8.7/src/fs_xfs.h --- old/fsarchiver-0.8.6/src/fs_xfs.h 2021-02-21 09:54:33.000000000 +0100 +++ new/fsarchiver-0.8.7/src/fs_xfs.h 2023-03-19 14:12:31.000000000 +0100 @@ -190,6 +190,8 @@ #define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */ #define XFS_SB_FEAT_INCOMPAT_META_UUID (1 << 2) /* metadata UUID */ #define XFS_SB_FEAT_INCOMPAT_BIGTIME (1 << 3) /* large timestamps */ +#define XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR (1 << 4) /* needs xfs_repair */ +#define XFS_SB_FEAT_INCOMPAT_NREXT64 (1 << 5) /* large extent counters */ // features supported by the current fsarchiver version #define FSA_XFS_FEATURE_COMPAT_SUPP (u64)(0) @@ -200,7 +202,9 @@ #define FSA_XFS_FEATURE_INCOMPAT_SUPP (u64)(XFS_SB_FEAT_INCOMPAT_FTYPE|\ XFS_SB_FEAT_INCOMPAT_SPINODES|\ XFS_SB_FEAT_INCOMPAT_META_UUID|\ - XFS_SB_FEAT_INCOMPAT_BIGTIME) + XFS_SB_FEAT_INCOMPAT_BIGTIME|\ + XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR|\ + XFS_SB_FEAT_INCOMPAT_NREXT64) #define FSA_XFS_FEATURE_LOG_INCOMPAT_SUPP (u64)(0) #endif // __FS_XFS_H__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fsarchiver-0.8.6/src/oper_save.c new/fsarchiver-0.8.7/src/oper_save.c --- old/fsarchiver-0.8.6/src/oper_save.c 2020-05-08 20:00:34.000000000 +0200 +++ new/fsarchiver-0.8.7/src/oper_save.c 2023-03-19 14:12:31.000000000 +0100 @@ -615,9 +615,14 @@ } // ---- backup other file attributes (xattr + winattr) - if (createar_item_xattr(save, root, relpath, statbuf, dicoattr)!=0) - { msgprintf(MSG_STACK, "backup_item_xattr() failed: cannot prepare xattr-dico for item %s\n", relpath); - attrerrors++; + // selinux can present fake xattrs + // do not try to save them if not supported by the filesystem, otherwise restoration will fail + if (filesys[save->fstype].support_for_xattr==true) + { + if (createar_item_xattr(save, root, relpath, statbuf, dicoattr)!=0) + { msgprintf(MSG_STACK, "backup_item_xattr() failed: cannot prepare xattr-dico for item %s\n", relpath); + attrerrors++; + } } if (filesys[save->fstype].winattr==true) @@ -778,9 +783,16 @@ // ---- get details about current file if (lstat64(fullpath, &statbuf)!=0) - { sysprintf("cannot lstat64(%s)\n", fullpath); - ret=-1; - goto backup_dir_err; + { + if (g_options.allowsaverw==0) + { sysprintf("cannot lstat64(%s)\n", fullpath); + ret=-1; + goto backup_dir_err; + } + else + { sysprintf("cannot lstat64(%s), ignoring\n", fullpath); + continue; // not a fatal error with option '-A' + } } // check the list of excluded files/dirs