Hi! On Fri, Jan 06, 2023 at 10:52:31AM +0100, Andrej Shadura wrote: > On Thu, 5 Jan 2023, at 21:32, наб wrote: > > Bisecting over the upstream git, I got > > commit 8f9cca055bc661c4c690a5f5e1ca71370d129bc3 (HEAD, refs/bisect/bad) > > Author: Herbert Xu <[email protected]> > > Date: Wed Jan 19 16:37:54 2022 +1100 > > > > expand: Always quote caret when using fnmatch > > > as the first bad commit with default configuration (HAVE_FNMATCH=1). > > > > I /cannot/ find a set-up where configuring like Debian > > (--disable-fnmatch --disable-lineno --disable-glob) > > isn't broken. > > I’m not sure why this also affects configurations with --disable-fnmatch — > from the description of it, it shouldn’t?
Well, dash's built-in globs Just Don't Support ^. Never have. (Defined as "current code doesn't and it blames to start-of-git".) They're strictly POSIX, and ^ is a regular character for them. 8f9cca0 fixes the fact that glibc fnmatch() has a special meaning for ^ by unconditionally escaping it (if configured for libc fnmatch) ‒ it normalises [^0-9] to always mean [0-9^], regardless of --with-fnmatch/--disable-fnmatch. > > Y'know what, I bisected the Salsa git, too, but then I consulted POSIX. > > Apparently, this is fine. > > > Please for the love of god add this to the NEWS. > > I /guarantee/ people are using '[^0-9]' to mean "not 0-9", > > and similar constructs, even if they are well-versed in the shell language. > > > > This is a breaking change going from bullseye, and quite an insidious one. > > I assume my reaction is gonna mirror others' quite well. > > > > /Please/ add this to the NEWS. > > I’m actually considering reverting that patch, as it seems a bit too late in > the release cycle to introduce such a breaking change. I've bisected across snapshot.d.o, and the first Debian version that exhibits this behaviour is 0.5.11+git20210903+057cd650a4ed-4: http://snapshot.debian.org/package/dash/0.5.11%2Bgit20210903%2B057cd650a4ed-4/ Which, if I understand it right, has landed in sid on 2022-03-04. Since march of last year, sid and testing have been using this; quoth tracker.d.o: [2022-03-07] dash 0.5.11+git20210903+057cd650a4ed-7 MIGRATED to testing (Debian testing watch) So it's been a good part of a year and no-one's complained (maybe I'm the idiot what doesn't know globs are negated with !s), from the point of view of "system compatibility", I think this has passed the test. From the point of user code, a NEWS entry I'd consider sufficient, as usual for breaking-for-compat user-observable changes. Reverting this now would probably have the opposite effect (breaking (and in this case this /is/ breaking, since the new behaviour is correct) people's globs late in the release cycle). But what do I know, наб
signature.asc
Description: PGP signature

