- No busy loops when connecting to the NNTP server.
- Handle multiple records return by getaddrinfo(3) at the proper location.
- Avoid unnecessary socket creations and deletions by always passing the
correct address family to open_socket().
INN 2.3.0 represents a significant architectural change to INN, with a
completely new internal overview interface, three new overview mechanisms,
two new article storage mechanisms, and the elimination of quite a few old
interfaces and old code.
The NetBSD package furthermore includes IPv6 support and a new style
startup script with backwards compatibility.
out of date - it was based on a.out OBJECT_FMT, and added entries in the
generated PLISTs to reflect the symlinks that ELF packages uses. It also
tried to be clever, and removed and recreated any symbolic links that were
created, which has resulted in some fun, especially with packages which
use dlopen(3) to load modules. Some recent changes to our ld.so to bring
it more into line with other Operating Systems also exposed some cracks.
+ Modify bsd.pkg.mk and its shared object handling, so that PLISTs now contain
the ELF symlinks.
+ Don't mess about with file system entries when handling shared objects in
bsd.pkg.mk, since it's likely that libtool and the BSD *.mk processing will
have got it right, and have a much better idea than we do.
+ Modify PLISTs to contain "ELF symlinks"
+ On a.out platforms, delete any "ELF symlinks" from the generated PLISTs
+ On ELF platforms, no extra processing needs to be done in bsd.pkg.mk
+ Modify print-PLIST target in bsd.pkg.mk to add dummy symlink entries on
a.out platforms
+ Update the documentation in Packages.txt
With many thanks to Thomas Klausner for keeping me honest with this.
NEWSFETCH downloads network news into mail-format files.
It can also pass the fetched news articles to programs like
procmail to process them further into different folders,
forward or deliver them.
Submitted by Jason R. Fink <jrf@diverge.org> in PR 11232.
0. Bug fixes:
artmisc.c: If a line is marked as a PGP line, then it cannot also
be a quote line.
art.c: Only wrap/unwrap an article when the display requires it.
art.c: Allow rot13 to apply to signature.
uudecode.c: If a line contains a space, then skip it.
art.c: get_parent_headers: avoid self-referencing articles
group.c: remove arbitrary group name length limit.
group.c: code added to support for arbitrarily long newsrc lines.
art.c: Fix sorting methods 4 and 6.
art.c: Add From header to forwarded emails.
art.c: MIME process article after saving it.
art.c: have ESC-p sync line with parent.
art.c: avoid infinite loop on search_article ("");
post.c: if signature is "", then do not add it.
mime.c: allow whitepspace to follow `=' continuations
art.c: update thread scores after art_xpunge
1. #v+/#v- verbatim marks may be hidden via `hide_verbatim_marks'
variable. The article mode function "toggle_verbatim_marks" may be
used to toggle the state of the marks.
2. Special characters in URLs are passed to browser in hex format.
3. BeOS system name added to version.c
4. line length check skipped in verbatim sections.
5. doc/README.macros: Mention post_file_hook
6. src/xover.c: algorithm for extracting msg-id from In-Reply-To
changed.
7. The thread tree depth maximum size (for the graphic) was increased from
32 to 256 after reworking how the graphic is stored.
8. doc/slrn.1,slrn.rc: typos fixed
9. src/startup.c: "blue" foreground colors changed to "lightgray" to
make the object standout on xterm.
10. The `Date' header may be given a color
11. macros/color.sl updated
12. New slrnrc variable: 'set check_new_groups 1'. If 0, then do not
check for new groups
13. src/post.c: Allow verbatim sections to exceed 80 character line
limit with no warning.
Changes:
- INN no longer installs inews setgid news or rnews setuid root by
default. If you need the old behavior, --enable-uucp-rnews or
--enable-setgid-inews must be given to configure. See INSTALL
for more information.
- A security hole when verifycancels is turned on in inn.conf (not
the default) was fixed.
- Message IDs are now limited to 250 octets to prevent
interoperability problems with other servers.
- Various other security paranoia fixes have been made.
- Embedded Perl filters fixed to work with Perl 5.6.0.
- Lots of bug fixes.
Add a new USE_LIBTOOL definition that uses the libtool package instead of
pkglibtool which is now considered outdated.
USE_PKGLIBTOOL is available for backwards compatibility with old packages
but is deprecated for new packages.
called tin-1.4.2.tar.bz2. Changes:
Small documentation changes, number of `hot' articles displayed in -Z
output, and a bug fix in save.c.
Fixes pkg/9829 by mw34@cornell.edu.
- Various minor bug fixes and a y2k bug fix. The y2k bug is in version
version 2.2.1 only and will show up after Jan 1st when a news reader
issues a NEWNEWS command for a date prior to the year 2000.
- Various bug fixes. Most importantly, bug fixes to potential
security holes (buffer overflow type).
<drankin@bohemians.lexington.ky.us> in pkg/9221.
Changes from trn 3.6 to trn 4.0:
o Added a newsgroup selector to make choosing news groups easier
(use the ++ option to turn it off).
o In the selector '\' now is used to execute a command, so if
you had 'c' in your SELECTCHARS, you could still catch-up a
group via \c. It also lets you enter the normal newsgroup
commands from the newsgroup selector, such as unsubscribe
(\u) and goto group (\g). If the command letter is both a
selector command and a newsgroup command, use '\\' to get
the newsgroup command (such as \\O or \\h). Use ':' to apply
a (limited set) of commands to more than one group, such as
":u" (unsubscribe) or ":c" (catchup).
o Use "\v" from any selector to see the current trn version.
o Use the backtick (`) command to switch back and forth between
the newsgroup selector and the rn-style newsgroup browser.
You can also type backtick from inside a newsgroup to exit
back to the newsgroup selection level.
o Use the '=' command in the newsgroup selector to refresh the
article counts (possibly refetching the active file).
o Use the Ctrl-G command in the selector to go to a letter
without affecting it (e.g. "Ctrl-G b" would go to letter 'b').
o Added an addgroup selector to ease the arrival of new groups.
o Strn's article scan/scoring is now present in trn.
o ** Describe the universal selector once it settles down **
o Enabled trn to use both nntp and local news sources, either
separately or at the same time. Create a .trn/access file to
customize this (start with a copy of <trnlib>/access.def).
o Changed the format of trn's option files. Trn will create a
.trn/trnrc file for you using your old trn options as soon as
you edit and save them using the on-line option editor. Once
this happens, the old TRNINIT variable is ignored.
o When you specify a news source in the active file, you can
tell trn to keep a local copy of the server's active and
newsgroups files, and either re-grab them at regular intervals
(however often you like), update them with new information
we glean while running, or leave them alone (which is useful
for an NFS mounted active file).
o Added a newsrc selector to choose among the news sources and
newsrc options in your .trn/access file.
o Alternately, use Ctrl-N and Ctrl-P in the newsgroup selector
or newsgroup browser to change from news source to news source.
o Added an on-line option editor (type '&' <RETURN>). Use the
search command (/erase) to find the option you're looking for.
o Much improved xterm mouse handling now lets you define a
"mouse bar" of buttons to press, as well as allowing you to
click on the tree nodes in the article tree display. Use
the option selector to turn it on and customize it. See
the <trnlib>/INIT file for an example of how to make the
mouse code conditional on your terminal type. You can
even double-click in the selector to start reading and
select a range with click-drag-release.
o Enhanced the mime code so that trn now knows how to handle
basic mime types, and farm out the ones it doesn't understand.
!!Not finished yet!!
o Use the 'a' (attachments) command to view an article's
attachments, including a uuencoded picture in a picture
group. Even works with multi-part pieces if you use 'a'
on all the parts (in any order). Use ":a" to view a
group of selected articles (handy from the selector). Of
course, "::a" affects all unselected articles.
o The header hiding code now hides more headers by default,
and can un-hide any header (prior trns could only hide
known header names plus all unknown headers in a group).
o You can now specify a custom IP port for an NNTP connection
in your .trn/access file or the NNTPSERVER variable.
o A bargraph (for percent done) pops up on slow tasks (such
as fetching the active file over a slow link).
o Changed the default "auto arrows" (-A) to be more web-
browser-like in the selectors. Set option "Auto Arrow
Macros" to "old-style" if you like the old style better.
o A client ("mini") inews is now included with trn that is
compatible with other news readers and a bit more functional.
o Macro writers: each selector has a different mode letter (see
the %m discussion in the man page for a list), but there's
now an easy way to write a macro that affects all selectors
test the "general mode": %g=s. See the man page for the other
general modes.
o Fixed the type-ahead eating to never eat just part of a macro
sequence (such as a keypad key or a mouse click).
o Trn now use X-Newsgroups instead of Newsgroups in mailed replies.
It also uses X-Also-Posted-To when Cc'ing people while posting.
<drankin@bohemians.lexington.ky.us>, and reworked by me to include
socks support where necessary, and to use pkgsrc standards for
GNU_CONFIGURE, etc. Also fixed the PLIST to reflect reality.
Changes since previous pkgsrc version:
* lmove.c match_group(), move_msgs(), scan_args() - Re-wrote
for new options -h and -s to create hard or symbolic
links to files crossposted to multiple groups. Re-wrote
code to handle malformed header with spaces either before
or after the newsgroup names.
load_active() - added test for duplicate group line.
* suck.c - do_one_group() - changed command from "xhdr 111-"
to "xhdr 111-2222" for brain-dead servers that don't
follow the proposed standard and treat 111- correctly.
* xover.c - do_xover(), do_group_xover() - changed command from
"xover 111-" to "xover 111-222".
* rpost.c - do_perl() - fixed bug where infile was being lost
due to FREETMPS, causing failed posting.
* suck.c - restart_yn() - fixed bug where if prior to restart,
we had sent command for an article, but not received it,
then on restart, we would skip article. So I have
to set sentcmd to false if we haven't downloaded it.
* xover.c - chk_a_group() - rewrote into one loop, to get rid
of segfaults on NULL field, and to speed things up for
complicated xover files.
* active.c - get_msgids() - added new option, -i, to set the default
number of articles to download when using the -A or -AL option
and a new group is added. See man page for usage.
do_one_group() - changed handling of return from
do_group_xover() so handle new error code.
parse_args(), main() - added code to handle -i option.
get_articles() - fixed bug in handling of pause and
reconnect after X nr of articles. Wasn't taken into
account 0 articles correctly.
* killfile.c - moved xoverview pointer out of master killfile and
into master struct, so can use independently of killfiles
(for -Z option).
parse_killfile() - changed to passed which argument to
various setup routines, so can distinguish between XOVER
and regular killfiles.
* killprg.c - killprg_forkit(), killperl_setup() - added test for
which, so if XOVER killfiles we don't point the killfile
functions to killprg stuff.
- killprg_sendoverview(), killprg_sendxover,
killperl_sendxover() - created. These routines handle
the sending of the overview.fmt and each overview line
to a child program or perl subroutine for matching.
* suck.c - main() - added code to handle retreival and freeing up
of memory used by overview.fmt. Added call to free up
xoverp killfile.u
- do_one_group() - added code to handle new option, -Z,
to use XOVER vice XHDR to get message-ids, in case the
remote server doesn't support the XHDR command.
* xover.c - do_group_xover() - changed the error code returned
if server can't do xover command, so can recover
gracefully from other errors (such as too long msgid)
get_xover(), find_msgid() - created. These routines
use the XOVER command to get the Message-ID and alloc
it for the -Z option.
Moved xoverview pointer out of master killfile and into
master struct, so can use for -Z option.
- do_one_line() - added code so if we have a program
or perl subroutine to do the checking, it gets called
* suck.c -- do_supplemental() - added call to do_sup_bynr().
do_sup_bynr() - created. Handles lines in suckothermsgs
that specify a group name and article number for retreival.
* suck.c - get_one_article() - fixed bug in sending command
for the second article, was resending first article
command.
* killfile.c - get_one_article_kill() - added code to handle
new option, -g, to get only the headers of articles.
See man pages for details.
* suck.c - get_one_article() - added code to handle new option
-g, to get only the headers of articles.
* xover.c - chk_a_group() - fix bug in counting of Xref line,
causing inaccurate count.
do_one_line(), get_xoverview() - fixed handling of :full
flag in overview.fmt.
* reworked restart code. Got rid of suck.restart and suck.sorted,
replaced with suck.db, which contains the records of all messages.
All of this code is now contained in db.c. Cleaned up the use of
the Mandatory field by creating separate delete and sentcmd fields.
* chkhistory.c chkhistory() - fixed bug which caused no articles to be
checked, I wasn't passing the current article to my_bsearch().
chkhistory() - changed HISTORY_FILE to a run time option vice
the constant defined in the Makefile.
* chkhistory_db.c
chkhistory(), open_history() - changed HISTORY_FILE to a
run_time option.
* killfile.c - added code to handle new killfile option NRXREF.
This works the same as NRGRPS, but on the Xref line
instead of the Newsgroups line.
killfile_done() - fixed bug in freeing perl_int.
check_a_group() - fixed bug in counting nr of groups.
pass_two() - fix bug if groupline didn't have group name, we could
core dump when trying to nuke nl.
* ssort.c - changed params that my_bsearch is called with, to make
chkhistory faster. Changed second param to string vice struct.
* suck.c - do_cleanup() - fixed a bug with moving suck.newrc to sucknewsrc.
If we're restarted with -R, no suck.newrc would exist, and
we'd move sucknewsrc to sucknewsrc.old, and fail on the
move of suck.newrc to sucknewsrc. Now if suck.newrc doesn't
exist, we don't move sucknewsrc either.
parse_args() - added code to handle history file option (HF).
* xover.c - added code to handle to option NRXREF, like above.
Also added code to handle new option XOVER_LOG_LONG,
which causes suck to format xover kills so that they
look like message headers, instead of printing just
the Xover line.
* active.c - get_message_index_active() - added code to handle -F
option, reconnect after reading the active file. This is
in case of a large active file, and the remote end times
out while reading it.
* killprg.c - tweaked the #ifdef for the Perl 5.004 stuff
* lmove.c - move_msg(), scan_args() - Added test to see if article
exists in new location before I move it. This is to avoid
overwriting articles if another process adds articles to
directory without changing the active file. If an article
already exists, I abort UNLESS you use the -A option. See
man page for more details.
main() - rewrote tests for msgdir and basedir, to avoid segfaults
if not defined.
* suck.c - main(), scan_args() - added code to handle -F option.
* xover.c - get_xoverview() - fixed bug in parsing of xoverview, not
stripping the blanks and nls correctly. Also fixed bug in
allocing of memory (had POverview vice Overview).
* batch.c - do_post_filter() - created, allows you to edit all articles
downloaded.
*batch.c - do_lmove_patch()
*killprg.c - killprg_forkit()
*rpost.c - do_filter - added exit(-1) so that if child doesn't execl,
we don't have both parent and child running.
* chkhistory.c - chkhistory() - changed error_log() call to MyPerror()
for open of history file, so get more descriptive error msg.
* suck.c - main(), parse_args() - added arg handling for do_post_filter().
get_articles(), restart_yn() - re-worked the handling of restarts, to
avoid downloading same article twice, or not downloading an article,
due to the de-duping process when I did a rescan for new articles,
so I had the same MsgId twice, then deleted the first one already
downloaded, and then downloaded it again.
* dedupe.c - dedupe_list() - added code so that if one of a set of dupes
is marked as downloaded, or a dupe, I delete the other one
instead, to help avoid the scenario above.
NOTE: It is nice to have "make extract" just unpack and not overwrite
any files, so it can be used to investigate pkg problems. This is why
I chose to not use "post-extract" to patch files. I use "post-patch"
instead.
I'll need to test this on NetBSD now...
0. Misc bug fixes, including:
* slrn now honors port information encoded in hostname when
refreshing newsgroups.
1. Tweak to generation of NEWGROUPS server command to make it y2k
compliant. (In my opinion, the protocol is weak in this area)
3. New configuration variable: set simulate_graphic_chars 0
4. Patch from Hubert Figuiere <Hubert.Figuiere@solsoft.fr> to handle
(broken?) knews iso-latin1 mime encoding.
5. New configuration variable: set auto_mark_article_as_read 1
If zero, reading an article will not cause it to be marked as read.
6. It is now possible to specify what headers to show via the .slrnrc
line:
visible_headers "From:,Subject:,Newsgroups:,Followup-To:,Reply-To:"
7. Tweak to group.c:group_sync_group_with_server courtesy of
stesch@parsec.rhein-neckar.de (Stefan Scholl).
- New, optional Makefile variable HOMEPAGE, specifies a URL for
the home page of the software if it has one.
- The value of HOMEPAGE is used to add a link from the
README.html files.
- pkglint updated to know about it. The "correct" location for
HOMEPAGE in the Makefile is after MAINTAINER, in that same
section.
Implement a new DEPENDS definition, which looks for an installed
package, building it if not present, and use it in preference to
LIB_DEPENDS. This should make the package collection more useful on
NetBSD ELF ports.