1.2.0 2023-06-08 Release
--------------------------
Important notes:
- The experimental option USE_CUSTOM_FONTSIZE has been removed
Since FLTK 1.4 there is a resize feature via keyboard (Ctrl-+/-).
- Doxygen 1.9.4 is now required to build the documentation.
Bug fixes:
- GUI: Callback for "Mark all groups read" fixed to not block any
further operation if confirmation was "No" (reported by Marcel Logen).
- GUI: Callback for "Next unread group" fixed to not always select the
first group with unread articles (reported by Dennis Preiser).
- CONF: Update of configuration data fixed (formerly truncated if
filesystem was full). Return values of flush operations are now
checked before rename() is executed.
- GUI: Group list is now updated to previous group after group selection
error (reported by Michael Uplawski).
- GUI: No longer show busy mouse cursor after group selection if article
tree/list has no drawing area (reported by Michael Uplawski).
- ENC: Memory leak fixed in MIME Content-Disposition decoder.
- TLS: Memory leaks fixed.
- TLS: OpenSSL 3 version number is now printed correctly on terminal.
- GUI: Soft hyphens are now handled consistently with all FLTK backends
(formerly X11 rendered all SHY characters visible, as defined by
ISO 8859-1, while Pango and Cocoa rendered SHY characters invisible).
- FILTER: Documentation of scorefile syntax fixed (type "extended" is no
longer supported).
- CORE: Doxygen documentation of function core_get_msgid() fixed.
New features and improvements:
- GUI: French translation added for NLS support (provided by yamo').
NLS documentation updated for hexadecimal-escape-sequence (not
allowed in translated strings).
- GUI: Option to skip to next group while searching for next unread
article added (can be enabled with a nonzero value for the new
"unread_in_next_group" entry in configfile) (proposed by Thomas
Barghahn).
- GUI: No longer uses Fl_Pack widget because behaviour has changed in
recent FLTK 1.4.0 snapshots (reported by Dennis Preiser).
- CONF: Support for custom colors in displayed article added
(based on patch from Martin Schnitkemper).
- INET: Support for user defined TCP connection timeout (suggested by
yamo'). Option CFG_TCP_CONNECT_TIMEOUT in CONFIG added.
- GUI: With FLTK 1.4 (or FLTK 1.3.3 ABI) the horizontal scrollbar of the
article tree or list respectively is moved to a sensible position.
- CORE: Header field "Newsgroups" can now be extracted from overview, if
present. Scoring rules of type "group" are applied to all groups of an
Xpost in this case.
- NNTP: Support for LIST OVERVIEW.FMT command (RFC 3977) added.
- NNTP: Experimental support for MAXARTNUM extension added.
Intended to be compliant with the RFC draft provided by Julien Élie
in Message-ID <tnqm14$35bas$1@news.trigofacile.com>.
- ENC: Zero-width space (ZWSP) is now used too as line breaking hint for
the format "flowed" decoder.
- GUI: URI delegation: Separate error message for invalid encoding.
- EXT: External URI handler returns a flag to indicate invalid encoding.
- EXT: Examples for postprocessor added in subdirectory "postproc"
(suggested by yamo').
- EXT: Example for external editor added in subdirectory "editor".
- CONF: Documentation of configfile entry "cancelkey" modified (added
note that "fqdn" entry must also be set to create Cancel-Lock/Key
header fields).
- FILTER: Documentation of scorefile modified (added notes that scoring
rules can be shared).
- Build system: The mkconfig script now checks for POSIX.1c-1995
Thread-Safe Functions (TSF) option too. Usage is forced by default via
CFG_FORCE_TSF option in CONFIG.
- Build system: The C++ object files are moved to the beginning of the
list. This can reduce build time with make utilities that support
parallel build.
- Build system: BSD install utility now deletes existing target files
before copying new ones. This solves problems with macOS on machines
with Apple Silicon and signed binaries (patch from Dennis Preiser).
- Unicode database updated to version 15.0.0
Almost all uses, if not all of them, are wrong, according to the
semantics of BUILD_DEPENDS (packages built for target available for
use _by_ tools at build-time) and TOOL_DEPEPNDS (packages built for
host available for use _as_ tools at build-time).
No change to BUILD_DEPENDS as used correctly inside buildlink3.
As proposed on tech-pkg:
https://mail-index.netbsd.org/tech-pkg/2023/06/03/msg027632.html
Auto-generated tar ball changed some tag expansion:
--- old/pan-v0.154/configure.ac 2023-01-05 18:33:42.000000000 +0100
+++ new/pan-v0.154/configure.ac 2023-01-05 18:33:42.000000000 +0100
@@ -6,7 +6,7 @@
AC_PREREQ([2.71])
dnl Get git info for pan-git.version
-GIT_HASH='517acf4'
+GIT_HASH='517acf44'
if test ! '0' \< $GIT_HASH ; then
dnl git-dir is used for building outside the src tree
GIT_HASH=`git --git-dir=$srcdir/.git log -1 --pretty=format:%h 2> /dev/null`
adding canlock option kudos micha@
upstream changelog:
Changes in 2.7.1 (2023-04-16)
* Added a new *groupexactcount* parameter in readers.conf to force nnrpd
to report the exact number of still existing articles in newsgroups
instead of an estimated count. When the estimated number of articles
is strictly below *groupexactcount* (set to 5 by default), nnrpd now
recounts them and reports the actual value (articles that have been
cancelled or overwritten in self-expiring CNFS buffers may otherwise
still be counted in the estimate). News clients will then be directly
aware of empty newsgroups; they would otherwise have tried to retrieve
possible articles, to finally not show anything to the user.
* Programs sending mails now include, when appropriate, an
Auto-Submitted header field in the message headers (either set to
"auto-generated" or "auto-replied", following the recommendation in
RFC 3834). Thanks to Harald Dunkel for this suggestion which will for
instance help to avoid unnecessary vacation replies.
* Added a new -a option to innmail to specify additional header fields
to add in the headers of messages. This is notably used to internally
support the addition of the Auto-Submitted header field in outgoing
mails.
* Added new ovsqlite-util program to perform some basic consistency
checks and dump operations on an overview database using the ovsqlite
method. More checks and features will be added in future releases.
You'll need the "DBI" Perl module with the "DBD::SQLite" driver
installed on your system to use this program.
* Added TLS support in pullnews for connections to upstream servers
configured in pullnews.marks, and to the downstream server in the
existing -s flag. A port can now also be specified for connections to
upstream servers (it was already possible for the downstream server
only).
* Added a new -L option to pullnews to specify the largest wanted
article size in bytes. Articles whose size exceeds that value will no
longer be downloaded by pullnews.
* pullnews now detects a socket timeout while downloading articles from
a remote peer. The download gracefully stops, and another attempt can
be automatically made according to the setting given with the -t flag.
Thanks to Jesse Rehmer for the bug report.
* Fixed the generation and the handling of storage tokens on wrapped
CNFS buffers, thanks to bug reports from Kamil Jonca:
* Duplicate entries were returned by makehistory on fully wrapped
cyclic buffers (the first article of the cyclic buffer appeared
twice in the output).
* The first article of a fully wrapped cyclic buffer was removed too
soon from history (expire wrongly thought its storage token was no
longer existing after a wrap).
* The first article of the previous cycle number of a cyclic buffer
containing articles from two different cycle numbers was wrongly
considered by makehistory to belong to the current cycle number.
* innd no longer dies when a newsfeeds entry has an unexpected trailing
whitespace.
* The size of duplicated articles was counted twice in totals, average
article sizes and graphs by innreport, when parsing innd checkpoints.
Thanks to Hauke Lampe for the patch to count it only once.
* Customizing the domain part of Message-IDs generated by nnrpd and the
server name indicated in Injection-Info header fields is now easier:
the *domain* parameter in the access blocks of readers.conf can be
directly used (without needing to set *virtualhost* as it was
previously the case).
* If the *domain* parameter is set in inn.conf or in a readers.conf
access block, and has invalid characters, or if the fully qualified
domain name (FQDN) of the news server has invalid characters when
*domain* is unset, a fatal error is now reported at startup. It is a
basic configuration error which otherwise leads to the generation of
invalid article Message-IDs.
* Improved the speed of article searches with HDR, LAST, NEXT, and XPAT
commands when there is a (huge) gap in article numbers. On newsgroups
with several millions of consecutive missing articles (which is a rare
situation), these commands could take several seconds to run.
* Incoming articles in newsgroups that have exceeded the maximum number
of articles they can contain (2^31-1) are now correctly rejected. INN
was otherwise happily accepting them but either numbers returned in
NNTP responses were not right, or some news clients choked when
receiving unexpected large article numbers. (The current version of
the NNTP protocol only allows article numbers up to 2^31-1.)
* Fixed the renumbering of reported low water marks for empty newsgroups
in active after overview expiration, when using the ovsqlite method.
They were set to 1 for empty newsgroups whereas they were not supposed
to decrease. (These reported low water marks regained their expected
values during the next overview expiration, provided that the
newsgroup was no longer empty.)
* The reported high water mark of empty newsgroups is now correctly set
to one less than the reported low water mark in overview data.
(Previously, the reported low water mark was set to one more than the
reported high water mark.)
* Fixed the output of the "ctlinnd feedinfo ''" command that was
returning information only for the first site, and the output of the
"ctlinnd name channel" command that was returning partial information
for the requested channel.
* The build of external programs which include inn/storage.h was failing
because of the unexpected inclusion of config.h in one of the included
headers. Also, a few Autoconf results were not correctly made
available to external programs. This is now fixed.
* Fixed the build on systems whose default shell does not completely
meet the Posix standard. A few build scripts were run with the
default shell instead of the one found by Autoconf and afterwards used
for INN.
* Use standard daemon(3) C function, when available, to daemonize innd,
nnrpd, ovdb_server and ovsqlite-server instead of an INN-specific
function.
Upgrading from 2.6 to 2.7
The following changes require your full attention because a manual
intervention may be needed:
* The *require_ssl* parameter in readers.conf has been renamed to
*require_encryption* as it applies to any kind of encryption layers,
including TLS and SASL security layers. Since innupgrade only takes
care of the change in the file named readers.conf, you will have to
manually rename that parameter in configuration files for nnrpd with
an alternate name.
* The innreport.conf file in *pathetc* has been split into a general
configuration file (innreport.conf itself) and a display configuration
file (innreport-display.conf in *pathlib*). If you made local changes
in sections other than the *default* section in innreport.conf, and
wish to keep them, then you need renaming the new
innreport-display.conf file to another name in *pathlib*, setting this
local file name in the new *display_conf_file* option in
innreport.conf, and re-applying your local changes to that local
display configuration file.
As a matter of fact, the default display configuration file would
otherwise be overwritten each time INN is updated. Bug fixes or
enhancements are made from time to time to the display configuration
of innreport, and previously couldn't be automatically be merged in
innreport.conf on update. This new separate configuration file to
parameterize the display will now permit an automatic update (if of
course you use the default display configuration file).
* A new inn-secrets.conf configuration file has been added in *pathetc*.
The intent is that, from now on, new secrets used by INN are added to
that file, and that all secrets currently stored in several other
configuration files eventually move to that file. Make sure it is
properly created during the upgrade, and not world-readable. It
currently only stores the secrets used for the new Cancel-Lock
functionality.
* The -C flag given to innd to disable the execution of cancels has been
deprecated and is no longer taken into account (an error message will
be present in your logs if innd is started with it). Instead, a new
parameter has been added in inn.conf to tune the types of cancels innd
should process. If *docancels* is set to "require-auth", which is the
default if INN has Cancel-Lock support, only articles originally
protected by the Cancel-Lock authentication mechanism can be withdrawn
by a valid authenticated cancel article or a valid authenticated
supersede request. Withdrawals of articles not originally protected
by Cancel-Lock will not be executed. See inn.conf(5) for more details
about the different values of the new *docancels* parameter, and make
sure to parameterize it according to your needs.
* The *refusecybercancels* and *verifycancels* parameters have been
removed from inn.conf. The first was performing an inefficient and
inexact check (that should be done, if wanted, in the special "ME"
entry in newsfeeds, or even better, ask your peers not to feed you
articles with "cyberspam" in the Path header field body); the second
check performed on the newsgroups present in cancel articles was not
useful in innd (this check is relevant to posting agents).
The related lines in inn.conf will be commented by innupgrade during
the upgrade.
* The XBATCH command is no longer enabled by default in innd. You'll
have to explicitly enable that capability by setting the new *xbatch*
parameter to true in incoming.conf for the peers sending you such
compressed batches.
* The *nolist* and *noresendid* parameters in incoming.conf have been
respectively renamed to *list* and *resendid* (and the meaning of
their related boolean values is now the opposite). Besides, the
unused *comment* and *email* parameters in incoming.conf have been
removed. innupgrade will take care of the changes (inverting the
boolean values, and commenting the lines with removed parameters).
* filechan is no longer shipped with INN; it was just a simple version
of buffchan. All calls to "filechan" will be changed to "buffchan -u"
(for its unbuffered mode) in newsfeeds by innupgrade. If you have
local scripts running filechan, you will have to manually take care of
the change.
* send-nntp is no longer shipped with INN. If you have local scripts
running it, you will have to manually adjust them to use nntpsend
which basically does the same thing, better. Or, even greater, use
innfeed if that is possible.
* Wrappers around old Perl and Python authentication and access hooks,
pre-dating INN 2.4.0 and identifiable by the *nnrpperlauth* and
*nnrppythonauth* parameters in inn.conf, are no longer shipped as
samples in INN releases. If not already done, you should either
replace old hooks with new modern hooks or use the possibilities that
readers.conf and regular authenticator and resolver programs offer.
* The libauth.h header file and the libstorage library have been renamed
to libinnauth.h and libinnstorage to homogenize their name with
existing libinnhist library. External programs building or linking
against them need a manual change.
If you are upgrading from a version prior to INN 2.6, see also
"Upgrading from 2.5 to 2.6".
Changes in 2.7.0 (2022-07-10)
* Upgrading to a major release is a good time to ensure that your
configuration files, that are usually kept untouched during normal
updates, are up-to-date: notably control.ctl (with your local changes
in a separate control.ctl.local file), new better default values in
inn.conf and innfeed.conf, improvements in innreport.conf (along with
innreport-display.conf) and innreport.css, fixes in innwatch.ctl,
updated moderators and nocem.ctl files.
You may also want to check that the PGP keys used to verify the
signature of control articles and NoCeM notices are still up-to-date
and working. The keys of a few hierarchies and NoCeM issuers have
recently changed.
* Bo Lindbergh has implemented a new overview storage method based on
SQLite, known for its long-term stability and compatibility. Robust
and faster at reading ranges of overview data, but somewhat slower at
writing, this new SQLite-based method is a perfect choice to store
overview data.
To select it as your overview method, set the *ovmethod* parameter in
inn.conf to "ovsqlite". Details about ovsqlite, the ovsqlite.conf
configuration file and how to switch to that new modern overview
storage method can be found in the ovsqlite(5) and makehistory(8) man
pages.
* Julien Elie has implemented Cancel-Lock support in innd and nnrpd,
based on RFC 8315 and libcanlock. A new inn-secrets.conf
configuration file has been added in *pathetc* wherein you can set the
secrets to use for Cancel-Lock. See the inn-secrets.conf(5) man page
for more details.
A new -F flag is recognized by innconfval to indicate the type of file
to parse (by default, "inn.conf"); just run "innconfval -F
inn-secrets.conf" to get the values of that new configuration file.
Another new flag, -f, permits specifying another file name to parse
than the standard one.
The *addcanlockuser* parameter has been added in readers.conf to
deactivate the generation of user-specific hashes when several
different posters have the same identity in an access group. This
parameter also permits setting whether the hash, when generated, is
based on the username or the (static) IP of the connection.
* Added a new tool, gencancel, to help the news administrator generate
authenticated cancel control messages, with the expected admin
Cancel-Key hashes. See the gencancel(1) man page for more details.
* A new *docancels* parameter has been added in inn.conf to define which
types of cancels innd should process. The -C flag given to innd is
deprecated in favour of that new parameter (you'll see in your logs
the message "innd -C flag has been deprecated and has no effect; use
docancels in inn.conf" in case you're passing that flag to innd).
* Andreas Kempe has implemented blacklistd support in nnrpd. This
daemon, available notably in FreeBSD and NetBSD, can be used to
prevent brute force attacks by blocking attackers after a number of
failed login attempts. When nnrpd is run with the new -B flag, and
INN has been configured with the new --with-blacklist option, it will
report login attempts to the blacklistd daemon for potential blocking.
* Building INN with TLS support using LibreSSL is now supported (only
OpenSSL was previously officially supported and tested).
* Fixed the parsing of *hosts* and *localaddress* parameters in
readers.conf; exclusion patterns (beginning with "!") have not been
working since INN 2.5.0.
* Improved the robustness of innxmit when receiving 500 or 501 response
codes from peers, indicating they do not understand the NNTP command
or (wrongly) think there is a syntax error. Richard Kettlewell added
a proper handling of these responses, making innxmit dropping the
refused article instead of keeping sending it over and over (and thus
receiving each time the same error in response codes).
* innreport now collects statistics from innxbatch and generates a
section for them in its reports.
* The innreport.conf file in *pathetc*, previously containing almost
2500 lines, has been split into a general configuration file
(innreport.conf itself, still in *pathetc*, with about 60 lines) and a
display configuration file (innreport-display.conf, a new separate
file in *pathlib*). The name of this display configuration file can
be parameterized in the new *display_conf_file* option in
innreport.conf.
* The -m flag given to mailpost now sets a List-ID header field instead
of a Mailing-List header field.
* rc.news, used to start and stop INN daemons, now checks whether it is
run as the news user. It will exit if not the case, to ensure not to
tamper with the ownership of files INN manipulates.
* filechan has been removed; it was just a simple version of buffchan,
which should now be used.
* send-nntp has been removed; it was just a simple version of nntpsend,
which should now be used (or, even better, innfeed).
* The *refusecybercancels* and *verifycancels* parameters have been
removed from inn.conf. Besides, inews no longer checks if the From or
Sender header fields of a cancel or supersede request match the ones
of the original article being withdrawn. All of these were either
inefficient or inexact checks.
* The *xbatch* parameter has been added in incoming.conf to enable the
XBATCH command in innd for specific remote peers. The default is to
disable the capability.
* The *nolist* and *noresendid* parameters in incoming.conf have been
respectively renamed to *list* and *resendid* (and the meaning of
their related boolean values is now the opposite). Besides, the
unused *comment* and *email* parameters in incoming.conf have been
removed.
* inews no longer adds a Sender header field nor overwrites an existing
one in articles it processes if the new -P flag is used. The Path
header field, if unset, no longer systematically contains the path
identity of the local news server (you may want to add it manually
with the -x flag, if needed). Finally, inews also no longer adds the
obsolescent Lines header field.
* A new -E flag can now be given to inews to silently discard empty
articles, instead of bailing out with an error. Another new -m flag
permits setting the Message-ID instead of letting inews generate one.
And a third new flag, -Y, forces inews to authenticate to the remote
news server even if not asked to.
* signcontrol has been removed as it embeds per-site configuration which
is overwritten each time INN is updated to a newer version, and it is
unlikely you ever need it. Nonetheless, if you need to issue
PGP-signed control messages, you can still download it from
<https://ftp.isc.org/pub/pgpcontrol/>.
* Support in controlchan for obsolete *sendsys*, *senduuname* and
*version* control messages has been removed. These control messages,
long been deprecated, should no longer be sent nor honoured nowadays.
Besides, the "doifarg" keyword in control.ctl is no longer recognized
(it was only used for these three kinds of control messages).
* The *require_ssl* parameter in readers.conf has been renamed to
*require_encryption*, which is a better name as it applies to any kind
of encryption layers, including TLS and SASL security layers.
* Fixed the use of a deprecated API in Kerberos V5. INN now requires
version 1.6.1 or higher of MIT Kerberos v5 to build.
* The libauth.h header file and the libstorage library have been renamed
to libinnauth.h and libinnstorage to homogenize their name with
existing libinnhist library.
* All of the applicable bug fixes from the INN 2.6 STABLE series are
also included in INN 2.7.
Changes:
1.8
---
Fixes:
* sfeed_update: fail early if creating a temporary directory or status file fails.
* sfeed_atom, sfeed_json, sfeed_mbox:
Fix reading past the buffer with an escaped NUL byte (\ NUL).
Note that this could not happen with output from sfeed itself. Only if it was
manipulated.
* sfeed_curses: fix (very hard to trigger) memleak when getline() returns EOF
for lazyloaded items.
* sfeed parser:
* Improve parsing RFC2822 obsolete short year.
* Use errno ENOMEM instead of EOVERFLOW.
This matches the behaviour of setting errno for malloc/calloc on the following
systems too: glibc, musl libc, OpenBSD libc.
* date to unix timestamp: fix incorrect int type to long.
Found while testing sfeed on 16-bit MS-DOS with Open Watcom (for "fun" :)).
* Makefile: remove duplicate CPPFLAGS for sfeed_curses
Features:
* sfeed_json: add JSON output format tool. This formats the TSV data to JSON.
It uses a subset of JSON Feed 1.1: https://www.jsonfeed.org/version/1.1/
Optimizations:
* sfeed_atom: save a few bytes in the output by removing the type="text"
attribute, because for Atom the default for the type is text.
* Slightly reduce stack size for translating XML entities.
A numeric entity could use 5 bytes, so use a round number of 8 bytes.
Misc:
* sfeed: simplify time calculation and make it slightly easier to read.
This also fixes a calculation (possibly a compiler bug) with Open Watcom 1.9.
* Remove the sfeed name in some outputs ("branding").
Documentation:
* Fix some typos and improve code comments, in particular about the time parsing.
* README: sfeed_download example: change youtube-dl to yt-dlp:
this is an active maintained fork.
* README: add error checking for temporary files in the examples.
Aside from the above changes there have been lots of testing on different and
strange systems and the test-cases have been expanded to cover some cases.
These tests are in a separate repo.
Some tested strange systems:
* SerenityOS: gophers://codemadness.org/9/paste/sfeed-serenityos.webm partially
works. The core base utilities like sort are limited and non-POSIX though, so
sfeed_update doesn't work directly there.
* MS-DOS (16-bit and 32-bit extender) using Open Watcom 1.9. Works fine using a
32-bit extender. No 2038-support with 64-bit time_t though, just _unsigned_
32-bit :)
Tested these less-used systems or compilers can be fun and also discover
(pedantic) bugs.
While adding JSON Feed output support (sfeed_json) I also wrote a parser for it
to read the data. It can convert from JSON Feed to Atom. It can also convert
directly from JSON Feed to sfeed(5). It is available at:
https://git.codemadness.org/jfconvert/files.html
1.7
---
Changes:
sfeed_curses:
* Add SCO keys for next, prior (CSI I and CSI G).
Tested on DragonFlyBSD (cons25 console).
* Add SUN keys support.
Tested on OpenIndiana.
sfeed_gopher:
* Remove unnecesary PATH_MAX restricting the path length.
This also makes it compile cleanly on GNU/Hurd.
* Man page and documentation improvements.
Added upstream patch to fix build.
-- 2.6.2 release 20221224 "Pittyvaich" --
009) Florian Weimer <fweimer@redhat.com>
Thomas E. Dickey <dickey@invisible-island.net>
ADD. missing #include directives to improve C99 compatibility
FIX. aclocal.m4, configure
008) Enrik Berkhan <enrik@tin.org>
BUG. remove alleged Y2K38 safety issues
ADD. ~ and $VAR expansion to tinrc option tls_ca_cert_file
ADD. simplify code and refactor to fix an unused variable complaint
ADD. pcre2 support (debian bug #999941, fedora bug #2128388)
ADD. NNTPS support based on libressl/GNUttls/OpenSSL (RFC 8143)
ADD. TLS connection info
ADD. switch from stdio to own buffer implementation
FIX. config.c, cook.c, feed.c, filter.c, group.c, init.c, lang.c, main.c
memory.c, misc.c, nntplib.c, nntps.c, options_menu.c, page.c, read.c
regex.c, save.c, screen.c, search.c, select.c, wildmat.c
autoconf.h[in], extern.h, nntplib.h, proto.h, tinrc.h, tin.h
tnntp.h, tnntps.h, tincfg.tbl, parsdate.y, configure[.in]
Makefile[.in], tin.1
007) Dennis Preiser <dennis@d--p.de>
BUG. backward search for a non empty line got stuck in endless loop
BUG. reading a faulty mime article via NNTP could hang tin
(debian bug #1005024)
BUG. a long group name isn't shortened appropriately in group level
BUG. config changes via 'M'enu were not immediately active for
show_signatures, verbatim_handling, tex2iso_conf and
trim_article_body
BUG. after posting an article from selection or group level the cursor
remains visible in the lower left corner
ADD. tinrc.show_help_mail_sign
ADD. get $TMPDIR just once
ADD. option to remove SOFT HYPHENs (U+00AD) from non verbatim blocks of
articles in UTF-8 and using a UTF-8 locale
BUG. show actual help-key in txt_type_h_for_help
FIX. config.c, cook.c, debug.c, filter.c, group.c, init.c, lang.c, mail.c
misc.c, my_tmpfile.c, newsrc.c, options_menu.c, page.c, pgp.c
regex.c, rfc2046.c, refs.c, save.c, screen.c, search.c, select.c
thread.c, extern.h, proto.h, tin.h, tinrc.h, tincfg.tbl, tin.1
tin.5
006) Thomas E. Dickey <dickey@invisible-island.net>
BUG. configure --with-included-gettext was non-functional since tin 2.4.2
ADD. update configure macros
FIX. aclocal.m4, intl/Makefile.in, intl/plural.c
005) Urs Janssen <urs@tin.org>
ADD. config.guess, config.sub update
ADD. code cleanup; remove redundant condition and unused var;
add some missing casts and _Noreturn
ADD. ignore set but empty env.-vars
ADD. try harder when looking for keymap-file, try locale "suffixes"
from language[_territory[.codeset]][@modifier] with parts
stripped off in order: codeset, normalized codeset, territory,
modifier
ADD. guard against empty inews_prog and empty mm_charset in
!CHARSET_CONVERSION case
ADD. warn about some more nonsensical cmd.-line option combinations
-ow|-oz|-wz
ADD. exit early at -o when there are no postponed articles
ADD. reduce memory usage for xface
ADD. list of leap years from 2040 to 2068
ADD. restrict URL_REGEX to disallow non ascii chars in path
ADD. accept active file lines even without moderation flag
ADD. do not try NEXT again after an ERR_COMMAND response
ADD. ConnectionInfo page ('J')
ADD. update tin_atol() to new SI prefix names Ronna and Quetta
ADD. experimental MAXARTNUM extension
BUG. missing default tinrc.editor_format on first start
BUG. typo in man page
BUG. possible memleak in check_article_to_be_posted if article has
multiple To:, Followup-To: or Newsgroups:-headers
BUG. possible buffer overflow in find_reply_to_addr
BUG. f'up to an article without a message-id (possible in mailgroups)
crashes
BUG. hypothetic missing string termination
BUG. need to convert utf8pass to network charset unconditionally in
do_authinfo_sasl_plain
FIX. active.c, art.c, auth.c, config.c, filter.c, group.c, help.c
inews.c, init.c, keymap.c, lang.c, main.c, makecfg.c, mimetypes.c
misc.c, nntplib.c, options_menu.c, page.c, post.c, pgp.c, rfc1524.c
rfc2046.c, save.c, select.c, signal.c, string.c, thread.c, wildmat.c
xface.c, parsdate.y, extern.h, keymap.h, nntplib.h, proto.h, tin.h
tin.1, tin.5, config.guess, config.sub, configure[.in]
This release fixes a regression from v0.153 where pan can segfault
when reading groups. See issue #156 for details.
Some other cleanup related to gtk2 were done.
Many thanks to Thomas Tanner for the work done on this release.
0.153 "Mariupol" - 2022-11-13
I botched previous release. This release is identical to 0.152
except that Pan is modified to correctly identify itself as version
0.153.
0.152 "Mariupol" (¿¿¿¿¿¿¿¿¿) - 2022-11-12
The main points of this release are:
- Gtk2 was removed from Pan. Only Gtk3 is working.
- Links to old pan.rebelbase.com are replaced with links to
pan gitlab page.
- Pan can be compiled with clang
- Several updated translations: da de hu pl pt_BR sl sr sv tr uk.
0.3.2 Released on 30/08/2022
- Fixed articles sorted by date
0.3.1 Yanked relese
0.3.0 Released on 29/08/2022
- Show timestamp next to articles (can be configured)
- Added new key article-title to configuration (optional)
Changes:
1.6
---
* Code cleanups: unused code and refactored the code for reading read items
from a plain-text URL file list.
* Fix typos in the code and documentation.
* Improve clarity of some code comments.
* Add setsid example to the README.
The package changed with the addition of its libepoll-shim dependency.
Otherwise, we can get:
ERROR: libepoll-shim>=0.0.20210418 is not installed; can't buildlink files.
Released on 05/08/2022
-If content in RSS feed is populated, use content instead of summary
-This should be preferred since contains much more information than just the
summary. Unfortunately sometimes the content is empty, so summary should be
used as fallback
-Changed stdlib Textarea to tui-realm-textarea component to improve readability
of summary
-Fixed the article date shown: was updated but should be published
-Migrated UI to tui-realm 1.7.1
-Updated dependencies
- Moved pkgsrc options into separate file options.mk
- Modified pkgsrc patch to cover whole rule body again
- Removed WRKSRC setting (was explicitly set to default value)
- Replaced MESSAGE by ${PREFIX}/share/doc/leafnode/INSTALL.pkgsrc
==============================================================================
* 1.12.0, 2022-05-26
### CHANGES
- leafnode now requires the PCRE2 library instead of PCRE.
PCRE2 has been around for a few years and is maintained,
while PCRE is end of life, no longer supported,
and is being phased out by distributions.
See its home page, https://github.com/PhilipHazel/pcre2
Fixes Debian Bug#1000110 reported by Matthew Vernon via Moritz Mühlenhoff.
- Documentation for running under daemontools/ucspi-tcp (tcpserver)
has been removed, only UNINSTALL-daemontools remains as documentation.
- leafnode 1 is now distributed in gzip and xz formats.
bzip2 will no longer be used because xz performs better overall.
- All files have been converted from ISO-8859-1 to UTF-8 encoding.
- Added leafnode@.service and leafnode.socket as examples for how to launch
the network-based leafnode listening on port 119.
0.151 "Butcha" (Буча) - 2022-06-25
This release is dedicated to all people suffering from Russian war
in Ukraine. Until this war is over, Pan release are named after
Ukrainian towns ravaged by this war.
The main points of this release are:
- Gtk2 minimal version is now 2.24.0. Note that this release is
probably the last one with Gtk2 support.
- addition of a helper script to build Pan on Windows (Thomas)
- fix Gtk3 icon scaling on Windows (Thomas, fixes#144)
- fix header handling errors (Thomas, fixes#61 and #66)
- Add a menu entry to allow editing the Score file in text editor (Thomas, fixes#11)
Many thanks to Thomas Tanner for the work done on this release.
Contributors to this release:
Thomas Tanner, Dominique Dumont, Miguel Ángel Nieto, Daniel
Mustieles, Andre Klapper, Anders Jonsson
Updated translations:
da (Alan Mortensen)
eu (Asier Sarasua Garmendia)
hu (Balázs Úr)
pl (Piotr Drąg)
sr (Мирослав Николић)
sv (Anders Jonsson)
uk (Yuri Chornoivan)
Changes:
1.5
---
* sfeed_curses: interrupt waitpid while interactive child program is running
This now handles SIGTERM on sfeed_curses while an interactive child program is
running.
* sfeed_curses: close stdin before spawning a plumb program in non-interactive
mode, which is more intuitive: the program doesn't seem to hang when it expects
input in this case since there is no way to send input anyway.
* Properly escape backslashes in the man pages (thanks adc!).
* Documentation improvements to the man pages and a progress indicator example
script for sfeed_update.
1.4
---
* Improve read and write error handling in streams in many programs.
* sfeed_update:
* Improve error handling and return a non-zero status if any feed fails.
NOTE: this changes the way of using:
sfeed_update && pkill -SIGHUP sfeed_curses
* Separate errors to stderr and "OK" messages to stdout.
* sfeed_curses:
* Avoid processes becoming a zombie (plumb, pipe, yank).
* Line editor: temporarily disable the mouse when searching with /.
* Improved signal handling.
* Improved waiting on processes and status handling.
* sfeed_html/sfeed_frames: add dark mode support to the example stylesheet.
* sfeed_opml_export: use a control-character separator for converting the list.
* General code cleanup improvements.
* Compatibility: reduce the assumption the builtin libc locale is ASCII-compatible
noticed on OpenBSD 3.8 where iscntrl detected C1 as control-characters,
breaking UTF-8.
* General documentation improvements.
* Makefile: rebuild sfeed_curses if the same theme changes.
* README: improve error handling in downloader example when a feed fails.
1.1.0 2022-05-21 Release
--------------------------
Bug fixes:
- CORE: Authentication without password is now rejected (reported by
Marcel Logen).
- MAIN: Potential deadlocks in thread-safe replacement functions fixed.
- GUI: State machine modified to avoid race condition when articles are
marked read while group is not completely loaded yet.
New features and improvements:
- GUI: Option to automatically check for new articles added (an interval
in minutes can be configured with the new "refresh_interval" entry in
configfile).
- GUI: Checkbox "Tools->Debug mode" removed. Debug mode must be enabled
with command line option "-debug".
- NNTP: Protocol logfile is only created if debug mode was enabled (and
unlinked otherwise, if present). "Tools->Protocol console" window now
requires debug mode.
- GUI: Support for estimated article count in subscription window added
- GUI: Support for group descriptions in subscription window added
- NNTP: Support for LIST NEWSGROUPS command (RFC 3977) added
- GUI: Support for subscription proposals from server added
(offered to user after server was changed and group list is empty)
- CORE: Support for subscription proposals from server added
- NNTP: Support for LIST SUBSCRIPTIONS command (RFC 6048) added
- TLS: Support for LibreSSL 3.5 API added
- GUI: File save operations now suggest a pathname in the file selection
window.
- GUI: File save operations now ask the user before an existing file is
overwritten.
- CORE: Function added to suggest a pathname (created from home
directory, program name and timestamp).
- CORE: Message-IDs are now generated with algorithm A3 (uses a modified
Base64 alphabet with "/" replaced by "-"). This allows to generate
RFC 5538 conformant "news"-URIs without percent-encoding.
upstream changelog:
Changes in 2.6.5
* A new step in INN development has been achieved with the migration of
the INN project to GitHub. We now make use of the features GitHub
provides: issue tracker, pull requests, continuous integration, a
user-friendly interface to browse the code, etc. Our Subversion
repository has therefore been migrated to Git, and our Trac tickets to
the GitHub issue tracker.
* An up-to-date nocem.ctl file is provided with this release. You
should manually update your nocem.ctl file with the new information
recorded about NoCeM issuers, and make sure the right PGP keys are
present on your system.
* Up-to-date control.ctl and moderators files are provided with this
release. You should manually update them (notably for the fido7.*
hierarchy).
* Added a stricter validation of article numbers given in NNTP commands
so that numbers superior to 2^31 are correctly considered invalid.
Thanks to Richard Kettlewell for the patch.
* Added a check in rc.news for the existence of the *pathrun* directory.
INN won't start until this directory is writable. Previously, it
bailed out quickly after starting, without clear logs about why it
failed.
* Fixed parallel builds using "make -j". Thanks to Richard Kettlewell
for the path.
* nnrpd now properly gathers timer statistics when a compression layer
is active.
* nnrpd now properly discards data received from a news client after a
timeout when a TLS layer is active. It previously tried to read
incoming data before closing the socket, leading to decoding errors
from an underlying compression or SASL layer.
* innfeed and ovdb_stat now generate status reports in valid HTML
syntax.
* Fixed a bug in the buffindexed overview that prevented it from working
on several systems, amongst them FreeBSD. Unsupported, and useless,
permission bits were given to semaphores.
* Fixed the detection of library paths at configure time: multilib
directories (lib32 or lib64) are now also used if they exist, even it
the system does not use multilib. It will notably fix the detection
of the OpenSSL 3.0.0 library.
* The *tlscertfile* parameter in inn.conf now permits the use of a
complete certificate chain, instead of necessarily having to use
*tlscafile* for additional certificates.
* Added support for the new OpenSSL 3.0.0 API, which deprecated a few
functions.
* The inn.conf default value for *tlsprotocols* no longer contains TLS
versions 1.0 and 1.1, which have been deprecated by RFC 8996.
* A new inn.conf parameter has been added to tune the length of the
queue of pending connections to innd, nnrpd and the "ovdb" overview
storage method: the *maxlisten* parameter now permits configuring
their listen backlog, whose previously hard-coded values were 128 for
nnrpd and 25 for the others, which was not high enough for some uses.
The default value is now 128 for all of them, and configurable in
inn.conf. Thanks to Kevin Bowling for the patch.
* The name of seven man pages for routines built in libinn(3) are now
prefixed with libinn_ so as not to consume namespace and conflict with
other packages (notably, the list(3) and uwildmat(3) man pages are now
named libinn_list(3) and libinn_uwildmat(3)).
* Other minor bug fixes and documentation improvements, notably a
revised installation checklist and a section summarizing the most used
configuration at the beginning of a few complex man pages.
Changes in 2.6.4
* Added support for systemd notifications and socket activation. Use of
more features provided by systemd, including more notifications, will
come in future releases. Thanks to Marco d'Itri for this first
systemd integration into INN.
* nnrpd now adapts the length of the DH parameter used during a DHE key
exchange so as to comply with the security level OpenSSL 1.1.0 or
later expects. Thanks to Michael Baeuerle for the bug report.
* cnfsstat now also returns information about retired CNFS buffers:
buffers mentioned in cycbuff.conf as a cycbuff but not declared in a
metacycbuff.
* Switch default innreport behaviour to the common practice of
externalizing CSS into a separate file. Its name can be configured
with the *html_css_url* parameter in innreport.conf. If this
parameter is unset, the default innreport.css file name will be used
and innreport will generate this CSS file for you. Previously
generated reports are kept untouched, though, and will still contain
inline CSS if you had not already set the *html_css_url* parameter in
previous INN versions. Thanks to Richard Kettlewell for the patch.
* sm can now read and store any number of articles given in wire format
on its standard input when both -s and -R are used. Only native
format was previously possible. Thanks to Bo Lindbergh for the patch.
* Added new -a flag to rnews to disallow, if needed, the use of
additional unpackers from the rnews.libexec sub-directory of *pathbin*
(as set in inn.conf); only "rnews" and "cunbatch" will then be
recognized as valid batch commands.
* Added new -b flag to rnews to save rejected articles in the bad
sub-directory of *pathincoming* (as set in inn.conf). Otherwise,
rnews just logs and discards any articles that are rejected or cannot
be parsed for some reason.
* Added new -d flag to rnews to log via syslog the Message-ID and the
Path header value of each article rejected as a duplicate.
* Added new --enable-hardening-flags configure-time option, enabled by
default, to use hardening build flags like "-fPIE" and
"-fstack-protector-strong". This option can easily be disabled if the
compiler or the platform does not support them well. More hardening
build flags will eventually be added in future releases.
q
Switch back to fetching the distfile from gitlab.gnome.org, since
a) the configure.ac file no longer uses the problematic "$Format:%d$"
which can change if commits are added (only the stable
GIT_HASH='$Format:%h$' is left). Hopefully this fixes the problem.
b) the upstream of the pre-made tarball is getting behind
Also there are some pkglint fixes.
The main points of this release are:
- Dropped support for GMime2. Only Gmime3 is supported
- Gtk3 is now default build, Gtk2 is deprecated
15fcc65 set maximum number of serveur connections to 20 (Dominique Dumont)
431f56f Nuke $GIT_REMOTE if not obtained by git config (Petr Kovar)
Changes:
Fixes
-----
* Fix a compiler warning with some curses implementations, like NetBSD curses.
* sfeed_curses: add keybinds for the home key and the default home and end key
for urxvt.
* sfeed_curses: fix a redraw when reloading a file with a feed file read from
stdin and using an URL file and changing this URL file externally.
* sfeed_curses: cast character for SFEED_AUTOCMD to unsigned char to allow
character sequences outside the ASCII range.
Documentation
-------------
* README: add an example script to count new and unread items. This can be
useful for some statusbar indicator (asked about by e-mail).
* Small code-style, comments and documentation improvements and fixes.
Changes:
1.2
---
Fixes:
* sfeed parser: extend the time range to atleast 64-bit (long long).
* sfeed parser: allow leap second like 23:59:60 (RFC2822 Section 3.3).
* sfeed_curses: pedantic fix for UB with an empty URL file (qsort and bsearch).
* sfeed_curses: fix a compile warning with tparm() on some systems.
Features:
* sfeed_atom: add category field(s).
* sfeed_curses: add feature to go to the next bold row and previous bold row
with J and K. This is useful to quickly jump to the next new item or new feed.
Thanks to IanJ for the suggestion and feedback!
* sfeed_content: allow to set HTML converter with env variable $SFEED_HTMLCONV.
For example: SFEED_HTMLCONV="w3m -I UTF-8 -O UTF-8 -T text/html -dump"
* Add compile-time option to improve output on dumb non-UTF8 terminals
(-DSFEED_DUMBTERM).
Misc:
* Documentation improvements to the man page and a sfeed_download example in
the README: this is a parallel downloader/extractor example script.
* Code-style improvements.
-- 2.6.1 release 20211226 "Convalmore" --
004) Michael Baeuerle <michael.baeuerle@stz-e.de>
BUG. wrong pkg-config file name for libcanlock3
FIX. aclocal.m4
003) Urs Janssen <urs@tin.org>
ADD. config.guess, config.sub update
ADD. don't count comment and empty lines in newsrc-file
ADD. fixed mixed declarations and code
ADD. const qualification for free_if_not_default() and strfpath_cp()
ADD. allow to cancel wait_message() via key press
BUG. missing bounds checking in *highlight_string()
BUG. use of wint_t in !MULTIBYTE_ABLE code
FIX. curses.c, help.c, memory.c, misc.c, newsrc.c, page.c, prompt.c
rfc2046.c, screen.c, select.c, tcurses.c, extern.h, tin.5
config.guess, config.sub
002) Thomas E. Dickey <dickey@invisible-island.net>
BUG. missing configure check for get_wch and wget_wch
ADD. workaround for possible redefinition of bool type when using
pdcurses
FIX. autoconf.hin, tcurses.h, tin.h, Makefile.in, aclocal.m4
configure[.in]
001) Matt Anton <tin@lv223.org>
ADD. updated French translation
FIX. fr.po