This is to announce sed-4.9, a stable release.
There have been 51 commits by 9 people in the nearly three years since 4.8.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Antonio Diaz Diaz (1)
Assaf Gordon (5)
Chris Marusich (1)
Jim Meyering (28)
Marvin Schmidt (1)
Oğuz (1)
Paul Eggert (11)
Renaud Pacalet (1)
Tobias Stoeckmann (2)
Jim [on behalf of the sed maintainers]
==================================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.9
or run this command from a git-cloned sed directory:
git shortlog v4.8..v4.9
To summarize the 2383 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.9
git submodule summary v4.8
==================================================================
Here are the compressed sources:
https://ftp.gnu.org/gnu/sed/sed-4.9.tar.gz (2.2MB)
https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz (1.4MB)
Here are the GPG detached signatures:
https://ftp.gnu.org/gnu/sed/sed-4.9.tar.gz.sig
https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
Here are the SHA1 and SHA256 checksums:
69ad1f6be316fff4b23594287f16dfd14cd88093 sed-4.9.tar.gz
0UeKGPAzpzrBaCKQH2Uz0wtr5WG8vORv/Xq86TYCKC4 sed-4.9.tar.gz
8ded1b543f1f558cbd5d7b713602f6a8ee84bde4 sed-4.9.tar.xz
biJrcy4c1zlGStaGK9Ghq6QteYKSLaelNRljHSSXUYE sed-4.9.tar.xz
The SHA256 checksum is base64 encoded, instead of the
hexadecimal encoding that most checksum tools default to.
Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.9.tar.gz.sig
The signature should match the fingerprint of the following key:
pub rsa4096/0x7FD9FCCB000BEEEE 2010-06-14 [SCEA]
Key fingerprint = 155D 3FC5 00C8 3448 6D1E EA67 7FD9 FCCB 000B EEEE
uid [ unknown] Jim Meyering <jim@meyering.net>
uid [ unknown] Jim Meyering <meyering@fb.com>
uid [ unknown] Jim Meyering <meyering@gnu.org>
If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.
gpg --locate-external-key jim@meyering.net
gpg --recv-keys 7FD9FCCB000BEEEE
wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=sed&download=1' | gpg --import -
As a last resort to find the key, you can try the official GNU
keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify sed-4.9.tar.gz.sig
This release was bootstrapped with the following tools:
Autoconf 2.72a.65-d081
Automake 1.16i
Gnulib v0.1-5550-g0524746392
NEWS
* Noteworthy changes in release 4.9 (2022-11-06) [stable]
** Bug fixes
'sed --follow-symlinks -i' no longer loops forever when its operand
is a symbolic link cycle.
[bug introduced in sed 4.2]
a program with an execution line longer than 2GB can no longer trigger
an out-of-bounds memory write.
using the R command to read an input line of length longer than 2GB
can no longer trigger an out-of-bounds memory read.
In locales using UTF-8 encoding, the regular expression '.' no
longer sometimes fails to match Unicode characters U+D400 through
U+D7FF (some Hangul Syllables, and Hangul Jamo Extended-B) and
Unicode characters U+108000 through U+10FFFF (half of Supplemental
Private Use Area plane B).
[bug introduced in sed 4.8]
I/O errors involving temp files no longer confuse sed into using a
FILE * pointer after fclosing it, which has undefined behavior in C.
** New Features
The 'r' command now accepts address 0, allowing inserting a file before
the first line.
** Changes in behavior
Sed now prints the less-surprising variant in a corner case of
POSIX-unspecified behavior. Before, this would print "n".
Now, it prints "X":
printf n | sed 'sn\nnXn'; echo
This is to announce sed-4.8, a stable release.
There have been 21 commits by 2 people in the 56 weeks since 4.7.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Assaf Gordon (4)
Jim Meyering (17)
Jim [on behalf of the sed maintainers]
==================================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.8
or run this command from a git-cloned sed directory:
git shortlog v4.7..v4.8
To summarize the 865 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.8
git submodule summary v4.7
Here are the compressed sources:
https://ftp.gnu.org/gnu/sed/sed-4.8.tar.gz (2.2MB)
https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz (1.3MB)
Here are the GPG detached signatures[*]:
https://ftp.gnu.org/gnu/sed/sed-4.8.tar.gz.sig
https://ftp.gnu.org/gnu/sed/sed-4.8.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.8.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.202-d78a
Automake 1.16a
Gnulib v0.1-3167-g6b9d15b8b
NEWS
* Noteworthy changes in release 4.8 (2020-01-14) [stable]
** Bug fixes
"sed -i" now creates temporary files with correct umask (limited to u=rwx).
Previously sed would incorrectly set umask on temporary files, resulting
in problems under certain fuse-like file systems.
[bug introduced in sed 4.2.1]
** Release
distribute gzip-compressed tarballs once again
** Improvements
a year's worth of gnulib development, including improved DFA performance
Here's a snap release to fix a regression introduced in sed-4.6.
See the NEWS below for details:
Here are the compressed sources and a GPG detached signature[*]:
http://ftp.gnu.org/gnu/sed/sed-4.7.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.7.tar.xz.sig
Use a mirror for higher download bandwidth:
https://ftpmirror.gnu.org/sed/sed-4.7.tar.xz
https://ftpmirror.gnu.org/sed/sed-4.7.tar.xz.sig
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.7.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.197-b8fd7
Automake 1.16a
Gnulib v0.1-2302-g5d6a3cdd5
NEWS
* Noteworthy changes in release 4.7 (2018-12-20) [stable]
** Bug fixes
Some uses of \b in the C locale and with the DFA matcher would fail, e.g.,
the following would mistakenly print "123-x" instead of "123":
echo 123-x|LC_ALL=C sed 's/.\bx//'
Using a multibyte locale or certain regexp constructs (some ranges,
backreferences) would avoid the bug. [bug introduced in sed 4.6]
This is to announce sed-4.6, a stable release.
There have been 52 commits by 6 people in the 38 weeks since 4.5.
See the NEWS below for a brief summary.
Special thanks to Assaf Gordon for doing so much of the work.
Thanks to everyone else who has contributed!
The following people contributed changes to this release:
Assaf Gordon (39)
Bernhard Voelker (1)
Bjarni Ingi Gislason (1)
Clint Adams (1)
Jannick (1)
Jim Meyering (9)
Jim [on behalf of the sed maintainers]
==================================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.6
or run this command from a git-cloned sed directory:
git shortlog v4.5..v4.6
To summarize the 465 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.6
git submodule summary v4.5
Here are the compressed sources and a GPG detached signature[*]:
http://ftp.gnu.org/gnu/sed/sed-4.6.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.6.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.6.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.197-b8fd7
Automake 1.16a
Gnulib v0.1-2296-g453f37e2b
NEWS
* Noteworthy changes in release 4.6 (2018-12-19) [stable]
** Improvements
sed now prints a clear error message when r/R/w/W (and s///w) commands
are missing a filename. Previously, w/W commands would fail with confusing
error message, while r/R would be a silent no-op.
sed now uses fully-buffered output (instead of line-buffered) when
writing to files. This should noticeably improve performance of "sed -i"
and other write commands.
Buffering can be disabled (as before) with "sed -u".
sed in non-cygwin windows environments (e.g. mingw) now properly handles
'\n' newlines in -b/--binary mode.
** Bug fixes
sed no longer accesses invalid memory (heap overflow) when given invalid
backreferences in 's' command [bug#32082, present at least since sed-4.0.6].
sed no longer adds extraneous NUL when given s/$//n command.
[related to bug#32271, present since sed-4.0.7]
sed no longer accesses invalid memory (heap overflow) with s/$//n regexes.
[bug#32271, present since sed-4.3].
** New Features
New option, --debug: print the input sed script in canonical form
and annotate program execution.
This is to announce sed-4.5, a stable release.
There have been 110 commits by 8 people in the 60 weeks since 4.4.
Thanks especially to Assaf Gordon for so much fine work.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
The following people contributed changes to this release:
0xddaa (1)
Alexandre Jasmin (4)
Assaf Gordon (73)
Jakub Martisko (1)
Jim Meyering (28)
Kent Fredric (1)
Mike Frysinger (1)
Thorsten Heymann (1)
Jim [on behalf of the sed maintainers]
==================================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.5
or run this command from a git-cloned sed directory:
git shortlog v4.4..v4.5
To summarize the 685 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.5
git submodule summary v4.4
==================================================================
Here are the compressed sources and a GPG detached signature[*]:
http://ftp.gnu.org/gnu/sed/sed-4.5.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.5.tar.xz.sig
Use a mirror for higher download bandwidth:
https://www.gnu.org/order/ftp.html
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.5.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.193-8974
Automake 1.16a
Gnulib v0.1-1831-gad52c652a
==================================================================
NEWS
* Noteworthy changes in release 4.5 (2018-03-31) [stable]
** Bug fixes
sed now fails when matching very long input lines (>2GB).
Before, sed would silently ignore the regex without indicating an
error. [Bug present at least since sed-3.02]
sed no longer rejects comments and closing braces after y/// commands.
[Bug existed at least since sed-3.02]
sed -E --posix no longer ignores special meaning of '+','?','|' .
[Bug introduced in the original implementation of --posix option in
v4.1a-5-gba68fb4]
sed -i now creates selinux context based on the context of the symlink
instead of the symlink target. [Bug present since at least sed-4.2]
sed -i --follow-symlinks remains unchanged.
sed now treats the sequence '\x5c' (ASCII 92, backslash) as literal
backslash character, not as an escape prefix character.
[Bug present since sed-3.02.80]
Old behavior:
$ echo z | sed -E 's/(z)/\x5c1/' # identical to 's/(z)/\1/'
z
New behavior:
$ echo z | sed -E 's/(z)/\x5c1/'
\1
This is to announce sed-4.4, a stable release.
There have been 24 commits by 4 people in the 5 weeks since 4.3.
There has been one important bug fix:
sed could segfault when invoked with specific combination of newlines
in the input and regex pattern. [Bug introduced in sed-4.3]
Thanks to everyone who has contributed!
The following people contributed changes to this release:
Assaf Gordon (10)
Jim Meyering (12)
Norihiro Tanaka (1)
Vagelis Prokopiou (1)
Jim [on behalf of the sed maintainers]
==================================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.4
or run this command from a git-cloned sed directory:
git shortlog v4.3..v4.4
To summarize the 70 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.4
git submodule summary v4.3
====================
Here are the compressed sources and a GPG detached signature[*]:
http://ftp.gnu.org/gnu/sed/sed-4.4.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.4.tar.xz.sig
Use a mirror for higher download bandwidth:
http://ftpmirror.gnu.org/sed/sed-4.4.tar.xz
http://ftpmirror.gnu.org/sed/sed-4.4.tar.xz.sig
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.4.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.183-96821
Automake 1.99a
Gnulib v0.1-1146-gb6acb8d
This is to announce sed-4.3, a stable release (and my first release).
There have been 195 commits by 10 people in the four years since 4.2.2.
And that does not include the 1390 commits to gnulib.
See the NEWS below for a brief summary.
Thanks to everyone who has contributed!
Special thanks to Norihiro Tanaka for his DFA-related improvements
and to Assaf Gordon, who is now a co-maintainer.
The following people contributed changes to this release:
Assaf Gordon (58)
David A. Wheeler (1)
Jim Meyering (117)
Jose E. Marchesi (6)
Norihiro Tanaka (6)
Paolo Bonzini (1)
Stanislav Brabec (1)
Stefano Lattarini (3)
Tristan Verniquet (1)
Vincenzo Romano (1)
Jim [on behalf of the sed maintainers]
========================================================
Here is the GNU sed home page:
http://gnu.org/s/sed/
For a summary of changes and contributors, see:
http://git.sv.gnu.org/gitweb/?p=sed.git;a=shortlog;h=v4.3
or run this command from a git-cloned sed directory:
git shortlog v4.2.2..v4.3
To summarize the 1390 gnulib-related changes, run these commands
from a git-cloned sed directory:
git checkout v4.3
git submodule summary v4.2.2
Here are the compressed sources and a GPG detached signature[*]:
[While I've been a sed maintainer for over two years, this is my
first release, and a lagging access control list prevents my
uploading to the usual URLs. While we wait for that to be fixed,
I've made the tarball and signature available here:
http://meyering.net/sed/sed-4.3.tar.xz
http://meyering.net/sed/sed-4.3.tar.xz.sig
The usual URLs below will eventually become valid.
]
http://ftp.gnu.org/gnu/sed/sed-4.3.tar.xz
http://ftp.gnu.org/gnu/sed/sed-4.3.tar.xz.sig
Use a mirror for higher download bandwidth:
http://ftpmirror.gnu.org/sed/sed-4.3.tar.xz
http://ftpmirror.gnu.org/sed/sed-4.3.tar.xz.sig
[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact. First, be sure to download both the .sig file
and the corresponding tarball. Then, run a command like this:
gpg --verify sed-4.3.tar.xz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE
and rerun the 'gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.69.183-96821
Automake 1.99a
Gnulib v0.1-1076-g0d53486
========================================================
NEWS
* Noteworthy changes in release 4.3 (2016-12-30) [stable]
** Improvements
sed's regular expression matching is now typically 10x faster
sed now uses unlocked-io where available, resulting in faster I/O
operations.
** Bug fixes
sed no longer mishandles anchors ^/$ in multiline regex (s///mg)
with -z option (NUL terminated lines). [Bug introducted in sed-4.2.2
with the initial implementation of -z]
sed no longer accepts a ":" command without a label; before, it would
treat that as defining a label whose name is empty, and subsequent
label-free "t" and "b" commands would use that label. Now, sed emits
a diagnostic and fails for that invalid construct.
sed no longer accesses uninitialized memory when processing certain
invalid multibyte sequences. Demonstrate with this:
echo a | LC_ALL=ja_JP.eucJP valgrind sed/sed 's/a/b\U\xb2c/'
The error appears to have been introduced with the sed-4.0a release.
The 'y' (transliterate) operator once again works with a NUL byte
on the RHS. E.g., sed 'y/b/\x00/' now works like tr b '\0'. GNU sed
has never before recognized \x00 in this context. However, sed-3.02
and prior did accept a literal NUL byte in the RHS, which was possible
only when reading a script from a file. For example, this:
echo abc|sed -f <(printf 'y/b/\x00/\n')|cat -A
is what stopped working. [bug introduced some time after sed-3.02 and
prior to the first sed-4* test release]
When the closed-above line number ranges of N editing commands
overlap (N>1), sed would apply commands 2..N to the line just
beyond the largest range endpoint.
[bug introduced some time after sed-4.09 and prior to release in sed-4.1]
Before, this command would mistakenly modify line 5:
$ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
1
yx5
6
Now, it does not:
$ seq 6|sed '2,4d;2,3s/^/x/;3,4s/^/y/'
1
5
6
An erroneous sed invocation like "echo > F; sed -i s//b/ F" no longer
leaves behind a temporary file. Before, that command would create a file
alongside F with a name matching /^sed......$/ and fail to remove it.
sed --follow-symlinks now works again for stdin.
[bug introduced in sed-4.2.2]
sed no longer elides invalid bytes in a substitution RHS.
Now, sed copies such bytes into the output, just as Perl does.
[bug introduced in sed-4.1 -- it was also present prior to 4.0.6]
sed no longer prints extraneous character when a backslash follows \c.
'\c\\' generates control character ^\ (ASCII 0x1C).
Other characters after the second backslash are rejected (e.g. '\c\d').
[bug introduced in the sed-4.0.* releases]
sed no longer mishandles incomplete multibyte sequences in s,y commands
and valid multibyte SHIFT-JIS characters in character classes.
Previously, the following commands would fail:
LC_ALL=en_US.UTF-8 sed $'s/\316/X/'
LC_ALL=ja_JP.shiftjis sed $'/[\203]/]/p'
[bug introduced some time after sed-4.1.5 and before sed-4.2.1]
** Feature removal
The "L" command (format a paragraph like the fmt(1) command would)
has been listed in the documentation as a failed experiment for at
least 10 years. That command is now removed.
** Build-related
"make dist" now builds .tar.xz files, rather than .tar.gz ones.
xz is portable enough and in wide-enough use that distributing
only .tar.xz files is enough. It has been fine for coreutils, grep,
diffutils and parted for a few years.
** New Features
new --sandbox option rejects programs with r/w/e commands.