Proposing a 0.33.1 release (please test 0.33.x if you have time)

5 views
Skip to first unread message

Rob Browning

unread,
May 10, 2023, 9:32:26 PM5/10/23
to bup-...@googlegroups.com

I've pushed some changes to a new 0.33.x branch in preparation for a
possible 0.33.1 release. The primary changes include the recently
proposed/discussed ACL fixes, i.e. to stop using \n as a record
separator (which isn't valid for the POSIX short form), and to correctly
restore ACLs whenever there's a default ACL.

The ACL delimiter patch is similar to the one posted earlier, but
includes some fixes based on Johannes' review.

(This does not include the possible broader ACL changes (that would add
support for more platforms) that I've also been toying with.)

https://github.com/bup/bup/tree/0.33.x
https://codeberg.org/bup/bup/src/branch/0.33.x

Currently included:

commit 5772da806f6b008ee7fbbef19b56c2bb7ed85703
Author: Rob Browning <r...@defaultvalue.org>
Date: Wed May 10 20:17:56 2023 -0500

Fix ACL metadata format; delimit short form entries with commas

Previously, ACL entries were delimited by newlines, which is incorrect
according to acl(5), and the POSIX1e standard, and which is rejected
with EINVAL by acl_from_text() on some platforms (e.g. cygwin).

To fix the problem, change read_acl to use comma delimiters when
reading new ACLs for a path, and write those in a new "v2" ACL
metadata record. When loading the previous newline delimited v1
records, convert newline delimiters to commas unless the ACL already
contains a comma, in which case, defer an error and ignore the entire
ACL record.

Of course, if any recorded ACL field contained a newline (in the user
or group name, or the content of any custom fields), then this
conversion might be trouble. (Debian, at least, forbids newlines in
user or group names.)

And even with the standard-specified commas, the standard also doesn't
appear to say anything about what should happen if a field value
contains a comma. So in the longer run, it looks like we should stop
relying on the built-in text formats.

Thanks to Moritz Lell for reporting the problem.

cf. (via acl(5)) http://wt.tuxomania.net/publications/posix.1e/download.html

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>

commit 44192110f286e33627c04822ee3a845013e0cb40
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun May 7 13:15:02 2023 -0500

Restore posix1e default acls as default, not access; improve tests

Previously bup would restore default acls using ACL_TYPE_ACCESS rather
than ACL_TYPE_DEFAULT. Since that was done after restoring any access
acl, the default acl would presumably supersede the access acl, and no
default acl would be set.

Adjust apply_acl to use the correct type, and add test-meta-acls to
test more cases, including that one. Arrange for the new tests to run
whenever the conditions are right -- setfacl and getfacl are
available, and the filesystem and rsync appear to support acls. The
previous acl tests would only run when root.

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>

commit 40390ce9ca998f214459ee05f35f6c0fee9e9c38
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun May 7 12:41:47 2023 -0500

compare-trees: add --features and disallow args with it and -h

This will be used to guard tests that are dependent on particular
features (e.g. acls).

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>

commit 0b85e59c4745a07c727f265652eea584df23d4a1
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun Apr 16 13:48:10 2023 -0500

cirrus: move to freebsd 12.4 to fix rsync-related test failures

It looks like this failure was due to a broken rsync:

ld-elf.so.1: /usr/local/bin/rsync: Undefined symbol "locale_charset"

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit b0b1256dac10a024512eed3f3c1ff9fc396022c2)

commit d91af8335ee8b3f8ee7b8b24f9abc4d55143f77d
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun Apr 16 13:46:59 2023 -0500

test-comparative-split-join: accommodate varying HEAD names

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 4b94b4a6174b8f67f36bb6d43f18c5e82425058c)

commit c2f885bc8c3f08bc67732edfdaf853cc875fa105
Author: Rob Browning <r...@defaultvalue.org>
Date: Sat Apr 15 12:01:05 2023 -0500

buptest init: get quote from shlex not pipes

Since python intends to break this too, supposedly in 3.13.

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 93245e158b7ba229ca1decb44a4e1975bda7c065)

commit 0b8f73c202e85a83e9312f953f0701fbfc35f56c
Author: Rob Browning <r...@defaultvalue.org>
Date: Wed Apr 12 00:52:33 2023 -0500

configure: allow and prefer python3.11-config; ignore 3.6

Drop 3.6 since it's not supported.

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 548f75ba45a7e4048d3a9c1bf443c259e2a17405)

commit 260ba65de2ab0c2d4319c3a6f96a58a6b0a2d9e3
Author: Rob Browning <r...@defaultvalue.org>
Date: Fri Dec 30 17:16:41 2022 -0600

test_get: remove vestigial debug messages

Signed-off-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 494752b3890899c43c129535edfc52210f0271f1)

commit c628a8c2de974599046dd61bf0fc4e7da0a44986
Author: Rob Browning <r...@defaultvalue.org>
Date: Fri Dec 30 12:20:31 2022 -0600

configure: handle relative MAKE paths

Because ./configure changes the working directory to config/, relative
MAKE paths would end up creating an invalid symlink in config/bin.

Thanks to Greg Troxel for reporting the problem.

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 50d40ac5881dc7eecfb1c932b68e06dff1a0934b)

commit e23c91a8b67ecd06e2c01c68a9d7465829ccc1b0
Author: Rob Browning <r...@defaultvalue.org>
Date: Sun Apr 9 13:03:53 2023 -0500

conftest.py: restore support for pytest < 7

When pytest is >= 7, use the newer Node constructor (the one that's
not deprecated), otherwise, use the approach in place before
a958f25ecfc479a8b2c0e8a9c95f67b277fcfbb8. Detect the version boundary
by checking for the existence of pytest.version_tuple since it was
added in 7. This should fix the tests where only pytest 6 is
available (e.g. current debian stable (bullseye)).

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit 2b5920899a5d2ec4e078cb6ea7e365d4ec978848)

commit 3ed5ef7c4266cad0774e037a2a657e438d23e1cd
Author: Rob Browning <r...@defaultvalue.org>
Date: Sat Nov 12 14:19:10 2022 -0600

conftest.py: switch to Path to support pytest 7+

https://docs.pytest.org/en/latest/deprecations.html#fspath-argument-for-node-constructors-replaced-with-pathlib-pat

Signed-off-by: Rob Browning <r...@defaultvalue.org>
Tested-by: Rob Browning <r...@defaultvalue.org>
(cherry picked from commit a958f25ecfc479a8b2c0e8a9c95f67b277fcfbb8)

Thanks
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4
Reply all
Reply to author
Forward
0 new messages