Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fatrace for openSUSE:Factory checked in at 2022-12-13 18:57:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fatrace (Old) and /work/SRC/openSUSE:Factory/.fatrace.new.1835 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fatrace" Tue Dec 13 18:57:17 2022 rev:10 rq:1042695 version:0.17.0 Changes: -------- --- /work/SRC/openSUSE:Factory/fatrace/fatrace.changes 2021-12-23 17:54:16.267738465 +0100 +++ /work/SRC/openSUSE:Factory/.fatrace.new.1835/fatrace.changes 2022-12-13 18:57:43.191924561 +0100 @@ -1,0 +2,9 @@ +Sun Dec 4 21:32:48 UTC 2022 - Dirk Müller <dmuel...@suse.com> + +- update to 0.17.0: + * Work around kernel bug with blocking FAN_REPORT_FID with btrfs + * Improve event formatting + * Avoid ELOOP errors when monitoring symlinks + * Monitor ZFS volumes; thanks achims311 + +------------------------------------------------------------------- Old: ---- fatrace-0.16.3.tar.gz New: ---- fatrace-0.17.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fatrace.spec ++++++ --- /var/tmp/diff_new_pack.Nb3ue3/_old 2022-12-13 18:57:43.643926973 +0100 +++ /var/tmp/diff_new_pack.Nb3ue3/_new 2022-12-13 18:57:43.647926995 +0100 @@ -1,7 +1,7 @@ # # spec file for package fatrace # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2013 Philipp Thomas <p...@suse.de> # # All modifications and additions to the file contributed by third parties @@ -19,7 +19,7 @@ %bcond_with tests Name: fatrace -Version: 0.16.3 +Version: 0.17.0 Release: 0 Summary: System wide file access event reporting utility License: GPL-3.0-or-later ++++++ fatrace-0.16.3.tar.gz -> fatrace-0.17.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/.github/workflows/release.yml new/fatrace-0.17.0/.github/workflows/release.yml --- old/fatrace-0.16.3/.github/workflows/release.yml 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/.github/workflows/release.yml 2022-11-11 11:04:56.000000000 +0100 @@ -9,7 +9,7 @@ runs-on: ubuntu-latest steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Create GitHub release uses: docker://antonyurchenko/git-release:latest diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/.github/workflows/tests.yml new/fatrace-0.17.0/.github/workflows/tests.yml --- old/fatrace-0.16.3/.github/workflows/tests.yml 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/.github/workflows/tests.yml 2022-11-11 11:04:56.000000000 +0100 @@ -9,7 +9,7 @@ runs-on: ubuntu-20.04 steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Build run: make @@ -33,7 +33,7 @@ options: --privileged steps: - name: Clone repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Install build and test dependencies run: | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/NEWS new/fatrace-0.17.0/NEWS --- old/fatrace-0.16.3/NEWS 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/NEWS 2022-11-11 11:04:56.000000000 +0100 @@ -1,3 +1,9 @@ +## [0.17.0] - 2022-11-11 + - Work around kernel bug with blocking FAN_REPORT_FID with btrfs + - Improve event formatting + - Avoid ELOOP errors when monitoring symlinks + - Monitor ZFS volumes; thanks achims311 + ## [0.16.3] - 2021-05-15 - Always use line buffering - Fix fd leak with `-f` event type filtering. Thanks Stefan Dotterweich! diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/fatrace.c new/fatrace-0.17.0/fatrace.c --- old/fatrace-0.16.3/fatrace.c 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/fatrace.c 2022-11-11 11:04:56.000000000 +0100 @@ -149,7 +149,7 @@ /* get affected file fd from fanotify_event_info_fid */ fd = open_by_handle_at (get_mount_id ((const fsid_t *) &fid->fsid), - (struct file_handle *) fid->handle, O_RDONLY); + (struct file_handle *) fid->handle, O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_PATH); /* ignore ESTALE for deleted fds between the notification and handling it */ if (fd < 0 && errno != ESTALE) warn ("open_by_handle_at"); @@ -308,7 +308,7 @@ } else if (option_timestamp == 2) { printf ("%li.%06li ", event_time->tv_sec, event_time->tv_usec); } - printf ("%s(%i): %s %s\n", procname[0] == '\0' ? "unknown" : procname, data->pid, mask2str (data->mask), pathname); + printf ("%s(%i): %-3s %s\n", procname[0] == '\0' ? "unknown" : procname, data->pid, mask2str (data->mask), pathname); } static void @@ -378,8 +378,11 @@ * are virtual and do not actually cause disk access. */ if (mount->mnt_fsname == NULL || access (mount->mnt_fsname, F_OK) != 0 || mount->mnt_fsname[0] != '/') { - debug ("ignore: fsname: %s dir: %s type: %s", mount->mnt_fsname, mount->mnt_dir, mount->mnt_type); - continue; + /* zfs mount point don't start with a "/" so allow them anyway */ + if (strcmp(mount->mnt_type, "zfs") != 0) { + debug ("ignore: fsname: %s dir: %s type: %s", mount->mnt_fsname, mount->mnt_dir, mount->mnt_type); + continue; + } } /* root dir already added above */ @@ -653,4 +656,3 @@ return 0; } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/tests/fatrace new/fatrace-0.17.0/tests/fatrace --- old/fatrace-0.16.3/tests/fatrace 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/tests/fatrace 2022-11-11 11:04:56.000000000 +0100 @@ -31,19 +31,19 @@ } # accessing the "head" binary -check_log "RC\?O\? /usr/bin/head$" +check_log "RC\?O\? \+/usr/bin/head$" # head accessing /etc/passwd -check_log "RC\?O\? /etc/passwd$" +check_log "RC\?O\? \+/etc/passwd$" # file creation -check_log "^touch.* C\?W\?O $TEST_FILE" -check_log "^touch.* C\?WO\? $TEST_FILE" -check_log "^bash(.* C\?WO\? $TEST_FILE" +check_log "^touch.* C\?W\?O \+$TEST_FILE" +check_log "^touch.* C\?WO\? \+$TEST_FILE" +check_log "^bash(.* C\?WO\? \+$TEST_FILE" # file creation -check_log "^touch(.*): + $(dirname $TEST_FILE)$" +check_log "^touch(.*): + $(dirname $TEST_FILE)$" # file deletion -check_log "^rm(.*): D $(dirname $TEST_FILE)" +check_log "^rm(.*): D $(dirname $TEST_FILE)" if [ $RC -ne 0 ]; then echo "$RC checks failed -- log:" >&2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/tests/fatrace-btrfs new/fatrace-0.17.0/tests/fatrace-btrfs --- old/fatrace-0.16.3/tests/fatrace-btrfs 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/tests/fatrace-btrfs 2022-11-11 11:04:56.000000000 +0100 @@ -16,6 +16,8 @@ mount -o loop "$IMAGE" "$MOUNT" trap "umount -l '$MOUNT'" EXIT INT QUIT PIPE +btrfs subvolume create "$MOUNT/subv1" + cd "$MOUNT" echo "hello" > world.txt @@ -43,6 +45,10 @@ rm dest/"${TEST_FILE}.2" rmdir dest +echo "create a file on a subvolume" +touch subv1/sub.txt +SUBVOL_FILE=$(realpath subv1/sub.txt) + echo "waiting for fatrace..." wait @@ -56,27 +62,30 @@ } # accessing the world.txt file -check_log "RC\?O\? $(pwd)/world.txt$" +check_log "RC\?O\? \+$(pwd)/world.txt$" # file creation TEST_FILE=$(realpath "$TEST_FILE") -check_log "^touch.* C\?W\?O $TEST_FILE" -check_log "^touch.* C\?WO\? $TEST_FILE" -check_log "^bash(.* C\?WO\? $TEST_FILE" +check_log "^touch.* C\?W\?O \+$TEST_FILE" +check_log "^touch.* C\?WO\? \+$TEST_FILE" +check_log "^bash(.* C\?WO\? \+$TEST_FILE" # file deletion -check_log "^rm(.*): D $(dirname $TEST_FILE)$" +check_log "^rm(.*): D $(dirname $TEST_FILE)$" # dir creation -check_log "^touch(.*): + $(dirname $TEST_FILE)$" -check_log "^mkdir(.*): + $(dirname $TEST_FILE)$" +check_log "^touch(.*): + $(dirname $TEST_FILE)$" +check_log "^mkdir(.*): + $(dirname $TEST_FILE)$" # file renaming; usually one event, but can be two -check_log "^mv(.*): <>\? $(dirname $TEST_FILE)" -check_log "^mv(.*): <\?> $(dirname $TEST_FILE)" +check_log "^mv(.*): <>\? \+$(dirname $TEST_FILE)" +check_log "^mv(.*): <\?> \+$(dirname $TEST_FILE)" # file moving -check_log "^mv(.*): < $(dirname $TEST_FILE)$" -check_log "^mv(.*): > $(dirname $TEST_FILE)/dest$" +check_log "^mv(.*): < $(dirname $TEST_FILE)$" +check_log "^mv(.*): > $(dirname $TEST_FILE)/dest$" + +# subvolume +check_log "^touch.* C\?W\?O \+$SUBVOL_FILE" if [ $RC -ne 0 ]; then echo "$RC checks failed -- log:" >&2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fatrace-0.16.3/tests/fatrace-currentmount new/fatrace-0.17.0/tests/fatrace-currentmount --- old/fatrace-0.16.3/tests/fatrace-currentmount 2021-05-15 21:52:17.000000000 +0200 +++ new/fatrace-0.17.0/tests/fatrace-currentmount 2022-11-11 11:04:56.000000000 +0100 @@ -43,31 +43,31 @@ } # accessing the NEWS file -check_log "RC\?O\? $(pwd)/NEWS$" +check_log "RC\?O\? \+$(pwd)/NEWS$" # file creation TEST_FILE=$(realpath "$TEST_FILE") -check_log "^touch.* C\?W\?O $TEST_FILE" -check_log "^touch.* C\?WO\? $TEST_FILE" -check_log "^bash(.* C\?WO\? $TEST_FILE" +check_log "^touch.* C\?W\?O \+$TEST_FILE" +check_log "^touch.* C\?WO\? \+$TEST_FILE" +check_log "^bash(.* C\?WO\? \+$TEST_FILE" # file deletion -check_log "^rm(.*): D $(dirname $TEST_FILE)$" +check_log "^rm(.*): D $(dirname $TEST_FILE)$" # dir creation -check_log "^touch(.*): + $(dirname $TEST_FILE)$" -check_log "^mkdir(.*): + $(dirname $TEST_FILE)$" +check_log "^touch(.*): + $(dirname $TEST_FILE)$" +check_log "^mkdir(.*): + $(dirname $TEST_FILE)$" # file renaming; usually one event, but can be two -check_log "^mv(.*): <>\? $(dirname $TEST_FILE)" -check_log "^mv(.*): <\?> $(dirname $TEST_FILE)" +check_log "^mv(.*): <>\? \+$(dirname $TEST_FILE)" +check_log "^mv(.*): <\?> \+$(dirname $TEST_FILE)" # file moving -check_log "^mv(.*): < $(dirname $TEST_FILE)$" -check_log "^mv(.*): > $(dirname $TEST_FILE)/dest$" +check_log "^mv(.*): < $(dirname $TEST_FILE)$" +check_log "^mv(.*): > $(dirname $TEST_FILE)/dest$" # ELOOP ln/rm -check_log "^ln(.*): + $(dirname $TEST_FILE)$" -check_log "^rm(.*): D $(dirname $TEST_FILE)$" +check_log "^ln(.*): + $(dirname $TEST_FILE)$" +check_log "^rm(.*): D $(dirname $TEST_FILE)$" if [ $RC -ne 0 ]; then echo "$RC checks failed -- log:" >&2